From a81c8cbd18f453c7469d5da0dc84ba062173af44 Mon Sep 17 00:00:00 2001 From: Annie Tor Date: Thu, 13 Sep 2018 15:55:15 -0400 Subject: [PATCH 01/18] Adding chap 4 notebook --- code/chap04mine.ipynb | 1138 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1138 insertions(+) create mode 100644 code/chap04mine.ipynb diff --git a/code/chap04mine.ipynb b/code/chap04mine.ipynb new file mode 100644 index 00000000..7e535191 --- /dev/null +++ b/code/chap04mine.ipynb @@ -0,0 +1,1138 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Modeling and Simulation in Python\n", + "\n", + "Chapter 4\n", + "\n", + "Copyright 2017 Allen Downey\n", + "\n", + "License: [Creative Commons Attribution 4.0 International](https://creativecommons.org/licenses/by/4.0)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# Configure Jupyter so figures appear in the notebook\n", + "%matplotlib inline\n", + "\n", + "# Configure Jupyter to display the assigned value after an assignment\n", + "%config InteractiveShell.ast_node_interactivity='last_expr_or_assign'\n", + "\n", + "# import functions from the modsim library\n", + "from modsim import *" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Returning values" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's a simple function that returns a value:" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "def add_five(x):\n", + " return x + 5" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And here's how we call it." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "8" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "y = add_five(3)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If you run a function on the last line of a cell, Jupyter displays the result:" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "10" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "add_five(5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "But that can be a bad habit, because usually if you call a function and don't assign the result in a variable, the result gets discarded.\n", + "\n", + "In the following example, Jupyter shows the second result, but the first result just disappears." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "10" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "add_five(3)\n", + "add_five(5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "When you call a function that returns a variable, it is generally a good idea to assign the result to a variable." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "8 10\n" + ] + } + ], + "source": [ + "y1 = add_five(3)\n", + "y2 = add_five(5)\n", + "\n", + "print(y1, y2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Write a function called `make_state` that creates a `State` object with the state variables `olin=10` and `wellesley=2`, and then returns the new `State` object.\n", + "\n", + "Write a line of code that calls `make_state` and assigns the result to a variable named `init`." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "def make_state():\n", + " state = State(olin = 10, wellesley = 2)\n", + " return state" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
values
olin10
wellesley2
\n", + "
" + ], + "text/plain": [ + "olin 10\n", + "wellesley 2\n", + "dtype: int64" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "init = make_state()\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Running simulations" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's the code from the previous notebook." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "def step(state, p1, p2):\n", + " \"\"\"Simulate one minute of time.\n", + " \n", + " state: bikeshare State object\n", + " p1: probability of an Olin->Wellesley customer arrival\n", + " p2: probability of a Wellesley->Olin customer arrival\n", + " \"\"\"\n", + " if flip(p1):\n", + " bike_to_wellesley(state)\n", + " \n", + " if flip(p2):\n", + " bike_to_olin(state)\n", + " \n", + "def bike_to_wellesley(state):\n", + " \"\"\"Move one bike from Olin to Wellesley.\n", + " \n", + " state: bikeshare State object\n", + " \"\"\"\n", + " if state.olin == 0:\n", + " state.olin_empty += 1\n", + " return\n", + " state.olin -= 1\n", + " state.wellesley += 1\n", + " \n", + "def bike_to_olin(state):\n", + " \"\"\"Move one bike from Wellesley to Olin.\n", + " \n", + " state: bikeshare State object\n", + " \"\"\"\n", + " if state.wellesley == 0:\n", + " state.wellesley_empty += 1\n", + " return\n", + " state.wellesley -= 1\n", + " state.olin += 1\n", + " \n", + "def decorate_bikeshare():\n", + " \"\"\"Add a title and label the axes.\"\"\"\n", + " decorate(title='Olin-Wellesley Bikeshare',\n", + " xlabel='Time step (min)', \n", + " ylabel='Number of bikes')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's a modified version of `run_simulation` that creates a `State` object, runs the simulation, and returns the `State` object." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "def run_simulation(p1, p2, num_steps):\n", + " \"\"\"Simulate the given number of time steps.\n", + " \n", + " p1: probability of an Olin->Wellesley customer arrival\n", + " p2: probability of a Wellesley->Olin customer arrival\n", + " num_steps: number of time steps\n", + " \"\"\"\n", + " state = State(olin=10, wellesley=2, \n", + " olin_empty=0, wellesley_empty=0)\n", + " \n", + " for i in range(num_steps):\n", + " step(state, p1, p2)\n", + " \n", + " return state" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now `run_simulation` doesn't plot anything:" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
values
olin0
wellesley12
olin_empty1
wellesley_empty0
\n", + "
" + ], + "text/plain": [ + "olin 0\n", + "wellesley 12\n", + "olin_empty 1\n", + "wellesley_empty 0\n", + "dtype: int64" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "state = run_simulation(0.4, 0.2, 60)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "But after the simulation, we can read the metrics from the `State` object." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "state.olin_empty" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can run simulations with different values for the parameters. When `p1` is small, we probably don't run out of bikes at Olin." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "state = run_simulation(0.2, 0.2, 60)\n", + "state.olin_empty" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "When `p1` is large, we probably do." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "14" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "state = run_simulation(0.6, 0.2, 60)\n", + "state.olin_empty" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## More for loops" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`linspace` creates a NumPy array of equally spaced numbers." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([0. , 0.25, 0.5 , 0.75, 1. ])" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "p1_array = linspace(0, 1, 5)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can use an array in a `for` loop, like this:" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.0\n", + "0.25\n", + "0.5\n", + "0.75\n", + "1.0\n" + ] + } + ], + "source": [ + "for p1 in p1_array:\n", + " print(p1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This will come in handy in the next section.\n", + "\n", + "`linspace` is defined in `modsim.py`. You can get the documentation using `help`." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Help on function linspace in module modsim:\n", + "\n", + "linspace(start, stop, num=50, **options)\n", + " Returns an array of evenly-spaced values in the interval [start, stop].\n", + " \n", + " start: first value\n", + " stop: last value\n", + " num: number of values\n", + " \n", + " Also accepts the same keyword arguments as np.linspace. See\n", + " https://docs.scipy.org/doc/numpy/reference/generated/numpy.linspace.html\n", + " \n", + " returns: array or Quantity\n", + "\n" + ] + } + ], + "source": [ + "help(linspace)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`linspace` is based on a NumPy function with the same name. [Click here](https://docs.scipy.org/doc/numpy/reference/generated/numpy.linspace.html) to read more about how to use it." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** \n", + "Use `linspace` to make an array of 10 equally spaced numbers from 1 to 10 (including both)." + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.])" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "linspace(1, 10, 10)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** The `modsim` library provides a related function called `linrange`. You can view the documentation by running the following cell:" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Help on function linrange in module modsim:\n", + "\n", + "linrange(start=0, stop=None, step=1, **options)\n", + " Returns an array of evenly-spaced values in the interval [start, stop].\n", + " \n", + " This function works best if the space between start and stop\n", + " is divisible by step; otherwise the results might be surprising.\n", + " \n", + " By default, the last value in the array is `stop-step`\n", + " (at least approximately).\n", + " If you provide the keyword argument `endpoint=True`,\n", + " the last value in the array is `stop`.\n", + " \n", + " start: first value\n", + " stop: last value\n", + " step: space between values\n", + " \n", + " Also accepts the same keyword arguments as np.linspace. See\n", + " https://docs.scipy.org/doc/numpy/reference/generated/numpy.linspace.html\n", + " \n", + " returns: array or Quantity\n", + "\n" + ] + } + ], + "source": [ + "help(linrange)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Use `linrange` to make an array of numbers from 1 to 11 with a step size of 2." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Sweeping parameters" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`p1_array` contains a range of values for `p1`." + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1. ])" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "p2 = 0.2\n", + "num_steps = 60\n", + "p1_array = linspace(0, 1, 11)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following loop runs a simulation for each value of `p1` in `p1_array`; after each simulation, it prints the number of unhappy customers at the Olin station:" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.0 0\n", + "0.1 0\n", + "0.2 0\n", + "0.30000000000000004 0\n", + "0.4 0\n", + "0.5 8\n", + "0.6000000000000001 5\n", + "0.7000000000000001 18\n", + "0.8 31\n", + "0.9 35\n", + "1.0 38\n" + ] + } + ], + "source": [ + "for p1 in p1_array:\n", + " state = run_simulation(p1, p2, num_steps)\n", + " print(p1, state.olin_empty)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can do the same thing, but storing the results in a `SweepSeries` instead of printing them.\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
values
0.00
0.10
0.20
0.31
0.46
0.57
0.616
0.717
0.837
0.929
1.038
\n", + "
" + ], + "text/plain": [ + "0.0 0\n", + "0.1 0\n", + "0.2 0\n", + "0.3 1\n", + "0.4 6\n", + "0.5 7\n", + "0.6 16\n", + "0.7 17\n", + "0.8 37\n", + "0.9 29\n", + "1.0 38\n", + "dtype: int64" + ] + }, + "execution_count": 57, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sweep = SweepSeries()\n", + "\n", + "for p1 in p1_array:\n", + " state = run_simulation(p1, p2, num_steps)\n", + " sweep[p1] = state.olin_empty\n", + " \n", + "sweep" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And then we can plot the results." + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file figs/chap02-fig02.pdf\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plot(sweep, label='Olin')\n", + "\n", + "decorate(title='Olin-Wellesley Bikeshare',\n", + " xlabel='Arrival rate at Olin (p1 in customers/min)', \n", + " ylabel='Number of unhappy customers')\n", + "\n", + "savefig('figs/chap02-fig02.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Exercises\n", + "\n", + "**Exercise:** Wrap this code in a function named `sweep_p1` that takes an array called `p1_array` as a parameter. It should create a new `SweepSeries`, run a simulation for each value of `p1` in `p1_array`, store the results in the `SweepSeries`, and return the `SweepSeries`.\n", + "\n", + "Use your function to plot the number of unhappy customers at Olin as a function of `p1`. Label the axes." + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "numpy.ndarray" + ] + }, + "execution_count": 52, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def sweep_p1(p1_array):\n", + " sweep = SweepSeries() #initialize new SweepSeries\n", + " for p1 in p1_array: #for each value in p1_array, run simulation\n", + " state = run_simulation(p1, p2, num_steps)\n", + " sweep[p1] = state.olin_empty\n", + " return sweep\n", + " \n", + "run_simulation()" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plot(sweep_p1(p1_array), label='Olin')\n", + "\n", + "decorate(title='Olin-Wellesley Bikeshare',\n", + " xlabel='People going from Olin to Wellesley (p1 in customers/min)', \n", + " ylabel='Number of unhappy customers')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Write a function called `sweep_p2` that runs simulations with `p1=0.5` and a range of values for `p2`. It should store the results in a `SweepSeries` and return the `SweepSeries`.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": {}, + "outputs": [], + "source": [ + "def sweep_p2(p1_array):\n", + " sweep = SweepSeries()\n", + " for p2 in p1_array:\n", + " state = run_simulation(p1, p2, num_steps)\n", + " sweep[p2] = state.olin_empty\n", + " return sweep" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plot(sweep_p2(p1_array), label='Wellesley')\n", + "\n", + "decorate(title='Olin-Wellesley Bikeshare',\n", + " xlabel='People going from Wellesley to Olin (p2 in customers/min)', \n", + " ylabel='Number of unhappy customers')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Optional exercises\n", + "\n", + "The following two exercises are a little more challenging. If you are comfortable with what you have learned so far, you should give them a try. If you feel like you have your hands full, you might want to skip them for now.\n", + "\n", + "**Exercise:** Because our simulations are random, the results vary from one run to another, and the results of a parameter sweep tend to be noisy. We can get a clearer picture of the relationship between a parameter and a metric by running multiple simulations with the same parameter and taking the average of the results.\n", + "\n", + "Write a function called `run_multiple_simulations` that takes as parameters `p1`, `p2`, `num_steps`, and `num_runs`.\n", + "\n", + "`num_runs` specifies how many times it should call `run_simulation`.\n", + "\n", + "After each run, it should store the total number of unhappy customers (at Olin or Wellesley) in a `TimeSeries`. At the end, it should return the `TimeSeries`.\n", + "\n", + "Test your function with parameters\n", + "\n", + "```\n", + "p1 = 0.3\n", + "p2 = 0.3\n", + "num_steps = 60\n", + "num_runs = 10\n", + "```\n", + "\n", + "Display the resulting `TimeSeries` and use the `mean` function provided by the `TimeSeries` object to compute the average number of unhappy customers." + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": { + "collapsed": true + }, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Continuting the previous exercise, use `run_multiple_simulations` to run simulations with a range of values for `p1` and\n", + "\n", + "```\n", + "p2 = 0.3\n", + "num_steps = 60\n", + "num_runs = 20\n", + "```\n", + "\n", + "Store the results in a `SweepSeries`, then plot the average number of unhappy customers as a function of `p1`. Label the axes.\n", + "\n", + "What value of `p1` minimizes the average number of unhappy customers?" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 2c63d131285b6f07277b3398c1d021790c2e4a48 Mon Sep 17 00:00:00 2001 From: Annie Tor Date: Fri, 14 Sep 2018 16:49:34 -0400 Subject: [PATCH 02/18] Adding chapter 6 --- code/chap06.ipynb | 533 +++++++++++++++++++++--- code/chap06mine.ipynb | 949 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1422 insertions(+), 60 deletions(-) create mode 100644 code/chap06mine.ipynb diff --git a/code/chap06.ipynb b/code/chap06.ipynb index 20ac99f5..5d9f68ef 100644 --- a/code/chap06.ipynb +++ b/code/chap06.ipynb @@ -15,7 +15,7 @@ }, { "cell_type": "code", - "execution_count": 1, + "execution_count": 48, "metadata": {}, "outputs": [], "source": [ @@ -41,7 +41,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 49, "metadata": {}, "outputs": [], "source": [ @@ -55,9 +55,26 @@ }, { "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], + "execution_count": 50, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Year\n", + "1950 2.525149\n", + "1951 2.572851\n", + "1952 2.619292\n", + "1953 2.665865\n", + "1954 2.713172\n", + "Name: un, dtype: float64" + ] + }, + "execution_count": 50, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "un = table2.un / 1e9\n", "un.head()" @@ -65,9 +82,26 @@ }, { "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], + "execution_count": 51, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Year\n", + "1950 2.557629\n", + "1951 2.594940\n", + "1952 2.636772\n", + "1953 2.682053\n", + "1954 2.730228\n", + "Name: census, dtype: float64" + ] + }, + "execution_count": 51, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "census = table2.census / 1e9\n", "census.head()" @@ -75,9 +109,20 @@ }, { "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], + "execution_count": 52, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.07224800083333333" + ] + }, + "execution_count": 52, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "t_0 = get_first_label(census)\n", "t_end = get_last_label(census)\n", @@ -106,9 +151,67 @@ }, { "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [], + "execution_count": 53, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
values
t_01950.000000
t_end2016.000000
p_02.557629
annual_growth0.072248
\n", + "
" + ], + "text/plain": [ + "t_0 1950.000000\n", + "t_end 2016.000000\n", + "p_0 2.557629\n", + "annual_growth 0.072248\n", + "dtype: float64" + ] + }, + "execution_count": 53, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "system = System(t_0=t_0, \n", " t_end=t_end,\n", @@ -125,7 +228,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 54, "metadata": {}, "outputs": [], "source": [ @@ -154,7 +257,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 55, "metadata": {}, "outputs": [], "source": [ @@ -184,9 +287,22 @@ }, { "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [], + "execution_count": 56, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "results = run_simulation1(system)\n", "plot_results(census, un, results, 'Constant growth model')" @@ -208,7 +324,7 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 57, "metadata": {}, "outputs": [], "source": [ @@ -239,7 +355,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 58, "metadata": {}, "outputs": [], "source": [ @@ -256,9 +372,29 @@ }, { "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [], + "execution_count": 59, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file figs/chap03-fig03.pdf\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "results = run_simulation2(system)\n", "plot_results(census, un, results, 'Proportional model')\n", @@ -288,10 +424,8 @@ }, { "cell_type": "code", - "execution_count": 13, - "metadata": { - "collapsed": true - }, + "execution_count": 60, + "metadata": {}, "outputs": [], "source": [ "def update_func1(pop, t, system):\n", @@ -303,6 +437,9 @@ " \n", " returns: population next year\n", " \"\"\"\n", + " print(t)\n", + " print(pop)\n", + " \n", " births = system.birth_rate * pop\n", " deaths = system.death_rate * pop\n", " return pop + births - deaths" @@ -317,9 +454,20 @@ }, { "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [], + "execution_count": 61, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 61, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "update_func1" ] @@ -333,9 +481,20 @@ }, { "cell_type": "code", - "execution_count": 15, - "metadata": {}, - "outputs": [], + "execution_count": 62, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "function" + ] + }, + "execution_count": 62, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "type(update_func1)" ] @@ -349,10 +508,8 @@ }, { "cell_type": "code", - "execution_count": 16, - "metadata": { - "collapsed": true - }, + "execution_count": 63, + "metadata": {}, "outputs": [], "source": [ "def run_simulation(system, update_func):\n", @@ -381,9 +538,72 @@ }, { "cell_type": "code", - "execution_count": 17, - "metadata": {}, - "outputs": [], + "execution_count": 64, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
values
t_01950.000000
t_end2016.000000
p_02.557629
birth_rate0.027000
death_rate0.010000
\n", + "
" + ], + "text/plain": [ + "t_0 1950.000000\n", + "t_end 2016.000000\n", + "p_0 2.557629\n", + "birth_rate 0.027000\n", + "death_rate 0.010000\n", + "dtype: float64" + ] + }, + "execution_count": 64, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "t_0 = get_first_label(census)\n", "t_end = get_last_label(census)\n", @@ -398,11 +618,160 @@ }, { "cell_type": "code", - "execution_count": 18, - "metadata": { - "collapsed": true - }, - "outputs": [], + "execution_count": 65, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1950.0\n", + "2.557628654\n", + "1951.0\n", + "2.601108341118\n", + "1952.0\n", + "2.645327182917006\n", + "1953.0\n", + "2.6902977450265952\n", + "1954.0\n", + "2.7360328066920476\n", + "1955.0\n", + "2.7825453644058125\n", + "1956.0\n", + "2.829848635600711\n", + "1957.0\n", + "2.8779560624059233\n", + "1958.0\n", + "2.926881315466824\n", + "1959.0\n", + "2.9766382978297603\n", + "1960.0\n", + "3.0272411488928666\n", + "1961.0\n", + "3.078704248424045\n", + "1962.0\n", + "3.131042220647254\n", + "1963.0\n", + "3.184269938398258\n", + "1964.0\n", + "3.2384025273510284\n", + "1965.0\n", + "3.293455370315996\n", + "1966.0\n", + "3.349444111611368\n", + "1967.0\n", + "3.406384661508761\n", + "1968.0\n", + "3.46429320075441\n", + "1969.0\n", + "3.523186185167235\n", + "1970.0\n", + "3.583080350315078\n", + "1971.0\n", + "3.6439927162704344\n", + "1972.0\n", + "3.7059405924470314\n", + "1973.0\n", + "3.768941582518631\n", + "1974.0\n", + "3.833013589421448\n", + "1975.0\n", + "3.8981748204416125\n", + "1976.0\n", + "3.9644437923891203\n", + "1977.0\n", + "4.031839336859735\n", + "1978.0\n", + "4.100380605586351\n", + "1979.0\n", + "4.170087075881319\n", + "1980.0\n", + "4.240978556171301\n", + "1981.0\n", + "4.313075191626214\n", + "1982.0\n", + "4.3863974698838595\n", + "1983.0\n", + "4.460966226871885\n", + "1984.0\n", + "4.536802652728707\n", + "1985.0\n", + "4.613928297825096\n", + "1986.0\n", + "4.692365078888122\n", + "1987.0\n", + "4.77213528522922\n", + "1988.0\n", + "4.8532615850781164\n", + "1989.0\n", + "4.935767032024445\n", + "1990.0\n", + "5.0196750715688605\n", + "1991.0\n", + "5.1050095477855315\n", + "1992.0\n", + "5.191794710097886\n", + "1993.0\n", + "5.28005522016955\n", + "1994.0\n", + "5.369816158912433\n", + "1995.0\n", + "5.461103033613944\n", + "1996.0\n", + "5.553941785185382\n", + "1997.0\n", + "5.648358795533533\n", + "1998.0\n", + "5.744380895057604\n", + "1999.0\n", + "5.8420353702735826\n", + "2000.0\n", + "5.941349971568234\n", + "2001.0\n", + "6.042352921084894\n", + "2002.0\n", + "6.145072920743337\n", + "2003.0\n", + "6.249539160395973\n", + "2004.0\n", + "6.355781326122704\n", + "2005.0\n", + "6.46382960866679\n", + "2006.0\n", + "6.573714712014126\n", + "2007.0\n", + "6.685467862118366\n", + "2008.0\n", + "6.799120815774378\n", + "2009.0\n", + "6.9147058696425425\n", + "2010.0\n", + "7.032255869426465\n", + "2011.0\n", + "7.151804219206714\n", + "2012.0\n", + "7.273384890933229\n", + "2013.0\n", + "7.397032434079093\n", + "2014.0\n", + "7.522781985458438\n", + "2015.0\n", + "7.650669279211232\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "results = run_simulation(system, update_func1)\n", "plot_results(census, un, results, 'Proportional model, factored')" @@ -438,10 +807,8 @@ }, { "cell_type": "code", - "execution_count": 19, - "metadata": { - "collapsed": true - }, + "execution_count": 66, + "metadata": {}, "outputs": [], "source": [ "def update_func2(pop, t, system):\n", @@ -466,9 +833,22 @@ }, { "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [], + "execution_count": 67, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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TAx1dPToUSwWC0oprFYZXvBUYhgGdrudgwcPAkiQEmKUcblcVFVVER0dzYQJE4b13GPi17yxsZGkpCQJTqcgi8VCREQEkyZNorb2tJnmRohTQnt7O5988gk7duzgs88+o62tbVjPPyZyUG63m5CQkJFOhvgcwsPDcbmkQacQo0VraysbNmzwBSWr1TrsmYAxEaDAfBIXpy75/IQYPZqamtiwYQMOhzlknsViYe7cuYSFhQ1rOsZMgBJCCPH51dfXU1BQ4CvRCAoKIj8/n8TExGFPi1TaDDOlFCUlPYcfvOSSS3j55Zd9719//XUuueQS8vLyWLBgAddeey07d+7s99jr16/nqquuYtGiRSxcuJBvfetbFBQUDPo1CCHGptraWjZs2OALTiEhISxevHhEghNIgBqVCgoKuP/++7nnnnvYvHkz69evZ968eXz729+mvr6+131eeukl7rjjDq688krWr1/Pxx9/zKpVq7juuuvYtGnTMF+BEOJUU1VVRUFBAW63OVReaGgoS5YsYfz48SOWJglQo9C2bdtIS0tj/vz5WK1WwsLCuOGGG7j44ot7DVB2u51f/epX/PznP2fFihXYbDZsNhtf+9rXuP7669m7dy9gNiZ56qmnOPfcc1m0aBG33nqr73gbN27k4osv5sEHH2TRokWceeaZPPbYY75z/P3vf2fFihUsWLCAr3zlK3z00Ue+/fLz8/3Sc8455/Duu+/2u58QYvSoqKigqKiIzvkBIyIiWLp0KbGxsSOarjFbB1Wws4aCXTUALJyZzMIc/2k6Pt52kK1lRwBYOieFPOWfhX1/8wF2VtQBcPb8KeSkx/utf3tDJbsPNPR67M9r+fLlPPnkk6xevZoVK1Ywf/58srKyuO+++3rdvqioCKfTyVlnndVj3Q033OB7/ec//5nXXnuNZ599lsTERB544AF+8IMf8PzzzwNQXl7OihUr+Pjjj9m4cSPXXHMNF110EXFxcdx99928+uqrZGRk8L//+7/cf//9vP322/1eR319fZ/7SaMIIUaeYRiUlpZSXl7uWxYdHc3ixYuHvUFEbyQHNQplZGTwj3/8g6ysLNauXctll13G0qVL+f3vf09vMyDX19cTGxs7YFP7devWcfPNNzN16lTCwsK4/fbbKSwsZN++fYDZUufGG28kJCSEZcuWkZCQQGVlJTabjeDgYF56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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "system.alpha = system.birth_rate - system.death_rate\n", "\n", @@ -492,24 +872,57 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 92, "metadata": { - "collapsed": true, "scrolled": false }, "outputs": [], "source": [ - "# Solution goes here" + "def updatefunc3(pop, t, system):\n", + " \n", + " system.alpha1 = 0.018\n", + " system.alpha2 = 0.015\n", + " \n", + " if t < 1980:\n", + " growth = system.alpha1 * results[t]\n", + " return pop + growth\n", + " \n", + " if t >= 1980:\n", + " growth = system.alpha2 * results[t]\n", + " return pop + growth\n", + " \n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 93, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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OcKGDRvo6uoCzOCUl5dHSEjIsJZj3AQoIYQQp66yspItW7bg8XgAsNvtzJ8/f9j7n0CGmQ87pRRFRUXHbL/88st5/fXXfc/ffvttLr/8cvLy8pg/fz433ngjO3fuHPDYn3zyCddeey0LFy5kwYIFfO1rX6OgoGDQX4MQYvwxDIM9e/awadMmX3AKCQlhyZIlIxKcQALUqFRQUMBDDz3E/fffT2FhIZ988glz587l61//OnV1dX3mee2117j77ru55ppr+OSTT1i7di2XXXYZN910Exs3bhzmVyCEGEsMw2Dnzp1+F8GRkZEsXbp0RAcuSYAahbZu3crkyZOZN28eVquVkJAQbrnlFi699NI+A1R7ezs//elP+fGPf8zy5ctxOBw4HA6uuuoqbr75Zvbu3QuYg0meffZZzj//fBYuXMidd97pO9769eu59NJLeeSRR1i4cCFnn302Tz75pO8cf/7zn1m+fDnz58/ni1/8Ih9//LEvX35+vl95zjvvPD744IMB8wkhRge3201hYaHvdwIgNjaWM888k9DQ0BEs2TjugyrYeZCCXQcBWJCTzIJc/2U61m6tZEvxYQCWzE4hTyX67f+o8AA799QCsGxeOrlT4/z2/31dOSUH6vs89qk699xzeeaZZ1i5ciXLly9n3rx5ZGdn8+CDD/aZfvPmzTidTs4555xj9t1yyy2+x7/73e946623ePHFF0lMTOThhx/mW9/6Fi+//DIApaWlLF++nLVr17J+/XpuuOEGLrnkEmJiYrjvvvv4y1/+QmZmJn/605946KGH+Pvf/z7g66irq+s3nwyKEGLkOZ1OCgoKqK+v921LSUnhjDPOwGazjWDJTFKDGoUyMzN58803yc7OZtWqVVx55ZUsWbKEX/3qVxiGcUz6uro6oqOjjzvUfvXq1dx+++1kZGQQEhLCd7/7XTZs2MC+ffsAcyTdrbfeSlBQEEuXLiUhIYHy8nIcDgd2u53XXnuN7du3c+WVVwYUZE42nxBi6LW2trJ27Vq/4DR16lTmzp07KoITSIAadg6Hwzd0sye3201wcLDv+aRJk/j+97/PX//6V/7973/zzW9+k+eff55Vq1YdkzchIYGGhoY+7yNqbm7G6XQCUFVVxb333kt+fj75+fmcffbZ2O123ywOERERfmUICgrC4/EQERHByy+/THl5OStXrmTp0qU899xzfQbLnk42nxBiaNXV1bF27Vrf9HAWi4WZM2eSm5s7qi4gx20T34LcgZvels5JZemc1H73L5uXzrJ56f3uv3DRJC5cNOmEy5WcnExVVRWzZs3ybevq6qKqqsq3WvBXv/pVLrjgAq699lrAbA/+yle+wvbt29FaH3PM7vsT1qxZw/Lly/32Pfroo5SXl/Pyyy+TmJjI/fffz1lnneXbX1xczOTJk9m8eXO/ZW5sbPT1X7lcLj799FPuuOMO8vPzsdlsfoHRMAwaGxuPm693v5UQYnhUVVWxefNm30g9m81GXl4eyUmJGIYxqgKU1KCG2aWXXspTTz1FWVkZYE7T9Mgjj5CQkMDs2bMBuPjii3n22Wf54IMPcDqdOJ1O1q9fz5o1azj//POPOabD4eCuu+7i/vvv58MPP6Srq4u2tjZefPFF3nzzTW677TYArrjiCp5++mmqq6txu908//zzXH311b47xftTV1fH9ddfT0FBAUFBQSQlJWGxWIiOjiYjIwOn08m7776L2+3m5Zdf9l2VDZRPCDG8DMOgpKSEwsJCX3AKDg5m8eLFJEZH0PDvN2nfs2WES+lv3NagRqvbbrsNm83GzTffTG1tLcHBwSxatIiXXnrJ14f0ta99jZCQEJ555hnuvvtuDMNg2rRp3H///SxdurTP4375y18mMjKS5557jnvuuQfDMMjJyeGFF15g/vz5ANx00010dXVx9dVX09DQQFZWFi+88MJxh5FOmTKFBx98kPvuu4+amhpiYmL4wQ9+QGZmJgA/+MEPePTRR/nhD3/I5Zdfzty5cwPKJ4QYHh6Ph+3bt7N//37ftoiICBYuXIi95Qj1Gz/EcHXS1XgEe3QCjvi0ESztUZax0B+glJoM7P3www9JSzv2jSsqKmLGjBnDXi4xuOT/KMTgc7lcFBYWcvjwYd+2uLg48vPzce3bSlvpJsCMAwYWqqNnkzbzDOKiB3eIeUVFRXcL0BSt9b5A8kgNSgghxqnW1lYKCgp8s5EDpKWlkTsljbbCd3HVH/Rtb/c4WN+lOFQVSrq7isvOmjri/VHSByWEEONQ90i9nsEpc9pUpge10PjZ637BKSgulbCFV1DTFQHAgUPN7D/UPOxl7k1qUEIIMc5UVFSwdetW32AIq9VKTmosUVUb6XC2H01osRA2bS5hmfOwWKzMnNpG8YF6FsxIJi0xcoRKf5QEKCGEGCcMw0BrTUlJiW9bcHAw+fn5WIvX4nK2YxgGdU0dhCSkk7bofOwRMb60C2eat+eEBo+O0CBNfEIIMQ50dXVRWFjoF5y6J3yNjY0lIncpHU4Pu6s7KejK5lNXLpawCX7HCHHYR01wggBrUEopGzAPyAcSATdwENigtR5dA+eFEOI0097ezoYNG3w3yXvamkmaNIX8/PnY7ebPvD0ylqj8i9AFjXS6LdDSye59dcfMMzqaDBiglFIxwDeAW4A4YA9QC9iAeGCSUqoaeBZ4WmvdMLTFFUII0VN9fT0bNmygs7MTw9WJq/4gKcFdzEqY4QtO3aLTpjKvtYbCokPMz0kie1JMP0cdHfoNUEqplcCPgA+B64EPtNadvdJEAWcBVwM7lFL3aq1f7ud4VwPP9docCnyotb7g5F+CEEKcnnyDIdxddDUewd1SS1ZsCMkRIRzY+ClGVzwzlP+UbXOmx5M9KYawkIEnlx4NBqpBzQfma60P95dAa90E/BX4q1JqInAv0GeA0lr/AfhD93OlVB7wPvDdkyi3EEKctgzDoKioiLKyMtxtTXQ1HMJuuJmTFEaYzUJpRSNVQek07TrClMkTCenRr2SzWQmzjY3hB/2WUmt9x0DBqY/01Vrr2wNJq5QKwgxWD2ittwZ6jvEgkCXfn3zySWbPnk1paalfmr4WB+z2+uuvM2PGDPLy8sjLy2POnDlcfPHFvPDCC36zh5933nnMnj3bl67778ILL/SlKS8v57bbbmP+/Pnk5eWxYsUKfv/73/d53ksuuYSzzz67z5nUhRCDz+VyUVBQQOnuIpw1+3HVVhJq9TB3YjgTQuyEJqSxP/kcDkbm0NZlYVvpkZEu8kkLeLiGUioRmA0EAX63F2ut3z3B894GtAPPnGC+00ZnZyd33XUXq1evxuFwBJQnKyuLv/zlL4B5hbV582buuusumpqa+Na3vuVL97Of/eyYWc+7eTwebrzxRlasWMFjjz1GSEgIW7Zs4bbbbsPhcPClL33Jl7Z7EtiEhATef/99Lr300lN4xUKI42lpaaFg/Toaq8rpajYXVI0LtTMjIRRHaBjh2WcSnDKd/MpG/rnxAPkzkpgzPX6ES33yAh3Fdz1mMOmr0dLAHDQREKWUA7NZ77+01qN/IsARsnjxYqqqqnjiiSe4++67Tzi/xWJh7ty5PPTQQ9x0001cf/31x50UFswO1/LyclasWOFb7jkvL4+7777bt65Ut1WrVvG5z32OuLg4XnnlFQlQQgyhmpoaNm3aRHvdQTM4GRDrsJDkgMipswnLzMcaZK7nNi01mrSECL+mvbEo0NJ/F/g1cI/W+lTnv7gI8GD2XQ2Z1uINtJUWBpQ2JH0GkbP8l0tv3r6GjgPHNsX1FjZ9HuFZ80+qjAMeNyyMRx55hGuuuYZzzjmHhQsXntRxFi9ejNVqZfPmzX0uCd9bXFwcCxYs4LrrruOyyy7zNfNdccUVfunq6ur48MMP+dvf/kZkZCSPPPII27dv91vnSghx6gzDoKysjN27d2MYBvaIWNzN9US42unwTGCdbRap6UeDE5gXqGM9OEHgN+qmA78YhOAEcDmwWmvtGYRjjWtnnHEGN998M9/73vdoamo6qWN0r7/Ucz6uu+66y7doYPffU0895dv/wgsvcOONN7Jt2zbuuOMOFi1axK233srBg0fn7nrjjTdYvHgxEydOJCIigssuu6zffiohxMlxdbRTuH4dRUVFvr7k0LAwzv7cRRjpC9kbs5h2WySbi2tGuKRDI9AQ+z5wPlByvIQBWATcNwjHGZMCXfK926233sratWt58MEH/fp/AuV2u2lqamLixIm+bY899li/fVDdZbzmmmu45pprcDqdFBYW8sQTT3DnnXeyatUqDMNg9erV1NTUsGTJEsDsM+vs7OTuu+8mLm703vgnxFhgGAYNe3eybs0/aTNsOBIyALOFY968eQQHBzN3wiQqPi5jXnYSczLHbj/TQAINUFuBnymlLgOKAb/OCK31iXSSTAaqTiD9SQnPmn9KTW+Rs845ptlvMASy5HtPNpuNRx99lMsvv5ywsLATPl9BQQGGYZCVlRVQ+lWrVvHqq6/yxhtvAGawWrx4MUFBQdxwww0ArFu3joaGBt577z2s1qOV8JtvvplXX33Vt4KvEOLEdTXXs7/gH2wtKcfp9tDR2UV7p4MlSxeRm5vr+84lxYZx7YocguwBDwEYcwJt4jsHWI95Y+0cvPdIef/6HvfcD611uNZ63YnkGU8CWfK9t4yMDL7//e+zevXqgM/j8XgoKCjgvvvu4+abbyYiIiKgfOeccw779+/n4Ycfpra2FsMwOHDgAC+++KJvuflVq1Zx0UUXkZSUREJCgu/vC1/4Aq+++qoMORfiJHi6nDTv+pSt77xCod6Hy+2hqcVJhwus9mjikqf4XRAC4zo4QYA1KK31sqEuyOkikCXf+3LVVVexZs0a1q3rP7YXFxeTl5cHgN1uJzU1lRtuuIGvfOUrfum+/e1vY7Md+8F+7733SE5O5o9//CNPPvkkK1asoL29nZiYGC666CK+8Y1vUFtbywcffMBLL710TP4VK1bw8MMP8/e//50VK1YE+I4IcXozDIPOqhIad33Krsp6jrSZXQAWiwVHVDxNETlYQqIp3l9PSkJgF5rjRcBLviulkoDbgVzMmlcR8Gut9Z6hK57v3JORJd/HPfk/itNNV1MtLbvW0niogu2H2mjvMn+PrcFhJE5RqDkL+WhzNfNnJDMlJWrEV7g9FUO25LtSagHwD+AA8BnmjborgDuUUudqrTeeVImFEOI05W5rpv7T16hq6GBrVQsuj0F0VBj2CUlMz51DTk4OVquVL50fOaYD06kIdJDE48D/Abf0vLlWKfUU8CggTYBCCHECrKER7HNHs2V/DR4DOu2RBEelce6SRX4tRadrcILAA1Q+cEMfMz88CQR2N6wQQpzGPK5O3820nZ2dFBYWUusOxhERRY0rDCMonKTJs/vsxjhdBRqgqjGHh+te26cCg3HzrhBCjEuejlZa9Xqchw8QseQqWts7KCwspKOjA6x2JqRPxd1q43PLFpOePLrXZxpugQaoV4DnlVLfBLqHkS0Gfu7dJ4QQogfD46Z933baSgtxdXZyqLaVot/9H+Epib7Zti0WCznZiunTp5/WTXn9CTRA/QRIAVZjjuCzAC7MJr57h6ZoQggxNjlr9tNS9Cnu1kYwoKyykf0tXdQZ9bSFRJAYG4bD4WDu3LkkJCSMdHFHrUDvg3ICNyql7gIU5lIZpVrr9qEsnBBCjCVdLQ20Fn2G8/B+37Zmp5uDhFJtC8FlDcHa5WHChAnk5+f7VgwQfRtoyfdLgH9orV3ex72lK6WAk1oPSgghxg1Pl5O20kI69m6nq6sLm82KYRgcbDfY1xVJcMoEwg+3Eh0RzKzcLN8QcjGwgWpQ7wDJQI33cX9OaD0oIYQYTwzDoHHdW3TW11BT305DSydTUqKpsMVxJCgES7D58zgpZQJz5swhJSVlhEs8dvQboLTW1r4ei9HpySefpKioiGeeGXiR4u67uTds2BDQAoZCiIFZLBZCp8ymVL9Ja7uLBmsUZQ2xxMeF+2Y7jYqKYt68eQHPiSlMY39FKyGEGEYeZztWh3/fUXBKJonTFO8Xt1Pb0Um400OcARaLOdnzzJkz+5z/UgxsoD6ow5jNd8eltU4ctBKNcxUVFVxxxRXceeedPPvss7hcLu644w6sVivPPvssTqeTW265hWuvvZbPPvuMxx9/nL1795Kamsptt93GRRdd5DvOvffey7Zt25g6dSpTp071O8/q1at54YUXqKurY/bs2TzwwAOkp6ePxEsWYlwwuly07dlC+54tBM2+gOiUSb59breb2qh0CC4hPSqCqHAHNpuNWbNmyffz7SYWAAAgAElEQVTuFAxUg/ouAQao0aasrIzi4uI+FwYcbHa7naysLKZNmxZwnubmZnbs2MFHH33EBx98wF133cXll1/Ohx9+yCeffMIdd9zBrFmzuPnmm3n44Ye54IIL2LBhA7feeisJCQnMmzePO++8k5ycHH7961+jteb6668nP99c+eT999/nl7/8Jc899xyZmZm8+OKL3HjjjbzzzkBdiUKIvnTPNt6q1+Nqbaamvp3qt95izlXXkRwXQVNTE4WFhbS0tJAca67ZFhkZybx584iMjBzh0o9tA/VBvTSM5RhUe/bsGZbgBOZig3v27DmhAAXmSrndiwG63W5WrlyJw+Fg2bJluN1ufvvb37Jw4UIuucQcQLl48WI+//nP88Ybb5CYmMiOHTv4zW9+g8PhYNasWVx++eVUVlYCZu1p5cqV5ObmAnDTTTfxyiuvsH79eiZNmtRvmYQQ/lz1B2nZ9RldjeaS6tW1rTS2OPHYHfx7YxlzMiMpKirC4/H48kiT3uAZqIkv4NXxtNYnvhb5EJo6deqw1qB6N68FYsKECQC+D3H3lVb30NOOjg5SU1P98qSlpbF+/XoOHz5McHAwMTExfvu6A1RVVRXPPPMMzz//vG+/y+WiqqpKApQQAXC3NdOq19NZXeq3PSkpjiJbIrVBSYTWVrKtowub1ZwBwm63M2vWLJlLbxAN1MTXOmylGGTTpk074RrNcDvetCb5+fls3Oi/ismBAweIj48nKSmJzs5OamtriYuLA+DQoUO+dImJiaxcudJvocKysjJSUlKora0dxFchxPji6XLSXraZ9r3b6OhwEhxkAwtYrDZCp8wmdFoe6Vv24agoIdjmAe+kRdHR0cydO1dG6Q2ygZr4rhvOggh/S5cu5dlnn+Xdd9/lwgsvpKCggLfffpunnnqK1NRUFixYwMMPP8yDDz5IeXk5r7/+OnPnzgXgiiuu4Fe/+hXz589n6tSpvPPOO9xzzz2888472O0ycFOI/rTu+ozmfbuoqW+jobmT9MRIEqZnE569CGtoJCUlJTQeLCbYdrR7furUqcyYMUNuvB0CAzXxPQI8qLVu9T7uj6G1/u/BL9rpzW6388wzz/D4449z7733kpSUxIMPPsjSpUsB+PnPf869997LmWeeSUpKCsuXL6eurg4wA1RTUxO33norNTU1ZGRk8PTTTzN58mQqKipG8mUJMaqFTctj3/YtNDR30m6PptA+hyvnLKGzs4PNn33m+44BOBwO5syZQ3Jy8giWeHwb6HJ6PhDU43F/xuRIv5GSlpaG1kdXLYmKivJ7Dvg9X7JkSZ/HiY+P57nnnuv3PCtXrmTlypXHPb8Qp6uulgZsIeFY7EG+bbbwaNLzl1K06TA1tmQmJ0azf38FxXoXLpfLly4uLo68vDyZS2+IDdTEt6yvx0IIMZZ5nB20lRbSXr6DzoQckvOWYLcdbZ6boPLJC6snyAYNNeXs3HHAt89isaCULI8xXALukFBKhQNfAXIBJ7ATWOWd6VwIIUY1w+Omo3wnraWFdLa1caiujYaytRx2pJE3e4pf2oRIC5s2baK19ehYsbCwMObOnes3elYMrYAClFJqFvAvzMC0DXOGqeuAHymlLtZa7x6yEgohxCkwDAPnoX207l6Hu60RgJY2F02tTtqDYtlffBCVlUZYSBCGYVBSUkJxcTGGcbT3IjU1lVmzZhEUFNTfacQQCLQG9WvgTeC/tNYuAKVUKPAb4DngnKEpnhBCnDxXYw2tRetw1VX5bY9LTmRXcDKVXTFkpccC0NbWxubNm/0GQnTf25SamipNeiMg0AA1B1jZHZwAtNbtSqkfA5uHpGQnyDAM+QCNYT3vxBfiVLnbW2grLqCjopjmdiehwXbsNiuWoGDCp88jZFIuC+vasVosJMWGUVlZyfbt2/1u7o+NjSUvL4+wsLARfCWnt0AD1CbgLKC41/Z8YNeglugkhISE+G5alSA1thiGgcvl4tChQ4SHh490ccQ44azZR+PeXVTXttHa7iImKoRp+YsImz4PqyMEgJT4CJxOJ4WFhVRXV/vyWiwWsrKyyMzMlN+TETbQfVC39nhaADyllMoH1gFuYDZwC/BwoCdTSk0EfgUsAzqA57XW951Euf2kpaVRUVHB4cOHT/VQYgTY7Xaio6OJj48f6aKIcSIkIwfXjk20tjfSFJxEiWMGaalzifAGJ4Camhq2bt1KR0eHb1t4eDh5eXkyEGKUON5s5j0dBC7y/nU7Avwn8FCA5/sLUAgkAROBNUqpIq31HwPM36egoCCmTJly/IRCiHHHefgA1uBQ7FFHL3AsFiupi5az27afAy2h5E6JJTTY/Lnr6uqiqKiIffv2+R1n0qRJ5OTkyGwro8hA90EN6i++UmohMBVY4u3L2quUOhdoH8zzCCFOD13NdbTu/jfOmgM0WKKIXfIF4qKP3jjriEth0ZJYFngM3/b6+no2b97sN3w8ODiYOXPmkJSUNOyvQQxsoCa+r2utXw70QEopC3Cd1vq3/SSZB2wHHlBKXYvZxPeM1vrxEyivEOI05+lso7VkIx37i+jodFF1pJX2zlr2UsAFl/gPKI6JNJv0PB4PxcXFlJaW+g0fT05OZvbs2QQHBw/raxCBGagum6eU+g7wLPCG1rq6r0RKqUTgq8BNwAcDHC8Wc6DFGsyaVDbwnlKq+lSb+IQQ45/h7qJ933bayjZhdJkDii0WaO90UxeaTk1TMOUHm5iUHOWXr6mpic2bN9PU1OTbZrfbmTlzJmlpaTIQYhQbqInvm95BEfcDTyildmHOHnEEc475BMzh51nA34BrtdYFA5yrE2jSWj/gfb5VKfUb4EpAApQQok+GYdBZXUabXo+7vdlvX2TKZKwJkzh00MMZWQlMjAv3y1daWkpxcbHfbQzx8fHMmTNHho+PAQP2BmqtNwKXKaWmABdjDiufDngwB038EnhXa70/gHPtBsKUUo4e0yNJb6QQol9dTbW07PgYZ/0hGpo7cATZCA8NwhYRQ0T2YoIS0snv7OIMt0FUuMOXr7m5mS1bttDQ0ODbZrPZmDFjBpMnT5Za0xgRUIDQWu8FnjnFc/0DOAw87m06VMD1mEPVhRCiTy01VVTUNNPhdGMPCWXuvGWETsrBYjEneA0LOTr9kGEYlJWVobX2qzVNmDCBvLw8WVBwjBm2GozWukMpdQ7wJFCNOUjiEa31n4erDEKIscUeFUfopBw6q9ZxJGwqNeHTifFMJNdy7OKALS0tbNmyhfr6et82q9WKUopp06ZJrWkMGtYmNq31HuDS4TynEGL06+5nwt1FSHq2376Y3EVEWjPYXdbK/OxEsjJijsnbX63pjDPOIDIyclhegxh80gckhBhRXY2Hadn1Ka66gzS0ezCc0WRNm+jbb3WEMnvmFLKy3ESE+s8m3ldfk9VqJSsrS9ZsGgckQAkhRoSns53W4vV0HNC4XG4O1DTT3tlF02cfk5H+RUIcR3+e7DYrEaFHm/U8Hg+lpaWUlJQcU2uaM2cOUVH+Q83F2HQiCxbmYd5sG4Q5zNxHa32qAyiEEKcJw/DQsW8HrSUbMbrMAb02mwWXG7OfyTGNLcWHWTRzYp/5Gxoa2Lp1q999TdLXND4FumDhvcCPgTqguddug1Mf4SeEOA04a6to3bmWrpY6v+0hSZNIVrls39ZAXlYi87ITj8nrdrspLi6mrKzMbzaImJgY5syZI31N41CgNagbgPu01j8ZysIIIcYnj7ODlp1r6awupbXdRafLTWxUCLawaCJyluBIzCDKMEhOnUhEmOOY/LW1tWzdutVvDj2bzUZ2djZTpkyRWtM4FWiAigNWD2VBhBDjl8Vmo7O2mopDzTS2OjGsdmJmnklMzjwsVpuZxmI5Jji5XC6KioooLy/32x4XF8ecOXNkDbFxLtAA9RpwNfDA0BVFCDFeWWxBROaeiXPvazSEpHAwYgadzYlc5A1OfamurmbHjh1+6zXZ7XZycnLIyMiQWtNpINAA1Q7co5S6CigBnD13aq2/NNgFE0KMTe6OVpzVZYROme23PTh5KhkXfpWNBXVkpk/gzNkpfebv6Ohg+/btHDx40G97cnIys2bNIiQkpM98YvwJNECFIRO6CiEGcHR03gY62zuoPeJm9vw8336LxcLEjHSujklkQuSxy1sYhkF5eTlFRUV0dXX5tgcHBzNz5kwmTpwotabTTKBz8V031AURQoxdroYaWnZ8TFfjEQ7Vt1Hb2E5H1b+ImzSN1ET/e5L6Ck5NTU1s27bNb5oiMFe5nTFjBkFBQcfkEePfidwHNQu4G8gFrJizk/9Sa/3ZEJVNCDHKeVydtOkC2vfvAgywgNPlpsMaTlXUTBq2VvOl5ZH91ny6urooKSk5Zuh4REQEs2fPJi4ubpheiRiNAr0P6mLgLcwZyV/DvFH3TGCNUupSrfX7Q1dEIcRo0z13XmvRp3g6233bLVYbkxacw0btICY6jHPy+l8QsKamhu3bt9PW1ubbZrVamT59OtOnT8dm638AhTg9BFqD+gnwkNb6wZ4blVI/wLyBVwKUEKcJd1szLTs/prNmPw3Nneay6hZwJGQQkbsUW1gUX0xrJzYqpM/g1NHRwY4dO6iu9l+kOy4ujlmzZskNt8In0AA1A+hrpN6rwPcHrzhCiNGuVa+jrryMqiOtuLo8WILDyFi0HEfy0Rtm46JDj8lnGAZ79+5Fa+03CMLhcJCTkyPLr4tjBBqg9gN5QGmv7fOAmkEtkRBiVAvPXsy+XbtwdXmoDZ3EXksuX42fNGBwqa+vZ9u2bX7z5wGkpaWRk5NDcPCxAyeECDRAPQ08q5RKA9Z5ty0G7gUeGYqCCSFGnuE2azoW29GfCltoBNPOvphdBTU026M5c1YKDvuxCwgCOJ1Odu/ezf79+/0GQURGRjJr1iwZBCEGFOgw818qpSKBe4B47+Yq4Ida66eGqnBCiJHjrK2iZfsaOiJTSTxjKXbb0SAUnp7FsvA0IsOC/JZc72YYBvv372f37t04nUfv67fZbGRlZTF16lSs1r6DmhDdAh5m7p0o9idKqUSgXWvde1ZzIcQ44Oly0rp7Ha17d3Covp36pr1UGwnMy5/hly4pNqzP/A0NDWzfvt1vEUGApKQkZs6cSVhY3/mE6K3fAKWUuhX4rda6w/u4937fY1kPSojxwXl4P83b1+DpaKWp1Ul9Uwdui50ivZ/p2VOJjui/r6i/5rywsDBmzpxJUlLScLwEMY4MVIP6LrAK6PA+7o+sByXEGOdxddJa9G86Knb7tk2IDKHSHUOJTZGSmtDvIIj+mvPkniZxqvoNUFrrKX097k0pJeNChRjDnIf307RtDe72FqxW8+tsdYQQkbOUnOCJZLS7mJoa3WeAqqurY8eOHTQ2NvptT0xMZObMmbIchjglgc4ksQfI11rX9dqeAmwBjl3+UggxqhldLlqKPqW+dAdVh1sIDbaTkhBBcPJUInLPwhocShLQV8NcR0cHRUVFVFRU+G0PCwsjNzeXpKQkuadJnLKB+qAuA5Z6n04GfqSUauuVbPoQlUsIMdSsVpoOVbGn0qz9tHTZiJ2/hIScWf1mcbvd7Nmzh9LSUr+bbW02G9OnT2fatGnSnCcGzUA1qK3ANzHn3QPzRt2e60AZQAvw9aEpmhBiKFmsNpIWXMChAy9xoCuGmgmzSQ1N7TOtYRgcOnSInTt3+s2dBzBx4kRycnJkdJ4YdAP1QZUD5wEopV4E7tRaN/WXXggxunU1HcEWGefX9GaPimfaipUcLGnlS7NT+hyl19zczM6dOzl8+LDf9sjISGbOnEl8fPwxeYQYDAGvB6WUsiulUoHu+rsFCAbmaa3/b6gKKIQ4NYa7i1a9noM7CqmOmsXSC8/1C1LRCYlcknBsPqfTidaa8vJyv2HjQUFBKKWYPHmy9DOJIRXoIIkVwItAbB+76wEJUEKMQq6GGpq2/JN9e/bT3ObCc3g9umQa2VkZ/ebxeDzs27eP4uJiXC6Xb7vFYiEjI4Ps7GwcDsdwFF+c5gKdSeJ/MZfU+BnwIXAZkAz8HPjO0BRNCHGyDI+bttJNtJVtAsPAEWQDXLQGxbKjrA6VmX5M7ae7n6moqIiWlha/ffHx8eTm5hIV5b86rhBDKdAAlQn8h9ZaK6U2AeFa69VKKRfwA8xlN45LKfWfwHNAZ4/Nt2mtXz6RQgsh+tfVVEvzto/oajri25aUEEVZ8Axip89i0ayUY4JTY2Mju3bt4siRI37bw8PDycnJkWHjYkQEGqDaAY/3cTEwB/gbUAhkncD55gKPa62/dwJ5hBABMAwPrSWbqdi0lthIhy+gBMVOJHL2Mi51hBNk9x8C3tHRwe7du6moqPDrZ7Lb7WRlZTFlyhSZ1FWMmEAD1MfAfUqpbwAbgRuVUo8D5wInMrJvHvCLEyqhEOK43G3NVH76DpV7yul0ufG4Q0mMiyRMLSB08mwsFgs9Q1NXVxdlZWWUlZXhdrt92y0WC5MmTSIrK0vWaBIjLtAA9R3gbeA/gWcx749qAhyYa0Idl1LKBswGvqaU+hnQBvwGeFhrbQyYWQgxIEuQg9bGJjpdZrDZ3xrMxOWfJywp2S9d97x5Wms6Ozv99iUlJTFjxgxZcl2MGoEOMy8FZiilQrXW7UqpBcAy4IjWen2A50rArH29DFyJuYz8XzADnUw2K8QpsAYFM+Wsi2l8exWVwdPIWrSUCYlHx44bhkFNTQ1FRUU0N/uvlBMVFUVOTg4JCX2MNRdiBA001VGft4X32P5R93Otde8pkI6htT4InNNj0xal1JPAF5EAJUTADMND3b4ywlOmEBJ89CsckpRB5hX/ycywSCLCjg4Db2hoYNeuXdTW1vodJyQkhOzsbNLS0mQAhBiVBqpBtWBOZxSI406+pZTKBb6ktf5hj80OzOU8hBAB6Gw4Qsm//kptZQXWnPM5a9kiv/1x8UeXUG9tbWX37t1UVVX5pbHb7UyfPp2pU6fKvHliVBsoQC0b5HM1AN9RSlUAL2DO7fcN4PZBPo8Q447hcdNWtpmabes4Um1O7tpRtJbK7ExSJ8b5pe3s7KS4uPiYGSBkAIQYawaai2/NYJ5Ia13pnSH9EcwbfI8AP9ZavzaY5xFivHHVH6R5+xrcLfVEhNqJCnfQ2NqFOzGLoOCQo+lcLsrKyti7d6/fTOMAKSkpZGdny/pMYkwJdKqjDQzQ3Ke1XhDIcbTW/wTyAyuaEKe3LmcnjbvW4anaTc+vX+qUyQTF5ZGbOw2r1YLb7aa8vJySkhK/FW0B4uLiyMnJYcKECcNbeCEGQaDDzN/pI99U4FLggcEskBAC9u/aSfm/PyDE6GDyxGiwgMUWRLhaQMikXJIsVt+Q8eLiYtrb2/3yR0VFkZ2dTWJiogyAEGNWoMPMH+xru3fqosuAJwazUEKczup2b2LvP/+GAbQCja2dJEzJJCL3LGxhkRiGQVVVFVrrY+bMCwsLQylFamqqBCYx5gVag+rPP4EnB6MgQgjThMmKmJi11NU3Y9gcOKcsJSp/LgA1NTXs3r2bxsZGvzzBwcFkZmYyadIkmZpIjBuB9kH1dU9UNOZEsdWDWiIhTiOGYdDS7iKyx31L1pBwJi9aRueuErLP+RyRUZHU1taye/du6urq/PJ3DxmfMmUKdvupXm8KMboE+onu756oDuC6wSuOEKePw4fr2fHRP+joggu+/B/YbEdrPlHTZjF/2izq6+tZt27dMavZ2mw2pkyZwrRp02RtJjFuBRqget8TZQBOYKfWurmP9EKIfhiGQdv+3ex8769YXJ2EAlu3aObOm+FL09jYiNaaQ4cO+eW1Wq1kZGSQmZlJSEgIQoxngQ6SWAOglIoAFOA2N+v2ATMKIfx0NdXSsvMTXPUHmRhlp7q2EwtgrSsHZtDY2EhxcTEHDx70y2exWEhPTyczM5OwsD5nIRNi3Am0DyoYc768qzGnJwJoV0r9GviO1trdb2YhBG0trXjKN9Fevovu1vKYqBDacZC64Dwc8RPZuHEj1dX+XboWi4WUlBSysrKIiIgYgZILMXICbeL7JebaT18GCgArsBB4DHN13P8eisIJMda1tjvZ/MlnuPZsJDs1DLu3n8lisRI2dQ5TkzIp2bOXql0fH5O3OzDJ8hfidBVogPoS8Hmt9doe215XStUBq5EAJcQx3J1tFK7+PZ7mw1iAmjpISYjAEZ+GO20ORVWHqC759Jh8EydOJCsri6ioqOEvtBCjyIks+e7qY3tjH9uEEIDVEUp6chTlzeYIPKc1FGP6mZQ0Oaku3HJM+qSkJJRSREdHD3dRhRiVAg1Q9wC/UUrdDKzTWnuUUjMx+6V+0vM+qUDWhhJiPHK7PX5DxS0WC+mLzqf58EGs6Tm0hUSxXpcfky85OZmsrCwJTEL0EmiAegKIAD4B3EopDxAEWIAFwM96pJUFZsRppcvtQW/eSsWOLcz/wpeJjT46yq7ZY6dt6nwO19ZBk/+9TBKYhBhYoAHqiiEthRBjVFdTLVv/8S7N1fsJBgr/9Qnnf/5z1NfXU1JScswNtmD2MWVmZkpgEuI4TvQ+qFAgE3MUX5ncpCtOV57OdlpLNtCxv4gkm4tmzBtwnVU7+deaEFpbmvzSWywWX2CSwQ9CBCbQ+6BswP8Ad3K0ac+plHoJuF1r3TVAdiHGjdr6FkLqSmgv24TRZY4bcgTZsIc6qLZOwDEh3i84WSwWUlNTmT59ugwXF+IEBdrE9xPgGmAlsBYzQC3BvA/qfu+fEONWY0snWz8roKNsA9Pj7USGm/ertzrd7HOG0BQzhZCgo8uoW61W0tPTmTZtmqxiK8RJCjRArQRu0Fq/22PbaqVUM/A8EqDEOGYYBmXvr8ZTtR8HcKjOhiPYzoEOG4ctcVhCw+leeclms5GRkcG0adMIDQ0dyWILMeYFGqAigNI+tu8B4gevOEKMPhaLhckqkx0HD+B2e6g37NS0RWINj8biDU0Wi4WMjAyUUgQHBx/niEKIQAS6stkG4LY+tt8OFA5ecYQYWW6PQVFZDW63x2/7hKy5OGJiaIhJxT0xE2v4BPAGp/j4eM4++2xmz54twUmIQRRoDeq/gX8ppc4F1nm3LQImAxcNfrGEGH57DtSy89O1hNVqXGd/kdmzpgFQX1/Pzp07qY9Ixc7RZdQjIiLIyckhMTFRllcXYggEOsx8o1JqLnATkIM59dHbwNNaa1lRV4xphuGhs7KYzvVriDxyBIDKjR+Tnp7AnrISqqqqvCnNIORwOMjKypLl1YUYYgGvEa21LgbuUkrFAW6tdcPQFUuIoWcYBq4jB2jdvY6u5jriQg3q7Facbg9Wo5W1H/8LetSMrFYrU6ZMITMzk6CgoJEruBCniYADlFLqPuAWIMn7/ADwhNb6iSEqmxBD4nB9O1u27OYMRzk0Hl0Y0GOAJTKSJtsErOH+szykpKQwY8YMWSxQiGEU6I26P8Fs3nsI//WgfqCUCtJaPzp0RRRi8KwrLOPg5k+Y0FHJwegQkuPCMQyDQ+0GBzyRuCOjsFqONtvFxsaSk5NDTEzMCJZaiNNToDWoG4Cv97oP6lOlVCnwNCABSowJiUc20tFRCUBtYzvWYAcVROEMjgLr0a9DREQEM2bMICkpSQZACDFCAg1QduBAH9tLAZm/RYxKri4PQXb/QQxp+WdxeP8+nAa0hMVSZo/FEuTw7Q8ODkYpRUZGhgQmIUZYoEOQHgWeUUqld29QSsUCP8Wc7ihgSqkJSqn9SqlrTySfEIFyutwU7KjmT699RF2j//JkHUERdCRNpi52Ml3Ryb7gZLfbyc7O5rzzzmPSpEkSnIQYBQKtQX0ZmAHs8Q6O6AIyAAewSCn1je6EWuvE4xzrWSD1JMoqREA+WbuVjuL1pLjq2PqZlWUXL6O1tRWtNZWVlWAJw+q9n9ZqtTJ58mSmT58uN9kKMcqcyIKFp0wp9XUgCtg+GMcToid3WzOtxevJbNjNHlejufHAFjYVRlFVXY1hGL603bOMK6VkZJ4Qo1SgN+q+fKonUkpNAX4InAm8d6rHEwLMIeNxkTbaSzfTvm8bhsdNaLCdqMhg6l3QHBxJS0UF9LihNjk5mezsbFn+QohRLuD7oE6Fdz2p3wN3aa0PKqWG47RiHKtr6uDfWyto2LOTJTE1hNvdALjcBhVNnVQTiSUuHpv96ACIuLg4ZsyYIUPGhRgjhiVAAfcBWmv9+jCdT4xzOwq3Yt+9jlR3Cwc7bUyaGE1ls5PKDhtETcQadbTZbsKECWRnZxMfHy+DH4QYQ4YrQH0FSFFKXel9Hok5KnCB1vrWYSqDGEdyYp3s9LTgNgya3LD+YAdEJWBLODoDRGRkJNnZ2XIvkxBj1LAEKK11ds/nSqktmNMkvTQc5xdjl2EY7KlsZEpKNFbr0SATreZh3bKJI21OrFHx2CPjfPPmhYeHo5QiJSVFApMQY1i/AUop9dtAD6K1/s/BKY4QR1UdbmHt5nKMyl10Ll5ITnYGbreb8vJySktLaQ9PxjHB4ZsBIiwsjKysLNLS0iQwCTEODFSD6jnEyQF8HtiNuXihE5gLzAH+eKIn1VqfcaJ5xOnFMAwO6u3ElH5GkKeDvevasdvOZN/ePXR2dgJgDTb7mUJDQ8nMzCQ9PV2WvxBiHOk3QGmtr+p+rJR6HrNJ7ts90yilHgKye+cV4lQ4a6toLfqM1IbDtNLJEZeHjoYKdm3dhC041JcuJCSEzMxMMjIyJDAJMQ4F2gf1/zBrTL29DGwZvOKI05HbY1C0t5bp8RY6SzbgrNmH22NQ2ezkkMeGJySY0AmJvuDUHZjS09Ox2WwjXHohxFAJNEAdBM4DSnptXwGUD2qJxGnlwKFmPi3cQ1D1dgg5TFx0CJVNTiqanLgMsE9IIDgqDixWCUxCnGYCDVA/Al5QSp0HbMJc+3ohcAlw1UAZhRhIa3kRCXs/Ao8L3WhAo5lxbHwAABYvSURBVAsPYAuPJjg6EYvNTmhoKNOnT5fAJMRpJtCpjl75/+3de3xcZZnA8d9M5pZ7k7RJc2lom6QP16LlrlxkWbwgiqLiroCK3HRZd8VFdwURXbmJu35EdvGC6MqyygdlYRfwuiD3i1xKAUsfWtpcJknTpk3STpNJJjOzf7wn7RDakIYkM5M8388nnybnzDnzPj2T8+S9nPcVkShwMXCut/lF4ERVfXqmCmfmvrraCjQ5ytZ4mnCwgMJQEeGKGnyhCEVFRbsTk/UxGTP/TPo5KFX9I/DHGSyLmcMSo0lWv7oVaaygvCTM4OAgGzdupL29nXhhGWXhUcIVi/EXllBcXExzczMNDQ2WmIyZxyZ6DuqGyZ5EVb88PcUxc9GmrgEef2ot5b0vMVDfxKL6KqLR6O7ZxYuql4C/gNLSUlpaWuwBW2MMMHEN6qhJniP95i8x81UyvovApidZ2PEs2xNpOvt66R86iEh4z0evvKKSlpYWFi9ebInJGLPbRM9BnTz2vYicC/xGVXtnpVQm76USwwy+tpquV56nvW+I7oSPZDJNacRHMBUHSqiqqqKlpcUmcTXG7NVk+6C+BxwLWIIy+9S3I85TL3VySPE2YptW07ZtJ7GRFABFhQEKIiWEKmpY3NBIc3MzlZWVWS6xMSaXTTZBPQ18GLh+Bsti8tjajb0899hTRPrW8sjoCOFIyD2MAPiDEcIVNTQsb6G5uZmysrLsFtYYkxcmm6BSwLUi8lVgEzCUuVNVj57ugpn8MTw8zK7XnmSkezVDXo9kQShFMBQmXFnD0gMPo6mpyZZWN8bsl/2pQdnzTgaAoeFRwsEChobcUPGOjg6SiSSBUBB/MklhYZiSRbU0H7aKZcubCIfD2S6yMSYPTfZB3W+MfS8iZYBfVftnrFQmJ8VHRlmtW3h5zcvUVvogNbx7qDj+AsqqaykMFrDi7cfQuGw5gcBsrYdpjJmLJn0HEZHPAZcDdd7PW4AbVdX6peaBdDrN448/y2urn4KRHbRvLaWhuXmsm4ny8nKaVq2yZ5iMMdNmUglKRC4DrgSuAR7DdX+/E/gnERlS1RtnrogmmxKJBJt0LRtefJZYXy++xAhpIDy6i0Q8TkNjI01NTVRVVVliMsZMq8nWoC4BPquqv8jY9riItAFXA5ag5pDRZIoX1nXij3XS8epLjOzsA8Dn81EUCeDzwbIlDRz0jneyoKYuy6U1xsxVk01Qi3Ar6Y73HNAwfcUx2ZROp3nu5Y08/dRzpPs7KA+MEAnvmT086PfR1NTIiqNOoqTGLrsxZmZNNkG9jFtW47px2z+OWwbe5LFkMklnZycbN24kul4JbusBIJ7yEQ75KQkVsHRJA8uPPIHIwvosl9YYM19MNkF9DbhfRI4DnvS2HQe8FzhzJgpmZt7Q0BCtra20t7czMjICQEl5KfG+LaTTUFMa5OAVy2hcdQKhytosl9YYM99Mdpj570XkFODzuPWghoBXgKNUdc0Mls9Ms3Q6zbZt23j2hbW8pkpt3SKCgT3NeOHSClY0VrOsrprFhx1HsGJxFktrjJnPJlpu473Ao6q6C0BVHwEema2Cmek1OjpKZ2cnmzZtZMO69SQGthFMJ9jWA4vrF1NUVMTSpUtpbGwk4ANfIJjtIhtj5rmJalD3A6Mi8izwoPf1hKoOz0rJzLSIxWK0trbS0dZKvH8rydh2ikcS7EwnAAgN9XP4205jSYM9v2SMyS0TJaiFuGedjgOOBy4F/CLyFHsS1tOqmpzxUpr9kk6n2bx5M21tbUTb2/APDZAcHABv1odw0E9RcYDasiKaVx1FRV2NJSdjTM6ZaD2oPuA+7wsRKQBW4RLWccBngIUi8qiqvn8WymreRDwep729nba2Nrb1bCbWu5VUPEZpcYhAgZ+ioJ+60hB1VeWULF9JYePB+IM2T54xJjdNeqojVU2KSBToBrYA7UA1sHyGymYmIZ1O09vbS1tbG5s3b3Zz46VTDG+Nkhp2zXjBVIrD6kpYVLOYomUrCdc24fMXvMmZjTEmuyZMUCJSArwL+EvgVOBAoAP4I3Ar8AlV7ZrhMpq9GB4eJhqNsmlTK9v7dlAYybiUPj9lVdUke7soD/gorVvGASeeSHih9TMZY/LHRKP4HgWOBvqAh3DTGT2oqhum+mYicjpwLbAMVwu7QVV/ONXzzTfpdJrt27fT1tZGZ2cnnR2bSe3qI+0vYEnLCnw+qKqqYunSpSwqLeTVPz1NzaFHsLBmUbaLbowx+22iGtQ7gSjwE9yAiCdVNTHVNxKRWuBXwIdV9Tcisgo3n98zqvr8VM87H8TjcaLRKB0dHcR29DMa6ycZ6yMQ20Uqlcaf8lFWXskRq1ZSWlq6+7hDTnlvFkttjDFvzUQJajmuae8U4HNAsYg8BjyAS1jPq2p6sm+kqt0iskhVd4qIH6gCRoGdUy79HJZOp9nQ2snqF1+ls7OLxWUQTuwkObTnv2tBJEAwmWRhUQG1FcWvS07GGJPvJhrF1wr82PtCRA4H/gKXsK4EEiLyEPCAqt48mTfzklMRMOC997dUdf1bCWCuGRoaIhqN0t7ezvpN3cQH+oiMxhiJpwhEghT4oKYkSG1JiMJIIQW1QpUcTkFhSbaLbowx02p/RvGtAdaIyI3AEcB5uGmPPgRMKkF54kAxsBL4tYisV9Vb9+P4OSeZTNIR7WZLTxdbtmzZvUpteaoff8ItdRFM+5GqCNXFQSJVtUQaDyFcu9xG4xlj5qw3TVAi0gAcAxzr/bsK1zT3BG4tqIf25w1VNQWMAM+KyI+AM3AjAuedvv4B/rR6HbphE6nRBE0NC163v2xhNeWjMRoXRKiuLKFoiRBpPIRAaWWWSmyMMbNnolF8d+ESUi2un+hx4F7gMuC5/Z1BQkROAr6jqkdkbA4D/ftb6HyWSCTo6uqivb2dbdu3s3HTZkKJnYRSwwzGiymKBFm4cCGNjY3U1FSz64X/I1R9AJG6Fpsfzxgzr0xUgwoD38XVkJ73aj5vxQtAvYh8ETdk/RjgfODDb/G8OS+dTtPTs4WOaJQtPZtJJkZI7uonGeunKjnIcDJJ0A9VRRGOe9dJFBcX7z62/Mj3ZbHkxhiTPRMNkjh9Ot9IVQdE5DTge8BVuAd+L1DVh6fzfXJJLBZj/WutvLR2A1u3DbCwMEmJb4hUfBcAPqB+QZjSAh+NlRFKl5W/LjkZY8x8NulBEtPBe97p+Nl8z9k2MjJCV1cXHR0d9Pf309+/g4GeHkqSgyQG06SKw5SE/dSWhKguDhCOFBKuX0Gk4UACZVXZLr4xxuSMWU1Qc1UqlaKnp4eNm9rp7+slldrTGlpSkCSe3IWfNAuCBRxWHaGiOExoYT3hhgMJ1yzFV2CXwRhjxrM74xSl02n6+vqIRqP8ed0mercPMDq4kwOWNRAM+AHw+/00NK2gNtFLVaSAyupFFC4RwvUrKCi0h2qNMWYilqD2UywWo7Ozk2g0yuCuXaTiMWLdPYSGYoRJM9BXQnPLcpYsWUJdXR2hUIih2lICJRUEKmptslZjjJkkS1CTMDZz+PrX2hgY6CfCCMnBHSQHd0A6RRFJhv1pygM+ahYUcfwJJ7zu+MLGQ7JUcmOMyV+WoPYhkUjQ3d3taktdPXR390J8J8W+OP5CN3tDwO9jUXGQ6uJCksOjVNXXU7rMkpExxkwHS1AZkskkPT09dHV10dPTs3uwgz/eTyTmlr1KARULQtSVhagsDBAqLiNc10K4voVASUUWS2+MMXPLvE9QqVSKrVu3sm59KxtbO9i5YyeN9VUU+Pf0FYWKyyiPFFBImtrSEPV1FZQ1riBc10xgQY31KxljzAyYlwlqbJn0rq4uuru7GRnaRVd0M+mhHURSCXaUhqlYUEp5eTn19fXU1dUx8FwBkZJSihpWEKyqw+fzZzsMY4yZ0+ZNgkqlUmxo7WLdq60MD/YR9o+SHBwgNbiD1Eic4uQoQ6lRgn4oSqc5+eSTKSnZs4RF4fFnZLH0xhgz/8yLBBWLxbj/dw/RGt1CaHSQsoJhykJ75rqNBHzUFkcoSCRYVF7MwoOWvi45GWOMmX3zIkFFo1H8g70sGOrER5rUKIQKC6kuDrKoKEB5JEio+gDCtU2Eag7AHwhlu8jGGDPvzYsEVVtbS9uCCoa2RKkMB6gtD9NQUUikegnhumZCNcvwB8PZLqYxxpgM8yJBlZeX8+7TP0jfQzH84SLCdc2Ea5vwh4uyXTRjjDH7MC8SFIDP52PBCR+z5jtjjMkT82qstCUnY4zJH/MqQRljjMkflqCMMcbkJEtQxhhjcpIlKGOMMTnJEpQxxpiclC/DzAsANm/enO1yGGOMmYKM+3fBZI/JlwRVC3D22WdnuxzGGGPemlrgtcm8MF8S1DPACUA3kHyT1xpjjMk9Bbjk9MxkD/Cl0+mZK44xxhgzRTZIwhhjTE6yBGWMMSYnWYIyxhiTkyxBGWOMyUmWoIwxxuQkS1DGGGNykiUoY4wxOckSlDHGmJyULzNJ7JOIHA3cp6rV3s+LgBuB9wDDwE+Aq1Q16e2/DTgLGM04zUpV3SgijcCtwLHAFuDzqvrrHI7lHd7+g4Au4HJV/ZW3L2ux7E8cIvID4JxxpygGrlDVa/PwmpwHfBVYCKwD/kFVH/P25VssnwcuBaqAJ4BLVHVjNmMRkVOB64EW732/rao/FJEFwI+BU4EY8FVV/al3jA/4JnAREAJ+CnxJVUe9/WcB1+JmOXgY+LSqbsnFWDKO9QN3AQ+r6ncztp+Mu6ZNwBrgXFWd1LRCuShva1Ai4hORC4Df4z50Y34GVONu2ocCRwP/nLF/FfAhVS3J+Nro7bsDeBH3C3khcIeILJ/hUKYUi4jUAvcD/waUApcAt3s3jqzEMpU4VPWzmdcC+BKw1osrK3FMNRYRWQl8BzgDWADcDtzj3UzyLZazgGuA87zy/i/wBxGJZCsWEVmCuylfjfv//WvgOhF5D/B93DRotcD7getF5CTv0IuAM3G/+y3AUcDl3jkPxiXaT3uxrPdim1FvIRZEZClwL/ChcedcCNwDfMM7593A7zI+f3knbwuOuwifw11gAESkCHgvcKmqblHV7cCVwIXeL2khcCDwwviTicgK4Ejga6o6oqoP4n4pz5/5UPY/FuCTwCOq+jNVTavqH3A3mL4sxjKVOMh4bRNwA/AJVd2Rh9ekhT2/Uz7cTWbIOzbfYvkIcIuqPqyqo6r6fWAEOCWLsSwFfq6qd6tqSlWfAR4CTgE+ClypqoOq+gJwCy4xAXwK+K6qRlV1K/B14GJv3znAvar6mKrGga8A7xSRllyMRURKgOdwtaMnxp3zTODPqnqXqiZU9dtA2DtnXsrnBPUDVT0CeDZj21g8uzK2JYFFuL8o3oZr2rtFRLaKyPMicrr3uoOBdlXNPHYdcNiMlP71phLLEUCriNwhIr0ishpYrKo7yV4sU4kj07/iboprvJ/z7Zr8DngZeAl3M/8W8HFVTZF/sfjH7Rvbv4IsxaKqj6rqZ8d+FpFK9kwincbVfvZWnoNxtfLMfXXe8a/bp6qDQAe5G0scOEhVLwcS4047Pk4AZXY+YzMibxOUqnbtZVsM14xxg4hUikgV8DVvdyGuKexR3F+UdbgmjDtF5HCgBBgcd8pBoGhmInhduacSSyWuaeV2XFPAdcDdXi0kK7FMMQ4ARORQXJv7tzIOz7drEsHdEI7F9aP9I66JbzH5F8tdwEUicqSIBEXkQlzrQyFZjGWMiJTjam1P42oUcVXNnPk6szzjyzv2fdFe9o0/dsbtTyxebXZf/WNZj2W65W2CmsC5uL9eX8F1eN7jbe9X1d+r6qmq+qxXBb4LeBD4IO6vxcJx5yrCdVJmyz5jwXVq/1ZV7/NiuRN4HngfuRfLRHGM+Qxwj6r2ZGzLtThg4li+DmxW1adVdVhVbwZagY+RZ7Go6h24P3ruwNUoDgX+APSR5Vi8JsangB5cc9hOIDKuyTizPOPLO3bDju1l3/hjZ9QUYplILn7G3pK5mKBqgYtVtUZVDwU6gVdUdVBEPiAinxr3+hCu2rwWaPT6qcYcyBurzLNpn7Hgqv0V414/Nioz12KZKI4xZ/DGzulciwMmjmUJrs0/0yiuKSavYvEG4dyrqs2quhj4Ii5JPUcWYxGRE3E1jXuAj3r9RutxfX7L9lGetYCM29etqv3j93l9c43kbiwTGR/n/hybk/J+mPlefAd4WUQuw33QvsWeEWEFwI0i8gruF+3jwDuAC1S1XUTWANeIyFe87WcAx812ABkmiuU24G9F5Bzg57i/0lcCZ6lqR47FMlEcY8OdlwOPZx6kqppjccDEsdyHazK7E7co29nAIcD9OXhNYOJYTgGuEpETgB245r8u4BlVTWcjFq/5+j7cIwg3jW1X1ZiI3I0bBXc+boj1hbiReQD/CVwmIg/gahlf97aB+915TETeBTyJqzWuVtVXczSWidyN+/yd5X3/90AKN/giL83FBHUhbtTLdlyzy01eUwuqeo+IXAH8AliMq4Wcrqrt3rEfAX6EeyahFzhfVV+e5fJnmiiWNSJyGu6mcjPQDpypqh3esbkUyz7j8CwFhr2RZOPlUhww8TW5xetP+DnuOai1wGk5ek1g4uvyX7jO9TW4VoYHgA9m9I1kI5ZLcP3I14nIdRnb/x03Ku9moA3XInKNqv7G2/8DoAY36q0I+CVef5uqviQin/FeU4+r0XxshuOAqceyT6q6RUQ+gHsO6lbgz8AHVHVkugs/W2xFXWOMMTlpLvZBGWOMmQMsQRljjMlJlqCMMcbkJEtQxhhjcpIlKGOMMTnJEpQxxpicZAnKmGnkTd671Zv8c/y+K0Qk5i2XYIx5E5agjJleX8A9AJ/58CUisgy4AjdzQGsWymVM3rEEZcw0UtXNuDWFLhCRYzJ23YRbh+ymvR5ojHkDm0nCmGnmzUT9OG6KoKNws+XfCbxdVdd6rzkPt6prPW428StU9bfevgBuifJP4JaF2YabnusyVU2KyO24OdYOws3VdqaqPjRrARozS6wGZcw08+aruwg3ee95wL8AV2ckp/fjJmq9wnvNrbi1vI72TvEV3BLg5+JW6f0K8HfA6Rlvcw5uzrVTcMs1GDPnzMXJYo3JOlV9WUS+A/wQV0O6PmP35cD13hpeABtE5EjckhZ/hVuR99Oq+oi3/6ci8mXciqn/421bq6q3z3QcxmSTJShjZs43cKvqflNVM5fnPhg4QkSuzNgWxFu3x5t1/xQR+TZuifWVuBnfCzJe/9pMFtyYXGBNfMbMEFUd8r4dGrcrAHwJeFvG1yG4NZUQkatxS0L4vX/fDYxfymL8OY2Zc6wGZczsWwccoKobxjZ4tak48G3gb4AvqOpt3r5C3IKCvr2cy5g5yxKUMbPvBuA2EVHgQeBU4Cpc/xO4BQRPF5EngHJcU2EZb1xO3pg5zZr4jJllqvpL4FLgy7h+p0uBi1X1V95LPokbvfcS8N/ABuA/gCNmvbDGZJE9B2WMMSYnWQ3KGGNMTrIEZYwxJidZgjLGGJOTLEEZY4zJSZagjDHG5CRLUMYYY3KSJShjjDE5yRKUMcaYnPT/Klv2Uzv1mVQAAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "results = run_simulation(system, updatefunc3)\n", + "plot_results(census, un, results, 'Proportional model, combined birth and death')" ] }, { "cell_type": "code", - "execution_count": 22, + "execution_count": null, "metadata": {}, "outputs": [], - "source": [ - "# Solution goes here" - ] + "source": [] } ], "metadata": { diff --git a/code/chap06mine.ipynb b/code/chap06mine.ipynb new file mode 100644 index 00000000..5d9f68ef --- /dev/null +++ b/code/chap06mine.ipynb @@ -0,0 +1,949 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Modeling and Simulation in Python\n", + "\n", + "Chapter 6\n", + "\n", + "Copyright 2017 Allen Downey\n", + "\n", + "License: [Creative Commons Attribution 4.0 International](https://creativecommons.org/licenses/by/4.0)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "metadata": {}, + "outputs": [], + "source": [ + "# Configure Jupyter so figures appear in the notebook\n", + "%matplotlib inline\n", + "\n", + "# Configure Jupyter to display the assigned value after an assignment\n", + "%config InteractiveShell.ast_node_interactivity='last_expr_or_assign'\n", + "\n", + "# import functions from the modsim.py module\n", + "from modsim import *\n", + "\n", + "from pandas import read_html" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Code from the previous chapter\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": {}, + "outputs": [], + "source": [ + "filename = 'data/World_population_estimates.html'\n", + "tables = read_html(filename, header=0, index_col=0, decimal='M')\n", + "table2 = tables[2]\n", + "table2.columns = ['census', 'prb', 'un', 'maddison', \n", + " 'hyde', 'tanton', 'biraben', 'mj', \n", + " 'thomlinson', 'durand', 'clark']" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Year\n", + "1950 2.525149\n", + "1951 2.572851\n", + "1952 2.619292\n", + "1953 2.665865\n", + "1954 2.713172\n", + "Name: un, dtype: float64" + ] + }, + "execution_count": 50, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "un = table2.un / 1e9\n", + "un.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Year\n", + "1950 2.557629\n", + "1951 2.594940\n", + "1952 2.636772\n", + "1953 2.682053\n", + "1954 2.730228\n", + "Name: census, dtype: float64" + ] + }, + "execution_count": 51, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "census = table2.census / 1e9\n", + "census.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.07224800083333333" + ] + }, + "execution_count": 52, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "t_0 = get_first_label(census)\n", + "t_end = get_last_label(census)\n", + "elapsed_time = t_end - t_0\n", + "\n", + "p_0 = get_first_value(census)\n", + "p_end = get_last_value(census)\n", + "total_growth = p_end - p_0\n", + "\n", + "annual_growth = total_growth / elapsed_time" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### System objects" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can rewrite the code from the previous chapter using system objects." + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
values
t_01950.000000
t_end2016.000000
p_02.557629
annual_growth0.072248
\n", + "
" + ], + "text/plain": [ + "t_0 1950.000000\n", + "t_end 2016.000000\n", + "p_0 2.557629\n", + "annual_growth 0.072248\n", + "dtype: float64" + ] + }, + "execution_count": 53, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "system = System(t_0=t_0, \n", + " t_end=t_end,\n", + " p_0=p_0,\n", + " annual_growth=annual_growth)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And we can encapsulate the code that runs the model in a function." + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "metadata": {}, + "outputs": [], + "source": [ + "def run_simulation1(system):\n", + " \"\"\"Runs the constant growth model.\n", + " \n", + " system: System object\n", + " \n", + " returns: TimeSeries\n", + " \"\"\"\n", + " results = TimeSeries()\n", + " results[system.t_0] = system.p_0\n", + " \n", + " for t in linrange(system.t_0, system.t_end):\n", + " results[t+1] = results[t] + system.annual_growth\n", + " \n", + " return results" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can also encapsulate the code that plots the results." + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "metadata": {}, + "outputs": [], + "source": [ + "def plot_results(census, un, timeseries, title):\n", + " \"\"\"Plot the estimates and the model.\n", + " \n", + " census: TimeSeries of population estimates\n", + " un: TimeSeries of population estimates\n", + " timeseries: TimeSeries of simulation results\n", + " title: string\n", + " \"\"\"\n", + " plot(census, ':', label='US Census')\n", + " plot(un, '--', label='UN DESA')\n", + " plot(timeseries, color='gray', label='model')\n", + " \n", + " decorate(xlabel='Year', \n", + " ylabel='World population (billion)',\n", + " title=title)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's how we run it." + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "results = run_simulation1(system)\n", + "plot_results(census, un, results, 'Constant growth model')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Proportional growth" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's a more realistic model where the number of births and deaths is proportional to the current population." + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "metadata": {}, + "outputs": [], + "source": [ + "def run_simulation2(system):\n", + " \"\"\"Run a model with proportional birth and death.\n", + " \n", + " system: System object\n", + " \n", + " returns: TimeSeries\n", + " \"\"\"\n", + " results = TimeSeries()\n", + " results[system.t_0] = system.p_0\n", + " \n", + " for t in linrange(system.t_0, system.t_end):\n", + " births = system.birth_rate * results[t]\n", + " deaths = system.death_rate * results[t]\n", + " results[t+1] = results[t] + births - deaths\n", + " \n", + " return results" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "I picked a death rate that seemed reasonable and then adjusted the birth rate to fit the data." + ] + }, + { + "cell_type": "code", + "execution_count": 58, + "metadata": {}, + "outputs": [], + "source": [ + "system.death_rate = 0.01\n", + "system.birth_rate = 0.027" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's what it looks like." + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file figs/chap03-fig03.pdf\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "results = run_simulation2(system)\n", + "plot_results(census, un, results, 'Proportional model')\n", + "savefig('figs/chap03-fig03.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The model fits the data pretty well for the first 20 years, but not so well after that." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Factoring out the update function" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`run_simulation1` and `run_simulation2` are nearly identical except the body of the loop. So we can factor that part out into a function." + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "metadata": {}, + "outputs": [], + "source": [ + "def update_func1(pop, t, system):\n", + " \"\"\"Compute the population next year.\n", + " \n", + " pop: current population\n", + " t: current year\n", + " system: system object containing parameters of the model\n", + " \n", + " returns: population next year\n", + " \"\"\"\n", + " print(t)\n", + " print(pop)\n", + " \n", + " births = system.birth_rate * pop\n", + " deaths = system.death_rate * pop\n", + " return pop + births - deaths" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The name `update_func` refers to a function object." + ] + }, + { + "cell_type": "code", + "execution_count": 61, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 61, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "update_func1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Which we can confirm by checking its type." + ] + }, + { + "cell_type": "code", + "execution_count": 62, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "function" + ] + }, + "execution_count": 62, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "type(update_func1)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`run_simulation` takes the update function as a parameter and calls it just like any other function." + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": {}, + "outputs": [], + "source": [ + "def run_simulation(system, update_func):\n", + " \"\"\"Simulate the system using any update function.\n", + " \n", + " system: System object\n", + " update_func: function that computes the population next year\n", + " \n", + " returns: TimeSeries\n", + " \"\"\"\n", + " results = TimeSeries()\n", + " results[system.t_0] = system.p_0\n", + " \n", + " for t in linrange(system.t_0, system.t_end):\n", + " results[t+1] = update_func(results[t], t, system)\n", + " \n", + " return results" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's how we use it." + ] + }, + { + "cell_type": "code", + "execution_count": 64, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
values
t_01950.000000
t_end2016.000000
p_02.557629
birth_rate0.027000
death_rate0.010000
\n", + "
" + ], + "text/plain": [ + "t_0 1950.000000\n", + "t_end 2016.000000\n", + "p_0 2.557629\n", + "birth_rate 0.027000\n", + "death_rate 0.010000\n", + "dtype: float64" + ] + }, + "execution_count": 64, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "t_0 = get_first_label(census)\n", + "t_end = get_last_label(census)\n", + "p_0 = census[t_0]\n", + "\n", + "system = System(t_0=t_0, \n", + " t_end=t_end,\n", + " p_0=p_0,\n", + " birth_rate=0.027,\n", + " death_rate=0.01)" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1950.0\n", + "2.557628654\n", + "1951.0\n", + "2.601108341118\n", + "1952.0\n", + "2.645327182917006\n", + "1953.0\n", + "2.6902977450265952\n", + "1954.0\n", + "2.7360328066920476\n", + "1955.0\n", + "2.7825453644058125\n", + "1956.0\n", + "2.829848635600711\n", + "1957.0\n", + "2.8779560624059233\n", + "1958.0\n", + "2.926881315466824\n", + "1959.0\n", + "2.9766382978297603\n", + "1960.0\n", + "3.0272411488928666\n", + "1961.0\n", + "3.078704248424045\n", + "1962.0\n", + "3.131042220647254\n", + "1963.0\n", + "3.184269938398258\n", + "1964.0\n", + "3.2384025273510284\n", + "1965.0\n", + "3.293455370315996\n", + "1966.0\n", + "3.349444111611368\n", + "1967.0\n", + "3.406384661508761\n", + "1968.0\n", + "3.46429320075441\n", + "1969.0\n", + "3.523186185167235\n", + "1970.0\n", + "3.583080350315078\n", + "1971.0\n", + "3.6439927162704344\n", + "1972.0\n", + "3.7059405924470314\n", + "1973.0\n", + "3.768941582518631\n", + "1974.0\n", + "3.833013589421448\n", + "1975.0\n", + "3.8981748204416125\n", + "1976.0\n", + "3.9644437923891203\n", + "1977.0\n", + "4.031839336859735\n", + "1978.0\n", + "4.100380605586351\n", + "1979.0\n", + "4.170087075881319\n", + "1980.0\n", + "4.240978556171301\n", + "1981.0\n", + "4.313075191626214\n", + "1982.0\n", + "4.3863974698838595\n", + "1983.0\n", + "4.460966226871885\n", + "1984.0\n", + "4.536802652728707\n", + "1985.0\n", + "4.613928297825096\n", + "1986.0\n", + "4.692365078888122\n", + "1987.0\n", + "4.77213528522922\n", + "1988.0\n", + "4.8532615850781164\n", + "1989.0\n", + "4.935767032024445\n", + "1990.0\n", + "5.0196750715688605\n", + "1991.0\n", + "5.1050095477855315\n", + "1992.0\n", + "5.191794710097886\n", + "1993.0\n", + "5.28005522016955\n", + "1994.0\n", + "5.369816158912433\n", + "1995.0\n", + "5.461103033613944\n", + "1996.0\n", + "5.553941785185382\n", + "1997.0\n", + "5.648358795533533\n", + "1998.0\n", + "5.744380895057604\n", + "1999.0\n", + "5.8420353702735826\n", + "2000.0\n", + "5.941349971568234\n", + "2001.0\n", + "6.042352921084894\n", + "2002.0\n", + "6.145072920743337\n", + "2003.0\n", + "6.249539160395973\n", + "2004.0\n", + "6.355781326122704\n", + "2005.0\n", + "6.46382960866679\n", + "2006.0\n", + "6.573714712014126\n", + "2007.0\n", + "6.685467862118366\n", + "2008.0\n", + "6.799120815774378\n", + "2009.0\n", + "6.9147058696425425\n", + "2010.0\n", + "7.032255869426465\n", + "2011.0\n", + "7.151804219206714\n", + "2012.0\n", + "7.273384890933229\n", + "2013.0\n", + "7.397032434079093\n", + "2014.0\n", + "7.522781985458438\n", + "2015.0\n", + "7.650669279211232\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "results = run_simulation(system, update_func1)\n", + "plot_results(census, un, results, 'Proportional model, factored')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Remember not to put parentheses after `update_func1`. What happens if you try?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** When you run `run_simulation`, it runs `update_func1` once for each year between `t_0` and `t_end`. To see that for yourself, add a print statement at the beginning of `update_func1` that prints the values of `t` and `pop`, then run `run_simulation` again." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Combining birth and death" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Since births and deaths get added up, we don't have to compute them separately. We can combine the birth and death rates into a single net growth rate." + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "metadata": {}, + "outputs": [], + "source": [ + "def update_func2(pop, t, system):\n", + " \"\"\"Compute the population next year.\n", + " \n", + " pop: current population\n", + " t: current year\n", + " system: system object containing parameters of the model\n", + " \n", + " returns: population next year\n", + " \"\"\"\n", + " net_growth = system.alpha * pop\n", + " return pop + net_growth" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's how it works:" + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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TAx1dPToUSwWC0oprFYZXvBUYhgGdrudgwcPAkiQEmKUcblcVFVVER0dzYQJE4b13GPi17yxsZGkpCQJTqcgi8VCREQEkyZNorb2tJnmRohTQnt7O5988gk7duzgs88+o62tbVjPPyZyUG63m5CQkJFOhvgcwsPDcbmkQacQo0VraysbNmzwBSWr1TrsmYAxEaDAfBIXpy75/IQYPZqamtiwYQMOhzlknsViYe7cuYSFhQ1rOsZMgBJCCPH51dfXU1BQ4CvRCAoKIj8/n8TExGFPi1TaDDOlFCUlPYcfvOSSS3j55Zd9719//XUuueQS8vLyWLBgAddeey07d+7s99jr16/nqquuYtGiRSxcuJBvfetbFBQUDPo1CCHGptraWjZs2OALTiEhISxevHhEghNIgBqVCgoKuP/++7nnnnvYvHkz69evZ968eXz729+mvr6+131eeukl7rjjDq688krWr1/Pxx9/zKpVq7juuuvYtGnTMF+BEOJUU1VVRUFBAW63OVReaGgoS5YsYfz48SOWJglQo9C2bdtIS0tj/vz5WK1WwsLCuOGGG7j44ot7DVB2u51f/epX/PznP2fFihXYbDZsNhtf+9rXuP7669m7dy9gNiZ56qmnOPfcc1m0aBG33nqr73gbN27k4osv5sEHH2TRokWceeaZPPbYY75z/P3vf2fFihUsWLCAr3zlK3z00Ue+/fLz8/3Sc8455/Duu+/2u58QYvSoqKigqKiIzvkBIyIiWLp0KbGxsSOarjFbB1Wws4aCXTUALJyZzMIc/2k6Pt52kK1lRwBYOieFPOWfhX1/8wF2VtQBcPb8KeSkx/utf3tDJbsPNPR67M9r+fLlPPnkk6xevZoVK1Ywf/58srKyuO+++3rdvqioCKfTyVlnndVj3Q033OB7/ec//5nXXnuNZ599lsTERB544AF+8IMf8PzzzwNQXl7OihUr+Pjjj9m4cSPXXHMNF110EXFxcdx99928+uqrZGRk8L//+7/cf//9vP322/1eR319fZ/7SaMIIUaeYRiUlpZSXl7uWxYdHc3ixYuHvUFEbyQHNQplZGTwj3/8g6ysLNauXctll13G0qVL+f3vf09vMyDX19cTGxs7YFP7devWcfPNNzN16lTCwsK4/fbbKSwsZN++fYDZUufGG28kJCSEZcuWkZCQQGVlJTabjeDgYF56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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "system.alpha = system.birth_rate - system.death_rate\n", + "\n", + "results = run_simulation(system, update_func2)\n", + "plot_results(census, un, results, 'Proportional model, combined birth and death')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Exercises\n", + "\n", + "**Exercise:** Maybe the reason the proportional model doesn't work very well is that the growth rate, `alpha`, is changing over time. So let's try a model with different growth rates before and after 1980 (as an arbitrary choice).\n", + "\n", + "Write an update function that takes `pop`, `t`, and `system` as parameters. The system object, `system`, should contain two parameters: the growth rate before 1980, `alpha1`, and the growth rate after 1980, `alpha2`. It should use `t` to determine which growth rate to use. Note: Don't forget the `return` statement.\n", + "\n", + "Test your function by calling it directly, then pass it to `run_simulation`. Plot the results. Adjust the parameters `alpha1` and `alpha2` to fit the data as well as you can.\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 92, + "metadata": { + "scrolled": false + }, + "outputs": [], + "source": [ + "def updatefunc3(pop, t, system):\n", + " \n", + " system.alpha1 = 0.018\n", + " system.alpha2 = 0.015\n", + " \n", + " if t < 1980:\n", + " growth = system.alpha1 * results[t]\n", + " return pop + growth\n", + " \n", + " if t >= 1980:\n", + " growth = system.alpha2 * results[t]\n", + " return pop + growth\n", + " \n", + " " + ] + }, + { + "cell_type": "code", + "execution_count": 93, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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OcKGDRvo6uoCzOCUl5dHSEjIsJZj3AQoIYQQp66yspItW7bg8XgAsNvtzJ8/f9j7n0CGmQ87pRRFRUXHbL/88st5/fXXfc/ffvttLr/8cvLy8pg/fz433ngjO3fuHPDYn3zyCddeey0LFy5kwYIFfO1rX6OgoGDQX4MQYvwxDIM9e/awadMmX3AKCQlhyZIlIxKcQALUqFRQUMBDDz3E/fffT2FhIZ988glz587l61//OnV1dX3mee2117j77ru55ppr+OSTT1i7di2XXXYZN910Exs3bhzmVyCEGEsMw2Dnzp1+F8GRkZEsXbp0RAcuSYAahbZu3crkyZOZN28eVquVkJAQbrnlFi699NI+A1R7ezs//elP+fGPf8zy5ctxOBw4HA6uuuoqbr75Zvbu3QuYg0meffZZzj//fBYuXMidd97pO9769eu59NJLeeSRR1i4cCFnn302Tz75pO8cf/7zn1m+fDnz58/ni1/8Ih9//LEvX35+vl95zjvvPD744IMB8wkhRge3201hYaHvdwIgNjaWM888k9DQ0BEs2TjugyrYeZCCXQcBWJCTzIJc/2U61m6tZEvxYQCWzE4hTyX67f+o8AA799QCsGxeOrlT4/z2/31dOSUH6vs89qk699xzeeaZZ1i5ciXLly9n3rx5ZGdn8+CDD/aZfvPmzTidTs4555xj9t1yyy2+x7/73e946623ePHFF0lMTOThhx/mW9/6Fi+//DIApaWlLF++nLVr17J+/XpuuOEGLrnkEmJiYrjvvvv4y1/+QmZmJn/605946KGH+Pvf/z7g66irq+s3nwyKEGLkOZ1OCgoKqK+v921LSUnhjDPOwGazjWDJTFKDGoUyMzN58803yc7OZtWqVVx55ZUsWbKEX/3qVxiGcUz6uro6oqOjjzvUfvXq1dx+++1kZGQQEhLCd7/7XTZs2MC+ffsAcyTdrbfeSlBQEEuXLiUhIYHy8nIcDgd2u53XXnuN7du3c+WVVwYUZE42nxBi6LW2trJ27Vq/4DR16lTmzp07KoITSIAadg6Hwzd0sye3201wcLDv+aRJk/j+97/PX//6V/7973/zzW9+k+eff55Vq1YdkzchIYGGhoY+7yNqbm7G6XQCUFVVxb333kt+fj75+fmcffbZ2O123ywOERERfmUICgrC4/EQERHByy+/THl5OStXrmTp0qU8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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "results = run_simulation(system, updatefunc3)\n", + "plot_results(census, un, results, 'Proportional model, combined birth and death')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From e98d392e802e13e5bdeaf069ba6bb8c8534c25f8 Mon Sep 17 00:00:00 2001 From: Annie Tor Date: Fri, 14 Sep 2018 16:50:43 -0400 Subject: [PATCH 03/18] Adding chapter 5 --- code/chap05mine.ipynb | 1603 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1603 insertions(+) create mode 100644 code/chap05mine.ipynb diff --git a/code/chap05mine.ipynb b/code/chap05mine.ipynb new file mode 100644 index 00000000..92482c80 --- /dev/null +++ b/code/chap05mine.ipynb @@ -0,0 +1,1603 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Modeling and Simulation in Python\n", + "\n", + "Chapter 5\n", + "\n", + "Copyright 2017 Allen Downey\n", + "\n", + "License: [Creative Commons Attribution 4.0 International](https://creativecommons.org/licenses/by/4.0)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# Configure Jupyter so figures appear in the notebook\n", + "%matplotlib inline\n", + "\n", + "# Configure Jupyter to display the assigned value after an assignment\n", + "%config InteractiveShell.ast_node_interactivity='last_expr_or_assign'\n", + "\n", + "# import functions from the modsim.py module\n", + "from modsim import *" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Reading data\n", + "\n", + "Pandas is a library that provides tools for reading and processing data. `read_html` reads a web page from a file or the Internet and creates one `DataFrame` for each table on the page." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "from pandas import read_html" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The data directory contains a downloaded copy of https://en.wikipedia.org/wiki/World_population_estimates\n", + "\n", + "The arguments of `read_html` specify the file to read and how to interpret the tables in the file. The result, `tables`, is a sequence of `DataFrame` objects; `len(tables)` reports the length of the sequence." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "6" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "filename = 'data/World_population_estimates.html'\n", + "tables = read_html(filename, header=0, index_col=0, decimal='M')\n", + "len(tables)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can select the `DataFrame` we want using the bracket operator. The tables are numbered from 0, so `tables[2]` is actually the third table on the page.\n", + "\n", + "`head` selects the header and the first five rows." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
United States Census Bureau (2017)[28]Population Reference Bureau (1973–2016)[15]United Nations Department of Economic and Social Affairs (2015)[16]Maddison (2008)[17]HYDE (2007)[24]Tanton (1994)[18]Biraben (1980)[19]McEvedy & Jones (1978)[20]Thomlinson (1975)[21]Durand (1974)[22]Clark (1967)[23]
Year
195025576286542.516000e+092.525149e+092.544000e+092.527960e+092.400000e+092.527000e+092.500000e+092.400000e+09NaN2.486000e+09
19512594939877NaN2.572851e+092.571663e+09NaNNaNNaNNaNNaNNaNNaN
19522636772306NaN2.619292e+092.617949e+09NaNNaNNaNNaNNaNNaNNaN
19532682053389NaN2.665865e+092.665959e+09NaNNaNNaNNaNNaNNaNNaN
19542730228104NaN2.713172e+092.716927e+09NaNNaNNaNNaNNaNNaNNaN
\n", + "
" + ], + "text/plain": [ + " United States Census Bureau (2017)[28] \\\n", + "Year \n", + "1950 2557628654 \n", + "1951 2594939877 \n", + "1952 2636772306 \n", + "1953 2682053389 \n", + "1954 2730228104 \n", + "\n", + " Population Reference Bureau (1973–2016)[15] \\\n", + "Year \n", + "1950 2.516000e+09 \n", + "1951 NaN \n", + "1952 NaN \n", + "1953 NaN \n", + "1954 NaN \n", + "\n", + " United Nations Department of Economic and Social Affairs (2015)[16] \\\n", + "Year \n", + "1950 2.525149e+09 \n", + "1951 2.572851e+09 \n", + "1952 2.619292e+09 \n", + "1953 2.665865e+09 \n", + "1954 2.713172e+09 \n", + "\n", + " Maddison (2008)[17] HYDE (2007)[24] Tanton (1994)[18] \\\n", + "Year \n", + "1950 2.544000e+09 2.527960e+09 2.400000e+09 \n", + "1951 2.571663e+09 NaN NaN \n", + "1952 2.617949e+09 NaN NaN \n", + "1953 2.665959e+09 NaN NaN \n", + "1954 2.716927e+09 NaN NaN \n", + "\n", + " Biraben (1980)[19] McEvedy & Jones (1978)[20] Thomlinson (1975)[21] \\\n", + "Year \n", + "1950 2.527000e+09 2.500000e+09 2.400000e+09 \n", + "1951 NaN NaN NaN \n", + "1952 NaN NaN NaN \n", + "1953 NaN NaN NaN \n", + "1954 NaN NaN NaN \n", + "\n", + " Durand (1974)[22] Clark (1967)[23] \n", + "Year \n", + "1950 NaN 2.486000e+09 \n", + "1951 NaN NaN \n", + "1952 NaN NaN \n", + "1953 NaN NaN \n", + "1954 NaN NaN " + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "table2 = tables[2]\n", + "table2.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`tail` selects the last five rows." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
United States Census Bureau (2017)[28]Population Reference Bureau (1973–2016)[15]United Nations Department of Economic and Social Affairs (2015)[16]Maddison (2008)[17]HYDE (2007)[24]Tanton (1994)[18]Biraben (1980)[19]McEvedy & Jones (1978)[20]Thomlinson (1975)[21]Durand (1974)[22]Clark (1967)[23]
Year
201270138713137.057075e+097.080072e+09NaNNaNNaNNaNNaNNaNNaNNaN
201370921280947.136796e+097.162119e+09NaNNaNNaNNaNNaNNaNNaNNaN
201471699681857.238184e+097.243784e+09NaNNaNNaNNaNNaNNaNNaNNaN
201572478927887.336435e+097.349472e+09NaNNaNNaNNaNNaNNaNNaNNaN
201673259967097.418152e+09NaNNaNNaNNaNNaNNaNNaNNaNNaN
\n", + "
" + ], + "text/plain": [ + " United States Census Bureau (2017)[28] \\\n", + "Year \n", + "2012 7013871313 \n", + "2013 7092128094 \n", + "2014 7169968185 \n", + "2015 7247892788 \n", + "2016 7325996709 \n", + "\n", + " Population Reference Bureau (1973–2016)[15] \\\n", + "Year \n", + "2012 7.057075e+09 \n", + "2013 7.136796e+09 \n", + "2014 7.238184e+09 \n", + "2015 7.336435e+09 \n", + "2016 7.418152e+09 \n", + "\n", + " United Nations Department of Economic and Social Affairs (2015)[16] \\\n", + "Year \n", + "2012 7.080072e+09 \n", + "2013 7.162119e+09 \n", + "2014 7.243784e+09 \n", + "2015 7.349472e+09 \n", + "2016 NaN \n", + "\n", + " Maddison (2008)[17] HYDE (2007)[24] Tanton (1994)[18] \\\n", + "Year \n", + "2012 NaN NaN NaN \n", + "2013 NaN NaN NaN \n", + "2014 NaN NaN NaN \n", + "2015 NaN NaN NaN \n", + "2016 NaN NaN NaN \n", + "\n", + " Biraben (1980)[19] McEvedy & Jones (1978)[20] Thomlinson (1975)[21] \\\n", + "Year \n", + "2012 NaN NaN NaN \n", + "2013 NaN NaN NaN \n", + "2014 NaN NaN NaN \n", + "2015 NaN NaN NaN \n", + "2016 NaN NaN NaN \n", + "\n", + " Durand (1974)[22] Clark (1967)[23] \n", + "Year \n", + "2012 NaN NaN \n", + "2013 NaN NaN \n", + "2014 NaN NaN \n", + "2015 NaN NaN \n", + "2016 NaN NaN " + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "table2.tail()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Long column names are awkard to work with, but we can replace them with abbreviated names." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "table2.columns = ['census', 'prb', 'un', 'maddison', \n", + " 'hyde', 'tanton', 'biraben', 'mj', \n", + " 'thomlinson', 'durand', 'clark']" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's what the DataFrame looks like now. " + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
censusprbunmaddisonhydetantonbirabenmjthomlinsondurandclark
Year
195025576286542.516000e+092.525149e+092.544000e+092.527960e+092.400000e+092.527000e+092.500000e+092.400000e+09NaN2.486000e+09
19512594939877NaN2.572851e+092.571663e+09NaNNaNNaNNaNNaNNaNNaN
19522636772306NaN2.619292e+092.617949e+09NaNNaNNaNNaNNaNNaNNaN
19532682053389NaN2.665865e+092.665959e+09NaNNaNNaNNaNNaNNaNNaN
19542730228104NaN2.713172e+092.716927e+09NaNNaNNaNNaNNaNNaNNaN
\n", + "
" + ], + "text/plain": [ + " census prb un maddison hyde \\\n", + "Year \n", + "1950 2557628654 2.516000e+09 2.525149e+09 2.544000e+09 2.527960e+09 \n", + "1951 2594939877 NaN 2.572851e+09 2.571663e+09 NaN \n", + "1952 2636772306 NaN 2.619292e+09 2.617949e+09 NaN \n", + "1953 2682053389 NaN 2.665865e+09 2.665959e+09 NaN \n", + "1954 2730228104 NaN 2.713172e+09 2.716927e+09 NaN \n", + "\n", + " tanton biraben mj thomlinson durand \\\n", + "Year \n", + "1950 2.400000e+09 2.527000e+09 2.500000e+09 2.400000e+09 NaN \n", + "1951 NaN NaN NaN NaN NaN \n", + "1952 NaN NaN NaN NaN NaN \n", + "1953 NaN NaN NaN NaN NaN \n", + "1954 NaN NaN NaN NaN NaN \n", + "\n", + " clark \n", + "Year \n", + "1950 2.486000e+09 \n", + "1951 NaN \n", + "1952 NaN \n", + "1953 NaN \n", + "1954 NaN " + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "table2.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The first column, which is labeled `Year`, is special. It is the **index** for this `DataFrame`, which means it contains the labels for the rows.\n", + "\n", + "Some of the values use scientific notation; for example, `2.544000e+09` is shorthand for $2.544 \\cdot 10^9$ or 2.544 billion.\n", + "\n", + "`NaN` is a special value that indicates missing data." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Series\n", + "\n", + "We can use dot notation to select a column from a `DataFrame`. The result is a `Series`, which is like a `DataFrame` with a single column." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Year\n", + "1950 2557628654\n", + "1951 2594939877\n", + "1952 2636772306\n", + "1953 2682053389\n", + "1954 2730228104\n", + "Name: census, dtype: int64" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "census = table2.census\n", + "census.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Year\n", + "2012 7013871313\n", + "2013 7092128094\n", + "2014 7169968185\n", + "2015 7247892788\n", + "2016 7325996709\n", + "Name: census, dtype: int64" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "census.tail()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Like a `DataFrame`, a `Series` contains an index, which labels the rows.\n", + "\n", + "`1e9` is scientific notation for $1 \\cdot 10^9$ or 1 billion." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "From here on, we will work in units of billions." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Year\n", + "1950 2.525149\n", + "1951 2.572851\n", + "1952 2.619292\n", + "1953 2.665865\n", + "1954 2.713172\n", + "Name: un, dtype: float64" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "un = table2.un / 1e9\n", + "un.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Year\n", + "1950 2.557629\n", + "1951 2.594940\n", + "1952 2.636772\n", + "1953 2.682053\n", + "1954 2.730228\n", + "Name: census, dtype: float64" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "census = table2.census / 1e9\n", + "census.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's what these estimates look like." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file figs/chap03-fig01.pdf\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plot(census, ':', label='US Census')\n", + "plot(un, '--', label='UN DESA')\n", + " \n", + "decorate(xlabel='Year',\n", + " ylabel='World population (billion)')\n", + "savefig('figs/chap03-fig01.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following expression computes the elementwise differences between the two series, then divides through by the UN value to produce [relative errors](https://en.wikipedia.org/wiki/Approximation_error), then finds the largest element.\n", + "\n", + "So the largest relative error between the estimates is about 1.3%." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1.3821293828998855" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "max(abs(census - un) / un) * 100" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** Break down that expression into smaller steps and display the intermediate results, to make sure you understand how it works.\n", + "\n", + "1. Compute the elementwise differences, `census - un`\n", + "2. Compute the absolute differences, `abs(census - un)`\n", + "3. Compute the relative differences, `abs(census - un) / un`\n", + "4. Compute the percent differences, `abs(census - un) / un * 100`\n" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Year\n", + "1950 0.032480\n", + "1951 0.022089\n", + "1952 0.017480\n", + "1953 0.016188\n", + "1954 0.017056\n", + "1955 0.020448\n", + "1956 0.023728\n", + "1957 0.028307\n", + "1958 0.032107\n", + "1959 0.030321\n", + "1960 0.016999\n", + "1961 0.001137\n", + "1962 -0.000978\n", + "1963 0.008650\n", + "1964 0.017462\n", + "1965 0.021303\n", + "1966 0.023203\n", + "1967 0.021812\n", + "1968 0.020639\n", + "1969 0.021050\n", + "1970 0.021525\n", + "1971 0.023573\n", + "1972 0.023695\n", + "1973 0.022914\n", + "1974 0.021304\n", + "1975 0.018063\n", + "1976 0.014049\n", + "1977 0.011268\n", + "1978 0.008441\n", + "1979 0.007486\n", + " ... \n", + "1987 -0.018115\n", + "1988 -0.023658\n", + "1989 -0.028560\n", + "1990 -0.031861\n", + "1991 -0.037323\n", + "1992 -0.038763\n", + "1993 -0.040597\n", + "1994 -0.042404\n", + "1995 -0.042619\n", + "1996 -0.041576\n", + "1997 -0.040716\n", + "1998 -0.040090\n", + "1999 -0.039403\n", + "2000 -0.039129\n", + "2001 -0.038928\n", + "2002 -0.038837\n", + "2003 -0.039401\n", + "2004 -0.040006\n", + "2005 -0.041050\n", + "2006 -0.041964\n", + "2007 -0.043192\n", + "2008 -0.044599\n", + "2009 -0.046508\n", + "2010 -0.057599\n", + "2011 -0.061999\n", + "2012 -0.066201\n", + "2013 -0.069991\n", + "2014 -0.073816\n", + "2015 -0.101579\n", + "2016 NaN\n", + "Length: 67, dtype: float64" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "x = census - un" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "Year\n", + "1950 0.032480\n", + "1951 0.022089\n", + "1952 0.017480\n", + "1953 0.016188\n", + "1954 0.017056\n", + "1955 0.020448\n", + "1956 0.023728\n", + "1957 0.028307\n", + "1958 0.032107\n", + "1959 0.030321\n", + "1960 0.016999\n", + "1961 0.001137\n", + "1962 0.000978\n", + "1963 0.008650\n", + "1964 0.017462\n", + "1965 0.021303\n", + "1966 0.023203\n", + "1967 0.021812\n", + "1968 0.020639\n", + "1969 0.021050\n", + "1970 0.021525\n", + "1971 0.023573\n", + "1972 0.023695\n", + "1973 0.022914\n", + "1974 0.021304\n", + "1975 0.018063\n", + "1976 0.014049\n", + "1977 0.011268\n", + "1978 0.008441\n", + "1979 0.007486\n", + " ... \n", + "1987 0.018115\n", + "1988 0.023658\n", + "1989 0.028560\n", + "1990 0.031861\n", + "1991 0.037323\n", + "1992 0.038763\n", + "1993 0.040597\n", + "1994 0.042404\n", + "1995 0.042619\n", + "1996 0.041576\n", + "1997 0.040716\n", + "1998 0.040090\n", + "1999 0.039403\n", + "2000 0.039129\n", + "2001 0.038928\n", + "2002 0.038837\n", + "2003 0.039401\n", + "2004 0.040006\n", + "2005 0.041050\n", + "2006 0.041964\n", + "2007 0.043192\n", + "2008 0.044599\n", + "2009 0.046508\n", + "2010 0.057599\n", + "2011 0.061999\n", + "2012 0.066201\n", + "2013 0.069991\n", + "2014 0.073816\n", + "2015 0.101579\n", + "2016 NaN\n", + "Length: 67, dtype: float64" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "y = abs(x)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "0.013821293828998854" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "z = max (y / un)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1.3821293828998855" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "z * 100" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`max` and `abs` are built-in functions provided by Python, but NumPy also provides version that are a little more general. When you import `modsim`, you get the NumPy versions of these functions." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Constant growth" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can select a value from a `Series` using bracket notation. Here's the first element:" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "2.557628654" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "census[1950]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And the last value." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "7.325996709" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "census[2016]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "But rather than \"hard code\" those dates, we can get the first and last labels from the `Series`:" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1950" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "t_0 = get_first_label(census)" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "2016" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "t_end = get_last_label(census)" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "66" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "elapsed_time = t_end - t_0" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "And we can get the first and last values:" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "2.557628654" + ] + }, + "execution_count": 25, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "p_0 = get_first_value(census)" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "7.325996709" + ] + }, + "execution_count": 26, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "p_end = get_last_value(census)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Then we can compute the average annual growth in billions of people per year." + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "4.768368055" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "total_growth = p_end - p_0" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.07224800083333333" + ] + }, + "execution_count": 28, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "annual_growth = total_growth / elapsed_time" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### TimeSeries" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now let's create a `TimeSeries` to contain values generated by a linear growth model." + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
values
\n", + "
" + ], + "text/plain": [ + "Series([], dtype: float64)" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "results = TimeSeries()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Initially the `TimeSeries` is empty, but we can initialize it so the starting value, in 1950, is the 1950 population estimated by the US Census." + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
values
19502.557629
\n", + "
" + ], + "text/plain": [ + "1950 2.557629\n", + "dtype: float64" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "results[t_0] = census[t_0]\n", + "results" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "After that, the population in the model grows by a constant amount each year." + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": {}, + "outputs": [], + "source": [ + "for t in linrange(t_0, t_end):\n", + " results[t+1] = results[t] + annual_growth" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's what the results looks like, compared to the actual data." + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file figs/chap03-fig02.pdf\n" + ] + }, + { + "data": { + "image/png": "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tSqTNSo16Pjr7zRRXtcFwHlrl1GWnxR0/E9v76e6qeeodZ+sc889l4cffpjt27ezdetW1q5dS3FxMXfddddRz9+7dy8ul4vNmzcfcez6668PvP6v//ovfv/73/PEE0+QmprKvffey1e+8hWeeuopAGpqati6dStvvvkmO3fu5Oqrr+bCCy8kISGB22+/nd/97ncUFhby61//mnvuuYc//elPk36O7u7uY14nkyKEmB2egR4GP9yBu6cVwzBoHXRT3+uky2OnwxyHgZnWrmHy85ZxSlnprM7SOx7pQc1DhYWF/Pa3v6W4uJhnn32WT37yk5x11ln89Kc/DUz3nKi7u5u4uLjjTrV/7rnn+NKXvkROTg52u52vf/3r7N69m4aGBsD/7emGG27AarWyadMmUlJS2L9/PzabjbCwMH7zm9+wb98+PvnJT4YUZE70OiHEyTN8Xoaq99D75q9x97TSPeLhnYNDVPX5ICmHxOxczJYwzNYI8tUqTj31tHkVnGAR96DmK5vNhsfjOaLc6/USHn6oO52bm8s3v/lNwB+AXnnlFe69914SEhK47LLLgq5NSUmht7cXt9t9RJAaGBggPDwcm81GS0sLt912G3fccUfgeFhYGAcOHCAsLIzo6OigNlitVnw+H9HR0Tz11FM8+uijbN++Hbvdzuc//3muu+66ST/rZNdJkBJi5vhcI/S+/Xu8gz0MubzUdI3S4/QSFptMeGwymEzY7XY2bSwgKyubnPT5uYLLog1Qp5dNPvS2aXUWm1ZnHfP4eWuXcd7aZcc8/rEzcvnYGblTbld6ejotLS2sXLkyUObxeGhpaQnsFvy5z32Oj370o1x11VUAJCYmctlll7Fv3z601kfUuWbNGux2Ozt27GDr1q1Bx+6//37279/PU089RWpqKnfccQdnn3124HhVVRV5eXns3bv3mG3u6+sLPL9yu938/e9/56abbmLdunVYLJagBFvDMOjr6zvudTJpQ4iZY7La8VojqOpsoaF7lH63mcjULBLj4rBYLBQUFJCfnz/reU1TNWtDfEqpy5VSg4f98SqlXpmtNswHF110EQ899BC1tbWAf3rnfffdR0pKCqtWrQLg4x//OI888givvvoqLpcLl8vFzp072bFjB+eff/4RddpsNm655RbuuOMOXnvtNTweD8PDwzzxxBP89re/5cYbbwTg0ksv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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plot(census, ':', label='US Census')\n", + "plot(un, '--', label='UN DESA')\n", + "plot(results, color='gray', label='model')\n", + "\n", + "decorate(xlabel='Year', \n", + " ylabel='World population (billion)',\n", + " title='Constant growth')\n", + "savefig('figs/chap03-fig02.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The model fits the data pretty well after 1990, but not so well before." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Exercises\n", + "\n", + "**Optional Exercise:** Try fitting the model using data from 1970 to the present, and see if that does a better job.\n", + "\n", + "Hint: \n", + "\n", + "1. Copy the code from above and make a few changes. Test your code after each small change.\n", + "\n", + "2. Make sure your `TimeSeries` starts in 1950, even though the estimated annual growth is based on later data.\n", + "\n", + "3. You might want to add a constant to the starting value to match the data better." + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file figs/chap03-fig02.pdf\n" + ] + }, + { + "data": { + "image/png": "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vAshhBATmw1zCa9NWmt3KBdMigCFGZxCnXElhBBi4joXcyWXY5osAaoB4A9/+APp6enjXRchhBDHqbGxkWuvvRb6v89DMVkClB8gPT2dzMzM8a6LEEKIExfyMI0k6gohhJiQJEAJIYSYkCRACSGEmJAkQAkhhJiQJsskiREFAgHq6+vp6ekZ76qIE+BwOEhNTSU2Nna8qyKEmECmRIA6ePAgFosFpRRWqzQKJxPDMOjt7WXfvn0AEqSEGEcBnwer3Tne1RgwJb7N29vbSUtLk+A0CVksFiIjI8nIyKCpSZaTE2K8+F1dtK15kb59u4598ikyJb7R/X4/DodjvKshTkJERARer3e8qyHEacsaEYU9LoXu7e/hbW/C5w9Q29g5vnUa16ePIosl1B21xUQkf39CjC+LxUrMmRdhj09l34F2XnxT8+q6GprbesetTlMmQAkhhAhdwOvGMAJBZVa7k9hFV7DtgI32bjeGYbBmSz3jteuFBKhTTClFeXn5kPKrrrqKl19+eeD9P/7xD6666irmzp3LwoULufnmm9m5c+eI9167di3XX389ixcvZtGiRXz5y19m48aNo/4ZhBCTm7uxhra1q+mp2DDkmNVq5by5GVitFsIcNlR2wjjUsL8u4/ZkcVQbN27koYce4v7772fz5s2sXbuWefPm8ZWvfIXW1tZhr/nzn//MPffcw3XXXcfatWtZt24dV155JbfccgsfffTRKf4EQoiJyN/XQ+fmN+j8+A0CfT301myjseKTIeclxIRz8eIcrr2kiFkzk8etC14C1AS0bds2cnNzmT9/PlarlfDwcG699VYuv/zyYQNUb28vP/rRj/jBD37A8uXLcTqdOJ1OPv/5z7Nq1SpqamoAczLJU089xUUXXcTixYu56667Bu63YcMGLr/8ch555BEWL17Meeedx+OPPz7wjL/85S8sX76chQsX8rnPfY73339/4LoFCxYE1efCCy/krbfeGvE6IcSpYxgGvXU7aXv/RdwHzO8Dnz/A3hYvb27aR83+jiHXzMyMJzJ8fCefTYk8qOFs3NnIxrJGABaVpLOoNHibjnXb9rG1shmApbOnM1elBh1/d/Nedla3AHDB/CxK85KCjr+xvpZde9uGvffJOv/883nyySdZuXIly5cvZ/78+RQVFfHggw8Oe/6WLVvweDwsW7ZsyLFbb7114PXv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IruEyMKFJDrCCM/sIjs95qjdcYZh0NDQQHl5OS6XK+hYcnIypaWl8v/tBEz9xZyEEOIoDE8fXdveobW9mwOtLoyAgSotJHHuMhxxqQPn5Uw7enBpa2tj586dtLW1BZVHR0dTUlJCamqqjDOdoJHGoJo5tLDUMWitU499lgCzBXP11Vdz11138dRTT+H1ernzzjuxWq089dRTeDwebr31Vq6//no++OADfvKTn1BTU0NGRga33347l1xyycB97r33Xj755BPy8vLIy8sLes7q1at55plnaG1tZfbs2TzwwANkZWWNx0cWYsKyhkUQkT+f1nfewG04OBBThMt5BpfEHfsrzeVyUVFRwb59+4LKnU4nSimys7NP+0TbkzVSC+qbhBigJprdu3dTWVk57MaAo81ut1NYWEh+fmjbNIM5s2fHjh28++67vPXWW9x9991cddVVvP3226xdu5Y777yTWbNmsWrVKh5++GEuvvhiNm3axG233UZKSgrz58/nrrvuoqSkhF//+tdorbnxxhtZsMDc+eTNN9/k5z//OU8//TQFBQU8++yz3Hzzzbz66khDiUJMbYZh4O9qwR4bvD1FZN5sMtp7+MfuMCKjIpmZPfI4k9frHUi0DQQCA+VWq3Ug0XaknQlE6EYag3ruFNZjVFVXV5+S4ARmVnh1dfVxBSgwd8o9tBmg3+9n5cqVOJ1OLrjgAvx+P7/97W9ZvHgxl11mTqBcsmQJV1xxBa+88gqpqans2LGD3/zmNzidTmbNmsVVV1018JPc6tWrWblyJaWlpQDccsstvPDCC2zYsIGcnJzR/QMQYhIw185bh7e1AU/JZWTkHu5NsFhtZC04h0+ltZE7LTZoGvlghmFQV1eH1npIou20adMoLi6WRNtRNlIXX8i742mtj38v8jGUl5d3SltQR3avheLQysSHpprGxMQADHQJ9PX1kZGREXRNZmYmGzZsoLm5mbCwMBISEoKOHQpQ+/fv58knn+RXv/rVwHGv18v+/fslQInTSsDrxrXrI3prd9Db56XhYA8H61/D/rnrSEsKDiYFWcO3nAzDGEi07eoKXtktPj6e0tJSEhMTx+wznM5G6uLrGeHYhHYoz2AiO9ag6YIFC/joo+BdTPbu3UtycjJpaWm43W5aWloGMtAPHDgwcF5qaiorV64M2qhw9+7dTJ8+fciKyUJMRYZh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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "results[t_0 + 20] = census[t_0 + 20]\n", + "\n", + "for t in linrange(t_0 + 20, t_end):\n", + " results[t+1] = results[t] + annual_growth\n", + "\n", + "plot(census, ':', label='US Census')\n", + "plot(un, '--', label='UN DESA')\n", + "plot(results, color='gray', label='model')\n", + "\n", + "decorate(xlabel='Year', \n", + " ylabel='World population (billion)',\n", + " title='Constant growth')\n", + "savefig('figs/chap03-fig02.pdf')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 5ba646a4d10e476ab1eaf4b8a19a9559c7a4ccbb Mon Sep 17 00:00:00 2001 From: Annie Tor Date: Sun, 23 Sep 2018 12:51:48 -0400 Subject: [PATCH 04/18] chap08mine.ipynb --- code/chap08.ipynb | 313 ++++++++++++++-- code/chap08mine.ipynb | 812 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1089 insertions(+), 36 deletions(-) create mode 100644 code/chap08mine.ipynb diff --git a/code/chap08.ipynb b/code/chap08.ipynb index 0f16233f..f89540d6 100644 --- a/code/chap08.ipynb +++ b/code/chap08.ipynb @@ -16,9 +16,7 @@ { "cell_type": "code", "execution_count": 1, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "# Configure Jupyter so figures appear in the notebook\n", @@ -43,9 +41,7 @@ { "cell_type": "code", "execution_count": 2, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "def plot_results(census, un, timeseries, title):\n", @@ -68,9 +64,7 @@ { "cell_type": "code", "execution_count": 3, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "def run_simulation(system, update_func):\n", @@ -100,9 +94,7 @@ { "cell_type": "code", "execution_count": 4, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "filename = 'data/World_population_estimates.html'\n", @@ -117,7 +109,20 @@ "cell_type": "code", "execution_count": 5, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "un = table2.un / 1e9\n", "census = table2.census / 1e9\n", @@ -146,9 +151,7 @@ { "cell_type": "code", "execution_count": 6, - "metadata": { - "collapsed": true - }, + "metadata": {}, "outputs": [], "source": [ "def update_func_quad(pop, t, system):\n", @@ -173,7 +176,18 @@ "cell_type": "code", "execution_count": 7, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "2.557628654" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "t_0 = get_first_label(census)\n", "t_end = get_last_label(census)\n", @@ -193,7 +207,70 @@ "metadata": { "scrolled": true }, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
values
t_01950.000000
t_end2016.000000
p_02.557629
alpha0.025000
beta-0.001800
\n", + "
" + ], + "text/plain": [ + "t_0 1950.000000\n", + "t_end 2016.000000\n", + "p_0 2.557629\n", + "alpha 0.025000\n", + "beta -0.001800\n", + "dtype: float64" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "system = System(t_0=t_0, \n", " t_end=t_end,\n", @@ -213,7 +290,20 @@ "cell_type": "code", "execution_count": 9, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "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338/3/nOd3j++ecBKCsrY+3atbz77rts2bKF6667josuuoiEhATuuusu/vSnPzFnzhz++7//m/vuu4+///3vQ34fzc3NxzxPBkUIMTba2trYsWMHLS0tAPjaGrFHxJA3bwFz5szpN13H5fHj9vr5tLSB/JmJJMSEj2qs0oIah+bMmcMf//hH5s6dy8aNG7n88stZvXo1TzzxBIZhHHV8c3MzcXFxxx1qv2nTJr75zW8yY8YMwsPD+f73v8+2bdvYv38/YDbtb7rpJhwOB2vWrCElJYXKykqcTid2u50XX3yRXbt2cfnll4eUZE72PCHE8AsEApSUlLB582YzOQUCeBqrCO9uYmFkB3NmzjhqLumivBTiosOIjXTi9ox+N58kqFHmdDr7Dd/s4ff7CQsL632fnZ3ND3/4Q/7yl7/wwQcf8O1vf5unn36ajRs3HnVuSkoKLS0tg84jam9v751kV1NTw5133snSpUtZunQpZ555Jna7vXcVh+jo6H4xOBwOAoEA0dHRPP/881RWVrJ+/XrWrFnDU089NWiy7OtkzxNCDK+WlhY2b96M1ppAIECgqw3voXKyw7wszogi3N9N8bubcXv7JyGbzcq6NTP5p/MV6UlRox73pO3iWz5v6K63NQszWbMw85j7z1kynXOWTD/m/s+uzOazK7NPOK709HRqampYsGBB7zafz0dNTU1vteCvfOUrnH/++VxzzTUAJCYmcuWVV7Jr1y601kddc9GiRYSHh/P222+zdu3afvsefPBBKisref7550lNTeXuu+/mjDPO6N1fUlJCTk4O27dvP2bMra2tvc+vvF4v7733HrfccgtLly7FZrP1S4yGYdDa2nrc8wY+txJCDD+/309paSllZWUYhoHh8+A9XEe04UKlhhPltNHZ7aXYnc6+zhTadh9i9cJp/a4x2t16fUkLapRdfPHFPProo5SXlwPm/2weeOABUlJSKCwsBODCCy/kySef5PXXX8fj8eDxeNiyZQtvv/0255133lHXdDqd3Hbbbdx999288cYb+Hw+urq6ePbZZ/njH//IzTffDMBll13GY489Rm1tLX6/n6effpqrrroKl8s1ZMzNzc1ce+21bN26FYfDQVpaGhaLhbi4OGbMmIHH4+HVV1/F7/fz/PPP9y7aO9R5QoiRdfjwYd555x1KS0sxjAC+tkZ8hyrIjfSxKD2SKKcNa1gEnllnss8xBywWdpQ2cLh96M+D0TRpW1Dj1c0334zNZmPDhg00NTURFhbGypUree6553qfIX31q18lPDycxx9/nNtvvx3DMJg1axZ33303a9asGfS6X/7yl4mJieGpp57ijjvuwDAMCgoKeOaZZ1i2bBkAN9xwAz6fj6uuuoqWlhby8vJ45plnjrv+3cyZM7n33nu56667qK+vJyEhgR/96EfMmTMHgB/96Ec8+OCD/PjHP+bSSy9l8eLFIZ0nhBh+fr+fvXv3sm/fPgzDIODuwttcS5zdj8qIIsJhBSxEZM8jMm8ZiXYnRYfLaWrrZuW8DOKiwo57j9FimQjPA5RSOcC+N954g6ysrKP279mzh/z8/FGPSwwv+XsU4tQ0NTWxY8eOI6WHjAC+2jJy4x1kRDlo7fQQnZJO8uJzcMQfGbnc2uHG6bARETZybZbq6uqeHqCZWuv9oZwjLSghhJjgfD4fu3fvprKyst/21LR05uRn01X8Lvvqu6iw5RIfVsiF8f2n1cRFj59WU1+SoIQQYgKrr69n586ddHd3Q8APVhsOh4N58+b19jh1tbaz3eXAZwunqaadqkPtTE+LGePIj2/UEpRS6irgqQGbI4A3tNbnj1YcQggxGXi9XoqLi6mqqgLDwNfWgK+9mekFSzhtxemEhx8ZfZe19AxmBw5QUnWYhXNSSEscvZpOp2LUEpTW+vfA73veK6UWAa8B3x+tGIQQYjKoq6tj586duN1uAq4OvM112A0fBcnhxLhqae3yET5gdPjphRksmZtKQuzYDRs/UWPSxaeUcmAmq3u01jvGIgYhhJho3G43xcXF5uR6vw9vyyH8XW2kRtnJiYvgcEs3Rc2tdBrlfOH8QqzWI6u2RIY7iAyfWIVdQ0pQSikbsARYCqQCfqAO2Ka1/vQk7nsz0A08fhLnCiHElGIYBrW1tRQVFeF2u/F3NONtacBpNZibEkFKlAMvdvbac2iMzIR2gz37m49aQ3SiGTJBKaUSgG8BNwJJQAXQBNiAZCBbKVULPAk8prVuOd4NlVJOzG69/6e1Hv9j3IUQYgy5XC6Kioqora3F8LjwHq4l4HGRHu1gVkI4DpuF8Mw8kuauIre8lcbiOmZlxk2IQRDHc8wEpZRaD/wL8AZwLfC61to94JhY4AzgKqBIKXWn1vr549zzAiAA/OVUAhdCiMnMMAyqq6spLi7G6/Xi7ziM93AdYTYLMxPDiHFYCY+NJ3reGTiTzdF6i1UYGUlRkyI5wdAtqGXAMq11w7EO0Fq3YSaavyilMoA7geMlqEuBTVrrwIkGK4QQU0F3dzc7d+6kvr6+d5s1LIr0aAdxBGhq6mJfguKCVetwOp29x9ht1kmTnGCItfi01rcMlZwGOb5Wa/3NEA5dCbwX6nUnm1BKvj/yyCMUFhZSVlbW75jBigP2eOmll8jPz2fRokUsWrSIhQsXcuGFF/LMM8/0Wz383HPPpbCwsPe4nq/PfvazvcdUVlZy8803s2zZMhYtWsS6dev4z//8z0Hve9FFF3HmmWcOupK6EOLEGIZBZWUlb731Vr/kFBkZyelnnkXh0pXU+WIpSTyTA45cPtZNYxjtyAt5FJ9SKhUoBBxAv4I+WutXT+CeOUDNCRw/Jbndbm677TY2bdrU739IQ8nLy+NPf/oTYP5D3759O7fddhttbW185zvf6T3uF7/4xVGrnvcIBAJcf/31rFu3jp///OeEh4fz6aefcvPNN+N0OvnSl77Ue2zPIrApKSm89tprXHzxxafwHQsxtXV1dbFjxw4aGxvwtTVhsVixxyaRk5PD3LlzsdvtGIkJzIjMo2RbFWmJkcycNvQ6mhNdqKP4rsUccTfYGEUDc9BESLTWo19UZAJatWoVNTU1PPzww9x+++0nfL7FYmHx4sXcd9993HDDDVx77bXHXRQWzBWQKysrWbduHREREYBZzuP222/vrSvVY+PGjXzmM58hKSmJ3/3ud5KghDgJhmGwb98+9u7di7ezDe/hOgyfB4fVQsrsxcyfP7/3WIvVhspOxOmwM3Na7KQv/hlqC+r7wK+BO7TW7SMYz7DpLNlGV9nHIR0bPj2fmAX9y6W373obV9XRXXEDRc5eQlTespOKccjrRkbywAMPcPXVV3PWWWexYsWKk7rOqlWrsFqtbN++fdCS8AMlJSWxfPlyvv71r3PJJZf0dvNddtll/Y5rbm7mjTfe4K9//SsxMTE88MAD7Nq1q1+dKyHE0Do6OtixYwfNjfV4D5tzmgzDIIoAEV4/B4uL6JiviI480otisVjIzZwaJWtCrQc1Hfj3iZKcJovTTjuNDRs28IMf/IC2traTukZP/aWOjo7ebbfddltv0cCer0cffbR3/zPPPMP111/Pzp07ueWWW1i5ciU33XQTdXV1vce8/PLLrFq1ioyMDKKjo7nkkkuO+ZxKCNGfYRiUlZXx9ttv03CgHFdNOf6uNqIcVhZnRJMQ5qAudj41UXPZurvu+BecpEJtQb0GnAeUjmAsU0KoJd973HTTTbz77rvce++9/Z7/hMrv99PW1kZGRkbvtp///OfHfAbVE+PVV1/N1Vdfjcfj4eOPP+bhhx/m1ltvZePGjRiGwaZNm6ivr2f16tWA+czM7XZz++23k5Q0sScHCjGS2trazFZTfR2+5loCXhcWIDs+jBlxTiKmzSFiRSHbP6hlTlY8i1XaWIc8ZkJNUDuAXyilLgFKgH4PI7TWJ/6QZIRF5S07pa63mAVnHdXtNxxCKfnel81m48EHH+TSSy8lMvLEF3jcunUrhmGQl5cX0vEbN27khRde4OWXXwbMZLVq1SocDgfXXXcdAB9++CEtLS387W9/w2o90gjfsGEDL7zwQm8FXyHEEYFAgLKyMkr0XjyHD+HvOEwgYOCwGCzKjCEuPpHo+eacpljg6gvixm0ZjNESahffWcAWzNXHFxKcIxX8GnzcsxhUKCXfB5oxYwY//OEP2bRpU8j3CQQCbN26lbvuuosNGzYQHR0d0nlnnXUWBw4c4P7776epqQnDMKiqquLZZ5/tLTe/ceNGLrjgAtLS0khJSen9+vznP88LL7wgQ86FGKClpYXNmzejtcYwINDdgdvjw+H1EG8EcM44jYQzruidcAvjt0bTaAqpBaW1PmekA5kqQin5PpgrrriCt99+mw8//PCYx5SUlLBo0SIA7HY7mZmZXHfddVx55ZX9jvvud7+LzXb0wMu//e1vpKen84c//IFHHnmEdevW0d3dTUJCAhdccAHf+ta3aGpq4vXXX+e555476vx169Zx//338/e//51169aF+BMRYvLy+/2UlJRQXl5+ZD6ixUJKTh72A0U0G8mUxcyj6XAKX7SGPBh6ygi55LtSKg34JjAPs+W1B/i11rpi5MLrvXcOUvJ90pO/RzGZNDc38+n2T2irr8EWnQCYXfZz585l5syZHK6pYuMHzSTFR3LW4qwJU6PpZI1YyXel1HLg/4Aq4H3MibrrgFuUUmdrrT86qYiFEGKS8fl87Nmzh4rdO/G2HCLg8+J2+ZmlFAsXLiQqypwKmpg5gy+cm0xyfES/shjiiFAHSTwE/BdwY98VyJVSjwIPAtIFKISY8hoaGvj0oy201ewn4O7C4/XjdvuI9daTknFxb3LqkTrJW02nKtQEtRS4bpDyGI8Aoc2GFUKIScrr9VK0ayf7i7fja2/u3R5phYTIcJri5vFeUT0505Nw2OVZU6hCTVC1mGvo6QHbcwGZvCuEmLLq6ur49IN36KivxvCbcxztVguzk8LJVAv5U0UMAauD0+dPw24LdeC0gNAT1O+Ap5VS3wZ6hpGtAn4Z3CeEEFOKx+Nh50dbqNyzg4CrC4/Pj9NuJTnKQcHsmSQtPAt7TCIXZnYSHxNGuDPktblFUKg/sZ8C04BNmCP4LIAXs4vvzpEJTQghxp++5dc7avfj7eqgy+XDCATIyUhgydoLCcuY1buQa3qSrI99skKdB+UBrldK3QYooBso01p3j2RwQggxnrhcLnbt2tW7LqUjPpXOlsNEWMCWlMvuqAIWJmQTPslXGR8tQ5V8vwj4P621N/h6oOlKKeCE60EJIcSEYhgG+/bsQO+rxhc4MlYsIiqahWs/w9YKH/WeME6bk0KYQ54zDZehWlCvAOlAffD1sZxQPSghhJhIOlqa+Pgfr1JfV4vPGUNESiY2q4Xs7GwKCgqw2+2EZ3ThcFhJiAkf63AnlWMmKK21dbDXYnx65JFH2LNnD48//viQx/XM5t62bVtIBQyFmKoCfh8lW99i984deL0+utw+vG0NuB0JrLt4LcnJyb3HynymkSHDSoQQYoDmyr18/M4btLR3AuD3B/B6/YRFJuAKm45hk4EPo2GoZ1ANmN13x6W1Th22iCa56upqLrvsMm699VaefPJJvF4vt9xyC1arlSeffBKPx8ONN97INddcw/vvv89DDz3Evn37yMzM5Oabb+aCCy7ovc6dd97Jzp07yc3NJTc3t999Nm3axDPPPENzczOFhYXcc889TJ8+fSy+ZSEmDG/7YYo3/43yyir6PGoiIS6aqOwCqrxJzM1OIDJc/m8/Gob6KX+fEBPUeFNeXk5JScmghQGHm91uJy8vj1mzZoV8Tnt7O0VFRbz55pu8/vrr3HbbbVx66aW88cYbbN68mVtuuYUFCxawYcMG7r//fs4//3y2bdvGTTfdREpKCkuWLOHWW2+loKCAX//612itufbaa1m61Kx88tprr/GrX/2Kp556ijlz5vDss89y/fXX88orQz1KFGLqMnxe6na+x47tn3C4y4PFYsFmtWCxWsnLn8+81efR3h3A5fHJsPFRNNQzqOdGMY5hVVFRMSrJCcyFISsqKk4oQYFZKbenGKDf72f9+vU4nU7OOecc/H4/v/3tb1mxYgUXXWQOoFy1ahWf+9znePnll0lNTaWoqIjf/OY3OJ1OFixYwKWXXsrBgwcBs/W0fv165s2bB8ANN9zA7373O7Zs2UJ2dvbw/gCEmOD8fj+7t73Hnk+20O3y4fb6sdutzMieztKzLyA+xaxoGx8DIDWaRtNQXXwhV8fTWp94LfIRlJubO6otqIHda6GIj48H6K3LFBMTA9BbodblcpGZmdnvnKysLLZs2UJDQwNhYWEkJCT029eToGpqanj88cd5+umne/d7vV5qamokQQnRR3NzMzt27KCjowPDHoHb24LfFoY3bg65p59LfEr8WIc4pQ3Vxdc5alEMs1mzZp1wi2a0WY4zkW/p0qV89FH/KiZVVVUkJyeTlpaG2+2mqamJpKQkAA4dOtR7XGpqKuvXr+9XqLC8vJxp06bR1NQ0jN+FEBNPwNWJp6ud0oMN7N+/v3d7RMo0/OFJNDpmkTsjlYRYGTI+1obq4vv6aAYi+luzZg1PPvkkr776Kp/97GfZunUrf/7zn3n00UfJzMxk+fLl3H///dx7771UVlby0ksvsXjxYgAuu+wynnjiCZYtW0Zubi6vvPIKd9xxB6+88gp2uzzcFVOTEfDTvW8nVTu3sKfJjSduBhHBwQ52u52CwkJS0qbRcLib7AyZgjEeDNXF9wBwr9a6M/j6WAyt9T8Pf2hTm91u5/HHH+ehhx7izjvvJC0tjXvvvZc1a9YA8Mtf/pI777yT008/nWnTprF27Vqam81l/i+77DLa2tq46aabqK+vZ8aMGTz22GPk5ORQXV09lt+WEKPOMAw89ZW0FL3L3qp69je7cHt8eDtrmJ47g/S0NBYsWEBERAQA2RmOMY5Y9Bjqv9PLAEef18cyIUf6jZWsrCy0PlK1JDY2tt97oN/71atXD3qd5ORknnrqqWPeZ/369axfv/649xdiMvO1N9Ox+z0OHthPaZMLtz+Ax+vHb3HgNpzEJs9k2bJ5x+1yF2NjqC6+cwZ7LYQQ413A46Kr9CNaKnZR2tRNY5c5YMpqs+NMTKQ1kMKMmXkUzM2R5DSOhfxAQikVBVwJzAM8QDGwMbjSuRBCjDnDCOCqLKajZBsHGtsob3ZhCY6MtUcnEJU2ndULFtIdiCA3M06S0zgXUoJSSi0A3sJMTDsxa0J9HfgXpdSFWuu9IV4nA3gCOAdwAU9rre86ibiFEOIoAVcXh3a+y/YDrTR2egAL8UkJhCWmkzM7r3dxVzExhLoI7K+BPwIztNaf1Vp/BrME/PvAsR+EHO1PmOXj04CVwNeUUl85gfOFEGJQgUCAfQfr+LQ9nKYuLz7stDmS6YqazuqzzqGwsFCS0wQT6t/WQmC91trbs0Fr3a2U+gmwPZQLKKVWALnA6uB19imlzsYsfnjKDMOQ5vqb25OoAAAgAElEQVQEFggExjoEMcEEvG58h+twpmbT2trKjh07aG1txRaTSESyn6Z2O4lp0zn37KUkJcWNdbjiJISaoD4BzgBKBmxfCuwO8RpLgF3APUqpazC7+B7XWj8U4vnHFB4e3jtpVZLUxGIYBl6vl0OHDhEVJWucieMzjADu6hI69RZcXV2URM+ns6sVwwgOKLZYmT47jwWpM5mfl4XVKp8JE9VQ86Bu6vN2K/CoUmop8CHgBwqBG4H7Q7xXImaSexuzJTUX+JtSqlZr/YeTiL1XVlYW1dXVNDQ0nMplxBix2+3ExcX1q68jxGC8zbV07H4Pb2sj+xs72V3fRScfkj4rD6fDis1m6128Wf6zOvEdbzXzvuqAC4JfPRqBbwD3hXAvN9Cmtb4n+H6HUuo3wOXAKSUoh8PBzJkzT+USQohxzN/dTufeLbhry/D6DcqbXZTUd+MNWHE7oqhr6mTx/JkUFhZKS3wSGWoe1HB/4u8FIpVSzj5D0+WJpRDimAy/j66KT+ku307A76Oxy0dpswtPAKKT09jfZscZFsaSJaexYlG+tJommaG6+L6mtX4+1AsppSzA17XWvz3GIf8HNAAPKaW+ByjgWsxuQiGE6GUYBp5D++jc8wHezjYa213Uuw0au3zYImMJi0vFYndw2ox41qxcQlSUlFyfjIZqwSwKJpIngZe11rWDHaSUSgW+AtwAvH6si2mtXUqps4BHMIeau4AHtNb/c7LBCyEmK4Ou0o9prm9kb10HdS4/UbExRKZmYw2LJDw8nPnz55ORkTHWgYoRNFQX37eDgyLuBh5WSu3GXD2iEbAAKZjDz/OAvwLXaK23DnUzrXUFcPEwxS6EmKQsFivkLOKTT0o57DLosifSQRyzwiLJzs4mPz8fh0MWdZ3shnwGpLX+CLhEKTUTuBBzWPlsIIA5aOJXwKta6wMjHagQYnLqWW3cmZqNxWIhEAhQWlpKWVkZtuQs2pr8WKw2ZqQnsWrVchntOYWENEhBa70PeHyEYxFCTDG+tiY6ijfjba6jM2sFMVkz2LVrF+3t7QA4YxOY4fRRkJ9HQf7c3grUYmqQUXRCiFEX8LrpKv2I7v1FuD0+qhvaqdB/w5+WS3zskQEPCQkJnFVYSGysFBCciiRBCSFGjWEYuGvL6dzzHgG3ucrZ/sYudLOXTlsMnuZuYqIjCHM6mDt3Ljk5Ug5jKpMEJYQYFb6OFrM7r+kgAG5fgNJmF02WCNoiE/EYdhJjw0lLTeW00xb2VrgVU5ckKCHEiDL8PrrKPqG74lPcHi92m4XaDh/72v1YY9MIi4wlw+UlMiKcpYtPIyMjQ1pNAjixgoWLMBd8dWAOM++ltZYBFEKIQXWVfkxn+Sc0tHRzsKmLdqsda1wy9rQUsJgVfwrUbBk6Lo4SasHCO4GfAM1A+4DdBjLCTwhxDBG5C6kq2s6eQ53U+5x0OROZGW0mp+joaAoLC0lKShrrMMU4FGoL6jrgLq31T0cyGCHExGYYBvh9WOxHWkLNbR0ccKZQ7zBos0UQEWZ+7OTl5TF79mwZOi6OKdQElQRsGslAhBATm6+9mY5db2OJiiei4EyMgI/du3dTXV0NFicpGelEuX3Myp7GwoWFxMTEjHXIYpwLNUG9CFwF3DNyoQghJqKeQRBdFdvp6vZwsH4vjft9hIUH8Hg8vcfFREewfFk+M2bMkEEQIiShJqhu4A6l1BVAKeDpu1Nr/aXhDkwIMf55mmro2PU2/q5WXG4furqVQ26Dxk7NtBmZRIabHzHTpk1j3rx5hIeHj3HEYiIJNUFFcopFBYUQk0fA66Zz7we4qvaa7w2Dum4/BwMRNDpiMWxOvD4/kZGxLFiwgNTU1DGOWExEoa7F9/WRDkQIMTG4D+2no3gzge5OsECLy0dJswdvVDJx2XG4mrtIT4pC5c0mLy8Pu12mW4qTcyLzoBYAtwPzACtmhdxfaa3fH6HYhBDjiOH30r7zLVw15TS2dNPe7cHjcNIQCMeePBObzY4NmJ+XRWFhIXFxcWMdspjgrKEcpJS6EPgEczTfi8B/AzHA20qp80cuPCHEuGG143d1UV59mNL6TnY2+6gMJOBIzsJis2O325k/fz5r1qyR5CSGRagtqJ8C92mt7+27USn1I8wJvK8Nd2BCiPHFYrFgnbWMmo/3UuNz0hWWQJTPQRyQkZHB/PnzZRCEGFahJqh8YLCRei8APxy+cIQQ40FvEcGU6VisNvx+P2VlZZSVlWHPnI2vrou0mHAy0xIoLFxAWlraWIcsJqFQE9QBYBFQNmD7EqB+WCMSQoypgLuLjqJ36DhYQXX4bLIXLqS4uJjOzk4ArHYnc6aHkZubK4MgxIgK9V/WY8CTSqks4MPgtlXAncADIxGYEGL0uWsr6Ch6m6amVqobO6lzbaX4YD3JyUeeKSUkJFAoRQTFKAh1mPmvlFIxwB1AcnBzDfBjrfWjIxWcEGJ0BLxuOorfxV1TimEY1HX6qOj0022LxtXuJT4hQER4GHPnziU7O1tWghCjIuS2eXCh2J8qpVKBbq31wFXNhRATkKehivZdbxFwddLu9lPS5KLdb8UVnYHPGs6M5GhysmdQUFBAWFjYWIcrppBjJiil1E3Ab7XWruDrgft7X0s9KCEmHsPnpVN/SEvpDrBaOdDq4WC7B1tUHOEp6WQGIDY2moULF5KcnHz8CwoxzIZqQX0f2Ai4gq+PRepBCTHB+Dtbadn2KnXVtVQ0dtFmWAmLCMOZnIU1Igar1cq8OXOYNWuWlMMQY+aYCUprPXOw1wMppaQzWogJxhoexaGWbrbXdtLlN/DYwkiKm05YRAQpKSksWLCAqKiosQ5TTHGhVtStAJZqrZsHbJ8GfArISpBCTBDmnKZyyo1YvNZDdNpisUbGER0Tw5LFC8nIyJBBEGJcGOoZ1CXAmuDbHOBflFJdAw6bPUJxCSGGiWEYeBursCVm0dTUyK5du+jq6gJ7GPG5c7F2+Vi0YC4FBfkyp0mMK0P9a9wBfBvo+a/UIvrXgTKADuBrIxOaEOJUBdxdtH76JhV79rLbSCc+uf/cpeTkZM6VhV3FODXUM6hK4FwApdSzwK1a67bRCkwIcWrch/bTsuNNtu6tpa7bR4B9YJ9FfHw0DoeD/HypbivGt5DrQSml7EqpTKBnSI8FCAOWaK3/K5TrKKW+ATwFuPtsvllr/fwJxCyEGILh89Kx531qS3ZR2uyi2WdgGOC2R+F3B1gwfTr5+fkyp0mMe6EOklgHPAskDrL7MBBSggIWAw9prX8Q4vFCiBPgPVxH48f/R8nBRuo7vQBERkbQ7owhIyuLc89YTlJS0hhHKURoQn0i+m+YJTV+AbwBXAKkA78EvncC91sC/PuJBCiEOD4j4Kd1z1a2f/Auh70GfsPcbouIITxlOhfm55ObmyvdeWJCCTVBzQG+qLXWSqlPgCit9SallBf4EWbZjSEppWxAIfBVpdQvgC7gN8D9Wmvj5MIXQvi72ih+7SV2lFXT7QsQHmYnItyJIzGd6bPzmTdvntRpEhNSqAmqGwgEX5cAC4G/Ah8DeSFeIwX4CHgeuByzxtSfgDZkJQohTorb7aZ4916KKw/R7TN/RTt8dlJmFLBsxXJZokhMaKEmqHeAu5RS38JMMtcrpR4CzsZMMMelta4Dzuqz6VOl1CPAF5AEJcQJCQQC7N+/H601Pp+PmIwZeCor6HLEU7h8NWtWLJAlisSEF2qC+h7wZ+AbwJOY86PaACdmTajjUkrNA76ktf5xn81OzLX+hBAhMAyDfXuKqKhtoLurs3e7LSKavBVnMK/wNBLjpU6TmBxCHWZeBuQrpSK01t1KqeXAOUCj1npLiPdqAb6nlKoGnsGc+Pst4JsnEbcQU057UwPv/Pklag4dgvgs0qelABAdHc38+fNJSUkZ4wiFGF5DLXUUeZztb/a811oPXALpKFrrg8Hlkx7AHP3XCPxEa/3iCUctxBTi9/vRW99m1ycf0dpudjgEWmrpTkxg8aIF5ObmYrVaxzhKIYbfUC2oDszljEIRUme31vofwNIQrynElFd3YD/b3/k7HW2tWC3gcNjwev1ExqawYuVqsqfLOs1i8hoqQZ0zalEIIfrp6Ohg++Y3qNtfCkagd3tKQgwxM5ey5syV2GzSahKT21Br8b09moEIIczuvO3btrHjw3exeF3ERDrBAjaLBVWQz9zTz8fmcI51mEKMilCXOtrGEN19WuvlwxaREFOQYRjU1dWx/YPNVJdqMMxfN4/PT056IgvPvpjotKwxjlKI0RXqMPNXBjkvF7gYuGc4AxJiqmlvb6eoqIjGxkYMq50wpx2320uY1ULOrAJOv2gdFqvMaRJTT6jDzO8dbHtwdfJLgIeHMyghpgKv18uePXs5cKASI9histgcJE6bjqOzjUWfuYS06dJqElPXqZbP/AfwyHAEIsRUYRgGFfv28d5bm+lo7yBr5gwsFrBYLOTk5JCXl4fDYcdikUEQYmoL9RnUYHOi4jAXiq0d1oiEmMSamprY9ekn6J07sbg7sWGhqSmWuXNnM2/ePGJjZRUIIXqE2oI61pwoF/D14QtHiMmpq6uLPbuLOVBSjK+1kSiLly7AYTVIxc2KFStksq0QA4SaoAbOiTIAD1CstW4f3pCEmDz8fj9lZWWUFu/E3VRDwGsWk45w2kiww8y5C1BnrpXkJMQgQh0k8TaAUioaUIDf3Ky7RzA2ISYswzCoqalh69aPqa+sIN7hxhosFpgaZScvK4OkRWfjTMwY40iFGL9CfQYVhlkS4yrMFcgBupVSvwa+p7X2j1B8Qkw4LS0tFBUVUVK8B2/LISxGgG6/jbS4MOakxDBtwUoicubL0HEhjiPULr5fYdZ++jKwFbACK4CfA27gn0ciOCEmEpfLxZ49e6iurgYgPNCBzwhgs0Ci3WDp/AISF56JLSJ6jCMVYmIINUF9Cfic1vrdPtteUko1A5uQBCWmML/fT0VFBWVlZfh8vt7tMenTiQ2UkRIbgzr7QuKn545hlEJMPCdS8t07yPbWYYxFiAml5zlTUXExNZVVxCQlEuYwf6XS09MpKCjA2lZPeOp0LLZTnXIoxNQT6m/NHcBvlFIbgA+11gGl1HzM51I/7TtPKpTaUEJMdC0tLRQXF3Ng3z5aa6ux+j00uD3kz89n/vz5JCcnmwdGzRzbQIWYwEJNUA8D0cBmwK+UCgAOwAIsB37R51h58ismre7ubvbu3UtV5X58LYewdLRi9XuwWSDZ10LWDHUkOQkhTkmoCeqyEY1CiHHO5/NRVlZGRXkZ7pYGfG2NYBjYrRamx4URaYGMwpXkzpDkJMRwOdF5UBHAHMxRfOUySVdMdoZhUFVVxc5dxdRUVRPta8VhNQsIJkfamZUQTkzmbKLyV+KMkmWKhBhOoc6DsgH/CtzKka49j1LqOeCbWmvfEKcLMSE1NDSwe/duaqoP0lJThc3vpstqITMhgtlJ4SSnpBE9bzWOxGljHaoQk1KoXXw/Ba4G1gPvYiao1ZjzoO4OfgkxKbS3t7N7927q6+sBcPq7sQeCz5kcFvKSY5i25AzCp8+VFceFGEGhJqj1wHVa61f7bNuklGoHnkYSlJgE3G43WmsqKw/Qd23kiKQ0cv0dRHhdTF+4nMzFp2N1hI1doEJMEaEmqGigbJDtFYA8FRYTWs9E2x279lBfU0tkTDRJibFYLBamT5+OUgpL+2nYIqKxR8ePdbhCTBmhJqhtwM2Yz6D6+ibw8bBGJMQoMQyD6upq9u7dS8OhelpqqrAHPHS52pk1ayYLC+cfqc8ULpVthRhtoSaofwbeUkqdDXwY3LYSyAEuGP6whBhZPQMgWpub8LXW4+hsw4kXuxUyHS6mJSZK8UAhxliow8w/UkotBm4ACjCXPvoz8JjWWirqigmjtbWVXUXFNNYfwuhoxtfRDIaB025hXmokTgOmL1pOcp6smyfEWAt5gTCtdQlwm1IqCfBrrVtGLiwhhld3dze7d++haG85rQ31xBrtRIVZsVlgenwY02OdRGbOJkqtwBYpLSchxoOQE5RS6i7gRiAt+L4KeFhr/fAIxSbEKfN6vZSWlrJv3z7aWlroOniA8IAXD5ATH8XspAiiktKJLjgdR0L6WIcrhOgj1Im6P8Xs3ruP/vWgfqSUcmitHxy5EIU4cX6/n/3791NaWorXay7EH+m0023xE2a3kBFhY2ZKAsmL1hA2bQ6WYLVbIcT4EWoL6jrgawPmQb2nlCoDHgNCTlBKqXhgJ3C31vq5UM8TIhQ9I/M+3VGMx+PC6TiydnFi+jRmx1qxtdSRedpKomefhsXmGMNohRBDCTVB2YGqQbaXATEneM8ngcwTPEeIIRmGQX19PTt3FVNeeYju1iYiwsPInJ5OVFQUc+fOJSMjg4CrEywWbOFRYx2yEOI4Qk1QDwKPK6W+orWuAlBKJQI/w1zuKCRKqa8BscCuEw1UiGM5fPgwe/bsoampie72NoymA0QFvFh8NlIzVrBs8XysVnNJIim3LsTEEWqC+jKQD1QEB0f4gBmAE1iplPpWz4Fa69TBLqCUmgn8GDgd+NupBC0EmGvm7d27l7q6OgyfB29LPZbudqLsASKxMCPOTk6Yqzc5CSEmlhMpWHjSgquh/ydwm9a6Til1KpcTU1x3dzdaa/aW7sNiBHC6W/B1NGMxDDJjnEzLiMRisZMyfxkRMxeOdbhCiJMU6kTd50/xPneZl9EvneJ1xBTmdrspKyujtKyCg/VteNpbiA60ER9hIzXazsz4cCIcVsIz84hUK+Q5kxATXMjzoE7RlcA0pdTlwfcxmM+0lmutbxqlGMQE5fP5qKiooLy8HJ/PR8DjwtpSRZTfQ4TNwuzYMLKSInHEpxFVsBpH/KC9zEKICWZUEpTWem7f90qpTzEn+T43GvcXE1PPXKaysjI8Hk/vdofTQVqUjXCvlWlx4aSnJhIzfzVh02bLfCYhJpHRakEJEbJAIEBVVRUlJSU0HW4nYBjERDoBiImJYe7cuUR15tJS9B6J+UuJzD0Ni13mMwkx2YxJgtJanzYW9xXjm2EYHDx4kJKSElrb2qlt7MTV1oLT4iN5fj4F+flkZmZisVgwjFQip83EFnGi0/CEEBPFMROUUuq3oV5Ea/2N4QlHTEWGYVBXV4fWmvb2dgAsPjfWlmri/C6SnBZiotPIyjpSk8lisUpyEmKSG6oF1fe33wl8DtiLWbzQAywGFgJ/GLHoxKRmGAYNDQ3s3buX1tZWc6Pfh7e1Hkt3GwWJVnydVhJjwphGFVA4pvEKIUbXMROU1vqKntdKqacxBzV8t+8xSqn7gLkDzxXieBobG9Fa09zcjMvjw+X2EW10YHQ0kxVtIyszGofVgssXSYJaROTsJWMdshBilIX6DOqfMFtMAz0PfDp84YjJrrm5mb1799LU1ETAgLqmDjpbDhPlbSE3LYKcaRE4bebKD87UHBLzV2GLihvjqIUQYyHUBFUHnAuUDti+Dqgc1ojEpNTS0oLWmvr6+t5tFiOAteUgWYFuEsMtRAZ8OG0R2KMTiSo4HWdy1hBXFEJMdqEmqH8BnlFKnQt8Algw60FdBFwx1IliamtpaaGkpIRDhw71226xWJiRk0N+uIuDpWVERzhITUsgev4qwqfnY7HI+nlCTHWhLnX0O6VUNbAB+Gpw807gTK31lpEKTkxcra2tlJSUUFdXB4Db46e920tKfASZmZnk5eURFRWFb2YW4a5mEvIWEjl7CVZH2BhHLoQYL0KeB6W1fhN4cwRjEZNAW1sbJSUl1NbW9m6rbeyg8/BhEiwu8s/4J2ZlZ/Tus8cmkXnhNVidEWMRrhBiHBtqHtQDoV5Ea3378IQjJqrBEhNAwNNNoquebHs7YVYL5R9/wqzsi/sdI8lJCDGYoVpQy0K8hjEcgYiJ6ViJyfB5STA6yLK145xmp6zaQlS4g4yoJgwjIM+YhBDHNdQ8qHN6Xiulvgr8VWvdOCpRiXFv4DMmgC6Xj5a2LuanOsi0NhPlALABMHt6EnF5pxE5e7EkJyFESEJ9BvUrYCUgCWqKO9aovKpDbVi6u8k2mkjrDicq+shgh7CM2SSqFdgiZWkiIUToQk1QW4DPAz8bwVjEOHb48GFKSkr6zWPqkZGRQWpnHd2uerBAw+Fu4qLCcCSkEZW/CkdC+hhELISY6EJNUAHgX5VSPwL2Ad19d2qtlw93YGJ8aGpqoqSkhMbG/o1ni8VCRkYGc+bMITY2lpYY2PWP14iJcJKemUbs/NNxpudKfSYhxEk7kRaUzHeaIgzDoLGxkdLSUpqamnq3BwIGja0uvH4HX7rsHBIT4nv3xc0+jbl1FUTNUERkz8ditY1F6EKISSTUibr39rxWSsUCVq11y4hFJcaEYRgcOnSI0tJSWlr6//VaLBbqWwLEu9pJ9h5i//6CfgnKYrOTfOYV0mISQgybkCfqKqVuBH4ITAu+rwf+XWstz6UmOMMwqKmpoaysjLa2tn77LBYLmempZFrbaekspiZYr6ljzxaM0/L6JSRJTkKI4RRSglJK3QbcBfwUeBdzLb7VwA+UUt1a638fuRDFSAkEAlRXV1NWVkZnZ2e/fV6fweycTDKsHVhqd2AE/MRHO2nrcBAXHUZqbjIE/GAbk6LMQogpINRPl5uB/6e1/q8+295TSlUC9wGSoCYQn8/HgQMHqKiooLu733gXuj0B2t1hxLgPk1LzCVj8vTOxLRaYXZBHZN5ynEnTRj9wIcSUEmqCSsGspDvQx4DURJggvF4v+/fvp6KiAo/H02+fw+EgOzub/Tt2k3x4D1bDT31jGNNSogGwxyYTlbccR8p06coTQoyKUBNUEWZZjX8bsP3LmGXgxTjmcrmoqKigsrISn8/Xb19YWBi5ubnk5ORgt9sJP1hMZaMfiwVsNiu26ASi8pbhTJspiUkIMapCTVB3A39RSq0CPghuWwVcAFw+EoGJU9fZ2Ul5eTlVVVUEAoF++2yOMCKikzlz1UJstiNDwjMXr8bdUEV8ahrx+csJy8iVpYmEEGMi1GHmrymlzgNuwawH1Q3sAZZprXeMYHziJLS0tFBWVkZdXR2G0X8t3+joaLo9DjzV5dg9RTTl55GaFN2735mYQe5nrsCRlCktJiHEmBqq3MYFwGatdSeA1vod4J3RCkycGMMwaGhooLy8/KhVHwASEhLISUsgpq2ash0f0d5tPoPa+f6HrP3c2n7HSql1IcR4MFQL6i+ATyn1EfCP4Nf7Wmv3qEQmQhIIBKipqaG8vPyoOUwAKSkpZCdEEN5Uga+0CA+QlhhJe5eHiDA7GQmeoy8qhBDjwFAJKhlzrtMqYA3wHcCqlPqQIwlri9baP+JRiqMMNVTcYrGQnpaGtasTf/mn2OPB16e3LsxpY3bhfFLnL8eZmIEQQoxHQ9WDOgy8EvxCKWUDFmMmrFXAN4BkpdRmrfXFx7qOGF4ul4t9+/ZRWVmJ1+vtt89mszFjxgyyEmMofvV/8LrMxNXujCEmygkWC+HT5hAxcyH22KSxCF8IIUIW8jIAWmu/UqoaqAXqgQNAKpA7QrGJPtra2qioqODgwYNHjcgLCwsjJyeHnJwcnE4nhs9LbKSDpmCCamz3kbZgOeHZ87FFRA92eSGEGHeGTFBKqWjgbGAt8BlgLlAFvAk8A3xFa10zwjFOWT2ripeXl9PQ0DBgH/ix4/AHiExKJy8vr3efxe4gfd4imrZ+THzeaeQvX05YRMRohy+EEKdkqFF8m4HlwGHgLczljP6htS472ZsppdYB/wrMxGyFPaC1fupkrzdZ+f3+3oEP7cHFWftKiIshNuCmrngXTsNNa0s9/pULsFmPPGhKnreCMxeswiplL4QQE9RQLajVQDXwW8wBER9orb1DHD8kpVQG8CLwea31X5VSizHX89umtf7kZK/7/9u79+i4quuAw7/RSDMjybJelixZWLYF9sYGDMG8kialiUvSEBMoAdIGSCC8ktK0ISXpAodAEgivlgWlJSSE0lBKWSQUtzgpjwWF8GizeAQHYtgBrNHoYVvGYHs0kmakmekf58oej21hyZLmjrS/tbQs3TP3ztmembvnnHvuOdNJMpmko6ODaDRKMukGSw6nM/T1D1FTFWFuzSyaS/sp3/4W2XSaeMkQQ2moSGyku2szra27Vq4NlJZhdzEZY4rZaAmqDde1txL4KlApIs8BT+IS1iuqmh1l/92o6kYRaVDVuIiUAPXAMLBnE2GGicfjbNiwga6urt2uL3X19hHvH6IqGOD4miS18S4AN3lrAGpnRxguCVF7yBE0N84uTOWNMWaSjDaKLwr8xPtBRI4EPoFLWFcBQyLyNPCkqt6xP0/mJacKYLv33Deq6lsHEkCxymaz9Pb20t7evsf1JYBIJMJB5X2EBjcRzgyR3BqB+sqd5aXVDbQdeQTh5oNt9VpjzLQ0llF864B1InIbsAI4Hzft0WnAfiUozyBQCSwHfikib6nq3WPYv6gNDw/T1dVFe3s7fX19ACQGhshmYVZFGTU1NbS1tdHc3Ez3s4/wzntDVIRLiYRKCZQECTW1Ub7gMEpr5tpURMaYae0DE5SIHAQcD5zg/Xs0rmvuBdxaUE+P5QlVNQOkgJdE5MfAqbgRgdNaf38/7e3txGKxnTOKJ1NpunrjpJJD1FZV8Mk/PpG6urqdiadx6Yco2dZFpGo25a3LiMxfSkm4opBhGGPMlBltFN9DuITUjLtO9DzwCHA58PJYZ5AQkROBW1R1Rc7mMLBtrJUuFtlslq1bt9Le3s7mzZv3mLg1TIr69A7mlmwjOFhGIlVCfU6rKNQwn4YPr/LWYLIZxY0xM8toLagwcCuuhfSK1/I5EK8CLSLyDdyQ9eOBC4A/PcDj+s5IN140Gt05TLxvYIhIKEiQDJH0AE0lCRrCw7w7e5D341BTFaQi0QPU7jxOIBAg1LigQOd/Tl4AAA02SURBVFEYY0xhjTZIYtVEPpGqbheRk4F/AK7G3fB7oao+M5HPU0iJRIJoNEpnZ+fOaYh2JFL0vpcgk0zQVh1gSfUwdZGg140XYE5tOQ11FUTqm6motpF4xhgzYr8HSUwE736nj07lc062kdF40WiU3t7ePcpLBncwd3Azc0qHqUwGqYvUMtKLFygLU7VwCZH5SymtqpvimhtjjL9NaYKaTlKpFJ2dnUSjUfr7+0lnsiQGhphdGQKgsrKSRYsWUZeJ89vH15LNljB7VohMNkukvoXI/EMJNy0iECwrcCTGGONPlqDGIJvNsn37dqLRKD09PaTTbpxId2+c/h07KE0P0HLccSw7dDENDQ0EAgEyQ0kWND9PpKKcytalROYfSrCyusCRGGOM/1mC2g/pdJru7m46OjrYtm3XoMPsUJJ0YjvlO7ZQnxmiJhSgIlRFY2PjzseUlIWZ9/EzCFbV2Q21xhgzBpagRhGPx4nFYnR2dpJMptiRSBEkTTkDZBLbqQgMsbAqRHlLOd29aSLhILWDXbh7kHcprW4oTADGGFPELEHlyWQybNy4kY6ODrZu3QpAX3+SzT2bKRtOUBFIMb+xknlzQlSFQgQCAbJZiCyaRW3bUiItUuAIjDFmerAE5UkkEsRiMWKxGKlUareyUGoH1UNbqS4NUF0WoK06RKgs6KYemruISMsSyhoOsptpjTFmAs3oBJXJZNi0aRMdHR20x3qIJ1L09/WxsLWR0mAJgUCApqYm5h91OLHHHmQ4k6WmKkJ4zkHMWiCEmtooKQ0VOgxjjJmWZmSC6uvrIxaL0dXVRTKZJJMaJL55I9mBOJXZNIODtaw4ejmtra1EIhEAwsccS2h2PeF5hxCMVH7AMxhjjDlQMyZBDQ0Ns16jrP/922RSCarCkE5sJ92/nezwEJWZNIFghurSEqoqyndbQh2g5qhPFKjmxhgzM82IBBWPx1n76P8Q69lCaLif2SWDhMJu4tZwMEBzTZg5kSCJ/hTVNdXULZ1X4BobY4yZEQmqu7ub0sH3qBnoIUCWTADqayqZVxWirryUkrIQ4aY2WuYtpqx+ng12MMYYH5gRCaqlpYWuDfWktnTRUF7G/NoI9bPLicxdQHjeEkKNrQSCM+K/whhjisaMOCtXVVWx8tOreL8iTkm4gnDLYsJNB1MSihS6asYYY/ZhRiQocGsr1X70TAKlNjmrMcYUgxl1scWSkzHGFI8ZlaCMMcYUD0tQxhhjfMkSlDHGGF+yBGWMMcaXLEEZY4zxpWIZZh4E2LRpU6HrYYwxZhxyzt/7vbR4sSSoZoCzzz670PUwxhhzYJqBd/bngcWSoF4EPgZsBNIFrosxxpixC+KS04v7u0Mgm81OXnWMMcaYcbJBEsYYY3zJEpQxxhhfsgRljDHGlyxBGWOM8SVLUMYYY3zJEpQxxhhfsgRljDHGlyxBGWOM8aVimUlin0TkOGCtqjZ6fzcAtwGfApLAPwNXq2raK78XOAsYzjnMclXdICKtwN3ACUAv8DVV/aWPY/mIV74U6AGuVNWfe2UFi2UscYjIncA5eYeoBFar6g+K8DU5H/g2MAd4E/gbVX3OKyu2WL4GXAbUAy8Al6rqhkLGIiInATcAi73nvVlVfyQiNcBPgJOAPuDbqnqPt08A+D5wMRAC7gG+qarDXvlZwA9wsxw8A5ynqr1+jCVn3xLgIeAZVb01Z/vHca/pwcA64FxV3a9phfyoaFtQIhIQkQuBx3FvuhE/BRpxJ+3DgeOA7+WUHw2cpqqzcn42eGUPAL/FfSAvAh4QkbZJDmVcsYhIM/AL4B+BKuBS4D7vxFGQWMYTh6p+Jfe1AL4JrPfiKkgc441FRJYDtwCnAjXAfcAa72RSbLGcBVwHnO/V97+AJ0QkUqhYRGQ+7qR8Le7/98+B60XkU8APcdOgNQOfAW4QkRO9XS8GTsd99hcDxwJXesdchku053mxvOXFNqkOIBZEZCHwCHBa3jHnAGuA73rHfBh4LOf9V3SKtuK4F+GruBcYABGpAP4EuExVe1X1PeAq4CLvQ1oOHAq8mn8wEVkCHAN8R1VTqvoU7kN5weSHMvZYgC8Cv1LVn6pqVlWfwJ1g3i9gLOOJg5zHHgzcBHxBVXcU4WuymF2fqQDuJDPg7VtssXwOuEtVn1HVYVX9IZACVhYwloXA/ar6sKpmVPVF4GlgJXAGcJWq9qvqq8BduMQE8CXgVlXtUtUtwDXAJV7ZOcAjqvqcqg4CVwB/ICKL/RiLiMwCXsa1jl7IO+bpwO9U9SFVHVLVm4Gwd8yiVMwJ6k5VXQG8lLNtJJ5EzrY00ID7RnEUrmvvLhHZIiKviMgq73HLgJiq5u77JnDEpNR+d+OJZQUQFZEHRORdEfkN0KSqcQoXy3jiyPX3uJPiOu/vYntNHgNeB17DncxvBD6vqhmKL5aSvLKR8iUUKBZVfVZVvzLyt4jUsWsS6Syu9bO3+izDtcpzy+Z5++9Wpqr9QCf+jWUQWKqqVwJDeYfNjxNAmZr32KQo2gSlqj172daH68a4SUTqRKQe+I5XXI7rCnsW941yHq4L40ERORKYBfTnHbIfqJicCHar93hiqcN1rdyH6wq4HnjYa4UUJJZxxgGAiByO63O/MWf3YntNIrgTwgm462h/i+via6L4YnkIuFhEjhGRMhG5CNf7UE4BYxkhItW4VtuvcS2KQVXNnfk6tz759R35vWIvZfn7TrqxxOK1Zvd1fazgsUy0ok1QozgX9+31DdwFzzXe9m2q+riqnqSqL3lN4IeAp4DP4r4tlucdqwJ3kbJQ9hkL7qL2o6q61ovlQeAV4NP4L5bR4hjxZWCNqm7O2ea3OGD0WK4BNqnqr1U1qap3AFHgTIosFlV9APel5wFci+Jw4AngfQoci9fF+H/AZlx3WByI5HUZ59Ynv74jJ+y+vZTl7zupxhHLaPz4Hjsg0zFBNQOXqOpcVT0c6AbeUNV+ETlFRL6U9/gQrtm8Hmj1rlONOJQ9m8xTaZ+x4Jr9tXmPHxmV6bdYRotjxKnseXHab3HA6LHMx/X55xrGdcUUVSzeIJxHVPUQVW0CvoFLUi9TwFhE5A9xLY01wBnedaO3cNf8Fu2jPusBySvbqKrb8su8a3Ot+DeW0eTHOZZ9fanoh5nvxS3A6yJyOe6NdiO7RoQFgdtE5A3cB+3zwEeAC1U1JiLrgOtE5Apv+6nAh6c6gByjxXIv8Jcicg5wP+5b+nLgLFXt9Fkso8UxMty5DXg+dydVVZ/FAaPHshbXZfYgblG2s4HDgF/48DWB0WNZCVwtIh8DduC6/3qAF1U1W4hYvO7rtbhbEG4f2a6qfSLyMG4U3AW4IdYX4UbmAfwrcLmIPIlrZVzjbQP32XlORP4I+F9cq/E3qvp7n8Yymodx77+zvN//GsjgBl8UpemYoC7CjXp5D9ftcrvX1YKqrhGR1cC/A024VsgqVY15+34O+DHunoR3gQtU9fUprn+u0WJZJyIn404qdwAx4HRV7fT29VMs+4zDsxBIeiPJ8vkpDhj9NbnLu55wP+4+qPXAyT59TWD01+XfcBfX1+F6GZ4EPptzbaQQsVyKu458vYhcn7P9n3Cj8u4AOnA9Itep6n975XcCc3Gj3iqAn+Fdb1PV10Tky95jWnAtmjMnOQ4Yfyz7pKq9InIK7j6ou4HfAaeoamqiKz9VbEVdY4wxvjQdr0EZY4yZBixBGWOM8SVLUMYYY3zJEpQxxhhfsgRljDHGlyxBGWOM8SVLUMZMIG/y3i3e5J/5ZatFpM9bLsEY8wEsQRkzsb6OuwE+9+ZLRGQRsBo3c0C0APUypuhYgjJmAqnqJtyaQheKyPE5Rbfj1iG7fa87GmP2YDNJGDPBvJmon8dNEXQsbrb8B4EPqep67zHn41Z1bcHNJr5aVR/1ykpxS5R/AbcszFbc9FyXq2paRO7DzbG2FDdX2+mq+vSUBWjMFLEWlDETzJuv7mLc5L3nA38HXJuTnD6Dm6h1tfeYu3FreR3nHeIK3BLg5+JW6b0C+CtgVc7TnIObc20lbrkGY6ad6ThZrDEFp6qvi8gtwI9wLaQbcoqvBG7w1vACeFtEjsEtafFnuBV5z1PVX3nl94jIt3Arpv6nt229qt432XEYU0iWoIyZPN/Frar7fVXNXZ57GbBCRK7K2VaGt26PN+v+ShG5GbfE+nLcjO/BnMe/M5kVN8YPrIvPmEmiqgPerwN5RaXAN4Gjcn4Ow62phIhci1sSosT795NA/lIW+cc0ZtqxFpQxU+9NYIGqvj2ywWtNDQI3A38BfF1V7/XKynELCgb2cixjpi1LUMZMvZuAe0VEgaeAk4CrcdefwC0guEpEXgCqcV2Fs9lzOXljpjXr4jNmiqnqz4DLgG/hrjtdBlyiqj/3HvJF3Oi914D/AN4G/gVYMeWVNaaA7D4oY4wxvmQtKGOMMb5kCcoYY4wvWYIyxhjjS5agjDHG+JIlKGOMMb5kCcoYY4wvWYIyxhjjS5agjDHG+NL/Ayaqs/yaqgOLAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "results = run_simulation(system, update_func_quad)\n", "plot_results(census, un, results, 'Quadratic model')" @@ -239,7 +329,27 @@ "metadata": { "scrolled": false }, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file figs/chap04-fig01.pdf\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], "source": [ "system.t_end = 2250\n", "results = run_simulation(system, update_func_quad)\n", @@ -258,7 +368,18 @@ "cell_type": "code", "execution_count": 11, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "13.856665141368708" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "results[system.t_end]" ] @@ -267,7 +388,18 @@ "cell_type": "code", "execution_count": 12, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "13.88888888888889" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "-system.alpha / system.beta" ] @@ -281,11 +413,26 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 15, "metadata": {}, - "outputs": [], - "source": [ - "# Solution goes here" + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZ0AAAEYCAYAAACHoivJAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzt3Xd81PX9wPHXZSckjAAJGDbCG1BApoJU3BNHrVZ/VVHroIpWa9FWcRRH66q1deFAHB1CXa3buhAcDAUVCG+WICuEFVYSsu73x+d75yUk4UJydyF5Px+Pe+Tuu+79vcvd+z7j+/n4/H4/xhhjTDTExToAY4wxzYclHWOMMVFjSccYY0zUWNIxxhgTNZZ0jDHGRI0lHWOMMVFjSceERUTeEpHXqizrLiJ+EfmsyvJMEakQkVP387k+EZEHa1n/sog8tz/HjjQROdp7TdLD3L6biJwZ8niViFwTuQgb1r7eqzocxyciV4hIivf4EhHZXP8ITWNjSceE6xPg8CrLjgfWAsNFpGXI8pFAOTAzOqEd0KYCPwl5PAx4Nkax7I+zgUkNcJyjgKeABO/xNKBfAxzXNDKWdEy4PgE6ikiXkGXH4b40twFHhywfCcxT1Z1Ri+7A5Qt9oKqbVLUwVsHUlapubaD3uerrUKSq+Q1wXNPIJOx7E2MA+BrYgSvt/CAiPuBYYDIguFLPf71tRwIfBXYUkROBu4BDgc3Ao8CDquoXkT94x4wDjgB+XfWJReQi4A6gI/BPIKmmIEXkEuB63C/lG3ElrqeBW1W1wttmKHA/rlSxC3jBW18qIkcDr3vH+BOQCkwHrlPVIm/9x0CGqu7yjvcHYIyqDq0mnl7An3G/5FOBZcAtqvpfr4pwNDBaRM5R1W4issp7bR71XuNrgWuALsASb9+3vWM/BxR6xz0H2AI8o6p31/DaPAfsAdKBnwLrgdtU9V8h6xOAXt7t57jS6i3AWO/1nwf8VlVne/t8gvuBMcF7PBa4FejkxXubqr4VEsNVwG+89QuBG3Cl5Y+9TXaKyKXe/QdVtV3I6/ig9zpWAK8CN6jqThHpBnwPnIv7P+sMzAV+papa3WthYsdKOiYsqloOfIZLDAADcF9eX+ASzAkAIpKA+zL/yHt8FPA28AYwCPcFdhtwdcjhTwY+9Y79dujzisgxuOqmh4DBuCRx+j7C7QuMwSXFS4ErvedERHoDM4DFXpxXABcBfwzZPx2XsH4GnIFLqI/v4zn34iWNN4Cd3rkdBnwHTBWRJOA63Ov3hBdLVbfgqq5ux73erwP/FZGBIdtcjvvSHgo8A9wlIkNqCesS3I+Hwbjk/3cvkQZc4MVzLPC5t80vgfG4928R8D8R6VjN+Z4E/M2Ltz/wJPCyiIzw1l+KS8D3eufzMfCW9/r8zDtMT9wPhtDjZgKzgFJcVeTZwCj2rob8AzAOOAaXIOvd1mQanpV0TF18gvsSBle1NktV94jIR8BkEckBDgLicV9Y4Eou74b8+l4qIp1wX6iPecuKgD+FlERCn/NXwOuq+ri37gZckqpNAnCBqq4CFojI3cDvReROXAJaCVyrqn5giYj8BnjRK7Hgxf8rVf085Dmni8h1YbxGoVJxieBZVd3qHetB4HwgW1XXiEgJUKiqm0J39BLW9cA9qvqSt/gPInI4cBMuOQCsUNXbvPt3e+cyBPiqhphWA+O913qJl3Cuwr23AKqqz3kxtMYl7fNDSldX4b7wrwEmVjn2LcADIfGu8BLgb3ElsauBJ1X1We9Yv/e2awNs9e7neyXK0OP+AvcD+SJVLfL2vQT40vsRURI4f1X91Fv/OPB7TKNjJR1TFzOAwV5p5jjgQwBVXQaswX0ZjQS+DHw5AIfgfs2HmgUc5H2pAXwfSDjVOBRXtYf3XH5c1Ult1ngJJ2AOkA208+L50jtOaDyJuColcFVyX1TZPxFXjRg2r23mCeBnIvKkiHzMj9WO8fvYPcuLt7rX7pCQx8uqrN/pxVqTz6u81nNwr3HAipD74sUZjMHb9/MqMQQcAtwmIrsCN+Bifnzd+hHy3qmqX1V/p6rLa4k3cNwFIf9TeMcpoXJng6Uh93dQ++tgYsRKOqYuvgLKcFUzR+GqMwI+Ao7EfVl+FLI89IsiINBoHFfLNtVtH1BC7f+7ZVUeB56nPMx4KrxbdftXNyx7tbGISAtgtvecr+HavHbxY6miNjW9Jj4q/1gsqWGbmlT32pTX8LzhxhCQANyMq1IMVer9LaH6129f9ve1qO11MDFiJR0TNlUtw7XrXIr78vo6ZPVHwEBc20Vo0skFRlQ51EggH9frbV++Ze+u2oP3sU8XEWkX8ng4rvSz1YvnCK/6KjSeUn78lZ9I5V//w4FiQPnxi61VyPoeNcRxNK709BNV/aPXoJ7trQs8f7Vfwqq6A9fQX91rt6SG5wtH1dduOPBNDdsux70uwRi81+2IGmLIBbqq6vLADdcZ4f+89UurPr+ILBKRn1F7MsoFBopIasiyobj3qT6vhYkBK+mYupqB6530P69zQcCHuKokP+7XfcADwDwRuRXXQDwY92s40HttX8/3V2Cm167yJq4X1UBcMqpJIvCciPwO1zA9kR87CjyGa2d6REQeBbrjGrefV9XtIfE87bVftPTWP6Oqu0VkEe6X910icheu0fo09q7mAtebLAk4z+vlNRh42FuX7P3dBRwsIjmquq7K/vcCd4rIWlwp8zzgJCp3T6+rQV4b1wu4zhan4Eqoe1HVQhF5BPiLiBTi2sKuwSXZp6vZ5X7gXyKyBPgfrjPCJFxHDYC/AM+IyALgS1wniGxcJ5JAV/whIlK1PeofuI4ggXa3NriOHR+o6mKv95o5QFhJx9TVJ0ALKpdm8L4w1+I6F5SGLF+A6210Lq6L7B9x3VpDe4vVSFW/9Pa9AveLvB/wr33stgXXVvE5LhE+gOv9hqqux3VEGOwd7xncF/D4Ksd4CXgPeBl4Bde1N1AC+SXui38xcBY1XBzpxT4RlzwW43p1TcCV8AI9zJ7Afel/IyJVP4+P4r7I78f1ejsT1zW7Phfdvo8rfX3jncdPVXVOLdvfjPuxMBVXsu0PHOO141Wiqq/hunjfgDvfG4GrAx0LvL+3Avd453MUcIrXieI73I+K93GdPUKPW4h7z1ri2nJexbVtnV330zex5rOZQ01T4vVqCl7fsR/7H02V63CaCu86nHRVPacBjzkL+FRVb2moY5qmzarXjDF15rWv9Ad64y7YNSYsVr1mjNkfQ3AlwqVUuZjTmNpY9ZoxxpioOeCr10QkGTeEyAYqX29gjDEmcuJxww3NVdU94e50wCcdXMKxIfSNMSY2foLrTRiWppB0NgD84x//oEOHDrGOxRhjmoW8vDwuuOAC8L6Dw9UUkk45QIcOHejUqVOsYzHGmOamTs0a1nvNGGNM1FjSMcYYEzWWdIwxxkRNVNt0ROQE3DhUvXCjDD+gqk9686o8g5t9chdu6uCp0YzNGGNM5EUt6YhIZ9zAiRcD/8Fd0fyeNyf8JbjGqI64YTXeE5GVqjojWvEZYxrejh07yM/Pp7S0dN8bm0YnMTGRrKwsWrZs2WDHjGZJpxvwT28kWoC53nDvx+Gmsj3EG012gYg8jRtpNuJJZ8eOHWzatIlOnTqRnJy87x2MMWHZsWMHGzduJCcnh9TUVHw+m1PtQOL3+ykqKmLdOjfjRkMlnqglHW849uBFnCKSibuoaCZuDpbQodKXAGdEI64vvviCkpIS1q5dy1FHHWUfDGMaSH5+Pjk5OaSlpcU6FLMffD4faWlp5OTksH79+gZLOjHpSCAirXBT987GTU5VXGXO+kIgqv+pgV9lxpiGUVpaSmpq6r43NI1aampqg1aPRj3piEhv3KyBG3HVajuBlCrTB6fhOhREXJcuXYL3V65cGY2nNKbZsJqDA19Dv4dRTToichSudPM6cI6qFuOq1Xy4aYMD+uBmHoy47t27B1/ULVu2sG3btmg8rTHGNEtRSzoi0hM3He3tqnpzoDrNm53xNeBPIpIuIgNxUxO/GI24UlJSyMnJCT5esWJFNJ7WGNPIiAi5ubl7LT/zzDN59dVXg4/feOMNzjzzTAYNGsSwYcO44oorWLRoUa3HnjlzJpdccgmHH344w4cP56KLLmLOnNpmCW+6olnSGQ9k4JLLrpDbfcA4oAJYDbwN3KOq70QrsJ49ewbv5+XlsWtXk5ql2BjTQObMmcPdd9/N7bffzldffcXMmTMZPHgwF198MVu3bq12n5dffpmbbrqJCy+8kJkzZzJr1izOOOMMrrzySubNmxflM4i9aPZeuwG4oZZN/i9asVTVsmVLsrKyyM/Px+/3s2zZMgYNGhSrcIwxjdQ333xDt27dGDJkCOBqSq666iry8vLYunUrmZmZlbYvKiri3nvv5d577+X4448PLj/33HPZvHkz33//PUOHDqW8vJynn36af//73+zatYsjjjiCO+64g8zMTGbPns2dd97J6NGjeeWVV0hOTubcc8/l2muvBeCVV17hiSeeYPv27XTp0oXrrruOo446itmzZzN+/PhKie3YY4/llltu4fjjj69xv0izYXA8vXv3Dt5ft26dlXaMiZA5i/J49N8LePTfC5izKG+v9bO+WRdcP1/z91r/8VdrgusXrdyy1/r3vlxd47Hr6+ijj2bp0qWMHTuWF154gUWLFlFeXs6kSZM4+OCD99p+/vz5lJSUMHr06L3WXXXVVZx77rkAvPDCC/z3v/9l6tSpzJgxg8zMTH7zm98Et12+fDmJiYnMmjWLP/7xjzz22GOsWLGCrVu3ctttt/HEE08wd+5czj//fO6++272NSP0/u7XECzpeNq0aUNWVhZAsLRjjDGhevXqxeuvv06fPn2YNm0aZ599NkceeSRPPPFEtV/YW7dupVWrViQmJtZ63OnTp3PNNdfQpUsXUlJSuPHGG5k7dy6rVq0CXA+yq6++msTEREaNGkX79u1ZvXo1SUlJJCQk8PLLL/Pdd99x9tln89577+2zx9n+7tcQLOmEqFra2blzZwyjMcZEU1JSEmVlZXstLy8vrzRaSdeuXbnlllt46623+OKLL7j++ut56qmnmDZt2l77tm/fnoKCgmqvc9m5cyclJSUArF+/nokTJzJ06FCGDh3KUUcdRUJCQnA0gPT09EoxJCYmUlFRQXp6Os8//zyrV69m7NixjBo1iieffHKfJZb93a8hNIVJ3BpMoLQTaNvJzc1l+PDhsQ7LmCZl+CEdGH5IzbP8jhqYw6iBOTWuP2ZIZ44Z0rnG9Scd0ZWTjuha57g6dOjA+vXr6d+/f3BZWVkZ69evD85K/Itf/IITTzyRSy65BIDMzEzOP/98vvvuO1R1r2MOGjSIlJQUZsyYUalNB+CBBx5g9erVPP/882RlZXH77bfzk5/8JLh+6dKldOvWjfnz59cY8/bt2ykvL2fy5MmUlpby2Wefce211zJ06FDi4+MrJTu/38/27dv3ud/QoUPr/NrVhZV0qujTp0+wiLlx40a2bNm7ztgY0/ScdtppPProo8HLJgoKCrj//vtp3749AwYMAOCUU05h8uTJfPDBB5SUlFBSUsLs2bOZMWMGxx133F7HTEpKYsKECdx+++18+OGHlJWVUVhYyNSpU3n99dcZP348AGeddRaPPfYYGzZsoLy8nKeeeooLLriA4uLiWmPeunUrl112GXPmzCExMZHs7Gx8Ph+tWrWiS5culJSU8Pbbb1NeXs7zzz/P7t2797lfpFlJp4pWrVqRk5PD2rVrAcjNzeXII4+0K6uNaeLGjx9PfHw848aNY8uWLSQnJ3PEEUfw3HPPBdtkLrroIlJSUnj88ce56aab8Pv99OzZk9tvv51Ro0ZVe9zzzjuPjIwMnnzySW6++Wb8fj/9+vVjypQpDBs2DIArr7ySsrIyLrjgAgoKCujduzdTpkzZ53hn3bt3Z9KkSdx2223k5+fTpk0bbr31Vnr16gXArbfeygMPPMAdd9zBmWeeyeDBg8PaL5J80ajDiyQR6QZ8/+GHH9KpU6cGOWZhYSEff/wxFRUVAAwePLjSBaTGmH3Lzc2lb9++sQ7DNIDq3su1a9cGSnfdVXVVuMey6rVqpKWl0b37j6PyLF68uNoGRmOMMXVjSacGvXv3DvYWKS4uZunSpTGOyBhjDnyWdGqQkJBAv379go9XrlxpXaiNMaaeLOnUIicnh7Zt2wKuu+GCBQui0o/dGGOaKks6tfD5fPTv35+4OPcyFRQU2Jw7xhhTD2F1mRaReGAIMBTIAsqBPGCuqi6IXHixl5GRQe/evVmyZAkAS5YsITs7m/T09BhHZowxB55ak46ItAF+DVwFtAVWAluAeKAd0FVENgCTgcdUtSCy4cZGz5492bBhA9u3b6eiooIFCxbYtTvGGLMfaqxeE5GxwHygC3AZkK6qoqojVfVwVe0JZAK/Ag4BForIxdEIOtri4uI47LDDgklm27ZtNtmbMcbsh9pKOsOAYaq6qaYNVHUH8Bbwloh0BCYCzzdsiI1Dy5Yt6d27d3B8pSVLlpCZmbnX/BnGGGNqVmNJR1WvrS3hVLP9BlW9pmHCapwOPvhg2rRpA7jebF9//XVwlFhjzIEtnOmqH3nkEQYMGMDy5csrbTN79uwaB8p89dVX6du3L4MGDWLQoEEMHDiQU045hSlTplTqDXvssccyYMCA4HaB20knnRTcZvXq1YwfP55hw4YxaNAgxowZw9///vdqn/fUU0/lqKOOqnaE61gKe+w1EckCBgCJQKXGDFV9u4HjapTi4uIYMmQIM2bMoLS0lKKiIhYsWMCwYcOsfceYZmLPnj1MmDCB6dOnk5SUFNY+vXv35j//+Q/gfrDOnz+fCRMmsGPHjkqTtT300EN7jUYdUFFRwRVXXMGYMWN48MEHSUlJYcGCBYwfP56kpCR+/vOfB7cNDOTZvn173n//fU477bR6nHHDCqvLtIhcBqwB3sdVp70ZcnsjYtE1QqmpqZWmst64caO17xjTjIwYMYLCwkIefvjh/drf5/MxePBg7r77bqZMmcKOHTvC2m/btm2sXr2aMWPGkJqais/nY9CgQdx00017bTtt2jROOOEEzjnnHF588cX9ijNSwi3p3Ag8Ddysqs3+svzs7Gx69uwZTDZLliwhPT09OOeGMaZmu5fOpXD5V2Ftm9K5Lxn9K0/1vPO7GRSv2bsarKq0g4fQovew/Yqx1uOmpXH//fdz4YUXMnr0aA4//PD9Os6IESOIi4tj/vz51U5nXVXbtm0ZPnw4l156KWeccUawiu2ss86qtN3WrVv58MMPeeedd8jIyOD+++/nu+++qzRPUCyFe3FoZ+CvlnB+1KdPn0qjFcyfPz84QZIxpmk77LDDGDduHL///e/DLqlUFZi/ZteuXcFlEyZMCE6kFrg9+uijwfVTpkzhiiuu4Ntvv+Xaa6/liCOO4OqrryYvLy+4zWuvvcaIESPo2LEj6enpnHHGGTW2+8RCuCWd94HjgGURjOWAEhcXx9ChQ5k5cyaFhYWUlZUxd+5cRo0aRUpKSqzDM8bUUbjTVQdcffXVzJo1i0mTJlVqTwlXeXk5O3bsoGPHjsFlDz74YI1tOoEYL7zwQi688EJKSkr46quvePjhh7nuuuuYNm0afr+f6dOnk5+fz5FHHgm4Nqg9e/Zw0003BX8ox1K4Secb4CEROQNYClTqsqWqe1cqNgNJSUkMHz6cWbNmUVZWRlFREXPmzGHEiBHBSZ+MMZW16D2sXtVeGf1H71Xl1hDCma46VHx8PA888ABnnnkmaWlpdX6+OXPm4Pf76d27d1jbT5s2jZdeeonXXnsNcN8/ge+ayy+/HIAvv/ySgoIC3n333eDwXQDjxo3jpZdeCs5UGkvhVq+NBmYDqcBAvGt4vFtkJ9Ru5DIyMhgyZEiw99r27duZM2eOzb9jzAEmnOmqq+rSpQu33HIL06dPD/t5KioqmDNnDrfddhvjxo0Le0it0aNH88MPP3DfffexZcsW/H4/a9asYerUqcGpsqdNm8bJJ59MdnY27du3D95++tOf8tJLLzWK7tNhlXRU9ZhIB3Igy8rKYsCAAXzzzTeAa8ibN28ew4cPr/RrwxjTeIUzXXV1zj33XGbMmMGXX35Z4zZLly4N9npNSEggJyeHyy+/nPPPP7/SdjfccAPx8fF77f/uu+/SoUMH/vnPf/LII48wZswYioqKaNOmDSeffDK//vWv2bJlCx988AHPPffcXvuPGTOG++67j/fee48xY8aE+YpERtjTVYtINnANbsibOCAXeFpVYzrsciSmq95fK1euZNGiRcHHHTp0YMiQIZZ4TLNk01U3HVGfrlpEhuPacn4KbAY2AWOAb0WkWVevherRowciEnycl5fH3LlzKS8vj2FUxhjTeITbkeDPwL+Aq1Q1WDQSkUeBBwCrfvP06tWLsrKyYL1wfn4+s2fPZvjw4SQkhD0AhDHGNEnh1vsMBf4SmnA8j+A6ExiPz+ejb9++9OrVK7hsy5YtfPHFF+zZsyeGkRljTOyFm3Q2AN2qWd4DsAtGq/D5fPTp04d+/foFlxUUFDBr1ix27rSXyxjTfIVb3/Mi8JSIXA8EumiMAP7irTPV6NmzJwkJCXz33Xf4/X4KCwuZNWsWQ4YMISsrK9bhGWNM1IWbdO4BDgKm40pHPqAUV702MTKhNQ1du3YlJSWFr7/+mrKyMsrKypgzZw59+/alR48eNjq1MaZZCat6TVVLVPUK3BTVI3AXiLZW1QmqGvurjRq57OxsjjzySFJTUwE3VtvixYuZN29eo7hYyxhjoqXGko6InAr8T1VLvftVdQ50D24u8+nUR8uWLRk1ahTz5s1j27ZtgOtS/emnnzJkyBBat24d4wiNMSbyaqteexPoAOR792viB/a+hNbsJSUlhZEjR5Kbm8vKle6a2kA7T69evejVq5ddSGqMadJqTDqqGlfdfVM/cXFxHHLIIWRmZrJgwQLKysrw+/0sXbqU/Px8DjvsMDIyMmIdpjGmgTzyyCPk5uby+OOP17pd4Ar/uXPn0rJlyyhFF32WTGKkY8eOjB49mszMzOCygoICZsyYQW5uro1iYIxpkmpr09mEqzrbJ1W1/r/7IS0tjZEjR7Jy5UqWLFlCRUUFfr+f5cuXs379eg499FCys7NjHaYxzcLatWs566yzuO6665g8eTKlpaVce+21xMXFMXnyZEpKSrjqqqu45JJL+Pzzz/nzn//M999/T05ODuPHj+fkk08OHmfixIl8++239OjRgx49elR6nunTpzNlyhS2bt3KgAED+MMf/kDnzp1jccoxUVubzo2EmXTM/vP5fPTs2ZOsrCy+/fZbtm7dCri2njlz5pCdnU3fvn2tys00CStWrGDp0qVRmfojISGB3r1707Nnz7D32blzJwsXLuTjjz/mgw8+YMKECZx55pl8+OGHzJw5k2uvvZb+/fszbtw47rvvPk488UTmzp3L1VdfTfv27RkyZAjXXXcd/fr14+mnn0ZVueyyyxg61A1R+f777/O3v/2NJ598kl69ejF16lSuuOIK3nyztmbzpqW2Np3nohhHs5eRkcHIkSNZu3YtixcvpqTEzZO3ceNG8vPz6dy5M7179w52uzbmQLRy5cqozTVVVlbGypUr65R0wM0IGpggrby8nLFjx5KUlMQxxxxDeXk5zz77LIcffjinnuo69Y4YMYLTTz+d1157jaysLBYuXMgzzzxDUlIS/fv358wzz2TdunWAK+WMHTuWQw45BIArr7ySF198kdmzZ9O1a9eGfQEaqdqq18KelUhV6z5Xq9mLz+ejc+fOZGdnk5uby5o1a/D7/fj9fn744QfWrl1L9+7d6dmzZ7XT5xrT2PXo0SOqJZ2qVVvhCFy+EJjXJlDLEOhZWlxcTE5OTqV9OnXqxOzZs9m0aRPJycm0adOm0rpA0lm/fj2PP/44Tz31VHB9aWkp69evt6QD7I5aFKaSpKQkBg4cSLdu3ViyZAn5+fmAm3FwxYoVfP/993Tp0oWePXvu1zS5xsRKz54961zyiLZ9jRIydOhQ5s2bV2nZmjVraNeuHdnZ2ezZs4ctW7bQtm1bwNVWBGRlZTF27NhKk7etWLGCgw46iC1btjTgWTRetVWvXRrNQMzeWrVqxeGHH87mzZvJzc2loKAAcMln1apVrF69mpycHLp3724XlxoTJaNGjWLy5Mm8/fbbnHTSScyZM4c33niDRx99lJycHIYPH859993HpEmTWL16Na+++iqDBw8G4KyzzuKJJ55g2LBh9OjRgzfffJObb76ZN998s9lMfVJb9dr9wCRV3e3dr4lfVX/X8KGZgHbt2jFq1Cjy8vJYvnx5MPn4/X7Wrl3L2rVradOmDd26deOggw6yC0yNiaCEhAQef/xx/vznPzNx4kSys7OZNGkSo0aNAuAvf/kLEydOZOTIkRx00EEcf/zxwQ5CZ511Fjt27ODqq68mPz+fLl268Nhjj9GtWzfWrl0by9OKmhqnqxaRj4GfqmqBd78mflU9NiLRhaExTVcdDX6/n82bN7N8+XI2b9681/qkpCQ6depE586dm/QFZqbxs+mqm46GnK66tuq1Y6q73xC86a/fDFzfIyLJuHl5SkI2+1xVT2zI520KfD4f7du3p3379mzbto1Vq1axfv16KioqACgpKWHlypWsXLmSli1b0qlTJ3JyckhJSYlx5MYYE/7UBohIC+B84BBcclgETFPVklp3rHwMH3AZ8GCVVf2BraraIdxjGWjTpg1t2rShX79+/PDDD6xevZqioqLg+h07drB48WJyc3Np27YtHTp0oEOHDtbt2hgTM2ElHRHpD3yCSzbf4obPuRS4U0ROUdUlYT7fJOA04G7g1pDlQ4AFYR7DVJGcnEyvXr04+OCD2bRpE2vXriUvLy84lE6gSm7z5s0sXLiQ1q1bBxNQenq6zeljjImacEs6TwOvA78KzJ8jIqnAM8CTwOgwjzNZVW8XkaOrLB8MZInIt0A28ClwvaquC/O4Blf1lpWVRVZWFmVlZWzYsIG1a9eyZcsWQtvuCgoKKCgoYMmSJaSkpASr69q1a2fX/xgyOdElAAAfZklEQVRjIircpDMQGBs6YZuqFonIXcD8cJ9MVdfXsGo38BlwJ25G0r8BrwHDwz22qSwhIYHOnTvTuXNniouL2bhxIxs2bGDz5s2VElBxcTFr1qxhzZo1gOum3bZtW9q0aUNmZqa1BZl6qaiosN6UB7hAe3FDCTfpfA38BFhaZflQYHF9g1DVG0Ifi8gNwCYR6ayqa+p7/OYuJSWFrl270rVrV0pLS8nPzycvL49NmzbtNXPp9u3b2b59e/BxWloamZmZZGZm0qZNG9LT0+1LxISlRYsWrFu3juzsbBITE60a9wDj9/spLS1l48aNtGjRosGOW9t1OleHPJwDPCoiQ4EvgXJgAHAVcF99gxCRO4F/qWqutyjJ+1tc32ObyhITE8nJySEnJwe/309BQQGbNm1i06ZNbNu2japd6AsLCyksLAxeQxAXF0fLli1p1apV8JaRkREcMsSYgE6dOrF582ZWr14dtfHWTMNKSEigVatWtGvXruGOWcu6G6s8zgNO9m4Bm4Ff4joG1McAYKiI/MJ7/FfgLVXdVM/jmlr4fL5gD7jevXtTVlbG1q1bg7eCgoK95vWpqKgItgmFHqdFixakp6eTkZFR6a8lo+YrLi4u2MZoTEBt1+l0j2Icl+HacZbjYnoLuDKKz29wv2pCvyQqKirYvn07W7duZdu2bWzfvp3CwsK99vP7/ezatYtdu3aRl5cXXO7z+UhNTSU9PZ20tLRKtxYtWjSbYT+MMT+qrXrtYlV9PtwDedfgXKqqz+5rW1X9BGgd8ngLcEG4z2WiIy4uLlgSCigpKQm2+wRuu3dXPzas3+8PVs9VJykpKZiEUlJSSE1NJSUlpdLN2o+MaVpq+6k5SER+C0wGXlPVDdVtJCJZwC9wJZMPGj5E05gkJSUFu1gHlJWVsXv3bnbu3MmuXbvYuXMnO3fupLCwcK82olAlJSWUlJRUqqqrKjk5mZSUFJKTk0lOTiYpKanGv1aVZ0zjV1v12vVex4HbgYdFZDFuFILNgA9oj+tK3Rt4B7hEVedEPmTT2AQaG1u1alVpeXl5Obt37w6WdgoLCys9Dqcr5p49e9izZ0/YcSQlJZGYmBj2LSEhgYSEBOLj4613lTFRUGuluqrOA84Qke7AKbgu0gcDFbiOBX8D3lbVHyIdqDnwxMfH07Jly2oHHvX7/RQXF1NYWEhRURHFxcXBv4Hbnj17ai0pVVVWVlavXlLx8fHBBBSajKpbFrjFxcXV6a/P57PkZpq1sFpyVfV74PEIx2KakUAng9rGgauoqGDPnj3BBFRSUlLr37okqOqUl5fv1Vuvofl8PuLi4oK3wOPQ5dUtC2fbmm5AcJtADHW5Vbd/dX9rW7c/24a7zhxYrPuQabTi4uL2mZgC/H4/ZWVl7Nmzh7KyMkpLS8O6lZWVUV5eHrXrSPx+f1SSW3MRbhKqaV04iWt/9o3VceuaiBMSEujZs+de029HkiUd0yT4fL5gO83+CE0GgWq6wP2qfwP3Kyoqgn8D96sur24703BCS7f1Lek2V4sWLeKggw6KWsnRko4xuKQVaLOJ5KCngeTm9/uDSShwv7plNd0PXRZ4HLgFnmd/b/vaP7A+9G91y/b1tyHWmfrr2LFjVKsqLekYE0WB5Gbqb19JqKbEFE7C2p9993Xc/dm3PrGGIz4+PuqD+tZlErdBuHlvEnFdpoNU1ToZGGOiyjoVHJjCncRtInAXsBU3rXQoP9azzRhjTBjCLelcDtymqvdEMhhjjDFNW7gDW7UFpkcyEGOMMU1fuEnnZWxATmOMMfUUbvVaEXCziJwLLANKQleq6s8bOjBjjDFNT7hJJw34ZyQDMcYY0/SFO/bapZEOxBhjTNNXl+t0+gM3AYfg2oKWAH9T1c8jFJsxxpgmJqyOBCJyCvA1rhfby8C/gQxghoicGLnwjDHGNCXhlnTuAe5W1UmhC0XkVtxFo+83dGDGGGOannC7TPcF/lHN8peA/g0XjjHGmKYs3KTzAzComuVDgPyGC8cYY0xTFm712mPAZBHpBHzpLRsBTATuj0Rgxhhjmp5wu0z/TUQygJuBdt7i9cAdqvpopIIzxhjTtITdZdob7PMeEckCilS16mjTxhhjTK1qTDoicjXwrKoWe/errg/et/l0jDHGhKO2ks6NwDSg2LtfE5tPxxhjTFhqTDqq2r26+1WJiE3ZZ4wxJizhjkiwUkQyq1l+ELCxwaMyxhjTJNXWpnMGMMp72A24U0QKq2x2cITiMsYY0wTV1qbzDXA9EKg+G0TleXT8wC7g4siEZowxpqmprU1nNXAsgIhMBa5T1R3RCswYY0zTE/Z8OiKSICI5QLy32AckA0NU9V+RCtAYY0zTEVbSEZExwFRgr84EwDbAko4xxph9CnfAzz/hpi8YDuwEjgH+D8gDrolMaMYYY5qacJNOL+BOVf0KN5lbC1Wdjks4tV04aowxxgSFm3SKgArv/lJgoHf/K6B3QwdljDGmaQo36XwK3CYirYF5wE9FJBE4GrAebcYYY8ISbtL5LTAM+CXwT6AFLtlMBR6JTGjGGGOamnC7TC8H+opIqqoWichwXGeCzao6O6IRGmOMaTJqGwYnbR/LPw48VtWqw+MYY4wxe6mtpLMLN9RNOOL3vYkxxpjmrrakc0zUojDGGNMs1Db22oxoBmKMMabpC3cYnLnUUtWmqsMbLCJjjDFNVlhJB3izmv16AKcBf6jrk3q9395U1SzvcRLwKHAOUA48pKp/qutxjTHGNG7hdpmeVN1yEfklcAbwcDjH8aa2vgx4sMqqSYAAPYFWwLsisk5VXwjnuMYYYw4M4V4cWpOPgBPqsP0k4Crg7irLLwbuUdVtqroKl5TG1TM2Y4wxjUy4bTrVXbPTCrgV2FCH55usqreLyNEhx24NdAQWh2y3BOhfh+MaY4w5AITbplPTNTvFwKXhPpmqrq9mcbr3N/QC00Kg2otTjTHGHLjCTTpVr9nxAyXAIlXdWc8Ydnt/U0OWpeESnTHGmCYkrDYdVZ3hXbfzFS4Z7AC+aYCEg6puw00GJyGL+1C5us0YY0wTEG6bTjLwOHABkOQtLhKRp4Hfqmp5PeN4EbhDRL7FVbdNAP5az2MaY4xpZMLtvfY33Nw55wE5QGfgIlx36T82QBy3AwuBRcBc4BVgcgMc1xhjTCMSbpvOz4HTVXVWyLJXRWQrMB34XV2eVFU/AVqHPC4Gxns3Y4wxTVRdpqsurWb59gaMxRhjTBMXbknnZuAZERkHfKmqFSJyKK6d557Q63hsbh1jjDE1CTfpPIxr4J8JlItIBZAI+IDhwEMh29rcOsYYY6oVbtI5K6JRGGOMaRbCHfBzBoCIpAK9cG1BKxriOh1jjDHNR7jX6cTjukZfx4/VaiUi8hxwjaqWRSxCY4wxTUa4vdfuAS4ExuKu0ens3T8Vd42NMcYYs0/htumMBS5X1bdDlk0XkZ3AU1jiMcYYE4ZwSzrpwPJqlq8E2jVcOMYYY5qycJPOXKofLeAa3CCgxhhjzD6FW732O+ATb/K1L71lRwDdgJMbPixjjDFNUbhTG8wDBgP/w3UiaAe8AfRR1S8iF54xxpimJNySDqq6FJggIm2BclUtiFxYxhhjmqJw23QQkdtEZD2QD2wRkVUicn3kQjPGGNPUhHtx6D3AlcDdwBxcsjocuFVEElX1gciFaIwxpqkIt3rtcuDiKtfpfCYiy4HHAEs6xhhj9inc6rUEYE01y5cDGQ0XjjHGmKYs3KTzAPC4iHQOLBCRTOBe4MFIBGaMMabpCbd67TygL7BSRNYAZUAXIAk4QkR+HdhQVbMaPEpjjDFNQl0mcTPGGGPqJdz5dJ6PdCDGGGOavrCv0zHGGGPqy5KOqaSieDfb571Lft4WivfY3HzGmIZlSccEle/eTsHs/1KSv4r43HdZ88N6Kir8sQ7LGNOEWNIxAJRsWU/B569Svns7ABXFu+iUUcHWHcUxjswY05TU2JFARJ4N9yCq+suGCcfEQtGaXNbP/oCWqYngA19cPBkDjyO5QzdSYx2cMaZJqa33WuhIA0nA6cAS3IRuJbipDgYC/4xYdCai/P4Kti/6ghVzPmdnYQnZmWlkZWfScsgpJLa2y62MMQ2vxqSjqucG7ovIU8DDqnpD6DYicjfQJ3LhmYiqKGf98uXsLCwBYPWOBFqPPtkSjjEmYsJt0/k/4Ilqlj8PnNJw4Zho8sUncvAJZ5PcIp2dyVlkDD+D7I6WcIwxkRPuiAR5wLHAsirLxwCrGzQiE1VJLTLoM+YCNhf56NWlbazDMcY0ceEmnTuBKSJyLPA14MPNp3MqcG5tO5rGo2D5t2zatptew0ZUWt6mfTvaxCgmY0zzEu4wOC+KyFpgHHCRt/hb4ChVnR2p4EzD8FeUs2Hux3w/fy6lZX4S0zPp1ldiHZYxphkKt6SDqn4MfBzBWEwEVBTvZsf8/7F+8VJKyyoAWPL5DLJ79CA1OTHG0RljmpvartO5P9yDqOpNDROOaUil2/LY8fX7VOwpJCcrnZVrt7MtpSP9jj/dEo4xJiZqK+kMC/MYNk5KI+P3+yn+YRG7Fn8Gfvf2JMTH033ksfTtPoDMlnbJpzEmNmq7TueYwH0RuQh4R1U3RyUqs9/85aWs/eIDSjcsI6NFEgBxiclkDDqBpHadYhydMaa5C7dN52/AEYAlnUasbPd2ln/wOhvXrMUX56NHYitatMum5eCTiE/L2PcBjDEmwsK9OHQ28NNIBmLqr6SoiM15efiBigo/y/a0o/WIsyzhGGMajXBLOhXAH0XkVuB7oCh0paoOb+jATN2ltevAwT85mSWfvM3uDoP4yUnH4osPu4OiMcZEXLjfSLO9m2nkOvQbSEXLbLI6ZpEQbzNXGGMal3AvDp0UuC8iLYE4VS2IWFRmn8qLdrHik7dpO3g0bbOzK607qFOHGEVljDG1C/unsIhcJSJrgG3AFhHZICK/j1xopiYl2/JZ+PoLrF+xjIVv/pui3YWxDskYY8ISVtIRkQnAvcAjwE+Ao4C/ADeJyHWRC89UVZK/mvxZr1GwdRsAFUU7mP/VwhhHZYwx4Qm3TWc88CtV/VfIss9EZDVwN/DXBo/M7KV4zRJ2LpxBcryfTlkZrMovxi+jGTZySKxDM8aYsISbdNrjZgyt6ivArjiMgsIV89kdMrZqm3ZtSR4+mpwuOfh8vhhGZowx4Qs36SzETWHwpyrLz8NNYV1vIvJL4ElgT8ji8ar6fEMc/0Dl9/tZN3cGifm5xMW55JLQsh2thp1KZnJajKMzxpi6CTfp3A68JSIjgC+8ZSOAk4GzGyiWwcCfVdU6J3j8fj/LP32P9Qu/okVKIl06tCSp3UG0HHIycQlJsQ7PGGPqLKyOBKr6PnAcrhRyEXAOsAMYpqpvNlAsQ4AFDXSsJiE/dwHrvvsKvx92FZWyrqw1rYaeagnHGHPAqm1qg5OBmaq6G0BVPwU+jUQQIhIPDAAuEpGHgELgGeA+VW22o1hn9RnAxhXK1tUrKG3dhYOPO8tGGDDGHNBq+wZ7CygTkXnAR97tc1XdU8s++6s9MA94Hldd1xf4D6409XgEnu+A4IuL59BTfsbCzz+n1+EjSE22Eo4x5sBWW9JpBxyJa7sZBfwGiBORL/kxCc1W1fL6BqGqecDokEULROQR4Gc0o6SzvWA7LTIyKg1fE5eQyICjRteylzHGHDhqm09nG/CmdwtUgQ3GJaERwC+BdiIyU1VPq08QInII8HNVvSNkcRJQXJ/jHkjWrlzFsv+9QnqXvgw75dRYh2OMMRER9jA4XolmLbAByAd+8Pbv0QBxFAC/FZErRCRORIYAvwamNsCxG70NSxay7J2X8JUWs3vFfJbM/jLWIRljTETU2iotIunA0cDxwAlAH2AN8DEwBfiFqq6vbxCquk5EzgDuxw2vsxm4S1Vfru+xGzO/v4LCpXNJWDGfVmnx7Nhdji8xmZbt2sU6NGOMiYjaeq/NBIbjBvj8BDfUzUequjwSgajqR8DQSBy7MaooKWbnNx9SsmkN+CCnfTr+ZB+9TvwZLdu1j3V4xhgTEbWVdI7EVac9i+s08IWqlkYlqiYub/UPJK78lIqiXcFlKdldGXTSccQlJscwMmOMiazakk4PXLXaccBVQAsRmQV8iEtCXzfna2j2R1lZOfM//Yxdiz/joHapZLZMASCt5yDSeg/D57NJ14wxTVttvddW4S7QfAZARAYCx+KS0G1AqYh8Anyoqs2mW3N9LJ45g92Lv8AH5G3ZTYsWqbQfdiLJHbrHOjRjjImKuvRe+0ZV/wKcgUs804ATcXPsmDDIsCEkpaQCkNy6Ha2PPMcSjjGmWdnnmCoi0gk4HDjC+zsYKAM+x82l80kE42tSktNb0eu4M8hflkvfY08mLiEx1iEZY0xU1dZ77RVckukI7AQ+A94AJgBfNcRIBE3Z7qI9bFj1Awf37VVpefvuB9O++8ExisoYY2KrtpJOMvAwriTztapWRCWiJmBD3hYWvvMqibs3kZJ0Hp169ox1SMYY0yjU1pFgTDQDaSpKtuWx6t1/k7h7BwArPvwvWR2vJCmtRYwjM8aY2LNx8huI3++nePVCdud+QdfMeFYUulk+Ow8cRGJqaoyjM8aYxsGSTgOoKClm13cz2LPxewASE+Lo0qkdGQOOIbNbr33sbYwxzYclnXqoqPCzYN63tN4wl4zEsuDyhFbt6TToBOLTWsYwOmOMaXws6eynnTt3M/edt4nLX8ruOB89O7UmMSGO1K6H0qLvCHxx8bEO0RhjGh1LOvspvryExG3fUw6UV/jZvKscOe5UkrO7xTo0Y4xptGywr/2U1roN3Q4fjc8Hmd0Opt9Zl1rCMcaYfbCSzj74/X6WrdxI/qrljDpuVKV1nQYOIyOzHa0698Dn88UoQmOMOXBY0qlFyZ49fPLWh8RvWEi8v5R86UZWp07B9T5fHK272IWfxhgTLqteq4a/opyiHxaz87PptC1wCQdgzeyP8fttNgdjjNlfVtIJUVZWRun6pRStmE950U4Astu2YHdRAa3at6f78MNjHKExxhzYmn3S8fv9rN9YwIqv5xGft5je2ckQ0jyTmp7OwJOOpGWP/tYN2hhj6qnZJ52yokKW/WcKlO6hAthV5CM9LYm4xGRSexxGatdD8dkUBMYY0yCafdJJTGtBy6yO7Fi3CoCdpfFk9zmC1C6HWLIxxpgG1uyTDkCnwSNZV7yDDv0Pp0PfAfji7WUxxphIsG9XIKtrd9p3GYfPZ535jDEmkuxb1mMJxxhjIs++aY0xxkSNJR1jjDFRY0nHGGNM1FjSMcYYEzWWdIwxxkRNU+gyHQ+Ql5cX6ziMMabZCPnOrdP4YE0h6XQEuOCCC2IdhzHGNEcdgRXhbtwUks5c4CfABqA8xrEYY0xzEY9LOHPrspPP5ocxxhgTLdaRwBhjTNRY0jHGGBM1lnSMMcZEjSUdY4wxUWNJxxhjTNRY0jHGGBM1lnSMMcZEjSUdY4wxUdMURiSologMB95U1SzvcXvgr8BJwB7gWeAOVS331r8A/BwoCznMAFVdKSJdgCnAEUA+cK2qvh3FczkBuBfo5T3/A6r6pIi0Bp4BTgB2Abeq6lRvHx9wF3AlkARMBW5U1TJv/c+BP+KuKJ4BXKKq+dE6p/09L2+/H4C2QODK5nWqKt66Y3Dvc0/gG+AiVQ17iI76qumcQta3xV3BfbaqLghZfi3wO6AV8B9gnKru9tYdqOf0KTCMyiOFtFLVchEZCEwGBgArgV+qap2ubK+PWv73egKP4D7re4DpwE2quqexf6b255y8/aL6eWpyJR0R8YnI5cD7uH+MgOeBLKAvcCgwHLgzZP1g4CxVTQ+5rfTWvQR8i3tjrgBeEpEeET4VAESkM/AKcDfQGvg/4E8ichLwBO4D3RE4DbhXREZ7u14JnO2dVy/ch/8W75j9cEn0Eu+cluHOMWr297xEpB2QA2SFvE8Ssu51YJJ3zNeA90QkKv/n+zgnROQo4DOge5X9TgIm4n4QdQRScF8SB/I5+YDDgEFVPlPlIpKES6zTvGPeA7wvIi0bwTm9BnwHdMB9do4A7vB2bbSfqf09p1h8nppc0sG9QFfhXnwARCQNOBn4jarmq+pW4DbgCi9JpQJ9gAVVDyYivYGhwO2qWqKqHwH/BS6L/KkA0A34p6q+pqoV3q/BT4DjgHOA21S10PuF+TTugwFwMfCwqq5V1U3AH4Bx3roLgTdUdZaqFgM3A0eKSK8onRPs/3kNAZYFSgFVnA0sUtVXVLVUVR8Akr1jRkM3qj+nI0XkONyX0F3V7Hcx8KyqLlLVXcDvgV+ISDoH7jn1xo3NtbSadUcDiar6sHdOLwGLgPMiEH91ulH9OY3BjeF4l/dZ3wD8Axjl7deYP1P7e05R/zw1xeq1yap6u4gcHbIskFxDX9hyoD0ug/fBVas9LSJHAGtwSeZNoB/wQ5U3ZQmupBRxqjoTmBl4LCKZuAFOZ+KKw8uqxHWGd78fsLjKuoO8/fsB80Keo1BE1gD9qxwvYupxXoOBOBGZg/t1/TVwvarmsvc5AyjuvP4XgdOo/EQ1n9OLuB803b1qmr9X2bUfEFpduwL3P9ubA/ecBgM7gQ9F5FAv5htV9QvcOeVW2X4J7pwirpZzulJVrw1Z7gPOBOZ7ixrtZ6oe5xT1z1OTK+mo6vpqlu3CVbfdLyKZXh307d7qVCAD94ZNAg7CFfene/XO6UBhlUMWAmmROYOaiUgrXClrNvAVUKyqoSO2hsZVNe7A/bRq1lXdN6rqeF7lwBzcr7CuuA/PO15pttGcV5Vz+o+qbgnUoVejUtzeuRfTyN6rOp5Torfdr4BOuBLROyJyEI34nEKW+/ixLeMeb/EB8Zmq4zlF/fPUFEs6NbkI94LnApuAh4DTgQJVfR+XlAJeEZFLcb+uF+ISU6g0XAN31HjVfP/B/fK4ANc2lSIivpAv6NC4dlM57sA/yq5q1lXdN2rqel6qen+V/W8GrsZVE+xm7w9EzN8rVa3Yxy6V3g/vyyGFH9+rA+6cVPUF4IWQRY+KyK9wVTON4v+vpnMSkQxcSa43MDqkM0Cj/0zV9Zxi8XlqciWdWnTE9QjKVtVDgXVArlcMPl1ELq6yfRLu1+ZioIvX7hPQh72LnRHjNdbOxjXqnePVGS8DfFRuwA2NazEgVdZtUNWCquu8XzVdiOI5ec9b5/MSketFZFTIunjcj6fAexV6zpX2jYYazmlfqsbdE/caLKtmHRwA5yQiY0XkjCqLQz9TjfKcRKQj8DkugYxQ1dUhuzXqz9T+nFMsPk/NqaTzELBQRCbg/hnuAx711sUDfxWRXFz1znnASOByVf1BRL4B7vF+BYzE1YmOiEbQXnfHN4GJqvpIYLmq7hKR13A9VC7DfVFdges9A+5XzQQR+RD3i+UP3jKAfwKzvHavL4A/AfNVtbpG34iox3l1Ay4SkTFAAe59XIari16Nq0L9Oa6nzXVABa5BNeJqOqcwvAhMEZGXcd2H7wVeVdXd3mtxIJ5TJnCX95laBfwGV439Lq7brk9EfoP7DP4M13X6tQYMvUY1nZOIJALv4L5Uf6He5RQhGu1nqh7n1I0of56aU9K5AtcLaivuxX1EVR8HUNXXRWQi8C9ct8IlwBhV/cHb92fAU7i+75uBy1R1YZTiHo/7sP5JRP4UsvwxXM+Zx3H/HMXAPar6jrd+MpCN+4WTBvwbrx1LVb8TkV962+Tgfh2dG/lTqWR/z+v3wJ9xdc8tcNdDnO59mPJF5HRcNeoUXI+o01W1JArnA7Wck6r+rqadVPVtEbkLVy2SCXyA1ytKVQ/Ic8LF2wb42Ps7DzhJVXcCiMgpuP+/O3FJ6SyvR1g01HROy4CBuCqo7SLBH/nfqupIGvdnan/PKeqfJ5s51BhjTNQ0pzYdY4wxMWZJxxhjTNRY0jHGGBM1lnSMMcZEjSUdY4wxUWNJxxhjTNRY0jGmAYjISyKyyRtoseq6iSKyS0S6xSA0YxoVSzrGNIzrcRdbh16Yh4h0x82VM1FVV8UgLmMaFUs6xjQAVc3DzaFyuYgcHrLqEdwUAHUZQsaYJstGJDCmgXijQ3+GG9hyGG6U8um42TMDA5ZeipttMgc34vlEVX3XW5eAmxDtF7gpNrbghmaaoG7Gzb/jxr7qixuT7mxV/SRqJ2hMA7CSjjENxJuK4Urc4JWXAg8Cd4cknNNwA89O9LaZArwmIoEJAW/GTTN8EW465JuBX+Nmfwy4EDcW1nHAlxE+JWMaXHMa8NOYiFPVhSLyEPAkriRzb8jqW4B7VXW693i5iAwFbgDOx81jf4mqfuqtnyoiN+FmcAxMxrVYVavO0mnMAcOSjjENbxLwO9y89KUhy/sBQ0TktpBliXjzk3ijnR8nIg/gRgUegBt6Pj5k+xWRDNyYSLPqNWMamKoWeXeLqqxKAG4EDgu5HYKbnwkRuRs3XH6c9/dE3My1oaoe05gDipV0jImeJUBXVV0eWOCVeoqBB3DTBF/vTfWMN1ttF9wsosY0CZZ0jIme+4EXRESBj4ATgDtw7TngJhgcIyKfA61w1XQtgeQYxGpMRFj1mjFRoqr/xk3bfBOuHec3wDhVfdnbZCyu19p3wKvAcuA5YEjUgzUmQuw6HWOMMVFjJR1jjDFRY0nHGGNM1FjSMcYYEzWWdIwxxkSNJR1jjDFRY0nHGGNM1FjSMcYYEzWWdIwxxkTN/wOiQsiS9Lr8xAAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "system.p_0 = 20\n", + "results = run_simulation(system, update_func_quad)\n", + "plot_results(census, un, results, 'World population projection')" ] }, { @@ -304,9 +451,107 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 16, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
United States Census Bureau (2015)[28]Population Reference Bureau (1973-2015)[15]United Nations Department of Economic and Social Affairs (2015)[16]
Year
20167.334772e+09NaN7.432663e+09
20177.412779e+09NaNNaN
20187.490428e+09NaNNaN
20197.567403e+09NaNNaN
20207.643402e+09NaN7.758157e+09
\n", + "
" + ], + "text/plain": [ + " United States Census Bureau (2015)[28] \\\n", + "Year \n", + "2016 7.334772e+09 \n", + "2017 7.412779e+09 \n", + "2018 7.490428e+09 \n", + "2019 7.567403e+09 \n", + "2020 7.643402e+09 \n", + "\n", + " Population Reference Bureau (1973-2015)[15] \\\n", + "Year \n", + "2016 NaN \n", + "2017 NaN \n", + "2018 NaN \n", + "2019 NaN \n", + "2020 NaN \n", + "\n", + " United Nations Department of Economic and Social Affairs (2015)[16] \n", + "Year \n", + "2016 7.432663e+09 \n", + "2017 NaN \n", + "2018 NaN \n", + "2019 NaN \n", + "2020 7.758157e+09 " + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "table3 = tables[3]\n", "table3.head()" @@ -321,10 +566,8 @@ }, { "cell_type": "code", - "execution_count": 15, - "metadata": { - "collapsed": true - }, + "execution_count": 17, + "metadata": {}, "outputs": [], "source": [ "table3.columns = ['census', 'prb', 'un']" @@ -339,10 +582,8 @@ }, { "cell_type": "code", - "execution_count": 16, - "metadata": { - "collapsed": true - }, + "execution_count": 18, + "metadata": {}, "outputs": [], "source": [ "def plot_projections(table):\n", diff --git a/code/chap08mine.ipynb b/code/chap08mine.ipynb new file mode 100644 index 00000000..f89540d6 --- /dev/null +++ b/code/chap08mine.ipynb @@ -0,0 +1,812 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Modeling and Simulation in Python\n", + "\n", + "Chapter 8\n", + "\n", + "Copyright 2017 Allen Downey\n", + "\n", + "License: [Creative Commons Attribution 4.0 International](https://creativecommons.org/licenses/by/4.0)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# Configure Jupyter so figures appear in the notebook\n", + "%matplotlib inline\n", + "\n", + "# Configure Jupyter to display the assigned value after an assignment\n", + "%config InteractiveShell.ast_node_interactivity='last_expr_or_assign'\n", + "\n", + "# import functions from the modsim.py module\n", + "from modsim import *\n", + "\n", + "from pandas import read_html" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Functions from the previous chapter" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "def plot_results(census, un, timeseries, title):\n", + " \"\"\"Plot the estimates and the model.\n", + " \n", + " census: TimeSeries of population estimates\n", + " un: TimeSeries of population estimates\n", + " timeseries: TimeSeries of simulation results\n", + " title: string\n", + " \"\"\"\n", + " plot(census, ':', label='US Census')\n", + " plot(un, '--', label='UN DESA')\n", + " plot(timeseries, color='gray', label='model')\n", + " \n", + " decorate(xlabel='Year', \n", + " ylabel='World population (billion)',\n", + " title=title)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "def run_simulation(system, update_func):\n", + " \"\"\"Simulate the system using any update function.\n", + " \n", + " system: System object\n", + " update_func: function that computes the population next year\n", + " \n", + " returns: TimeSeries\n", + " \"\"\"\n", + " results = TimeSeries()\n", + " results[system.t_0] = system.p_0\n", + " \n", + " for t in linrange(system.t_0, system.t_end):\n", + " results[t+1] = update_func(results[t], t, system)\n", + " \n", + " return results" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Reading the data" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "filename = 'data/World_population_estimates.html'\n", + "tables = read_html(filename, header=0, index_col=0, decimal='M')\n", + "table2 = tables[2]\n", + "table2.columns = ['census', 'prb', 'un', 'maddison', \n", + " 'hyde', 'tanton', 'biraben', 'mj', \n", + " 'thomlinson', 'durand', 'clark']" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "un = table2.un / 1e9\n", + "census = table2.census / 1e9\n", + "plot(census, ':', label='US Census')\n", + "plot(un, '--', label='UN DESA')\n", + " \n", + "decorate(xlabel='Year', \n", + " ylabel='World population (billion)',\n", + " title='Estimated world population')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Running the quadratic model" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's the update function for the quadratic growth model with parameters `alpha` and `beta`." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "def update_func_quad(pop, t, system):\n", + " \"\"\"Update population based on a quadratic model.\n", + " \n", + " pop: current population in billions\n", + " t: what year it is\n", + " system: system object with model parameters\n", + " \"\"\"\n", + " net_growth = system.alpha * pop + system.beta * pop**2\n", + " return pop + net_growth" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Extract the starting time and population." + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "2.557628654" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "t_0 = get_first_label(census)\n", + "t_end = get_last_label(census)\n", + "p_0 = get_first_value(census)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Initialize the system object." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
values
t_01950.000000
t_end2016.000000
p_02.557629
alpha0.025000
beta-0.001800
\n", + "
" + ], + "text/plain": [ + "t_0 1950.000000\n", + "t_end 2016.000000\n", + "p_0 2.557629\n", + "alpha 0.025000\n", + "beta -0.001800\n", + "dtype: float64" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "system = System(t_0=t_0, \n", + " t_end=t_end,\n", + " p_0=p_0,\n", + " alpha=0.025,\n", + " beta=-0.0018)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Run the model and plot results." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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338/3/nOd3j++ecBKCsrY+3atbz77rts2bKF6667josuuoiEhATuuusu/vSnPzFnzhz++7//m/vuu4+///3vQ34fzc3NxzxPBkUIMTba2trYsWMHLS0tAPjaGrFHxJA3bwFz5szpN13H5fHj9vr5tLSB/JmJJMSEj2qs0oIah+bMmcMf//hH5s6dy8aNG7n88stZvXo1TzzxBIZhHHV8c3MzcXFxxx1qv2nTJr75zW8yY8YMwsPD+f73v8+2bdvYv38/YDbtb7rpJhwOB2vWrCElJYXKykqcTid2u50XX3yRXbt2cfnll4eUZE72PCHE8AsEApSUlLB582YzOQUCeBqrCO9uYmFkB3NmzjhqLumivBTiosOIjXTi9ox+N58kqFHmdDr7Dd/s4ff7CQsL632fnZ3ND3/4Q/7yl7/wwQcf8O1vf5unn36ajRs3HnVuSkoKLS0tg84jam9v751kV1NTw5133snSpUtZunQpZ555Jna7vXcVh+jo6H4xOBwOAoEA0dHRPP/881RWVrJ+/XrWrFnDU089NWiy7OtkzxNCDK+WlhY2b96M1ppAIECgqw3voXKyw7wszogi3N9N8bubcXv7JyGbzcq6NTP5p/MV6UlRox73pO3iWz5v6K63NQszWbMw85j7z1kynXOWTD/m/s+uzOazK7NPOK709HRqampYsGBB7zafz0dNTU1vteCvfOUrnH/++VxzzTUAJCYmcuWVV7Jr1y601kddc9GiRYSHh/P222+zdu3afvsefPBBKisref7550lNTeXuu+/mjDPO6N1fUlJCTk4O27dvP2bMra2tvc+vvF4v7733HrfccgtLly7FZrP1S4yGYdDa2nrc8wY+txJCDD+/309paSllZWUYhoHh8+A9XEe04UKlhhPltNHZ7aXYnc6+zhTadh9i9cJp/a4x2t16fUkLapRdfPHFPProo5SXlwPm/2weeOABUlJSKCwsBODCCy/kySef5PXXX8fj8eDxeNiyZQtvv/0255133lHXdDqd3Hbbbdx999288cYb+Hw+urq6ePbZZ/njH//IzTffDMBll13GY489Rm1tLX6/n6effpqrrroKl8s1ZMzNzc1ce+21bN26FYfDQVpaGhaLhbi4OGbMmIHH4+HVV1/F7/fz/PPP9y7aO9R5QoiRdfjwYd555x1KS0sxjAC+tkZ8hyrIjfSx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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "results = run_simulation(system, update_func_quad)\n", + "plot_results(census, un, results, 'Quadratic model')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Generating projections" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To generate projections, all we have to do is change `t_end`" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "scrolled": false + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Saving figure to file figs/chap04-fig01.pdf\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "system.t_end = 2250\n", + "results = run_simulation(system, update_func_quad)\n", + "plot_results(census, un, results, 'World population projection')\n", + "savefig('figs/chap04-fig01.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The population in the model converges on the equilibrium population, `-alpha/beta`" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "13.856665141368708" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "results[system.t_end]" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "13.88888888888889" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "-system.alpha / system.beta" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Exercise:** What happens if we start with an initial population above the carrying capacity, like 20 billion? Run the model with initial populations between 1 and 20 billion, and plot the results on the same axes." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "system.p_0 = 20\n", + "results = run_simulation(system, update_func_quad)\n", + "plot_results(census, un, results, 'World population projection')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Comparing projections" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can compare the projection from our model with projections produced by people who know what they are doing." + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
United States Census Bureau (2015)[28]Population Reference Bureau (1973-2015)[15]United Nations Department of Economic and Social Affairs (2015)[16]
Year
20167.334772e+09NaN7.432663e+09
20177.412779e+09NaNNaN
20187.490428e+09NaNNaN
20197.567403e+09NaNNaN
20207.643402e+09NaN7.758157e+09
\n", + "
" + ], + "text/plain": [ + " United States Census Bureau (2015)[28] \\\n", + "Year \n", + "2016 7.334772e+09 \n", + "2017 7.412779e+09 \n", + "2018 7.490428e+09 \n", + "2019 7.567403e+09 \n", + "2020 7.643402e+09 \n", + "\n", + " Population Reference Bureau (1973-2015)[15] \\\n", + "Year \n", + "2016 NaN \n", + "2017 NaN \n", + "2018 NaN \n", + "2019 NaN \n", + "2020 NaN \n", + "\n", + " United Nations Department of Economic and Social Affairs (2015)[16] \n", + "Year \n", + "2016 7.432663e+09 \n", + "2017 NaN \n", + "2018 NaN \n", + "2019 NaN \n", + "2020 7.758157e+09 " + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "table3 = tables[3]\n", + "table3.head()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "`NaN` is a special value that represents missing data, in this case because some agencies did not publish projections for some years." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "table3.columns = ['census', 'prb', 'un']" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This function plots projections from the UN DESA and U.S. Census. It uses `dropna` to remove the `NaN` values from each series before plotting it." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "def plot_projections(table):\n", + " \"\"\"Plot world population projections.\n", + " \n", + " table: DataFrame with columns 'un' and 'census'\n", + " \"\"\"\n", + " census_proj = table.census / 1e9\n", + " un_proj = table.un / 1e9\n", + " \n", + " plot(census_proj.dropna(), 'b:', label='US Census')\n", + " plot(un_proj.dropna(), 'g--', label='UN DESA')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Run the model until 2100, which is as far as the other projections go." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "system = System(t_0=t_0, \n", + " t_end=2100,\n", + " p_0=p_0,\n", + " alpha=0.025,\n", + " beta=-0.0018)" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "results = run_simulation(system, update_func_quad)\n", + "\n", + "plot_results(census, un, results, 'World population projections')\n", + "plot_projections(table3)\n", + "savefig('figs/chap04-fig02.pdf')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "People who know what they are doing expect the growth rate to decline more sharply than our model projects." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Exercises\n", + "\n", + "**Optional exercise:** The net growth rate of world population has been declining for several decades. That observation suggests one more way to generate projections, by extrapolating observed changes in growth rate.\n", + "\n", + "The `modsim` library provides a function, `compute_rel_diff`, that computes relative differences of the elements in a sequence. It is a wrapper for the NumPy function `ediff1d`:" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "%psource compute_rel_diff" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here's how we can use it to compute the relative differences in the `census` and `un` estimates:" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "alpha_census = compute_rel_diff(census)\n", + "plot(alpha_census)\n", + "\n", + "alpha_un = compute_rel_diff(un)\n", + "plot(alpha_un)\n", + "\n", + "decorate(xlabel='Year', label='Net growth rate')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Other than a bump around 1990, net growth rate has been declining roughly linearly since 1965. As an exercise, you can use this data to make a projection of world population until 2100.\n", + "\n", + "1. Define a function, `alpha_func`, that takes `t` as a parameter and returns an estimate of the net growth rate at time `t`, based on a linear function `alpha = intercept + slope * t`. Choose values of `slope` and `intercept` to fit the observed net growth rates since 1965.\n", + "\n", + "2. Call your function with a range of `ts` from 1960 to 2020 and plot the results.\n", + "\n", + "3. Create a `System` object that includes `alpha_func` as a system variable.\n", + "\n", + "4. Define an update function that uses `alpha_func` to compute the net growth rate at the given time `t`.\n", + "\n", + "5. Test your update function with `t_0 = 1960` and `p_0 = census[t_0]`.\n", + "\n", + "6. Run a simulation from 1960 to 2100 with your update function, and plot the results.\n", + "\n", + "7. Compare your projections with those from the US Census and UN." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [], + "source": [ + "# Solution goes here" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "**Related viewing:** You might be interested in this [video by Hans Rosling about the demographic changes we expect in this century](https://www.youtube.com/watch?v=ezVk1ahRF78)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 02dc266eee49edab1c266b099287e6e4ba20e86f Mon Sep 17 00:00:00 2001 From: Annie Tor Date: Wed, 26 Sep 2018 22:29:51 -0400 Subject: [PATCH 05/18] Turning in ModSim Project 1 Snapshot --- code/ModSimProject1.ipynb | 1412 +++++++++++++++++++++++++++++++++++++ 1 file changed, 1412 insertions(+) create mode 100644 code/ModSimProject1.ipynb diff --git a/code/ModSimProject1.ipynb b/code/ModSimProject1.ipynb new file mode 100644 index 00000000..2d935108 --- /dev/null +++ b/code/ModSimProject1.ipynb @@ -0,0 +1,1412 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 149, + "metadata": {}, + "outputs": [], + "source": [ + "#Project 1: What would have happened to China's population if the one-child policy was never introduced?" + ] + }, + { + "cell_type": "code", + "execution_count": 150, + "metadata": {}, + "outputs": [], + "source": [ + "#Usable Data: https://docs.google.com/document/d/1gnod7zwaCUK6Ah32k0DPGqsEXfnV07-yvn9CYvjle1M/edit?usp=sharing" + ] + }, + { + "cell_type": "code", + "execution_count": 151, + "metadata": {}, + "outputs": [], + "source": [ + "#To-Do\n", + " #Figure out how to import data into Jupyter\n", + " #Design a preliminary model\n", + " #Focus on sex imbalance\n", + " #Analyze data" + ] + }, + { + "cell_type": "code", + "execution_count": 152, + "metadata": {}, + "outputs": [], + "source": [ + "from pandas import read_html\n", + "from pandas import read_csv\n", + "\n", + "# Configure Jupyter so figures appear in the notebook\n", + "%matplotlib inline\n", + "\n", + "# Configure Jupyter to display the assigned value after an assignment\n", + "%config InteractiveShell.ast_node_interactivity='last_expr_or_assign'\n", + "\n", + "from modsim import *" + ] + }, + { + "cell_type": "code", + "execution_count": 153, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "filename = r'C:\\Users\\ator\\Desktop\\ModSim\\ModSimProject1Data.csv'\n", + "tables = read_csv(filename, header=0, index_col=0);" + ] + }, + { + "cell_type": "code", + "execution_count": 154, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
lebtpopmppopmpopfppopfpoptdeathbirthmortmmortfsex
Year
196043.72551.54474134383950148.45525932323049966707000025.4320.86499.659397.316NaN
196144.05151.51661634017966748.48338432015033366033000014.2418.02497.798396.271NaN
196244.78351.49213734281919748.50786332295080366577000010.0237.01495.937395.2261.070
196345.97251.46989935119713448.53010133113786668233500010.0443.37459.408371.219NaN
196447.59251.44800635928971948.55199433906528169835500011.5039.14422.879347.213NaN
196549.54951.42539536778671248.5746053473982887151850009.5037.88386.349323.206NaN
196651.69651.40177237800863348.5982283573913677354000008.8335.05349.820299.200NaN
196753.84751.37815538767386748.6218453668761337545500008.4333.96313.291275.1931.070
196855.84351.35628539775956348.6437153767504377745100008.2135.59297.064257.750NaN
196957.60351.33824840866529048.6617523873597107960250008.0334.11280.838240.308NaN
197059.08551.32520342000183448.6747973983131668183150007.6033.43264.612222.865NaN
197160.30351.31716643163124648.6828344094737548411050007.3230.65248.386205.422NaN
197261.34451.31319744233515348.6868034196948478620300007.6129.77232.160187.9791.070
197362.28151.31222245254301348.6877784293969878819400007.0427.93221.847179.878NaN
197463.13451.31286246199535248.6871384383546489003500007.3424.82211.534171.778NaN
197563.91551.31408847023973948.6859124461552619163950007.3223.01201.221163.677NaN
197664.63151.31578947758835548.6842114530966459306850007.2519.91190.908155.577NaN
197765.27851.31797748416202248.6820234592929789434550006.8718.93180.596147.4761.070
197865.85751.31998549070373448.6800154654612669561650006.2518.25177.449144.034NaN
197966.37751.32106949730372548.6789314717012759690050006.2117.82174.302140.592NaN
198066.84351.32077850357743148.6792224776575699812350006.3418.21171.155137.150NaN
198167.25651.31886951005054648.6811314838344549938850006.3620.91168.008133.709NaN
198267.61851.31561951758472748.68438149104527310086300006.6022.28164.861130.2671.070
198367.93351.31174452507821148.68825649823178910233100006.9020.19161.681127.030NaN
198468.21051.30823453197660248.69176650484839810368250006.8219.90158.501123.793NaN
198568.45151.30580353924451548.69419751179548510510400006.7821.04155.321120.556NaN
198668.66151.30449354731120448.69550751947879610667900006.8622.43152.141117.319NaN
198768.84251.30414055615483248.69586052788016810840350006.7223.33148.961114.0831.080
198869.00251.30493856519058748.69506253643941311016300006.6422.37148.383112.916NaN
198969.15051.30707157394655048.69292954470345011186500006.5421.58147.805111.749NaN
199069.29351.31059058247012148.68941055271487911351850006.6721.06147.228110.5831.104
199169.43751.31578159053174248.68421956024825811507800006.7019.68146.650109.416NaN
199269.58751.32245759789122948.67754356707877111649700006.6418.27146.073108.2491.120
199369.75051.32966660488931548.67033457355068511784400006.6418.09144.644106.486NaN
199469.93551.33615061184220448.66385057999279611918350006.4917.70143.216104.722NaN
199570.15651.34111861858603248.65888258626896812048550006.5717.12141.788102.958NaN
199670.42751.34412862514043248.65587259240956812175500006.5616.98140.360101.194NaN
199770.74751.34568963159048948.65431159848451112300750006.5116.57138.93299.4311.140
199871.11551.34710763769769148.65289360423730912419350006.5015.64133.83196.886NaN
199971.52151.35017764328164248.64982360945335812527350006.4614.64128.73094.342NaN
200071.95551.35610464844528248.64389661419971812626450006.4514.03123.62991.798NaN
200172.40151.36528965328942748.63471161856057312718500006.4313.38118.52889.254NaN
200272.84051.37714565783296048.62285562256704012804000006.4112.86113.42786.7101.160
200373.25751.39067166211740248.60932962628259812884000006.4012.41111.76284.895NaN
200473.64251.40443066623996748.59557062983503312960750006.4212.29110.09783.081NaN
200573.98751.41738767033875748.58261363338124313037200006.5112.40108.43281.267NaN
200674.29151.42915967424656548.57084163677343513110200006.8112.09106.76779.453NaN
200774.56251.44000067792004148.56000063996495913178850006.9312.10105.10277.6391.170
200874.80851.45026468153850048.54973664311650013246550007.0612.14103.55776.3021.168
200975.03251.46054568507365148.53945564618634913312600007.0812.13102.01374.9651.166
201075.23651.47119868853278548.52880264917221513377050007.1111.90100.46873.6271.164
201175.42551.48228469198881848.51771665214118213441300007.1411.9398.92472.2901.162
201275.60251.49342969551916948.50657165517583113506950007.1512.1097.37970.9531.160
201375.76951.50404169910554848.49595965827445213573800007.1612.0896.06369.9861.158
201475.93251.51334070278104548.48666066148895513642700007.1612.3794.74669.0191.156
201576.09251.52077770646319348.47922366475680713712200007.1112.0793.42968.0521.154
201676.25251.52618171037342248.47381966829157813786650007.3012.0092.11267.0851.152
2017NaN51.52970971440530348.4702916719896971386395000NaNNaNNaNNaN1.150
\n", + "
" + ], + "text/plain": [ + " lebt popmp popm popfp popf popt death \\\n", + "Year \n", + "1960 43.725 51.544741 343839501 48.455259 323230499 667070000 25.43 \n", + "1961 44.051 51.516616 340179667 48.483384 320150333 660330000 14.24 \n", + "1962 44.783 51.492137 342819197 48.507863 322950803 665770000 10.02 \n", + "1963 45.972 51.469899 351197134 48.530101 331137866 682335000 10.04 \n", + "1964 47.592 51.448006 359289719 48.551994 339065281 698355000 11.50 \n", + "1965 49.549 51.425395 367786712 48.574605 347398288 715185000 9.50 \n", + "1966 51.696 51.401772 378008633 48.598228 357391367 735400000 8.83 \n", + "1967 53.847 51.378155 387673867 48.621845 366876133 754550000 8.43 \n", + "1968 55.843 51.356285 397759563 48.643715 376750437 774510000 8.21 \n", + "1969 57.603 51.338248 408665290 48.661752 387359710 796025000 8.03 \n", + "1970 59.085 51.325203 420001834 48.674797 398313166 818315000 7.60 \n", + "1971 60.303 51.317166 431631246 48.682834 409473754 841105000 7.32 \n", + "1972 61.344 51.313197 442335153 48.686803 419694847 862030000 7.61 \n", + "1973 62.281 51.312222 452543013 48.687778 429396987 881940000 7.04 \n", + "1974 63.134 51.312862 461995352 48.687138 438354648 900350000 7.34 \n", + "1975 63.915 51.314088 470239739 48.685912 446155261 916395000 7.32 \n", + "1976 64.631 51.315789 477588355 48.684211 453096645 930685000 7.25 \n", + "1977 65.278 51.317977 484162022 48.682023 459292978 943455000 6.87 \n", + "1978 65.857 51.319985 490703734 48.680015 465461266 956165000 6.25 \n", + "1979 66.377 51.321069 497303725 48.678931 471701275 969005000 6.21 \n", + "1980 66.843 51.320778 503577431 48.679222 477657569 981235000 6.34 \n", + "1981 67.256 51.318869 510050546 48.681131 483834454 993885000 6.36 \n", + "1982 67.618 51.315619 517584727 48.684381 491045273 1008630000 6.60 \n", + "1983 67.933 51.311744 525078211 48.688256 498231789 1023310000 6.90 \n", + "1984 68.210 51.308234 531976602 48.691766 504848398 1036825000 6.82 \n", + "1985 68.451 51.305803 539244515 48.694197 511795485 1051040000 6.78 \n", + "1986 68.661 51.304493 547311204 48.695507 519478796 1066790000 6.86 \n", + "1987 68.842 51.304140 556154832 48.695860 527880168 1084035000 6.72 \n", + "1988 69.002 51.304938 565190587 48.695062 536439413 1101630000 6.64 \n", + "1989 69.150 51.307071 573946550 48.692929 544703450 1118650000 6.54 \n", + "1990 69.293 51.310590 582470121 48.689410 552714879 1135185000 6.67 \n", + "1991 69.437 51.315781 590531742 48.684219 560248258 1150780000 6.70 \n", + "1992 69.587 51.322457 597891229 48.677543 567078771 1164970000 6.64 \n", + "1993 69.750 51.329666 604889315 48.670334 573550685 1178440000 6.64 \n", + "1994 69.935 51.336150 611842204 48.663850 579992796 1191835000 6.49 \n", + "1995 70.156 51.341118 618586032 48.658882 586268968 1204855000 6.57 \n", + "1996 70.427 51.344128 625140432 48.655872 592409568 1217550000 6.56 \n", + "1997 70.747 51.345689 631590489 48.654311 598484511 1230075000 6.51 \n", + "1998 71.115 51.347107 637697691 48.652893 604237309 1241935000 6.50 \n", + "1999 71.521 51.350177 643281642 48.649823 609453358 1252735000 6.46 \n", + "2000 71.955 51.356104 648445282 48.643896 614199718 1262645000 6.45 \n", + "2001 72.401 51.365289 653289427 48.634711 618560573 1271850000 6.43 \n", + "2002 72.840 51.377145 657832960 48.622855 622567040 1280400000 6.41 \n", + "2003 73.257 51.390671 662117402 48.609329 626282598 1288400000 6.40 \n", + "2004 73.642 51.404430 666239967 48.595570 629835033 1296075000 6.42 \n", + "2005 73.987 51.417387 670338757 48.582613 633381243 1303720000 6.51 \n", + "2006 74.291 51.429159 674246565 48.570841 636773435 1311020000 6.81 \n", + "2007 74.562 51.440000 677920041 48.560000 639964959 1317885000 6.93 \n", + "2008 74.808 51.450264 681538500 48.549736 643116500 1324655000 7.06 \n", + "2009 75.032 51.460545 685073651 48.539455 646186349 1331260000 7.08 \n", + "2010 75.236 51.471198 688532785 48.528802 649172215 1337705000 7.11 \n", + "2011 75.425 51.482284 691988818 48.517716 652141182 1344130000 7.14 \n", + "2012 75.602 51.493429 695519169 48.506571 655175831 1350695000 7.15 \n", + "2013 75.769 51.504041 699105548 48.495959 658274452 1357380000 7.16 \n", + "2014 75.932 51.513340 702781045 48.486660 661488955 1364270000 7.16 \n", + "2015 76.092 51.520777 706463193 48.479223 664756807 1371220000 7.11 \n", + "2016 76.252 51.526181 710373422 48.473819 668291578 1378665000 7.30 \n", + "2017 NaN 51.529709 714405303 48.470291 671989697 1386395000 NaN \n", + "\n", + " birth mortm mortf sex \n", + "Year \n", + "1960 20.86 499.659 397.316 NaN \n", + "1961 18.02 497.798 396.271 NaN \n", + "1962 37.01 495.937 395.226 1.070 \n", + "1963 43.37 459.408 371.219 NaN \n", + "1964 39.14 422.879 347.213 NaN \n", + "1965 37.88 386.349 323.206 NaN \n", + "1966 35.05 349.820 299.200 NaN \n", + "1967 33.96 313.291 275.193 1.070 \n", + "1968 35.59 297.064 257.750 NaN \n", + "1969 34.11 280.838 240.308 NaN \n", + "1970 33.43 264.612 222.865 NaN \n", + "1971 30.65 248.386 205.422 NaN \n", + "1972 29.77 232.160 187.979 1.070 \n", + "1973 27.93 221.847 179.878 NaN \n", + "1974 24.82 211.534 171.778 NaN \n", + "1975 23.01 201.221 163.677 NaN \n", + "1976 19.91 190.908 155.577 NaN \n", + "1977 18.93 180.596 147.476 1.070 \n", + "1978 18.25 177.449 144.034 NaN \n", + "1979 17.82 174.302 140.592 NaN \n", + "1980 18.21 171.155 137.150 NaN \n", + "1981 20.91 168.008 133.709 NaN \n", + "1982 22.28 164.861 130.267 1.070 \n", + "1983 20.19 161.681 127.030 NaN \n", + "1984 19.90 158.501 123.793 NaN \n", + "1985 21.04 155.321 120.556 NaN \n", + "1986 22.43 152.141 117.319 NaN \n", + "1987 23.33 148.961 114.083 1.080 \n", + "1988 22.37 148.383 112.916 NaN \n", + "1989 21.58 147.805 111.749 NaN \n", + "1990 21.06 147.228 110.583 1.104 \n", + "1991 19.68 146.650 109.416 NaN \n", + "1992 18.27 146.073 108.249 1.120 \n", + "1993 18.09 144.644 106.486 NaN \n", + "1994 17.70 143.216 104.722 NaN \n", + "1995 17.12 141.788 102.958 NaN \n", + "1996 16.98 140.360 101.194 NaN \n", + "1997 16.57 138.932 99.431 1.140 \n", + "1998 15.64 133.831 96.886 NaN \n", + "1999 14.64 128.730 94.342 NaN \n", + "2000 14.03 123.629 91.798 NaN \n", + "2001 13.38 118.528 89.254 NaN \n", + "2002 12.86 113.427 86.710 1.160 \n", + "2003 12.41 111.762 84.895 NaN \n", + "2004 12.29 110.097 83.081 NaN \n", + "2005 12.40 108.432 81.267 NaN \n", + "2006 12.09 106.767 79.453 NaN \n", + "2007 12.10 105.102 77.639 1.170 \n", + "2008 12.14 103.557 76.302 1.168 \n", + "2009 12.13 102.013 74.965 1.166 \n", + "2010 11.90 100.468 73.627 1.164 \n", + "2011 11.93 98.924 72.290 1.162 \n", + "2012 12.10 97.379 70.953 1.160 \n", + "2013 12.08 96.063 69.986 1.158 \n", + "2014 12.37 94.746 69.019 1.156 \n", + "2015 12.07 93.429 68.052 1.154 \n", + "2016 12.00 92.112 67.085 1.152 \n", + "2017 NaN NaN NaN 1.150 " + ] + }, + "execution_count": 154, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "tables.columns = ['lebt', 'popmp', 'popm', 'popfp', 'popf', 'popt', 'death', 'birth', 'mortm', 'mortf', 'sex']\n", + "tables" + ] + }, + { + "cell_type": "code", + "execution_count": 155, + "metadata": {}, + "outputs": [], + "source": [ + "#Before anything, we need to establish some common variables that we'll use throughout the notebook.\n", + "popt = tables.popt;\n", + "t_0 = get_first_label(popt);\n", + "t_ocp = 1979; #when the one-child policy was enacted\n", + "t_end = get_last_label(popt);\n", + "p_0 = popt[t_0];\n", + "p_ocp = popt[t_ocp];\n", + "p_end = popt[t_end];\n", + "death_rate = tables.death / 1000;\n", + "birth_rate = tables.birth / 1000;\n", + "growth_rate = birth_rate - death_rate;" + ] + }, + { + "cell_type": "code", + "execution_count": 156, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plot(popt, ':', label='China Population')\n", + " \n", + "decorate(xlabel='Year',\n", + " ylabel='Total population (billion)')\n" + ] + }, + { + "cell_type": "code", + "execution_count": 157, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 157, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Linear Growth Model\n", + "# \n", + "# For this model, we'll use the average growth per year from 1960-1979 to simulate the growth of the population if it hadn't \n", + "# been affected by the one-child policy.\n", + "\n", + "# First, we find the average growth per year from 1960-1979, before the one-child policy was enacted.\n", + "growth = (popt[t_ocp] - popt[t_0]) / (t_ocp - t_0)\n", + "\n", + "#Establishing the system and its parameters (see previous cells for more information)\n", + "system = System(t_0 = t_0,\n", + " t_ocp = t_ocp,\n", + " t_end = t_end,\n", + " p_0 = p_0,\n", + " p_end = p_end,\n", + " growth = growth)\n", + "\n", + "# Now for the update function. We're just going to add the avg growth per year to the year previous:\n", + "def update_func_linear(pop, t, system):\n", + " return pop + system.growth;\n", + "\n", + "# Our simulation function runs through each year and then puts our model outputs into a TimeSeries so we can plot it.\n", + "def run_simulation(system, update_func):\n", + " results = TimeSeries()\n", + " results[system.t_0] = system.p_0\n", + " \n", + " for t in linrange(system.t_0, system.t_end):\n", + " results[t+1] = update_func(results[t], t, system)\n", + " \n", + " return results\n", + "\n", + "# Lastly, we run and then plot the model.\n", + "results = run_simulation(system, update_func_linear)\n", + "\n", + "plot(popt, ':', label='China pop')\n", + "plot(results, '--', label='Linear model of pop')" + ] + }, + { + "cell_type": "code", + "execution_count": 183, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 183, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# TO-DO 9/26/18\n", + "# talk to ninja person\n", + " # find out how to take the average growth rate of just 1960-1979\n", + " # confirm proportional growth model still works\n", + " # quadratic model" + ] + }, + { + "cell_type": "code", + "execution_count": 206, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
values
t_01960
t_end2017
t_ocp1979
p_0667070000
p_end1386395000
growth_rateYear\n", + "1960 -0.00457\n", + "1961 0.00378\n", + "1962 0...
avg_gr0.0130493
\n", + "
" + ], + "text/plain": [ + "t_0 1960\n", + "t_end 2017\n", + "t_ocp 1979\n", + "p_0 667070000\n", + "p_end 1386395000\n", + "growth_rate Year\n", + "1960 -0.00457\n", + "1961 0.00378\n", + "1962 0...\n", + "avg_gr 0.0130493\n", + "dtype: object" + ] + }, + "execution_count": 206, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def find_avg(system):\n", + " results = TimeSeries()\n", + " results[system.t_0] = system.p_0\n", + " growth_total = 0\n", + "\n", + " for t in linrange(system.t_0, system.t_end):\n", + " growth_total = system.growth_rate[t] + growth_total\n", + " \n", + " return growth_total/(system.t_end - system.t_0)\n", + " \n", + " #return results\n", + "\n", + "avg_gr = find_avg(system2)\n", + "\n", + "system2 = System(t_0=t_0,\n", + " t_end=t_end,\n", + " t_ocp=t_ocp,\n", + " p_0=p_0,\n", + " p_end=p_end,\n", + " growth_rate=growth_rate,\n", + " avg_gr = avg_gr) " + ] + }, + { + "cell_type": "code", + "execution_count": 208, + "metadata": {}, + "outputs": [], + "source": [ + "def prop(pop, t, system):\n", + " if (t <= 1979): \n", + " \n", + " growth = growth_rate[t] * pop\n", + " return pop + growth\n", + " else: \n", + " growth = avg_gr * pop\n", + " return pop + growth" + ] + }, + { + "cell_type": "code", + "execution_count": 209, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 209, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "def run_simulation(system, prop):\n", + " results = TimeSeries()\n", + " results[system.t_0] = system.p_0\n", + " \n", + " for t in linrange(system.t_0, system.t_end):\n", + " results[t+1] = prop(results[t], t, system)\n", + " \n", + " return results\n", + "\n", + "# Lastly, we run and then plot the model.\n", + "results = run_simulation(system, prop)\n", + "\n", + "plot(popt, ':', label='China pop')\n", + "plot(results, '--', label='Linear model of pop')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From 33981db18a2d9c1004b7464e52014e662583a309 Mon Sep 17 00:00:00 2001 From: Annie Tor Date: Fri, 28 Sep 2018 21:00:53 -0400 Subject: [PATCH 06/18] Adding ModSim Project 1 Final file --- code/ModSim Project 1.ipynb | 1774 +++++++++++++++++++++++++++++++++++ 1 file changed, 1774 insertions(+) create mode 100644 code/ModSim Project 1.ipynb diff --git a/code/ModSim Project 1.ipynb b/code/ModSim Project 1.ipynb new file mode 100644 index 00000000..b8f14d51 --- /dev/null +++ b/code/ModSim Project 1.ipynb @@ -0,0 +1,1774 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# ModSim Project 1\n", + "\n", + "Maya Al-Ahmad and Annie Tor" + ] + }, + { + "cell_type": "code", + "execution_count": 362, + "metadata": {}, + "outputs": [], + "source": [ + "# Configure Jupyter so figures appear in the notebook\n", + "%matplotlib inline\n", + "\n", + "# Configure Jupyter to display the assigned value after an assignment\n", + "%config InteractiveShell.ast_node_interactivity='last_expr_or_assign'\n", + "\n", + "# import functions from the modsim.py module\n", + "from modsim import *\n", + "\n", + "# import function that will let us read in our data\n", + "from pandas import read_csv\n", + "\n", + "# reading in the data, putting it as table\n", + "filename = r'C:\\Users\\ator\\Desktop\\ModSim\\ModSimProject1Data.csv'\n", + "table = read_csv(filename, header=0, index_col=0);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## What would've happened to China's population if the one-child policy was never instated?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In 1979, the Chinese government introduced a radical law that limited families to having only one child. This rule, known as the one-child policy, was an extreme attempt at radically cutting down China's fast-growing population. The one-child policy existed in many forms and variations until 2016.\n", + "\n", + "The goal of this project is to predict what might have happened to China's population if it had never established the one-child policy. To do this, we created models based off population data from 1960 to 2017 from the World Bank. In our models, we attempted to fit population growth from 1960 through 1979 (when the policy was introduced) and then continued the growth we observed from then for 1980 through 2016." + ] + }, + { + "cell_type": "markdown", + "metadata": { + "scrolled": true + }, + "source": [ + "Here's the data as a table. We'll only be using the population total, the birth rates, and the death rates for this project." + ] + }, + { + "cell_type": "code", + "execution_count": 364, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Life expectancy at birth, total (years)Population, male (% of total)Population, malePopulation, female (% of total)Population, femalePopulation, totalDeath rate, crude (per 1,000 people)Birth rate, crude (per 1,000 people)Mortality rate, adult, male (per 1,000 male adults)Mortality rate, adult, female (per 1,000 female adults)Sex ratio at birth (male births per female births)
Year
196043.72551.54474134383950148.45525932323049966707000025.4320.86499.659397.316NaN
196144.05151.51661634017966748.48338432015033366033000014.2418.02497.798396.271NaN
196244.78351.49213734281919748.50786332295080366577000010.0237.01495.937395.2261.070
196345.97251.46989935119713448.53010133113786668233500010.0443.37459.408371.219NaN
196447.59251.44800635928971948.55199433906528169835500011.5039.14422.879347.213NaN
196549.54951.42539536778671248.5746053473982887151850009.5037.88386.349323.206NaN
196651.69651.40177237800863348.5982283573913677354000008.8335.05349.820299.200NaN
196753.84751.37815538767386748.6218453668761337545500008.4333.96313.291275.1931.070
196855.84351.35628539775956348.6437153767504377745100008.2135.59297.064257.750NaN
196957.60351.33824840866529048.6617523873597107960250008.0334.11280.838240.308NaN
197059.08551.32520342000183448.6747973983131668183150007.6033.43264.612222.865NaN
197160.30351.31716643163124648.6828344094737548411050007.3230.65248.386205.422NaN
197261.34451.31319744233515348.6868034196948478620300007.6129.77232.160187.9791.070
197362.28151.31222245254301348.6877784293969878819400007.0427.93221.847179.878NaN
197463.13451.31286246199535248.6871384383546489003500007.3424.82211.534171.778NaN
197563.91551.31408847023973948.6859124461552619163950007.3223.01201.221163.677NaN
197664.63151.31578947758835548.6842114530966459306850007.2519.91190.908155.577NaN
197765.27851.31797748416202248.6820234592929789434550006.8718.93180.596147.4761.070
197865.85751.31998549070373448.6800154654612669561650006.2518.25177.449144.034NaN
197966.37751.32106949730372548.6789314717012759690050006.2117.82174.302140.592NaN
198066.84351.32077850357743148.6792224776575699812350006.3418.21171.155137.150NaN
198167.25651.31886951005054648.6811314838344549938850006.3620.91168.008133.709NaN
198267.61851.31561951758472748.68438149104527310086300006.6022.28164.861130.2671.070
198367.93351.31174452507821148.68825649823178910233100006.9020.19161.681127.030NaN
198468.21051.30823453197660248.69176650484839810368250006.8219.90158.501123.793NaN
198568.45151.30580353924451548.69419751179548510510400006.7821.04155.321120.556NaN
198668.66151.30449354731120448.69550751947879610667900006.8622.43152.141117.319NaN
198768.84251.30414055615483248.69586052788016810840350006.7223.33148.961114.0831.080
198869.00251.30493856519058748.69506253643941311016300006.6422.37148.383112.916NaN
198969.15051.30707157394655048.69292954470345011186500006.5421.58147.805111.749NaN
199069.29351.31059058247012148.68941055271487911351850006.6721.06147.228110.5831.104
199169.43751.31578159053174248.68421956024825811507800006.7019.68146.650109.416NaN
199269.58751.32245759789122948.67754356707877111649700006.6418.27146.073108.2491.120
199369.75051.32966660488931548.67033457355068511784400006.6418.09144.644106.486NaN
199469.93551.33615061184220448.66385057999279611918350006.4917.70143.216104.722NaN
199570.15651.34111861858603248.65888258626896812048550006.5717.12141.788102.958NaN
199670.42751.34412862514043248.65587259240956812175500006.5616.98140.360101.194NaN
199770.74751.34568963159048948.65431159848451112300750006.5116.57138.93299.4311.140
199871.11551.34710763769769148.65289360423730912419350006.5015.64133.83196.886NaN
199971.52151.35017764328164248.64982360945335812527350006.4614.64128.73094.342NaN
200071.95551.35610464844528248.64389661419971812626450006.4514.03123.62991.798NaN
200172.40151.36528965328942748.63471161856057312718500006.4313.38118.52889.254NaN
200272.84051.37714565783296048.62285562256704012804000006.4112.86113.42786.7101.160
200373.25751.39067166211740248.60932962628259812884000006.4012.41111.76284.895NaN
200473.64251.40443066623996748.59557062983503312960750006.4212.29110.09783.081NaN
200573.98751.41738767033875748.58261363338124313037200006.5112.40108.43281.267NaN
200674.29151.42915967424656548.57084163677343513110200006.8112.09106.76779.453NaN
200774.56251.44000067792004148.56000063996495913178850006.9312.10105.10277.6391.170
200874.80851.45026468153850048.54973664311650013246550007.0612.14103.55776.3021.168
200975.03251.46054568507365148.53945564618634913312600007.0812.13102.01374.9651.166
201075.23651.47119868853278548.52880264917221513377050007.1111.90100.46873.6271.164
201175.42551.48228469198881848.51771665214118213441300007.1411.9398.92472.2901.162
201275.60251.49342969551916948.50657165517583113506950007.1512.1097.37970.9531.160
201375.76951.50404169910554848.49595965827445213573800007.1612.0896.06369.9861.158
201475.93251.51334070278104548.48666066148895513642700007.1612.3794.74669.0191.156
201576.09251.52077770646319348.47922366475680713712200007.1112.0793.42968.0521.154
201676.25251.52618171037342248.47381966829157813786650007.3012.0092.11267.0851.152
2017NaN51.52970971440530348.4702916719896971386395000NaNNaNNaNNaN1.150
\n", + "
" + ], + "text/plain": [ + " Life expectancy at birth, total (years) Population, male (% of total) \\\n", + "Year \n", + "1960 43.725 51.544741 \n", + "1961 44.051 51.516616 \n", + "1962 44.783 51.492137 \n", + "1963 45.972 51.469899 \n", + "1964 47.592 51.448006 \n", + "1965 49.549 51.425395 \n", + "1966 51.696 51.401772 \n", + "1967 53.847 51.378155 \n", + "1968 55.843 51.356285 \n", + "1969 57.603 51.338248 \n", + "1970 59.085 51.325203 \n", + "1971 60.303 51.317166 \n", + "1972 61.344 51.313197 \n", + "1973 62.281 51.312222 \n", + "1974 63.134 51.312862 \n", + "1975 63.915 51.314088 \n", + "1976 64.631 51.315789 \n", + "1977 65.278 51.317977 \n", + "1978 65.857 51.319985 \n", + "1979 66.377 51.321069 \n", + "1980 66.843 51.320778 \n", + "1981 67.256 51.318869 \n", + "1982 67.618 51.315619 \n", + "1983 67.933 51.311744 \n", + "1984 68.210 51.308234 \n", + "1985 68.451 51.305803 \n", + "1986 68.661 51.304493 \n", + "1987 68.842 51.304140 \n", + "1988 69.002 51.304938 \n", + "1989 69.150 51.307071 \n", + "1990 69.293 51.310590 \n", + "1991 69.437 51.315781 \n", + "1992 69.587 51.322457 \n", + "1993 69.750 51.329666 \n", + "1994 69.935 51.336150 \n", + "1995 70.156 51.341118 \n", + "1996 70.427 51.344128 \n", + "1997 70.747 51.345689 \n", + "1998 71.115 51.347107 \n", + "1999 71.521 51.350177 \n", + "2000 71.955 51.356104 \n", + "2001 72.401 51.365289 \n", + "2002 72.840 51.377145 \n", + "2003 73.257 51.390671 \n", + "2004 73.642 51.404430 \n", + "2005 73.987 51.417387 \n", + "2006 74.291 51.429159 \n", + "2007 74.562 51.440000 \n", + "2008 74.808 51.450264 \n", + "2009 75.032 51.460545 \n", + "2010 75.236 51.471198 \n", + "2011 75.425 51.482284 \n", + "2012 75.602 51.493429 \n", + "2013 75.769 51.504041 \n", + "2014 75.932 51.513340 \n", + "2015 76.092 51.520777 \n", + "2016 76.252 51.526181 \n", + "2017 NaN 51.529709 \n", + "\n", + " Population, male Population, female (% of total) Population, female \\\n", + "Year \n", + "1960 343839501 48.455259 323230499 \n", + "1961 340179667 48.483384 320150333 \n", + "1962 342819197 48.507863 322950803 \n", + "1963 351197134 48.530101 331137866 \n", + "1964 359289719 48.551994 339065281 \n", + "1965 367786712 48.574605 347398288 \n", + "1966 378008633 48.598228 357391367 \n", + "1967 387673867 48.621845 366876133 \n", + "1968 397759563 48.643715 376750437 \n", + "1969 408665290 48.661752 387359710 \n", + "1970 420001834 48.674797 398313166 \n", + "1971 431631246 48.682834 409473754 \n", + "1972 442335153 48.686803 419694847 \n", + "1973 452543013 48.687778 429396987 \n", + "1974 461995352 48.687138 438354648 \n", + "1975 470239739 48.685912 446155261 \n", + "1976 477588355 48.684211 453096645 \n", + "1977 484162022 48.682023 459292978 \n", + "1978 490703734 48.680015 465461266 \n", + "1979 497303725 48.678931 471701275 \n", + "1980 503577431 48.679222 477657569 \n", + "1981 510050546 48.681131 483834454 \n", + "1982 517584727 48.684381 491045273 \n", + "1983 525078211 48.688256 498231789 \n", + "1984 531976602 48.691766 504848398 \n", + "1985 539244515 48.694197 511795485 \n", + "1986 547311204 48.695507 519478796 \n", + "1987 556154832 48.695860 527880168 \n", + "1988 565190587 48.695062 536439413 \n", + "1989 573946550 48.692929 544703450 \n", + "1990 582470121 48.689410 552714879 \n", + "1991 590531742 48.684219 560248258 \n", + "1992 597891229 48.677543 567078771 \n", + "1993 604889315 48.670334 573550685 \n", + "1994 611842204 48.663850 579992796 \n", + "1995 618586032 48.658882 586268968 \n", + "1996 625140432 48.655872 592409568 \n", + "1997 631590489 48.654311 598484511 \n", + "1998 637697691 48.652893 604237309 \n", + "1999 643281642 48.649823 609453358 \n", + "2000 648445282 48.643896 614199718 \n", + "2001 653289427 48.634711 618560573 \n", + "2002 657832960 48.622855 622567040 \n", + "2003 662117402 48.609329 626282598 \n", + "2004 666239967 48.595570 629835033 \n", + "2005 670338757 48.582613 633381243 \n", + "2006 674246565 48.570841 636773435 \n", + "2007 677920041 48.560000 639964959 \n", + "2008 681538500 48.549736 643116500 \n", + "2009 685073651 48.539455 646186349 \n", + "2010 688532785 48.528802 649172215 \n", + "2011 691988818 48.517716 652141182 \n", + "2012 695519169 48.506571 655175831 \n", + "2013 699105548 48.495959 658274452 \n", + "2014 702781045 48.486660 661488955 \n", + "2015 706463193 48.479223 664756807 \n", + "2016 710373422 48.473819 668291578 \n", + "2017 714405303 48.470291 671989697 \n", + "\n", + " Population, total Death rate, crude (per 1,000 people) \\\n", + "Year \n", + "1960 667070000 25.43 \n", + "1961 660330000 14.24 \n", + "1962 665770000 10.02 \n", + "1963 682335000 10.04 \n", + "1964 698355000 11.50 \n", + "1965 715185000 9.50 \n", + "1966 735400000 8.83 \n", + "1967 754550000 8.43 \n", + "1968 774510000 8.21 \n", + "1969 796025000 8.03 \n", + "1970 818315000 7.60 \n", + "1971 841105000 7.32 \n", + "1972 862030000 7.61 \n", + "1973 881940000 7.04 \n", + "1974 900350000 7.34 \n", + "1975 916395000 7.32 \n", + "1976 930685000 7.25 \n", + "1977 943455000 6.87 \n", + "1978 956165000 6.25 \n", + "1979 969005000 6.21 \n", + "1980 981235000 6.34 \n", + "1981 993885000 6.36 \n", + "1982 1008630000 6.60 \n", + "1983 1023310000 6.90 \n", + "1984 1036825000 6.82 \n", + "1985 1051040000 6.78 \n", + "1986 1066790000 6.86 \n", + "1987 1084035000 6.72 \n", + "1988 1101630000 6.64 \n", + "1989 1118650000 6.54 \n", + "1990 1135185000 6.67 \n", + "1991 1150780000 6.70 \n", + "1992 1164970000 6.64 \n", + "1993 1178440000 6.64 \n", + "1994 1191835000 6.49 \n", + "1995 1204855000 6.57 \n", + "1996 1217550000 6.56 \n", + "1997 1230075000 6.51 \n", + "1998 1241935000 6.50 \n", + "1999 1252735000 6.46 \n", + "2000 1262645000 6.45 \n", + "2001 1271850000 6.43 \n", + "2002 1280400000 6.41 \n", + "2003 1288400000 6.40 \n", + "2004 1296075000 6.42 \n", + "2005 1303720000 6.51 \n", + "2006 1311020000 6.81 \n", + "2007 1317885000 6.93 \n", + "2008 1324655000 7.06 \n", + "2009 1331260000 7.08 \n", + "2010 1337705000 7.11 \n", + "2011 1344130000 7.14 \n", + "2012 1350695000 7.15 \n", + "2013 1357380000 7.16 \n", + "2014 1364270000 7.16 \n", + "2015 1371220000 7.11 \n", + "2016 1378665000 7.30 \n", + "2017 1386395000 NaN \n", + "\n", + " Birth rate, crude (per 1,000 people) \\\n", + "Year \n", + "1960 20.86 \n", + "1961 18.02 \n", + "1962 37.01 \n", + "1963 43.37 \n", + "1964 39.14 \n", + "1965 37.88 \n", + "1966 35.05 \n", + "1967 33.96 \n", + "1968 35.59 \n", + "1969 34.11 \n", + "1970 33.43 \n", + "1971 30.65 \n", + "1972 29.77 \n", + "1973 27.93 \n", + "1974 24.82 \n", + "1975 23.01 \n", + "1976 19.91 \n", + "1977 18.93 \n", + "1978 18.25 \n", + "1979 17.82 \n", + "1980 18.21 \n", + "1981 20.91 \n", + "1982 22.28 \n", + "1983 20.19 \n", + "1984 19.90 \n", + "1985 21.04 \n", + "1986 22.43 \n", + "1987 23.33 \n", + "1988 22.37 \n", + "1989 21.58 \n", + "1990 21.06 \n", + "1991 19.68 \n", + "1992 18.27 \n", + "1993 18.09 \n", + "1994 17.70 \n", + "1995 17.12 \n", + "1996 16.98 \n", + "1997 16.57 \n", + "1998 15.64 \n", + "1999 14.64 \n", + "2000 14.03 \n", + "2001 13.38 \n", + "2002 12.86 \n", + "2003 12.41 \n", + "2004 12.29 \n", + "2005 12.40 \n", + "2006 12.09 \n", + "2007 12.10 \n", + "2008 12.14 \n", + "2009 12.13 \n", + "2010 11.90 \n", + "2011 11.93 \n", + "2012 12.10 \n", + "2013 12.08 \n", + "2014 12.37 \n", + "2015 12.07 \n", + "2016 12.00 \n", + "2017 NaN \n", + "\n", + " Mortality rate, adult, male (per 1,000 male adults) \\\n", + "Year \n", + "1960 499.659 \n", + "1961 497.798 \n", + "1962 495.937 \n", + "1963 459.408 \n", + "1964 422.879 \n", + "1965 386.349 \n", + "1966 349.820 \n", + "1967 313.291 \n", + "1968 297.064 \n", + "1969 280.838 \n", + "1970 264.612 \n", + "1971 248.386 \n", + "1972 232.160 \n", + "1973 221.847 \n", + "1974 211.534 \n", + "1975 201.221 \n", + "1976 190.908 \n", + "1977 180.596 \n", + "1978 177.449 \n", + "1979 174.302 \n", + "1980 171.155 \n", + "1981 168.008 \n", + "1982 164.861 \n", + "1983 161.681 \n", + "1984 158.501 \n", + "1985 155.321 \n", + "1986 152.141 \n", + "1987 148.961 \n", + "1988 148.383 \n", + "1989 147.805 \n", + "1990 147.228 \n", + "1991 146.650 \n", + "1992 146.073 \n", + "1993 144.644 \n", + "1994 143.216 \n", + "1995 141.788 \n", + "1996 140.360 \n", + "1997 138.932 \n", + "1998 133.831 \n", + "1999 128.730 \n", + "2000 123.629 \n", + "2001 118.528 \n", + "2002 113.427 \n", + "2003 111.762 \n", + "2004 110.097 \n", + "2005 108.432 \n", + "2006 106.767 \n", + "2007 105.102 \n", + "2008 103.557 \n", + "2009 102.013 \n", + "2010 100.468 \n", + "2011 98.924 \n", + "2012 97.379 \n", + "2013 96.063 \n", + "2014 94.746 \n", + "2015 93.429 \n", + "2016 92.112 \n", + "2017 NaN \n", + "\n", + " Mortality rate, adult, female (per 1,000 female adults) \\\n", + "Year \n", + "1960 397.316 \n", + "1961 396.271 \n", + "1962 395.226 \n", + "1963 371.219 \n", + "1964 347.213 \n", + "1965 323.206 \n", + "1966 299.200 \n", + "1967 275.193 \n", + "1968 257.750 \n", + "1969 240.308 \n", + "1970 222.865 \n", + "1971 205.422 \n", + "1972 187.979 \n", + "1973 179.878 \n", + "1974 171.778 \n", + "1975 163.677 \n", + "1976 155.577 \n", + "1977 147.476 \n", + "1978 144.034 \n", + "1979 140.592 \n", + "1980 137.150 \n", + "1981 133.709 \n", + "1982 130.267 \n", + "1983 127.030 \n", + "1984 123.793 \n", + "1985 120.556 \n", + "1986 117.319 \n", + "1987 114.083 \n", + "1988 112.916 \n", + "1989 111.749 \n", + "1990 110.583 \n", + "1991 109.416 \n", + "1992 108.249 \n", + "1993 106.486 \n", + "1994 104.722 \n", + "1995 102.958 \n", + "1996 101.194 \n", + "1997 99.431 \n", + "1998 96.886 \n", + "1999 94.342 \n", + "2000 91.798 \n", + "2001 89.254 \n", + "2002 86.710 \n", + "2003 84.895 \n", + "2004 83.081 \n", + "2005 81.267 \n", + "2006 79.453 \n", + "2007 77.639 \n", + "2008 76.302 \n", + "2009 74.965 \n", + "2010 73.627 \n", + "2011 72.290 \n", + "2012 70.953 \n", + "2013 69.986 \n", + "2014 69.019 \n", + "2015 68.052 \n", + "2016 67.085 \n", + "2017 NaN \n", + "\n", + " Sex ratio at birth (male births per female births) \n", + "Year \n", + "1960 NaN \n", + "1961 NaN \n", + "1962 1.070 \n", + "1963 NaN \n", + "1964 NaN \n", + "1965 NaN \n", + "1966 NaN \n", + "1967 1.070 \n", + "1968 NaN \n", + "1969 NaN \n", + "1970 NaN \n", + "1971 NaN \n", + "1972 1.070 \n", + "1973 NaN \n", + "1974 NaN \n", + "1975 NaN \n", + "1976 NaN \n", + "1977 1.070 \n", + "1978 NaN \n", + "1979 NaN \n", + "1980 NaN \n", + "1981 NaN \n", + "1982 1.070 \n", + "1983 NaN \n", + "1984 NaN \n", + "1985 NaN \n", + "1986 NaN \n", + "1987 1.080 \n", + "1988 NaN \n", + "1989 NaN \n", + "1990 1.104 \n", + "1991 NaN \n", + "1992 1.120 \n", + "1993 NaN \n", + "1994 NaN \n", + "1995 NaN \n", + "1996 NaN \n", + "1997 1.140 \n", + "1998 NaN \n", + "1999 NaN \n", + "2000 NaN \n", + "2001 NaN \n", + "2002 1.160 \n", + "2003 NaN \n", + "2004 NaN \n", + "2005 NaN \n", + "2006 NaN \n", + "2007 1.170 \n", + "2008 1.168 \n", + "2009 1.166 \n", + "2010 1.164 \n", + "2011 1.162 \n", + "2012 1.160 \n", + "2013 1.158 \n", + "2014 1.156 \n", + "2015 1.154 \n", + "2016 1.152 \n", + "2017 1.150 " + ] + }, + "execution_count": 364, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "table" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We'll rename the column names for the sake of brevity. We'll also be converting the population totals into billions and the birth and death rates into percentages for the same reason." + ] + }, + { + "cell_type": "code", + "execution_count": 367, + "metadata": {}, + "outputs": [], + "source": [ + "table.columns = ['lebt', 'popmp', 'popm', 'popfp', 'popf', 'popt', 'death', 'birth', 'mortm', 'mortf', 'sex']\n", + "popt = table.popt / 1e9;\n", + "death_rate = table.death / 1000;\n", + "birth_rate = table.birth / 1000;" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, we'll establish some common variables that we'll use throughout the notebook. These variables include the year our data starts, the year the one-child policy was introduced, the year the one-child policy was ended, the populations at all these times, and the growth rates." + ] + }, + { + "cell_type": "code", + "execution_count": 369, + "metadata": {}, + "outputs": [], + "source": [ + "t_0 = get_first_label(popt);\n", + "t_ocp = 1979; \n", + "t_end = 2016;\n", + "p_0 = popt[t_0];\n", + "p_ocp = popt[t_ocp];\n", + "p_end = popt[t_end];\n", + "growth_rate = birth_rate - death_rate;" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Linear Growth Model\n", + "\n", + "For the linear growth model, we'll use the average growth per year from 1960 to 1979 to simulate the growth of the population if it hadn't been affected by the one-child policy.\n", + "First, we find the average growth (in number of births - deaths) per year from 1960-1979, before the one-child policy was enacted." + ] + }, + { + "cell_type": "code", + "execution_count": 370, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.01589131578947368" + ] + }, + "execution_count": 370, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "growth = (popt[t_ocp] - popt[t_0]) / (t_ocp - t_0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we establish the system and its parameter." + ] + }, + { + "cell_type": "code", + "execution_count": 388, + "metadata": { + "scrolled": true + }, + "outputs": [], + "source": [ + "system = System(t_0 = t_0,\n", + " t_ocp = t_ocp,\n", + " t_end = t_end,\n", + " p_0 = p_0,\n", + " p_end = p_end,\n", + " growth = growth);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For the update function, we're just going to add the average growth per year to the previous year." + ] + }, + { + "cell_type": "code", + "execution_count": 389, + "metadata": {}, + "outputs": [], + "source": [ + "def linear(pop, t, system):\n", + " return pop + system.growth;" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Our simulation function runs the update function through each year and then puts our model outputs into a TimeSeries so we can plot it. We'll be using this same function for all the other types of models we test." + ] + }, + { + "cell_type": "code", + "execution_count": 391, + "metadata": {}, + "outputs": [], + "source": [ + "def run_simulation(system, update_func):\n", + " results = TimeSeries()\n", + " results[system.t_0] = system.p_0\n", + " \n", + " for t in linrange(system.t_0, system.t_end):\n", + " results[t+1] = update_func(results[t], t, system)\n", + " \n", + " return results" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Lastly, we run and then plot the model." + ] + }, + { + "cell_type": "code", + "execution_count": 392, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "results = run_simulation(system, linear)\n", + "\n", + "plot(popt, ':', label='China pop')\n", + "plot(results, '--', label='Linear model of pop')\n", + "\n", + "decorate(title= 'Linear Model',\n", + " xlabel='Year',\n", + " ylabel='Total population (billions)')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Proportional Growth Model" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For the proportional growth model, we'll use the average growth rate per year from 1960 to 1979 to simulate the growth of the population if it hadn't been affected by the one-child policy. Unlike the last model, the proportional growth model accounts for the fact that larger populations will grow more, instead of at a constant rate. First, we find the average growth rate per year from 1960-1979, before the one-child policy was enacted. It's important to note that the last model used average growth, and this model uses average growth *rate*." + ] + }, + { + "cell_type": "code", + "execution_count": 396, + "metadata": {}, + "outputs": [], + "source": [ + "def find_avg(system):\n", + " results = TimeSeries()\n", + " results[system.t_0] = system.p_0\n", + " growth_total = 0\n", + "\n", + " for t in linrange(system.t_0, system.t_ocp):\n", + " growth_total = system.growth_rate[t] + growth_total\n", + " \n", + " return growth_total/(system.t_ocp - system.t_0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we establish the system and its parameter, like we did in the last model." + ] + }, + { + "cell_type": "code", + "execution_count": 397, + "metadata": {}, + "outputs": [], + "source": [ + "avg_gr = find_avg(system2)\n", + "\n", + "system2 = System(t_0=t_0,\n", + " t_end=t_end,\n", + " t_ocp=t_ocp,\n", + " p_0=p_0,\n", + " p_end=p_end,\n", + " growth_rate=growth_rate,\n", + " avg_gr = avg_gr); " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For the update function, we're just going to multiply the average growth rate per year by the population that year, then add it back to the population. Before 1979, we'll use the actual growth rates per year, and after 1979, we'll use the average growth rate we found earlier." + ] + }, + { + "cell_type": "code", + "execution_count": 399, + "metadata": {}, + "outputs": [], + "source": [ + "def prop(pop, t, system):\n", + " if (t <= 1979): \n", + " growth = growth_rate[t] * pop\n", + " return pop + growth\n", + " else: \n", + " growth = avg_gr * pop\n", + " return pop + growth" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Lastly, we run and then plot the model. We're using the same simulation function as with the linear model." + ] + }, + { + "cell_type": "code", + "execution_count": 402, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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+rqrq6sDFvv961//GrJYervXXnuNF198kalTe88K4aJnOSuKqF77AR5nI2B2I3rstZAc4sB6QLCrN54E/KfW+gBwIbBUa70FeA7I7a7gRPCsVitz5syhqKiIqqoq3n77bX7xi1/wi1/8gilTprB161b27NnD1VdfzeTJkznttNN46qmnfPuD3XLLLdx55538/Oc/Z+LEiVx66aXs3t08dmfp0qWce+655OXl8bOf/YzVq1f76pRS3HPPPUyePJm77rqLefPmUVNTQ05ODsXFxQGto4MHD7Jw4UKmTp3KjBkzuO+++7Db7YDZornxxhu55ppryMnJYfbs2Sxfvtx3n2XLlnHxxRczefJkJk2axK233trhqvhgtn7y8/N59dVXOfHEE5k8eTKvvvoqr7/+OjNmzGDKlCkBLbevv/6aiy++mNzcXM477zw+/PDDgGtdccUV5OTkcPHFF7N3b2CP+ZtvvsmsWbOYNGkSc+fODaob1eVy8cQTT3DyySczZcoUrr76avbv34/b7SYnJweXy8X8+fN54oknWp2rlOKvf/0r06dPZ9KkSTz44IO+v8+6ujruuecepk+fzrRp07jpppsoLy8H4O233+ayyy7jxhtvJCcnh7POOovPPvvskLGKo4+jZA9Vq5f4kpcl3Epi/mwiB44IcWQ9I9gWWCMQ7p0Tdgow11ueDlR1Q1xHjbpta6jfsS6oY6OyjyN+3MkBZTXff07Dvi1BnR8zIo/YUYe3knxVVRWvvvoqI0eO9G02uX79el544QVyc3Ox2WycffbZzJw5k8cff5zi4mKuvvpqrFYr8+fPB8wdk5977jny8/N55JFHuPbaa1m6dClfffUVd9xxB88++yz5+fksW7aM+fPn89577/k2r6ytrWXlypU4HA7OPvvsdhfmve6668jIyGD58uU0NDTw+9//ngcffJB77rkHgA8++IBnnnmGJ554gmeffZa77rqL008/ncLCQm6++WZefPFF8vPz2bNnDz//+c9Zvnw5Z599doefTU1NDT/88AOffvopy5cvZ+HChVxwwQWsWLGCL7/8kt/97nfMmTOHkpIS5s+fz8MPP8yZZ57JmjVrWLBgAampqeTl5fH73/+eMWPG8MILL6C1Zu7cueTn5wPw0Ucf8cQTT/D8888zcuRIXnrpJebNm8f777/fYWxPPvkkK1as4LXXXiMt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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "results = run_simulation(system, prop)\n", + "\n", + "plot(popt, ':', label='China pop')\n", + "plot(results, '--', label='Proportional model of pop')\n", + "decorate(title= 'Proportional Model',\n", + " xlabel='Year',\n", + " ylabel='Total population (billions)')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Quadratic Growth Model" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For the quadratic growth model, we'll use the two parameters, alpha and beta, to simulate the growth of the population if it hadn't been affected by the one-child policy. Unlike the previous models, the quadratic growth model accounts for the fact that one day, population growth will be forced to slow because of a lack of resources or space. First, we establish the system and the numbers we've chosen for alpha and beta. The number we've chosen for alpha is 0.022 and beta is -0.0015, which means that our predicted carrying capacity for this model is 14.67 billion people. " + ] + }, + { + "cell_type": "code", + "execution_count": 406, + "metadata": {}, + "outputs": [], + "source": [ + "system3 = System(t_0=t_0,\n", + " t_end=t_end,\n", + " t_ocp=t_ocp,\n", + " p_0=p_0,\n", + " p_end=p_end,\n", + " alpha = 0.022,\n", + " beta = -0.0015);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now for the update function. We're just going to multiply alpha by the population, and add that to beta multiplied by the population squared." + ] + }, + { + "cell_type": "code", + "execution_count": 407, + "metadata": {}, + "outputs": [], + "source": [ + "def quad(pop, t, system):\n", + " net_growth = system.alpha * pop + system.beta * pop**2\n", + " return pop +net_growth" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Lastly, we run and then plot the model." + ] + }, + { + "cell_type": "code", + "execution_count": 410, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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OldccQWLFi0K2evNnTuX119//bTOfeqpp3wLDGdnZzNq1CiKi4ubMLrT57+556lMmTKFJUuWNPo1Pv30U8aNG8eYMWN8+6wJcaYMw6B091qKty/3Ja+wyBgSz5nT5ud4BSPYxXyfByqAQ8BcoA9mC+wV4LmQRCYa9NVXXzF//nwmT57MV199xbp167jzzjt5/vnnefLJJ1s6vFry8vJ8j7t3787mzZuJi4trwYia13vvvce1117L+vXr6d+/f0uHI9oBw+2ieMsSyn6o3vQ1PD6ZxAmXER7fuQUjaz7BJrDzgTu11keBOcCnWutM4O/A6FAFJ+rmdDp55JFHuOeee7jqqquIj4/HarVy7rnn8sorr/Dmm2+SmZkJ1G4xPP/889x2222AuZ3J448/zoUXXsjIkSNrbSC5atUqZs2axahRo7jrrrtwOBy+urlz53LfffcxceJE5s6dC8Dbb7/NJZdcQnp6OuPHj+fpp58G4LXXXuPjjz/mnXfeYf78+WRlZaGUoqioCDB3mL7yyisZNWoUM2bM4Msvv6zzfU+ZMoU33niDGTNmMHLkSO69917WrVvHzJkzGTVqFL/+9a9xu90AHDx4kPnz5zN27FimTJnCX//6V99eaBUVFTz00ENkZGQwefJkVqxYEfA6Gzdu5H/+539IT09nzpw5rFq1Kqj/l08//ZRZs2aRnp7O5Zdfztq1awG48cYbWbNmDS+99BLXX399rfPmzp3L008/7Xsf8+fPD9gH7c0332TatGlkZGQwd+5cdu/eDZhdssOGDePll19m3LhxTJgwgZdeeimoWEXbZq4m/wkVR6tb8xFdepF4zo/bzRyvYAQ7kbkCsHrnhE0GbvKWdwUK6zupPSjds56yfRuDOjay51nEDZsUUFa8fTnlhzODOj96QDoxg069kvymTZt8K73X1LdvX0aPHs2SJUtOuWjrq6++yo4dO3j33XeJi4vjrbfe4uGHH2bGjBkUFBRw++2389BDDzF79mw++ugjfvOb3zBr1izf+Vu3buWzzz7DYrGwadMm/vSnP/HOO+/Qv39/tm3bxjXXXMOMGTP42c9+htaauLg4HnjggYBdofPy8rj55pv51a9+xZVXXsn69euZN28eX3zxRcDml1Xee+893nnnHRwOBxdffDF79+7ljTfeoKKigksvvZTly5czceJEbrzxRqZNm8af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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "results = run_simulation(system3, quad)\n", + "\n", + "plot(popt, ':', label='China pop')\n", + "plot(results, '--', label='Quadratic model of pop')\n", + "decorate(title= 'Quadratic Model',\n", + " xlabel='Year',\n", + " ylabel='Total population (billions)')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Interpretation\n", + "\n", + "\n", + "China’s one child policy was never truly a one child policy. The actual number of children allowed fluctuated between 1979 and 2016 (when the policy was introduced and ended respectively). Certain people could also have more children – ethnic minorities were allowed two, and farmers could have a second child, provided that first child was a girl. The policy was also not equally enforced, and those in cities often felt its effects most strongly. All that being said, the Chinese government estimates that about 400 million births were prevented thanks to the policy, which was an attempt to curb overpopulation. Did it work?\n", + "\n", + "For the purposes of this project, we decided to assume that the death rate would be proportional to the birth rate. In reality, this may not have been true at all. We also ignored the existence of the two child policy, (from 1970 to 1979, and re-implemented in 2016), as it wasn’t enforced. Additionally, we treated the one-child policy as if it had truly been a purely one-child policy, ignoring its many variations.\n", + "\n", + "In this project, we tested three different types of models: linear, proportional, and quadratic. This was so we could find the model type that best fit the data from 1960 to 1979, thus giving us the most accurate prediction for the years following.\n", + "Interestingly, the linear model seemed to fit the data incredibly well from the 1980s to the 1990s. Perhaps this was the time when the one child policy was best enforced, making the growth most linear. Maybe it’s just a coincidence. Regardless, populations don’t grow linearly, which is why this model was ruled out immediately.\n", + "\n", + "The proportional model fits the data well, and seems to follow realistic growth after the real plot and the model diverge. However, it assumes that the population will continue to grow proportionally forever, ignoring the fact that space and resources are finite.\n", + "\n", + "In the end, we decided the most accurate model was the Quadratic model. It fit the data well, and a quadratic model projects an eventual plateau in the growth rate, which logically makes sense (at some point, China will run out of resources and ways to create new ones, meaning that population growth will be forced to slow). This model, like the Proportional model, predicts a dramatically larger population than what China currently has. According to our model, had the one child policy never been implemented, China’s population would be about 2 billion in 2016. The actual population of China in 2016 was 1.4 billion.\n", + "As a result of the one-child policy, China was able to curb their population growth significantly." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.6.6" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} From c13e3edb58e59c49f54ade1851e7da038dca1228 Mon Sep 17 00:00:00 2001 From: Annie Tor Date: Mon, 15 Oct 2018 16:21:12 -0400 Subject: [PATCH 07/18] Adding all notebooks --- code/China _ Data.html | 70 + code/China _ Data_files/1458892451075570 | 23 + .../WebStatsUtil.js.download | 57 + .../XzQsWhTqmnE8dYDOJ0HjJQ.js.download | 3 + code/China _ Data_files/adsct | 1 + code/China _ Data_files/adsct(1) | 1 + code/China _ Data_files/adsct(2) | 1 + code/China _ Data_files/adsct(3) | 1 + code/China _ Data_files/analytics.js.download | 66 + ...Container-ad7d2c7528a43d38dd33.js.download | 5 + code/China _ Data_files/dest5.html | 17 + code/China _ Data_files/f(1).txt | 1 + code/China _ Data_files/f.txt | 36 + code/China _ Data_files/fbevents.js.download | 27 + code/China _ Data_files/fs.frame.html | 12 + code/China _ Data_files/fs.frame.js.download | 8 + .../China _ Data_files/fs.gateway.js.download | 12 + .../China _ Data_files/fs.trigger.js.download | 8 + .../fs.utils.js(1).download | 10 + code/China _ Data_files/fs.utils.js.download | 10 + .../gateway.min.js.download | 13 + code/China _ Data_files/js | 182 +++ code/China _ Data_files/logo-grey.jpg | Bin 0 -> 2987 bytes code/China _ Data_files/logo-wb-header-en.svg | 111 ++ .../China _ Data_files/logo-wbg-footer-en.svg | 95 ++ .../main-bd31d0076822ad71282b.js.download | 40 + .../main-cdb2d61622fe65ae8f9d.css | 1 + code/China _ Data_files/mp2v3DK3INU.html | 62 + code/China _ Data_files/placeholder.png | Bin 0 -> 96 bytes ...d4df6973d5b69c61714e0542e49a91.js.download | 988 ++++++++++++++ code/China _ Data_files/s_code.js.download | 749 +++++++++++ ...llite-59c3dcc364746d520200e048.js.download | 9 + ...llite-5a0b584c64746d703f006e23.js.download | 142 ++ ...llite-5a0b584c64746d703f006e37.js.download | 77 ++ ...llite-5abd109d64746d01bc00b52f.js.download | 23 + .../satellite-5abd109d64746d01bc00b530.html | 48 + ...llite-5abd109d64746d01bc00b54e.js.download | 11 + ...llite-5abd109d64746d01bc00b54f.js.download | 8 + ...llite-5abd109d64746d01bc00b550.js.download | 9 + ...llite-5abd109d64746d01bc00b551.js.download | 8 + ...llite-5ac5fe4564746d2458008f32.js.download | 65 + ...llite-5b32978d64746d60500041fa.js.download | 128 ++ ...llite-5b329bb964746d604a005110.js.download | 55 + ...6ed94da49cf49e2ba626ac110c7e3c.js.download | 13 + code/China _ Data_files/sdk.js.download | 218 ++++ code/China _ Data_files/track.js.download | 1 + code/China _ Data_files/uwt.js.download | 1 + .../vendor-bd31d0076822ad71282b.js.download | 19 + code/chap01.ipynb | 2 +- code/chap04.ipynb | 589 ++++++++- code/chap05.ipynb | 1157 ++++++++++++++++- code/chap07.ipynb | 338 ++++- code/chap09.ipynb | 539 +++++++- code/chap12.ipynb | 852 +++++++++++- code/chap13.ipynb | 370 +++++- code/chap14-Copy1.ipynb | 525 ++++++++ code/figs/chap02-fig02.pdf | Bin 0 -> 15695 bytes code/figs/chap03-fig01.pdf | Bin 0 -> 17024 bytes code/figs/chap03-fig02.pdf | Bin 0 -> 19015 bytes code/figs/chap03-fig03.pdf | Bin 0 -> 18327 bytes code/figs/chap03-fig04.pdf | Bin 0 -> 18817 bytes code/figs/chap03-fig05.pdf | Bin 0 -> 14755 bytes code/figs/chap04-fig01.pdf | Bin 0 -> 17819 bytes code/figs/chap05-fig02.pdf | Bin 0 -> 17035 bytes code/figs/chap05-fig03.pdf | Bin 0 -> 12470 bytes code/figs/chap05-fig04.pdf | Bin 0 -> 15347 bytes code/figs/chap05-fig05.pdf | Bin 0 -> 15731 bytes code/figs/chap05-fig06.pdf | Bin 0 -> 11759 bytes code/figs/chap06-fig01.pdf | Bin 0 -> 14053 bytes code/figs/chap06-fig02.pdf | Bin 0 -> 13475 bytes code/hiv_model.ipynb | 284 ++++ code/world_pop_transition.ipynb | 496 +++++++ 72 files changed, 8267 insertions(+), 330 deletions(-) create mode 100644 code/China _ Data.html create mode 100644 code/China _ Data_files/1458892451075570 create mode 100644 code/China _ Data_files/WebStatsUtil.js.download create mode 100644 code/China _ Data_files/XzQsWhTqmnE8dYDOJ0HjJQ.js.download create mode 100644 code/China _ Data_files/adsct create mode 100644 code/China _ Data_files/adsct(1) create mode 100644 code/China _ Data_files/adsct(2) create mode 100644 code/China _ Data_files/adsct(3) create mode 100644 code/China _ Data_files/analytics.js.download create mode 100644 code/China _ Data_files/chunk-Container-ad7d2c7528a43d38dd33.js.download create mode 100644 code/China _ Data_files/dest5.html create mode 100644 code/China _ Data_files/f(1).txt create mode 100644 code/China _ Data_files/f.txt create mode 100644 code/China _ Data_files/fbevents.js.download create mode 100644 code/China _ Data_files/fs.frame.html create mode 100644 code/China _ Data_files/fs.frame.js.download create mode 100644 code/China _ Data_files/fs.gateway.js.download create mode 100644 code/China _ Data_files/fs.trigger.js.download create mode 100644 code/China _ Data_files/fs.utils.js(1).download create mode 100644 code/China _ Data_files/fs.utils.js.download create mode 100644 code/China _ Data_files/gateway.min.js.download create mode 100644 code/China _ Data_files/js create mode 100644 code/China _ Data_files/logo-grey.jpg create mode 100644 code/China _ Data_files/logo-wb-header-en.svg create mode 100644 code/China _ Data_files/logo-wbg-footer-en.svg create mode 100644 code/China _ Data_files/main-bd31d0076822ad71282b.js.download create mode 100644 code/China _ Data_files/main-cdb2d61622fe65ae8f9d.css create mode 100644 code/China _ Data_files/mp2v3DK3INU.html create mode 100644 code/China _ Data_files/placeholder.png create mode 100644 code/China _ Data_files/s-code-contents-9b42223dafd4df6973d5b69c61714e0542e49a91.js.download create mode 100644 code/China _ Data_files/s_code.js.download create mode 100644 code/China _ Data_files/satellite-59c3dcc364746d520200e048.js.download create mode 100644 code/China _ Data_files/satellite-5a0b584c64746d703f006e23.js.download create mode 100644 code/China _ Data_files/satellite-5a0b584c64746d703f006e37.js.download create mode 100644 code/China _ Data_files/satellite-5abd109d64746d01bc00b52f.js.download create mode 100644 code/China _ Data_files/satellite-5abd109d64746d01bc00b530.html create mode 100644 code/China _ Data_files/satellite-5abd109d64746d01bc00b54e.js.download create mode 100644 code/China _ Data_files/satellite-5abd109d64746d01bc00b54f.js.download create mode 100644 code/China _ Data_files/satellite-5abd109d64746d01bc00b550.js.download create mode 100644 code/China _ Data_files/satellite-5abd109d64746d01bc00b551.js.download create mode 100644 code/China _ Data_files/satellite-5ac5fe4564746d2458008f32.js.download create mode 100644 code/China _ Data_files/satellite-5b32978d64746d60500041fa.js.download create mode 100644 code/China _ Data_files/satellite-5b329bb964746d604a005110.js.download create mode 100644 code/China _ Data_files/satelliteLib-efd6120a6f6ed94da49cf49e2ba626ac110c7e3c.js.download create mode 100644 code/China _ Data_files/sdk.js.download create mode 100644 code/China _ Data_files/track.js.download create mode 100644 code/China _ Data_files/uwt.js.download create mode 100644 code/China _ Data_files/vendor-bd31d0076822ad71282b.js.download create mode 100644 code/chap14-Copy1.ipynb create mode 100644 code/figs/chap02-fig02.pdf create mode 100644 code/figs/chap03-fig01.pdf create mode 100644 code/figs/chap03-fig02.pdf create mode 100644 code/figs/chap03-fig03.pdf create mode 100644 code/figs/chap03-fig04.pdf create mode 100644 code/figs/chap03-fig05.pdf create mode 100644 code/figs/chap04-fig01.pdf create mode 100644 code/figs/chap05-fig02.pdf create mode 100644 code/figs/chap05-fig03.pdf create mode 100644 code/figs/chap05-fig04.pdf create mode 100644 code/figs/chap05-fig05.pdf create mode 100644 code/figs/chap05-fig06.pdf create mode 100644 code/figs/chap06-fig01.pdf create mode 100644 code/figs/chap06-fig02.pdf create mode 100644 code/hiv_model.ipynb create mode 100644 code/world_pop_transition.ipynb diff --git a/code/China _ Data.html b/code/China _ Data.html new file mode 100644 index 00000000..ae5b4a4a --- /dev/null +++ b/code/China _ Data.html @@ -0,0 +1,70 @@ + + +China | Data + +

China 

196019802000Trillion 012China
+
China (1992)
+
426.916 Billion
+
196019802000Billion 0.71.4China
+
China (1972)
+
862,030,000
+
196019802000 100130China
+
China (1976)
+
121.58
+
196019802000 08China
+
China (2014)
+
7.544
+
196019802000 218China
196019802000 4080China
196019802000Thousand 09China
196019802000 5880China

Global Economic Prospects - Forecasts

Projects & Operations

Finances

Surveys

\ No newline at end of file diff --git a/code/China _ Data_files/1458892451075570 b/code/China _ Data_files/1458892451075570 new file mode 100644 index 00000000..1f4a73d8 --- /dev/null +++ b/code/China _ Data_files/1458892451075570 @@ -0,0 +1,23 @@ +/** +* Copyright (c) 2017-present, Facebook, Inc. All rights reserved. +* +* You are hereby granted a non-exclusive, worldwide, royalty-free license to use, +* copy, modify, and distribute this software in source code or binary form for use +* in connection with the web services and APIs provided by Facebook. +* +* As with any software that integrates with the Facebook platform, your use of +* this software is subject to the Facebook Platform Policy +* [http://developers.facebook.com/policy/]. This copyright notice shall be +* included in all copies or substantial portions of the software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +(function(a,b,c,d){var e={exports:{}};e.exports;(function(){var f=a.fbq;f.execStart=a.performance&&a.performance.now&&a.performance.now();if(!function(){var b=a.postMessage||function(){};if(!f){b({action:"FB_LOG",logType:"Facebook Pixel Error",logMessage:"Pixel code is not installed correctly on this page"},"*");"error"in console&&console.error("Facebook Pixel Error: Pixel code is not installed correctly on this page");return!1}return!0}())return;var g=typeof Symbol==="function"&&typeof (typeof Symbol==="function"?Symbol.iterator:"@@iterator")==="symbol"?function(a){return typeof a}:function(a){return a&&typeof Symbol==="function"&&a.constructor===Symbol&&a!==(typeof Symbol==="function"?Symbol.prototype:"@@prototype")?"symbol":typeof a},h=function(){function a(a,b){for(var c=0;c1?c-1:0),e=1;e1?e-1:0),g=1;g1&&arguments[1]!==undefined?arguments[1]:0,e=arguments.length>2&&arguments[2]!==undefined?arguments[2]:!1;if(!e&&!j)return;try{var f=new d(null);f.append("v",g.fbq&&g.fbq.version?g.fbq.version:"unknown");f.append("rs",i);f.append("e",event);f.append("p",b);c(f,"https://connect.facebook.net/log/fbevents_telemetry/")}catch(b){a.logError(b)}}function l(){k("COALESCE_INIT")}function m(a){k("COALESCE_COMPLETE",a)}function n(a){k("FBMQ_FORWARDED",a,!0)}e.exports={logStartBatch:l,logEndBatch:m,logMobileNativeForwarding:n}})();return e.exports}(a,b,c,d)});f.ensureModuleRegistered("SignalsFBEventsUtils",function(){return function(a,b,c,d){var e={exports:{}};e.exports;(function(){"use strict";var c=f.getFbeventsModules("SignalsFBEventsProxyState"),d=Object.prototype.toString,j=!("addEventListener"in b);function k(a,b){return typeof b==="function"&&a instanceof b}function l(a){return Array.isArray?Array.isArray(a):d.call(a)==="[object Array]"}function m(a){return typeof a==="number"||typeof a==="string"&&/^\d+$/.test(a)}var n=Number.isInteger||function(a){return typeof a==="number"&&isFinite(a)&&Math.floor(a)===a};function o(a,b,c){var d=j?"on"+b:b;b=j?a.attachEvent:a.addEventListener;var e=j?a.detachEvent:a.removeEventListener,f=function b(){e&&e.call(a,d,b,!1),c()};b&&b.call(a,d,f,!1)}var p=Object.prototype.hasOwnProperty,q=!{toString:null}.propertyIsEnumerable("toString"),r=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],s=r.length;function t(a){if(Object.keys)return Object.keys(a);if((typeof a==="undefined"?"undefined":g(a))!=="object"&&(typeof a!=="function"||a===null))throw new TypeError("Object.keys called on non-object");var b=[];for(var c in a)p.call(a,c)&&b.push(c);if(q)for(var d=0;d>>0;if(typeof b!=="function")throw new TypeError(b+" is not a function");c=new Array(e);d=0;while(d>>0,d=arguments.length>=2?arguments[1]:void 0;for(var e=0;e>>0;if(typeof a!=="function")throw new TypeError();var d=[],e=arguments.length>=2?arguments[1]:void 0;for(var f=0;fb?a.substr(0,b):a}l={isArray:l,isEmptyObject:w,isNumber:m,isInteger:n,isInstanceOf:k,keys:t,listenOnce:o,map:u,truncate:E,sendGET:A,sendPOST:B,sendBeacon:C,FBSet:y,each:function(a,b){u.call(this,a,b)},some:function(a,b){return v.call(a,b)},filter:function(a,b){return x.call(a,b)},castTo:D};e.exports=l})();return e.exports}(a,b,c,d)});f.ensureModuleRegistered("SignalsParamList",function(){return function(f,b,c,d){var e={exports:{}};e.exports;(function(){"use strict";var a="deep",b="shallow";function c(a){if(JSON===undefined||JSON===null||!JSON.stringify)return Object.prototype.toString.call(a);else return JSON.stringify(a)}function d(a){if(a===null||a===undefined)return!0;a=typeof a==="undefined"?"undefined":g(a);return a==="number"||a==="boolean"||a==="string"}var f=function(){function e(a){i(this,e),this._params=[],this._piiTranslator=a}h(e,[{key:"containsKey",value:function(a){for(var b=0;b2&&arguments[2]!==undefined?arguments[2]:!1;this._append(encodeURIComponent(b),c,a,d);return this}},{key:"appendHash",value:function(b){var c=arguments.length>1&&arguments[1]!==undefined?arguments[1]:!1;for(var d in b)Object.prototype.hasOwnProperty.call(b,d)&&this._append(encodeURIComponent(d),b[d],a,c);return this}},{key:"_append",value:function(b,e,f,g){d(e)?this._appendPrimitive(b,e,g):f===a?this._appendObject(b,e,g):this._appendPrimitive(b,c(e),g)}},{key:"_translateValue",value:function(a,b,c){if(typeof b==="boolean")return b?"true":"false";if(!c)return""+b;if(!this._piiTranslator)throw new Error();return this._piiTranslator(a,""+b)}},{key:"_appendPrimitive",value:function(a,b,c){if(b!=null){b=this._translateValue(a,b,c);b!=null&&this._params.push({name:a,value:b})}}},{key:"_appendObject",value:function(a,c,d){var e=null;for(var f in c)if(Object.prototype.hasOwnProperty.call(c,f)){var g=a+"["+encodeURIComponent(f)+"]";try{this._append(g,c[f],b,d)}catch(a){e==null&&(e=a)}}if(e!=null)throw e}},{key:"each",value:function(a){for(var b=0;b-1;b=b.userAgent.match("CriOS");return!b&&a!==null&&a!==undefined&&c==="Google Inc."&&d===!1&&e===!1}function v(a,b,c,e,f){if(g.navigator&&g.navigator.sendBeacon){f=new l(f);q(f,a,b,c);e&&f.addRange(e);d(f,n.ENDPOINT)}}e.exports={CONFIG:n,sendEvent:t,sendBeaconPII:v,setUseBeacon:c}})();return e.exports}(a,b,c,d)});f.ensureModuleRegistered("SignalsFBEvents.plugins.iwlbootstrapper",function(){return function(g,h,i,d){var e={exports:{}};e.exports;(function(){"use strict";var a=f.getFbeventsModules("SignalsFBEventsPlugin"),b=f.getFbeventsModules("SignalsPixelEndpoint"),c=function(a,b,c){return"https://"+["www",c,"facebook","com"].filter(function(a){return a.length!==0}).join(".")+"/signals/iwl.js?pixel_id="+a+(b?"&js_debug=1":"")},d=/^https:\/\/.*\.facebook\.com$/i,i=/^https:\/\/www\.([A-Za-z0-9\.]+)\.facebook\.com\/tr$/,j=b.CONFIG.ENDPOINT!=="https://www.facebook.com/tr"&&i.test(b.CONFIG.ENDPOINT),k=j?i.exec(b.CONFIG.ENDPOINT)[1]:"",l="FB_IWL_BOOTSTRAPPER_STORAGE",m=g.sessionStorage?g.sessionStorage:{getItem:function(a){return null},setItem:function(a,b){},removeItem:function(a){}},n=!1;function o(){var a=m.getItem(l);if(!a)return;a=JSON.parse(a);var b=a.pixelID,d=a.graphToken,e=a.debug,f=a.permissionLevel,i=a.showFlow,o=a.gks;if(n||!b)return;n=!0;a=h.createElement("script");a.async=!0;a.onload=function(){g.FacebookIWL&&g.FacebookIWL.init&&(g.FacebookIWLSessionEnd=function(){m.removeItem(l),g.location.reload()},j&&g.FacebookIWL.set&&g.FacebookIWL.set("tier",k),g.FacebookIWL.init(b,d,f,i,o))};a.src=c(b,e,k);h.body&&h.body.appendChild(a)}function p(event){if(m.getItem(l)||!d.test(event.origin)||!(event.data&&event.data.msg_type==="FACEBOOK_IWL_BOOTSTRAP"))return;event.source.postMessage("FACEBOOK_IWL_BOOTSTRAP_ACK",event.origin);var a=event.data,b=a.pixelID,c=a.graphToken,e=a.debug,f=a.permissionLevel,g=a.showFlow;a=a.gks;m.setItem(l,JSON.stringify({pixelID:b,graphToken:c,debug:e,permissionLevel:f,showFlow:g,gks:a}));o()}e.exports=new a(function(a,b){if(m.getItem(l)){o();return}g.opener&&g.addEventListener("message",p)})})();return e.exports}(a,b,c,d)});e.exports=f.getFbeventsModules("SignalsFBEvents.plugins.iwlbootstrapper");f.registerPlugin&&f.registerPlugin("fbevents.plugins.iwlbootstrapper",e.exports);f.ensureModuleRegistered("fbevents.plugins.iwlbootstrapper",function(){return e.exports})})()})(window,document,location,history); +fbq.registerPlugin("1458892451075570", {__fbEventsPlugin: 1, plugin: function(fbq, instance, config) { fbq.loadPlugin("iwlbootstrapper"); +instance.optIn("1458892451075570", "IWLBootstrapper", true);instance.configLoaded("1458892451075570"); }}); \ No newline at end of file diff --git a/code/China _ Data_files/WebStatsUtil.js.download b/code/China _ Data_files/WebStatsUtil.js.download new file mode 100644 index 00000000..71ff7b71 --- /dev/null +++ b/code/China _ Data_files/WebStatsUtil.js.download @@ -0,0 +1,57 @@ +//Created for WBS_51 Process omniture cookie information webStatsUtil.js +//newFunction +function getCookieValueByName(name){ + var cookieContent=''; + var allCookies = document.cookie; + if(allCookies!=null){ + var cPos = allCookies.indexOf(name+'='); + if(cPos != -1){ + var cdstart = cPos + name.length+1; + var cdend = allCookies.indexOf(";", cdstart); + if(cdend == -1) cdend = allCookies.length; + cookieContent = allCookies.substring(cdstart,cdend); + } + } + return cookieContent ; +} + +function getVPU(cookieContent,my_Stats_type){ + var vpu='Not Available'; + if(cookieContent!=null && cookieContent!=''){ + var array = cookieContent.split(':'); + try{vpu=array[0]; + }catch(e){} + } + else + { + if(my_Stats_type == "H") + vpu='-'; + } + return vpu; +} + + + +function getDutyStation(cookieContent,my_Stats_type){ + var dutystation='Not Available'; + if(cookieContent!=null && cookieContent!=''){ + var array = cookieContent.split(':'); + try{ + dutystation=array[array.length-1]; + }catch(e){} + } + else + { + if(my_Stats_type == "H") + dutystation='-'; + } + return dutystation; +} + +function getUserType(cookieContent){ + var userType='U'; + if(cookieContent!=null && cookieContent!=''){ + userType='I'; + } + return userType; +} diff --git a/code/China _ Data_files/XzQsWhTqmnE8dYDOJ0HjJQ.js.download b/code/China _ Data_files/XzQsWhTqmnE8dYDOJ0HjJQ.js.download new file mode 100644 index 00000000..41755b6f --- /dev/null +++ b/code/China _ Data_files/XzQsWhTqmnE8dYDOJ0HjJQ.js.download @@ -0,0 +1,3 @@ +window.UserVoice = {events:window.UserVoice||[],push:function(x){window.UserVoice.events.push(x)},account:{"active_widgets":[],"campaign":null,"name":"World Bank Data","white_labeled":true,"widget2_domain":"widget.uservoice.com","subdomain_ssl_host":"datahelpdesk.worldbank.org","subdomain_site_host":"datahelpdesk.worldbank.org","subdomain_key":"worldbankdata","subdomain_id":136660,"client_key":"XzQsWhTqmnE8dYDOJ0HjJQ","client_options":null,"smartvote_autoprompt_enabled":true,"satisfaction_autoprompt_enabled":true,"messages":{"Loading":"Loading"},"has_ticketing_system":true,"has_feedback_system":true,"has_smartvote":true,"has_satisfaction":true,"source_version":1537894883,"deactivated":false},client_widgets:{},manifest:{"tab-left-dark-no-bullhorn":"/pkg/clients/widget2/tab-left-dark-no-bullhorn-9669fb4a9d79416e9dc17618c9ed226faf8171ce461449f1282d6fcc2d6aa338.png","tab-left-light-no-bullhorn":"/pkg/clients/widget2/tab-left-light-no-bullhorn-22005a1309b6593c2eafb9f5321f3e77834963069451d85657c9373b1513d47f.png","tab-right-dark-no-bullhorn":"/pkg/clients/widget2/tab-right-dark-no-bullhorn-6c8fc4d589a9d68b16c89b8bd810aee48f11a826d292d22d2b5491cd2a072495.png","tab-right-light-no-bullhorn":"/pkg/clients/widget2/tab-right-light-no-bullhorn-5d328c32f884bd477a82e24e95355e2ef41eed9a98f0a393e1354d2089dbc995.png","tab-horizontal-dark-no-bullhorn":"/pkg/clients/widget2/tab-horizontal-dark-no-bullhorn-ae2f0f4ee5366ac297a76055000da8256a23b7ff3ed9bd6c24317e3cf350139d.png","tab-horizontal-light-no-bullhorn":"/pkg/clients/widget2/tab-horizontal-light-no-bullhorn-32b202e4d461169a377f8750d26bef3947f3c24e9ef3bdce25a317e4e773148d.png","close":"/pkg/clients/widget2/close-88877208b604c275adc17eac27513230d68cc0222e3a4cb147bbc0feba5d267c.png","pb":"/pkg/clients/widget2/UserVoice-logo-light-c40af2f05c5f1dfe06de1a83875730553d9b6c8c663f980e700e1c5a1f1fac56.svg","screenshot":"/pkg/clients/omnibox/screenshot-e7753ef39bd767a7c877dbee778dde8d93f4d9b9bf5b6471341eb8482c4825db.js"},kombucha_domain:'https://by2.uservoice.com'};"undefined"!=typeof UserVoice&&UserVoice.showLightbox||!function(t,e,o){function i(t){E("Error: "+t+" See https://www.uservoice.com/o/javascript-sdk for more help.")}function s(t){for(var e=[],o=0;on-s&&(n=o+s),n+e+s>i&&(n=i-e-s),n}function r(e){if("getComputedStyle"in t){for(var i=["transitionDuration","MozTransitionDuration","WebkitTransitionDuration","OTransitionDuration","msTransitionDuration"],s=0,n=0,r=i.length;r>n;n++){var a=i[n],l=L.getComputedStyle(e)[a]||e.style[a];if(l){s=1e3*parseFloat(l);break}}if(0!==s){var p=L.data(e,"transition-timer"),c=L.data(e,"transition-timeout-at"),d=+new Date+s;L.addClass(e,"uv-is-transitioning"),e.offsetWidth,(p===o||d>c)&&(clearTimeout(p),L.data(e,"transition-timer",setTimeout(function(){L.removeClass(e,"uv-is-transitioning"),e.offsetWidth},s)),L.data(e,"transition-timeout-at",d))}}}function a(t){meta=e.createElement("meta"),meta.setAttribute("name","viewport"),meta.setAttribute("content",t),e.head.appendChild(meta)}function l(){for(var t,o=e.getElementsByTagName("meta"),i=0;i/g,">")}function g(t,e){e||(e=function(t){return t});var o=[];for(var i in t)if(t.hasOwnProperty(i)){var s=e(i)+"="+e(t[i]);o.push(s)}return o.join("&")}function m(t){for(var e=Array.prototype.slice.call(arguments,1),o=e.length,i=0;o>i;i++)for(var s in e[i])e[i].hasOwnProperty(s)&&("object"==typeof t[s]&&"object"==typeof e[i][s]?m(t[s],e[i][s]):t[s]=e[i][s]);return t}function f(t,o){var i=e.createElement("style");i.type="text/css",i.media=o||"screen",i.styleSheet?i.styleSheet.cssText=t:i.appendChild(e.createTextNode(t)),e.getElementsByTagName("head")[0].appendChild(i)}function b(){M||(f("#uvTab,.uv-tray,.uv-icon,.uv-popover,.uv-bubble{display:none!important}","print"),M=!0)}function v(){X||(f(".uv-icon:hover{opacity:1}"),X=!0)}function x(){return e.getElementsByTagName("html")[0]}function y(){var o=e.documentElement,i=o&&o.clientWidth||e.body.clientWidth,s=t.innerHeight||o&&o.clientHeight||e.body.clientHeight;return{width:i,height:s}}function _(t){return((new Date).getTime()-t)/1e3/60/60/24}function w(t){return t&&(t.tab_color!==o&&(t.trigger_background_color=t.tab_color),t.tab_position!==o&&(t.trigger_position=t.tab_position)),t||{}}function k(t,e){return e&&("support"===e.mode?e.post_suggestion_enabled=!1:"feedback"===e.mode&&(e.contact_enabled=!1),delete e.mode,e.default_mode!==o&&(e.classic_default_mode=e.default_mode),w(e)),T({mode:t},e||{})}function C(t,e){if(et.hasOwnProperty(t)||(et[t]={}),et[t].hasOwnProperty(e))return et[t][e];var o=t.split("*");if(1===o.length)return et[t][e]=t===e;var i=o.shift();if(!e.startsWith(i))return et[t][e]=!1;var s=e.substr(i.length),n=o.pop();if(!s.endsWith(n))return et[t][e]=!1;s=s.substr(0,s.length-n.length);for(var r=0;ro;return i?1e3*o:o}var i;switch(e){case"boolean":i="true"===t||t===!0?!0:!1;break;case"timestamp":i=o(t);break;case"int":i=parseInt(t,10),isNaN(i)&&(i=0);break;case"float":i=parseFloat(t),isNaN(i)&&(i=0);break;case"string":i=[t].toString();break;default:i=t}return i},U.isValidSize=function(t,e){if("int32cents"===e){var o=2147483647,i=-2147483648,s=100*t;return o>=s&&s>=i}return t.length<=e},U.uTF8Encode=function(t){t=t.replace(/\x0d\x0a/g,"\n");for(var e="",o=0;oi?e+=String.fromCharCode(i):i>127&&2048>i?(e+=String.fromCharCode(i>>6|192),e+=String.fromCharCode(63&i|128)):(e+=String.fromCharCode(i>>12|224),e+=String.fromCharCode(i>>6&63|128),e+=String.fromCharCode(63&i|128))}return e},U.base64Encode=function(t){var e,o,i,s,n,r,a,l="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",p="",c=0;for(t=U.uTF8Encode(t);c>2,n=(3&e)<<4|o>>4,r=(15&o)<<2|i>>6,a=63&i,isNaN(o)?r=a=64:isNaN(i)&&(a=64),p=p+l.charAt(s)+l.charAt(n)+l.charAt(r)+l.charAt(a);return p},U.extend=function(t){for(var e=Array.prototype.slice.call(arguments,1),o=e.length,i=0;o>i;i++)for(var s in e[i])e[i].hasOwnProperty(s)&&(t[s]=e[i][s]);return t},U.values=function(t){var e,o=[];if(null==t)return o;for(e in t)t.hasOwnProperty(e)&&o.push(t[e]);return o},U.setCookie=function(t,o,i){i=U.extend({path:"/",domain:"",expires:new Date},i||{});var s=[t,"=",encodeURIComponent(o),"; path=",i.path,"; domain=",i.domain];return i.expires&&(i.expires.setFullYear(i.expires.getFullYear()+1),s.push("; expires="),s.push(i.expires.toUTCString())),"https:"==e.location.protocol&&s.push("; Secure"),e.cookie=s.join(""),o},U.getCookie=function(t){for(var o,i=(e.cookie||"").split(";"),s=i.length,n=0;s>n;n++)if(o=U.trim(i[n]),o.substr(0,t.length+1)===t+"=")return decodeURIComponent(o.substr(t.length+1))},U.deleteCookie=function(t,e){var o=new Date;o.setFullYear(o.getFullYear()-30),e=U.extend({expires:o},e||{}),U.setCookie(t,"",e)},U.trim=function(t){var e=String.prototype.trim;return e?e.apply(t):t.replace(/^\s+|\s+$/g,"")},U.isSpider=function(){return/(google web preview|baiduspider|yandexbot)/i.test(t.navigator.userAgent)},U.log=function(){"undefined"!=typeof console&&"undefined"!=typeof console.log&&"undefined"!=typeof console.log.apply&&console.log.apply(console,arguments)},function(){function e(t){return 10>t?"0"+t:t}function o(t){return a.lastIndex=0,a.test(t)?'"'+t.replace(a,function(t){var e=l[t];return"string"==typeof e?e:"\\u"+("0000"+t.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+t+'"'}function i(t,e){var a,l,p,c,d,h=s,u=e[t];switch(u&&"object"==typeof u&&"function"==typeof u.toJSON&&(u=u.toJSON(t)),"function"==typeof r&&(u=r.call(e,t,u)),typeof u){case"string":return o(u);case"number":return isFinite(u)?String(u):"null";case"boolean":case"null":return String(u);case"object":if(!u)return"null";if(s+=n,d=[],"[object Array]"===Object.prototype.toString.apply(u)){for(c=u.length,a=0;c>a;a+=1)d[a]=i(a,u)||"null";return p=0===d.length?"[]":s?"[\n"+s+d.join(",\n"+s)+"\n"+h+"]":"["+d.join(",")+"]",s=h,p}if(r&&"object"==typeof r)for(c=r.length,a=0;c>a;a+=1)"string"==typeof r[a]&&(l=r[a],p=i(l,u),p&&d.push(o(l)+(s?": ":":")+p));else for(l in u)Object.prototype.hasOwnProperty.call(u,l)&&(p=i(l,u),p&&d.push(o(l)+(s?": ":":")+p));return p=0===d.length?"{}":s?"{\n"+s+d.join(",\n"+s)+"\n"+h+"}":"{"+d.join(",")+"}",s=h,p}}"object"!=typeof JSON&&(t.JSON={}),"function"!=typeof Date.prototype.toJSON&&(Date.prototype.toJSON=function(){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+e(this.getUTCMonth()+1)+"-"+e(this.getUTCDate())+"T"+e(this.getUTCHours())+":"+e(this.getUTCMinutes())+":"+e(this.getUTCSeconds())+"Z":null},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(){return this.valueOf()});var s,n,r,a=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,l={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"};"function"!=typeof JSON.stringify&&(JSON.stringify=function(t,e,o){var a;if(s="",n="","number"==typeof o)for(a=0;o>a;a+=1)n+=" ";else"string"==typeof o&&(n=o);if(r=e,e&&"function"!=typeof e&&("object"!=typeof e||"number"!=typeof e.length))throw new Error("JSON.stringify");return i("",{"":t})})}();var z,O=function(t,o){function i(e,o){var s=this;this.subdomain=e,this.config=U.extend({},i.default_config,o||{}),this.kombuchaId=a++,this.sessionCallbackName="__uvSessionData"+this.kombuchaId,t[this.sessionCallbackName]=function(t){s.sync(t)},this.tracks=[],this.identity=null,this.session=null,this.uvts=null,this.isReady=!1,this.needsIdentityFlush=!1,this.needsSessionFlush=!1,this.firedUvts=!1,this.firedSession=!1,this.syncedSession=!0,this.cookieable=null,this.initFromCookie(),t.__kombuchas.push(this)}function s(t){this.props={},!t===Object(t)&&(t={}),this.set(U.extend({},t,{o:(new Date).getTimezoneOffset()}))}function n(){this.store=new r,this.recurrent=this.store.get("r"),this.store.set("r",!0)}function r(){var e="x";this.storage=null;try{this.storage="sessionStorage"in t&&t.sessionStorage,this.set(e,e),this.get(e)!==e?this.storage=null:this.remove(e)}catch(o){this.storage=null}}var a=0;t.__kombuchas=t.__kombuchas||[],i.prototype.initFromCookie=function(){var t=U.getCookie(this.config.cookie_name);this.log("Kombucha#initFromCookie: %s",t),t&&this.setUvts(t)},i.prototype.identify=function(t,e){this.log("Kombucha#identify: %O",t);var e="undefined"!=typeof e?e:!1;try{this.identity?(e===!0&&(this.identity.props={}),this.identity.set(t)):this.identity=new s(t),this.needsIdentityFlush=!0,this.flush()}catch(o){console.log("not sending traits due to client identify error: ",o)}},i.prototype.getIdentity=function(t){return this.identity?this.identity.toJSON():void 0},i.prototype.syncSession=function(){this.syncedSession=!1,this.identify({})},i.prototype.updateSession=function(t){this.log("Kombucha#updateSession: %O",t),this.needsSessionFlush=U.extend({},this.needsSessionFlush||{},this.session.set(t)),this.flush()},i.prototype.getSession=function(t){return this.session.get(t)},i.prototype.dumpSession=function(){return this.session.toJSON()},i.prototype.sync=function(t){this.log("Kombucha#sync: %O",t),t===Object(t)&&(this.session.set(t),t.uvts&&this.setUvts(t.uvts),this.syncCreatedAt(),this.fireSession())},i.prototype.syncCreatedAt=function(){var t=this.identity&&this.identity.get("created_at");t&&(this.log("Kombucha#syncCreatedAt: %O",t),this.session.set({created_at:t}))},i.prototype.fireSession=function(){this.session.isEnabled()&&(this.firedSession?this.syncedSession||("function"==typeof this.config.onSync&&this.config.onSync(),this.syncedSession=!0):("function"==typeof this.config.onSession&&this.config.onSession(),this.firedSession=!0))},i.prototype.setUvts=function(t){this.uvts=t,U.setCookie(this.config.cookie_name,t,{domain:this.cookieDomain()}),this.firedUvts||("function"==typeof this.config.onUvts&&this.config.onUvts(t),this.firedUvts=!0)},i.prototype.setConfig=function(t){this.config=U.extend(this.config,t)},i.prototype.setChannel=function(t){this.setConfig({channel:t})},i.prototype.track=function(t,e,o){var i={evt:t,props:e};o&&(i.channel=o),this.tracks.push(i),this.flush()},i.prototype.trackExternalView=function(){this.log("Kombucha#trackExternalView: %s",this.config.channel),"external"===this.config.channel&&this.track("view_page",{u:e.location.toString(),r:e.referrer})},i.prototype.flush=function(){if(this.isReady&&this.config.enabled){var t=0,e=this.tracks.length;if(this.log("Kombucha#flush: %s",e),this.uvts||this.shouldTrack())for((0===e&&this.needsIdentityFlush||this.needsSessionFlush)&&this.sendTrack({evt:"identify"});e>t;t+=1)this.sendTrack(this.tracks.shift())}},i.prototype.sendTrack=function(t){var o,i={},s=!this.syncedSession||!this.session.recurrent&&!this.firedSession;o=this.config.v2&&"autoprompt"!==t.evt?[this.config.domain,"/t2/",this.subdomain,"/",this.normalizeV2Channel(t.channel||this.config.channel)]:[this.config.domain,"/t/",this.subdomain,"/",l[t.channel||this.config.channel]||"_","/",p[t.evt]||"_"],this.uvts&&(o.push("/"),o.push(this.uvts)),o.push("/track.js?_="+(new Date).getTime()),o.push("&s="+(s?"0":"1")),o=o.join(""),this.needsIdentityFlush&&(i.u=this.identity.toJSON(),this.needsIdentityFlush=!1),this.needsSessionFlush===Object(this.needsSessionFlush)&&(i.u=U.extend({},i.u||{},this.needsSessionFlush),this.needsSessionFlush=!1),t.props&&U.values(t.props).length>0&&(i.e=t.props),this.log("Kombucha#sendTrack: %s, %O",o,i),i=U.values(i).length>0?encodeURIComponent(U.base64Encode(JSON.stringify(i))):null;var n,r,a;a=["&c=",this.sessionCallbackName],i&&(a.push("&d="),a.push(i)),n=e.getElementsByTagName("script")[0],r=e.createElement("script"),r.type="application/javascript",r.async=!0,r.defer=!0,r.src=o+a.join(""),n.parentNode.insertBefore(r,n)},i.prototype.ready=function(){this.log("Kombucha#ready: %s",this.isReady),this.isReady||(this.isReady=!0,this.session=new n,this.flush(),this.afterReady())},i.prototype.afterReady=function(){},i.prototype.shouldTrack=function(){return!U.isSpider()&&this.haveCookies()},i.prototype.haveCookies=function(){return null===this.cookieable&&(U.setCookie("__uvt","1",{domain:this.cookieDomain()}),this.cookieable=!!U.getCookie("__uvt"),U.deleteCookie("__uvt",{domain:this.cookieDomain()})),this.log("Kombucha#haveCookies: %s",this.cookieable),this.cookieable},i.prototype.log=function(){this.config.logging_enabled&&U.log.apply(null,arguments)},i.prototype.cookieDomain=function(e){return e||t.location.hostname},i.prototype.normalizeV2Channel=function(t){switch(t=(t||"").toLowerCase()){case"web":case"omnibox":case"portal":case"ios_app":case"android_app":case"ios_sdk":case"adnroid_sdk":case"classic_widget":return t;case"smartvote_widget":case"instant_answers_widget":case"satisfaction_widget":return"omnibox";case"site2":return"portal";case"external":return"web";case"admin":return"web"}return"_"},s.prototype.set=function(t){var e,o;if(!t===Object(t)&&(t={}),t.account){e=t.account,delete t.account;for(o in e)e.hasOwnProperty(o)&&(t["account_"+o]=e[o])}for(o in t){var i=0===o.indexOf("cf_")||0===o.indexOf("account_cf_");if((s.keys.hasOwnProperty(o)||i)&&(this.props[o]=U.sanitizeValue(t[o],s.keys[o]),s.sizeLimits[o]&&!U.isValidSize(this.props[o],s.sizeLimits[o]))){var n=o+" value "+this.props[o]+" overflow type "+s.keys[o]+"("+s.sizeLimits[o]+")";throw new Error(n)}}return this.props},s.prototype.get=function(t){return this.props[t]},s.prototype.toJSON=function(){return this.props},s.keys={o:"int",name:"string",email:"string",id:"string",type:"string",created_at:"timestamp",account_name:"string",account_id:"string",account_monthly_rate:"float",account_ltv:"float",account_plan:"string",account_created_at:"timestamp"},s.sizeLimits={name:255,email:255,id:255,account_id:255,type:255,account_name:255,account_monthly_rate:"int32cents",account_ltv:"int32cents",account_plan:255},n.prototype.set=function(t){var e,o={};for(e in t)n.keys.hasOwnProperty(e)&&(o[e]=U.sanitizeValue(t[e],n.keys[e]));for(e in o)o.hasOwnProperty(e)&&this.store.set(e,o[e]);return o},n.prototype.get=function(t){return this.store.get(t)},n.prototype.toJSON=function(){var t,e={};for(var i in n.keys)n.keys.hasOwnProperty(i)&&(t=this.get(i),t!==o&&(e[i]=t));return e},n.prototype.isEnabled=function(){return this.store.isEnabled()},n.keys={created_at:"timestamp",active_days:"int",autoprompt_disabled:"boolean",smartvote:"boolean",satisfaction:"boolean",last_smartvote_autoprompt_at:"timestamp",last_satisfaction_autoprompt_at:"timestamp",last_sat_at:"timestamp",last_smartvote_at:"timestamp",dismissed_smartvote_at:"timestamp",dismissed_sat_at:"timestamp",autoprompted_satisfaction_at:"timestamp",autoprompted_smartvote_at:"timestamp"},r.prototype.isEnabled=function(){return!!this.storage},r.prototype.get=function(t){if(this.storage){var e,o=this.storage.getItem(this.makeKey(t));try{e=JSON.parse(o)}catch(i){}return e}},r.prototype.set=function(t,e){this.storage&&this.storage.setItem(this.makeKey(t),JSON.stringify(e))},r.prototype.remove=function(t){this.storage&&this.storage.removeItem(this.makeKey(t))},r.prototype.makeKey=function(t){return r.namespace+t},r.namespace="__uv_";var l={external:"x",classic_widget:"w",smartvote_widget:"e",instant_answers_widget:"o",satisfaction_widget:"t",site2:"s",admin:"a"},p={view_page:"p",view_forum:"m",view_topic:"c",view_kb:"k",view_channel:"o",view_idea:"i",view_article:"f",view_comparison:"a",authenticate:"u",search_ideas:"s",search_articles:"r",vote_idea:"v",vote_article:"z",submit_ticket:"t",submit_idea:"d",subscribe_idea:"b",rate_satisfaction:"e",identify:"y",comment_idea:"h",dismiss:"w",autoprompt:"x",pick_idea:"1",view_tweet_button:"2",clicked_tweet_button:"3",posted_tweet:"4"};return i.default_config={cookie_name:"uvts",domain:t.UserVoice.kombucha_domain,channel:"external",enabled:!0,logging_enabled:!1},i}(this),V=U.base64Encode,T=U.extend,E=(U.values,U.setCookie,U.getCookie,U.lpad,U.trim,U.log),F=".uv-icon{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;display:inline-block;cursor:pointer;position:relative;-moz-transition:all 300ms;-o-transition:all 300ms;-webkit-transition:all 300ms;transition:all 300ms;width:39px;height:39px;position:fixed;z-index:100002;opacity:0.8;-moz-transition:opacity 100ms;-o-transition:opacity 100ms;-webkit-transition:opacity 100ms;transition:opacity 100ms}.uv-icon.uv-bottom-right{bottom:10px;right:12px}.uv-icon.uv-top-right{top:10px;right:12px}.uv-icon.uv-bottom-left{bottom:10px;left:12px}.uv-icon.uv-top-left{top:10px;left:12px}.uv-icon.uv-is-selected{opacity:1}.uv-icon svg{width:39px;height:39px}.uv-icon-trigger{display:block;width:39px;height:39px}.uv-popover{font-family:sans-serif;font-weight:100;font-size:13px;color:black;position:fixed;z-index:100001}.uv-popover-content{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:white;border:1px solid transparent;position:relative;width:325px;height:325px;-moz-transition:background 200ms;-o-transition:background 200ms;-webkit-transition:background 200ms;transition:background 200ms}.uv-bottom .uv-popover-content{-moz-box-shadow:rgba(0,0,0,0.3) 0 -10px 60px,rgba(0,0,0,0.1) 0 0 20px;-webkit-box-shadow:rgba(0,0,0,0.3) 0 -10px 60px,rgba(0,0,0,0.1) 0 0 20px;box-shadow:rgba(0,0,0,0.3) 0 -10px 60px,rgba(0,0,0,0.1) 0 0 20px}.uv-top .uv-popover-content{-moz-box-shadow:rgba(0,0,0,0.3) 0 10px 60px,rgba(0,0,0,0.1) 0 0 20px;-webkit-box-shadow:rgba(0,0,0,0.3) 0 10px 60px,rgba(0,0,0,0.1) 0 0 20px;box-shadow:rgba(0,0,0,0.3) 0 10px 60px,rgba(0,0,0,0.1) 0 0 20px}.uv-left .uv-popover-content{-moz-box-shadow:rgba(0,0,0,0.3) 10px 0 60px,rgba(0,0,0,0.1) 0 0 20px;-webkit-box-shadow:rgba(0,0,0,0.3) 10px 0 60px,rgba(0,0,0,0.1) 0 0 20px;box-shadow:rgba(0,0,0,0.3) 10px 0 60px,rgba(0,0,0,0.1) 0 0 20px}.uv-right .uv-popover-content{-moz-box-shadow:rgba(0,0,0,0.3) -10px 0 60px,rgba(0,0,0,0.1) 0 0 20px;-webkit-box-shadow:rgba(0,0,0,0.3) -10px 0 60px,rgba(0,0,0,0.1) 0 0 20px;box-shadow:rgba(0,0,0,0.3) -10px 0 60px,rgba(0,0,0,0.1) 0 0 20px}.uv-ie8 .uv-popover-content{position:relative}.uv-ie8 .uv-popover-content .uv-popover-content-shadow{display:block;background:black;content:'';position:absolute;left:-15px;top:-15px;width:100%;height:100%;filter:progid:DXImageTransform.Microsoft.Blur(PixelRadius=15,MakeShadow=true,ShadowOpacity=0.30);z-index:-1}.uv-popover-tail{border:9px solid transparent;width:0;z-index:10;position:absolute;-moz-transition:border-top-color 200ms;-o-transition:border-top-color 200ms;-webkit-transition:border-top-color 200ms;transition:border-top-color 200ms}.uv-top .uv-popover-tail{bottom:-20px;border-top:11px solid white}.uv-bottom .uv-popover-tail{top:-20px;border-bottom:11px solid white}.uv-left .uv-popover-tail{right:-20px;border-left:11px solid white}.uv-right .uv-popover-tail{left:-20px;border-right:11px solid white}.uv-popover-loading{background:white;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;position:absolute;width:100%;height:100%;left:0;top:0}.uv-popover-loading-text{position:absolute;top:50%;margin-top:-0.5em;width:100%;text-align:center}.uv-popover-iframe-container{height:100%}.uv-popover-iframe{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;overflow:hidden}.uv-is-hidden{display:none}.uv-is-invisible{display:block !important;visibility:hidden !important}.uv-is-transitioning{display:block !important}.uv-no-transition{-moz-transition:none !important;-webkit-transition:none !important;-o-transition:color 0 ease-in !important;transition:none !important}.uv-fade{opacity:1;-moz-transition:opacity 200ms ease-out;-o-transition:opacity 200ms ease-out;-webkit-transition:opacity 200ms ease-out;transition:opacity 200ms ease-out}.uv-fade.uv-is-hidden{opacity:0}.uv-scale-top,.uv-scale-top-left,.uv-scale-top-right,.uv-scale-bottom,.uv-scale-bottom-left,.uv-scale-bottom-right,.uv-scale-right,.uv-scale-right-top,.uv-scale-right-bottom,.uv-scale-left,.uv-scale-left-top,.uv-scale-left-bottom,.uv-slide-top,.uv-slide-bottom,.uv-slide-left,.uv-slide-right{opacity:1;-moz-transition:all 80ms ease-out;-o-transition:all 80ms ease-out;-webkit-transition:all 80ms ease-out;transition:all 80ms ease-out}.uv-scale-top.uv-is-hidden{opacity:0;-moz-transform:scale(0.8) translateY(-15%);-ms-transform:scale(0.8) translateY(-15%);-webkit-transform:scale(0.8) translateY(-15%);transform:scale(0.8) translateY(-15%)}.uv-scale-top-left.uv-is-hidden{opacity:0;-moz-transform:scale(0.8) translateY(-15%) translateX(-10%);-ms-transform:scale(0.8) translateY(-15%) translateX(-10%);-webkit-transform:scale(0.8) translateY(-15%) translateX(-10%);transform:scale(0.8) translateY(-15%) translateX(-10%)}.uv-scale-top-right.uv-is-hidden{opacity:0;-moz-transform:scale(0.8) translateY(-15%) translateX(10%);-ms-transform:scale(0.8) translateY(-15%) translateX(10%);-webkit-transform:scale(0.8) translateY(-15%) translateX(10%);transform:scale(0.8) translateY(-15%) translateX(10%)}.uv-scale-bottom.uv-is-hidden{opacity:0;-moz-transform:scale(0.8) translateY(15%);-ms-transform:scale(0.8) translateY(15%);-webkit-transform:scale(0.8) translateY(15%);transform:scale(0.8) translateY(15%)}.uv-scale-bottom-left.uv-is-hidden{opacity:0;-moz-transform:scale(0.8) translateY(15%) translateX(-10%);-ms-transform:scale(0.8) translateY(15%) translateX(-10%);-webkit-transform:scale(0.8) translateY(15%) translateX(-10%);transform:scale(0.8) translateY(15%) translateX(-10%)}.uv-scale-bottom-right.uv-is-hidden{opacity:0;-moz-transform:scale(0.8) translateY(15%) translateX(10%);-ms-transform:scale(0.8) translateY(15%) translateX(10%);-webkit-transform:scale(0.8) translateY(15%) translateX(10%);transform:scale(0.8) translateY(15%) translateX(10%)}.uv-scale-right.uv-is-hidden{opacity:0;-moz-transform:scale(0.8) translateX(15%);-ms-transform:scale(0.8) translateX(15%);-webkit-transform:scale(0.8) translateX(15%);transform:scale(0.8) translateX(15%)}.uv-scale-right-top.uv-is-hidden{opacity:0;-moz-transform:scale(0.8) translateX(15%) translateY(-10%);-ms-transform:scale(0.8) translateX(15%) translateY(-10%);-webkit-transform:scale(0.8) translateX(15%) translateY(-10%);transform:scale(0.8) translateX(15%) translateY(-10%)}.uv-scale-right-bottom.uv-is-hidden{opacity:0;-moz-transform:scale(0.8) translateX(15%) translateY(10%);-ms-transform:scale(0.8) translateX(15%) translateY(10%);-webkit-transform:scale(0.8) translateX(15%) translateY(10%);transform:scale(0.8) translateX(15%) translateY(10%)}.uv-scale-left.uv-is-hidden{opacity:0;-moz-transform:scale(0.8) translateX(-15%);-ms-transform:scale(0.8) translateX(-15%);-webkit-transform:scale(0.8) translateX(-15%);transform:scale(0.8) translateX(-15%)}.uv-scale-left-top.uv-is-hidden{opacity:0;-moz-transform:scale(0.8) translateX(-15%) translateY(-10%);-ms-transform:scale(0.8) translateX(-15%) translateY(-10%);-webkit-transform:scale(0.8) translateX(-15%) translateY(-10%);transform:scale(0.8) translateX(-15%) translateY(-10%)}.uv-scale-left-bottom.uv-is-hidden{opacity:0;-moz-transform:scale(0.8) translateX(-15%) translateY(10%);-ms-transform:scale(0.8) translateX(-15%) translateY(10%);-webkit-transform:scale(0.8) translateX(-15%) translateY(10%);transform:scale(0.8) translateX(-15%) translateY(10%)}.uv-slide-top.uv-is-hidden{-moz-transform:translateY(-100%);-ms-transform:translateY(-100%);-webkit-transform:translateY(-100%);transform:translateY(-100%)}.uv-slide-bottom.uv-is-hidden{-moz-transform:translateY(100%);-ms-transform:translateY(100%);-webkit-transform:translateY(100%);transform:translateY(100%)}.uv-slide-left.uv-is-hidden{-moz-transform:translateX(-100%);-ms-transform:translateX(-100%);-webkit-transform:translateX(-100%);transform:translateX(-100%)}.uv-slide-right.uv-is-hidden{-moz-transform:translateX(100%);-ms-transform:translateX(100%);-webkit-transform:translateX(100%);transform:translateX(100%)}\n",N=function(){function e(t){this.events=t,this.timer=null,this.last_hash=null}return e.prototype.listen=function(){var e=this;return"postMessage"in t&&("addEventListener"in t?t.addEventListener("message",function(t){e.dispatchEvent.apply(e,[t])},!1):t.attachEvent("onmessage",function(t){e.dispatchEvent.apply(e,[t])})),this},e.prototype.dispatchEvent=function(t){var e=t.data;try{e=JSON.parse(e)}catch(o){}if(e===Object(e))for(var i in e)e.hasOwnProperty(i)&&this.events.hasOwnProperty(i)&&this.events[i](e[i],t.source,t.origin);else this.events.hasOwnProperty(e)&&this.events[e]()},e.getHash=function(){var e=t.location.href.match(/#(.*)$/);return e?e[1]:""},e}(),I={};I.match=function(t){return t.test(navigator.userAgent)},I.match(/IEMobile/i)?I.ieMobile=!0:I.match(/msie (\d+\.\d+);/i)?(I.ie=!0,I.version=parseInt(RegExp.$1,10),I["ie"+I.version]=!0,I.ieCompatibility=7===I.version&&I.match(/Trident/i),I.ieQuirks=e.compatMode&&"BackCompat"===e.compatMode):I.match(/Trident.*rv:(\d+)/i)&&(I.ie=!0,I.version=parseInt(RegExp.$1,10),I["ie"+I.version]=!0),I.touch="ontouchstart"in t,I.mobile=I.match(/Android.*Mobile|iPhone|IEMobile/i),I.tablet=!I.mobile&&I.match(/Android|iOS/i),I.iOS="ontouchstart"in t&&I.match(/like Mac OS X/i);var A,j=function(t){return UserVoice.account.messages[t]},L=function(){var o=function(){var t,o,i;if(1===arguments.length?(t=e,o="div",i=arguments[0]):2===arguments.length?(t=arguments[0],o="div",i=arguments[1]):(t=arguments[0],o=arguments[1],i=arguments[2]),t.querySelector)return t.querySelector(o+"."+i);for(var s=t.getElementsByTagName(o),n=new RegExp("\b"+i+"\b","gmi"),r=0;r2?e[n][i]=s:e[n][i]}var e={};return t}(),o.addClass=function(t,e){new RegExp("(^|\\s+)"+e+"(\\s+|$)").test(t.className)||(t.className+=(t.className?" ":"")+e)},o.removeClass=function(t,e){t.className=t.className.replace(new RegExp("(?:^|\\s+)"+e+"(?:\\s+|$)","g")," ")},o.hasClass=function(t,e){return t.className.indexOf(e)>-1},o.dimensions=function(t){var e=t.display;if("none"!==e&&null!==e)return{width:t.offsetWidth,height:t.offsetHeight};var o=t.style,i=o.visibility,s=o.position,n=o.display;o.visibility="hidden",o.position="absolute",o.display="block";var r=t.clientWidth,a=t.clientHeight;return o.display=n,o.position=s,o.visibility=i,{width:r,height:a}},o.offset=function(t){for(var e=t,o={top:0,left:0};e;)o.top+=e.offsetTop,o.left+=e.offsetLeft,e=e.offsetParent;return o},o.on=function(e,o,i){"addEventListener"in e?e.addEventListener(o,i,!1):e.attachEvent("on"+o,function(){return i.call(e,t.event)})},o.off=function(t,e,o){"removeEventListener"in t?t.removeEventListener(e,o,!1):t.detachEvent(e,o)},o.one=function(t,e,i){var s=function(){i(arguments),o.off(t,e,s)};o.on(t,e,s)},o.ready=function(o){if(e.addEventListener)"complete"===e.readyState?o():(e.addEventListener("DOMContentLoaded",o,!1),t.addEventListener("load",o,!1));else if(e.attachEvent){e.attachEvent("onreadystatechange",o),t.attachEvent("onload",o);var i=!1;try{i=null===t.frameElement}catch(s){}e.documentElement.doScroll&&i}},o.element=function(t){return t.nodeName?t:e.getElementById(t.substr(1))},o.getComputedStyle=function(e){var o=t.getComputedStyle(e);return o?o:{}},o}(),Y=!1,M=!1,X=!1,W=["https:"===e.location.protocol?"https://":"http://","widget.uservoice.com"].join(""),D={"tab-light-bottom-right":"background:red url(#{bgImage}) 0 50% no-repeat;border:1px solid red;border-bottom:none;-moz-border-radius:4px 4px 0 0;-webkit-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;-moz-box-shadow:inset rgba(255,255,255,.9) 1px 1px 1px, rgba(0,0,0,.5) 0 1px 2px;-webkit-box-shadow:inset rgba(255,255,255,.9) 1px 1px 1px, rgba(0,0,0,.5) 0 1px 2px;box-shadow:inset rgba(255,255,255,.9) 1px 1px 1px, rgba(0,0,0,.5) 0 1px 2px;font:normal normal bold 14px/1em Arial, sans-serif;position:fixed;right:10px;bottom:0;z-index:9999;background-color:##{color};border-color:##{color};","tab-dark-bottom-right":"background:red url(#{bgImage}) 0 50% no-repeat;border:1px solid #FFF;border-bottom:none;-moz-border-radius:4px 4px 0 0;-webkit-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;-moz-box-shadow:inset rgba(255,255,255,.25) 1px 1px 1px, rgba(0,0,0,.5) 0 1px 2px;-webkit-box-shadow:inset rgba(255,255,255,.25) 1px 1px 1px, rgba(0,0,0,.5) 0 1px 2px;box-shadow:inset rgba(255,255,255,.25) 1px 1px 1px, rgba(0,0,0,.5) 0 1px 2px;font:normal normal bold 14px/1em Arial, sans-serif;position:fixed;right:10px;bottom:0;z-index:9999;background-color:##{color};","tab-light-top-right":"background:red url(#{bgImage}) 0 50% no-repeat;border:1px solid red;border-top:none;-moz-border-radius:0 0 4px 4px;-webkit-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;-moz-box-shadow:inset rgba(255,255,255,.9) 1px 1px 1px, rgba(0,0,0,.5) 0 1px 2px;-webkit-box-shadow:inset rgba(255,255,255,.9) 1px 1px 1px, rgba(0,0,0,.5) 0 1px 2px;box-shadow:inset rgba(255,255,255,.9) 1px 1px 1px, rgba(0,0,0,.5) 0 1px 2px;font:normal normal bold 14px/1em Arial, sans-serif;position:fixed;right:10px;top:0;z-index:9999;background-color:##{color};border-color:##{color};","tab-dark-top-right":"background:red url(#{bgImage}) 0 50% no-repeat;border:1px solid #FFF;border-top:none;-moz-border-radius:0 0 4px 4px;-webkit-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;-moz-box-shadow:inset rgba(255,255,255,.25) 1px 1px 1px, rgba(0,0,0,.5) 0 1px 2px;-webkit-box-shadow:inset rgba(255,255,255,.25) 1px 1px 1px, rgba(0,0,0,.5) 0 1px 2px;box-shadow:inset rgba(255,255,255,.25) 1px 1px 1px, rgba(0,0,0,.5) 0 1px 2px;font:normal normal bold 14px/1em Arial, sans-serif;position:fixed;right:10px;top:0;z-index:9999;background-color:##{color};","tab-light-bottom-left":"background:red url(#{bgImage}) 0 50% no-repeat;border:1px solid red;border-bottom:none;-moz-border-radius:4px 4px 0 0;-webkit-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;-moz-box-shadow:inset rgba(255,255,255,.9) 1px 1px 1px, rgba(0,0,0,.5) 0 1px 2px;-webkit-box-shadow:inset rgba(255,255,255,.9) 1px 1px 1px, rgba(0,0,0,.5) 0 1px 2px;box-shadow:inset rgba(255,255,255,.9) 1px 1px 1px, rgba(0,0,0,.5) 0 1px 2px;font:normal normal bold 14px/1em Arial, sans-serif;position:fixed;left:10px;bottom:0;z-index:9999;background-color:##{color};border-color:##{color};","tab-dark-bottom-left":"background:red url(#{bgImage}) 0 50% no-repeat;border:1px solid #FFF;border-bottom:none;-moz-border-radius:4px 4px 0 0;-webkit-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;-moz-box-shadow:inset rgba(255,255,255,.25) 1px 1px 1px, rgba(0,0,0,.5) 0 1px 2px;-webkit-box-shadow:inset rgba(255,255,255,.25) 1px 1px 1px, rgba(0,0,0,.5) 0 1px 2px;box-shadow:inset rgba(255,255,255,.25) 1px 1px 1px, rgba(0,0,0,.5) 0 1px 2px;font:normal normal bold 14px/1em Arial, sans-serif;position:fixed;left:10px;bottom:0;z-index:9999;background-color:##{color};","tab-light-top-left":"background:red url(#{bgImage}) 0 50% no-repeat;border:1px solid red;border-top:none;-moz-border-radius:0 0 4px 4px;-webkit-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;-moz-box-shadow:inset rgba(255,255,255,.9) 1px 1px 1px, rgba(0,0,0,.5) 0 1px 2px;-webkit-box-shadow:inset rgba(255,255,255,.9) 1px 1px 1px, rgba(0,0,0,.5) 0 1px 2px;box-shadow:inset rgba(255,255,255,.9) 1px 1px 1px, rgba(0,0,0,.5) 0 1px 2px;font:normal normal bold 14px/1em Arial, sans-serif;position:fixed;left:10px;top:0;z-index:9999;background-color:##{color};border-color:##{color};","tab-dark-top-left":"background:red url(#{bgImage}) 0 50% no-repeat;border:1px solid #FFF;border-top:none;-moz-border-radius:0 0 4px 4px;-webkit-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;-moz-box-shadow:inset rgba(255,255,255,.25) 1px 1px 1px, rgba(0,0,0,.5) 0 1px 2px;-webkit-box-shadow:inset rgba(255,255,255,.25) 1px 1px 1px, rgba(0,0,0,.5) 0 1px 2px;box-shadow:inset rgba(255,255,255,.25) 1px 1px 1px, rgba(0,0,0,.5) 0 1px 2px;font:normal normal bold 14px/1em Arial, sans-serif;position:fixed;left:10px;top:0;z-index:9999;background-color:##{color};", +"tab-light-middle-left":"background:red url(#{bgImage}) 50% 0 no-repeat;border:1px solid red;border-left:none;-moz-border-radius:0 4px 4px 0;-webkit-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;-moz-box-shadow:inset rgba(255,255,255,.9) 1px 1px 1px, rgba(0,0,0,.5) 0 1px 2px;-webkit-box-shadow:inset rgba(255,255,255,.9) 1px 1px 1px, rgba(0,0,0,.5) 0 1px 2px;box-shadow:inset rgba(255,255,255,.9) 1px 1px 1px, rgba(0,0,0,.5) 0 1px 2px;font:normal normal bold 14px/1em Arial, sans-serif;position:fixed;left:0;top:50%;z-index:9999;background-color:##{color};border-color:##{color};","tab-dark-middle-left":"background:red url(#{bgImage}) 50% 0 no-repeat;border:1px solid #FFF;border-left:none;-moz-border-radius:0 4px 4px 0;-webkit-border-radius:0 4px 4px 0;border-radius:0 4px 4px 0;-moz-box-shadow:inset rgba(255,255,255,.25) 1px 1px 1px, rgba(0,0,0,.5) 0 1px 2px;-webkit-box-shadow:inset rgba(255,255,255,.25) 1px 1px 1px, rgba(0,0,0,.5) 0 1px 2px;box-shadow:inset rgba(255,255,255,.25) 1px 1px 1px, rgba(0,0,0,.5) 0 1px 2px;font:normal normal bold 14px/1em Arial, sans-serif;position:fixed;left:0;top:50%;z-index:9999;background-color:##{color};","tab-light-middle-right":"background:red url(#{bgImage}) 50% 0 no-repeat;border:1px solid red;border-right:none;-moz-border-radius:4px 0 0 4px;-webkit-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;-moz-box-shadow:inset rgba(255,255,255,.9) 1px 1px 1px, rgba(0,0,0,.5) 0 1px 2px;-webkit-box-shadow:inset rgba(255,255,255,.9) 1px 1px 1px, rgba(0,0,0,.5) 0 1px 2px;box-shadow:inset rgba(255,255,255,.9) 1px 1px 1px, rgba(0,0,0,.5) 0 1px 2px;font:normal normal bold 14px/1em Arial, sans-serif;position:fixed;right:0;top:50%;z-index:9999;background-color:##{color};border-color:##{color};","tab-dark-middle-right":"background:red url(#{bgImage}) 50% 0 no-repeat;border:1px solid #FFF;border-right:none;-moz-border-radius:4px 0 0 4px;-webkit-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;-moz-box-shadow:inset rgba(255,255,255,.25) 1px 1px 1px, rgba(0,0,0,.5) 0 1px 2px;-webkit-box-shadow:inset rgba(255,255,255,.25) 1px 1px 1px, rgba(0,0,0,.5) 0 1px 2px;box-shadow:inset rgba(255,255,255,.25) 1px 1px 1px, rgba(0,0,0,.5) 0 1px 2px;font:normal normal bold 14px/1em Arial, sans-serif;position:fixed;right:0;top:50%;z-index:9999;background-color:##{color};","link-vertical":"display:block;padding:39px 5px 10px 5px;text-decoration:none;","link-horizontal":"display:block;padding:6px 10px 2px 42px;text-decoration:none;","link-vertical-no-bullhorn":"display:block;padding:10px 5px 10px 5px;text-decoration:none;","link-horizontal-no-bullhorn":"display:block;padding:6px 10px 2px 10px;text-decoration:none;"},P=" html.uvw-dialog-open object, html.uvw-dialog-open iframe, html.uvw-dialog-open embed { visibility: hidden; } html.uvw-dialog-open iframe.uvw-dialog-iframe { visibility: visible; } ",R=function(){function t(t){this.template='
#{tab_label}
',this.widgets=[],this.options=t,this.processOptions()}return t.prototype.push=function(t){this.widget=t,this.widgets.push(t)},t.prototype.pop=function(){1!==this.widgets.length&&(this.widgets.pop(),this.widget=this.widgets[this.widgets.length-1])},t.prototype.render=function(){this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el);var t=new Image,e=this;L.on(t,"load",function(){e.createElement(),e.show(),G.pendingAutoprompt&&(G.pendingAutoprompt=!1,G.autoprompt())}),t.src=this.options.imgSrc,b()},t.prototype.createElement=function(){var t=this.el=h(d(this.template,this.options)),e=this.btnEl=t.getElementsByTagName("a")[0],o=this;L.addClass(t,"uv-tab uv-slide-"+this.edge),t.setAttribute("aria-label","Open Feedback Widget"),this.dimensions=L.dimensions(t),this.hide(!1),this.rotation&&(t.style.marginTop=["-",Math.round(this.dimensions.height/2),"px"].join("")),L.on(e,"click",function(t){return t.preventDefault&&t.preventDefault(),o.visibleWidget?o.visibleWidget.hide():o.widget.show(),!1}),this.onCreateElement&&this.onCreateElement(this)},t.prototype.remove=function(){this.el&&(this.widget.hide(),this.hide())},t.prototype.hide=function(t){t=t===o?!0:t,t&&r(this.el),L.addClass(this.el,"uv-is-hidden"),this.el.offsetWidth},t.prototype.show=function(){r(this.el),L.removeClass(this.el,"uv-is-hidden"),this.el.offsetWidth},t.prototype.processOptions=function(){var t={trigger_position:"right",trigger_background_color:"CC6D00",tab_label:"feedback",tab_inverted:!1},e=T({},t,this.options);e.trigger_position.match(/^((top|bottom|middle)-(left|right)|left|right)$/)||(e.trigger_position=t.trigger_position),e.trigger_position.match(/^(right|left)$/)&&(e.trigger_position="middle-"+e.trigger_position),"string"==typeof e.trigger_background_color&&e.trigger_background_color.match(/^#/)&&(e.trigger_background_color=e.trigger_background_color.substring(1));var o=/([^\-]+)-([^\-]+)/.exec(e.trigger_position),i=o[1],s=o[2],n="middle"===o[1]?90:0,r=["tab-",e.inverted?"light-":"dark-",e.trigger_position].join(""),a=[n?"link-vertical":"link-horizontal","-no-bullhorn"].join(""),l=[W,"/dcache","/widget/feedback-tab.png?t=",encodeURIComponent(e.tab_label),"&c=",e.tab_inverted?encodeURIComponent(e.trigger_background_color):"ffffff","&r=",encodeURIComponent(n),e.tab_inverted?"&i=yes":""].join(""),p=e.trigger_position.replace(/middle-/,"").replace(/(bottom|top)-(right|left)/,"horizontal");p=["tab-",p,e.tab_inverted?"-light":"-dark","-no-bullhorn"].join(""),p=[W,UserVoice.manifest[p]].join(""),e.bgImage=p,e.imgSrc=l,e.tab_label=u(e.tab_label),r=D[r],a=D[a],(I.ie6||I.ieQuirks)&&(r+="position:absolute !important;","top"===i?r+="top: expression(((document.documentElement.scrollTop || document.body.scrollTop) + (!this.offsetHeight && 0)) + 'px');":"middle"===i?r+="top: expression(((document.documentElement.scrollTop || document.body.scrollTop) + ((((document.documentElement.clientHeight || document.body.clientHeight) + (!this.offsetHeight && 0)) / 2) >> 0)) + 'px');":"bottom"===i&&(r+="top: expression(((document.documentElement.scrollTop || document.body.scrollTop) + (document.documentElement.clientHeight || document.body.clientHeight) - this.offsetHeight) + 'px');")),e.tabStyle=d(r,{color:e.trigger_background_color,bgImage:e.bgImage}),e.linkStyle=a,"top"===i?this.edge="top":"bottom"===i?this.edge="bottom":"left"===s?this.edge="left":"right"===s&&(this.edge="right"),this.rotation=n,this.options=e},t}(),B=function(){function i(){}return i.template='
',i.prototype.show=function(t){t=t===o?!0:t,G.hideActive(),G.active=this,this.el||this.render(),this.trigger&&(this.trigger.visibleWidget=this),this.trigger&&this.trigger.popoverWillShow&&this.trigger.popoverWillShow(),t?this.animateIn():L.removeClass(this.el,"uv-is-hidden"),this.iframe.poke({show:!0}),this.iframe.poke({focus:null})},i.prototype.hide=function(t){if(t=t===o?!0:t,G.active=null,this.el||this.render(),this.trigger&&(this.trigger.visibleWidget=null),this.trigger&&this.trigger.popoverWillHide&&this.trigger.popoverWillHide(),t?this.animateOut():L.addClass(this.el,"uv-is-hidden"),this.temp){var e=this.el;setTimeout(function(){e.parentNode.removeChild(e)},500)}},i.prototype.toggle=function(t){this.el||this.render(),this.visible()?this.hide(t):this.show(t)},i.prototype.animateIn=function(){this.position(),r(this.el),L.removeClass(this.el,"uv-is-hidden"),this.el.offsetWidth,this.createIframe()},i.prototype.animateOut=function(){r(this.el),L.addClass(this.el,"uv-is-hidden")},i.prototype.visible=function(){return!L.hasClass(this.el,"uv-is-hidden")},i.prototype.paneOpened=function(t,e){e.needsReload&&(this.needsReload=!0)},i.prototype.position=function(){var t=this.visible();L.addClass(this.el,"uv-no-transition"),t||(L.addClass(this.el,"uv-is-invisible"),this.el.style.left="-1000px"),L.removeClass(this.el,"uv-scale-\\S+"),this.el.offsetWidth,this.calculatePosition(),this.el.offsetWidth,t||L.removeClass(this.el,"uv-is-invisible"),L.removeClass(this.el,"uv-no-transition"),this.el.offsetWidth},i.prototype.createIframe=function(){var e=L(this.el,"uv-popover-iframe-container"),o=L(this.el,"uv-popover-loading"),i=this;(!this.iframe||this.needsReload)&&(this.iframe&&(e.removeChild(this.iframe.el),this.needsReload=!1),this.iframe=new q("popover",this.options.widgetType,T({height:"100%"},UserVoice.globalOptions,this.options)),this.iframe.render(),L.addClass(this.iframe.el,"uv-popover-iframe"),e.appendChild(this.iframe.el),I.ie8&&L.addClass(this.el,"uv-ie8"),L.on(t,"resize",function(){i.visible()&&i.calculatePosition()}),o&&o.parentNode&&(this.iframe.loaded||I.ie&&I.version<10?o.parentNode.removeChild(o):L.one(this.iframe.el,"load",function(t){o.parentNode.removeChild(o)})))},i.prototype.createElement=function(t){var o=this.el=e.createElement("div");o.innerHTML=this.template,o.setAttribute("data-html2canvas-ignore","true"),o.setAttribute("aria-label","Feedback Widget"),this.options.width&&!I.mobile&&(L(o,"uv-popover-content").style.width=this.options.width),this.options.height&&!I.mobile&&(L(o,"uv-popover-content").style.height=this.options.height),L.addClass(this.el,"uv-popover uv-is-hidden"),t.appendChild(o)},i}(),J=function(){function o(t){this.template=B.template,this.options=t,b()}return o.prototype=T({},B.prototype),o.prototype.render=function(){this.createElement(e.body)},o.prototype.show=function(){var e,o,i;I.mobile&&p(),B.prototype.show.apply(this,arguments),I.match(/iPhone OS 7/)&&(e=this,(i=function(){e.visible()&&(o!==y().height?(t.scrollBy(0),o=y().height,setTimeout(i,80)):setTimeout(i,800))})())},o.prototype.hide=function(){B.prototype.hide.apply(this,arguments),I.mobile&&(c(),this.needsReload=!0)},o.prototype.calculatePosition=function(){var e=this.options.position.match(/^(top|bottom)-(left|right)$/)?this.options.position:"bottom-right",o=/(\w+)-(\w+)/.exec(e);if(this.el.style.zIndex=100003,I.mobile){var i=L(this.el,"uv-popover-content"),s=t.innerWidth,n=325,r=10,a=s/(n+2*r),l=Math.round(a*r);i.style.width="100%",i.style.height="100%",this.el.style.position="fixed",this.el.style.top=l+"px",this.el.style.left=l+"px",this.el.style.bottom=l+"px",this.el.style.right=l+"px"}else{var r=20;this.el.style.left="",this.el.style[o[1]]=r+"px",this.el.style[o[2]]=r+"px"}L.addClass(this.el,"uv-"+("bottom"===o[1]?"top":"bottom")),L.addClass(this.el,"uv-scale-"+e)},o}(),H=function(){function t(t,e){this.template=B.template+'
',this.options=t,this.trigger=e,b()}return t.prototype=T({},B.prototype),t.prototype.render=function(){this.target="self"===this.options.target?this.trigger.el:L.element(this.options.target),G.systemTrigger&&this.target===G.systemTrigger.el?(this.container=this.target,this.isContained=!0):this.container=e.body,this.createElement(this.container)},t.prototype.paneOpened=function(t,e){B.prototype.paneOpened.apply(this,arguments),this.setTailColor(e.backgroundColor)},t.prototype.defaultPosition=function(){var t=this.target,o=L.offset(t),i=L.dimensions(t),s=t.currentStyle?t.currentStyle.position:L.getComputedStyle(t,null).position,n=100;return"fixed"!==s&&(o.top-=e.body.scrollTop,o.left-=e.body.scrollLeft),o.topy().height?"top":o.lefty().width?"left":o.top>o.top+i.height-y().height?"bottom":"top"},t.prototype.calculatePosition=function(){var t=L(this.el,"uv-popover-tail"),e=this.target,o="automatic"===this.options.position?this.defaultPosition():this.options.position,i="top"===o?"bottom":"right"===o?"left":"left"===o?"right":"top",s="top"===o||"bottom"===o?"left":"top",r="left"===s?"width":"height",a="left"===s?"top":"left",l="width"===r?"height":"width",p=L.dimensions(this.el),c=L.dimensions(e),d=L.offset(e),h=n(d[s]+c[r]/2,p[r],0,y()[r],10),u=n(d[s]-h+c[r]/2,L.dimensions(t)[r],0,p[r],15),g=1*(u-L.dimensions(t)[r]/2)/p[r],m=1/3>=g?"left"===s?"-left":"-top":2/3>=g?"":"left"===s?"-right":"-bottom",f=e.currentStyle?e.currentStyle.position:L.getComputedStyle(e,null).position;this.currentPosition=o,this.el.style.position="fixed"!==f||this.isContained?"absolute":"fixed",this.el.style[s]=h-(this.isContained?d[s]:0)+"px",t.style[s]=u+"px",L.removeClass(this.el,"uv-(bottom|top|left|right)"),L.addClass(this.el,"uv-"+o),L.addClass(this.el,"uv-scale-"+i+m),"top"===o||"left"===o?this.el.style[a]=(this.isContained?0:d[a])-p[l]-14+"px":("bottom"===o||"right"===o)&&(this.el.style[a]=(this.isContained?0:d[a])+c[l]+14+"px")},t.prototype.setTailColor=function(t){"transparent"!==t&&("#ffffff"===t||"rgb(255, 255, 255)"===t||"white"===t||""===t?L.removeClass(this.el,"uv-reversed"):L.addClass(this.el,"uv-reversed"),L(this.el,"uv-popover-content").style.backgroundColor=t,L(this.el,"uv-popover-tail").style["border"+this.currentPosition[0].toUpperCase()+this.currentPosition.slice(1)+"Color"]=t)},t}(),K=function(){function t(t){var e={trigger_background_color:"rgba(46, 49, 51, 0.6)",trigger_position:"bottom-right"};this.options=T({},e,t),this.options.trigger_position.match(/^(bottom|top)-(left|right)$/)||(this.options.trigger_position=e.trigger_position),this.widgets=[],I.touch||v(),b()}return t.icon_images={contact:'\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n',feedback:'\n\n \n\n\n \n \n \n\n\n',simple_feedback:'\n\n \n\n\n \n \n \n\n\n',post_suggestion:'\n\n \n\n\n \n \n \n\n\n',smartvote:'\n\n \n\n\n \n \n \n\n\n',satisfaction:'\r\n\r\n \r\n\r\n\r\n \r\n \r\n \r\n\r\n\r\n'},t.prototype.remove=function(){this.widget.hide();try{e.body.removeChild(this.el)}catch(t){}},t.prototype.push=function(t){this.widget=t,this.widgets.push(t)},t.prototype.pop=function(){1!==this.widgets.length&&(this.widgets.pop(),this.widget=this.widgets[this.widgets.length-1])},t.prototype.render=function(){var e=this,o="classic_widget"===this.widget.options.mode?"contact":this.widget.options.mode;this.el||this.createElement(),this.btnEl.innerHTML=t.icon_images[o],I.ie8||(this.options.trigger_color&&(L(this.el,"path","uv-bubble-foreground").style.fill=this.options.trigger_color),this.options.trigger_background_color&&(L(this.el,"path","uv-bubble-background").style.fill=this.options.trigger_background_color)),L.on(this.el,"click",function(){e.visibleWidget?e.visibleWidget.hide():e.widget.show()})},t.prototype.createElement=function(){var t=this,o=this.el=e.createElement("div"),i=this.btnEl=e.createElement("a");i.className="uv-icon-trigger",i.href="javascript:void(0);",i.setAttribute("aria-label","Open Feedback Widget"),i.addEventListener("keydown",function(e){13===e.keyCode&&(e.preventDefault(),t.visibleWidget?t.visibleWidget.hide():t.widget.show())}),o.appendChild(i),o.setAttribute("data-html2canvas-ignore","true"),L.addClass(this.el,"uv-icon uv-"+this.options.trigger_position),I.ie8&&L.addClass(this.el,"uv-ie8"),e.body.appendChild(this.el),this.onCreateElement&&this.onCreateElement(this)},t.prototype.popoverWillShow=function(){L.addClass(this.el,"uv-is-selected")},t.prototype.popoverWillHide=function(){L.removeClass(this.el,"uv-is-selected")},t}(),$=function(){function t(t,e){this.el=t,this.options=e,L.data(this.el,"trigger",this)}return t.prototype.render=function(){var t=this;this.clickHandler=function(e){return t.options.trigger_prevent_default_enabled&&e.preventDefault&&e.preventDefault(),t.widget.toggle(),t.options.trigger_prevent_default_enabled?!1:void 0},L.on(this.el,"click",this.clickHandler)},t.prototype.remove=function(){this.removed=!0,L.off(this.el,"click",this.clickHandler)},t}(),q=function(){function i(t,e,o){this.options=T({css:"display: block; background: transparent; padding: none; margin: none; border: none; width: #{width}; height: #{height}",cdn:"omnibox"===e,embed_type:t,type:e,width:"100%",height:"100%"},o),this.options.mode.match(/contact|instant/)?this.options.mode="contact":this.options.mode.match(/post_idea|post_suggestion/)?this.options.mode="feedback":"satisfaction"===this.options.mode&&(this.options.survey_lockout=!1),this.pokes=[],this.loaded=!1,this.setLocation(),this.src=[this.location.baseUrl,this.queryString()].join("?"),"object"==typeof o.config&&this.poke({event:"config",data:o.config}),this.sendUserData(),i.all.push(this)}return i.all=[],i.prototype.setLocation=function(){var t="https";UserVoice.account.deactivated?this.location={host:UserVoice.account.widget2_domain,protocol:t,baseUrl:t+"://"+UserVoice.account.widget2_domain+"/widget_environment/deactivated"}:this.options.src?this.location={host:UserVoice.account.subdomain_ssl_host,protocol:t,baseUrl:t+"://"+UserVoice.account.subdomain_ssl_host+this.options.src}:this.options.cdn?this.location={host:UserVoice.account.widget2_domain,protocol:t,baseUrl:[t,"://",UserVoice.account.widget2_domain,"/",this.options.type,"/",encodeURIComponent(this.options.locale||"0"),"/",encodeURIComponent(this.options.accent_color||"0"),"/",UserVoice.account.client_key].join("")}:this.location={host:UserVoice.account.subdomain_ssl_host,protocol:t,baseUrl:t+"://"+UserVoice.account.subdomain_ssl_host+"/clients/widgets/"+this.options.type},this.location.origin=[this.location.protocol,"://",this.location.host].join("")},i.prototype.doLoad=function(){this.loaded=!0;var t=this.el.contentWindow;setTimeout(function(){t.focus()},0),this.poke()},i.prototype.poke=function(e){if(e&&("object"==typeof e&&(e=JSON.stringify(e)),this.pokes.push(e)),this.loaded&&this.el&&this.el.contentWindow){for(var o=this.el.contentWindow,i=0,s=this.pokes.length;s>i;i++)if("postMessage"in t)o.postMessage(this.pokes[i],this.location.origin);else try{o.location.href=[this.src,(+new Date).toString()+"&"+this.pokes[i]].join("#")}catch(n){}this.pokes=[]}},i.prototype.render=function(){this.loaded=!1,this.options.startIframeLoad=+new Date;var t=this.el=e.createElement("iframe"),o=this,i={height:this.options.height,width:this.options.width},s=d(this.options.css,i);if(t.attachEvent?t.attachEvent("onload",function(){o.doLoad()}):t.onload=function(){o.doLoad()},t.name="uvw-iframe-"+this.options.id,L.addClass(t,"uvw-dialog-iframe"),I.ie?t.style.setAttribute("cssText",s,0):t.setAttribute("style",s),t.setAttribute("allowtransparency","true"),t.setAttribute("frameBorder","0"),t.frameBorder=0,!(I.ie&&I.version<9)){t.style.visibility="hidden";var n=t.onload;t.onload=function(){"function"==typeof n&&n(),t.style.visibility="visible"}}return t.src=this.src,t},i.prototype.queryString=function(){var e={},i=["sess","mode","locale","link_color","topic_id","forum_id","article_id","suggestion_id","feedback_tab_name","support_tab_name","contact_us","email","name","status_ids","smartvote_status_ids","states","category_ids","smartvote_category_ids","survey_lockout","primary_color","accent_color","trigger_color","trigger_background_color","header","border","custom_template_id","design_settings_id","allow_tests","demo","startIframeLoad","org_name","post_idea_title","contact_title","smartvote_title","context","embed_type","trigger_method","menu","screenshot_enabled","mobile","twitter_demo","twitter_demo_username","twitter_demo_message","twitter_demo_satisfaction_thanks_mode","twitter_demo_satisfaction_thanks_message","permalinks_enabled","strings","instant_answers","smartvote","satisfaction","contact_enabled","feedback_enabled"];"classic_widget"===this.options.type&&i.push("sso");for(var s=0;so?"325px":"100%",contact_enabled:!0,post_suggestion_enabled:!0,smartvote_enabled:!0,feedback_enabled:!0},s=G.processModeOptions(T(i,UserVoice.globalOptions,e)),n=new q("inline",s.widgetType,s),r=t.currentStyle?t.currentStyle.position:L.getComputedStyle(t,null).position;for("static"===r&&(t.style.position="relative");t.firstChild;)t.removeChild(t.firstChild);t.appendChild(n.render()),n.poke({show:!0})}return t}(),Z=function(){function o(t,e){this.iframe=new q("lightbox",t.widgetType,T({css:"display: block; border: none; -moz-border-radius: 3px; -webkit-border-radius: 3px; height: 100%; padding: none; position: absolute; top: 0; right: 0; bottom: 0; left: 0; width: 100%;-webkit-transform: translate3d(0,0,0);"},t)),this.template='",this.id=L.uniqId(),this.dialog_id="uvw-dialog-"+this.id,this.dialog_close_id="uvw-dialog-close-"+this.id,this.dialog_content_id="uvw-dialog-content-"+this.id,this.options=t}return o.prototype.toggle=function(){this.show()},o.prototype.show=function(){I.ie6||I.touch||I.ieMobile||I.iOS||I.ieQuirks?t.open(this.iframe.src,"uservoice_widget","height=500,width=888,resizable=yes,scrollbars=1"):(this.initPopup(),this.overlay.style.visibility="visible",this.overlay.style.display="block",this.dialog.focus(),L.addClass(x(),"uvw-dialog-open"))},o.prototype.hide=function(){this.iframe.poke("reset"),this.overlay&&(this.overlay.style.display="none"),L.removeClass(x(),"uvw-dialog-open")},o.prototype.initPopup=function(){if(this.overlay||(f(P),this.overlay=h(d(this.template,this))),this.iframe.poke("opened"),!this.dialog||this.dialog.getAttribute("data-widget-key")!==this.id){for(this.iframe.render(),this.dialogContent=e.getElementById(this.dialog_content_id);this.dialogContent.firstChild;)this.dialogContent.removeChild(this.dialogContent.firstChild);this.dialogContent.appendChild(this.iframe.el),this.dialog=e.getElementById(this.dialog_id), +this.dialog.setAttribute("data-widget-key",this.id);var t=this;L.on(e.getElementById(this.dialog_close_id),"click",function(e){return t.hide()})}},o}(),G=function(){var i={session:!1,syncedSession:!1};return i.setUvts=function(t){i.uvts=t,q.sendUserData()},i.setEmail=function(t){i.email=t,q.sendUserData()},i.setName=function(t){i.name=t,q.sendUserData()},i.setSSO=function(t){i.sso=t,q.sendUserData()},i.addExternalUserId=function(t){i.external_user_ids||(i.external_user_ids=[]),i.external_user_ids.push(t),q.sendUserData()},i.setSession=function(){i.session=!0,i.pendingAutoprompt&&(i.pendingAutoprompt=!1,i.autoprompt())},i.syncSession=function(){i.syncedSession=!0,i.pendingAutoprompt&&(i.pendingAutoprompt=!1,i.autoprompt())},i.tracker=new O(UserVoice.account.subdomain_id,{channel:e.location.host===UserVoice.account.subdomain_site_host?"site2":"external",onUvts:i.setUvts,onSession:i.setSession,onSync:i.syncSession,v2:!0}),i.jsonp=function(){var o={},i=0;return o.send=function(o,s,n,r){var a="__uvJSONP"+i++;t[a]=r;var l=[];for(var p in s)l.push(p+"="+encodeURIComponent(s[p]));l.push(n+"="+a);var c=e.createElement("script");c.src=o+"?"+l.join("&"),c.type="application/javascript",c.async=!0,c.defer=!0;var d=e.getElementsByTagName("script")[0];d.parentNode.insertBefore(c,d)},o}(),i.autoprompt=function(){if(I.mobile||UserVoice.account.deactivated)return void(this.pendingAutoprompt=!1);if(this.session===!1||this.systemTrigger&&this.systemTrigger.el===o)return void(this.pendingAutoprompt=!0);var t=this.tracker.dumpSession(),e=this.shouldShowSatisfactionPrompt(t),s=this.shouldShowSmartVotePrompt(t);if(e||s){if(this.syncedSession===!1)return this.pendingAutoprompt=!0,void this.tracker.syncSession();var n={};if(this.tracker.identity)for(var r=["id","account_id","email"],a=0;a=60&&_(o)>=21:!1},i.shouldShowSmartVotePrompt=function(t){if(!UserVoice.account.smartvote_autoprompt_enabled)return!1;if(t.autoprompt_disabled)return!1;var e=t.last_smartvote_autoprompt_at||0,o=t.last_satisfaction_autoprompt_at||0;return 0!==e?_(e)>=42&&_(o)>=21:7===t.active_days&&_(o)>=21},i.scan=function(){var t,o=s(e.getElementsByTagName("*"));t=function(t,e,o){var s=t.getAttribute(e);t.hasAttribute&&t.hasAttribute(e)&&!t.getAttribute("data-uv-scanned")&&(t.setAttribute("data-uv-scanned","true"),o(t,s,i.extractOptions(t)))};for(var n=0;n0||t.forEach(function(t,o){if(t.target_urls&&t.target_urls.length>0){var i=!1;t.target_urls.forEach(function(t){C(t,e.location.href)&&(i=!0)}),i&&!ot[o]?ot[o]=G.createSystemTrigger(t):!i&&ot[o]&&(ot[o].remove(),delete ot[o])}})},st=function(t,e,o){var i,s,n,r,a=0;o||(o={});var l=function(){a=o.leading===!1?0:(new Date).getTime(),i=null,r=t.apply(s,n),i||(s=n=null)},p=function(){var p=(new Date).getTime();a||o.leading!==!1||(a=p);var c=e-(p-a);return s=this,n=arguments,0>=c||c>e?(i&&(clearTimeout(i),i=null),a=p,r=t.apply(s,n),i||(s=n=null)):i||o.trailing===!1||(i=setTimeout(l,c)),r};return p.cancel=function(){clearTimeout(i),a=0,i=s=n=null},p};UserVoice.account.active_widgets&&UserVoice.account.active_widgets.length>0&&(t.MutationObserver&&(pageObserver=new MutationObserver(st(it,200)),pageObserver.observe(e.body,{childList:!0,subtree:!0})),t.addEventListener("popstate",it),t.addEventListener("hashchange",it),it()),L.ready(S)}(window,document); \ No newline at end of file diff --git a/code/China _ Data_files/adsct b/code/China _ Data_files/adsct new file mode 100644 index 00000000..b3af27c3 --- /dev/null +++ b/code/China _ Data_files/adsct @@ -0,0 +1 @@ +twttr.conversion.loadPixels({}) \ No newline at end of file diff --git a/code/China _ Data_files/adsct(1) b/code/China _ Data_files/adsct(1) new file mode 100644 index 00000000..b3af27c3 --- /dev/null +++ b/code/China _ Data_files/adsct(1) @@ -0,0 +1 @@ +twttr.conversion.loadPixels({}) \ No newline at end of file diff --git a/code/China _ Data_files/adsct(2) b/code/China _ Data_files/adsct(2) new file mode 100644 index 00000000..b3af27c3 --- /dev/null +++ b/code/China _ Data_files/adsct(2) @@ -0,0 +1 @@ +twttr.conversion.loadPixels({}) \ No newline at end of file diff --git a/code/China _ Data_files/adsct(3) b/code/China _ Data_files/adsct(3) new file mode 100644 index 00000000..b3af27c3 --- /dev/null +++ b/code/China _ Data_files/adsct(3) @@ -0,0 +1 @@ +twttr.conversion.loadPixels({}) \ No newline at end of file diff --git a/code/China _ Data_files/analytics.js.download b/code/China _ Data_files/analytics.js.download new file mode 100644 index 00000000..c2ddeb75 --- /dev/null +++ b/code/China _ Data_files/analytics.js.download @@ -0,0 +1,66 @@ +(function(){function La(a){var b=1,c;if(a)for(b=0,c=a.length-1;0<=c;c--){var d=a.charCodeAt(c);b=(b<<6&268435455)+d+(d<<14);d=b&266338304;b=0!=d?b^d>>21:b}return b};(function(){function a(){for(var a=k,b={},c=0;c>4);64!=ze&&(e+=String.fromCharCode(l<<4&240|ze>>2),64!=ve&&(e+=String.fromCharCode(ze<<6&192|ve)))}},ue,Ge=/(.*?)\*(.*?)\*(.*)/,ye=/(.*?)(^|&)_gl=([^&]*)&?(.*)/,Ie=function(a){return function(b){var c=g.location.href,d=document.createElement("a");c&&(e.test(c),d.href=c);c=d.pathname;"/"!==c[0]&&(c="/"+c);var Nd=d.hostname.replace(ca,"");d={href:d.href,protocol:d.protocol,host:d.host,hostname:Nd,pathname:c,search:d.search,hash:d.hash,port:d.port};c=d.search.replace("?","");a:{Nd=c.split("&");for(var we= +0;weg;g++){for(var k=g,da=0;8>da;da++)k=k&1?k>>>1^3988292384:k>>>1;w[g]=k}l=w}ue=l;g=4294967295;for(k=0;k>>8^ue[(g^ +ca.charCodeAt(k))&255];c=(g^-1)>>>0;if(d===c.toString(36)){var te=!0;break a}}te=!1}if(te){b={};var ve=e?e.split("*"):[];for(e=0;e\x3c/script>')):(c=M.createElement("script"), +c.type="text/javascript",c.async=!0,c.src=a,b&&(c.id=b),a=M.getElementsByTagName("script")[0],a.parentNode.insertBefore(c,a)))},be=function(a,b){return E(M.location[b?"href":"search"],a)},E=function(a,b){return(a=a.match("(?:&|#|\\?)"+K(b).replace(/([.*+?^=!:${}()|\[\]\/\\])/g,"\\$1")+"=([^&#]*)"))&&2==a.length?a[1]:""},xa=function(){var a=""+M.location.hostname;return 0==a.indexOf("www.")?a.substring(4):a},de=function(a,b){var c=a.indexOf(b);if(5==c||6==c)if(a=a.charAt(c+b.length),"/"==a||"?"==a|| +""==a||":"==a)return!0;return!1},ya=function(a,b){var c=M.referrer;if(/^(https?|android-app):\/\//i.test(c)){if(a)return c;a="//"+M.location.hostname;if(!de(c,a))return b&&(b=a.replace(/\./g,"-")+".cdn.ampproject.org",de(c,b))?void 0:c}},za=function(a,b){if(1==b.length&&null!=b[0]&&"object"===typeof b[0])return b[0];for(var c={},d=Math.min(a.length+1,b.length),e=0;e=b.length)wc(a,b,c);else if(8192>=b.length)x(a,b,c)||wd(a,b,c)||wc(a,b,c);else throw ge("len",b.length),new Da(b.length);},pe=function(a,b,c,d){d=d||ua;wd(a+"?"+b,"",d,c)},wc=function(a,b,c){var d=ta(a+"?"+b);d.onload=d.onerror=function(){d.onload=null;d.onerror=null;c()}},wd=function(a,b,c,d){var e=O.XMLHttpRequest; +if(!e)return!1;var g=new e;if(!("withCredentials"in g))return!1;a=a.replace(/^http:/,"https:");g.open("POST",a,!0);g.withCredentials=!0;g.setRequestHeader("Content-Type","text/plain");g.onreadystatechange=function(){if(4==g.readyState){if(d)try{var a=g.responseText;if(1>a.length)ge("xhr","ver","0"),c();else if("1"!=a.charAt(0))ge("xhr","ver",String(a.length)),c();else if(3=100*R(a,Ka))throw"abort";}function Ma(a){if(G(P(a,Na)))throw"abort";}function Oa(){var a=M.location.protocol;if("http:"!=a&&"https:"!=a)throw"abort";} +function Pa(a){try{O.navigator.sendBeacon?J(42):O.XMLHttpRequest&&"withCredentials"in new O.XMLHttpRequest&&J(40)}catch(c){}a.set(ld,Td(a),!0);a.set(Ac,R(a,Ac)+1);var b=[];Qa.map(function(c,d){d.F&&(c=a.get(c),void 0!=c&&c!=d.defaultValue&&("boolean"==typeof c&&(c*=1),b.push(d.F+"="+K(""+c))))});b.push("z="+Bd());a.set(Ra,b.join("&"),!0)} +function Sa(a){var b=P(a,gd)||oe()+"/collect",c=a.get(qe),d=P(a,fa);!d&&a.get(Vd)&&(d="beacon");if(c)pe(b,P(a,Ra),c,a.get(Ia));else if(d){c=d;d=P(a,Ra);var e=a.get(Ia);e=e||ua;"image"==c?wc(b,d,e):"xhr"==c&&wd(b,d,e)||"beacon"==c&&x(b,d,e)||ba(b,d,e)}else ba(b,P(a,Ra),a.get(Ia));b=a.get(Na);b=h(b);c=b.hitcount;b.hitcount=c?c+1:1;b=a.get(Na);delete h(b).pending_experiments;a.set(Ia,ua,!0)} +function Hc(a){(O.gaData=O.gaData||{}).expId&&a.set(Nc,(O.gaData=O.gaData||{}).expId);(O.gaData=O.gaData||{}).expVar&&a.set(Oc,(O.gaData=O.gaData||{}).expVar);var b=a.get(Na);if(b=h(b).pending_experiments){var c=[];for(d in b)b.hasOwnProperty(d)&&b[d]&&c.push(encodeURIComponent(d)+"."+encodeURIComponent(b[d]));var d=c.join("!")}else d=void 0;d&&a.set(m,d,!0)}function cd(){if(O.navigator&&"preview"==O.navigator.loadPurpose)throw"abort";} +function yd(a){var b=O.gaDevIds;ka(b)&&0!=b.length&&a.set("&did",b.join(","),!0)}function vb(a){if(!a.get(Na))throw"abort";};var hd=function(){return Math.round(2147483647*Math.random())},Bd=function(){try{var a=new Uint32Array(1);O.crypto.getRandomValues(a);return a[0]&2147483647}catch(b){return hd()}};function Ta(a){var b=R(a,Ua);500<=b&&J(15);var c=P(a,Va);if("transaction"!=c&&"item"!=c){c=R(a,Wa);var d=(new Date).getTime(),e=R(a,Xa);0==e&&a.set(Xa,d);e=Math.round(2*(d-e)/1E3);0=c)throw"abort";a.set(Wa,--c)}a.set(Ua,++b)};var Ya=function(){this.data=new ee},Qa=new ee,Za=[];Ya.prototype.get=function(a){var b=$a(a),c=this.data.get(a);b&&void 0==c&&(c=ea(b.defaultValue)?b.defaultValue():b.defaultValue);return b&&b.Z?b.Z(this,a,c):c};var P=function(a,b){a=a.get(b);return void 0==a?"":""+a},R=function(a,b){a=a.get(b);return void 0==a||""===a?0:1*a};Ya.prototype.set=function(a,b,c){if(a)if("object"==typeof a)for(var d in a)a.hasOwnProperty(d)&&ab(this,d,a[d],c);else ab(this,a,b,c)}; +var ab=function(a,b,c,d){if(void 0!=c)switch(b){case Na:wb.test(c)}var e=$a(b);e&&e.o?e.o(a,b,c,d):a.data.set(b,c,d)},bb=function(a,b,c,d,e){this.name=a;this.F=b;this.Z=d;this.o=e;this.defaultValue=c},$a=function(a){var b=Qa.get(a);if(!b)for(var c=0;c=b?!1:!0},gc=function(a){var b={};if(Ec(b)||Fc(b)){var c=b[Eb];void 0==c||Infinity==c||isNaN(c)||(0c)a[b]=void 0},Fd=function(a){return function(b){if("pageview"==b.get(Va)&& +!a.I){a.I=!0;var c=aa(b),d=0a.length)J(12);else{for(var d=[],e=0;e=a&&d.push({hash:ca[0],R:e[g],O:ca})}if(0!=d.length)return 1==d.length?d[0]:Zc(b,d)||Zc(c,d)||Zc(null,d)||d[0]}function Zc(a,b){if(null==a)var c=a=1;else c=La(a),a=La(D(a,".")?a.substring(1):"."+a);for(var d=0;d=ca[0]||0>=ca[1]?"":ca.join("x");a.set(rb,c);a.set(tb,fc());a.set(ob,M.characterSet||M.charset);a.set(sb,b&&"function"===typeof b.javaEnabled&&b.javaEnabled()||!1);a.set(nb,(b&&(b.language||b.browserLanguage)||"").toLowerCase());a.data.set(ce,be("gclid",!0));a.data.set(ie,be("gclsrc",!0));a.data.set(fe,Math.round((new Date).getTime()/1E3));if(d&&a.get(cc)&&(b=M.location.hash)){b=b.split(/[?&#]+/);d=[];for(c=0;carguments.length)){if("string"===typeof arguments[0]){var b=arguments[0];var c=[].slice.call(arguments,1)}else b=arguments[0]&&arguments[0][Va],c=arguments;b&&(c=za(qc[b]||[],c),c[Va]=b,this.b.set(c,void 0,!0),this.filters.D(this.b),this.b.data.m={})}};pc.prototype.ma=function(a,b){var c=this;u(a,c,b)||(v(a,function(){u(a,c,b)}),y(String(c.get(V)),a,void 0,b,!0))};var rc=function(a){if("prerender"==M.visibilityState)return!1;a();return!0},z=function(a){if(!rc(a)){J(16);var b=!1,c=function(){if(!b&&rc(a)){b=!0;var d=c,e=M;e.removeEventListener?e.removeEventListener("visibilitychange",d,!1):e.detachEvent&&e.detachEvent("onvisibilitychange",d)}};L(M,"visibilitychange",c)}};var td=/^(?:(\w+)\.)?(?:(\w+):)?(\w+)$/,sc=function(a){if(ea(a[0]))this.u=a[0];else{var b=td.exec(a[0]);null!=b&&4==b.length&&(this.c=b[1]||"t0",this.K=b[2]||"",this.C=b[3],this.a=[].slice.call(a,1),this.K||(this.A="create"==this.C,this.i="require"==this.C,this.g="provide"==this.C,this.ba="remove"==this.C),this.i&&(3<=this.a.length?(this.X=this.a[1],this.W=this.a[2]):this.a[1]&&(qa(this.a[1])?this.X=this.a[1]:this.W=this.a[1])));b=a[1];a=a[2];if(!this.C)throw"abort";if(this.i&&(!qa(b)||""==b))throw"abort"; +if(this.g&&(!qa(b)||""==b||!ea(a)))throw"abort";if(ud(this.c)||ud(this.K))throw"abort";if(this.g&&"t0"!=this.c)throw"abort";}};function ud(a){return 0<=a.indexOf(".")||0<=a.indexOf(":")};var Yd,Zd,$d,A;Yd=new ee;$d=new ee;A=new ee;Zd={ec:45,ecommerce:46,linkid:47}; +var u=function(a,b,c){b==N||b.get(V);var d=Yd.get(a);if(!ea(d))return!1;b.plugins_=b.plugins_||new ee;if(b.plugins_.get(a))return!0;b.plugins_.set(a,new d(b,c||{}));return!0},y=function(a,b,c,d,e){if(!ea(Yd.get(b))&&!$d.get(b)){Zd.hasOwnProperty(b)&&J(Zd[b]);if(p.test(b)){J(52);a=N.j(a);if(!a)return!0;c=d||{};d={id:b,B:c.dataLayer||"dataLayer",ia:!!a.get("anonymizeIp"),sync:e,G:!1};a.get(">m")==b&&(d.G=!0);var g=String(a.get("name"));"t0"!=g&&(d.target=g);G(String(a.get("trackingId")))||(d.clientId= +String(a.get(Q)),d.ka=Number(a.get(n)),c=c.palindrome?r:q,c=(c=M.cookie.replace(/^|(; +)/g,";").match(c))?c.sort().join("").substring(1):void 0,d.la=c,d.qa=E(a.b.get(kb)||"","gclid"));a=d.B;c=(new Date).getTime();O[a]=O[a]||[];c={"gtm.start":c};e||(c.event="gtm.js");O[a].push(c);c=t(d)}!c&&Zd.hasOwnProperty(b)?(J(39),c=b+".js"):J(43);c&&(c&&0<=c.indexOf("/")||(c=(Ba||"https:"==M.location.protocol?"https:":"http:")+"//www.google-analytics.com/plugins/ua/"+c),d=ae(c),a=d.protocol,c=M.location.protocol, +("https:"==a||a==c||("http:"!=a?0:"http:"==c))&&B(d)&&(wa(d.url,void 0,e),$d.set(b,!0)))}},v=function(a,b){var c=A.get(a)||[];c.push(b);A.set(a,c)},C=function(a,b){Yd.set(a,b);b=A.get(a)||[];for(var c=0;ca.split("/")[0].indexOf(":")&&(a=ca+e[2].substring(0,e[2].lastIndexOf("/"))+"/"+a);c.href=a;d=b(c);return{protocol:(c.protocol||"").toLowerCase(),host:d[0],port:d[1],path:d[2],query:c.search||"",url:a||""}};var Z={ga:function(){Z.f=[]}};Z.ga();Z.D=function(a){var b=Z.J.apply(Z,arguments);b=Z.f.concat(b);for(Z.f=[];0c;c++){var d=b[c].src;if(d&&0==d.indexOf("https://www.google-analytics.com/analytics")){b= +!0;break a}}b=!1}b&&(Ba=!0)}(O.gaplugins=O.gaplugins||{}).Linker=Dc;b=Dc.prototype;C("linker",Dc);X("decorate",b,b.ca,20);X("autoLink",b,b.S,25);C("displayfeatures",fd);C("adfeatures",fd);a=a&&a.q;ka(a)?Z.D.apply(N,a):J(50)}};N.da=function(){for(var a=N.getAll(),b=0;b=200&&e.status<300)return e;var t=new Error(e.statusText);throw t.response=e,t}Object.defineProperty(t,"__esModule",{value:!0}),t.ROOT=t.SERVER_ROOT=void 0,t.checkStatus=r;var n=a(115),l=a(9),i=a(59);o(i),t.SERVER_ROOT=n.isLocal?"http://localhost:"+n.port:l.ENV_LOCALE_LINKS_MAP[n.env][l.DEFAULT_LOCALE],t.ROOT=""},137:function(e,t,a){"use strict";function o(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){var a=c.ROOT+"/config/"+e+".json";return t=t||e,function(e,o){var r=(0,m.configSelector)(o()).get(t);return r?i["default"].resolve():(0,u["default"])(a).then(c.checkStatus).then(function(e){return e.json()}).then(function(a){return e({type:d.CONFIG_UPDATE_CONFIG,payload:{data:a,key:t}})})["catch"](function(o){return 404==o.response.status?console.error("Fetching "+a+" 404ed"):console.error("Fetching "+a+" failed",o),e({type:d.CONFIG_UPDATE_CONFIG,payload:{data:{},key:t}})})}}function n(){return function(e,t){var a=(0,f.localeSelector)(t());return i["default"].all([e(r("front_page/"+a+"_front_page_config")),e(r("front_page/"+a+"_front_page_featured")),e(r("front_page/"+a+"_front_page_blog_posts")),e(r("front_page/"+a+"_front_page_blog_posts_rss"))])}}Object.defineProperty(t,"__esModule",{value:!0});var l=a(39),i=o(l);t.fetchConfig=r,t.fetchFrontPageConfig=n;var s=a(59),u=o(s),d=a(70),c=a(117),m=a(36),f=a(15)},144:function(e,t){!function(e){"use strict";function t(e){if("string"!=typeof e&&(e=String(e)),/[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(e))throw new TypeError("Invalid character in header field name");return e.toLowerCase()}function a(e){return"string"!=typeof e&&(e=String(e)),e}function o(e){this.map={},e instanceof o?e.forEach(function(e,t){this.append(t,e)},this):e&&Object.getOwnPropertyNames(e).forEach(function(t){this.append(t,e[t])},this)}function r(e){return e.bodyUsed?Promise.reject(new TypeError("Already read")):void(e.bodyUsed=!0)}function n(e){return new Promise(function(t,a){e.onload=function(){t(e.result)},e.onerror=function(){a(e.error)}})}function l(e){var t=new FileReader;return t.readAsArrayBuffer(e),n(t)}function i(e){var t=new FileReader;return t.readAsText(e),n(t)}function s(){return this.bodyUsed=!1,this._initBody=function(e){if(this._bodyInit=e,"string"==typeof e)this._bodyText=e;else if(h.blob&&Blob.prototype.isPrototypeOf(e))this._bodyBlob=e;else if(h.formData&&FormData.prototype.isPrototypeOf(e))this._bodyFormData=e;else if(e){if(!h.arrayBuffer||!ArrayBuffer.prototype.isPrototypeOf(e))throw new Error("unsupported BodyInit type")}else this._bodyText="";this.headers.get("content-type")||("string"==typeof e?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type&&this.headers.set("content-type",this._bodyBlob.type))},h.blob?(this.blob=function(){var e=r(this);if(e)return e;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this.blob().then(l)},this.text=function(){var e=r(this);if(e)return e;if(this._bodyBlob)return i(this._bodyBlob);if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)}):this.text=function(){var e=r(this);return e?e:Promise.resolve(this._bodyText)},h.formData&&(this.formData=function(){return this.text().then(c)}),this.json=function(){return this.text().then(JSON.parse)},this}function u(e){var t=e.toUpperCase();return p.indexOf(t)>-1?t:e}function d(e,t){t=t||{};var a=t.body;if(d.prototype.isPrototypeOf(e)){if(e.bodyUsed)throw new TypeError("Already read");this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new o(e.headers)),this.method=e.method,this.mode=e.mode,a||(a=e._bodyInit,e.bodyUsed=!0)}else this.url=e;if(this.credentials=t.credentials||this.credentials||"omit",!t.headers&&this.headers||(this.headers=new o(t.headers)),this.method=u(t.method||this.method||"GET"),this.mode=t.mode||this.mode||null,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&a)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(a)}function c(e){var t=new FormData;return e.trim().split("&").forEach(function(e){if(e){var a=e.split("="),o=a.shift().replace(/\+/g," "),r=a.join("=").replace(/\+/g," ");t.append(decodeURIComponent(o),decodeURIComponent(r))}}),t}function m(e){var t=new o,a=e.getAllResponseHeaders().trim().split("\n");return a.forEach(function(e){var a=e.trim().split(":"),o=a.shift().trim(),r=a.join(":").trim();t.append(o,r)}),t}function f(e,t){t||(t={}),this.type="default",this.status=t.status,this.ok=this.status>=200&&this.status<300,this.statusText=t.statusText,this.headers=t.headers instanceof o?t.headers:new o(t.headers),this.url=t.url||"",this._initBody(e)}if(!e.fetch){o.prototype.append=function(e,o){e=t(e),o=a(o);var r=this.map[e];r||(r=[],this.map[e]=r),r.push(o)},o.prototype["delete"]=function(e){delete this.map[t(e)]},o.prototype.get=function(e){var a=this.map[t(e)];return a?a[0]:null},o.prototype.getAll=function(e){return this.map[t(e)]||[]},o.prototype.has=function(e){return this.map.hasOwnProperty(t(e))},o.prototype.set=function(e,o){this.map[t(e)]=[a(o)]},o.prototype.forEach=function(e,t){Object.getOwnPropertyNames(this.map).forEach(function(a){this.map[a].forEach(function(o){e.call(t,o,a,this)},this)},this)};var h={blob:"FileReader"in e&&"Blob"in e&&function(){try{return new Blob,!0}catch(e){return!1}}(),formData:"FormData"in e,arrayBuffer:"ArrayBuffer"in e},p=["DELETE","GET","HEAD","OPTIONS","POST","PUT"];d.prototype.clone=function(){return new d(this)},s.call(d.prototype),s.call(f.prototype),f.prototype.clone=function(){return new f(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new o(this.headers),url:this.url})},f.error=function(){var e=new f(null,{status:0,statusText:""});return e.type="error",e};var v=[301,302,303,307,308];f.redirect=function(e,t){if(v.indexOf(t)===-1)throw new RangeError("Invalid status code");return new f(null,{status:t,headers:{location:e}})},e.Headers=o,e.Request=d,e.Response=f,e.fetch=function(e,t){return new Promise(function(a,o){function r(){return"responseURL"in l?l.responseURL:/^X-Request-URL:/m.test(l.getAllResponseHeaders())?l.getResponseHeader("X-Request-URL"):void 0}var n;n=d.prototype.isPrototypeOf(e)&&!t?e:new d(e,t);var l=new XMLHttpRequest;l.onload=function(){var e=1223===l.status?204:l.status;if(e<100||e>599)return void o(new TypeError("Network request failed"));var t={status:e,statusText:l.statusText,headers:m(l),url:r()},n="response"in l?l.response:l.responseText;a(new f(n,t))},l.onerror=function(){o(new TypeError("Network request failed"))},l.open(n.method,n.url,!0),"include"===n.credentials&&(l.withCredentials=!0),"responseType"in l&&h.blob&&(l.responseType="blob"),n.headers.forEach(function(e,t){l.setRequestHeader(t,e)}),l.send("undefined"==typeof n._bodyInit?null:n._bodyInit)})},e.fetch.polyfill=!0}}("undefined"!=typeof self?self:this)},319:function(e,t,a){!function(t,a){e.exports=a()}(this,function(){"use strict";return[{locale:"ar",pluralRuleFunction:function(e,t){var a=String(e).split("."),o=Number(a[0])==e&&a[0].slice(-2);return t?"other":0==e?"zero":1==e?"one":2==e?"two":o>=3&&o<=10?"few":o>=11&&o<=99?"many":"other"},fields:{year:{displayName:"السنة",relative:{0:"السنة الحالية",1:"السنة القادمة","-1":"السنة الماضية"},relativeTime:{future:{zero:"خلال {0} سنة",one:"خلال سنة واحدة",two:"خلال سنتين",few:"خلال {0} سنوات",many:"خلال {0} سنة",other:"خلال {0} سنة"},past:{zero:"قبل {0} سنة",one:"قبل سنة واحدة",two:"قبل سنتين",few:"قبل {0} سنوات",many:"قبل {0} سنة",other:"قبل {0} سنة"}}},month:{displayName:"الشهر",relative:{0:"هذا الشهر",1:"الشهر القادم","-1":"الشهر الماضي"},relativeTime:{future:{zero:"خلال {0} شهر",one:"خلال شهر واحد",two:"خلال شهرين",few:"خلال {0} أشهر",many:"خلال {0} شهرًا",other:"خلال {0} شهر"},past:{zero:"قبل {0} شهر",one:"قبل شهر واحد",two:"قبل شهرين",few:"قبل {0} أشهر",many:"قبل {0} شهرًا",other:"قبل {0} شهر"}}},day:{displayName:"يوم",relative:{0:"اليوم",1:"غدًا",2:"بعد الغد","-2":"أول أمس","-1":"أمس"},relativeTime:{future:{zero:"خلال {0} يوم",one:"خلال يوم واحد",two:"خلال يومين",few:"خلال {0} أيام",many:"خلال {0} يومًا",other:"خلال {0} يوم"},past:{zero:"قبل {0} يوم",one:"قبل يوم واحد",two:"قبل يومين",few:"قبل {0} أيام",many:"قبل {0} يومًا",other:"قبل {0} يوم"}}},hour:{displayName:"الساعات",relative:{0:"الساعة الحالية"},relativeTime:{future:{zero:"خلال {0} ساعة",one:"خلال ساعة واحدة",two:"خلال ساعتين",few:"خلال {0} ساعات",many:"خلال {0} ساعة",other:"خلال {0} ساعة"},past:{zero:"قبل {0} ساعة",one:"قبل ساعة واحدة",two:"قبل ساعتين",few:"قبل {0} ساعات",many:"قبل {0} ساعة",other:"قبل {0} ساعة"}}},minute:{displayName:"الدقائق",relative:{0:"هذه الدقيقة"},relativeTime:{future:{zero:"خلال {0} دقيقة",one:"خلال دقيقة واحدة",two:"خلال دقيقتين",few:"خلال {0} دقائق",many:"خلال {0} دقيقة",other:"خلال {0} دقيقة"},past:{zero:"قبل {0} دقيقة",one:"قبل دقيقة واحدة",two:"قبل دقيقتين",few:"قبل {0} دقائق",many:"قبل {0} دقيقة",other:"قبل {0} دقيقة"}}},second:{displayName:"الثواني",relative:{0:"الآن"},relativeTime:{future:{zero:"خلال {0} ثانية",one:"خلال ثانية واحدة",two:"خلال ثانيتين",few:"خلال {0} ثوانٍ",many:"خلال {0} ثانية",other:"خلال {0} ثانية"},past:{zero:"قبل {0} ثانية",one:"قبل ثانية واحدة",two:"قبل ثانيتين",few:"قبل {0} ثوانِ",many:"قبل {0} ثانية",other:"قبل {0} ثانية"}}}}},{locale:"ar-AE",parentLocale:"ar",fields:{year:{displayName:"السنة",relative:{0:"هذه السنة",1:"السنة التالية","-1":"السنة الماضية"},relativeTime:{future:{zero:"خلال {0} سنة",one:"خلال سنة واحدة",two:"خلال سنتين",few:"خلال {0} سنوات",many:"خلال {0} سنة",other:"خلال {0} سنة"},past:{zero:"قبل {0} سنة",one:"قبل سنة واحدة",two:"قبل سنتين",few:"قبل {0} سنوات",many:"قبل {0} سنة",other:"قبل {0} سنة"}}},month:{displayName:"الشهر",relative:{0:"هذا الشهر",1:"الشهر القادم","-1":"الشهر الماضي"},relativeTime:{future:{zero:"خلال {0} شهر",one:"خلال شهر واحد",two:"خلال شهرين",few:"خلال {0} أشهر",many:"خلال {0} شهرًا",other:"خلال {0} شهر"},past:{zero:"قبل {0} شهر",one:"قبل شهر واحد",two:"قبل شهرين",few:"قبل {0} أشهر",many:"قبل {0} شهرًا",other:"قبل {0} شهر"}}},day:{displayName:"يوم",relative:{0:"اليوم",1:"غدًا",2:"بعد الغد","-2":"أول أمس","-1":"أمس"},relativeTime:{future:{zero:"خلال {0} يوم",one:"خلال يوم واحد",two:"خلال يومين",few:"خلال {0} أيام",many:"خلال {0} يومًا",other:"خلال {0} يوم"},past:{zero:"قبل {0} يوم",one:"قبل يوم واحد",two:"قبل يومين",few:"قبل {0} أيام",many:"قبل {0} يومًا",other:"قبل {0} يوم"}}},hour:{displayName:"الساعات",relative:{0:"الساعة الحالية"},relativeTime:{future:{zero:"خلال {0} ساعة",one:"خلال ساعة واحدة",two:"خلال ساعتين",few:"خلال {0} ساعات",many:"خلال {0} ساعة",other:"خلال {0} ساعة"},past:{zero:"قبل {0} ساعة",one:"قبل ساعة واحدة",two:"قبل ساعتين",few:"قبل {0} ساعات",many:"قبل {0} ساعة",other:"قبل {0} ساعة"}}},minute:{displayName:"الدقائق",relative:{0:"هذه الدقيقة"},relativeTime:{future:{zero:"خلال {0} دقيقة",one:"خلال دقيقة واحدة",two:"خلال دقيقتين",few:"خلال {0} دقائق",many:"خلال {0} دقيقة",other:"خلال {0} دقيقة"},past:{zero:"قبل {0} دقيقة",one:"قبل دقيقة واحدة",two:"قبل دقيقتين",few:"قبل {0} دقائق",many:"قبل {0} دقيقة",other:"قبل {0} دقيقة"}}},second:{displayName:"الثواني",relative:{0:"الآن"},relativeTime:{future:{zero:"خلال {0} ثانية",one:"خلال ثانية واحدة",two:"خلال ثانيتين",few:"خلال {0} ثوانٍ",many:"خلال {0} ثانية",other:"خلال {0} ثانية"},past:{zero:"قبل {0} ثانية",one:"قبل ثانية واحدة",two:"قبل ثانيتين",few:"قبل {0} ثوانِ",many:"قبل {0} ثانية",other:"قبل {0} ثانية"}}}}},{locale:"ar-BH",parentLocale:"ar"},{locale:"ar-DJ",parentLocale:"ar"},{locale:"ar-DZ",parentLocale:"ar"},{locale:"ar-EG",parentLocale:"ar"},{locale:"ar-EH",parentLocale:"ar"},{locale:"ar-ER",parentLocale:"ar"},{locale:"ar-IL",parentLocale:"ar"},{locale:"ar-IQ",parentLocale:"ar"},{locale:"ar-JO",parentLocale:"ar"},{locale:"ar-KM",parentLocale:"ar"},{locale:"ar-KW",parentLocale:"ar"},{locale:"ar-LB",parentLocale:"ar"},{locale:"ar-LY",parentLocale:"ar"},{locale:"ar-MA",parentLocale:"ar"},{locale:"ar-MR",parentLocale:"ar"},{locale:"ar-OM",parentLocale:"ar"},{locale:"ar-PS",parentLocale:"ar"},{locale:"ar-QA",parentLocale:"ar"},{locale:"ar-SA",parentLocale:"ar"},{locale:"ar-SD",parentLocale:"ar"},{locale:"ar-SO",parentLocale:"ar"},{locale:"ar-SS",parentLocale:"ar"},{locale:"ar-SY",parentLocale:"ar"},{locale:"ar-TD",parentLocale:"ar"},{locale:"ar-TN",parentLocale:"ar"},{locale:"ar-YE",parentLocale:"ar"}]})},320:function(e,t,a){!function(t,a){e.exports=a()}(this,function(){"use strict";return[{locale:"bg",pluralRuleFunction:function(e,t){return t?"other":1==e?"one":"other"},fields:{year:{displayName:"година",relative:{0:"тази година",1:"следващата година","-1":"миналата година"},relativeTime:{future:{one:"след {0} година",other:"след {0} години"},past:{one:"преди {0} година",other:"преди {0} години"}}},month:{displayName:"месец",relative:{0:"този месец",1:"следващ месец","-1":"предходен месец"},relativeTime:{future:{one:"след {0} месец",other:"след {0} месеца"},past:{one:"преди {0} месец",other:"преди {0} месеца"}}},day:{displayName:"ден",relative:{0:"днес",1:"утре",2:"вдругиден","-2":"онзи ден","-1":"вчера"},relativeTime:{future:{one:"след {0} ден",other:"след {0} дни"},past:{one:"преди {0} ден",other:"преди {0} дни"}}},hour:{displayName:"час",relative:{0:"в този час"},relativeTime:{future:{one:"след {0} час",other:"след {0} часа"},past:{one:"преди {0} час",other:"преди {0} часа"}}},minute:{displayName:"минута",relative:{0:"в тази минута"},relativeTime:{future:{one:"след {0} минута",other:"след {0} минути"},past:{one:"преди {0} минута",other:"преди {0} минути"}}},second:{displayName:"секунда",relative:{0:"сега"},relativeTime:{future:{one:"след {0} секунда",other:"след {0} секунди"},past:{one:"преди {0} секунда",other:"преди {0} секунди"}}}}}]})},321:function(e,t,a){!function(t,a){e.exports=a()}(this,function(){"use strict";return[{locale:"de",pluralRuleFunction:function(e,t){var a=!String(e).split(".")[1];return t?"other":1==e&&a?"one":"other"},fields:{year:{displayName:"Jahr",relative:{0:"dieses Jahr",1:"nächstes Jahr","-1":"letztes Jahr"},relativeTime:{future:{one:"in {0} Jahr",other:"in {0} Jahren"},past:{one:"vor {0} Jahr",other:"vor {0} Jahren"}}},month:{displayName:"Monat",relative:{0:"diesen Monat",1:"nächsten Monat","-1":"letzten Monat"},relativeTime:{future:{one:"in {0} Monat",other:"in {0} Monaten"},past:{one:"vor {0} Monat",other:"vor {0} Monaten"}}},day:{displayName:"Tag",relative:{0:"heute",1:"morgen",2:"übermorgen","-2":"vorgestern","-1":"gestern"},relativeTime:{future:{one:"in {0} Tag",other:"in {0} Tagen"},past:{one:"vor {0} Tag",other:"vor {0} Tagen"}}},hour:{displayName:"Stunde",relative:{0:"in dieser Stunde"},relativeTime:{future:{one:"in {0} Stunde",other:"in {0} Stunden"},past:{one:"vor {0} Stunde",other:"vor {0} Stunden"}}},minute:{displayName:"Minute",relative:{0:"in dieser Minute"},relativeTime:{future:{one:"in {0} Minute",other:"in {0} Minuten"},past:{one:"vor {0} Minute",other:"vor {0} Minuten"}}},second:{displayName:"Sekunde",relative:{0:"jetzt"},relativeTime:{future:{one:"in {0} Sekunde",other:"in {0} Sekunden"},past:{one:"vor {0} Sekunde",other:"vor {0} Sekunden"}}}}},{locale:"de-AT",parentLocale:"de"},{locale:"de-BE",parentLocale:"de"},{locale:"de-CH",parentLocale:"de"},{locale:"de-IT",parentLocale:"de"},{locale:"de-LI",parentLocale:"de"},{locale:"de-LU",parentLocale:"de"}]})},322:function(e,t,a){!function(t,a){e.exports=a()}(this,function(){"use strict";return[{locale:"en",pluralRuleFunction:function(e,t){var a=String(e).split("."),o=!a[1],r=Number(a[0])==e,n=r&&a[0].slice(-1),l=r&&a[0].slice(-2);return t?1==n&&11!=l?"one":2==n&&12!=l?"two":3==n&&13!=l?"few":"other":1==e&&o?"one":"other"},fields:{year:{displayName:"year",relative:{0:"this year",1:"next year","-1":"last year"},relativeTime:{future:{one:"in {0} year",other:"in {0} years"},past:{one:"{0} year ago",other:"{0} years ago"}}},month:{displayName:"month",relative:{0:"this month",1:"next month","-1":"last month"},relativeTime:{future:{one:"in {0} month",other:"in {0} months"},past:{one:"{0} month ago",other:"{0} months ago"}}},day:{displayName:"day",relative:{0:"today",1:"tomorrow","-1":"yesterday"},relativeTime:{future:{one:"in {0} day",other:"in {0} days"},past:{one:"{0} day ago",other:"{0} days ago"}}},hour:{displayName:"hour",relative:{0:"this hour"},relativeTime:{future:{one:"in {0} hour",other:"in {0} hours"},past:{one:"{0} hour ago",other:"{0} hours ago"}}},minute:{displayName:"minute",relative:{0:"this minute"},relativeTime:{future:{one:"in {0} minute",other:"in {0} minutes"},past:{one:"{0} minute ago",other:"{0} minutes ago"}}},second:{displayName:"second",relative:{0:"now"},relativeTime:{future:{one:"in {0} second",other:"in {0} seconds"},past:{one:"{0} second ago",other:"{0} seconds ago"}}}}},{locale:"en-001",parentLocale:"en"},{locale:"en-150",parentLocale:"en-001"},{locale:"en-AG",parentLocale:"en-001"},{locale:"en-AI",parentLocale:"en-001"},{locale:"en-AS",parentLocale:"en"},{locale:"en-AT",parentLocale:"en-150"},{locale:"en-AU",parentLocale:"en-001"},{locale:"en-BB",parentLocale:"en-001"},{locale:"en-BE",parentLocale:"en-001"},{locale:"en-BI",parentLocale:"en"},{locale:"en-BM",parentLocale:"en-001"},{locale:"en-BS",parentLocale:"en-001"},{locale:"en-BW",parentLocale:"en-001"},{locale:"en-BZ",parentLocale:"en-001"},{locale:"en-CA",parentLocale:"en-001"},{locale:"en-CC",parentLocale:"en-001"},{locale:"en-CH",parentLocale:"en-150"},{locale:"en-CK",parentLocale:"en-001"},{locale:"en-CM",parentLocale:"en-001"},{locale:"en-CX",parentLocale:"en-001"},{locale:"en-CY",parentLocale:"en-001"},{locale:"en-DE",parentLocale:"en-150"},{locale:"en-DG",parentLocale:"en-001"},{locale:"en-DK",parentLocale:"en-150"},{locale:"en-DM",parentLocale:"en-001"},{locale:"en-Dsrt",pluralRuleFunction:function(e,t){return"other"},fields:{year:{displayName:"Year",relative:{0:"this year",1:"next year","-1":"last year"},relativeTime:{future:{other:"+{0} y"},past:{other:"-{0} y"}}},month:{displayName:"Month",relative:{0:"this month",1:"next month","-1":"last month"},relativeTime:{future:{other:"+{0} m"},past:{other:"-{0} m"}}},day:{displayName:"Day",relative:{0:"today",1:"tomorrow","-1":"yesterday"},relativeTime:{future:{other:"+{0} d"},past:{other:"-{0} d"}}},hour:{displayName:"Hour",relative:{0:"this hour"},relativeTime:{future:{other:"+{0} h"},past:{other:"-{0} h"}}},minute:{displayName:"Minute",relative:{0:"this minute"},relativeTime:{future:{other:"+{0} min"},past:{other:"-{0} min"}}},second:{displayName:"Second",relative:{0:"now"},relativeTime:{future:{other:"+{0} s"},past:{other:"-{0} s"}}}}},{locale:"en-ER",parentLocale:"en-001"},{locale:"en-FI",parentLocale:"en-150"},{locale:"en-FJ",parentLocale:"en-001"},{locale:"en-FK",parentLocale:"en-001"},{locale:"en-FM",parentLocale:"en-001"},{locale:"en-GB",parentLocale:"en-001"},{locale:"en-GD",parentLocale:"en-001"},{locale:"en-GG",parentLocale:"en-001"},{locale:"en-GH",parentLocale:"en-001"},{locale:"en-GI",parentLocale:"en-001"},{locale:"en-GM",parentLocale:"en-001"},{locale:"en-GU",parentLocale:"en"},{locale:"en-GY",parentLocale:"en-001"},{locale:"en-HK",parentLocale:"en-001"},{locale:"en-IE",parentLocale:"en-001"},{locale:"en-IL",parentLocale:"en-001"},{locale:"en-IM",parentLocale:"en-001"},{locale:"en-IN",parentLocale:"en-001"},{locale:"en-IO",parentLocale:"en-001"},{locale:"en-JE",parentLocale:"en-001"},{locale:"en-JM",parentLocale:"en-001"},{locale:"en-KE",parentLocale:"en-001"},{locale:"en-KI",parentLocale:"en-001"},{locale:"en-KN",parentLocale:"en-001"},{locale:"en-KY",parentLocale:"en-001"},{locale:"en-LC",parentLocale:"en-001"},{locale:"en-LR",parentLocale:"en-001"},{locale:"en-LS",parentLocale:"en-001"},{locale:"en-MG",parentLocale:"en-001"},{locale:"en-MH",parentLocale:"en"},{locale:"en-MO",parentLocale:"en-001"},{locale:"en-MP",parentLocale:"en"},{locale:"en-MS",parentLocale:"en-001"},{locale:"en-MT",parentLocale:"en-001"},{locale:"en-MU",parentLocale:"en-001"},{locale:"en-MW",parentLocale:"en-001"},{locale:"en-MY",parentLocale:"en-001"},{locale:"en-NA",parentLocale:"en-001"},{locale:"en-NF",parentLocale:"en-001"},{locale:"en-NG",parentLocale:"en-001"},{locale:"en-NL",parentLocale:"en-150"},{locale:"en-NR",parentLocale:"en-001"},{locale:"en-NU",parentLocale:"en-001"},{locale:"en-NZ",parentLocale:"en-001"},{locale:"en-PG",parentLocale:"en-001"},{locale:"en-PH",parentLocale:"en-001"},{locale:"en-PK",parentLocale:"en-001"},{locale:"en-PN",parentLocale:"en-001"},{locale:"en-PR",parentLocale:"en"},{locale:"en-PW",parentLocale:"en-001"},{locale:"en-RW",parentLocale:"en-001"},{locale:"en-SB",parentLocale:"en-001"},{locale:"en-SC",parentLocale:"en-001"},{locale:"en-SD",parentLocale:"en-001"},{locale:"en-SE",parentLocale:"en-150"},{locale:"en-SG",parentLocale:"en-001"},{locale:"en-SH",parentLocale:"en-001"},{locale:"en-SI",parentLocale:"en-150"},{locale:"en-SL",parentLocale:"en-001"},{locale:"en-SS",parentLocale:"en-001"},{locale:"en-SX",parentLocale:"en-001"},{locale:"en-SZ",parentLocale:"en-001"},{locale:"en-Shaw",pluralRuleFunction:function(e,t){return"other"},fields:{year:{displayName:"Year",relative:{0:"this year",1:"next year","-1":"last year"},relativeTime:{future:{other:"+{0} y"},past:{other:"-{0} y"}}},month:{displayName:"Month",relative:{0:"this month",1:"next month","-1":"last month"},relativeTime:{future:{other:"+{0} m"},past:{other:"-{0} m"}}},day:{displayName:"Day",relative:{0:"today",1:"tomorrow","-1":"yesterday"},relativeTime:{future:{other:"+{0} d"},past:{other:"-{0} d"}}},hour:{displayName:"Hour",relative:{0:"this hour"},relativeTime:{future:{other:"+{0} h"},past:{other:"-{0} h"}}},minute:{displayName:"Minute",relative:{0:"this minute"},relativeTime:{future:{other:"+{0} min"},past:{other:"-{0} min"}}},second:{displayName:"Second",relative:{0:"now"},relativeTime:{future:{other:"+{0} s"},past:{other:"-{0} s"}}}}},{locale:"en-TC",parentLocale:"en-001"},{locale:"en-TK",parentLocale:"en-001"},{locale:"en-TO",parentLocale:"en-001"},{locale:"en-TT",parentLocale:"en-001"},{locale:"en-TV",parentLocale:"en-001"},{locale:"en-TZ",parentLocale:"en-001"},{locale:"en-UG",parentLocale:"en-001"},{locale:"en-UM",parentLocale:"en"},{locale:"en-US",parentLocale:"en"},{locale:"en-VC",parentLocale:"en-001"},{locale:"en-VG",parentLocale:"en-001"},{locale:"en-VI",parentLocale:"en"},{locale:"en-VU",parentLocale:"en-001"},{locale:"en-WS",parentLocale:"en-001"},{locale:"en-ZA",parentLocale:"en-001"},{locale:"en-ZM",parentLocale:"en-001"},{locale:"en-ZW",parentLocale:"en-001"}]})},323:function(e,t,a){!function(t,a){e.exports=a()}(this,function(){"use strict";return[{locale:"es",pluralRuleFunction:function(e,t){return t?"other":1==e?"one":"other"},fields:{year:{displayName:"año",relative:{0:"este año",1:"el próximo año","-1":"el año pasado"},relativeTime:{future:{one:"dentro de {0} año",other:"dentro de {0} años"},past:{one:"hace {0} año",other:"hace {0} años"}}},month:{displayName:"mes",relative:{0:"este mes",1:"el próximo mes","-1":"el mes pasado"},relativeTime:{future:{one:"dentro de {0} mes",other:"dentro de {0} meses"},past:{one:"hace {0} mes",other:"hace {0} meses"}}},day:{displayName:"día",relative:{0:"hoy",1:"mañana",2:"pasado mañana","-2":"anteayer","-1":"ayer"},relativeTime:{future:{one:"dentro de {0} día",other:"dentro de {0} días"},past:{one:"hace {0} día",other:"hace {0} días"}}},hour:{displayName:"hora",relative:{0:"esta hora"},relativeTime:{future:{one:"dentro de {0} hora",other:"dentro de {0} horas"},past:{one:"hace {0} hora",other:"hace {0} horas"}}},minute:{displayName:"minuto",relative:{0:"este minuto"},relativeTime:{future:{one:"dentro de {0} minuto",other:"dentro de {0} minutos"},past:{one:"hace {0} minuto",other:"hace {0} minutos"}}},second:{displayName:"segundo",relative:{0:"ahora"},relativeTime:{future:{one:"dentro de {0} segundo",other:"dentro de {0} segundos"},past:{one:"hace {0} segundo",other:"hace {0} segundos"}}}}},{locale:"es-419",parentLocale:"es"},{locale:"es-AR",parentLocale:"es-419"},{locale:"es-BO",parentLocale:"es-419"},{locale:"es-BR",parentLocale:"es-419"},{locale:"es-BZ",parentLocale:"es-419"},{locale:"es-CL",parentLocale:"es-419"},{locale:"es-CO",parentLocale:"es-419"},{locale:"es-CR",parentLocale:"es-419",fields:{year:{displayName:"año",relative:{0:"este año",1:"el próximo año","-1":"el año pasado"},relativeTime:{future:{one:"dentro de {0} año",other:"dentro de {0} años"},past:{one:"hace {0} año",other:"hace {0} años"}}},month:{displayName:"mes",relative:{0:"este mes",1:"el próximo mes","-1":"el mes pasado"},relativeTime:{future:{one:"dentro de {0} mes",other:"dentro de {0} meses"},past:{one:"hace {0} mes",other:"hace {0} meses"}}},day:{displayName:"día",relative:{0:"hoy",1:"mañana",2:"pasado mañana","-2":"antier","-1":"ayer"},relativeTime:{future:{one:"dentro de {0} día",other:"dentro de {0} días"},past:{one:"hace {0} día",other:"hace {0} días"}}},hour:{displayName:"hora",relative:{0:"esta hora"},relativeTime:{future:{one:"dentro de {0} hora",other:"dentro de {0} horas"},past:{one:"hace {0} hora",other:"hace {0} horas"}}},minute:{displayName:"minuto",relative:{0:"este minuto"},relativeTime:{future:{one:"dentro de {0} minuto",other:"dentro de {0} minutos"},past:{one:"hace {0} minuto",other:"hace {0} minutos"}}},second:{displayName:"segundo",relative:{0:"ahora"},relativeTime:{future:{one:"dentro de {0} segundo",other:"dentro de {0} segundos"},past:{one:"hace {0} segundo",other:"hace {0} segundos"}}}}},{locale:"es-CU",parentLocale:"es-419"},{locale:"es-DO",parentLocale:"es-419",fields:{year:{displayName:"Año",relative:{0:"este año",1:"el próximo año","-1":"el año pasado"},relativeTime:{future:{one:"dentro de {0} año",other:"dentro de {0} años"},past:{one:"hace {0} año",other:"hace {0} años"}}},month:{displayName:"Mes",relative:{0:"este mes",1:"el próximo mes","-1":"el mes pasado"},relativeTime:{future:{one:"dentro de {0} mes",other:"dentro de {0} meses"},past:{one:"hace {0} mes",other:"hace {0} meses"}}},day:{displayName:"Día",relative:{0:"hoy",1:"mañana",2:"pasado mañana","-2":"anteayer","-1":"ayer"},relativeTime:{future:{one:"dentro de {0} día",other:"dentro de {0} días"},past:{one:"hace {0} día",other:"hace {0} días"}}},hour:{displayName:"hora",relative:{0:"esta hora"},relativeTime:{future:{one:"dentro de {0} hora",other:"dentro de {0} horas"},past:{one:"hace {0} hora",other:"hace {0} horas"}}},minute:{displayName:"Minuto",relative:{0:"este minuto"},relativeTime:{future:{one:"dentro de {0} minuto",other:"dentro de {0} minutos"},past:{one:"hace {0} minuto",other:"hace {0} minutos"}}},second:{displayName:"Segundo",relative:{0:"ahora"},relativeTime:{future:{one:"dentro de {0} segundo",other:"dentro de {0} segundos"},past:{one:"hace {0} segundo",other:"hace {0} segundos"}}}}},{locale:"es-EA",parentLocale:"es"},{locale:"es-EC",parentLocale:"es-419"},{locale:"es-GQ",parentLocale:"es"},{locale:"es-GT",parentLocale:"es-419",fields:{year:{displayName:"año",relative:{0:"este año",1:"el próximo año","-1":"el año pasado"},relativeTime:{future:{one:"dentro de {0} año",other:"dentro de {0} años"},past:{one:"hace {0} año",other:"hace {0} años"}}},month:{displayName:"mes",relative:{0:"este mes",1:"el próximo mes","-1":"el mes pasado"},relativeTime:{future:{one:"dentro de {0} mes",other:"dentro de {0} meses"},past:{one:"hace {0} mes",other:"hace {0} meses"}}},day:{displayName:"día",relative:{0:"hoy",1:"mañana",2:"pasado mañana","-2":"antier","-1":"ayer"},relativeTime:{future:{one:"dentro de {0} día",other:"dentro de {0} días"},past:{one:"hace {0} día",other:"hace {0} días"}}},hour:{displayName:"hora",relative:{0:"esta hora"},relativeTime:{future:{one:"dentro de {0} hora",other:"dentro de {0} horas"},past:{one:"hace {0} hora",other:"hace {0} horas"}}},minute:{displayName:"minuto",relative:{0:"este minuto"},relativeTime:{future:{one:"dentro de {0} minuto",other:"dentro de {0} minutos"},past:{one:"hace {0} minuto",other:"hace {0} minutos"}}},second:{displayName:"segundo",relative:{0:"ahora"},relativeTime:{future:{one:"dentro de {0} segundo",other:"dentro de {0} segundos"},past:{one:"hace {0} segundo",other:"hace {0} segundos"}}}}},{locale:"es-HN",parentLocale:"es-419",fields:{year:{displayName:"año",relative:{0:"este año",1:"el próximo año","-1":"el año pasado"},relativeTime:{future:{one:"dentro de {0} año",other:"dentro de {0} años"},past:{one:"hace {0} año",other:"hace {0} años"}}},month:{displayName:"mes",relative:{0:"este mes",1:"el próximo mes","-1":"el mes pasado"},relativeTime:{future:{one:"dentro de {0} mes",other:"dentro de {0} meses"},past:{one:"hace {0} mes",other:"hace {0} meses"}}},day:{displayName:"día",relative:{0:"hoy",1:"mañana",2:"pasado mañana","-2":"antier","-1":"ayer"},relativeTime:{future:{one:"dentro de {0} día",other:"dentro de {0} días"},past:{one:"hace {0} día",other:"hace {0} días"}}},hour:{displayName:"hora",relative:{0:"esta hora"},relativeTime:{future:{one:"dentro de {0} hora",other:"dentro de {0} horas"},past:{one:"hace {0} hora",other:"hace {0} horas"}}},minute:{displayName:"minuto",relative:{0:"este minuto"},relativeTime:{future:{one:"dentro de {0} minuto",other:"dentro de {0} minutos"},past:{one:"hace {0} minuto",other:"hace {0} minutos"}}},second:{displayName:"segundo",relative:{0:"ahora"},relativeTime:{future:{one:"dentro de {0} segundo",other:"dentro de {0} segundos"},past:{one:"hace {0} segundo",other:"hace {0} segundos"}}}}},{locale:"es-IC",parentLocale:"es"},{locale:"es-MX",parentLocale:"es-419",fields:{year:{displayName:"año",relative:{0:"este año",1:"el año próximo","-1":"el año pasado"},relativeTime:{future:{one:"dentro de {0} año",other:"dentro de {0} años"},past:{one:"hace {0} año",other:"hace {0} años"}}},month:{displayName:"mes",relative:{0:"este mes",1:"el mes próximo","-1":"el mes pasado"},relativeTime:{future:{one:"en {0} mes",other:"en {0} meses"},past:{one:"hace {0} mes",other:"hace {0} meses"}}},day:{displayName:"día",relative:{0:"hoy",1:"mañana",2:"pasado mañana","-2":"antier","-1":"ayer"},relativeTime:{future:{one:"dentro de {0} día",other:"dentro de {0} días"},past:{one:"hace {0} día",other:"hace {0} días"}}},hour:{displayName:"hora",relative:{0:"esta hora"},relativeTime:{future:{one:"dentro de {0} hora",other:"dentro de {0} horas"},past:{one:"hace {0} hora",other:"hace {0} horas"}}},minute:{displayName:"minuto",relative:{0:"este minuto"},relativeTime:{future:{one:"dentro de {0} minuto",other:"dentro de {0} minutos"},past:{one:"hace {0} minuto",other:"hace {0} minutos"}}},second:{displayName:"segundo",relative:{0:"ahora"},relativeTime:{future:{one:"dentro de {0} segundo",other:"dentro de {0} segundos"},past:{one:"hace {0} segundo",other:"hace {0} segundos"}}}}},{locale:"es-NI",parentLocale:"es-419",fields:{year:{displayName:"año",relative:{0:"este año",1:"el próximo año","-1":"el año pasado"},relativeTime:{future:{one:"dentro de {0} año",other:"dentro de {0} años"},past:{one:"hace {0} año",other:"hace {0} años"}}},month:{displayName:"mes",relative:{0:"este mes",1:"el próximo mes","-1":"el mes pasado"},relativeTime:{future:{one:"dentro de {0} mes",other:"dentro de {0} meses"},past:{one:"hace {0} mes",other:"hace {0} meses"}}},day:{displayName:"día",relative:{0:"hoy",1:"mañana",2:"pasado mañana","-2":"antier","-1":"ayer"},relativeTime:{future:{one:"dentro de {0} día",other:"dentro de {0} días"},past:{one:"hace {0} día",other:"hace {0} días"}}},hour:{displayName:"hora",relative:{0:"esta hora"},relativeTime:{future:{one:"dentro de {0} hora",other:"dentro de {0} horas"},past:{one:"hace {0} hora",other:"hace {0} horas"}}},minute:{displayName:"minuto",relative:{0:"este minuto"},relativeTime:{future:{one:"dentro de {0} minuto",other:"dentro de {0} minutos"},past:{one:"hace {0} minuto",other:"hace {0} minutos"}}},second:{displayName:"segundo",relative:{0:"ahora"},relativeTime:{future:{one:"dentro de {0} segundo",other:"dentro de {0} segundos" +},past:{one:"hace {0} segundo",other:"hace {0} segundos"}}}}},{locale:"es-PA",parentLocale:"es-419",fields:{year:{displayName:"año",relative:{0:"este año",1:"el próximo año","-1":"el año pasado"},relativeTime:{future:{one:"dentro de {0} año",other:"dentro de {0} años"},past:{one:"hace {0} año",other:"hace {0} años"}}},month:{displayName:"mes",relative:{0:"este mes",1:"el próximo mes","-1":"el mes pasado"},relativeTime:{future:{one:"dentro de {0} mes",other:"dentro de {0} meses"},past:{one:"hace {0} mes",other:"hace {0} meses"}}},day:{displayName:"día",relative:{0:"hoy",1:"mañana",2:"pasado mañana","-2":"antier","-1":"ayer"},relativeTime:{future:{one:"dentro de {0} día",other:"dentro de {0} días"},past:{one:"hace {0} día",other:"hace {0} días"}}},hour:{displayName:"hora",relative:{0:"esta hora"},relativeTime:{future:{one:"dentro de {0} hora",other:"dentro de {0} horas"},past:{one:"hace {0} hora",other:"hace {0} horas"}}},minute:{displayName:"minuto",relative:{0:"este minuto"},relativeTime:{future:{one:"dentro de {0} minuto",other:"dentro de {0} minutos"},past:{one:"hace {0} minuto",other:"hace {0} minutos"}}},second:{displayName:"segundo",relative:{0:"ahora"},relativeTime:{future:{one:"dentro de {0} segundo",other:"dentro de {0} segundos"},past:{one:"hace {0} segundo",other:"hace {0} segundos"}}}}},{locale:"es-PE",parentLocale:"es-419"},{locale:"es-PH",parentLocale:"es"},{locale:"es-PR",parentLocale:"es-419"},{locale:"es-PY",parentLocale:"es-419",fields:{year:{displayName:"año",relative:{0:"este año",1:"el próximo año","-1":"el año pasado"},relativeTime:{future:{one:"dentro de {0} año",other:"dentro de {0} años"},past:{one:"hace {0} año",other:"hace {0} años"}}},month:{displayName:"mes",relative:{0:"este mes",1:"el próximo mes","-1":"el mes pasado"},relativeTime:{future:{one:"dentro de {0} mes",other:"dentro de {0} meses"},past:{one:"hace {0} mes",other:"hace {0} meses"}}},day:{displayName:"día",relative:{0:"hoy",1:"mañana",2:"pasado mañana","-2":"antes de ayer","-1":"ayer"},relativeTime:{future:{one:"dentro de {0} día",other:"dentro de {0} días"},past:{one:"hace {0} día",other:"hace {0} días"}}},hour:{displayName:"hora",relative:{0:"esta hora"},relativeTime:{future:{one:"dentro de {0} hora",other:"dentro de {0} horas"},past:{one:"hace {0} hora",other:"hace {0} horas"}}},minute:{displayName:"minuto",relative:{0:"este minuto"},relativeTime:{future:{one:"dentro de {0} minuto",other:"dentro de {0} minutos"},past:{one:"hace {0} minuto",other:"hace {0} minutos"}}},second:{displayName:"segundo",relative:{0:"ahora"},relativeTime:{future:{one:"dentro de {0} segundo",other:"dentro de {0} segundos"},past:{one:"hace {0} segundo",other:"hace {0} segundos"}}}}},{locale:"es-SV",parentLocale:"es-419",fields:{year:{displayName:"año",relative:{0:"este año",1:"el próximo año","-1":"el año pasado"},relativeTime:{future:{one:"dentro de {0} año",other:"dentro de {0} años"},past:{one:"hace {0} año",other:"hace {0} años"}}},month:{displayName:"mes",relative:{0:"este mes",1:"el próximo mes","-1":"el mes pasado"},relativeTime:{future:{one:"dentro de {0} mes",other:"dentro de {0} meses"},past:{one:"hace {0} mes",other:"hace {0} meses"}}},day:{displayName:"día",relative:{0:"hoy",1:"mañana",2:"pasado mañana","-2":"antier","-1":"ayer"},relativeTime:{future:{one:"dentro de {0} día",other:"dentro de {0} días"},past:{one:"hace {0} día",other:"hace {0} días"}}},hour:{displayName:"hora",relative:{0:"esta hora"},relativeTime:{future:{one:"dentro de {0} hora",other:"dentro de {0} horas"},past:{one:"hace {0} hora",other:"hace {0} horas"}}},minute:{displayName:"minuto",relative:{0:"este minuto"},relativeTime:{future:{one:"dentro de {0} minuto",other:"dentro de {0} minutos"},past:{one:"hace {0} minuto",other:"hace {0} minutos"}}},second:{displayName:"segundo",relative:{0:"ahora"},relativeTime:{future:{one:"dentro de {0} segundo",other:"dentro de {0} segundos"},past:{one:"hace {0} segundo",other:"hace {0} segundos"}}}}},{locale:"es-US",parentLocale:"es-419"},{locale:"es-UY",parentLocale:"es-419"},{locale:"es-VE",parentLocale:"es-419"}]})},324:function(e,t,a){!function(t,a){e.exports=a()}(this,function(){"use strict";return[{locale:"fr",pluralRuleFunction:function(e,t){return t?1==e?"one":"other":e>=0&&e<2?"one":"other"},fields:{year:{displayName:"année",relative:{0:"cette année",1:"l’année prochaine","-1":"l’année dernière"},relativeTime:{future:{one:"dans {0} an",other:"dans {0} ans"},past:{one:"il y a {0} an",other:"il y a {0} ans"}}},month:{displayName:"mois",relative:{0:"ce mois-ci",1:"le mois prochain","-1":"le mois dernier"},relativeTime:{future:{one:"dans {0} mois",other:"dans {0} mois"},past:{one:"il y a {0} mois",other:"il y a {0} mois"}}},day:{displayName:"jour",relative:{0:"aujourd’hui",1:"demain",2:"après-demain","-2":"avant-hier","-1":"hier"},relativeTime:{future:{one:"dans {0} jour",other:"dans {0} jours"},past:{one:"il y a {0} jour",other:"il y a {0} jours"}}},hour:{displayName:"heure",relative:{0:"cette heure-ci"},relativeTime:{future:{one:"dans {0} heure",other:"dans {0} heures"},past:{one:"il y a {0} heure",other:"il y a {0} heures"}}},minute:{displayName:"minute",relative:{0:"cette minute-ci"},relativeTime:{future:{one:"dans {0} minute",other:"dans {0} minutes"},past:{one:"il y a {0} minute",other:"il y a {0} minutes"}}},second:{displayName:"seconde",relative:{0:"maintenant"},relativeTime:{future:{one:"dans {0} seconde",other:"dans {0} secondes"},past:{one:"il y a {0} seconde",other:"il y a {0} secondes"}}}}},{locale:"fr-BE",parentLocale:"fr"},{locale:"fr-BF",parentLocale:"fr"},{locale:"fr-BI",parentLocale:"fr"},{locale:"fr-BJ",parentLocale:"fr"},{locale:"fr-BL",parentLocale:"fr"},{locale:"fr-CA",parentLocale:"fr",fields:{year:{displayName:"année",relative:{0:"cette année",1:"l’année prochaine","-1":"l’année dernière"},relativeTime:{future:{one:"Dans {0} an",other:"Dans {0} ans"},past:{one:"Il y a {0} an",other:"Il y a {0} ans"}}},month:{displayName:"mois",relative:{0:"ce mois-ci",1:"le mois prochain","-1":"le mois dernier"},relativeTime:{future:{one:"dans {0} mois",other:"dans {0} mois"},past:{one:"il y a {0} mois",other:"il y a {0} mois"}}},day:{displayName:"jour",relative:{0:"aujourd’hui",1:"demain",2:"après-demain","-2":"avant-hier","-1":"hier"},relativeTime:{future:{one:"dans {0} jour",other:"dans {0} jours"},past:{one:"il y a {0} jour",other:"il y a {0} jours"}}},hour:{displayName:"heure",relative:{0:"cette heure-ci"},relativeTime:{future:{one:"dans {0} heure",other:"dans {0} heures"},past:{one:"il y a {0} heure",other:"il y a {0} heures"}}},minute:{displayName:"minute",relative:{0:"cette minute-ci"},relativeTime:{future:{one:"dans {0} minute",other:"dans {0} minutes"},past:{one:"il y a {0} minute",other:"il y a {0} minutes"}}},second:{displayName:"seconde",relative:{0:"maintenant"},relativeTime:{future:{one:"dans {0} seconde",other:"dans {0} secondes"},past:{one:"il y a {0} seconde",other:"il y a {0} secondes"}}}}},{locale:"fr-CD",parentLocale:"fr"},{locale:"fr-CF",parentLocale:"fr"},{locale:"fr-CG",parentLocale:"fr"},{locale:"fr-CH",parentLocale:"fr"},{locale:"fr-CI",parentLocale:"fr"},{locale:"fr-CM",parentLocale:"fr"},{locale:"fr-DJ",parentLocale:"fr"},{locale:"fr-DZ",parentLocale:"fr"},{locale:"fr-GA",parentLocale:"fr"},{locale:"fr-GF",parentLocale:"fr"},{locale:"fr-GN",parentLocale:"fr"},{locale:"fr-GP",parentLocale:"fr"},{locale:"fr-GQ",parentLocale:"fr"},{locale:"fr-HT",parentLocale:"fr"},{locale:"fr-KM",parentLocale:"fr"},{locale:"fr-LU",parentLocale:"fr"},{locale:"fr-MA",parentLocale:"fr"},{locale:"fr-MC",parentLocale:"fr"},{locale:"fr-MF",parentLocale:"fr"},{locale:"fr-MG",parentLocale:"fr"},{locale:"fr-ML",parentLocale:"fr"},{locale:"fr-MQ",parentLocale:"fr"},{locale:"fr-MR",parentLocale:"fr"},{locale:"fr-MU",parentLocale:"fr"},{locale:"fr-NC",parentLocale:"fr"},{locale:"fr-NE",parentLocale:"fr"},{locale:"fr-PF",parentLocale:"fr"},{locale:"fr-PM",parentLocale:"fr"},{locale:"fr-RE",parentLocale:"fr"},{locale:"fr-RW",parentLocale:"fr"},{locale:"fr-SC",parentLocale:"fr"},{locale:"fr-SN",parentLocale:"fr"},{locale:"fr-SY",parentLocale:"fr"},{locale:"fr-TD",parentLocale:"fr"},{locale:"fr-TG",parentLocale:"fr"},{locale:"fr-TN",parentLocale:"fr"},{locale:"fr-VU",parentLocale:"fr"},{locale:"fr-WF",parentLocale:"fr"},{locale:"fr-YT",parentLocale:"fr"}]})},325:function(e,t,a){!function(t,a){e.exports=a()}(this,function(){"use strict";return[{locale:"hi",pluralRuleFunction:function(e,t){return t?1==e?"one":2==e||3==e?"two":4==e?"few":6==e?"many":"other":e>=0&&e<=1?"one":"other"},fields:{year:{displayName:"वर्ष",relative:{0:"इस वर्ष",1:"अगला वर्ष","-1":"पिछला वर्ष"},relativeTime:{future:{one:"{0} वर्ष में",other:"{0} वर्ष में"},past:{one:"{0} वर्ष पहले",other:"{0} वर्ष पहले"}}},month:{displayName:"माह",relative:{0:"इस माह",1:"अगला माह","-1":"पिछला माह"},relativeTime:{future:{one:"{0} माह में",other:"{0} माह में"},past:{one:"{0} माह पहले",other:"{0} माह पहले"}}},day:{displayName:"दिन",relative:{0:"आज",1:"कल",2:"परसों","-2":"बीता परसों","-1":"कल"},relativeTime:{future:{one:"{0} दिन में",other:"{0} दिन में"},past:{one:"{0} दिन पहले",other:"{0} दिन पहले"}}},hour:{displayName:"घंटा",relative:{0:"यह घंटा"},relativeTime:{future:{one:"{0} घंटे में",other:"{0} घंटे में"},past:{one:"{0} घंटे पहले",other:"{0} घंटे पहले"}}},minute:{displayName:"मिनट",relative:{0:"यह मिनट"},relativeTime:{future:{one:"{0} मिनट में",other:"{0} मिनट में"},past:{one:"{0} मिनट पहले",other:"{0} मिनट पहले"}}},second:{displayName:"सेकंड",relative:{0:"अब"},relativeTime:{future:{one:"{0} सेकंड में",other:"{0} सेकंड में"},past:{one:"{0} सेकंड पहले",other:"{0} सेकंड पहले"}}}}}]})},326:function(e,t,a){!function(t,a){e.exports=a()}(this,function(){"use strict";return[{locale:"id",pluralRuleFunction:function(e,t){return"other"},fields:{year:{displayName:"Tahun",relative:{0:"tahun ini",1:"tahun depan","-1":"tahun lalu"},relativeTime:{future:{other:"Dalam {0} tahun"},past:{other:"{0} tahun yang lalu"}}},month:{displayName:"Bulan",relative:{0:"bulan ini",1:"Bulan berikutnya","-1":"bulan lalu"},relativeTime:{future:{other:"Dalam {0} bulan"},past:{other:"{0} bulan yang lalu"}}},day:{displayName:"Hari",relative:{0:"hari ini",1:"besok",2:"lusa","-2":"kemarin dulu","-1":"kemarin"},relativeTime:{future:{other:"Dalam {0} hari"},past:{other:"{0} hari yang lalu"}}},hour:{displayName:"Jam",relative:{0:"jam ini"},relativeTime:{future:{other:"Dalam {0} jam"},past:{other:"{0} jam yang lalu"}}},minute:{displayName:"Menit",relative:{0:"menit ini"},relativeTime:{future:{other:"Dalam {0} menit"},past:{other:"{0} menit yang lalu"}}},second:{displayName:"Detik",relative:{0:"sekarang"},relativeTime:{future:{other:"Dalam {0} detik"},past:{other:"{0} detik yang lalu"}}}}}]})},327:function(e,t,a){!function(t,a){e.exports=a()}(this,function(){"use strict";return[{locale:"ja",pluralRuleFunction:function(e,t){return"other"},fields:{year:{displayName:"年",relative:{0:"今年",1:"翌年","-1":"昨年"},relativeTime:{future:{other:"{0} 年後"},past:{other:"{0} 年前"}}},month:{displayName:"月",relative:{0:"今月",1:"翌月","-1":"先月"},relativeTime:{future:{other:"{0} か月後"},past:{other:"{0} か月前"}}},day:{displayName:"日",relative:{0:"今日",1:"明日",2:"明後日","-2":"一昨日","-1":"昨日"},relativeTime:{future:{other:"{0} 日後"},past:{other:"{0} 日前"}}},hour:{displayName:"時",relative:{0:"1 時間以内"},relativeTime:{future:{other:"{0} 時間後"},past:{other:"{0} 時間前"}}},minute:{displayName:"分",relative:{0:"1 分以内"},relativeTime:{future:{other:"{0} 分後"},past:{other:"{0} 分前"}}},second:{displayName:"秒",relative:{0:"今"},relativeTime:{future:{other:"{0} 秒後"},past:{other:"{0} 秒前"}}}}}]})},328:function(e,t,a){!function(t,a){e.exports=a()}(this,function(){"use strict";return[{locale:"km",pluralRuleFunction:function(e,t){return"other"},fields:{year:{displayName:"ឆ្នាំ",relative:{0:"ឆ្នាំ​នេះ",1:"ឆ្នាំ​ក្រោយ","-1":"ឆ្នាំ​មុន"},relativeTime:{future:{other:"{0} ឆ្នាំទៀត"},past:{other:"{0} ឆ្នាំ​មុន"}}},month:{displayName:"ខែ",relative:{0:"ខែ​នេះ",1:"ខែ​ក្រោយ","-1":"ខែ​មុន"},relativeTime:{future:{other:"{0} ខែទៀត"},past:{other:"{0} ខែមុន"}}},day:{displayName:"ថ្ងៃ",relative:{0:"ថ្ងៃ​នេះ",1:"ថ្ងៃ​ស្អែក",2:"​ខាន​ស្អែក","-2":"ម្សិល​ម៉្ងៃ","-1":"ម្សិលមិញ"},relativeTime:{future:{other:"{0} ថ្ងៃទៀត"},past:{other:"{0} ថ្ងៃ​មុន"}}},hour:{displayName:"ម៉ោង",relative:{0:"ម៉ោងនេះ"},relativeTime:{future:{other:"ក្នុង​រយៈ​ពេល {0} ម៉ោង"},past:{other:"{0} ម៉ោង​មុន"}}},minute:{displayName:"នាទី",relative:{0:"នាទីនេះ"},relativeTime:{future:{other:"{0} នាទីទៀត"},past:{other:"{0} នាទី​មុន"}}},second:{displayName:"វិនាទី",relative:{0:"ឥឡូវ"},relativeTime:{future:{other:"{0} វិនាទីទៀត"},past:{other:"{0} វិនាទី​មុន"}}}}}]})},329:function(e,t,a){!function(t,a){e.exports=a()}(this,function(){"use strict";return[{locale:"ko",pluralRuleFunction:function(e,t){return"other"},fields:{year:{displayName:"년",relative:{0:"올해",1:"내년","-1":"작년"},relativeTime:{future:{other:"{0}년 후"},past:{other:"{0}년 전"}}},month:{displayName:"월",relative:{0:"이번 달",1:"다음 달","-1":"지난달"},relativeTime:{future:{other:"{0}개월 후"},past:{other:"{0}개월 전"}}},day:{displayName:"일",relative:{0:"오늘",1:"내일",2:"모레","-2":"그저께","-1":"어제"},relativeTime:{future:{other:"{0}일 후"},past:{other:"{0}일 전"}}},hour:{displayName:"시",relative:{0:"현재 시간"},relativeTime:{future:{other:"{0}시간 후"},past:{other:"{0}시간 전"}}},minute:{displayName:"분",relative:{0:"현재 분"},relativeTime:{future:{other:"{0}분 후"},past:{other:"{0}분 전"}}},second:{displayName:"초",relative:{0:"지금"},relativeTime:{future:{other:"{0}초 후"},past:{other:"{0}초 전"}}}}},{locale:"ko-KP",parentLocale:"ko"}]})},330:function(e,t,a){!function(t,a){e.exports=a()}(this,function(){"use strict";return[{locale:"mk",pluralRuleFunction:function(e,t){var a=String(e).split("."),o=a[0],r=a[1]||"",n=!a[1],l=o.slice(-1),i=o.slice(-2),s=r.slice(-1);return t?1==l&&11!=i?"one":2==l&&12!=i?"two":7!=l&&8!=l||17==i||18==i?"other":"many":n&&1==l||1==s?"one":"other"},fields:{year:{displayName:"година",relative:{0:"оваа година",1:"следната година","-1":"минатата година"},relativeTime:{future:{one:"за {0} година",other:"за {0} години"},past:{one:"пред {0} година",other:"пред {0} години"}}},month:{displayName:"месец",relative:{0:"овој месец",1:"следниот месец","-1":"минатиот месец"},relativeTime:{future:{one:"за {0} месец",other:"за {0} месеци"},past:{one:"пред {0} месец",other:"пред {0} месеци"}}},day:{displayName:"ден",relative:{0:"денес",1:"утре",2:"задутре","-2":"завчера","-1":"вчера"},relativeTime:{future:{one:"за {0} ден",other:"за {0} дена"},past:{one:"пред {0} ден",other:"пред {0} дена"}}},hour:{displayName:"час",relative:{0:"часов"},relativeTime:{future:{one:"за {0} час",other:"за {0} часа"},past:{one:"пред {0} час",other:"пред {0} часа"}}},minute:{displayName:"минута",relative:{0:"оваа минута"},relativeTime:{future:{one:"за {0} минута",other:"за {0} минути"},past:{one:"пред {0} минута",other:"пред {0} минути"}}},second:{displayName:"секунда",relative:{0:"сега"},relativeTime:{future:{one:"за {0} секунда",other:"за {0} секунди"},past:{one:"пред {0} секунда",other:"пред {0} секунди"}}}}}]})},331:function(e,t,a){!function(t,a){e.exports=a()}(this,function(){"use strict";return[{locale:"mn",pluralRuleFunction:function(e,t){return t?"other":1==e?"one":"other"},fields:{year:{displayName:"жил",relative:{0:"энэ жил",1:"ирэх жил","-1":"өнгөрсөн жил"},relativeTime:{future:{one:"{0} жилийн дараа",other:"{0} жилийн дараа"},past:{one:"{0} жилийн өмнө",other:"{0} жилийн өмнө"}}},month:{displayName:"сар",relative:{0:"энэ сар",1:"ирэх сар","-1":"өнгөрсөн сар"},relativeTime:{future:{one:"{0} сарын дараа",other:"{0} сарын дараа"},past:{one:"{0} сарын өмнө",other:"{0} сарын өмнө"}}},day:{displayName:"өдөр",relative:{0:"өнөөдөр",1:"маргааш",2:"нөгөөдөр","-2":"уржигдар","-1":"өчигдөр"},relativeTime:{future:{one:"{0} өдрийн дараа",other:"{0} өдрийн дараа"},past:{one:"{0} өдрийн өмнө",other:"{0} өдрийн өмнө"}}},hour:{displayName:"цаг",relative:{0:"энэ цаг"},relativeTime:{future:{one:"{0} цагийн дараа",other:"{0} цагийн дараа"},past:{one:"{0} цагийн өмнө",other:"{0} цагийн өмнө"}}},minute:{displayName:"минут",relative:{0:"энэ минут"},relativeTime:{future:{one:"{0} минутын дараа",other:"{0} минутын дараа"},past:{one:"{0} минутын өмнө",other:"{0} минутын өмнө"}}},second:{displayName:"секунд",relative:{0:"одоо"},relativeTime:{future:{one:"{0} секундын дараа",other:"{0} секундын дараа"},past:{one:"{0} секундын өмнө",other:"{0} секундын өмнө"}}}}},{locale:"mn-Mong",pluralRuleFunction:function(e,t){return"other"},fields:{year:{displayName:"Year",relative:{0:"this year",1:"next year","-1":"last year"},relativeTime:{future:{other:"+{0} y"},past:{other:"-{0} y"}}},month:{displayName:"Month",relative:{0:"this month",1:"next month","-1":"last month"},relativeTime:{future:{other:"+{0} m"},past:{other:"-{0} m"}}},day:{displayName:"Day",relative:{0:"today",1:"tomorrow","-1":"yesterday"},relativeTime:{future:{other:"+{0} d"},past:{other:"-{0} d"}}},hour:{displayName:"Hour",relative:{0:"this hour"},relativeTime:{future:{other:"+{0} h"},past:{other:"-{0} h"}}},minute:{displayName:"Minute",relative:{0:"this minute"},relativeTime:{future:{other:"+{0} min"},past:{other:"-{0} min"}}},second:{displayName:"Second",relative:{0:"now"},relativeTime:{future:{other:"+{0} s"},past:{other:"-{0} s"}}}}}]})},332:function(e,t,a){!function(t,a){e.exports=a()}(this,function(){"use strict";return[{locale:"pl",pluralRuleFunction:function(e,t){var a=String(e).split("."),o=a[0],r=!a[1],n=o.slice(-1),l=o.slice(-2);return t?"other":1==e&&r?"one":r&&n>=2&&n<=4&&(l<12||l>14)?"few":r&&1!=o&&(0==n||1==n)||r&&n>=5&&n<=9||r&&l>=12&&l<=14?"many":"other"},fields:{year:{displayName:"rok",relative:{0:"w tym roku",1:"w przyszłym roku","-1":"w zeszłym roku"},relativeTime:{future:{one:"za {0} rok",few:"za {0} lata",many:"za {0} lat",other:"za {0} roku"},past:{one:"{0} rok temu",few:"{0} lata temu",many:"{0} lat temu",other:"{0} roku temu"}}},month:{displayName:"miesiąc",relative:{0:"w tym miesiącu",1:"w przyszłym miesiącu","-1":"w zeszłym miesiącu"},relativeTime:{future:{one:"za {0} miesiąc",few:"za {0} miesiące",many:"za {0} miesięcy",other:"za {0} miesiąca"},past:{one:"{0} miesiąc temu",few:"{0} miesiące temu",many:"{0} miesięcy temu",other:"{0} miesiąca temu"}}},day:{displayName:"dzień",relative:{0:"dzisiaj",1:"jutro",2:"pojutrze","-2":"przedwczoraj","-1":"wczoraj"},relativeTime:{future:{one:"za {0} dzień",few:"za {0} dni",many:"za {0} dni",other:"za {0} dnia"},past:{one:"{0} dzień temu",few:"{0} dni temu",many:"{0} dni temu",other:"{0} dnia temu"}}},hour:{displayName:"godzina",relative:{0:"ta godzina"},relativeTime:{future:{one:"za {0} godzinę",few:"za {0} godziny",many:"za {0} godzin",other:"za {0} godziny"},past:{one:"{0} godzinę temu",few:"{0} godziny temu",many:"{0} godzin temu",other:"{0} godziny temu"}}},minute:{displayName:"minuta",relative:{0:"ta minuta"},relativeTime:{future:{one:"za {0} minutę",few:"za {0} minuty",many:"za {0} minut",other:"za {0} minuty"},past:{one:"{0} minutę temu",few:"{0} minuty temu",many:"{0} minut temu",other:"{0} minuty temu"}}},second:{displayName:"sekunda",relative:{0:"teraz"},relativeTime:{future:{one:"za {0} sekundę",few:"za {0} sekundy",many:"za {0} sekund",other:"za {0} sekundy"},past:{one:"{0} sekundę temu",few:"{0} sekundy temu",many:"{0} sekund temu",other:"{0} sekundy temu"}}}}}]})},333:function(e,t,a){!function(t,a){e.exports=a()}(this,function(){"use strict";return[{locale:"pt",pluralRuleFunction:function(e,t){var a=String(e).split(".")[0];return t?"other":0==a||1==a?"one":"other"},fields:{year:{displayName:"ano",relative:{0:"este ano",1:"próximo ano","-1":"ano passado"},relativeTime:{future:{one:"em {0} ano",other:"em {0} anos"},past:{one:"há {0} ano",other:"há {0} anos"}}},month:{displayName:"mês",relative:{0:"este mês",1:"próximo mês","-1":"mês passado"},relativeTime:{future:{one:"em {0} mês",other:"em {0} meses"},past:{one:"há {0} mês",other:"há {0} meses"}}},day:{displayName:"dia",relative:{0:"hoje",1:"amanhã",2:"depois de amanhã","-2":"anteontem","-1":"ontem"},relativeTime:{future:{one:"em {0} dia",other:"em {0} dias"},past:{one:"há {0} dia",other:"há {0} dias"}}},hour:{displayName:"hora",relative:{0:"esta hora"},relativeTime:{future:{one:"em {0} hora",other:"em {0} horas"},past:{one:"há {0} hora",other:"há {0} horas"}}},minute:{displayName:"minuto",relative:{0:"este minuto"},relativeTime:{future:{one:"em {0} minuto",other:"em {0} minutos"},past:{one:"há {0} minuto",other:"há {0} minutos"}}},second:{displayName:"segundo",relative:{0:"agora"},relativeTime:{future:{one:"em {0} segundo",other:"em {0} segundos"},past:{one:"há {0} segundo",other:"há {0} segundos"}}}}},{locale:"pt-AO",parentLocale:"pt-PT"},{locale:"pt-PT",parentLocale:"pt",fields:{year:{displayName:"ano",relative:{0:"este ano",1:"próximo ano","-1":"ano passado"},relativeTime:{future:{one:"dentro de {0} ano",other:"dentro de {0} anos"},past:{one:"há {0} ano",other:"há {0} anos"}}},month:{displayName:"mês",relative:{0:"este mês",1:"próximo mês","-1":"mês passado"},relativeTime:{future:{one:"dentro de {0} mês",other:"dentro de {0} meses"},past:{one:"há {0} mês",other:"há {0} meses"}}},day:{displayName:"dia",relative:{0:"hoje",1:"amanhã",2:"depois de amanhã","-2":"anteontem","-1":"ontem"},relativeTime:{future:{one:"dentro de {0} dia",other:"dentro de {0} dias"},past:{one:"há {0} dia",other:"há {0} dias"}}},hour:{displayName:"hora",relative:{0:"esta hora"},relativeTime:{future:{one:"dentro de {0} hora",other:"dentro de {0} horas"},past:{one:"há {0} hora",other:"há {0} horas"}}},minute:{displayName:"minuto",relative:{0:"este minuto"},relativeTime:{future:{one:"dentro de {0} minuto",other:"dentro de {0} minutos"},past:{one:"há {0} minuto",other:"há {0} minutos"}}},second:{displayName:"segundo",relative:{0:"agora"},relativeTime:{future:{one:"dentro de {0} segundo",other:"dentro de {0} segundos"},past:{one:"há {0} segundo",other:"há {0} segundos"}}}}},{locale:"pt-CH",parentLocale:"pt-PT"},{locale:"pt-CV",parentLocale:"pt-PT"},{locale:"pt-GQ",parentLocale:"pt-PT"},{locale:"pt-GW",parentLocale:"pt-PT"},{locale:"pt-LU",parentLocale:"pt-PT"},{locale:"pt-MO",parentLocale:"pt-PT"},{locale:"pt-MZ",parentLocale:"pt-PT"},{locale:"pt-ST",parentLocale:"pt-PT"},{locale:"pt-TL",parentLocale:"pt-PT"}]})},334:function(e,t,a){!function(t,a){e.exports=a()}(this,function(){"use strict";return[{locale:"ro",pluralRuleFunction:function(e,t){var a=String(e).split("."),o=!a[1],r=Number(a[0])==e&&a[0].slice(-2);return t?1==e?"one":"other":1==e&&o?"one":!o||0==e||1!=e&&r>=1&&r<=19?"few":"other"},fields:{year:{displayName:"an",relative:{0:"anul acesta",1:"anul viitor","-1":"anul trecut"},relativeTime:{future:{one:"peste {0} an",few:"peste {0} ani",other:"peste {0} de ani"},past:{one:"acum {0} an",few:"acum {0} ani",other:"acum {0} de ani"}}},month:{displayName:"lună",relative:{0:"luna aceasta",1:"luna viitoare","-1":"luna trecută"},relativeTime:{future:{one:"peste {0} lună",few:"peste {0} luni",other:"peste {0} de luni"},past:{one:"acum {0} lună",few:"acum {0} luni",other:"acum {0} de luni"}}},day:{displayName:"zi",relative:{0:"azi",1:"mâine",2:"poimâine","-2":"alaltăieri","-1":"ieri"},relativeTime:{future:{one:"peste {0} zi",few:"peste {0} zile",other:"peste {0} de zile"},past:{one:"acum {0} zi",few:"acum {0} zile",other:"acum {0} de zile"}}},hour:{displayName:"oră",relative:{0:"ora aceasta"},relativeTime:{future:{one:"peste {0} oră",few:"peste {0} ore",other:"peste {0} de ore"},past:{one:"acum {0} oră",few:"acum {0} ore",other:"acum {0} de ore"}}},minute:{displayName:"minut",relative:{0:"minutul acesta"},relativeTime:{future:{one:"peste {0} minut",few:"peste {0} minute",other:"peste {0} de minute"},past:{one:"acum {0} minut",few:"acum {0} minute",other:"acum {0} de minute"}}},second:{displayName:"secundă",relative:{0:"acum"},relativeTime:{future:{one:"peste {0} secundă",few:"peste {0} secunde",other:"peste {0} de secunde"},past:{one:"acum {0} secundă",few:"acum {0} secunde",other:"acum {0} de secunde"}}}}},{locale:"ro-MD",parentLocale:"ro"}]})},335:function(e,t,a){!function(t,a){e.exports=a()}(this,function(){"use strict";return[{locale:"ru",pluralRuleFunction:function(e,t){var a=String(e).split("."),o=a[0],r=!a[1],n=o.slice(-1),l=o.slice(-2);return t?"other":r&&1==n&&11!=l?"one":r&&n>=2&&n<=4&&(l<12||l>14)?"few":r&&0==n||r&&n>=5&&n<=9||r&&l>=11&&l<=14?"many":"other"},fields:{year:{displayName:"год",relative:{0:"в этом году",1:"в следующем году","-1":"в прошлом году"},relativeTime:{future:{one:"через {0} год",few:"через {0} года",many:"через {0} лет",other:"через {0} года"},past:{one:"{0} год назад",few:"{0} года назад",many:"{0} лет назад",other:"{0} года назад"}}},month:{displayName:"месяц",relative:{0:"в этом месяце",1:"в следующем месяце","-1":"в прошлом месяце"},relativeTime:{future:{one:"через {0} месяц",few:"через {0} месяца",many:"через {0} месяцев",other:"через {0} месяца"},past:{one:"{0} месяц назад",few:"{0} месяца назад",many:"{0} месяцев назад",other:"{0} месяца назад"}}},day:{displayName:"день",relative:{0:"сегодня",1:"завтра",2:"послезавтра","-2":"позавчера","-1":"вчера"},relativeTime:{future:{one:"через {0} день",few:"через {0} дня",many:"через {0} дней",other:"через {0} дня"},past:{one:"{0} день назад",few:"{0} дня назад",many:"{0} дней назад",other:"{0} дня назад"}}},hour:{displayName:"час",relative:{0:"в этом часе"},relativeTime:{future:{one:"через {0} час",few:"через {0} часа",many:"через {0} часов",other:"через {0} часа"},past:{one:"{0} час назад",few:"{0} часа назад",many:"{0} часов назад",other:"{0} часа назад"}}},minute:{displayName:"минута",relative:{0:"в эту минуту"},relativeTime:{future:{one:"через {0} минуту",few:"через {0} минуты",many:"через {0} минут",other:"через {0} минуты"},past:{one:"{0} минуту назад",few:"{0} минуты назад",many:"{0} минут назад",other:"{0} минуты назад"}}},second:{displayName:"секунда",relative:{0:"сейчас"},relativeTime:{future:{one:"через {0} секунду",few:"через {0} секунды",many:"через {0} секунд",other:"через {0} секунды"},past:{one:"{0} секунду назад",few:"{0} секунды назад",many:"{0} секунд назад",other:"{0} секунды назад"}}}}},{locale:"ru-BY",parentLocale:"ru"},{locale:"ru-KG",parentLocale:"ru"},{locale:"ru-KZ",parentLocale:"ru"},{locale:"ru-MD",parentLocale:"ru"},{locale:"ru-UA",parentLocale:"ru"}]})},336:function(e,t,a){!function(t,a){e.exports=a()}(this,function(){"use strict";return[{locale:"sq",pluralRuleFunction:function(e,t){var a=String(e).split("."),o=Number(a[0])==e,r=o&&a[0].slice(-1),n=o&&a[0].slice(-2);return t?1==e?"one":4==r&&14!=n?"many":"other":1==e?"one":"other"},fields:{year:{displayName:"vit",relative:{0:"këtë vit",1:"vitin e ardhshëm","-1":"vitin e kaluar"},relativeTime:{future:{one:"pas {0} viti",other:"pas {0} vjetësh"},past:{one:"{0} vit më parë",other:"{0} vjet më parë"}}},month:{displayName:"muaj",relative:{0:"këtë muaj",1:"muajin e ardhshëm","-1":"muajin e kaluar"},relativeTime:{future:{one:"pas {0} muaji",other:"pas {0} muajsh"},past:{one:"{0} muaj më parë",other:"{0} muaj më parë"}}},day:{displayName:"ditë",relative:{0:"sot",1:"nesër","-1":"dje"},relativeTime:{future:{one:"pas {0} dite",other:"pas {0} ditësh"},past:{one:"{0} ditë më parë",other:"{0} ditë më parë"}}},hour:{displayName:"orë",relative:{0:"këtë orë"},relativeTime:{future:{one:"pas {0} ore",other:"pas {0} orësh"},past:{one:"{0} orë më parë",other:"{0} orë më parë"}}},minute:{displayName:"minutë",relative:{0:"këtë minutë"},relativeTime:{future:{one:"pas {0} minute",other:"pas {0} minutash"},past:{one:"{0} minutë më parë",other:"{0} minuta më parë"}}},second:{displayName:"sekondë",relative:{0:"tani"},relativeTime:{future:{one:"pas {0} sekonde",other:"pas {0} sekondash"},past:{one:"{0} sekondë më parë",other:"{0} sekonda më parë"}}}}},{locale:"sq-MK",parentLocale:"sq"},{locale:"sq-XK",parentLocale:"sq"}]})},337:function(e,t,a){!function(t,a){e.exports=a()}(this,function(){"use strict";return[{locale:"th",pluralRuleFunction:function(e,t){return"other"},fields:{year:{displayName:"ปี",relative:{0:"ปีนี้",1:"ปีหน้า","-1":"ปีที่แล้ว"},relativeTime:{future:{other:"ในอีก {0} ปี"},past:{other:"{0} ปีที่แล้ว"}}},month:{displayName:"เดือน",relative:{0:"เดือนนี้",1:"เดือนหน้า","-1":"เดือนที่แล้ว"},relativeTime:{future:{other:"ในอีก {0} เดือน"},past:{other:"{0} เดือนที่ผ่านมา"}}},day:{displayName:"วัน",relative:{0:"วันนี้",1:"พรุ่งนี้",2:"มะรืนนี้","-2":"เมื่อวานซืน","-1":"เมื่อวาน"},relativeTime:{future:{other:"ในอีก {0} วัน"},past:{other:"{0} วันที่ผ่านมา"}}},hour:{displayName:"ชั่วโมง",relative:{0:"ชั่วโมงนี้"},relativeTime:{future:{other:"ในอีก {0} ชั่วโมง"},past:{other:"{0} ชั่วโมงที่ผ่านมา"}}},minute:{displayName:"นาที",relative:{0:"นาทีนี้"},relativeTime:{future:{other:"ในอีก {0} นาที"},past:{other:"{0} นาทีที่ผ่านมา"}}},second:{displayName:"วินาที",relative:{0:"ขณะนี้"},relativeTime:{future:{other:"ในอีก {0} วินาที"},past:{other:"{0} วินาทีที่ผ่านมา"}}}}}]})},338:function(e,t,a){!function(t,a){e.exports=a()}(this,function(){"use strict";return[{locale:"tr",pluralRuleFunction:function(e,t){return t?"other":1==e?"one":"other"},fields:{year:{displayName:"yıl",relative:{0:"bu yıl",1:"gelecek yıl","-1":"geçen yıl"},relativeTime:{future:{one:"{0} yıl sonra",other:"{0} yıl sonra"},past:{one:"{0} yıl önce",other:"{0} yıl önce"}}},month:{displayName:"ay",relative:{0:"bu ay",1:"gelecek ay","-1":"geçen ay"},relativeTime:{future:{one:"{0} ay sonra",other:"{0} ay sonra"},past:{one:"{0} ay önce",other:"{0} ay önce"}}},day:{displayName:"gün",relative:{0:"bugün",1:"yarın",2:"öbür gün","-2":"evvelsi gün","-1":"dün"},relativeTime:{future:{one:"{0} gün sonra",other:"{0} gün sonra"},past:{one:"{0} gün önce",other:"{0} gün önce"}}},hour:{displayName:"saat",relative:{0:"bu saat"},relativeTime:{future:{one:"{0} saat sonra",other:"{0} saat sonra"},past:{one:"{0} saat önce",other:"{0} saat önce"}}},minute:{displayName:"dakika",relative:{0:"bu dakika"},relativeTime:{future:{one:"{0} dakika sonra",other:"{0} dakika sonra"},past:{one:"{0} dakika önce",other:"{0} dakika önce"}}},second:{displayName:"saniye",relative:{0:"şimdi"},relativeTime:{future:{one:"{0} saniye sonra",other:"{0} saniye sonra"},past:{one:"{0} saniye önce",other:"{0} saniye önce"}}}}},{locale:"tr-CY",parentLocale:"tr"}]})},339:function(e,t,a){!function(t,a){e.exports=a()}(this,function(){"use strict";return[{locale:"uk",pluralRuleFunction:function(e,t){var a=String(e).split("."),o=a[0],r=!a[1],n=Number(a[0])==e,l=n&&a[0].slice(-1),i=n&&a[0].slice(-2),s=o.slice(-1),u=o.slice(-2);return t?3==l&&13!=i?"few":"other":r&&1==s&&11!=u?"one":r&&s>=2&&s<=4&&(u<12||u>14)?"few":r&&0==s||r&&s>=5&&s<=9||r&&u>=11&&u<=14?"many":"other"},fields:{year:{displayName:"рік",relative:{0:"цього року",1:"наступного року","-1":"торік"},relativeTime:{future:{one:"через {0} рік",few:"через {0} роки",many:"через {0} років",other:"через {0} року"},past:{one:"{0} рік тому",few:"{0} роки тому",many:"{0} років тому",other:"{0} року тому"}}},month:{displayName:"місяць",relative:{0:"цього місяця",1:"наступного місяця","-1":"минулого місяця"},relativeTime:{future:{one:"через {0} місяць",few:"через {0} місяці",many:"через {0} місяців",other:"через {0} місяця"},past:{one:"{0} місяць тому",few:"{0} місяці тому",many:"{0} місяців тому",other:"{0} місяця тому"}}},day:{displayName:"день",relative:{0:"сьогодні",1:"завтра",2:"післязавтра","-2":"позавчора","-1":"учора"},relativeTime:{future:{one:"через {0} день",few:"через {0} дні",many:"через {0} днів",other:"через {0} дня"},past:{one:"{0} день тому",few:"{0} дні тому",many:"{0} днів тому",other:"{0} дня тому"}}},hour:{displayName:"година",relative:{0:"цієї години"},relativeTime:{future:{one:"через {0} годину",few:"через {0} години",many:"через {0} годин",other:"через {0} години"},past:{one:"{0} годину тому",few:"{0} години тому",many:"{0} годин тому",other:"{0} години тому"}}},minute:{displayName:"хвилина",relative:{0:"цієї хвилини"},relativeTime:{future:{one:"через {0} хвилину",few:"через {0} хвилини",many:"через {0} хвилин",other:"через {0} хвилини"},past:{one:"{0} хвилину тому",few:"{0} хвилини тому",many:"{0} хвилин тому",other:"{0} хвилини тому"}}},second:{displayName:"секунда",relative:{ +0:"зараз"},relativeTime:{future:{one:"через {0} секунду",few:"через {0} секунди",many:"через {0} секунд",other:"через {0} секунди"},past:{one:"{0} секунду тому",few:"{0} секунди тому",many:"{0} секунд тому",other:"{0} секунди тому"}}}}}]})},340:function(e,t,a){!function(t,a){e.exports=a()}(this,function(){"use strict";return[{locale:"vi",pluralRuleFunction:function(e,t){return t&&1==e?"one":"other"},fields:{year:{displayName:"Năm",relative:{0:"năm nay",1:"năm sau","-1":"năm ngoái"},relativeTime:{future:{other:"sau {0} năm nữa"},past:{other:"{0} năm trước"}}},month:{displayName:"Tháng",relative:{0:"tháng này",1:"tháng sau","-1":"tháng trước"},relativeTime:{future:{other:"sau {0} tháng nữa"},past:{other:"{0} tháng trước"}}},day:{displayName:"Ngày",relative:{0:"Hôm nay",1:"Ngày mai",2:"Ngày kia","-2":"Hôm kia","-1":"Hôm qua"},relativeTime:{future:{other:"sau {0} ngày nữa"},past:{other:"{0} ngày trước"}}},hour:{displayName:"Giờ",relative:{0:"giờ này"},relativeTime:{future:{other:"sau {0} giờ nữa"},past:{other:"{0} giờ trước"}}},minute:{displayName:"Phút",relative:{0:"phút này"},relativeTime:{future:{other:"sau {0} phút nữa"},past:{other:"{0} phút trước"}}},second:{displayName:"Giây",relative:{0:"bây giờ"},relativeTime:{future:{other:"sau {0} giây nữa"},past:{other:"{0} giây trước"}}}}}]})},341:function(e,t,a){!function(t,a){e.exports=a()}(this,function(){"use strict";return[{locale:"zh",pluralRuleFunction:function(e,t){return"other"},fields:{year:{displayName:"年",relative:{0:"今年",1:"明年","-1":"去年"},relativeTime:{future:{other:"{0}年后"},past:{other:"{0}年前"}}},month:{displayName:"月",relative:{0:"本月",1:"下个月","-1":"上个月"},relativeTime:{future:{other:"{0}个月后"},past:{other:"{0}个月前"}}},day:{displayName:"日",relative:{0:"今天",1:"明天",2:"后天","-2":"前天","-1":"昨天"},relativeTime:{future:{other:"{0}天后"},past:{other:"{0}天前"}}},hour:{displayName:"小时",relative:{0:"这一时间 / 此时"},relativeTime:{future:{other:"{0}小时后"},past:{other:"{0}小时前"}}},minute:{displayName:"分钟",relative:{0:"此刻"},relativeTime:{future:{other:"{0}分钟后"},past:{other:"{0}分钟前"}}},second:{displayName:"秒",relative:{0:"现在"},relativeTime:{future:{other:"{0}秒钟后"},past:{other:"{0}秒钟前"}}}}},{locale:"zh-Hans",parentLocale:"zh"},{locale:"zh-Hans-HK",parentLocale:"zh-Hans",fields:{year:{displayName:"年",relative:{0:"今年",1:"明年","-1":"去年"},relativeTime:{future:{other:"{0}年后"},past:{other:"{0}年前"}}},month:{displayName:"月",relative:{0:"本月",1:"下个月","-1":"上个月"},relativeTime:{future:{other:"{0}个月后"},past:{other:"{0}个月前"}}},day:{displayName:"日",relative:{0:"今天",1:"明天",2:"后天","-2":"前天","-1":"昨天"},relativeTime:{future:{other:"{0}天后"},past:{other:"{0}天前"}}},hour:{displayName:"小时",relative:{0:"这一时间 / 此时"},relativeTime:{future:{other:"{0}小时后"},past:{other:"{0}小时前"}}},minute:{displayName:"分钟",relative:{0:"此刻"},relativeTime:{future:{other:"{0}分钟后"},past:{other:"{0}分钟前"}}},second:{displayName:"秒",relative:{0:"现在"},relativeTime:{future:{other:"{0}秒后"},past:{other:"{0}秒前"}}}}},{locale:"zh-Hans-MO",parentLocale:"zh-Hans",fields:{year:{displayName:"年",relative:{0:"今年",1:"明年","-1":"去年"},relativeTime:{future:{other:"{0}年后"},past:{other:"{0}年前"}}},month:{displayName:"月",relative:{0:"本月",1:"下个月","-1":"上个月"},relativeTime:{future:{other:"{0}个月后"},past:{other:"{0}个月前"}}},day:{displayName:"日",relative:{0:"今天",1:"明天",2:"后天","-2":"前天","-1":"昨天"},relativeTime:{future:{other:"{0}天后"},past:{other:"{0}天前"}}},hour:{displayName:"小时",relative:{0:"这一时间 / 此时"},relativeTime:{future:{other:"{0}小时后"},past:{other:"{0}小时前"}}},minute:{displayName:"分钟",relative:{0:"此刻"},relativeTime:{future:{other:"{0}分钟后"},past:{other:"{0}分钟前"}}},second:{displayName:"秒",relative:{0:"现在"},relativeTime:{future:{other:"{0}秒后"},past:{other:"{0}秒前"}}}}},{locale:"zh-Hans-SG",parentLocale:"zh-Hans",fields:{year:{displayName:"年",relative:{0:"今年",1:"明年","-1":"去年"},relativeTime:{future:{other:"{0}年后"},past:{other:"{0}年前"}}},month:{displayName:"月",relative:{0:"本月",1:"下个月","-1":"上个月"},relativeTime:{future:{other:"{0}个月后"},past:{other:"{0}个月前"}}},day:{displayName:"日",relative:{0:"今天",1:"明天",2:"后天","-2":"前天","-1":"昨天"},relativeTime:{future:{other:"{0}天后"},past:{other:"{0}天前"}}},hour:{displayName:"小时",relative:{0:"这一时间 / 此时"},relativeTime:{future:{other:"{0}小时后"},past:{other:"{0}小时前"}}},minute:{displayName:"分钟",relative:{0:"此刻"},relativeTime:{future:{other:"{0}分钟后"},past:{other:"{0}分钟前"}}},second:{displayName:"秒",relative:{0:"现在"},relativeTime:{future:{other:"{0}秒后"},past:{other:"{0}秒前"}}}}},{locale:"zh-Hant",pluralRuleFunction:function(e,t){return"other"},fields:{year:{displayName:"年",relative:{0:"今年",1:"明年","-1":"去年"},relativeTime:{future:{other:"{0} 年後"},past:{other:"{0} 年前"}}},month:{displayName:"月",relative:{0:"本月",1:"下個月","-1":"上個月"},relativeTime:{future:{other:"{0} 個月後"},past:{other:"{0} 個月前"}}},day:{displayName:"日",relative:{0:"今天",1:"明天",2:"後天","-2":"前天","-1":"昨天"},relativeTime:{future:{other:"{0} 天後"},past:{other:"{0} 天前"}}},hour:{displayName:"小時",relative:{0:"這一小時"},relativeTime:{future:{other:"{0} 小時後"},past:{other:"{0} 小時前"}}},minute:{displayName:"分鐘",relative:{0:"這一分鐘"},relativeTime:{future:{other:"{0} 分鐘後"},past:{other:"{0} 分鐘前"}}},second:{displayName:"秒",relative:{0:"現在"},relativeTime:{future:{other:"{0} 秒後"},past:{other:"{0} 秒前"}}}}},{locale:"zh-Hant-HK",parentLocale:"zh-Hant",fields:{year:{displayName:"年",relative:{0:"今年",1:"下年","-1":"上年"},relativeTime:{future:{other:"{0} 年後"},past:{other:"{0} 年前"}}},month:{displayName:"月",relative:{0:"本月",1:"下個月","-1":"上個月"},relativeTime:{future:{other:"{0} 個月後"},past:{other:"{0} 個月前"}}},day:{displayName:"日",relative:{0:"今日",1:"明日",2:"後日","-2":"前日","-1":"昨日"},relativeTime:{future:{other:"{0} 日後"},past:{other:"{0} 日前"}}},hour:{displayName:"小時",relative:{0:"這個小時"},relativeTime:{future:{other:"{0} 小時後"},past:{other:"{0} 小時前"}}},minute:{displayName:"分鐘",relative:{0:"這分鐘"},relativeTime:{future:{other:"{0} 分鐘後"},past:{other:"{0} 分鐘前"}}},second:{displayName:"秒",relative:{0:"現在"},relativeTime:{future:{other:"{0} 秒後"},past:{other:"{0} 秒前"}}}}},{locale:"zh-Hant-MO",parentLocale:"zh-Hant-HK"}]})},379:function(e,t,a){"use strict";function o(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function n(e,t){var a=e.length?e:[e];return 0===H["default"].difference(a.map(function(e){return e.id}),t.map(function(e){return e.id})).length&&0===H["default"].difference(t.map(function(e){return e.id}),a.map(function(e){return e.id})).length&&t.length>0}function l(){this&&this.isMounted&&this.setState({value:"",opened:!1,highlightedItem:null})}function i(e,t){var a=e.option,o=a.label,r=a.matches,n=void 0===r?[]:r;return c(n,o,t)}function s(e){var t=e.getBoundingClientRect(),a=window.innerWidth||document.documentElement.clientWidth,o=window.innerHeight||document.documentElement.clientHeight,r=function(e,t){return document.elementFromPoint(e,t)};return!(t.right<0||t.bottom<0||t.left>a||t.top>o)&&(e.contains(r(t.left,t.top))||e.contains(r(t.right,t.top))||e.contains(r(t.right,t.bottom))||e.contains(r(t.left,t.bottom)))}function u(e){return H["default"].deburr(H["default"].toLower(e).replace(/[\(\).,’'"&\*+;:-]/g," ").replace(/’/g,"").replace(/\s+/g," ").trim())}function d(e,t,a){var o=e.length;if(0==o)return[];var r,n=0,l=[];for(a||(t=t.toLowerCase(),e=e.toLowerCase());(r=t.indexOf(e,n))>-1;)l.push(r),n=r+o;return l}function c(e,t,a){var o=H["default"].flatten(u(a).toLowerCase().split(" ").map(function(e){return d(e,t).map(function(t){return{from:t,till:t+e.length,fat:!0}})}));o=G["default"].values(G["default"].uniqBy(function(e){var t=e.from,a=e.to;return t+" - "+a},H["default"].sortBy(o,"from").filter(function(e){return!o.filter(function(t){return!(t.from===e.from&&t.till===e.till)}).some(function(t){return e.from>=t.from&&e.till<=t.till})})));var r=[];H["default"].reduce(o,function(e,t){return r.push({from:e.till,till:t.from,fat:!1}),t}),H["default"].head(o)&&0!==H["default"].head(o).from&&(r=[{from:0,till:H["default"].head(o).from,fat:!1}].concat(r)),H["default"].last(o)&&H["default"].last(o).till!==t.length&&(r=r.concat([{from:H["default"].last(o).till,till:t.length,fat:!1}]),o.push({dummyForExhaustingInterleave:!0,from:0,till:0,fat:!1})),r.length0?n:t}function m(e,t){return{allSearches:e.indicators.get("searchResults"),locale:(0,$.localeSelector)(e,t),results:(0,X.latestSearchResultsSelector)(e).map(function(e){return e.map(h)}),selected:(0,ee.getSelectionIds)((0,X.multiSelectionSelector)(e,t)),values:(0,X.multiSelectionMetaSelector)(e,t)}}function f(e){return(0,P.bindActionCreators)({changeSelection:V.changeSelection,search:K.search,updateUrlNameMappings:K.updateUrlNameMappings,clearCache:K.clearCache},e)}function h(e){return{id:e.value,option:e}}Object.defineProperty(t,"__esModule",{value:!0});var p,v,y,g,w,E=a(77),N=r(E),T=a(7),b=r(T),L=a(4),k=r(L),_=a(8),x=r(_),C=a(6),S=r(C),M=a(5),I=r(M),O=a(2),D=r(O),R=a(111),A=a(12),F=a(19),P=a(26),z=a(182),U=r(z),B=a(3),H=r(B),j=a(41),G=r(j),W=a(138),K=o(W),q=a(32),V=o(q),J=a(118),Y=a(9),Z=a(86),Q=r(Z),X=a(18),$=a(15),ee=a(100),te=a(99),ae=r(te),oe=a(118),re=(D["default"].createElement(A.FormattedMessage,{defaultMessage:"Search data e.g. GDP, population, Indonesia",id:"multiselect-placeholder"}),function(e,t){return void 0!==e.get(t)&&null!==e.get(t)&&(e.get(t)||[]).length>0||void 0!==e.get(t.trim())&&null!==e.get(t.trim())&&(e.get(t.trim())||[]).length>0}),ne=function(e,t){return"pending"===e.get(t)};t["default"]=(0,A.injectIntl)((p=(0,F.connect)(m,f),v=(0,Q["default"])(["onfocus","onclick","click"]),p(y=v((w=g=function(e){function t(){(0,k["default"])(this,t);var e=(0,S["default"])(this,(0,b["default"])(t).call(this));return e.onDefocus=e.onDefocus.bind(e),e.onInputChange=e.onInputChange.bind(e),e.state={value:""},e}return(0,I["default"])(t,e),(0,x["default"])(t,[{key:"componentWillMount",value:function(){var e=this;this.notify=H["default"].debounce(function(t){(0,oe.SearchboxQuery)(t);var a=(0,B.flatten)((0,B.values)(e.props.selected)).join("-"),o=H["default"].trim(t);o.length>0&&"zh"==e.props.intl.locale?e.props.search(o,a,e.props.locale):o.length>2&&e.props.search(o,a,e.props.locale)},300),this.setState({selected:this.props.values})}},{key:"componentWillUnmount",value:function(){this.notify.cancel&&this.notify.cancel()}},{key:"componentDidUpdate",value:function(){var e=this._highlightedElement;if(e&&!s(e)){var t=e.parentNode;t.scrollTop=e.offsetTop-t.offsetTop}}},{key:"componentWillReceiveProps",value:function(e){var t=this.state,a=t.selected,o=t.value;a!==e.values&&this.setState({selected:e.values}),this._input&&o!==this._input.value&&this.onInputChange(this._input.value)}},{key:"onDefocus",value:function(e){(0,R.findDOMNode)(this).contains(e.target)||this.setState({opened:!1})}},{key:"onInputChange",value:function(e){var t=this;this.setState({opened:0!==e.length,value:e},function(a){t.notify(e)})}},{key:"navigateIfStaticPage",value:function(e){var t=e.filter(function(e){return"staticPage"===e.category})[0];if(t&&((0,J.NavigationViaSearchbox)(location.origin+t.value.slice(2)),window.location=t.value.slice(2),setTimeout(function(){return window.location=t.value.slice(2)},1e3)),t)return!0}},{key:"onSelectionChange",value:function(e){0===e.length&&this.props.clearCache();var t=this.navigateIfStaticPage(e);t||(this.props.updateUrlNameMappings(e),this.props.changeSelection(e))}},{key:"compare",value:function(e,t){if(e.length>1||"undefined"==typeof e.option||"undefined"==typeof t.option||"undefined"==typeof e.option.category||"undefined"==typeof t.option.category)return 0;var a=Y.CATEGORIES_PRIORITY.indexOf(e.option.category),o=Y.CATEGORIES_PRIORITY.indexOf(t.option.category);return ao?1:0}},{key:"render",value:function(){var e=this,t=this.props,a=t.intl.formatMessage,o=t.results,r=this.state,n=r.highlightedItem,i=r.opened,s=r.selected,u=r.value,d=[],c=o.map(function(e){return 1===e.length?e[0]:e});c.sort(this.compare);var m=D["default"].createElement("div",{className:"status"},"No results, try to search for different terms or:"),f=D["default"].createElement("div",{className:"searching spinning"});i&&u.length>0&&!function(){var t=function(e){var t=e.id;return H["default"].find(s,{value:t})};c.forEach(function(a,o){a.length?e.addMultipleOptionsOption(d,a,o,c,t,n):e.addSingleOption(d,a,o,c,t,n)}),d=D["default"].createElement("div",null,ne(e.props.allSearches,u)?f:null,D["default"].createElement("ol",null,void 0===e.props.allSearches.get(u)||ne(e.props.allSearches,u)||re(e.props.allSearches,u)?"":m,d))}();var h=s.map(function(t){var a=(0,U["default"])((0,N["default"])({aggregate:t.isAggregate},t.category,!0));return D["default"].createElement("span",{className:a,key:t.value},t.fullname||t.shortname||t.name||t.label||t.value,D["default"].createElement("button",{onClick:function(){e.remove(t),e.props.onInputFocus(!1)}}))});return D["default"].createElement("div",{className:"search-bar multiSelector"},D["default"].createElement("div",{className:"selector-box",onClick:function(){e._input.focus(),e.props.onInputFocus(!0)}},D["default"].createElement("div",{className:"scroll-box"},h,D["default"].createElement("input",{autoCapitalize:"off",autoComplete:"off",autoCorrect:"off",id:"selector",onBlur:function(){setTimeout(function(){e.props.onInputFocus(!1),e.setState({opened:!1}),l()},1e3)},onChange:function(t){t.persist(),e.onInputChange(t.target.value),e.setState({opened:!0}),e.props.onInputFocus(!0)},onKeyDown:function(t){e.handleKeyDown(c,t),e.setState({opened:!0}),e.props.onInputFocus(!0)},placeholder:a({id:"multiselect-placeholder",defaultMessage:"Search data e.g. GDP, population, Indonesia"}),ref:function(t){return e._input=t},spellCheck:"false",tabIndex:0,type:"text",value:u,className:(0,U["default"])({focus:this.state.opened})}))),s.length>0&&D["default"].createElement("button",{className:"clear",onClick:function(){return e.onSelectionChange([])}}),D["default"].createElement("button",{className:(0,U["default"])({open:i}),onClick:function(){e.setState({opened:!i}),e.props.onInputFocus(!i)}}),D["default"].createElement("div",{className:"dropdownBox"},D["default"].createElement("div",{className:"control"},D["default"].createElement("button",{className:"close button secondary",onClick:function(){e.props.onInputFocus(!1),e.setState({opened:!i})}},"Close")),d,D["default"].createElement("p",null,D["default"].createElement(A.FormattedMessage,{defaultMessage:"Browse by",id:"multiselector.browseby"}),D["default"].createElement(ae["default"],{className:"country",to:{pathname:Y.LOCATION_PATH},dataCustomLink:"nl:body content",dataText:"country data"},D["default"].createElement(A.FormattedMessage,{defaultMessage:"Country",id:"multiselector.country"})),D["default"].createElement(A.FormattedMessage,{defaultMessage:"or",id:"multiselector.or"}),D["default"].createElement(ae["default"],{to:{pathname:Y.INDICATOR_PATH},dataCustomLink:"nl:body content",dataText:"indicator data"},D["default"].createElement(A.FormattedMessage,{defaultMessage:"Indicator",id:"multiselector.indicator"})))))}},{key:"addSingleOption",value:function(e,t,a,o,r,n){var l=this,s=t.id,u=t.option,d=u.category,c=u.isAggregate,m=!!n,f=m&&s===n.id,h=H["default"].find(o,function(e){return!r(e)}),p=h===t,v=f||!m&&p,y=(0,U["default"])((0,N["default"])({aggregate:c,"highlighted-selection":v,"select-item":!0},d,!0));e.push(D["default"].createElement("li",{className:y,key:a,onClick:function(){return l.select(t)},ref:v?function(e){return l._highlightedElement=e}:null,"data-customlink":"sr:searchResults","data-text":this.state.value},D["default"].createElement("div",null,i(t,this.state.value))))}},{key:"addMultipleOptionsOption",value:function(e,t,a,o,r){var n=this,l=arguments.length<=5||void 0===arguments[5]?[]:arguments[5];l=l&&l.length?l:[];var s=l.length>0,u=0===H["default"].difference(t.map(function(e){return e.id}),l.map(function(e){return e.id})).length&&s||!s&&0===a,d=(0,U["default"])({combined:!0,"highlighted-selection":u,"select-item":!0});e.push(D["default"].createElement("li",{className:d,key:a,onClick:function(){return n.select(t)},ref:u?function(e){return n._highlightedElement=e}:null},D["default"].createElement("ul",null,t.map(function(e,t){return D["default"].createElement("li",{className:(0,U["default"])((0,N["default"])({aggregate:e.option.isAggregate},e.option.category,!0)),key:t,"data-customlink":"sr:searchResults","data-text":n.state.value},D["default"].createElement("div",null,i(e,n.state.value)))}))))}},{key:"handleKeyDown",value:function(e,t){var a=this.state,o=a.highlightedItem,r=a.selected,n=a.value;switch(t.which){case 38:this.setState({opened:!0}),this.moveUp(e,o),t.preventDefault();break;case 40:this.setState({opened:!0}),this.moveDown(e,o),t.preventDefault();break;case 13:o?(this.select(o),this.setState({highlightedItem:null,value:""})):(this.setState({value:""}),this.select(H["default"].head(e)));break;case 8:this.setState({highlightedItem:null}),r.length>0&&0===n.length&&(this.remove(r[r.length-1]),t.preventDefault());break;case 37:break;case 39:break;default:var l=t.keyCode;9===l||91===l||16===l||37===l||18===l||39===l||20===l||17===t.which||t.altKey||t.metaKey||t.ctrlKey||this.props.clearCache(),this.setState({highlightedItem:null})}}},{key:"select",value:function(e){if(e){if(e.option&&"dataset"==e.option.category)return void window.open(e.option.url,"_blank");e.length?this.selectMultipleOptions(e):this.selectSingleOption(e),this.setState({value:"",opened:!1})}}},{key:"selectSingleOption",value:function(e){var t=this.state.selected,a=e.option,o=a.category,r=a.value;if(!(0,H["default"])(t).map("value").includes(r)){var n="indicator"===o||"topic"===o,l=n?H["default"].filter(t,{category:"location"}):t;this.onSelectionChange(l.concat(e.option))}}},{key:"selectMultipleOptions",value:function(e){var t=this.state.selected,a=e.map(function(e){return e.option.category});(H["default"].find(t,{category:"topic"})||H["default"].find(t,{category:"indicator"}))&&(H["default"].includes(a,"topic")||H["default"].includes(a,"indicator"))||!H["default"].find(t,{category:"topic"})&&!H["default"].find(t,{category:"indicator"})?this.onSelectionChange(t.filter(function(e){return"location"===e.category}).concat(e.map(function(e){return e.option}))):this.onSelectionChange(t.concat(e.map(function(e){return e.option})))}},{key:"remove",value:function(e){var t=this.state.selected.filter(function(t){var a=t.category,o=t.id;return!(e.category===a&&e.id===o)});this.setState({selected:t}),this.onSelectionChange(t)}},{key:"moveUp",value:function(e,t){if(t){var a=t.length?H["default"].findIndex(e,function(e){return n(e,t)}):H["default"].findIndex(e,{id:t.id});0===a?this.setState({highlightedItem:H["default"].last(e)}):this.setState({highlightedItem:H["default"].get(e,a-1)})}else this.setState({highlightedItem:H["default"].last(e)})}},{key:"moveDown",value:function(e,t){if(t){var a=t.length?H["default"].findIndex(e,function(e){return n(e,t)}):H["default"].findIndex(e,{id:t.id}),o=e.length-1;a===o?this.setState({highlightedItem:H["default"].head(e)}):this.setState({highlightedItem:H["default"].get(e,a+1)})}else this.setState({highlightedItem:H["default"].get(e,1,H["default"].head(e))})}}]),t}(O.Component),g.propTypes={changeSelection:O.PropTypes.func.isRequired,clearCache:O.PropTypes.func.isRequired,intl:O.PropTypes.object.isRequired,results:O.PropTypes.array.isRequired,updateUrlNameMappings:O.PropTypes.func.isRequired,values:O.PropTypes.array.isRequired},g.defaultProps={config:{height:500}},y=w))||y)||y)),e.exports=t["default"]},381:function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.wbNormal={delimiters:{thousands:".",decimal:"."},abbreviations:{thousand:"k",million:"mm",billion:"b",trillion:"t"},ordinal:function(e){var t=e%10;return 1===t||3===t?"er":2===t?"do":7===t||0===t?"mo":8===t?"vo":9===t?"no":"to"},currency:{symbol:"$"}},t.wbFinance={delimiters:{thousands:".",decimal:"."},abbreviations:{thousand:"thousand",million:"million",billion:"billion",trillion:"trillion"},ordinal:function(e){var t=e%10;return 1===t||3===t?"er":2===t?"do":7===t||0===t?"mo":8===t?"vo":9===t?"no":"to"},currency:{symbol:"$"}}},386:function(e,t,a){"use strict";function o(e){return e&&e.__esModule?e:{"default":e}}var r=a(12),n=a(322),l=o(n),i=a(323),s=o(i),u=a(324),d=o(u),c=a(319),m=o(c),f=a(335),h=o(f),p=a(341),v=o(p),y=a(331),g=o(y),w=a(329),E=o(w),N=a(320),T=o(N),b=a(333),L=o(b),k=a(330),_=o(k),x=a(340),C=o(x),S=a(327),M=o(S),I=a(334),O=o(I),D=a(326),R=o(D),A=a(338),F=o(A),P=a(336),z=o(P),U=a(328),B=o(U),H=a(337),j=o(H),G=a(321),W=o(G),K=a(339),q=o(K),V=a(325),J=o(V),Y=a(332),Z=o(Y);(0,r.addLocaleData)(l["default"]),(0,r.addLocaleData)(s["default"]),(0,r.addLocaleData)(d["default"]),(0,r.addLocaleData)(m["default"]),(0,r.addLocaleData)(h["default"]),(0,r.addLocaleData)(v["default"]),(0,r.addLocaleData)(g["default"]),(0,r.addLocaleData)(E["default"]),(0,r.addLocaleData)(T["default"]),(0,r.addLocaleData)(L["default"]),(0,r.addLocaleData)(_["default"]),(0,r.addLocaleData)(C["default"]),(0,r.addLocaleData)(M["default"]),(0,r.addLocaleData)(O["default"]),(0,r.addLocaleData)(R["default"]),(0,r.addLocaleData)(F["default"]),(0,r.addLocaleData)(z["default"]),(0,r.addLocaleData)(B["default"]),(0,r.addLocaleData)(j["default"]),(0,r.addLocaleData)(W["default"]),(0,r.addLocaleData)(q["default"]),(0,r.addLocaleData)(J["default"]),(0,r.addLocaleData)(Z["default"])},556:function(e,t,a){"use strict";function o(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&(t[a]=e[a]);return t["default"]=e,t}function r(e){return e&&e.__esModule?e:{"default":e}}function n(e){var t=["country","pays","pais"],a=["region"],o=["income-level","nivel-de-ingresos","niveau-de-revenu"];return(0,j.any)(function(t){return H["default"].includes(e,t)},t)?"country":(0,j.any)(function(t){return H["default"].includes(e,t)},a)?"region":(0,j.any)(function(t){return H["default"].includes(e,t)},o)?"income-level":"country"}function l(e,t,a,o,r,l,i){if(r&&o[G.DEFAULT_LOCALE]&&o[G.DEFAULT_LOCALE][r]){var s=n(a);if(s){var u=J.localizeStrings[s][t]||J.localizeStrings[s][G.DEFAULT_LOCALE],d=H["default"].get(o[t],r)||H["default"].get(o[G.DEFAULT_LOCALE],r)||r,c=(0,Y.formatURLName)(d);a="/"+u+"/"+c+i}}if(l&&o[G.DEFAULT_LOCALE]&&o[G.DEFAULT_LOCALE][l]){var m=J.localizeStrings.topic[t]||J.localizeStrings.topic[G.DEFAULT_LOCALE],f=H["default"].get(o[t],l)||H["default"].get(o[G.DEFAULT_LOCALE],l)||H["default"].get(o.en,l)||l,h=(0,Y.formatURLName)(f);a="/"+m+"/"+h+i}return H["default"].startsWith(e,"http")?e+a:"http://"+e+a}function i(e){var t=["indicator","indicateur","indicador","country","pays","pais","topic","tema","theme","income-level","nivel-de-ingresos","niveau-de-revenu","region","data-catalog"];return!(0,j.any)(function(t){return H["default"].startsWith(e,"/"+t)})(t)&&"/"!==e}function s(e){return H["default"].map(e,function(e,t){return(0,N["default"])({en:t},e)})}function u(e){var t={};return e.forEach(function(e){return H["default"].map(e,function(a){return t[a]=e})}),t}function d(e,t,a){var o=e[t]||e[t.substr(1)]||e[H["default"].trim(t,"/")]||e[c(t)]||e[c(t).substr(1)]||e[(0,Y.removeFromIndexOfMatch)(t,"#")]||e[(0,Y.removeFromIndexOfMatch)(t.substr(1),"#")]||e[(0,Y.removeFromIndexOfMatch)(c(t),"#")]||e[(0,Y.removeFromIndexOfMatch)(c(t).substr(1),"#")];return H["default"].get(o,a)||null}function c(e){return H["default"].endsWith(e,".html")?e:H["default"].endsWith(e,"/")?e+"index.html":e+"/index.html"}function m(e){var t=e.indexOf("locale=");if(t!==-1){var a=e.substr(0,t);return H["default"].endsWith(a,"?")?a.substr(0,a.length-1):a}return e}function f(e,t){var a=(0,Q.multiSelectionSelector)(e,t),o=1===a.length&&a[0].category===G.CATEGORY_LOCATION,r=o?a[0].value:void 0,n=(0,Q.selectedTopicIdSelector)(e,t),l=r||n,i={};return l&&!function(){var t=r?Z.locationMetaSelector:Z.topicMetaSelector,a=t(e)[l]||{},o=[G.DEFAULT_LOCALE].concat(G.LOCALES_WITH_TRANSLATED_URL_NAMES);o.forEach(function(e){i[e]=(0,w["default"])({},l,H["default"].get(a[e],"name")||a.name)})}(),{locale:(0,X.localeSelector)(e,t),localeIdNameObject:i,selection:a,onlyLocationId:r,onlyTopicId:n,selectedLocalLanguages:(0,Q.selectedLocalLanguagesSelector)(e,t)}}Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=void 0;var h,p,v,y,g=a(77),w=r(g),E=a(11),N=r(E),T=a(57),b=r(T),L=a(7),k=r(L),_=a(4),x=r(_),C=a(8),S=r(C),M=a(6),I=r(M),O=a(5),D=r(O),R=a(2),A=r(R),F=a(19),P=a(182),z=r(P),U=a(12),B=a(3),H=r(B),j=a(41),G=a(9),W=a(23),K=o(W),q=a(940),V=r(q),J=a(171),Y=a(170),Z=a(42),Q=a(18),X=a(15),$=(h=(0,F.connect)(f),h((y=v=function(e){function t(){return(0,x["default"])(this,t),(0,I["default"])(this,(0,k["default"])(t).apply(this,arguments))}return(0,D["default"])(t,e),(0,S["default"])(t,[{key:"render",value:function(){var e=this.props,t=e.locale,a=e.localeIdNameObject,o=e.location,r=o.pathname,n=o.search,c=e.onlyLocationId,f=e.onlyTopicId,h=e.selectedLocalLanguages,p=e.selection,v=void 0;if(v="production",i(r)&&!p.length>0){var y=function(){var e=u(s(V["default"])),a=(0,H["default"])(G.LOCALES_IDS).map(function(t){return[t,d(e,r,t)]}).filter(function(e){return e[1]}).fromPairs().value();return{v:(0,j.isEmpty)(a)?A["default"].createElement("span",null):A["default"].createElement("div",{className:"lang-switcher"},A["default"].createElement("span",null,A["default"].createElement(U.FormattedMessage,{defaultMessage:"This page in:",id:"localeswitcher.thispagein"})),A["default"].createElement("ul",{className:"lang"},H["default"].map(G.LOCALES_IDS,function(e,o){var r=G.ENV_LOCALE_LINKS_MAP[v][e];return a[e]?A["default"].createElement("li",{key:o},A["default"].createElement("a",{className:(0,z["default"])({current:e===t}),href:l(r,t,"/"+a[e]),"data-customlink":"nl: header","data-text":(H["default"].find(G.LOCALES,{code:e})||{}).language},(H["default"].find(G.LOCALES,{code:e})||{}).language)):A["default"].createElement("span",{key:o})})))}}();if("object"===("undefined"==typeof y?"undefined":(0,b["default"])(y)))return y.v}return A["default"].createElement("div",{className:"lang-switcher"},A["default"].createElement("span",null,A["default"].createElement(U.FormattedMessage,{defaultMessage:"This page in:",id:"localeswitcher.thispagein"})),A["default"].createElement("ul",{className:"lang"},H["default"].map(G.LOCALES_IDS,function(e,o){var i=G.ENV_LOCALE_LINKS_MAP[v][e],s=m(l(i,e,(0,J.localizePath)(r+n,e),a,c,f,n));return A["default"].createElement("li",{key:o},A["default"].createElement("a",{href:s,className:(0,z["default"])({current:e===t}),"data-customlink":"nl: header","data-text":(H["default"].find(G.LOCALES,{code:e})||{}).language},(H["default"].find(G.LOCALES,{code:e})||{}).language))}),1===p.length&&h.map(function(e){return A["default"].createElement("li",null,A["default"].createElement("a",{className:(0,z["default"])({current:e.code===t}),key:e.code,href:G.ENV_LOCALE_LINKS_MAP[v].en+"/country/"+p[0].value+"?locale="+e.code,"data-customlink":"nl: header","data-text":(H["default"].find(G.LOCAL_LOCALES,{code:e.code})||{}).language},(H["default"].find(G.LOCAL_LOCALES,{code:e.code})||{}).language))})))}}]),t}(R.Component),v.propTypes={locale:R.PropTypes.string.isRequired,localeIdNameObject:R.PropTypes.object.isRequired,location:K.historyLocation.isRequired},p=y))||p);t["default"]=$,e.exports=t["default"]},940:function(e,t){e.exports={about:{ar:"about",es:"quienes-somos",fr:"a-propos",zh:"about"},"about/contact":{ar:"about/contact",es:"quienes-somos/contacto",fr:"a-propos/contacts",zh:"about/contact"},"about/data-programs":{ar:"about/data-programs",es:"quienes-somos/programas-sobre-datos",fr:"a-propos/programmes-de-donnees",zh:"about/data-programs"},"about/get-started":{ar:"about/get-started",es:"quienes-somos/comenzar",fr:"a-propos/commencer",zh:"about/get-started"},products:{ar:"products",es:"productos",fr:"produits",zh:"products"},"products/data-books":{ar:"products/data-books",es:"productos/libros-de-datos",fr:"produits/recueils-de-donnees",zh:"products/data-books"},"products/mobile-apps":{ar:"products/mobile-apps",es:"productos/aplicaciones-para-moviles",fr:"produits/applications-pour-mobiles",zh:"products/mobile-apps"},"summary-terms-of-use":{ar:"summary-terms-of-use",es:"terminos-de-uso",fr:"conditions-utilisation",zh:"summary-terms-of-use"}}},994:function(e,t,a){!function(t,o){e.exports=o(a(2))}(this,function(e){return function(e){function t(o){if(a[o])return a[o].exports;var r=a[o]={exports:{},id:o,loaded:!1};return e[o].call(r.exports,r,r.exports,t),r.loaded=!0,r.exports}var a={};return t.m=e,t.c=a,t.p="",t(0)}([function(e,t,a){"use strict";function o(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var r=Object.assign||function(e){for(var t=1;t0?C["default"].createElement("ul",{className:"col",key:t},C["default"].createElement("li",{className:"hasItem"},e.titleList.map(function(e,t){return C["default"].createElement("a",{href:(0,v["default"])(e)[0],key:t,onClick:function(){return l()},"data-customlink":"nl: header","data-text":(0,h["default"])(e)[0]},(0,h["default"])(e)[0])}),C["default"].createElement("ul",null,e.innerList.map(i)))):C["default"].createElement("ul",{className:"col",key:t},e.titleList.map(function(e,t){return C["default"].createElement("li",{key:t},C["default"].createElement("a",{href:(0,v["default"])(e)[0],onClick:function(){return l()},"data-customlink":"nl: header","data-text":(0,h["default"])(e)[0]},(0,h["default"])(e)[0]))}))}Object.defineProperty(t,"__esModule",{value:!0}),t.NavBar=void 0;var u,d,c,m,f=a(271),h=o(f),p=a(175),v=o(p),y=a(7),g=o(y),w=a(4),E=o(w),N=a(8),T=o(N),b=a(6),L=o(b),k=a(5),_=o(k);t.menuToJsx=n,t.listItemLink=i,t.colToJsx=s;var x=a(2),C=o(x),S=a(12),M=a(19),I=a(3),O=o(I),D=a(556),R=o(D),A=a(379),F=o(A),P=a(9),z=a(99),U=o(z),B=a(86),H=o(B),j=a(116),G=a(36),W=a(18),K=(C["default"].createElement(S.FormattedMessage,{defaultMessage:"/about/get-started",id:"navbar.startherepath"}),"menu"),q=t.NavBar=(u=(0,H["default"])(),(0,S.injectIntl)(d=u((m=c=function(e){function t(){(0,E["default"])(this,t);var e=(0,L["default"])(this,(0,g["default"])(t).call(this));return e.onDefocus=e.onDefocus.bind(e),e.state={focus:!1},e}return(0,_["default"])(t,e),(0,T["default"])(t,[{key:"onInputFocus",value:function(e){this.setState({focus:e})}},{key:"onDefocus",value:function(e){if(e.target.className!==K){var t=this.refs.menuContainer;t&&!t.contains(e.target)&&(0,j.changeAppNavMenuOpenState)(!1)}}},{key:"getOldSiteAlert",value:function(e){var t=e.beforeLink,a=e.link,o=e.linkText;return C["default"].createElement("span",{className:"alert right"},t," ",C["default"].createElement("a",{href:a},o))}},{key:"render",value:function(){var e=this.props,t=e.intl.formatMessage,a=e.location,o=e.megaMenu,r=e.selectedIndicator,l=e.selectedLocations,i=e.selectedTopic,s=(O["default"].startsWith(a.pathname,P.DATA_CATALOG_PATH),a.pathname===P.APP_PATH),u=C["default"].createElement(F["default"],{onInputFocus:this.onInputFocus.bind(this),id:"select-box",location:a,name:"locations-indicators"}),d=C["default"].createElement("span",{className:"tip"},C["default"].createElement("span",null,C["default"].createElement(S.FormattedMessage,{defaultMessage:"New to this site?",id:"navbar.newhere"})),C["default"].createElement("a",{href:t({id:"navbar.startherepath",defaultMessage:"/about/get-started"}),"data-customlink":"nl: header","data-text":"Start Here"},C["default"].createElement(S.FormattedMessage,{defaultMessage:"Start Here",id:"navbar.starthere"}))),c=s&&!(r||i||l.length),m=c?d:u,f=o.headerMenu||[];return C["default"].createElement("div",null,C["default"].createElement("nav",{id:"nav",className:this.state.focus?"focused":""},C["default"].createElement("div",{className:"wrapper"},C["default"].createElement("div",{className:"search"},m),C["default"].createElement("nav",{className:"links"},C["default"].createElement(U["default"],{className:"nav-item datapage",to:{pathname:"/"}}),f.map(function(e,t){return C["default"].createElement("a",{className:"nav-item","data-customlink":"nl: header","data-text":e.name,href:e.link,key:t,target:"Data Catalog"==e.name&&"_self"},e.name)}),C["default"].createElement("div",{className:"megamenu"},C["default"].createElement("button",{className:K,id:"navBarMenu",onClick:function(){return(0,j.changeAppNavMenuOpenState)()}},C["default"].createElement("span",null,"Menu")),C["default"].createElement("div",{className:"menuContainer",ref:"menuContainer"},C["default"].createElement("div",{className:"box"},C["default"].createElement(R["default"],{location:a}),C["default"].createElement("ul",{className:"featured"},C["default"].createElement("li",null,C["default"].createElement("a",{href:"http://microdata.worldbank.org/index.php/home",target:"new","data-customlink":"nl: header","data-text":"Microdata"},"Microdata")),C["default"].createElement("li",null,C["default"].createElement("a",{href:"http://datacatalog.worldbank.org",target:"_self","data-customlink":"nl: header","data-text":"Data Catalog"},"Data Catalog")),C["default"].createElement("li",null,C["default"].createElement("a",{href:"http://databank.worldbank.org/data/home.aspx",target:"new","data-customlink":"nl: header","data-text":"Data Bank"},C["default"].createElement(S.FormattedMessage,{defaultMessage:"DataBank",id:"databank"})))),C["default"].createElement("div",{className:"wrapper "},C["default"].createElement("div",{className:"dropdownBox"},C["default"].createElement(S.FormattedMessage,{defaultMessage:"Browse by",id:"multiselector.browseby"}),C["default"].createElement(U["default"],{className:"country",onClick:function(){return(0,j.changeAppNavMenuOpenState)(!1)},to:{pathname:"/country"},dataCustomLink:"nl: header",dataText:"Country"},C["default"].createElement(S.FormattedMessage,{defaultMessage:"Country",id:"multiselector.country"})),C["default"].createElement(U["default"],{onClick:function(){return(0,j.changeAppNavMenuOpenState)(!1)},to:{pathname:"/indicator"},dataCustomLink:"nl: header",dataText:"Indicator"},C["default"].createElement(S.FormattedMessage,{defaultMessage:"Indicator",id:"multiselector.indicator"}))),n(o)))))))))}}]),t}(x.Component),c.propTypes={intl:x.PropTypes.object.isRequired,location:x.PropTypes.object.isRequired,megaMenu:x.PropTypes.object.isRequired,selectedIndicator:x.PropTypes.string,selectedLocations:x.PropTypes.array},d=m))||d)||d);t["default"]=(0,M.connect)(r)(q)}}); \ No newline at end of file diff --git a/code/China _ Data_files/dest5.html b/code/China _ Data_files/dest5.html new file mode 100644 index 00000000..7b7cc233 --- /dev/null +++ b/code/China _ Data_files/dest5.html @@ -0,0 +1,17 @@ + + +Adobe AudienceManager \ No newline at end of file diff --git a/code/China _ Data_files/f(1).txt b/code/China _ Data_files/f(1).txt new file mode 100644 index 00000000..e8b8520c --- /dev/null +++ b/code/China _ Data_files/f(1).txt @@ -0,0 +1 @@ +(function(){var s = {};(function(){var c=/#|$/,f=function(d){var g=d.search(c),a;a:{for(a=0;0<=(a=d.indexOf("fmt",a))&&aa)return null;b=d.indexOf("&",a);if(0>b||b>g)b=g;a+=4;return decodeURIComponent(d.substr(a,b-a).replace(/\+/g," "))};var k=function(d,g,a){for(var b=a.length+1,n=function(){--b;if(0>=b){var a;(a=d.GooglebQhCsO)||(a={});var e=a[g];e&&(delete a[g],(a=e[0])&&a.call&&a())}},l=0;la?0:a};var ea=n("0.20"),fa=n("0.00"),ha=n("0.00"),ia=n("0.0");var p;a:{var q=k.navigator;if(q){var r=q.userAgent;if(r){p=r;break a}}p=""};var t=function(a){t[" "](a);return a};t[" "]=function(){};var u=function(a){var b=!1,d;return function(){b||(d=a(),b=!0);return d}};var w=function(){this.a="";this.c=v},v={},ja=function(a){var b=new w;b.a=a;return b};var ka=/^(?:(?:https?|mailto|ftp):|[^:/?#]*(?:[/?#]|$))/i;var la=function(a,b){a.src=b instanceof w&&b.constructor===w&&b.c===v?b.a:"type_error:TrustedResourceUrl";if(null===m){a:{b=k.document;if((b=b.querySelector&&b.querySelector("script[nonce]"))&&(b=b.nonce||b.getAttribute("nonce"))&&da.test(b))break a;b=null}m=b||""}(b=m)&&a.setAttribute("nonce",b)};var ma=function(){if(!k.crypto)return Math.random();try{var a=new Uint32Array(1);k.crypto.getRandomValues(a);return a[0]/65536/65536}catch(b){return Math.random()}},x=function(a,b){if(a)for(var d in a)Object.prototype.hasOwnProperty.call(a,d)&&b.call(void 0,a[d],d,a)},na=u(function(){return-1!=p.indexOf("Google Web Preview")||1E-4>Math.random()}),oa=u(function(){return-1!=p.indexOf("MSIE")});var pa=/^true$/.test("false"),y=/^true$/.test("false"),qa=/^true$/.test("true");var z=null,sa=function(){var a=ra,b=[],d=0,c;for(c in a)b[d++]=a[c];this.c={};this.a={};a=b||[];b=0;for(d=a.length;b>=8);b[d++]=e}if(!J)for(J={},K={},a=0;65>a;a++)J[a]="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(a),K[a]="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_.".charAt(a);a=K;d=[];for(c=0;c>2;f=(f&3)<<4|g>>4;g=(g&15)<<2|l>>6;l&=63;h||(l=64,e||(g=64));d.push(a[E], +a[f],a[g],a[l])}return d.join("")};var Qa=/^(?:([^:/?#.]+):)?(?:\/\/(?:([^/?#]*)@)?([^/#?]*?)(?::([0-9]+))?(?=[/#?]|$))?([^?#]+)?(?:\?([^#]*))?(?:#([\s\S]*))?$/,Ra=function(a){var b=a.match(Qa);a=b[5];var d=b[6];b=b[7];var c="";a&&(c+=a);d&&(c+="?"+d);b&&(c+="#"+b);return c},L=function(a,b,d,c){for(var e=d.length;0<=(b=a.indexOf(d,b))&&bc)return null;var e= +a.indexOf("&",c);if(0>e||e>d)e=d;c+=b.length+1;return decodeURIComponent(a.substr(c,e-c).replace(/\+/g," "))},Sa=/[?&]($|#)/,O=function(a,b,d){for(var c=a.search(M),e=0,f,g=[];0<=(f=L(a,e,b,c));)g.push(a.substring(e,f)),e=Math.min(a.indexOf("&",f)+1||c,c);g.push(a.substr(e));a=g.join("").replace(Sa,"$1");d=null!=d?"="+encodeURIComponent(String(d)):"";(b+=d)?(d=a.indexOf("#"),0>d&&(d=a.length),c=a.indexOf("?"),0>c||c>d?(c=d,e=""):e=a.substring(c+1,d),d=[a.substr(0,c),e,a.substr(d)],a=d[1],d[1]=b?a? +a+"&"+b:b:a,b=d[0]+(d[1]?"?"+d[1]:"")+d[2]):b=a;return b};var Ta=function(a,b,d,c){var e=N(d,"fmt");if(c){var f=N(d,"random"),g=N(d,"label")||"";if(!f)return!1;f=Pa(decodeURIComponent(g.replace(/\+/g," "))+":"+decodeURIComponent(f.replace(/\+/g," "))).replace(/[.]*$/,"");if(!Oa(a,f,c))return!1}e&&4!=e&&(d=O(d,"rfmt",e));e=O(d,"fmt",4);d=document.createElement("SCRIPT");e=ja(e);la(d,e);d.onload=function(){a.google_noFurtherRedirects&&c&&c.call&&(a.google_noFurtherRedirects=null,c())};b.getElementsByTagName("script")[0].parentElement.appendChild(d);return!0};var Ua={id:!0,origin:!0,destination:!0,start_date:!0,end_date:!0,location_id:!0},Va="google_conversion_id google_conversion_format google_conversion_type google_conversion_order_id google_conversion_language google_conversion_value google_conversion_evaluemrc google_conversion_currency google_conversion_domain google_conversion_label google_conversion_color google_disable_viewthrough google_enable_display_cookie_match google_gtag_event_data google_remarketing_only google_remarketing_for_search google_conversion_linker google_tag_for_child_directed_treatment google_tag_for_under_age_of_consent google_allow_ad_personalization_signals google_conversion_items google_conversion_merchant_id google_user_id google_custom_params google_conversion_date google_conversion_time google_conversion_js_version onload_callback opt_image_generator google_conversion_page_url google_conversion_referrer_url google_gtm google_gcl_cookie_prefix google_read_gcl_cookie_opt_out google_basket_feed_country google_basket_feed_language google_basket_discount google_basket_transaction_type google_disable_merchant_reported_conversions".split(" "), +P=function(a){return null!=a?encodeURIComponent(String(a)):""},Wa=function(a){if(null!=a){a=String(a).substring(0,512);var b=a.indexOf("#");return-1==b?a:a.substring(0,b)}return""},Q=function(a,b){b=P(b);return""!=b&&(a=P(a),""!=a)?"&".concat(a,"=",b):""},R=function(a){var b=typeof a;return null==a||"object"==b||"function"==b?null:String(a).replace(/,/g,"\\,").replace(/;/g,"\\;").replace(/=/g,"\\=")},Xa=function(a){if(!a||"object"!=typeof a||"function"==typeof a.join)return"";var b=[],d;for(d in a)if(Object.prototype.hasOwnProperty.call(a, +d)){var c=a[d];if(c&&"function"==typeof c.join){for(var e=[],f=0;f=h&&g()}}c.onload_callback=f;for(f=0;f=c){var d=Na(a,!1),e=d[b];e&&(delete d[b],(d=e[0])&&d.call&&d())}},f=function(a,b){var c=new Image;c.onload=a;c.src=b};if(2==d.length){var g=d[0],h=d[1];0<=L(g,0,"rmt_tld",g.search(M))&&0<=L(g,0,"ipr",g.search(M))&&!h.match(Qa)[6]&&(h+=Ra(g),d[1]=O(h,"rmt_tld","1"))}for(g=0;g1?c-1:0),e=1;e1?e-1:0),g=1;g1&&arguments[1]!==undefined?arguments[1]:{};if(!a)return m({type:"NO_EVENT_NAME"});var c=h[a];return!c?n([{type:"NONSTANDARD_EVENT",eventName:a}]):q(a,b,c)}function q(a,b,f){f=f.validationSchema;var h=[];for(var i in f)if(j.call(f,i)){var k=f[i],l=b[i];if(k){if(k.isRequired&&!j.call(b,i))return m({type:"REQUIRED_PARAM_MISSING",param:i,eventName:a});if(k.type&&typeof k.type==="string"){var o=!0;switch(k.type){case d:k=(typeof l==="string"||typeof l==="number")&&c.test(""+l);k&&Number(l)<0&&h.push({type:"NEGATIVE_EVENT_PARAM",param:i,eventName:a?a:"null"});o=k;break;case e:o=typeof l==="string"&&!!g[l.toUpperCase()];break}if(!o)return m({type:"INVALID_PARAM",param:i,eventName:a})}}}return n(h)}function r(a,c){a=p(a,c);a.error&&b(a.error);if(a.warnings)for(var c=0;c2&&arguments[2]!==undefined?arguments[2]:!1;if(typeof b!=="string"||!y(b))throw new Error('Invalid Argument: "'+b+'" is not a valid opt-in feature');y(b)&&(this.optIns.optIn(a,b,d),p([b].concat(j(w[b]||[])),function(a){x[a]&&p(x[a],function(a){return c.fbq.loadPlugin(a)})}));return this}},{key:"optOut",value:function(a,b){this.optIns.optOut(a,b);return this}},{key:"consent",value:function(a){a=="revoke"?this.locks.lockConsent():a=="grant"?this.locks.unlockConsent():u({type:"INVALID_CONSENT_ACTION",action:a});return this}},{key:"setUserProperties",value:function(a,b){this.ensurePixel(a);var c=this.getDefaultSendData(a,"UserProperties");c.customData=b;c.customParameters={es:"userProperties"};this.trackSingleSystem("user_properties",a,"UserProperties",b)}},{key:"trackSingle",value:function(b,c,d){a.validateEventAndLog(c,d);return this.trackSingleCustom(b,c,d)}},{key:"trackSingleCustom",value:function(a,b,c){a=typeof a==="string"?a:a.id;a=this.getDefaultSendData(a,b);a.customData=c;this.fire(a,!1);return this}},{key:"trackSingleSystem",value:function(a,b,c,d){b=typeof b==="string"?b:b.id;b=this.getDefaultSendData(b,c);b.customData=d;b.customParameters={es:a};this.fire(b,!1);return this}},{key:"_validateSend",value:function(b,c){if(!b.eventName||!b.eventName.length)throw new Error("Event name not specified");if(!b.pixelId||!b.pixelId.length)throw new Error("PixelId not specified");b.set&&p(r(q(b.set),function(b){return a.validateMetadata(b)}),function(a){if(a.error)throw new Error(a.error);a.warnings.length&&p(a.warnings,u)});if(c){c=a.validateEvent(b.eventName,b.customData||{});if(c.error)throw new Error(c.error);c.warnings&&c.warnings.length&&p(c.warnings,u)}return this}},{key:"fire",value:function(a){var b=arguments.length>1&&arguments[1]!==undefined?arguments[1]:!1;this._validateSend(a,b);if(a.userData&&q(a.userData).length>0&&!this.fbq.loadPlugin("identity")){g.fbq("fire",a);return this}var c=this.fbq.getEventCustomParameters(this.getPixel(a.pixelId)),d=a.customParameters;d&&p(q(d),function(a){if(c.containsKey(a))throw new Error("Custom parameter "+a+" already specified.");else c.append(a,d[a])});o.sendEvent(a.pixelId,a.eventName,a.customData,c);return this}},{key:"callMethod",value:function(a){var b=a[0];a=Array.prototype.slice.call(a,1);if(typeof b!=="string"){u({type:"FBQ_NO_METHOD_NAME"});return}if(typeof this[b]==="function")try{this[b].apply(this,a)}catch(a){t(a)}else u({type:"INVALID_FBQ_METHOD",method:b})}},{key:"getDefaultSendData",value:function(a,b){var c=this.getPixel(a);a={pixelId:a,eventName:b};c&&(c.userData&&(a.userData=c.userData),c.agent?a.set={agent:c.agent}:this.fbq.agent&&(a.set={agent:this.fbq.agent}));return a}},{key:"getOptedInPixels",value:function(a){var b=this;return this.optIns.listPixelIds(a).map(function(a){return b.pixelsByID[a]})}},{key:"ensurePixel",value:function(a){if(!Object.prototype.hasOwnProperty.call(this.pixelsByID,a))throw new Error('Pixel "'+a+'" not found')}},{key:"getPixel",value:function(a){this.ensurePixel(a);return this.pixelsByID[a]}},{key:"loadConfig",value:function(a){if(this.fbq.disableConfigLoading||Object.prototype.hasOwnProperty.call(this.configsLoaded,a))return;this.locks.lockConfig(a);(!this.fbq.pendingConfigs||s(this.fbq.pendingConfigs,function(b){return b===a})==!1)&&z(a,this.VERSION,this.RELEASE_SEGMENT!=null?this.RELEASE_SEGMENT:"stable")}},{key:"setExperiments",value:function(a){this._defaultExperiments=new m(a)}},{key:"getExperiments",value:function(){return this._defaultExperiments}},{key:"configLoaded",value:function(a){this.configsLoaded[a]=!0,this.locks.releaseConfig(a),this.fbq.trigger("configLoaded",a)}}]);return d}();e.exports=h})();return e.exports}(a,b,c,d)});f.ensureModuleRegistered("SignalsFBEventsFireLock",function(){return function(g,h,j,d){var e={exports:{}};e.exports;(function(){"use strict";var a=f.getFbeventsModules("SignalsFBEventsUtils"),b=a.each,c=a.keys;a=function(){function a(){k(this,a),this._locks={},this._callbacks=[]}i(a,[{key:"lock",value:function(a){this._locks[a]=!0}},{key:"release",value:function(a){Object.prototype.hasOwnProperty.call(this._locks,a)&&(delete this._locks[a],c(this._locks).length===0&&b(this._callbacks,function(b){return b(a)}))}},{key:"onUnlocked",value:function(a){this._callbacks.push(a)}},{key:"isLocked",value:function(){return c(this._locks).length>0}},{key:"lockPlugin",value:function(a){this.lock("plugin:"+a)}},{key:"releasePlugin",value:function(a){this.release("plugin:"+a)}},{key:"lockConfig",value:function(a){this.lock("config:"+a)}},{key:"releaseConfig",value:function(a){this.release("config:"+a)}},{key:"lockConsent",value:function(){this.lock("consent")}},{key:"unlockConsent",value:function(){this.release("consent")}}]);return a}();a.global=new a();e.exports=a})();return e.exports}(a,b,c,d)});f.ensureModuleRegistered("signalsFBEventsInjectMethod",function(){return function(g,h,i,j){var k={exports:{}};k.exports;(function(){"use strict";var a=f.getFbeventsModules("signalsFBEventsMakeSafe");function b(b,c,d){var e=b[c],f=a(d);b[c]=function(){var a=e.apply(this,arguments);f.apply(this,arguments);return a}}k.exports=b})();return k.exports}(a,b,c,d)});f.ensureModuleRegistered("SignalsFBEventsJSLoader",function(){return function(f,g,h,i){var j={exports:{}};j.exports;(function(){"use strict";var a={CDN_BASE_URL:"https://connect.facebook.net/"};function b(){var b=g.getElementsByTagName("script");for(var c=0;c0}function p(a){return Object.prototype.hasOwnProperty.call(i,a)?i[a]:a}function q(a){return Object.prototype.hasOwnProperty.call(j,a)?j[a]:a}function r(a){if(typeof a==="string")return a;if(typeof a==="number")return isNaN(a)?undefined:a;try{return JSON.stringify(a)}catch(a){}return a.toString&&a.toString.call?a.toString():undefined}function s(a){var b={};if(a!=null&&(typeof a==="undefined"?"undefined":h(a))==="object")for(var c in a)if(Object.prototype.hasOwnProperty.call(a,c)){var d=r(a[c]);d!=null&&(b[q(c)]=d)}return b}var t=0;function u(){var b=t;t=0;a.logMobileNativeForwarding(b)}function v(a,b,d,e){c(n(a),function(c){return c.sendEvent(a.id,p(b),JSON.stringify(s(d)))}),t++,setTimeout(u,0)}e.exports={pixelHasActiveBridge:o,registerBridge:m,sendEvent:v}})();return e.exports}(a,b,c,d)});f.ensureModuleRegistered("SignalsFBEventsOptIn",function(){return function(g,h,c,d){var e={exports:{}};e.exports;(function(){"use strict";var a=f.getFbeventsModules("SignalsFBEventsUtils"),b=a.each,c=a.filter,d=a.keys,g=a.some;function h(a){b(d(a),function(b){if(g(a[b],function(b){return Object.prototype.hasOwnProperty.call(a,b)}))throw new Error("Circular subOpts are not allowed. "+b+" depends on another subOpt")})}a=function(){function a(){var b=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};k(this,a);this._opts={};this._subOpts=b;h(this._subOpts)}i(a,[{key:"_getOpts",value:function(a){return[].concat(j(Object.prototype.hasOwnProperty.call(this._subOpts,a)?this._subOpts[a]:[]),[a])}},{key:"_setOpt",value:function(a,b,c){b=this._opts[b]||(this._opts[b]={});b[a]=c}},{key:"optIn",value:function(a,c){var d=this,e=arguments.length>2&&arguments[2]!==undefined?arguments[2]:!1;b(this._getOpts(c),function(b){var f=e==!0&&d.isOptedOut(a,c);f||d._setOpt(a,b,!0)});return this}},{key:"optOut",value:function(a,c){var d=this;b(this._getOpts(c),function(b){return d._setOpt(a,b,!1)});return this}},{key:"isOptedIn",value:function(a,b){return this._opts[b]!=null&&this._opts[b][a]===!0}},{key:"isOptedOut",value:function(a,b){return this._opts[b]!=null&&this._opts[b][a]===!1}},{key:"listPixelIds",value:function(a){var b=this._opts[a];return b!=null?c(d(b),function(a){return b[a]===!0}):[]}}]);return a}();e.exports=a})();return e.exports}(a,b,c,d)});f.ensureModuleRegistered("SignalsFBEventsProxyState",function(){return function(f,g,h,i){var j={exports:{}};j.exports;(function(){"use strict";var a=!1;j.exports={getShouldProxy:function(){return a},setShouldProxy:function(b){a=b}}})();return j.exports}(a,b,c,d)});f.ensureModuleRegistered("SignalsFBEventsQE",function(){return function(f,h,j,d){var e={exports:{}};e.exports;(function(){"use strict";var a=function(){return Math.random()};function b(c){var b=a();for(var d=0;d1)throw new Error("passRate should be between 0 and 1 in "+e.name);if(b>=i&&b1&&arguments[1]!==undefined?arguments[1]:0,e=arguments.length>2&&arguments[2]!==undefined?arguments[2]:!1;if(!e&&!i)return;try{var f=new d(null);f.append("v",g.fbq&&g.fbq.version?g.fbq.version:"unknown");f.append("rs",h);f.append("e",event);f.append("p",b);c(f,"https://connect.facebook.net/log/fbevents_telemetry/")}catch(b){a.logError(b)}}function l(){j("COALESCE_INIT")}function m(a){j("COALESCE_COMPLETE",a)}function n(a){j("FBMQ_FORWARDED",a,!0)}k.exports={logStartBatch:l,logEndBatch:m,logMobileNativeForwarding:n}})();return k.exports}(a,b,c,d)});f.ensureModuleRegistered("SignalsFBEventsUtils",function(){return function(g,j,c,d){var e={exports:{}};e.exports;(function(){"use strict";var a=f.getFbeventsModules("SignalsFBEventsProxyState"),b=Object.prototype.toString,c=!("addEventListener"in j);function d(a,b){return typeof b==="function"&&a instanceof b}function l(a){return Array.isArray?Array.isArray(a):b.call(a)==="[object Array]"}function m(a){return typeof a==="number"||typeof a==="string"&&/^\d+$/.test(a)}var n=Number.isInteger||function(a){return typeof a==="number"&&isFinite(a)&&Math.floor(a)===a};function o(a,b,d){var e=c?"on"+b:b;b=c?a.attachEvent:a.addEventListener;var f=c?a.detachEvent:a.removeEventListener,g=function b(){f&&f.call(a,e,b,!1),d()};b&&b.call(a,e,g,!1)}var p=Object.prototype.hasOwnProperty,q=!{toString:null}.propertyIsEnumerable("toString"),r=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],s=r.length;function t(a){if(Object.keys)return Object.keys(a);if((typeof a==="undefined"?"undefined":h(a))!=="object"&&(typeof a!=="function"||a===null))throw new TypeError("Object.keys called on non-object");var b=[];for(var c in a)p.call(a,c)&&b.push(c);if(q)for(var d=0;d>>0;if(typeof b!=="function")throw new TypeError(b+" is not a function");c=new Array(e);d=0;while(d>>0,d=arguments.length>=2?arguments[1]:void 0;for(var e=0;e>>0;if(typeof a!=="function")throw new TypeError();var d=[],e=arguments.length>=2?arguments[1]:void 0;for(var f=0;fb?a.substr(0,b):a}l={isArray:l,isEmptyObject:w,isNumber:m,isInteger:n,isInstanceOf:d,keys:t,listenOnce:o,map:u,truncate:E,sendGET:A,sendPOST:B,sendBeacon:C,FBSet:y,each:function(a,b){u.call(this,a,b)},some:function(a,b){return v.call(a,b)},filter:function(a,b){return x.call(a,b)},castTo:D};e.exports=l})();return e.exports}(a,b,c,d)});f.ensureModuleRegistered("SignalsParamList",function(){return function(f,g,j,d){var e={exports:{}};e.exports;(function(){"use strict";var a="deep",b="shallow";function c(a){if(JSON===undefined||JSON===null||!JSON.stringify)return Object.prototype.toString.call(a);else return JSON.stringify(a)}function d(a){if(a===null||a===undefined)return!0;a=typeof a==="undefined"?"undefined":h(a);return a==="number"||a==="boolean"||a==="string"}var f=function(){function e(a){k(this,e),this._params=[],this._piiTranslator=a}i(e,[{key:"containsKey",value:function(a){for(var b=0;b2&&arguments[2]!==undefined?arguments[2]:!1;this._append(encodeURIComponent(b),c,a,d);return this}},{key:"appendHash",value:function(b){var c=arguments.length>1&&arguments[1]!==undefined?arguments[1]:!1;for(var d in b)Object.prototype.hasOwnProperty.call(b,d)&&this._append(encodeURIComponent(d),b[d],a,c);return this}},{key:"_append",value:function(b,e,f,g){d(e)?this._appendPrimitive(b,e,g):f===a?this._appendObject(b,e,g):this._appendPrimitive(b,c(e),g)}},{key:"_translateValue",value:function(a,b,c){if(typeof b==="boolean")return b?"true":"false";if(!c)return""+b;if(!this._piiTranslator)throw new Error();return this._piiTranslator(a,""+b)}},{key:"_appendPrimitive",value:function(a,b,c){if(b!=null){b=this._translateValue(a,b,c);b!=null&&this._params.push({name:a,value:b})}}},{key:"_appendObject",value:function(a,c,d){var e=null;for(var f in c)if(Object.prototype.hasOwnProperty.call(c,f)){var g=a+"["+encodeURIComponent(f)+"]";try{this._append(g,c[f],b,d)}catch(a){e==null&&(e=a)}}if(e!=null)throw e}},{key:"each",value:function(a){for(var b=0;b-1;b=b.userAgent.match("CriOS");return!b&&a!==null&&a!==undefined&&c==="Google Inc."&&d===!1&&e===!1}function v(a,b,c,e,f){if(g.navigator&&g.navigator.sendBeacon){f=new l(f);q(f,a,b,c);e&&f.addRange(e);d(f,n.ENDPOINT)}}k.exports={CONFIG:n,sendEvent:t,sendBeaconPII:v,setUseBeacon:c}})();return k.exports}(a,b,c,d)});f.ensureModuleRegistered("SignalsFBEvents",function(){return function(g,h,i,j){var k={exports:{}};k.exports;(function(){"use strict";var a=g.fbq;a.execStart=g.performance&&typeof g.performance.now==="function"?g.performance.now():null;var b=a.getFbeventsModules("SignalsParamList"),c=a.getFbeventsModules("SignalsPixelEndpoint"),d=a.getFbeventsModules("SignalsEvents"),e=a.getFbeventsModules("SignalsFBEventsUtils"),l=a.getFbeventsModules("SignalsFBEventsLogging"),m=a.getFbeventsModules("SignalsEventValidation"),n=a.getFbeventsModules("SignalsFBEventsFBQ"),o=a.getFbeventsModules("SignalsFBEventsJSLoader"),p=a.getFbeventsModules("SignalsFBEventsFireLock"),q=a.getFbeventsModules("SignalsFBEventsMobileAppBridge"),r=a.getFbeventsModules("signalsFBEventsInjectMethod"),s=a.getFbeventsModules("signalsFBEventsMakeSafe"),t=a.getFbeventsModules("SignalsFBEventsConfigStore"),u=d.on,v=d.once,w=d.trigger,x=e.each;d=e.FBSet;var y=e.isArray,z=e.isInteger,A=e.isEmptyObject,B=e.isNumber,C=e.keys,D=l.logError,E=l.logUserError,F=p.global;function aa(b){return a.getFbeventsModules(b)}function ba(b){return a.fbIsModuleLoaded(b)}var G={},H=-1,ca=Array.prototype.slice,I=Object.prototype.hasOwnProperty,J=i.href,K=!1,L=!1,M=[],N={},O;h.referrer;var P={PageView:new d(),PixelInitialized:new d()},Q=new n(a,N);function da(a){for(var b in a)I.call(a,b)&&(this[b]=a[b]);return this}function R(b){try{var c=ca.call(arguments);if(F.isLocked()&&c[0]!=="consent"){a.queue.push(arguments);return}var d=c.length===1&&y(c[0]);d&&(c=c[0]);typeof c[0]!=="string"&&E({type:"FBQ_NO_METHOD_NAME"});if(b.slice(0,6)==="report"){var e=b.slice(6);e==="CustomEvent"?(e=(c[1]||{}).event||e,c=["trackCustom",e].concat(c.slice(1))):c=["track",e].concat(c.slice(1))}b=c.shift();switch(b){case"addPixelId":K=!0;T.apply(this,c);break;case"init":L=!0;T.apply(this,c);break;case"set":S.apply(this,c);break;case"track":if(B(c[0])){ha.apply(this,c);break}if(d){V.apply(this,c);break}ga.apply(this,c);break;case"trackCustom":V.apply(this,c);break;case"send":W.apply(this,c);break;case"on":u.apply(null,c);break;case"loadPlugin":$(c[0]);break;default:Q.callMethod(arguments);break}}catch(a){D(a)}}function S(b){for(var d=arguments.length,e=Array(d>1?d-1:0),f=1;f=0&&a<=Number.MAX_SAFE_INTEGER};function T(a,b,c){H=H===-1?Date.now():H;if(typeof a==="number")ea(a)||E({type:"INVALID_PIXEL_ID",pixelID:a.toString()}),a=a.toString();else if(typeof a==="string"){var d=/^[1-9][0-9]{0,25}$/;d.test(a)||E({type:"INVALID_PIXEL_ID",pixelID:a})}else if(a===undefined)E({type:"INVALID_PIXEL_ID",pixelID:"undefined"});else if(a===null)E({type:"INVALID_PIXEL_ID",pixelID:"null"});else{typeof a.toString==="function"?E({type:"INVALID_PIXEL_ID",pixelID:a.toString()}):E({type:"INVALID_PIXEL_ID",pixelID:"[no toString]"});return}if(I.call(N,a)){b&&A(N[a].userData)?(N[a].userData=b,$("identity")):E({type:"DUPLICATE_PIXEL_ID",pixelID:a});return}d={agent:c?c.agent:null,id:a,userData:b||{},eventCount:0};M.push(d);N[a]=d;b!=null&&$("identity");U();Q.loadConfig(a)}function U(){for(var b=0;b1&&E({type:"MULTIPLE_PIXELS"});function ka(){if(a.disablePushState===!0)return;if(!j.pushState||!j.replaceState)return;var b=s(function(){O=J;J=i.href;if(J===O)return;var a=new da({allowDuplicatePageViews:!0});R.call(a,"trackCustom","PageView")});r(j,"pushState",b);r(j,"replaceState",b);g.addEventListener("popstate",b,!1)}v("fired",function(){return ka()});function la(b){a._initHandlers.push(b),U()}function ma(){return{pixelInitializationTime:H,pixels:M}}function na(a){a.instance=Q,a.callMethod=R,a.loadPlugin=$,a.registerPlugin=ja,a._initHandlers=[],a._initsDone={},a.on=u,a.once=v,a.send=W,a.trigger=w,a.getEventCustomParameters=X,a.addInitHandler=la,a.getState=ma,a.init=T,a.set=S}na(g.fbq);Z();k.exports={doExport:na};w("execEnd");w("initialized",a)})();return k.exports}(a,b,c,d)});e.exports=f.getFbeventsModules("SignalsFBEvents");f.registerPlugin&&f.registerPlugin("fbevents",e.exports);f.ensureModuleRegistered("fbevents",function(){return e.exports})})()})(window,document,location,history); +fbq.registerPlugin("global_config", {__fbEventsPlugin: 1, plugin: function(fbq, instance, config) { fbq.loadPlugin("opttracking"); +fbq.set("experiments", {"0":{"name":"beacon","range":[0,0],"code":"b","passRate":0.5},"1":{"name":"logDataLayer","range":[0,0],"code":"d","passRate":0},"2":{"name":"button_click_send_beacon","range":[0,0.1],"code":"e","passRate":0.5},"3":{"name":"button_click_send_beacon_all_browser","range":[0.11,0.12],"code":"f","passRate":0.5},"4":{"name":"all_event_send_beacon","range":[0.12,0.13],"code":"g","passRate":0.5},"5":{"name":"send_coalescence_telemetry","range":[0,0],"code":"h","passRate":0.5}});instance.configLoaded("global_config"); }}); \ No newline at end of file diff --git a/code/China _ Data_files/fs.frame.html b/code/China _ Data_files/fs.frame.html new file mode 100644 index 00000000..d7cfe909 --- /dev/null +++ b/code/China _ Data_files/fs.frame.html @@ -0,0 +1,12 @@ + + + + + + ForeSee Cloud Services Storage Utility Frame + + + +

This frame is used to deliver ForeSee functionality to your website.

+ + \ No newline at end of file diff --git a/code/China _ Data_files/fs.frame.js.download b/code/China _ Data_files/fs.frame.js.download new file mode 100644 index 00000000..f1e3b9c4 --- /dev/null +++ b/code/China _ Data_files/fs.frame.js.download @@ -0,0 +1,8 @@ +/*************************************** +* @preserve +* ForeSee Web SDK: Storage Frame +* Built May 18, 17 12:15:47 +* Code version: 19.3.4 +* Template version: 19.3.4 +***************************************/ +_fsDefine(["require","fs",_fsNormalizeUrl("fs.utils.js")],function(t,s,e){e.preventUnloadFlag=!0;var i=function(t,s){this.br=t,this.useAlt=t.isIE||"Safari"==t.browser.name||!t.supportsLocalStorage,this._bidID=1,this._id=s,this._stgLimit=900,this._trnsInterval=25,this.altBits=[],this._localSets=[],this.channelOpen=new e.FSEvent};i.prototype.init=function(){if(this.useAlt){var t=s.toLowerCase(window.location.host.toString()).replace(/www\./gi,"");t.indexOf(":")>-1&&(t=t.substr(0,t.indexOf(":"))),this._stg={};var i=new Date;i.setTime(i.getTime()+31536e6);var r={path:"/",domain:t,secure:!1,encode:!0,expires:i.toGMTString()};this._ck=new e.Cookie(r)}this._transportTimer=setInterval(s.proxy(function(){var t;this._ck?(this._ck.set("_fsuid",this._id),t=this._ck.get("_fruid")):(localStorage.setItem("_fsuid",this._id),t=localStorage.getItem("_fruid")),t==this._id&&this._finishInit()},this),5*this._trnsInterval)},i.prototype._finishInit=function(){var t,e=!1;clearInterval(this._transportTimer),this._ck?this._transportTimer=setInterval(s.proxy(function(){if(this.altBits.length>0){!this._ck.get("fsmsgrec")&&e||(e=!0,this._ck.kill("fsmsgrec"),t=JSON.stringify(this.altBits.shift()),this._ck.set("fsmsg",t))}},this),this._trnsInterval):this.br.supportsLocalStorage&&(this._transportTimer=setInterval(s.proxy(function(){for(;this._localSets.length>0;){var t=this._localSets.pop();this.br.supportsLocalStorage&&localStorage.setItem("__fsFr__"+t.key,t.val)}},this),150)),this.channelOpen.fire()},i.prototype.set=function(t,i,r){"string"!=typeof i&&(i=JSON.stringify({v:i,x:r})),this._localSets.push({key:t,val:i,exp:r}),this._ck&&this.channelOpen.subscribe(s.proxy(function(){this._stg[t]=i;for(var s=e.Compress.compress(i),r="_"+Math.round(9999999*Math.random());s.length>0;)this.altBits.push({id:this._bidID++,t:r,k:t,d:s.substr(0,Math.min(this._stgLimit,s.length)),f:s.length<=this._stgLimit}),s=s.substr(Math.min(this._stgLimit,s.length))},this),!0,!0)},i.prototype.get=function(t){var s;return this._ck&&(s=this._ck.get(t)),!s&&this.br.supportsLocalStorage&&(s=localStorage.getItem(t)),s},i.prototype.kill=function(t){this._ck&&this._ck.kill(t),this.br.supportsLocalStorage&&localStorage.removeItem(t)};var r=function(t){this.br=t,this.securityError=new e.FSEvent,this.securityError.subscribe(s.proxy(function(){this._postMessage("securityerror",{})},this),!0),this.messageReceived=new e.FSEvent,e.Bind(window,"message",s.proxy(function(t){this._onMessage(t)},this),"*"),this._postMessage("ready",{});var i=!1;setInterval(s.proxy(function(){this._postMessage("ready",{}),i||document.cookie.toString().indexOf("fsIce=broke")>-1&&(i=!0,this._postMessage("trackerready",1))},this),250)};r.prototype._onMessage=function(t){var s,i,r,n,o;try{if(s=JSON.parse(t.data),o=s.method,i=s.params,void 0===o||void 0===i)return}catch(t){return}switch(r=i.skipencode,n=i.contenttype,o){case"broadcast":i&&i.key&&i.value&&this.messageReceived.fire(i.key,i.value,i.x);break;case"ajax":new e.AjaxTransport({url:i.url,method:i.method,skipEncode:r,contentType:n,success:function(t,s){return function(t){s._postMessage("ajaxreturn",{params:i,res:t,success:!0})}}(0,this),failure:function(t,s){return function(t){s._postMessage("ajaxreturn",{params:i,success:!1,res:t})}}(0,this),data:i.data}).send()}},r.prototype._postMessage=function(t,s){var e=JSON.stringify({src:"fsframe",method:t,params:s});window.parent.postMessage(e,"*")},s.winReady(function(){var t=new e.Browser;t.ready.subscribe(function(){var e=s.getParam("uid"),n=new r(t),o=new i(t,e);n.messageReceived.subscribe(s.proxy(o.set,o),!1,!1),o.init()},!0,!0)})}); \ No newline at end of file diff --git a/code/China _ Data_files/fs.gateway.js.download b/code/China _ Data_files/fs.gateway.js.download new file mode 100644 index 00000000..879da5e3 --- /dev/null +++ b/code/China _ Data_files/fs.gateway.js.download @@ -0,0 +1,12 @@ +"use strict"; +/** +* @preserve +* ForeSee Gateway Script v2.0.4. Thursday, May 18th, 2017, 9:26:12 AM +* (c) Copyright 2016, ForeSee. http://www.foresee.com +* Patents pending. +**/ +!function(){function trimDots(ary){var i,part;for(i=0;i0&&(ary.splice(i-1,2),i-=2)}}function __eB(element,type,handler){element.addEventListener?element.addEventListener(type,handler,!1):element.attachEvent("on"+type,handler)}function getAllScripts(){return _D.getElementsByTagName("script")}function mixin(target,source,force,deepStringMixin){return source&&eachProp(source,function(value,prop){!force&&hasProp(target,prop)||(!deepStringMixin||"object"!=typeof value||!value||isArray(value)||isFunction(value)||value instanceof RegExp?target[prop]=value:(target[prop]||(target[prop]={}),mixin(target[prop],value,force,deepStringMixin)))}),target}function each(ary,func){if(ary){var i;for(i=0;i-1&&(!ary[i]||!func(ary[i],i,ary));i-=1);}}function defaultOnError(err){}function getGlobal(value){if(!value)return value;var g=global;return each(value.split("."),function(part){g=g[part]}),g}function newContext(contextName){function normalize(name,baseName,applyMap){var pkgMain,mapValue,nameParts,i,j,nameSegment,lastIndex,foundMap,foundI,foundStarMap,starI,normalizedBaseParts,baseParts=baseName&&baseName.split("/"),map=config.map,starMap=map&&map["*"];if(name&&(name=name.split("/"),lastIndex=name.length-1,config.nodeIdCompat&&jsSuffixRegExp.test(name[lastIndex])&&(name[lastIndex]=name[lastIndex].replace(jsSuffixRegExp,"")),"."===name[0].charAt(0)&&baseParts&&(normalizedBaseParts=baseParts.slice(0,baseParts.length-1),name=normalizedBaseParts.concat(name)),trimDots(name),name=name.join("/")),applyMap&&map&&(baseParts||starMap)){nameParts=name.split("/");outerLoop:for(i=nameParts.length;i>0;i-=1){if(nameSegment=nameParts.slice(0,i).join("/"),baseParts)for(j=baseParts.length;j>0;j-=1)if(mapValue=getOwn(map,baseParts.slice(0,j).join("/")),mapValue&&(mapValue=getOwn(mapValue,nameSegment))){foundMap=mapValue,foundI=i;break outerLoop}!foundStarMap&&starMap&&getOwn(starMap,nameSegment)&&(foundStarMap=getOwn(starMap,nameSegment),starI=i)}!foundMap&&foundStarMap&&(foundMap=foundStarMap,foundI=starI),foundMap&&(nameParts.splice(0,foundI,foundMap),name=nameParts.join("/"))}return pkgMain=getOwn(config.pkgs,name),pkgMain?pkgMain:name}function removeScript(name){each(getAllScripts(),function(scriptNode){if(attr(scriptNode,"data-requiremodule")===name&&attr(scriptNode,"data-requirecontext")===context.contextName)return scriptNode.parentNode.removeChild(scriptNode),!0})}function hasPathFallback(id){var pathConfig=getOwn(config.paths,id);if(pathConfig&&isArray(pathConfig)&&pathConfig.length>1)return pathConfig.shift(),context.require.undef(id),context.makeRequire(null,{skipMap:!0})([id]),!0}function splitPrefix(name){var prefix,index=name?name.indexOf("!"):-1;return index>-1&&(prefix=name.substring(0,index),name=name.substring(index+1,name.length)),[prefix,name]}function makeModuleMap(name,parentModuleMap,isNormalized,applyMap){var url,pluginModule,suffix,nameParts,prefix=null,parentName=parentModuleMap?parentModuleMap.name:null,originalName=name,isDefine=!0,normalizedName="";return name||(isDefine=!1,name="_@r"+(requireCounter+=1)),nameParts=splitPrefix(name),prefix=nameParts[0],name=nameParts[1],prefix&&(prefix=normalize(prefix,parentName,applyMap),pluginModule=getOwn(defined,prefix)),name&&(prefix?normalizedName=pluginModule&&pluginModule.normalize?pluginModule.normalize(name,function(name){return normalize(name,parentName,applyMap)}):name.indexOf("!")===-1?normalize(name,parentName,applyMap):name:(normalizedName=normalize(name,parentName,applyMap),nameParts=splitPrefix(normalizedName),prefix=nameParts[0],normalizedName=nameParts[1],isNormalized=!0,url=context.nameToUrl(normalizedName))),suffix=!prefix||pluginModule||isNormalized?"":"_unnormalized"+(unnormalizedCounter+=1),{prefix:prefix,name:normalizedName,parentMap:parentModuleMap,unnormalized:!!suffix,url:url,originalName:originalName,isDefine:isDefine,id:(prefix?prefix+"!"+normalizedName:normalizedName)+suffix}}function getModule(depMap){var id=depMap.id,mod=getOwn(registry,id);return mod||(mod=registry[id]=new context.Module(depMap)),mod}function on(depMap,name,fn){var id=depMap.id,mod=getOwn(registry,id);!hasProp(defined,id)||mod&&!mod.defineEmitComplete?(mod=getModule(depMap),mod.error&&"error"===name?fn(mod.error):mod.on(name,fn)):"defined"===name&&fn(defined[id])}function onError(err,errback){err.requireModules;errback&&errback(err)}function takeGlobalQueue(){globalDefQueue.length&&(apsp.apply(defQueue,[defQueue.length,0].concat(globalDefQueue)),globalDefQueue=[])}function cleanRegistry(id){delete registry[id],delete enabledRegistry[id]}function breakCycle(mod,traced,processed){var id=mod.map.id;mod.error?mod.emit("error",mod.error):(traced[id]=!0,each(mod.depMaps,function(depMap,i){var depId=depMap.id,dep=getOwn(registry,depId);!dep||mod.depMatched[i]||processed[depId]||(getOwn(traced,depId)?(mod.defineDep(i,defined[depId]),mod.check()):breakCycle(dep,traced,processed))}),processed[id]=!0)}function checkLoaded(){var usingPathFallback,waitInterval=1e3*config.waitSeconds,expired=waitInterval&&context.startTime+waitInterval<(new Date).getTime(),noLoads=[],reqCalls=[],stillLoading=!1,needCycleCheck=!0;inCheckLoaded||(inCheckLoaded=!0,eachProp(enabledRegistry,function(mod){var map=mod.map,modId=map.id;if(mod.enabled&&(map.isDefine||reqCalls.push(mod),!mod.error))if(!mod.inited&&expired)hasPathFallback(modId)?(usingPathFallback=!0,stillLoading=!0):(noLoads.push(modId),removeScript(modId));else if(!mod.inited&&mod.fetched&&map.isDefine&&(stillLoading=!0,!map.prefix))return needCycleCheck=!1}),expired&&noLoads.length||(needCycleCheck&&each(reqCalls,function(mod){breakCycle(mod,{},{})}),expired&&!usingPathFallback||!stillLoading||checkLoadedTimeoutId||(checkLoadedTimeoutId=setTimeout(function(){checkLoadedTimeoutId=0,checkLoaded()},50)),inCheckLoaded=!1))}function callGetModule(args){hasProp(defined,args[0])||getModule(makeModuleMap(args[0],null,!0)).init(args[1],args[2])}function removeListener(node,func,name,ieName){node.detachEvent&&!isOpera?ieName&&node.detachEvent(ieName,func):node.removeEventListener(name,func,!1)}function getScriptData(evt){var node=evt.currentTarget||evt.srcElement;return removeListener(node,context.onScriptLoad,"load","onreadystatechange"),removeListener(node,context.onScriptError,"error"),{node:node,id:node&&attr(node,"data-requiremodule")}}function intakeDefines(){var args;for(takeGlobalQueue();defQueue.length;){if(args=defQueue.shift(),null===args[0])return;callGetModule(args)}}var inCheckLoaded,Module,context,handlers,checkLoadedTimeoutId,config={waitSeconds:7,baseUrl:"./",paths:{},bundles:{},pkgs:{},shim:{},config:{}},registry={},enabledRegistry={},undefEvents={},defQueue=[],defined={},urlFetched={},bundlesMap={},requireCounter=1,unnormalizedCounter=1;return handlers={require:function(mod){return mod.require?mod.require:mod.require=context.makeRequire(mod.map)},exports:function(mod){if(mod.usingExports=!0,mod.map.isDefine)return mod.exports?defined[mod.map.id]=mod.exports:mod.exports=defined[mod.map.id]={}},module:function(mod){return mod.module?mod.module:mod.module={id:mod.map.id,uri:mod.map.url,config:function(){return getOwn(config.config,mod.map.id)||{}},exports:mod.exports||(mod.exports={})}}},Module=function(map){this.events=getOwn(undefEvents,map.id)||{},this.map=map,this.shim=getOwn(config.shim,map.id),this.depExports=[],this.depMaps=[],this.depMatched=[],this.pluginMaps={},this.depCount=0},Module.prototype={init:function(depMaps,factory,errback,options){options=options||{},this.inited||(this.factory=factory,errback?this.on("error",errback):this.events.error&&(errback=proxy(function(err){this.emit("error",err)},this)),this.depMaps=depMaps&&depMaps.slice(0),this.errback=errback,this.inited=!0,this.ignore=options.ignore,options.enabled||this.enabled?this.enable():this.check())},defineDep:function(i,depExports){this.depMatched[i]||(this.depMatched[i]=!0,this.depCount-=1,this.depExports[i]=depExports)},fetch:function(){if(!this.fetched){this.fetched=!0,context.startTime=(new Date).getTime();var map=this.map;return this.shim?void context.makeRequire(this.map,{enableBuildCallback:!0})(this.shim.deps||[],proxy(function(){return map.prefix?this.callPlugin():this.load()},this)):map.prefix?this.callPlugin():this.load()}},load:function(){var url=this.map.url;urlFetched[url]||(urlFetched[url]=!0,context.load(this.map.id,url))},check:function(){if(this.enabled&&!this.enabling){var err,cjsModule,id=this.map.id,depExports=this.depExports,exports=this.exports,factory=this.factory;if(this.inited){if(this.error)this.emit("error",this.error);else if(!this.defining){if(this.defining=!0,this.depCount<1&&!this.defined){if(isFunction(factory)){if(this.events.error&&this.map.isDefine||req.onError!==defaultOnError)try{exports=context.execCb(id,factory,depExports,exports)}catch(e){err=e}else exports=context.execCb(id,factory,depExports,exports);if(this.map.isDefine&&void 0===exports&&(cjsModule=this.module,cjsModule?exports=cjsModule.exports:this.usingExports&&(exports=this.exports)),err)return err.requireMap=this.map,err.requireModules=this.map.isDefine?[this.map.id]:null,err.requireType=this.map.isDefine?"define":"require",onError(this.error=err)}else exports=factory;this.exports=exports,this.map.isDefine&&!this.ignore&&(defined[id]=exports,req.onResourceLoad&&req.onResourceLoad(context,this.map,this.depMaps)),cleanRegistry(id),this.defined=!0}this.defining=!1,this.defined&&!this.defineEmitted&&(this.defineEmitted=!0,this.emit("defined",this.exports),this.defineEmitComplete=!0)}}else this.fetch()}},callPlugin:function(){var map=this.map,id=map.id,pluginMap=makeModuleMap(map.prefix);this.depMaps.push(pluginMap),on(pluginMap,"defined",proxy(function(plugin){var load,normalizedMap,normalizedMod,bundleId=getOwn(bundlesMap,this.map.id),name=this.map.name,parentName=this.map.parentMap?this.map.parentMap.name:null,localRequire=context.makeRequire(map.parentMap,{enableBuildCallback:!0});return this.map.unnormalized?(plugin.normalize&&(name=plugin.normalize(name,function(name){return normalize(name,parentName,!0)})||""),normalizedMap=makeModuleMap(map.prefix+"!"+name,this.map.parentMap),on(normalizedMap,"defined",proxy(function(value){this.init([],function(){return value},null,{enabled:!0,ignore:!0})},this)),normalizedMod=getOwn(registry,normalizedMap.id),void(normalizedMod&&(this.depMaps.push(normalizedMap),this.events.error&&normalizedMod.on("error",proxy(function(err){this.emit("error",err)},this)),normalizedMod.enable()))):bundleId?(this.map.url=context.nameToUrl(bundleId),void this.load()):(load=proxy(function(value){this.init([],function(){return value},null,{enabled:!0})},this),load.error=proxy(function(err){this.inited=!0,this.error=err,err.requireModules=[id],eachProp(registry,function(mod){0===mod.map.id.indexOf(id+"_unnormalized")&&cleanRegistry(mod.map.id)}),onError(err)},this),load.fromText=proxy(function(text,textAlt){var moduleName=map.name,moduleMap=makeModuleMap(moduleName),hasInteractive=useInteractive;textAlt&&(text=textAlt),hasInteractive&&(useInteractive=!1),getModule(moduleMap),hasProp(config.config,id)&&(config.config[moduleName]=config.config[id]);try{req.exec(text)}catch(e){return}hasInteractive&&(useInteractive=!0),this.depMaps.push(moduleMap),context.completeLoad(moduleName),localRequire([moduleName],load)},this),void plugin.load(map.name,localRequire,load,config))},this)),context.enable(pluginMap,this),this.pluginMaps[pluginMap.id]=pluginMap},enable:function(){enabledRegistry[this.map.id]=this,this.enabled=!0,this.enabling=!0,each(this.depMaps,proxy(function(depMap,i){var id,mod,handler;if("string"==typeof depMap){if(depMap=makeModuleMap(depMap,this.map.isDefine?this.map:this.map.parentMap,!1,!this.skipMap),this.depMaps[i]=depMap,handler=getOwn(handlers,depMap.id))return void(this.depExports[i]=handler(this));this.depCount+=1,on(depMap,"defined",proxy(function(depExports){this.defineDep(i,depExports),this.check()},this)),this.errback&&on(depMap,"error",proxy(this.errback,this))}id=depMap.id,mod=registry[id],hasProp(handlers,id)||!mod||mod.enabled||context.enable(depMap,this)},this)),eachProp(this.pluginMaps,proxy(this,function(pluginMap){var mod=getOwn(registry,pluginMap.id);mod&&!mod.enabled&&context.enable(pluginMap,this)},this)),this.enabling=!1,this.check()},on:function(name,cb){var cbs=this.events[name];cbs||(cbs=this.events[name]=[]),cbs.push(cb)},emit:function(name,evt){each(this.events[name],function(cb){cb(evt)}),"error"===name&&delete this.events[name]}},context={config:config,contextName:contextName,registry:registry,defined:defined,urlFetched:urlFetched,defQueue:defQueue,Module:Module,makeModuleMap:makeModuleMap,nextTick:req.nextTick,onError:onError,configure:function(cfg){cfg.baseUrl&&"/"!==cfg.baseUrl.charAt(cfg.baseUrl.length-1)&&(cfg.baseUrl+="/");var shim=config.shim,objs={paths:!0,bundles:!0,config:!0,map:!0};eachProp(cfg,function(value,prop){objs[prop]?(config[prop]||(config[prop]={}),mixin(config[prop],value,!0,!0)):config[prop]=value}),cfg.bundles&&eachProp(cfg.bundles,function(value,prop){each(value,function(v){v!==prop&&(bundlesMap[v]=prop)})}),cfg.shim&&(eachProp(cfg.shim,function(value,id){isArray(value)&&(value={deps:value}),!value.exports&&!value.init||value.exportsFn||(value.exportsFn=context.makeShimExports(value)),shim[id]=value}),config.shim=shim),cfg.packages&&each(cfg.packages,function(pkgObj){var location,name;pkgObj="string"==typeof pkgObj?{name:pkgObj}:pkgObj,name=pkgObj.name,location=pkgObj.location,location&&(config.paths[name]=pkgObj.location),config.pkgs[name]=pkgObj.name+"/"+(pkgObj.main||"main").replace(currDirRegExp,"").replace(jsSuffixRegExp,"")}),eachProp(registry,function(mod,id){mod.inited||mod.map.unnormalized||(mod.map=makeModuleMap(id))}),(cfg.deps||cfg.callback)&&context.require(cfg.deps||[],cfg.callback)},makeShimExports:function(value){function fn(){var ret;return value.init&&(ret=value.init.apply(global,arguments)),ret||value.exports&&getGlobal(value.exports)}return fn},makeRequire:function(relMap,options){function localRequire(deps,callback,errback){var id,map,requireMod;if(options.enableBuildCallback&&callback&&isFunction(callback)&&(callback.__requireJsBuild=!0),"string"==typeof deps){if(isFunction(callback))return;if(relMap&&hasProp(handlers,deps))return handlers[deps](registry[relMap.id]);if(req.get)return req.get(context,deps,relMap,localRequire);if(map=makeModuleMap(deps,relMap,!1,!0),id=map.id,!hasProp(defined,id))return;return defined[id]}return intakeDefines(),context.nextTick(function(){intakeDefines(),requireMod=getModule(makeModuleMap(null,relMap)),requireMod.skipMap=options.skipMap,requireMod.init(deps,callback,errback,{enabled:!0}),checkLoaded()}),localRequire}return options=options||{},mixin(localRequire,{toUrl:function(moduleNamePlusExt){var ext,index=moduleNamePlusExt.lastIndexOf("."),segment=moduleNamePlusExt.split("/")[0],isRelative="."===segment||".."===segment;return index!==-1&&(!isRelative||index>1)&&(ext=moduleNamePlusExt.substring(index,moduleNamePlusExt.length),moduleNamePlusExt=moduleNamePlusExt.substring(0,index)),context.nameToUrl(normalize(moduleNamePlusExt,relMap&&relMap.id,!0),ext,!0)},defined:function(id){return hasProp(defined,makeModuleMap(id,relMap,!1,!0).id)},specified:function(id){return id=makeModuleMap(id,relMap,!1,!0).id,hasProp(defined,id)||hasProp(registry,id)}}),relMap||(localRequire.undef=function(id){takeGlobalQueue();var map=makeModuleMap(id,relMap,!0),mod=getOwn(registry,id);removeScript(id),delete defined[id],delete urlFetched[map.url],delete undefEvents[id],eachReverse(defQueue,function(args,i){args[0]===id&&defQueue.splice(i,1)}),mod&&(mod.events.defined&&(undefEvents[id]=mod.events),cleanRegistry(id))}),localRequire},enable:function(depMap){var mod=getOwn(registry,depMap.id);mod&&getModule(depMap).enable()},completeLoad:function(moduleName){var found,args,mod,shim=getOwn(config.shim,moduleName)||{},shExports=shim.exports;for(takeGlobalQueue();defQueue.length;){if(args=defQueue.shift(),null===args[0]){if(args[0]=moduleName,found)break;found=!0}else args[0]===moduleName&&(found=!0);callGetModule(args)}if(mod=getOwn(registry,moduleName),!found&&!hasProp(defined,moduleName)&&mod&&!mod.inited){if(!(!config.enforceDefine||shExports&&getGlobal(shExports)))return hasPathFallback(moduleName),void 0;callGetModule([moduleName,shim.deps||[],shim.exportsFn])}checkLoaded()},nameToUrl:function(moduleName,ext,skipExt){var paths,syms,i,parentModule,url,parentPath,bundleId,pkgMain=getOwn(config.pkgs,moduleName);if(pkgMain&&(moduleName=pkgMain),bundleId=getOwn(bundlesMap,moduleName))return context.nameToUrl(bundleId,ext,skipExt);if(req.jsExtRegExp.test(moduleName))url=moduleName+(ext||"");else{for(paths=config.paths,syms=moduleName.split("/"),i=syms.length;i>0;i-=1)if(parentModule=syms.slice(0,i).join("/"),parentPath=getOwn(paths,parentModule)){isArray(parentPath)&&(parentPath=parentPath[0]),syms.splice(0,i,parentPath);break}url=syms.join("/"),url+=ext||(/^data\:|\?/.test(url)||skipExt?"":".js"),url=("/"===url.charAt(0)||url.match(/^[\w\+\.\-]+:/)?"":config.baseUrl)+url}return config.urlArgs?url+((url.indexOf("?")===-1?"?":"&")+config.urlArgs):url},load:function(id,url){req.load(context,id,url)},execCb:function(name,callback,args,exports){return callback.apply(exports,args)},onScriptLoad:function(evt){if("load"===evt.type||readyRegExp.test((evt.currentTarget||evt.srcElement).readyState)){interactiveScript=null;var data=getScriptData(evt);context.completeLoad(data.id)}},onScriptError:function(evt){var data=getScriptData(evt);!hasPathFallback(data.id)}},context.require=context.makeRequire(),context}function getInteractiveScript(){return interactiveScript&&"interactive"===interactiveScript.readyState?interactiveScript:(eachReverse(getAllScripts(),function(script){if("interactive"===script.readyState)return interactiveScript=script}),interactiveScript)}function subtractFromURL(base,notches){var pref=base.substr(0,base.indexOf("//"))+"//",suff=base.substr(pref.length),dom=suff.substr(suff.indexOf("/")+1),tail=dom.substr(dom.lastIndexOf("/")+1);dom=dom.substr(0,dom.length-tail.length-1),suff=suff.substr(0,suff.indexOf("/"));var bits=dom.split("/");return bits.length-=Math.min(bits.length,notches),(pref+suff+"/"+bits.join("/")+tail).replace(/\/\/\//g,"//")}var _moduleLocationOverride,_W=window,_D=_W.document,supportsDomStorage=!!_W.sessionStorage,skipInit=!1,_HD=_D.getElementsByTagName("head"),isOpera="undefined"!=typeof opera&&"[object Opera]"===opera.toString(),gatewayVersion=2.03;if(!isOpera){_HD=_HD&&_HD.length>0?_HD[0]:_D.body;try{supportsDomStorage&&sessionStorage.setItem("_","")}catch(e){supportsDomStorage=!1}var globalConfig={},productConfig={};/** + * @preserve + * [GENERAL_CONFIG] + */ +if("undefined"==typeof _W._fsDefine&&JSON&&!(document.documentMode<10)){var stg=function(){};stg.prototype.has=function(itm){return null!==this.get(itm)},stg.prototype.get=function(itm){var res=null;return supportsDomStorage&&(res=localStorage.getItem(itm),res||(res=sessionStorage.getItem(itm))),res},stg.prototype.set=function(itm,val){if(supportsDomStorage)try{localStorage.setItem(itm,val.toString())}catch(e){try{sessionStorage.setItem(itm,val.toString())}catch(e){}}};var require,define,req,s,head,baseElement,interactiveScript,currentlyAddingScript,op=Object.prototype,hasOwn=(op.toString,op.hasOwnProperty),ap=Array.prototype,hasProp=function(obj,prop){return hasOwn.call(obj,prop)},getOwn=function(obj,prop){return hasProp(obj,prop)&&obj[prop]},eachProp=function(obj,func){var prop;for(prop in obj)if(hasProp(obj,prop)&&func(obj[prop],prop))break},isDefined=function(obj){return null!==obj&&"undefined"!=typeof obj},isFunction=function(obj){return"function"==typeof obj},isObject=function(obj){return"object"==typeof obj},isArray=function(obj){return"[object Array]"==Object.prototype.toString.call(obj)},isDate=function(obj){return obj instanceof Date},isString=function(obj){return"string"==typeof obj},isPlainObject=function(obj){if(!obj||"[object Object]"!==Object.prototype.toString.call(obj)||obj.nodeType||obj.setInterval)return!1;if(obj.constructor&&!hasOwnProperty.call(obj,"constructor")&&!hasOwnProperty.call(obj.constructor.prototype,"isPrototypeOf"))return!1;var key;for(key in obj);return void 0===key||hasOwnProperty.call(obj,key)||!hasOwnProperty.call(obj,key)&&hasOwnProperty.call(Object.prototype,key)},proxy=function(func,context){var args,bound,nativeBind=Function.prototype.bind,slice=Array.prototype.slice;return nativeBind&&func.bind===nativeBind?nativeBind.apply(func,slice.call(arguments,1)):(args=slice.call(arguments,2),bound=function(){if(!(this instanceof bound))return func.apply(context,args.concat(slice.call(arguments)));ctor.prototype=func.prototype;var self=ctor();ctor.prototype=null;var result=func.apply(self,args.concat(slice.call(arguments)));return Object(result)===result?result:self})},dispose=function(obj){if(obj){if(obj.length)for(var i=obj.length-1;i>=0;i--)obj[i]=null;for(var prop in obj){var tob=typeof obj[prop];"function"!=tob&&"object"!=tob||(obj[prop]=null)}}obj=null},getParam=function(parm){var vars={},vrl=(_W.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi,function(m,key,value){vars[key]=value}),vars[parm]);return vrl?decodeURIComponent(vrl):vrl},nextTick=function(cb){setTimeout(cb||function(){},20)},ext=function(){var options,name,copy,a=arguments,target=a[0]||{},i=1,lnt=a.length,surface=arguments[arguments.length-1]===!1;for("object"==typeof target||isFunction(target)||(target={}),lnt===i&&(target=this,--i);i-1?"&":"?"):"";if(params)for(var nm in params)pm=params[nm],isString(pm)||(pm=JSON.stringify(pm)),pList+=encodeURIComponent(nm)+"="+encodeURIComponent(pm)+"&";return pList},compute=function(vstr){var f=new[].constructor.constructor(vstr);return f.call(_W)},toLowerCase=function(str){return isString(str)?str.toLowerCase():""},winload=function(cb){"complete"===_D.readyState?nextTick(cb):__eB(_W,"load",cb)},ap=Array.prototype,apsp=ap.splice,global=_W,readyRegExp="PLAYSTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/,defContextName="_",commentRegExp=/(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/gm,cjsRequireRegExp=/[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,jsSuffixRegExp=/\.js$/,currDirRegExp=/^\.\//,contexts={},cfg={},globalDefQueue=[],useInteractive=!1;req=function(deps,callback,errback,optional){var context,config,contextName=defContextName;return isArray(deps)||"string"==typeof deps||(config=deps,isArray(callback)?(deps=callback,callback=errback,errback=optional):deps=[]),config&&config.context&&(contextName=config.context),context=getOwn(contexts,contextName),context||(context=contexts[contextName]=req.s.newContext(contextName)),config&&context.configure(config),context.require(deps,callback,errback)},req.config=function(config){return req(config)},req.nextTick="undefined"!=typeof setTimeout?function(fn){setTimeout(fn,4)}:function(fn){fn()},require=req,req.jsExtRegExp=/^\/|:|\?|\.js$/,s=req.s={contexts:contexts,newContext:newContext},req({}),each(["toUrl","undef","defined","specified"],function(prop){req[prop]=function(){var ctx=contexts[defContextName];return ctx.require[prop].apply(ctx,arguments)}}),head=s.head=_HD,baseElement=_D.getElementsByTagName("base")[0],baseElement&&(head=s.head=baseElement.parentNode),req.onError=defaultOnError,req.createNode=function(config,moduleName,url){var node=config.xhtml?_D.createElementNS("http://www.w3.org/1999/xhtml","html:script"):_D.createElement("script");return node.type=config.scriptType||"text/javascript",node.charset="utf-8",node.async=!0,node},req.load=function(context,moduleName,url){var node,config=context&&context.config||{};return node=req.createNode(config,moduleName,url),node.setAttribute("data-requirecontext",context.contextName),node.setAttribute("data-requiremodule",moduleName),!node.attachEvent||node.attachEvent.toString&&node.attachEvent.toString().indexOf("[native code")<0||isOpera?(node.addEventListener("load",context.onScriptLoad,!1),node.addEventListener("error",context.onScriptError,!1)):(useInteractive=!0,node.attachEvent("onreadystatechange",context.onScriptLoad)),node.src=url,currentlyAddingScript=node,baseElement?head.insertBefore(node,baseElement):head.appendChild(node),currentlyAddingScript=null,node},define=function(name,deps,callback){var node,context;"string"!=typeof name&&(callback=deps,deps=name,name=null),isArray(deps)||(callback=deps,deps=null),!deps&&isFunction(callback)&&(deps=[],callback.length&&callback.toString&&(callback.toString().replace(commentRegExp,"").replace(cjsRequireRegExp,function(match,dep){deps.push(dep)}),deps=(1===callback.length?["require"]:["require","exports","module"]).concat(deps))),useInteractive&&(node=currentlyAddingScript||getInteractiveScript(),node&&(name||(name=attr(node,"data-requiremodule")),context=contexts[attr(node,"data-requirecontext")])),(context?context.defQueue:globalDefQueue).push([name,deps,callback])},req.exec=function(text){return new Function(text)()},req(cfg),_W._fsDefine=_W._acsDefine=define,_W._fsRequire=_W._acsRequire=function(){globalConfig.deferredLoading?winload(function(args){return function(){require.apply(window,args)}}(arguments)):require.apply(window,arguments)};var API={_enforceGlobalNS:function(){_W.FSR||(_W.FSR={}),_W.FSFB||(_W.FSFB={})},expose:function(name,obj){API._enforceGlobalNS(),_W.FSR[name]=_W.FSFB[name]=obj},retrieveFromAPI:function(name){return API._enforceGlobalNS(),_W.FSR[name]}},domReady=function(ready){function flush(f){loaded=1;do f=fns.shift(),f&&f();while(f)}var fn,fns=[],f=!1,doc=document,testEl=doc.documentElement,hack=testEl.doScroll,domContentLoaded="DOMContentLoaded",addEventListener="addEventListener",onreadystatechange="onreadystatechange",readyState="readyState",loadedRgx=hack?/^loaded|^c/:/^loaded|c/,loaded=loadedRgx.test(doc[readyState]);return doc[addEventListener]&&doc[addEventListener](domContentLoaded,fn=function(){doc.removeEventListener(domContentLoaded,fn,f),flush()},f),hack&&doc.attachEvent(onreadystatechange,fn=function(){/^c/.test(doc[readyState])&&(doc.detachEvent(onreadystatechange,fn),flush())}),ready=hack?function(fn){self!=top?loaded?fn():fns.push(fn):function(){try{testEl.doScroll("left")}catch(e){return setTimeout(function(){ready(fn)},50)}fn()}()}:function(fn){loaded?fn():fns.push(fn)}}(),fsCmd=function(commandName){var hv=(location.hash+"").toLowerCase();return commandName=(commandName||"").toLowerCase(),!!(/fscommand|fscmd|acscmd|acscommand/.test(hv)&&hv.indexOf(commandName)>-1)};fsCmd("");var locator={};locator.tagVersionString="${versionTag}",locator.environment="production",locator.gatewayLocation=function(){var gwScr,pgwScr,src,tm,gwl,cv,vt,au,svu,asso,rovr,prodcfg,isself,hasssl,scrs=_D.getElementsByTagName("script"),g="gateway",s="/";if(_HD&&(skipInit="true"==attr(_HD,"data-skipfsinit"),gwl=attr(_HD,"data-fsgatewaylocparam"),cv=attr(_HD,"data-codeversion"),vt=attr(_HD,"data-versiontag"),au=attr(_HD,"data-analyticsurl"),svu=attr(_HD,"data-surveyurl"),asso=attr(_HD,"data-product-assets"),rovr=attr(_HD,"data-codelocation"),prodcfg=attr(_HD,"data-productconfig"),isself=attr(_HD,"data-isselfhosted"),hasssl=attr(_HD,"data-hasssl"),gwl&&(gwl=getParam(gwl)),locator.isSelfHosted=!1,isself&&(locator.isSelfHosted="true"==getParam(isself)),locator.hasSSL=!0,hasssl&&(locator.hasSSL="true"!=getParam(hasssl)),rovr&&(locator.rootOverride=getParam(rovr)),asso&&(locator.assetOverride=getParam(asso)),prodcfg&&(locator.productCfgOverride=getParam(prodcfg)),cv&&("undefined"!=typeof globalConfig?globalConfig.codeVer=getParam(cv):globalConfig={codeVer:getParam(cv)}),vt&&(locator.tagVersionString=getParam(vt)),au&&("undefined"!=typeof globalConfig?globalConfig.analyticsUrl=getParam(au):globalConfig={analyticsUrl:getParam(au)}),svu&&("undefined"!=typeof globalConfig?globalConfig.surveyUrl=getParam(svu):globalConfig={surveyUrl:getParam(svu)})),eachProp(scrs,function(scr,prop){if("length"!==prop){src=attr(scr,"src")||"";var dv=attr(scr,"data-vendor");"fs"!=dv&&"acs"!=dv||attr(scr,"data-role")!=g?src.indexOf(g)>-1&&(pgwScr=scr):(gwScr=scr,tm=attr(scr,"timing"))}}),gwScr||(gwScr=pgwScr),gwScr)return locator.gwScript=gwScr,src=gwl||attr(gwScr,"src"),locator.environment=attr(gwScr,"data-environment")||locator.environment,locator.rootOverride=attr(gwScr,"data-codelocation")||locator.rootOverride,locator.assetOverride=attr(gwScr,"data-product-assets")||locator.assetOverride,locator.isSelfHosted=attr(gwScr,"data-isselfhosted")||locator.isSelfHosted,locator.hasSSL=attr(gwScr,"data-hasssl")||locator.hasSSL,src.indexOf(":/")==-1&&src.substr(0,1)!=s&&(scrs=(_W.location.href+"").split(s),scrs[scrs.length-1].indexOf(".")>-1&&scrs[scrs.length-1].toLowerCase()!=_W.location.hostname.toLowerCase()&&scrs.pop(),src=scrs.join(s)+(src.substr(0,1)==s?"":s)+src),src=src.split(s),src.pop(),trimDots(src),src.join(s)+s}(),locator.isProduction=locator.gatewayLocation.toLowerCase().indexOf("production")>-1,locator.normalizeUrl=function(url){url=url.replace("foresee/","trigger/");var suff,addm,rooturl=locator.gatewayLocation||"",tagver=locator.tagVersionString;return url.indexOf("v=")>-1?url:"$"==url.substr(0,1)?locator.rootOverride?url.replace("$",locator.rootOverride):(suff=(_moduleLocationOverride||"code/"+globalConfig.codeVer+"/")+url.replace("$",""),"/"==rooturl?rooturl+suff:subtractFromURL(rooturl,3)+suff):(addm="v="+encodeURIComponent(locator.tagVersionString),url.indexOf("//")==-1&&(url="/"==rooturl.substr(rooturl.length-1,1)&&"/"==url.substr(0,1)?rooturl+url.substr(1):rooturl+url),url+(url.indexOf("?")>-1?"&":"?")+"v="+encodeURIComponent(tagver))},locator.normalizeAssetUrl=function(url){return locator.assetOverride?locator.assetOverride+url:locator.normalizeUrl(url)},_W._fsNormalizeUrl=_W._acsNormalizeUrl=locator.normalizeUrl,_W._fsNormalizeAssetUrl=locator.normalizeAssetUrl;var extMod={supportsDomStorage:supportsDomStorage,hasProp:hasProp,fsCmd:fsCmd,eachProp:eachProp,isDefined:isDefined,isFunction:isFunction,isObject:isObject,isArray:isArray,isDate:isDate,isString:isString,isPlainObject:isPlainObject,proxy:proxy,dispose:dispose,ext:ext,attr:attr,makeURI:locator.normalizeUrl,makeAssetURI:locator.normalizeAssetUrl,home:locator.gatewayLocation,isProduction:locator.isProduction,getParam:getParam,nextTick:nextTick,toQueryString:toQueryString,isSelfHosted:locator.isSelfHosted,hasSSL:locator.hasSSL,compute:compute,config:globalConfig,productConfig:productConfig,gwConfigOverride:locator.productCfgOverride,domReady:domReady,winReady:winload,tagVersion:"${versionTag}",toLowerCase:toLowerCase,enc:encodeURIComponent,assetLocation:locator.assetOverride,codeLocation:locator.rootOverride,startTS:_W.performance&&_W.performance.timing?_W.performance.timing.responseStart:(new Date).getTime(),API:API};define("fs",function(){return extMod}),define("_acs",function(){return extMod}),domReady(function(){nextTick(function(){var dm,i,fsrd="fsReady";if(locator.gwScript&&(dm=attr(locator.gwScript,"data-module")),isDefined(_W.acsReady)&&(_W[fsrd]=_W.acsReady),!isDefined(_W.acsReady)){var altR=function(){var aT="__"+fsrd+"_stk__";_W[aT]=_W[aT]||[],_W[aT].push(arguments)};_W.acsReady=_W[fsrd]||altR}var dependencies=[],finalSetup=function(){if(!(globalConfig.minGatewayVersion&&gatewayVersion&&globalConfig.minGatewayVersion>gatewayVersion))if(eachProp(productConfig,function(obj,prop){isDefined(globalConfig.products[prop.toLowerCase()])&&globalConfig.products[prop.toLowerCase()]===!1&&(obj.check=!1),isFunction(obj.check)&&(obj.check=obj.check.call(obj)),isDefined(obj.check)||(obj.check=!0),isDefined(obj.dependencies)||(obj.dependencies=[]),obj.check&&(dependencies=dependencies.concat(obj.dependencies))}),dm)dm&&nextTick(function(){_fsRequire([_fsNormalizeUrl(dm)],function(){})});else{for(i=0;i0)for(r=0;r-1)return!1;return!0},v.prototype._match=function(e,t,i){var r=e.include,s=e[i||"globalExclude"];if(e.criteria){if(!e.criteria.supportsSmartPhones&&!t.isTablet&&t.isMobile)return!1;if(!e.criteria.supportsTablets&&t.isTablet)return!1;if(!e.criteria.supportsDesktop&&!t.isMobile)return!1}var n=o.location.href.toString(),a=document.referrer.toString();o.navigator.userAgent;if(s){if(this.runAllTests(s,t,!1,!0))return!1}return!r||this.runAllTests(r,t,!1,!0)},v.prototype.runAllTests=function(e,r,s,n){var a,c=new i.Cookie({}),f=o.location.href.toString(),u=document.referrer.toString(),l={urls:f,referrers:u,userAgents:o.navigator.userAgent};for(var d in e){var p=e[d];if(p.length>0){if(a=!1,l[d])a=function(e,r){t.isArray(r)||(r=[r]);for(var s=0,n=r.length;s-1&&(p[v].comparison?"lt"==p[v].comparison&&gp[v].version&&(a=!0):a=!0);else if("cookies"==d)for(var y=0;y0))){c=!1;for(var f=0;f-1){c=!0;break}}c&&i.Bind(a,"trigger:click",function(e,t,r){return function(s){t.preventDefault&&i.preventDefault(s),r.call(e,t)}}(this,e,r))}},y.prototype.performBindings=function(e){if(e&&this.cfg){var t,i=this.cfg;if(i.cancel&&i.cancel.length>0){var r=function(){e.cancelTracker(),e.jrny.addEventString(s.LINKS_CANCEL)};for(t=0;t0){var n=function(){e.popSurvey()};for(t=0;t0){var o=function(){e.popTracker()};for(t=0;ts.length-1&&(n=void 0),t.isDefined(n)&&"default"!=s[parseInt(n)].selectMode&&"pin"!=s[parseInt(n)].selectMode){if(t.isDefined(n)||"lock"==s[parseInt(n)].selectMode)return r=s[parseInt(n)],this.cfg.active_surveydef=r,this.surveydef=r,this._setupTrueConversionIfRequired(),this.locale=this._initLocale(),this.cpps.set("locale",this.locale),r.section&&this.cpps.set("section",r.section),r}else for(e=0;e<(t.isDefined(n)&&"default"!=s[parseInt(n)].selectMode?parseInt(n)+1:s.length);e++)if(r=s[e],t.isDefined(n)&&n==e&&"default"!=s[parseInt(n)].selectMode||this.crit._match(r,this.browser))return"x"===this.stg.get("i")&&this.stg.set("def",e),r.index=e,this.cfg.active_surveydef=r,this.surveydef=r,this._setupTrueConversionIfRequired(),this.locale=this._initLocale(),this.cpps.set("locale",this.locale),r.section&&this.cpps.set("section",r.section),this.inviteIndex=e,r;return!1},D.prototype._initLocale=function(){var e,r=this.surveydef,s=r.language;if(t.isDefined(s.src)&&t.isDefined(s.locales)){switch(s.src){case"variable":t.isDefined(s.name)&&(e=window[s.name]);break;case"cookie":if(t.isDefined(s.name)){e=new i.Cookie({}).get(s.name)}break;case"url":var n=s.locales;if(t.isDefined(n))for(var o=0,a=n.length;o=e.criteria.lf&&s<=r},D.prototype.decodeReferrer=function(){var e,t,i=document.referrer||"",r=null,s=["q","p","query"];for(t=0;t-1)){var k={hash:o.location.hash,href:o.location.href,pathname:o.location.pathname},A=function(){if(!(k.href.indexOf("fs.tracker.html")>-1)){var e=new i.Browser;e.ready.subscribe(function(){var s,n=i.getGlobalStore(e),c=new v(n,config),f=new i.CPPS(n,config.config.cppsResetTimeout);f.addToBlacklist(config.config.disable_default_cpps||config.config.disable_cpps||[]),n.ready.subscribe(t.proxy(function(){n.upgradeOldStorage(function(){var u=r._journey=new i.Journey(config.config.id,config.config.site_id,n.uid,e);S(n,c,f,u,e);var l=n.get("i");setTimeout(t.proxy(function(){if(f.set("url",o.location.toString()),config.config.cpps){var h,v=config.config.cpps;for(var m in v){var b=v[m];if(t.isObject(b))switch(b.source){case"param":var w=t.getParam(b.val)||b.init||null;if(t.isDefined(b.mode)&&"append"==b.mode){var E=b.delimiter||",",S=f.get(m),D=S?S.split(E):[];w=w||"",D[D.length-1]!==w&&(D.push(w),D.join(E),f.set(m,D))}else t.isDefined(w)&&null!==w?f.set(m,w):f.get(m)||f.set(m,"");break;case"variable":if(t.isDefined(b.name)){for(var T=o,k=b.name.split("."),A=0;A-1,r.state.inviteSituation={x:"ACCEPTED",d:"DECLINED",a:"ABANDONED"}[l],"a"==l){parseInt(n.get("rw"))2?t[0]+t[1]:e.replace(/#/gi,"")},s=r(k.hash),n=r(t.hash);(i&&s!=n||k.pathname!=t.pathname)&&fsReady(function(){clearTimeout(x),x=setTimeout(function(){i.pageReset()},1500)})},!1,!1)}}); \ No newline at end of file diff --git a/code/China _ Data_files/fs.utils.js(1).download b/code/China _ Data_files/fs.utils.js(1).download new file mode 100644 index 00000000..b9b71ac4 --- /dev/null +++ b/code/China _ Data_files/fs.utils.js(1).download @@ -0,0 +1,10 @@ +/*************************************** +* @preserve +* ForeSee Web SDK: Utils Library +* Built May 18, 17 12:15:47 +* Code version: 19.3.4 +* Template version: 19.3.4 +***************************************/ +_fsDefine(["require","fs"],function(t,e){function r(t,e){var r=(65535&t)+(65535&e);return(t>>16)+(e>>16)+(r>>16)<<16|65535&r}function i(t,e){return t<>>32-e}function n(t,e,n,s,a,o){return r(i(r(r(e,t),r(s,o)),a),n)}function a(t,e,r,i,s,a,o){return n(e&r|~e&i,t,e,s,a,o)}function o(t,e,r,i,s,a,o){return n(e&i|r&~i,t,e,s,a,o)}function h(t,e,r,i,s,a,o){return n(e^r^i,t,e,s,a,o)}function f(t,e,r,i,s,a,o){return n(r^(e|~i),t,e,s,a,o)}function u(t,e){t[e>>5]|=128<>>9<<4)]=e;var i,n,s,u,l,c=1732584193,p=-271733879,d=-1732584194,g=271733878;for(i=0;i>5]>>>e%32&255);return r}function p(t){var e,r=[];for(r[(t.length>>2)-1]=void 0,e=0;e>5]|=(255&t.charCodeAt(e/8))<16&&(n=u(n,8*t.length)),r=0;r<16;r+=1)s[r]=909522486^n[r],a[r]=1549556828^n[r];return i=u(s.concat(p(e)),512+8*e.length),c(u(a.concat(i),640))}function y(t){var e,r,i="0123456789abcdef",n="";for(r=0;r>>4&15)+i.charAt(15&e);return n}function w(t){return decodeURIComponent(e.enc(t))}function b(t){return d(w(t))}function m(t){return y(b(t))}function v(t,e){return g(w(t),w(e))}function x(t,e){return y(v(t,e))}var _="undefined"!=typeof Uint8Array,S=window,B={siteKey:"global"};if(e&&e.home&&(e.home.indexOf("production")>-1||e.home.indexOf("staging")>-1)){var k;k=e.home.indexOf("production")>-1?e.home.split("production")[0]:e.home.split("staging")[0],k.indexOf("//")>-1&&(k=k.split("//")[1]),k=k.replace(/\\/g,"/").split("/"),k.length>=3&&(k=e.toLowerCase(k[1])),k&&k.length>1&&(B.siteKey=k)}B.getSize=function(t){var e=0,r=0,i=t.document,n=i.documentElement;return"number"==typeof t.innerWidth?(e=t.innerWidth,r=t.innerHeight):n&&(n.clientWidth||n.clientHeight)?(e=n.clientWidth,r=n.clientHeight):i.body&&(i.body.clientWidth||i.body.clientHeight)&&(e=i.body.clientWidth,r=i.body.clientHeight),{w:e,h:r}},B.getScroll=function(t){var e=0,r=0,i=t.document,n=i.documentElement;return"number"==typeof t.pageYOffset?(r=t.pageYOffset,e=t.pageXOffset):i.body&&(i.body.scrollLeft||i.body.scrollTop)?(r=i.body.scrollTop,e=i.body.scrollLeft):n&&(n.scrollLeft||n.scrollTop)&&(r=n.scrollTop,e=n.scrollLeft),{x:e,y:r}},B.setScroll=function(t,e,r){t.scrollTo(e,r)},B.getScreenResolution=function(){var t=window.screen;return e.isDefined(t)&&e.isDefined(t.width)&&"number"==typeof t.width?{w:t.width,h:t.height}:{w:0,h:0}},B.getFrameWindow=function(t){var e;return t&&t.contentWindow?e=t.contentWindow:t&&t.contentDocument&&t.contentDocument.defaultView&&(e=t.contentDocument.defaultView),e&&e!=e.top?e:null},B.escapeRegExp=function(t){return(t||"").toString().replace(/([-.*+?^${}()|[\]\/\\])/g,"\\$1")},B.trim=function(t){return(t||"").toString().replace(/\s+/g," ").replace(/^\s+|\s+$/g,"")},B.stripHTML=function(t){return(t||"").replace(/(<([^>]+)>)/gi,"")},B.merge=function(){var t,r,i,n,s,a={},o=arguments;for(t=0,r=o.length;t-1){var r=t.split(":");e=r[0],t=r[1]}return T[e]||(T[e]={}),T[e][t]||(T[e][t]=[]),{ns:e,en:t}};B.Bind=function(t,r,i,n){if(t&&r){r=e.toLowerCase(r);var s=I(r);if(T[s.ns][s.en].push({elem:t,cb:i,ub:!!n}),r.indexOf("unload")>-1)return void R.push(i);"propertychange"!=s.en&&t.addEventListener?t.addEventListener(s.en,i,!n):t.attachEvent&&t.attachEvent("on"+s.en,i)}},B.BindOnce=function(t,e,r){if(t&&e){var i=I(e);if(t["_acsEvent"+i.en])return;t["_acsEvent"+i.en]=!0,B.Bind(t,e,r)}};var E=function(t,e,r,i){e&&(e.parentNode||e.window||9==e.nodeType)&&("propertychange"!=t&&e.removeEventListener?e.removeEventListener(t,r,!i):e.detachEvent&&e.detachEvent("on"+t,r))};B.Unbind=function(t,e,r,i){var n,s,a,o;if(e&&e.indexOf("unload")>-1){for(o=0;o=0;t--)try{R[t].call()}catch(t){}e.dispose(R),B.Unbind()}},document.addEventListener?(window.addEventListener("beforeunload",B.HandleUnload,!0),window.addEventListener("pagehide",B.HandleUnload,!0),document.addEventListener("unload",B.HandleUnload,!0)):document.attachEvent&&window.attachEvent("onunload",B.HandleUnload),B.FSEvent=function(){this.id="_"+Math.round(99999*Math.random()),this.subscriptions=[],this.didFire=!1},B.FSEvent.prototype.subscribe=function(t,e,r){return this.subscriptions.push({once:!!e,cb:t}),r&&this.didFire&&(this.prevArgs?this.fire.apply(this,this.prevArgs):this.fire()),{unsubscribe:function(t,e){return function(){t.unsubscribe(e)}}(this,t)}},B.FSEvent.prototype.unsubscribe=function(t){for(var e=0;e 1.0";return t.width=250,t.height=30,e.textBaseline="top",e.font="14px 'Arial'",e.textBaseline="alphabetic",e.fillStyle="#f60",e.fillRect(125,1,62,20),e.fillStyle="#069",e.fillText(r,2,15),e.fillStyle="rgba(102, 204, 0, 0.7)",e.fillText(r,4,17),t.toDataURL()}catch(t){return"nocanvas"}},B.Fingerprint=O;var L;B.Frame=function(t){this.frameId="_fsCtrlFr";var r=_fsNormalizeUrl("$fs.frame.html?d="+e.enc(document.domain)+"&_cv_="+e.enc(e.config.codeVer)+"&_vt_="+e.enc(e.tagVersion))+"&uid="+e.enc(t.fp||"");"false"!==e.hasSSL&&("//"==r.substr(0,2)?r="https:"+r:"http"!=r.substr(0,4)&&/^\//.test(r)&&(r="https://"+S.location.host+r)),this.isSSL=e.toLowerCase(r).indexOf("https")>-1,"localhost"===S.location.hostname?r=r.replace(/:8080/gi,":443"):this.isSSL&&(r=r.replace(/:[0-9]+/gi,"")),this.iframeSrc=r,L||(L=new B.FSEvent),this.ready=L,this.trackerReady=new B.FSEvent,this._ajaxCalls={},this._ensureFrame(),B.Bind(window,"message",e.proxy(function(t){this._onMessage(t)},this))},B.Frame.prototype._ensureFrame=function(){if(this._iframeElement=document.getElementById(this.frameId),!this._iframeElement){var t=document.createElement("iframe");t.src=this.iframeSrc,t.id=this.frameId,t.className="_FSFRAME_",t._csrf=!0,t.style.display="none",t.setAttribute("title","ForeSee Control Frame"),t.setAttribute("_fsrB","true"),t.setAttribute("aria-hidden","true"),document&&document.body&&document.body.appendChild(t),this._iframeElement=t,this.ready.didFire&&(this.ready=new B.FSEvent)}},B.Frame.prototype._postMessage=function(t,r){this._ensureFrame();var i=JSON.stringify({src:"fstop",method:t,params:r||{}}),n=e.proxy(function(){this._iframeElement.contentWindow.postMessage(i,"*")},this);this.ready.didFire?n():this.ready.subscribe(n)},B.Frame.prototype._onMessage=function(t){var e;if(t.data&&-1!=(t.data+"").indexOf("frame")){try{e=JSON.parse(t.data)}catch(t){return}if("fsframe"==e.src)switch(this.ready.didFire||this.ready.fire(),e.method){case"ajaxreturn":var r=e.params.params.ajaxid;this._ajaxCalls[r]&&this._ajaxCalls[r].cb&&(this._ajaxCalls[r].cb(!!e.params.success,e.params.res||""),delete this._ajaxCalls[r]);break;case"trackerready":this.trackerReady.didFire||this.trackerReady.fire();break;case"securityerror":this._3pDisabled=__3pDataDisabled=!0}}},B.Frame.prototype.ajax=function(t,e,r,i,n,s){var a="_"+Math.round(99999999*Math.random());return n=!!n,s=s||"application/x-www-form-urlencoded",this._ajaxCalls[a]={payload:{method:t,url:e,data:r,ajaxid:a,skipencode:n,contenttype:s},cb:i},this._postMessage("ajax",this._ajaxCalls[a].payload)},B.Frame.prototype.broadcast=function(t,e,r){return this._postMessage("broadcast",{key:t,value:e,x:r})};var D=function(t){this.browser=t,this.ready=new B.FSEvent,t.isIE&&t.browser.version<11&&"https:"!=location.protocol?(this.fstg=new B.Frame(t),e.nextTick(e.proxy(function(){this.fstg.ready.subscribe(e.proxy(function(){this.ready.fire()},this),!0,!0)},this))):(this.ajax=new B.AjaxTransport,e.nextTick(e.proxy(function(){this.ready.fire()},this)))};D.prototype.send=function(t){this.ready.subscribe(e.proxy(function(){if(this.ajax)this.ajax.send(t);else{var r=e.ext({method:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",success:function(){},failure:function(){}},t);this.fstg.ajax(r.method,r.url,r.data,function(t){return function(e,r){e?t.success(r):t.failure(r)}}(r),!e.isDefined(t.skipEncode)||!!t.skipEncode,r.contentType)}},this),!0,!0)},D.prototype.dispose=function(){this.ajax&&this.ajax.dispose()},B.CORS=D,B.INT={},B.AjaxTransport=function(t){var r={method:"POST",data:{},contentType:"application/x-www-form-urlencoded",success:function(){},failure:function(){}};this.options=e.ext(r,t)},B.AjaxTransport.prototype.send=function(t){var r=e.ext({},this.options,t||{});window.XDomainRequest&&-1==window.navigator.userAgent.indexOf("MSIE 10")?this._sendViaXDR(r):window.XMLHttpRequest&&this._sendViaXHR(r),r=null},B.AjaxTransport.prototype.dispose=function(){e.dispose(this.options)},B.AjaxTransport.isSupported=function(){return!0},B.AjaxTransport.initialize=function(t){t.call(B.AjaxTransport)},B.AjaxTransport.prototype._sendViaXHR=function(t){var r=new window.XMLHttpRequest,i=t.contentType?e.toLowerCase(t.contentType).indexOf("json")>-1?"application/json; charset=utf-8":t.contentType:"application/x-www-form-urlencoded",n=e.toLowerCase(i).indexOf("json")>-1,s=n?"GET"==t.method?e.enc(JSON.stringify(t.data)):JSON.stringify(t.data):e.isDefined(t.skipEncode)&&!0===t.skipEncode?t.data:e.toQueryString(t.data),a=t.url;t.failure=t.failure||function(){},"GET"==t.method&&s&&s.length>0&&(a.indexOf("?")>-1?a+="&":a+="?",a+=s);try{r.open(t.method,a,!0)}catch(t){return}r.setRequestHeader("Accept","*/*"),r.setRequestHeader("Content-Type",i),r.timeout=t.timeout||0,r.onreadystatechange=function(t,e){return function(){4==e.readyState&&200==e.status?t.success&&t.success.apply(t,[e.responseText]):4==e.readyState&&200!=e.status&&t.failure&&t.failure.apply(t,[e.responseText])}}(t,r),r.send(s)},B.AjaxTransport.prototype._sendViaXDR=function(t){var r=e.isDefined(t.skipEncode)&&!0===t.skipEncode&&"GET"!==t.method.toUpperCase()?t.data:e.toQueryString(t.data,null,!1),i=t.url;t.failure=t.failure||function(){},"GET"==t.method&&r&&r.length>0&&(r=r.replace("?",""),i.indexOf("?")>-1?i+="&":i+="?",i+=r);var n=new window.XDomainRequest;n.onerror=t.failure||function(){},n.ontimeout=t.failure||function(){},n.onprogress=function(){},n.onload=function(t,e){return function(){e.success(t.responseText),t=null,e=null}}(n,t),n.timeout=6e4;try{n.open(t.method,i)}catch(e){return void(t.failure&&t.failure(e))}e.nextTick(function(){r?(e.isString(r)||(r=JSON.stringify(r)),n.send(r)):n.send()})},B.testSameDomain=function(t,r){var i=document.createElement("a");i.href=location.href;var n=i.hostname,s=i.protocol;i.href=t;var a=i.hostname||n,o=0===i.protocol.indexOf("http")?i.protocol:s;i.href=r;var h=i.hostname||n,f=0===i.protocol.indexOf("http")?i.protocol:s;return e.toLowerCase(a)==e.toLowerCase(h)&&e.toLowerCase(o)==e.toLowerCase(f)},B.addParameterToURL=function(t,e){return t+=(t.split("?")[1]?"&":"?")+e},B.hash=function(t){var e=t.split("_");return 3*e[0]+1357+""+(9*e[1]+58)},B.hashCode=function(t){var e,r=0,i="";if(0===t.length)return r;for(e=0;e-1;var i,n,s;if(t=e.toLowerCase(t.replace(/^\s+|\s+$/g,"").replace(/[\*]{2,}/g,"*")),r=e.toLowerCase(r),"*"==t)return!0;for(n=[];t.indexOf("*")>-1;)t.indexOf("*")>0&&n.push(t.substr(0,t.indexOf("*"))),n.push("*"),t=t.substr(t.indexOf("*")+1);for(t.length>0&&n.push(t),i=0!==n.length,s=0;ss+1){if(s++,-1==r.indexOf(n[s])){i=!1;break}r=r.substr(r.indexOf(n[s])+n[s].length)}if(s==n.length-1&&"*"!==n[s]&&r!=n[s]&&r!=n[s]+"/"&&n[s]!=r+"/"&&r.length>0&&"/"!=r){i=!1;break}}else{if(r.substr(0,t.length)!=t&&r!=t+"/"&&t!=r+"/"){i=!1;break}if(r=r.substr(t.length),s==n.length-1&&r.length>0&&"/"!=r){i=!1;break}}return!!i},B.getRootDomain=function(t){t=e.toLowerCase(t||document.domain).replace("https://","").replace("http://","");for(var r,i=["/","?",":"],n=i.length,s=0;s-1&&(t=t.substr(0,r));if(t.indexOf("localhost")>-1||0===t.replace(/[0-9\.]/g,"").length)return t;var a=t.split("."),o=a.length;return o>2&&(function(t){return["com","co","org","gov","edu","net"].indexOf(t)>-1}(a[o-2])||function(t){return t.indexOf("qc.ca")>-1}(t))?a[o-3]+"."+a[o-2]+"."+a[o-1]:o>1?a[o-2]+"."+a[o-1]:t},B.FULL_DAY=864e5,B.now=function(){return+new Date},B.startTime=B.now(),B.storageTypes={CK:"COOKIE",MC:"MICROCOOKIE",CL:"COOKIELESS",DS:"DOMSTORAGE"},B.persistDataType={GENERAL:"GENERAL",TRACKER:"TRACKER"};var F=function(t,r){var i=B.storageTypes,n=this.pers=e.config.storage.toUpperCase(),s=new Date,a={path:"/",domain:B.getRootDomain(),secure:!1,encode:!0,expires:new Date(s.getFullYear()+2,s.getMonth(),s.getDate()).toGMTString()};e.ext(this,{_storageKey:"_4c_",isReady:!1,_healthyServices:["brain"],_lastMaint:B.now(),_lastSave:B.now(),_lastSync:B.now(),defaultExpire:7776e6,ready:new B.FSEvent,onCommit:new B.FSEvent,onSync:new B.FSEvent,maxExpire:-1,_data:{when:B.now(),keys:{}},_keyEvents:{},isStale:!1,_cThreshold:2e3,_updateTimeout:6e4,isSyncing:!1,_serverFails:0}),this.browser=t,t.ready.subscribe(e.proxy(function(){t.supportsLocalStorage||n!=i.DS?t.isMobile&&n==i.CL&&(n=i.MC):n=i.CK,n==i.CK?(this.ckie=new B.Cookie(a),this.fr=new B.Frame(t)):n==i.MC?(this.ckie=new B.Cookie(a),this.uid=r||this.ckie.get(this._storageKey+"mc_"),this.uid&&(this.uid.length>64||this.uid.indexOf("{")>-1)&&(this.uid=B.generateGUID(),this.ckie.set(this._storageKey+"mc_",this.uid)),this.uid||(this.uid=B.generateGUID(),this.ckie.set(this._storageKey+"mc_",this.uid)),this.cors=new B.CORS(t)):n==i.CL?(this.uid=r||t.fp,this.cors=new B.CORS(t)):n==i.DS&&(this._cThreshold=500,this._updateTimeout=1e4),this._sync(e.proxy(function(){this.get("rid")||(this.uid=this.uid||B.generateGUID(),this.set("rid",this.uid)),this.uid=this.get("rid"),this.setUpdateInterval(this._updateTimeout),this.pers!=B.storageTypes.CK&&this.pers!=B.storageTypes.DS||this._maint(!0),this.fr?this.fr.ready.subscribe(e.proxy(function(){this.ready.fire(this)},this),!0,!0):this.ready.fire(this)},this))},this),!0,!0),B.Bind(window,"unload",e.proxy(function(){this.save(!0)},this))};F.prototype.upgradeOldStorage=function(r){for(var i=this.ckie,n=["fsr.r","fsr.s","_fsspl_","fsr.t","acs.t"],s=!1,a=0;at&&this._sync()},this),Math.min(t/2,5e3))},F.prototype._sync=function(t){if(!this.isSyncing){this.isSyncing=!0,t=t||function(){};var r,i;if(this.pers==B.storageTypes.CK){if(r=this.ckie.get(this._storageKey))return r=z.decompress(r),this._lastSync=B.now(),i=JSON.parse(r),this._fireChangeEvents(i.keys),i.keys=i.keys||{},this._data=i,this.onSync.fire(this),this.isSyncing=!1,void e.nextTick(t);this.isSyncing=!1,e.nextTick(t)}else if(this.pers==B.storageTypes.DS){if(r=localStorage.getItem(this._storageKey)){if(r=z.decompress(r),this._lastSync=B.now(),i=JSON.parse(r),i.keys=i.keys||{},this._fireChangeEvents(i.keys),this._data=i,e.nextTick(e.proxy(function(){this.onSync.fire(this)},this)),B.now()-this._data.when<3e5)return this.isSyncing=!1,void e.nextTick(t);this._lastSync=B.now(),this._data={when:B.now(),keys:{}}}this.isSyncing=!1,e.nextTick(t)}else{if(this._serverFails>5)return;B.Healthy(this.browser,this._healthyServices,e.proxy(function(){this.cors.send({method:"GET",url:e.config.brainUrl+"/state/"+B.siteKey+"/"+this.uid,success:e.proxy(function(r){this._lastSync=B.now();var i=JSON.parse(r);this._fireChangeEvents(i.keys),this._data=i,this.isSyncing=!1,e.nextTick(e.proxy(function(){this.onSync.fire(this)},this)),t()},this),failure:function(){this._lastSync=B.now(),this.isSyncing=!1,this._serverFails++}})},this))}}},F.prototype._fireChangeEvents=function(t){var r=this;for(var i in t)(!this._data.keys[i]||this._data.keys[i].t5)return;B.Healthy(this.browser,this._healthyServices,e.proxy(function(){this.cors.send({method:"POST",url:e.config.brainUrl+"/state/"+B.siteKey+"/"+this.uid,data:this._data,contentType:"application/json",success:e.proxy(function(t){this._lastSync=B.now(),this._data=JSON.parse(t),this.onCommit.fire(this._data)},this),failure:e.proxy(function(){this._serverFails++},this)})},this))}this.isStale=!1},F.prototype._maint=function(t){var e,r=B.now(),i=this._data.keys,n=!1;if(r-this._lastMaint>5e3||t){for(var s in i)e=i[s],r>e.x&&(delete i[s],n=!0);this._lastMaint=r}!n||this.pers!=B.storageTypes.CK&&this.pers!=B.storageTypes.DS||this._commit()},F.prototype.set=function(t,r,i,n,s,a){this._data.keys||(this._data.keys={});var o=this._data.keys[t],h=B.now(),f=null;if(s||(s=B.persistDataType.GENERAL),i)if("number"==typeof i)f=i,this.maxExpire>0&&this.maxExpire0)){var u=i-h;u>this.maxExpire&&(f=i=this.maxExpire,i=h+i)}if(this.pers!=B.storageTypes.CK&&this.pers!=B.storageTypes.DS||s!=B.persistDataType.TRACKER){if(o){var l={};l[t]={v:r,x:i||o.x,t:h},this._fireChangeEvents(l),o.v=r,o.x=i||o.x,f&&(o.ttl=f),o.t=h}else{var c={};c[t]={v:r,x:i||this.defaultExpire+h,t:h},f&&(c[t].ttl=f),this._fireChangeEvents(c),this._data.keys[t]=c[t]}this.isStale=!0,a&&this.onCommit.subscribe(a,!0,!1),this._maint(),this.save(!!n)}else this.fr&&this.fr.trackerReady.subscribe(e.proxy(function(){this.fr.broadcast(t,r,i)},this),!0,!0)},F.prototype.get=function(t){if(e.isArray(t)){for(var r={},i=0;it||e.ttl>t)&&(e.ttl=t,e.x&&(e.x-=s-t))}this.save(!0)},F.prototype.getMaxKeyExpiration=function(){var t=B.now(),e=this._data.keys,r=0;for(var i in e)r=Math.max(r,e[i].x-t);return r};var N;B.getGlobalStore=function(t,e){return N||(N=new F(t,e)),N};var U=function(t,e){this.loadSuccess=new B.FSEvent,this.loadFailure=new B.FSEvent,this.st=document.createElement("script"),this.st.type="text/javascript",this.st.src=t,e&&(this.st.id=e),this.br=new B.Browser,void 0!==this.st.addEventListener?this._loadOnOthers():void 0!==this.st.attachEvent&&this._loadOnIE()};if(U.prototype._loadOnIE=function(){var t=this,e=this.st;e.onreadystatechange=function(){3==e.readyState&&(e.onreadystatechange=function(){t.loadSuccess.fire(e.src),t.loadFailure=null},t.loadFailure&&t.loadFailure.fire(e.src))},document.body.appendChild(e)},U.prototype._loadOnOthers=function(){this.st.addEventListener("load",e.proxy(function(){this.loadSuccess.fire(this.st.src)},this),!1),this.st.addEventListener("error",e.proxy(function(){this.loadFailure.fire(this.st.src)},this),!1),document.body.appendChild(this.st)},!window.btoa){var M="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",j=new Array(-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,-1,-1,-1,-1,-1);window.btoa=function(t){var e,r,i,n,s,a;for(i=t.length,r=0,e="";i>r;){if(n=255&t.charCodeAt(r++),r==i){e+=M.charAt(n>>2),e+=M.charAt((3&n)<<4),e+="==";break}if(s=t.charCodeAt(r++),r==i){e+=M.charAt(n>>2),e+=M.charAt((3&n)<<4|(240&s)>>4),e+=M.charAt((15&s)<<2),e+="=";break}a=t.charCodeAt(r++),e+=M.charAt(n>>2),e+=M.charAt((3&n)<<4|(240&s)>>4),e+=M.charAt((15&s)<<2|(192&a)>>6),e+=M.charAt(63&a)}return e},window.atob=function(t){var e,r,i,n,s,a,o;for(a=t.length,s=0,o="";a>s;){do{e=j[255&t.charCodeAt(s++)]}while(a>s&&-1==e);if(-1==e)break;do{r=j[255&t.charCodeAt(s++)]}while(a>s&&-1==r);if(-1==r)break;o+=String.fromCharCode(e<<2|(48&r)>>4);do{if(61==(i=255&t.charCodeAt(s++)))return o;i=j[i]}while(a>s&&-1==i);if(-1==i)break;o+=String.fromCharCode((15&r)<<4|(60&i)>>2);do{if(61==(n=255&t.charCodeAt(s++)))return o;n=j[n]}while(a>s&&-1==n);if(-1==n)break;o+=String.fromCharCode((3&i)<<6|n)}return o}}B.b64EncodeUnicode=function(t){return btoa(e.enc(t).replace(/%([0-9A-F]{2})/g,function(t,e){return String.fromCharCode("0x"+e)}))},B.b64DecodeUnicode=function(t){return decodeURIComponent(Array.prototype.map.call(atob(t).split(""),function(t){return"%"+("00"+t.charCodeAt(0).toString(16)).slice(-2)}).join(""))};var P={Util:{stringToByteArray:function(t){var e,r,i=t.split("");for(e=0,r=i.length;e>>0;return i}}};P.CompressionMethod={DEFLATE:8,RESERVED:15},P.BitStream=function(t,e){if(this.index="number"==typeof e?e:0,this.bitindex=0,this.buffer=t instanceof(_?Uint8Array:Array)?t:new(_?Uint8Array:Array)(P.BitStream.DefaultBlockSize),2*this.buffer.length<=this.index)throw new Error("invalid index");this.buffer.length<=this.index&&this.expandBuffer()},P.BitStream.DefaultBlockSize=32768,P.BitStream.prototype.expandBuffer=function(){var t,e=this.buffer,r=e.length,i=new(_?Uint8Array:Array)(r<<1);if(_)i.set(e);else for(t=0;t1&&(t=e>8?function(t){return P.BitStream.ReverseTable[255&t]<<24|P.BitStream.ReverseTable[t>>>8&255]<<16|P.BitStream.ReverseTable[t>>>16&255]<<8|P.BitStream.ReverseTable[t>>>24&255]}(t)>>32-e:P.BitStream.ReverseTable[t]>>8-e),e+a<8)o=o<>e-i-1&1,8==++a&&(a=0,n[s++]=P.BitStream.ReverseTable[o],o=0,s===n.length&&(n=this.expandBuffer()));n[s]=o,this.buffer=n,this.bitindex=a,this.index=s},P.BitStream.prototype.finish=function(){var t,e=this.buffer,r=this.index;return this.bitindex>0&&(e[r]<<=8-this.bitindex,e[r]=P.BitStream.ReverseTable[e[r]],r++),_?t=e.subarray(0,r):(e.length=r,t=e),t},P.BitStream.ReverseTable=function(t){return t}(function(){var t,e=new(_?Uint8Array:Array)(256);for(t=0;t<256;++t)e[t]=function(t){var e=t,r=7;for(t>>>=1;t;t>>>=1)e<<=1,e|=1&t,--r;return(e<>>0}(t);return e}()),P.Huffman={},P.Huffman.buildHuffmanTable=function(t){var e,r,i,n,s,a,o,h,f,u,l,c=t.length,p=0,d=Number.POSITIVE_INFINITY;for(h=0,f=c;hp&&(p=t[h]),t[h]>=1;for(l=i<<16|h,u=a;u0&&(i=this.getParent(r),s[r]>s[i]);)n=s[r],s[r]=s[i],s[i]=n,n=s[r+1],s[r+1]=s[i+1],s[i+1]=n,r=i;return this.length},P.Heap.prototype.pop=function(){var t,e,r,i,n,s=this.buffer;for(e=s[0],t=s[1],this.length-=2,s[0]=s[this.length],s[1]=s[this.length+1],n=0;;){if((i=this.getChild(n))>=this.length)break;if(i+2s[i]&&(i+=2),!(s[i]>s[n]))break;r=s[n],s[n]=s[i],s[i]=r,r=s[n+1],s[n+1]=s[i+1],s[i+1]=r,n=i}return{index:t,value:e,length:this.length}},P.RawDeflate=function(t,e){this.compressionType=P.RawDeflate.CompressionType.DYNAMIC,this.lazy=0,this.freqsLitLen,this.freqsDist,this.input=_&&t instanceof Array?new Uint8Array(t):t,this.output,this.op=0,e&&(e.lazy&&(this.lazy=e.lazy),"number"==typeof e.compressionType&&(this.compressionType=e.compressionType), +e.outputBuffer&&(this.output=_&&e.outputBuffer instanceof Array?new Uint8Array(e.outputBuffer):e.outputBuffer),"number"==typeof e.outputIndex&&(this.op=e.outputIndex)),this.output||(this.output=new(_?Uint8Array:Array)(32768))},P.RawDeflate.CompressionType={NONE:0,FIXED:1,DYNAMIC:2,RESERVED:3},P.RawDeflate.Lz77MinLength=3,P.RawDeflate.Lz77MaxLength=258,P.RawDeflate.WindowSize=32768,P.RawDeflate.MaxCodeLength=16,P.RawDeflate.HUFMAX=286,P.RawDeflate.FixedHuffmanTable=function(){var t,e=[];for(t=0;t<288;t++)switch(!0){case t<=143:e.push([t+48,8]);break;case t<=255:e.push([t-144+400,9]);break;case t<=279:e.push([t-256+0,7]);break;case t<=287:e.push([t-280+192,8]);break;default:throw"invalid literal: "+t}return e}(),P.RawDeflate.prototype.compress=function(){var t,e,r,i=this.input;switch(this.compressionType){case P.RawDeflate.CompressionType.NONE:for(e=0,r=i.length;e>>8&255,h[f++]=255&s,h[f++]=s>>>8&255,_)h.set(t,f),f+=t.length,h=h.subarray(0,f);else{for(a=0,o=t.length;a257&&0===h[s-1];s--);for(a=30;a>1&&0===u[a-1];a--);for(c=this.getTreeSymbols_(s,h,a,u),p=this.getLengths_(c.freqs,7),w=0;w<19;w++)x[w]=p[v[w]];for(o=19;o>4&&0===x[o-1];o--);for(d=this.getCodesFromLengths_(p),m.writeBits(s-257,5,!0),m.writeBits(a-1,5,!0),m.writeBits(o-4,4,!0),w=0;w=16){switch(w++,g){case 16:y=2;break;case 17:y=3;break;case 18:y=7;break;default:throw"invalid code: "+g}m.writeBits(c.codes[w],y,!0)}return this.dynamicHuffman(n,[f,h],[l,u],m),m.finish()},P.RawDeflate.prototype.dynamicHuffman=function(t,e,r,i){var n,s,a,o,h,f,u,l;for(h=e[0],f=e[1],u=r[0],l=r[1],n=0,s=t.length;n256)i.writeBits(t[++n],t[++n],!0),o=t[++n],i.writeBits(u[o],l[o],!0),i.writeBits(t[++n],t[++n],!0);else if(256===a)break;return i},P.RawDeflate.prototype.fixedHuffman=function(t,e){var r,i,n;for(r=0,i=t.length;r256)e.writeBits(t[++r],t[++r],!0),e.writeBits(t[++r],5),e.writeBits(t[++r],t[++r],!0);else if(256===n)break;return e},P.RawDeflate.Lz77Match=function(t,e){this.length=t,this.backwardDistance=e},P.RawDeflate.Lz77Match.LengthCodeTable=function(t){return _?new Uint32Array(t):t}(function(){var t,e,r=[];for(t=3;t<=258;t++)e=function(t){switch(!0){case 3===t:return[257,t-3,0];case 4===t:return[258,t-4,0];case 5===t:return[259,t-5,0];case 6===t:return[260,t-6,0];case 7===t:return[261,t-7,0];case 8===t:return[262,t-8,0];case 9===t:return[263,t-9,0];case 10===t:return[264,t-10,0];case t<=12:return[265,t-11,1];case t<=14:return[266,t-13,1];case t<=16:return[267,t-15,1];case t<=18:return[268,t-17,1];case t<=22:return[269,t-19,2];case t<=26:return[270,t-23,2];case t<=30:return[271,t-27,2];case t<=34:return[272,t-31,2];case t<=42:return[273,t-35,3];case t<=50:return[274,t-43,3];case t<=58:return[275,t-51,3];case t<=66:return[276,t-59,3];case t<=82:return[277,t-67,4];case t<=98:return[278,t-83,4];case t<=114:return[279,t-99,4];case t<=130:return[280,t-115,4];case t<=162:return[281,t-131,5];case t<=194:return[282,t-163,5];case t<=226:return[283,t-195,5];case t<=257:return[284,t-227,5];case 258===t:return[285,t-258,0];default:throw"invalid length: "+t}}(t),r[t]=e[2]<<24|e[1]<<16|e[0];return r}()),P.RawDeflate.Lz77Match.prototype.getDistanceCode_=function(t){var e;switch(!0){case 1===t:e=[0,t-1,0];break;case 2===t:e=[1,t-2,0];break;case 3===t:e=[2,t-3,0];break;case 4===t:e=[3,t-4,0];break;case t<=6:e=[4,t-5,1];break;case t<=8:e=[5,t-7,1];break;case t<=12:e=[6,t-9,2];break;case t<=16:e=[7,t-13,2];break;case t<=24:e=[8,t-17,3];break;case t<=32:e=[9,t-25,3];break;case t<=48:e=[10,t-33,4];break;case t<=64:e=[11,t-49,4];break;case t<=96:e=[12,t-65,5];break;case t<=128:e=[13,t-97,5];break;case t<=192:e=[14,t-129,6];break;case t<=256:e=[15,t-193,6];break;case t<=384:e=[16,t-257,7];break;case t<=512:e=[17,t-385,7];break;case t<=768:e=[18,t-513,8];break;case t<=1024:e=[19,t-769,8];break;case t<=1536:e=[20,t-1025,9];break;case t<=2048:e=[21,t-1537,9];break;case t<=3072:e=[22,t-2049,10];break;case t<=4096:e=[23,t-3073,10];break;case t<=6144:e=[24,t-4097,11];break;case t<=8192:e=[25,t-6145,11];break;case t<=12288:e=[26,t-8193,12];break;case t<=16384:e=[27,t-12289,12];break;case t<=24576:e=[28,t-16385,13];break;case t<=32768:e=[29,t-24577,13];break;default:throw"invalid distance"}return e},P.RawDeflate.Lz77Match.prototype.toLz77Array=function(){var t,e=this.length,r=this.backwardDistance,i=[],n=0;return t=P.RawDeflate.Lz77Match.LengthCodeTable[e],i[n++]=65535&t,i[n++]=t>>16&255,i[n++]=t>>24,t=this.getDistanceCode_(r),i[n++]=t[0],i[n++]=t[1],i[n++]=t[2],i},P.RawDeflate.prototype.lz77=function(t){function e(t,e){var r,i,n=t.toLz77Array();for(r=0,i=n.length;r0)o.push(r);else{for(;o.length>0&&r-o[0]>c;)o.shift();if(r+P.RawDeflate.Lz77MinLength>=i){for(f&&e(f,-1),n=0,s=i-r;n0?(h=this.searchLongestMatch_(t,r,o),f?f.lengthP.RawDeflate.Lz77MinLength){for(o=f;o>P.RawDeflate.Lz77MinLength;o--)if(t[i+o-1]!==t[e+o-1])continue t;s=f}for(;sf&&(n=i,f=s),s===P.RawDeflate.Lz77MaxLength)break}return new P.RawDeflate.Lz77Match(f,e-n)},P.RawDeflate.prototype.getTreeSymbols_=function(t,e,r,i){var n,s,a,o,h,f,u=new(_?Uint32Array:Array)(t+r),l=new(_?Uint32Array:Array)(316),c=new(_?Uint8Array:Array)(19);for(s=0,n=0;n0;)l[h++]=0,c[0]++;else for(;a>0;)f=a<138?a:138,f>a-3&&f0;)l[h++]=u[n],c[u[n]]++;else for(;a>0;)f=a<6?a:6,f>a-3&&f0&&h.push(s,t[s]);if(r=new Array(h.length/2),i=new(_?Uint32Array:Array)(h.length/2),1===r.length)return f[h.pop().index]=1,f;for(s=0,a=h.length/2;s2*f[s-1]+u[s]&&(f[s]=2*f[s-1]+u[s]),c[s]=new Array(f[s]),p[s]=new Array(f[s]);for(n=0;n=0;--s){for(n=0,o=0,h=d[s+1],a=0;at[n]?(c[s][a]=o,p[s][a]=e,h+=2):(c[s][a]=t[n],p[s][a]=n,++n);d[s]=0,1===u[s]&&i(s)}return l},P.RawDeflate.prototype.getCodesFromLengths_=function(t){var e,r,i,n,s=new(_?Uint16Array:Array)(t.length),a=[],o=[],h=0;for(e=0,r=t.length;e>>=1;return s};var H=P.Huffman.buildHuffmanTable;P.RawInflate=function(t,e){switch(this.buffer,this.blocks=[],this.bufferSize=ZLIB_RAW_INFLATE_BUFFER_SIZE,this.totalpos=0,this.ip=0,this.bitsbuf=0,this.bitsbuflen=0,this.input=_?new Uint8Array(t):t,this.output,this.op,this.bfinal=!1,this.bufferType=P.RawInflate.BufferType.ADAPTIVE,this.resize=!1,this.prev,!e&&(e={})||(e.index&&(this.ip=e.index),e.bufferSize&&(this.bufferSize=e.bufferSize),e.bufferType&&(this.bufferType=e.bufferType),e.resize&&(this.resize=e.resize)),this.bufferType){case P.RawInflate.BufferType.BLOCK:this.op=P.RawInflate.MaxBackwardLength,this.output=new(_?Uint8Array:Array)(P.RawInflate.MaxBackwardLength+this.bufferSize+P.RawInflate.MaxCopyLength);break;case P.RawInflate.BufferType.ADAPTIVE:this.op=0,this.output=new(_?Uint8Array:Array)(this.bufferSize),this.expandBuffer=this.expandBufferAdaptive,this.concatBuffer=this.concatBufferDynamic,this.decodeHuffman=this.decodeHuffmanAdaptive;break;default:throw new Error("invalid inflate mode")}},P.RawInflate.BufferType={BLOCK:0,ADAPTIVE:1},P.RawInflate.prototype.decompress=function(){for(;!this.bfinal;)this.parseBlock();return this.concatBuffer()},P.RawInflate.MaxBackwardLength=32768,P.RawInflate.MaxCopyLength=258,P.RawInflate.Order=function(t){return _?new Uint16Array(t):t}([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),P.RawInflate.LengthCodeTable=function(t){return _?new Uint16Array(t):t}([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,258,258]),P.RawInflate.LengthExtraTable=function(t){return _?new Uint8Array(t):t}([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0]),P.RawInflate.DistCodeTable=function(t){return _?new Uint16Array(t):t}([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577]),P.RawInflate.DistExtraTable=function(t){return _?new Uint8Array(t):t}([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),P.RawInflate.FixedLiteralLengthTable=function(t){return t}(function(){var t,e,r=new(_?Uint8Array:Array)(288);for(t=0,e=r.length;t>>=1){case 0:this.parseUncompressedBlock();break;case 1:this.parseFixedHuffmanBlock();break;case 2:this.parseDynamicHuffmanBlock();break;default:throw new Error("unknown BTYPE: "+t)}},P.RawInflate.prototype.readBits=function(t){for(var e,r=this.bitsbuf,i=this.bitsbuflen,n=this.input,s=this.ip,a=n.length;i=a)throw new Error("input buffer is broken");r|=n[s++]<>>=t,i-=t,this.bitsbuf=r,this.bitsbuflen=i,this.ip=s,e},P.RawInflate.prototype.readCodeByTable=function(t){for(var e,r,i=this.bitsbuf,n=this.bitsbuflen,s=this.input,a=this.ip,o=s.length,h=t[0],f=t[1];n=o);)i|=s[a++]<>>16,this.bitsbuf=i>>r,this.bitsbuflen=n-r,this.ip=a,65535&e},P.RawInflate.prototype.parseUncompressedBlock=function(){var t,e,r,i=this.input,n=this.ip,s=this.output,a=this.op,o=i.length,h=s.length;if(this.bitsbuf=0,this.bitsbuflen=0,n+1>=o)throw new Error("invalid uncompressed block header: LEN");if(t=i[n++]|i[n++]<<8,n+1>=o)throw new Error("invalid uncompressed block header: NLEN");if(e=i[n++]|i[n++]<<8,t===~e)throw new Error("invalid uncompressed block header: length verify");if(n+t>i.length)throw new Error("input buffer is broken");switch(this.bufferType){case P.RawInflate.BufferType.BLOCK:for(;a+t>s.length;){if(r=h-a,t-=r,_)s.set(i.subarray(n,n+r),a),a+=r,n+=r;else for(;r--;)s[a++]=i[n++];this.op=a,s=this.expandBuffer(),a=this.op}break;case P.RawInflate.BufferType.ADAPTIVE:for(;a+t>s.length;)s=this.expandBuffer({fixRatio:2});break;default:throw new Error("invalid inflate mode")}if(_)s.set(i.subarray(n,n+t),a),a+=t,n+=t;else for(;t--;)s[a++]=i[n++];this.ip=n,this.op=a,this.output=s},P.RawInflate.prototype.parseFixedHuffmanBlock=function(){this.decodeHuffman(P.RawInflate.FixedLiteralLengthTable,P.RawInflate.FixedDistanceTable)},P.RawInflate.prototype.parseDynamicHuffmanBlock=function(){function t(t,e,r){var i,n,s,a=this.prev;for(s=0;s=h&&(this.op=i,r=this.expandBuffer(),i=this.op),r[i++]=n;else for(s=n-257,o=P.RawInflate.LengthCodeTable[s],P.RawInflate.LengthExtraTable[s]>0&&(o+=this.readBits(P.RawInflate.LengthExtraTable[s])),n=this.readCodeByTable(e),a=P.RawInflate.DistCodeTable[n],P.RawInflate.DistExtraTable[n]>0&&(a+=this.readBits(P.RawInflate.DistExtraTable[n])),i>=h&&(this.op=i,r=this.expandBuffer(),i=this.op);o--;)r[i]=r[i++-a];for(;this.bitsbuflen>=8;)this.bitsbuflen-=8,this.ip--;this.op=i},P.RawInflate.prototype.decodeHuffmanAdaptive=function(t,e){var r=this.output,i=this.op;this.currentLitlenTable=t;for(var n,s,a,o,h=r.length;256!==(n=this.readCodeByTable(t));)if(n<256)i>=h&&(r=this.expandBuffer(),h=r.length),r[i++]=n;else for(s=n-257,o=P.RawInflate.LengthCodeTable[s],P.RawInflate.LengthExtraTable[s]>0&&(o+=this.readBits(P.RawInflate.LengthExtraTable[s])),n=this.readCodeByTable(e),a=P.RawInflate.DistCodeTable[n],P.RawInflate.DistExtraTable[n]>0&&(a+=this.readBits(P.RawInflate.DistExtraTable[n])),i+o>h&&(r=this.expandBuffer(),h=r.length);o--;)r[i]=r[i++-a];for(;this.bitsbuflen>=8;)this.bitsbuflen-=8,this.ip--;this.op=i},P.RawInflate.prototype.expandBuffer=function(t){var e,r,i=new(_?Uint8Array:Array)(this.op-P.RawInflate.MaxBackwardLength),n=this.op-P.RawInflate.MaxBackwardLength,s=this.output;if(_)i.set(s.subarray(P.RawInflate.MaxBackwardLength,i.length));else for(e=0,r=i.length;ee&&(this.output.length=e),t=this.output),this.buffer=t,this.buffer},P.RawInflate=function(t,e){switch(this.buffer,this.blocks=[],this.bufferSize=32768,this.totalpos=0,this.ip=0,this.bitsbuf=0,this.bitsbuflen=0,this.input=_?new Uint8Array(t):t,this.output,this.op,this.bfinal=!1,this.bufferType=P.RawInflate.BufferType.ADAPTIVE,this.resize=!1,this.prev,!e&&(e={})||(e.index&&(this.ip=e.index),e.bufferSize&&(this.bufferSize=e.bufferSize),e.bufferType&&(this.bufferType=e.bufferType),e.resize&&(this.resize=e.resize)),this.bufferType){case P.RawInflate.BufferType.BLOCK:this.op=P.RawInflate.MaxBackwardLength,this.output=new(_?Uint8Array:Array)(P.RawInflate.MaxBackwardLength+this.bufferSize+P.RawInflate.MaxCopyLength);break;case P.RawInflate.BufferType.ADAPTIVE:this.op=0,this.output=new(_?Uint8Array:Array)(this.bufferSize),this.expandBuffer=this.expandBufferAdaptive,this.concatBuffer=this.concatBufferDynamic,this.decodeHuffman=this.decodeHuffmanAdaptive}},P.RawInflate.BufferType={BLOCK:0,ADAPTIVE:1},P.RawInflate.prototype.decompress=function(){for(;!this.bfinal;)this.parseBlock();return this.concatBuffer()},P.RawInflate.MaxBackwardLength=32768,P.RawInflate.MaxCopyLength=258,P.RawInflate.Order=function(t){return _?new Uint16Array(t):t}([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),P.RawInflate.LengthCodeTable=function(t){return _?new Uint16Array(t):t}([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,258,258]),P.RawInflate.LengthExtraTable=function(t){return _?new Uint8Array(t):t}([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0]),P.RawInflate.DistCodeTable=function(t){return _?new Uint16Array(t):t}([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577]),P.RawInflate.DistExtraTable=function(t){return _?new Uint8Array(t):t}([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),P.RawInflate.FixedLiteralLengthTable=function(t){return t}(function(){var t,e,r=new(_?Uint8Array:Array)(288);for(t=0,e=r.length;t>>=1){case 0:this.parseUncompressedBlock();break;case 1:this.parseFixedHuffmanBlock();break;case 2:this.parseDynamicHuffmanBlock();break;default:throw new Error("unknown BTYPE: "+t)}},P.RawInflate.prototype.readBits=function(t){for(var e,r=this.bitsbuf,i=this.bitsbuflen,n=this.input,s=this.ip,a=n.length;i=a)throw new Error("input buffer is broken");r|=n[s++]<>>=t,i-=t,this.bitsbuf=r,this.bitsbuflen=i,this.ip=s,e},P.RawInflate.prototype.readCodeByTable=function(t){for(var e,r,i=this.bitsbuf,n=this.bitsbuflen,s=this.input,a=this.ip,o=s.length,h=t[0],f=t[1];n=o);)i|=s[a++]<>>16,this.bitsbuf=i>>r,this.bitsbuflen=n-r,this.ip=a,65535&e},P.RawInflate.prototype.parseUncompressedBlock=function(){var t,e,r,i=this.input,n=this.ip,s=this.output,a=this.op,o=i.length,h=s.length;if(this.bitsbuf=0,this.bitsbuflen=0,n+1>=o)throw new Error("invalid uncompressed block header: LEN");if(t=i[n++]|i[n++]<<8,n+1>=o)throw new Error("invalid uncompressed block header: NLEN");if(e=i[n++]|i[n++]<<8,t===~e)throw new Error("invalid uncompressed block header: length verify");if(n+t>i.length)throw new Error("input buffer is broken");switch(this.bufferType){case P.RawInflate.BufferType.BLOCK:for(;a+t>s.length;){if(r=h-a,t-=r,_)s.set(i.subarray(n,n+r),a),a+=r,n+=r;else for(;r--;)s[a++]=i[n++];this.op=a,s=this.expandBuffer(),a=this.op}break;case P.RawInflate.BufferType.ADAPTIVE:for(;a+t>s.length;)s=this.expandBuffer({fixRatio:2});break;default:throw new Error("invalid inflate mode")}if(_)s.set(i.subarray(n,n+t),a),a+=t,n+=t;else for(;t--;)s[a++]=i[n++];this.ip=n,this.op=a,this.output=s},P.RawInflate.prototype.parseFixedHuffmanBlock=function(){this.decodeHuffman(P.RawInflate.FixedLiteralLengthTable,P.RawInflate.FixedDistanceTable)},P.RawInflate.prototype.parseDynamicHuffmanBlock=function(){function t(t,e,r){var i,n,s,a=this.prev;for(s=0;s=h&&(this.op=i,r=this.expandBuffer(),i=this.op),r[i++]=n;else for(s=n-257,o=P.RawInflate.LengthCodeTable[s],P.RawInflate.LengthExtraTable[s]>0&&(o+=this.readBits(P.RawInflate.LengthExtraTable[s])),n=this.readCodeByTable(e),a=P.RawInflate.DistCodeTable[n],P.RawInflate.DistExtraTable[n]>0&&(a+=this.readBits(P.RawInflate.DistExtraTable[n])),i>=h&&(this.op=i,r=this.expandBuffer(),i=this.op);o--;)r[i]=r[i++-a];for(;this.bitsbuflen>=8;)this.bitsbuflen-=8,this.ip--;this.op=i},P.RawInflate.prototype.decodeHuffmanAdaptive=function(t,e){var r=this.output,i=this.op;this.currentLitlenTable=t;for(var n,s,a,o,h=r.length;256!==(n=this.readCodeByTable(t));)if(n<256)i>=h&&(r=this.expandBuffer(),h=r.length),r[i++]=n;else for(s=n-257,o=P.RawInflate.LengthCodeTable[s],P.RawInflate.LengthExtraTable[s]>0&&(o+=this.readBits(P.RawInflate.LengthExtraTable[s])),n=this.readCodeByTable(e),a=P.RawInflate.DistCodeTable[n],P.RawInflate.DistExtraTable[n]>0&&(a+=this.readBits(P.RawInflate.DistExtraTable[n])),i+o>h&&(r=this.expandBuffer(),h=r.length);o--;)r[i]=r[i++-a];for(;this.bitsbuflen>=8;)this.bitsbuflen-=8,this.ip--;this.op=i},P.RawInflate.prototype.expandBuffer=function(t){var e,r,i=new(_?Uint8Array:Array)(this.op-P.RawInflate.MaxBackwardLength),n=this.op-P.RawInflate.MaxBackwardLength,s=this.output;if(_)i.set(s.subarray(P.RawInflate.MaxBackwardLength,i.length));else for(e=0,r=i.length;ee&&(this.output.length=e),t=this.output),this.buffer=t,this.buffer},B.Async=function(t,e,r){this.isParallel=!!t,this._queue=[],this.success=e,this.fail=r,this.isPending=!0},B.Async.prototype.enqueue=function(t){this._queue.push({fn:t,resolved:!1}),(this.isParallel||1==this._queue.length)&&t.apply(this,[{resolve:e.proxy(function(){e.nextTick(e.proxy(function(){this.ctx.resolve(this.cb)},this))},{cb:t,ctx:this}),error:e.proxy(function(){this.ctx.error(this.cb)},{cb:t,ctx:this})}])},B.Async.prototype.resolve=function(t){if(this.isPending){if(!t)throw new Error("Missing caller argument.");var r,i,n=!1;for(r=0;r-1},a=function(t,e){return"IE"!=t?e:e>6&&e<10?s("Trident")||7!=e?s("Trident/5.0")&&e<=9?9:s("Trident/4.0")&&e<9?s("WOW64")?8:7==e?e:8:e:7:e},o=function(t,r){return r?s("Windows Phone")?"Winphone":s("iPod")?"iPod":s("iPad")?"iPad":s("iPhone")?"iPhone":(s("blackberry")||s("playbook")||s("BB10"))&&s("applewebkit")?"Blackberry":s("Kindle")||s("Silk")?"Kindle":s("BNTV")||s("Nook")?"Nook":s("Android")?"Android":e.isDefined(window.orientation)?"Mobile":"Other":s("Windows")?"Windows":s("OS X")?"Mac":s("Linux")||s("Googlebot")?"Linux":s("Mac")?"Mac":void 0},h=function(t,e){for(;t>=e;)t/=10;return t},f=function(t,r){var i,n,a,o,f,u;return s("windows phone")||!s("ipad")&&!s("iphone")?s("googlebot")?1:s("mac os x")?(i=/OS X ([0-9_]*)/gi.exec(t),n=i[1].split("_"),a=parseInt(n[0]),f=parseInt(n[1]),u=parseInt(n[2]),f+=h(u,1),a+h(f,1)):s("Windows NT")?(i=/Windows NT ([0-9\.]*)/gi.exec(t),n=i[1].split("."),a=parseInt(n[0]),f=parseInt(n[1]),a+h(f,1)):(i=t.match(/Windows Phone OS[\/\s](\d+\.?\d+)/)||t.match(/Windows Phone[\/\s](\d+\.?\d+)/)||t.match(/Android[\/\s](\d+\.?\d+)/),a=e.isDefined(i)?i[1]:1,o=parseFloat(a),!isNaN(o)&&o>0?o:a):(i=/OS ([0-9_]*) like/gi.exec(t),n=i[1].split("_"),a=parseInt(n[0]),f=parseInt(n[1]),a+h(f,1))},u=function(){if("Winphone"!=r.os.name){var t=document.querySelectorAll("head meta[name=viewport],head meta[name=VIEWPORT],head meta[name=Viewport]")||[];if(e.isArray(t)||(t=[t]),t.length>0){for(var i=function(t,e){var r=new RegExp("[\\w\\W]*"+e+"[\\s]*=[\\s]*([^\\s,;]*)[\\w\\W]*","i");return t?t.match(r):null},n=0;n1&&("0"==a[1]||"no"==e.toLowerCase(a[1])))return!1;if(o&&h)return!(o.length>1&&h.length>1&&1==parseFloat(o[1])&&1==parseFloat(h[1]))}return!0}return!0}return!1},l=B._getBrowserNameAndVersion(i),c=function(){r.browser.name=l.name,r.browser.version=l.version,r.browser.actualVersion=a(r.browser.name,r.browser.version),r.os.name=o(0,r.isMobile),r.os.version=f(i,r.isMobile)},p=function(){r.isZoomable=u(),r.isReady=!0,r._internalReady.fire()},d=function(){c()};if(r.isMobile)if(r.isIos||""===r.servUrl||r.isTablet||r.isWinPhone)d(),p();else{var g,y=function(t){var e=JSON.parse(t);r.browser.name=e.browser.name,r.browser.version=r.browser.actualVersion=e.browser.version,r.os.name=e.os.name,r.os.version=e.os.version,r.isMobile=e.isMobile,r.isTablet=e.isTablet,p()},w=this.supportsLocalStorage;if(w&&!t&&(g=sessionStorage.getItem("ACS_BROWSER")),g)y(g);else{var b=function(t){w&&sessionStorage.setItem("ACS_BROWSER",t),y(t)},m=function(){d(),p()},v=function(){var t=new Date,e=t.getFullYear().toString(),r=(t.getMonth()+1).toString(),i=t.getDate().toString();return e+(r[1]?r:"0"+r[0])+(i[1]?i:"0"+i[0])},x={method:"GET",url:r.servUrl+function(){var t=v()+"ForeSee"+(location.origin||"null");return B.hashCode(t)}()+"&ua="+i,type:"*/*",contentType:"application/x-www-form-urlencoded",success:b,failure:m};new B.AjaxTransport(x,!0).send()}}else c(),r.isReady=!0,r.isIE="IE"==r.browser.name,r._internalReady.fire()},B._getBrowserNameAndVersion=function(t){var e,r,i="Unknown";return null!==(r=t.match(/Opera[\/\s](\d+\.\d+)/))?i="Opera":null!==(r=t.match(/Edge\/([0-9\.]*)/))?i="IE":null!==(r=t.match(/opr[\/\s](\d+\.\d+)/i))?i="Opera":null!==(r=t.match(/Windows Phone[\/\s](\d+\.\d+)/))?i="IEMobile":null!==(r=t.match(/MSIE (\d+\.\d+)/))?i="IE":null!==(r=t.match(/Navigator[\/\s](\d+\.\d+)/))?i="Netscape":null!==(r=t.match(/Chrome[\/\s](\d+\.\d+)/))?i="Chrome":null!==(r=t.match(/CriOS[\/\s](\d+\.\d+)/))?i="Chrome":null!==(r=t.match(/Version\/([0-9\.]*)[\w\W]*Safari/i))?i="Safari":null!==(r=t.match(/Firefox[\/\s](\d+\.\d+)/))?i="Firefox":null!==(r=t.match(/googlebot/gi))?(i="Chrome",e=44):Object.hasOwnProperty.call(window,"ActiveXObject")&&!window.ActiveXObject&&(i="IE", +e=11),{name:i,version:e||(null!==r?parseFloat(r[1]):void 0)}},B.sign=function(t){var r=(new Date).getTime(),i=t.substr(t.indexOf("/rec/")),n=B.md5((i+r).toString());return-1==t.indexOf("?")?t+="?":t+="&",t+"token="+r+"&sig="+e.enc(n)},B.WindowStorage=function(t,r){t||(t="STORAGE"),this.guid="FSR_"+t.replace(/[- _.&]/g,"").toUpperCase(),this.storageLimit=5e6,this.StorageFull=new B.FSEvent,this.kill(),this.sync(),e.isDefined(r)&&!r||setTimeout(e.proxy(function(){B.Bind(window,"unload",e.proxy(function(){this.commit()},this))},this),100)},B.WindowStorage.prototype.testStorageLimit=function(){return this.storageBytesObj+this.storageBytesBlob>=this.storageLimit&&(this.StorageFull.fire(this),!0)},B.WindowStorage.prototype.dispose=function(t){this._data_obj[t]&&(delete this._data_obj[t],this.storageBytesObj=JSON.stringify(this._data_obj).length)},B.WindowStorage.prototype.kill=function(){this.storageBytesObj=0,this.storageBytesBlob=0,this._data_obj={},this._data_blob="",this.isNewStorage=!0},B.WindowStorage.prototype.get=function(t){return this._data_obj[t]},B.WindowStorage.prototype.getBlob=function(){return this._data_blob},B.WindowStorage.prototype.erase=function(t){delete this._data_obj[t],this.storageBytesObj=JSON.stringify(this._data_obj).length,this.isNewStorage=!1,this.testStorageLimit()},B.WindowStorage.prototype.set=function(t,e){e&&(this._data_obj[t]=e,this.storageBytesObj=JSON.stringify(this._data_obj).length,this.isNewStorage=!1,this.testStorageLimit())},B.WindowStorage.prototype.setBlob=function(t){this._data_blob=t,this.storageBytesBlob=this._data_blob.length,this.isNewStorage=!1,this.testStorageLimit()},B.WindowStorage.prototype.isNew=function(){return this.isNewStorage},B.WindowStorage.initialize=function(t){t.apply(B.WindowStorage)},B.WindowStorage.isSupported=function(){return!0},B.WindowStorage.prototype.sync=function(){var t=B.nameBackup||window.name||"",e=this.guid+"_",r="",i=t.indexOf(e+"BEGIN_OBJ");i>-1&&(r=t.substr(i+(e+"BEGIN_OBJ").length,t.indexOf(e+"END_OBJ")-(i+(e+"BEGIN_OBJ").length)));try{r.length>0&&(this._data_obj=JSON.parse(r),this.storageBytesObj=r.length,this.isNewStorage=!1)}catch(t){}r="",(i=t.indexOf(e+"BEGIN_BLOB"))>-1&&(r=t.substr(i+(e+"BEGIN_BLOB").length,t.indexOf(e+"END_BLOB")-(i+(e+"BEGIN_BLOB").length)));try{r.length>0&&(this._data_blob=r,this.storageBytesBlob=r.length,this.isNewStorage=!1)}catch(t){}},B.WindowStorage.prototype.commit=function(){var t=window.name;e.isDefined(t)||(t="");var r=this.guid+"_",i=t.indexOf(r+"BEGIN_OBJ"),n=JSON.stringify(this._data_obj),s=r+"BEGIN_OBJ"+n+r+"END_OBJ";i>-1?t=t.substr(0,i)+s+t.substr(t.indexOf(r+"END_OBJ")+(r+"END_OBJ").length):t+=s,i=t.indexOf(r+"BEGIN_BLOB"),s=r+"BEGIN_BLOB"+this._data_blob+r+"END_BLOB",i>-1?t=t.substr(0,i)+s+t.substr(t.indexOf(r+"END_BLOB")+(r+"END_BLOB").length):t+=s,window.name=B.nameBackup=t,this.storageBytes=window.name.length},B.nameBackup=window.name,B.dedupe=function(t){var e,r;for(e=t.length-1;e>=0;e--)for(r=e-1;r>=0;r--)t[r]==t[e]&&t.splice(e,1);return t},B.arrayIndexOf=function(t,e){for(var r in e)if(e[r]===t)return r;return-1},B.inArray=function(t,e){return-1!=B.arrayIndexOf(t,e)},B.Cookie=function(t){this.opts=t||{}},B.Cookie.prototype.set=function(t,r,i){var n,s=this.opts;i&&(s=e.ext({},s,i)),r=e.isDefined(s.encode)?e.enc(r):r,t=e.enc(t),"localhost"==s.domain&&delete s.domain;for(var a in s)if(s[a])switch(n=s[a],r+=";"+("duration"==a?"expires":a),a){case"expires":r+="="+(e.isDate(n)?n.toGMTString():n)+";";break;case"duration":r+="="+new Date(B.now()+n*B.FULL_DAY).toGMTString()+";";break;default:r+="="+n}document.cookie=t+"="+r},B.Cookie.prototype.get=function(t){var e=document.cookie.match("(?:^|;)\\s*"+B.escapeRegExp(t)+"=([^;]*)");return e?decodeURIComponent(e[1]):null},B.Cookie.prototype.kill=function(t){var e=new Date;e.setTime(e.getTime()-9999),this.set(t,"",{expires:e})},window.__fsJSONPCBr={},window.__fsJSONPCB=e.proxy(function(t){if(t){var e=t.filename,r=atob(t.contents);window.__fsJSONPCBr[e]&&window.__fsJSONPCBr[e].fire(r)}},this),B.JSONP=function(t){this._expireTimeout=null,this._networkError=new B.FSEvent,this.opts=e.ext({success:function(){},failure:function(){},timeout:5e3},t)},B.JSONP.prototype.get=function(t,r){var i=t.indexOf("?")>-1?t.substr(t.indexOf("?")+1):"",n=t.substr(0,t.lastIndexOf("/")+1),s=t.substr(t.lastIndexOf("/")+1),a=window.__fsJSONPCBr;this._expireTimeout=setTimeout(e.proxy(function(){this._networkError.fire({type:"timedout"})},this),this.opts.timeout),s.indexOf("?")>-1&&(s=s.substr(0,s.indexOf("?")));var o=(r||"")+s;if(!a[o]){a[o]=new B.FSEvent;var h=n+s.substr(0,s.lastIndexOf("."))+"___"+s.substr(s.lastIndexOf(".")+1)+".js"+(i.length>0?"?"+i:""),f=new U(h,"_fscl"+o);f.loadFailure.subscribe(e.proxy(function(){this.el.parentNode.removeChild(this.el),this.ctx._networkError.fire({type:"internalserror"})},{ctx:this,el:f.st}))}a[o].subscribe(e.proxy(function(t){this.ctx.opts.success(t),clearTimeout(this.ctx._expireTimeout);var e=document.getElementById(this.tgId);e&&e.parentNode.removeChild(e)},{ctx:this,tgId:"_fscl"+o}),!0,!0),this._networkError.subscribe(e.proxy(function(t){this.opts.failure(t),a[o].unsubscribeAll()},this),!0,!0)},B.ImageTransport=function(t){var r={data:{},success:function(){},failure:function(){}};this.options=e.ext(r,t)},B.ImageTransport.prototype.send=function(t){var r=e.ext(this.options,t),i=new Image;i.onerror=r.failure,i.onload=function(){r.success({width:i.width,height:i.height})},i.src=e.toQueryString(r.data,r.url,!1)};var z={byteArrayToString:function(t){for(var e="",r=0;r127&&i<2048?(e+=String.fromCharCode(i>>6|192),e+=String.fromCharCode(63&i|128)):(e+=String.fromCharCode(i>>12|224),e+=String.fromCharCode(i>>6&63|128),e+=String.fromCharCode(63&i|128))}return e},compress:function(t){var e=z._utf8_encode(t),r=z.stringToByteArray(e),i=new P.RawDeflate(r,{compressionType:2}).compress();return btoa(z.byteArrayToString(i))},fragmentAndCompress:function(t,e){e=e||1e5;for(var r="",i=parseInt(t.length/e)+1,n=0;n0?i(a):r(n)};B.Healthy=function(t,r,i,n){if (localStorage) { var nwval = (new Date).getTime(); try { localStorage.setItem("_fsrHealthStatus", JSON.stringify({ last: nwval, info: { survey2: { ref: { rel: "content", url: "https://cx.foresee.com/status" }, up: true, last_check: nwval, latency: 0 }, survey: { ref: { rel: "content", url: "https://survey.foreseeresults.com/survey/status" }, up: true, last_check: nwval, latency: 87 }, cxreplay: { ref: { rel: "content", url: "https://rec.replay.answerscloud.com/status" }, up: true, last_check: nwval, latency: 77 }, events: { ref: { rel: "content", url: "https://analytics.foresee.com/status" }, up: true, last_check: nwval, latency: 70 }, trust: { ref: { rel: "status", url: "" }, up: false }, brain: { ref: { rel: "content", url: "https://brain.foresee.com/status" }, up: true, last_check: nwval, latency: 348 }, static: { ref: { rel: "content", url: "https://static.foresee.com" }, up: true, last_check: nwval, latency: 74 }, device: { ref: { rel: "content", url: "https://device.4seeresults.com/status" }, up: true, last_check: nwval, latency: 68 } } })) } catch (e) { } }if(e.isArray(r)||(r=[r]),i=i||function(){},n=n||function(){},!W&&t.supportsLocalStorage){var s=localStorage.getItem("_fsrHealthStatus");W=s?JSON.parse(s):{}}W&&W.last&&B.now()-W.last<2592000000?e.nextTick(function(){K(r,i,n)}):(J||(J=new B.AjaxTransport),J.send({method:"GET",url:location.protocol+"//health.foresee.com",timeout:1e4,failure:e.proxy(function(){n(r)},this),success:e.proxy(function(i){e.isString(i)&&i.length>3?(W={last:B.now(),info:JSON.parse(i)},t.supportsLocalStorage&&localStorage.setItem("_fsrHealthStatus",JSON.stringify(W)),K(r,this.s,this.f)):n(r)},{deps:r,s:i,f:n})}))},B.HealthStatus=function(t,r,i){var n=function(t,r){return function(){for(var r={},n=0;nr?i.length-r:0,a[t]=i.splice(s,n-s+1).join()),this.gs.set("cp",a))}},B.Journey=function(t,r,i,n,s){this.threshold=s||400,this.browser=n,e.isString(r)||(r=""),this.cors=new B.AjaxTransport,this.url=e.config.analyticsUrl.replace(/^https?:/i,location.protocol),this.data={customerId:t,appId:r,userId:i||"0000-0000-0000-0000-0000",deviceProfile:{fs_timezone:(new Date).getTimezoneOffset(),fs_os:n.os.name,fs_osver:n.os.version,fs_browser:n.browser.name,fs_browserver:n.browser.version},events:[]}},B.Journey.prototype._send=function(){this._svT=null,this.data.events.length>0&&B.Healthy(this.browser,["events"],e.proxy(function(){this.cors.send({url:this.url,contentType:"application/json",data:this.data,method:"POST",success:e.proxy(function(){this.data.events=[]},this)})},this))},B.Journey.prototype.setKey=function(t,r){return!!e.isObject(r)&&(this.data[t]=r,this.data.events.length||this.addEventString("fs_setKey"),!0)},B.Journey.prototype.addEvent=function(t){var e=typeof t;switch(e){case"string":this.addEventString(t);break;case"object":this.addEventObj(t);break;default:console.error("ForeSee: event is not a valid type: ",e)}},B.Journey.prototype.addEventObj=function(t){if(t.timestamp||(t.timestamp=(new Date).toISOString()),!(t.name&&t.name.length>0&&V("properties",t)&&V("metrics",t)&&V("data",t)))return void console.error("ForeSee: Invalid Event. For proper usage, please refer to http://developer.foresee.com/docs-articles/foresee-hosted-code/calling-api-methods/event-logging/");t.properties||(t.properties={}),t.properties.fs_pageUrl||(t.properties.fs_pageUrl=[location.href]),this.data.events.push(t),G(this)},B.Journey.prototype.addEventString=function(t){this.data.events.push({name:t,timestamp:(new Date).toISOString(),properties:{fs_pageUrl:[location.href]}}),G(this)};var G=function(t,r){r?t._send(!0):t._svT||(t._svT=setTimeout(e.proxy(function(){t._send(!0)},t),t.threshold))},V=function(t,r){var i;switch(t){case"properties":if(r.properties)for(i in r.properties)if(!e.isArray(r.properties[i]))return console.error("ForeSee: Invalid properties"),!1;break;case"metrics":if(r.metrics)for(i in r.metrics)if(!B.isNumeric(r.metrics[i]))return console.error("ForeSee: Invalid metrics"),!1}return!0},q={has:function(){return"function"==typeof window.ga},uid:function(t){var r=e.nextTick;q.has()?ga(function(e){r(function(){if(e)t(e.get("clientId"));else try{t(ga.getAll()[0].get("clientId"))}catch(e){t()}})}):r(function(){t()})}};B.INT.GA=q;var X={_id:"",has:function(){try{return!!(window.s&&e.isFunction(s.c_r)&&s.c_r("s_vi").indexOf("[CE]")>-1)}catch(t){return!1}},uid:function(t){var r=e.nextTick;r(X.has()?function(){t(s.c_r("s_vi").split("|")[1].split("[")[0])}:function(){t()})},beacon:function(){function t(t,e){for(var r="",i=e.split("&"),n=0;n=0)){o=e;break}if(!o&&window.document.images)for(var f=0;f=0){o=e;break}r=o.substring(0,o.indexOf("?")),i=o.substring(o.indexOf("?")+1),n=t(a,i),window.s&&s.trackingServerSecure&&(r="https://"+s.trackingServerSecure+o.substring(o.indexOf("/b/ss/"),o.indexOf("?")),i=o.substring(o.indexOf("?")+1),n=t(a,i));var u=r+"?"+n;return u.length<3&&(u=null),u}};return B.INT.OM=X,B.imgInfo=function(t,r){var i=function(){};r=r||i;var n=new Image;n.onload=function(){r(n.width,n.height)},n.onerror=function(){},t.indexOf("//")>-1?n.src=t:n.src=e.makeURI("$"+t),n.width&&(n.onload=n.onerror=i,r(n.width,n.height))},B.getHashParm=function(t){var r=window.location.hash.toString();if(r&&r.length>0)for(var i=r.split("&"),n=0;n1)return decodeURIComponent(s[1]);break}}},B.compile=function(t){return new[].constructor.constructor("var v = ''; try { v = "+t+"} catch(err) {}return v;").call(window)},e.nextTick=function(t){setTimeout(t||function(){},0)},B.randomRange=function(t,e){return t+Math.random()*(e-t)},B.isNumeric=function(t){return!isNaN(parseFloat(t))&&isFinite(t)},B.products={},B.productArr=[],B.registerProduct=function(t,e){e=e||{},B.products[t]=e,B.productArr.push(t)},B.addClass=function(t,r){var i,n,s,a;for(e.isDefined(t.length)||(t=[t]),i=0,n=t.length;i-1},B.css=function(t,r,i){if(t){e.isDefined(t.length)||(t=[t]);for(var n=0;nparseInt(e.tabIndex)}),r=0;r=this.storageLimit&&(this.StorageFull.fire(this),!0)},B.DomStorage.prototype.dispose=function(t){this._data_obj[t]&&(delete this._data_obj[t],this.storageBytesObj=JSON.stringify(this._data_obj).length)},B.DomStorage.prototype.kill=function(){this.storageBytesObj=0,this.storageBytesBlob=0,this._data_obj={},this._data_blob="",this.isNewStorage=!0},B.DomStorage.prototype.get=function(t){return this._data_obj[t]},B.DomStorage.prototype.getBlob=function(){return this._data_blob},B.DomStorage.prototype.erase=function(t){delete this._data_obj[t],this.storageBytesObj=JSON.stringify(this._data_obj).length,this.isNewStorage=!1,this.testStorageLimit()},B.DomStorage.prototype.set=function(t,e){e&&(this._data_obj[t]=e,this.storageBytesObj=JSON.stringify(this._data_obj).length,this.isNewStorage=!1,this.testStorageLimit())},B.DomStorage.prototype.setBlob=function(t){this._data_blob=t,this.storageBytesBlob=this._data_blob.length,this.isNewStorage=!1,this.testStorageLimit()},B.DomStorage.prototype.isNew=function(){var t;return window.opener&&!this.get("isNew")&&(t=!0,this.set("isNew",t)),t||this.isNewStorage},B.DomStorage.initialize=function(t){t.apply(B.DomStorage)},B.DomStorage.isSupported=function(){return!!localStorage},B.DomStorage.prototype.sync=function(){var t;try{t=localStorage.getObject(this.guid+"_OBJ"),t&&t.length>0&&(this._data_obj=JSON.parse(t),this.storageBytesObj=t.length,this.isNewStorage=!1)}catch(t){}try{t=localStorage.getObject(this.guid+"_BLOB"),t&&t.length>0&&(this._data_blob=t,this.storageBytesBlob=t.length,this.isNewStorage=!1)}catch(t){}},B.DomStorage.prototype.commit=function(){try{localStorage.setItem(this.guid+"_OBJ",JSON.stringify(this._data_obj)),localStorage.setItem(this.guid+"_BLOB",this._data_blob)}catch(t){}},B}); \ No newline at end of file diff --git a/code/China _ Data_files/fs.utils.js.download b/code/China _ Data_files/fs.utils.js.download new file mode 100644 index 00000000..b9b71ac4 --- /dev/null +++ b/code/China _ Data_files/fs.utils.js.download @@ -0,0 +1,10 @@ +/*************************************** +* @preserve +* ForeSee Web SDK: Utils Library +* Built May 18, 17 12:15:47 +* Code version: 19.3.4 +* Template version: 19.3.4 +***************************************/ +_fsDefine(["require","fs"],function(t,e){function r(t,e){var r=(65535&t)+(65535&e);return(t>>16)+(e>>16)+(r>>16)<<16|65535&r}function i(t,e){return t<>>32-e}function n(t,e,n,s,a,o){return r(i(r(r(e,t),r(s,o)),a),n)}function a(t,e,r,i,s,a,o){return n(e&r|~e&i,t,e,s,a,o)}function o(t,e,r,i,s,a,o){return n(e&i|r&~i,t,e,s,a,o)}function h(t,e,r,i,s,a,o){return n(e^r^i,t,e,s,a,o)}function f(t,e,r,i,s,a,o){return n(r^(e|~i),t,e,s,a,o)}function u(t,e){t[e>>5]|=128<>>9<<4)]=e;var i,n,s,u,l,c=1732584193,p=-271733879,d=-1732584194,g=271733878;for(i=0;i>5]>>>e%32&255);return r}function p(t){var e,r=[];for(r[(t.length>>2)-1]=void 0,e=0;e>5]|=(255&t.charCodeAt(e/8))<16&&(n=u(n,8*t.length)),r=0;r<16;r+=1)s[r]=909522486^n[r],a[r]=1549556828^n[r];return i=u(s.concat(p(e)),512+8*e.length),c(u(a.concat(i),640))}function y(t){var e,r,i="0123456789abcdef",n="";for(r=0;r>>4&15)+i.charAt(15&e);return n}function w(t){return decodeURIComponent(e.enc(t))}function b(t){return d(w(t))}function m(t){return y(b(t))}function v(t,e){return g(w(t),w(e))}function x(t,e){return y(v(t,e))}var _="undefined"!=typeof Uint8Array,S=window,B={siteKey:"global"};if(e&&e.home&&(e.home.indexOf("production")>-1||e.home.indexOf("staging")>-1)){var k;k=e.home.indexOf("production")>-1?e.home.split("production")[0]:e.home.split("staging")[0],k.indexOf("//")>-1&&(k=k.split("//")[1]),k=k.replace(/\\/g,"/").split("/"),k.length>=3&&(k=e.toLowerCase(k[1])),k&&k.length>1&&(B.siteKey=k)}B.getSize=function(t){var e=0,r=0,i=t.document,n=i.documentElement;return"number"==typeof t.innerWidth?(e=t.innerWidth,r=t.innerHeight):n&&(n.clientWidth||n.clientHeight)?(e=n.clientWidth,r=n.clientHeight):i.body&&(i.body.clientWidth||i.body.clientHeight)&&(e=i.body.clientWidth,r=i.body.clientHeight),{w:e,h:r}},B.getScroll=function(t){var e=0,r=0,i=t.document,n=i.documentElement;return"number"==typeof t.pageYOffset?(r=t.pageYOffset,e=t.pageXOffset):i.body&&(i.body.scrollLeft||i.body.scrollTop)?(r=i.body.scrollTop,e=i.body.scrollLeft):n&&(n.scrollLeft||n.scrollTop)&&(r=n.scrollTop,e=n.scrollLeft),{x:e,y:r}},B.setScroll=function(t,e,r){t.scrollTo(e,r)},B.getScreenResolution=function(){var t=window.screen;return e.isDefined(t)&&e.isDefined(t.width)&&"number"==typeof t.width?{w:t.width,h:t.height}:{w:0,h:0}},B.getFrameWindow=function(t){var e;return t&&t.contentWindow?e=t.contentWindow:t&&t.contentDocument&&t.contentDocument.defaultView&&(e=t.contentDocument.defaultView),e&&e!=e.top?e:null},B.escapeRegExp=function(t){return(t||"").toString().replace(/([-.*+?^${}()|[\]\/\\])/g,"\\$1")},B.trim=function(t){return(t||"").toString().replace(/\s+/g," ").replace(/^\s+|\s+$/g,"")},B.stripHTML=function(t){return(t||"").replace(/(<([^>]+)>)/gi,"")},B.merge=function(){var t,r,i,n,s,a={},o=arguments;for(t=0,r=o.length;t-1){var r=t.split(":");e=r[0],t=r[1]}return T[e]||(T[e]={}),T[e][t]||(T[e][t]=[]),{ns:e,en:t}};B.Bind=function(t,r,i,n){if(t&&r){r=e.toLowerCase(r);var s=I(r);if(T[s.ns][s.en].push({elem:t,cb:i,ub:!!n}),r.indexOf("unload")>-1)return void R.push(i);"propertychange"!=s.en&&t.addEventListener?t.addEventListener(s.en,i,!n):t.attachEvent&&t.attachEvent("on"+s.en,i)}},B.BindOnce=function(t,e,r){if(t&&e){var i=I(e);if(t["_acsEvent"+i.en])return;t["_acsEvent"+i.en]=!0,B.Bind(t,e,r)}};var E=function(t,e,r,i){e&&(e.parentNode||e.window||9==e.nodeType)&&("propertychange"!=t&&e.removeEventListener?e.removeEventListener(t,r,!i):e.detachEvent&&e.detachEvent("on"+t,r))};B.Unbind=function(t,e,r,i){var n,s,a,o;if(e&&e.indexOf("unload")>-1){for(o=0;o=0;t--)try{R[t].call()}catch(t){}e.dispose(R),B.Unbind()}},document.addEventListener?(window.addEventListener("beforeunload",B.HandleUnload,!0),window.addEventListener("pagehide",B.HandleUnload,!0),document.addEventListener("unload",B.HandleUnload,!0)):document.attachEvent&&window.attachEvent("onunload",B.HandleUnload),B.FSEvent=function(){this.id="_"+Math.round(99999*Math.random()),this.subscriptions=[],this.didFire=!1},B.FSEvent.prototype.subscribe=function(t,e,r){return this.subscriptions.push({once:!!e,cb:t}),r&&this.didFire&&(this.prevArgs?this.fire.apply(this,this.prevArgs):this.fire()),{unsubscribe:function(t,e){return function(){t.unsubscribe(e)}}(this,t)}},B.FSEvent.prototype.unsubscribe=function(t){for(var e=0;e 1.0";return t.width=250,t.height=30,e.textBaseline="top",e.font="14px 'Arial'",e.textBaseline="alphabetic",e.fillStyle="#f60",e.fillRect(125,1,62,20),e.fillStyle="#069",e.fillText(r,2,15),e.fillStyle="rgba(102, 204, 0, 0.7)",e.fillText(r,4,17),t.toDataURL()}catch(t){return"nocanvas"}},B.Fingerprint=O;var L;B.Frame=function(t){this.frameId="_fsCtrlFr";var r=_fsNormalizeUrl("$fs.frame.html?d="+e.enc(document.domain)+"&_cv_="+e.enc(e.config.codeVer)+"&_vt_="+e.enc(e.tagVersion))+"&uid="+e.enc(t.fp||"");"false"!==e.hasSSL&&("//"==r.substr(0,2)?r="https:"+r:"http"!=r.substr(0,4)&&/^\//.test(r)&&(r="https://"+S.location.host+r)),this.isSSL=e.toLowerCase(r).indexOf("https")>-1,"localhost"===S.location.hostname?r=r.replace(/:8080/gi,":443"):this.isSSL&&(r=r.replace(/:[0-9]+/gi,"")),this.iframeSrc=r,L||(L=new B.FSEvent),this.ready=L,this.trackerReady=new B.FSEvent,this._ajaxCalls={},this._ensureFrame(),B.Bind(window,"message",e.proxy(function(t){this._onMessage(t)},this))},B.Frame.prototype._ensureFrame=function(){if(this._iframeElement=document.getElementById(this.frameId),!this._iframeElement){var t=document.createElement("iframe");t.src=this.iframeSrc,t.id=this.frameId,t.className="_FSFRAME_",t._csrf=!0,t.style.display="none",t.setAttribute("title","ForeSee Control Frame"),t.setAttribute("_fsrB","true"),t.setAttribute("aria-hidden","true"),document&&document.body&&document.body.appendChild(t),this._iframeElement=t,this.ready.didFire&&(this.ready=new B.FSEvent)}},B.Frame.prototype._postMessage=function(t,r){this._ensureFrame();var i=JSON.stringify({src:"fstop",method:t,params:r||{}}),n=e.proxy(function(){this._iframeElement.contentWindow.postMessage(i,"*")},this);this.ready.didFire?n():this.ready.subscribe(n)},B.Frame.prototype._onMessage=function(t){var e;if(t.data&&-1!=(t.data+"").indexOf("frame")){try{e=JSON.parse(t.data)}catch(t){return}if("fsframe"==e.src)switch(this.ready.didFire||this.ready.fire(),e.method){case"ajaxreturn":var r=e.params.params.ajaxid;this._ajaxCalls[r]&&this._ajaxCalls[r].cb&&(this._ajaxCalls[r].cb(!!e.params.success,e.params.res||""),delete this._ajaxCalls[r]);break;case"trackerready":this.trackerReady.didFire||this.trackerReady.fire();break;case"securityerror":this._3pDisabled=__3pDataDisabled=!0}}},B.Frame.prototype.ajax=function(t,e,r,i,n,s){var a="_"+Math.round(99999999*Math.random());return n=!!n,s=s||"application/x-www-form-urlencoded",this._ajaxCalls[a]={payload:{method:t,url:e,data:r,ajaxid:a,skipencode:n,contenttype:s},cb:i},this._postMessage("ajax",this._ajaxCalls[a].payload)},B.Frame.prototype.broadcast=function(t,e,r){return this._postMessage("broadcast",{key:t,value:e,x:r})};var D=function(t){this.browser=t,this.ready=new B.FSEvent,t.isIE&&t.browser.version<11&&"https:"!=location.protocol?(this.fstg=new B.Frame(t),e.nextTick(e.proxy(function(){this.fstg.ready.subscribe(e.proxy(function(){this.ready.fire()},this),!0,!0)},this))):(this.ajax=new B.AjaxTransport,e.nextTick(e.proxy(function(){this.ready.fire()},this)))};D.prototype.send=function(t){this.ready.subscribe(e.proxy(function(){if(this.ajax)this.ajax.send(t);else{var r=e.ext({method:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",success:function(){},failure:function(){}},t);this.fstg.ajax(r.method,r.url,r.data,function(t){return function(e,r){e?t.success(r):t.failure(r)}}(r),!e.isDefined(t.skipEncode)||!!t.skipEncode,r.contentType)}},this),!0,!0)},D.prototype.dispose=function(){this.ajax&&this.ajax.dispose()},B.CORS=D,B.INT={},B.AjaxTransport=function(t){var r={method:"POST",data:{},contentType:"application/x-www-form-urlencoded",success:function(){},failure:function(){}};this.options=e.ext(r,t)},B.AjaxTransport.prototype.send=function(t){var r=e.ext({},this.options,t||{});window.XDomainRequest&&-1==window.navigator.userAgent.indexOf("MSIE 10")?this._sendViaXDR(r):window.XMLHttpRequest&&this._sendViaXHR(r),r=null},B.AjaxTransport.prototype.dispose=function(){e.dispose(this.options)},B.AjaxTransport.isSupported=function(){return!0},B.AjaxTransport.initialize=function(t){t.call(B.AjaxTransport)},B.AjaxTransport.prototype._sendViaXHR=function(t){var r=new window.XMLHttpRequest,i=t.contentType?e.toLowerCase(t.contentType).indexOf("json")>-1?"application/json; charset=utf-8":t.contentType:"application/x-www-form-urlencoded",n=e.toLowerCase(i).indexOf("json")>-1,s=n?"GET"==t.method?e.enc(JSON.stringify(t.data)):JSON.stringify(t.data):e.isDefined(t.skipEncode)&&!0===t.skipEncode?t.data:e.toQueryString(t.data),a=t.url;t.failure=t.failure||function(){},"GET"==t.method&&s&&s.length>0&&(a.indexOf("?")>-1?a+="&":a+="?",a+=s);try{r.open(t.method,a,!0)}catch(t){return}r.setRequestHeader("Accept","*/*"),r.setRequestHeader("Content-Type",i),r.timeout=t.timeout||0,r.onreadystatechange=function(t,e){return function(){4==e.readyState&&200==e.status?t.success&&t.success.apply(t,[e.responseText]):4==e.readyState&&200!=e.status&&t.failure&&t.failure.apply(t,[e.responseText])}}(t,r),r.send(s)},B.AjaxTransport.prototype._sendViaXDR=function(t){var r=e.isDefined(t.skipEncode)&&!0===t.skipEncode&&"GET"!==t.method.toUpperCase()?t.data:e.toQueryString(t.data,null,!1),i=t.url;t.failure=t.failure||function(){},"GET"==t.method&&r&&r.length>0&&(r=r.replace("?",""),i.indexOf("?")>-1?i+="&":i+="?",i+=r);var n=new window.XDomainRequest;n.onerror=t.failure||function(){},n.ontimeout=t.failure||function(){},n.onprogress=function(){},n.onload=function(t,e){return function(){e.success(t.responseText),t=null,e=null}}(n,t),n.timeout=6e4;try{n.open(t.method,i)}catch(e){return void(t.failure&&t.failure(e))}e.nextTick(function(){r?(e.isString(r)||(r=JSON.stringify(r)),n.send(r)):n.send()})},B.testSameDomain=function(t,r){var i=document.createElement("a");i.href=location.href;var n=i.hostname,s=i.protocol;i.href=t;var a=i.hostname||n,o=0===i.protocol.indexOf("http")?i.protocol:s;i.href=r;var h=i.hostname||n,f=0===i.protocol.indexOf("http")?i.protocol:s;return e.toLowerCase(a)==e.toLowerCase(h)&&e.toLowerCase(o)==e.toLowerCase(f)},B.addParameterToURL=function(t,e){return t+=(t.split("?")[1]?"&":"?")+e},B.hash=function(t){var e=t.split("_");return 3*e[0]+1357+""+(9*e[1]+58)},B.hashCode=function(t){var e,r=0,i="";if(0===t.length)return r;for(e=0;e-1;var i,n,s;if(t=e.toLowerCase(t.replace(/^\s+|\s+$/g,"").replace(/[\*]{2,}/g,"*")),r=e.toLowerCase(r),"*"==t)return!0;for(n=[];t.indexOf("*")>-1;)t.indexOf("*")>0&&n.push(t.substr(0,t.indexOf("*"))),n.push("*"),t=t.substr(t.indexOf("*")+1);for(t.length>0&&n.push(t),i=0!==n.length,s=0;ss+1){if(s++,-1==r.indexOf(n[s])){i=!1;break}r=r.substr(r.indexOf(n[s])+n[s].length)}if(s==n.length-1&&"*"!==n[s]&&r!=n[s]&&r!=n[s]+"/"&&n[s]!=r+"/"&&r.length>0&&"/"!=r){i=!1;break}}else{if(r.substr(0,t.length)!=t&&r!=t+"/"&&t!=r+"/"){i=!1;break}if(r=r.substr(t.length),s==n.length-1&&r.length>0&&"/"!=r){i=!1;break}}return!!i},B.getRootDomain=function(t){t=e.toLowerCase(t||document.domain).replace("https://","").replace("http://","");for(var r,i=["/","?",":"],n=i.length,s=0;s-1&&(t=t.substr(0,r));if(t.indexOf("localhost")>-1||0===t.replace(/[0-9\.]/g,"").length)return t;var a=t.split("."),o=a.length;return o>2&&(function(t){return["com","co","org","gov","edu","net"].indexOf(t)>-1}(a[o-2])||function(t){return t.indexOf("qc.ca")>-1}(t))?a[o-3]+"."+a[o-2]+"."+a[o-1]:o>1?a[o-2]+"."+a[o-1]:t},B.FULL_DAY=864e5,B.now=function(){return+new Date},B.startTime=B.now(),B.storageTypes={CK:"COOKIE",MC:"MICROCOOKIE",CL:"COOKIELESS",DS:"DOMSTORAGE"},B.persistDataType={GENERAL:"GENERAL",TRACKER:"TRACKER"};var F=function(t,r){var i=B.storageTypes,n=this.pers=e.config.storage.toUpperCase(),s=new Date,a={path:"/",domain:B.getRootDomain(),secure:!1,encode:!0,expires:new Date(s.getFullYear()+2,s.getMonth(),s.getDate()).toGMTString()};e.ext(this,{_storageKey:"_4c_",isReady:!1,_healthyServices:["brain"],_lastMaint:B.now(),_lastSave:B.now(),_lastSync:B.now(),defaultExpire:7776e6,ready:new B.FSEvent,onCommit:new B.FSEvent,onSync:new B.FSEvent,maxExpire:-1,_data:{when:B.now(),keys:{}},_keyEvents:{},isStale:!1,_cThreshold:2e3,_updateTimeout:6e4,isSyncing:!1,_serverFails:0}),this.browser=t,t.ready.subscribe(e.proxy(function(){t.supportsLocalStorage||n!=i.DS?t.isMobile&&n==i.CL&&(n=i.MC):n=i.CK,n==i.CK?(this.ckie=new B.Cookie(a),this.fr=new B.Frame(t)):n==i.MC?(this.ckie=new B.Cookie(a),this.uid=r||this.ckie.get(this._storageKey+"mc_"),this.uid&&(this.uid.length>64||this.uid.indexOf("{")>-1)&&(this.uid=B.generateGUID(),this.ckie.set(this._storageKey+"mc_",this.uid)),this.uid||(this.uid=B.generateGUID(),this.ckie.set(this._storageKey+"mc_",this.uid)),this.cors=new B.CORS(t)):n==i.CL?(this.uid=r||t.fp,this.cors=new B.CORS(t)):n==i.DS&&(this._cThreshold=500,this._updateTimeout=1e4),this._sync(e.proxy(function(){this.get("rid")||(this.uid=this.uid||B.generateGUID(),this.set("rid",this.uid)),this.uid=this.get("rid"),this.setUpdateInterval(this._updateTimeout),this.pers!=B.storageTypes.CK&&this.pers!=B.storageTypes.DS||this._maint(!0),this.fr?this.fr.ready.subscribe(e.proxy(function(){this.ready.fire(this)},this),!0,!0):this.ready.fire(this)},this))},this),!0,!0),B.Bind(window,"unload",e.proxy(function(){this.save(!0)},this))};F.prototype.upgradeOldStorage=function(r){for(var i=this.ckie,n=["fsr.r","fsr.s","_fsspl_","fsr.t","acs.t"],s=!1,a=0;at&&this._sync()},this),Math.min(t/2,5e3))},F.prototype._sync=function(t){if(!this.isSyncing){this.isSyncing=!0,t=t||function(){};var r,i;if(this.pers==B.storageTypes.CK){if(r=this.ckie.get(this._storageKey))return r=z.decompress(r),this._lastSync=B.now(),i=JSON.parse(r),this._fireChangeEvents(i.keys),i.keys=i.keys||{},this._data=i,this.onSync.fire(this),this.isSyncing=!1,void e.nextTick(t);this.isSyncing=!1,e.nextTick(t)}else if(this.pers==B.storageTypes.DS){if(r=localStorage.getItem(this._storageKey)){if(r=z.decompress(r),this._lastSync=B.now(),i=JSON.parse(r),i.keys=i.keys||{},this._fireChangeEvents(i.keys),this._data=i,e.nextTick(e.proxy(function(){this.onSync.fire(this)},this)),B.now()-this._data.when<3e5)return this.isSyncing=!1,void e.nextTick(t);this._lastSync=B.now(),this._data={when:B.now(),keys:{}}}this.isSyncing=!1,e.nextTick(t)}else{if(this._serverFails>5)return;B.Healthy(this.browser,this._healthyServices,e.proxy(function(){this.cors.send({method:"GET",url:e.config.brainUrl+"/state/"+B.siteKey+"/"+this.uid,success:e.proxy(function(r){this._lastSync=B.now();var i=JSON.parse(r);this._fireChangeEvents(i.keys),this._data=i,this.isSyncing=!1,e.nextTick(e.proxy(function(){this.onSync.fire(this)},this)),t()},this),failure:function(){this._lastSync=B.now(),this.isSyncing=!1,this._serverFails++}})},this))}}},F.prototype._fireChangeEvents=function(t){var r=this;for(var i in t)(!this._data.keys[i]||this._data.keys[i].t5)return;B.Healthy(this.browser,this._healthyServices,e.proxy(function(){this.cors.send({method:"POST",url:e.config.brainUrl+"/state/"+B.siteKey+"/"+this.uid,data:this._data,contentType:"application/json",success:e.proxy(function(t){this._lastSync=B.now(),this._data=JSON.parse(t),this.onCommit.fire(this._data)},this),failure:e.proxy(function(){this._serverFails++},this)})},this))}this.isStale=!1},F.prototype._maint=function(t){var e,r=B.now(),i=this._data.keys,n=!1;if(r-this._lastMaint>5e3||t){for(var s in i)e=i[s],r>e.x&&(delete i[s],n=!0);this._lastMaint=r}!n||this.pers!=B.storageTypes.CK&&this.pers!=B.storageTypes.DS||this._commit()},F.prototype.set=function(t,r,i,n,s,a){this._data.keys||(this._data.keys={});var o=this._data.keys[t],h=B.now(),f=null;if(s||(s=B.persistDataType.GENERAL),i)if("number"==typeof i)f=i,this.maxExpire>0&&this.maxExpire0)){var u=i-h;u>this.maxExpire&&(f=i=this.maxExpire,i=h+i)}if(this.pers!=B.storageTypes.CK&&this.pers!=B.storageTypes.DS||s!=B.persistDataType.TRACKER){if(o){var l={};l[t]={v:r,x:i||o.x,t:h},this._fireChangeEvents(l),o.v=r,o.x=i||o.x,f&&(o.ttl=f),o.t=h}else{var c={};c[t]={v:r,x:i||this.defaultExpire+h,t:h},f&&(c[t].ttl=f),this._fireChangeEvents(c),this._data.keys[t]=c[t]}this.isStale=!0,a&&this.onCommit.subscribe(a,!0,!1),this._maint(),this.save(!!n)}else this.fr&&this.fr.trackerReady.subscribe(e.proxy(function(){this.fr.broadcast(t,r,i)},this),!0,!0)},F.prototype.get=function(t){if(e.isArray(t)){for(var r={},i=0;it||e.ttl>t)&&(e.ttl=t,e.x&&(e.x-=s-t))}this.save(!0)},F.prototype.getMaxKeyExpiration=function(){var t=B.now(),e=this._data.keys,r=0;for(var i in e)r=Math.max(r,e[i].x-t);return r};var N;B.getGlobalStore=function(t,e){return N||(N=new F(t,e)),N};var U=function(t,e){this.loadSuccess=new B.FSEvent,this.loadFailure=new B.FSEvent,this.st=document.createElement("script"),this.st.type="text/javascript",this.st.src=t,e&&(this.st.id=e),this.br=new B.Browser,void 0!==this.st.addEventListener?this._loadOnOthers():void 0!==this.st.attachEvent&&this._loadOnIE()};if(U.prototype._loadOnIE=function(){var t=this,e=this.st;e.onreadystatechange=function(){3==e.readyState&&(e.onreadystatechange=function(){t.loadSuccess.fire(e.src),t.loadFailure=null},t.loadFailure&&t.loadFailure.fire(e.src))},document.body.appendChild(e)},U.prototype._loadOnOthers=function(){this.st.addEventListener("load",e.proxy(function(){this.loadSuccess.fire(this.st.src)},this),!1),this.st.addEventListener("error",e.proxy(function(){this.loadFailure.fire(this.st.src)},this),!1),document.body.appendChild(this.st)},!window.btoa){var M="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",j=new Array(-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,-1,-1,-1,-1,-1);window.btoa=function(t){var e,r,i,n,s,a;for(i=t.length,r=0,e="";i>r;){if(n=255&t.charCodeAt(r++),r==i){e+=M.charAt(n>>2),e+=M.charAt((3&n)<<4),e+="==";break}if(s=t.charCodeAt(r++),r==i){e+=M.charAt(n>>2),e+=M.charAt((3&n)<<4|(240&s)>>4),e+=M.charAt((15&s)<<2),e+="=";break}a=t.charCodeAt(r++),e+=M.charAt(n>>2),e+=M.charAt((3&n)<<4|(240&s)>>4),e+=M.charAt((15&s)<<2|(192&a)>>6),e+=M.charAt(63&a)}return e},window.atob=function(t){var e,r,i,n,s,a,o;for(a=t.length,s=0,o="";a>s;){do{e=j[255&t.charCodeAt(s++)]}while(a>s&&-1==e);if(-1==e)break;do{r=j[255&t.charCodeAt(s++)]}while(a>s&&-1==r);if(-1==r)break;o+=String.fromCharCode(e<<2|(48&r)>>4);do{if(61==(i=255&t.charCodeAt(s++)))return o;i=j[i]}while(a>s&&-1==i);if(-1==i)break;o+=String.fromCharCode((15&r)<<4|(60&i)>>2);do{if(61==(n=255&t.charCodeAt(s++)))return o;n=j[n]}while(a>s&&-1==n);if(-1==n)break;o+=String.fromCharCode((3&i)<<6|n)}return o}}B.b64EncodeUnicode=function(t){return btoa(e.enc(t).replace(/%([0-9A-F]{2})/g,function(t,e){return String.fromCharCode("0x"+e)}))},B.b64DecodeUnicode=function(t){return decodeURIComponent(Array.prototype.map.call(atob(t).split(""),function(t){return"%"+("00"+t.charCodeAt(0).toString(16)).slice(-2)}).join(""))};var P={Util:{stringToByteArray:function(t){var e,r,i=t.split("");for(e=0,r=i.length;e>>0;return i}}};P.CompressionMethod={DEFLATE:8,RESERVED:15},P.BitStream=function(t,e){if(this.index="number"==typeof e?e:0,this.bitindex=0,this.buffer=t instanceof(_?Uint8Array:Array)?t:new(_?Uint8Array:Array)(P.BitStream.DefaultBlockSize),2*this.buffer.length<=this.index)throw new Error("invalid index");this.buffer.length<=this.index&&this.expandBuffer()},P.BitStream.DefaultBlockSize=32768,P.BitStream.prototype.expandBuffer=function(){var t,e=this.buffer,r=e.length,i=new(_?Uint8Array:Array)(r<<1);if(_)i.set(e);else for(t=0;t1&&(t=e>8?function(t){return P.BitStream.ReverseTable[255&t]<<24|P.BitStream.ReverseTable[t>>>8&255]<<16|P.BitStream.ReverseTable[t>>>16&255]<<8|P.BitStream.ReverseTable[t>>>24&255]}(t)>>32-e:P.BitStream.ReverseTable[t]>>8-e),e+a<8)o=o<>e-i-1&1,8==++a&&(a=0,n[s++]=P.BitStream.ReverseTable[o],o=0,s===n.length&&(n=this.expandBuffer()));n[s]=o,this.buffer=n,this.bitindex=a,this.index=s},P.BitStream.prototype.finish=function(){var t,e=this.buffer,r=this.index;return this.bitindex>0&&(e[r]<<=8-this.bitindex,e[r]=P.BitStream.ReverseTable[e[r]],r++),_?t=e.subarray(0,r):(e.length=r,t=e),t},P.BitStream.ReverseTable=function(t){return t}(function(){var t,e=new(_?Uint8Array:Array)(256);for(t=0;t<256;++t)e[t]=function(t){var e=t,r=7;for(t>>>=1;t;t>>>=1)e<<=1,e|=1&t,--r;return(e<>>0}(t);return e}()),P.Huffman={},P.Huffman.buildHuffmanTable=function(t){var e,r,i,n,s,a,o,h,f,u,l,c=t.length,p=0,d=Number.POSITIVE_INFINITY;for(h=0,f=c;hp&&(p=t[h]),t[h]>=1;for(l=i<<16|h,u=a;u0&&(i=this.getParent(r),s[r]>s[i]);)n=s[r],s[r]=s[i],s[i]=n,n=s[r+1],s[r+1]=s[i+1],s[i+1]=n,r=i;return this.length},P.Heap.prototype.pop=function(){var t,e,r,i,n,s=this.buffer;for(e=s[0],t=s[1],this.length-=2,s[0]=s[this.length],s[1]=s[this.length+1],n=0;;){if((i=this.getChild(n))>=this.length)break;if(i+2s[i]&&(i+=2),!(s[i]>s[n]))break;r=s[n],s[n]=s[i],s[i]=r,r=s[n+1],s[n+1]=s[i+1],s[i+1]=r,n=i}return{index:t,value:e,length:this.length}},P.RawDeflate=function(t,e){this.compressionType=P.RawDeflate.CompressionType.DYNAMIC,this.lazy=0,this.freqsLitLen,this.freqsDist,this.input=_&&t instanceof Array?new Uint8Array(t):t,this.output,this.op=0,e&&(e.lazy&&(this.lazy=e.lazy),"number"==typeof e.compressionType&&(this.compressionType=e.compressionType), +e.outputBuffer&&(this.output=_&&e.outputBuffer instanceof Array?new Uint8Array(e.outputBuffer):e.outputBuffer),"number"==typeof e.outputIndex&&(this.op=e.outputIndex)),this.output||(this.output=new(_?Uint8Array:Array)(32768))},P.RawDeflate.CompressionType={NONE:0,FIXED:1,DYNAMIC:2,RESERVED:3},P.RawDeflate.Lz77MinLength=3,P.RawDeflate.Lz77MaxLength=258,P.RawDeflate.WindowSize=32768,P.RawDeflate.MaxCodeLength=16,P.RawDeflate.HUFMAX=286,P.RawDeflate.FixedHuffmanTable=function(){var t,e=[];for(t=0;t<288;t++)switch(!0){case t<=143:e.push([t+48,8]);break;case t<=255:e.push([t-144+400,9]);break;case t<=279:e.push([t-256+0,7]);break;case t<=287:e.push([t-280+192,8]);break;default:throw"invalid literal: "+t}return e}(),P.RawDeflate.prototype.compress=function(){var t,e,r,i=this.input;switch(this.compressionType){case P.RawDeflate.CompressionType.NONE:for(e=0,r=i.length;e>>8&255,h[f++]=255&s,h[f++]=s>>>8&255,_)h.set(t,f),f+=t.length,h=h.subarray(0,f);else{for(a=0,o=t.length;a257&&0===h[s-1];s--);for(a=30;a>1&&0===u[a-1];a--);for(c=this.getTreeSymbols_(s,h,a,u),p=this.getLengths_(c.freqs,7),w=0;w<19;w++)x[w]=p[v[w]];for(o=19;o>4&&0===x[o-1];o--);for(d=this.getCodesFromLengths_(p),m.writeBits(s-257,5,!0),m.writeBits(a-1,5,!0),m.writeBits(o-4,4,!0),w=0;w=16){switch(w++,g){case 16:y=2;break;case 17:y=3;break;case 18:y=7;break;default:throw"invalid code: "+g}m.writeBits(c.codes[w],y,!0)}return this.dynamicHuffman(n,[f,h],[l,u],m),m.finish()},P.RawDeflate.prototype.dynamicHuffman=function(t,e,r,i){var n,s,a,o,h,f,u,l;for(h=e[0],f=e[1],u=r[0],l=r[1],n=0,s=t.length;n256)i.writeBits(t[++n],t[++n],!0),o=t[++n],i.writeBits(u[o],l[o],!0),i.writeBits(t[++n],t[++n],!0);else if(256===a)break;return i},P.RawDeflate.prototype.fixedHuffman=function(t,e){var r,i,n;for(r=0,i=t.length;r256)e.writeBits(t[++r],t[++r],!0),e.writeBits(t[++r],5),e.writeBits(t[++r],t[++r],!0);else if(256===n)break;return e},P.RawDeflate.Lz77Match=function(t,e){this.length=t,this.backwardDistance=e},P.RawDeflate.Lz77Match.LengthCodeTable=function(t){return _?new Uint32Array(t):t}(function(){var t,e,r=[];for(t=3;t<=258;t++)e=function(t){switch(!0){case 3===t:return[257,t-3,0];case 4===t:return[258,t-4,0];case 5===t:return[259,t-5,0];case 6===t:return[260,t-6,0];case 7===t:return[261,t-7,0];case 8===t:return[262,t-8,0];case 9===t:return[263,t-9,0];case 10===t:return[264,t-10,0];case t<=12:return[265,t-11,1];case t<=14:return[266,t-13,1];case t<=16:return[267,t-15,1];case t<=18:return[268,t-17,1];case t<=22:return[269,t-19,2];case t<=26:return[270,t-23,2];case t<=30:return[271,t-27,2];case t<=34:return[272,t-31,2];case t<=42:return[273,t-35,3];case t<=50:return[274,t-43,3];case t<=58:return[275,t-51,3];case t<=66:return[276,t-59,3];case t<=82:return[277,t-67,4];case t<=98:return[278,t-83,4];case t<=114:return[279,t-99,4];case t<=130:return[280,t-115,4];case t<=162:return[281,t-131,5];case t<=194:return[282,t-163,5];case t<=226:return[283,t-195,5];case t<=257:return[284,t-227,5];case 258===t:return[285,t-258,0];default:throw"invalid length: "+t}}(t),r[t]=e[2]<<24|e[1]<<16|e[0];return r}()),P.RawDeflate.Lz77Match.prototype.getDistanceCode_=function(t){var e;switch(!0){case 1===t:e=[0,t-1,0];break;case 2===t:e=[1,t-2,0];break;case 3===t:e=[2,t-3,0];break;case 4===t:e=[3,t-4,0];break;case t<=6:e=[4,t-5,1];break;case t<=8:e=[5,t-7,1];break;case t<=12:e=[6,t-9,2];break;case t<=16:e=[7,t-13,2];break;case t<=24:e=[8,t-17,3];break;case t<=32:e=[9,t-25,3];break;case t<=48:e=[10,t-33,4];break;case t<=64:e=[11,t-49,4];break;case t<=96:e=[12,t-65,5];break;case t<=128:e=[13,t-97,5];break;case t<=192:e=[14,t-129,6];break;case t<=256:e=[15,t-193,6];break;case t<=384:e=[16,t-257,7];break;case t<=512:e=[17,t-385,7];break;case t<=768:e=[18,t-513,8];break;case t<=1024:e=[19,t-769,8];break;case t<=1536:e=[20,t-1025,9];break;case t<=2048:e=[21,t-1537,9];break;case t<=3072:e=[22,t-2049,10];break;case t<=4096:e=[23,t-3073,10];break;case t<=6144:e=[24,t-4097,11];break;case t<=8192:e=[25,t-6145,11];break;case t<=12288:e=[26,t-8193,12];break;case t<=16384:e=[27,t-12289,12];break;case t<=24576:e=[28,t-16385,13];break;case t<=32768:e=[29,t-24577,13];break;default:throw"invalid distance"}return e},P.RawDeflate.Lz77Match.prototype.toLz77Array=function(){var t,e=this.length,r=this.backwardDistance,i=[],n=0;return t=P.RawDeflate.Lz77Match.LengthCodeTable[e],i[n++]=65535&t,i[n++]=t>>16&255,i[n++]=t>>24,t=this.getDistanceCode_(r),i[n++]=t[0],i[n++]=t[1],i[n++]=t[2],i},P.RawDeflate.prototype.lz77=function(t){function e(t,e){var r,i,n=t.toLz77Array();for(r=0,i=n.length;r0)o.push(r);else{for(;o.length>0&&r-o[0]>c;)o.shift();if(r+P.RawDeflate.Lz77MinLength>=i){for(f&&e(f,-1),n=0,s=i-r;n0?(h=this.searchLongestMatch_(t,r,o),f?f.lengthP.RawDeflate.Lz77MinLength){for(o=f;o>P.RawDeflate.Lz77MinLength;o--)if(t[i+o-1]!==t[e+o-1])continue t;s=f}for(;sf&&(n=i,f=s),s===P.RawDeflate.Lz77MaxLength)break}return new P.RawDeflate.Lz77Match(f,e-n)},P.RawDeflate.prototype.getTreeSymbols_=function(t,e,r,i){var n,s,a,o,h,f,u=new(_?Uint32Array:Array)(t+r),l=new(_?Uint32Array:Array)(316),c=new(_?Uint8Array:Array)(19);for(s=0,n=0;n0;)l[h++]=0,c[0]++;else for(;a>0;)f=a<138?a:138,f>a-3&&f0;)l[h++]=u[n],c[u[n]]++;else for(;a>0;)f=a<6?a:6,f>a-3&&f0&&h.push(s,t[s]);if(r=new Array(h.length/2),i=new(_?Uint32Array:Array)(h.length/2),1===r.length)return f[h.pop().index]=1,f;for(s=0,a=h.length/2;s2*f[s-1]+u[s]&&(f[s]=2*f[s-1]+u[s]),c[s]=new Array(f[s]),p[s]=new Array(f[s]);for(n=0;n=0;--s){for(n=0,o=0,h=d[s+1],a=0;at[n]?(c[s][a]=o,p[s][a]=e,h+=2):(c[s][a]=t[n],p[s][a]=n,++n);d[s]=0,1===u[s]&&i(s)}return l},P.RawDeflate.prototype.getCodesFromLengths_=function(t){var e,r,i,n,s=new(_?Uint16Array:Array)(t.length),a=[],o=[],h=0;for(e=0,r=t.length;e>>=1;return s};var H=P.Huffman.buildHuffmanTable;P.RawInflate=function(t,e){switch(this.buffer,this.blocks=[],this.bufferSize=ZLIB_RAW_INFLATE_BUFFER_SIZE,this.totalpos=0,this.ip=0,this.bitsbuf=0,this.bitsbuflen=0,this.input=_?new Uint8Array(t):t,this.output,this.op,this.bfinal=!1,this.bufferType=P.RawInflate.BufferType.ADAPTIVE,this.resize=!1,this.prev,!e&&(e={})||(e.index&&(this.ip=e.index),e.bufferSize&&(this.bufferSize=e.bufferSize),e.bufferType&&(this.bufferType=e.bufferType),e.resize&&(this.resize=e.resize)),this.bufferType){case P.RawInflate.BufferType.BLOCK:this.op=P.RawInflate.MaxBackwardLength,this.output=new(_?Uint8Array:Array)(P.RawInflate.MaxBackwardLength+this.bufferSize+P.RawInflate.MaxCopyLength);break;case P.RawInflate.BufferType.ADAPTIVE:this.op=0,this.output=new(_?Uint8Array:Array)(this.bufferSize),this.expandBuffer=this.expandBufferAdaptive,this.concatBuffer=this.concatBufferDynamic,this.decodeHuffman=this.decodeHuffmanAdaptive;break;default:throw new Error("invalid inflate mode")}},P.RawInflate.BufferType={BLOCK:0,ADAPTIVE:1},P.RawInflate.prototype.decompress=function(){for(;!this.bfinal;)this.parseBlock();return this.concatBuffer()},P.RawInflate.MaxBackwardLength=32768,P.RawInflate.MaxCopyLength=258,P.RawInflate.Order=function(t){return _?new Uint16Array(t):t}([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),P.RawInflate.LengthCodeTable=function(t){return _?new Uint16Array(t):t}([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,258,258]),P.RawInflate.LengthExtraTable=function(t){return _?new Uint8Array(t):t}([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0]),P.RawInflate.DistCodeTable=function(t){return _?new Uint16Array(t):t}([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577]),P.RawInflate.DistExtraTable=function(t){return _?new Uint8Array(t):t}([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),P.RawInflate.FixedLiteralLengthTable=function(t){return t}(function(){var t,e,r=new(_?Uint8Array:Array)(288);for(t=0,e=r.length;t>>=1){case 0:this.parseUncompressedBlock();break;case 1:this.parseFixedHuffmanBlock();break;case 2:this.parseDynamicHuffmanBlock();break;default:throw new Error("unknown BTYPE: "+t)}},P.RawInflate.prototype.readBits=function(t){for(var e,r=this.bitsbuf,i=this.bitsbuflen,n=this.input,s=this.ip,a=n.length;i=a)throw new Error("input buffer is broken");r|=n[s++]<>>=t,i-=t,this.bitsbuf=r,this.bitsbuflen=i,this.ip=s,e},P.RawInflate.prototype.readCodeByTable=function(t){for(var e,r,i=this.bitsbuf,n=this.bitsbuflen,s=this.input,a=this.ip,o=s.length,h=t[0],f=t[1];n=o);)i|=s[a++]<>>16,this.bitsbuf=i>>r,this.bitsbuflen=n-r,this.ip=a,65535&e},P.RawInflate.prototype.parseUncompressedBlock=function(){var t,e,r,i=this.input,n=this.ip,s=this.output,a=this.op,o=i.length,h=s.length;if(this.bitsbuf=0,this.bitsbuflen=0,n+1>=o)throw new Error("invalid uncompressed block header: LEN");if(t=i[n++]|i[n++]<<8,n+1>=o)throw new Error("invalid uncompressed block header: NLEN");if(e=i[n++]|i[n++]<<8,t===~e)throw new Error("invalid uncompressed block header: length verify");if(n+t>i.length)throw new Error("input buffer is broken");switch(this.bufferType){case P.RawInflate.BufferType.BLOCK:for(;a+t>s.length;){if(r=h-a,t-=r,_)s.set(i.subarray(n,n+r),a),a+=r,n+=r;else for(;r--;)s[a++]=i[n++];this.op=a,s=this.expandBuffer(),a=this.op}break;case P.RawInflate.BufferType.ADAPTIVE:for(;a+t>s.length;)s=this.expandBuffer({fixRatio:2});break;default:throw new Error("invalid inflate mode")}if(_)s.set(i.subarray(n,n+t),a),a+=t,n+=t;else for(;t--;)s[a++]=i[n++];this.ip=n,this.op=a,this.output=s},P.RawInflate.prototype.parseFixedHuffmanBlock=function(){this.decodeHuffman(P.RawInflate.FixedLiteralLengthTable,P.RawInflate.FixedDistanceTable)},P.RawInflate.prototype.parseDynamicHuffmanBlock=function(){function t(t,e,r){var i,n,s,a=this.prev;for(s=0;s=h&&(this.op=i,r=this.expandBuffer(),i=this.op),r[i++]=n;else for(s=n-257,o=P.RawInflate.LengthCodeTable[s],P.RawInflate.LengthExtraTable[s]>0&&(o+=this.readBits(P.RawInflate.LengthExtraTable[s])),n=this.readCodeByTable(e),a=P.RawInflate.DistCodeTable[n],P.RawInflate.DistExtraTable[n]>0&&(a+=this.readBits(P.RawInflate.DistExtraTable[n])),i>=h&&(this.op=i,r=this.expandBuffer(),i=this.op);o--;)r[i]=r[i++-a];for(;this.bitsbuflen>=8;)this.bitsbuflen-=8,this.ip--;this.op=i},P.RawInflate.prototype.decodeHuffmanAdaptive=function(t,e){var r=this.output,i=this.op;this.currentLitlenTable=t;for(var n,s,a,o,h=r.length;256!==(n=this.readCodeByTable(t));)if(n<256)i>=h&&(r=this.expandBuffer(),h=r.length),r[i++]=n;else for(s=n-257,o=P.RawInflate.LengthCodeTable[s],P.RawInflate.LengthExtraTable[s]>0&&(o+=this.readBits(P.RawInflate.LengthExtraTable[s])),n=this.readCodeByTable(e),a=P.RawInflate.DistCodeTable[n],P.RawInflate.DistExtraTable[n]>0&&(a+=this.readBits(P.RawInflate.DistExtraTable[n])),i+o>h&&(r=this.expandBuffer(),h=r.length);o--;)r[i]=r[i++-a];for(;this.bitsbuflen>=8;)this.bitsbuflen-=8,this.ip--;this.op=i},P.RawInflate.prototype.expandBuffer=function(t){var e,r,i=new(_?Uint8Array:Array)(this.op-P.RawInflate.MaxBackwardLength),n=this.op-P.RawInflate.MaxBackwardLength,s=this.output;if(_)i.set(s.subarray(P.RawInflate.MaxBackwardLength,i.length));else for(e=0,r=i.length;ee&&(this.output.length=e),t=this.output),this.buffer=t,this.buffer},P.RawInflate=function(t,e){switch(this.buffer,this.blocks=[],this.bufferSize=32768,this.totalpos=0,this.ip=0,this.bitsbuf=0,this.bitsbuflen=0,this.input=_?new Uint8Array(t):t,this.output,this.op,this.bfinal=!1,this.bufferType=P.RawInflate.BufferType.ADAPTIVE,this.resize=!1,this.prev,!e&&(e={})||(e.index&&(this.ip=e.index),e.bufferSize&&(this.bufferSize=e.bufferSize),e.bufferType&&(this.bufferType=e.bufferType),e.resize&&(this.resize=e.resize)),this.bufferType){case P.RawInflate.BufferType.BLOCK:this.op=P.RawInflate.MaxBackwardLength,this.output=new(_?Uint8Array:Array)(P.RawInflate.MaxBackwardLength+this.bufferSize+P.RawInflate.MaxCopyLength);break;case P.RawInflate.BufferType.ADAPTIVE:this.op=0,this.output=new(_?Uint8Array:Array)(this.bufferSize),this.expandBuffer=this.expandBufferAdaptive,this.concatBuffer=this.concatBufferDynamic,this.decodeHuffman=this.decodeHuffmanAdaptive}},P.RawInflate.BufferType={BLOCK:0,ADAPTIVE:1},P.RawInflate.prototype.decompress=function(){for(;!this.bfinal;)this.parseBlock();return this.concatBuffer()},P.RawInflate.MaxBackwardLength=32768,P.RawInflate.MaxCopyLength=258,P.RawInflate.Order=function(t){return _?new Uint16Array(t):t}([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),P.RawInflate.LengthCodeTable=function(t){return _?new Uint16Array(t):t}([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,258,258]),P.RawInflate.LengthExtraTable=function(t){return _?new Uint8Array(t):t}([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0]),P.RawInflate.DistCodeTable=function(t){return _?new Uint16Array(t):t}([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577]),P.RawInflate.DistExtraTable=function(t){return _?new Uint8Array(t):t}([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),P.RawInflate.FixedLiteralLengthTable=function(t){return t}(function(){var t,e,r=new(_?Uint8Array:Array)(288);for(t=0,e=r.length;t>>=1){case 0:this.parseUncompressedBlock();break;case 1:this.parseFixedHuffmanBlock();break;case 2:this.parseDynamicHuffmanBlock();break;default:throw new Error("unknown BTYPE: "+t)}},P.RawInflate.prototype.readBits=function(t){for(var e,r=this.bitsbuf,i=this.bitsbuflen,n=this.input,s=this.ip,a=n.length;i=a)throw new Error("input buffer is broken");r|=n[s++]<>>=t,i-=t,this.bitsbuf=r,this.bitsbuflen=i,this.ip=s,e},P.RawInflate.prototype.readCodeByTable=function(t){for(var e,r,i=this.bitsbuf,n=this.bitsbuflen,s=this.input,a=this.ip,o=s.length,h=t[0],f=t[1];n=o);)i|=s[a++]<>>16,this.bitsbuf=i>>r,this.bitsbuflen=n-r,this.ip=a,65535&e},P.RawInflate.prototype.parseUncompressedBlock=function(){var t,e,r,i=this.input,n=this.ip,s=this.output,a=this.op,o=i.length,h=s.length;if(this.bitsbuf=0,this.bitsbuflen=0,n+1>=o)throw new Error("invalid uncompressed block header: LEN");if(t=i[n++]|i[n++]<<8,n+1>=o)throw new Error("invalid uncompressed block header: NLEN");if(e=i[n++]|i[n++]<<8,t===~e)throw new Error("invalid uncompressed block header: length verify");if(n+t>i.length)throw new Error("input buffer is broken");switch(this.bufferType){case P.RawInflate.BufferType.BLOCK:for(;a+t>s.length;){if(r=h-a,t-=r,_)s.set(i.subarray(n,n+r),a),a+=r,n+=r;else for(;r--;)s[a++]=i[n++];this.op=a,s=this.expandBuffer(),a=this.op}break;case P.RawInflate.BufferType.ADAPTIVE:for(;a+t>s.length;)s=this.expandBuffer({fixRatio:2});break;default:throw new Error("invalid inflate mode")}if(_)s.set(i.subarray(n,n+t),a),a+=t,n+=t;else for(;t--;)s[a++]=i[n++];this.ip=n,this.op=a,this.output=s},P.RawInflate.prototype.parseFixedHuffmanBlock=function(){this.decodeHuffman(P.RawInflate.FixedLiteralLengthTable,P.RawInflate.FixedDistanceTable)},P.RawInflate.prototype.parseDynamicHuffmanBlock=function(){function t(t,e,r){var i,n,s,a=this.prev;for(s=0;s=h&&(this.op=i,r=this.expandBuffer(),i=this.op),r[i++]=n;else for(s=n-257,o=P.RawInflate.LengthCodeTable[s],P.RawInflate.LengthExtraTable[s]>0&&(o+=this.readBits(P.RawInflate.LengthExtraTable[s])),n=this.readCodeByTable(e),a=P.RawInflate.DistCodeTable[n],P.RawInflate.DistExtraTable[n]>0&&(a+=this.readBits(P.RawInflate.DistExtraTable[n])),i>=h&&(this.op=i,r=this.expandBuffer(),i=this.op);o--;)r[i]=r[i++-a];for(;this.bitsbuflen>=8;)this.bitsbuflen-=8,this.ip--;this.op=i},P.RawInflate.prototype.decodeHuffmanAdaptive=function(t,e){var r=this.output,i=this.op;this.currentLitlenTable=t;for(var n,s,a,o,h=r.length;256!==(n=this.readCodeByTable(t));)if(n<256)i>=h&&(r=this.expandBuffer(),h=r.length),r[i++]=n;else for(s=n-257,o=P.RawInflate.LengthCodeTable[s],P.RawInflate.LengthExtraTable[s]>0&&(o+=this.readBits(P.RawInflate.LengthExtraTable[s])),n=this.readCodeByTable(e),a=P.RawInflate.DistCodeTable[n],P.RawInflate.DistExtraTable[n]>0&&(a+=this.readBits(P.RawInflate.DistExtraTable[n])),i+o>h&&(r=this.expandBuffer(),h=r.length);o--;)r[i]=r[i++-a];for(;this.bitsbuflen>=8;)this.bitsbuflen-=8,this.ip--;this.op=i},P.RawInflate.prototype.expandBuffer=function(t){var e,r,i=new(_?Uint8Array:Array)(this.op-P.RawInflate.MaxBackwardLength),n=this.op-P.RawInflate.MaxBackwardLength,s=this.output;if(_)i.set(s.subarray(P.RawInflate.MaxBackwardLength,i.length));else for(e=0,r=i.length;ee&&(this.output.length=e),t=this.output),this.buffer=t,this.buffer},B.Async=function(t,e,r){this.isParallel=!!t,this._queue=[],this.success=e,this.fail=r,this.isPending=!0},B.Async.prototype.enqueue=function(t){this._queue.push({fn:t,resolved:!1}),(this.isParallel||1==this._queue.length)&&t.apply(this,[{resolve:e.proxy(function(){e.nextTick(e.proxy(function(){this.ctx.resolve(this.cb)},this))},{cb:t,ctx:this}),error:e.proxy(function(){this.ctx.error(this.cb)},{cb:t,ctx:this})}])},B.Async.prototype.resolve=function(t){if(this.isPending){if(!t)throw new Error("Missing caller argument.");var r,i,n=!1;for(r=0;r-1},a=function(t,e){return"IE"!=t?e:e>6&&e<10?s("Trident")||7!=e?s("Trident/5.0")&&e<=9?9:s("Trident/4.0")&&e<9?s("WOW64")?8:7==e?e:8:e:7:e},o=function(t,r){return r?s("Windows Phone")?"Winphone":s("iPod")?"iPod":s("iPad")?"iPad":s("iPhone")?"iPhone":(s("blackberry")||s("playbook")||s("BB10"))&&s("applewebkit")?"Blackberry":s("Kindle")||s("Silk")?"Kindle":s("BNTV")||s("Nook")?"Nook":s("Android")?"Android":e.isDefined(window.orientation)?"Mobile":"Other":s("Windows")?"Windows":s("OS X")?"Mac":s("Linux")||s("Googlebot")?"Linux":s("Mac")?"Mac":void 0},h=function(t,e){for(;t>=e;)t/=10;return t},f=function(t,r){var i,n,a,o,f,u;return s("windows phone")||!s("ipad")&&!s("iphone")?s("googlebot")?1:s("mac os x")?(i=/OS X ([0-9_]*)/gi.exec(t),n=i[1].split("_"),a=parseInt(n[0]),f=parseInt(n[1]),u=parseInt(n[2]),f+=h(u,1),a+h(f,1)):s("Windows NT")?(i=/Windows NT ([0-9\.]*)/gi.exec(t),n=i[1].split("."),a=parseInt(n[0]),f=parseInt(n[1]),a+h(f,1)):(i=t.match(/Windows Phone OS[\/\s](\d+\.?\d+)/)||t.match(/Windows Phone[\/\s](\d+\.?\d+)/)||t.match(/Android[\/\s](\d+\.?\d+)/),a=e.isDefined(i)?i[1]:1,o=parseFloat(a),!isNaN(o)&&o>0?o:a):(i=/OS ([0-9_]*) like/gi.exec(t),n=i[1].split("_"),a=parseInt(n[0]),f=parseInt(n[1]),a+h(f,1))},u=function(){if("Winphone"!=r.os.name){var t=document.querySelectorAll("head meta[name=viewport],head meta[name=VIEWPORT],head meta[name=Viewport]")||[];if(e.isArray(t)||(t=[t]),t.length>0){for(var i=function(t,e){var r=new RegExp("[\\w\\W]*"+e+"[\\s]*=[\\s]*([^\\s,;]*)[\\w\\W]*","i");return t?t.match(r):null},n=0;n1&&("0"==a[1]||"no"==e.toLowerCase(a[1])))return!1;if(o&&h)return!(o.length>1&&h.length>1&&1==parseFloat(o[1])&&1==parseFloat(h[1]))}return!0}return!0}return!1},l=B._getBrowserNameAndVersion(i),c=function(){r.browser.name=l.name,r.browser.version=l.version,r.browser.actualVersion=a(r.browser.name,r.browser.version),r.os.name=o(0,r.isMobile),r.os.version=f(i,r.isMobile)},p=function(){r.isZoomable=u(),r.isReady=!0,r._internalReady.fire()},d=function(){c()};if(r.isMobile)if(r.isIos||""===r.servUrl||r.isTablet||r.isWinPhone)d(),p();else{var g,y=function(t){var e=JSON.parse(t);r.browser.name=e.browser.name,r.browser.version=r.browser.actualVersion=e.browser.version,r.os.name=e.os.name,r.os.version=e.os.version,r.isMobile=e.isMobile,r.isTablet=e.isTablet,p()},w=this.supportsLocalStorage;if(w&&!t&&(g=sessionStorage.getItem("ACS_BROWSER")),g)y(g);else{var b=function(t){w&&sessionStorage.setItem("ACS_BROWSER",t),y(t)},m=function(){d(),p()},v=function(){var t=new Date,e=t.getFullYear().toString(),r=(t.getMonth()+1).toString(),i=t.getDate().toString();return e+(r[1]?r:"0"+r[0])+(i[1]?i:"0"+i[0])},x={method:"GET",url:r.servUrl+function(){var t=v()+"ForeSee"+(location.origin||"null");return B.hashCode(t)}()+"&ua="+i,type:"*/*",contentType:"application/x-www-form-urlencoded",success:b,failure:m};new B.AjaxTransport(x,!0).send()}}else c(),r.isReady=!0,r.isIE="IE"==r.browser.name,r._internalReady.fire()},B._getBrowserNameAndVersion=function(t){var e,r,i="Unknown";return null!==(r=t.match(/Opera[\/\s](\d+\.\d+)/))?i="Opera":null!==(r=t.match(/Edge\/([0-9\.]*)/))?i="IE":null!==(r=t.match(/opr[\/\s](\d+\.\d+)/i))?i="Opera":null!==(r=t.match(/Windows Phone[\/\s](\d+\.\d+)/))?i="IEMobile":null!==(r=t.match(/MSIE (\d+\.\d+)/))?i="IE":null!==(r=t.match(/Navigator[\/\s](\d+\.\d+)/))?i="Netscape":null!==(r=t.match(/Chrome[\/\s](\d+\.\d+)/))?i="Chrome":null!==(r=t.match(/CriOS[\/\s](\d+\.\d+)/))?i="Chrome":null!==(r=t.match(/Version\/([0-9\.]*)[\w\W]*Safari/i))?i="Safari":null!==(r=t.match(/Firefox[\/\s](\d+\.\d+)/))?i="Firefox":null!==(r=t.match(/googlebot/gi))?(i="Chrome",e=44):Object.hasOwnProperty.call(window,"ActiveXObject")&&!window.ActiveXObject&&(i="IE", +e=11),{name:i,version:e||(null!==r?parseFloat(r[1]):void 0)}},B.sign=function(t){var r=(new Date).getTime(),i=t.substr(t.indexOf("/rec/")),n=B.md5((i+r).toString());return-1==t.indexOf("?")?t+="?":t+="&",t+"token="+r+"&sig="+e.enc(n)},B.WindowStorage=function(t,r){t||(t="STORAGE"),this.guid="FSR_"+t.replace(/[- _.&]/g,"").toUpperCase(),this.storageLimit=5e6,this.StorageFull=new B.FSEvent,this.kill(),this.sync(),e.isDefined(r)&&!r||setTimeout(e.proxy(function(){B.Bind(window,"unload",e.proxy(function(){this.commit()},this))},this),100)},B.WindowStorage.prototype.testStorageLimit=function(){return this.storageBytesObj+this.storageBytesBlob>=this.storageLimit&&(this.StorageFull.fire(this),!0)},B.WindowStorage.prototype.dispose=function(t){this._data_obj[t]&&(delete this._data_obj[t],this.storageBytesObj=JSON.stringify(this._data_obj).length)},B.WindowStorage.prototype.kill=function(){this.storageBytesObj=0,this.storageBytesBlob=0,this._data_obj={},this._data_blob="",this.isNewStorage=!0},B.WindowStorage.prototype.get=function(t){return this._data_obj[t]},B.WindowStorage.prototype.getBlob=function(){return this._data_blob},B.WindowStorage.prototype.erase=function(t){delete this._data_obj[t],this.storageBytesObj=JSON.stringify(this._data_obj).length,this.isNewStorage=!1,this.testStorageLimit()},B.WindowStorage.prototype.set=function(t,e){e&&(this._data_obj[t]=e,this.storageBytesObj=JSON.stringify(this._data_obj).length,this.isNewStorage=!1,this.testStorageLimit())},B.WindowStorage.prototype.setBlob=function(t){this._data_blob=t,this.storageBytesBlob=this._data_blob.length,this.isNewStorage=!1,this.testStorageLimit()},B.WindowStorage.prototype.isNew=function(){return this.isNewStorage},B.WindowStorage.initialize=function(t){t.apply(B.WindowStorage)},B.WindowStorage.isSupported=function(){return!0},B.WindowStorage.prototype.sync=function(){var t=B.nameBackup||window.name||"",e=this.guid+"_",r="",i=t.indexOf(e+"BEGIN_OBJ");i>-1&&(r=t.substr(i+(e+"BEGIN_OBJ").length,t.indexOf(e+"END_OBJ")-(i+(e+"BEGIN_OBJ").length)));try{r.length>0&&(this._data_obj=JSON.parse(r),this.storageBytesObj=r.length,this.isNewStorage=!1)}catch(t){}r="",(i=t.indexOf(e+"BEGIN_BLOB"))>-1&&(r=t.substr(i+(e+"BEGIN_BLOB").length,t.indexOf(e+"END_BLOB")-(i+(e+"BEGIN_BLOB").length)));try{r.length>0&&(this._data_blob=r,this.storageBytesBlob=r.length,this.isNewStorage=!1)}catch(t){}},B.WindowStorage.prototype.commit=function(){var t=window.name;e.isDefined(t)||(t="");var r=this.guid+"_",i=t.indexOf(r+"BEGIN_OBJ"),n=JSON.stringify(this._data_obj),s=r+"BEGIN_OBJ"+n+r+"END_OBJ";i>-1?t=t.substr(0,i)+s+t.substr(t.indexOf(r+"END_OBJ")+(r+"END_OBJ").length):t+=s,i=t.indexOf(r+"BEGIN_BLOB"),s=r+"BEGIN_BLOB"+this._data_blob+r+"END_BLOB",i>-1?t=t.substr(0,i)+s+t.substr(t.indexOf(r+"END_BLOB")+(r+"END_BLOB").length):t+=s,window.name=B.nameBackup=t,this.storageBytes=window.name.length},B.nameBackup=window.name,B.dedupe=function(t){var e,r;for(e=t.length-1;e>=0;e--)for(r=e-1;r>=0;r--)t[r]==t[e]&&t.splice(e,1);return t},B.arrayIndexOf=function(t,e){for(var r in e)if(e[r]===t)return r;return-1},B.inArray=function(t,e){return-1!=B.arrayIndexOf(t,e)},B.Cookie=function(t){this.opts=t||{}},B.Cookie.prototype.set=function(t,r,i){var n,s=this.opts;i&&(s=e.ext({},s,i)),r=e.isDefined(s.encode)?e.enc(r):r,t=e.enc(t),"localhost"==s.domain&&delete s.domain;for(var a in s)if(s[a])switch(n=s[a],r+=";"+("duration"==a?"expires":a),a){case"expires":r+="="+(e.isDate(n)?n.toGMTString():n)+";";break;case"duration":r+="="+new Date(B.now()+n*B.FULL_DAY).toGMTString()+";";break;default:r+="="+n}document.cookie=t+"="+r},B.Cookie.prototype.get=function(t){var e=document.cookie.match("(?:^|;)\\s*"+B.escapeRegExp(t)+"=([^;]*)");return e?decodeURIComponent(e[1]):null},B.Cookie.prototype.kill=function(t){var e=new Date;e.setTime(e.getTime()-9999),this.set(t,"",{expires:e})},window.__fsJSONPCBr={},window.__fsJSONPCB=e.proxy(function(t){if(t){var e=t.filename,r=atob(t.contents);window.__fsJSONPCBr[e]&&window.__fsJSONPCBr[e].fire(r)}},this),B.JSONP=function(t){this._expireTimeout=null,this._networkError=new B.FSEvent,this.opts=e.ext({success:function(){},failure:function(){},timeout:5e3},t)},B.JSONP.prototype.get=function(t,r){var i=t.indexOf("?")>-1?t.substr(t.indexOf("?")+1):"",n=t.substr(0,t.lastIndexOf("/")+1),s=t.substr(t.lastIndexOf("/")+1),a=window.__fsJSONPCBr;this._expireTimeout=setTimeout(e.proxy(function(){this._networkError.fire({type:"timedout"})},this),this.opts.timeout),s.indexOf("?")>-1&&(s=s.substr(0,s.indexOf("?")));var o=(r||"")+s;if(!a[o]){a[o]=new B.FSEvent;var h=n+s.substr(0,s.lastIndexOf("."))+"___"+s.substr(s.lastIndexOf(".")+1)+".js"+(i.length>0?"?"+i:""),f=new U(h,"_fscl"+o);f.loadFailure.subscribe(e.proxy(function(){this.el.parentNode.removeChild(this.el),this.ctx._networkError.fire({type:"internalserror"})},{ctx:this,el:f.st}))}a[o].subscribe(e.proxy(function(t){this.ctx.opts.success(t),clearTimeout(this.ctx._expireTimeout);var e=document.getElementById(this.tgId);e&&e.parentNode.removeChild(e)},{ctx:this,tgId:"_fscl"+o}),!0,!0),this._networkError.subscribe(e.proxy(function(t){this.opts.failure(t),a[o].unsubscribeAll()},this),!0,!0)},B.ImageTransport=function(t){var r={data:{},success:function(){},failure:function(){}};this.options=e.ext(r,t)},B.ImageTransport.prototype.send=function(t){var r=e.ext(this.options,t),i=new Image;i.onerror=r.failure,i.onload=function(){r.success({width:i.width,height:i.height})},i.src=e.toQueryString(r.data,r.url,!1)};var z={byteArrayToString:function(t){for(var e="",r=0;r127&&i<2048?(e+=String.fromCharCode(i>>6|192),e+=String.fromCharCode(63&i|128)):(e+=String.fromCharCode(i>>12|224),e+=String.fromCharCode(i>>6&63|128),e+=String.fromCharCode(63&i|128))}return e},compress:function(t){var e=z._utf8_encode(t),r=z.stringToByteArray(e),i=new P.RawDeflate(r,{compressionType:2}).compress();return btoa(z.byteArrayToString(i))},fragmentAndCompress:function(t,e){e=e||1e5;for(var r="",i=parseInt(t.length/e)+1,n=0;n0?i(a):r(n)};B.Healthy=function(t,r,i,n){if (localStorage) { var nwval = (new Date).getTime(); try { localStorage.setItem("_fsrHealthStatus", JSON.stringify({ last: nwval, info: { survey2: { ref: { rel: "content", url: "https://cx.foresee.com/status" }, up: true, last_check: nwval, latency: 0 }, survey: { ref: { rel: "content", url: "https://survey.foreseeresults.com/survey/status" }, up: true, last_check: nwval, latency: 87 }, cxreplay: { ref: { rel: "content", url: "https://rec.replay.answerscloud.com/status" }, up: true, last_check: nwval, latency: 77 }, events: { ref: { rel: "content", url: "https://analytics.foresee.com/status" }, up: true, last_check: nwval, latency: 70 }, trust: { ref: { rel: "status", url: "" }, up: false }, brain: { ref: { rel: "content", url: "https://brain.foresee.com/status" }, up: true, last_check: nwval, latency: 348 }, static: { ref: { rel: "content", url: "https://static.foresee.com" }, up: true, last_check: nwval, latency: 74 }, device: { ref: { rel: "content", url: "https://device.4seeresults.com/status" }, up: true, last_check: nwval, latency: 68 } } })) } catch (e) { } }if(e.isArray(r)||(r=[r]),i=i||function(){},n=n||function(){},!W&&t.supportsLocalStorage){var s=localStorage.getItem("_fsrHealthStatus");W=s?JSON.parse(s):{}}W&&W.last&&B.now()-W.last<2592000000?e.nextTick(function(){K(r,i,n)}):(J||(J=new B.AjaxTransport),J.send({method:"GET",url:location.protocol+"//health.foresee.com",timeout:1e4,failure:e.proxy(function(){n(r)},this),success:e.proxy(function(i){e.isString(i)&&i.length>3?(W={last:B.now(),info:JSON.parse(i)},t.supportsLocalStorage&&localStorage.setItem("_fsrHealthStatus",JSON.stringify(W)),K(r,this.s,this.f)):n(r)},{deps:r,s:i,f:n})}))},B.HealthStatus=function(t,r,i){var n=function(t,r){return function(){for(var r={},n=0;nr?i.length-r:0,a[t]=i.splice(s,n-s+1).join()),this.gs.set("cp",a))}},B.Journey=function(t,r,i,n,s){this.threshold=s||400,this.browser=n,e.isString(r)||(r=""),this.cors=new B.AjaxTransport,this.url=e.config.analyticsUrl.replace(/^https?:/i,location.protocol),this.data={customerId:t,appId:r,userId:i||"0000-0000-0000-0000-0000",deviceProfile:{fs_timezone:(new Date).getTimezoneOffset(),fs_os:n.os.name,fs_osver:n.os.version,fs_browser:n.browser.name,fs_browserver:n.browser.version},events:[]}},B.Journey.prototype._send=function(){this._svT=null,this.data.events.length>0&&B.Healthy(this.browser,["events"],e.proxy(function(){this.cors.send({url:this.url,contentType:"application/json",data:this.data,method:"POST",success:e.proxy(function(){this.data.events=[]},this)})},this))},B.Journey.prototype.setKey=function(t,r){return!!e.isObject(r)&&(this.data[t]=r,this.data.events.length||this.addEventString("fs_setKey"),!0)},B.Journey.prototype.addEvent=function(t){var e=typeof t;switch(e){case"string":this.addEventString(t);break;case"object":this.addEventObj(t);break;default:console.error("ForeSee: event is not a valid type: ",e)}},B.Journey.prototype.addEventObj=function(t){if(t.timestamp||(t.timestamp=(new Date).toISOString()),!(t.name&&t.name.length>0&&V("properties",t)&&V("metrics",t)&&V("data",t)))return void console.error("ForeSee: Invalid Event. For proper usage, please refer to http://developer.foresee.com/docs-articles/foresee-hosted-code/calling-api-methods/event-logging/");t.properties||(t.properties={}),t.properties.fs_pageUrl||(t.properties.fs_pageUrl=[location.href]),this.data.events.push(t),G(this)},B.Journey.prototype.addEventString=function(t){this.data.events.push({name:t,timestamp:(new Date).toISOString(),properties:{fs_pageUrl:[location.href]}}),G(this)};var G=function(t,r){r?t._send(!0):t._svT||(t._svT=setTimeout(e.proxy(function(){t._send(!0)},t),t.threshold))},V=function(t,r){var i;switch(t){case"properties":if(r.properties)for(i in r.properties)if(!e.isArray(r.properties[i]))return console.error("ForeSee: Invalid properties"),!1;break;case"metrics":if(r.metrics)for(i in r.metrics)if(!B.isNumeric(r.metrics[i]))return console.error("ForeSee: Invalid metrics"),!1}return!0},q={has:function(){return"function"==typeof window.ga},uid:function(t){var r=e.nextTick;q.has()?ga(function(e){r(function(){if(e)t(e.get("clientId"));else try{t(ga.getAll()[0].get("clientId"))}catch(e){t()}})}):r(function(){t()})}};B.INT.GA=q;var X={_id:"",has:function(){try{return!!(window.s&&e.isFunction(s.c_r)&&s.c_r("s_vi").indexOf("[CE]")>-1)}catch(t){return!1}},uid:function(t){var r=e.nextTick;r(X.has()?function(){t(s.c_r("s_vi").split("|")[1].split("[")[0])}:function(){t()})},beacon:function(){function t(t,e){for(var r="",i=e.split("&"),n=0;n=0)){o=e;break}if(!o&&window.document.images)for(var f=0;f=0){o=e;break}r=o.substring(0,o.indexOf("?")),i=o.substring(o.indexOf("?")+1),n=t(a,i),window.s&&s.trackingServerSecure&&(r="https://"+s.trackingServerSecure+o.substring(o.indexOf("/b/ss/"),o.indexOf("?")),i=o.substring(o.indexOf("?")+1),n=t(a,i));var u=r+"?"+n;return u.length<3&&(u=null),u}};return B.INT.OM=X,B.imgInfo=function(t,r){var i=function(){};r=r||i;var n=new Image;n.onload=function(){r(n.width,n.height)},n.onerror=function(){},t.indexOf("//")>-1?n.src=t:n.src=e.makeURI("$"+t),n.width&&(n.onload=n.onerror=i,r(n.width,n.height))},B.getHashParm=function(t){var r=window.location.hash.toString();if(r&&r.length>0)for(var i=r.split("&"),n=0;n1)return decodeURIComponent(s[1]);break}}},B.compile=function(t){return new[].constructor.constructor("var v = ''; try { v = "+t+"} catch(err) {}return v;").call(window)},e.nextTick=function(t){setTimeout(t||function(){},0)},B.randomRange=function(t,e){return t+Math.random()*(e-t)},B.isNumeric=function(t){return!isNaN(parseFloat(t))&&isFinite(t)},B.products={},B.productArr=[],B.registerProduct=function(t,e){e=e||{},B.products[t]=e,B.productArr.push(t)},B.addClass=function(t,r){var i,n,s,a;for(e.isDefined(t.length)||(t=[t]),i=0,n=t.length;i-1},B.css=function(t,r,i){if(t){e.isDefined(t.length)||(t=[t]);for(var n=0;nparseInt(e.tabIndex)}),r=0;r=this.storageLimit&&(this.StorageFull.fire(this),!0)},B.DomStorage.prototype.dispose=function(t){this._data_obj[t]&&(delete this._data_obj[t],this.storageBytesObj=JSON.stringify(this._data_obj).length)},B.DomStorage.prototype.kill=function(){this.storageBytesObj=0,this.storageBytesBlob=0,this._data_obj={},this._data_blob="",this.isNewStorage=!0},B.DomStorage.prototype.get=function(t){return this._data_obj[t]},B.DomStorage.prototype.getBlob=function(){return this._data_blob},B.DomStorage.prototype.erase=function(t){delete this._data_obj[t],this.storageBytesObj=JSON.stringify(this._data_obj).length,this.isNewStorage=!1,this.testStorageLimit()},B.DomStorage.prototype.set=function(t,e){e&&(this._data_obj[t]=e,this.storageBytesObj=JSON.stringify(this._data_obj).length,this.isNewStorage=!1,this.testStorageLimit())},B.DomStorage.prototype.setBlob=function(t){this._data_blob=t,this.storageBytesBlob=this._data_blob.length,this.isNewStorage=!1,this.testStorageLimit()},B.DomStorage.prototype.isNew=function(){var t;return window.opener&&!this.get("isNew")&&(t=!0,this.set("isNew",t)),t||this.isNewStorage},B.DomStorage.initialize=function(t){t.apply(B.DomStorage)},B.DomStorage.isSupported=function(){return!!localStorage},B.DomStorage.prototype.sync=function(){var t;try{t=localStorage.getObject(this.guid+"_OBJ"),t&&t.length>0&&(this._data_obj=JSON.parse(t),this.storageBytesObj=t.length,this.isNewStorage=!1)}catch(t){}try{t=localStorage.getObject(this.guid+"_BLOB"),t&&t.length>0&&(this._data_blob=t,this.storageBytesBlob=t.length,this.isNewStorage=!1)}catch(t){}},B.DomStorage.prototype.commit=function(){try{localStorage.setItem(this.guid+"_OBJ",JSON.stringify(this._data_obj)),localStorage.setItem(this.guid+"_BLOB",this._data_blob)}catch(t){}},B}); \ No newline at end of file diff --git a/code/China _ Data_files/gateway.min.js.download b/code/China _ Data_files/gateway.min.js.download new file mode 100644 index 00000000..ffe006ce --- /dev/null +++ b/code/China _ Data_files/gateway.min.js.download @@ -0,0 +1,13 @@ +"use strict"; +/** +* @preserve +* ForeSee Gateway Script v2.3.4. Thursday, March 29th, 2018, 3:37:45 PM +* (c) Copyright 2016, ForeSee. http://www.foresee.com +* Patents pending. +**/ +!function(){function trimDots(ary){var i,part;for(i=0;i0&&(ary.splice(i-1,2),i-=2)}}function __eB(element,type,handler){element.addEventListener?element.addEventListener(type,handler,!1):element.attachEvent("on"+type,handler)}function getAllScripts(){return _D.getElementsByTagName("script")}function mixin(target,source,force,deepStringMixin){return source&&eachProp(source,function(value,prop){!force&&hasProp(target,prop)||(!deepStringMixin||"object"!=typeof value||!value||isArray(value)||isFunction(value)||value instanceof RegExp?target[prop]=value:(target[prop]||(target[prop]={}),mixin(target[prop],value,force,deepStringMixin)))}),target}function each(ary,func){if(ary){var i;for(i=0;i-1&&(!ary[i]||!func(ary[i],i,ary));i-=1);}}function defaultOnError(err){}function getGlobal(value){if(!value)return value;var g=global;return each(value.split("."),function(part){g=g[part]}),g}function newContext(contextName){function normalize(name,baseName,applyMap){var mapValue,nameParts,i,j,nameSegment,lastIndex,foundMap,foundI,foundStarMap,starI,normalizedBaseParts,baseParts=baseName&&baseName.split("/"),map=config.map,starMap=map&&map["*"];if(name&&(name=name.split("/"),lastIndex=name.length-1,config.nodeIdCompat&&jsSuffixRegExp.test(name[lastIndex])&&(name[lastIndex]=name[lastIndex].replace(jsSuffixRegExp,"")),"."===name[0].charAt(0)&&baseParts&&(normalizedBaseParts=baseParts.slice(0,baseParts.length-1),name=normalizedBaseParts.concat(name)),trimDots(name),name=name.join("/")),applyMap&&map&&(baseParts||starMap)){nameParts=name.split("/");outerLoop:for(i=nameParts.length;i>0;i-=1){if(nameSegment=nameParts.slice(0,i).join("/"),baseParts)for(j=baseParts.length;j>0;j-=1)if((mapValue=getOwn(map,baseParts.slice(0,j).join("/")))&&(mapValue=getOwn(mapValue,nameSegment))){foundMap=mapValue,foundI=i;break outerLoop}!foundStarMap&&starMap&&getOwn(starMap,nameSegment)&&(foundStarMap=getOwn(starMap,nameSegment),starI=i)}!foundMap&&foundStarMap&&(foundMap=foundStarMap,foundI=starI),foundMap&&(nameParts.splice(0,foundI,foundMap),name=nameParts.join("/"))}return getOwn(config.pkgs,name)||name}function removeScript(name){each(getAllScripts(),function(scriptNode){if(attr(scriptNode,"data-requiremodule")===name&&attr(scriptNode,"data-requirecontext")===context.contextName)return scriptNode.parentNode.removeChild(scriptNode),!0})}function hasPathFallback(id){var pathConfig=getOwn(config.paths,id);if(pathConfig&&isArray(pathConfig)&&pathConfig.length>1)return pathConfig.shift(),context.require.undef(id),context.makeRequire(null,{skipMap:!0})([id]),!0}function splitPrefix(name){var prefix,index=name?name.indexOf("!"):-1;return index>-1&&(prefix=name.substring(0,index),name=name.substring(index+1,name.length)),[prefix,name]}function makeModuleMap(name,parentModuleMap,isNormalized,applyMap){var url,pluginModule,suffix,nameParts,prefix=null,parentName=parentModuleMap?parentModuleMap.name:null,originalName=name,isDefine=!0,normalizedName="";return name||(isDefine=!1,name="_@r"+(requireCounter+=1)),nameParts=splitPrefix(name),prefix=nameParts[0],name=nameParts[1],prefix&&(prefix=normalize(prefix,parentName,applyMap),pluginModule=getOwn(defined,prefix)),name&&(prefix?normalizedName=pluginModule&&pluginModule.normalize?pluginModule.normalize(name,function(name){return normalize(name,parentName,applyMap)}):-1===name.indexOf("!")?normalize(name,parentName,applyMap):name:(normalizedName=normalize(name,parentName,applyMap),nameParts=splitPrefix(normalizedName),prefix=nameParts[0],normalizedName=nameParts[1],isNormalized=!0,url=context.nameToUrl(normalizedName))),suffix=!prefix||pluginModule||isNormalized?"":"_unnormalized"+(unnormalizedCounter+=1),{prefix:prefix,name:normalizedName,parentMap:parentModuleMap,unnormalized:!!suffix,url:url,originalName:originalName,isDefine:isDefine,id:(prefix?prefix+"!"+normalizedName:normalizedName)+suffix}}function getModule(depMap){var id=depMap.id,mod=getOwn(registry,id);return mod||(mod=registry[id]=new context.Module(depMap)),mod}function on(depMap,name,fn){var id=depMap.id,mod=getOwn(registry,id);!hasProp(defined,id)||mod&&!mod.defineEmitComplete?(mod=getModule(depMap),mod.error&&"error"===name?fn(mod.error):mod.on(name,fn)):"defined"===name&&fn(defined[id])}function onError(err,errback){err.requireModules;errback&&errback(err)}function takeGlobalQueue(){globalDefQueue.length&&(apsp.apply(defQueue,[defQueue.length,0].concat(globalDefQueue)),globalDefQueue=[])}function cleanRegistry(id){delete registry[id],delete enabledRegistry[id]}function breakCycle(mod,traced,processed){var id=mod.map.id;mod.error?mod.emit("error",mod.error):(traced[id]=!0,each(mod.depMaps,function(depMap,i){var depId=depMap.id,dep=getOwn(registry,depId);!dep||mod.depMatched[i]||processed[depId]||(getOwn(traced,depId)?(mod.defineDep(i,defined[depId]),mod.check()):breakCycle(dep,traced,processed))}),processed[id]=!0)}function checkLoaded(){var usingPathFallback,waitInterval=1e3*config.waitSeconds,expired=waitInterval&&context.startTime+waitInterval<(new Date).getTime(),noLoads=[],reqCalls=[],stillLoading=!1,needCycleCheck=!0;inCheckLoaded||(inCheckLoaded=!0,eachProp(enabledRegistry,function(mod){var map=mod.map,modId=map.id;if(mod.enabled&&(map.isDefine||reqCalls.push(mod),!mod.error))if(!mod.inited&&expired)hasPathFallback(modId)?(usingPathFallback=!0,stillLoading=!0):(noLoads.push(modId),removeScript(modId));else if(!mod.inited&&mod.fetched&&map.isDefine&&(stillLoading=!0,!map.prefix))return needCycleCheck=!1}),expired&&noLoads.length||(needCycleCheck&&each(reqCalls,function(mod){breakCycle(mod,{},{})}),expired&&!usingPathFallback||!stillLoading||checkLoadedTimeoutId||(checkLoadedTimeoutId=setTimeout(function(){checkLoadedTimeoutId=0,checkLoaded()},50)),inCheckLoaded=!1))}function callGetModule(args){hasProp(defined,args[0])||getModule(makeModuleMap(args[0],null,!0)).init(args[1],args[2])}function removeListener(node,func,name,ieName){node.detachEvent&&!isOpera?ieName&&node.detachEvent(ieName,func):node.removeEventListener(name,func,!1)}function getScriptData(evt){var node=evt.currentTarget||evt.srcElement;return removeListener(node,context.onScriptLoad,"load","onreadystatechange"),removeListener(node,context.onScriptError,"error"),{node:node,id:node&&attr(node,"data-requiremodule")}}function intakeDefines(){var args;for(takeGlobalQueue();defQueue.length;){if(args=defQueue.shift(),null===args[0])return;callGetModule(args)}}var inCheckLoaded,Module,context,handlers,checkLoadedTimeoutId,config={waitSeconds:7,baseUrl:"./",paths:{},bundles:{},pkgs:{},shim:{},config:{}},registry={},enabledRegistry={},undefEvents={},defQueue=[],defined={},urlFetched={},bundlesMap={},requireCounter=1,unnormalizedCounter=1;return handlers={require:function(mod){return mod.require?mod.require:mod.require=context.makeRequire(mod.map)},exports:function(mod){if(mod.usingExports=!0,mod.map.isDefine)return mod.exports?defined[mod.map.id]=mod.exports:mod.exports=defined[mod.map.id]={}},module:function(mod){return mod.module?mod.module:mod.module={id:mod.map.id,uri:mod.map.url,config:function(){return getOwn(config.config,mod.map.id)||{}},exports:mod.exports||(mod.exports={})}}},Module=function(map){this.events=getOwn(undefEvents,map.id)||{},this.map=map,this.shim=getOwn(config.shim,map.id),this.depExports=[],this.depMaps=[],this.depMatched=[],this.pluginMaps={},this.depCount=0},Module.prototype={init:function(depMaps,factory,errback,options){options=options||{},this.inited||(this.factory=factory,errback?this.on("error",errback):this.events.error&&(errback=proxy(function(err){this.emit("error",err)},this)),this.depMaps=depMaps&&depMaps.slice(0),this.errback=errback,this.inited=!0,this.ignore=options.ignore,options.enabled||this.enabled?this.enable():this.check())},defineDep:function(i,depExports){this.depMatched[i]||(this.depMatched[i]=!0,this.depCount-=1,this.depExports[i]=depExports)},fetch:function(){if(!this.fetched){this.fetched=!0,context.startTime=(new Date).getTime();var map=this.map;if(!this.shim)return map.prefix?this.callPlugin():this.load();context.makeRequire(this.map,{enableBuildCallback:!0})(this.shim.deps||[],proxy(function(){return map.prefix?this.callPlugin():this.load()},this))}},load:function(){var url=this.map.url;urlFetched[url]||(urlFetched[url]=!0,context.load(this.map.id,url))},check:function(){if(this.enabled&&!this.enabling){var err,cjsModule,id=this.map.id,depExports=this.depExports,exports=this.exports,factory=this.factory;if(this.inited){if(this.error)this.emit("error",this.error);else if(!this.defining){if(this.defining=!0,this.depCount<1&&!this.defined){if(isFunction(factory)){if(this.events.error&&this.map.isDefine||req.onError!==defaultOnError)try{exports=context.execCb(id,factory,depExports,exports)}catch(e){err=e}else exports=context.execCb(id,factory,depExports,exports);if(this.map.isDefine&&void 0===exports&&(cjsModule=this.module,cjsModule?exports=cjsModule.exports:this.usingExports&&(exports=this.exports)),err)return err.requireMap=this.map,err.requireModules=this.map.isDefine?[this.map.id]:null,err.requireType=this.map.isDefine?"define":"require",onError(this.error=err)}else exports=factory;this.exports=exports,this.map.isDefine&&!this.ignore&&(defined[id]=exports,req.onResourceLoad&&req.onResourceLoad(context,this.map,this.depMaps)),cleanRegistry(id),this.defined=!0}this.defining=!1,this.defined&&!this.defineEmitted&&(this.defineEmitted=!0,this.emit("defined",this.exports),this.defineEmitComplete=!0)}}else this.fetch()}},callPlugin:function(){var map=this.map,id=map.id,pluginMap=makeModuleMap(map.prefix);this.depMaps.push(pluginMap),on(pluginMap,"defined",proxy(function(plugin){var load,normalizedMap,normalizedMod,bundleId=getOwn(bundlesMap,this.map.id),name=this.map.name,parentName=this.map.parentMap?this.map.parentMap.name:null,localRequire=context.makeRequire(map.parentMap,{enableBuildCallback:!0});return this.map.unnormalized?(plugin.normalize&&(name=plugin.normalize(name,function(name){return normalize(name,parentName,!0)})||""),normalizedMap=makeModuleMap(map.prefix+"!"+name,this.map.parentMap),on(normalizedMap,"defined",proxy(function(value){this.init([],function(){return value},null,{enabled:!0,ignore:!0})},this)),void((normalizedMod=getOwn(registry,normalizedMap.id))&&(this.depMaps.push(normalizedMap),this.events.error&&normalizedMod.on("error",proxy(function(err){this.emit("error",err)},this)),normalizedMod.enable()))):bundleId?(this.map.url=context.nameToUrl(bundleId),void this.load()):(load=proxy(function(value){this.init([],function(){return value},null,{enabled:!0})},this),load.error=proxy(function(err){this.inited=!0,this.error=err,err.requireModules=[id],eachProp(registry,function(mod){0===mod.map.id.indexOf(id+"_unnormalized")&&cleanRegistry(mod.map.id)}),onError(err)},this),load.fromText=proxy(function(text,textAlt){var moduleName=map.name,moduleMap=makeModuleMap(moduleName),hasInteractive=useInteractive;textAlt&&(text=textAlt),hasInteractive&&(useInteractive=!1),getModule(moduleMap),hasProp(config.config,id)&&(config.config[moduleName]=config.config[id]);try{req.exec(text)}catch(e){return}hasInteractive&&(useInteractive=!0),this.depMaps.push(moduleMap),context.completeLoad(moduleName),localRequire([moduleName],load)},this),void plugin.load(map.name,localRequire,load,config))},this)),context.enable(pluginMap,this),this.pluginMaps[pluginMap.id]=pluginMap},enable:function(){enabledRegistry[this.map.id]=this,this.enabled=!0,this.enabling=!0,each(this.depMaps,proxy(function(depMap,i){var id,mod,handler;if("string"==typeof depMap){if(depMap=makeModuleMap(depMap,this.map.isDefine?this.map:this.map.parentMap,!1,!this.skipMap),this.depMaps[i]=depMap,handler=getOwn(handlers,depMap.id))return void(this.depExports[i]=handler(this));this.depCount+=1,on(depMap,"defined",proxy(function(depExports){this.defineDep(i,depExports),this.check()},this)),this.errback&&on(depMap,"error",proxy(this.errback,this))}id=depMap.id,mod=registry[id],hasProp(handlers,id)||!mod||mod.enabled||context.enable(depMap,this)},this)),eachProp(this.pluginMaps,proxy(this,function(pluginMap){var mod=getOwn(registry,pluginMap.id);mod&&!mod.enabled&&context.enable(pluginMap,this)},this)),this.enabling=!1,this.check()},on:function(name,cb){var cbs=this.events[name];cbs||(cbs=this.events[name]=[]),cbs.push(cb)},emit:function(name,evt){each(this.events[name],function(cb){cb(evt)}),"error"===name&&delete this.events[name]}},context={config:config,contextName:contextName,registry:registry,defined:defined,urlFetched:urlFetched,defQueue:defQueue,Module:Module,makeModuleMap:makeModuleMap,nextTick:req.nextTick,onError:onError,configure:function(cfg){cfg.baseUrl&&"/"!==cfg.baseUrl.charAt(cfg.baseUrl.length-1)&&(cfg.baseUrl+="/");var shim=config.shim,objs={paths:!0,bundles:!0,config:!0,map:!0};eachProp(cfg,function(value,prop){objs[prop]?(config[prop]||(config[prop]={}),mixin(config[prop],value,!0,!0)):config[prop]=value}),cfg.bundles&&eachProp(cfg.bundles,function(value,prop){each(value,function(v){v!==prop&&(bundlesMap[v]=prop)})}),cfg.shim&&(eachProp(cfg.shim,function(value,id){isArray(value)&&(value={deps:value}),!value.exports&&!value.init||value.exportsFn||(value.exportsFn=context.makeShimExports(value)),shim[id]=value}),config.shim=shim),cfg.packages&&each(cfg.packages,function(pkgObj){var location,name;pkgObj="string"==typeof pkgObj?{name:pkgObj}:pkgObj,name=pkgObj.name,location=pkgObj.location,location&&(config.paths[name]=pkgObj.location),config.pkgs[name]=pkgObj.name+"/"+(pkgObj.main||"main").replace(currDirRegExp,"").replace(jsSuffixRegExp,"")}),eachProp(registry,function(mod,id){mod.inited||mod.map.unnormalized||(mod.map=makeModuleMap(id))}),(cfg.deps||cfg.callback)&&context.require(cfg.deps||[],cfg.callback)},makeShimExports:function(value){function fn(){var ret;return value.init&&(ret=value.init.apply(global,arguments)),ret||value.exports&&getGlobal(value.exports)}return fn},makeRequire:function(relMap,options){function localRequire(deps,callback,errback){var id,map,requireMod;if(options.enableBuildCallback&&callback&&isFunction(callback)&&(callback.__requireJsBuild=!0),"string"==typeof deps){if(isFunction(callback))return;if(relMap&&hasProp(handlers,deps))return handlers[deps](registry[relMap.id]);if(req.get)return req.get(context,deps,relMap,localRequire);if(map=makeModuleMap(deps,relMap,!1,!0),id=map.id,!hasProp(defined,id))return;return defined[id]}return intakeDefines(),context.nextTick(function(){intakeDefines(),requireMod=getModule(makeModuleMap(null,relMap)),requireMod.skipMap=options.skipMap,requireMod.init(deps,callback,errback,{enabled:!0}),checkLoaded()}),localRequire}return options=options||{},mixin(localRequire,{toUrl:function(moduleNamePlusExt){var ext,index=moduleNamePlusExt.lastIndexOf("."),segment=moduleNamePlusExt.split("/")[0],isRelative="."===segment||".."===segment;return-1!==index&&(!isRelative||index>1)&&(ext=moduleNamePlusExt.substring(index,moduleNamePlusExt.length),moduleNamePlusExt=moduleNamePlusExt.substring(0,index)),context.nameToUrl(normalize(moduleNamePlusExt,relMap&&relMap.id,!0),ext,!0)},defined:function(id){return hasProp(defined,makeModuleMap(id,relMap,!1,!0).id)},specified:function(id){return id=makeModuleMap(id,relMap,!1,!0).id,hasProp(defined,id)||hasProp(registry,id)}}),relMap||(localRequire.undef=function(id){takeGlobalQueue();var map=makeModuleMap(id,relMap,!0),mod=getOwn(registry,id);removeScript(id),delete defined[id],delete urlFetched[map.url],delete undefEvents[id],eachReverse(defQueue,function(args,i){args[0]===id&&defQueue.splice(i,1)}),mod&&(mod.events.defined&&(undefEvents[id]=mod.events),cleanRegistry(id))}),localRequire},enable:function(depMap){getOwn(registry,depMap.id)&&getModule(depMap).enable()},completeLoad:function(moduleName){var found,args,mod,shim=getOwn(config.shim,moduleName)||{},shExports=shim.exports;for(takeGlobalQueue();defQueue.length;){if(args=defQueue.shift(),null===args[0]){if(args[0]=moduleName,found)break;found=!0}else args[0]===moduleName&&(found=!0);callGetModule(args)}if(mod=getOwn(registry,moduleName),!found&&!hasProp(defined,moduleName)&&mod&&!mod.inited){if(!(!config.enforceDefine||shExports&&getGlobal(shExports)))return void hasPathFallback(moduleName);callGetModule([moduleName,shim.deps||[],shim.exportsFn])}checkLoaded()},nameToUrl:function(moduleName,ext,skipExt){var paths,syms,i,parentModule,url,parentPath,bundleId,pkgMain=getOwn(config.pkgs,moduleName);if(pkgMain&&(moduleName=pkgMain),bundleId=getOwn(bundlesMap,moduleName))return context.nameToUrl(bundleId,ext,skipExt);if(req.jsExtRegExp.test(moduleName))url=moduleName+(ext||"");else{for(paths=config.paths,syms=moduleName.split("/"),i=syms.length;i>0;i-=1)if(parentModule=syms.slice(0,i).join("/"),parentPath=getOwn(paths,parentModule)){isArray(parentPath)&&(parentPath=parentPath[0]),syms.splice(0,i,parentPath);break}url=syms.join("/"),url+=ext||(/^data\:|\?/.test(url)||skipExt?"":".js"),url=("/"===url.charAt(0)||url.match(/^[\w\+\.\-]+:/)?"":config.baseUrl)+url}return config.urlArgs?url+(-1===url.indexOf("?")?"?":"&")+config.urlArgs:url},load:function(id,url){req.load(context,id,url)},execCb:function(name,callback,args,exports){return callback.apply(exports,args)},onScriptLoad:function(evt){if("load"===evt.type||readyRegExp.test((evt.currentTarget||evt.srcElement).readyState)){interactiveScript=null;var data=getScriptData(evt);context.completeLoad(data.id)}},onScriptError:function(evt){hasPathFallback(getScriptData(evt).id)}},context.require=context.makeRequire(),context}function getInteractiveScript(){return interactiveScript&&"interactive"===interactiveScript.readyState?interactiveScript:(eachReverse(getAllScripts(),function(script){if("interactive"===script.readyState)return interactiveScript=script}),interactiveScript)}function subtractFromURL(base,notches){var pref=base.substr(0,base.indexOf("//"))+"//",suff=base.substr(pref.length),dom=suff.substr(suff.indexOf("/")+1),tail=dom.substr(dom.lastIndexOf("/")+1);dom=dom.substr(0,dom.length-tail.length-1),suff=suff.substr(0,suff.indexOf("/"));var bits=dom.split("/");return bits.length-=Math.min(bits.length,notches),(pref+suff+"/"+bits.join("/")+tail).replace(/\/\/\//g,"//")}var _W=window,_D=_W.document,supportsDomStorage=!!_W.sessionStorage,skipInit=!1,_HD=_D.getElementsByTagName("head"),isOpera="undefined"!=typeof opera&&"[object Opera]"===opera.toString();if(!isOpera){_HD=_HD&&_HD.length>0?_HD[0]:_D.body;try{supportsDomStorage&&sessionStorage.setItem("_","")}catch(e){supportsDomStorage=!1}var globalConfig={},productConfig={}; +globalConfig = {"codeVer":"19.3.4","storage":"COOKIE","alwaysOnLatest":0,"deferredLoading":0,"brainUrl":"https://brain.foresee.com","recUrl":"https://record.foresee.com/rec/","surveyUrl":"https://survey.foreseeresults.com/survey/display","analyticsUrl":"https://analytics.foresee.com/ingest/events","staticUrl":"https://static.foresee.com","products":{"trigger":true},"modernSurveyUrl":"https://cxsurvey.foresee.com/sv","customerId":"xYpMVkA5xg9Bx5llpBsANQ==","surveyAsyncCurl":"s.foresee.com","siteKey":"worldbank-org","environment":"production"}; + +productConfig = {}; +productConfig.trigger = ({ "check": function () { var triggerconfig = { id: 'xYpMVkA5xg9Bx5llpBsANQ==', site_id: 'worldbank.org', surveyAsyncCurl: 'i.4see.mobi', hasReplay: 'false', triggerDelay: 0, inviteDelay: 0, repeatDays: { decline: 90, accept: 90 }, trackerConvertsAfter: 1000 * 10, trackerHeartbeatTimeout: 1000 * 10, trackerHeartbeatLongTimeout: 1000 * 12, onExitMobileHeartbeatInterval: 1000 * 60, reinviteDelayAfterInviteAbandon: 1000 * 60 * 60 * 24 * 90, workInIframes: 'dontRunOtherIframes', ignoreNavigationEvents: false, publicApiName: "FSR", globalExclude: { urls: [], referrers: [], userAgents: [], browsers: [], cookies: [], variables: [] }, inviteExclude: { urls: [], referrers: [], userAgents: [], browsers: [], cookies: [], variables: [] }, browser_cutoff: { IE: 10, Safari: 5.2, Firefox: 25, Chrome: 30, Opera: 1000 }, platform_cutoff: { Android: 4.4, Winphone: 9, iPod: 9, iPhone: 9, iPad: 9 }, device_blacklist: ['HTC_Rezound', 'blackberry'], replay_pools: [{ path: '.', sp: 100 }], replay_repools: [], cpps: { BetaSite: { source : 'url', patterns : [ { "regex" : 'beta', "value" : 'Y' } ], init: 'N' } } }; var surveydefs = ['KHsgbmFtZSA6ICd0YWJsZXRfc3BhJywgbGFuZ3VhZ2UgOiB7IGxvY2FsZSA6ICdzcGEnIH0sIGN4UmVjb3JkIDogZmFsc2UsIGNyaXRlcmlhIDogeyBzcCA6IHsgcmVnIDogNjAsIG91dHJlcGxheXBvb2wgOiAwIH0sIGxmIDogMiwgc3VwcG9ydHNTbWFydFBob25lcyA6IGZhbHNlLCBzdXBwb3J0c1RhYmxldHMgOiB0cnVlLCBzdXBwb3J0c0Rlc2t0b3AgOiBmYWxzZSB9LCBpbmNsdWRlIDogeyB1cmxzIDogWyAnKmJhbmNvbXVuZGlhbC5vcmcqJywgJyp3YmVzLXN0YWdlNjIuYWRvYmVjcW1zLm5ldConIF0sIHJlZmVycmVycyA6IFtdLCB1c2VyQWdlbnRzIDogW10sIGJyb3dzZXJzIDogW10sIGNvb2tpZXMgOiBbXSwgdmFyaWFibGVzIDogW10gfSwgaW52aXRlRXhjbHVkZSA6IHsgdXJscyA6IFtdLCByZWZlcnJlcnMgOiBbXSwgdXNlckFnZW50cyA6IFtdLCBicm93c2VycyA6IFtdLCBjb29raWVzIDogW10sIHZhcmlhYmxlcyA6IFtdIH0sIHBhdHRlcm4gOiAndXJsJywgc2VsZWN0TW9kZSA6ICdkZWZhdWx0JywgbGlua3MgOiB7IGNhbmNlbCA6IFtdLCBzdXJ2ZXkgOiBbXSwgdHJhY2tlciA6IFtdIH0sIGRpc3BsYXkgOiB7IG1vYmlsZSA6IFsgeyBkaXNwbGF5bmFtZSA6ICdkZWZhdWx0JywgdGVtcGxhdGUgOiAnbW9iaWxlJywgaW52aXRlTG9nbyA6ICJ3Yi1nbG9iZS5qcGciLCB0cmFja2VyTG9nbyA6ICJ3Yi1nbG9iZS5qcGciLCBzaXRlTG9nb1RpdGxlVGV4dCA6ICIiLCBzaXRlTG9nb0FsdFRleHQgOiAiIiwgdmVuZG9yTG9nbyA6ICJmc2xvZ28uc3ZnIiwgdmVuZG9yTG9nb1BORyA6ICJmc2xvZ28ucG5nIiwgdmVuZG9yVGl0bGVUZXh0IDogIkZvcmVTZWUiLCB2ZW5kb3JBbHRUZXh0IDogIkZvcmVTZWUgTG9nbyIsIGhpZGVGb3JlU2VlTG9nb01vYmlsZSA6IGZhbHNlLCB0cnVzdGVMb2dvQWx0VGV4dCA6ICJWYWxpZGF0ZSBUUlVTVGUgUHJpdmFjeSBDZXJ0aWZpY2F0aW9uIiwgaW52aXRlVHlwZSA6ICdFTUFJTCcsIGRpYWxvZyA6IHsgaGVhZGxpbmUgOiAiTm9zIGludGVyZXNhIHN1IG9waW5pw7NuOiIsIHN1YmhlYWRsaW5lIDogIkVuIHJlbGFjacOzbiBhIHN1IGV4cGVyaWVuY2lhIGVuIG51ZXN0cm8gc2l0aW8gd2ViLCBudWVzdHJvIHRyYWJham8sIHkgc3VzIHByaW9yaWRhZGVzIHJlbGF0aXZhcyBhbCBkZXNhcnJvbGxvLiA8c3BhbiBzdHlsZT0nZm9udC13ZWlnaHQ6IGJvbGQnPlN1cyBjb21lbnRhcmlvcyBub3MgYXl1ZGFuIGEgbWVqb3Jhci48L3NwYW4+IiwgZGVjbGluZUJ1dHRvbiA6ICJObywgZ3JhY2lhcyIsIGFjY2VwdEJ1dHRvbiA6ICJTw60sIGVudsOtZW5tZSB1bmEgZW5jdWVzdGEgYnJldmUiLCBlbWFpbEJ1dHRvbiA6ICJTw60sIGVudsOtZW5tZSB1bmEgZW5jdWVzdGEgYnJldmUiLCB0ZXh0QnV0dG9uIDogIlRleHQgbWUiLCBwb3dlcmVkYnlMaW5rIDogImh0dHA6Ly93d3cuZm9yZXNlZS5jb20iLCBwb3dlcmVkYnlUZXh0IDogIlBhdHJvY2luYWRvIHBvciBGb3JlU2VlIiwgZW1haWxQbGFjZWhvbGRlciA6ICJTdSBjb3JyZW8gZWxlY3Ryw7NuaWNvLi4uIiwgdGV4dFBsYWNlaG9sZGVyIDogIlN1IG7Dum1lcm8gZGUgdGVsw6lmb25vIG3Ds3ZpbC4uLiIsIHN1Ym1pdEJ1dHRvbiA6ICJFbnZpYXIiLCB0ZXh0RGlzY2xhaW1lciA6ICJBbCBwcm9wb3JjaW9uYXIgc3UgbsO6bWVybywgdXN0ZWQgYWN1ZXJkYSBwYXJ0aWNpcGFyIGVuIHVuYSBlbmN1ZXN0YSBkZSBGb3JlU2VlLiBQb2Ryw61hbiBhcGxpY2Fyc2UgY2FyZ29zIHBvciBtZW5zYWplIGRlIHRleHRvIHkgdHJhbnNtaXNpw7NuIGRlIGRhdG9zLiAyIG1lbnNhamVzIHBvciBlbmN1ZXN0YS4iLCBlbWFpbERpc2NsYWltZXIgOiAiIiwgdGVybXNBbmRDb25kaXRpb25UZXh0IDogIlTDqXJtaW5vcyB5IGNvbmRpY2lvbmVzIiwgcHJpdmFjeVBvbGljeUxpbmsgOiAiaHR0cDovL3d3dy5mb3Jlc2VlLmNvbS9zbXMtdGVybXMtYW5kLWNvbmRpdGlvbnMiLCBwcml2YWN5UG9saWN5VGV4dCA6ICJUw6lybWlub3MgeSBjb25kaWNpb25lcyIsIGVtYWlsSW52YWxpZGF0aW9uIDogIkluZ3Jlc2UgdW4gY29ycmVvIGVsZWN0csOzbmljbyB2w6FsaWRvIiwgdGV4dEludmFsaWRhdGlvbiA6ICJJbmdyZXNlIHVuIG7Dum1lcm8gZGUgdGVsw6lmb25vIG3Ds3ZpbCB2w6FsaWRvIiwgb25leGl0aGVhZGxpbmUgOiAiwqFNdWNoYXMgZ3JhY2lhcyEiLCBvbmV4aXRzdWJoZWFkbGluZSA6ICJOb3MgY29tdW5pY2FyZW1vcyBjb24gdXN0ZWQgY3VhbmRvIHRlcm1pbmUgc3UgdmlzaXRhIGEgbnVlc3RyYSB3ZWIuIiwgb25leGl0Y291bnRlcnRhZyA6ICJSZWdyZXNhbmRvIGEgbGEgd2ViIGVuICIsIG9uZXhpdGNvdW50ZXJ2YWwgOiAiOCIsIHRoZW1lIDogIm1haW4iIH0gfSBdIH0sIHF1YWxpZmllciA6IHsgdXNlUXVhbGlmaWVyIDogZmFsc2UgfSwgcmVtaW5kZXIgOiB7IHVzZVJlbWluZGVyIDogZmFsc2UgfSB9KSA=', 'KHsgbmFtZSA6ICdtb2JpbGVfd2ViX3NwYScsIGxhbmd1YWdlIDogeyBsb2NhbGUgOiAnc3BhJyB9LCBjeFJlY29yZCA6IGZhbHNlLCBjcml0ZXJpYSA6IHsgc3AgOiB7IHJlZyA6IDYwLCBvdXRyZXBsYXlwb29sIDogMCB9LCBsZiA6IDIsIHN1cHBvcnRzU21hcnRQaG9uZXMgOiB0cnVlLCBzdXBwb3J0c1RhYmxldHMgOiBmYWxzZSwgc3VwcG9ydHNEZXNrdG9wIDogZmFsc2UgfSwgaW5jbHVkZSA6IHsgdXJscyA6IFsgJypiYW5jb211bmRpYWwub3JnKicsICcqd2Jlcy1zdGFnZTYyLmFkb2JlY3Ftcy5uZXQqJyBdLCByZWZlcnJlcnMgOiBbXSwgdXNlckFnZW50cyA6IFtdLCBicm93c2VycyA6IFtdLCBjb29raWVzIDogW10sIHZhcmlhYmxlcyA6IFtdIH0sIGludml0ZUV4Y2x1ZGUgOiB7IHVybHMgOiBbXSwgcmVmZXJyZXJzIDogW10sIHVzZXJBZ2VudHMgOiBbXSwgYnJvd3NlcnMgOiBbXSwgY29va2llcyA6IFtdLCB2YXJpYWJsZXMgOiBbXSB9LCBwYXR0ZXJuIDogJ3VybCcsIHNlbGVjdE1vZGUgOiAnZGVmYXVsdCcsIGxpbmtzIDogeyBjYW5jZWwgOiBbXSwgc3VydmV5IDogW10sIHRyYWNrZXIgOiBbXSB9LCBkaXNwbGF5IDogeyBtb2JpbGUgOiBbIHsgZGlzcGxheW5hbWUgOiAnZGVmYXVsdCcsIHRlbXBsYXRlIDogJ21vYmlsZScsIGludml0ZUxvZ28gOiAid2ItZ2xvYmUuanBnIiwgdHJhY2tlckxvZ28gOiAid2ItZ2xvYmUuanBnIiwgc2l0ZUxvZ29UaXRsZVRleHQgOiAiIiwgc2l0ZUxvZ29BbHRUZXh0IDogIiIsIHZlbmRvckxvZ28gOiAiZnNsb2dvLnN2ZyIsIHZlbmRvckxvZ29QTkcgOiAiZnNsb2dvLnBuZyIsIHZlbmRvclRpdGxlVGV4dCA6ICJGb3JlU2VlIiwgdmVuZG9yQWx0VGV4dCA6ICJGb3JlU2VlIExvZ28iLCBoaWRlRm9yZVNlZUxvZ29Nb2JpbGUgOiBmYWxzZSwgdHJ1c3RlTG9nb0FsdFRleHQgOiAiVmFsaWRhdGUgVFJVU1RlIFByaXZhY3kgQ2VydGlmaWNhdGlvbiIsIGludml0ZVR5cGUgOiAnRU1BSUwnLCBkaWFsb2cgOiB7IGhlYWRsaW5lIDogIk5vcyBpbnRlcmVzYSBzdSBvcGluacOzbjoiLCBzdWJoZWFkbGluZSA6ICJFbiByZWxhY2nDs24gYSBzdSBleHBlcmllbmNpYSBlbiBudWVzdHJvIHNpdGlvIHdlYiwgbnVlc3RybyB0cmFiYWpvLCB5IHN1cyBwcmlvcmlkYWRlcyByZWxhdGl2YXMgYWwgZGVzYXJyb2xsby4gPHNwYW4gc3R5bGU9J2ZvbnQtd2VpZ2h0OiBib2xkJz5TdXMgY29tZW50YXJpb3Mgbm9zIGF5dWRhbiBhIG1lam9yYXIuPC9zcGFuPiIsIGRlY2xpbmVCdXR0b24gOiAiTm8sIGdyYWNpYXMiLCBhY2NlcHRCdXR0b24gOiAiU8OtLCBlbnbDrWVubWUgdW5hIGVuY3Vlc3RhIGJyZXZlIiwgZW1haWxCdXR0b24gOiAiU8OtLCBlbnbDrWVubWUgdW5hIGVuY3Vlc3RhIGJyZXZlIiwgdGV4dEJ1dHRvbiA6ICJUZXh0IG1lIiwgcG93ZXJlZGJ5TGluayA6ICJodHRwOi8vd3d3LmZvcmVzZWUuY29tIiwgcG93ZXJlZGJ5VGV4dCA6ICJQYXRyb2NpbmFkbyBwb3IgRm9yZVNlZSIsIGVtYWlsUGxhY2Vob2xkZXIgOiAiU3UgY29ycmVvIGVsZWN0csOzbmljby4uLiIsIHRleHRQbGFjZWhvbGRlciA6ICJTdSBuw7ptZXJvIGRlIHRlbMOpZm9ubyBtw7N2aWwuLi4iLCBzdWJtaXRCdXR0b24gOiAiRW52aWFyIiwgdGV4dERpc2NsYWltZXIgOiAiQWwgcHJvcG9yY2lvbmFyIHN1IG7Dum1lcm8sIHVzdGVkIGFjdWVyZGEgcGFydGljaXBhciBlbiB1bmEgZW5jdWVzdGEgZGUgRm9yZVNlZS4gUG9kcsOtYW4gYXBsaWNhcnNlIGNhcmdvcyBwb3IgbWVuc2FqZSBkZSB0ZXh0byB5IHRyYW5zbWlzacOzbiBkZSBkYXRvcy4gMiBtZW5zYWplcyBwb3IgZW5jdWVzdGEuIiwgZW1haWxEaXNjbGFpbWVyIDogIiIsIHRlcm1zQW5kQ29uZGl0aW9uVGV4dCA6ICJUw6lybWlub3MgeSBjb25kaWNpb25lcyIsIHByaXZhY3lQb2xpY3lMaW5rIDogImh0dHA6Ly93d3cuZm9yZXNlZS5jb20vc21zLXRlcm1zLWFuZC1jb25kaXRpb25zIiwgcHJpdmFjeVBvbGljeVRleHQgOiAiVMOpcm1pbm9zIHkgY29uZGljaW9uZXMiLCBlbWFpbEludmFsaWRhdGlvbiA6ICJJbmdyZXNlIHVuIGNvcnJlbyBlbGVjdHLDs25pY28gdsOhbGlkbyIsIHRleHRJbnZhbGlkYXRpb24gOiAiSW5ncmVzZSB1biBuw7ptZXJvIGRlIHRlbMOpZm9ubyBtw7N2aWwgdsOhbGlkbyIsIG9uZXhpdGhlYWRsaW5lIDogIsKhTXVjaGFzIGdyYWNpYXMhIiwgb25leGl0c3ViaGVhZGxpbmUgOiAiTm9zIGNvbXVuaWNhcmVtb3MgY29uIHVzdGVkIGN1YW5kbyB0ZXJtaW5lIHN1IHZpc2l0YSBhIG51ZXN0cmEgd2ViLiIsIG9uZXhpdGNvdW50ZXJ0YWcgOiAiUmVncmVzYW5kbyBhIGxhIHdlYiBlbiAiLCBvbmV4aXRjb3VudGVydmFsIDogIjgiLCB0aGVtZSA6ICJtYWluIiB9IH0gXSB9LCBxdWFsaWZpZXIgOiB7IHVzZVF1YWxpZmllciA6IGZhbHNlIH0sIHJlbWluZGVyIDogeyB1c2VSZW1pbmRlciA6IGZhbHNlIH0gfSkg', 'KHsgbmFtZSA6ICd0YWJsZXRfZnJlJywgbGFuZ3VhZ2UgOiB7IGxvY2FsZSA6ICdmcmUnIH0sIGN4UmVjb3JkIDogZmFsc2UsIGNyaXRlcmlhIDogeyBzcCA6IHsgcmVnIDogMTAwLCBvdXRyZXBsYXlwb29sIDogMCB9LCBsZiA6IDIsIHN1cHBvcnRzU21hcnRQaG9uZXMgOiBmYWxzZSwgc3VwcG9ydHNUYWJsZXRzIDogdHJ1ZSwgc3VwcG9ydHNEZXNrdG9wIDogZmFsc2UgfSwgaW5jbHVkZSA6IHsgdXJscyA6IFsgJypiYW5xdWVtb25kaWFsZS5vcmcqJywgJyp3YmZyLXN0YWdlNjIuYWRvYmVjcW1zLm5ldConIF0sIHJlZmVycmVycyA6IFtdLCB1c2VyQWdlbnRzIDogW10sIGJyb3dzZXJzIDogW10sIGNvb2tpZXMgOiBbXSwgdmFyaWFibGVzIDogW10gfSwgaW52aXRlRXhjbHVkZSA6IHsgdXJscyA6IFtdLCByZWZlcnJlcnMgOiBbXSwgdXNlckFnZW50cyA6IFtdLCBicm93c2VycyA6IFtdLCBjb29raWVzIDogW10sIHZhcmlhYmxlcyA6IFtdIH0sIHBhdHRlcm4gOiAndXJsJywgc2VsZWN0TW9kZSA6ICdkZWZhdWx0JywgbGlua3MgOiB7IGNhbmNlbCA6IFtdLCBzdXJ2ZXkgOiBbXSwgdHJhY2tlciA6IFtdIH0sIGRpc3BsYXkgOiB7IG1vYmlsZSA6IFsgeyBkaXNwbGF5bmFtZSA6ICdkZWZhdWx0JywgdGVtcGxhdGUgOiAnbW9iaWxlJywgaW52aXRlTG9nbyA6ICJ3Yi1nbG9iZS5qcGciLCB0cmFja2VyTG9nbyA6ICJ3Yi1nbG9iZS5qcGciLCBzaXRlTG9nb1RpdGxlVGV4dCA6ICIiLCBzaXRlTG9nb0FsdFRleHQgOiAiIiwgdmVuZG9yTG9nbyA6ICJmc2xvZ28uc3ZnIiwgdmVuZG9yTG9nb1BORyA6ICJmc2xvZ28ucG5nIiwgdmVuZG9yVGl0bGVUZXh0IDogIkZvcmVTZWUiLCB2ZW5kb3JBbHRUZXh0IDogIkZvcmVTZWUgTG9nbyIsIGhpZGVGb3JlU2VlTG9nb01vYmlsZSA6IGZhbHNlLCB0cnVzdGVMb2dvQWx0VGV4dCA6ICJWYWxpZGF0ZSBUUlVTVGUgUHJpdmFjeSBDZXJ0aWZpY2F0aW9uIiwgaW52aXRlVHlwZSA6ICdFTUFJTCcsIGRpYWxvZyA6IHsgaGVhZGxpbmU6ICJWb3RyZSBhdmlzIG5vdXMgaW50w6lyZXNzZToiLCBzdWJoZWFkbGluZTogIlN1ciBsYSBuYXZpZ2F0aW9uIGRlcHVpcyB2b3RyZSB0w6lsw6lwaG9uZS90YWJsZXR0ZSwgc3VyIG5vcyBhY3Rpdml0w6lzIGV0IG5vcyBwcmlvcml0w6lzIGVuIGZhdmV1ciBkdSBkw6l2ZWxvcHBlbWVudC4gPHNwYW4gc3R5bGU9J2ZvbnQtd2VpZ2h0OiBib2xkJz5Wb3RyZSBhdmlzIG5vdXMgYWlkZSDDoCBub3VzIGFtw6lsaW9yZXIuPC9zcGFuPiIsIGRlY2xpbmVCdXR0b246ICJOb24gbWVyY2kiLCBhY2NlcHRCdXR0b246ICJPdWksIGVudm95ZXotbW9pIGxlIHNvbmRhZ2UiLCBlbWFpbEJ1dHRvbjogIk91aSwgZW52b3llei1tb2kgbGUgc29uZGFnZSIsIHRleHRCdXR0b246ICJFbnZveWV6LW1vaSB1biB0ZXh0byIsIHBvd2VyZWRieUxpbms6ICJodHRwOi8vd3d3LmZvcmVzZWUuY29tIiwgcG93ZXJlZGJ5VGV4dDogIkTDqXZlbG9wcMOpIHBhciBGb3JlU2VlIiwgZW1haWxQbGFjZWhvbGRlcjogIlZvdHJlIGFkcmVzc2Ugw6lsZWN0cm9uaXF1ZS4uLiIsIHN1Ym1pdEJ1dHRvbjogIlNvdW1ldHRyZSIsIHRleHREaXNjbGFpbWVyOiAiRW4gZm91cm5pc3NhbnQgdm90cmUgbnVtw6lybywgdm91cyBjb25zZW50ZXogw6AgcGFydGljaXBlciDDoCB1biBzb25kYWdlIEZvcmVzZWUuIERlcyB0YXJpZnMgZGUgbWVzc2FnZXJpZSBldCBkZSB0cmFuc2ZlcnQgZGUgZG9ubsOpZXMgcGV1dmVudCBz4oCZYXBwbGlxdWVyLiBEZXV4IG1lc3NhZ2VzIHBhciBzb25kYWdlLiIsIGVtYWlsRGlzY2xhaW1lcjogIiIsIHByaXZhY3lQb2xpY3lMaW5rOiAiaHR0cDovL3d3dy5mb3Jlc2VlLmNvbS9hYm91dC11cy9wcml2YWN5LXBvbGljeS9mcmFuY2UvIiwgcHJpdmFjeVBvbGljeVRleHQ6ICJUZXJtZXMgZXQgY29uZGl0aW9ucyIsIHRlcm1zQW5kQ29uZGl0aW9uVGV4dDogIlRlcm1lcyBldCBjb25kaXRpb25zIiwgZW1haWxJbnZhbGlkYXRpb246ICJWZXVpbGxleiBlbnRyZXIgdW5lIGFkcmVzc2UgZGUgY291cnJpZWwgdmFsaWRlIiwgdGV4dEludmFsaWRhdGlvbjogIlZldWlsbGV6IGVudHJlciB1biBudW3DqXJvIGRlIGNlbGx1bGFpcmUgdmFsaWRlIiwgb25leGl0aGVhZGxpbmU6ICJNZXJjaSEiLCBvbmV4aXRzdWJoZWFkbGluZTogIk5vdXMgY29tbXVuaXF1ZXJvbnMgYXZlYyB2b3VzIGFwcsOocyBsYSB2aXNpdGUgZGUgbm90cmUgc2l0ZS4iLCBvbmV4aXRjb3VudGVydGFnOiAiUmV2ZW5pciBkYW5zICIsIG9uZXhpdGNvdW50ZXJ2YWwgOiAiOCIsIHRoZW1lIDogIm1haW4iIH0gfSBdIH0sIHF1YWxpZmllciA6IHsgdXNlUXVhbGlmaWVyIDogZmFsc2UgfSwgcmVtaW5kZXIgOiB7IHVzZVJlbWluZGVyIDogZmFsc2UgfSB9KSA=', 'KHsgbmFtZSA6ICdtb2JpbGVfd2ViX2ZyZScsIGxhbmd1YWdlIDogeyBsb2NhbGUgOiAnZnJlJyB9LCBjeFJlY29yZCA6IGZhbHNlLCBjcml0ZXJpYSA6IHsgc3AgOiB7IHJlZyA6IDEwMCwgb3V0cmVwbGF5cG9vbCA6IDAgfSwgbGYgOiAyLCBzdXBwb3J0c1NtYXJ0UGhvbmVzIDogdHJ1ZSwgc3VwcG9ydHNUYWJsZXRzIDogZmFsc2UsIHN1cHBvcnRzRGVza3RvcCA6IGZhbHNlIH0sIGluY2x1ZGUgOiB7IHVybHMgOiBbICcqYmFucXVlbW9uZGlhbGUub3JnKicsICcqd2Jmci1zdGFnZTYyLmFkb2JlY3Ftcy5uZXQqJyBdLCByZWZlcnJlcnMgOiBbXSwgdXNlckFnZW50cyA6IFtdLCBicm93c2VycyA6IFtdLCBjb29raWVzIDogW10sIHZhcmlhYmxlcyA6IFtdIH0sIGludml0ZUV4Y2x1ZGUgOiB7IHVybHMgOiBbXSwgcmVmZXJyZXJzIDogW10sIHVzZXJBZ2VudHMgOiBbXSwgYnJvd3NlcnMgOiBbXSwgY29va2llcyA6IFtdLCB2YXJpYWJsZXMgOiBbXSB9LCBwYXR0ZXJuIDogJ3VybCcsIHNlbGVjdE1vZGUgOiAnZGVmYXVsdCcsIGxpbmtzIDogeyBjYW5jZWwgOiBbXSwgc3VydmV5IDogW10sIHRyYWNrZXIgOiBbXSB9LCBkaXNwbGF5IDogeyBtb2JpbGUgOiBbIHsgZGlzcGxheW5hbWUgOiAnZGVmYXVsdCcsIHRlbXBsYXRlIDogJ21vYmlsZScsIGludml0ZUxvZ28gOiAid2ItZ2xvYmUuanBnIiwgdHJhY2tlckxvZ28gOiAid2ItZ2xvYmUuanBnIiwgc2l0ZUxvZ29UaXRsZVRleHQgOiAiIiwgc2l0ZUxvZ29BbHRUZXh0IDogIiIsIHZlbmRvckxvZ28gOiAiZnNsb2dvLnN2ZyIsIHZlbmRvckxvZ29QTkcgOiAiZnNsb2dvLnBuZyIsIHZlbmRvclRpdGxlVGV4dCA6ICJGb3JlU2VlIiwgdmVuZG9yQWx0VGV4dCA6ICJGb3JlU2VlIExvZ28iLCBoaWRlRm9yZVNlZUxvZ29Nb2JpbGUgOiBmYWxzZSwgdHJ1c3RlTG9nb0FsdFRleHQgOiAiVmFsaWRhdGUgVFJVU1RlIFByaXZhY3kgQ2VydGlmaWNhdGlvbiIsIGludml0ZVR5cGUgOiAnRU1BSUwnLCBkaWFsb2cgOiB7IGhlYWRsaW5lOiAiVm90cmUgYXZpcyBub3VzIGludMOpcmVzc2U6Iiwgc3ViaGVhZGxpbmU6ICJTdXIgbGEgbmF2aWdhdGlvbiBkZXB1aXMgdm90cmUgdMOpbMOpcGhvbmUvdGFibGV0dGUsIHN1ciBub3MgYWN0aXZpdMOpcyBldCBub3MgcHJpb3JpdMOpcyBlbiBmYXZldXIgZHUgZMOpdmVsb3BwZW1lbnQuIDxzcGFuIHN0eWxlPSdmb250LXdlaWdodDogYm9sZCc+Vm90cmUgYXZpcyBub3VzIGFpZGUgw6Agbm91cyBhbcOpbGlvcmVyLjwvc3Bhbj4iLCBkZWNsaW5lQnV0dG9uOiAiTm9uIG1lcmNpIiwgYWNjZXB0QnV0dG9uOiAiT3VpLCBlbnZveWV6LW1vaSBsZSBzb25kYWdlIiwgZW1haWxCdXR0b246ICJPdWksIGVudm95ZXotbW9pIGxlIHNvbmRhZ2UiLCB0ZXh0QnV0dG9uOiAiRW52b3llei1tb2kgdW4gdGV4dG8iLCBwb3dlcmVkYnlMaW5rOiAiaHR0cDovL3d3dy5mb3Jlc2VlLmNvbSIsIHBvd2VyZWRieVRleHQ6ICJEw6l2ZWxvcHDDqSBwYXIgRm9yZVNlZSIsIGVtYWlsUGxhY2Vob2xkZXI6ICJWb3RyZSBhZHJlc3NlIMOpbGVjdHJvbmlxdWUuLi4iLCBzdWJtaXRCdXR0b246ICJTb3VtZXR0cmUiLCB0ZXh0RGlzY2xhaW1lcjogIkVuIGZvdXJuaXNzYW50IHZvdHJlIG51bcOpcm8sIHZvdXMgY29uc2VudGV6IMOgIHBhcnRpY2lwZXIgw6AgdW4gc29uZGFnZSBGb3Jlc2VlLiBEZXMgdGFyaWZzIGRlIG1lc3NhZ2VyaWUgZXQgZGUgdHJhbnNmZXJ0IGRlIGRvbm7DqWVzIHBldXZlbnQgc+KAmWFwcGxpcXVlci4gRGV1eCBtZXNzYWdlcyBwYXIgc29uZGFnZS4iLCBlbWFpbERpc2NsYWltZXI6ICIiLCBwcml2YWN5UG9saWN5TGluazogImh0dHA6Ly93d3cuZm9yZXNlZS5jb20vYWJvdXQtdXMvcHJpdmFjeS1wb2xpY3kvZnJhbmNlLyIsIHByaXZhY3lQb2xpY3lUZXh0OiAiVGVybWVzIGV0IGNvbmRpdGlvbnMiLCB0ZXJtc0FuZENvbmRpdGlvblRleHQ6ICJUZXJtZXMgZXQgY29uZGl0aW9ucyIsIGVtYWlsSW52YWxpZGF0aW9uOiAiVmV1aWxsZXogZW50cmVyIHVuZSBhZHJlc3NlIGRlIGNvdXJyaWVsIHZhbGlkZSIsIHRleHRJbnZhbGlkYXRpb246ICJWZXVpbGxleiBlbnRyZXIgdW4gbnVtw6lybyBkZSBjZWxsdWxhaXJlIHZhbGlkZSIsIG9uZXhpdGhlYWRsaW5lOiAiTWVyY2khIiwgb25leGl0c3ViaGVhZGxpbmU6ICJOb3VzIGNvbW11bmlxdWVyb25zIGF2ZWMgdm91cyBhcHLDqHMgbGEgdmlzaXRlIGRlIG5vdHJlIHNpdGUuIiwgb25leGl0Y291bnRlcnRhZzogIlJldmVuaXIgZGFucyAiLCBvbmV4aXRjb3VudGVydmFsIDogIjgiLCB0aGVtZSA6ICJtYWluIiB9IH0gXSB9LCBxdWFsaWZpZXIgOiB7IHVzZVF1YWxpZmllciA6IGZhbHNlIH0sIHJlbWluZGVyIDogeyB1c2VSZW1pbmRlciA6IGZhbHNlIH0gfSkg', 'KHsgbmFtZSA6ICd0YWJsZXRfYXJhJywgbGFuZ3VhZ2UgOiB7IGxvY2FsZSA6ICdhcmEnIH0sIGN4UmVjb3JkIDogZmFsc2UsIGNyaXRlcmlhIDogeyBzcCA6IHsgcmVnIDogNjAsIG91dHJlcGxheXBvb2wgOiAwIH0sIGxmIDogMiwgc3VwcG9ydHNTbWFydFBob25lcyA6IGZhbHNlLCBzdXBwb3J0c1RhYmxldHMgOiB0cnVlLCBzdXBwb3J0c0Rlc2t0b3AgOiBmYWxzZSB9LCBpbmNsdWRlIDogeyB1cmxzIDogWyAnKmFsYmFua2FsZGF3bGkub3JnKicsICcqaHR0cDovL3diYXItc3RhZ2U2Mi5hZG9iZWNxbXMubmV0KicgXSwgcmVmZXJyZXJzIDogW10sIHVzZXJBZ2VudHMgOiBbXSwgYnJvd3NlcnMgOiBbXSwgY29va2llcyA6IFtdLCB2YXJpYWJsZXMgOiBbXSB9LCBpbnZpdGVFeGNsdWRlIDogeyB1cmxzIDogW10sIHJlZmVycmVycyA6IFtdLCB1c2VyQWdlbnRzIDogW10sIGJyb3dzZXJzIDogW10sIGNvb2tpZXMgOiBbXSwgdmFyaWFibGVzIDogW10gfSwgcGF0dGVybiA6ICd1cmwnLCBzZWxlY3RNb2RlIDogJ2RlZmF1bHQnLCBsaW5rcyA6IHsgY2FuY2VsIDogW10sIHN1cnZleSA6IFtdLCB0cmFja2VyIDogW10gfSwgZGlzcGxheSA6IHsgbW9iaWxlIDogWyB7IGRpc3BsYXluYW1lIDogJ2RlZmF1bHQnLCB0ZW1wbGF0ZSA6ICdAbW9iaWxlX2FyJywgaW52aXRlTG9nbyA6ICJ3Yi1nbG9iZS5qcGciLCB0cmFja2VyTG9nbyA6ICJ3Yi1nbG9iZS5qcGciLCBzaXRlTG9nb1RpdGxlVGV4dCA6ICIiLCBzaXRlTG9nb0FsdFRleHQgOiAiIiwgdmVuZG9yTG9nbyA6ICJmc2xvZ28uc3ZnIiwgdmVuZG9yTG9nb1BORyA6ICJmc2xvZ28ucG5nIiwgdmVuZG9yVGl0bGVUZXh0IDogIkZvcmVTZWUiLCB2ZW5kb3JBbHRUZXh0IDogIkZvcmVTZWUgTG9nbyIsIGhpZGVGb3JlU2VlTG9nb01vYmlsZSA6IGZhbHNlLCB0cnVzdGVMb2dvQWx0VGV4dCA6ICJWYWxpZGF0ZSBUUlVTVGUgUHJpdmFjeSBDZXJ0aWZpY2F0aW9uIiwgaW52aXRlVHlwZSA6ICdFTUFJTCcsIGRpYWxvZyA6IHsgaGVhZGxpbmU6ICLZhtmI2K8g2LHYo9mK2YPZhTomcmxtOyIsIHN1YmhlYWRsaW5lOiAi2LnZhNmJINiq2KzYsdio2Kkg2KfZhNiq2LXZgditINio2KfZhNis2YfYp9iyINin2YTZhdit2YXZiNmEINin2YTYrtin2LUg2KjZg9iMINi52YXZhNmG2Kcg2KfZhNil2YbZhdin2KbZitiMINmI2KPZiNmE2YjZitin2KrZg9mFINmB2YrZhdinINmK2KrYudmE2YIg2KjYp9mE2KrZhtmF2YrYqS4mcmxtOyDYqtiz2KfYudiv2YbYpyDYqti52YTZitmC2KfYqtmD2YUg2YHZiiDYqtit2LPZitmGINi52YXZhNmG2KcuJnJsbTsiLCBkZWNsaW5lQnV0dG9uOiAi2YTYp9iMINi02YPYsdmL2KciLCBhY2NlcHRCdXR0b246ICLZhti52YXYjCDYs9ij2LPYp9i52K8iLCBlbWFpbEJ1dHRvbjogItmG2LnZhdiMINij2LHYs9mEINmE2Yog2YXYs9itINin2LPYqtmC2LXYp9im2Yog2YXZiNis2LLYpyIsIHBvd2VyZWRieUxpbms6ICJodHRwOi8vd3d3LmZvcmVzZWUuY29tIiwgcG93ZXJlZGJ5VGV4dDogItmF2K/YudmI2YUg2YXZhiBGb3JlU2VlIiwgZW1haWxQbGFjZWhvbGRlcjogIti52YbZiNin2YYg2KjYsdmK2K/ZgyDYp9mE2KXZhNmD2KrYsdmI2YbZiuKApiZybG07Iiwgc3VibWl0QnV0dG9uOiAi2KXYsdiz2KfZhCIsIGVtYWlsRGlzY2xhaW1lcjogIiIsIHRlcm1zQW5kQ29uZGl0aW9uVGV4dDogItin2YTYtNix2YjYtyDZiNin2YTYqNmG2YjYryIsIHByaXZhY3lQb2xpY3lMaW5rOiAiaHR0cDovL3d3dy5mb3Jlc2VlLmNvbS9hYm91dC11cy9wcml2YWN5LXBvbGljeS8iLCBwcml2YWN5UG9saWN5VGV4dDogItiz2YrYp9iz2Kkg2K7YtdmI2LXZitipIiwgZW1haWxJbnZhbGlkYXRpb246ICLZitmP2LHYrNmJINil2K/Yrtin2YQg2LnZhtmI2KfZhiDYqNix2YrYryDYpdmE2YPYqtix2YjZhtmKINi12KfZhNitIiwgb25leGl0aGVhZGxpbmU6ICLYtNmD2LHZi9inISZybG07Iiwgb25leGl0c3ViaGVhZGxpbmU6ICLYs9mG2KrYtdmEINio2YMg2KjYudivINij2YYg2KrZhtiq2YfZii/YqtmG2KrZh9mK2YYg2YXZhiDZhdmI2YLYudmG2KcuJnJsbTsiLCBvbmV4aXRjb3VudGVydGFnOiAi2KfZhNi52YjYr9ipINmB2Yog2LjYsdmBICIsIG9uZXhpdGNvdW50ZXJ2YWwgOiAiOCIsIHRoZW1lIDogIm1haW4iIH0gfSBdIH0sIHF1YWxpZmllciA6IHsgdXNlUXVhbGlmaWVyIDogZmFsc2UgfSwgcmVtaW5kZXIgOiB7IHVzZVJlbWluZGVyIDogZmFsc2UgfSB9KSA=', 'KHsgbmFtZSA6ICdtb2JpbGVfd2ViX2FyYScsIGxhbmd1YWdlIDogeyBsb2NhbGUgOiAnYXJhJyB9LCBjeFJlY29yZCA6IGZhbHNlLCBjcml0ZXJpYSA6IHsgc3AgOiB7IHJlZyA6IDYwLCBvdXRyZXBsYXlwb29sIDogMCB9LCBsZiA6IDIsIHN1cHBvcnRzU21hcnRQaG9uZXMgOiB0cnVlLCBzdXBwb3J0c1RhYmxldHMgOiBmYWxzZSwgc3VwcG9ydHNEZXNrdG9wIDogZmFsc2UgfSwgaW5jbHVkZSA6IHsgdXJscyA6IFsgJyphbGJhbmthbGRhd2xpLm9yZyonLCAnKmh0dHA6Ly93YmFyLXN0YWdlNjIuYWRvYmVjcW1zLm5ldConIF0sIHJlZmVycmVycyA6IFtdLCB1c2VyQWdlbnRzIDogW10sIGJyb3dzZXJzIDogW10sIGNvb2tpZXMgOiBbXSwgdmFyaWFibGVzIDogW10gfSwgaW52aXRlRXhjbHVkZSA6IHsgdXJscyA6IFtdLCByZWZlcnJlcnMgOiBbXSwgdXNlckFnZW50cyA6IFtdLCBicm93c2VycyA6IFtdLCBjb29raWVzIDogW10sIHZhcmlhYmxlcyA6IFtdIH0sIHBhdHRlcm4gOiAndXJsJywgc2VsZWN0TW9kZSA6ICdkZWZhdWx0JywgbGlua3MgOiB7IGNhbmNlbCA6IFtdLCBzdXJ2ZXkgOiBbXSwgdHJhY2tlciA6IFtdIH0sIGRpc3BsYXkgOiB7IG1vYmlsZSA6IFsgeyBkaXNwbGF5bmFtZSA6ICdkZWZhdWx0JywgdGVtcGxhdGUgOiAnQG1vYmlsZV9hcicsIGludml0ZUxvZ28gOiAid29ybGRiYW5rX2xvZ29fMzE1MjAxOC5qcGciLCB0cmFja2VyTG9nbyA6ICJ3b3JsZGJhbmtfbG9nb18zMTUyMDE4LmpwZyIsIHNpdGVMb2dvVGl0bGVUZXh0IDogIiIsIHNpdGVMb2dvQWx0VGV4dCA6ICIiLCB2ZW5kb3JMb2dvIDogImZzbG9nby5zdmciLCB2ZW5kb3JMb2dvUE5HIDogImZzbG9nby5wbmciLCB2ZW5kb3JUaXRsZVRleHQgOiAiRm9yZVNlZSIsIHZlbmRvckFsdFRleHQgOiAiRm9yZVNlZSBMb2dvIiwgaGlkZUZvcmVTZWVMb2dvTW9iaWxlIDogZmFsc2UsIHRydXN0ZUxvZ29BbHRUZXh0IDogIlZhbGlkYXRlIFRSVVNUZSBQcml2YWN5IENlcnRpZmljYXRpb24iLCBpbnZpdGVUeXBlIDogJ0VNQUlMJywgZGlhbG9nIDogeyBoZWFkbGluZTogItmG2YjYryDYsdij2YrZg9mFOiZybG07Iiwgc3ViaGVhZGxpbmU6ICLYudmE2Ykg2KrYrNix2KjYqSDYp9mE2KrYtdmB2K0g2KjYp9mE2KzZh9in2LIg2KfZhNmF2K3ZhdmI2YQg2KfZhNiu2KfYtSDYqNmD2Iwg2LnZhdmE2YbYpyDYp9mE2KXZhtmF2KfYptmK2Iwg2YjYo9mI2YTZiNmK2KfYqtmD2YUg2YHZitmF2Kcg2YrYqti52YTZgiDYqNin2YTYqtmG2YXZitipLiZybG07INiq2LPYp9i52K/ZhtinINiq2LnZhNmK2YLYp9iq2YPZhSDZgdmKINiq2K3Ys9mK2YYg2LnZhdmE2YbYpy4mcmxtOyIsIGRlY2xpbmVCdXR0b246ICLZhNin2Iwg2LTZg9ix2YvYpyIsIGFjY2VwdEJ1dHRvbjogItmG2LnZhdiMINiz2KPYs9in2LnYryIsIGVtYWlsQnV0dG9uOiAi2YbYudmF2Iwg2KPYsdiz2YQg2YTZiiDZhdiz2K0g2KfYs9iq2YLYtdin2KbZiiDZhdmI2KzYstinIiwgcG93ZXJlZGJ5TGluazogImh0dHA6Ly93d3cuZm9yZXNlZS5jb20iLCBwb3dlcmVkYnlUZXh0OiAi2YXYr9i52YjZhSDZhdmGIEZvcmVTZWUiLCBlbWFpbFBsYWNlaG9sZGVyOiAi2LnZhtmI2KfZhiDYqNix2YrYr9mDINin2YTYpdmE2YPYqtix2YjZhtmK4oCmJnJsbTsiLCBzdWJtaXRCdXR0b246ICLYpdix2LPYp9mEIiwgZW1haWxEaXNjbGFpbWVyOiAiIiwgdGVybXNBbmRDb25kaXRpb25UZXh0OiAi2KfZhNi02LHZiNi3INmI2KfZhNio2YbZiNivIiwgcHJpdmFjeVBvbGljeUxpbms6ICJodHRwOi8vd3d3LmZvcmVzZWUuY29tL2Fib3V0LXVzL3ByaXZhY3ktcG9saWN5LyIsIHByaXZhY3lQb2xpY3lUZXh0OiAi2LPZitin2LPYqSDYrti12YjYtdmK2KkiLCBlbWFpbEludmFsaWRhdGlvbjogItmK2Y/Ysdis2Ykg2KXYr9iu2KfZhCDYudmG2YjYp9mGINio2LHZitivINil2YTZg9iq2LHZiNmG2Yog2LXYp9mE2K0iLCBvbmV4aXRoZWFkbGluZTogIti02YPYsdmL2KchJnJsbTsiLCBvbmV4aXRzdWJoZWFkbGluZTogItiz2YbYqti12YQg2KjZgyDYqNi52K8g2KPZhiDYqtmG2KrZh9mKL9iq2YbYqtmH2YrZhiDZhdmGINmF2YjZgti52YbYpy4mcmxtOyIsIG9uZXhpdGNvdW50ZXJ0YWc6ICLYp9mE2LnZiNiv2Kkg2YHZiiDYuNix2YEgIiwgb25leGl0Y291bnRlcnZhbCA6ICI4IiwgdGhlbWUgOiAibWFpbiIgfSB9IF0gfSwgcXVhbGlmaWVyIDogeyB1c2VRdWFsaWZpZXIgOiBmYWxzZSB9LCByZW1pbmRlciA6IHsgdXNlUmVtaW5kZXIgOiBmYWxzZSB9IH0pIA==', 'KHsgbmFtZSA6ICd0YWJsZXQnLCBsYW5ndWFnZSA6IHsgbG9jYWxlIDogJ2VuZycgfSwgY3hSZWNvcmQgOiBmYWxzZSwgY3JpdGVyaWEgOiB7IHNwIDogeyByZWcgOiA0MCwgb3V0cmVwbGF5cG9vbCA6IDAgfSwgbGYgOiAyLCBzdXBwb3J0c1NtYXJ0UGhvbmVzIDogZmFsc2UsIHN1cHBvcnRzVGFibGV0cyA6IHRydWUsIHN1cHBvcnRzRGVza3RvcCA6IGZhbHNlIH0sIGluY2x1ZGUgOiB7IHVybHMgOiBbICcqd29ybGRiYW5rLm9yZyonLCAnKmh0dHA6Ly93Yi1zdGFnZTYyLmFkb2JlY3Ftcy5uZXQvKicsICcqaHR0cDovL25saXZlLmV4dGNjLmNvbS8qJywgJypodHRwOi8vd2JydS1zdGFnZTYyLmFkb2JlY3Ftcy5uZXQqJywgJypodHRwOi8vd2J6aC1zdGFnZTYyLmFkb2JlY3Ftcy5uZXQqJyBdLCByZWZlcnJlcnMgOiBbXSwgdXNlckFnZW50cyA6IFtdLCBicm93c2VycyA6IFtdLCBjb29raWVzIDogW10sIHZhcmlhYmxlcyA6IFtdIH0sIGludml0ZUV4Y2x1ZGUgOiB7IHVybHMgOiBbXSwgcmVmZXJyZXJzIDogW10sIHVzZXJBZ2VudHMgOiBbXSwgYnJvd3NlcnMgOiBbXSwgY29va2llcyA6IFtdLCB2YXJpYWJsZXMgOiBbXSB9LCBwYXR0ZXJuIDogJ3VybCcsIHNlbGVjdE1vZGUgOiAnZGVmYXVsdCcsIGxpbmtzIDogeyBjYW5jZWwgOiBbXSwgc3VydmV5IDogW10sIHRyYWNrZXIgOiBbXSB9LCBkaXNwbGF5IDogeyBtb2JpbGUgOiBbIHsgZGlzcGxheW5hbWUgOiAnZGVmYXVsdCcsIHRlbXBsYXRlIDogJ21vYmlsZScsIGludml0ZUxvZ28gOiAid2ItZ2xvYmUuanBnIiwgdHJhY2tlckxvZ28gOiAid2ItZ2xvYmUuanBnIiwgc2l0ZUxvZ29UaXRsZVRleHQgOiAiIiwgc2l0ZUxvZ29BbHRUZXh0IDogIiIsIHZlbmRvckxvZ28gOiAiZnNsb2dvLnN2ZyIsIHZlbmRvckxvZ29QTkcgOiAiZnNsb2dvLnBuZyIsIHZlbmRvclRpdGxlVGV4dCA6ICJGb3JlU2VlIiwgdmVuZG9yQWx0VGV4dCA6ICJGb3JlU2VlIExvZ28iLCBoaWRlRm9yZVNlZUxvZ29Nb2JpbGUgOiBmYWxzZSwgdHJ1c3RlTG9nb0FsdFRleHQgOiAiVmFsaWRhdGUgVFJVU1RlIFByaXZhY3kgQ2VydGlmaWNhdGlvbiIsIGludml0ZVR5cGUgOiAnRU1BSUwnLCBkaWFsb2cgOiB7IGhlYWRsaW5lIDogIldlJ2QgbGlrZSB5b3VyIG9waW5pb246Iiwgc3ViaGVhZGxpbmUgOiAiT24geW91ciBtb2JpbGUgYnJvd3NpbmcgZXhwZXJpZW5jZSwgb3VyIGRldmVsb3BtZW50IHdvcmssIHlvdXIgZGV2ZWxvcG1lbnQgcHJpb3JpdGllcy4gPHNwYW4gc3R5bGU9J2ZvbnQtd2VpZ2h0OiBib2xkJz5Zb3VyIGZlZWRiYWNrIGhlbHBzIHVzIGltcHJvdmUgb3VyIHdvcmsuPC9zcGFuPiIsIGRlY2xpbmVCdXR0b24gOiAiTm8sIHRoYW5rcyIsIGFjY2VwdEJ1dHRvbiA6ICJZZXMsIEknbGwgaGVscCIsIGVtYWlsQnV0dG9uIDogIlllcywgZW1haWwgbWUgYSBicmllZiBzdXJ2ZXkiLCB0ZXh0QnV0dG9uIDogIlRleHQgbWUiLCBwb3dlcmVkYnlMaW5rIDogImh0dHA6Ly93d3cuZm9yZXNlZS5jb20iLCBwb3dlcmVkYnlUZXh0IDogIlBvd2VyZWQgYnkgRm9yZVNlZSIsIGVtYWlsUGxhY2Vob2xkZXIgOiAiWW91ciBlbWFpbC4uLiIsIHRleHRQbGFjZWhvbGRlciA6ICJZb3VyIGNlbGxwaG9uZSBudW1iZXIuLi4iLCBzdWJtaXRCdXR0b24gOiAiU3VibWl0IiwgdGV4dERpc2NsYWltZXIgOiAiUHJvdmlkaW5nIHlvdXIgbnVtYmVyIG1lYW5zIHlvdSBhcmUgcGFydGljaXBhdGluZyBpbiBhIEZvcmVTZWUgc3VydmV5LiBNZXNzYWdlICZhbXA7IGRhdGEgcmF0ZXMgbWF5IGFwcGx5LiAyIG1lc3NhZ2VzIHBlciBzdXJ2ZXkuIiwgZW1haWxEaXNjbGFpbWVyIDogIiIsIHRlcm1zQW5kQ29uZGl0aW9uVGV4dCA6ICJUZXJtcyBhbmQgQ29uZGl0aW9ucyIsIHByaXZhY3lQb2xpY3lMaW5rIDogImh0dHA6Ly93d3cuZm9yZXNlZS5jb20vc21zLXRlcm1zLWFuZC1jb25kaXRpb25zIiwgcHJpdmFjeVBvbGljeVRleHQgOiAiUHJpdmFjeSBQb2xpY3kiLCBlbWFpbEludmFsaWRhdGlvbiA6ICJQbGVhc2UgZW50ZXIgYSB2YWxpZCBlbWFpbCIsIHRleHRJbnZhbGlkYXRpb24gOiAiUGxlYXNlIGVudGVyIGEgdmFsaWQgY2VsbHBob25lIG51bWJlciIsIG9uZXhpdGhlYWRsaW5lIDogIlRoYW5rIHlvdSEiLCBuZXhpdHN1YmhlYWRsaW5lIDogIldlJ2xsIHJlYWNoIG91dCB0byB5b3UgYWZ0ZXIgeW91IGZpbmlzaCBvbiBvdXIgc2l0ZS4iLCBvbmV4aXRjb3VudGVydGFnIDogIlJldHVybmluZyBpbiAiLCBvbmV4aXRjb3VudGVydmFsIDogIjgiLCB0aGVtZSA6ICJtYWluIiB9IH0gXSB9LCBxdWFsaWZpZXIgOiB7IHVzZVF1YWxpZmllciA6IGZhbHNlIH0sIHJlbWluZGVyIDogeyB1c2VSZW1pbmRlciA6IGZhbHNlIH0gfSkg', 'KHsgbmFtZSA6ICdtb2JpbGVfd2ViJywgbGFuZ3VhZ2UgOiB7IGxvY2FsZSA6ICdlbmcnIH0sIGN4UmVjb3JkIDogZmFsc2UsIGNyaXRlcmlhIDogeyBzcCA6IHsgcmVnIDogNDAsIG91dHJlcGxheXBvb2wgOiAwIH0sIGxmIDogMiwgc3VwcG9ydHNTbWFydFBob25lcyA6IHRydWUsIHN1cHBvcnRzVGFibGV0cyA6IGZhbHNlLCBzdXBwb3J0c0Rlc2t0b3AgOiBmYWxzZSB9LCBpbmNsdWRlIDogeyB1cmxzIDogWyAnKndvcmxkYmFuay5vcmcqJywgJypodHRwOi8vd2Itc3RhZ2U2Mi5hZG9iZWNxbXMubmV0LyonLCAnKmh0dHA6Ly9ubGl2ZS5leHRjYy5jb20vKicsICcqaHR0cDovL3dicnUtc3RhZ2U2Mi5hZG9iZWNxbXMubmV0KicsICcqaHR0cDovL3diemgtc3RhZ2U2Mi5hZG9iZWNxbXMubmV0KicgXSwgcmVmZXJyZXJzIDogW10sIHVzZXJBZ2VudHMgOiBbXSwgYnJvd3NlcnMgOiBbXSwgY29va2llcyA6IFtdLCB2YXJpYWJsZXMgOiBbXSB9LCBpbnZpdGVFeGNsdWRlIDogeyB1cmxzIDogW10sIHJlZmVycmVycyA6IFtdLCB1c2VyQWdlbnRzIDogW10sIGJyb3dzZXJzIDogW10sIGNvb2tpZXMgOiBbXSwgdmFyaWFibGVzIDogW10gfSwgcGF0dGVybiA6ICd1cmwnLCBzZWxlY3RNb2RlIDogJ2RlZmF1bHQnLCBsaW5rcyA6IHsgY2FuY2VsIDogW10sIHN1cnZleSA6IFtdLCB0cmFja2VyIDogW10gfSwgZGlzcGxheSA6IHsgbW9iaWxlIDogWyB7IGRpc3BsYXluYW1lIDogJ2RlZmF1bHQnLCB0ZW1wbGF0ZSA6ICdtb2JpbGUnLCBpbnZpdGVMb2dvIDogIndiLWdsb2JlLmpwZyIsIHRyYWNrZXJMb2dvIDogIndiLWdsb2JlLmpwZyIsIHNpdGVMb2dvVGl0bGVUZXh0IDogIiIsIHNpdGVMb2dvQWx0VGV4dCA6ICIiLCB2ZW5kb3JMb2dvIDogImZzbG9nby5zdmciLCB2ZW5kb3JMb2dvUE5HIDogImZzbG9nby5wbmciLCB2ZW5kb3JUaXRsZVRleHQgOiAiRm9yZVNlZSIsIHZlbmRvckFsdFRleHQgOiAiRm9yZVNlZSBMb2dvIiwgaGlkZUZvcmVTZWVMb2dvTW9iaWxlIDogZmFsc2UsIHRydXN0ZUxvZ29BbHRUZXh0IDogIlZhbGlkYXRlIFRSVVNUZSBQcml2YWN5IENlcnRpZmljYXRpb24iLCBpbnZpdGVUeXBlIDogJ0VNQUlMJywgZGlhbG9nIDogeyBoZWFkbGluZSA6ICJXZSdkIGxpa2UgeW91ciBvcGluaW9uOiIsIHN1YmhlYWRsaW5lIDogIk9uIHlvdXIgbW9iaWxlIGJyb3dzaW5nIGV4cGVyaWVuY2UsIG91ciBkZXZlbG9wbWVudCB3b3JrLCB5b3VyIGRldmVsb3BtZW50IHByaW9yaXRpZXMuIDxzcGFuIHN0eWxlPSdmb250LXdlaWdodDogYm9sZCc+WW91ciBmZWVkYmFjayBoZWxwcyB1cyBpbXByb3ZlIG91ciB3b3JrLjwvc3Bhbj4iLCBkZWNsaW5lQnV0dG9uIDogIk5vLCB0aGFua3MiLCBhY2NlcHRCdXR0b24gOiAiWWVzLCBJJ2xsIGhlbHAiLCBlbWFpbEJ1dHRvbiA6ICJZZXMsIGVtYWlsIG1lIGEgYnJpZWYgc3VydmV5IiwgdGV4dEJ1dHRvbiA6ICJUZXh0IG1lIiwgcG93ZXJlZGJ5TGluayA6ICJodHRwOi8vd3d3LmZvcmVzZWUuY29tIiwgcG93ZXJlZGJ5VGV4dCA6ICJQb3dlcmVkIGJ5IEZvcmVTZWUiLCBlbWFpbFBsYWNlaG9sZGVyIDogIllvdXIgZW1haWwuLi4iLCB0ZXh0UGxhY2Vob2xkZXIgOiAiWW91ciBjZWxscGhvbmUgbnVtYmVyLi4uIiwgc3VibWl0QnV0dG9uIDogIlN1Ym1pdCIsIHRleHREaXNjbGFpbWVyIDogIlByb3ZpZGluZyB5b3VyIG51bWJlciBtZWFucyB5b3UgYXJlIHBhcnRpY2lwYXRpbmcgaW4gYSBGb3JlU2VlIHN1cnZleS4gTWVzc2FnZSAmYW1wOyBkYXRhIHJhdGVzIG1heSBhcHBseS4gMiBtZXNzYWdlcyBwZXIgc3VydmV5LiIsIGVtYWlsRGlzY2xhaW1lciA6ICIiLCB0ZXJtc0FuZENvbmRpdGlvblRleHQgOiAiVGVybXMgYW5kIENvbmRpdGlvbnMiLCBwcml2YWN5UG9saWN5TGluayA6ICJodHRwOi8vd3d3LmZvcmVzZWUuY29tL3Ntcy10ZXJtcy1hbmQtY29uZGl0aW9ucyIsIHByaXZhY3lQb2xpY3lUZXh0IDogIlByaXZhY3kgUG9saWN5IiwgZW1haWxJbnZhbGlkYXRpb24gOiAiUGxlYXNlIGVudGVyIGEgdmFsaWQgZW1haWwiLCB0ZXh0SW52YWxpZGF0aW9uIDogIlBsZWFzZSBlbnRlciBhIHZhbGlkIGNlbGxwaG9uZSBudW1iZXIiLCBvbmV4aXRoZWFkbGluZSA6ICJUaGFuayB5b3UhIiwgbmV4aXRzdWJoZWFkbGluZSA6ICJXZSdsbCByZWFjaCBvdXQgdG8geW91IGFmdGVyIHlvdSBmaW5pc2ggb24gb3VyIHNpdGUuIiwgb25leGl0Y291bnRlcnRhZyA6ICJSZXR1cm5pbmcgaW4gIiwgb25leGl0Y291bnRlcnZhbCA6ICI4IiwgdGhlbWUgOiAibWFpbiIgfSB9IF0gfSwgcXVhbGlmaWVyIDogeyB1c2VRdWFsaWZpZXIgOiBmYWxzZSB9LCByZW1pbmRlciA6IHsgdXNlUmVtaW5kZXIgOiBmYWxzZSB9IH0pIA==', 'KHsgbmFtZSA6ICd3b3JsZGJhbmtfc3BhJywgbGFuZ3VhZ2UgOiB7IGxvY2FsZSA6ICdzcGEnIH0sIGN4UmVjb3JkIDogZmFsc2UsIGNyaXRlcmlhIDogeyBzcCA6IHsgcmVnIDogMTUsIG91dHJlcGxheXBvb2wgOiAwIH0sIGxmIDogNCwgc3VwcG9ydHNTbWFydFBob25lcyA6IGZhbHNlLCBzdXBwb3J0c1RhYmxldHMgOiBmYWxzZSwgc3VwcG9ydHNEZXNrdG9wIDogdHJ1ZSB9LCBpbmNsdWRlIDogeyB1cmxzIDogWyAnKmJhbmNvbXVuZGlhbC5vcmcqJywgJypodHRwOi8vd2Jlcy1zdGFnZTYyLmFkb2JlY3Ftcy5uZXQqJyBdLCByZWZlcnJlcnMgOiBbXSwgdXNlckFnZW50cyA6IFtdLCBicm93c2VycyA6IFtdLCBjb29raWVzIDogW10sIHZhcmlhYmxlcyA6IFtdIH0sIGludml0ZUV4Y2x1ZGUgOiB7IHVybHMgOiBbXSwgcmVmZXJyZXJzIDogW10sIHVzZXJBZ2VudHMgOiBbXSwgYnJvd3NlcnMgOiBbXSwgY29va2llcyA6IFtdLCB2YXJpYWJsZXMgOiBbXSB9LCBwYXR0ZXJuIDogJ3VybCcsIHNlbGVjdE1vZGUgOiAnZGVmYXVsdCcsIGxpbmtzIDogeyBjYW5jZWwgOiBbXSwgc3VydmV5IDogW10sIHRyYWNrZXIgOiBbXSB9LCBkaXNwbGF5IDogeyBkZXNrdG9wIDogWyB7IGRpc3BsYXluYW1lIDogJ2RlZmF1bHQtQScsIHRlbXBsYXRlIDogJ2NsYXNzaWNkZXNrdG9wJywgaW52aXRlTG9nbyA6ICJzaXRlbG9nb19zcGEuZ2lmIiwgdHJhY2tlckxvZ28gOiAic2l0ZWxvZ29fc3BhLmdpZiIsIHNpdGVMb2dvVGl0bGVUZXh0IDogIiIsIHNpdGVMb2dvQWx0VGV4dCA6ICIiLCB2ZW5kb3JUaXRsZVRleHQgOiAiRm9yZVNlZSIsIHZlbmRvckFsdFRleHQgOiAiRm9yZVNlZSIsIGhpZGVGb3JlU2VlTG9nb0Rlc2t0b3AgOiB0cnVlLCB0cnVzdGVMb2dvQWx0VGV4dCA6ICJWYWxpZGF0ZSBvdXIgVHJ1c3QgQ2VydGlmaWNhdGlvbiIsIGludml0ZVR5cGUgOiAnSU5TRVNTSU9OJywgY2xvc2VDbGlja09uQmFja2Ryb3AgOiB0cnVlLCByZW1vdmVTdXJ2ZXlBbGVydHMgOiBmYWxzZSwgZGlhbG9nIDogeyBoZWFkbGluZSA6ICI8c3BhbiBzdHlsZT0nZm9udC1zaXplOjE2cHgnPkVsIEJhbmNvIE11bmRpYWwgYWdyYWRlY2Vyw61hIHN1IG9waW5pw7NuIHNvYnJlOjwvc3Bhbj4iLCBibHVyYiA6ICImIzgyMjY7IE51ZXN0cm8gdHJhYmFqbyBlbiBmYXZvciBkZWwgZGVzYXJyb2xsbyw8YnIvPiYjODIyNjsgU3VzIHByaW9yaWRhZGVzIHJlbGF0aXZhcyBhbCBkZXNhcnJvbGxvLDxici8+JiM4MjI2OyBTdSBleHBlcmllbmNpYSBlbiBudWVzdHJhIHDDoWdpbmEgd2ViLjxici8+PGJyLz5WYWxvcmFtb3MgbGFzIG9waW5pb25lcyBxdWUgcmVjaWJpbW9zIGRlIG51ZXN0cmEgYXVkaWVuY2lhLiA8c3BhbiBzdHlsZT0nZm9udC13ZWlnaHQ6IGJvbGQnPkdyYWNpYXMgcG9yIGF5dWRhcm5vcyBhIG1lam9yYXIgbnVlc3RybyB0cmFiYWpvLjwvc3Bhbj4iLCBub3RpY2VBYm91dFN1cnZleSA6ICIiLCBhdHRyaWJ1dGlvbiA6ICI8c3BhbiBzdHlsZT0nZm9udC1zaXplOiA5cHgnPkVzdGEgZW5jdWVzdGEgZXN0w6EgcmVhbGl6YWRhIHBvciBGb3JlU2VlLCBlbiBub21icmUgZGVsIEJhbmNvIE11bmRpYWwuPC9zcGFuPiIsIGNsb3NlSW52aXRlQnV0dG9uVGV4dCA6ICJIYWdhIGNsaWMgcGFyYSBjZXJyYXIuIiwgZGVjbGluZUJ1dHRvbiA6ICJObywgZ3JhY2lhcy4iLCBhY2NlcHRCdXR0b24gOiAiU8OtLCBkYXLDqSBtaSBvcGluacOzbi4iLCBhY2NlcHRCdXR0b25UaXRsZVRleHQgOiAiU8OtLCBkYXLDqSBtaSBvcGluacOzbiAoU2UgYWJyaXLDoSBlbiB1bmEgbnVldmEgdmVudGFuYSkiLCBlcnJvciA6ICJFcnJvciIsIHdhcm5MYXVuY2ggOiAiZXN0byBhYnJpcsOhIHVuYSBudWV2YSB2ZW50YW5hIiwgYWxsb3djbG9zZSA6IHRydWUsIHN1cnZleWF2YWlsYWJsZSA6ICJTdSBlbmN1ZXN0YSB5YSBlc3TDoSBkaXNwb25pYmxlIiwgdHJhY2tlclRpdGxlIDogJ0ZvcmVTZWUgLSBWZW50YW5hIFJhc3RyZWFkb3IgZW5jdWVzdGEnLCB0cmFja2VyQ2xpY2tUb1ZpZXcgOiAnSGFnYSBjbGljIHBhcmEgdmVyIGxhIGVuY3Vlc3RhLicsIHRyYWNrZXJQbHNMZWF2ZU9wZW4gOiAnRGVqZSBlc3RhIHZlbnRhbmEgYWJpZXJ0YS4nLCB0cmFja2VyQXRFbmQgOiAnQWwgZmluYWwgZGUgbGEgc2VzacOzbiwgaGFnYSBjbGljIGFxdcOtIHBhcmEgY29tZW56YXIgbGEgZW5jdWVzdGEuJywgdHJhY2tlckRlc2MxIDogIkxhIHZlbnRhbmEgZm9ybWEgcGFydGUgZGUgbGEgZW5jdWVzdGEgZGUgc2F0aXNmYWNjacOzbiBhbCBjbGllbnRlIHF1ZSB1c3RlZCBoYSBhY2NlZGlkbyBhIGNvbXBsZXRhciBlbiBlc3RlIHNpdGlvLiBQdWVkZSBoYWNlciBjbGljIGFxdcOtIGN1YW5kbyBlc3TDqSBwcmVwYXJhZG8gcGFyYSByZWFsaXphciBsYSBlbmN1ZXN0YSwgYXVucXVlIGRlYmVyw61hIGFjdGl2YXJzZSBwb3Igc8OtIG1pc21hIHBhc2Fkb3MgdW5vcyBtb21lbnRvcywgdW5hIHZleiBoYXlhIGFiYW5kb25hZG8gbGEgd2ViLiIsIHRyYWNrZXJEZXNjMiA6ICJEZWplIGVzdGEgdmVudGFuYSBhYmllcnRhIGhhc3RhIHF1ZSBoYXlhIGZpbmFsaXphZG8gc3UgdmlzaXRhIGEgZXN0YSB3ZWIuIEVzdGEgdmVudGFuYSBmb3JtYSBwYXJ0ZSBkZSBsYSBlbmN1ZXN0YSBkZSBzYXRpc2ZhY2Npw7NuIGFsIGNsaWVudGUgcXVlIHVzdGVkIGhhIGFjY2VkaWRvIGEgY29tcGxldGFyIGVuIGVzdGEgd2ViLiBQdWVkZSBoYWNlciBjbGljIGFxdcOtIGN1YW5kbyBlc3TDqSBwcmVwYXJhZG8gcGFyYSByZWFsaXphciBsYSBlbmN1ZXN0YSwgYXVucXVlIGRlYmVyw61hIGFjdGl2YXJzZSBwb3Igc8OtIG1pc21hIHBhc2Fkb3MgdW5vcyBtb21lbnRvcywgdW5hIHZleiBoYXlhIGFiYW5kb25hZG8gbGEgd2ViLiIsIHRyYWNrZXJEZXNjMyA6ICJMZSBhZ3JhZGVjZW1vcyBxdWUgbm9zIGF5dWRlIGEgbWVqb3JhciBzdSBleHBlcmllbmNpYSBlbiBlc3RhIHdlYi4gRXN0YSBlbmN1ZXN0YSBzZSByZWFsaXphIGEgdHJhdsOpcyBkZSB1bmEgZW1wcmVzYSBpbmRlcGVuZGllbnRlLCBGb3JlU2VlLCBlbiBub21icmUgZGUgbGEgd2ViIHF1ZSB1c3RlZCBlc3TDoSB2aXNpdGFuZG8uIiwgdHJhY2tlckNvcnAgOiAnRm9yZVNlZS4gVG9kb3MgbG9zIGRlcmVjaG9zIHJlc2VydmFkb3MuJywgdHJhY2tlclByaXZhY3kgOiAnUHJpdmFjaWRhZCcgfSB9IF0gfSwgcXVhbGlmaWVyIDogeyB1c2VRdWFsaWZpZXIgOiBmYWxzZSB9LCByZW1pbmRlciA6IHsgdXNlUmVtaW5kZXIgOiBmYWxzZSB9IH0pIA==', 'KHsgbmFtZSA6ICd3b3JsZGJhbmtfZnJlJywgbGFuZ3VhZ2UgOiB7IGxvY2FsZSA6ICdmcmUnIH0sIGN4UmVjb3JkIDogZmFsc2UsIGNyaXRlcmlhIDogeyBzcCA6IHsgcmVnIDogMTUsIG91dHJlcGxheXBvb2wgOiAwIH0sIGxmIDogNCwgc3VwcG9ydHNTbWFydFBob25lcyA6IGZhbHNlLCBzdXBwb3J0c1RhYmxldHMgOiBmYWxzZSwgc3VwcG9ydHNEZXNrdG9wIDogdHJ1ZSB9LCBpbmNsdWRlIDogeyB1cmxzIDogWyAnKmJhbnF1ZW1vbmRpYWxlLm9yZyonLCAnKmh0dHA6Ly93YmZyLXN0YWdlNjIuYWRvYmVjcW1zLm5ldConIF0sIHJlZmVycmVycyA6IFtdLCB1c2VyQWdlbnRzIDogW10sIGJyb3dzZXJzIDogW10sIGNvb2tpZXMgOiBbXSwgdmFyaWFibGVzIDogW10gfSwgaW52aXRlRXhjbHVkZSA6IHsgdXJscyA6IFtdLCByZWZlcnJlcnMgOiBbXSwgdXNlckFnZW50cyA6IFtdLCBicm93c2VycyA6IFtdLCBjb29raWVzIDogW10sIHZhcmlhYmxlcyA6IFtdIH0sIHBhdHRlcm4gOiAndXJsJywgc2VsZWN0TW9kZSA6ICdkZWZhdWx0JywgbGlua3MgOiB7IGNhbmNlbCA6IFtdLCBzdXJ2ZXkgOiBbXSwgdHJhY2tlciA6IFtdIH0sIGRpc3BsYXkgOiB7IGRlc2t0b3AgOiBbIHsgZGlzcGxheW5hbWUgOiAnZGVmYXVsdC1BJywgdGVtcGxhdGUgOiAnY2xhc3NpY2Rlc2t0b3AnLCBpbnZpdGVMb2dvIDogInNpdGVsb2dvX2ZyZS5naWYiLCB0cmFja2VyTG9nbyA6ICJzaXRlbG9nb19mcmUuZ2lmIiwgc2l0ZUxvZ29UaXRsZVRleHQgOiAiIiwgc2l0ZUxvZ29BbHRUZXh0IDogIiIsIHZlbmRvclRpdGxlVGV4dCA6ICJGb3JlU2VlIiwgdmVuZG9yQWx0VGV4dCA6ICJGb3JlU2VlIiwgaGlkZUZvcmVTZWVMb2dvRGVza3RvcCA6IHRydWUsIHRydXN0ZUxvZ29BbHRUZXh0IDogIlZhbGlkYXRlIG91ciBUcnVzdCBDZXJ0aWZpY2F0aW9uIiwgaW52aXRlVHlwZSA6ICdJTlNFU1NJT04nLCBjbG9zZUNsaWNrT25CYWNrZHJvcCA6IHRydWUsIHJlbW92ZVN1cnZleUFsZXJ0cyA6IGZhbHNlLCBkaWFsb2cgOiB7IGhlYWRsaW5lIDogIjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTRweCc+TGEgQmFucXVlIG1vbmRpYWxlIHNvdWhhaXRlIGNvbm5hw650cmUgdm90cmUgYXZpcyBzdXI6PC9zcGFuPiIsIGJsdXJiIDogIiYjODIyNjsgTm9zIGFjdGl2aXTDqXMgZW4gZmF2ZXVyIGR1IGTDqXZlbG9wcGVtZW50LDxici8+JiM4MjI2OyBWb3MgcHJpb3JpdMOpcyBlbiBtYXRpw6hyZSBkZSBkw6l2ZWxvcHBlbWVudCw8YnIvPiYjODIyNjsgVm90cmUgZXhww6lyaWVuY2Ugc3VyIG5vdHJlIHNpdGUgd2ViIGF1am91cmQnaHVpLjxici8+PGJyLz5Ob3VzIHNvbW1lcyByZWNvbm5haXNzYW50cyBwb3VyIHRvdXRlcyBsZXMgY29udHJpYnV0aW9ucyBxdWUgdm91cyBub3VzIGZhaXRlcyBwYXJ2ZW5pciBldCA8c3BhbiBzdHlsZT0nZm9udC13ZWlnaHQ6IGJvbGQnPnF1aSBub3VzIGFpZGVudCDDoCBhbcOpbGlvcmVyIG5vdHJlIHRyYXZhaWwuPC9zcGFuPiIsIG5vdGljZUFib3V0U3VydmV5IDogIiIsIGF0dHJpYnV0aW9uIDogIjxzcGFuIHN0eWxlPSdmb250LXNpemU6IDlweCc+Q2V0dGUgZW5xdcOqdGUgZXN0IG1lbsOpZSBwYXIgRm9yZVNlZSwgcG91ciBsYSBCYW5xdWUgbW9uZGlhbGUuPC9zcGFuPiIsIGNsb3NlSW52aXRlQnV0dG9uVGV4dCA6ICJDbGlxdWV6IHBvdXIgZmVybWVyLiIsIGRlY2xpbmVCdXR0b24gOiAiTm9uLCBtZXJjaS4iLCBhY2NlcHRCdXR0b24gOiAiT3VpLCBqJ2FjY2VwdGUuIiwgYWNjZXB0QnV0dG9uVGl0bGVUZXh0OiAiT3VpLCBqZSB2YWlzIHBhcnRpY2lwZXIgKE91dnJlIGRhbnMgdW5lIG5vdXZlbGxlIGZlbsOqdHJlKSIsIGVycm9yOiAiRXJyZXVyIiwgd2FybkxhdW5jaDogImNlbGEgdmEgbGFuY2VyIHVuZSBub3V2ZWxsZSBmZW7DqnRyZSIsIGFsbG93Y2xvc2U6IHRydWUsIHN1cnZleWF2YWlsYWJsZTogIkxlIHF1ZXN0aW9ubmFpcmUgZXN0IGTDqXNvcm1haXMgZGlzcG9uaWJsZS4iLCB0cmFja2VyVGl0bGU6ICdGb3JlU2VlIC0gRW5xdcOqdGUgVHJhY2tlciBGZW7DqnRyZScsIHRyYWNrZXJDbGlja1RvVmlldzogIkNsaXF1ZXogcG91ciB2b2lyIGwnZW5xdcOqdGUuIiwgdHJhY2tlclBsc0xlYXZlT3BlbjogJ1ZldWlsbGV6IGxhaXNzZXIgY2V0dGUgZmVuw6p0cmUgb3V2ZXJ0ZS4nLCB0cmFja2VyQXRFbmQgOiAnw4AgbGEgZmluIGRlIGxhIHNlc3Npb24sIGNsaXF1ZXogaWNpIHBvdXIgY29tbWVuY2VyIGxlIHF1ZXN0aW9ubmFpcmUuJywgdHJhY2tlckRlc2MxIDogIkNldHRlIGZlbsOqdHJlIGZhaXQgcGFydGllIGRlIGwnZW5xdcOqdGUgZGUgc2F0aXNmYWN0aW9uIGNsaWVudCDDoCBsYXF1ZWxsZSB2b3VzIGF2ZXogYWNjZXB0w6kgZGUgcsOpcG9uZHJlIHN1ciBjZSBzaXRlLiBWb3VzIHBvdXZleiBjbGlxdWVyIGljaSBsb3JzcXVlIHZvdXMgc2VyZXogcHLDqnQoZSkgw6AgcsOpcG9uZHJlIGF1IHF1ZXN0aW9ubmFpcmUgbWFpcyBlbGxlIGRldnJhaXQgc+KAmWFjdGl2ZXIgZOKAmWVsbGUtbcOqbWUgYXUgYm91dCBkZSBxdWVscXVlcyBpbnN0YW50cyBhcHLDqHMgcXVlIHZvdXMgYXlleiBxdWl0dMOpIGxlIHNpdGUuIiwgdHJhY2tlckRlc2MyIDogIlZldWlsbGV6IGxhaXNzZXIgY2V0dGUgZmVuw6p0cmUgb3V2ZXJ0ZSB0YW50IHF1ZSB2b3VzIG7igJlhdmV6IHBhcyB0ZXJtaW7DqSBjZSBxdWUgdm91cyBhdmlleiDDoCBmYWlyZSBzdXIgY2Ugc2l0ZS4gQ2V0dGUgZmVuw6p0cmUgZmFpdCBwYXJ0aWUgZGUgbCdlbnF1w6p0ZSBkZSBzYXRpc2ZhY3Rpb24gY2xpZW50IMOgIGxhcXVlbGxlIHZvdXMgYXZleiBhY2NlcHTDqSBkZSByw6lwb25kcmUgc3VyIGNlIHNpdGUuIFZvdXMgcG91dmV6IGNsaXF1ZXIgaWNpIGxvcnNxdWUgdm91cyBzZXJleiBwcsOqdChlKSDDoCByw6lwb25kcmUgYXUgcXVlc3Rpb25uYWlyZSBtYWlzIGVsbGUgZGV2cmFpdCBz4oCZYWN0aXZlciBk4oCZZWxsZS1tw6ptZSBhdSBib3V0IGRlIHF1ZWxxdWVzIGluc3RhbnRzIGFwcsOocyBxdWUgdm91cyBheWV6IHF1aXR0w6kgbGUgc2l0ZS4iLCB0cmFja2VyRGVzYzMgOiAnTWVyY2kgZGUgbm91cyBhaWRlciDDoCBhbcOpbGlvcmVyIHZvdHJlIGV4cMOpcmllbmNlIGRlIGNlIHNpdGUgV2ViLiBDZXR0ZSBlbnF1w6p0ZSBlc3QgcsOpYWxpc8OpZSBwYXIgRm9yZVNlZSwgdW5lIHNvY2nDqXTDqSBpbmTDqXBlbmRhbnRlLCBwb3VyIGxlIGNvbXB0ZSBkdSBzaXRlIHF1ZSB2b3VzIHZpc2l0ZXouJywgdHJhY2tlckNvcnAgOiAnRm9yZVNlZS4gVG91cyBkcm9pdHMgcsOpc2VydsOpcy4nLCB0cmFja2VyUHJpdmFjeSA6ICdDb25maWRlbnRpYWxpdMOpJyB9IH0gXSB9LCBxdWFsaWZpZXIgOiB7IHVzZVF1YWxpZmllciA6IGZhbHNlIH0sIHJlbWluZGVyIDogeyB1c2VSZW1pbmRlciA6IGZhbHNlIH0gfSkg', 'KHsgbmFtZSA6ICd3b3JsZGJhbmtfYXJhJywgbGFuZ3VhZ2UgOiB7IGxvY2FsZSA6ICdhcmEnIH0sIGN4UmVjb3JkIDogZmFsc2UsIGNyaXRlcmlhIDogeyBzcCA6IHsgcmVnIDogMjUsIG91dHJlcGxheXBvb2wgOiAwIH0sIGxmIDogNCwgc3VwcG9ydHNTbWFydFBob25lcyA6IGZhbHNlLCBzdXBwb3J0c1RhYmxldHMgOiBmYWxzZSwgc3VwcG9ydHNEZXNrdG9wIDogdHJ1ZSB9LCBpbmNsdWRlIDogeyB1cmxzIDogWyAnKmFsYmFua2FsZGF3bGkub3JnKicsICcqaHR0cDovL3diYXItc3RhZ2U2Mi5hZG9iZWNxbXMubmV0KicgXSwgcmVmZXJyZXJzIDogW10sIHVzZXJBZ2VudHMgOiBbXSwgYnJvd3NlcnMgOiBbXSwgY29va2llcyA6IFtdLCB2YXJpYWJsZXMgOiBbXSB9LCBpbnZpdGVFeGNsdWRlIDogeyB1cmxzIDogW10sIHJlZmVycmVycyA6IFtdLCB1c2VyQWdlbnRzIDogW10sIGJyb3dzZXJzIDogW10sIGNvb2tpZXMgOiBbXSwgdmFyaWFibGVzIDogW10gfSwgcGF0dGVybiA6ICd1cmwnLCBzZWxlY3RNb2RlIDogJ2RlZmF1bHQnLCBsaW5rcyA6IHsgY2FuY2VsIDogW10sIHN1cnZleSA6IFtdLCB0cmFja2VyIDogW10gfSwgZGlzcGxheSA6IHsgZGVza3RvcCA6IFsgeyBkaXNwbGF5bmFtZSA6ICdkZWZhdWx0LUEnLCB0ZW1wbGF0ZSA6ICdAY2xhc3NpY2Rlc2t0b3BfYXInLCBpbnZpdGVMb2dvIDogInNpdGVsb2dvX2FyYS5wbmciLCB0cmFja2VyTG9nbyA6ICJzaXRlbG9nb19hcmEucG5nIiwgc2l0ZUxvZ29UaXRsZVRleHQgOiAiIiwgc2l0ZUxvZ29BbHRUZXh0IDogIiIsIHZlbmRvclRpdGxlVGV4dCA6ICJGb3JlU2VlIiwgdmVuZG9yQWx0VGV4dCA6ICJGb3JlU2VlIiwgaGlkZUZvcmVTZWVMb2dvRGVza3RvcCA6IHRydWUsIHRydXN0ZUxvZ29BbHRUZXh0IDogIlZhbGlkYXRlIG91ciBUcnVzdCBDZXJ0aWZpY2F0aW9uIiwgaW52aXRlVHlwZSA6ICdJTlNFU1NJT04nLCBjbG9zZUNsaWNrT25CYWNrZHJvcCA6IHRydWUsIHJlbW92ZVN1cnZleUFsZXJ0cyA6IGZhbHNlLCBkaWFsb2cgOiB7IGhlYWRsaW5lOiAi2KfZhNio2YbZgyDYp9mE2K/ZiNmE2Yog2YrYsdit2Kgg2KjYqti52YTZitmC2KfYqtmD2YUg2KfZhNiq2YLZitmK2YXZitipOiZybG07IiwgYmx1cmI6ICImIzgyMjY7INio2LTZgNmA2KPZhiDYudmF2YTZhyDYp9mE2KXZhtmF2KfYptmK2IwmcmxtOyA8YnIvPiYjODIyNjsg2KPZiNmE2YjZitin2KrZg9mFINmB2YrZhdinINmK2KrYudmE2YIg2KjYp9mE2KrZhtmF2YrYqdiMJnJsbTs8YnIvPiYjODIyNjsg2YjYqtis2LHYqNiq2YPZhSDZgdmKINin2YTYqti52KfZhdmEINmF2Lkg2YXZiNmC2LnZhtinINin2YTYpdmE2YPYqtix2YjZhtmKINin2YTZitmI2YUuJnJsbTsgPGJyLz48YnIvPjxzcGFuIHN0eWxlPSdmb250LXdlaWdodDogYm9sZCc+2LTZg9ix2Kcg2LnZhNmJINmF2LPYp9i52K/YqtmG2Kcg2LnZhNmJINiq2K3Ys9mK2YYg2LnZhdmE2YbYpy4mcmxtOzwvc3Bhbj4g2YbYrdmGINmF2YXYqtmG2YjZhiDZhNiq2LnZhNmK2YLYp9iq2YPZhSDYp9mE2YrZiNmF2YrYqSDYp9mE2KrZiiDZhtiq2YTZgtin2YfYpyDZhdmGINij2LXZiNin2Kog2YHZiiDZhdiu2KrZhNmBINij2YbYrdin2KEg2KfZhNi52KfZhNmFLiZybG07Iiwgbm90aWNlQWJvdXRTdXJ2ZXkgOiAiIiwgYXR0cmlidXRpb246ICJGb3JlU2VlINij2KzYsdiqINmH2LDYpyDYp9mE2YXYs9itINin2YTYp9iz2KrZgti12KfYptmK2Iwg2YTYrdiz2KfYqCDYp9mE2KjZhtmDINin2YTYr9mI2YTZii4mcmxtOyIsIGNsb3NlSW52aXRlQnV0dG9uVGV4dDogItin2YbZgtixINmE2YTYpdi62YTYp9mCLiZybG07IiwgZGVjbGluZUJ1dHRvbjogItmD2YTYp9iMINi02YPYsdinLiZybG07IiwgYWNjZXB0QnV0dG9uOiAi2YbYudmF2Iwg2LPYo9mC2K/ZhSDYqti52YTZitmC2KfYqiDYqtmC2YrZitmF2YrYqS4mcmxtOyIsIGFjY2VwdEJ1dHRvblRpdGxlVGV4dDogItmG2LnZhdiMINiz2KPZgtiv2YUg2YXZhNin2K3YuNin2KrZiiAo2YrZj9mB2KrYrSDZgdmKINil2LfYp9ixINis2K/ZitivKSIsIGVycm9yOiAi2K7Yt9ijIiwgd2FybkxhdW5jaDogItiz2YrYpNiv2Yog2YfYsNinINil2YTZiSDYudix2LYg2KXYt9in2LEg2KzYr9mK2K8iLCBhbGxvd2Nsb3NlOiB0cnVlLCBzdXJ2ZXlhdmFpbGFibGU6ICLYp9mE2KfYs9iq2YLYtdin2KEg2KfZhNiu2KfYtSDYqNmDINmF2KrYp9itINin2YTYotmGIiwgdHJhY2tlclRpdGxlOiAnRm9yZVNlZSAtINil2LfYp9ixINiq2KrYqNmR2Lkg2KfZhNin2LPYqtmC2LXYp9ihJywgdHJhY2tlckNsaWNrVG9WaWV3OiAn2KPZhtmC2LEg2YTYudix2LYg2KfZhNin2LPYqtmC2LXYp9ihLicsIHRyYWNrZXJQbHNMZWF2ZU9wZW46ICfZitmP2LHYrNmJINiq2LHZgyDZh9iw2Kcg2KfZhNil2LfYp9ixINmF2YHYqtmI2K3Zi9inLicsIHRyYWNrZXJBdEVuZDogJ9mB2Yog2YbZh9in2YrYqSDYrNmE2LPYqtmD2Iwg2KfZhtmC2LEg2YfZhtinINmE2KjYr9ihINin2YTYp9iz2KrZgti12KfYoS4nLCB0cmFja2VyRGVzYzE6ICfYpdmG2Ycg2KzYstihINmF2YYg2KfYs9iq2YLYtdin2KEg2LHYttinINin2YTYudmF2YrZhCDYp9mE2LDZiiDZiNin2YHZgtiqINi52YTZiSDYp9mE2YXYtNin2LHZg9ipINmB2YrZhyDYudmE2Ykg2YfYsNinINin2YTZhdmI2YLYuS4g2YrZhdmD2YbZgyDYp9mE2YbZgtixINmH2YbYpyDYudmG2K/ZhdinINiq2YPZiNmGINis2KfZh9iy2YvYpyDZhNin2LPYqtmD2YXYp9mEINin2YTYp9iz2KrZgti12KfYodiMINil2YTYpyDYo9mG2Ycg2YXZhiDYp9mE2YXZgdiq2LHYtiDYo9mGINmK2YbYtNi3INmF2YYg2KrZhNmC2KfYoSDZhtmB2LPZhyDYqNi52K8g2KjYtti5INmE2K3YuNin2Kog2YXZhiDZhdi62KfYr9ix2KrZgyDZhNmE2YXZiNmC2LkuJywgdHJhY2tlckRlc2MyOiAn2LHYrNin2KEg2KrYsdmDINmH2LDYpyDYp9mE2KXYt9in2LEg2YXZgdiq2YjYrdmL2Kcg2KXZhNmJINij2YYg2KrZg9mF2YQg2YXYr9iq2YMg2LnZhNmJINmH2LDYpyDYp9mE2YXZiNmC2LkuINmK2Y/Yudiq2KjYsSDZh9iw2Kcg2KfZhNil2LfYp9ixINis2LLYodmL2Kcg2YXZhiDYp9iz2KrZgti12KfYoSDYsdi22Kcg2KfZhNi52YXZitmEINin2YTYsNmKINmI2KfZgdmC2Kog2LnZhNmJINin2YTZhdi02KfYsdmD2Kkg2YHZitmHINi52YTZiSDZh9iw2Kcg2KfZhNmF2YjZgti5LiDZitmF2YPZhtmDINin2YTZhtmC2LEg2YfZhtinINi52YbYr9mF2Kcg2KrZg9mI2YYg2KzYp9mH2LLZi9inINmE2KfYs9iq2YPZhdin2YQg2KfZhNin2LPYqtmC2LXYp9ih2Iwg2KXZhNinINij2YbZhyDZhdmGINin2YTZhdmB2KrYsdi2INij2YYg2YrZhti02Lcg2YXZhiDYqtmE2YLYp9ihINmG2YHYs9mHINio2LnYryDYqNi22Lkg2YTYrdi42KfYqiDZhdmGINmF2LrYp9iv2LHYqtmDINmE2YTZhdmI2YLYuS4nLCB0cmFja2VyRGVzYzM6ICfYtNmD2LHZi9inINmE2YMg2LnZhNmJINmF2LPYp9i52K/YqtmG2Kcg2YHZiiDYqtit2LPZitmGINiq2KzYsdio2KrZgyDZgdmKINin2LPYqtiu2K/Yp9mFINmF2YjZgti52YbYpyDYp9mE2KXZhNmD2KrYsdmI2YbZii4g2YrZgtmI2YUg2KjYpdis2LHYp9ihINmH2LDYpyDYp9mE2KfYs9iq2YLYtdin2KEg2LTYsdmD2Kkg2YXYs9iq2YLZhNipINmH2YogRm9yZVNlZdiMINmI2LDZhNmDINio2KfZhNmG2YrYp9io2Kkg2LnZhiDYp9mE2YXZiNmC2Lkg2KfZhNiw2Yog2KrZgtmI2YUg2KjYstmK2KfYsdiq2YcuJywgdHJhY2tlckNvcnA6ICdGb3JlU2VlLiDYrNmF2YrYuSDYp9mE2K3ZgtmI2YIg2YXYrdmB2YjYuNipLicsIHRyYWNrZXJQcml2YWN5OiAn2KfZhNiu2LXZiNi12YrYqScgfSB9IF0gfSwgcXVhbGlmaWVyIDogeyB1c2VRdWFsaWZpZXIgOiBmYWxzZSB9LCByZW1pbmRlciA6IHsgdXNlUmVtaW5kZXIgOiBmYWxzZSB9IH0pIA==', 'KHsgbmFtZSA6ICd3b3JsZGJhbmtfZW5nJywgbGFuZ3VhZ2UgOiB7IGxvY2FsZSA6ICdlbmcnIH0sIGN4UmVjb3JkIDogZmFsc2UsIGNyaXRlcmlhIDogeyBzcCA6IHsgcmVnIDogMTIsIG91dHJlcGxheXBvb2wgOiAwIH0sIGxmIDogNCwgc3VwcG9ydHNTbWFydFBob25lcyA6IGZhbHNlLCBzdXBwb3J0c1RhYmxldHMgOiBmYWxzZSwgc3VwcG9ydHNEZXNrdG9wIDogdHJ1ZSB9LCBpbmNsdWRlIDogeyB1cmxzIDogWyAnKndvcmxkYmFuay5vcmcqJywgJypodHRwOi8vd2Itc3RhZ2U2Mi5hZG9iZWNxbXMubmV0LyonLCAnKmh0dHA6Ly9ubGl2ZS5leHRjYy5jb20vKicsICcqaHR0cDovL3dicnUtc3RhZ2U2Mi5hZG9iZWNxbXMubmV0KicsICcqaHR0cDovL3diemgtc3RhZ2U2Mi5hZG9iZWNxbXMubmV0KicgXSwgcmVmZXJyZXJzIDogW10sIHVzZXJBZ2VudHMgOiBbXSwgYnJvd3NlcnMgOiBbXSwgY29va2llcyA6IFtdLCB2YXJpYWJsZXMgOiBbXSB9LCBpbnZpdGVFeGNsdWRlIDogeyB1cmxzIDogW10sIHJlZmVycmVycyA6IFtdLCB1c2VyQWdlbnRzIDogW10sIGJyb3dzZXJzIDogW10sIGNvb2tpZXMgOiBbXSwgdmFyaWFibGVzIDogW10gfSwgcGF0dGVybiA6ICd1cmwnLCBzZWxlY3RNb2RlIDogJ2RlZmF1bHQnLCBsaW5rcyA6IHsgY2FuY2VsIDogW10sIHN1cnZleSA6IFtdLCB0cmFja2VyIDogW10gfSwgZGlzcGxheSA6IHsgZGVza3RvcCA6IFsgeyBkaXNwbGF5bmFtZSA6ICdkZWZhdWx0LUEnLCB0ZW1wbGF0ZSA6ICdjbGFzc2ljZGVza3RvcCcsIGludml0ZUxvZ28gOiAic2l0ZWxvZ28uZ2lmIiwgdHJhY2tlckxvZ28gOiAic2l0ZWxvZ28uZ2lmIiwgc2l0ZUxvZ29UaXRsZVRleHQgOiAiIiwgc2l0ZUxvZ29BbHRUZXh0IDogIiIsIHZlbmRvclRpdGxlVGV4dCA6ICJGb3JlU2VlIiwgdmVuZG9yQWx0VGV4dCA6ICJGb3JlU2VlIiwgaGlkZUZvcmVTZWVMb2dvRGVza3RvcCA6IHRydWUsIHRydXN0ZUxvZ29BbHRUZXh0IDogIlZhbGlkYXRlIG91ciBUcnVzdCBDZXJ0aWZpY2F0aW9uIiwgaW52aXRlVHlwZSA6ICdJTlNFU1NJT04nLCBjbG9zZUNsaWNrT25CYWNrZHJvcCA6IHRydWUsIHJlbW92ZVN1cnZleUFsZXJ0cyA6IGZhbHNlLCBkaWFsb2cgOiB7IGhlYWRsaW5lIDogIjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTVweCc+VGhlIFdvcmxkIEJhbmsgd291bGQgd2VsY29tZSB5b3VyIGZlZWRiYWNrIG9uOjwvc3Bhbj4iLCBibHVyYiA6ICImIzgyMjY7IE91ciBkZXZlbG9wbWVudCB3b3JrLDxici8+JiM4MjI2OyBZb3VyIGRldmVsb3BtZW50IHByaW9yaXRpZXMsPGJyLz4mIzgyMjY7IFlvdXIgZXhwZXJpZW5jZSBvbiBvdXIgd2Vic2l0ZSB0b2RheS48YnIvPjxici8+V2UgYXJlIGdyYXRlZnVsIGZvciB0aGUgZGFpbHkgZmVlZGJhY2sgd2UgcmVjZWl2ZSBmcm9tIHZvaWNlcyBhcm91bmQgdGhlIGdsb2JlLiA8c3BhbiBzdHlsZT0nZm9udC13ZWlnaHQ6IGJvbGQnPlRoYW5rIHlvdSBmb3IgaGVscGluZyB1cyBpbXByb3ZlIG91ciB3b3JrLjwvc3Bhbj4iLCBub3RpY2VBYm91dFN1cnZleSA6ICIiLCBhdHRyaWJ1dGlvbiA6ICI8c3BhbiBzdHlsZT0nZm9udC1zaXplOiA5cHgnPlN1cnZleSBjb25kdWN0ZWQgYnkgRm9yZVNlZSwgb24gYmVoYWxmIG9mIHRoZSBXb3JsZCBCYW5rPC9zcGFuPiIsIGNsb3NlSW52aXRlQnV0dG9uVGV4dCA6ICJDbGljayB0byBjbG9zZS4iLCBkZWNsaW5lQnV0dG9uIDogIk5vLCB0aGFua3MuIiwgYWNjZXB0QnV0dG9uIDogIlllcywgSSdsbCBnaXZlIGZlZWRiYWNrLiIsIGFjY2VwdEJ1dHRvblRpdGxlVGV4dCA6ICJZZXMsIEknbGwgZ2l2ZSBmZWVkYmFjayAoT3BlbnMgaW4gYSBuZXcgd2luZG93KSIsIGVycm9yIDogIkVycm9yIiwgd2FybkxhdW5jaCA6ICJ0aGlzIHdpbGwgbGF1bmNoIGEgbmV3IHdpbmRvdyIsIGFsbG93Y2xvc2UgOiB0cnVlLCBzdXJ2ZXlhdmFpbGFibGUgOiAiWW91ciBzdXJ2ZXkgaXMgbm93IGF2YWlsYWJsZSIsIHRyYWNrZXJUaXRsZSA6ICdGb3JlU2VlIC0gU3VydmV5IFRyYWNrZXIgV2luZG93JywgdHJhY2tlckNsaWNrVG9WaWV3IDogJ0NsaWNrIHRvIHZpZXcgdGhlIHN1cnZleS4nLCB0cmFja2VyUGxzTGVhdmVPcGVuIDogJ1BsZWFzZSBsZWF2ZSB0aGlzIHdpbmRvdyBvcGVuLicsIHRyYWNrZXJBdEVuZCA6ICdBdCB0aGUgZW5kIG9mIHlvdXIgc2Vzc2lvbiwgY2xpY2sgaGVyZSB0byBiZWdpbiB0aGUgc3VydmV5LicsIHRyYWNrZXJEZXNjMSA6ICdJdCBpcyBwYXJ0IG9mIHRoZSBjdXN0b21lciBzYXRpc2ZhY3Rpb24gc3VydmV5IHlvdSBhZ3JlZWQgdG8gdGFrZSBvbiB0aGlzIHNpdGUuIFlvdSBtYXkgY2xpY2sgaGVyZSB3aGVuIHJlYWR5IHRvIGNvbXBsZXRlIHRoZSBzdXJ2ZXksIGFsdGhvdWdoIGl0IHNob3VsZCBhY3RpdmF0ZSBvbiBpdHMgb3duIGFmdGVyIGEgZmV3IG1vbWVudHMgd2hlbiB5b3UgaGF2ZSBsZWZ0IHRoZSBzaXRlLicsIHRyYWNrZXJEZXNjMiA6ICdQbGVhc2UgbGVhdmUgdGhpcyB3aW5kb3cgb3BlbiB1bnRpbCB5b3UgaGF2ZSBjb21wbGV0ZWQgeW91ciB0aW1lIG9uIHRoaXMgc2l0ZS4gVGhpcyB3aW5kb3cgaXMgcGFydCBvZiB0aGUgY3VzdG9tZXIgc2F0aXNmYWN0aW9uIHN1cnZleSB5b3UgYWdyZWVkIHRvIHRha2Ugb24gdGhpcyBzaXRlLiBZb3UgbWF5IGNsaWNrIGhlcmUgd2hlbiByZWFkeSB0byBjb21wbGV0ZSB0aGUgc3VydmV5LCBhbHRob3VnaCBpdCBzaG91bGQgYWN0aXZhdGUgb24gaXRzIG93biBhZnRlciBhIGZldyBtb21lbnRzIHdoZW4geW91IGhhdmUgbGVmdCB0aGUgc2l0ZS4nLCB0cmFja2VyRGVzYzMgOiAnVGhhbmsgeW91IGZvciBoZWxwaW5nIHVzIGltcHJvdmUgeW91ciB3ZWJzaXRlIGV4cGVyaWVuY2UuIFRoaXMgc3VydmV5IGlzIGNvbmR1Y3RlZCBieSBhbiBpbmRlcGVuZGVudCBjb21wYW55LCBGb3JlU2VlLCBvbiBiZWhhbGYgb2YgdGhlIHNpdGUgeW91IHZpc2l0ZWQuJywgdHJhY2tlckNvcnAgOiAnRm9yZVNlZS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4nLCB0cmFja2VyUHJpdmFjeSA6ICdQcml2YWN5JyB9IH0gXSB9LCBxdWFsaWZpZXIgOiB7IHVzZVF1YWxpZmllciA6IGZhbHNlIH0sIHJlbWluZGVyIDogeyB1c2VSZW1pbmRlciA6IGZhbHNlIH0gfSkg']; _fsDefine('triggerconfig', function () { return {config: triggerconfig, surveydefs: surveydefs}; }); if (triggerconfig.hasReplay == "true") { if (!productConfig.record) { triggerconfig.hasReplay = "false"; } else { this["dependencies"].push("$fs.record.js"); } } return true; }, "dependencies": ["$fs.utils.js", "$fs.trigger.js"] }) ; +if(void 0===_W._fsDefine&&JSON&&!(document.documentMode<10)){var stg=function(){};stg.prototype.has=function(itm){return null!==this.get(itm)},stg.prototype.get=function(itm){var res=null;return supportsDomStorage&&((res=localStorage.getItem(itm))||(res=sessionStorage.getItem(itm))),res},stg.prototype.set=function(itm,val){if(supportsDomStorage)try{localStorage.setItem(itm,val.toString())}catch(e){try{sessionStorage.setItem(itm,val.toString())}catch(e){}}};var require,define,req,s,head,baseElement,interactiveScript,currentlyAddingScript,op=Object.prototype,hasOwn=(op.toString,op.hasOwnProperty),ap=Array.prototype,hasProp=function(obj,prop){return hasOwn.call(obj,prop)},getOwn=function(obj,prop){return hasProp(obj,prop)&&obj[prop]},eachProp=function(obj,func){var prop;for(prop in obj)if(hasProp(obj,prop)&&func(obj[prop],prop))break},isDefined=function(obj){return null!==obj&&void 0!==obj},isFunction=function(obj){return"function"==typeof obj},isObject=function(obj){return"object"==typeof obj},isArray=function(obj){return"[object Array]"==Object.prototype.toString.call(obj)},isDate=function(obj){return obj instanceof Date},isString=function(obj){return"string"==typeof obj},isPlainObject=function(obj){if(!obj||"[object Object]"!==Object.prototype.toString.call(obj)||obj.nodeType||obj.setInterval)return!1;if(obj.constructor&&!hasOwnProperty.call(obj,"constructor")&&!hasOwnProperty.call(obj.constructor.prototype,"isPrototypeOf"))return!1;var key;for(key in obj);return void 0===key||hasOwnProperty.call(obj,key)||!hasOwnProperty.call(obj,key)&&hasOwnProperty.call(Object.prototype,key)},proxy=function(func,context){var args,bound,nativeBind=Function.prototype.bind,slice=Array.prototype.slice;return nativeBind&&func.bind===nativeBind?nativeBind.apply(func,slice.call(arguments,1)):(args=slice.call(arguments,2),bound=function(){if(!(this instanceof bound))return func.apply(context,args.concat(slice.call(arguments)));ctor.prototype=func.prototype;var self=ctor();ctor.prototype=null;var result=func.apply(self,args.concat(slice.call(arguments)));return Object(result)===result?result:self})},dispose=function(obj){if(obj){if(obj.length)for(var i=obj.length-1;i>=0;i--)obj[i]=null;for(var prop in obj){var tob=typeof obj[prop];"function"!=tob&&"object"!=tob||(obj[prop]=null)}}obj=null},getParam=function(parm){var vars={},vrl=(_W.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi,function(m,key,value){vars[key]=value}),vars[parm]);return vrl?decodeURIComponent(vrl):vrl},getQueryString=function(parm){var vars={},vrl=(_W.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi,function(m,key,value){value.indexOf("#")>-1?vars[key]=value.substring(0,value.indexOf("#")):vars[key]=value}),vars[parm]);return vrl?decodeURIComponent(vrl):vrl},nextTick=function(cb){setTimeout(cb||function(){},20)},ext=function(){var options,name,copy,a=arguments,target=a[0]||{},i=1,lnt=a.length,surface=!1===arguments[arguments.length-1];for("object"==typeof target||isFunction(target)||(target={}),lnt===i&&(target=this,--i);i0)&&(oDiff[name]=childDiff),stackCache.pop()}else oDiff[name]=copy;return oDiff},attr=function(elm,atr,val){return isDefined(val)&&elm.setAttribute(atr,val),elm&&elm.getAttribute?elm.getAttribute(atr):null},toQueryString=function(params,base){var pm,pList=isDefined(base)?base+(base.indexOf("?")>-1?"&":"?"):"";if(params)for(var nm in params)pm=params[nm],isString(pm)||(pm=JSON.stringify(pm)),pList+=encodeURIComponent(nm)+"="+encodeURIComponent(pm)+"&";return pList},compute=function(vstr){return new[].constructor.constructor(vstr).call(_W)},toLowerCase=function(str){return isString(str)?str.toLowerCase():""},setFSRVisibility=function(isVisible){var htmlClassList=document.documentElement.classList;isVisible?htmlClassList.add("_fsrclientInvokedHide"):htmlClassList.remove("_fsrclientInvokedHide")},winload=function(cb){"complete"===_D.readyState?nextTick(cb):__eB(_W,"load",cb)},ap=Array.prototype,apsp=ap.splice,global=_W,readyRegExp="PLAYSTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/,commentRegExp=/(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/gm,cjsRequireRegExp=/[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,jsSuffixRegExp=/\.js$/,currDirRegExp=/^\.\//,contexts={},cfg={},globalDefQueue=[],useInteractive=!1;req=function(deps,callback,errback,optional){var context,config,contextName="_";return isArray(deps)||"string"==typeof deps||(config=deps,isArray(callback)?(deps=callback,callback=errback,errback=optional):deps=[]),config&&config.context&&(contextName=config.context),context=getOwn(contexts,contextName),context||(context=contexts[contextName]=req.s.newContext(contextName)),config&&context.configure(config),context.require(deps,callback,errback)},req.config=function(config){return req(config)},req.nextTick="undefined"!=typeof setTimeout?function(fn){setTimeout(fn,4)}:function(fn){fn()},require=req,req.jsExtRegExp=/^\/|:|\?|\.js$/,s=req.s={contexts:contexts,newContext:newContext},req({}),each(["toUrl","undef","defined","specified"],function(prop){req[prop]=function(){var ctx=contexts._;return ctx.require[prop].apply(ctx,arguments)}}),head=s.head=_HD,baseElement=_D.getElementsByTagName("base")[0],baseElement&&(head=s.head=baseElement.parentNode),req.onError=defaultOnError,req.createNode=function(config,moduleName,url){var node=config.xhtml?_D.createElementNS("http://www.w3.org/1999/xhtml","html:script"):_D.createElement("script");return node.type=config.scriptType||"text/javascript",node.charset="utf-8",node.async=!0,node},req.load=function(context,moduleName,url){var node,config=context&&context.config||{};return node=req.createNode(config,moduleName,url),node.setAttribute("data-requirecontext",context.contextName),node.setAttribute("data-requiremodule",moduleName),!node.attachEvent||node.attachEvent.toString&&node.attachEvent.toString().indexOf("[native code")<0||isOpera?(node.addEventListener("load",context.onScriptLoad,!1),node.addEventListener("error",context.onScriptError,!1)):(useInteractive=!0,node.attachEvent("onreadystatechange",context.onScriptLoad)),node.src=url,currentlyAddingScript=node,baseElement?head.insertBefore(node,baseElement):head.appendChild(node),currentlyAddingScript=null,node},define=function(name,deps,callback){var node,context;"string"!=typeof name&&(callback=deps,deps=name,name=null),isArray(deps)||(callback=deps,deps=null),!deps&&isFunction(callback)&&(deps=[],callback.length&&callback.toString&&(callback.toString().replace(commentRegExp,"").replace(cjsRequireRegExp,function(match,dep){deps.push(dep)}),deps=(1===callback.length?["require"]:["require","exports","module"]).concat(deps))),useInteractive&&(node=currentlyAddingScript||getInteractiveScript())&&(name||(name=attr(node,"data-requiremodule")),context=contexts[attr(node,"data-requirecontext")]),(context?context.defQueue:globalDefQueue).push([name,deps,callback])},req.exec=function(text){return new Function(text)()},req(cfg),_W._fsDefine=_W._acsDefine=define,_W._fsRequire=_W._acsRequire=function(){globalConfig.deferredLoading?winload(function(args){return function(){require.apply(window,args)}}(arguments)):require.apply(window,arguments)};var API={_enforceGlobalNS:function(){_W.FSR||(_W.FSR={}),_W.FSFB||(_W.FSFB={})},expose:function(name,obj){API._enforceGlobalNS(),_W.FSR[name]=_W.FSFB[name]=obj},retrieveFromAPI:function(name){return API._enforceGlobalNS(),_W.FSR[name]}};API.expose("setFSRVisibility",setFSRVisibility);var domReady=function(ready){function flush(f){loaded=1;do{(f=fns.shift())&&f()}while(f)}var fn,fns=[],doc=document,testEl=doc.documentElement,hack=testEl.doScroll,loadedRgx=hack?/^loaded|^c/:/^loaded|c/,loaded=loadedRgx.test(doc.readyState);return doc.addEventListener&&doc.addEventListener("DOMContentLoaded",fn=function(){doc.removeEventListener("DOMContentLoaded",fn,!1),flush()},!1),hack&&doc.attachEvent("onreadystatechange",fn=function(){/^c/.test(doc.readyState)&&(doc.detachEvent("onreadystatechange",fn),flush())}),ready=hack?function(fn){self!=top?loaded?fn():fns.push(fn):function(){try{testEl.doScroll("left")}catch(e){return setTimeout(function(){ready(fn)},50)}fn()}()}:function(fn){loaded?fn():fns.push(fn)}}(),fsCmd=function(commandName){var hv=(location.hash+"").toLowerCase();return commandName=(commandName||"").toLowerCase(),!!(/fscommand|fscmd|acscmd|acscommand/.test(hv)&&hv.indexOf(commandName)>-1)},acsCmd=fsCmd;fsCmd(""),acsCmd("");var locator={};locator.environment="production",locator.gatewayLocation=function(){var gwScr,pgwScr,src,tm,gwl,cv,au,svu,asso,rovr,prodcfg,isself,hasssl,scrs=_D.getElementsByTagName("script"),g="gateway",s="/";if(_HD&&(skipInit="true"==attr(_HD,"data-skipfsinit"),gwl=attr(_HD,"data-fsgatewaylocparam"),cv=attr(_HD,"data-codeversion"),au=attr(_HD,"data-analyticsurl"),svu=attr(_HD,"data-surveyurl"),asso=attr(_HD,"data-product-assets"),rovr=attr(_HD,"data-codelocation"),prodcfg=attr(_HD,"data-productconfig"),isself=attr(_HD,"data-isselfhosted"),hasssl=attr(_HD,"data-hasssl"),gwl&&(gwl=getParam(gwl)),locator.isSelfHosted=!1,isself&&(locator.isSelfHosted="true"==getParam(isself)),locator.hasSSL=!0,hasssl&&(locator.hasSSL="true"!=getParam(hasssl)),rovr&&(locator.rootOverride=getParam(rovr)),asso&&(locator.assetOverride=getParam(asso)),prodcfg&&(locator.productCfgOverride=getParam(prodcfg)),cv&&(void 0!==globalConfig?globalConfig.codeVer=getParam(cv):globalConfig={codeVer:getParam(cv)}),au&&(void 0!==globalConfig?globalConfig.analyticsUrl=getParam(au):globalConfig={analyticsUrl:getParam(au)}),svu&&(void 0!==globalConfig?globalConfig.surveyUrl=getParam(svu):globalConfig={surveyUrl:getParam(svu)})),globalConfig||(globalConfig={}),("string"!=typeof globalConfig.siteKey||globalConfig.siteKey.length<1)&&(globalConfig.siteKey=getParam("sitekey")),eachProp(scrs,function(scr,prop){if("length"!==prop){src=attr(scr,"src")||"";var dv=attr(scr,"data-vendor");"fs"!=dv&&"acs"!=dv||attr(scr,"data-role")!=g?src.indexOf(g)>-1&&(pgwScr=scr):(gwScr=scr,tm=attr(scr,"timing"))}}),gwScr||(gwScr=pgwScr),gwScr)return locator.gwScript=gwScr,src=gwl||attr(gwScr,"src"),locator.environment=attr(gwScr,"data-environment")||locator.environment,locator.rootOverride=attr(gwScr,"data-codelocation")||locator.rootOverride,locator.assetOverride=attr(gwScr,"data-product-assets")||locator.assetOverride,locator.isSelfHosted=attr(gwScr,"data-isselfhosted")||locator.isSelfHosted,locator.hasSSL=attr(gwScr,"data-hasssl")||locator.hasSSL,-1==src.indexOf(":/")&&src.substr(0,1)!=s&&(scrs=(_W.location.href+"").split(s),scrs[scrs.length-1].indexOf(".")>-1&&scrs[scrs.length-1].toLowerCase()!=_W.location.hostname.toLowerCase()&&scrs.pop(),src=scrs.join(s)+(src.substr(0,1)==s?"":s)+src),src=src.split(s),src.pop(),trimDots(src),src.join(s)+s}(),locator.isProduction=locator.gatewayLocation.toLowerCase().indexOf("production")>-1,locator.normalizeUrl=function(url){url=url.replace("foresee/","trigger/");var suff,rooturl=locator.gatewayLocation||"";return url.indexOf("v=")>-1?url:"$"==url.substr(0,1)?locator.rootOverride?url.replace("$",locator.rootOverride):(suff="code/"+globalConfig.codeVer+"/"+url.replace("$",""),"/"==rooturl?rooturl+suff:subtractFromURL(rooturl,3)+suff):(-1==url.indexOf("//")&&(url="/"==rooturl.substr(rooturl.length-1,1)&&"/"==url.substr(0,1)?rooturl+url.substr(1):rooturl+url),url)},locator.normalizeAssetUrl=function(url){return locator.assetOverride?locator.assetOverride+url:locator.normalizeUrl(url)},_W._fsNormalizeUrl=_W._acsNormalizeUrl=locator.normalizeUrl,_W._fsNormalizeAssetUrl=locator.normalizeAssetUrl;var extMod={supportsDomStorage:supportsDomStorage,hasProp:hasProp,fsCmd:fsCmd,eachProp:eachProp,isDefined:isDefined,isFunction:isFunction,isObject:isObject,isArray:isArray,isDate:isDate,isString:isString,isPlainObject:isPlainObject,proxy:proxy,dispose:dispose,ext:ext,diff:diff,attr:attr,makeURI:locator.normalizeUrl,makeAssetURI:locator.normalizeAssetUrl,home:locator.gatewayLocation,isProduction:locator.isProduction,getParam:getParam,nextTick:nextTick,toQueryString:toQueryString,getQueryString:getQueryString,isSelfHosted:locator.isSelfHosted,hasSSL:locator.hasSSL,compute:compute,config:globalConfig,productConfig:productConfig,setFSRVisibility:setFSRVisibility,gwConfigOverride:locator.productCfgOverride,domReady:domReady,winReady:winload,tagVersion:"4sk340t",toLowerCase:toLowerCase,enc:encodeURIComponent,dec:decodeURIComponent,assetLocation:locator.assetOverride,codeLocation:locator.rootOverride,startTS:_W.performance&&_W.performance.timing?_W.performance.timing.responseStart:(new Date).getTime(),API:API};define("fs",function(){return extMod}),define("_acs",function(){return extMod}),domReady(function(){nextTick(function(){var dm,i,fsrd="fsReady";if(locator.gwScript&&(dm=attr(locator.gwScript,"data-module")),isDefined(_W.acsReady)&&(_W[fsrd]=_W.acsReady),!isDefined(_W.acsReady)){var altR=function(){var aT="__fsReady_stk__";_W[aT]=_W[aT]||[],_W[aT].push(arguments)};_W.acsReady=_W[fsrd]||altR}var dependencies=[],finalSetup=function(){if(!(globalConfig.minGatewayVersion&&globalConfig.minGatewayVersion>2.03))if(eachProp(productConfig,function(obj,prop){isDefined(globalConfig.products[prop.toLowerCase()])&&!1===globalConfig.products[prop.toLowerCase()]&&(obj.check=!1),isFunction(obj.check)&&(obj.check=obj.check.call(obj)),isDefined(obj.check)||(obj.check=!0),isDefined(obj.dependencies)||(obj.dependencies=[]),obj.check&&(dependencies=dependencies.concat(obj.dependencies))}),dm)dm&&nextTick(function(){_fsRequire([_fsNormalizeUrl(dm)],function(){})});else{for(i=0;ib[a].max)throw Error("Quota exceeded");b[a].Oa+=c}}var b={},c=void 0,d=void 0,e={je:function(a){c=a},Wb:function(){c&&a(c,1)},ke:function(a){d=a},X:function(b){d&&a(d,b)},Ge:function(a,c){b[a]=b[a]||{Oa:0};b[a].max=c},Id:function(a){return b[a]&&b[a].Oa||0},reset:function(){b={}},qd:a};e.onFnConsume=e.je;e.consumeFn=e.Wb;e.onStorageConsume=e.ke;e.consumeStorage=e.X;e.setMax=e.Ge;e.getConsumed=e.Id;e.reset=e.reset;e.consume=e.qd;return e};var va=function(a,b,c){this.M=a;this.H=b;this.aa=c;this.h=new ra};va.prototype.add=function(a,b){this.h.Aa||(this.M.X(("string"===typeof a?a.length:1)+("string"===typeof b?b.length:1)),this.h.set(a,b))};va.prototype.add=va.prototype.add;va.prototype.set=function(a,b){this.h.Aa||(this.aa&&this.aa.has(a)?this.aa.set(a,b):(this.M.X(("string"===typeof a?a.length:1)+("string"===typeof b?b.length:1)),this.h.set(a,b)))};va.prototype.set=va.prototype.set; +va.prototype.get=function(a){return this.h.has(a)?this.h.get(a):this.aa?this.aa.get(a):void 0};va.prototype.get=va.prototype.get;va.prototype.has=function(a){return!!this.h.has(a)||!(!this.aa||!this.aa.has(a))};va.prototype.has=va.prototype.has;va.prototype.K=function(){return this.M};va.prototype.L=function(){this.h.L()};var xa=function(){},ya=function(a){return"function"==typeof a},Aa=function(a){return"string"==typeof a},Ba=function(a){return"number"==typeof a&&!isNaN(a)},Ca=function(a){return"[object Array]"==Object.prototype.toString.call(Object(a))},Da=function(a,b){if(Array.prototype.indexOf){var c=a.indexOf(b);return"number"==typeof c?c:-1}for(var d=0;db)a=0,b=2147483647;return Math.floor(Math.random()*(b-a+1)+a)},Fa=function(a){return Math.round(Number(a))|| +0},Ga=function(a){return"false"==String(a).toLowerCase()?!1:!!a},Ha=function(a){var b=[];if(Ca(a))for(var c=0;ce&&(e=Math.max(d+e,0));for(var f=e;fc?d+c:Math.min(c,e));for(var f=e;0<=f;f--)if(this.has(f)&&this.get(f)===b)return f;return-1},map:function(a,b){for(var c=this.length(),d=[],e=0;ed)throw"TypeError: ReduceRight on List with no elements.";}for(h=f;0<=h;h--)this.has(h)&&(e=b.m(a,e,this.get(h),h,this));return e},reverse:function(){for(var a=Za(this),b=a.length-1,c=0;0<=b;b--,c++)a.hasOwnProperty(b)?this.set(c,a[b]):this.remove(c);return this},shift:function(){return this.shift()},slice:function(a,b,c){var d=this.length();void 0===b&&(b=0);b=0>b?Math.max(d+b,0):Math.min(b,d);c=void 0===c?d:0>c?Math.max(d+c,0):Math.min(c,d);c=Math.max(b, +c);for(var e=[],f=b;fthis.evaluate(b)};y.Ld=function(a,b){return this.evaluate(a)>=this.evaluate(b)};y.Sd=function(a,b){return this.evaluate(a)===this.evaluate(b)};y.Td=function(a,b){return this.evaluate(a)!==this.evaluate(b)}; +y["if"]=function(a,b,c){var d=[];this.evaluate(a)?d=this.evaluate(b):c&&(d=this.evaluate(c));var e=this.xa(d);if(e instanceof g)return e};y.ae=function(a,b){return this.evaluate(a)"+a+"";b=b.lastChild;for(var c=[];b.firstChild;)c.push(b.removeChild(b.firstChild));return c},tb=function(a){hb.sendBeacon&&hb.sendBeacon(a)||C(a)};var ub=/^(?:(?:https?|mailto|ftp):|[^:/?#]*(?:[/?#]|$))/i;var vb=/:[0-9]+$/,wb=function(a,b,c){for(var d=a.split("&"),e=0;eDa(c,k))if(l&&0Da(c,l[p])){n=!1;break a}}else{n=!1;break a}n=!0}m=n}var q=!1;if(d){var r;if(!(r=0<= +Da(e,k)))a:{for(var u=l||[],t=new Ja,A=0;Ard){rd++;try{B.documentElement.doScroll("left"),td()}catch(a){z.setTimeout(ud,50)}}}var vd=function(a){qd?a():sd.push(a)};var wd=!1,xd=function(){return z.GoogleAnalyticsObject&&z[z.GoogleAnalyticsObject]};var yd=function(a){z.GoogleAnalyticsObject||(z.GoogleAnalyticsObject=a||"ga");var b=z.GoogleAnalyticsObject;if(!z[b]){var c=function(){c.q=c.q||[];c.q.push(arguments)};c.l=Number(Ia());z[b]=c}return z[b]},zd=function(a,b,c,d){b=String(b).replace(/\s+/g,"").split(",");var e=xd();e(a+"require","linker");e(a+"linker:autoLink",b,c,d)}; +var Dd=function(){return"&tc="+uc.filter(function(a){return a}).length},Ed="0.005000">Math.random(),Fd=function(){var a=0,b=0;return{$d:function(){if(2>a)return!1;1E3<=Ia().getTime()-b&&(a=0);return 2<=a},ye:function(){1E3<=Ia().getTime()-b&&(a=0);a++;b=Ia().getTime()}}},Gd="",Hd=function(){Gd=[Pc,"&v=3&t=t","&pid="+Ea(),"&rv=9h"].join("")},Id={},Jd="",Kd=void 0,Ld={},Md={},Nd=void 0,Od=null,Pd=1E3,Qd=function(){var a=Kd;return void 0===a?"":[Gd,Id[a]?"":"&es=1", +Ld[a],Dd(),Jd,"&z=0"].join("")},Rd=function(){Nd&&(z.clearTimeout(Nd),Nd=void 0);void 0===Kd||Id[Kd]&&!Jd||(Md[Kd]||Od.$d()||0>=Pd--?Md[Kd]=!0:(Od.ye(),C(Qd()),Id[Kd]=!0,Jd=""))},Sd=function(a,b,c){if(Ed&&!Md[a]&&b){a!==Kd&&(Rd(),Kd=a);var d=c+String(b[P.N]||"").replace(/_/g,"");Jd=Jd?Jd+"."+d:"&tr="+d;Nd||(Nd=z.setTimeout(Rd,500));2022<=Qd().length&&Rd()}};function Td(a,b,c,d,e,f){var h=uc[a],k=Ud(a,b,c,d,e,f);if(!k)return null;var l=Dc(h[P.Qb],f.Z,[],Vd());if(l&&l.length){var m=l[0];k=Td(m.index,b,k,1===m.ac?e:k,e,f)}return k} +function Ud(a,b,c,d,e,f){function h(){var b=Ec(k,f.Z,[],l);b.vtp_gtmOnSuccess=function(){Sd(f.id,uc[a],"5");c()};b.vtp_gtmOnFailure=function(){Sd(f.id,uc[a],"6");d()};b.vtp_gtmTagId=k.tag_id;if(k[P.Mc])d();else{Sd(f.id,k,"1");try{Cc(b)}catch(D){Sd(f.id, +k,"7");e()}}}var k=uc[a];if(f.Z(k))return null;var l=Vd(),m=Dc(k[P.Rb],f.Z,[],l);if(m&&m.length){var n=m[0],p=Td(n.index,b,c,d,e,f);if(!p)return null;c=p;d=2===n.ac?e:p}if(k[P.Pb]||k[P.Nc]){var q=k[P.Pb]?vc:b,r=c,u=d;if(!q[a]){h=La(h);var t=Wd(a,q,h);c=t.V;d=t.la}return function(){q[a](r,u)}}return h} +function Wd(a,b,c){var d=[],e=[];b[a]=Xd(d,e,c);return{V:function(){b[a]=Yd;for(var c=0;c=c&&a()})},$c:function(){d=!0;b>=c&&a()}}}function ae(a,b){if(!Ed)return;var c=function(a){var d=b.Z(uc[a])?"3":"4",f=Dc(uc[a][P.Qb],b.Z,[],xa);f&&f.length&&c(f[0].index);Sd(b.id,uc[a],d);var h=Dc(uc[a][P.Rb],b.Z,[],xa);h&&h.length&&c(h[0].index)};c(a);}var be=!1;var ce=function(a,b){var c={};c[P.N]="__"+a;for(var d in b)b.hasOwnProperty(d)&&(c["vtp_"+d]=b[d]);for(d in void 0)(void 0).hasOwnProperty(d)&&(c[d]=(void 0)[d]);uc.push(c);return uc.length-1};var de="allow_ad_personalization_signals cookie_domain cookie_expires cookie_name cookie_path custom_params event_callback event_timeout groups send_to send_page_view session_duration user_properties".split(" ");var ee=/[A-Z]+/,fe=/\s/,ge=function(a){if(Aa(a)&&(a=a.trim(),!fe.test(a))){var b=a.indexOf("-");if(!(0>b)){var c=a.substring(0,b);if(ee.test(c)){for(var d=a.substring(b+1).split("/"),e=0;ea.length||!Aa(a[1])||!Ua(b))return;var c=ge(a[1]);if(!c)return;le()?ne(c):oe();var d=c.id,e;for(e in ie)if(ie.hasOwnProperty(e)){var f=Da(ie[e],d);0<=f&&ie[e].splice(f,1)}var h=c.id,k=b.groups||"default";k=k.toString().split(","); +for(var l=0;l=Number(c); +case "_gt":return Number(b)>Number(c);case "_lc":var m;m=String(b).split(",");return 0<=Da(m,String(c));case "_le":return Number(b)<=Number(c);case "_lt":return Number(b)')[0].href}function Re(a){return Fa(Wa(a))}function Se(a){return null===a?"null":void 0===a?"undefined":a.toString()}function Te(a,b){return Ea(a,b)}function Ue(a,b,c){if(!(a instanceof v))return null;for(var d=new Qa,e=!1,f=0;fd.length){if(0==d.length)continue;return}Ye.R(d)}var e=function(a){throw Ze({permissionId:a,debugString:"The requested permission does not exist."});};Ye.oa(e);var f=Xe(),h;for(h in b)if(b.hasOwnProperty(h)){var k= +b[h],l=!1,m;for(m in k)if(k.hasOwnProperty(m)){l=!0;var n=f(m,k[m],Ze);Ye.Ma(h,m,n)}l||Ye.Ma(h,"default",e)}};function Ze(a){return new jd(a)};var af=function(a,b){var c=function(){};c.prototype=a.prototype;var d=new c;a.apply(d,Array.prototype.slice.call(arguments,1));return d};var bf=function(a){return encodeURIComponent(a)},cf=function(a,b){if(!a)return!1;var c=xb(N(a),"host");if(!c)return!1;for(var d=0;b&&d>21:d;return[Math.round(2147483647*Math.random())^d&2147483647,Math.round(Date.now()/1E3)].join(".")},Af=function(a,b,c,d){var e=yf(b);return rf(a,e,zf(c),d)}; +function yf(a){if(!a)return 1;a=0===a.indexOf(".")?a.substr(1):a;return a.split(".").length}function zf(a){if(!a||"/"===a)return 1;"/"!==a[0]&&(a="/"+a);"/"!==a[a.length-1]&&(a+="/");return a.split("/").length-1}function Bf(a,b){var c=""+yf(a),d=zf(b);1>2,m=(f&3)<<4|h>>4,n=(h&15)<<2|k>>6,p=k&63;e||(p=64,d||(n=64));b.push(Jf[l],Jf[m],Jf[n],Jf[p])}return b.join("")},Nf=function(a){function b(b){for(;d>4);64!=h&&(c+=String.fromCharCode(f<<4&240|h>>2),64!=k&&(c+=String.fromCharCode(h<<6&192|k)))}};var Of;function Pf(a,b){if(!a||b===B.location.hostname)return!1;for(var c=0;cf;f++){for(var h=f,k=0;8>k;k++)h=h&1?h>>>1^3988292384:h>>>1;e[f]=h}d=e}Of=d;for(var l=4294967295,m=0;m>>8^Of[(l^c.charCodeAt(m))&255];return((l^-1)>>>0).toString(36)},Xf=function(){return function(a){var b=N(z.location.href),c=b.search.replace("?",""),d=wb(c,"_gl",!0)||"";a.query=Wf(d)||{};var e=xb(b,"fragment").match(Tf);a.fragment=Wf(e&&e[3]||"")||{}}},Wf=function(a){var b;b=void 0===b?3:b;try{if(a){var c=Rf.exec(a);if(c&& +"1"===c[1]){var d=c[3],e;a:{for(var f=c[2],h=0;hu){r=!0;break b}r=!1}r||uf(n,p,void 0,void 0,new Date(q+7776E6),!0)}}}}, +ch=function(a,b,c,d,e){ng(a,b,c,d,e);},dh=function(a,b){var c;a:{var d;d=100;for(var e={},f=0;ff;f++){var h=e[f].src;if(h){h=h.toLowerCase();if(0===h.indexOf(c))return 3;1===d&&0===h.indexOf(b)&&(d=2)}}return d};var ph=function(a,b){return Zc(a,b,void 0)}; +var qh=function(a,b,c){var d=(void 0===c?0:c)?"www.googletagmanager.com/gtag/js":Sg;d+="?id="+encodeURIComponent(a)+"&l=dataLayer";if(b)for(var e in b)b[e]&&b.hasOwnProperty(e)&&(d+="&"+e+"="+encodeURIComponent(b[e]));T(X("https://","http://",d))};var sh=function(a,b,c){a instanceof ze.Pc&&(a=a.resolve(ze.ze(b,c)),b=xa);return{lb:a,V:b}};var th=function(a,b,c){this.n=a;this.t=b;this.p=c},uh=function(){this.c=1;this.e=[];this.p=null};function vh(a){var b=Nc,c=b.gss=b.gss||{};return c[a]=c[a]||new uh}var wh=function(a,b){vh(a).p=b},xh=function(a,b,c){var d=Math.floor(Ia().getTime()/1E3);vh(a).e.push(new th(b,d,c))},yh=function(a){};var Rh=window,Sh=document,Th=function(a){var b=Rh._gaUserPrefs;if(b&&b.ioo&&b.ioo()||a&&!0===Rh["ga-disable-"+a])return!0;try{var c=Rh.external;if(c&&c._gaUserPrefs&&"oo"==c._gaUserPrefs)return!0}catch(f){}for(var d=of("AMP_TOKEN",Sh.cookie,!0),e=0;ec@%gm6?l*?3$lrb~bU@py!a$A2{#cGMN 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 literal 0 HcmV?d00001 diff --git a/code/China _ Data_files/logo-wb-header-en.svg b/code/China _ Data_files/logo-wb-header-en.svg new file mode 100644 index 00000000..54323fe4 --- /dev/null +++ b/code/China _ Data_files/logo-wb-header-en.svg @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/code/China _ Data_files/logo-wbg-footer-en.svg b/code/China _ Data_files/logo-wbg-footer-en.svg new file mode 100644 index 00000000..f19eb672 --- /dev/null +++ b/code/China _ Data_files/logo-wbg-footer-en.svg @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/code/China _ Data_files/main-bd31d0076822ad71282b.js.download b/code/China _ Data_files/main-bd31d0076822ad71282b.js.download new file mode 100644 index 00000000..fb5b2b0f --- /dev/null +++ b/code/China _ Data_files/main-bd31d0076822ad71282b.js.download @@ -0,0 +1,40 @@ +webpackJsonp([5],[function(t,e,n){(function(t){"use strict";function e(t){return t&&t.__esModule?t:{"default":t}}var r=n(57),o=e(r);n(570);var a=n(3),i=e(a),s=n(2),u=e(s),l=n(111),c=e(l),d=n(317),p=e(d),f=n(19),h=n(496),g=n(228),m=n(53);n(835),n(834);var y=n(1175),v=n(1184),_=e(v),b=n(1190),E=e(b),A=n(1176),S=e(A),T=n(382),M=n(384);p["default"].initialize("UA-68125313-3");var L=function(){p["default"].pageview(window.location.pathname)};window.onload=function(){window.pageLoaded=!0},setTimeout(function(){window.pageLoaded=!0},9e3);var C=window.navigator.userAgent.toLowerCase();(i["default"].includes(C,"samsung")||i["default"].includes(C,"safari"))&&S["default"].call("object"===("undefined"==typeof window?"undefined":(0,o["default"])(window))&&window||"object"===("undefined"==typeof self?"undefined":(0,o["default"])(self))&&self||"object"===("undefined"==typeof t?"undefined":(0,o["default"])(t))&&t||{});var O=document.getElementById("app"),w=(0,y.unpackInitialState)(window.__data),D=w.cache,P=w.initialState,x=(0,_["default"])(h.browserHistory,P),I=x.store,R=x.model,k=(0,g.syncHistoryWithStore)(h.browserHistory,I,{selectLocationState:function(t){return t.router}});window.store=I,I.subscribe(function(){(0,T.CollectMacroData)(),(0,M.CollectMacroDTMData)()}),R.setCache(D);var N=u["default"].createElement(h.Router,{history:k,onUpdate:L,render:function(t){return u["default"].createElement(m.ReduxAsyncConnect,t)}},E["default"]),B=window.location,U=B.pathname,j=B.search,F=B.hash,H=""+U+j+F;(0,h.match)({routes:E["default"],location:H},function(){c["default"].render(u["default"].createElement(f.Provider,{key:"provider",store:I},N),O)}),window.env="production"}).call(e,function(){return this}())},function(t,e,n){var r=n(20),o=n(88),a=n(47),i=n(48),s=n(89),u="prototype",l=function(t,e,n){var c,d,p,f,h=t&l.F,g=t&l.G,m=t&l.S,y=t&l.P,v=t&l.B,_=g?r:m?r[e]||(r[e]={}):(r[e]||{})[u],b=g?o:o[e]||(o[e]={}),E=b[u]||(b[u]={});g&&(n=e);for(c in n)d=!h&&_&&void 0!==_[c],p=(d?_:n)[c],f=v&&d?s(p,r):y&&"function"==typeof p?s(Function.call,p):p,_&&i(_,c,p,t&l.U),b[c]!=p&&a(b,c,f),y&&E[c]!=p&&(E[c]=p)};r.core=o,l.F=1,l.G=2,l.S=4,l.P=8,l.B=16,l.W=32,l.U=64,l.R=128,t.exports=l},,,function(t,e){"use strict";e.__esModule=!0,e["default"]=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}e.__esModule=!0;var o=n(756),a=r(o),i=n(418),s=r(i),u=n(57),l=r(u);e["default"]=function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+("undefined"==typeof e?"undefined":(0,l["default"])(e)));t.prototype=(0,s["default"])(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(a["default"]?(0,a["default"])(t,e):t.__proto__=e)}},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}e.__esModule=!0;var o=n(57),a=r(o);e["default"]=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!==("undefined"==typeof e?"undefined":(0,a["default"])(e))&&"function"!=typeof e?t:e}},function(t,e,n){t.exports={"default":n(773),__esModule:!0}},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}e.__esModule=!0;var o=n(270),a=r(o);e["default"]=function(){function t(t,e){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:[],e=Array.isArray(t)?t:[t];e.forEach(function(t){t&&t.locale&&(D.__addLocaleData(t),P.__addLocaleData(t))})}function a(t){for(var e=(t||"").split("-");e.length>0;){if(i(e.join("-")))return!0;e.pop()}return!1}function i(t){var e=t&&t.toLowerCase();return!(!D.__localeData__[e]||!P.__localeData__[e])}function s(t){return(""+t).replace(gt,function(t){return ht[t]})}function u(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return e.reduce(function(e,r){return t.hasOwnProperty(r)?e[r]=t[r]:n.hasOwnProperty(r)&&(e[r]=n[r]),e},{})}function l(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.intl;k(e,"[React Intl] Could not find required `intl` object. needs to exist in the component ancestry.")}function c(t,e){if(t===e)return!0;if("object"!==("undefined"==typeof t?"undefined":U(t))||null===t||"object"!==("undefined"==typeof e?"undefined":U(e))||null===e)return!1;var n=Object.keys(t),r=Object.keys(e);if(n.length!==r.length)return!1;for(var o=Object.prototype.hasOwnProperty.bind(e),a=0;a3&&void 0!==arguments[3]?arguments[3]:{},l=i.intl,d=void 0===l?{}:l,p=s.intl,f=void 0===p?{}:p;return!c(e,r)||!c(n,o)||!(f===d||c(u(f,ft),u(d,ft)))}function p(t){return t.displayName||t.name||"Component"}function f(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.intlPropName,r=void 0===n?"intl":n,o=e.withRef,a=void 0!==o&&o,i=function(e){function n(t,e){j(this,n);var r=G(this,(n.__proto__||Object.getPrototypeOf(n)).call(this,t,e));return l(e),r}return z(n,e),F(n,[{key:"getWrappedInstance",value:function(){return k(a,"[React Intl] To access the wrapped instance, the `{withRef: true}` option must be set when calling: `injectIntl()`"),this.refs.wrappedInstance}},{key:"render",value:function(){return R.createElement(t,W({},this.props,H({},r,this.context.intl),{ref:a?"wrappedInstance":null}))}}]),n}(I.Component);return i.displayName="InjectIntl("+p(t)+")",i.contextTypes={intl:ut},i.WrappedComponent=t,i}function h(t){return t}function g(t){return D.prototype._resolveLocale(t)}function m(t){return D.prototype._findPluralRuleFunction(t)}function y(t){var e=P.thresholds;e.second=t.second,e.minute=t.minute,e.hour=t.hour,e.day=t.day,e.month=t.month}function v(t,e,n){var r=t&&t[e]&&t[e][n];if(r)return r}function _(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=t.locale,a=t.formats,i=r.format,s=new Date(n),l=i&&v(a,"date",i),c=u(r,yt,l);try{return e.getDateTimeFormat(o,c).format(s)}catch(d){}return String(s)}function b(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=t.locale,a=t.formats,i=r.format,s=new Date(n),l=i&&v(a,"time",i),c=u(r,yt,l);c.hour||c.minute||c.second||(c=W({},c,{hour:"numeric",minute:"numeric"}));try{return e.getDateTimeFormat(o,c).format(s)}catch(d){}return String(s)}function E(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=t.locale,a=t.formats,i=r.format,s=new Date(n),l=new Date(r.now),c=i&&v(a,"relative",i),d=u(r,_t,c),p=W({},P.thresholds);y(Et);try{return e.getRelativeFormat(o,d).format(s,{now:isFinite(l)?l:e.now()})}catch(f){}finally{y(p)}return String(s)}function A(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=t.locale,a=t.formats,i=r.format,s=i&&v(a,"number",i),l=u(r,vt,s);try{return e.getNumberFormat(o,l).format(n)}catch(c){}return String(n)}function S(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=t.locale,a=u(r,bt);try{return e.getPluralFormat(o,a).format(n)}catch(i){}return"other"}function T(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=t.locale,a=t.formats,i=t.messages,s=t.defaultLocale,u=t.defaultFormats,l=n.id,c=n.defaultMessage;k(l,"[React Intl] An `id` must be provided to format a message.");var d=i&&i[l],p=Object.keys(r).length>0;if(!p)return d||c||l;var f=void 0;if(d)try{var h=e.getMessageFormat(d,o,a);f=h.format(r)}catch(g){}if(!f&&c)try{var m=e.getMessageFormat(c,s,u);f=m.format(r)}catch(g){}return f||d||c||l}function M(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=Object.keys(r).reduce(function(t,e){var n=r[e];return t[e]="string"==typeof n?s(n):n,t},{});return T(t,e,n,o)}function L(t){var e=Math.abs(t);return e=0||Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r]);return n},G=function(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e},V=function(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e":">","<":"<",'"':""","'":"'"},gt=/[&><"']/g,mt=function jt(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};j(this,jt);var n="ordinal"===e.style,r=m(g(t));this.format=function(t){return r(t,n)}},yt=Object.keys(lt),vt=Object.keys(ct),_t=Object.keys(dt),bt=Object.keys(pt),Et={second:60,minute:60,hour:24,day:30,month:12},At=Object.freeze({formatDate:_,formatTime:b,formatRelative:E,formatNumber:A,formatPlural:S,formatMessage:T,formatHTMLMessage:M}),St=Object.keys(it),Tt=Object.keys(st),Mt={formats:{},messages:{},textComponent:"span",defaultLocale:"en",defaultFormats:{}},Lt=function(t){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};j(this,e);var r=G(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,n));k("undefined"!=typeof Intl,"[React Intl] The `Intl` APIs must be available in the runtime, and do not appear to be built-in. An `Intl` polyfill should be loaded.\nSee: http://formatjs.io/guides/runtime-environments/");var o=n.intl,a=void 0;a=isFinite(t.initialNow)?Number(t.initialNow):o?o.now():Date.now();var i=o||{},s=i.formatters,u=void 0===s?{getDateTimeFormat:N(Intl.DateTimeFormat),getNumberFormat:N(Intl.NumberFormat),getMessageFormat:N(D),getRelativeFormat:N(P),getPluralFormat:N(mt)}:s;return r.state=W({},u,{now:function(){return r._didDisplay?Date.now():a}}),r}return z(e,t),F(e,[{key:"getConfig",value:function(){var t=this.context.intl,e=u(this.props,St,t);for(var n in Mt)void 0===e[n]&&(e[n]=Mt[n]);if(!a(e.locale)){var r=e,o=(r.locale,r.defaultLocale),i=r.defaultFormats;e=W({},e,{locale:o,formats:i,messages:Mt.messages})}return e}},{key:"getBoundFormatFns",value:function(t,e){return Tt.reduce(function(n,r){return n[r]=At[r].bind(null,t,e),n},{})}},{key:"getChildContext",value:function(){var t=this.getConfig(),e=this.getBoundFormatFns(t,this.state),n=this.state,r=n.now,o=q(n,["now"]);return{intl:W({},t,e,{formatters:o,now:r})}}},{key:"shouldComponentUpdate",value:function(){for(var t=arguments.length,e=Array(t),n=0;n1?o-1:0),i=1;i0;if(h){var g=Math.floor(1099511627776*Math.random()).toString(16),m=function(){var t=0;return function(){return"ELEMENT-"+g+"-"+(t+=1)}}();d="@__"+g+"__@",p={},f={},Object.keys(s).forEach(function(t){var e=s[t];if(I.isValidElement(e)){var n=m();p[t]=d+n+d,f[n]=e}else p[t]=e})}var y={id:o,description:a,defaultMessage:i},v=e(y,p||s),_=void 0,b=f&&Object.keys(f).length>0;return _=b?v.split(d).filter(function(t){return!!t}).map(function(t){return f[t]||t}):[v],"function"==typeof c?c.apply(void 0,V(_)):I.createElement.apply(void 0,[l,null].concat(V(_)))}}]),e}(I.Component);Bt.displayName="FormattedMessage",Bt.contextTypes={intl:ut},Bt.defaultProps={values:{}};var Ut=function(t){function e(t,n){j(this,e);var r=G(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,n));return l(n),r}return z(e,t),F(e,[{key:"shouldComponentUpdate",value:function(t){var e=this.props.values,n=t.values;if(!c(n,e))return!0;for(var r=W({},t,{values:e}),o=arguments.length,a=Array(o>1?o-1:0),i=1;i0){var l=y["default"].find(u,{id:e})||y["default"].find(u,"isDefault"),c=y["default"].findIndex(u,{id:y["default"].get(l,"id")});u[Math.max(c,0)].selected=!0}return(0,f["default"])({name:y["default"].get(o[t],"name")},i,{id:t,indicators:u})}}),R=(e.selectedTopicEmptyDefaultQuery=(0,h.createSelector)([x,D,A.indicatorMetaSelector,A.dataSelector,A.topicMetaSelector,M.localeSelector],function(t,e,n,r,o,a){if(0===e.length){var i=(0,L.getLocalized)(o[t],a)||{},s=i.indicators||[];return s.filter(function(t){return n[t.id]&&n[t.id].last_year}).map(function(t){return t.lastYear=n[t.id]?n[t.id].last_year:[],t}).filter(function(t){return!r["1W"][t.id]}).map(function(t){return[t.id,t.lastYear[1]]})}}),e.topicDefaultLocationsSelector=(0,h.createSelector)([I],function(t){return t&&t.defaultLocations?t.defaultLocations.locations||t.defaultLocations.fallback:["1W"]})),k=(e.defaultLocationsSelector=(0,h.createSelector)([A.indicatorMetaSelector,P,R],function(t,e,n){return n}),e.defaultLocationMetaSelector=(0,h.createSelector)([A.locationMetaSelector,M.localeSelector],function(t,e){var n=(0,L.getLocalized)(t[_.DEFAULT_USER_COUNTRY]||{},e);return{color:_.CHART_HOVER_COLOR,id:_.DEFAULT_USER_COUNTRY,iso3:n.id,locations:n.locations||[],name:n.name||_.DEFAULT_USER_COUNTRY}}),e.detailsCardLocationsSelector=(0,h.createSelector)([T.locationsListSelector,D],function(t,e){return e.length>0?(0,y["default"])(e).flatMap(function(t){return(t.locations||[]).concat(t.id)}).uniq().value():y["default"].map(t,"id")}),e.isAggregateSelector=(0,h.createSelector)([D,P],function(t,e){return!e&&1===t.length&&!!t[0].isAggregate}),e.hasDetailsSelector=(0,h.createSelector)([P],function(t){return t}),e.groupChartIndicatorSelector=(0,h.createSelector)([P,I,M.selectedContextualSelector,E.indicatorsGroupsSelector],function(t,e,n,r){if(n)return r[n]&&r[n].codes||[];if(t)return t;if(e){var o=e.indicators;return(y["default"].find(o,"selected")||y["default"].head(o)||{}).id}}),e.chartIndicatorSelector=(0,h.createSelector)([P,I],function(t,e){if(t)return t;if(e){var n=e.indicators;return(y["default"].find(n,"selected")||y["default"].head(n)||{}).id}}));e.chartIndicatorMetaSelector=(0,h.createSelector)([k,A.indicatorMetaSelector,M.localeSelector],function(t,e,n){return(0,L.getIndicatorMeta)(t,e,n)}),e.relatedIndicatorsIdSelector=(0,h.createSelector)([P,A.indicatorMetaSelector],function(t,e){return y["default"].get(e[t],"relatedIndicators")||[]})},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}e.__esModule=!0,e.connect=e.Provider=void 0;var o=n(997),a=r(o),i=n(998),s=r(i);e.Provider=a["default"],e.connect=s["default"]},function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,e,n){var r=n(211)("wks"),o=n(124),a=n(20).Symbol,i="function"==typeof a;t.exports=function(t){return r[t]||(r[t]=i&&a[t]||(i?a:o)("Symbol."+t))}},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0}),e.locationDetailsItem=e.featuredIndicator=e.chartIndicator=e.chart=e.yearRange=e.topic=e.range=e.location=e.region=e.locationGroups=e.indicatorMeta=e.incomeLevel=e.mapData=e.historyLocation=e.dataSet=e.chartOptions=e.chartDomain=e.chartData=e.numOrStr=void 0;var o=n(2),a=n(988),i=(r(a),e.numOrStr=o.PropTypes.oneOfType([o.PropTypes.string,o.PropTypes.number])),s=e.chartData=o.PropTypes.shape({id:i.isRequired,highlighted:o.PropTypes.bool,location:o.PropTypes.shape({color:o.PropTypes.string.isRequired,id:o.PropTypes.string.isRequired,value:o.PropTypes.string.isRequired}).isRequired,values:o.PropTypes.arrayOf(o.PropTypes.shape({date:i.isRequired,value:i.isRequired})).isRequired}),u=e.chartDomain=o.PropTypes.shape({x:o.PropTypes.arrayOf(i),y:o.PropTypes.arrayOf(i)}),l=e.chartOptions=o.PropTypes.object,c=(e.dataSet=o.PropTypes.shape({name:o.PropTypes.string.isRequired,description:o.PropTypes.string.isRequired,id:o.PropTypes.string.isRequired,sidebarContent:o.PropTypes.string,url:o.PropTypes.string}),e.historyLocation=o.PropTypes.shape({hash:o.PropTypes.string.isRequired,pathname:o.PropTypes.string.isRequired,query:o.PropTypes.object.isRequired,search:o.PropTypes.string.isRequired}),e.mapData=o.PropTypes.objectOf(o.PropTypes.number),e.incomeLevel=o.PropTypes.shape({id:o.PropTypes.string.isRequired,name:o.PropTypes.string})),d=(e.indicatorMeta=o.PropTypes.shape({id:o.PropTypes.string.isRequired,licenseType:o.PropTypes.string,licenseUrl:o.PropTypes.string,fullname:o.PropTypes.string,shortname:o.PropTypes.string,source:o.PropTypes.string,sourceNote:o.PropTypes.string,sourceOrganization:o.PropTypes.string,sourceURL:o.PropTypes.string,unit:o.PropTypes.string,WDITable:o.PropTypes.string}),e.locationGroups=o.PropTypes.arrayOf(o.PropTypes.shape({locations:o.PropTypes.arrayOf(o.PropTypes.shape({id:o.PropTypes.string.isRequired,name:o.PropTypes.string.isRequired})),type:o.PropTypes.string.isRequired})),e.region=o.PropTypes.shape({id:o.PropTypes.string.isRequired,name:o.PropTypes.string})),p=(e.location=o.PropTypes.shape({adminRegion:d,color:o.PropTypes.string.isRequired,id:o.PropTypes.string.isRequired,incomeLevel:c,isAggregate:o.PropTypes.bool,iso3:o.PropTypes.string,locationType:o.PropTypes.string,name:o.PropTypes.string,region:d}),e.range=o.PropTypes.shape({start:o.PropTypes.object.isRequired,end:o.PropTypes.object.isRequired}),e.topic=o.PropTypes.shape({id:o.PropTypes.string.isRequired,indicators:o.PropTypes.arrayOf(o.PropTypes.shape({id:o.PropTypes.string.isRequired})).isRequired,name:o.PropTypes.string,source:o.PropTypes.string}),e.yearRange=o.PropTypes.shape({start:o.PropTypes.number.isRequired,end:o.PropTypes.number.isRequired}),e.chart=o.PropTypes.shape({data:o.PropTypes.arrayOf(s).isRequired,domain:u.isRequired,options:l}));e.chartIndicator=o.PropTypes.shape({id:o.PropTypes.string.isRequired,fullname:o.PropTypes.string,shortname:o.PropTypes.string,data:o.PropTypes.arrayOf(s).isRequired}),e.featuredIndicator=o.PropTypes.shape({chart:p.isRequired,fullname:o.PropTypes.string,id:o.PropTypes.string.isRequired,selected:o.PropTypes.bool,shortname:o.PropTypes.string}),e.locationDetailsItem=o.PropTypes.shape({chart:p,data:o.PropTypes.oneOfType([o.PropTypes.object,o.PropTypes.arrayOf(o.PropTypes.object)]),link:o.PropTypes.string.isRequired,title:o.PropTypes.string.isRequired,type:o.PropTypes.string})},,function(t,e){var n=t.exports={version:"2.2.2"};"number"==typeof __e&&(__e=n)},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}e.__esModule=!0,e.compose=e.applyMiddleware=e.bindActionCreators=e.combineReducers=e.createStore=void 0;var o=n(538),a=r(o),i=n(1105),s=r(i),u=n(1104),l=r(u),c=n(1103),d=r(c),p=n(537),f=r(p),h=n(539);r(h);e.createStore=a["default"],e.combineReducers=s["default"],e.bindActionCreators=l["default"],e.applyMiddleware=d["default"],e.compose=f["default"]},function(t,e,n){t.exports=!n(16)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(t,e,n){var r=n(14),o=n(398),a=n(76),i=Object.defineProperty;e.f=n(27)?Object.defineProperty:function(t,e,n){if(r(t),e=a(e,!0),r(n),o)try{return i(t,e,n)}catch(s){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},function(t,e,n){"use strict";function r(t){for(var e;e=t._renderedComponent;)t=e;return t}function o(t,e){var n=r(t);n._hostNode=e,e[g]=n}function a(t){var e=t._hostNode;e&&(delete e[g],t._hostNode=null)}function i(t,e){if(!(t._flags&h.hasCachedChildNodes)){var n=t._renderedChildren,a=e.firstChild;t:for(var i in n)if(n.hasOwnProperty(i)){var s=n[i],u=r(s)._domID;if(null!=u){for(;null!==a;a=a.nextSibling)if(1===a.nodeType&&a.getAttribute(f)===String(u)||8===a.nodeType&&a.nodeValue===" react-text: "+u+" "||8===a.nodeType&&a.nodeValue===" react-empty: "+u+" "){o(s,a);continue t}c("32",u)}}t._flags|=h.hasCachedChildNodes}}function s(t){if(t[g])return t[g];for(var e=[];!t[g];){if(e.push(t),!t.parentNode)return null;t=t.parentNode}for(var n,r;t&&(r=t[g]);t=e.pop())n=r,e.length&&i(r,t);return n}function u(t){var e=s(t);return null!=e&&e._hostNode===t?e:null}function l(t){if(void 0===t._hostNode?c("33"):void 0,t._hostNode)return t._hostNode;for(var e=[];!t._hostNode;)e.push(t),t._hostParent?void 0:c("34"),t=t._hostParent;for(;e.length;t=e.pop())i(t,t._hostNode);return t._hostNode}var c=n(13),d=n(168),p=n(511),f=(n(10),d.ID_ATTRIBUTE_NAME),h=p,g="__reactInternalInstance$"+Math.random().toString(36).slice(2),m={getClosestInstanceFromNode:s,getInstanceFromNode:u,getNodeFromInstance:l,precacheChildNodes:i,precacheNode:o,uncacheNode:a};t.exports=m},,function(t,e,n){var r=n(43),o=n(25),a=n(104),i=n(92),s="prototype",u=function(t,e,n){var l,c,d,p=t&u.F,f=t&u.G,h=t&u.S,g=t&u.P,m=t&u.B,y=t&u.W,v=f?o:o[e]||(o[e]={}),_=v[s],b=f?r:h?r[e]:(r[e]||{})[s];f&&(n=e);for(l in n)c=!p&&b&&void 0!==b[l],c&&l in v||(d=c?b[l]:n[l],v[l]=f&&"function"!=typeof b[l]?n[l]:m&&c?a(d,r):y&&b[l]==d?function(t){var e=function(e,n,r){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,n)}return new t(e,n,r)}return t.apply(this,arguments)};return e[s]=t[s],e}(d):g&&"function"==typeof d?a(Function.call,d):d,g&&((v.virtual||(v.virtual={}))[l]=d,t&u.R&&_&&!_[l]&&i(_,l,d)))};u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,t.exports=u},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}function o(t){return function(e,n){var r=(0,T.parseLocale)((0,L.localeSelector)(n())),o=(0,M.selectionToPath)([{value:t,category:"indicator"}],(0,C.urlIdMappingSelector)(n()),r);(0,L.locationSelector)(n()).query;return(0,S.NavigationViaSearchbox)(o),e((0,v.push)({pathname:o,query:{}}))}}function a(t){return function(e,n){var r=(0,T.parseLocale)((0,L.localeSelector)(n())),o=(0,M.selectionToPath)(t,(0,C.urlIdMappingSelector)(n()),r),a=(0,L.locationSelector)(n()).query,i=b["default"].omit((0,y["default"])({},a,(0,M.selectionToQuery)(t)),(0,M.selectionToOmitList)(t,r));(0,S.NavigationViaSearchbox)(o);var s=(window.env,"production");if(E.isLocal||!b["default"].includes(o,A.DATA_CATALOG_PATH))return e((0,v.push)({pathname:o,query:i}));var u=A.ENV_LOCALE_LINKS_MAP[s][A.DEFAULT_LOCALE],l=b["default"].startsWith(u,"http")?"":"http://";window.location=""+l+u+o}}function i(t){return function(e,n){var r=(0,L.locationSelector)(n()).query;b["default"].isEmpty((0,O.indicatorsGroupsSelector)(n())[t])&&(r=b["default"].omit(r,"contextual")),e((0,v.push)({pathname:(0,M.indicatorIdToPath)(t),query:r}))}}function s(t,e,n,r){var o=(0,C.multiSelectionSelector)(e()),i=function(t){return t.category===A.CATEGORY_LOCATION&&t.value===n},s=b["default"].find(o,i);if(!r&&s)return g["default"].resolve();var u=s?o.filter(function(t){return!i(t)}):o.concat({category:A.CATEGORY_LOCATION,value:n});return t(a(u))}function u(t){return function(e,n){return s(e,n,t,!0)}}function l(t){return function(e,n){return s(e,n,t,!1)}}function c(t){return function(e,n){var r=(0,C.multiSelectionSelector)(n()),o=r.concat({category:A.CATEGORY_INDICATOR,value:t});return e(a(o))}}function d(t){return function(e,n){var r=(0,L.locationSelector)(n()),o=r.pathname,a=r.query;e((0,v.push)({pathname:o,query:(0,y["default"])({},a,t)}))}}function p(t,e){return function(n,r){var o=(0,L.locationSelector)(r()),a=o.pathname,i=o.query;e&&(i=b["default"].omit(i,e)),n((0,v.replace)({pathname:a,query:(0,y["default"])({},i,t)}))}}function f(t){return function(e,n){e((0,v.push)({pathname:t}))}}Object.defineProperty(e,"__esModule",{value:!0});var h=n(39),g=r(h),m=n(11),y=r(m);e.toIndicatorOnly=o,e.changeSelection=a,e.changeSelectedIndicator=i,e.toggleLocation=u,e.addLocation=l,e.addIndicator=c,e.updateQuery=d,e.replaceQuery=p,e.updatePathname=f;var v=n(228),_=n(3),b=r(_),E=n(115),A=n(9),S=n(118),T=n(241),M=n(171),L=n(15),C=n(18),O=n(36)},function(t,e,n){var r=n(103),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},,function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}function o(t,e){if(e.indexOf("deprecated")!==-1){if(u[e])return;u[e]=!0}e="[react-router] "+e;for(var n=arguments.length,r=Array(n>2?n-2:0),o=2;o"+o+""};t.exports=function(t,e){var n={};n[t]=e(s),r(r.P+r.F*o(function(){var e=""[t]('"');return e!==e.toLowerCase()||e.split('"').length>3}),"String",n)}},function(t,e,n){var r=n(173),o=n(61);t.exports=function(t){return r(o(t))}},,,function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}e.__esModule=!0,e.reducer=e.loadOnServer=e.asyncConnect=e.ReduxAsyncConnect=void 0;var o=n(1097);Object.defineProperty(e,"asyncConnect",{enumerable:!0,get:function(){return o.asyncConnect}});var a=n(369);Object.defineProperty(e,"loadOnServer",{enumerable:!0,get:function(){return a.loadOnServer}});var i=n(237);Object.defineProperty(e,"reducer",{enumerable:!0,get:function(){return i.reducer}});var s=n(1096),u=r(s);e.ReduxAsyncConnect=u["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}function o(t){return function(e){return e((0,Y.retrievePaths)([["datasets"],[t]]))}}function a(t){return function(e,n){return e((0,Y.retrievePaths)([["datasetContent"],[t],[N(n())]]))}}function i(){return function(t){var e=[[["related"],["datasets"]]];return t(Y.retrievePaths.apply(void 0,e))}}function s(){return function(t){return t((0,Y.retrievePaths)(["banner"]))}}function u(){return function(t){var e=[[["lists"],["datasets"]]];return t(Y.retrievePaths.apply(void 0,e))}}function l(){return function(t,e){var n=k(e()),r=n.indicators,o=n.locations,a=(0,tt.defaultLocationsSelector)(e()),i=J["default"].isEmpty(o)?a:o;if(r.length>0&&i.length>0){var s=(0,it.selectedViewSelector)(e());return s===Q.VIEW_MAP?V["default"].all([t(y(["countries"])),t(b(i,r))]).then(function(){return t(M(r[0]))}):t(b(i,r))}}}function c(){return function(t){var e=[["globalConfig"],Q.GLOBAL_CONFIG_META_FIELDS];return t((0,Y.retrievePaths)(e))}}function d(){return function(t,e){return t(x()).then(function(){var n=k(e()),r=n.indicators,o=J["default"].head(r)||(0,tt.chartIndicatorSelector)(e());if(o){var a=(0,ut.selectedRelatedLocationsSelector)(e());if(a)return t(b(a,[o]))}return V["default"].resolve()})}}function p(t,e,n){var r=(0,tt.selectedLocationsSelector)(e()),o=(0,tt.defaultLocationsSelector)(e()),a=J["default"].isEmpty(r)?o:r,i=(0,it.selectedViewSelector)(e());return V["default"].all([t(y(["countries","sources"])),t(b(a,[n])),i!==Q.VIEW_MAP?t(d()):void 0]).then(function(){return V["default"].all([t(h((0,tt.selectedLocationsMetaSelector)(e()).map(function(t){return t.iso3}),n))]).then(function(){return V["default"].all([t(T()),t((0,Y.retrievePaths)([["extraData"],["templateUrls"],[n]])),t(D()),i===Q.VIEW_MAP?t(M(n)):void 0])})})}function f(){return function(t,e){var n=(0,tt.groupChartIndicatorSelector)(e())||[],r=0==n.length?[(0,tt.selectedIndicatorSelector)(e())]:n;return V["default"].all(r.map(function(n){return p(t,e,n)}))}}function h(t,e){return function(n,r){var o=!J["default"].isEmpty(t),a=J["default"].isArray(e)?X["default"].flatten(e.map(function(e){ +return t.map(function(t){return t+"~"+e})})):t.map(function(t){return t+"~"+e}),i=J["default"].compact([o?[["locationSeriesMeta"],a,["countrySeries"]]:void 0]);return n(Y.retrievePaths.apply(void 0,(0,q["default"])(i)))}}function g(t){return function(e){var n=[["indicatorMeta"],[t],Q.INDICATOR_EXTRA_META_FIELDS];return e((0,Y.retrievePaths)(n))}}function m(){return function(t){return t((0,Y.retrievePaths)(["indicatorsByTopic"]))}}function y(){var t=arguments.length<=0||void 0===arguments[0]?Q.LIST_FIELDS:arguments[0];return function(e,n){var r=[[["lists"],t,[N(n())]]];return e(Y.retrievePaths.apply(void 0,r))}}function v(){return function(t,e){var n=(0,tt.selectedLocationsSelector)(e()),r=1===n.length;(0,tt.selectedIndicatorSelector)(e());return V["default"].all([t(c()).then(function(){var r=(0,nt.locationIndicatorsIdSelector)(e());t(b(n,r))}),t(y(["countries","sources"])),r?t(_("countryMeta",n[0])):void 0]).then(function(){return V["default"].all([t(S()),t(T()),t(E())])}).then(function(){return V["default"].all((0,nt.locationIndicatorsIdSelector)(e()).map(function(n){return t(h((0,tt.selectedLocationsMetaSelector)(e()).map(function(t){return t.iso3}),n))}))})}}function _(t,e){return function(n){var r=[[t],[e],Q.LOCALES_WITH_TRANSLATED_URL_NAMES];return n((0,Y.retrievePaths)(r))}}function b(t,e){return function(n,r){var o=!J["default"].isEmpty(t),a=N(r()),i=J["default"].compact([o?[["indicatorData"],t,e,[Q.INDICATOR_RANGE]]:void 0,o?[["countryMeta"],t,Q.LOCATION_META_FIELDS.concat(a).concat("en")]:void 0,[["indicatorMeta"],e,Q.INDICATOR_META_FIELDS.concat(a)]]),s=J["default"].compact([o?[["locationSeriesMeta"],X["default"].flatten(e.map(function(e){return t.map(function(t){return t+"~"+e})})),["countrySeries"]]:void 0]);return n(Y.retrievePaths.apply(void 0,(0,q["default"])(i))).then(function(){return Y.retrievePaths.apply(void 0,(0,q["default"])(s))})}}function E(){return function(t,e){return t(A()).then(function(){var n=(0,ot.locationDetailsTargetSelector)(e());if(n){var r=[["extraData"],Q.EXTRA_DATA_CATEGORIES[n.category],[n.key]];return t((0,Y.retrievePaths)(r))}return V["default"].resolve()})}}function A(){return function(t,e){var n=k(e()),r=n.locations;if(!J["default"].isEmpty(r)){var o=[["countryMeta"],r,Q.LOCATION_META_FIELDS.concat(N(e())).concat("en")];return t((0,Y.retrievePaths)(o))}return V["default"].resolve()}}function S(){return function(t,e){return t(A()).then(function(){var n=k(e()),r=n.locations,o=(0,et.locationMetaSelector)(e()),a=(0,J["default"])(r).flatMap(function(t){var e=J["default"].get(o,t,{}),n=e.incomelevel,r=e.adminregion,a=e.region;return J["default"].compact([n,r,a])}).uniq().value();if(!J["default"].isEmpty(a)){var i=[["countryMeta"],a,Q.LOCATION_META_FIELDS.concat(N(e()))];return t((0,Y.retrievePaths)(i))}return V["default"].resolve()})}}function T(){return function(t,e){var n=(0,tt.selectedIndicatorSelector)(e()),r=(0,rt.locationsListSelector)(e()).map(function(t){return t.id});if(n&&r){var o=[["indicatorData"],r,[n],[Q.INDICATOR_RANGE]];return t((0,Y.retrievePaths)(o))}return V["default"].resolve()}}function M(t){return function(e,n){var r=J["default"].map((0,rt.locationsListSelector)(n()),"id");if(r.length>0){var o=R(n()),a={from:o,to:o},i=[["indicatorData"],r,[t],[a]];return e((0,Y.retrievePaths)(i))}return V["default"].resolve()}}function L(){return function(t){return t((0,Y.retrievePaths)(["locGroupsByCategory"]))}}function C(){return function(t){return t(O()).then(function(){return V["default"].all([t(S()).then(function(){return t(E())}),t(d()),t(w())])})}}function O(){return function(t,e){var n=k(e()),r=n.topics;if(!J["default"].isEmpty(r)){var o=J["default"].uniq([N(e())].concat(Q.LOCALES_WITH_TRANSLATED_URL_NAMES)),a=[["topicMeta"],r,Q.TOPIC_META_FIELDS.concat(o)];return t((0,Y.retrievePaths)(a))}return V["default"].resolve()}}function w(){return function(t,e){var n=(0,tt.selectedTopicSelector)(e()).indicators;return t(I(n.map(X["default"].prop("id")))).then(function(){return t(P((0,tt.selectedTopicEmptyDefaultQuery)(e())))})}}function D(){return function(t,e){var n=(0,tt.relatedIndicatorsIdSelector)(e());return t(I(n))}}function P(t){return function(e,n){var r=(k(n()),N(n())),o=(0,J["default"])(t).flatMap(function(t){var e=(0,W["default"])(t,2),n=e[0],o=e[1];return o.length>0&&n.length>0?[[["countryMeta"],o,Q.LOCATION_META_FIELDS.concat(r)],[["indicatorData"],o,[n],[Q.INDICATOR_RANGE]],[["indicatorMeta"],[n],Q.INDICATOR_META_FIELDS.concat(r)]]:[]}).value();return e(Y.retrievePaths.apply(void 0,(0,q["default"])(o)))}}function x(){return function(t,e){var n=k(e()),r=n.locations,o=n.indicators,a=J["default"].head(o)||(0,tt.chartIndicatorSelector)(e()),i=(0,it.selectedContextualSelector)(e()),s=i!==Q.CONTEXTUAL_MODE_NONE;if(a&&r.length>0&&s){var u=[[["relatedLocations"],[a],r,[i]]];return t(Y.retrievePaths.apply(void 0,u))}return V["default"].resolve()}}function I(t){return function(e,n){var r=k(n()),o=N(n()),a=r.locations.length>0?r.locations:r.defaultLocations;if(a.length>0&&t.length>0){var i=function(){var r=[[["countryMeta"],a,Q.LOCATION_META_FIELDS.concat(o)],[["indicatorData"],a,t,[Q.INDICATOR_RANGE]],[["indicatorMeta"],t,Q.INDICATOR_META_FIELDS.concat(o)]],i=t.map(function(t){return e(h((0,tt.selectedLocationsMetaSelector)(n()).map(function(t){return t.iso3}),t))});return{v:e(Y.retrievePaths.apply(void 0,r)).then(function(){return V["default"].all(i)})}}();if("object"===("undefined"==typeof i?"undefined":(0,F["default"])(i)))return i.v}return V["default"].resolve()}}function R(t){var e=(0,it.selectedYearSelector)(t)||J["default"].get((0,at.chartSelectedRangeSelector)(t),"end")||J["default"].get((0,at.chartRangeSelector)(t),"end")||Q.DEFAULT_RANGE.end;return J["default"].isFunction(J["default"].get(e,"getFullYear"))?e.getFullYear():J["default"].parseInt(e)}function k(t){return(0,U["default"])({},(0,st.getSelectionIds)((0,tt.multiSelectionSelector)(t)),{defaultLocations:(0,tt.defaultLocationsSelector)(t)})}function N(t){return(0,$.getAPILocale)((0,it.localeSelector)(t))}Object.defineProperty(e,"__esModule",{value:!0});var B=n(11),U=r(B),j=n(57),F=r(j),H=n(63),W=r(H),z=n(272),q=r(z),G=n(39),V=r(G);e.fetchDataSet=o,e.fetchDataSetContent=a,e.fetchRelatedDataSets=i,e.fetchBanner=s,e.fetchDataSets=u,e.fetchEmbed=l,e.fetchContextualData=d,e.fetchIndicatorCard=f,e.fetchLocationIndicatorMetaData=h,e.fetchIndicatorExtraMetaFields=g,e.fetchIndicatorsByTopic=m,e.fetchLists=y,e.fetchLocationsCard=v,e.fetchLocationData=b,e.fetchLocationsMeta=A,e.fetchAggregatesMeta=S,e.fetchDetailsCardData=T,e.fetchMapData=M,e.fetchLocationGroupsByCategory=L,e.fetchTopicCard=C,e.fetchTopicMeta=O,e.fetchTopicIndicators=w,e.fetchRelatedIndicators=D,e.fetchRelatedLocations=x,e.getSelection=k;var K=n(3),J=r(K),Y=n(371),Z=n(41),X=r(Z),Q=n(9),$=n(241),tt=n(18),et=n(42),nt=n(387),rt=n(87),ot=n(242),at=n(143),it=n(15),st=n(100),ut=n(568)},function(t,e,n){var r=n(174),o=n(102),a=n(50),i=n(76),s=n(38),u=n(398),l=Object.getOwnPropertyDescriptor;e.f=n(27)?l:function(t,e){if(t=a(t),e=i(e,!0),u)try{return l(t,e)}catch(n){}if(s(t,e))return o(!r.f.call(t,e),t[e])}},function(t,e,n){var r=n(38),o=n(37),a=n(258)("IE_PROTO"),i=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=o(t),r(t,a)?t[a]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?i:null}},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}e.__esModule=!0;var o=n(759),a=r(o),i=n(758),s=r(i),u="function"==typeof s["default"]&&"symbol"==typeof a["default"]?function(t){return typeof t}:function(t){return t&&"function"==typeof s["default"]&&t.constructor===s["default"]?"symbol":typeof t};e["default"]="function"==typeof s["default"]&&"symbol"===u(a["default"])?function(t){return"undefined"==typeof t?"undefined":u(t)}:function(t){return t&&"function"==typeof s["default"]&&t.constructor===s["default"]?"symbol":"undefined"==typeof t?"undefined":u(t)}},,,function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,e){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},function(t,e,n){var r=n(16);t.exports=function(t,e){return!!t&&r(function(){e?t.call(null,function(){},1):t.call(null)})}},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}e.__esModule=!0;var o=n(751),a=r(o),i=n(750),s=r(i);e["default"]=function(){function t(t,e){var n=[],r=!0,o=!1,a=void 0;try{for(var i,u=(0,s["default"])(t);!(r=(i=u.next()).done)&&(n.push(i.value),!e||n.length!==e);r=!0);}catch(l){o=!0,a=l}finally{try{!r&&u["return"]&&u["return"]()}finally{if(o)throw a}}return n}return function(e,n){if(Array.isArray(e))return e;if((0,a["default"])(Object(e)))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}()},,,,,function(t,e,n){"use strict";function r(){C.ReactReconcileTransaction&&E?void 0:c("123")}function o(){this.reinitializeTransaction(),this.dirtyComponentsLength=null,this.callbackQueue=p.getPooled(),this.reconcileTransaction=C.ReactReconcileTransaction.getPooled(!0)}function a(t,e,n,o,a,i){r(),E.batchedUpdates(t,e,n,o,a,i)}function i(t,e){return t._mountOrder-e._mountOrder}function s(t){var e=t.dirtyComponentsLength;e!==y.length?c("124",e,y.length):void 0,y.sort(i),v++;for(var n=0;n1?e-1:0),o=1;o2?r-2:0),a=2;aE;E++)if((p||E in v)&&(g=v[E],m=_(g,E,y),t))if(n)A[E]=m;else if(m)switch(t){case 3:return!0;case 5:return g;case 6:return E;case 2:A.push(g)}else if(c)return!1;return d?-1:l||c?c:A}}},function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e,n){var r=n(1),o=n(88),a=n(16);t.exports=function(t,e){var n=(o.Object||{})[t]||Object[t],i={};i[t]=e(n),r(r.S+r.F*a(function(){n(1)}),"Object",i)}},function(t,e,n){var r=n(21);t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if("function"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}e.__esModule=!0;var o=n(270),a=r(o);e["default"]=function(t,e,n){return e in t?(0,a["default"])(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}},function(t,e,n){var r=n(93);t.exports=function(t){if(!r(t))throw TypeError(t+" is not an object!");return t}},function(t,e,n){t.exports=!n(105)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(t,e,n){var r=n(78),o=n(420),a=n(287),i=Object.defineProperty;e.f=n(79)?Object.defineProperty:function(t,e,n){if(r(t),e=a(e,!0),r(n),o)try{return i(t,e,n)}catch(s){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},,,,,function(t,e){"use strict";function n(t,e){if(!e||!e.length)return!1;for(var n=0;n/g,"")},lbounds:function(t){return new L.LatLngBounds([[t[1],t[0]],[t[3],t[2]]])}}},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0});var o=n(11),a=r(o),i=n(7),s=r(i),u=n(4),l=r(u),c=n(8),d=r(c),p=n(6),f=r(p),h=n(5),g=r(h),m=n(2),y=r(m),v=["onclick","click"];e["default"]=function(){var t=arguments.length<=0||void 0===arguments[0]?v:arguments[0];return function(e){var n,r;return r=n=function(n){function r(){return(0,l["default"])(this,r),(0,f["default"])(this,(0,s["default"])(r).apply(this,arguments))}return(0,g["default"])(r,n),(0,d["default"])(r,[{key:"componentDidMount",value:function(){var e=this.refs.inner.onDefocus;t.forEach(function(t){return document.addEventListener(t,e,!1)})}},{key:"componentWillUnmount",value:function(){var e=this;!function(){var n=e.refs.inner.onDefocus;t.forEach(function(t){return document.removeEventListener(t,n,!1)})}()}},{key:"render",value:function(){return y["default"].createElement(e,(0,a["default"])({ref:"inner"},this.props,this.state))}}]),r}(m.Component),n.displayName="ComponentEnhancedWithHandleDefocusHOC",r}},t.exports=e["default"]},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.sourcesListSelector=e.topicsListSelector=e.locationsListSelector=e.indicatorsListSelector=void 0;var r=n(69),o=n(42),a=n(15),i=n(100);e.indicatorsListSelector=(0,r.createSelector)([o.listsSelector,a.localeSelector],function(t,e){return(0,i.getLocalizedList)(t.indicators,e)}),e.locationsListSelector=(0,r.createSelector)([o.listsSelector,a.localeSelector],function(t,e){return(0,i.getLocalizedList)(t.countries,e)}),e.topicsListSelector=(0,r.createSelector)([o.listsSelector,a.localeSelector],function(t,e){return(0,i.getLocalizedList)(t.topics,e)}),e.sourcesListSelector=(0,r.createSelector)([o.listsSelector,a.localeSelector],function(t,e){return(0,i.getLocalizedList)(t.sources,e)})},function(t,e){var n=t.exports={version:"2.2.2"};"number"==typeof __e&&(__e=n)},function(t,e,n){var r=n(60);t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},function(t,e,n){var r=n(412),o=n(1),a=n(211)("metadata"),i=a.store||(a.store=new(n(415))),s=function(t,e,n){var o=i.get(t);if(!o){if(!n)return;i.set(t,o=new r)}var a=o.get(e);if(!a){if(!n)return;o.set(e,a=new r)}return a},u=function(t,e,n){var r=s(e,n,!1);return void 0!==r&&r.has(t)},l=function(t,e,n){var r=s(e,n,!1);return void 0===r?void 0:r.get(t)},c=function(t,e,n,r){s(n,r,!0).set(t,e)},d=function(t,e){var n=s(t,e,!1),r=[];return n&&n.forEach(function(t,e){r.push(e)}),r},p=function(t){return void 0===t||"symbol"==typeof t?t:String(t)},f=function(t){o(o.S,"Reflect",t)};t.exports={store:i,map:s,has:u,get:l,set:c,keys:d,key:p,exp:f}},function(t,e,n){"use strict";if(n(27)){var r=n(147),o=n(20),a=n(16),i=n(1),s=n(212),u=n(265),l=n(89),c=n(119),d=n(102),p=n(47),f=n(149),h=(n(253),n(103)),g=n(33),m=n(123),y=n(76),v=n(38),_=n(410),b=n(146),E=n(21),A=n(37),S=n(251),T=n(121),M=n(56),L=n(122).f,C=(n(580),n(266)),O=n(124),w=n(22),D=n(73),P=n(201),x=n(259),I=n(267),R=n(120),k=n(207),N=n(150),B=n(244),U=n(391),j=n(28),F=n(55),H=j.f,W=F.f,z=o.RangeError,q=o.TypeError,G=o.Uint8Array,V="ArrayBuffer",K="Shared"+V,J="BYTES_PER_ELEMENT",Y="prototype",Z=Array[Y],X=u.ArrayBuffer,Q=u.DataView,$=D(0),tt=D(2),et=D(3),nt=D(4),rt=D(5),ot=D(6),at=P(!0),it=P(!1),st=I.values,ut=I.keys,lt=I.entries,ct=Z.lastIndexOf,dt=Z.reduce,pt=Z.reduceRight,ft=Z.join,ht=Z.sort,gt=Z.slice,mt=Z.toString,yt=Z.toLocaleString,vt=w("iterator"),_t=w("toStringTag"),bt=O("typed_constructor"),Et=O("def_constructor"),At=s.CONSTR,St=s.TYPED,Tt=s.VIEW,Mt="Wrong length!",Lt=D(1,function(t,e){return xt(x(t,t[Et]),e)}),Ct=a(function(){return 1===new G(new Uint16Array([1]).buffer)[0]}),Ot=!!G&&!!G[Y].set&&a(function(){new G(1).set({})}),wt=function(t,e){if(void 0===t)throw q(Mt);var n=+t,r=g(t);if(e&&!_(n,r))throw z(Mt);return r},Dt=function(t,e){var n=h(t);if(n<0||n%e)throw z("Wrong offset!");return n},Pt=function(t){if(E(t)&&St in t)return t;throw q(t+" is not a typed array!")},xt=function(t,e){if(!(E(t)&&bt in t))throw q("It is not a typed array constructor!");return new t(e)},It=function(t,e){return Rt(x(t,t[Et]),e)},Rt=function(t,e){for(var n=0,r=e.length,o=xt(t,r);r>n;)o[n]=e[n++];return o},kt=function(t,e,n){H(t,e,{get:function(){return this._d[n]}})},Nt=function(t){var e,n,r,o,a,i,s=A(t),u=arguments.length,c=u>1?arguments[1]:void 0,d=void 0!==c,p=C(s);if(void 0!=p&&!S(p)){for(i=p.call(s),r=[],e=0;!(a=i.next()).done;e++)r.push(a.value);s=r}for(d&&u>2&&(c=l(c,arguments[2],2)),e=0,n=g(s.length),o=xt(this,n);n>e;e++)o[e]=d?c(s[e],e):s[e];return o},Bt=function(){for(var t=0,e=arguments.length,n=xt(this,e);e>t;)n[t]=arguments[t++];return n},Ut=!!G&&a(function(){yt.call(new G(1))}),jt=function(){return yt.apply(Ut?gt.call(Pt(this)):Pt(this),arguments)},Ft={copyWithin:function(t,e){return U.call(Pt(this),t,e,arguments.length>2?arguments[2]:void 0)},every:function(t){return nt(Pt(this),t,arguments.length>1?arguments[1]:void 0)},fill:function(t){return B.apply(Pt(this),arguments)},filter:function(t){return It(this,tt(Pt(this),t,arguments.length>1?arguments[1]:void 0))},find:function(t){return rt(Pt(this),t,arguments.length>1?arguments[1]:void 0)},findIndex:function(t){return ot(Pt(this),t,arguments.length>1?arguments[1]:void 0)},forEach:function(t){$(Pt(this),t,arguments.length>1?arguments[1]:void 0)},indexOf:function(t){return it(Pt(this),t,arguments.length>1?arguments[1]:void 0)},includes:function(t){return at(Pt(this),t,arguments.length>1?arguments[1]:void 0)},join:function(t){return ft.apply(Pt(this),arguments)},lastIndexOf:function(t){return ct.apply(Pt(this),arguments)},map:function(t){return Lt(Pt(this),t,arguments.length>1?arguments[1]:void 0)},reduce:function(t){return dt.apply(Pt(this),arguments)},reduceRight:function(t){return pt.apply(Pt(this),arguments)},reverse:function(){for(var t,e=this,n=Pt(e).length,r=Math.floor(n/2),o=0;o1?arguments[1]:void 0)},sort:function(t){return ht.call(Pt(this),t)},subarray:function(t,e){var n=Pt(this),r=n.length,o=m(t,r);return new(x(n,n[Et]))(n.buffer,n.byteOffset+o*n.BYTES_PER_ELEMENT,g((void 0===e?r:m(e,r))-o))}},Ht=function(t,e){return It(this,gt.call(Pt(this),t,e))},Wt=function(t){Pt(this);var e=Dt(arguments[1],1),n=this.length,r=A(t),o=g(r.length),a=0;if(o+e>n)throw z(Mt);for(;a255?255:255&r),o.v[h](n*e+o.o,r,Ct)},w=function(t,e){H(t,e,{get:function(){return C(this,e)},set:function(t){return O(this,e,t)},enumerable:!0})};_?(m=n(function(t,n,r,o){c(t,m,l,"_d");var a,i,s,u,d=0,f=0;if(E(n)){if(!(n instanceof X||(u=b(n))==V||u==K))return St in n?Rt(m,n):Nt.call(m,n);a=n,f=Dt(r,e);var h=n.byteLength;if(void 0===o){if(h%e)throw z(Mt);if(i=h-f,i<0)throw z(Mt)}else if(i=g(o)*e,i+f>h)throw z(Mt);s=i/e}else s=wt(n,!0),i=s*e,a=new X(i);for(p(t,"_d",{b:a,o:f,l:i,e:s,v:new Q(a)});d=c&&e<=d})})}).filter(function(t){var e=t.values;return!n||e.length>0});return{data:f,domain:{x:[c,d]}}}function u(t){var e=S["default"].map(S["default"].flatMap(t,"values"),"date"),n=[T.DEFAULT_RANGE.start,T.DEFAULT_RANGE.end];return(0,E.extent)(e.length>0?e:n).map(function(t){return(0,M.yearToDate)(t)})}function l(t){var e=(0,S["default"])(t).groupBy("category").map(function(t,e){return[e,S["default"].uniq(S["default"].map(t,"value"))]}).fromPairs().value(),n=e.dataset,r=e.indicator,o=e.location,a=e.topic;return{dataSets:n||[],indicators:r||[],locations:o||[],topics:a||[]}}function c(t){return(0,_.falcorKeys)(t).map(function(e){return{date:e,value:t[e]}}).filter(function(t){var e=t.value;return void 0!==e})}Object.defineProperty(e,"__esModule",{value:!0}),e.createIndicatorDataSelector=e.createMemoizedSelector=e.createDeepEqualSelector=void 0;var d=n(63),p=r(d),f=n(11),h=r(f),g=n(57),m=r(g),y=n(268),v=r(y);e.getIndicatorMeta=o,e.getLocalized=a,e.getLocalizedList=i,e.getRangedDataAndDomain=s,e.getSelectionIds=l,e.transformDataValues=c;var _=n(567),b=n(69),E=n(51),A=n(3),S=r(A),T=n(9),M=n(200),L=n(241),C=n(170);e.createDeepEqualSelector=(0,b.createSelectorCreator)(b.defaultMemoize,S["default"].isEqual),e.createMemoizedSelector=(0,b.createSelectorCreator)(S["default"].memoize,function(){for(var t=arguments.length,e=Array(t),n=0;n0?r:n)(t)}},function(t,e,n){var r=n(273);t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},function(t,e,n){var r=n(277),o=n(177);t.exports=function(t){return r(o(t))}},,,,,function(t,e,n){"use strict";t.exports=n(1040)},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}function o(t){return null==t||f["default"].isValidElement(t)}function a(t){return o(t)||Array.isArray(t)&&t.every(o)}function i(t,e,n){t=t||"UnknownComponent";for(var r in e)if(Object.prototype.hasOwnProperty.call(e,r)){var o=e[r](n,r,t);o instanceof Error}}function s(t,e){return d({},t,e)}function u(t){var e=t.type,n=s(e.defaultProps,t.props);if(e.propTypes&&i(e.displayName||e.name,e.propTypes,n),n.children){var r=l(n.children,n);r.length&&(n.childRoutes=r),delete n.children}return n}function l(t,e){var n=[];return f["default"].Children.forEach(t,function(t){if(f["default"].isValidElement(t))if(t.type.createRouteFromReactElement){var r=t.type.createRouteFromReactElement(t,e);r&&n.push(r)}else n.push(u(t))}),n}function c(t){return a(t)?t=l(t):t&&!Array.isArray(t)&&(t=[t]),t}e.__esModule=!0;var d=Object.assign||function(t){for(var e=1;e"+(a&&a.indicatorName?a.indicatorName+" - ":"")+" "+(r.value||r.id)+" ("+n+")\n
"+(0,i.valueWithUnitName)(o,l,u)+"
\n "},ratio:5/3,sparklineMaxWidth:150,sparklineMargin:{left:10,right:10,top:10,bottom:10},tooltipAlwaysTop:!1,tooltipFollowMouse:!1,tooltipMarginV:14});e.BAR_CHART_PROPS=(0,a["default"])({},s,{labelMarginBottom:6,margin:{left:34,right:20,top:20,bottom:80},miniChartMargin:{left:34,right:20,top:20,bottom:20},miniChartMaxWidth:500,tickMarginTop:12,tickRotation:45,tooltipAlwaysTop:!0,sortBarsBy:"value"}),e.LINE_CHART_PROPS=(0,a["default"])({},s,{dash:{width:1,separatorWidth:3},interpolation:"linear",margin:{left:34,right:20,top:20,bottom:42},miniChartMargin:{left:34,right:20,top:20,bottom:10},miniChartMaxWidth:500,missingDataBehaviour:"blank",pointRadius:2.5,showLabelOnHover:!1,tickCountY:9,tickCountX:9,voronoiTickInterval:40,sparklineDash:{width:1,separatorWidth:3},sparklineHighlightEnd:!0,sparklineHighlightStart:!1,sparklineInterpolation:"basis",xTickFormat:function(t){return t+""}})},function(t,e,n){"use strict";var r="production",o="undefined"!=typeof window&&!!window.document,a=o?"localhost"===window.location.hostname:"true"==={NODE_ENV:"production",SERVER:"production"}.IS_LOCAL;t.exports={development:{env:r,isLocal:a,isProduction:!1,port:{NODE_ENV:"production",SERVER:"production"}.PORT||8080,app:{name:"data.worldbank DEV"}},dev:{env:r,isLocal:a,isProduction:!0,port:{NODE_ENV:"production",SERVER:"production"}.PORT,app:{name:"dev.data.worldbank"}},staging:{env:r,isLocal:a,isProduction:!0,port:{NODE_ENV:"production",SERVER:"production"}.PORT,app:{name:"staging.data.worldbank"}},production:{env:r,isLocal:a,isProduction:!0,port:{NODE_ENV:"production",SERVER:"production"}.PORT||8080,app:{name:"data.worldbank"}}}[r]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}function o(t,e){if(""===e||!t)return t;var n=x["default"].deburr(t.toLowerCase()).indexOf(e);return n>=0?L["default"].createElement("span",null,t.substring(0,n),L["default"].createElement("span",{className:"highlight"},t.substring(n,n+e.length)),t.substring(n+e.length)):void 0}function a(){document.body.classList.add(B)}function i(){document.body.classList.remove(B)}function s(t){var e=document.querySelector("#app").classList,n="menu-open";void 0===t?e.toggle(n):t?e.add(n):e.remove(n)}function u(t){return t&&"string"==typeof t&&(t=document.querySelector(t)),t?t.offsetTop:void 0}function l(){return u("#"+R.FOOTER_ID)}function c(t){if(window&&"function"==typeof window.open){var e=window.open(t,"_blank");"function"==typeof window.focus&&e.focus()}}Object.defineProperty(e,"__esModule",{value:!0}),e["default"]=void 0;var d,p,f=n(175),h=r(f),g=n(7),m=r(g),y=n(4),v=r(y),_=n(8),b=r(_),E=n(6),A=r(E),S=n(5),T=r(S);e.generateHighlightLink=o,e.openModal=a,e.closeModal=i,e.changeAppNavMenuOpenState=s,e.calcDomOffsetTop=u,e.calcDistanceToFooter=l,e.openNewPage=c;var M=n(2),L=r(M),C=n(484),O=r(C),w=n(318),D=r(w),P=n(3),x=r(P),I=n(115),R=n(9),k=n(384),N=(p=d=function(t){function e(){return(0,v["default"])(this,e),(0,A["default"])(this,(0,m["default"])(e).apply(this,arguments))}return(0,T["default"])(e,t),(0,b["default"])(e,[{key:"render",value:function(){var t=this.props,e=t.assets,n=t.initialState,r=t.component,o=t.isWidgetPage,a=L["default"].createElement("span",null,L["default"].createElement("script",{dangerouslySetInnerHTML:{__html:"s_account = 'wbglobalext, wbnispddataext'"}}),L["default"].createElement("script",{src:"/config/WebStatsUtil.js"}),L["default"].createElement("script",{src:"/config/s_code.js"}),L["default"].createElement("script",{src:"//widget.uservoice.com/"+R.USERVOICE_ID+".js"})),i=r?O["default"].renderToString(r):"",s=D["default"].rewind(),u="";return L["default"].createElement("html",{lang:"en-us"},L["default"].createElement("head",null,L["default"].createElement("meta",{charSet:"utf-8"}),s.title.toComponent(),L["default"].createElement("meta",{content:"width=device-width, initial-scale=1, minimal-ui",name:"viewport"}),L["default"].createElement("meta",{content:"IE=Edge",httpEquiv:"X-UA-Compatible"}),s.meta.toComponent(),L["default"].createElement("link",{href:"/favicon.ico?v=1.1",rel:"shortcut icon"}),L["default"].createElement("meta",{name:"google-site-verification",content:"ByFDZmo3VoJURCHrA3WHjth6IAISYQEbe20bfzTPCPo"}),(0,h["default"])(e.styles).map(function(t,n){return L["default"].createElement("link",{href:e.styles[t],key:n,media:"screen, projection",rel:"stylesheet",type:"text/css"})}),!o&&L["default"].createElement("script",{src:""+R.DTM_URL[I.env]})),L["default"].createElement("body",null,L["default"].createElement("script",{dangerouslySetInnerHTML:{__html:k.initialDTMData}}),L["default"].createElement("span",{dangerouslySetInnerHTML:{__html:u},style:{paddingTop:"15px"}}),L["default"].createElement("div",{dangerouslySetInnerHTML:{__html:i},id:"app"}),L["default"].createElement("script",{dangerouslySetInnerHTML:{__html:"window.__data="+n}}),!o&&a,L["default"].createElement("script",{src:e.javascript.vendor}),L["default"].createElement("script",{src:e.javascript.main}),!o&&L["default"].createElement("script",null,"_satellite.pageBottom()")))}}]),e}(M.Component),d.propTypes={assets:M.PropTypes.object,component:M.PropTypes.object,initialState:M.PropTypes.string.isRequired,isWidgetPage:M.PropTypes.bool},p);e["default"]=N;var B="modal-open"},,function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0}),e.SearchboxQueryNoResults=e.SearchboxQuery=e.ContextualInteraction=e.NavigationViaRelatedLink=e.NavigationViaSearchbox=e.TimeInteraction=e.ChartInteraction=e.MapInteraction=e.DownloadXLSData=e.DownloadXMLData=e.DownloadCSVData=void 0;var o=n(317),a=r(o);e.DownloadCSVData=function(t){a["default"].event({category:"Download",action:"Downloaded CSV Data",label:t})},e.DownloadXMLData=function(t){a["default"].event({category:"Download",action:"Downloaded XML Data",label:t})},e.DownloadXLSData=function(t){a["default"].event({category:"Download",action:"Downloaded XLS Data",label:t})},e.MapInteraction=function(){a["default"].event({category:"Interaction",action:"Map Interaction"})},e.ChartInteraction=function(){a["default"].event({category:"Interaction",action:"Chart Interaction"})},e.TimeInteraction=function(){a["default"].event({category:"Interaction",action:"Time-slider Interaction"})},e.NavigationViaSearchbox=function(t){a["default"].event({category:"Navigation",action:"Navigation via Searchbox",label:t})},e.NavigationViaRelatedLink=function(t){a["default"].event({category:"Navigation",action:"Navigation via Related Link",label:t})},e.ContextualInteraction=function(t){a["default"].event({category:"Navigation",action:"Contextual Link ("+t+")",label:t})},e.SearchboxQuery=function(t){a["default"].event({category:"Search",action:"Searchbox Query",label:t})},e.SearchboxQueryNoResults=function(t,e){a["default"].event({category:"Search",action:"Searchbox Query With No Results: "+t+" - "+(e?"with these ids excluded from the results: "+e:""),label:t})}},function(t,e){t.exports=function(t,e,n,r){if(!(t instanceof e)||void 0!==r&&r in t)throw TypeError(n+": incorrect invocation!");return t}},function(t,e){t.exports={}},function(t,e,n){var r=n(14),o=n(403),a=n(247),i=n(258)("IE_PROTO"),s=function(){},u="prototype",l=function(){var t,e=n(246)("iframe"),r=a.length,o=">";for(e.style.display="none",n(249).appendChild(e),e.src="javascript:",t=e.contentWindow.document,t.open(),t.write(" \ No newline at end of file diff --git a/code/China _ Data_files/placeholder.png b/code/China _ Data_files/placeholder.png new file mode 100644 index 0000000000000000000000000000000000000000..d7989b3904bad12cbc3e133abafdcc27e523d92a GIT binary patch literal 96 zcmeAS@N?(olHy`uVBq!ia0vp^GC(ZI$P6UE#Kv&~Ddqs55LY0*yvp_#kYX$e@(X5g ocy=QV$l>;MaSY+Op1gn+$O&a&e0}E81|W;U)78&qol`;+0ATPHr~m)} literal 0 HcmV?d00001 diff --git a/code/China _ Data_files/s-code-contents-9b42223dafd4df6973d5b69c61714e0542e49a91.js.download b/code/China _ Data_files/s-code-contents-9b42223dafd4df6973d5b69c61714e0542e49a91.js.download new file mode 100644 index 00000000..d9b983c8 --- /dev/null +++ b/code/China _ Data_files/s-code-contents-9b42223dafd4df6973d5b69c61714e0542e49a91.js.download @@ -0,0 +1,988 @@ +/* Set Report Suite Id for the s-code */ +//var s_account; +if(_satellite.settings.isStaging){ + s_account="wbgglobal"; +}else{ + s_account="wbgglobalprod"; +} + +//s.account=s_account; +var wb = s_gi(s_account); +/* +s = new AppMeasurement(); +if(_satellite.settings.isStaging==true) +{s.account="wbgglobal"}else{s.account="wbgglobalprod"} +*/ +/************************** CONFIG SECTION **************************/ +wb.trackDownloadLinks = true +wb.trackExternalLinks = true +wb.trackInlineStats = true +wb.linkDownloadFileTypes = "exe,zip,wav,mp3,mov,mpg,avi,wmv,doc,pdf,xls,docx,xlsx,ppt,pptx,pps,rm,txt,rtf" +wb.linkInternalFilters = "javascript:,www.worldbank.org" +wb.linkLeaveQueryString = false +wb.linkTrackVars = "channel,eVar1,eVar13,eVar15,eVar17,eVar18,eVar19,eVar20,eVar22,eVar25,eVar26,eVar38,eVar39,eVar41,eVar48,eVar53,eVar61,prop14,prop39,prop11,prop41,prop18,prop20" +wb.linkTrackEvents = "None" +wb.gmt='-4'; //hour difference from GMT for time parting set for partner time zone +wb.usePlugins = true + +//Performance Timing Variables +wb.pte = 'event23,event24,event25,event26,event27,event28,event29,event30,event31,event32'; +wb.ptc = false; + +function s_doPlugins(s) { + +// Timestamp +wb.timestamp = Math.round((new Date()).getTime() / 1000); + +//If the Page is an Error Page +if(_satellite.getVar("PageType") == "errorPage"){ + wb.pageType = "errorPage"; +}else{ + // Set Page Name + wb.pageName = langMappingToCodes(_satellite.getVar('SiteLanguage'))+":"+_satellite.getVar('PNameDomainMap')+":"+_satellite.getVar('SiteType'); + if(_satellite.getVar('RelativeURL') != ""){wb.pageName = wb.pageName+":"+_satellite.getVar('RelativeURL');} + //wb.prop1 = wb.pageName; +} +wb.eVar1 = wb.pageName; + +//Site Language & Browser Language +wb.eVar13 = langMapping(_satellite.getVar("SiteLanguage")); +wb.prop14 = "D=v13"; +wb.eVar28 = langMapping(_satellite.getVar("BrowserLanguage")); + +//set channel/section +if(_satellite.getVar("ChannelInfo") == ""){ + wb.channel = _satellite.getVar('SiteType')+"|"+(_satellite.getVar('SiteSection') != ""? _satellite.getVar('SiteSection'):"uncategorized")+"|"+ + langMappingToCodes(_satellite.getVar('SiteLanguage'))+"|"+(_satellite.getVar('BusinessVPUnit') != ""? _satellite.getVar('BusinessVPUnit'):"uncategorized"); +}else{ + wb.channel = _satellite.getVar("ChannelInfo"); +} +// Time Parting Plugin +wb.eVar34 = wb.getTimePartingNew('n', wb.gmt); + +// AppMeasurement version +wb.eVar49 = wb.version; + +// VisitNum Plugin +wb.eVar31 = wb.getVisitNum(365); + +//Visitor Status- 30 days +wb.eVar23 = wb.getNewRepeat(730); + +//Days Since Last Visits +wb.eVar24 = wb.getDaysSinceLastVisit('s_lv'); + +//Campaign Tracking +var intCpmnId = wb.Util.getQueryParam('intcid').toLowerCase() || wb.Util.getQueryParam('INTCID').toLowerCase() || wb.Util.getQueryParam('IntCid').toLowerCase(); +//if(cmpnId.split('_').length >= 5 && cmpnId.split('_')[4].indexOf('int') == 0){ + //Internal Campaign Tracking + wb.eVar7 = intCpmnId; + if(typeof _satellite.readCookie('cidcookie_int') != 'undefined' && intCpmnId.charAt(unescape(_satellite.readCookie('cidcookie_int')).length) == '#' && + intCpmnId.substr(0,unescape(_satellite.readCookie('cidcookie_int')).length) == unescape(_satellite.readCookie('cidcookie_int'))){ + //console.log("internal campaign repeated"); + wb.eVar7 = intCpmnId.substr(0,unescape(_satellite.readCookie('cidcookie_int')).length); + } + wb.eVar7 = wb.getValOnce(wb.eVar7,'cidcookie_int'); +//}else{ + //External Campaign Tracking +var cmpnId = wb.Util.getQueryParam('cid').toLowerCase() || wb.Util.getQueryParam('CID').toLowerCase() || wb.Util.getQueryParam('Cid').toLowerCase(); + wb.campaign = cmpnId; + if(typeof _satellite.readCookie('new_cidcookie') != 'undefined' && cmpnId.charAt(unescape(_satellite.readCookie('new_cidcookie')).length) == '#' && + cmpnId.substr(0,unescape(_satellite.readCookie('new_cidcookie')).length) == unescape(_satellite.readCookie('new_cidcookie'))){ + //console.log("external campaign repeated"); + wb.campaign = cmpnId.substr(0,unescape(_satellite.readCookie('new_cidcookie')).length); + } + wb.campaign = wb.getValOnce(wb.campaign,'new_cidcookie'); +//} + +// Percent page View +wb.eVar9 = wb.prop7 = wb.getPreviousValue(wb.pageName,'s_ppn'); +if (wb.pageName) { + var ppv = wb.getPercentPageViewed(wb.pageName); +} +if (ppv && typeof ppv == 'object' && typeof ppv.length == 'number' && ppv.length > 1 && ppv[0] == wb.prop7) { + var initalPercentViewed = ppv[1]; + var finalPercentViewed = ppv[2]; + wb.prop16 = initalPercentViewed + '|' + finalPercentViewed; +} + +//Performance Timing +wb.performanceTiming(); + +//PageLoad time +s_getLoadTime(); + +//Get page load time +var pageLoadTime = s_getLoadTime()/10; +if(pageLoadTime >0 && pageLoadTime <= 90){ + wb.prop25=pageLoadTime; +}else if(pageLoadTime > 90){ + wb.prop25 = 90; +}else{ + wb.prop25 = '0'; +} + +//set device type +if (navigator.userAgent.match(/mobile/i) && navigator.userAgent.indexOf('iPad') == -1) { + wb.eVar30 = 'mobile'; +} else if (navigator.userAgent.match(/iPad|Android|Touch/i)) { + wb.eVar30 = 'tablet'; +} else { + wb.eVar30 = 'desktop'; +} + +//Screen Orientation +if(wb.eVar30 != "desktop"){ + if (screen.height < screen.width) { + wb.eVar27 = "landscape" + } else { + wb.eVar27 = "portrait" + } +} + +// Customized Link Tracking + +customLinkObject = wb.linkObject; +linkType = wb.linkType; +if(customLinkObject !== undefined && wb.linkType == "e"){ + //linkType = wb.linkType; + _satellite.getVar('CustomLinkClick'); +}else if(wb.linkType == "d"){ + //linkType = wb.linkType; + _satellite.getVar('DownloadClick'); + _satellite.getVar('FBPixelDownload'); + _satellite.getVar('TwitterPixelDownload'); + _satellite.getVar('GAdwordsTagDownload'); +} + +/* convert all the values to lowercase for consistent reporting purpose*/ +var hasNumber = /\d/; +for (var a = 1; a <= 100; a++) { + if (hasNumber.test(wb["prop" + a]) == false) { + wb["prop" + a] && (wb["prop" + a] = wb["prop" + a].toLowerCase().replace(/^d=/, 'D=')); + } + if (hasNumber.test(wb["eVar" + a]) == false) { + wb["eVar" + a] && (wb["eVar" + a] = wb["eVar" + a].toLowerCase().replace(/^d=/, 'D=')); + } + if (hasNumber.test(wb["hier" + a]) == false) { + wb["hier" + a] && (wb["hier" + a] = wb["hier" + a].toLowerCase().replace(/^d=/, 'D=')); + } +}; +for (var b = ["products", "pageName", "channel", "campaign"], a = 0; a < b.length; a++) { + if (hasNumber.test(wb[b[a]]) == false) { + wb[b[a]] && (wb[b[a]] = wb[b[a]].toLowerCase().replace(/^d=/, "D=")); + } +}; + +} +wb.doPlugins = s_doPlugins +wb.trackingServer="worldbankgroup.sc.omtrdc.net"; +//wb.trackingServerSecure="wbgroup.omtrdc.net"; + + +/* +===============Plugin section Start============ +*/ + +/* plugin: //Page load time definition */ + +function s_getLoadTime() +{ +if(!window.s_loadT) +{ +var b=new Date().getTime(), +o=window.performance?performance.timing:0,a=o?o.requestStart:window.inHeadTS||0; +s_loadT=a?Math.round((b-a)/100):'' +} +return s_loadT +} + +/* + * Plugin: downloadLinkHandler 0.8 - identify and report download links + */ +wb.downloadLinkHandler=new Function("p","e","" ++"var s=this,o=s.p_gh(),h=o.href,n='linkDownloadFileTypes',i,t;if(!h|" ++"|(s.linkType&&(h||s.linkName)))return'';i=h.indexOf('?');t=s[n];s[n" ++"]=p?p:t;if(s.lt(h)=='d')s.linkType='d';else h='';s[n]=t;return e?o:" ++"h;"); +wb.p_gh=new Function("","" ++"var s=this;if(!s.eo&&!s.lnk)return'';var o=s.eo?s.eo:s.lnk,y=s.ot(o" ++"),n=s.oid(o),x=o.s_oidt;if(s.eo&&o==s.eo){while(o&&!n&&y!='BODY'){o" ++"=o.parentElement?o.parentElement:o.parentNode;if(!o)return'';y=s.ot" ++"(o);n=s.oid(o);x=o.s_oidt;}}return o?o:'';"); + +/* + * Plugin: getTimeParting 3.4 + */ +wb.getTimePartingNew=new Function("h","z","" ++"var s=this,od;od=new Date('1/1/2000');if(od.getDay()!=6||od.getMont" ++"h()!=0){return'Data Not Available';}else{var H,M,D,U,ds,de,tm,da=['" ++"Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturda" ++"y'],d=new Date();z=z?z:0;z=parseFloat(z);if(s._tpDST){var dso=s._tp" ++"DST[d.getFullYear()].split(/,/);ds=new Date(dso[0]+'/'+d.getFullYea" ++"r());de=new Date(dso[1]+'/'+d.getFullYear());if(h=='n'&&d>ds&&dde||d=12){U=' P" ++"M';H=H-12;}if(H==0){H=12;}D=da[D];tm=H+':'+M+U;return(tm+'|'+D);}"); + + +/* + * Plugin: getNewRepeat 1.2 - Returns whether user is new or repeat + */ +wb.getNewRepeat=new Function("d","cn","" ++"var s=this,e=new Date(),cval,sval,ct=e.getTime();d=d?d:30;cn=cn?cn:" ++"'s_nr';e.setTime(ct+d*24*60*60*1000);cval=s.c_r(cn);if(cval.length=" ++"=0){s.c_w(cn,ct+'-New',e);return'New';}sval=s.split(cval,'-');if(ct" ++"-sval[0]<30*60*1000&&sval[1]=='New'){s.c_w(cn,ct+'-New',e);return'N" ++"ew';}else{s.c_w(cn,ct+'-Repeat',e);return'Repeat';}"); + + +/* + * Plugin: getAndPersistValue 0.3 - get a value on every page + */ +wb.getAndPersistValue=new Function("v","c","e","" ++"var s=this,a=new Date;e=e?e:0;a.setTime(a.getTime()+e*86400000);if(" ++"v)s.c_w(c,v,e?a:0);return s.c_r(c);"); + + +/* Utility Function: split v1.5 - split a string (JS 1.0 compatible) */ +wb.split = new Function("l", "d", "" ++ "var i,x=0,a=new Array;while(l){i=l.indexOf(d);i=i>-1?i:l.length;a[x" ++ "++]=l.substring(0,i);l=l.substring(i+d.length);}return a"); + +/* + * Plugin Utility: Append to List v1.2 + */ +wb.apl=new Function("l","v","d","u","" ++"var s=this,m=0;if(!l)l='';if(u){var i,n,a=l.split(d),al=a.length;fo" ++"r(i=0;i=0){x=x.substring(0,i)+n+x." ++ "substring(i+o.length);i=x.indexOf(o,i+l)}return x"); + +/* + * Plugin Utility: Join v1.0 + */ +wb.join=new Function("v","p","" ++"var s=this;var f,b,d,w;if(p){f=p.front?p.front:'';b=p.back?p.back" ++":'';d=p.delim?p.delim:'';w=p.wrap?p.wrap:'';}var str='';for(var x=0" ++";x-1?c.split(',',10):[''],i;a" ++"[0]=o?unescape(a[0]||''):I;for(i=1;i<9&&(i9||!o)a[9]=a[9]&&a[9]!='L'&&a[9" ++"]!='LP'&&a[9]!='PL'?'P':a[9];return a};s.c_w(P,s.c_r(K)||'');s.c_w(" ++"K,escape(I)+',0,0,0,0,0,0,0,0');W.s_PPVevent=function(e){var W=wind" ++"ow,D=document||{},B=D.body,E=D.documentElement||{},S=window.screen|" ++"|{},Ho='offsetHeight',Hs='scrollHeight',Ts='scrollTop',Wc='clientWi" ++"dth',Hc='clientHeight',M=Math,C=100,J='object',N='number',Z=',',s=W" ++".s_Obj||W.s||0;e=e&&typeof e==J?e.type||'':'';if(!e.indexOf('on'))e" ++"=e.substring(2);if(W.s_PPVt&&!e){clearTimeout(s_PPVt);s_PPVt=0}if(s" ++"&&typeof s==J&&B&&typeof B==J){var h=M.max(B[Hs]||E[Hs],B[Ho]||E[Ho" ++"],B[Hc]||E[Hc]||1),X=W.innerWidth||E[Wc]||B[Wc]||1,Y=W.innerHeight|" ++"|E[Hc]||B[Hc]||1,x=S.width||1,y=S.height||1,r=M.round(C*(W.devicePi" ++"xelRatio||1))/C,b=(D.pageYOffset||E[Ts]||B[Ts]||0)+Y,p=h>0&&b>0?M.r" ++"ound(C*b/h):1,O=W.orientation,o=!isNaN(O)?M.abs(o)%180:Y>X?0:90,a=s" ++".s_PPVg(n),L=(e=='load')||(a[1]<1),t,V=function(u,v,f,n){v=typeof v" ++"!=N?u:v;v=f||(u>v)?u:v;return n?v:v>C?C:v<0?0:v};if(new RegExp('(iP" ++"od|iPad|iPhone)').exec((window.navigator&&navigator.userAgent)||'')" ++"&&o){t=x;x=y;y=t}o=o?'L':'P';a[9]=L||!a[9]?o:a[9].substring(0,1);if" ++"(a[9]!='L'&&a[9]!='P')a[9]=o;s.c_w(K,escape(a[0])+Z+V(a[1],p,!L)+Z+" ++"V(a[2],p,L)+Z+V(a[3],b,L,1)+Z+X+Z+Y+Z+x+Z+y+Z+r+Z+a[9]+(a[9]==o?'':" ++"o))}if(!W.s_PPVt&&e!='unload')W.s_PPVt=setTimeout(W.s_PPVevent,333)" ++"};for(var f=W.s_PPVevent,i=0;i-1)return n?n:'[[';}" ++ "return 0;"); + +/* + * Plugin Utility: pt - runs function in f argument against list of + * variables declared in x (delimited by d), with a as an optional + * argument to be included in f function call + */ +wb.pt=new Function("x","d","f","a","" ++"var s=this,t=x,z=0,y,r;while(t){y=t.indexOf(d);y=y<0?t.length:y;t=t" ++".substring(0,y);r=s[f](t,a);if(r)return r;z+=y+d.length;t=x.substri" ++"ng(z,x.length);t=z30*60*1000){if(d>30*da" ++"y){s.c_w(c,ct,e);s.c_w(c+'_s',f2,es);}else if(d<30*day+1 && d>7*day" ++"){s.c_w(c,ct,e);s.c_w(c+'_s',f3,es);}else if(d<7*day+1 && d>day){s." ++"c_w(c,ct,e);s.c_w(c+'_s',f4,es);}else if(d-1)return n?n:'[[';}" ++ "return 0;"); + + + /* + * Plugin: getVisitNum - version 3.0 + */ + wb.getVisitNum=new Function("tp","c","c2","" + +"var s=this,e=new Date,cval,cvisit,ct=e.getTime(),d;if(!tp){tp='m';}" + +"if(tp=='m'||tp=='w'||tp=='d'){eo=s.endof(tp),y=eo.getTime();e.setTi" + +"me(y);}else {d=tp*86400000;e.setTime(ct+d);}if(!c){c='s_vnum';}if(!" + +"c2){c2='s_invisit';}cval=s.c_r(c);if(cval){var i=cval.indexOf('&vn=" + +"'),str=cval.substring(i+4,cval.length),k;}cvisit=s.c_r(c2);if(cvisi" + +"t){if(str){e.setTime(ct+1800000);s.c_w(c2,'true',e);return str;}els" + +"e {return 'unknown visit number';}}else {if(str){str++;k=cval.substri" + +"ng(0,i);e.setTime(k);s.c_w(c,k+'&vn='+str,e);e.setTime(ct+1800000);" + +"s.c_w(c2,'true',e);return str;}else {s.c_w(c,e.getTime()+'&vn=1',e)" + +";e.setTime(ct+1800000);s.c_w(c2,'true',e);return 1;}}"); + wb.dimo=new Function("m","y","" + +"var d=new Date(y,m+1,0);return d.getDate();"); + wb.endof=new Function("x","" + +"var t=new Date;t.setHours(0);t.setMinutes(0);t.setSeconds(0);if(x==" + +"'m'){d=s.dimo(t.getMonth(),t.getFullYear())-t.getDate()+1;}else if(" + +"x=='w'){d=7-t.getDay();}else {d=1;}t.setDate(t.getDate()+d);return " + +"t;"); + + +/* Plugin: Performance Timing Tracking - 0.11 BETA */ +wb.performanceTiming=new Function("v","" ++"var s=this;if(v)s.ptv=v;if(typeof performance!='undefined'){if(perf" ++"ormance.timing.loadEventEnd==0){s.pi=setInterval(function(){s.perfo" ++"rmanceWrite()},250);}if(!s.ptc||s.linkType=='e'){s.performanceRead(" ++");}else{s.rfe();s[s.ptv]='';}}"); +wb.performanceWrite=new Function("","" ++"var s=this;if(performance.timing.loadEventEnd>0)clearInterval(s.pi)" ++";try{if(s.c_r('s_ptc')==''&&performance.timing.loadEventEnd>0){try{" ++"var pt=performance.timing;var pta='';pta=s.performanceCheck(pt.fetc" ++"hStart,pt.navigationStart);pta+='^^'+s.performanceCheck(pt.domainLo" ++"okupStart,pt.fetchStart);pta+='^^'+s.performanceCheck(pt.domainLook" ++"upEnd,pt.domainLookupStart);pta+='^^'+s.performanceCheck(pt.connect" ++"End,pt.connectStart);pta+='^^'+s.performanceCheck(pt.responseStart," ++"pt.connectEnd);pta+='^^'+s.performanceCheck(pt.responseEnd,pt.respo" ++"nseStart);pta+='^^'+s.performanceCheck(pt.loadEventStart,pt.domLoad" ++"ing);pta+='^^'+s.performanceCheck(pt.loadEventEnd,pt.loadEventStart" ++");pta+='^^'+s.performanceCheck(pt.loadEventEnd,pt.navigationStart);" ++"s.c_w('s_ptc',pta);if(sessionStorage&&navigator.cookieEnabled&&s.pt" ++"v!='undefined'){var pe=performance.getEntries();var tempPe='';for(v" ++"ar i=0;i-1?pe[i].name.split('?')[0]:pe[i].name;tempPe+='|'+(Math.round(pe[" ++"i].startTime)/1000).toFixed(1)+'|'+(Math.round(pe[i].duration)/1000" ++").toFixed(1)+'|'+pe[i].initiatorType;}sessionStorage.setItem('s_pec" ++"',tempPe);}}catch(err){return;}}}catch(err){return;}"); +wb.performanceCheck=new Function("a","b","" ++"if(a>=0&&b>=0){if((a-b)<60000&&((a-b)>=0)){return((a-b)/1000).toFix" ++"ed(2);}else{return 600;}}"); +wb.performanceRead=new Function("","" ++"var s=this;if(performance.timing.loadEventEnd>0)clearInterval(s.pi)" ++";var cv=s.c_r('s_ptc');if(s.pte){var ela=s.pte.split(',');}if(cv!='" ++"'){var cva=s.split(cv,'^^');if(cva[1]!=''){for(var x=0;x<(ela.lengt" ++"h-1);x++){s.events=s.apl(s.events,ela[x]+'='+cva[x],',',2);}}s.even" ++"ts=s.apl(s.events,ela[ela.length-1],',',2);}s.linkTrackEvents=s.apl" ++"(s.linkTrackEvents,s.pte,',',2);s.c_w('s_ptc','',0);if(sessionStora" ++"ge&&navigator.cookieEnabled&&s.ptv!='undefined'){s[s.ptv]=sessionSt" ++"orage.getItem('s_pec');sessionStorage.setItem('s_pec','',0);}else{s" ++"[s.ptv]='sessionStorage Unavailable';}s.ptc=true;"); +/* Remove from Events 0.1 - Performance Specific, +removes all performance events from s.events once being tracked. */ +wb.rfe=new Function("","" ++"var s=this;var ea=s.split(s.events,',');var pta=s.split(s.pte,',');" ++"try{for(x in pta){s.events=s.rfl(s.events,pta[x]);s.contextData['ev" ++"ents']=s.events;}}catch(e){return;}"); +/* Plugin Utility - RFL (remove from list) 1.0*/ +wb.rfl=new Function("l","v","d1","d2","ku","" ++"var s=this,R=new Array(),C='',d1=!d1?',':d1,d2=!d2?',':d2,ku=!ku?0:" ++"1;if(!l)return'';L=l.split(d1);for(i=0;i-1){C=L[i].split(':');C[1]=C[0]+':'+C[1];L[i]=C[0];}if(L[i" ++"].indexOf('=')>-1){C=L[i].split('=');C[1]=C[0]+'='+C[1];L[i]=C[0];}" ++"if(L[i]!=v&&C)R.push(C[1]);else if(L[i]!=v)R.push(L[i]);else if(L[i" ++"]==v&&ku){ku=0;if(C)R.push(C[1]);else R.push(L[i]);}C='';}return s." ++"join(R,{delim:d2})"); + +/*utility function to map language code with language*/ +function langMapping(langCode) { + var mappedLang; + var paramMap = { + 'ab': 'abkhazian', + 'aa': 'afar', + 'af': 'afrikaans', + 'ak': 'akan', + 'sq': 'albanian', + 'am': 'amharic', + 'ar': 'arabic', + 'an': 'aragonese', + 'hy': 'armenian', + 'as': 'assamese', + 'av': 'avaric', + 'ae': 'avestan', + 'ay': 'aymara', + 'az': 'azerbaijani', + 'bm': 'bambara', + 'ba': 'bashkir', + 'eu': 'basque', + 'be': 'belarusian', + 'bn': 'bengali', + 'bh': 'bihari languages', + 'bi': 'bislama', + 'bs': 'bosnian', + 'br': 'breton', + 'bg': 'bulgarian', + 'my': 'burmese', + 'ca': 'catalan', + 'ch': 'chamorro', + 'ce': 'chechen', + 'ny': 'chichewa', + 'zh': 'chinese', + 'cv': 'chuvash', + 'kw': 'cornish', + 'co': 'corsican', + 'cr': 'cree', + 'hr': 'croatian', + 'cs': 'czech', + 'da': 'danish', + 'dv': 'divehi', + 'nl': 'dutch', + 'dz': 'dzongkha', + 'en': 'english', + 'eo': 'esperanto', + 'et': 'estonian', + 'ee': 'ewe', + 'fo': 'faroese', + 'fj': 'fijian', + 'fi': 'finnish', + 'fr': 'french', + 'ff': 'fulah', + 'gl': 'galician', + 'ka': 'georgian', + 'de': 'german', + 'el': 'greek (modern)', + 'gn': 'guaraní', + 'gu': 'gujarati', + 'ht': 'haitian', + 'ha': 'hausa', + 'he': 'hebrew (modern)', + 'hz': 'herero', + 'hi': 'hindi', + 'ho': 'hiri motu', + 'hu': 'hungarian', + 'ia': 'interlingua', + 'id': 'indonesian', + 'ie': 'interlingue', + 'ga': 'irish', + 'ig': 'igbo', + 'ik': 'inupiaq', + 'io': 'ido', + 'is': 'icelandic', + 'it': 'italian', + 'iu': 'inuktitut', + 'ja': 'japanese', + 'jv': 'javanese', + 'kl': 'kalaallisut', + 'kn': 'kannada', + 'kr': 'kanuri', + 'ks': 'kashmiri', + 'kk': 'kazakh', + 'km': 'central khmer', + 'ki': 'kikuyu', + 'rw': 'kinyarwanda', + 'ky': 'kirghiz', + 'kv': 'komi', + 'kg': 'kongo', + 'ko': 'korean', + 'ku': 'kurdish', + 'kj': 'kuanyama', + 'la': 'latin', + 'lb': 'luxembourgish', + 'lg': 'ganda', + 'li': 'limburgan', + 'ln': 'lingala', + 'lo': 'lao', + 'lt': 'lithuanian', + 'lu': 'luba-katanga', + 'lv': 'latvian', + 'gv': 'manx', + 'mk': 'macedonian', + 'mg': 'malagasy', + 'ms': 'malay', + 'ml': 'malayalam', + 'mt': 'maltese', + 'mi': 'maori', + 'mr': 'marathi', + 'mh': 'marshallese', + 'mn': 'mongolian', + 'na': 'nauru', + 'nv': 'navajo', + 'nd': 'north ndebele', + 'ne': 'nepali', + 'ng': 'ndonga', + 'nb': 'norwegian bokmål', + 'nn': 'norwegian nynorsk', + 'no': 'norwegian', + 'ii': 'sichuan yi', + 'nr': 'south ndebele', + 'oc': 'occitan', + 'oj': 'ojibwa', + 'cu': 'church slavic', + 'om': 'oromo', + 'or': 'oriya', + 'os': 'ossetian', + 'pa': 'panjabi', + 'pi': 'pali', + 'fa': 'persian', + 'pl': 'polish', + 'ps': 'pashto', + 'pt': 'portuguese', + 'qu': 'quechua', + 'rm': 'romansh', + 'rn': 'rundi', + 'ro': 'romanian', + 'ru': 'russian', + 'sa': 'sanskrit', + 'sc': 'sardinian', + 'sd': 'sindhi', + 'se': 'northern sami', + 'sm': 'samoan', + 'sg': 'sango', + 'sr': 'serbian', + 'gd': 'gaelic', + 'sn': 'shona', + 'si': 'sinhala', + 'sk': 'slovak', + 'sl': 'slovenian', + 'so': 'somali', + 'st': 'southern sotho', + 'es': 'spanish', + 'su': 'sundanese', + 'sw': 'swahili', + 'ss': 'swati', + 'sv': 'swedish', + 'ta': 'tamil', + 'te': 'telugu', + 'tg': 'tajik', + 'th': 'thai', + 'ti': 'tigrinya', + 'bo': 'tibetan', + 'tk': 'turkmen', + 'tl': 'tagalog', + 'tn': 'tswana', + 'to': 'tonga (tonga islands)', + 'tr': 'turkish', + 'ts': 'tsonga', + 'tt': 'tatar', + 'tw': 'twi', + 'ty': 'tahitian', + 'ug': 'uighur', + 'uk': 'ukrainian', + 'ur': 'urdu', + 'uz': 'uzbek', + 've': 'venda', + 'vi': 'vietnamese', + 'vo': 'volapük', + 'wa': 'walloon', + 'cy': 'welsh', + 'wo': 'wolof', + 'fy': 'western frisian', + 'xh': 'xhosa', + 'yi': 'yiddish', + 'yo': 'yoruba', + 'za': 'zhuang', + 'zu': 'zulu' + + }; + + if(typeof paramMap[langCode] !== "undefined"){ + mappedLang = paramMap[langCode]; + }else{ + mappedLang = langCode; + } + return mappedLang; +} +/* Utility function to map the language name to its language code */ +function langMappingToCodes(language) { + var mappedLang; + var paramMap = { + 'abkhazian': 'ab', + 'afar': 'aa', + 'afrikaans': 'af', + 'akan': 'ak', + 'albanian': 'sq', + 'amharic': 'am', + 'arabic': 'ar', + 'aragonese': 'an', + 'armenian': 'hy', + 'assamese': 'as', + 'avaric': 'av', + 'avestan': 'ae', + 'aymara': 'ay', + 'azerbaijani': 'az', + 'bambara': 'bm', + 'bashkir': 'ba', + 'basque': 'eu', + 'belarusian': 'be', + 'bengali': 'bn', + 'biharilanguages': 'bh', + 'bislama': 'bi', + 'bosnian': 'bs', + 'breton': 'br', + 'bulgarian': 'bg', + 'burmese': 'my', + 'catalan': 'ca', + 'chamorro': 'ch', + 'chechen': 'ce', + 'chichewa': 'ny', + 'chinese': 'zh', + 'chuvash': 'cv', + 'cornish': 'kw', + 'corsican': 'co', + 'cree': 'cr', + 'croatian': 'hr', + 'czech': 'cs', + 'danish': 'da', + 'divehi': 'dv', + 'dutch': 'nl', + 'dzongkha': 'dz', + 'english': 'en', + 'esperanto': 'eo', + 'estonian': 'et', + 'ewe': 'ee', + 'faroese': 'fo', + 'fijian': 'fj', + 'finnish': 'fi', + 'french': 'fr', + 'fulah': 'ff', + 'galician': 'gl', + 'georgian': 'ka', + 'german': 'de', + 'greek(modern)': 'el', + 'guaraní': 'gn', + 'gujarati': 'gu', + 'haitian': 'ht', + 'hausa': 'ha', + 'hebrew(modern)': 'he', + 'herero': 'hz', + 'hindi': 'hi', + 'hirimotu': 'ho', + 'hungarian': 'hu', + 'interlingua': 'ia', + 'indonesian': 'id', + 'interlingue': 'ie', + 'irish': 'ga', + 'igbo': 'ig', + 'inupiaq': 'ik', + 'ido': 'io', + 'icelandic': 'is', + 'italian': 'it', + 'inuktitut': 'iu', + 'japanese': 'ja', + 'javanese': 'jv', + 'kalaallisut': 'kl', + 'kannada': 'kn', + 'kanuri': 'kr', + 'kashmiri': 'ks', + 'kazakh': 'kk', + 'centralkhmer': 'km', + 'kikuyu': 'ki', + 'kinyarwanda': 'rw', + 'kirghiz': 'ky', + 'komi': 'kv', + 'kongo': 'kg', + 'korean': 'ko', + 'kurdish': 'ku', + 'kuanyama': 'kj', + 'latin': 'la', + 'luxembourgish': 'lb', + 'ganda': 'lg', + 'limburgan': 'li', + 'lingala': 'ln', + 'lao': 'lo', + 'lithuanian': 'lt', + 'luba-katanga': 'lu', + 'latvian': 'lv', + 'manx': 'gv', + 'macedonian': 'mk', + 'malagasy': 'mg', + 'malay': 'ms', + 'malayalam': 'ml', + 'maltese': 'mt', + 'maori': 'mi', + 'marathi': 'mr', + 'marshallese': 'mh', + 'mongolian': 'mn', + 'nauru': 'na', + 'navajo': 'nv', + 'northndebele': 'nd', + 'nepali': 'ne', + 'ndonga': 'ng', + 'norwegianbokmål': 'nb', + 'norwegiannynorsk': 'nn', + 'norwegian': 'no', + 'sichuanyi': 'ii', + 'southndebele': 'nr', + 'occitan': 'oc', + 'ojibwa': 'oj', + 'church slavic': 'cu', + 'oromo': 'om', + 'oriya': 'or', + 'ossetian': 'os', + 'panjabi': 'pa', + 'pali': 'pi', + 'persian': 'fa', + 'polish': 'pl', + 'pashto': 'ps', + 'portuguese': 'pt', + 'quechua': 'qu', + 'romansh': 'rm', + 'rundi': 'rn', + 'romanian': 'ro', + 'russian': 'ru', + 'sanskrit': 'sa', + 'sardinian': 'sc', + 'sindhi': 'sd', + 'northernsami': 'se', + 'samoan': 'sm', + 'sango': 'sg', + 'serbian': 'sr', + 'gaelic': 'gd', + 'shona': 'sn', + 'sinhala': 'si', + 'slovak': 'sk', + 'slovenian': 'sl', + 'somali': 'so', + 'southernsotho': 'st', + 'spanish': 'es', + 'sundanese': 'su', + 'swahili': 'sw', + 'swati': 'ss', + 'swedish': 'sv', + 'tamil': 'ta', + 'telugu': 'te', + 'tajik': 'tg', + 'thai': 'th', + 'tigrinya': 'ti', + 'tibetan': 'bo', + 'turkmen': 'tk', + 'tagalog': 'tl', + 'tswana': 'tn', + 'tonga(tongaislands)': 'to', + 'turkish': 'tr', + 'tsonga': 'ts', + 'tatar': 'tt', + 'twi': 'tw', + 'tahitian': 'ty', + 'uighur': 'ug', + 'ukrainian': 'uk', + 'urdu': 'ur', + 'uzbek': 'uz', + 'venda': 've', + 'vietnamese': 'vi', + 'volapük': 'vo', + 'walloon': 'wa', + 'welsh': 'cy', + 'wolof': 'wo', + 'westernfrisian': 'fy', + 'xhosa': 'xh', + 'yiddish': 'yi', + 'yoruba': 'yo', + 'zhuang': 'za', + 'zulu': 'zu' + + }; + + if(typeof paramMap[language] !== "undefined"){ + mappedLang = paramMap[language]; + }else{ + mappedLang = language; + } + return mappedLang; +} + +//function to hash long string to numeric unique code +function hashCodeStr(str) { + try{ + return str.split('').reduce((prevHash, currVal) => + (((prevHash << 5) - prevHash) + currVal.charCodeAt(0))|0, 0); + }catch(e){ + return str.replace(/[^A-Za-z0-9 ]/gi, ''); + } +} + + +/* +===============Plugin section End============ +*/ + + + + +/* + Start ActivityMap Module + + The following module enables ActivityMap tracking in Adobe Analytics. ActivityMap + allows you to view data overlays on your links and content to understand how + users engage with your web site. If you do not intend to use ActivityMap, you + can remove the following block of code from your AppMeasurement.js file. + Additional documentation on how to configure ActivityMap is available at: + https://marketing.adobe.com/resources/help/en_US/analytics/activitymap/getting-started-admins.html +*/ +function AppMeasurement_Module_ActivityMap(f){function g(a,d){var b,c,n;if(a&&d&&(b=e.c[d]||(e.c[d]=d.split(","))))for(n=0;ne.length&&h.substring(0,e.length)==e?h.substring(e.length):"";l=b.contextDataMapping[h];if("string"==typeof l)for(q=l.split(","),s=0;se&&(e=1==a.k&&0e&&(e=0),a.offset=e,0a.c&&(a.c=e),y=a.D,m.name=d,m.ad=a.l,m.length=a.length,m.openTime=new Date,m.openTime.setTime(1E3*a.timestamp),m.offset=a.offset,m.percent=a.e,m.playerName=a.playerName,m.mediaEvent=0>a.g?"OPEN":1==c?"PLAY":2==c?"STOP":3==c?"MONITOR": +4==c?"TRACK":5==c?"COMPLETE":7==c?"CLICK":"CLOSE",2=c||5<=c)&&0<=a.g&&(r=!1,q=s="None",a.g!=e)){h=a.g;h>e&&(h=a.c,h>e&&(h=e));p=u?u.split(","):0;if(0=h)for(n=0;n=g&&(r=!0,n=p.length,m.mediaEvent="MILESTONE",a.p=m.milestone=g);if((p=v?v.split(","):0)&&e>=h)for(n=0;n=g&&(r=!0,n=p.length,m.mediaEvent= +"OFFSET_MILESTONE",a.q=m.offsetMilestone=g)}if(a.L||!f){if(w&&u&&0=c||3==c&&!a.k)a.n+=(1==c||3==c?"S":"E")+Math.floor(e),a.k=3==c?1:c;!r&&0<=a.g&&3>=c&&(t=t?t:0)&&a.a>=t&&(r=!0,m.mediaEvent="SECONDS");a.u=l;a.c=e}if(!c||3>=c&&100<=a.e)2!=a.k&&(a.n+="E"+Math.floor(e)),c=0,q=s="None",m.mediaEvent="CLOSE";7==c&&(r=m.clicked=a.r=!0);if(5==c||b.completeByCloseOffset&&(!c||100<=a.e)&&0=a.length-b.completeCloseOffsetThreshold)r=m.complete=a.complete=!0;l=m.mediaEvent;"MILESTONE"==l?l+="_"+m.milestone:"OFFSET_MILESTONE"==l&&(l+= +"_"+m.offsetMilestone);a.I[l]?m.eventFirstTime=!1:(m.eventFirstTime=!0,a.I[l]=1);m.event=m.mediaEvent;m.timePlayed=a.C;m.segmentNum=a.m;m.segment=a.f;m.segmentLength=a.B;b.monitor&&4!=c&&b.monitor(b.s,m);b.Heartbeat&&b.Heartbeat.enabled&&0<=a.g&&(r=!1);0==c&&b.M(d);r&&a.D==y&&(d={contextData:{}},d.linkTrackVars=q,d.linkTrackEvents=s,d.linkTrackVars||(d.linkTrackVars=""),d.linkTrackEvents||(d.linkTrackEvents=""),b.P(d,a),d.linkTrackVars||(d["!linkTrackVars"]=1),d.linkTrackEvents||(d["!linkTrackEvents"]= +1),b.s.track(d),a.F?(a.m=k,a.f=f,a.A=!0,a.F=!1):0d&&(d=c.currentTime),b.O(e,h,a, +d,c))}),c=function(){b.o(d,1,-1)},e=function(){b.o(d,1,-1)},b.j(d,"play",c),b.j(d,"pause",e),b.j(d,"seeking",e),b.j(d,"seeked",c),b.j(d,"ended",function(){b.o(d,0,-1)}),b.j(d,"timeupdate",c),k=function(){d.paused||d.ended||d.seeking||b.o(d,3,-1);setTimeout(k,1E3)},k())};b.j=function(b,c,e){b.attachEvent?b.attachEvent("on"+c,e):b.addEventListener&&b.addEventListener(c,e,!1)};void 0==b.completeByCloseOffset&&(b.completeByCloseOffset=1);void 0==b.completeCloseOffsetThreshold&&(b.completeCloseOffsetThreshold= +1);b.Heartbeat={};b.N=function(){var d,c;if(b.autoTrack&&(d=b.s.d.getElementsByTagName("VIDEO")))for(c=0;ca.indexOf(b)?a:a.split(b).join(d)};a.escape=function(c){var b,d;if(!c)return c;c=encodeURIComponent(c);for(b=0;7>b;b++)d="+~!*()'".substring(b,b+1),0<=c.indexOf(d)&&(c=a.replace(c,d,"%"+d.charCodeAt(0).toString(16).toUpperCase()));return c};a.unescape=function(c){if(!c)return c;c=0<=c.indexOf("+")?a.replace(c,"+"," "):c;try{return decodeURIComponent(c)}catch(b){}return unescape(c)};a.tb=function(){var c=k.location.hostname,b=a.fpCookieDomainPeriods,d;b||(b=a.cookieDomainPeriods);if(c&&!a.ya&&!/^[0-9.]+$/.test(c)&& +(b=b?parseInt(b):2,b=2d?"":a.unescape(b.substring(d+2+c.length,0>f?b.length:f));return"[[B]]"!=c?c:""};a.c_w=a.cookieWrite=function(c,b,d){var f=a.tb(),e=a.cookieLifetime,g;b=""+b;e=e?(""+e).toUpperCase():"";d&&"SESSION"!=e&&"NONE"!=e&&((g=""!=b?parseInt(e?e:0):-60)? +(d=new Date,d.setTime(d.getTime()+1E3*g)):1==d&&(d=new Date,g=d.getYear(),d.setYear(g+5+(1900>g?1900:0))));return c&&"NONE"!=e?(a.d.cookie=a.escape(c)+"="+a.escape(""!=b?b:"[[B]]")+"; path=/;"+(d&&"SESSION"!=e?" expires="+d.toUTCString()+";":"")+(f?" domain="+f+";":""),a.cookieRead(c)==b):0};a.qb=function(){var c=a.Util.getIeVersion();"number"===typeof c&&10>c&&(a.unsupportedBrowser=!0,a.fb(a,function(){}))};a.fb=function(a,b){for(var d in a)a.hasOwnProperty(d)&&"function"===typeof a[d]&&(a[d]=b)}; +a.L=[];a.ba=function(c,b,d){if(a.za)return 0;a.maxDelay||(a.maxDelay=250);var f=0,e=(new Date).getTime()+a.maxDelay,g=a.d.visibilityState,h=["webkitvisibilitychange","visibilitychange"];g||(g=a.d.webkitVisibilityState);if(g&&"prerender"==g){if(!a.ca)for(a.ca=1,d=0;dc){a.L.unshift(d);setTimeout(a.delayReady,parseInt(a.maxDelay/2));break}a.za=1;a[d.m].apply(a,d.a);a.za=0}};a.setAccount=a.sa=function(c){var b,d;if(!a.ba("setAccount",arguments))if(a.account=c,a.allAccounts)for(b=a.allAccounts.concat(c.split(",")),a.allAccounts=[],b.sort(),d=0;de.indexOf(".contextData."))switch(k=h.substring(0,4),q=h.substring(4),h){case "transactionID":h="xact";break;case "channel":h="ch";break;case "campaign":h="v0";break;default:a.Ga(q)&&("prop"==k?h="c"+q:"eVar"==k?h="v"+q:"list"==k?h="l"+q:"hier"==k&&(h="h"+q,l=l.substring(0,255)))}g+="&"+a.escape(h)+"="+a.escape(l)}}""!=g&&(g+="&."+c)}return g};a.usePostbacks=0;a.wb=function(){var c="",b,d,f,e,g,h,l,k,q="",m="",n=e="";if(a.lightProfileID)b=a.P,(q=a.lightTrackVars)&&(q=","+q+","+a.ga.join(",")+ +",");else{b=a.g;if(a.pe||a.linkType)q=a.linkTrackVars,m=a.linkTrackEvents,a.pe&&(e=a.pe.substring(0,1).toUpperCase()+a.pe.substring(1),a[e]&&(q=a[e].Kb,m=a[e].Jb));q&&(q=","+q+","+a.G.join(",")+",");m&&(m=","+m+",",q&&(q+=",events,"));a.events2&&(n+=(""!=n?",":"")+a.events2)}if(a.visitor&&a.visitor.getCustomerIDs){e=p;if(g=a.visitor.getCustomerIDs())for(d in g)Object.prototype[d]||(f=g[d],"object"==typeof f&&(e||(e={}),f.id&&(e[d+".id"]=f.id),f.authState&&(e[d+".as"]=f.authState)));e&&(c+=a.q("cid", +e))}a.AudienceManagement&&a.AudienceManagement.isReady()&&(c+=a.q("d",a.AudienceManagement.getEventCallConfigParams()));for(d=0;df||0<=e&&f>e||0<=g&&f>g)&&(e=a.protocol&&1f?0:f)+"/":"")+d);return d};a.M=function(c){var b=a.C(c),d,f,e="",g=0;return b&&(d=c.protocol,f=c.onclick,!c.href||"A"!=b&&"AREA"!=b||f&&d&&!(0>d.toLowerCase().indexOf("javascript"))?f?(e=a.replace(a.replace(a.replace(a.replace(""+ +f,"\r",""),"\n",""),"\t","")," ",""),g=2):"INPUT"==b||"SUBMIT"==b?(c.value?e=c.value:c.innerText?e=c.innerText:c.textContent&&(e=c.textContent),g=3):"IMAGE"==b&&c.src&&(e=c.src):e=a.Ca(c),e)?{id:e.substring(0,100),type:g}:0};a.Nb=function(c){for(var b=a.C(c),d=a.M(c);c&&!d&&"BODY"!=b;)if(c=c.parentElement?c.parentElement:c.parentNode)b=a.C(c),d=a.M(c);d&&"BODY"!=b||(c=0);c&&(b=c.onclick?""+c.onclick:"",0<=b.indexOf(".tl(")||0<=b.indexOf(".trackLink("))&&(c=0);return c};a.Eb=function(){var c,b,d=a.linkObject, +f=a.linkType,e=a.linkURL,g,h;a.ha=1;d||(a.ha=0,d=a.clickObject);if(d){c=a.C(d);for(b=a.M(d);d&&!b&&"BODY"!=c;)if(d=d.parentElement?d.parentElement:d.parentNode)c=a.C(d),b=a.M(d);b&&"BODY"!=c||(d=0);if(d&&!a.linkObject){var l=d.onclick?""+d.onclick:"";if(0<=l.indexOf(".tl(")||0<=l.indexOf(".trackLink("))d=0}}else a.ha=1;!e&&d&&(e=a.Ca(d));e&&!a.linkLeaveQueryString&&(g=e.indexOf("?"),0<=g&&(e=e.substring(0,g)));if(!f&&e){var m=0,q=0,n;if(a.trackDownloadLinks&&a.linkDownloadFileTypes)for(l=e.toLowerCase(), +g=l.indexOf("?"),h=l.indexOf("#"),0<=g?0<=h&&hb)return 0}return 1};a.R=function(c,b){var d,f,e,g,h,l;for(d=0;2>d;d++)for(f=0d;d++)for(f=0c.indexOf("-")){for(c=0;16>c;c++)f=Math.floor(Math.random()*f),b+="0123456789ABCDEF".substring(f,f+1),f=Math.floor(Math.random()*e),d+="0123456789ABCDEF".substring(f,f+1),f=e=16;c=b+"-"+d}a.cookieWrite("s_fid",c,1)||(c=0);return c};a.t=a.track=function(c,b){var d,f=new Date,e="s"+Math.floor(f.getTime()/108E5)%10+Math.floor(1E13*Math.random()),g=f.getYear(),g="t="+a.escape(f.getDate()+"/"+f.getMonth()+"/"+(1900>g?g+1900:g)+" "+f.getHours()+":"+f.getMinutes()+":"+f.getSeconds()+ +" "+f.getDay()+" "+f.getTimezoneOffset());a.visitor&&a.visitor.getAuthState&&(a.authState=a.visitor.getAuthState());a.o("_s");a.ab(c)||(b&&a.R(b),c&&(d={},a.Qa(d,0),a.R(c)),a.Bb()&&!a.visitorOptedOut&&(a.analyticsVisitorID||a.marketingCloudVisitorID||(a.fid=a.ub()),a.Eb(),a.usePlugins&&a.doPlugins&&a.doPlugins(a),a.account&&(a.abort||(a.trackOffline&&!a.timestamp&&(a.timestamp=Math.floor(f.getTime()/1E3)),f=k.location,a.pageURL||(a.pageURL=f.href?f.href:f),a.referrer||a.Ra||(f=a.Util.getQueryParam("adobe_mc_ref", +null,null,!0),a.referrer=f||void 0===f?void 0===f?"":f:n.document.referrer),a.Ra=1,a.referrer=a.sb(a.referrer),a.o("_g")),a.xb()&&!a.abort&&(a.visitor&&!a.supplementalDataID&&a.visitor.getSupplementalDataID&&(a.supplementalDataID=a.visitor.getSupplementalDataID("AppMeasurement:"+a._in,a.expectSupplementalData?!1:!0)),a.yb(),g+=a.wb(),a.cb(e,g),a.o("_t"),a.referrer=""))),c&&a.R(d,1));a.abort=a.supplementalDataID=a.timestamp=a.pageURLRest=a.linkObject=a.clickObject=a.linkURL=a.linkName=a.linkType=k.s_objectID= +a.pe=a.pev1=a.pev2=a.pev3=a.e=a.lightProfileID=0};a.ta=[];a.registerPreTrackCallback=function(c){for(var b=[],d=1;da.O&&a.La(a.i),a.ma(500);else{var c=a.lb();if(0=a.offlineThrottleDelay)return 0;c=a.B()-a.Ja;return a.offlineThrottleDelaya.O&&a.La(a.i);a.Z();a.ma(500)};b.onreadystatechange=function(){4==b.readyState&&(200==b.status?b.na():b.Ba())};a.Ja=a.B();if(1==d||2==d){var e=c.indexOf("?");f=c.substring(0,e);e=c.substring(e+1);e=e.replace(/&callback=[a-zA-Z0-9_.\[\]]+/,"");1==d?(b.open("POST",f,!0),b.send(e)):2==d&&(b.open("POST",f),b.send(e))}else if(b.src=c,3==d){if(a.Ha)try{f.removeChild(a.Ha)}catch(g){}f.firstChild?f.insertBefore(b, +f.firstChild):f.appendChild(b);a.Ha=a.A}b.F=setTimeout(function(){b.F&&(b.complete?b.na():(a.trackOffline&&b.abort&&b.abort(),b.Ba()))},5E3);a.ob=c;a.A=k["s_i_"+a.replace(a.account,",","_")]=b;if(a.useForcedLinkTracking&&a.K||a.v)a.forcedLinkTrackingTimeout||(a.forcedLinkTrackingTimeout=250),a.aa=setTimeout(a.Z,a.forcedLinkTrackingTimeout)};a.pb=function(){if(a.ka()&&!(a.Ia>a.O))try{k.localStorage.removeItem(a.ia()),a.Ia=a.B()}catch(c){}};a.La=function(c){if(a.ka()){a.Na();try{k.localStorage.setItem(a.ia(), +k.JSON.stringify(c)),a.O=a.B()}catch(b){}}};a.Na=function(){if(a.trackOffline){if(!a.offlineLimit||0>=a.offlineLimit)a.offlineLimit=10;for(;a.i.length>a.offlineLimit;)a.Aa()}};a.forceOffline=function(){a.ja=!0};a.forceOnline=function(){a.ja=!1};a.ia=function(){return a.offlineFilename+"-"+a.visitorNamespace+a.account};a.B=function(){return(new Date).getTime()};a.Fa=function(a){a=a.toLowerCase();return 0!=a.indexOf("#")&&0!=a.indexOf("about:")&&0!=a.indexOf("opera:")&&0!=a.indexOf("javascript:")?!0: +!1};a.setTagContainer=function(c){var b,d,f;a.Hb=c;for(b=0;b(""+f[b]).indexOf("s_c_il"))&&(c[b]=f[b]);if(d.mmq)for(b=0;be)return g;b=d+b.substring(e+1)+d;if(!f||!(0<=b.indexOf(d+c+d)||0<=b.indexOf(d+c+"="+d))){e=b.indexOf("#");0<=e&&(b=b.substr(0,e)+d);e=b.indexOf(d+c+"=");if(0>e)return g;b=b.substring(e+d.length+c.length+1);e=b.indexOf(d); +0<=e&&(b=b.substring(0,e));0=m;m++)76>m&&(a.g.push("prop"+m),a.P.push("prop"+m)),a.g.push("eVar"+m),a.P.push("eVar"+m),6>m&&a.g.push("hier"+m),4>m&&a.g.push("list"+m);m="pe pev1 pev2 pev3 latitude longitude resolution colorDepth javascriptVersion javaEnabled cookiesEnabled browserWidth browserHeight connectionType homepage pageURLRest marketingCloudOrgID".split(" ");a.g=a.g.concat(m);a.G=a.G.concat(m);a.ssl=0<=k.location.protocol.toLowerCase().indexOf("https");a.charSet="UTF-8";a.contextData={};a.offlineThrottleDelay= +0;a.offlineFilename="AppMeasurement.offline";a.Ja=0;a.ea=0;a.O=0;a.Ia=0;a.linkDownloadFileTypes="exe,zip,wav,mp3,mov,mpg,avi,wmv,pdf,doc,docx,xls,xlsx,ppt,pptx";a.w=k;a.d=k.document;try{if(a.Oa=!1,navigator){var v=navigator.userAgent;if("Microsoft Internet Explorer"==navigator.appName||0<=v.indexOf("MSIE ")||0<=v.indexOf("Trident/")&&0<=v.indexOf("Windows NT 6"))a.Oa=!0}}catch(x){}a.Z=function(){a.aa&&(k.clearTimeout(a.aa),a.aa=p);a.k&&a.K&&a.k.dispatchEvent(a.K);a.v&&("function"==typeof a.v?a.v(): +a.k&&a.k.href&&(a.d.location=a.k.href));a.k=a.K=a.v=0};a.Ma=function(){a.b=a.d.body;a.b?(a.u=function(c){var b,d,f,e,g;if(!(a.d&&a.d.getElementById("cppXYctnr")||c&&c["s_fe_"+a._in])){if(a.wa)if(a.useForcedLinkTracking)a.b.removeEventListener("click",a.u,!1);else{a.b.removeEventListener("click",a.u,!0);a.wa=a.useForcedLinkTracking=0;return}else a.useForcedLinkTracking=0;a.clickObject=c.srcElement?c.srcElement:c.target;try{if(!a.clickObject||a.N&&a.N==a.clickObject||!(a.clickObject.tagName||a.clickObject.parentElement|| +a.clickObject.parentNode))a.clickObject=0;else{var h=a.N=a.clickObject;a.da&&(clearTimeout(a.da),a.da=0);a.da=setTimeout(function(){a.N==h&&(a.N=0)},1E4);f=a.Da();a.track();if(f -1) s.events=s.apl(s.events,"event8",",",2); + + /* Download Tracking */ + var url=s.downloadLinkHandler(); if(url){ + s.prop21 = url.substring(url.lastIndexOf("/")+1,url.length); + s.eVar21 = url; + s.events=s.apl(s.events,"event12",",",2); + s.prop22 = "D=pageName"; + s.prop23 = s.prevPageName; + s.linkTrackVars="prop1,prop4,prop6,prop7,prop10,prop14,prop17,prop21,prop22,prop23,prop24,prop25,prop26,prop27,prop53,prop54,prop57,prop60,prop69,prop70,prop75,eVar4,eVar6,eVar7,eVar12,eVar17,eVar21,eVar23,eVar24,eVar25,eVar26,eVar47,eVar58,products"; + s.linkTrackEvents="event12,event19"; + } + else { + if(s.events.match(/,*?event12\b/)==null) s.prevPageName = s.getPreviousValue(s.pageName,'gpv_p5',''); + } + + s.prop27 = s.getNewRepeat(); + //Determine bounce rate for all visits + s.visitstart=s.getVisitStart('s_vs'); + if(s.visitstart&&s.visitstart==1){ + s.firstPage='firstpage'; + } + s.clickPast(s.firstPage,'event23','event24'); + + /* S_Code version */ + s.prop55 = SCODEVERSION; + + /* Campaign Pathing */ + if(s.campaign) + s.prop61 = 'D=v0+"|"+pageName'; + else + s.prop61 = "D=pageName"; + + /* URL */ + s.eVar75 = "D=g"; + + var tpA = s.getTimeParting('n','-5'); + s.prop59 = tpA[2]; + + s.prop72 = 'D=c53+":"+pageName'; + s.prop73 = 'D=c53+":"+c4+":"+pageName' + s.prop74 = 'D=c53+":"+c4'; + s.prop75 = 'D=g'; + + /*prop to eVar copies */ + s.eVar1="D=c1"; + s.eVar2="D=c15"; + s.eVar4="D=c4"; + s.eVar5="D=c5"; + s.eVar6="D=c6"; + s.eVar7="D=c7"; + s.eVar8="D=c8"; + s.eVar9="D=c9"; + s.eVar12="D=c60"; + s.eVar13="D=c13"; + s.eVar15="D=c2"; + s.eVar16="D=c16"; + s.eVar17="D=c17"; + s.eVar18="D=c18"; + s.eVar19="D=c19"; + s.eVar20="D=c20"; + + s.eVar23="D=c14"; // Section + s.eVar24="D=c24"; + s.eVar25="D=c25"; + s.eVar26="D=c26"; + s.eVar27="D=c71"; // Multimedia type + //s.eVar29=""; // Hold + + s.eVar30="D=pageName"; + + + s.eVar36="D=c27"; // New vs repeat + + s.eVar43 = "D=c59"; // Day of week + + s.eVar50="D=c50"; + s.eVar51="D=c51"; + s.eVar52="D=c52"; + + //s.eVar54 = "D=c54"; + + if(s.prop53) s.eVar53 = "D=c53"; + + s.eVar72 = 'D=c53+":"+pageName'; + s.eVar73 = 'D=c53+":"+c4+":"+pageName' + s.eVar74 = 'D=c53+":"+c4'; + s.eVar75 = 'D=g'; + + /* copy eVars to props */ + s.prop62 = "D=v39"; + if(s.eVar35) { + s.prop63 = "D=v34"; + s.linkTrackVars=s.apl(s.linkTrackVars,"prop63",",",2); + } + + /* Page view count */ + s.events=s.apl(s.events,"event11",",",2); + + /* Engagement Score */ + s.engagementScore = 0; + if(s.events.match(/,*?event13\b/)!=null) s.engagementScore += s.engagementScoreMap['event13']; + if(s.events.match(/,*?event32\b/)!=null) s.engagementScore += s.engagementScoreMap['event32']; + if(s.events.match(/,*?event14\b/)!=null) s.engagementScore += s.engagementScoreMap['event14']; + if(s.events.match(/,*?event33\b/)!=null) s.engagementScore += s.engagementScoreMap['event33']; + if(s.events.match(/,*?event15\b/)!=null) s.engagementScore += s.engagementScoreMap['event15']; + if(s.events.match(/,*?event1\b/)!=null) s.engagementScore += s.engagementScoreMap['event1']; + if(s.events.match(/,*?event2\b/)!=null) s.engagementScore += s.engagementScoreMap['event2']; + if(s.events.match(/,*?event4\b/)!=null) s.engagementScore += s.engagementScoreMap['event4']; + if(s.events.match(/,*?event5\b/)!=null) s.engagementScore += s.engagementScoreMap['event5']; + if(s.events.match(/,*?event6\b/)!=null) s.engagementScore += s.engagementScoreMap['event6']; + if(s.events.match(/,*?event7\b/)!=null) s.engagementScore += s.engagementScoreMap['event7']; + if(s.events.match(/,*?event10\b/)!=null) s.engagementScore += s.engagementScoreMap['event10']; + if(s.events.match(/,*?event11\b/)!=null) s.engagementScore += s.engagementScoreMap['event11']; + if(s.events.match(/,*?event12\b/)!=null) s.engagementScore += s.engagementScoreMap['event12']; + if(s.events.match(/,*?event18\b/)!=null) s.engagementScore += s.engagementScoreMap['event18']; + //if(s.events.match(/,*?event20\b/)!=null) s.engagementScore += s.engagementScoreMap['event20']; + //if(s.events.match(/,*?event22\b/)!=null) s.engagementScore += s.engagementScoreMap['event22']; + //if(s.events.match(/,*?event23\b/)!=null) s.engagementScore += s.engagementScoreMap['event23']; + //if(s.events.match(/,*?event24\b/)!=null) s.engagementScore += s.engagementScoreMap['event24']; + + + if(s.events.match(/,*?event11\b/)!=null){ + if(s.linkTrackEvents.match(/,*?event11\b/) == null) + if(s.linkTrackEvents != "event19") s.engagementScore--; + } + s.eVar47 = "+"+s.engagementScore; + s.products = ";;;;event19="+s.engagementScore; + s.events=s.apl(s.events,"event19",",",2); + s.linkTrackVars=s.apl(s.linkTrackVars,"events",",",2); + s.linkTrackVars=s.apl(s.linkTrackVars,"products",",",2); + s.linkTrackVars=s.apl(s.linkTrackVars,"evar47",",",2); + s.linkTrackEvents=s.apl(s.linkTrackEvents,"event19",",",2); + + /* event List ContextData */ + s.contextData['eventList'] = s.events; + s.linkTrackVars=s.apl(s.linkTrackVars,"contextData.eventList",",",2); + +} +s.doPlugins=s_doPlugins; + + + +/* PLUGINS */ +/* + * Plugin: getNewRepeat 1.2 - Returns whether user is new or repeat + */ +s.getNewRepeat=new Function("d","cn","" ++"var s=this,e=new Date(),cval,sval,ct=e.getTime();d=d?d:30;cn=cn?cn:" ++"'s_nr';e.setTime(ct+d*24*60*60*1000);cval=s.c_r(cn);if(cval.length=" ++"=0){s.c_w(cn,ct+'-New',e);return'New';}sval=s.split(cval,'-');if(ct" ++"-sval[0]<30*60*1000&&sval[1]=='New'){s.c_w(cn,ct+'-New',e);return'N" ++"ew';}else{s.c_w(cn,ct+'-Repeat',e);return'Repeat';}"); + +/* + * Utility Function: split v1.5 (JS 1.0 compatible) + */ +s.split=new Function("l","d","" ++"var i,x=0,a=new Array;while(l){i=l.indexOf(d);i=i>-1?i:l.length;a[x" ++"++]=l.substring(0,i);l=l.substring(i+d.length);}return a"); + +/* + * Plugin: getVisitStart v2.0 - returns 1 on first page of visit + * otherwise 0 + */ +s.getVisitStart=new Function("c","" ++"var s=this,v=1,t=new Date;t.setTime(t.getTime()+1800000);if(s.c_r(c" ++")){v=0}if(!s.c_w(c,1,t)){s.c_w(c,1,0)}if(!s.c_r(c)){v=0}return v;"); + +/* +* Plugin: clickPast - version 1.0 +*/ +s.clickPast=new Function("scp","ct_ev","cp_ev","cpc","" ++"var s=this,scp,ct_ev,cp_ev,cpc,ev,tct;if(s.p_fo(ct_ev)==1){if(!cpc)" ++"{cpc='s_cpc';}ev=s.events?s.events+',':'';if(scp){s.events=ev+ct_ev" ++";s.c_w(cpc,1,0);}else{if(s.c_r(cpc)>=1){s.events=ev+cp_ev;s.c_w(cpc" ++",0,0);}}}"); + +s.p_fo=new Function("n","" ++"var s=this;if(!s.__fo){s.__fo=new Object;}if(!s.__fo[n]){s.__fo[n]=" ++"new Object;return 1;}else {return 0;}"); + +/* + * Plugin Utility: apl v1.1 + */ +s.apl=new Function("l","v","d","u","" ++"var s=this,m=0;if(!l)l='';if(u){var i,n,a=s.split(l,d);for(i=0;i-1?t.substring(0,t.indexOf('#')):t;}if(t)v+=v?d+t:t;p=p.substrin" ++"g(i==p.length?i:i+1)}return v"); +s.p_gpv=new Function("k","u","h","" ++"var s=this,v='',q;j=h==1?'#':'?';i=u.indexOf(j);if(k&&i>-1){q=u.sub" ++"string(i+1);v=s.pt(q,'&','p_gvf',k)}return v"); +s.p_gvf=new Function("t","k","" ++"if(t){var s=this,i=t.indexOf('='),p=i<0?t:t.substring(0,i),v=i<0?'T" ++"rue':t.substring(i+1);if(p.toLowerCase()==k.toLowerCase())return s." ++"epa(v)}return''"); + +/* + * Plugin: getTimeParting 3.3 + */ +s.getTimeParting=new Function("h","z","" ++"var s=this,od;od=new Date('1/1/2000');if(od.getDay()!=6||od.getMont" ++"h()!=0){return'Data Not Available';}else{var H,M,D,W,U,ds,de,tm,tt," ++"da=['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Sa" ++"turday'],d=new Date(),a=[];z=z?z:0;z=parseFloat(z);if(s._tpDST){var" ++" dso=s._tpDST[d.getFullYear()].split(/,/);ds=new Date(dso[0]+'/'+d." ++"getFullYear());de=new Date(dso[1]+'/'+d.getFullYear());if(h=='n'&&d" ++">ds&&dde||d=12){U='PM';H=H-12;}if(H==0){H=12;}if(D==6||D==0){W='Wee" ++"kend';}D=da[D];tm=H+':'+M+U;tt=H+':'+((M>30)?'30':'00')+U;a=[tm,tt," ++"D,W];return a;}"); + +/* + * Plugin: linkHandler 0.8 - identify and report custom links + */ +s.linkHandler=new Function("p","t","e","" ++"var s=this,o=s.p_gh(),h=o.href,i,l;t=t?t:'o';if(!h||(s.linkType&&(h" ++"||s.linkName)))return'';i=h.indexOf('?');h=s.linkLeaveQueryString||" ++"i<0?h:h.substring(0,i);l=s.pt(p,'|','p_gn',h.toLowerCase());if(l){s" ++".linkName=l=='[['?'':l;s.linkType=t;return e?o:h;}return'';"); +s.p_gh=new Function("","" ++"var s=this;if(!s.eo&&!s.lnk)return'';var o=s.eo?s.eo:s.lnk,y=s.ot(o" ++"),n=s.oid(o),x=o.s_oidt;if(s.eo&&o==s.eo){while(o&&!n&&y!='BODY'){o" ++"=o.parentElement?o.parentElement:o.parentNode;if(!o)return'';y=s.ot" ++"(o);n=s.oid(o);x=o.s_oidt;}}return o?o:'';"); +s.p_gn=new Function("t","h","" ++"var i=t?t.indexOf('~'):-1,n,x;if(t&&h){n=i<0?'':t.substring(0,i);x=" ++"t.substring(i+1);if(h.indexOf(x.toLowerCase())>-1)return n?n:'[[';}" ++"return 0;"); + +/* + * Utility manageVars v1.4 - clear variable values (requires split 1.5) + */ +s.manageVars=new Function("c","l","f","" ++"var s=this,vl,la,vla;l=l?l:'';f=f?f:1 ;if(!s[c])return false;vl='pa" ++"geName,purchaseID,channel,server,pageType,campaign,state,zip,events" ++",products,transactionID';for(var n=1;n<76;n++){vl+=',prop'+n+',eVar" ++"'+n+',hier'+n;}if(l&&(f==1||f==2)){if(f==1){vl=l;}if(f==2){la=s.spl" ++"it(l,',');vla=s.split(vl,',');vl='';for(x in la){for(y in vla){if(l" ++"a[x]==vla[y]){vla[y]='';}}}for(y in vla){vl+=vla[y]?','+vla[y]:'';}" ++"}s.pt(vl,',',c,0);return true;}else if(l==''&&f==1){s.pt(vl,',',c,0" ++");return true;}else{return false;}"); +s.clearVars=new Function("t","var s=this;s[t]='';"); +s.lowercaseVars=new Function("t","" ++"var s=this;if(s[t]&&t!='events'){s[t]=s[t].toString();if(s[t].index" ++"Of('D=')!=0){s[t]=s[t].toLowerCase();}}"); + +/* + * channelManager v2.85 - Tracking External Traffic + */ +s.channelManager=new Function("a","b","c","d","e","f","g","" ++"var s=this,h=new Date,i=0,j,k,l,m,n,o,p,q,r,t,u,v,w,x,y,z,A,B,C,D,E" ++",F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T;h.setTime(h.getTime()+1800000);if(e)" ++"{i=1;if(s.c_r(e))i=0;if(!s.c_w(e,1,h))s.c_w(e,1,0);if(!s.c_r(e))i=0" ++";if(f&&s.c_r('s_tbm'+f))i=0;}j=s.referrer?s.referrer:document.refer" ++"rer;j=unescape(j.toLowerCase());if(!j)k=1;else {l=j.indexOf('?')>-1" ++"?j.indexOf('?'):j.length;m=j.substring(0,l);n=s.split(j,'/');n=s.sp" ++"lit(n[2],'?');o=n[0].toLowerCase();p=s.linkInternalFilters.toLowerC" ++"ase();p=s.split(p,',');for(q=0;q'+s._extraSearchEngines;if(d==1){m=s.repl(m,'oogle'," ++"'%');m=s.repl(m,'ahoo','^');j=s.repl(j,'as_q','*');}y=s.split(x,'>'" ++");for(z=0;z-1){if(A[2])E=v=A" ++"[2];else E=o;if(d==1){E=s.repl(E,'#',' - ');j=s.repl(j,'*','as_q');" ++"E=s.repl(E,'^','ahoo');E=s.repl(E,'%','oogle');}F=s.split(A[1],',')" ++";for(G=0;G-1||j.indexOf('http" ++"s://www.google.')==0||j.indexOf('http://r.search.yahoo.com')==0)H=1" ++";I=s.getQueryParam(F[G],'',j).toLowerCase();if(H||I)break;}}if(H||I" ++")break;}if(H||I)break;}}if(!r||g!='1'){J=s.split(a,',');K=0;while(!" ++"T&&K');for(L=0;L-1){w=M[0];break;}}if(R>-1)break;}}" ++"J=s._channelParameter;if(J){K=s.split(J,'>');for(L=0;L');for(L=0;Lyahoo.com,yahoo.co.jp|p,va|Yahoo!>bing.com|q|Bing>altavista." ++"co,altavista.de|q,r|AltaVista>.aol.,suche.aolsvc.de|q,query|AOL>ask" ++".jp,ask.co|q,ask|Ask>www.baidu.com|wd|Baidu>daum.net,search.daum.ne" ++"t|q|Daum>icqit.com|q|icq>myway.com|searchfor|MyWay.com>naver.com,se" ++"arch.naver.com|query|Naver>netscape.com|query,search|Netscape Searc" ++"h>reference.com|q|Reference.com>seznam|w|Seznam.cz>abcsok.no|q|Star" ++"tsiden>tiscali.it,www.tiscali.co.uk|key,query|Tiscali>virgilio.it|q" ++"s|Virgilio>yandex|text|Yandex.ru>search.cnn.com|query|CNN Web Searc" ++"h>search.earthlink.net|q|Earthlink Search>search.comcast.net|q|Comc" ++"ast Search>search.rr.com|qs|RoadRunner Search>optimum.net|q|Optimum" ++" Search"; +s._channelDomain='Social Networks|google.co.jp,plus.url.google.com,google.ru,answers.yahoo.com,163.com,alexa.com,ameba.jp,anonymouse.org,appspot.com,archive.org,blogspot.com,blogspot.com.ar,blogspot.com.au,blogspot.com.br,blogspot.com.es,blogspot.com.tr,cafemom.com,care2.com,cloob.com,cyworld.co.kr,dailymotion.com,daum.net,delicious.com,deviantart.com,digg.com,diigo.com,disqus.com,doubleclick.net,draugiem.lv,facebook.com,fc2.com,feedly.com,flickr.com,foursquare.com,friendfeed.com,friendsreunited.com,gaiaonline.com,goodreads.com,gvirabi.com,hatena.ne.jp,hi5.com,ibibo.com,identi.ca,iwiw.hu,kaixin001.com,kakaku.com,kompas.com,kproxy.com,linkedin.com,livejournal.com,meetup.com,mixi.jp,mumsnet.com,myspace.com,naver.jp,netlog.com,netvibes.com,nicovideo.jp,ning.com,odnoklassniki.ru,orkut.com,orkut.com.br,pinterest.com,plurk.com,qq.com,ranksignals.com,reddit.com,renren.com,saveinter.net,seesaa.jp,semrush.com,skyrock.com,slideshare.net,sohu.com,sonico.com,squider.org,stumbleupon.com,t.co,tagged.com,taringa.net,topsy.com,tsinghua.edu.cn,tuenti.com,tumblr.com,twitter.com,unc.edu,up.ac.za,viadeo.com,vimeo.com,vk.com,vox.com,wayn.com,webwarper.net,weibo.com,woorank.com,wordpress.com,xing.com,yammer.com,yelp.com,yelp.com.au,youtube.com,yuku.com>Search Engines|google.com,google.co.uk,google.com.mx,google.co.in,google.fr,google.ca,google.com.co,google.es,google.com.au,bing.com,google.com.ph,google.de,google.com.pe,google.com.ar,google.com.pk,google.com.hk,google.co.jp,google.co.za,google.com.vn,google.com.sg,google.com.br,google.it,google.nl,google.com.tr,google.cl,google.com.ec,google.ru,google.co.th,yahoo.com,google.be,google.ch,google.com.eg,google.co.ve,baidu.com,google.com.ng,google.com.bd,google.ae,google.com.my,google.com.sa,google.co.kr,google.pl,ask.com,google.se,google.com.gt,google.co.ke,google.lk,yahoo.co.jp,google.com.ua,google.co.nz,google.dk,google.ro,google.pt,google.com.do,google.com.bo,google.com.tw,google.ie,google.com.sv,google.tn,google.at,google.com.gh,google.com.et,google.co.tz,google.com.np,google.gr,google.dz,google.cz,google.hn,google.com.kh,google.no,google.sn,google.co.il,google.co.id,yandex.ru,google.co.cr,mywebsearch.com,google.com.uy,google.fi,google.com.ni,google.jo,google.com.jm,google.hu,google.mn,google.ci,google.tt,google.bg,google.co.zw,google.lt,google.hr,google.cm,google.rs,google.mu,avg.com,google.kz,google.co.ma,google.co.zm,google.sk,google.com.pr,google.rw,google.com.py,google.com.lb,google.iq,google.ps,google.ba,google.lv,google.mg,naver.com,google.ge,google.am,google.si,google.md,google.com.af,google.co.bw,so.360.cn,google.az,google.ht,google.com.qa,google.la,google.com.bh,google.com.na,google.com.kw,google.ee,google.cd,google.by,search-results.com,google.lu,google.co.ug,aol.com,google.com.ly,google.co.mz,google.com.mt,sogou.com,google.bj,google.com.mm,google.tg,google.com.bn,google.co.ls,google.gy,google.mv,google.com.cy,google.com.pg,mail.ru,google.bi,google.ml,google.is,so.com,google.bs,google.com.bz,google.com.sl,google.me,google.com.om,daum.net,google.com.pa,google.gm,google.com.vc,google.dj,comcast.net,google.com.cu,google.kg,google.com.tj,google.co.uz,google.cg,google.com.ag,google.dm,yandex.ua,dogpile.com,google.mw,google.gp,google.com.sb,google.sc,yandex.com.tr,google.ws,google.cat,docomo.ne.jp,reference.com,yandex.by,yandex.kz,rambler.ru,google.to,google.com.fj,goo.ne.jp,google.as,biglobe.ne.jp,google.vg,soso.com,google.com.ai,blekko.com,google.st,seznam.cz,google.li,rakuten.co.jp,websiteforever.com,earthlink.net,google.co.ao,startpagina.nl,nifty.com,google.com.gi,recherche.aol.fr,auone.jp,google.fm,youdao.com,google.co.vi,virgilio.it,fenrir-inc.com,yandex.com,google.ki,google.com.iq,chatzum.com,voila.fr,libero.it,fmworld.net,kvasir.no,ocn.ne.jp,google.co.ck,uol.com.br,icq.com,webalta.ru,sony.jp,sensis.com.au,google.im,myway.com,google.tm,google.com.tn,suche.aol.de,harvard.edu,google.sh,suche.web.de,google.vu,google.gl,library.uu.nl,zensearch.com,googlesyndication.com,search.aol.ca,toile.com,auckland.ac.nz,lycos.com,up.ac.za,virginia.edu,georgetown.edu,uct.ac.za,centrum.cz,rmit.edu.au,walla.co.il,myjcom.jp,aol.co.uk,google.gg,usyd.edu.au,eniro.se,excite.co.jp,google.je,yandex.net,searchalot.com,mq.edu.au,sci-hub.org,monash.edu.au,adelaide.edu.au,unimelb.edu.au,zhongsou.com,liv.ac.uk,uts.edu.au,unc.edu,umn.edu,massey.ac.nz,library.wur.nl,google.nr,wrlc.org,google.tk,so-net.ne.jp,wisc.edu,columbia.edu,queensu.ca,uwc.ac.za,thefreedictionary.com,nwu.ac.za,proxy-ub.rug.nl,mcmaster.ca,teoma.com,umich.edu,korea.ac.kr,asu.edu,unimaas.nl,terra.es,luna.tv,lib.sfu.ca,indiana.edu,fjernadgang.kb.dk,flinders.edu.au,oclc.org,polyu.edu.hk,msn.com,sixxs.org,usc.edu,google.ms,seals.ac.za,google.nu,jcu.edu.au,uvic.ca,ukzn.ac.za,vinden.nl,uq.edu.au,umanitoba.ca,ixquick.com,sfsu.edu,nd.edu,yorku.ca,usf.edu,aut.ac.nz,arizona.edu,google.cn,wustl.edu,unisa.edu.au,kent.ac.uk,pdx.edu,une.edu.au,duke.edu,nova.edu,cuny.edu,google.sm,bu.edu,umuc.edu,lincoln.ac.nz,timbo.org.uy,o2suche.aol.de,ucsc.edu,umass.edu,bath.ac.uk,ubn.ru.nl,panguso.com,library.ubc.ca,anonymouse.org,swin.edu.au,washington.edu,lycos.fr,live.com,proxy.mah.se,royalroads.ca,cambridge.org,wits.ac.za,fireball.de,uga.edu,isearchinfo.com,vodafone.in,uwinnipeg.ca,snu.ac.kr,hawaii.edu,csu.edu.au,clemson.edu,idrc.ca,lub.lu.se,uws.edu.au,7search.com,lib.uwo.ca,sun.ac.za,ucl.ac.uk,iastate.edu,lib.ul.ie,umd.edu,ucalgary.ca,library.dal.ca,shu.ac.uk,spu.edu,bluewin.ch,utexas.edu,aolrecherche.aol.fr,livedoor.com,ucsb.edu,baidu.jp,zdroje.vse.cz,uconn.edu,otago.ac.nz,sfasu.edu,student.hig.se,lycos.co.uk,newschool.edu,hispavista.com,tufts.edu,tamu.edu,marmara-elibrary.com,tmc.edu,baidu.com.cn,anu.edu.au,chinaso.com,nate.com,vanderbilt.edu,ezproxy.hec.fr,conexcol.com,utsa.edu,acu.edu.au,myunion.edu,delta-search.com,utoronto.ca,libproxy.cbu.ca,apollolibrary.com,capella.edu,wayne.edu,rutgers.edu,zoeken.nl,up.edu,macmillandictionary.com,ohio-state.edu,vuw.ac.nz,ku.edu,yonsei.ac.kr,trentu.ca,cornell.edu,utah.edu,shef.ac.uk,umdnj.edu,emory.edu,idc.ac.il,urbandictionary.com,5ask.com,oakland.edu,murdoch.edu.au,usfca.edu,norwich.edu,essec.fr,cuni.cz,google.com.by,uchicago.edu,albany.edu,google.pn,jianso.com,bing.com.cn,kobson.nb.rs,uni-lj.si,uni-muenchen.de,regis.edu,dictionaryofeconomics.com,nau.edu,lycos.es,waseda.ac.jp,lehigh.edu,fullerton.edu,uwaterloo.ca,wku.edu,uic.edu,lycos.com.mx,google.com.nf,yzu.edu.tw,library.bi.no,uark.edu,tau.ac.il,ua.edu,cau.ac.kr,naver.net,bib.mdh.se,altavista.com,ufl.edu,citypopulation.de,kaist.ac.kr,msu.edu,sub.su.se,bibproxy.du.se,carleton.ca,bham.ac.uk,bangor.ac.uk,calpoly.edu,nokia.com,csuchico.edu,iwon.com,binghamton.edu,colman.ac.il,uni-goettingen.de,brandeis.edu,athensams.net,capilanou.ca,google.com.ve,regent.edu,vt.edu,lsu.edu,ualberta.ca,helsinki.fi,sage.edu,3145.com,unblocksit.es,proxy.lnu.se,acadiau.ca,afrogoogle.com,portal.ttu.ee,mcgill.ca,wncln.org,flyproxy.com,ou.edu,bentley.edu,csueastbay.edu,umb.edu,khu.ac.kr,calstate.edu,rice.edu,ung.edu,fiu.edu,umkc.edu,sc.edu,369pet.com,brown.edu,googleadservices.com,lib.cas.cz,my-addr.org,uludag.edu.tr,alliant.edu,hofstra.edu,tiscali.it,metasuche.ch,usask.ca,linyanti.ub.bw,london.edu,ezproxy.uis.no,keio.ac.jp,temple.edu,radford.edu,uottawa.ca,shimane-u.ac.jp,miun.se,biblextern.sh.se,waikato.ac.nz,langreiter.com,lycos.com.co,tjpjjg.com,uvm.edu,archive.org,unm.edu,pva.uib.no,sndl1.arn.dz,netscape.com,lycos.com.ar,brocku.ca,utk.edu'; + +/* Add metrics event */ +s.addMetricsEvent=function(elem, eventName, func) { + if (elem) { + if (elem.addEventListener) + elem.addEventListener(eventName, func, true); + else if (elem.attachEvent) + elem.attachEvent("on" + eventName, func); + else + elem["on" + eventName] = func; + } +}; + + +/* custom download for a particular scenario */ + try{ + var allLinks = document.getElementsByTagName('a'); + for (var i=allLinks.length-1; i>=0; i--) { + if(allLinks[i].getAttribute('href').indexOf("pubdocs.worldbank.org/pubdocs/genericServlet") > -1){ + s.addMetricsEvent(allLinks[i],"click",function(){s.events=s.apl(s.events,"event12",",",2);s.prop21=this.href.substring(this.href.lastIndexOf("/")+1,this.href.length);s.eVar21=this.href;s.prop22 = "D=pageName";s.prop23 = s.prevPageName;s.linkTrackVars="prop1,prop4,prop6,prop7,prop10,prop14,prop17,prop21,prop22,prop23,prop24,prop25,prop26,prop27,prop53,prop54,prop57,prop60,prop69,prop70,prop75,eVar4,eVar6,eVar7,eVar12,eVar17,eVar21,eVar23,eVar24,eVar25,eVar26,eVar47,eVar58,products";s.linkTrackEvents="event19,event12";s.tl(this,'d',this.href)}); + } + } + } catch(e){} + + + +/****************************** MODULES *****************************/ +/* Module: Media */ +s.m_Media_c="var m=s.m_i('Media');if(m.completeByCloseOffset==undefined)m.completeByCloseOffset=1;if(m.completeCloseOffsetThreshold==undefined)m.completeCloseOffsetThreshold=1;m.cn=function(n){var m=" ++"this;return m.s.rep(m.s.rep(m.s.rep(n,\"\\n\",''),\"\\r\",''),'--**--','')};m.open=function(n,l,p,b){var m=this,i=new Object,tm=new Date,a='',x;n=m.cn(n);if(!l)l=-1;if(n&&p){if(!m.l)m.l=new Object;" ++"if(m.l[n])m.close(n);if(b&&b.id)a=b.id;if(a)for (x in m.l)if(m.l[x]&&m.l[x].a==a)m.close(m.l[x].n);i.n=n;i.l=l;i.o=0;i.x=0;i.p=m.cn(m.playerName?m.playerName:p);i.a=a;i.t=0;i.ts=0;i.s=Math.floor(tm" ++".getTime()/1000);i.lx=0;i.lt=i.s;i.lo=0;i.e='';i.to=-1;i.tc=0;i.fel=new Object;i.vt=0;i.sn=0;i.sx=\"\";i.sl=0;i.sg=0;i.sc=0;i.us=0;i.ad=0;i.adpn;i.adpp;i.adppp;i.clk;i.CPM;i.co=0;i.cot=0;i.lm=0;i.l" ++"om=0;m.l[n]=i}};m.openAd=function(n,l,p,pn,pp,ppp,CPM,b){var m=this,i=new Object;n=m.cn(n);m.open(n,l,p,b);i=m.l[n];if(i){i.ad=1;i.adpn=m.cn(pn);i.adpp=pp;i.adppp=ppp;i.CPM=CPM}};m._delete=function" ++"(n){var m=this,i;n=m.cn(n);i=m.l[n];m.l[n]=0;if(i&&i.m)clearTimeout(i.m.i)};m.close=function(n){this.e(n,0,-1)};m.play=function(n,o,sn,sx,sl){var m=this,i;i=m.e(n,1,o,sn,sx,sl);if(i&&!i.m){i.m=new " ++"Object;i.m.m=new Function('var m=s_c_il['+m._in+'],i;if(m.l){i=m.l[\"'+m.s.rep(i.n,'\"','\\\\\"')+'\"];if(i){if(i.lx==1)m.e(i.n,3,-1);i.m.i=setTimeout(i.m.m,1000)}}');i.m.m()}};m.click=function(n,o" ++"){this.e(n,7,o)};m.complete=function(n,o){this.e(n,5,o)};m.stop=function(n,o){this.e(n,2,o)};m.track=function(n){this.e(n,4,-1)};m.bcd=function(vo,i){var m=this,ns='a.media.',v=vo.linkTrackVars,e=v" ++"o.linkTrackEvents,pe='m_i',pev3,c=vo.contextData,x;if(i.ad){ns+='ad.';if(i.adpn){c['a.media.name']=i.adpn;c[ns+'pod']=i.adpp;c[ns+'podPosition']=i.adppp;}if(!i.vt)c[ns+'CPM']=i.CPM;}if (i.clk) {c[n" ++"s+'clicked']=true;i.clk=0}c['a.contentType']='video'+(i.ad?'Ad':'');c['a.media.channel']=m.channel;c[ns+'name']=i.n;c[ns+'playerName']=i.p;if(i.l>0)c[ns+'length']=i.l;if(Math.floor(i.ts)>0)c[ns+'ti" ++"mePlayed']=Math.floor(i.ts);if(!i.vt){c[ns+'view']=true;pe='m_s';i.vt=1}if(i.sx){c[ns+'segmentNum']=i.sn;c[ns+'segment']=i.sx;if(i.sl>0)c[ns+'segmentLength']=i.sl;if(i.sc&&i.ts>0)c[ns+'segmentView'" ++"]=true}if(!i.cot&&i.co){c[ns+\"complete\"]=true;i.cot=1}if(i.lm>0)c[ns+'milestone']=i.lm;if(i.lom>0)c[ns+'offsetMilestone']=i.lom;if(v)for(x in c)v+=',contextData.'+x;pev3=c['a.contentType'];vo.pe=" ++"pe;vo.pev3=pev3;var d=m.contextDataMapping,y,a,l,n;if(d){vo.events2='';if(v)v+=',events';for(x in d){if(x.substring(0,ns.length)==ns)y=x.substring(ns.length);else y=\"\";a=d[x];if(typeof(a)=='strin" ++"g'){l=m.s.sp(a,',');for(n=0;n0?i.l:1)+d+m.s.ape(i.p)+d+Math.floor(i.t)+d+i.s+d+(i.to>=0?'L'+Math.floor(i.to):'')+i.e+(x!=0&&x!" ++"=2?'L'+Math.floor(o):'');vo.pe=pe;vo.pev3=pev3};m.e=function(n,x,o,sn,sx,sl,pd){var m=this,i,tm=new Date,ts=Math.floor(tm.getTime()/1000),c,l,v=m.trackVars,e=m.trackEvents,ti=m.trackSeconds,tp=m.tr" ++"ackMilestones,to=m.trackOffsetMilestones,sm=m.segmentByMilestones,so=m.segmentByOffsetMilestones,z=new Array,j,t=1,w=new Object,x,ek,tc,vo=new Object;if(!m.channel)m.channel=m.s.wd.location.hostnam" ++"e;n=m.cn(n);i=n&&m.l&&m.l[n]?m.l[n]:0;if(i){if(i.ad){ti=m.adTrackSeconds;tp=m.adTrackMilestones;to=m.adTrackOffsetMilestones;sm=m.adSegmentByMilestones;so=m.adSegmentByOffsetMilestones}if(o<0){if(i" ++".lx==1&&i.lt>0)o=(ts-i.lt)+i.lo;else o=i.lo}if(i.l>0)o=o0){i.x=(i.o/i.l)*100;i.x=i.x>100?100:i.x}if(i.lo<0)i.lo=o;tc=i.tc;w.name=n;w.ad=i.ad;w.length=i.l;w.openTi" ++"me=new Date;w.openTime.setTime(i.s*1000);w.offset=i.o;w.percent=i.x;w.playerName=i.p;if(i.to<0)w.mediaEvent=w.event='OPEN';else w.mediaEvent=w.event=(x==1?'PLAY':(x==2?'STOP':(x==3?'MONITOR':(x==4?" ++"'TRACK':(x==5?'COMPLETE':(x==7?'CLICK':('CLOSE')))))));if(!pd){if(i.pd)pd=i.pd}else i.pd=pd;w.player=pd;if(x>2||(x!=i.lx&&(x!=2||i.lx==1))) {if(!sx){sn=i.sn;sx=i.sx;sl=i.sl}if(x){if(x==1)i.lo=o;if(" ++"(x<=3||x>=5)&&i.to>=0){t=0;v=e=\"None\";if(i.to!=o){l=i.to;if(l>o){l=i.lo;if(l>o)l=o}z=tp?m.s.sp(tp,','):0;if(i.l>0&&z&&o>=l)for(j=0;j=c){t=1;j=z.length;w.mediaEvent=w.event='MILESTONE';i.lm=w.milestone=c}}z=to?m.s.sp(to,','):0;if(z&&o>=l)for(j=0;j=c){t=1;j=z.length;w" ++".mediaEvent=w.event='OFFSET_MILESTONE';i.lom=w.offsetMilestone=c}}}}if(i.sg||!sx){if(sm&&tp&&i.l>0){z=m.s.sp(tp,',');if(z){z[z.length]='100';l=0;for(j=0;j0?i.l:'E');l=0;for(j=0;j=0)t=1}if((x>=2||i.x>=100)&&i.lo=0&&x<=3){ti=ti?ti:0;if(ti&&i.ts>=ti){t=1;w.mediaEvent=w.event='SECONDS'}}i.lt=ts;i.lo=o}if(!x||(" ++"x<=3&&i.x>=100)){if(i.lx!=2)i.e+='E'+Math.floor(o);x=0;v=e=\"None\";w.mediaEvent=w.event=\"CLOSE\"}if(x==7){w.clicked=i.clk=1;t=1}if(x==5||(m.completeByCloseOffset&&(!x||i.x>=100)&&i.l>0&&o>=i.l-m." ++"completeCloseOffsetThreshold)){w.complete=i.co=1;t=1}ek=w.mediaEvent;if(ek=='MILESTONE')ek+='_'+w.milestone;else if(ek=='OFFSET_MILESTONE')ek+='_'+w.offsetMilestone;if(!i.fel[ek]) {w.eventFirstTime" ++"=true;i.fel[ek]=1}else w.eventFirstTime=false;w.timePlayed=i.t;w.segmentNum=i.sn;w.segment=i.sx;w.segmentLength=i.sl;if(m.monitor&&x!=4)m.monitor(m.s,w);if(x==0)m._delete(n);if(t&&i.tc==tc){vo=new " ++"Object;vo.contextData=new Object;vo.linkTrackVars=v;vo.linkTrackEvents=e;if(!vo.linkTrackVars)vo.linkTrackVars='';if(!vo.linkTrackEvents)vo.linkTrackEvents='';if(m.trackUsingContextData)m.bcd(vo,i)" ++";else m.bpe(vo,i,x,o);m.s.t(vo);if(i.us){i.sn=sn;i.sx=sx;i.sc=1;i.us=0}else if(i.ts>0)i.sc=0;i.e=\"\";i.lm=i.lom=0;i.ts-=Math.floor(i.ts);i.to=o;i.tc++}}}return i};m.ae=function(n,l,p,x,o,sn,sx,sl," ++"pd,b){var m=this,r=0;if(n&&(!m.autoTrackMediaLengthRequired||(length&&length>0)) &&p){if(!m.l||!m.l[n]){if(x==1||x==3){m.open(n,l,p,b);r=1}}else r=1;if(r)m.e(n,x,o,sn,sx,sl,pd)}};m.a=function(o,t){" ++"var m=this,i=o.id?o.id:o.name,n=o.name,p=0,v,c,c1,c2,xc=m.s.h,x,e,f1,f2='s_media_'+m._in+'_oc',f3='s_media_'+m._in+'_t',f4='s_media_'+m._in+'_s',f5='s_media_'+m._in+'_l',f6='s_media_'+m._in+'_m',f7" ++"='s_media_'+m._in+'_c',tcf,w;if(!i){if(!m.c)m.c=0;i='s_media_'+m._in+'_'+m.c;m.c++}if(!o.id)o.id=i;if(!o.name)o.name=n=i;if(!m.ol)m.ol=new Object;if(m.ol[i])return;m.ol[i]=o;if(!xc)xc=m.s.b;tcf=new" ++" Function('o','var e,p=0;try{if(o.versionInfo&&o.currentMedia&&o.controls)p=1}catch(e){p=0}return p');p=tcf(o);if(!p){tcf=new Function('o','var e,p=0,t;try{t=o.GetQuickTimeVersion();if(t)p=2}catch(" ++"e){p=0}return p');p=tcf(o);if(!p){tcf=new Function('o','var e,p=0,t;try{t=o.GetVersionInfo();if(t)p=3}catch(e){p=0}return p');p=tcf(o)}}v=\"var m=s_c_il[\"+m._in+\"],o=m.ol['\"+i+\"']\";if(p==1){p=" ++"'Windows Media Player '+o.versionInfo;c1=v+',n,p,l,x=-1,cm,c,mn;if(o){cm=o.currentMedia;c=o.controls;if(cm&&c){mn=cm.name?cm.name:c.URL;l=cm.duration;p=c.currentPosition;n=o.playState;if(n){if(n==8" ++")x=0;if(n==3)x=1;if(n==1||n==2||n==4||n==5||n==6)x=2;}';c2='if(x>=0)m.ae(mn,l,\"'+p+'\",x,x!=2?p:-1,0,\"\",0,0,o)}}';c=c1+c2;if(m.s.isie&&xc){x=m.s.d.createElement('script');x.language='jscript';x." ++"type='text/javascript';x.htmlFor=i;x.event='PlayStateChange(NewState)';x.defer=true;x.text=c;xc.appendChild(x);o[f6]=new Function(c1+'if(n==3){x=3;'+c2+'}setTimeout(o.'+f6+',5000)');o[f6]()}}if(p==" ++"2){p='QuickTime Player '+(o.GetIsQuickTimeRegistered()?'Pro ':'')+o.GetQuickTimeVersion();f1=f2;c=v+',n,x,t,l,p,p2,mn;if(o){mn=o.GetMovieName()?o.GetMovieName():o.GetURL();n=o.GetRate();t=o.GetTime" ++"Scale();l=o.GetDuration()/t;p=o.GetTime()/t;p2=o.'+f5+';if(n!=o.'+f4+'||p5){x=2;if(n!=0)x=1;else if(p>=l)x=0;if(p5)m.ae(mn,l,\"'+p+'\",2,p2,0,\"\",0,0,o);m.ae(mn,l,\"'+p+'\",x,x" ++"!=2?p:-1,0,\"\",0,0,o)}if(n>0&&o.'+f7+'>=10){m.ae(mn,l,\"'+p+'\",3,p,0,\"\",0,0,o);o.'+f7+'=0}o.'+f7+'++;o.'+f4+'=n;o.'+f5+'=p;setTimeout(\"'+v+';o.'+f2+'(0,0)\",500)}';o[f1]=new Function('a','b',c" ++");o[f4]=-1;o[f7]=0;o[f1](0,0)}if(p==3){p='RealPlayer '+o.GetVersionInfo();f1=n+'_OnPlayStateChange';c1=v+',n,x=-1,l,p,mn;if(o){mn=o.GetTitle()?o.GetTitle():o.GetSource();n=o.GetPlayState();l=o.GetL" ++"ength()/1000;p=o.GetPosition()/1000;if(n!=o.'+f4+'){if(n==3)x=1;if(n==0||n==2||n==4||n==5)x=2;if(n==0&&(p>=l||p==0))x=0;if(x>=0)m.ae(mn,l,\"'+p+'\",x,x!=2?p:-1,0,\"\",0,0,o)}if(n==3&&(o.'+f7+'>=10|" ++"|!o.'+f3+')){m.ae(mn,l,\"'+p+'\",3,p,0,\"\",0,0,o);o.'+f7+'=0}o.'+f7+'++;o.'+f4+'=n;';c2='if(o.'+f2+')o.'+f2+'(o,n)}';if(m.s.wd[f1])o[f2]=m.s.wd[f1];m.s.wd[f1]=new Function('a','b',c1+c2);o[f1]=new" ++" Function('a','b',c1+'setTimeout(\"'+v+';o.'+f1+'(0,0)\",o.'+f3+'?500:5000);'+c2);o[f4]=-1;if(m.s.isie)o[f3]=1;o[f7]=0;o[f1](0,0)}};m.as=new Function('e','var m=s_c_il['+m._in+'],l,n;if(m.autoTrack" ++"&&m.s.d.getElementsByTagName){l=m.s.d.getElementsByTagName(m.s.isie?\"OBJECT\":\"EMBED\");if(l)for(n=0;n=0)y+=n}retur" ++"n y};s.fl=function(x,l){return x?(''+x).substring(0,l):x};s.co=function(o){return o};s.num=function(x){x=''+x;for(var p=0;p=0)x=s.rep(x,n,\"%\"+n.charCodeAt(0).toString(16).toUpperCase())}}else if(c=='AUTO'&&('').charCodeAt){for(i=0;i127){l=0;e='';while(n||l<4){e=h.substring(n%16,n%16+1)+e;n=(n-n%16)/16;l++}y+='%u'+e}else if(c=='+')y+='%2B';else y+=escape(c)}x=y}else x=s.rep(escape(''+x),'+" ++"','%2B');if(c&&c!='AUTO'&&s.em==1&&x.indexOf('%u')<0&&x.indexOf('%U')<0){i=x.indexOf('%');while(i>=0){i++;if(h.substring(8).indexOf(x.substring(i,i+1).toUpperCase())>=0)return x.substring(0,i)+'u00" ++"'+x.substring(i);i=x.indexOf('%',i)}}}return x};s.epa=function(x){var s=this,y,tcf;if(x){x=s.rep(''+x,'+',' ');if(s.em==3){tcf=new Function('x','var y,e;try{y=decodeURIComponent(x)}catch(e){y=unesc" ++"ape(x)}return y');return tcf(x)}else return unescape(x)}return y};s.pt=function(x,d,f,a){var s=this,t=x,z=0,y,r;while(t){y=t.indexOf(d);y=y<0?t.length:y;t=t.substring(0,y);r=s[f](t,a);if(r)return r" ++";z+=y+d.length;t=x.substring(z,x.length);t=z=0)a=a.substring(0,c);c=a.indexOf('=');if(c>=0)a=a.substring(0,c);if(t.substring(" ++"0,2)=='s_')t=t.substring(2);return (t!=''&&t==a)};s.fsf=function(t,a){var s=this;if(s.pt(a,',','isf',t))s.fsg+=(s.fsg!=''?',':'')+t;return 0};s.fs=function(x,f){var s=this;s.fsg='';s.pt(x,',','fsf'" ++",f);return s.fsg};s.mpc=function(m,a){var s=this,c,l,n,v;v=s.d.visibilityState;if(!v)v=s.d.webkitVisibilityState;if(v&&v=='prerender'){if(!s.mpq){s.mpq=new Array;l=s.sp('webkitvisibilitychange,visi" ++"bilitychange',',');for(n=0;n0){c=s.mpq.shift();s[c.m].apply(s,c.a)}s.mpq=0}'),false)}}c=new Object;c.m=m;c.a=a;s.mpq.push(c);return 1}return 0};s.si=function(){var s=this,i,k,v,c=s_gi+'var s=s_gi(\"'+s.oun+'\")" ++";s.sa(\"'+s.un+'\");';for(i=0;i2?n:2;p=d.lastIndexOf('.');if(p>=0){while(p>=0&&n>1){p=d.lastIndexOf('.',p-1);n--}s.c_d=p>0&&s.pt(d,'" ++".','c_gdf',0)?d.substring(p):d}}return s.c_d};s.c_r=function(k){var s=this;k=s.ape(k);var c=' '+s.d.cookie,i=c.indexOf(' '+k+'='),e=i<0?i:c.indexOf(';',i),v=i<0?'':s.epa(c.substring(i+2+k.length,e<" ++"0?c.length:e));return v!='[[B]]'?v:''};s.c_w=function(k,v,e){var s=this,d=s.c_gd(),l=s.cookieLifetime,t;v=''+v;l=l?(''+l).toUpperCase():'';if(e&&l!='SESSION'&&l!='NONE'){t=(v!=''?parseInt(l?l:0):-6" ++"0);if(t){e=new Date;e.setTime(e.getTime()+(t*1000))}}if(k&&l!='NONE'){s.d.cookie=k+'='+s.ape(v!=''?v:'[[B]]')+'; path=/;'+(e&&l!='SESSION'?' expires='+e.toGMTString()+';':'')+(d?' domain='+d+';':''" ++");return s.c_r(k)==v}return 0};s.eh=function(o,e,r,f){var s=this,b='s_'+e+'_'+s._in,n=-1,l,i,x;if(!s.ehl)s.ehl=new Array;l=s.ehl;for(i=0;i=5&&(!s.isopera||s.apv>=7)){tc" ++"f=new Function('s','f','a','t','var e,r;try{r=s[f](a)}catch(e){r=s[t](e)}return r');r=tcf(s,f,a,t)}else{if(s.ismac&&s.u.indexOf('MSIE 4')>=0)r=s[b](a);else{s.eh(s.wd,'onerror',0,o);r=s[f](a);s.eh(s" ++".wd,'onerror',1)}}return r};s.gtfset=function(e){var s=this;return s.tfs};s.gtfsoe=new Function('e','var s=s_c_il['+s._in+'],c;s.eh(window,\"onerror\",1);s.etfs=1;c=s.t();if(c)s.d.write(c);s.etfs=0" ++";return true');s.gtfsfb=function(a){return window};s.gtfsf=function(w){var s=this,p=w.parent,l=w.location;s.tfs=w;if(p&&p.location!=l&&p.location.host==l.host){s.tfs=p;return s.gtfsf(s.tfs)}return " ++"s.tfs};s.gtfs=function(){var s=this;if(!s.tfs){s.tfs=s.wd;if(!s.etfs)s.tfs=s.cet('gtfsf',s.tfs,'gtfset',s.gtfsoe,'gtfsfb')}return s.tfs};s.mrq=function(u){var s=this,l=s.rl[u],n,r;s.rl[u]=0;if(l)fo" ++"r(n=0;n=3&&(!s.isopera||s.apv>=7)&&(s.ns6<0||s.apv>=6.1)){if(!s.rc)s.rc=new Object;if" ++"(!s.rc[un]){s.rc[un]=1;if(!s.rl)s.rl=new Object;s.rl[un]=new Array;setTimeout('if(window.s_c_il)window.s_c_il['+s._in+'].mrq(\"'+un+'\")',750)}else{l=s.rl[un];if(l){r.t=ta;r.u=un;r.r=rs;l[l.length]" ++"=r;return ''}imn+='_'+s.rc[un];s.rc[un]++}if(s.debugTracking){var d='AppMeasurement Debug: '+rs,dl=s.sp(rs,'&'),dln;for(dln=0;dln'};s.gg=function(v){var s=this;if(!s.wd['s_'+v])s.wd['s_'+v]='';return s.wd['s_'" ++"+v]};s.glf=function(t,a){if(t.substring(0,2)=='s_')t=t.substring(2);var s=this,v=s.gg(t);if(v)s[t]=v};s.gl=function(v){var s=this;if(s.pg)s.pt(v,',','glf',0)};s.rf=function(x){var s=this,y,i,j,h,p," ++"l=0,q,a,b='',c='',t;if(x&&x.length>255){y=''+x;i=y.indexOf('?');if(i>0){q=y.substring(i+1);y=y.substring(0,i);h=y.toLowerCase();j=0;if(h.substring(0,7)=='http://')j+=7;else if(h.substring(0,8)=='ht" ++"tps://')j+=8;i=h.indexOf(\"/\",j);if(i>0){h=h.substring(j,i);p=y.substring(i);y=y.substring(0,i);if(h.indexOf('google')>=0)l=',q,ie,start,search_key,word,kw,cd,';else if(h.indexOf('yahoo.co')>=0)l=" ++"',p,ei,';if(l&&q){a=s.sp(q,'&');if(a&&a.length>1){for(j=0;j0&&l.indexOf(','+t.substring(0,i)+',')>=0)b+=(b?'&':'')+t;else c+=(c?'&':'')+t}if(b&&c)q=b+'&'" ++"+c;else c=''}i=253-(q.length-c.length)-y.length;x=y+(i>0?p.substring(0,i):'')+'?'+q}}}}return x};s.s2q=function(k,v,vf,vfp,f){var s=this,qs='',sk,sv,sp,ss,nke,nk,nf,nfl=0,nfn,nfm;if(k==\"contextDat" ++"a\")k=\"c\";if(v){for(sk in v)if((!f||sk.substring(0,f.length)==f)&&v[sk]&&(!vf||vf.indexOf(','+(vfp?vfp+'.':'')+sk+',')>=0)&&(!Object||!Object.prototype||!Object.prototype[sk])){nfm=0;if(nfl)for(n" ++"fn=0;nfn0){nke=sk.indexOf('.');if(nke>0){n" ++"k=sk.substring(0,nke);nf=(f?f:'')+nk+'.';if(!nfl)nfl=new Array;nfl[nfl.length]=nf;qs+=s.s2q(nk,v,vf,vfp,nf)}else{if(typeof(sv)=='boolean'){if(sv)sv='true';else sv='false'}if(sv){if(vfp=='retrieveLi" ++"ghtData'&&f.indexOf('.contextData.')<0){sp=sk.substring(0,4);ss=sk.substring(4);if(sk=='transactionID')sk='xact';else if(sk=='channel')sk='ch';else if(sk=='campaign')sk='v0';else if(s.num(ss)){if(s" ++"p=='prop')sk='c'+ss;else if(sp=='eVar')sk='v'+ss;else if(sp=='list')sk='l'+ss;else if(sp=='hier'){sk='h'+ss;sv=sv.substring(0,255)}}}qs+='&'+s.ape(sk)+'='+s.ape(sv)}}}}}if(qs!='')qs+='&.'+k}return " ++"qs};s.hav=function(){var s=this,qs='',l,fv='',fe='',mn,i,e;if(s.lightProfileID){l=s.va_m;fv=s.lightTrackVars;if(fv)fv=','+fv+','+s.vl_mr+','}else{l=s.va_t;if(s.pe||s.linkType){fv=s.linkTrackVars;fe" ++"=s.linkTrackEvents;if(s.pe){mn=s.pe.substring(0,1).toUpperCase()+s.pe.substring(1);if(s[mn]){fv=s[mn].trackVars;fe=s[mn].trackEvents}}}if(fv)fv=','+fv+','+s.vl_l+','+s.vl_l2;if(fe){fe=','+fe+',';if" ++"(fv)fv+=',events,'}if (s.events2)e=(e?',':'')+s.events2}for(i=0;i=0)&&k!='linkName'&&k!='linkType'){if(k=='timestamp')q='ts';else if(k=='dynamicVariablePrefix')q='D';else if(k=='visitorID')q='vid';else if(k=='pageURL'){q='g';if(v.length>25" ++"5){s.pageURLRest=v.substring(255);v=v.substring(0,255);}}else if(k=='pageURLRest')q='-g';else if(k=='referrer'){q='r';v=s.fl(s.rf(v),255)}else if(k=='vmk'||k=='visitorMigrationKey')q='vmt';else if(" ++"k=='visitorMigrationServer'){q='vmf';if(s.ssl&&s.visitorMigrationServerSecure)v=''}else if(k=='visitorMigrationServerSecure'){q='vmf';if(!s.ssl&&s.visitorMigrationServer)v=''}else if(k=='charSet'){" ++"q='ce';if(v.toUpperCase()=='AUTO')v='ISO8859-1';else if(s.em==2||s.em==3)v='UTF-8'}else if(k=='visitorNamespace')q='ns';else if(k=='cookieDomainPeriods')q='cdp';else if(k=='cookieLifetime')q='cl';e" ++"lse if(k=='variableProvider')q='vvp';else if(k=='currencyCode')q='cc';else if(k=='channel')q='ch';else if(k=='transactionID')q='xact';else if(k=='campaign')q='v0';else if(k=='resolution')q='s';else" ++" if(k=='colorDepth')q='c';else if(k=='javascriptVersion')q='j';else if(k=='javaEnabled')q='v';else if(k=='cookiesEnabled')q='k';else if(k=='browserWidth')q='bw';else if(k=='browserHeight')q='bh';el" ++"se if(k=='connectionType')q='ct';else if(k=='homepage')q='hp';else if(k=='plugins')q='p';else if(k=='events'){if(e)v+=(v?',':'')+e;if(fe)v=s.fs(v,fe)}else if(k=='events2')v='';else if(k=='contextDa" ++"ta'){qs+=s.s2q('c',s[k],fv,k,0);v=''}else if(k=='lightProfileID')q='mtp';else if(k=='lightStoreForSeconds'){q='mtss';if(!s.lightProfileID)v=''}else if(k=='lightIncrementBy'){q='mti';if(!s.lightProf" ++"ileID)v=''}else if(k=='retrieveLightProfiles')q='mtsr';else if(k=='deleteLightProfiles')q='mtsd';else if(k=='retrieveLightData'){if(s.retrieveLightProfiles)qs+=s.s2q('mts',s[k],fv,k,0);v=''}else if" ++"(s.num(x)){if(b=='prop')q='c'+n;else if(b=='eVar')q='v'+n;else if(b=='list')q='l'+n;else if(b=='hier'){q='h'+n;v=s.fl(v,255)}}if(v)qs+='&'+s.ape(q)+'='+(k.substring(0,3)!='pev'?s.ape(v):v)}}return " ++"qs};s.ltdf=function(t,h){t=t?t.toLowerCase():'';h=h?h.toLowerCase():'';var qi=h.indexOf('?'),hi=h.indexOf('#');if(qi>=0){if(hi>=0&&hi=0?h.substring(0,qi):h;if(t&&h.substr" ++"ing(h.length-(t.length+1))=='.'+t)return 1;return 0};s.ltef=function(t,h){t=t?t.toLowerCase():'';h=h?h.toLowerCase():'';if(t&&h.indexOf(t)>=0)return 1;return 0};s.lt=function(h){var s=this,lft=s.li" ++"nkDownloadFileTypes,lef=s.linkExternalFilters,lif=s.linkInternalFilters;lif=lif?lif:s.wd.location.hostname;h=h.toLowerCase();if(s.trackDownloadLinks&&lft&&s.pt(lft,',','ltdf',h))return 'd';if(s.tra" ++"ckExternalLinks&&h.indexOf('#')!=0&&h.indexOf('about:')!=0&&h.indexOf('javascript:')!=0&&(lef||lif)&&(!lef||s.pt(lef,',','ltef',h))&&(!lif||!s.pt(lif,',','ltef',h)))return 'e';return ''};s.lc=new F" ++"unction('e','var s=s_c_il['+s._in+'],b=s.eh(this,\"onclick\");s.lnk=this;s.t();s.lnk=0;if(b)return this[b](e);return true');s.bcr=function(){var s=this;if(s.bct&&s.bce)s.bct.dispatchEvent(s.bce);if" ++"(s.bcf){if(typeof(s.bcf)=='function')s.bcf();else if(s.bct&&s.bct.href)s.d.location=s.bct.href}s.bct=s.bce=s.bcf=0};s.bc=new Function('e','if(e&&e.s_fe)return;var s=s_c_il['+s._in+'],f,tcf,t,n,nrs," ++"a,h;if(s.d&&s.d.all&&s.d.all.cppXYctnr)return;if(!s.bbc)s.useForcedLinkTracking=0;else if(!s.useForcedLinkTracking){s.b.removeEventListener(\"click\",s.bc,true);s.bbc=s.useForcedLinkTracking=0;retu" ++"rn}else s.b.removeEventListener(\"click\",s.bc,false);s.eo=e.srcElement?e.srcElement:e.target;nrs=s.nrs;s.t();s.eo=0;if(s.nrs>nrs&&s.useForcedLinkTracking&&e.target){a=e.target;while(a&&a!=s.b&&a.t" ++"agName.toUpperCase()!=\"A\"&&a.tagName.toUpperCase()!=\"AREA\")a=a.parentNode;if(a){h=a.href;if(h.indexOf(\"#\")==0||h.indexOf(\"about:\")==0||h.indexOf(\"javascript:\")==0)h=0;t=a.target;if(e.targ" ++"et.dispatchEvent&&h&&(!t||t==\"_self\"||t==\"_top\"||t==\"_parent\"||(s.wd.name&&t==s.wd.name))){tcf=new Function(\"s\",\"var x;try{n=s.d.createEvent(\\\\\"MouseEvents\\\\\")}catch(x){n=new MouseEv" ++"ent}return n\");n=tcf(s);if(n){tcf=new Function(\"n\",\"e\",\"var x;try{n.initMouseEvent(\\\\\"click\\\\\",e.bubbles,e.cancelable,e.view,e.detail,e.screenX,e.screenY,e.clientX,e.clientY,e.ctrlKey,e" ++".altKey,e.shiftKey,e.metaKey,e.button,e.relatedTarget)}catch(x){n=0}return n\");n=tcf(n,e);if(n){n.s_fe=1;e.stopPropagation();if (e.stopImmediatePropagation) {e.stopImmediatePropagation();}e.preven" ++"tDefault();s.bct=e.target;s.bce=n}}}}}');s.oh=function(o){var s=this,l=s.wd.location,h=o.href?o.href:'',i,j,k,p;i=h.indexOf(':');j=h.indexOf('?');k=h.indexOf('/');if(h&&(i<0||(j>=0&&i>j)||(k>=0&&i>" ++"k))){p=o.protocol&&o.protocol.length>1?o.protocol:(l.protocol?l.protocol:'');i=l.pathname.lastIndexOf('/');h=(p?p+'//':'')+(o.host?o.host:(l.host?l.host:''))+(h.substring(0,1)!='/'?l.pathname.subst" ++"ring(0,i<0?0:i)+'/':'')+h}return h};s.ot=function(o){var t=o.tagName;if(o.tagUrn||(o.scopeName&&o.scopeName.toUpperCase()!='HTML'))return '';t=t&&t.toUpperCase?t.toUpperCase():'';if(t=='SHAPE')t=''" ++";if(t){if((t=='INPUT'||t=='BUTTON')&&o.type&&o.type.toUpperCase)t=o.type.toUpperCase();else if(!t&&o.href)t='A';}return t};s.oid=function(o){var s=this,t=s.ot(o),p,c,n='',x=0;if(t&&!o.s_oid){p=o.pr" ++"otocol;c=o.onclick;if(o.href&&(t=='A'||t=='AREA')&&(!c||!p||p.toLowerCase().indexOf('javascript')<0))n=s.oh(o);else if(c){n=s.rep(s.rep(s.rep(s.rep(''+c,\"\\r\",''),\"\\n\",''),\"\\t\",''),' ','');" ++"x=2}else if(t=='INPUT'||t=='SUBMIT'){if(o.value)n=o.value;else if(o.innerText)n=o.innerText;else if(o.textContent)n=o.textContent;x=3}else if(o.src&&t=='IMAGE')n=o.src;if(n){o.s_oid=s.fl(n,100);o.s" ++"_oidt=x}}return o.s_oid};s.rqf=function(t,un){var s=this,e=t.indexOf('='),u=e>=0?t.substring(0,e):'',q=e>=0?s.epa(t.substring(e+1)):'';if(u&&q&&(','+u+',').indexOf(','+un+',')>=0){if(u!=s.un&&s.un." ++"indexOf(',')>=0)q='&u='+u+q+'&u=0';return q}return ''};s.rq=function(un){if(!un)un=this.un;var s=this,c=un.indexOf(','),v=s.c_r('s_sq'),q='';if(c<0)return s.pt(v,'&','rqf',un);return s.pt(un,',','r" ++"q',0)};s.sqp=function(t,a){var s=this,e=t.indexOf('='),q=e<0?'':s.epa(t.substring(e+1));s.sqq[q]='';if(e>=0)s.pt(t.substring(0,e),',','sqs',q);return 0};s.sqs=function(un,q){var s=this;s.squ[un]=q;" ++"return 0};s.sq=function(q){var s=this,k='s_sq',v=s.c_r(k),x,c=0;s.sqq=new Object;s.squ=new Object;s.sqq[q]='';s.pt(v,'&','sqp',0);s.pt(s.un,',','sqs',q);v='';for(x in s.squ)if(x&&(!Object||!Object." ++"prototype||!Object.prototype[x]))s.sqq[s.squ[x]]+=(s.sqq[s.squ[x]]?',':'')+x;for(x in s.sqq)if(x&&(!Object||!Object.prototype||!Object.prototype[x])&&s.sqq[x]&&(x==q||c<2)){v+=(v?'&':'')+s.sqq[x]+'" ++"='+s.ape(x);c++}return s.c_w(k,v,0)};s.wdl=new Function('e','var s=s_c_il['+s._in+'],r=true,b=s.eh(s.wd,\"onload\"),i,o,oc;if(b)r=this[b](e);for(i=0;i=0)&&oc.indexOf(\".tl(\")<0)s.eh(o,\"onclick\",0,s.lc);}return r');s.wds=function(){var s=this;if(s.apv>3&&(!s.isie||!s.i" ++"smac||s.apv>=5)){if(s.b&&s.b.attachEvent)s.b.attachEvent('onclick',s.bc);else if(s.b&&s.b.addEventListener){if(s.n&&((s.n.userAgent.indexOf('WebKit')>=0&&s.d.createEvent)||(s.n.userAgent.indexOf('F" ++"irefox/2')>=0&&s.wd.MouseEvent))){s.bbc=1;s.useForcedLinkTracking=1;s.b.addEventListener('click',s.bc,true)}s.b.addEventListener('click',s.bc,false)}else s.eh(s.wd,'onload',0,s.wdl)}};s.vs=function" ++"(x){var s=this,v=s.visitorSampling,g=s.visitorSamplingGroup,k='s_vsn_'+s.un+(g?'_'+g:''),n=s.c_r(k),e=new Date,y=e.getYear();e.setYear(y+10+(y<1900?1900:0));if(v){v*=100;if(!n){if(!s.c_w(k,x,e))ret" ++"urn 0;n=x}if(n%10000>v)return 0}return 1};s.dyasmf=function(t,m){if(t&&m&&m.indexOf(t)>=0)return 1;return 0};s.dyasf=function(t,m){var s=this,i=t?t.indexOf('='):-1,n,x;if(i>=0&&m){var n=t.substring" ++"(0,i),x=t.substring(i+1);if(s.pt(x,',','dyasmf',m))return n}return 0};s.uns=function(){var s=this,x=s.dynamicAccountSelection,l=s.dynamicAccountList,m=s.dynamicAccountMatch,n,i;s.un=s.un.toLowerCas" ++"e();if(x&&l){if(!m)m=s.wd.location.host;if(!m.toLowerCase)m=''+m;l=l.toLowerCase();m=m.toLowerCase();n=s.pt(l,';','dyasf',m);if(n)s.un=n}i=s.un.indexOf(',');s.fun=i<0?s.un:s.un.substring(0,i)};s.sa" ++"=function(un){var s=this;if(s.un&&s.mpc('sa',arguments))return;s.un=un;if(!s.oun)s.oun=un;else if((','+s.oun+',').indexOf(','+un+',')<0)s.oun+=','+un;s.uns()};s.m_i=function(n,a){var s=this,m,f=n.s" ++"ubstring(0,1),r,l,i;if(!s.m_l)s.m_l=new Object;if(!s.m_nl)s.m_nl=new Array;m=s.m_l[n];if(!a&&m&&m._e&&!m._i)s.m_a(n);if(!m){m=new Object,m._c='s_m';m._in=s.wd.s_c_in;m._il=s._il;m._il[m._in]=m;s.wd" ++".s_c_in++;m.s=s;m._n=n;m._l=new Array('_c','_in','_il','_i','_e','_d','_dl','s','n','_r','_g','_g1','_t','_t1','_x','_x1','_rs','_rr','_l');s.m_l[n]=m;s.m_nl[s.m_nl.length]=n}else if(m._r&&!m._m){r" ++"=m._r;r._m=m;l=m._l;for(i=0;i=0)x(s);else s.m_m(\"x\",n,x,e)}m=s.m_i(n,1);if(m._dl)m._dl=m._d=0;s.dlt();return f');s.m_m=function(t,n,d,e){t='_" ++"'+t;var s=this,i,x,m,f='_'+t,r=0,u;if(s.m_l&&s.m_nl)for(i=0;i=0){if(d&&e)u=m[t](d,e);else if(d)u=m" ++"[t](d);else u=m[t]()}}if(u)r=1;u=m[t+1];if(u&&!m[f]){if((''+u).indexOf('function')>=0){if(d&&e)u=m[t+1](d,e);else if(d)u=m[t+1](d);else u=m[t+1]()}}m[f]=1;if(u)r=1}}return r};s.m_ll=function(){var " ++"s=this,g=s.m_dl,i,o;if(g)for(i=0;i=0){g=n.substring(i+1);n=n.substring(0,i)}else g=\"m_\"+n;m=s.m_i(n)}if((l||(n&&!s.m_a(n,g)))&&u&&s.d&&c&&s.d.createElement){if(d){m._d=1;m._dl=1}if(ln){if(s.ssl)u=s.rep(u,'ht" ++"tp:','https:');i='s_s:'+s._in+':'+n+':'+g;b='var s=s_c_il['+s._in+'],o=s.d.getElementById(\"'+i+'\");if(s&&o){if(!o.l&&s.wd.'+g+'){o.l=1;if(o.i)clearTimeout(o.i);o.i=0;s.m_a(\"'+n+'\",\"'+g+'\"'+(e" ++"?',\"'+e+'\"':'')+')}';f2=b+'o.c++;if(!s.maxDelay)s.maxDelay=250;if(!o.l&&o.c<(s.maxDelay*2)/100)o.i=setTimeout(o.f2,100)}';f1=new Function('e',b+'}');tcf=new Function('s','c','i','u','f1','f2','va" ++"r e,o=0;try{o=s.d.createElement(\"script\");if(o){o.type=\"text/javascript\";'+(n?'o.id=i;o.defer=true;o.onload=o.onreadystatechange=f1;o.f2=f2;o.l=0;':'')+'o.src=u;c.appendChild(o);'+(n?'o.c=0;o.i" ++"=setTimeout(f2,100)':'')+'}}catch(e){o=0}return o');o=tcf(s,c,i,u,f1,f2)}else{o=new Object;o.n=n+':'+g;o.u=u;o.d=d;o.l=l;o.e=e;g=s.m_dl;if(!g)g=s.m_dl=new Array;i=0;while(i=s.maxDelay){s.dll[i]=0;s.t(vo)}else f=1}}if(s.dli)clearTimeout(s.dli);s." ++"dli=0;if(f){if(!s.dli)s.dli=setTimeout(s.dlt,s.maxDelay)}else s.dll=0');s.dl=function(vo){var s=this,d=new Date;if(!vo)vo=new Object;s.vob(vo);vo._t=d.getTime();if(!s.dll)s.dll=new Array;s.dll[s.dl" ++"l.length]=vo;if(!s.maxDelay)s.maxDelay=250;s.dlt()};s.gfid=function(){var s=this,d='0123456789ABCDEF',k='s_fid',fid=s.c_r(k),h='',l='',i,j,m=8,n=4,e=new Date,y;if(!fid||fid.indexOf('-')<0){for(i=0;" ++"i<16;i++){j=Math.floor(Math.random()*m);h+=d.substring(j,j+1);j=Math.floor(Math.random()*n);l+=d.substring(j,j+1);m=n=16}fid=h+'-'+l;}y=e.getYear();e.setYear(y+2+(y<1900?1900:0));if(!s.c_w(k,fid,e)" ++")fid=0;return fid};s.track=s.t=function(vo){var s=this,trk=1,tm=new Date,sed=Math&&Math.random?Math.floor(Math.random()*10000000000000):tm.getTime(),sess='s'+Math.floor(tm.getTime()/10800000)%10+se" ++"d,y=tm.getYear(),vt=tm.getDate()+'/'+tm.getMonth()+'/'+(y<1900?y+1900:y)+' '+tm.getHours()+':'+tm.getMinutes()+':'+tm.getSeconds()+' '+tm.getDay()+' '+tm.getTimezoneOffset(),tcf,tfs=s.gtfs(),ta=-1," ++"q='',qs='',code='',vb=new Object;if(s.mpc('t',arguments))return;s.gl(s.vl_g);s.uns();s.m_ll();if(!s.td){var tl=tfs.location,a,o,i,x='',c='',v='',p='',bw='',bh='',j='1.0',k=s.c_w('s_cc','true',0)?'Y" ++"':'N',hp='',ct='',pn=0,ps;if(String&&String.prototype){j='1.1';if(j.match){j='1.2';if(tm.setUTCDate){j='1.3';if(s.isie&&s.ismac&&s.apv>=5)j='1.4';if(pn.toPrecision){j='1.5';a=new Array;if(a.forEach" ++"){j='1.6';i=0;o=new Object;tcf=new Function('o','var e,i=0;try{i=new Iterator(o)}catch(e){}return i');i=tcf(o);if(i&&i.next){j='1.7';if(a.reduce){j='1.8';if(j.trim){j='1.8.1';if(Date.parse){j='1.8." ++"2';if(Object.create)j='1.8.5'}}}}}}}}}if(s.apv>=4)x=screen.width+'x'+screen.height;if(s.isns||s.isopera){if(s.apv>=3){v=s.n.javaEnabled()?'Y':'N';if(s.apv>=4){c=screen.pixelDepth;bw=s.wd.innerWidth" ++";bh=s.wd.innerHeight}}s.pl=s.n.plugins}else if(s.isie){if(s.apv>=4){v=s.n.javaEnabled()?'Y':'N';c=screen.colorDepth;if(s.apv>=5){bw=s.d.documentElement.offsetWidth;bh=s.d.documentElement.offsetHeig" ++"ht;if(!s.ismac&&s.b){tcf=new Function('s','tl','var e,hp=0;try{s.b.addBehavior(\"#default#homePage\");hp=s.b.isHomePage(tl)?\"Y\":\"N\"}catch(e){}return hp');hp=tcf(s,tl);tcf=new Function('s','var " ++"e,ct=0;try{s.b.addBehavior(\"#default#clientCaps\");ct=s.b.connectionType}catch(e){}return ct');ct=tcf(s)}}}else r=''}if(s.pl)while(pn=0&&oc.indexOf('" ++".s_oc(')<0)||oc.indexOf('.tl(')>=0)o=0}}if(o){if(n)ta=o.target;h=s.oh(o);i=h.indexOf('?');h=s.linkLeaveQueryString||i<0?h:h.substring(0,i);l=s.linkName;t=s.linkType?s.linkType.toLowerCase():s.lt(h)" ++";if(t&&(h||l)){s.pe='lnk_'+(t=='d'||t=='e'?t:'o');s.pev1=(h?s.ape(h):'');s.pev2=(l?s.ape(l):'')}else trk=0;if(s.trackInlineStats){if(!p){p=s.pageURL;w=0}t=s.ot(o);i=o.sourceIndex;if(o.dataset&&o.da" ++"taset.sObjectId){s.wd.s_objectID=o.dataset.sObjectId;}else if(o.getAttribute&&o.getAttribute('data-s-object-id')){s.wd.s_objectID=o.getAttribute('data-s-object-id');}else if(s.useForcedLinkTracking" ++"){s.wd.s_objectID='';oc=o.onclick?''+o.onclick:'';if(oc){var ocb=oc.indexOf('s_objectID'),oce,ocq,ocx;if(ocb>=0){ocb+=10;while(ocb=0)ocb++;if(o" ++"cb=0);s.d=document;s.b=s.d.body;if(s.d.getElementsByTagName){s.h=s.d.getElementsByTagName('HEAD');if(s.h)s.h=s.h[0]}s.n=navigator;s.u=s.n.userAgent;s.ns6=s.u.indexOf('Netscape" ++"6/');var apn=s.n.appName,v=s.n.appVersion,ie=v.indexOf('MSIE '),o=s.u.indexOf('Opera '),i;if(v.indexOf('Opera')>=0||o>0)apn='Opera';s.isie=(apn=='Microsoft Internet Explorer');s.isns=(apn=='Netscap" ++"e');s.isopera=(apn=='Opera');s.ismac=(s.u.indexOf('Mac')>=0);if(o>0)s.apv=parseFloat(s.u.substring(o+6));else if(ie>0){s.apv=parseInt(i=v.substring(ie+5));if(s.apv>3)s.apv=parseFloat(i)}else if(s.n" ++"s6>0)s.apv=parseFloat(s.u.substring(s.ns6+10));else s.apv=parseFloat(v);s.em=0;if(s.em.toPrecision)s.em=3;else if(String.fromCharCode){i=escape(String.fromCharCode(256)).toUpperCase();s.em=(i=='%C4" ++"%80'?2:(i=='%U0100'?1:0))}if(s.oun)s.sa(s.oun);s.sa(un);s.vl_l='timestamp,dynamicVariablePrefix,visitorID,fid,vmk,visitorMigrationKey,visitorMigrationServer,visitorMigrationServerSecure,ppu,charSet" ++",visitorNamespace,cookieDomainPeriods,cookieLifetime,pageName,pageURL,referrer,contextData,currencyCode,lightProfileID,lightStoreForSeconds,lightIncrementBy,retrieveLightProfiles,deleteLightProfile" ++"s,retrieveLightData';s.va_l=s.sp(s.vl_l,',');s.vl_mr=s.vl_m='timestamp,charSet,visitorNamespace,cookieDomainPeriods,cookieLifetime,contextData,lightProfileID,lightStoreForSeconds,lightIncrementBy';" ++"s.vl_t=s.vl_l+',variableProvider,channel,server,pageType,transactionID,purchaseID,campaign,state,zip,events,events2,products,linkName,linkType';var n;for(n=1;n<=75;n++){s.vl_t+=',prop'+n+',eVar'+n;" ++"s.vl_m+=',prop'+n+',eVar'+n}for(n=1;n<=5;n++)s.vl_t+=',hier'+n;for(n=1;n<=3;n++)s.vl_t+=',list'+n;s.va_m=s.sp(s.vl_m,',');s.vl_l2=',tnt,pe,pev1,pev2,pev3,resolution,colorDepth,javascriptVersion,jav" ++"aEnabled,cookiesEnabled,browserWidth,browserHeight,connectionType,homepage,pageURLRest,plugins';s.vl_t+=s.vl_l2;s.va_t=s.sp(s.vl_t,',');s.vl_g=s.vl_t+',trackingServer,trackingServerSecure,trackingS" ++"erverBase,fpCookieDomainPeriods,disableBufferedRequests,mobile,visitorSampling,visitorSamplingGroup,dynamicAccountSelection,dynamicAccountList,dynamicAccountMatch,trackDownloadLinks,trackExternalLi" ++"nks,trackInlineStats,linkLeaveQueryString,linkDownloadFileTypes,linkExternalFilters,linkInternalFilters,linkTrackVars,linkTrackEvents,linkNames,lnk,eo,lightTrackVars,_1_referrer,un';s.va_g=s.sp(s.v" ++"l_g,',');s.pg=pg;s.gl(s.vl_g);s.contextData=new Object;s.retrieveLightData=new Object;if(!ss)s.wds();if(pg){s.wd.s_co=function(o){return o};s.wd.s_gs=function(un){s_gi(un,1,1).t()};s.wd.s_dc=functi" ++"on(un){s_gi(un,1).t()}}", +w=window,l=w.s_c_il,n=navigator,u=n.userAgent,v=n.appVersion,e=v.indexOf('MSIE '),m=u.indexOf('Netscape6/'),a,i,j,x,s;if(un){un=un.toLowerCase();if(l)for(j=0;j<2;j++)for(i=0;i0&&x=='s_l'))&&(s.oun==un||(s.fs&&s.sa&&s.fs(s.oun,un)))){if(s.sa)s.sa(un);if(x=='s_c')return s}else s=0}}w.s_an='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'; +w.s_sp=new Function("x","d","var a=new Array,i=0,j;if(x){if(x.split)a=x.split(d);else if(!d)for(i=0;i=0){j=x.indexOf(d,i);a[a.length]=x.subst" ++"ring(i,j<0?x.length:j);i=j;if(i>=0)i+=d.length}}return a"); +w.s_jn=new Function("a","d","var x='',i,j=a.length;if(a&&j>0){x=a[0];if(j>1){if(a.join)x=a.join(d);else for(i=1;i0){d=x.substring(0,i);x=x.substring(i+2);l=s_sp(l,'');for(i=0;i<62;i++)l2[l[i]]=i;t=s_sp(t,'');d" ++"=s_sp(d,'~');i=0;while(i<5){v=0;if(x.indexOf(t[i])>=0) {x2=s_sp(x,t[i]);for(j=1;j=0)x=s_rep(x,w,t[i]);i++;b+=62}}}return x"); +w.s_fe=new Function("c","return s_rep(s_rep(s_rep(c,'\\\\','\\\\\\\\'),'\"','\\\\\"'),\"\\n\",\"\\\\n\")"); +w.s_fa=new Function("f","var s=f.indexOf('(')+1,e=f.indexOf(')'),a='',c;while(s>=0&&s=0){s++;d=1;q='';x=0;f=c.substring(s);a=s_fa(f);e=o=c.indexOf('{',s);e++;while(d>0){h=c.substring(e,e+1);if(q){i" ++"f(h==q&&!x)q='';if(h=='\\\\')x=x?0:1;else x=0}else{if(h=='\"'||h==\"'\")q=h;if(h=='{')d++;if(h=='}')d--}if(d>0)e++}c=c.substring(0,s)+'new Function('+(a?a+',':'')+'\"'+s_fe(c.substring(o+1,e))+'\")" ++"'+c.substring(e+1);s=c.indexOf('=function(')}return c;"); +c=s_d(c);if(e>0){a=parseInt(i=v.substring(e+5));if(a>3)a=parseFloat(i)}else if(m>0)a=parseFloat(u.substring(m+10));else a=parseFloat(v);if(a<5||v.indexOf('Opera')>=0||u.indexOf('Opera')>=0)c=s_ft(c);if(!s){s=new Object;if(!w.s_c_in){w.s_c_il=new Array;w.s_c_in=0}s._il=w.s_c_il;s._in=w.s_c_in;s._il[s._in]=s;w.s_c_in++;}s._c='s_c';(new Function("s","un","pg","ss",c))(s,un,pg,ss);return s} +function s_giqf(){var w=window,q=w.s_giq,i,t,s;if(q)for(i=0;i -1) { + + if (src.indexOf('?') > -1) { + if (src.indexOf('enablejsapi') == -1) { + src = src + '&enablejsapi=1'; + } + } else { + src = src + '?enablejsapi=1'; + } + + jQuery(this).attr('src', src); + jQuery(this).attr('id', 'ytplayer' + n); + n++ + } + } + +}); +}else{ + var iFrames = document.getElementsByTagName('iframe'); + for(i=0;i -1){ + if (src.indexOf('?') > -1) { + if (src.indexOf('enablejsapi') == -1) { + src = src + '&enablejsapi=1'; + } + }else{ + src = src + '?enablejsapi=1'; + } + + iFrames[i].setAttribute('src', src); + iFrames[i].setAttribute('id', 'ytplayer' + n); + n++ + } + } + } +} + +if (n > 0) { + /* Loads IFrame Player API Code asynchronously */ + var tag = document.createElement('script'); + tag.src = "https://www.youtube.com/iframe_api"; + var firstScriptTag = document.getElementsByTagName('script')[0]; + firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); + /* End YoutTube Player Mapping */ + + /* YouTube Player Mapping (https://developers.google.com/youtube/iframe_api_reference) */ + var playerInfoList = new Array(); + + if (document.getElementsByTagName('iframe')) { + for (i = 0; i < document.getElementsByTagName('iframe').length; i++) { + if (document.getElementsByTagName('iframe')[i].id.indexOf('ytplayer') > -1) { + playerInfoList.push(document.getElementsByTagName('iframe')[i]); + } + } + } + + var players = new Array(); + window.playersaem = players; + window.onYouTubeIframeAPIReady = function () { + for (x = 0; x < playerInfoList.length; x++) { + players[x] = new YT.Player(playerInfoList[x], { + events: { + onStateChange: onPlayerStateChange + } + }); + } + } + + //Player state change handler and video analytics tracker + function onPlayerStateChange(event) { + + var videoPlayer = "YouTube"; + var mediaOffset = Math.floor(event.target.getCurrentTime()); + var mediaLength = Math.floor(event.target.getDuration()); + console.log("event: "+event.data); + console.log("YT.PlayerState.PLAYING: "+YT.PlayerState.PLAYING); + console.log("YT.PlayerState.PAUSED: "+YT.PlayerState.PAUSED); + console.log("mediaOffset: "+mediaOffset); + console.log("media length: "+mediaLength) + var videoTitle = event.target.getVideoData().title; + + //console.log("media length: "+mediaLength); + //console.log("mediaOffset: "+mediaOffset); + //console.log("event.data: "+event.data); + //console.log("YT.PlayerState.PLAYING: "+YT.PlayerState.PLAYING); + //console.log("YT.PlayerState.PAUSED: "+YT.PlayerState.PAUSED); + //console.log("YT.PlayerState.BUFFERING: "+YT.PlayerState.BUFFERING); + //console.log("YT.PlayerState.ENDED: "+YT.PlayerState.ENDED); + + //wb.Media.playerName = videoPlayer; + /* + if (event.data == YT.PlayerState.PLAYING && mediaLength == 0) { + videoContentType = "live:youtube video"; + wb.media.trackSeconds = 60; + wb.Media.open(videoTitle, mediaLength, videoPlayer); + console.log("60 seconds tracking set"); + }*/ + if (event.data == 3 && mediaOffset == 0 && mediaLength == 0) { + videoContentType = "live:youtube video"; + wb.Media.trackSeconds = 60; + wb.Media.open(videoTitle, mediaLength, videoPlayer); + wb.Media.play(videoTitle, mediaOffset); + //console.log("60 seconds tracking set"); + } + + if (event.data == YT.PlayerState.PLAYING) { + if (mediaOffset == 0 && mediaLength > 0) { + videoContentType = "replay:youtube video"; + wb.Media.segmentByMilestones = true; + wb.Media.trackMilestones = '25,50,75'; + //console.log("milestone tracking set"); + wb.Media.open(videoTitle, mediaLength, videoPlayer); + wb.Media.play(videoTitle, mediaOffset); + _satellite.getVar('FBPixelVideoReplay'); + _satellite.getVar('TwitterPixelVideoReplay'); + _satellite.getVar('GAdwordsTagVideoReplay'); + } else { + wb.Media.play(videoTitle, mediaOffset); + }; + }else if (event.data == YT.PlayerState.PAUSED) { + wb.Media.stop(videoTitle, mediaOffset); + }else if (event.data == YT.PlayerState.BUFFERING) { + wb.Media.stop(videoTitle, mediaOffset); + }else if (event.data == YT.PlayerState.ENDED) { + wb.Media.stop(videoTitle, mediaOffset); + wb.Media.close(videoTitle); + mediaOffset = 0; + } + } +} +}); diff --git a/code/China _ Data_files/satellite-5a0b584c64746d703f006e37.js.download b/code/China _ Data_files/satellite-5a0b584c64746d703f006e37.js.download new file mode 100644 index 00000000..9d4ecb4d --- /dev/null +++ b/code/China _ Data_files/satellite-5a0b584c64746d703f006e37.js.download @@ -0,0 +1,77 @@ +_satellite.pushAsyncScript(function(event, target, $variables){ + if (typeof kWidget !== "undefined") { + kWidget.addReadyCallback(function (playerId) { + var kdp = document.getElementById(playerId); + + //console.log("player "+kdp); + //console.log("Name "+kdp.evaluate('{mediaProxy.entry.name}')); + //console.log("Duration "+kdp.evaluate('{duration}')); + //console.log("Current Time "+kdp.evaluate('{video.player.currentTime}')); + /* + kdp.kBind('playerStateChange', function (event) { + console.log("event "+event); + kulturaPlayerHandler("playing", kdp.evaluate('{mediaProxy.entry.name}'), kdp.evaluate('{duration}'), kdp.evaluate('{video.player.currentTime}')); + });*/ + kdp.kBind("playerPlayed", function (MediaPlayerState) { + kulturaPlayerHandler("playing", kdp.evaluate('{mediaProxy.entry.name}'), kdp.evaluate('{duration}'), kdp.evaluate('{video.player.currentTime}')); + }); + kdp.kBind("seek", function (MediaPlayerState) { + kulturaPlayerHandler("seeking", kdp.evaluate('{mediaProxy.entry.name}'), kdp.evaluate('{duration}'), kdp.evaluate('{video.player.currentTime}')); + }); + kdp.kBind("seeked", function (MediaPlayerState) { + kulturaPlayerHandler("seeked", kdp.evaluate('{mediaProxy.entry.name}'), kdp.evaluate('{duration}'), kdp.evaluate('{video.player.currentTime}')); + }); + kdp.kBind("playerPaused", function (MediaPlayerState) { + kulturaPlayerHandler("paused", kdp.evaluate('{mediaProxy.entry.name}'), kdp.evaluate('{duration}'), kdp.evaluate('{video.player.currentTime}')); + }); + kdp.kBind("playerPlayEnd", function (MediaPlayerState) { + kulturaPlayerHandler("ended", kdp.evaluate('{mediaProxy.entry.name}'), kdp.evaluate('{duration}'), kdp.evaluate('{video.player.currentTime}')); + }); + }); +} + +function kulturaPlayerHandler(playerState,mediaName,videoDuration,videoCurrentTime){ + var videoPlayer = "Kaltura"; + var mediaOffset = videoCurrentTime>0?Math.floor(videoCurrentTime):0; + var mediaLength = Math.floor(videoDuration); + + wb.Media.playerName = videoPlayer; + + //console.log("mediaOffset - "+mediaOffset); + //console.log("mediaLength - "+mediaLength); + //console.log("playerState - "+playerState); + + if(playerState == "playing" && mediaLength == 0){ + videoContentType = "live:kaltura video"; + wb.Media.trackSeconds = 60; + wb.Media.open(mediaName, mediaLength, videoPlayer); + //wb.Media.play(mediaName, mediaOffset);*/ + } + + if(playerState == "playing"){ + if (mediaOffset == 0 && mediaLength > 0){ + videoContentType = "replay:kaltura video"; + wb.Media.segmentByMilestones = true; + wb.Media.trackMilestones = '25,50,75'; + //console.log("milestone tracking set"); + wb.Media.open(mediaName, mediaLength, videoPlayer); + wb.Media.play(mediaName, mediaOffset); + _satellite.getVar('FBPixelVideoReplay'); + _satellite.getVar('TwitterPixelVideoReplay'); + _satellite.getVar('GAdwordsTagVideoReplay'); + }else{ + wb.Media.play(mediaName, mediaOffset); + } + }else if(playerState == "seeking"){ + wb.Media.stop(mediaName, mediaOffset); + }else if(playerState == "seeked"){ + wb.Media.play(mediaName, mediaOffset); + }else if(playerState == "paused"){ + wb.Media.stop(mediaName, mediaOffset); + }else if(playerState == "ended"){ + wb.Media.stop(mediaName, mediaOffset); + wb.Media.close(mediaName); + mediaOffset = 0; + } +} +}); diff --git a/code/China _ Data_files/satellite-5abd109d64746d01bc00b52f.js.download b/code/China _ Data_files/satellite-5abd109d64746d01bc00b52f.js.download new file mode 100644 index 00000000..1ddc23da --- /dev/null +++ b/code/China _ Data_files/satellite-5abd109d64746d01bc00b52f.js.download @@ -0,0 +1,23 @@ +_satellite.pushAsyncScript(function(event, target, $variables){ + // +!function(f,b,e,v,n,t,s) +{if(f.fbq)return;n=f.fbq=function(){n.callMethod? +n.callMethod.apply(n,arguments):n.queue.push(arguments)}; +if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0'; +n.queue=[];t=b.createElement(e);t.async=!0; +t.src=v;s=b.getElementsByTagName(e)[0]; +s.parentNode.insertBefore(t,s)}(window,document,'script', +'https://connect.facebook.net/en_US/fbevents.js'); +fbq('init', '1458892451075570'); +fbq('track', 'PageView'); +fbq('track', 'ViewContent'); +// + +}); diff --git a/code/China _ Data_files/satellite-5abd109d64746d01bc00b530.html b/code/China _ Data_files/satellite-5abd109d64746d01bc00b530.html new file mode 100644 index 00000000..7f63d9ad --- /dev/null +++ b/code/China _ Data_files/satellite-5abd109d64746d01bc00b530.html @@ -0,0 +1,48 @@ + + + + + + + \ No newline at end of file diff --git a/code/China _ Data_files/satellite-5abd109d64746d01bc00b54e.js.download b/code/China _ Data_files/satellite-5abd109d64746d01bc00b54e.js.download new file mode 100644 index 00000000..140a2f31 --- /dev/null +++ b/code/China _ Data_files/satellite-5abd109d64746d01bc00b54e.js.download @@ -0,0 +1,11 @@ +_satellite.pushAsyncScript(function(event, target, $variables){ + +!function(e,t,n,s,u,a){e.twq||(s=e.twq=function(){s.exe?s.exe.apply(s,arguments):s.queue.push(arguments); +},s.version='1.1',s.queue=[],u=t.createElement(n),u.async=!0,u.src='//static.ads-twitter.com/uwt.js', +a=t.getElementsByTagName(n)[0],a.parentNode.insertBefore(u,a))}(window,document,'script'); +// Insert Twitter Pixel ID and Standard Event data below +twq('init','nwaxc'); +twq('track','PageView'); + + +}); diff --git a/code/China _ Data_files/satellite-5abd109d64746d01bc00b54f.js.download b/code/China _ Data_files/satellite-5abd109d64746d01bc00b54f.js.download new file mode 100644 index 00000000..531d7228 --- /dev/null +++ b/code/China _ Data_files/satellite-5abd109d64746d01bc00b54f.js.download @@ -0,0 +1,8 @@ +_satellite.pushAsyncScript(function(event, target, $variables){ + !function(e,t,n,s,u,a){e.twq||(s=e.twq=function(){s.exe?s.exe.apply(s,arguments):s.queue.push(arguments); +},s.version='1.1',s.queue=[],u=t.createElement(n),u.async=!0,u.src='//static.ads-twitter.com/uwt.js', +a=t.getElementsByTagName(n)[0],a.parentNode.insertBefore(u,a))}(window,document,'script'); +// Insert Twitter Pixel ID and Standard Event data below +twq('init','ny9zz'); +twq('track','PageView'); +}); diff --git a/code/China _ Data_files/satellite-5abd109d64746d01bc00b550.js.download b/code/China _ Data_files/satellite-5abd109d64746d01bc00b550.js.download new file mode 100644 index 00000000..0b36912d --- /dev/null +++ b/code/China _ Data_files/satellite-5abd109d64746d01bc00b550.js.download @@ -0,0 +1,9 @@ +_satellite.pushAsyncScript(function(event, target, $variables){ + !function(e,t,n,s,u,a){e.twq||(s=e.twq=function(){s.exe?s.exe.apply(s,arguments):s.queue.push(arguments); +},s.version='1.1',s.queue=[],u=t.createElement(n),u.async=!0,u.src='//static.ads-twitter.com/uwt.js', +a=t.getElementsByTagName(n)[0],a.parentNode.insertBefore(u,a))}(window,document,'script'); +// Insert Twitter Pixel ID and Standard Event data below + +twq('init','nya03'); +twq('track','PageView'); +}); diff --git a/code/China _ Data_files/satellite-5abd109d64746d01bc00b551.js.download b/code/China _ Data_files/satellite-5abd109d64746d01bc00b551.js.download new file mode 100644 index 00000000..2f095a06 --- /dev/null +++ b/code/China _ Data_files/satellite-5abd109d64746d01bc00b551.js.download @@ -0,0 +1,8 @@ +_satellite.pushAsyncScript(function(event, target, $variables){ + !function(e,t,n,s,u,a){e.twq||(s=e.twq=function(){s.exe?s.exe.apply(s,arguments):s.queue.push(arguments); +},s.version='1.1',s.queue=[],u=t.createElement(n),u.async=!0,u.src='//static.ads-twitter.com/uwt.js', +a=t.getElementsByTagName(n)[0],a.parentNode.insertBefore(u,a))}(window,document,'script'); +// Insert Twitter Pixel ID and Standard Event data below +twq('init','nyz9o'); +twq('track','PageView'); +}); diff --git a/code/China _ Data_files/satellite-5ac5fe4564746d2458008f32.js.download b/code/China _ Data_files/satellite-5ac5fe4564746d2458008f32.js.download new file mode 100644 index 00000000..2dd01b52 --- /dev/null +++ b/code/China _ Data_files/satellite-5ac5fe4564746d2458008f32.js.download @@ -0,0 +1,65 @@ +_satellite.pushAsyncScript(function(event, target, $variables){ + if(_satellite.settings.isStaging){ + if (typeof FSR!="object"){ + // Instructions: please embed this snippet directly into every page of your website template. + // For optimal performance, this must be embedded directly into the template, not referenced + // as an external file. + + // ForeSee Embed Script v2.00 + // DO NOT MODIFY BELOW THIS LINE ***************************************** + ;(function (g) { + var d = document, am = d.createElement('script'), h = d.head || d.getElementsByTagName("head")[0], fsr = 'fsReady', + aex = { + "src": "//gateway.answerscloud.com/worldbank-org/staging/gateway.min.js", + "type": "text/javascript", + "async": "true", + "data-vendor": "fs", + "data-role": "gateway" + }; + for (var attr in aex){am.setAttribute(attr, aex[attr]);}h.appendChild(am);g[fsr] = function () {var aT = '__' + fsr+ '_stk__';g[aT] = g[aT] || [];g[aT].push(arguments);}; + })(window); + // DO NOT MODIFY ABOVE THIS LINE ***************************************** + } + //ForeSee Page Level Code + var WorldBank = {lang: _satellite.getVar('SiteLanguage')}; + + fsReady(function() { + //FSR.CPPS.set('S_channel variable:',wb.channel); + FSR.CPPS.set('S_Channel Variable',_satellite.getVar('ChannelInfo').toLowerCase()); + //if (_satellite.getVar('o:subSection3')!=undefined){ + // FSR.CPPS.set('s.prop26 variable:',_satellite.getVar('o:subSection3').toLowerCase());} + }); + +} + +else { + if (typeof FSR!="object"){ + // Instructions: please embed this snippet directly into every page of your website template. + // For optimal performance, this must be embedded directly into the template, not referenced + // as an external file. + + // ForeSee Embed Script v2.00 + // DO NOT MODIFY BELOW THIS LINE ***************************************** + ;(function (g) { + var d = document, am = d.createElement('script'), h = d.head || d.getElementsByTagName("head")[0], fsr = 'fsReady', + aex = { + "src": "//gateway.answerscloud.com/worldbank-org/production/gateway.min.js", + "type": "text/javascript", + "async": "true", + "data-vendor": "fs", + "data-role": "gateway" + }; + for (var attr in aex){am.setAttribute(attr, aex[attr]);}h.appendChild(am);g[fsr] = function () {var aT = '__' + fsr + '_stk__';g[aT] = g[aT] || [];g[aT].push(arguments);}; + })(window); + // DO NOT MODIFY ABOVE THIS LINE ***************************************** +} + //ForeSee Page Level Code + var WorldBank = {lang: _satellite.getVar('SiteLanguage')}; + fsReady(function() { + //FSR.CPPS.set('S_channel variable:',wb.channel); + FSR.CPPS.set('S_Channel Variable',_satellite.getVar('ChannelInfo').toLowerCase()); + //if (_satellite.getVar('o:subSection3')!=undefined){ + // FSR.CPPS.set('s.prop26 variable',_satellite.getVar('o:subSection3').toLowerCase());} + }); +} +}); diff --git a/code/China _ Data_files/satellite-5b32978d64746d60500041fa.js.download b/code/China _ Data_files/satellite-5b32978d64746d60500041fa.js.download new file mode 100644 index 00000000..0e6c5a2a --- /dev/null +++ b/code/China _ Data_files/satellite-5b32978d64746d60500041fa.js.download @@ -0,0 +1,128 @@ +_satellite.pushAsyncScript(function(event, target, $variables){ + var n = 0; + +if(typeof JQuery != 'undefined'){ +jQuery('iframe').each(function () { + + var src = jQuery(this).attr('src'); + if (src) { + if (src.indexOf('ustream.tv') > -1) { + jQuery(this).attr('src', src); + jQuery(this).attr('id', 'UstreamIframe' + n); + n++ + } + } + +}); +}else{ + var iFrames = document.getElementsByTagName('iframe'); + for(i=0;i -1){ + iFrames[i].setAttribute('src', src); + iFrames[i].setAttribute('id', 'UstreamIframe' + n); + n++ + } + } + } +} + +if(n>0){ + /** include the ustream player API **/ + + var UstreamEmbed=function(){function a(a){return b(a)}function b(a){var b=c(a),m=function(a){function b(b){if("socialstream"!==b){if(!v)return x||(x=[]),x.push(arguments),void 0;var d=i(arguments).slice(1);d[0]&&"function"==typeof d[0]&&(y[b]||(y[b]=[]),y[b].push(d[0])),g(a,s,{cmd:b,args:d})}else if(j(window,"message",n),u=c(arguments[1]),t=h(u.getAttribute("src")),w=!0,A.length)for(var e=0,k=A.length;k>e;e++)f(A[e])}function m(){if(x){for(;x.length;)b.apply(this,x.shift());x=null}}function n(a){var b=u;b&&b.contentWindow&&b.contentWindow===a.source?r.onmessage(a):a.source===u.id&&r.onmessage(a)}function o(a){var c,d=JSON.parse(a.data);return d.cmd&&"ready"==d.cmd?(g(u,t,{cmd:"ready"}),void 0):(c=[d.cmd],c=c.concat(d.args),b.apply(this,c),void 0)}function p(){v=!0,m()}function q(){b.apply(this,arguments)}var r,s,t,u,v=!1,w=!1,x=[],y={},z={},A=[];return s=h(a.getAttribute("src")),r={host:s,callMethod:q,getProperty:function(){q.apply(this,arguments)},addListener:function(a,b){z[a]||(z[a]=[]),z[a].push(b)},removeListener:function(a,b){if(b)for(var c=0,d=z[a].length;d>c;c++)z[a][c]===b&&z[a].splice(c,1);else z[a]=null},onmessage:function(a){var b;if(s||t||A.push({origin:a.origin,data:a.data}),a.origin==s){try{b=JSON.parse(a.data)}catch(c){return}if(b.sstream)return o(a),void 0;if(b.event&&b.event.ready&&(p(),d(z,"ready")),b.event&&b.event.live===!0)return d(z,"live"),void 0;if(b.event&&b.event.live===!1)return d(z,"offline"),void 0;if(b.event&&!b.event.ready)if(k)Object.keys(b.event).forEach(function(a){d(z,a,b.event[a])});else for(var f in b.event)b.event.hasOwnProperty(f)&&d(z,f,b.event[f]);if(b.property)if(k)Object.keys(b.property).forEach(function(a){e(y,a,b.property[a])});else for(var f in b.property)b.property.hasOwnProperty(f)&&e(y,f,b.property[f])}else if(w&&a.origin==t)return o(a),void 0},destroy:function(){v=!1,s="",w=!1,t="",u=null,x=[],y={},z={},A=[],l[a.id]&&(l[a.id]=null),a=null}}}(b);return b.id||(b.id="UstreamEmbed"+Math.ceil(1e5*Math.random())),m.id=b.id,l[b.id]=m,m}function c(a){return"string"==typeof a&&(a=document.getElementById(a)),a}function d(a,b,c){for(var d in a[b])a[b].hasOwnProperty(d)&&a[b][d].call(window,b,c)}function e(a,b,c){if(a[b]){for(var d in a[b])a[b].hasOwnProperty(d)&&a[b][d].call(window,c);a[b]=null,delete a[b]}}function f(a){var b,c;for(b in l)l.hasOwnProperty(b)&&l[b]&&(c=document.getElementById(b),c&&c.contentWindow?c.contentWindow===a.source&&l[b].onmessage(a):"string"==typeof a.source&&a.source==b&&l[b].onmessage(a))}function g(a,b,c){a.contentWindow.postMessage(JSON.stringify(c),b)}function h(a){return a.indexOf("http")<0&&(a=location.protocol+a),a.match(m)[1].toString()}function i(a){return Array.prototype.slice.call(a,0)}function j(a,b,c){a.addEventListener?a.addEventListener(b,c,!1):a.attachEvent("on"+b,c)}var k="undefined"!=typeof Object.keys,l={},m=new RegExp("^(http(?:s)?://[^/]+)","im");return j(window,"message",f),window.UstreamEmbed=a}(); + + /** check for the multiple players and assign the event listners to each **/ + if (document.getElementsByTagName('iframe')) { + for (i = 0; i < document.getElementsByTagName('iframe').length; i++) { + if (document.getElementsByTagName('iframe')[i].id.indexOf('UstreamIframe') > -1) { + var iFrame = document.getElementsByTagName('iframe')[i].id; + + var viewer = UstreamEmbed(document.getElementsByTagName('iframe')[i].id); + var videoType = "channels"; + var videoTitle; + var mediaLength; + var mediaOffset = 0; + viewer.getProperty('content', function (content) { + if(content[0] === "recorded"){videoType = "videos";} + else if(content[0] === "channels"){videoType = "channels";} + var videoId = content[1]; + videoTitle = getVideoTitle(videoId,videoType)[0]; + mediaLength = getVideoTitle(videoId,videoType)[1]; + }); + + + /** set event listeners for the ustream player **/ + viewer.addListener('playing', onEmbedEvent); + viewer.addListener('finished', onEmbedEvent); + viewer.addListener('offline', onEmbedEvent); + } + } + } + + var prevEvent = ""; + var startTime=0; + + /** Ustream Media Tracking handler **/ + function onEmbedEvent(event, data){ + var videoPlayer = "ustream tv"; + + if(data && event === 'playing' && prevEvent != event){ + if(prevEvent !== "paused"){ + + if(videoType === 'channels'){ + videoContentType = "live:ustream video"; + wb.Media.trackSeconds = 60; + } + else if(videoType === 'videos'){ + videoContentType = "replay:ustream video"; + wb.Media.segmentByMilestones = true; + wb.Media.trackMilestones = '25,50,75'; + _satellite.getVar('FBPixelVideoReplay'); + _satellite.getVar('TwitterPixelVideoReplay'); + _satellite.getVar('GAdwordsTagVideoReplay'); + } + wb.Media.open(videoTitle, mediaLength, videoPlayer); + wb.Media.play(videoTitle, mediaOffset); + startTime = new Date(); + }else if(prevEvent === "paused" ){ + wb.Media.play(videoTitle, mediaOffset); + startTime = new Date(); + } + prevEvent = event; + }else if(!data && event === 'playing' && prevEvent != "paused"){ + mediaOffset += Math.round((new Date() - startTime)/1000); + wb.Media.stop(videoTitle, mediaOffset); + prevEvent = "paused"; + }else if(data && (event === 'finished' || event === 'offline')){ + mediaOffset += Math.round((new Date() - startTime)/1000); + wb.Media.stop(videoTitle, mediaOffset); + wb.Media.close(videoTitle); + mediaOffset = 0; + prevEvent = event; + } + } + /** Get the video title by calling ustream RESTful service **/ + function getVideoTitle(videoId,videoType){ + var videoTitle = videoId; + var videoLength = 0; + var xhr = new XMLHttpRequest(); + + xhr.onreadystatechange = function(){ + if(this.readyState == 4 && this.status == 200){ + var response = JSON.parse(xhr.responseText); + if(videoType === 'videos'){ + videoTitle = response.video.title; + videoLength = Math.round(response.video.length); + } + else if(videoType === 'channels'){videoTitle = response.channel.title;} + } + } + xhr.open("GET", "https://api.ustream.tv/"+videoType+"/"+videoId+".json", false); + xhr.send(); + + return [videoTitle, videoLength]; + } +} +}); diff --git a/code/China _ Data_files/satellite-5b329bb964746d604a005110.js.download b/code/China _ Data_files/satellite-5b329bb964746d604a005110.js.download new file mode 100644 index 00000000..e8dfc411 --- /dev/null +++ b/code/China _ Data_files/satellite-5b329bb964746d604a005110.js.download @@ -0,0 +1,55 @@ +_satellite.pushAsyncScript(function(event, target, $variables){ + if (document.getElementsByTagName('video').length > 0){console.log("html5 video found"); + var playerInfoList = new Array(); + + if (document.getElementsByTagName('video')) { + for (i = 0; i < document.getElementsByTagName('video').length; i++) { + //if (document.getElementsByTagName('video')[i].id.indexOf('html5player') > -1) { + playerInfoList.push(document.getElementsByTagName('video')[i]); + //} + } + } + + for (x = 0; x < playerInfoList.length; x++) { + playerInfoList[x].addEventListener("play", AnalyticsHandler); + playerInfoList[x].addEventListener("seeked", AnalyticsHandler); + playerInfoList[x].addEventListener("seeking", AnalyticsHandler); + playerInfoList[x].addEventListener("pause", AnalyticsHandler); + playerInfoList[x].addEventListener("ended", AnalyticsHandler); + } + + //HTML5 Video Event Handler and Tracker + function AnalyticsHandler(e){ + var video = e.target; + var vSrc = video.currentSrc; + //console.log("vSrc: "+vSrc); + var mediaName = vSrc.split("/")[vSrc.split("/").length-1].split(".")[0]; + var mediaLength = Math.floor(video.duration); + var mediaOffset = video.currentTime>0?Math.floor(video.currentTime):0; + var mediaPlayername = "html5 video player"; + + if(e.type === "play"){ + if(mediaOffset == 0){ + videoContentType = "replay:dynamic media video"; + wb.Media.segmentByMilestones = true; + wb.Media.trackMilestones = '25,50,75'; + wb.Media.open(mediaName,mediaLength,mediaPlayername); + wb.Media.play(mediaName,mediaOffset); + _satellite.getVar('FBPixelVideoReplay'); + _satellite.getVar('TwitterPixelVideoReplay'); + _satellite.getVar('GAdwordsTagVideoReplay'); + }else{ + wb.Media.play(mediaName,mediaOffset); + } + }else if(e.type === "seeking" || e.type === "pause"){ + wb.Media.stop(mediaName,mediaOffset); + }else if(e.type === "seeked"){ + wb.Media.play(mediaName,mediaOffset); + }else if(e.type === "ended"){ + wb.Media.stop(mediaName,mediaOffset); + wb.Media.close(mediaName); + mediaOffset = 0; + } + } +} +}); diff --git a/code/China _ Data_files/satelliteLib-efd6120a6f6ed94da49cf49e2ba626ac110c7e3c.js.download b/code/China _ Data_files/satelliteLib-efd6120a6f6ed94da49cf49e2ba626ac110c7e3c.js.download new file mode 100644 index 00000000..39e78f38 --- /dev/null +++ b/code/China _ Data_files/satelliteLib-efd6120a6f6ed94da49cf49e2ba626ac110c7e3c.js.download @@ -0,0 +1,13 @@ +!function e(t,n,i){function a(o,s){if(!n[o]){if(!t[o]){var c="function"==typeof require&&require;if(!s&&c)return c(o,!0);if(r)return r(o,!0);var l=new Error("Cannot find module '"+o+"'");throw l.code="MODULE_NOT_FOUND",l}var u=n[o]={exports:{}};t[o][0].call(u.exports,function(e){var n=t[o][1][e];return a(n||e)},u,u.exports,e,t,n,i)}return n[o].exports}for(var r="function"==typeof require&&require,o=0;o=0,S.loadTimeout=3e4,S.CORSErrors=[],S.marketingCloudServer=S.audienceManagerServer="dpm.demdex.net",S.sdidParamExpiry=30;var k=D.document,C=null,I="MC",T="MCMID",E="MCORGID",L="MCCIDH",V="MCSYNCSOP",A="MCIDTS",P="MCOPTOUT",M="A",O="MCAID",x="AAM",R="MCAAMLH",N="MCAAMB",j="NONE",B=function(e){return!Object.prototype[e]},F=g(S,z);S.FIELDS=c.FIELDS,S.cookieRead=function(e){e=encodeURIComponent(e);var t=(";"+k.cookie).split(" ").join(";"),n=t.indexOf(";"+e+"="),i=n<0?n:t.indexOf(";",n+1);return n<0?"":decodeURIComponent(t.substring(n+2+e.length,i<0?t.length:i))},S.cookieWrite=function(e,t,n){var i,a=S.cookieLifetime;if(t=""+t,a=a?(""+a).toUpperCase():"",n&&"SESSION"!==a&&"NONE"!==a){if(i=""!==t?parseInt(a||0,10):-60)(n=new Date).setTime(n.getTime()+1e3*i);else if(1===n){var r=(n=new Date).getYear();n.setYear(r+2+(r<1900?1900:0))}}else n=0;return e&&"NONE"!==a?(k.cookie=encodeURIComponent(e)+"="+encodeURIComponent(t)+"; path=/;"+(n?" expires="+n.toGMTString()+";":"")+(S.cookieDomain?" domain="+S.cookieDomain+";":""),S.cookieRead(e)===t):0},S.resetState=function(e){e?S._mergeServerState(e):b()},S._isAllowedDone=!1,S._isAllowedFlag=!1,S.isAllowed=function(){return S._isAllowedDone||(S._isAllowedDone=!0,(S.cookieRead(S.cookieName)||S.cookieWrite(S.cookieName,"T",1))&&(S._isAllowedFlag=!0)),S._isAllowedFlag},S.setMarketingCloudVisitorID=function(e){S._setMarketingCloudFields(e)},S._use1stPartyMarketingCloudServer=!1,S.getMarketingCloudVisitorID=function(e,t){if(S.isAllowed()){S.marketingCloudServer&&S.marketingCloudServer.indexOf(".demdex.net")<0&&(S._use1stPartyMarketingCloudServer=!0);var n=S._getAudienceManagerURLData("_setMarketingCloudFields"),i=n.url;return S._getRemoteField(T,i,e,t,n)}return""},S.getVisitorValues=function(e,t){var n={MCMID:{fn:S.getMarketingCloudVisitorID,args:[!0],context:S},MCOPTOUT:{fn:S.isOptedOut,args:[void 0,!0],context:S},MCAID:{fn:S.getAnalyticsVisitorID,args:[!0],context:S},MCAAMLH:{fn:S.getAudienceManagerLocationHint,args:[!0],context:S},MCAAMB:{fn:S.getAudienceManagerBlob,args:[!0],context:S}},i=t&&t.length?U.pluck(n,t):n;s(i,e)},S._currentCustomerIDs={},S._customerIDsHashChanged=!1,S._newCustomerIDsHash="",S.setCustomerIDs=function(e){function t(){S._customerIDsHashChanged=!1}if(S.isAllowed()&&e){var n,i;for(n in S._readVisitor(),e)if(B(n)&&(i=e[n]))if("object"==typeof i){var a={};i.id&&(a.id=i.id),null!=i.authState&&(a.authState=i.authState),S._currentCustomerIDs[n]=a}else S._currentCustomerIDs[n]={id:i};var r=S.getCustomerIDs(),o=S._getField(L),s="";for(n in o||(o=0),r)B(n)&&(s+=(s?"|":"")+n+"|"+((i=r[n]).id?i.id:"")+(i.authState?i.authState:""));S._newCustomerIDsHash=S._hash(s),S._newCustomerIDsHash!==o&&(S._customerIDsHashChanged=!0,S._mapCustomerIDs(t))}},S.getCustomerIDs=function(){S._readVisitor();var e,t,n={};for(e in S._currentCustomerIDs)B(e)&&(t=S._currentCustomerIDs[e],n[e]||(n[e]={}),t.id&&(n[e].id=t.id),null!=t.authState?n[e].authState=t.authState:n[e].authState=_.AuthState.UNKNOWN);return n},S.setAnalyticsVisitorID=function(e){S._setAnalyticsFields(e)},S.getAnalyticsVisitorID=function(e,t,n){if(!U.isTrackingServerPopulated()&&!n)return S._callCallback(e,[""]),"";if(S.isAllowed()){var i="";if(n||(i=S.getMarketingCloudVisitorID(function(){S.getAnalyticsVisitorID(e,!0)})),i||n){var a=n?S.marketingCloudServer:S.trackingServer,r="";S.loadSSL&&(n?S.marketingCloudServerSecure&&(a=S.marketingCloudServerSecure):S.trackingServerSecure&&(a=S.trackingServerSecure));var o={};if(a){var s="http"+(S.loadSSL?"s":"")+"://"+a+"/id",c="d_visid_ver="+S.version+"&mcorgid="+encodeURIComponent(S.marketingCloudOrgID)+(i?"&mid="+encodeURIComponent(i):"")+(S.idSyncDisable3rdPartySyncing||S.disableThirdPartyCookies?"&d_coppa=true":""),l=["s_c_il",S._in,"_set"+(n?"MarketingCloud":"Analytics")+"Fields"];r=s+"?"+c+"&callback=s_c_il%5B"+S._in+"%5D._set"+(n?"MarketingCloud":"Analytics")+"Fields",o.corsUrl=s+"?"+c,o.callback=l}return o.url=r,S._getRemoteField(n?T:O,r,e,t,o)}}return""},S.getAudienceManagerLocationHint=function(e,t){if(S.isAllowed()&&S.getMarketingCloudVisitorID(function(){S.getAudienceManagerLocationHint(e,!0)})){var n=S._getField(O);if(!n&&U.isTrackingServerPopulated()&&(n=S.getAnalyticsVisitorID(function(){S.getAudienceManagerLocationHint(e,!0)})),n||!U.isTrackingServerPopulated()){var i=S._getAudienceManagerURLData(),a=i.url;return S._getRemoteField(R,a,e,t,i)}}return""},S.getLocationHint=S.getAudienceManagerLocationHint,S.getAudienceManagerBlob=function(e,t){if(S.isAllowed()&&S.getMarketingCloudVisitorID(function(){S.getAudienceManagerBlob(e,!0)})){var n=S._getField(O);if(!n&&U.isTrackingServerPopulated()&&(n=S.getAnalyticsVisitorID(function(){S.getAudienceManagerBlob(e,!0)})),n||!U.isTrackingServerPopulated()){var i=S._getAudienceManagerURLData(),a=i.url;return S._customerIDsHashChanged&&S._setFieldExpire(N,-1),S._getRemoteField(N,a,e,t,i)}}return""},S._supplementalDataIDCurrent="",S._supplementalDataIDCurrentConsumed={},S._supplementalDataIDLast="",S._supplementalDataIDLastConsumed={},S.getSupplementalDataID=function(e,t){S._supplementalDataIDCurrent||t||(S._supplementalDataIDCurrent=S._generateID(1));var n=S._supplementalDataIDCurrent;return S._supplementalDataIDLast&&!S._supplementalDataIDLastConsumed[e]?(n=S._supplementalDataIDLast,S._supplementalDataIDLastConsumed[e]=!0):n&&(S._supplementalDataIDCurrentConsumed[e]&&(S._supplementalDataIDLast=S._supplementalDataIDCurrent,S._supplementalDataIDLastConsumed=S._supplementalDataIDCurrentConsumed,S._supplementalDataIDCurrent=n=t?"":S._generateID(1),S._supplementalDataIDCurrentConsumed={}),n&&(S._supplementalDataIDCurrentConsumed[e]=!0)),n},S.getOptOut=function(e,t){if(S.isAllowed()){var n=S._getAudienceManagerURLData("_setMarketingCloudFields"),i=n.url;return S._getRemoteField(P,i,e,t,n)}return""},S.isOptedOut=function(e,t,n){if(S.isAllowed()){t||(t=_.OptOut.GLOBAL);var i=S.getOptOut(function(n){var i=n===_.OptOut.GLOBAL||n.indexOf(t)>=0;S._callCallback(e,[i])},n);return i?i===_.OptOut.GLOBAL||i.indexOf(t)>=0:null}return!1},S._fields=null,S._fieldsExpired=null,S._hash=function(e){var t,n=0;if(e)for(t=0;t0;)S._callCallback(n.shift(),t)}},S._addQuerystringParam=function(e,t,n,i){var a=encodeURIComponent(t)+"="+encodeURIComponent(n),r=U.parseHash(e),o=U.hashlessUrl(e);if(-1===o.indexOf("?"))return o+"?"+a+r;var s=o.split("?"),c=s[0]+"?",l=s[1];return c+U.addQueryParamAtLocation(l,a,i)+r},S._extractParamFromUri=function(e,t){var n=new RegExp("[\\?&#]"+t+"=([^&#]*)").exec(e);if(n&&n.length)return decodeURIComponent(n[1])},S._parseAdobeMcFromUrl=a(m.ADOBE_MC),S._parseAdobeMcSdidFromUrl=a(m.ADOBE_MC_SDID),S._attemptToPopulateSdidFromUrl=function(t){var n=S._parseAdobeMcSdidFromUrl(t),i=1e9;n&&n.TS&&(i=U.getTimestampInSeconds()-n.TS),n&&n.SDID&&n[E]===e&&im.ADOBE_MC_TTL_IN_MIN||t[E]!==e)return;v(t)}},S._mergeServerState=function(e){function t(e){U.isObject(e)&&S.setCustomerIDs(e)}function n(e){return U.isObject(e)?e:JSON.parse(e)}if(e)try{if((e=n(e))[S.marketingCloudOrgID]){var i=e[S.marketingCloudOrgID];t(i.customerIDs),b(i.sdid)}}catch(e){throw new Error("`serverState` has an invalid format.")}},S._timeout=null,S._loadData=function(e,t,n,i){var a="d_fieldgroup";t=S._addQuerystringParam(t,a,e,1),i.url=S._addQuerystringParam(i.url,a,e,1),i.corsUrl=S._addQuerystringParam(i.corsUrl,a,e,1),q.fieldGroupObj[e]=!0,i===Object(i)&&i.corsUrl&&"XMLHttpRequest"===F.corsMetadata.corsType&&F.fireCORS(i,n,e)},S._clearTimeout=function(e){null!=S._timeout&&S._timeout[e]&&(clearTimeout(S._timeout[e]),S._timeout[e]=0)},S._settingsDigest=0,S._getSettingsDigest=function(){if(!S._settingsDigest){var e=S.version;S.audienceManagerServer&&(e+="|"+S.audienceManagerServer),S.audienceManagerServerSecure&&(e+="|"+S.audienceManagerServerSecure),S._settingsDigest=S._hash(e)}return S._settingsDigest},S._readVisitorDone=!1,S._readVisitor=function(){if(!S._readVisitorDone){S._readVisitorDone=!0;var e,t,n,i,a,r,o=S._getSettingsDigest(),s=!1,c=S.cookieRead(S.cookieName),l=new Date;if(null==S._fields&&(S._fields={}),c&&"T"!==c)for((c=c.split("|"))[0].match(/^[\-0-9]+$/)&&(parseInt(c[0],10)!==o&&(s=!0),c.shift()),c.length%2==1&&c.pop(),e=0;e1?(a=parseInt(t[1],10),r=t[1].indexOf("s")>0):(a=0,r=!1),s&&(n===L&&(i=""),a>0&&(a=l.getTime()/1e3-60)),n&&i&&(S._setField(n,i,1),a>0&&(S._fields["expire"+n]=a+(r?"s":""),(l.getTime()>=1e3*a||r&&!S.cookieRead(S.sessionCookieName))&&(S._fieldsExpired||(S._fieldsExpired={}),S._fieldsExpired[n]=!0)));!S._getField(O)&&U.isTrackingServerPopulated()&&((c=S.cookieRead("s_vi"))&&((c=c.split("|")).length>1&&c[0].indexOf("v1")>=0&&((e=(i=c[1]).indexOf("["))>=0&&(i=i.substring(0,e)),i&&i.match(m.VALID_VISITOR_ID_REGEX)&&S._setField(O,i))))}},S._appendVersionTo=function(e){var t="vVersion|"+S.version,n=e?S._getCookieVersion(e):null;return n?d.areVersionsDifferent(n,S.version)&&(e=e.replace(m.VERSION_REGEX,t)):e+=(e?"|":"")+t,e},S._writeVisitor=function(){var e,t,n=S._getSettingsDigest();for(e in S._fields)B(e)&&S._fields[e]&&"expire"!==e.substring(0,6)&&(t=S._fields[e],n+=(n?"|":"")+e+(S._fields["expire"+e]?"-"+S._fields["expire"+e]:"")+"|"+t);n=S._appendVersionTo(n),S.cookieWrite(S.cookieName,n,1)},S._getField=function(e,t){return null==S._fields||!t&&S._fieldsExpired&&S._fieldsExpired[e]?null:S._fields[e]},S._setField=function(e,t,n){null==S._fields&&(S._fields={}),S._fields[e]=t,n||S._writeVisitor()},S._getFieldList=function(e,t){var n=S._getField(e,t);return n?n.split("*"):null},S._setFieldList=function(e,t,n){S._setField(e,t?t.join("*"):"",n)},S._getFieldMap=function(e,t){var n=S._getFieldList(e,t);if(n){var i,a={};for(i=0;i0?e.substr(t):""},hashlessUrl:function(e){var t=e.indexOf("#");return t>0?e.substr(0,t):e},addQueryParamAtLocation:function(e,t,n){var i=e.split("&");return n=null!=n?n:i.length,i.splice(n,0,t),i.join("&")},isFirstPartyAnalyticsVisitorIDCall:function(e,t,n){return e===O&&(t||(t=S.trackingServer),n||(n=S.trackingServerSecure),!("string"!=typeof(i=S.loadSSL?n:t)||!i.length)&&i.indexOf("2o7.net")<0&&i.indexOf("omtrdc.net")<0);var i},isObject:function(e){return Boolean(e&&e===Object(e))},removeCookie:function(e){document.cookie=encodeURIComponent(e)+"=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;"+(S.cookieDomain?" domain="+S.cookieDomain+";":"")},isTrackingServerPopulated:function(){return!!S.trackingServer||!!S.trackingServerSecure},getTimestampInSeconds:function(){return Math.round((new Date).getTime()/1e3)},parsePipeDelimetedKeyValues:function(e){return e.split("|").reduce(function(e,t){var n=t.split("=");return e[n[0]]=decodeURIComponent(n[1]),e},{})},generateRandomString:function(e){e=e||5;for(var t="",n="abcdefghijklmnopqrstuvwxyz0123456789";e--;)t+=n[Math.floor(Math.random()*n.length)];return t},parseBoolean:function(e){return"true"===e||"false"!==e&&null},replaceMethodsWithFunction:function(e,t){for(var n in e)e.hasOwnProperty(n)&&"function"==typeof e[n]&&(e[n]=t);return e},pluck:function(e,t){return t.reduce(function(t,n){return e[n]&&(t[n]=e[n]),t},Object.create(null))}};S._helpers=U;var H=h(S,_);S._destinationPublishing=H,S.timeoutMetricsLog=[];var z,q={isClientSideMarketingCloudVisitorID:null,MCIDCallTimedOut:null,AnalyticsIDCallTimedOut:null,AAMIDCallTimedOut:null,fieldGroupObj:{},setState:function(e,t){switch(e){case I:!1===t?!0!==this.MCIDCallTimedOut&&(this.MCIDCallTimedOut=!1):this.MCIDCallTimedOut=t;break;case M:!1===t?!0!==this.AnalyticsIDCallTimedOut&&(this.AnalyticsIDCallTimedOut=!1):this.AnalyticsIDCallTimedOut=t;break;case x:!1===t?!0!==this.AAMIDCallTimedOut&&(this.AAMIDCallTimedOut=!1):this.AAMIDCallTimedOut=t}}};S.isClientSideMarketingCloudVisitorID=function(){return q.isClientSideMarketingCloudVisitorID},S.MCIDCallTimedOut=function(){return q.MCIDCallTimedOut},S.AnalyticsIDCallTimedOut=function(){return q.AnalyticsIDCallTimedOut},S.AAMIDCallTimedOut=function(){return q.AAMIDCallTimedOut},S.idSyncGetOnPageSyncInfo=function(){return S._readVisitor(),S._getField(V)},S.idSyncByURL=function(e){var t=w(e||{});if(t.error)return t.error;var n,i,a=e.url,r=encodeURIComponent,o=H;return a=a.replace(/^https:/,"").replace(/^http:/,""),n=l.encodeAndBuildRequest(["",e.dpid,e.dpuuid||""],","),i=["ibs",r(e.dpid),"img",r(a),t.ttl,"",n],o.addMessage(i.join("|")),o.requestToProcess(),"Successfully queued"},S.idSyncByDataSource=function(e){return e===Object(e)&&"string"==typeof e.dpuuid&&e.dpuuid.length?(e.url="//dpm.demdex.net/ibs:dpid="+e.dpid+"&dpuuid="+e.dpuuid,S.idSyncByURL(e)):"Error: config or config.dpuuid is empty"},S._getCookieVersion=function(e){e=e||S.cookieRead(S.cookieName);var t=m.VERSION_REGEX.exec(e);return t&&t.length>1?t[1]:null},S._resetAmcvCookie=function(e){var t=S._getCookieVersion();t&&!d.isLessThan(t,e)||U.removeCookie(S.cookieName)},S.setAsCoopSafe=function(){C=!0},S.setAsCoopUnsafe=function(){C=!1},S.init=function(){function n(){if(t&&"object"==typeof t){for(var e in S.configs=Object.create(null),t)B(e)&&(S[e]=t[e],S.configs[e]=t[e]);S.idSyncContainerID=S.idSyncContainerID||0,C="boolean"==typeof S.isCoopSafe?S.isCoopSafe:U.parseBoolean(S.isCoopSafe),S.resetBeforeVersion&&S._resetAmcvCookie(S.resetBeforeVersion),S._attemptToPopulateIdsFromUrl(),S._attemptToPopulateSdidFromUrl(),S._readVisitor();var n=S._getField(A),i=Math.ceil((new Date).getTime()/m.MILLIS_PER_DAY);S.idSyncDisableSyncs||S.disableIdSyncs||!H.canMakeSyncIDCall(n,i)||(S._setFieldExpire(N,-1),S._setField(A,i)),S.getMarketingCloudVisitorID(),S.getAudienceManagerLocationHint(),S.getAudienceManagerBlob(),S._mergeServerState(S.serverState)}else S._attemptToPopulateIdsFromUrl(),S._attemptToPopulateSdidFromUrl()}function i(){if(!S.idSyncDisableSyncs&&!S.disableIdSyncs){H.checkDPIframeSrc();var e=function(){var e=H;e.readyToAttachIframe()&&e.attachIframe()};D.addEventListener("load",function(){_.windowLoaded=!0,e()});try{p.receiveMessage(function(e){H.receiveMessage(e.data)},H.iframeHost)}catch(e){}}}function a(){S.whitelistIframeDomains&&m.POST_MESSAGE_ENABLED&&(S.whitelistIframeDomains=S.whitelistIframeDomains instanceof Array?S.whitelistIframeDomains:[S.whitelistIframeDomains],S.whitelistIframeDomains.forEach(function(t){var n=new r(e,t),i=o(S,n);p.receiveMessage(i,t)}))}n(),i(),a()}};v.getInstance=function(e,t){function i(){var t=n.s_c_il;if(t)for(var i=0;i0&&(i=!1)),{corsType:n,corsCookiesEnabled:i}),getCORSInstance:function(){return"none"===this.corsMetadata.corsType?null:new e[this.corsMetadata.corsType]},fireCORS:function(n,i){function a(t){var i;try{if((i=JSON.parse(t))!==Object(i))return void r.handleCORSError(n,null,"Response is not JSON")}catch(e){return void r.handleCORSError(n,e,"Error parsing response as JSON")}try{for(var a=n.callback,o=e,s=0;s=r&&(e.splice(a,1),a--);return{dataPresent:o,dataValid:s}},manageSyncsSize:function(e){if(e.join("*").length>this.MAX_SYNCS_LENGTH)for(e.sort(function(e,t){return parseInt(e.split("-")[1],10)-parseInt(t.split("-")[1],10)});e.join("*").length>this.MAX_SYNCS_LENGTH;)e.shift()},fireSync:function(t,n,i,a,r,o){var s=this;if(t){if("img"===n.tag){var c,l,u,d,p=n.url,f=e.loadSSL?"https:":"http:";for(c=0,l=p.length;ci.DAYS_BETWEEN_SYNC_ID_CALLS},attachIframeASAP:function(){function e(){t.startedAttachingIframe||(l.body?t.attachIframe():setTimeout(e,30))}var t=this;e()}}}}).call(this,"undefined"!=typeof window&&"undefined"!=typeof global&&window.global===global?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"../utils/constants":14,"../utils/utils":18,"./crossDomain":8}],11:[function(e,t){function n(e){for(var t=/^\d+$/,n=0,i=e.length;na)return 1;if(a>i)return-1}return 0}function r(e,t){if(e===t)return 0;var r=e.toString().split("."),o=t.toString().split(".");return n(r.concat(o))?(i(r,o),a(r,o)):NaN}t.exports={compare:r,isLessThan:function(e,t){return r(e,t)<0},areVersionsDifferent:function(e,t){return 0!==r(e,t)},isGreaterThan:function(e,t){return r(e,t)>0},isEqual:function(e,t){return 0===r(e,t)}}},{}],12:[function(e,t){t.exports=function(e,t){function n(e){return function(n){i[e]=n,++a===r&&t(i)}}var i={},a=0,r=Object.keys(e).length;Object.keys(e).forEach(function(t){var i=e[t];if(i.fn){var a=i.args||[];a.unshift(n(t)),i.fn.apply(i.context||null,a)}})}},{}],13:[function(e,t){function n(){return{callbacks:{},add:function(e,t){this.callbacks[e]=this.callbacks[e]||[];var n=this.callbacks[e].push(t)-1;return function(){this.callbacks[e].splice(n,1)}},execute:function(e,t){if(this.callbacks[e]){t=(t=void 0===t?[]:t)instanceof Array?t:[t];try{for(;this.callbacks[e].length;){var n=this.callbacks[e].shift();"function"==typeof n?n.apply(null,t):n instanceof Array&&n[1].apply(n[0],t)}delete this.callbacks[e]}catch(e){}}},executeAll:function(e,t){(t||e&&!i.isObjectEmpty(e))&&Object.keys(this.callbacks).forEach(function(t){var n=void 0!==e[t]?e[t]:"";this.execute(t,n)},this)},hasCallbacks:function(){return Boolean(Object.keys(this.callbacks).length)}}}var i=e("./utils");t.exports=n},{"./utils":18}],14:[function(e,t){(function(e){t.exports={POST_MESSAGE_ENABLED:!!e.postMessage,DAYS_BETWEEN_SYNC_ID_CALLS:1,MILLIS_PER_DAY:864e5,ADOBE_MC:"adobe_mc",ADOBE_MC_SDID:"adobe_mc_sdid",VALID_VISITOR_ID_REGEX:/^[0-9a-fA-F\-]+$/,ADOBE_MC_TTL_IN_MIN:5,VERSION_REGEX:/vVersion\|((\d+\.)?(\d+\.)?(\*|\d+))(?=$|\|)/}}).call(this,"undefined"!=typeof window&&"undefined"!=typeof global&&window.global===global?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],15:[function(e,t,n){n.MESSAGES={HANDSHAKE:"HANDSHAKE",GETSTATE:"GETSTATE",PARENTSTATE:"PARENTSTATE"},n.STATE_KEYS_MAP={MCMID:"MCMID",MCAID:"MCAID",MCAAMB:"MCAAMB",MCAAMLH:"MCAAMLH",MCOPTOUT:"MCOPTOUT",CUSTOMERIDS:"CUSTOMERIDS"},n.ASYNC_API_MAP={MCMID:"getMarketingCloudVisitorID",MCAID:"getAnalyticsVisitorID",MCAAMB:"getAudienceManagerBlob",MCAAMLH:"getAudienceManagerLocationHint",MCOPTOUT:"getOptOut"},n.SYNC_API_MAP={CUSTOMERIDS:"getCustomerIDs"},n.ALL_APIS={MCMID:"getMarketingCloudVisitorID",MCAAMB:"getAudienceManagerBlob",MCAAMLH:"getAudienceManagerLocationHint",MCOPTOUT:"getOptOut",MCAID:"getAnalyticsVisitorID",CUSTOMERIDS:"getCustomerIDs"},n.FIELDGROUP_TO_FIELD={MC:"MCMID",A:"MCAID",AAM:"MCAAMB"},n.FIELDS={MCMID:"MCMID",MCOPTOUT:"MCOPTOUT",MCAID:"MCAID",MCAAMLH:"MCAAMLH",MCAAMB:"MCAAMB"},n.AUTH_STATE={UNKNOWN:0,AUTHENTICATED:1,LOGGED_OUT:2},n.OPT_OUT={GLOBAL:"global"}},{}],16:[function(e,t){(function(e){t.exports=function(t){var n;if(!t&&e.location&&(t=e.location.hostname),n=t)if(/^[0-9.]+$/.test(n))n="";else{var i=",ac,ad,ae,af,ag,ai,al,am,an,ao,aq,ar,as,at,au,aw,ax,az,ba,bb,be,bf,bg,bh,bi,bj,bm,bo,br,bs,bt,bv,bw,by,bz,ca,cc,cd,cf,cg,ch,ci,cl,cm,cn,co,cr,cu,cv,cw,cx,cz,de,dj,dk,dm,do,dz,ec,ee,eg,es,et,eu,fi,fm,fo,fr,ga,gb,gd,ge,gf,gg,gh,gi,gl,gm,gn,gp,gq,gr,gs,gt,gw,gy,hk,hm,hn,hr,ht,hu,id,ie,im,in,io,iq,ir,is,it,je,jo,jp,kg,ki,km,kn,kp,kr,ky,kz,la,lb,lc,li,lk,lr,ls,lt,lu,lv,ly,ma,mc,md,me,mg,mh,mk,ml,mn,mo,mp,mq,mr,ms,mt,mu,mv,mw,mx,my,na,nc,ne,nf,ng,nl,no,nr,nu,nz,om,pa,pe,pf,ph,pk,pl,pm,pn,pr,ps,pt,pw,py,qa,re,ro,rs,ru,rw,sa,sb,sc,sd,se,sg,sh,si,sj,sk,sl,sm,sn,so,sr,st,su,sv,sx,sy,sz,tc,td,tf,tg,th,tj,tk,tl,tm,tn,to,tp,tr,tt,tv,tw,tz,ua,ug,uk,us,uy,uz,va,vc,ve,vg,vi,vn,vu,wf,ws,yt,",a=n.split("."),r=a.length-1,o=r-1;if(r>1&&a[r].length<=2&&(2===a[r-1].length||i.indexOf(","+a[r]+",")<0)&&o--,o>0)for(n="";r>=o;)n=a[r]+(n?".":"")+n,r--}return n}}).call(this,"undefined"!=typeof window&&"undefined"!=typeof global&&window.global===global?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],17:[function(){Object.assign=Object.assign||function(e){for(var t,n,i=1;i4;e--){var t=document.createElement("div");if(t.innerHTML="",t.getElementsByTagName("span").length)return t=null,e;t=null}return null},n.encodeAndBuildRequest=function(e,t){return e.map(encodeURIComponent).join(t)}},{}],19:[function(e,t){t.exports=function(e){var t,n,i="0123456789",a="",r="",o=8,s=10,c=10;if(1==e){for(i+="ABCDEF",t=0;16>t;t++)n=Math.floor(Math.random()*o),a+=i.substring(n,n+1),n=Math.floor(Math.random()*o),r+=i.substring(n,n+1),o=16;return a+"-"+r}for(t=0;19>t;t++)n=Math.floor(Math.random()*s),a+=i.substring(n,n+1),0===t&&9==n?s=3:(1==t||2==t)&&10!=s&&2>n?s=10:2n?c=10:20&&E.domReady(E.bind(this.initialize,this))}function a(t){E.domReady(E.bind(function(){this.twttr=t||e.twttr,this.initialize()},this))}function r(){this.lastURL=E.URL(),this._fireIfURIChanged=E.bind(this.fireIfURIChanged,this),this._onPopState=E.bind(this.onPopState,this),this._onHashChange=E.bind(this.onHashChange,this),this._pushState=E.bind(this.pushState,this),this._replaceState=E.bind(this.replaceState,this),this.initialize()}function o(){var e=E.filter(E.rules,function(e){return 0===e.event.indexOf("dataelementchange")});this.dataElementsNames=E.map(e,function(e){return e.event.match(/dataelementchange\((.*)\)/i)[1]},this),this.initPolling()}function c(){E.addEventHandler(e,"orientationchange",c.orientationChange)}function l(){this.rules=E.filter(E.rules,function(e){return"videoplayed"===e.event.substring(0,11)}),this.eventHandler=E.bind(this.onUpdateTime,this)}function u(){this.defineEvents(),this.visibilityApiHasPriority=!0,t.addEventListener?this.setVisibilityApiPriority(!1):this.attachDetachOlderEventListeners(!0,t,"focusout");E.bindEvent("aftertoolinit",function(){E.fireEvent(E.visibility.isHidden()?"tabblur":"tabfocus")})}function d(t){t=t||E.rules,this.rules=E.filter(t,function(e){return"inview"===e.event}),this.elements=[],this.eventHandler=E.bind(this.track,this),E.addEventHandler(e,"scroll",this.eventHandler),E.addEventHandler(e,"load",this.eventHandler)}function p(){this.rules=E.filter(E.rules,function(e){return"elementexists"===e.event})}function f(e){this.delay=250,this.FB=e,E.domReady(E.bind(function(){E.poll(E.bind(this.initialize,this),this.delay,8)},this))}function g(){var e=this.eventRegex=/^hover\(([0-9]+)\)$/,t=this.rules=[];E.each(E.rules,function(n){n.event.match(e)&&t.push([Number(n.event.match(e)[1]),n.selector])})}function h(e){E.BaseTool.call(this,e),this.defineListeners(),this.beaconMethod="plainBeacon",this.adapt=new h.DataAdapters,this.dataProvider=new h.DataProvider.Aggregate}function m(e){E.BaseTool.call(this,e),this.styleElements={},this.targetPageParamsStore={}}function v(){E.BaseTool.call(this),this.asyncScriptCallbackQueue=[],this.argsForBlockingScripts=[]}function b(e){E.BaseTool.call(this,e),this.varBindings={},this.events=[],this.products=[],this.customSetupFuns=[]}function y(e){E.BaseTool.call(this,e),this.name=e.name||"Basic"}function w(e){E.BaseTool.call(this,e)}function S(e){E.BaseTool.call(this,e)}function D(e){E.BaseTool.call(this,e),this.name=e.name||"VisitorID",this.initialize()}var _,k,C,I=Object.prototype.toString,T=e._satellite&&e._satellite.override,E={initialized:!1,$data:function(e,t,i){if(e){var a="__satellite__",r=E.dataCache,o=e[a];o||(o=e[a]=E.uuid++);var s=r[o];if(s||(s=r[o]={}),i===n)return s[t];s[t]=i}},uuid:1,dataCache:{},keys:function(e){var t=[];for(var n in e)e.hasOwnProperty(n)&&t.push(n);return t},values:function(e){var t=[];for(var n in e)e.hasOwnProperty(n)&&t.push(e[n]);return t},isArray:Array.isArray||function(e){return"[object Array]"===I.apply(e)},isObject:function(e){return null!=e&&!E.isArray(e)&&"object"==typeof e},isString:function(e){return"string"==typeof e},isNumber:function(e){return"[object Number]"===I.apply(e)&&!E.isNaN(e)},isNaN:function(e){return e!=e},isRegex:function(e){return e instanceof RegExp},isLinkTag:function(e){return!(!e||!e.nodeName||"a"!==e.nodeName.toLowerCase())},each:function(e,t,n){for(var i=0,a=e.length;i";t.push(e)}if(E.isArray(e))return"["+E.map(e,function(e){return E.stringify(e,t)}).join(",")+"]";if(E.isString(e))return'"'+String(e)+'"';if(E.isObject(e)){var n=[];for(var i in e)e.hasOwnProperty(i)&&n.push(i+": "+E.stringify(e[i],t));return"{"+n.join(", ")+"}"}return String(e)},trim:function(e){return null==e?null:e.trim?e.trim():e.replace(/^ */,"").replace(/ *$/,"")},bind:function(e,t){return function(){return e.apply(t,arguments)}},throttle:function(e,t){var n=null;return function(){var i=this,a=arguments;clearTimeout(n),n=setTimeout(function(){e.apply(i,a)},t)}},domReady:function(e){function n(e){for(p=1;e=a.shift();)e()}var i,a=[],r=!1,o=t,s=o.documentElement,c=s.doScroll,l="DOMContentLoaded",u="addEventListener",d="onreadystatechange",p=/^loade|^c/.test(o.readyState);return o[u]&&o[u](l,i=function(){o.removeEventListener(l,i,r),n()},r),c&&o.attachEvent(d,i=function(){/^c/.test(o.readyState)&&(o.detachEvent(d,i),n())}),e=c?function(t){self!=top?p?t():a.push(t):function(){try{s.doScroll("left")}catch(n){return setTimeout(function(){e(t)},50)}t()}()}:function(e){p?e():a.push(e)}}(),loadScript:function(e,n){var i=t.createElement("script");E.scriptOnLoad(e,i,n),i.src=e,t.getElementsByTagName("head")[0].appendChild(i)},scriptOnLoad:function(e,t,n){function i(e){e&&E.logError(e),n&&n(e)}"onload"in t?(t.onload=function(){i()},t.onerror=function(){i(new Error("Failed to load script "+e))}):"readyState"in t&&(t.onreadystatechange=function(){var e=t.readyState;"loaded"!==e&&"complete"!==e||(t.onreadystatechange=null,i())})},loadScriptOnce:function(e,t){E.loadedScriptRegistry[e]||E.loadScript(e,function(n){n||(E.loadedScriptRegistry[e]=!0),t&&t(n)})},loadedScriptRegistry:{},loadScriptSync:function(e){t.write?E.domReadyFired?E.notify('Cannot load sync the "'+e+'" script after DOM Ready.',1):(e.indexOf('"')>-1&&(e=encodeURI(e)),t.write('')):E.notify('Cannot load sync the "'+e+'" script because "document.write" is not available',1)},pushAsyncScript:function(e){E.tools["default"].pushAsyncScript(e)},pushBlockingScript:function(e){E.tools["default"].pushBlockingScript(e)},addEventHandler:e.addEventListener?function(e,t,n){e.addEventListener(t,n,!1)}:function(e,t,n){e.attachEvent("on"+t,n)},removeEventHandler:e.removeEventListener?function(e,t,n){e.removeEventListener(t,n,!1)}:function(e,t,n){e.detachEvent("on"+t,n)},preventDefault:e.addEventListener?function(e){e.preventDefault()}:function(e){e.returnValue=!1},stopPropagation:function(e){e.cancelBubble=!0,e.stopPropagation&&e.stopPropagation()},containsElement:function(e,t){return e.contains?e.contains(t):!!(16&e.compareDocumentPosition(t))},matchesCss:function(n){function i(e,t){var n=t.tagName;return!!n&&e.toLowerCase()===n.toLowerCase()}var a=n.matchesSelector||n.mozMatchesSelector||n.webkitMatchesSelector||n.oMatchesSelector||n.msMatchesSelector;return a?function(n,i){if(i===t||i===e)return!1;try{return a.call(i,n)}catch(r){return!1}}:n.querySelectorAll?function(e,t){if(!t.parentNode)return!1;if(e.match(/^[a-z]+$/i))return i(e,t);try{for(var n=t.parentNode.querySelectorAll(e),a=n.length;a--;)if(n[a]===t)return!0}catch(r){}return!1}:function(e,t){if(e.match(/^[a-z]+$/i))return i(e,t);try{return E.Sizzle.matches(e,[t]).length>0}catch(n){return!1}}}(t.documentElement),cssQuery:(_=t,_.querySelectorAll?function(e,t){var n;try{n=_.querySelectorAll(e)}catch(i){n=[]}t(n)}:function(e,t){if(E.Sizzle){var n;try{n=E.Sizzle(e)}catch(i){n=[]}t(n)}else E.sizzleQueue.push([e,t])}),hasAttr:function(e,t){return e.hasAttribute?e.hasAttribute(t):e[t]!==n},inherit:function(e,t){var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e},extend:function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])},toArray:function(){try{var e=Array.prototype.slice;return e.call(t.documentElement.childNodes,0)[0].nodeType,function(t){return e.call(t,0)}}catch(n){return function(e){for(var t=[],n=0,i=e.length;n=n||e()||setTimeout(i,t)}var a=0;t=t||1e3,i()},escapeForHtml:function(e){return e?String(e).replace(/\&/g,"&").replace(/\/g,">").replace(/\"/g,""").replace(/\'/g,"'").replace(/\//g,"/"):e}};E.availableTools={},E.availableEventEmitters=[],E.fireOnceEvents=["condition","elementexists"],E.initEventEmitters=function(){E.eventEmitters=E.map(E.availableEventEmitters,function(e){return new e})},E.eventEmitterBackgroundTasks=function(){E.each(E.eventEmitters,function(e){"backgroundTasks"in e&&e.backgroundTasks()})},E.initTools=function(e){var t={"default":new v},n=E.settings.euCookieName||"sat_track";for(var i in e)if(e.hasOwnProperty(i)){var a,r,o;if((a=e[i]).euCookie)if("true"!==E.readCookie(n))continue;if(!(r=E.availableTools[a.engine])){var s=[];for(var c in E.availableTools)E.availableTools.hasOwnProperty(c)&&s.push(c);throw new Error("No tool engine named "+a.engine+", available: "+s.join(",")+".")}(o=new r(a)).id=i,t[i]=o}return t},E.preprocessArguments=function(e,t,n,i,a){function r(e){return i&&E.isString(e)?e.toLowerCase():e}function o(e){var c={};for(var l in e)if(e.hasOwnProperty(l)){var u=e[l];E.isObject(u)?c[l]=o(u):E.isArray(u)?c[l]=s(u,i):c[l]=r(E.replace(u,t,n,a))}return c}function s(e){for(var i=[],a=0,s=e.length;athis.keepLimit&&this.messages.shift(),this.outputEnabled&&this.echo(n,e)},getHistory:function(){return this.messages},clearHistory:function(){this.messages=[]},setOutputState:function(e){this.outputEnabled!=e&&(this.outputEnabled=e,e?this.flush():this.flushed=!1)},echo:function(t,n){e.console&&e.console[t]("SATELLITE: "+n)},flush:function(){this.flushed||(E.each(this.messages,function(e){!0!==e[2]&&(this.echo(e[0],e[1]),e[2]=!0)},this),this.flushed=!0)}},E.notify=E.bind(E.Logger.message,E.Logger),E.cleanText=function(e){return null==e?null:E.trim(e).replace(/\s+/g," ")},E.cleanText.legacy=function(e){return null==e?null:E.trim(e).replace(/\s{2,}/g," ").replace(/[^\000-\177]*/g,"")},E.text=function(e){return e.textContent||e.innerText},E.specialProperties={text:E.text,cleanText:function(e){return E.cleanText(E.text(e))}},E.getObjectProperty=function(e,t,i){for(var a,r=t.split("."),o=e,s=E.specialProperties,c=0,l=r.length;c2){var n=arguments[2];"pageview"===t?E.dataElementSafe.pageviewCache[e]=n:"session"===t?E.setCookie("_sdsat_"+e,n):"visitor"===t&&E.setCookie("_sdsat_"+e,n,730)}else{if("pageview"===t)return E.dataElementSafe.pageviewCache[e];if("session"===t||"visitor"===t)return E.readCookie("_sdsat_"+e)}},E.dataElementSafe.pageviewCache={},E.realGetDataElement=function(t){var n;return t.selector?E.hasSelector&&E.cssQuery(t.selector,function(e){if(e.length>0){var i=e[0];"text"===t.property?n=i.innerText||i.textContent:t.property in i?n=i[t.property]:E.hasAttr(i,t.property)&&(n=i.getAttribute(t.property))}}):t.queryParam?n=t.ignoreCase?E.getQueryParamCaseInsensitive(t.queryParam):E.getQueryParam(t.queryParam):t.cookie?n=E.readCookie(t.cookie):t.jsVariable?n=E.getObjectProperty(e,t.jsVariable):t.customJS?n=t.customJS():t.contextHub&&(n=t.contextHub()),E.isString(n)&&t.cleanText&&(n=E.cleanText(n)),n},E.getDataElement=function(e,t,i){if(null==(i=i||E.dataElements[e]))return E.settings.undefinedVarsReturnEmpty?"":null;var a=E.realGetDataElement(i);return a===n&&i.storeLength?a=E.dataElementSafe(e,i.storeLength):a!==n&&i.storeLength&&E.dataElementSafe(e,i.storeLength,a),a||t||(a=i["default"]||""),E.isString(a)&&i.forceLowerCase&&(a=a.toLowerCase()),a},E.getVar=function(i,a,r){var o,s,c=E.data.customVars,l=r?r.target||r.srcElement:null,u={uri:E.URI(),protocol:t.location.protocol,hostname:t.location.hostname};if(E.dataElements&&i in E.dataElements)return E.getDataElement(i);if((s=u[i.toLowerCase()])===n)if("this."===i.substring(0,5))i=i.slice(5),s=E.getObjectProperty(a,i,!0);else if("event."===i.substring(0,6))i=i.slice(6),s=E.getObjectProperty(r,i);else if("target."===i.substring(0,7))i=i.slice(7),s=E.getObjectProperty(l,i);else if("window."===i.substring(0,7))i=i.slice(7),s=E.getObjectProperty(e,i);else if("param."===i.substring(0,6))i=i.slice(6),s=E.getQueryParam(i);else if(o=i.match(/^rand([0-9]+)$/)){var d=Number(o[1]),p=(Math.random()*(Math.pow(10,d)-1)).toFixed(0);s=Array(d-p.length+1).join("0")+p}else s=E.getObjectProperty(c,i);return s},E.getVars=function(e,t,n){var i={};return E.each(e,function(e){i[e]=E.getVar(e,t,n)}),i},E.replace=function(e,t,n,i){return"string"!=typeof e?e:e.replace(/%(.*?)%/g,function(e,a){var r=E.getVar(a,t,n);return null==r?E.settings.undefinedVarsReturnEmpty?"":e:i?E.escapeForHtml(r):r})},E.escapeHtmlParams=function(e){return e.escapeHtml=!0,e},E.searchVariables=function(e,t,n){if(!e||0===e.length)return"";for(var i=[],a=0,r=e.length;a0)return!1;if(e.expired)return!1;if("inview"===s&&t.inviewDelay!==e.inviewDelay)return!1;if(!u&&(!1===e.bubbleFireIfParent||0!==i&&!1===e.bubbleFireIfChildFired))return!1;if(e.selector&&!E.matchesCss(e.selector,n))return!1;if(!E.propertiesMatch(o,n))return!1;if(null!=c)if("string"==typeof c){if(c!==n.value)return!1}else if(!c.test(n.value))return!1;if(a)try{if(!a.call(n,t,l))return E.notify('Condition for rule "'+e.name+'" not met.',1),!1}catch(p){return E.notify('Condition for rule "'+e.name+'" not met. Error: '+p.message,1),!1}if(r){var d=E.find(r,function(i){try{return!i.call(n,t,l)}catch(p){return E.notify('Condition for rule "'+e.name+'" not met. Error: '+p.message,1),!0}});if(d)return E.notify("Condition "+d.toString()+' for rule "'+e.name+'" not met.',1),!1}return!0},E.evtHandlers={},E.bindEvent=function(e,t){var n=E.evtHandlers;n[e]||(n[e]=[]),n[e].push(t)},E.whenEvent=E.bindEvent,E.unbindEvent=function(e,t){var n=E.evtHandlers;if(n[e]){var i=E.indexOf(n[e],t);n[e].splice(i,1)}},E.bindEventOnce=function(e,t){var n=function(){E.unbindEvent(e,n),t.apply(null,arguments)};E.bindEvent(e,n)},E.isVMLPoisoned=function(e){if(!e)return!1;try{e.nodeName}catch(t){if("Attribute only valid on v:image"===t.message)return!0}return!1},E.handleEvent=function(e){if(!E.$data(e,"eventProcessed")){var t=e.type.toLowerCase(),n=e.target||e.srcElement,i=0,a=E.rules,r=(E.tools,E.evtHandlers[e.type]);if(E.isVMLPoisoned(n))E.notify("detected "+t+" on poisoned VML element, skipping.",1);else{r&&E.each(r,function(t){t(e)}),n&&n.nodeName?E.notify("detected "+t+" on "+n.nodeName,1):E.notify("detected "+t,1);for(var o=n;o;o=o.parentNode){var s=!1;if(E.each(a,function(t){E.ruleMatches(t,e,o,i)&&(E.notify('Rule "'+t.name+'" fired.',1),E.fireRule(t,o,e),i++,t.bubbleStop&&(s=!0))}),s)break}E.$data(e,"eventProcessed",!0)}}},E.onEvent=t.querySelectorAll?function(e){E.handleEvent(e)}:(k=[],(C=function(e){e.selector?k.push(e):E.handleEvent(e)}).pendingEvents=k,C),E.fireEvent=function(e,t){E.onEvent({type:e,target:t})},E.registerEvents=function(e,t){for(var n=t.length-1;n>=0;n--){var i=t[n];E.$data(e,i+".tracked")||(E.addEventHandler(e,i,E.onEvent),E.$data(e,i+".tracked",!0))}},E.registerEventsForTags=function(e,n){for(var i=e.length-1;i>=0;i--)for(var a=e[i],r=t.getElementsByTagName(a),o=r.length-1;o>=0;o--)E.registerEvents(r[o],n)},E.setListeners=function(){var e=["click","submit"];E.each(E.rules,function(t){"custom"===t.event&&t.hasOwnProperty("customEvent")&&!E.contains(e,t.customEvent)&&e.push(t.customEvent)}),E.registerEvents(t,e)},E.getUniqueRuleEvents=function(){return E._uniqueRuleEvents||(E._uniqueRuleEvents=[],E.each(E.rules,function(e){-1===E.indexOf(E._uniqueRuleEvents,e.event)&&E._uniqueRuleEvents.push(e.event)})),E._uniqueRuleEvents},E.setFormListeners=function(){if(!E._relevantFormEvents){var e=["change","focus","blur","keypress"];E._relevantFormEvents=E.filter(E.getUniqueRuleEvents(),function(t){return-1!==E.indexOf(e,t)})}E._relevantFormEvents.length&&E.registerEventsForTags(["input","select","textarea","button"],E._relevantFormEvents)},E.setVideoListeners=function(){if(!E._relevantVideoEvents){var e=["play","pause","ended","volumechange","stalled","loadeddata"];E._relevantVideoEvents=E.filter(E.getUniqueRuleEvents(),function(t){return-1!==E.indexOf(e,t)})}E._relevantVideoEvents.length&&E.registerEventsForTags(["video"],E._relevantVideoEvents)},E.readStoredSetting=function(t){try{return t="sdsat_"+t,e.localStorage.getItem(t)}catch(n){return E.notify("Cannot read stored setting from localStorage: "+n.message,2),null}},E.loadStoredSettings=function(){var e=E.readStoredSetting("debug"),t=E.readStoredSetting("hide_activity");e&&(E.settings.notifications="true"===e),t&&(E.settings.hideActivity="true"===t)},E.isRuleActive=function(e,t){function n(e,t){return t=a(t,{hour:e[f](),minute:e[g]()}),Math.floor(Math.abs((e.getTime()-t.getTime())/864e5))}function i(e,t){function n(e){return 12*e[d]()+e[p]()}return Math.abs(n(e)-n(t))}function a(e,t){var n=new Date(e.getTime());for(var i in t)if(t.hasOwnProperty(i)){var a=t[i];switch(i){case"hour":n[h](a);break;case"minute":n[m](a);break;case"date":n[v](a)}}return n}function r(e,t){return 60*e[f]()+e[g]()>60*t[f]()+t[g]()}function o(e,t){return 60*e[f]()+e[g]()<60*t[f]()+t[g]()}var s=e.schedule;if(!s)return!0;var c=s.utc,l=c?"getUTCDate":"getDate",u=c?"getUTCDay":"getDay",d=c?"getUTCFullYear":"getFullYear",p=c?"getUTCMonth":"getMonth",f=c?"getUTCHours":"getHours",g=c?"getUTCMinutes":"getMinutes",h=c?"setUTCHours":"setHours",m=c?"setUTCMinutes":"setMinutes",v=c?"setUTCDate":"setDate";if(t=t||new Date,s.repeat){if(r(s.start,t))return!1;if(o(s.end,t))return!1;if(t=s.endRepeat)return!1;if("daily"===s.repeat){if(s.repeatEvery)if(n(s.start,t)%s.repeatEvery!=0)return!1}else if("weekly"===s.repeat){if(s.days){if(!E.contains(s.days,t[u]()))return!1}else if(s.start[u]()!==t[u]())return!1;if(s.repeatEvery)if(n(s.start,t)%(7*s.repeatEvery)!=0)return!1}else if("monthly"===s.repeat){if(s.repeatEvery)if(i(s.start,t)%s.repeatEvery!=0)return!1;if(s.nthWeek&&s.mthDay){if(s.mthDay!==t[u]())return!1;var b=Math.floor((t[l]()-t[u]()+1)/7);if(s.nthWeek!==b)return!1}else if(s.start[l]()!==t[l]())return!1}else if("yearly"===s.repeat){if(s.start[p]()!==t[p]())return!1;if(s.start[l]()!==t[l]())return!1;if(s.repeatEvery)if(Math.abs(s.start[d]()-t[d]())%s.repeatEvery!=0)return!1}}else{if(s.start>t)return!1;if(s.end0&&E.equalsIgnoreCase(e.substring(n),t)},E.getVisitorId=function(){var e=E.getToolsByType("visitor_id");return 0===e.length?null:e[0].getInstance()},E.URI=function(){var e=t.location.pathname+t.location.search;return E.settings.forceLowerCase&&(e=e.toLowerCase()),e},E.URL=function(){var e=t.location.href;return E.settings.forceLowerCase&&(e=e.toLowerCase()),e},E.filterRules=function(){function e(e){return!!E.isRuleActive(e)}E.rules=E.filter(E.rules,e),E.pageLoadRules=E.filter(E.pageLoadRules,e)},E.ruleInScope=function(e,n){function i(e,t){function n(e){return t.match(e)}var i=e.include,r=e.exclude;if(i&&a(i,t))return!0;if(r){if(E.isString(r)&&r===t)return!0;if(E.isArray(r)&&E.any(r,n))return!0;if(E.isRegex(r)&&n(r))return!0}return!1}function a(e,t){function n(e){return t.match(e)}return!(!E.isString(e)||e===t)||(!(!E.isArray(e)||E.any(e,n))||!(!E.isRegex(e)||n(e)))}n=n||t.location;var r=e.scope;if(!r)return!0;var o=r.URI,s=r.subdomains,c=r.domains,l=r.protocols,u=r.hashes;return(!o||!i(o,n.pathname+n.search))&&((!s||!i(s,n.hostname))&&((!c||!a(c,n.hostname))&&((!l||!a(l,n.protocol))&&(!u||!i(u,n.hash)))))},E.backgroundTasks=function(){new Date;E.setFormListeners(),E.setVideoListeners(),E.loadStoredSettings(),E.registerNewElementsForDynamicRules(),E.eventEmitterBackgroundTasks();new Date},E.registerNewElementsForDynamicRules=function(){function e(t,n){var i=e.cache[t];if(i)return n(i);E.cssQuery(t,function(i){e.cache[t]=i,n(i)})}e.cache={},E.each(E.dynamicRules,function(t){e(t.selector,function(e){E.each(e,function(e){var n="custom"===t.event?t.customEvent:t.event;E.$data(e,"dynamicRules.seen."+n)||(E.$data(e,"dynamicRules.seen."+n,!0),E.propertiesMatch(t.property,e)&&E.registerEvents(e,[n]))})})})},E.ensureCSSSelector=function(){t.querySelectorAll?E.hasSelector=!0:(E.loadingSizzle=!0,E.sizzleQueue=[],E.loadScript(E.basePath()+"selector.js",function(){if(E.Sizzle){var e=E.onEvent.pendingEvents;E.each(e,function(e){E.handleEvent(e)},this),E.onEvent=E.handleEvent,E.hasSelector=!0,delete E.loadingSizzle,E.each(E.sizzleQueue,function(e){E.cssQuery(e[0],e[1])}),delete E.sizzleQueue}else E.logError(new Error("Failed to load selector.js"))}))},E.errors=[],E.logError=function(e){E.errors.push(e),E.notify(e.name+" - "+e.message,5)},E.pageBottom=function(){E.initialized&&(E.pageBottomFired=!0,E.firePageLoadEvent("pagebottom"))},E.stagingLibraryOverride=function(){if("true"===E.readStoredSetting("stagingLibrary")){for(var e,n,i,a=t.getElementsByTagName("script"),r=/^(.*)satelliteLib-([a-f0-9]{40})\.js$/,o=/^(.*)satelliteLib-([a-f0-9]{40})-staging\.js$/,s=0,c=a.length;s');else{var u=t.createElement("script");u.src=l,t.head.appendChild(u)}return!0}}return!1},E.checkAsyncInclude=function(){e.satellite_asyncLoad&&E.notify('You may be using the async installation of Satellite. In-page HTML and the "pagebottom" event will not work. Please update your Satellite installation for these features.',5)},E.hasMultipleDomains=function(){return!!E.settings.domainList&&E.settings.domainList.length>1},E.handleOverrides=function(){if(T)for(var e in T)T.hasOwnProperty(e)&&(E.data[e]=T[e])},E.privacyManagerParams=function(){var e={};E.extend(e,E.settings.privacyManagement);var t=[];for(var n in E.tools)if(E.tools.hasOwnProperty(n)){var i=E.tools[n],a=i.settings;if(!a)continue;"sc"===a.engine&&t.push(i)}var r=E.filter(E.map(t,function(e){return e.getTrackingServer()}),function(e){return null!=e});e.adobeAnalyticsTrackingServers=r;for(var o=["bannerText","headline","introductoryText","customCSS"],s=0;si+a||n+t=0;e--)this.checkInView(this.elements[e])},processRules:function(e,t,n){var i=this.rules;n&&(i=E.filter(this.rules,function(e){return e.inviewDelay==n})),E.each(i,function(n,i){var a=n.inviewDelay?"viewed_"+n.inviewDelay:"viewed",r="inview_timeout_id_"+i;E.$data(e,a)||E.matchesCss(n.selector,e)&&t(n,a,r)})}},E.availableEventEmitters.push(d),p.prototype.backgroundTasks=function(){E.each(this.rules,function(e){E.cssQuery(e.selector,function(e){if(e.length>0){var t=e[0];if(E.$data(t,"elementexists.seen"))return;E.$data(t,"elementexists.seen",!0),E.onEvent({type:"elementexists",target:t})}})})},E.availableEventEmitters.push(p),f.prototype={initialize:function(){if(this.FB=this.FB||e.FB,this.FB&&this.FB.Event&&this.FB.Event.subscribe)return this.bind(),!0},bind:function(){this.FB.Event.subscribe("edge.create",function(){E.notify("tracking a facebook like",1),E.onEvent({type:"facebook.like",target:t})}),this.FB.Event.subscribe("edge.remove",function(){E.notify("tracking a facebook unlike",1),E.onEvent({type:"facebook.unlike",target:t})}),this.FB.Event.subscribe("message.send",function(){E.notify("tracking a facebook share",1),E.onEvent({type:"facebook.send",target:t})})}},E.availableEventEmitters.push(f),g.prototype={backgroundTasks:function(){var e=this;E.each(this.rules,function(t){var n=t[1],i=t[0];E.cssQuery(n,function(t){E.each(t,function(t){e.trackElement(t,i)})})},this)},trackElement:function(e,t){var n=this,i=E.$data(e,"hover.delays");i?E.contains(i,t)||i.push(t):(E.addEventHandler(e,"mouseover",function(t){n.onMouseOver(t,e)}),E.addEventHandler(e,"mouseout",function(t){n.onMouseOut(t,e)}),E.$data(e,"hover.delays",[t]))},onMouseOver:function(e,t){var n=e.target||e.srcElement,i=e.relatedTarget||e.fromElement;(t===n||E.containsElement(t,n))&&!E.containsElement(t,i)&&this.onMouseEnter(t)},onMouseEnter:function(e){var t=E.$data(e,"hover.delays"),n=E.map(t,function(t){return setTimeout(function(){E.onEvent({type:"hover("+t+")",target:e})},t)});E.$data(e,"hover.delayTimers",n)},onMouseOut:function(e,t){var n=e.target||e.srcElement,i=e.relatedTarget||e.toElement;(t===n||E.containsElement(t,n))&&!E.containsElement(t,i)&&this.onMouseLeave(t)},onMouseLeave:function(e){var t=E.$data(e,"hover.delayTimers");t&&E.each(t,function(e){clearTimeout(e)})}},E.availableEventEmitters.push(g),E.inherit(h,E.BaseTool),E.extend(h.prototype,{name:"Nielsen",endPLPhase:function(e){switch(e){case"pagetop":this.initialize();break;case"pagebottom":this.enableTracking&&(this.queueCommand({command:"sendFirstBeacon",arguments:[]}),this.flushQueueWhenReady())}},defineListeners:function(){this.onTabFocus=E.bind(function(){this.notify("Tab visible, sending view beacon when ready",1),this.tabEverVisible=!0,this.flushQueueWhenReady()},this),this.onPageLeave=E.bind(function(){this.notify("isHuman? : "+this.isHuman(),1),this.isHuman()&&this.sendDurationBeacon()},this),this.onHumanDetectionChange=E.bind(function(e){this==e.target.target&&(this.human=e.target.isHuman)},this)},initialize:function(){this.initializeTracking(),this.initializeDataProviders(),this.initializeNonHumanDetection(),this.tabEverVisible=E.visibility.isVisible(),this.tabEverVisible?this.notify("Tab visible, sending view beacon when ready",1):E.bindEventOnce("tabfocus",this.onTabFocus),this.initialized=!0},initializeTracking:function(){this.initialized||(this.notify("Initializing tracking",1),this.addRemovePageLeaveEvent(this.enableTracking),this.addRemoveHumanDetectionChangeEvent(this.enableTracking),this.initialized=!0)},initializeDataProviders:function(){var e,t=this.getAnalyticsTool();this.dataProvider.register(new h.DataProvider.VisitorID(E.getVisitorId())),t?(e=new h.DataProvider.Generic("rsid",function(){return t.settings.account}),this.dataProvider.register(e)):this.notify("Missing integration with Analytics: rsid will not be sent.")},initializeNonHumanDetection:function(){E.nonhumandetection?(E.nonhumandetection.init(),this.setEnableNonHumanDetection(0!=this.settings.enableNonHumanDetection),this.settings.nonHumanDetectionDelay>0&&this.setNonHumanDetectionDelay(1e3*parseInt(this.settings.nonHumanDetectionDelay))):this.notify("NHDM is not available.")},getAnalyticsTool:function(){if(this.settings.integratesWith)return E.tools[this.settings.integratesWith]},flushQueueWhenReady:function(){this.enableTracking&&this.tabEverVisible&&E.poll(E.bind(function(){if(this.isReadyToTrack())return this.flushQueue(),!0},this),100,20)},isReadyToTrack:function(){return this.tabEverVisible&&this.dataProvider.isReady()},$setVars:function(e,t,n){for(var i in n){var a=n[i];"function"==typeof a&&(a=a()),this.settings[i]=a}this.notify("Set variables done",2),this.prepareContextData()},$setEnableTracking:function(e,t,n){this.notify("Will"+(n?"":" not")+" track time on page",1),this.enableTracking!=n&&(this.addRemovePageLeaveEvent(n),this.addRemoveHumanDetectionChangeEvent(n),this.enableTracking=n)},$sendFirstBeacon:function(){this.sendViewBeacon()},setEnableNonHumanDetection:function(e){e?E.nonhumandetection.register(this):E.nonhumandetection.unregister(this)},setNonHumanDetectionDelay:function(e){E.nonhumandetection.register(this,e)},addRemovePageLeaveEvent:function(e){this.notify((e?"Attach onto":"Detach from")+" page leave event",1),E[0==e?"unbindEvent":"bindEvent"]("leave",this.onPageLeave)},addRemoveHumanDetectionChangeEvent:function(e){this.notify((e?"Attach onto":"Detach from")+" human detection change event",1),E[0==e?"unbindEvent":"bindEvent"]("humandetection.change",this.onHumanDetectionChange)},sendViewBeacon:function(){this.notify("Tracked page view.",1),this.sendBeaconWith()},sendDurationBeacon:function(){if(E.timetracking&&"function"==typeof E.timetracking.timeOnPage&&null!=E.timetracking.timeOnPage()){this.notify("Tracked close",1),this.sendBeaconWith({timeOnPage:Math.round(E.timetracking.timeOnPage()/1e3),duration:"D",timer:"timer"});var e;for(e=0;e0&&a&&r.shift().call(e,t,o);var c=n.shift();if(c){var l=E.data.host,u=s.scriptURL(c.src);l&&(u=E.basePath()+u),a=c,E.loadScript(u,i)}}try{n=n.slice(0);var a,r=this.asyncScriptCallbackQueue,o=t.target||t.srcElement,s=this}catch(c){console.error("scripts is",E.stringify(n))}i()},$loadBlockingScript:function(e,t,n){var i=n.scripts;n.loadOn;E.bind(function(){E.each(i,function(n){this.loadBlockingScript(e,t,n)},this)},this)()},loadBlockingScript:function(e,t,n){var i=this.scriptURL(n.src),a=E.data.host,r=t.target||t.srcElement;a&&(i=E.basePath()+i),this.argsForBlockingScripts.push([e,t,r]),E.loadScriptSync(i)},pushAsyncScript:function(e){this.asyncScriptCallbackQueue.push(e)},pushBlockingScript:function(e){var t=this.argsForBlockingScripts.shift(),n=t[0];e.apply(n,t.slice(1))},$writeHTML:E.escapeHtmlParams(function(e,n){if(!E.domReadyFired&&t.write)if("pagebottom"===n.type||"pagetop"===n.type)for(var i=2,a=arguments.length;i0&&(t.events=r.join(",")),E.getVisitorId()&&(t.visitor=E.getVisitorId()),t},onSCodeLoaded:function(e){this.initialized=!0,this.initializing=!1;var t=["Adobe Analytics: loaded",e?" (manual)":"","."];E.notify(t.join(""),1),E.fireEvent(this.id+".load",this.getS()),e||(this.flushQueueExceptTrackLink(),this.sendBeacon()),this.flushQueue()},getAccount:function(t){return e.s_account?e.s_account:t&&this.settings.accountByHost&&this.settings.accountByHost[t]||this.settings.account},getTrackingServer:function(){var t=this,n=t.getS();if(n){if(n.ssl&&n.trackingServerSecure)return n.trackingServerSecure;if(n.trackingServer)return n.trackingServer}var i,a=t.getAccount(e.location.hostname);if(!a)return null;var r,o,s="",c=n&&n.dc;return(r=(i=a).indexOf(","))>=0&&(i=i.gb(0,r)),i=i.replace(/[^A-Za-z0-9]/g,""),s||(s="2o7.net"),c=c?(""+c).toLowerCase():"d1","2o7.net"==s&&("d1"==c?c="112":"d2"==c&&(c="122"),o=""),r=i+"."+c+"."+o+s},sendBeacon:function(){var t=this.getS(e[this.settings.renameS||"s"]);t?this.settings.customInit&&!1===this.settings.customInit(t)?E.notify("Adobe Analytics: custom init suppressed beacon",1):(this.settings.executeCustomPageCodeFirst&&this.applyVarBindingsOnTracker(t,this.varBindings),this.executeCustomSetupFuns(t),t.t(),this.clearVarBindings(),this.clearCustomSetup(),E.notify("Adobe Analytics: tracked page view",1)):E.notify("Adobe Analytics: page code not loaded",1)},pollForSC:function(){E.poll(E.bind(function(){if("function"==typeof e.s_gi)return this.onSCodeLoaded(!0),!0},this))},flushQueueExceptTrackLink:function(){if(this.pending){for(var e=[],t=0;t0&&u.push("events"),s.products&&u.push("products"),u=this.mergeTrackLinkVars(s.linkTrackVars,u),o=this.mergeTrackLinkVars(s.linkTrackEvents,o),s.linkTrackVars=this.getCustomLinkVarsList(u);var d=E.map(o,function(e){return e.split(":")[0]});s.linkTrackEvents=this.getCustomLinkVarsList(d),s.tl(!0,i||"o",a),E.notify(["Adobe Analytics: tracked link ","using: linkTrackVars=",E.stringify(s.linkTrackVars),"; linkTrackEvents=",E.stringify(s.linkTrackEvents)].join(""),1),s.linkTrackVars=c,s.linkTrackEvents=l}else E.notify("Adobe Analytics: page code not loaded",1)},mergeTrackLinkVars:function(e,t){return e&&(t=e.split(",").concat(t)),t},getCustomLinkVarsList:function(e){var t=E.indexOf(e,"None");return t>-1&&e.length>1&&e.splice(t,1),e.join(",")},definedVarNames:function(e){e=e||this.varBindings;var t=[];for(var n in e)e.hasOwnProperty(n)&&/^(eVar[0-9]+)|(prop[0-9]+)|(hier[0-9]+)|campaign|purchaseID|channel|server|state|zip|pageType$/.test(n)&&t.push(n);return t},$trackPageView:function(e,t,n){var i=n&&n.setVars,a=n&&n.addEvent||[],r=this.getS(null,{setVars:i,addEvent:a});r?(r.linkTrackVars="",r.linkTrackEvents="",this.executeCustomSetupFuns(r),n&&n.customSetup&&n.customSetup.call(e,t,r),r.t(),this.clearVarBindings(),this.clearCustomSetup(),E.notify("Adobe Analytics: tracked page view",1)):E.notify("Adobe Analytics: page code not loaded",1)},$postTransaction:function(t,n,i){var a=E.data.transaction=e[i],r=this.varBindings,o=this.settings.fieldVarMapping;if(E.each(a.items,function(e){this.products.push(e)},this),r.products=E.map(this.products,function(e){var t=[];if(o&&o.item)for(var n in o.item)if(o.item.hasOwnProperty(n)){var i=o.item[n];t.push(i+"="+e[n]),"event"===i.substring(0,5)&&this.events.push(i)}var a=["",e.product,e.quantity,e.unitPrice*e.quantity];return t.length>0&&a.push(t.join("|")),a.join(";")},this).join(","),o&&o.transaction){var s=[];for(var c in o.transaction)if(o.transaction.hasOwnProperty(c)){i=o.transaction[c];s.push(i+"="+a[c]),"event"===i.substring(0,5)&&this.events.push(i)}r.products.length>0&&(r.products+=","),r.products+=";;;;"+s.join("|")}},$addEvent:function(){for(var e=2,t=arguments.length;e1?" with parameters ["+i.slice(1).join(", ")+"]":"")+".",1):E.notify("GA: sent command "+e+(i.length>1?" with parameters ["+i.slice(1).join(", ")+"]":"")+".",1)}},$missing$:function(e,t,n,i){this.call(e,t,n,i)},$postTransaction:function(t,n,i){var a=E.data.customVars.transaction=e[i];this.call("addTrans",t,n,[a.orderID,a.affiliation,a.total,a.tax,a.shipping,a.city,a.state,a.country]),E.each(a.items,function(e){this.call("addItem",t,n,[e.orderID,e.sku,e.product,e.category,e.unitPrice,e.quantity])},this),this.call("trackTrans",t,n)},delayLink:function(e,t){var n=this;if(L.allowLinker()&&e.hostname.match(this.settings.linkerDomains)&&!E.isSubdomainOf(e.hostname,location.hostname)){E.preventDefault(t);var i=E.settings.linkDelay||100;setTimeout(function(){n.call("link",e,t,[e.href])},i)}},popupLink:function(t,n){if(e._gat){E.preventDefault(n);var i=this.settings.account,a=e._gat._createTracker(i)._getLinkerUrl(t.href);e.open(a)}},$link:function(e,t){"_blank"===e.getAttribute("target")?this.popupLink(e,t):this.delayLink(e,t)},$trackEvent:function(e,t){var n=Array.prototype.slice.call(arguments,2);if(n.length>=4&&null!=n[3]){var i=parseInt(n[3],10);E.isNaN(i)&&(i=1),n[3]=i}this.call("trackEvent",e,t,n)}}),E.availableTools.ga=w;var L={allowLinker:function(){return E.hasMultipleDomains()},cookieDomain:function(){var t=E.settings.domainList,n=E.find(t,function(t){var n=e.location.hostname;return E.equalsIgnoreCase(n.slice(n.length-t.length),t)});return n?"."+n:"auto"}};E.inherit(S,E.BaseTool),E.extend(S.prototype,{name:"GAUniversal",endPLPhase:function(e){e===this.settings.loadOn&&(E.notify("GAU: Initializing at "+e,1),this.initialize(),this.flushQueue(),this.trackInitialPageView())},getTrackerName:function(){return this.settings.trackerSettings.name||""},isPageCodeLoadSuppressed:function(){return!1===this.settings.initTool||!0===this._cancelToolInit},initialize:function(){if(this.isPageCodeLoadSuppressed())return this.initialized=!0,void E.notify("GAU: Page code not loaded (suppressed).",1);var t="ga";e[t]=e[t]||this.createGAObject(),e.GoogleAnalyticsObject=t,E.notify("GAU: Page code loaded.",1),E.loadScriptOnce(this.getToolUrl());var n=this.settings;(L.allowLinker()&&!1!==n.allowLinker?this.createAccountForLinker():this.createAccount(),this.executeInitCommands(),n.customInit)&&(!1===(0,n.customInit)(e[t],this.getTrackerName())&&(this.suppressInitialPageView=!0));this.initialized=!0},createGAObject:function(){var e=function(){e.q.push(arguments)};return e.q=[],e.l=1*new Date,e},createAccount:function(){this.create()},createAccountForLinker:function(){var e={};L.allowLinker()&&(e.allowLinker=!0),this.create(e),this.call("require","linker"),this.call("linker:autoLink",this.autoLinkDomains(),!1,!0)},create:function(e){var t=this.settings.trackerSettings;(t=E.preprocessArguments([t],location,null,this.forceLowerCase)[0]).trackingId=E.replace(this.settings.trackerSettings.trackingId,location),t.cookieDomain||(t.cookieDomain=L.cookieDomain()),E.extend(t,e||{}),this.call("create",t)},autoLinkDomains:function(){var e=location.hostname;return E.filter(E.settings.domainList,function(t){return t!==e})},executeInitCommands:function(){var e=this.settings;e.initCommands&&E.each(e.initCommands,function(e){var t=e.splice(2,e.length-2);e=e.concat(E.preprocessArguments(t,location,null,this.forceLowerCase)),this.call.apply(this,e)},this)},trackInitialPageView:function(){this.suppressInitialPageView||this.isPageCodeLoadSuppressed()||this.call("send","pageview")},call:function(){"function"==typeof ga?this.isCallSuppressed()||(arguments[0]=this.cmd(arguments[0]),this.log(E.toArray(arguments)),ga.apply(e,arguments)):E.notify("GA Universal function not found!",4)},isCallSuppressed:function(){return!0===this._cancelToolInit},$missing$:function(e,t,n,i){i=i||[],i=[e].concat(i),this.call.apply(this,i)},getToolUrl:function(){var e=this.settings,t=E.isHttps();return e.url?t?e.url.https:e.url.http:(t?"https://ssl":"http://www")+".google-analytics.com/analytics.js"},cmd:function(e){var t=["send","set","get"],n=this.getTrackerName();return n&&-1!==E.indexOf(t,e)?n+"."+e:e},log:function(e){var t="GA Universal: sent command "+e[0]+" to tracker "+(this.getTrackerName()||"default");if(e.length>1){E.stringify(e.slice(1));t+=" with parameters "+E.stringify(e.slice(1))}t+=".",E.notify(t,1)}}),E.availableTools.ga_universal=S,E.extend(D.prototype,{getInstance:function(){return this.instance},initialize:function(){var e,t=this.settings;E.notify("Visitor ID: Initializing tool",1),null!==(e=this.createInstance(t.mcOrgId,t.initVars))&&(t.customerIDs&&this.applyCustomerIDs(e,t.customerIDs),t.autoRequest&&e.getMarketingCloudVisitorID(),this.instance=e)},createInstance:function(e,t){if(!E.isString(e))return E.notify('Visitor ID: Cannot create instance using mcOrgId: "'+e+'"',4),null;e=E.replace(e),E.notify('Visitor ID: Create instance using mcOrgId: "'+e+'"',1),t=this.parseValues(t);var n=Visitor.getInstance(e,t);return E.notify("Visitor ID: Set variables: "+E.stringify(t),1),n},applyCustomerIDs:function(e,t){var n=this.parseIds(t);e.setCustomerIDs(n),E.notify("Visitor ID: Set Customer IDs: "+E.stringify(n),1)},parseValues:function(e){if(!1===E.isObject(e))return{};var t={};for(var n in e)e.hasOwnProperty(n)&&(t[n]=E.replace(e[n]));return t},parseIds:function(e){var t={};if(!1===E.isObject(e))return{};for(var n in e)if(e.hasOwnProperty(n)){var i=E.replace(e[n].id);i!==e[n].id&&i&&(t[n]={},t[n].id=i,t[n].authState=Visitor.AuthState[e[n].authState])}return t}}),E.availableTools.visitor_id=D,_satellite.init({tools:{"83f212b87c3b4767a248d590e5161190":{engine:"sc",loadOn:"pagebottom",account:"wbgglobalprod",euCookie:!1,sCodeURL:"572ee9d70241b5c796ae15c773eaaee4365408ec/s-code-contents-9b42223dafd4df6973d5b69c61714e0542e49a91.js",renameS:"wb",initVars:{charSet:"UTF-8",server:"%ServerOrHost%",currencyCode:"USD",trackingServer:"worldbankgroup.sc.omtrdc.net",channel:"%ChannelInfo%",trackInlineStats:!0,trackDownloadLinks:!0,linkDownloadFileTypes:"avi,css,csv,doc,docx,eps,exe,jpg,js,m4v,mov,mp3,pdf,png,ppt,pptx,rar,svg,tab,txt,vsd,vxd,wav,wma,wmv,xls,xlsx,xml,zip",trackExternalLinks:!0,linkInternalFilters:"*.worldbank.org,addtocalendar.com,albankaldawli.org,api.worldbank.org,banquemondiale.org,beta.live.worldbank.org,blogs.worldbank.org,cgap.org,cscdev.prod.acquia-sites.com,data.worldbank.org,doingbusiness.org,govdata360-staging.assyst.in,govdata360.worldbank.org,ida.worldbank.org,ifc.org,javascript:,live.worldbank.org,mailto:,microfinancegateway.org,miga.org,newblogs.extcc.com,newdatacatalogstg.worldbank.org,nlive.extcc.com,nlive.extcc.com/#,pdu.worldbankgroup.org,pdudev.prod.acquia-sites.com,scorecard.worldbank.org,shihang.org,tcdata360-staging.assyst.in,tcdata360.worldbank.org,tel:,vsemirnyjbank.org,worldbankgroup.org,www.bancomundial.org,www.worldbank.org",linkLeaveQueryString:!1,dynamicVariablePrefix:"D=",eVar2:"D=c2",eVar3:"D=c3",eVar4:"D=c4",eVar5:"D=c5",eVar6:"D=c6",eVar8:"D=c8",eVar13:"%SiteLanguage%",eVar15:"%SiteEnvironment%",eVar17:"%TopicTag%",eVar19:"D=g",eVar20:"%ContentType%",eVar22:"%SiteCountry%",eVar26:"%VisitorMarketingCloudID%",eVar28:"%BrowserLanguage%",eVar29:"%PageUid%",eVar37:"%ErrorMessage%",eVar38:"%EventType%",eVar39:"%EventStatus%",eVar48:"%CmsType%",eVar50:"%SiteSearchSection%",eVar53:"%SiteRegion%",eVar60:"D=c40",eVar61:"%WebPackage%",eVar18:"%BusinessInfoDetail%",eVar16:"%PagePublishModified%",eVar12:"%DocumentLanguage%",eVar65:"D=c27",eVar66:"D=c28",eVar67:"D=c29",eVar68:"D=c30",eVar69:"D=c31",eVar70:"D=c32",eVar64:"D=c26",prop2:"%SiteSection%",prop3:"%SiteSectionLevel1%",prop4:"%SiteSectionLevel2%",prop5:"%SiteSectionLevel3%",prop6:"%SiteSectionLevel4%",prop8:"%PageTitle%",prop9:"%PageCategory%",prop11:"D=v22",prop12:"D=v20",prop13:"D=g",prop14:"D=v13",prop18:"D=v39",prop20:"D=v38",prop39:"D=v17",prop40:"%SubTopicTag%",prop41:"D=v61",prop1:"D=v1",prop33:"D=v12",prop26:"%DocumentTitle%",prop27:"%Document Author %",prop28:"%DocumentPublishDate%",prop29:"%DocumentTopic%",prop30:"%DocumentSubTopic%",prop31:"%DocumentRegion%",prop32:"%DocumentCountry%",prop23:"%DataDocType%",prop24:"%DataDocMDK%",hier1:"%PageHierarchy%"},skipSetAccount:!0,customInit:function(){if("n"==_satellite.getVar("PageloadRule"))return!1;videoContentType="video",wb.loadModule("Media"),wb.enableVideoTracking=!0,wb.enableVideoTracking&&(wb.loadModule("Media"),wb.Media.autoTrack=!1,wb.Media.trackWhilePlaying=!0,wb.Media.trackUsingContextData=!0,wb.Media.contextDataMapping={"a.contentType":"eVar58","a.media.name":"eVar57,prop22","a.media.segment":"eVar59","a.media.view":"event35","a.media.complete":"event39","a.media.segmentView":"event41","a.media.timePlayed":"event40","a.media.milestones":{25:"event36",50:"event37",75:"event38"}},wb.Media.monitor=function(e,t){"OPEN"==t.mediaEvent&&(wb.events="event65:"+hashCodeStr(t.name+_satellite.getVar("VisitorMarketingCloudID")),wb.Media.track(t.name)),"MILESTONE"==t.mediaEvent&&t.eventFirstTime||"CLOSE"==t.mediaEvent?wb.Media.track(t.name):"SECONDS"==t.mediaEvent&&wb.Media.track(t.name),wb.Media.segmentByMilestones&&"MONITOR"==t.mediaEvent&&300==parseInt(t.timePlayed)&&(wb.events="event51",wb.Media.track(t.name),wb.events=""),e.Media.segmentByMilestones||60!=parseInt(t.timePlayed)||(_satellite.getVar("FBPixelLiveVideo60Sec"),_satellite.getVar("TwitterPixelLiveVideo60Sec"),_satellite.getVar("GAdwordsTagLiveVideo60Sec"))},wb.Media.trackVars="channel,eVar1,prop1,eVar13,eVar15,eVar17,eVar18,eVar22,eVar25,eVar26,eVar38,eVar39,eVar48,eVar53,eVar61,eVar57,eVar58,eVar59,prop22,prop14,prop39,prop11,prop41,prop18,prop20,events",wb.Media.trackEvents="event35,event36,event37,event38,event39,event40,event41,event51,event65"),""!==_satellite.getVar("SiteSearchTerm")&&(_satellite.readCookie("wb_searches")&&""!==_satellite.readCookie("wb_searches")?-1==_satellite.readCookie("wb_searches").indexOf(_satellite.getVar("SiteSearchTerm"))&&_satellite.setCookie("wb_searches",_satellite.readCookie("wb_searches")+":"+_satellite.getVar("SiteSearchTerm")):_satellite.setCookie("wb_searches",_satellite.getVar("SiteSearchTerm")))}},"018e5b28d20f7fb32800bcdba483be453fe11972":{engine:"visitor_id",loadOn:"pagetop",name:"VisitorID",mcOrgId:"1E7B833554B8360D0A4C98A5@AdobeOrg",autoRequest:!0,initVars:{trackingServer:"worldbankgroup.sc.omtrdc.net",trackingServerSecure:"worldbankgroup.sc.omtrdc.net"}}},pageLoadRules:[{name:"Blogs Comment Count",trigger:[{engine:"sc",command:"customSetup",arguments:[function(){wb.events="event22="+t.getElementsByClassName("comment-reply").length,t.getElementById("page-title")?wb.eVar32=t.getElementById("page-title").innerText:t.getElementById("page-title")&&(wb.eVar32=t.getElementsByClassName("page-header")[0].innerText)}]}],conditions:[function(){if("blogs.worldbank.org"===_satellite.getVar("ServerOrHost")||"newblogs.extcc.com"===_satellite.getVar("ServerOrHost")||"dec data catalog ext"===_satellite.getVar("ChannelInfo"))return!0}],event:"domready"},{name:"Business Info",trigger:[{tool:["527290af1743c72906f56752dbe60b31"],command:"customSetup",arguments:[function(){var e=(""!=_satellite.getVar("SiteType")?_satellite.getVar("SiteType"):"uncategorized")+"|"+(""!=_satellite.getVar("BusinessAgency")?_satellite.getVar("BusinessAgency"):"uncategorized")+"|"+(""!=_satellite.getVar("BusinessUnit")?_satellite.getVar("BusinessUnit"):"uncategorized")+"|"+(""!=_satellite.getVar("BusinessUserGroup")?_satellite.getVar("BusinessUserGroup"):"uncategorized")+"|"+(""!=_satellite.getVar("BusinessVPUnit")?_satellite.getVar("BusinessVPUnit"):"uncategorized");wb.eVar18=e}]}],event:"pagebottom"},{name:"FBSDK Load",trigger:[{command:"loadScript",arguments:[{sequential:!1,scripts:[{src:"satellite-59c3dcc364746d520200e048.js"}]}]}],event:"pagetop"},{name:"Facebook Universal Pixel",trigger:[{command:"loadScript",arguments:[{sequential:!1,scripts:[{src:"satellite-5abd109d64746d01bc00b52f.js"}]}]},{command:"loadIframe",arguments:[{pages:[{src:"satellite-5abd109d64746d01bc00b530.html",data:[]}]}]}],scope:{domains:[/worldbank\.org$/i]},event:"pagebottom"},{name:"Foresee (3rd Party Tag)",trigger:[{command:"loadScript",arguments:[{sequential:!1,scripts:[{src:"satellite-5ac5fe4564746d2458008f32.js"}]}]}],event:"windowload"},{name:"Google Adwords Global Site Tag",trigger:[{command:"writeHTML",arguments:[{html:"\n\n"}]}],scope:{domains:[/worldbank\.org$/i]},event:"pagetop"},{name:"Search Tracking",trigger:[{engine:"sc",command:"setVars",arguments:[{eVar41:"%SiteSearchTerm%",eVar42:"%SiteSearchType%",eVar43:"%SiteSearchResultCount%",eVar44:"%SiteSearchTab%",eVar45:"%SiteSearchPagination%",eVar46:"%SiteSearchSort%",eVar50:"%SiteSearchSection%",prop21:"D=v41"}]},{engine:"sc",command:"customSetup",arguments:[function(){var e=_satellite.getVar("SiteSearchResultCount");wb.events=e>0?"event17,event16="+e:"event18",""!=_satellite.getVar("SiteSearchFilter")&&(wb.list1=_satellite.getVar("SiteSearchFilter"))}]}],conditions:[function(){if(""!==_satellite.getVar("SiteSearchTerm"))return!0}],event:"pagebottom"},{name:"Twitter Universal Pixel",trigger:[{command:"loadScript",arguments:[{sequential:!1,scripts:[{src:"satellite-5abd109d64746d01bc00b54e.js"},{src:"satellite-5abd109d64746d01bc00b54f.js"},{src:"satellite-5abd109d64746d01bc00b550.js"},{src:"satellite-5abd109d64746d01bc00b551.js"}]}]}],scope:{domains:[/worldbank\.org$/i]},event:"pagebottom"},{name:"Video Tracking - Dynamic Media",trigger:[{command:"loadScript",arguments:[{sequential:!1,scripts:[{src:"satellite-5b329bb964746d604a005110.js"}]}]}],event:"windowload"},{name:"Video Tracking - FBLive",trigger:[{command:"loadScript",arguments:[{sequential:!1,scripts:[{src:"satellite-5a0b584c64746d703f006e4d.js"}]}]}],conditions:[function(){if(t.getElementsByClassName("fb-video").length>0)return!0}],event:"pagebottom"},{name:"Video Tracking - Kaltura",trigger:[{command:"loadScript",arguments:[{sequential:!1,scripts:[{src:"satellite-5a0b584c64746d703f006e37.js"}]}]}],event:"pagebottom"},{name:"Video Tracking - Ustream",trigger:[{command:"loadScript",arguments:[{sequential:!1,scripts:[{src:"satellite-5b32978d64746d60500041fa.js"}]}]}],event:"windowload"},{name:"Video Tracking - YouTube",trigger:[{command:"loadScript",arguments:[{sequential:!1,scripts:[{src:"satellite-5a0b584c64746d703f006e23.js"}]}]}],event:"domready"}],rules:[{name:"Blogs Commented",conditions:[function(){""!=t.getElementById("edit-comment-body-und-0-value").value&&(wb.events="event1",wb.eVar32=t.getElementById("page-title").innerText,wb.linkTrackVars=wb.apl(wb.linkTrackVars,"eVar32",",",1),wb.linkTrackEvents=wb.apl(wb.linkTrackEvents,"event1",",",1),wb.tl(!0,"o","Blog Comment"))}],selector:"form#comment-form",event:"submit",bubbleFireIfParent:!0,bubbleFireIfChildFired:!0,bubbleStop:!1},{name:"BlogsEmailSubscription",trigger:[{command:"loadScript",arguments:[{sequential:!1,scripts:[{src:"satellite-5a5ed3a164746d16f6004416.js"},{src:"satellite-5a95b22664746d1543007d5c.js"},{src:"satellite-5aaad02d64746d3291000bec.js"},{src:"satellite-5abd164364746d01bc00b58b.js"}]}]}],conditions:[function(){if(""!==t.getElementById("edit-subscriber").value)return!0}],selector:"#wb-subscribe-block-form",event:"submit",bubbleFireIfParent:!0,bubbleFireIfChildFired:!0,bubbleStop:!1},{name:"Custom Link Tracking",trigger:[{command:"delayActivateLink"}],conditions:[function(){"e"!==linkType&&"d"!==linkType&&this.getAttribute("data-customlink")?(customLinkObject=this,linkType="o",_satellite.getVar("CustomLinkClick"),wb.tl(customLinkObject,linkType,wb.linkName)):(0!==this.getAttribute("data-customlink")&&"custom_email"==this.className||"print_html"==this.className&&("blogs.worldbank.org"===_satellite.getVar("ServerOrHost")||"newblogs.extcc.com"===_satellite.getVar("ServerOrHost")))&&(customLinkObject=this,_satellite.getVar("CustomLinkClick"),wb.tl(customLinkObject,"o",wb.linkName))}],selector:"a,div,img,li,input,button,i,I,span,label",eventHandlerOnElement:!0,event:"click",bubbleFireIfParent:!0,bubbleFireIfChildFired:!0,bubbleStop:!1},{name:"Data-site Browse by Link",trigger:[{command:"loadScript",arguments:[{sequential:!1,scripts:[{src:"satellite-5ac3cb9564746d3291008e92.js"}]}]}],conditions:[function(){return _satellite.textMatch(_satellite.getVar("SiteType"),/^datamain$/i)}],selector:".dropdownBox .select-item",eventHandlerOnElement:!0,event:"click",bubbleFireIfParent:!0,bubbleFireIfChildFired:!0,bubbleStop:!1},{name:"Tweetable Sentences",trigger:[{tool:["527290af1743c72906f56752dbe60b31"],command:"trackLink",arguments:[{type:"o",linkName:"twitter share"}]}],conditions:[function(){s.linkTrackVars=s.apl(s.linkTrackVars,"eVar36,prop15",",",1),s.linkTrackEvents=s.apl(s.linkTrackEvents,"event8",",",1);var e=jQuery(".tweetable").attr("data-text")||jQuery(".views-field.views-field-field-tweetable.tweetable a").text();s.prop15=e+"::tweetable sentence",s.eVar36="D=c15",s.events="event8",s.tl(this,"o")}],selector:"span.tweetable,div.views-field.views-field-field-tweetable.tweetable a",event:"click",bubbleFireIfParent:!0,bubbleFireIfChildFired:!0,bubbleStop:!1}],directCallRules:[{name:"dynamicdata",trigger:[{engine:"sc",command:"trackPageView",arguments:[{setVars:{eVar12:"%DocumentLanguage%",eVar13:"%SiteLanguage%",eVar15:"%SiteEnvironment%",eVar16:"%PagePublishModified%",eVar17:"%TopicTag%",eVar18:"%BusinessInfoDetail%",eVar19:"D=g",eVar2:"D=c2",eVar20:"%ContentType%",eVar22:"%SiteCountry%",eVar26:"%VisitorMarketingCloudID%",eVar28:"%BrowserLanguage%",eVar29:"%PageUid%",eVar3:"D=c3",eVar37:"%ErrorMessage%",eVar38:"%EventType%",eVar39:"%EventStatus%",eVar4:"D=c4",eVar48:"%CmsType%",eVar5:"D=c5",eVar50:"%SiteSearchSection%",eVar53:"%SiteRegion%",eVar6:"D=c6",eVar60:"D=c40",eVar61:"%WebPackage%",eVar64:"D=c26",eVar65:"D=c27",eVar66:"D=c28",eVar67:"D=c29",eVar68:"D=c30",eVar69:"D=c31",eVar70:"D=c32",eVar8:"D=c8",prop1:"D=v1",prop11:"D=v22",prop12:"D=v20",prop13:"D=g",prop14:"D=v13",prop18:"D=v39",prop2:"%SiteSection%",prop20:"D=v38",prop21:"D=v41",prop23:"%DataDocType%",prop24:"%DataDocMDK%",prop26:"%DocumentTitle%",prop27:"%Document Author %",prop28:"%DocumentPublishDate%",prop29:"%DocumentTopic%",prop3:"%SiteSectionLevel1%",prop30:"%DocumentSubTopic%",prop31:"%DocumentRegion%",prop32:"%DocumentCountry%",prop33:"D=v12",prop39:"D=v17",prop4:"%SiteSectionLevel2%",prop40:"%SubTopicTag%",prop41:"D=v61",prop5:"%SiteSectionLevel3%",prop6:"%SiteSectionLevel4%",prop8:"%PageTitle%",prop9:"%PageCategory%",hier1:"%PageHierarchy%"},customSetup:function(){""==_satellite.getVar("ChannelInfo")?wb.channel=_satellite.getVar("SiteType")+"|"+(""!=_satellite.getVar("SiteSection")?_satellite.getVar("SiteSection"):"uncategorized")+"|"+_satellite.getVar("SiteLanguage")+"|"+(""!=_satellite.getVar("BusinessVPUnit")?_satellite.getVar("BusinessVPUnit"):"uncategorized"):wb.channel=_satellite.getVar("ChannelInfo"),""!=_satellite.getVar("SPageFirstPublished")&&""!=_satellite.getVar("SPageLastModified")&&(wb.eVar16=_satellite.getVar("SPageLastModified")+"|"+_satellite.getVar("SPageFirstPublished"));var e=(""!=_satellite.getVar("SiteType")?_satellite.getVar("SiteType"):"uncategorized")+"|"+(""!=_satellite.getVar("BusinessAgency")?_satellite.getVar("BusinessAgency"):"uncategorized")+"|"+(""!=_satellite.getVar("BusinessUnit")?_satellite.getVar("BusinessUnit"):"uncategorized")+"|"+(""!=_satellite.getVar("BusinessUserGroup")?_satellite.getVar("BusinessUserGroup"):"uncategorized")+"|"+(""!=_satellite.getVar("BusinessVPUnit")?_satellite.getVar("BusinessVPUnit"):"uncategorized");if(wb.eVar18=e,wb.linkTrackVars=wb.apl(wb.linkTrackVars,"channel,eVar1,eVar13,eVar15,eVar17,eVar18,eVar19,eVar20,eVar22,eVar25,eVar26,eVar38,eVar39,eVar41,eVar48,eVar53,eVar61,prop1,prop13,prop14,prop39,prop11,prop41,prop18,prop20",1),""!==_satellite.getVar("SiteSearchTerm")){var t=_satellite.getVar("SiteSearchResultCount"),n="event16="+t;wb.eVar41=_satellite.getVar("SiteSearchTerm"),wb.eVar42=_satellite.getVar("SiteSearchType"),wb.eVar43=_satellite.getVar("SiteSearchResultCount"),wb.eVar44=_satellite.getVar("SiteSearchTab"),wb.eVar45=_satellite.getVar("SiteSearchPagination"),wb.eVar46=_satellite.getVar("SiteSearchSort"),wb.eVar50=_satellite.getVar("SiteSearchSection"),""!=_satellite.getVar("SiteSearchFilter")&&(wb.list1=_satellite.getVar("SiteSearchFilter")),t>0?n+=",event17":n="event18",wb.events=wb.apl(wb.events,n,",",2)}}}]}]}],settings:{trackInternalLinks:!0,libraryName:"satelliteLib-efd6120a6f6ed94da49cf49e2ba626ac110c7e3c",isStaging:!1,allowGATTcalls:!1,downloadExtensions:/\.(?:doc|docx|eps|jpg|png|svg|xls|ppt|pptx|pdf|xlsx|tab|csv|zip|txt|vsd|vxd|xml|js|css|rar|exe|wma|mov|avi|wmv|mp3|wav|m4v)($|\&|\?)/i,notifications:!1,utilVisible:!1,domainList:["worldbank.org"],scriptDir:"572ee9d70241b5c796ae15c773eaaee4365408ec/scripts/",undefinedVarsReturnEmpty:!0,tagTimeout:3e3},data:{URI:t.location.pathname+t.location.search,browser:{},cartItems:[],revenue:"",host:{http:"assets.adobedtm.com",https:"assets.adobedtm.com"}},dataElements:{BrowserLanguage:{customJS:function(){return-1!==navigator.appVersion.indexOf("MSIE 10")?navigator.browserLanguage.substr(0,2):e.navigator.language.substr(0,2)},storeLength:"pageview",forceLowerCase:!0,cleanText:!0},BusinessAgency:{jsVariable:"wbgData.site.techInfo.bussAgency","default":"uncategorized",storeLength:"pageview",forceLowerCase:!0,cleanText:!0},BusinessInfoDetail:{customJS:function(){return _satellite.getVar("SiteType")+"|"+_satellite.getVar("BusinessAgency")+"|"+_satellite.getVar("BusinessUnit")+"|"+_satellite.getVar("BusinessUserGroup")+"|"+_satellite.getVar("BusinessVPUnit")},storeLength:"pageview",forceLowerCase:!0,cleanText:!0},BusinessUnit:{customJS:function(){var e="uncategorized";return"undefined"!=typeof wbgData?"undefined"!=typeof wbgData.site&&"undefined"!=typeof wbgData.site.techInfo&&"undefined"!=typeof wbgData.site.techInfo.bussUnit&&""!=wbgData.site.techInfo.bussUnit.trim()&&(e=wbgData.site.techInfo.bussUnit):"undefined"!=typeof s_prop13&&""!==s_prop13&&"Not Available"!==s_prop13&&"not available"!==s_prop13?e=s_prop13:"undefined"!=typeof s&&"undefined"!=typeof s.prop13&&""!==s.prop13&&"Not Available"!==s.prop13&&"not available"!==s.prop13&&(e=s.prop13),e},storeLength:"pageview",forceLowerCase:!0,cleanText:!0},BusinessUserGroup:{jsVariable:"wbgData.site.techInfo.bussUserGroup","default":"uncategorized",storeLength:"pageview",forceLowerCase:!0,cleanText:!0},BusinessVPUnit:{customJS:function(){var e="uncategorized";return"undefined"!=typeof wbgData?"undefined"!=typeof wbgData.site&&"undefined"!=typeof wbgData.site.techInfo&&"undefined"!=typeof wbgData.site.techInfo.bussVPUnit&&""!=wbgData.site.techInfo.bussVPUnit.trim()&&(e=wbgData.site.techInfo.bussVPUnit):"undefined"!=typeof s_prop18&&""!==s_prop18&&"Not Available"!==s_prop18&&"not available"!==s_prop18?e=s_prop18:"undefined"!=typeof s&&"undefined"!=typeof s.prop18&&""!==s.prop18&&"Not Available"!==s.prop18&&"not available"!==s.prop18&&(e=s.prop18),e},storeLength:"pageview",forceLowerCase:!0,cleanText:!0},ChannelInfo:{customJS:function(){var e="";return"undefined"!=typeof wbgData?"undefined"!=typeof wbgData.page&&"undefined"!=typeof wbgData.page.pageInfo&&"undefined"!=typeof wbgData.page.pageInfo.channel&&""!=wbgData.page.pageInfo.channel.trim()&&(e=wbgData.page.pageInfo.channel):"undefined"!=typeof s_channel&&""!==s_channel&&"Not Available"!==s_channel&&"not available"!==s_channel?e=s_channel:"undefined"!=typeof s&&"undefined"!=typeof s.channel&&""!==s.channel&&"Not Available"!==s.channel&&"not available"!==s.channel&&(e=s.channel),e},storeLength:"pageview",forceLowerCase:!0,cleanText:!0},CmsType:{customJS:function(){var e="";return"undefined"!=typeof wbgData?"undefined"!=typeof wbgData.site&&"undefined"!=typeof wbgData.site.techInfo&&"undefined"!=typeof wbgData.site.techInfo.cmsType&&""!=wbgData.site.techInfo.cmsType.trim()&&(e=wbgData.site.techInfo.cmsType):"undefined"!=typeof s_prop11&&""!==s_prop11&&"Not Available"!==s_prop11&&"not available"!==s_prop11?e=s_prop11:"undefined"!=typeof s&&"undefined"!=typeof s.prop11&&""!==s.prop11&&"Not Available"!==s.prop11&&"not available"!==s.prop11&&(e=s.prop11),e},storeLength:"pageview",forceLowerCase:!0,cleanText:!0},ContentAuthor:{customJS:function(){var e="";return"undefined"!=typeof wbgData?"undefined"!=typeof wbgData.page&&"undefined"!=typeof wbgData.page.pageInfo&&"undefined"!=typeof wbgData.page.pageInfo.author&&""!=wbgData.page.pageInfo.author.trim()&&(e=wbgData.page.pageInfo.author):"undefined"!=typeof s_prop2&&""!==s_prop2&&"Not Available"!==s_prop2&&"not available"!==s_prop2?e=s_prop2:"undefined"!=typeof s&&"undefined"!=typeof s.prop2&&""!==s.prop2&&"Not Available"!==s.prop2&&"not available"!==s.prop2&&(e=s.prop2),e},storeLength:"pageview",forceLowerCase:!0,cleanText:!0},ContentType:{customJS:function(){var e="";return"undefined"!=typeof wbgData?"undefined"!=typeof wbgData.page&&"undefined"!=typeof wbgData.page.pageInfo&&"undefined"!=typeof wbgData.page.pageInfo.contentType&&""!=wbgData.page.pageInfo.contentType.trim()&&(e=wbgData.page.pageInfo.contentType):"undefined"!=typeof s_prop8&&""!==s_prop8&&"Not Available"!==s_prop8&&"not available"!==s_prop8?e=s_prop8:"undefined"!=typeof s&&"undefined"!=typeof s.prop8&&""!==s.prop8&&"Not Available"!==s.prop8&&"not available"!==s.prop8&&(e=s.prop8),e},storeLength:"pageview",forceLowerCase:!0,cleanText:!0},CustomLinkClick:{customJS:function(){if(customLinkObject!==n){var e,t="uncategorized",i="",a="";if(customLinkObject.hasAttribute("data-customlink")){customLinkObject.hasAttribute("data-text")&&""!==customLinkObject.hasAttribute("data-text")?t=customLinkObject.getAttribute("data-text"):""!==customLinkObject.innerText&&(t=customLinkObject.innerText);var r=customLinkObject.getAttribute("data-customlink").split(":")[0],o=customLinkObject.getAttribute("data-customlink").split(":")[1]?customLinkObject.getAttribute("data-customlink").split(":")[1]:"";switch(r){case"sm":e="social media",i="eVar36,prop15,prop33",a="event4,event8";break;case"fd":return _satellite.getVar("DownloadClick"),!1;case"sw":e="social media share",wb.eVar11=t,wb.eVar35="social",i="eVar36,prop15,eVar35,eVar11,prop33",a="event5,event8";break;case"rs":e="rss feed",i="eVar36,prop15,prop33",a="event4,event8";break;case"em":e="email",wb.eVar35="email",wb.eVar11=t,i="eVar36,prop15,eVar35,eVar11,prop33",a="event3,event8";break;case"pr":e="print",wb.eVar11=t,wb.eVar35="print",i="eVar36,prop15,eVar11,eVar35,prop33",a="event3,event8";break;case"tb":e="tab",wb.eVar52=t,i="eVar36,prop15,eVar52",a="event43,event8";break;case"au":e="audio media",i="eVar36,prop15",a="event42,event8";break;case"sr":e="search result",wb.eVar41=_satellite.getVar("SiteSearchTerm"),wb.eVar47=_satellite.readCookie("wb_searches"),_satellite.removeCookie("wb_searches"),i="eVar36,prop15,eVar41,eVar47",a="event19,event8";break;case"ss":e="search sort",wb.eVar41=_satellite.getVar("SiteSearchTerm"),i="eVar36,prop15,eVar41",a="event21,event8";break;case"sp":e="search pagination",wb.eVar41=_satellite.getVar("SiteSearchTerm"),i="eVar36,prop15,eVar41",a="event20,event8";break;case"nl":e="normal link",i="eVar36,prop15,prop33",a="event8";break;case"bc":e="blog comment",i="eVar32",wb.eVar32=t,a="event1";break;case"mr":e="map link",i="eVar36,prop15",a="event8,event45";break;case"bb":e="browse-by-search-term",i="eVar36,prop15",a="event8";break;default:return!1}wb.prop15=unescape(t.trim())+"::"+e,wb.eVar36="D=c15",wb.prop33=o,wb.linkName=unescape(t.trim()),wb.linkTrackVars=wb.apl(wb.linkTrackVars,i,",",1),wb.linkTrackEvents=wb.apl(wb.linkTrackEvents,a,",",1),wb.events=a}else if("blogs.worldbank.org"===_satellite.getVar("ServerOrHost")||"newblogs.extcc.com"===_satellite.getVar("ServerOrHost")){switch(customLinkObject.className){case"service-links-facebook":t="facebook",e="social media share",wb.eVar11=t,wb.eVar35="social",a="event5,event8";break;case"service-links-twitter":t="twitter",e="social media share",wb.eVar11=t,wb.eVar35="social",a="event5,event8";break;case"service-links-linkedin":t="linkedin",e="social media share",wb.eVar11=t,wb.eVar35="social",a="event5,event8";break;case"print-page":case"print_html":t="print",e="print",wb.eVar11=t,wb.eVar35="print",a="event3,event8";break;case"custom_email":t="email",e="email",wb.eVar35="email",wb.eVar11=t,a="event3,event8";break;case"popup":t=customLinkObject.innerText,e="tweetable sentence",a="event8"}i="eVar36,prop15,eVar35,eVar11",wb.prop15=unescape(t.trim())+"::"+e,wb.eVar36="D=c15",wb.linkName=unescape(t.trim()),wb.linkTrackVars=wb.apl(wb.linkTrackVars,i,",",1),wb.linkTrackEvents=wb.apl(wb.linkTrackEvents,a,",",1),wb.events=a}}},storeLength:"pageview"},DataDocMDK:{customJS:function(){var e="";return"undefined"!=typeof wbgData&&"undefined"!=typeof wbgData.page&&"undefined"!=typeof wbgData.page.documentInfo&&"undefined"!=typeof wbgData.page.documentInfo.dataDocMDK&&""!=wbgData.page.documentInfo.dataDocMDK.trim()&&(e=wbgData.page.documentInfo.dataDocMDK),e},storeLength:"pageview",forceLowerCase:!0,cleanText:!0},DataDocType:{customJS:function(){var e="";return"undefined"!=typeof wbgData&&"undefined"!=typeof wbgData.page&&"undefined"!=typeof wbgData.page.documentInfo&&"undefined"!=typeof wbgData.page.documentInfo.dataDocType&&""!=wbgData.page.documentInfo.dataDocType.trim()&&(e=wbgData.page.documentInfo.dataDocType),e},storeLength:"pageview",forceLowerCase:!0,cleanText:!0},"Document Author ":{customJS:function(){var e="";return"undefined"!=typeof wbgData&&"undefined"!=typeof wbgData.page&&"undefined"!=typeof wbgData.page.documentInfo&&"undefined"!=typeof wbgData.page.documentInfo.documentAuthor&&""!=wbgData.page.documentInfo.documentAuthor.trim()&&(e=wbgData.page.documentInfo.documentAuthor),e},storeLength:"pageview",forceLowerCase:!0,cleanText:!0},DocumentCountry:{customJS:function(){var e="";return"undefined"!=typeof wbgData&&"undefined"!=typeof wbgData.page&&"undefined"!=typeof wbgData.page.documentInfo&&"undefined"!=typeof wbgData.page.documentInfo.documentCountry&&""!=wbgData.page.documentInfo.documentCountry.trim()&&(e=wbgData.page.documentInfo.documentCountry),e},storeLength:"pageview",forceLowerCase:!0,cleanText:!0},DocumentLanguage:{customJS:function(){var e="";return"undefined"!=typeof wbgData&&"undefined"!=typeof wbgData.page&&"undefined"!=typeof wbgData.page.documentInfo&&"undefined"!=typeof wbgData.page.documentInfo.documentLang&&""!=wbgData.page.documentInfo.documentLang.trim()&&(e=wbgData.page.documentInfo.documentLang),e},storeLength:"pageview",forceLowerCase:!0,cleanText:!0},DocumentPublishDate:{customJS:function(){var e="";return"undefined"!=typeof wbgData&&"undefined"!=typeof wbgData.page&&"undefined"!=typeof wbgData.page.documentInfo&&"undefined"!=typeof wbgData.page.documentInfo.documentPublishDate&&""!=wbgData.page.documentInfo.documentPublishDate.trim()&&(e=wbgData.page.documentInfo.documentPublishDate),e},storeLength:"pageview",forceLowerCase:!0,cleanText:!0},DocumentRegion:{customJS:function(){var e="";return"undefined"!=typeof wbgData&&"undefined"!=typeof wbgData.page&&"undefined"!=typeof wbgData.page.documentInfo&&"undefined"!=typeof wbgData.page.documentInfo.documentRegion&&""!=wbgData.page.documentInfo.documentRegion.trim()&&(e=wbgData.page.documentInfo.documentRegion),e},storeLength:"pageview",forceLowerCase:!0,cleanText:!0},DocumentSubTopic:{customJS:function(){var e="";return"undefined"!=typeof wbgData&&"undefined"!=typeof wbgData.page&&"undefined"!=typeof wbgData.page.documentInfo&&"undefined"!=typeof wbgData.page.documentInfo.documentSubTopic&&""!=wbgData.page.documentInfo.documentSubTopic.trim()&&(e=wbgData.page.documentInfo.documentSubTopic),e},storeLength:"pageview",forceLowerCase:!0,cleanText:!0},DocumentTitle:{customJS:function(){var e="";return"undefined"!=typeof wbgData&&"undefined"!=typeof wbgData.page&&"undefined"!=typeof wbgData.page.documentInfo&&"undefined"!=typeof wbgData.page.documentInfo.documentTitle&&""!=wbgData.page.documentInfo.documentTitle.trim()&&(e=wbgData.page.documentInfo.documentTitle),e},storeLength:"pageview",forceLowerCase:!0,cleanText:!0},DocumentTopic:{customJS:function(){var e="";return"undefined"!=typeof wbgData&&"undefined"!=typeof wbgData.page&&"undefined"!=typeof wbgData.page.documentInfo&&"undefined"!=typeof wbgData.page.documentInfo.documentTopic&&""!=wbgData.page.documentInfo.documentTopic.trim()&&(e=wbgData.page.documentInfo.documentTopic),e},storeLength:"pageview"},DownloadClick:{customJS:function(){ +if(customLinkObject.hasAttribute("data-customlink")&&customLinkObject.hasAttribute("data-text")&&"rs"===customLinkObject.getAttribute("data-customlink").split(":")[0])_satellite.getVar("CustomLinkClick");else{var e="uncategorized";customLinkObject.getAttribute("data-text")?e=customLinkObject.getAttribute("data-text"):customLinkObject.getAttribute("href")&&"#"!=customLinkObject.getAttribute("href")?e=customLinkObject.getAttribute("href").split("/").pop().split(".").shift():customLinkObject.innerText?e=customLinkObject.innerText:customLinkObject.getAttribute("title")?e=customLinkObject.getAttribute("title"):customLinkObject.getAttribute("alt")?e=customLinkObject.getAttribute("alt"):customLinkObject.getAttribute("id")&&(e=customLinkObject.getAttribute("id"));var t="uncategorized";customLinkObject.getAttribute("href")&&""!==customLinkObject.getAttribute("href")&&"#"!==customLinkObject.getAttribute("href")?t=customLinkObject.getAttribute("href").split("/").pop().split("?").shift().split(".").pop().split(/\#|\?/g)[0]:customLinkObject.hasAttribute("data-customlink")&&4==customLinkObject.getAttribute("data-customlink").split(":").length&&(t=customLinkObject.getAttribute("data-customlink").split(":")[3]);var n=unescape(e)+"::file download",i=unescape(e)+"::"+t;wb.prop15=n.trim(),wb.eVar36="D=c15",wb.eVar21=i.trim(),wb.events="event2,event8",wb.linkTrackVars=wb.apl(wb.linkTrackVars,"prop15,eVar36,eVar21,events",",",1),wb.linkTrackEvents=wb.apl(wb.linkTrackEvents,"event2,event8",",",1),wb.linkName=e}},storeLength:"pageview"},ErrorMessage:{jsVariable:"wbgData.errorInfo.errorMessage",storeLength:"pageview",forceLowerCase:!0,cleanText:!0},ErrorPageLoadRule:{jsVariable:"wbgData.errorInfo.pageloadRule",storeLength:"pageview",forceLowerCase:!0,cleanText:!0},EventStatus:{jsVariable:"wbgData.misc.eventstatus",storeLength:"pageview",cleanText:!0},EventType:{jsVariable:"wbgData.misc.eventtype",storeLength:"pageview",cleanText:!0},FBPixelDownload:{customJS:function(){"function"==typeof fbq&&fbq("track","Lead",{content_category:"download"})},storeLength:"pageview"},FBPixelLiveVideo60Sec:{customJS:function(){"function"==typeof fbq&&fbq("track","Lead",{content_category:"live video 60 seconds"})},storeLength:"pageview"},FBPixelNewsletterFormView:{customJS:function(){"function"==typeof fbq&&fbq("track","Lead",{content_category:"newsletter form view"})},storeLength:"pageview"},FBPixelVideoReplay:{customJS:function(){"function"==typeof fbq&&fbq("track","Lead",{content_category:"video replay"})},storeLength:"pageview"},"Filter Section ":{customJS:function(){if(e.location.search){var t,n=[],i=e.location.search;if(i){for(var a=i.slice(1).split("&"),r=0;r=2?t.location.hostname.split(".")[1]:t.location.hostname.split(".")[0];switch(e.toLowerCase()){case"worldbank":e="wb";break;case"ifc":e="ifc";break;case"miga":e="mig";break;case"cgap":e="cga"}return e},storeLength:"pageview",forceLowerCase:!0,cleanText:!0},RelativeURL:{customJS:function(){var t=e.location.pathname.toLowerCase();return"/"!=t?t:"home"},storeLength:"pageview",cleanText:!0},ServerOrHost:{customJS:function(){return e.location.hostname},storeLength:"pageview",forceLowerCase:!0,cleanText:!0},SiteCountry:{customJS:function(){var e="";return"undefined"!=typeof wbgData?"undefined"!=typeof wbgData.site&&"undefined"!=typeof wbgData.site.siteInfo&&"undefined"!=typeof wbgData.site.siteInfo.siteCountry&&""!=wbgData.site.siteInfo.siteCountry.trim()&&(e=wbgData.site.siteInfo.siteCountry):"undefined"!=typeof s_prop7&&""!==s_prop7&&"Not Available"!==s_prop7&&"not available"!==s_prop7?e=s_prop7:"undefined"!=typeof s&&"undefined"!=typeof s.prop7&&""!==s.prop7&&"Not Available"!==s.prop7&&"not available"!==s.prop7&&(e=s.prop7),e},storeLength:"pageview",forceLowerCase:!0,cleanText:!0},SiteEnvironment:{jsVariable:"wbgData.site.siteInfo.siteEnv",storeLength:"pageview",cleanText:!0},SiteLanguage:{customJS:function(){var e=_satellite.getVar("BrowserLanguage");return"undefined"!=typeof wbgData?"undefined"!=typeof wbgData.site&&"undefined"!=typeof wbgData.site.siteInfo&&"undefined"!=typeof wbgData.site.siteInfo.siteLanguage&&""!=wbgData.site.siteInfo.siteLanguage.trim()&&(e=wbgData.site.siteInfo.siteLanguage):"undefined"!=typeof s_prop17&&""!==s_prop17&&"Not Available"!==s_prop17&&"not available"!==s_prop17?e=s_prop17:"undefined"!=typeof s&&"undefined"!=typeof s.prop17&&""!==s.prop17&&"Not Available"!==s.prop17&&"not available"!==s.prop17&&(e=s.prop17),e},storeLength:"pageview",forceLowerCase:!0,cleanText:!0},SiteRegion:{customJS:function(){function e(e){var t={africa:"afr","south asia":"sar","latin america and the caribbean":"lac","latin america & caribbean":"lac","latin america":"lac","east asia pacific":"eap","europe and central asia":"eca","middle east and north africa":"mena","n/a":""};return"undefined"!=typeof t[e]?t[e]:e}var t="";return"undefined"!=typeof wbgData?"undefined"!=typeof wbgData.site&&"undefined"!=typeof wbgData.site.siteInfo&&"undefined"!=typeof wbgData.site.siteInfo.siteRegion&&""!=wbgData.site.siteInfo.siteRegion.trim()&&(t=wbgData.site.siteInfo.siteRegion):"undefined"!=typeof s_prop6&&""!==s_prop6&&"Not Available"!==s_prop6&&"not available"!==s_prop6?t=s_prop6:"undefined"!=typeof s&&"undefined"!=typeof s.prop6&&""!==s.prop6&&"Not Available"!==s.prop6&&"not available"!==s.prop6&&(t=s.prop6),e(t.toLowerCase())},storeLength:"pageview",forceLowerCase:!0,cleanText:!0},SiteSearchFilter:{jsVariable:"wbgData.siteSearch.searchFilters",storeLength:"pageview",cleanText:!0},SiteSearchPagination:{jsVariable:"wbgData.siteSearch.pagination",storeLength:"pageview",cleanText:!0},SiteSearchResultCount:{jsVariable:"wbgData.siteSearch.searchResults",storeLength:"pageview",cleanText:!0},SiteSearchSection:{jsVariable:"wbgData.siteSearch.section",storeLength:"pageview",cleanText:!0},SiteSearchSort:{jsVariable:"wbgData.siteSearch.sortBy",storeLength:"pageview",cleanText:!0},SiteSearchTab:{jsVariable:"wbgData.siteSearch.tab",storeLength:"pageview",cleanText:!0},SiteSearchTerm:{jsVariable:"wbgData.siteSearch.searchTerm",storeLength:"pageview",cleanText:!0},SiteSearchType:{jsVariable:"wbgData.siteSearch.searchType",storeLength:"pageview",cleanText:!0},SiteSection:{customJS:function(){var e="";return"undefined"!=typeof wbgData?"undefined"!=typeof wbgData.page&&"undefined"!=typeof wbgData.page.sectionInfo&&"undefined"!=typeof wbgData.page.sectionInfo.siteSection&&""!=wbgData.page.sectionInfo.siteSection.trim()&&(e=wbgData.page.sectionInfo.siteSection):"undefined"!=typeof s_prop24&&""!==s_prop24&&"Not Available"!==s_prop24&&"not available"!==s_prop24?e=s_prop24:"undefined"!=typeof s&&"undefined"!=typeof s.prop5&&""!==s.prop5&&"Not Available"!==s.prop5&&"not available"!==s.prop5&&(e=s.prop24),e},storeLength:"pageview",cleanText:!0},SiteSectionLevel1:{customJS:function(){"undefined"!=typeof wbgData?"undefined"!=typeof wbgData.page&&"undefined"!=typeof wbgData.page.sectionInfo&&"undefined"!=typeof wbgData.page.sectionInfo.siteSection&&""!=wbgData.page.sectionInfo.siteSection.trim()&&wbgData.page.sectionInfo.siteSection:"undefined"!=typeof s_prop24&&""!==s_prop24&&"Not Available"!==s_prop24&&"not available"!==s_prop24?s_prop24:"undefined"!=typeof s&&"undefined"!=typeof s.prop24&&""!==s.prop24&&"Not Available"!==s.prop24&&"not available"!==s.prop24&&s.prop24;var e="";return"undefined"!=typeof wbgData?"undefined"!=typeof wbgData.page&&"undefined"!=typeof wbgData.page.sectionInfo&&"undefined"!=typeof wbgData.page.sectionInfo.siteSection1&&""!=wbgData.page.sectionInfo.siteSection1.trim()&&(e=wbgData.page.sectionInfo.siteSection1):"undefined"!=typeof S_prop25&&""!==S_prop25&&"Not Available"!==S_prop25&&"not available"!==S_prop25?e=S_prop25:"undefined"!=typeof s&&"undefined"!=typeof s.prop25&&""!==s.prop25&&"Not Available"!==s.prop25&&"not available"!==s.prop25&&(e=s.prop25),e},storeLength:"pageview",cleanText:!0},SiteSectionLevel2:{customJS:function(){"undefined"!=typeof wbgData?"undefined"!=typeof wbgData.page&&"undefined"!=typeof wbgData.page.sectionInfo&&"undefined"!=typeof wbgData.page.sectionInfo.siteSection1&&""!=wbgData.page.sectionInfo.siteSection1.trim()&&wbgData.page.sectionInfo.siteSection1:"undefined"!=typeof S_prop25&&""!==S_prop25&&"Not Available"!==S_prop25&&"not available"!==S_prop25?S_prop25:"undefined"!=typeof s&&"undefined"!=typeof s.prop25&&""!==s.prop25&&"Not Available"!==s.prop25&&"not available"!==s.prop25&&s.prop25;var e="";return"undefined"!=typeof wbgData?"undefined"!=typeof wbgData.page&&"undefined"!=typeof wbgData.page.sectionInfo&&"undefined"!=typeof wbgData.page.sectionInfo.siteSection2&&""!=wbgData.page.sectionInfo.siteSection2.trim()&&(e=wbgData.page.sectionInfo.siteSection2):"undefined"!=typeof S_prop26&&""!==S_prop26&&"Not Available"!==S_prop26&&"not available"!==S_prop26?S_prop26:"undefined"!=typeof s&&"undefined"!=typeof s.prop26&&""!==s.prop26&&"Not Available"!==s.prop26&&"not available"!==s.prop26&&s.prop26,e},storeLength:"pageview",cleanText:!0},SiteSectionLevel3:{jsVariable:"wbgData.page.sectionInfo.subsectionP4",storeLength:"pageview",cleanText:!0},SiteSectionLevel4:{jsVariable:"wbgData.page.sectionInfo.subsectionP5",storeLength:"pageview",cleanText:!0},SiteType:{customJS:function(){var t=e.location.hostname.split(".")[0];return"undefined"!=typeof wbgData&&"undefined"!=typeof wbgData.site&&"undefined"!=typeof wbgData.site.siteInfo&&"undefined"!=typeof wbgData.site.siteInfo.siteType&&""!=wbgData.site.siteInfo.siteType.trim()&&(t=wbgData.site.siteInfo.siteType),t},storeLength:"pageview",forceLowerCase:!0,cleanText:!0},"Social share Icons":{customJS:function(){return $(".s03v2-icon.sharebox div a")[0].title},storeLength:"pageview",forceLowerCase:!0,cleanText:!0},SPageFirstPublished:{customJS:function(){var e="";return"undefined"!=typeof wbgData?"undefined"!=typeof wbgData.page&&"undefined"!=typeof wbgData.page.pageInfo&&"undefined"!=typeof wbgData.page.pageInfo.pageFirstPub&&""!=wbgData.page.pageInfo.pageFirstPub.trim()&&(e=wbgData.page.pageInfo.pageFirstPub):"undefined"!=typeof s_prop3&&""!==s_prop3&&"Not Available"!==s_prop3&&"not available"!==s_prop3?e=s_prop3.replace(/\//g,"-"):"undefined"!=typeof s&&"undefined"!=typeof s.prop3&&""!==s.prop3&&"Not Available"!==s.prop3&&"not available"!==s.prop3&&(e=s.prop3.replace(/\//g,"-")),e},storeLength:"pageview",forceLowerCase:!0,cleanText:!0},SPageLastModified:{customJS:function(){var e="";return"undefined"!=typeof wbgData?"undefined"!=typeof wbgData.page&&"undefined"!=typeof wbgData.page.pageInfo&&"undefined"!=typeof wbgData.page.pageInfo.pageLastMod&&""!=wbgData.page.pageInfo.pageLastMod.trim()&&(e=wbgData.page.pageInfo.pageLastMod):"undefined"!=typeof s_prop3&&""!==s_prop3&&"Not Available"!==s_prop3&&"not available"!==s_prop3?e=s_prop3.replace(/\//g,"-"):"undefined"!=typeof s&&"undefined"!=typeof s.prop3&&""!==s.prop3&&"Not Available"!==s.prop3&&"not available"!==s.prop3&&(e=s.prop3.replace(/\//g,"-")),e},storeLength:"pageview",forceLowerCase:!0,cleanText:!0},SubTopicTag:{customJS:function(){var e="";return"undefined"!=typeof wbgData?"undefined"!=typeof wbgData.page&&"undefined"!=typeof wbgData.page.pageInfo&&"undefined"!=typeof wbgData.page.pageInfo.subtopicTag&&""!=wbgData.page.pageInfo.subtopicTag.trim()&&(e=wbgData.page.pageInfo.subtopicTag):"undefined"!=typeof s_prop5&&""!==s_prop5&&"Not Available"!==s_prop5&&"not available"!==s_prop5?e=s_prop5:"undefined"!=typeof s&&"undefined"!=typeof s.prop5&&""!==s.prop5&&"Not Available"!==s.prop5&&"not available"!==s.prop5&&(e=s.prop5),e},storeLength:"pageview",forceLowerCase:!0,cleanText:!0},TopicTag:{customJS:function(){var e="";return"undefined"!=typeof wbgData?"undefined"!=typeof wbgData.page&&"undefined"!=typeof wbgData.page.pageInfo&&"undefined"!=typeof wbgData.page.pageInfo.topicTag&&""!=wbgData.page.pageInfo.topicTag.trim()&&(e=wbgData.page.pageInfo.topicTag):"undefined"!=typeof s_prop4&&""!==s_prop4&&"Not Available"!==s_prop4&&"not available"!==s_prop4?e=s_prop4:"undefined"!=typeof s&&"undefined"!=typeof s.prop4&&""!==s.prop4&&"Not Available"!==s.prop4&&"not available"!==s.prop4&&(e=s.prop4),e},storeLength:"pageview",forceLowerCase:!0,cleanText:!0},TwitterPixelDownload:{customJS:function(){"object"==typeof twttr&&twttr.conversion.trackPid("nz5nn",{tw_sale_amount:0,tw_order_quantity:0})},storeLength:"pageview"},TwitterPixelLiveVideo60Sec:{customJS:function(){"object"==typeof twttr&&twttr.conversion.trackPid("nz6sf",{tw_sale_amount:0,tw_order_quantity:0})},storeLength:"pageview"},TwitterPixelVideoReplay:{customJS:function(){"object"==typeof twttr&&twttr.conversion.trackPid("nz5ns",{tw_sale_amount:0,tw_order_quantity:0})},storeLength:"pageview"},UserIPAddress:{jsVariable:"wbgData.site.siteInfo.userIpaddressType",storeLength:"pageview"},VisitorIpAddress:{customJS:function(){console.log(ipaddress_dtm),$.get("http://ipinfo.io",function(e){var t="/wbg/aem/service/checkipdtm.html?ipaddr="+e.ip;$.ajax({url:t,success:function(e){return console.log(e.trim()),e.trim()}})},"jsonp")},storeLength:"pageview"},VisitorMarketingCloudID:{customJS:function(){return Visitor.getInstance("1E7B833554B8360D0A4C98A5@AdobeOrg").getMarketingCloudVisitorID()},storeLength:"pageview"},WebPackage:{customJS:function(){var e="";return"undefined"!=typeof wbgData?"undefined"!=typeof wbgData.site&&"undefined"!=typeof wbgData.site.packageInfo&&"undefined"!=typeof wbgData.site.packageInfo.webpackage&&""!=wbgData.site.packageInfo.webpackage.trim()&&(e=wbgData.site.packageInfo.webpackage):"undefined"!=typeof s_prop41&&""!==s_prop41&&"Not Available"!==s_prop41&&"not available"!==s_prop41?e=s_prop41:"undefined"!=typeof s&&"undefined"!=typeof s.prop41&&""!==s.prop41&&"Not Available"!==s.prop41&&"not available"!==s.prop41&&(e=s.prop41),e},storeLength:"pageview",forceLowerCase:!0,cleanText:!0}},appVersion:"7QN",buildDate:"2018-09-10 19:53:46 UTC",publishDate:"2018-09-10 19:52:17 UTC"})}(window,document); \ No newline at end of file diff --git a/code/China _ Data_files/sdk.js.download b/code/China _ Data_files/sdk.js.download new file mode 100644 index 00000000..b997f06e --- /dev/null +++ b/code/China _ Data_files/sdk.js.download @@ -0,0 +1,218 @@ +/*1537903327,,JIT Construction: v4349184,en_US*/ + +/** + * Copyright (c) 2017-present, Facebook, Inc. All rights reserved. + * + * You are hereby granted a non-exclusive, worldwide, royalty-free license to use, + * copy, modify, and distribute this software in source code or binary form for use + * in connection with the web services and APIs provided by Facebook. + * + * As with any software that integrates with the Facebook platform, your use of + * this software is subject to the Facebook Platform Policy + * [http://developers.facebook.com/policy/]. This copyright notice shall be + * included in all copies or substantial portions of the software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +try {window.FB|| (function(window, fb_fif_window) { var apply = Function.prototype.apply; function bindContext(fn, thisArg) { return function _sdkBound() { return apply.call(fn, thisArg, arguments); }; } var global = { __type: 'JS_SDK_SANDBOX', window: window, document: window.document }; var sandboxWhitelist = [ 'setTimeout', 'setInterval', 'clearTimeout', 'clearInterval' ]; for (var i = 0; i < sandboxWhitelist.length; i++) { global[sandboxWhitelist[i]] = bindContext( window[sandboxWhitelist[i]], window ); } (function() { var self = window; var __DEV__ = 0; function emptyFunction() {}; var __transform_includes = {}; var __annotator, __bodyWrapper; var __w, __t; var undefined; var __p; with (this) { (function(){var a={},b=function(a,b){if(!a&&!b)return null;var c={};typeof a!=="undefined"&&(c.type=a);typeof b!=="undefined"&&(c.signature=b);return c},c=function(a,c){return b(a&&/^[A-Z]/.test(a)?a:undefined,c&&(c.params&&c.params.length||c.returns)?"function("+(c.params?c.params.map(function(a){return/\?/.test(a)?"?"+a.replace("?",""):a}).join(","):"")+")"+(c.returns?":"+c.returns:""):undefined)},d=function(a,b,c){return a},e=function(a,b,d){"sourcemeta"in __transform_includes&&(a.__SMmeta=b);if("typechecks"in __transform_includes){b=c(b?b.name:undefined,d);b&&__w(a,b)}return a},f=function(a,b,c){return c.apply(a,b)},g=function(a,b,c,d){d&&d.params&&__t.apply(a,d.params);c=c.apply(a,b);d&&d.returns&&__t([c,d.returns]);return c},h=function(b,c,d,e,f){if(f){f.callId||(f.callId=f.module+":"+(f.line||0)+":"+(f.column||0));e=f.callId;a[e]=(a[e]||0)+1}return d.apply(b,c)};typeof __transform_includes==="undefined"?(__annotator=d,__bodyWrapper=f):(__annotator=e,"codeusage"in __transform_includes?(__annotator=d,__bodyWrapper=h,__bodyWrapper.getCodeUsage=function(){return a},__bodyWrapper.clearCodeUsage=function(){a={}}):"typechecks"in __transform_includes?__bodyWrapper=g:__bodyWrapper=f)})(); +__t=function(a){return a[0]},__w=function(a){return a}; +var require,__d;(function(a){var b={},c={},d=["global","require","requireDynamic","requireLazy","module","exports"];require=function(d,e){if(Object.prototype.hasOwnProperty.call(c,d))return c[d];if(!Object.prototype.hasOwnProperty.call(b,d)){if(e)return null;throw new Error("Module "+d+" has not been defined")}e=b[d];var f=e.deps,g=e.factory.length,h,i=[];for(var j=0;j1?Number(arguments[1]):0;isNaN(c)&&(c=0);var d=Math.min(Math.max(c,0),b.length);return b.indexOf(String(a),c)==d};a.endsWith=function(a){var b=String(this);if(this==null)throw new TypeError("String.prototype.endsWith called on null or undefined");var c=b.length,d=String(a),e=arguments.length>1?Number(arguments[1]):c;isNaN(e)&&(e=0);var f=Math.min(Math.max(e,0),c),g=f-d.length;return g<0?!1:b.lastIndexOf(d,g)==g};a.includes=function(a){if(this==null)throw new TypeError("String.prototype.contains called on null or undefined");var b=String(this),c=arguments.length>1?Number(arguments[1]):0;isNaN(c)&&(c=0);return b.indexOf(String(a),c)!=-1};a.contains=a.includes;a.repeat=function(a){__p&&__p();if(this==null)throw new TypeError("String.prototype.repeat called on null or undefined");var b=String(this);a=a?Number(a):0;isNaN(a)&&(a=0);if(a<0||a===Infinity)throw RangeError();if(a===1)return b;if(a===0)return"";var c="";while(a)a&1&&(c+=b),(a>>=1)&&(b+=b);return c};e.exports=a}),null); +__d("ES6Array",[],(function(a,b,c,d,e,f){"use strict";__p&&__p();a={from:function(a){__p&&__p();if(a==null)throw new TypeError("Object is null or undefined");var b=arguments[1],c=arguments[2],d=this,e=Object(a),f=typeof Symbol==="function"?typeof Symbol==="function"?Symbol.iterator:"@@iterator":"@@iterator",g=typeof b==="function",h=typeof e[f]==="function",i=0,j,k;if(h){j=typeof d==="function"?new d():[];var l=e[f](),m;while(!(m=l.next()).done)k=m.value,g&&(k=b.call(c,k,i)),j[i]=k,i+=1;j.length=i;return j}var n=e.length;(isNaN(n)||n<0)&&(n=0);j=typeof d==="function"?new d(n):new Array(n);while(i>>0;for(var e=0;e>>0,d=arguments[1],e=d>>0,f=e<0?Math.max(c+e,0):Math.min(e,c),g=arguments[2],h=g===undefined?c:g>>0,i=h<0?Math.max(c+h,0):Math.min(h,c);while(f9999?"+":"")+("00000"+Math.abs(a)).slice(0<=a&&a<=9999?-4:-6);return a+"-"+g(this.getUTCMonth()+1)+"-"+g(this.getUTCDate())+"T"+g(this.getUTCHours())+":"+g(this.getUTCMinutes())+":"+g(this.getUTCSeconds())+"."+(this.getUTCMilliseconds()/1e3).toFixed(3).slice(2,5)+"Z"}};e.exports=a}),null); +__d("ES6Number",[],(function(a,b,c,d,e,f){__p&&__p();a=Math.pow(2,-52);b=Math.pow(2,53)-1;c=-1*b;d={isFinite:function(a){function b(b){return a.apply(this,arguments)}b.toString=function(){return a.toString()};return b}(function(a){return typeof a==="number"&&isFinite(a)}),isNaN:function(a){function b(b){return a.apply(this,arguments)}b.toString=function(){return a.toString()};return b}(function(a){return typeof a==="number"&&isNaN(a)}),isInteger:function(a){return this.isFinite(a)&&Math.floor(a)===a},isSafeInteger:function(a){return this.isFinite(a)&&a>=this.MIN_SAFE_INTEGER&&a<=this.MAX_SAFE_INTEGER&&Math.floor(a)===a},EPSILON:a,MAX_SAFE_INTEGER:b,MIN_SAFE_INTEGER:c};e.exports=d}),null); +__d("ES6Object",["ie8DontEnum"],(function(a,b,c,d,e,f,g){__p&&__p();var h={}.hasOwnProperty;a={assign:function(a){__p&&__p();if(a==null)throw new TypeError("Object.assign target cannot be null or undefined");a=Object(a);for(var b=0;b<(arguments.length<=1?0:arguments.length-1);b++){var c=b+1<1||arguments.length<=b+1?undefined:arguments[b+1];if(c==null)continue;c=Object(c);for(var d in c)h.call(c,d)&&(a[d]=c[d]);g(c,function(b){return a[b]=c[b]})}return a},is:function(a,b){if(a===b)return a!==0||1/a===1/b;else return a!==a&&b!==b}};e.exports=a}),null); +__d("ES7ArrayPrototype",["ES5Array","ES5ArrayPrototype"],(function(a,b,c,d,e,f,g,h){__p&&__p();var i=g.isArray,j=h.indexOf;function k(a){return Math.min(Math.max(l(a),0),Number.MAX_SAFE_INTEGER)}function l(a){a=Number(a);return isFinite(a)&&a!==0?m(a)*Math.floor(Math.abs(a)):a}function m(a){return a>=0?1:-1}a={includes:function(a){"use strict";__p&&__p();if(a!==undefined&&i(this)&&!(typeof a==="number"&&isNaN(a)))return j.apply(this,arguments)!==-1;var b=Object(this),c=b.length?k(b.length):0;if(c===0)return!1;var d=arguments.length>1?l(arguments[1]):0,e=d<0?Math.max(c+d,0):d,f=isNaN(a)&&typeof a==="number";while(e1)))/4)-A((a-1901+b)/100)+A((a-1601+b)/400)};(o=b.hasOwnProperty)||(o=function(a){var b={},c;(b.__proto__=null,b.__proto__={toString:1},b).toString!=n?o=function(a){var b=this.__proto__;a=a in(this.__proto__=null,this);this.__proto__=b;return a}:(c=b.constructor,o=function(a){var b=(this.constructor||c).prototype;return a in this&&!(a in b&&this[a]===b[a])});return o.call(this,a)});p=function(a,b){__p&&__p();var d=0,e,f;(e=function(){this.valueOf=0}).prototype.valueOf=0;f=new e();for(e in f)o.call(f,e)&&d++;f=null;!d?(f=["valueOf","toString","toLocaleString","propertyIsEnumerable","isPrototypeOf","hasOwnProperty","constructor"],p=function(a,b){var d=n.call(a)==t,e,g=!d&&typeof a.constructor!="function"&&c[typeof a.hasOwnProperty]&&a.hasOwnProperty||o;for(e in a)!(d&&e=="prototype")&&g.call(a,e)&&b(e);for(d=f.length;e=f[--d];g.call(a,e)&&b(e));}):d==2?p=function(a,b){var c={},d=n.call(a)==t,e;for(e in a)!(d&&e=="prototype")&&!o.call(c,e)&&(c[e]=1)&&o.call(a,e)&&b(e)}:p=function(a,b){var c=n.call(a)==t,d,e;for(d in a)!(c&&d=="prototype")&&o.call(a,d)&&!(e=d==="constructor")&&b(d);(e||o.call(a,d="constructor"))&&b(d)};return p(a,b)};if(!s("json-stringify")){var D={92:"\\\\",34:'\\"',8:"\\b",12:"\\f",10:"\\n",13:"\\r",9:"\\t"},E="000000",F=function(a,b){return(E+(b||0)).slice(-a)},G="\\u00",H=function(a){__p&&__p();var b='"',c=0,d=a.length,e=!z||d>10,f=e&&(z?a.split(""):a);for(;c-1/0&&h<1/0){if(C){m=A(h/864e5);for(j=A(m/365.2425)+1970-1;C(j+1,0)<=m;j++);for(k=A((m-C(j,0))/30.42);C(j,k+1)<=m;k++);m=1+m-C(j,k);r=(h%864e5+864e5)%864e5;s=A(r/36e5)%24;t=A(r/6e4)%60;z=A(r/1e3)%60;r=r%1e3}else j=h.getUTCFullYear(),k=h.getUTCMonth(),m=h.getUTCDate(),s=h.getUTCHours(),t=h.getUTCMinutes(),z=h.getUTCSeconds(),r=h.getUTCMilliseconds();h=(j<=0||j>=1e4?(j<0?"-":"+")+F(6,j<0?-j:j):F(4,j))+"-"+F(2,k+1)+"-"+F(2,m)+"T"+F(2,s)+":"+F(2,t)+":"+F(2,z)+"."+F(3,r)+"Z"}else h=null;else typeof h.toJSON=="function"&&(i!=v&&i!=w&&i!=x||o.call(h,"toJSON"))&&(h=h.toJSON(a))}c&&(h=c.call(b,a,h));if(h===null)return"null";i=n.call(h);if(i==y)return""+h;else if(i==v)return h>-1/0&&h<1/0?""+h:"null";else if(i==w)return H(""+h);if(typeof h=="object"){for(j=g.length;j--;)if(g[j]===h)throw l();g.push(h);B=[];k=f;f+=e;if(i==x){for(m=0,j=h.length;m0)for(e="",d>10&&(d=10);e.length=48&&g<=57||g>=97&&g<=102||g>=65&&g<=70||N();c+=J("0x"+a.slice(d,L));break;default:N()}}else{if(g==34)break;g=a.charCodeAt(L);d=L;while(g>=32&&g!=92&&g!=34)g=a.charCodeAt(++L);c+=a.slice(d,L)}}if(a.charCodeAt(L)==34){L++;return c}N();default:d=L;g==45&&(f=!0,g=a.charCodeAt(++L));if(g>=48&&g<=57){g==48&&(g=a.charCodeAt(L+1),g>=48&&g<=57)&&N();f=!1;for(;L=48&&g<=57);L++);if(a.charCodeAt(L)==46){e=++L;for(;e=48&&g<=57);e++);e==L&&N();L=e}g=a.charCodeAt(L);if(g==101||g==69){g=a.charCodeAt(++L);(g==43||g==45)&&L++;for(e=L;e=48&&g<=57);e++);e==L&&N();L=e}return+a.slice(d,L)}f&&N();if(a.slice(L,L+4)=="true"){L+=4;return!0}else if(a.slice(L,L+5)=="false"){L+=5;return!1}else if(a.slice(L,L+4)=="null"){L+=4;return null}N()}}return"$"},P=function(a){__p&&__p();var b,c;a=="$"&&N();if(typeof a=="string"){if((z?a.charAt(0):a[0])=="@")return a.slice(1);if(a=="["){b=[];for(;;c||(c=!0)){a=O();if(a=="]")break;c&&(a==","?(a=O(),a=="]"&&N()):N());a==","&&N();b.push(P(a))}return b}else if(a=="{"){b={};for(;;c||(c=!0)){a=O();if(a=="}")break;c&&(a==","?(a=O(),a=="}"&&N()):N());(a==","||typeof a!="string"||(z?a.charAt(0):a[0])!="@"||O()!=":")&&N();b[a.slice(1)]=P(O())}return b}N()}return a},Q=function(a,b,c){c=R(a,b,c);c===q?delete a[b]:a[b]=c},R=function(a,b,c){var d=a[b],e;if(typeof d=="object"&&d)if(n.call(d)==x)for(e=d.length;e--;)Q(d,e,c);else p(d,function(a){Q(d,a,c)});return c.call(a,b,d)};a.parse=function(a,b){var c;L=0;M=""+a;a=P(O());O()!="$"&&N();L=M=null;return b&&n.call(b)==t?R((c={},c[""]=a,c),"",b):a}}}a.runInContext=k;return a}if(d&&!b)k(e,d);else{var l=e.JSON,m=e.JSON3,n=!1,o=k(e,e.JSON3={noConflict:function(){n||(n=!0,e.JSON=l,e.JSON3=m,l=m=null);return o}});e.JSON={parse:o.parse,stringify:o.stringify}}b&&i(function(){return o})}).call(this)}var k=!1,l=function(){k||(k=!0,j());return h.exports};b=function(a){switch(a){case undefined:return l()}};e.exports=b}),null); +__d("json3",["json3-3.3.2"],(function(a,b,c,d,e,f){e.exports=b("json3-3.3.2")()}),null); +__d("ES",["ES5Array","ES5ArrayPrototype","ES5Date","ES5FunctionPrototype","ES5Object","ES5StringPrototype","ES6Array","ES6ArrayPrototype","ES6DatePrototype","ES6Number","ES6Object","ES7ArrayPrototype","ES7Object","ES7StringPrototype","json3"],(function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u){__p&&__p();var v={}.toString,w={"JSON.stringify":u.stringify,"JSON.parse":u.parse};c={"Array.prototype":h,"Function.prototype":j,"String.prototype":l,Object:k,Array:g,Date:i};d={Object:q,"Array.prototype":n,"Date.prototype":o,Number:p,Array:m};f={Object:s,"String.prototype":t,"Array.prototype":r};function a(a){__p&&__p();for(var b in a){if(!Object.prototype.hasOwnProperty.call(a,b))continue;var c=a[b],d=b.split(".");if(d.length===2){var e=d[0],f=d[1];if(!e||!f||!window[e]||!window[e][f]){var g=e?window[e]:"-",h=e&&window[e]&&f?window[e][f]:"-";throw new Error("Unexpected state (t11975770): "+(e+", "+f+", "+g+", "+h+", "+b))}}e=d.length===2?window[d[0]][d[1]]:window[b];for(var i in c){if(!Object.prototype.hasOwnProperty.call(c,i))continue;if(typeof c[i]!=="function"){w[b+"."+i]=c[i];continue}f=e[i];w[b+"."+i]=f&&/\{\s+\[native code\]\s\}/.test(f)?f:c[i]}}}a(c);a(d);a(f);function b(a,b,c){var d=c?v.call(a).slice(8,-1)+".prototype":a,e=w[d+"."+b]||a[b];if(typeof e==="function"){for(var f=arguments.length,g=new Array(f>3?f-3:0),h=3;h=0)continue;c[d]=a[d]}return c};a.taggedTemplateLiteralLoose=function(a,b){a.raw=b;return a};a.bind=g.bind;e.exports=a}),null); var ES = require('ES'); var babelHelpers = require('sdk.babelHelpers'); (function(a,b){var c="keys",d="values",e="entries",f=function(){var a=h(Array),f;a||(f=function(){function a(a,b){"use strict";this.$1=a,this.$2=b,this.$3=0}a.prototype.next=function(){"use strict";if(this.$1==null)return{value:b,done:!0};var a=this.$1,f=this.$1.length,g=this.$3,h=this.$2;if(g>=f){this.$1=b;return{value:b,done:!0}}this.$3=g+1;if(h===c)return{value:g,done:!1};else if(h===d)return{value:a[g],done:!1};else if(h===e)return{value:[g,a[g]],done:!1}};a.prototype[typeof Symbol==="function"?Symbol.iterator:"@@iterator"]=function(){"use strict";return this};return a}());return{keys:a?function(a){return a.keys()}:function(a){return new f(a,c)},values:a?function(a){return a.values()}:function(a){return new f(a,d)},entries:a?function(a){return a.entries()}:function(a){return new f(a,e)}}}(),g=function(){var a=h(String),c;a||(c=function(){function a(a){"use strict";this.$1=a,this.$2=0}a.prototype.next=function(){"use strict";if(this.$1==null)return{value:b,done:!0};var a=this.$2,c=this.$1,d=c.length;if(a>=d){this.$1=b;return{value:b,done:!0}}var e=c.charCodeAt(a);if(e<55296||e>56319||a+1===d)e=c[a];else{d=c.charCodeAt(a+1);d<56320||d>57343?e=c[a]:e=c[a]+c[a+1]}this.$2=a+e.length;return{value:e,done:!1}};a.prototype[typeof Symbol==="function"?Symbol.iterator:"@@iterator"]=function(){"use strict";return this};return a}());return{keys:function(){throw TypeError("Strings default iterator doesn't implement keys.")},values:a?function(a){return a[typeof Symbol==="function"?Symbol.iterator:"@@iterator"]()}:function(a){return new c(a)},entries:function(){throw TypeError("Strings default iterator doesn't implement entries.")}}}();function h(a){return typeof a.prototype[typeof Symbol==="function"?Symbol.iterator:"@@iterator"]==="function"&&typeof a.prototype.values==="function"&&typeof a.prototype.keys==="function"&&typeof a.prototype.entries==="function"}function i(a,b){"use strict";this.$1=a,this.$2=b,this.$3=ES("Object","keys",!1,a),this.$4=0}i.prototype.next=function(){"use strict";var a=this.$3.length,f=this.$4,g=this.$2,h=this.$3[f];if(f>=a){this.$1=b;return{value:b,done:!0}}this.$4=f+1;if(g===c)return{value:h,done:!1};else if(g===d)return{value:this.$1[h],done:!1};else if(g===e)return{value:[h,this.$1[h]],done:!1}};i.prototype[typeof Symbol==="function"?Symbol.iterator:"@@iterator"]=function(){"use strict";return this};var j={keys:function(a){return new i(a,c)},values:function(a){return new i(a,d)},entries:function(a){return new i(a,e)}};function k(a,b){if(typeof a==="string")return g[b||d](a);else if(ES("Array","isArray",!1,a))return f[b||d](a);else if(a[typeof Symbol==="function"?Symbol.iterator:"@@iterator"])return a[typeof Symbol==="function"?Symbol.iterator:"@@iterator"]();else return j[b||e](a)}ES("Object","assign",!1,k,{KIND_KEYS:c,KIND_VALUES:d,KIND_ENTRIES:e,keys:function(a){return k(a,c)},values:function(a){return k(a,d)},entries:function(a){return k(a,e)},generic:j.entries});a.FB_enumerate=k})(typeof global==="undefined"?this:global); +(function(a,b){var c=a.window||a;function d(){return"f"+(Math.random()*(1<<30)).toString(16).replace(".","")}function e(a){var b=a?a.ownerDocument||a:document;b=b.defaultView||c;return!!(a&&(typeof b.Node==="function"?a instanceof b.Node:typeof a==="object"&&typeof a.nodeType==="number"&&typeof a.nodeName==="string"))}function f(a){a=c[a];if(a==null)return!0;if(typeof c.Symbol!=="function")return!0;var b=a.prototype;return a==null||typeof a!=="function"||typeof b.clear!=="function"||new a().size!==0||typeof b.keys!=="function"||typeof b.forEach!=="function"}var g=a.FB_enumerate,h=function(){if(!f("Map"))return c.Map;var i="key",j="value",k="key+value",l="$map_",m,n="IE_HASH_";function a(a){"use strict";if(!s(this))throw new TypeError("Wrong map object type.");r(this);if(a!=null){a=g(a);var b;while(!(b=a.next()).done){if(!s(b.value))throw new TypeError("Expected iterable items to be pair objects.");this.set(b.value[0],b.value[1])}}}a.prototype.clear=function(){"use strict";r(this)};a.prototype.has=function(a){"use strict";a=p(this,a);return!!(a!=null&&this._mapData[a])};a.prototype.set=function(a,b){"use strict";var c=p(this,a);c!=null&&this._mapData[c]?this._mapData[c][1]=b:(c=this._mapData.push([a,b])-1,q(this,a,c),this.size+=1);return this};a.prototype.get=function(a){"use strict";a=p(this,a);if(a==null)return b;else return this._mapData[a][1]};a.prototype["delete"]=function(a){"use strict";var c=p(this,a);if(c!=null&&this._mapData[c]){q(this,a,b);this._mapData[c]=b;this.size-=1;return!0}else return!1};a.prototype.entries=function(){"use strict";return new o(this,k)};a.prototype.keys=function(){"use strict";return new o(this,i)};a.prototype.values=function(){"use strict";return new o(this,j)};a.prototype.forEach=function(a,c){"use strict";if(typeof a!=="function")throw new TypeError("Callback must be callable.");a=ES(a,"bind",!0,c||b);c=this._mapData;for(var d=0;ddiv{overflow:hidden}.fb_link img{border:none}\u0040keyframes fb_transform{from{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.fb_animate{animation:fb_transform .3s forwards}\n.fb_dialog{background:rgba(82, 82, 82, .7);position:absolute;top:-10000px;z-index:10001}.fb_reset .fb_dialog_legacy{overflow:visible}.fb_dialog_advanced{padding:10px;border-radius:8px}.fb_dialog_content{background:#fff;color:#333}.fb_dialog_close_icon{background:url(https:\/\/static.xx.fbcdn.net\/rsrc.php\/v3\/yq\/r\/IE9JII6Z1Ys.png) no-repeat scroll 0 0 transparent;cursor:pointer;display:block;height:15px;position:absolute;right:18px;top:17px;width:15px}.fb_dialog_mobile .fb_dialog_close_icon{top:5px;left:5px;right:auto}.fb_dialog_padding{background-color:transparent;position:absolute;width:1px;z-index:-1}.fb_dialog_close_icon:hover{background:url(https:\/\/static.xx.fbcdn.net\/rsrc.php\/v3\/yq\/r\/IE9JII6Z1Ys.png) no-repeat scroll 0 -15px transparent}.fb_dialog_close_icon:active{background:url(https:\/\/static.xx.fbcdn.net\/rsrc.php\/v3\/yq\/r\/IE9JII6Z1Ys.png) no-repeat scroll 0 -30px transparent}.fb_dialog_loader{background-color:#f5f6f7;border:1px solid #606060;font-size:24px;padding:20px}.fb_dialog_top_left,.fb_dialog_top_right,.fb_dialog_bottom_left,.fb_dialog_bottom_right{height:10px;width:10px;overflow:hidden;position:absolute}.fb_dialog_top_left{background:url(https:\/\/static.xx.fbcdn.net\/rsrc.php\/v3\/ye\/r\/8YeTNIlTZjm.png) no-repeat 0 0;left:-10px;top:-10px}.fb_dialog_top_right{background:url(https:\/\/static.xx.fbcdn.net\/rsrc.php\/v3\/ye\/r\/8YeTNIlTZjm.png) no-repeat 0 -10px;right:-10px;top:-10px}.fb_dialog_bottom_left{background:url(https:\/\/static.xx.fbcdn.net\/rsrc.php\/v3\/ye\/r\/8YeTNIlTZjm.png) no-repeat 0 -20px;bottom:-10px;left:-10px}.fb_dialog_bottom_right{background:url(https:\/\/static.xx.fbcdn.net\/rsrc.php\/v3\/ye\/r\/8YeTNIlTZjm.png) no-repeat 0 -30px;right:-10px;bottom:-10px}.fb_dialog_vert_left,.fb_dialog_vert_right,.fb_dialog_horiz_top,.fb_dialog_horiz_bottom{position:absolute;background:#525252;filter:alpha(opacity=70);opacity:.7}.fb_dialog_vert_left,.fb_dialog_vert_right{width:10px;height:100\u0025}.fb_dialog_vert_left{margin-left:-10px}.fb_dialog_vert_right{right:0;margin-right:-10px}.fb_dialog_horiz_top,.fb_dialog_horiz_bottom{width:100\u0025;height:10px}.fb_dialog_horiz_top{margin-top:-10px}.fb_dialog_horiz_bottom{bottom:0;margin-bottom:-10px}.fb_dialog_iframe{line-height:0}.fb_dialog_content .dialog_title{background:#6d84b4;border:1px solid #365899;color:#fff;font-size:14px;font-weight:bold;margin:0}.fb_dialog_content .dialog_title>span{background:url(https:\/\/static.xx.fbcdn.net\/rsrc.php\/v3\/yd\/r\/Cou7n-nqK52.gif) no-repeat 5px 50\u0025;float:left;padding:5px 0 7px 26px}body.fb_hidden{-webkit-transform:none;height:100\u0025;margin:0;overflow:visible;position:absolute;top:-10000px;left:0;width:100\u0025}.fb_dialog.fb_dialog_mobile.loading{background:url(https:\/\/static.xx.fbcdn.net\/rsrc.php\/v3\/ya\/r\/3rhSv5V8j3o.gif) white no-repeat 50\u0025 50\u0025;min-height:100\u0025;min-width:100\u0025;overflow:hidden;position:absolute;top:0;z-index:10001}.fb_dialog.fb_dialog_mobile.loading.centered{width:auto;height:auto;min-height:initial;min-width:initial;background:none}.fb_dialog.fb_dialog_mobile.loading.centered #fb_dialog_loader_spinner{width:100\u0025}.fb_dialog.fb_dialog_mobile.loading.centered .fb_dialog_content{background:none}.loading.centered #fb_dialog_loader_close{color:#fff;display:block;padding-top:20px;clear:both;font-size:18px}#fb-root #fb_dialog_ipad_overlay{background:rgba(0, 0, 0, .45);position:absolute;bottom:0;left:0;right:0;top:0;width:100\u0025;min-height:100\u0025;z-index:10000}#fb-root #fb_dialog_ipad_overlay.hidden{display:none}.fb_dialog.fb_dialog_mobile.loading iframe{visibility:hidden}.fb_dialog_mobile .fb_dialog_iframe{position:-webkit-sticky;top:0}.fb_dialog_content .dialog_header{-webkit-box-shadow:white 0 1px 1px -1px inset;background:-webkit-gradient(linear, 0\u0025 0\u0025, 0\u0025 100\u0025, from(#738ABA), to(#2C4987));border-bottom:1px solid;border-color:#1d4088;color:#fff;font:14px Helvetica, sans-serif;font-weight:bold;text-overflow:ellipsis;text-shadow:rgba(0, 30, 84, .296875) 0 -1px 0;vertical-align:middle;white-space:nowrap}.fb_dialog_content .dialog_header table{-webkit-font-smoothing:subpixel-antialiased;height:43px;width:100\u0025}.fb_dialog_content .dialog_header td.header_left{font-size:12px;padding-left:5px;vertical-align:middle;width:60px}.fb_dialog_content .dialog_header td.header_right{font-size:12px;padding-right:5px;vertical-align:middle;width:60px}.fb_dialog_content .touchable_button{background:-webkit-gradient(linear, 0\u0025 0\u0025, 0\u0025 100\u0025, from(#4966A6), color-stop(.5, #355492), to(#2A4887));border:1px solid #29487d;-webkit-background-clip:padding-box;-webkit-border-radius:3px;-webkit-box-shadow:rgba(0, 0, 0, .117188) 0 1px 1px inset, rgba(255, 255, 255, .167969) 0 1px 0;display:inline-block;margin-top:3px;max-width:85px;line-height:18px;padding:4px 12px;position:relative}.fb_dialog_content .dialog_header .touchable_button input{border:none;background:none;color:#fff;font:12px Helvetica, sans-serif;font-weight:bold;margin:2px -12px;padding:2px 6px 3px 6px;text-shadow:rgba(0, 30, 84, .296875) 0 -1px 0}.fb_dialog_content .dialog_header .header_center{color:#fff;font-size:16px;font-weight:bold;line-height:18px;text-align:center;vertical-align:middle}.fb_dialog_content .dialog_content{background:url(https:\/\/static.xx.fbcdn.net\/rsrc.php\/v3\/y9\/r\/jKEcVPZFk-2.gif) no-repeat 50\u0025 50\u0025;border:1px solid #555;border-bottom:0;border-top:0;height:150px}.fb_dialog_content .dialog_footer{background:#f5f6f7;border:1px solid #555;border-top-color:#ccc;height:40px}#fb_dialog_loader_close{float:left}.fb_dialog.fb_dialog_mobile .fb_dialog_close_button{text-shadow:rgba(0, 30, 84, .296875) 0 -1px 0}.fb_dialog.fb_dialog_mobile .fb_dialog_close_icon{visibility:hidden}#fb_dialog_loader_spinner{animation:rotateSpinner 1.2s linear infinite;background-color:transparent;background-image:url(https:\/\/static.xx.fbcdn.net\/rsrc.php\/v3\/yD\/r\/t-wz8gw1xG1.png);background-repeat:no-repeat;background-position:50\u0025 50\u0025;height:24px;width:24px}\u0040keyframes rotateSpinner{0\u0025{transform:rotate(0deg)}100\u0025{transform:rotate(360deg)}}\n.fb_iframe_widget{display:inline-block;position:relative}.fb_iframe_widget span{display:inline-block;position:relative;text-align:justify}.fb_iframe_widget iframe{position:absolute}.fb_iframe_widget_fluid_desktop,.fb_iframe_widget_fluid_desktop span,.fb_iframe_widget_fluid_desktop iframe{max-width:100\u0025}.fb_iframe_widget_fluid_desktop iframe{min-width:220px;position:relative}.fb_iframe_widget_lift{z-index:1}.fb_hide_iframes iframe{position:relative;left:-10000px}.fb_iframe_widget_loader{position:relative;display:inline-block}.fb_iframe_widget_fluid{display:inline}.fb_iframe_widget_fluid span{width:100\u0025}.fb_iframe_widget_loader iframe{min-height:32px;z-index:2;zoom:1}.fb_iframe_widget_loader .FB_Loader{background:url(https:\/\/static.xx.fbcdn.net\/rsrc.php\/v3\/y9\/r\/jKEcVPZFk-2.gif) no-repeat;height:32px;width:32px;margin-left:-16px;position:absolute;left:50\u0025;z-index:4}\n.fb_customer_chat_bounce_in_v2{animation-duration:300ms;animation-name:fb_bounce_in_v2;transition-timing-function:ease-in}.fb_customer_chat_bounce_out_v2{animation-duration:300ms;animation-name:fb_bounce_out_v2;transition-timing-function:ease-in}.fb_customer_chat_bounce_in_v2_mobile_chat_started{animation-duration:300ms;animation-name:fb_bounce_in_v2_mobile_chat_started;transition-timing-function:ease-in}.fb_customer_chat_bounce_out_v2_mobile_chat_started{animation-duration:300ms;animation-name:fb_bounce_out_v2_mobile_chat_started;transition-timing-function:ease-in}.fb_customer_chat_bubble_pop_in{animation-duration:250ms;animation-name:fb_customer_chat_bubble_bounce_in_animation}.fb_customer_chat_bubble_animated_no_badge{box-shadow:0 3px 12px rgba(0, 0, 0, .15);transition:box-shadow 150ms linear}.fb_customer_chat_bubble_animated_no_badge:hover{box-shadow:0 5px 24px rgba(0, 0, 0, .3)}.fb_customer_chat_bubble_animated_with_badge{box-shadow:-5px 4px 14px rgba(0, 0, 0, .15);transition:box-shadow 150ms linear}.fb_customer_chat_bubble_animated_with_badge:hover{box-shadow:-5px 8px 24px rgba(0, 0, 0, .2)}.fb_invisible_flow{display:inherit;height:0;overflow-x:hidden;width:0}.fb_mobile_overlay_active{background-color:#fff;height:100\u0025;overflow:hidden;position:fixed;visibility:hidden;width:100\u0025}\u0040keyframes fb_bounce_in_v2{0\u0025{opacity:0;transform:scale(0, 0);transform-origin:bottom right}50\u0025{transform:scale(1.03, 1.03);transform-origin:bottom right}100\u0025{opacity:1;transform:scale(1, 1);transform-origin:bottom right}}\u0040keyframes fb_bounce_in_v2_mobile_chat_started{0\u0025{opacity:0;top:20px}100\u0025{opacity:1;top:0}}\u0040keyframes fb_bounce_out_v2{0\u0025{opacity:1;transform:scale(1, 1);transform-origin:bottom right}100\u0025{opacity:0;transform:scale(0, 0);transform-origin:bottom right}}\u0040keyframes fb_bounce_out_v2_mobile_chat_started{0\u0025{opacity:1;top:0}100\u0025{opacity:0;top:20px}}\u0040keyframes fb_customer_chat_bubble_bounce_in_animation{0\u0025{bottom:6pt;opacity:0;transform:scale(0, 0);transform-origin:center}70\u0025{bottom:18pt;opacity:1;transform:scale(1.2, 1.2)}100\u0025{transform:scale(1, 1)}}","components":["css:fb.css.base","css:fb.css.dialog","css:fb.css.iframewidget","css:fb.css.customer_chat_plugin_iframe"]});__d("ApiClientConfig",[],{"FlashRequest":{"swfUrl":"https:\/\/connect.facebook.net\/rsrc.php\/v2\/yd\/r\/mxzow1Sdmxr.swf"}});__d("JSSDKCanvasPrefetcherConfig",[],{"blacklist":[144959615576466,768691303149786,320528941393723],"sampleRate":500}); __d("DOMWrapper",[],(function(a,b,c,d,e,f){var g,h;a={setRoot:function(a){g=a},getRoot:function(){return g||document.body},setWindow:function(a){h=a},getWindow:function(){return h||self}};e.exports=a}),null); +__d("dotAccess",[],(function(a,b,c,d,e,f){function a(a,b,c){b=b.split(".");do{var d=b.shift();a=a[d]||c&&(a[d]={})}while(b.length&&a);return a}e.exports=a}),null); +__d("guid",[],(function(a,b,c,d,e,f){function a(){return"f"+(Math.random()*(1<<30)).toString(16).replace(".","")}e.exports=a}),null); +__d("wrapFunction",[],(function(a,b,c,d,e,f){__p&&__p();var g={};a=function(a,b,c){return function(){var d=b in g?g[b](a,c):a;for(var e=arguments.length,f=new Array(e),h=0;h1?b-1:0),d=1;d=b&&e[a in e?a:"log"](d)}var h={level:-1,Level:b,debug:ES(a,"bind",!0,null,"debug",b.DEBUG),info:ES(a,"bind",!0,null,"info",b.INFO),warn:ES(a,"bind",!0,null,"warn",b.WARNING),error:ES(a,"bind",!0,null,"error",b.ERROR),log:a};e.exports=h}),null); +__d("OAuthControllerParameterName",[],(function(a,b,c,d,e,f){e.exports=ES("Object","freeze",!1,{ANDROID_KEY:"android_key",API_KEY:"api_key",APP_ID:"app_id",AUTH_TOKEN:"auth_token",AUTH_TYPE:"auth_type",CLIENT_ID:"client_id",DISPLAY:"display",DOMAIN:"domain",FORCE_CONFIRMATION:"force_confirmation",NEXT:"next",ORIGIN:"origin",PERMS:"perms",REDIRECT_URI:"redirect_uri",REF:"ref",RESPONSE_TYPE:"response_type",RETURN_SCOPES:"return_scopes",SAVED_TOKEN:"saved_token",SCOPE:"scope",SDK:"sdk",STATE:"state",SSO:"sso",SSO_KEY:"sso_key",VERSION:"version",ANCESTOR_ORIGINS:"ancestor_origins"})}),null); +__d("ObservableMixin",[],(function(a,b,c,d,e,f){__p&&__p();function a(){this.__observableEvents={}}a.prototype={inform:function(a){__p&&__p();var b=Array.prototype.slice.call(arguments,1),c=Array.prototype.slice.call(this.getSubscribers(a));for(var d=0;d1?b-1:0),d=1;d1?b-1:0),d=1;d2?d-2:0),f=2;f",EVAL_FRAME_PATTERN_CHROME:/^at .*eval eval (at .*\:\d+\:\d+), .*$/,GLOBAL_ERROR_HANDLER_TAG:typeof window==="undefined"?"":"",GLOBAL_REACT_ERROR_HANDLER_TAG:"",IE_AND_OTHER_FRAME_PATTERN:/(.*)[@\s][^\s]+$/,IE_STACK_TRACE_REFERENCES:["Unknown script code","Function code","eval code"]};e.exports=a}),null); +__d("CometErrorUtils",["ErrorConstants"],(function(a,b,c,d,e,f,g){"use strict";__p&&__p();Error.stackTraceLimit!=null&&Error.stackTraceLimit<40&&(Error.stackTraceLimit=40);var h={getColumn:function(a){a=(a=a.columnNumber)!=null?a:"";return String(a)},getColumnFromStackData:function(a){return a[0]&&a[0].column||""},getIEFrame:function(a){for(var b=0;b:]+:\s/,"");a=a!=null&&ES(c,"startsWith",!0,a)?c.substr(a.length+1):c!==b?c.replace(/^.*?\n/,""):b;return ES(a.split(/\n\n/)[0].replace(/[\(\)]|\[.*?\]/g,"").split("\n"),"map",!0,function(a){__p&&__p();a=ES(a,"trim",!0);var b=a.match(g.EVAL_FRAME_PATTERN_CHROME);b&&(a=b[1]);var c,d;b=a.match(/:(\d+)(?::(\d+))?$/);b&&(c=b[1],d=b[2],a=a.slice(0,-b[0].length));var e;b=h.getIEFrame(a)||a.match(g.IE_AND_OTHER_FRAME_PATTERN);if(b){a=a.substring(b[1].length+1);b=b[1].match(/(?:at)?\s*(.*)(?:[^\s]+|$)/);e=b?b[1]:""}ES(a,"includes",!0,"charset=utf-8;base64,")&&(a="");b={column:d,identifier:e,line:c,script:a};var f=e!=null&&e!==""?" "+e+" (":" ",i=f.length>1?")":"",j=c!=null&&c!==""?":"+c:"",k=d!=null&&d!==""?":"+d:"";f=" at"+f+a+j+k+i;return babelHelpers["extends"]({},b,{text:f})})}};e.exports=h}),null); +__d("Env",[],(function(a,b,c,d,e,f){b={start:ES("Date","now",!1),nocatch:!1,ajaxpipe_token:null};a.Env&&ES("Object","assign",!1,b,a.Env);a.Env=b;e.exports=b}),null); +__d("ManagedError",[],(function(a,b,c,d,e,f){var g;b=babelHelpers.inherits(a,Error);g=b&&b.prototype;function a(a,b){"use strict";g.constructor.call(this,a!==null&&a!==undefined?a:""),a!==null&&a!==undefined?this.message=a:this.message="",this.innerError=b}e.exports=a}),null); +__d("LogviewForcedKeyError",["ManagedError"],(function(a,b,c,d,e,f,g){__p&&__p();var h;b=babelHelpers.inherits(a,g);h=b&&b.prototype;function a(a,b){"use strict";h.constructor.call(this,b,a)}a.prototype.getCause=function(){"use strict";return this.innerError};a.prototype.getForcedCategoryKey=function(){"use strict";return this.message};e.exports=a}),null); +__d("erx",["ex"],(function(a,b,c,d,e,f,g){"use strict";__p&&__p();function a(a){__p&&__p();if(typeof a!=="string")return a;var b=ES(a,"indexOf",!0,g._prefix),c=a.lastIndexOf(g._suffix);if(b<0||c<0)return[a];var d=b+g._prefix.length,e=c+g._suffix.length;if(d>=c)return["erx slice failure: %s",a];b=a.substring(0,b);e=a.substring(e);a=a.substring(d,c);try{d=ES("JSON","parse",!1,a);d[0]=b+d[0]+e;return d}catch(b){return["erx parse failure: %s because %s",a,b.message]}}e.exports=a}),null); +__d("removeFromArray",[],(function(a,b,c,d,e,f){function a(a,b){b=ES(a,"indexOf",!0,b);b!==-1&&a.splice(b,1)}e.exports=a}),null); +__d("ErrorUtils",["CometErrorUtils","Env","ErrorConstants","LogviewForcedKeyError","eprintf","erx","removeFromArray","sprintf"],(function(a,b,c,d,e,f,g,h,i,j,k,l,m,n){"use strict";__p&&__p();var o="",p=/^https?:\/\//i,q=/^Type Mismatch for/,r=[],s,t=[],u=50,v=[],w=!1,x=!1,y=!1,z=/\bnocatch\b/.test(location.search);function A(a){a=a.columnNumber||a.column;return a!=null?String(a):""}function B(a){return a[0]&&a[0].column||""}function C(a){a=a.lineNumber||a.line;return a!=null?String(a):""}function D(a){return a[0]&&a[0].line||""}function E(a){a=a.fileName||a.sourceURL;return a!=null?String(a):""}function F(a){return a[0]&&a[0].script||""}function G(a){__p&&__p();var b=a.stackTrace||a.stack;if(b==null)return[];a=a.message;var c=b.replace(/^[\w \.\<\>:]+:\s/,"");a=a!=null&&ES(c,"startsWith",!0,a)?c.substr(a.length+1):c!==b?c.replace(/^.*?\n/,""):b;return ES(a.split(/\n\n/)[0].replace(/[\(\)]|\[.*?\]/g,"").split("\n"),"map",!0,function(a){__p&&__p();a=ES(a,"trim",!0);var b=a.match(i.EVAL_FRAME_PATTERN_CHROME);b&&(a=b[1]);var c,d;b=a.match(/:(\d+)(?::(\d+))?$/);b&&(c=b[1],d=b[2],a=a.slice(0,-b[0].length));var e;b=g.getIEFrame(a)||a.match(i.IE_AND_OTHER_FRAME_PATTERN);if(b){a=a.substring(b[1].length+1);b=b[1].match(/(?:at)?\s*(.*)(?:[^\s]+|$)/);e=b?b[1]:""}ES(a,"includes",!0,"charset=utf-8;base64,")&&(a="");b={column:d,identifier:e,line:c,script:a};s&&s(b);a=" at"+(b.identifier?" "+b.identifier+" (":" ")+b.script+(b.line?":"+b.line:"")+(b.column?":"+b.column:"")+(b.identifier?")":"");return babelHelpers["extends"]({},b,{text:a})})}function H(a){v.unshift(a),w=!0}function I(){v.shift(),w=v.length!==0}var J={ANONYMOUS_GUARD_TAG:i.ANONYMOUS_GUARD_TAG,GENERATED_GUARD_TAG:o,GLOBAL_ERROR_HANDLER_TAG:i.GLOBAL_ERROR_HANDLER_TAG,history:t,addListener:function(a,b){b===void 0&&(b=!1),r.push(a),b||ES(t,"forEach",!0,function(b){return a(b.error,b.loggingType)})},removeListener:function(a){m(r,a)},setSourceResolver:function(a){s=a},applyWithGuard:function(b,c,d,e,f,g){__p&&__p();H(f||i.ANONYMOUS_GUARD_TAG);h.nocatch&&(z=!0);if(z){try{f=b.apply(c,d||[])}finally{I()}return f}try{return Function.prototype.apply.call(b,c,d||[])}catch(h){f=h;if(f==null)try{var j=c,k=function(a){__p&&__p();if(a==null)return"";else if(typeof a==="object"&&a.toString)return a.toString();else if(typeof a==="boolean"&&a.toString)return a.toString();else if(typeof a==="number"&&a.toString)return a.toString();else if(typeof a==="string")return a;else if(typeof a==="symbol"&&a.toString)return a.toString();else if(typeof a==="function"&&a.toString)return a.toString();return""};if(c!=null)if(c==window)j="[The window object]";else if(c==a)j="[The global object]";else{var l=c,m={};ES(ES("Object","keys",!1,l),"map",!0,function(a,b){b=l[a];m[a]=k(b)});j=m}c=ES(d||[],"map",!0,k);var o="applyWithGuard threw null or undefined:\nFunc: %s\nContext: %s\nArgs: %s",p=b.toString&&b.toString().substr(0,1024);j=ES("JSON","stringify",!1,j).substr(0,1024);c=ES("JSON","stringify",!1,c).substr(0,1024);var q=n(o,p?p:"this function does not support toString",j,c);f=new Error(q);f.messageWithParams=[o,p?p:"this function does not support toString",j,c]}catch(a){q="applyWithGuard threw null or undefined with unserializable data:\nFunc: %s\nMetaEx: %s";o=b.toString&&b.toString().substr(0,1024);p=n(q,o?o:"this function does not support toString",a.message);f=new Error(p);f.messageWithParams=[p,o?o:"this function does not support toString",a.message]}g&&g.deferredSource&&(f.deferredSource=g.deferredSource);j=J.normalizeError(f);e&&e(j);j.extra||(j.extra={});if(b)try{j.extra[b.toString().substring(0,100)]="function"}catch(a){}d&&(j.extra[ES("Array","from",!1,d).toString().substring(0,100)]="args");j.guard=v[0];j.guardList=v.slice();J.reportError(j,!1,"GUARDED")}finally{I()}},guard:function(a,b,c){b=b||a.name||o;function d(){return J.applyWithGuard(a,c||this,[].concat(Array.prototype.slice.call(arguments)),null,b)}a.__SMmeta&&(d.__SMmeta=a.__SMmeta);return d},inGuard:function(){return w},normalizeError:function(a){__p&&__p();var b=a;a=a!=null?a:{};if(Object.prototype.hasOwnProperty.call(a,"_originalError"))return a;var c=G(a),d=!1;if(a.framesToPop){var e=a.framesToPop,f;while(e>0&&c.length>0)f=c.shift(),e--,d=!0;q.test(a.message)&&a.framesToPop===2&&f&&(p.test(f.script)&&(a.message+=" at "+f.script+(f.line?":"+f.line:"")+(f.column?":"+f.column:"")))}e=g.getReactComponentStack(a.reactComponentStackForLogging);var h=a instanceof j?a.getForcedCategoryKey():null;b={_originalError:b,cerror:!1,column:d?B(c):A(a)||B(c),deferredSource:a.deferredSource,extra:a.extra,fbloggerMetadata:a.fbloggerMetadata,forcedLogviewKey:h,guard:a.guard,guardList:a.guardList,line:d?D(c):C(a)||D(c),message:a.message,messageWithParams:a.messageWithParams,name:a.name,reactComponentStack:e,script:d?F(c):E(a)||F(c),serverHash:a.serverHash,snapshot:a.snapshot,stack:ES(c,"map",!0,function(a){return a.text}).join("\n"),stackFrames:c,type:a.type};typeof b.message==="string"?b.messageWithParams=b.messageWithParams||l(b.message):(b.messageObject=b.message,b.message=String(b.message)+" ("+typeof b.message+")");b.messageWithParams&&(b.message=k.apply(undefined,b.messageWithParams));typeof window!=="undefined"&&window&&window.location&&(b.windowLocationURL=window.location.href);s&&s(b);for(var i in b)b[i]==null&&delete b[i];return b},onerror:function(a,b,c,d,e){e=e||{},e.message=e.message||a,e.script=e.script||b,e.line=e.line||c,e.column=e.column||d,e.guard=i.GLOBAL_ERROR_HANDLER_TAG,e.guardList=[i.GLOBAL_ERROR_HANDLER_TAG],J.reportError(e,!0,"FATAL")},reportError:function(b,c,d){__p&&__p();c===void 0&&(c=!1);d===void 0&&(d="DEPRECATED");if(x){!1;return!1}b.reactComponentStack&&H(i.GLOBAL_REACT_ERROR_HANDLER_TAG);v.length>0&&(b.guard=b.guard||v[0],b.guardList=v.slice());b.reactComponentStack&&I();b=J.normalizeError(b);if(!c){c=a.console;var e=b._originalError;e=e!=null?""+e.message:"";if((!c[b.type]||b.type==="error")&&!y){e=e.length>80?e.slice(0,77)+"...":e;c.error('ErrorUtils caught an error: "'+e+"\". Subsequent errors won't be logged; see https://fburl.com/debugjs.");y=!0}}t.length>u&&t.splice(u/2,1);t.push({error:b,loggingType:d});x=!0;for(var c=0;c0){var e;b.guard=(e=b.guard)!=null?e:o.guardList[0];b.guardList=o.guardList.slice()}b.reactComponentStack&&o.popGuard();if(!c){e=a.console;c=""+b.message;if((!e[b.type]||b.type==="error")&&!k){c=c.length>80?c.slice(0,77)+"...":c;e.error('ErrorUtils caught an error: "'+c+"\". Subsequent errors won't be logged; see https://fburl.com/debugjs.");k=!0}}l.length>m&&l.splice(m/2,1);l.push({error:b,loggingType:d});j=!0;for(var e=0;e1?b-1:0),d=1;d2?d-2:0),f=2;f "+n;var o=g.normalizeError(c);o.type=i[a];h.reportError(o,!1,"FBLOGGER")};k.prototype.mustfix=function(a){for(var b=arguments.length,c=new Array(b>1?b-1:0),d=1;d1?b-1:0),d=1;d-1});if(c.length>0){a.push(b);return!1}return!0});return{invalidMetadata:a,validMetadata:b}};a.addGlobalMetadata=function(a,b,c){g.push([a,b,c])};e.exports=a}),null); +__d("FBLogMessage",["ErrorUtils","FBLoggerMetadata","FBLogMessageCore","TAAL","TAALOpcodes","erx","ex","sprintf"],(function(a,b,c,d,e,f,g,h,i,j,k,l,m,n){"use strict";__p&&__p();var o,p={mustfix:"error",warn:"warn",info:"log"},q=m,r=function a(b){return function(c){b>0&&(c(),a(b-1)(c))}};a=babelHelpers.inherits(s,i);o=a&&a.prototype;function s(a){o.constructor.call(this,a),this.metadata=new h(),this.taalOpcodes=[]}s.prototype.$FBLogMessage1=function(a,b){__p&&__p();var c=2;if(b===undefined){var d=new s("fblogger");r(c)(function(){return d.blameToPreviousFrame()});d.mustfix("You provided an undefined format string to FBLogger, dropping log line");return}var e;for(var f=arguments.length,h=new Array(f>2?f-2:0),i=2;i %s",a,this.project,u);e=g.normalizeError(e);if(!this.metadata.isEmpty()){var v=this.metadata.getAll(),w=v.invalidMetadata,x=v.validMetadata;if(w.length>0){var y=new s("fblogger");r(c)(function(){return y.blameToPreviousFrame()});y.warn("Metadata cannot contain colon %s",ES(w,"map",!0,function(a){return a.join(":")}).join(" "))}e.fbloggerMetadata=ES(x,"map",!0,function(a){return a.join(":")})}var z=p[a];e.type=z;if(this.error&&(this.taalOpcodes&&this.taalOpcodes.length)){var A=new s("fblogger");r(c)(function(){return A.blameToPreviousFrame()});A.warn("Blame helpers do not work with catching")}g.reportError(e,!1,"FBLOGGER")};s.prototype.mustfix=function(a){for(var b=arguments.length,c=new Array(b>1?b-1:0),d=1;d1?b-1:0),d=1;d';a.root.innerHTML='';b=!0;setTimeout(function(){a.root.innerHTML=f,a.root.firstChild.src=a.url,a.onInsert&&a.onInsert(a.root.firstChild)},0)}else{e=document.createElement("iframe");e.id=a.id;e.name=a.name;e.onload=d;e.scrolling="no";e.style.border="none";e.style.overflow="hidden";a.title&&(e.title=a.title);a.className&&(e.className=a.className);a.height!==undefined&&(e.style.height=a.height+"px");a.width!==undefined&&(a.width=="100%"?e.style.width=a.width:e.style.width=a.width+"px");a.root.appendChild(e);b=!0;e.src=a.url;a.onInsert&&a.onInsert(e)}}e.exports=a}),null); +__d("sdk.domReady",[],(function(a,b,c,d,e,f){__p&&__p();var g;b="readyState"in document?/loaded|complete/.test(document.readyState):!!document.body;function h(){if(!g)return;var a;while(a=g.shift())a();g=null}function a(a){if(g){g.push(a);return}else a()}if(!b){g=[];document.addEventListener?(document.addEventListener("DOMContentLoaded",h,!1),window.addEventListener("load",h,!1)):document.attachEvent&&(document.attachEvent("onreadystatechange",h),window.attachEvent("onload",h));if(document.documentElement.doScroll&&window===window.top){c=function a(){try{document.documentElement.doScroll("left")}catch(b){setTimeout(a,0);return}h()};c()}}e.exports=a}),3); +__d("sdk.Content",["Log","sdk.domReady","sdk.UA"],(function(a,b,c,d,e,f,g,h,i){__p&&__p();var j,k={append:function(a,b){b||(!j?(j=b=document.getElementById("fb-root"),b||(g.warn('The "fb-root" div has not been created, auto-creating'),j=b=document.createElement("div"),b.id="fb-root",i.ie()||!document.body?h(function(){document.body.appendChild(b)}):document.body.appendChild(b)),b.className+=" fb_reset"):b=j);if(typeof a==="string"){var c=document.createElement("div");b.appendChild(c).innerHTML=a;return c}else return b.appendChild(a)},appendHidden:function(a){if(!b){var b=document.createElement("div"),c=b.style;c.position="absolute";c.top="-10000px";c.width=c.height=0;b=k.append(b)}return k.append(a,b)},submitToTarget:function(a,b){__p&&__p();var c=document.createElement("form");c.action=a.url;c.target=a.target;c.method=b?"GET":"POST";k.appendHidden(c);for(var d in a.params)if(Object.prototype.hasOwnProperty.call(a.params,d)){b=a.params[d];if(b!==null&&b!==undefined){var e=document.createElement("input");e.name=d;e.value=b;c.appendChild(e)}}c.submit();c.parentNode.removeChild(c)}};e.exports=k}),null); +__d("sdk.Impressions",["Miny","QueryString","UrlMap","getBlankIframeSrc","guid","insertIframe","sdk.Content","sdk.Runtime"],(function(a,b,c,d,e,f,g,h,i,j,k,l,m,n){__p&&__p();function o(a){__p&&__p();var b=n.getClientID();!a.api_key&&b&&(a.api_key=b);a.kid_directed_site=n.getKidDirectedSite();b=i.resolve("www",!0)+"/impression.php/"+k()+"/";var c=h.appendToUrl(b,a);if(c.length>2e3&&(a.payload&&typeof a.payload==="string")){var d=g.encode(a.payload);d&&d.length>>18),g.charCodeAt(a>>>12&63),g.charCodeAt(a>>>6&63),g.charCodeAt(a&63))}var i=">___?456789:;<=_______\0\x01\x02\x03\x04\x05\x06\x07\b\t\n\v\f\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19______\x1a\x1b\x1c\x1d\x1e\x1f !\"#$%&'()*+,-./0123";function j(a){a=i.charCodeAt(a.charCodeAt(0)-43)<<18|i.charCodeAt(a.charCodeAt(1)-43)<<12|i.charCodeAt(a.charCodeAt(2)-43)<<6|i.charCodeAt(a.charCodeAt(3)-43);return String.fromCharCode(a>>>16,a>>>8&255,a&255)}var k={encode:function(a){a=unescape(encodeURI(a));var b=(a.length+2)%3;a=(a+"\0\0".slice(b)).replace(/[\s\S]{3}/g,h);return a.slice(0,a.length+b-2)+"==".slice(b)},decode:function(a){a=a.replace(/[^A-Za-z0-9+\/]/g,"");var b=a.length+3&3;a=(a+"AAA".slice(b)).replace(/..../g,j);a=a.slice(0,a.length+b-3);try{return decodeURIComponent(escape(a))}catch(a){throw new Error("Not valid UTF-8")}},encodeObject:function(a){return k.encode(ES("JSON","stringify",!1,a))},decodeObject:function(a){return ES("JSON","parse",!1,k.decode(a))},encodeNums:function(a){return String.fromCharCode.apply(String,ES(a,"map",!0,function(a){return g.charCodeAt((a|-(a>63?1:0))&-(a>0?1:0)&63)}))}};e.exports=k}),null); +__d("sdk.SignedRequest",["Base64"],(function(a,b,c,d,e,f,g){function a(a){if(!a)return null;a=a.split(".",2)[1].replace(/\-/g,"+").replace(/\_/g,"/");return g.decodeObject(a)}b={parse:a};e.exports=b}),null); +__d("URIRFC3986",[],(function(a,b,c,d,e,f){__p&&__p();var g=new RegExp("^([^:/?#]+:)?(//([^\\\\/?#@]*@)?(\\[[A-Fa-f0-9:.]+\\]|[^\\/?#:]*)(:[0-9]*)?)?([^?#]*)(\\?[^#]*)?(#.*)?");a={parse:function(a){__p&&__p();if(ES(a,"trim",!0)==="")return null;a=a.match(g);if(a==null)return null;var b={};b.uri=a[0]?a[0]:null;b.scheme=a[1]?a[1].substr(0,a[1].length-1):null;b.authority=a[2]?a[2].substr(2):null;b.userinfo=a[3]?a[3].substr(0,a[3].length-1):null;b.host=a[2]?a[4]:null;b.port=a[5]?a[5].substr(1)?parseInt(a[5].substr(1),10):null:null;b.path=a[6]?a[6]:null;b.query=a[7]?a[7].substr(1):null;b.fragment=a[8]?a[8].substr(1):null;b.isGenericURI=b.authority===null&&!!b.scheme;return b}};e.exports=a}),null); +__d("createObjectFrom",[],(function(a,b,c,d,e,f){__p&&__p();function g(a,b){if(b===undefined)return g(a,!0);var c={};if(ES("Array","isArray",!1,b))for(var d=a.length-1;d>=0;d--)c[a[d]]=b[d];else for(var d=a.length-1;d>=0;d--)c[a[d]]=b;return c}e.exports=g}),null); +__d("URISchemes",["createObjectFrom"],(function(a,b,c,d,e,f,g){var h=g(["blob","cmms","fb","fba","fbatwork","fb-ama","fb-workchat","fb-workchat-secure","fb-messenger","fb-messenger-public","fb-messenger-group-thread","fb-page-messages","fb-pma","fbcf","fbconnect","fbinternal","fbmobilehome","fbrpc","file","ftp","http","https","mailto","ms-app","intent","itms","itms-apps","itms-services","market","svn+ssh","fbstaging","tel","sms","pebblejs","sftp","whatsapp","moments","flash","fblite","chrome-extension","webcal","fb124024574287414","fb124024574287414rc","fb124024574287414master","fb1576585912599779","fb929757330408142","designpack","fbpixelcloud","fbapi20130214","fb1196383223757595","tbauth","oculus","oculus.store","skype","callto","workchat","fb236786383180508","fb1775440806014337","data"]);a={isAllowed:function(a){return!a?!0:Object.prototype.hasOwnProperty.call(h,a.toLowerCase())}};e.exports=a}),null); +__d("setHostSubdomain",[],(function(a,b,c,d,e,f){function a(a,b){a=a.split(".");a.length<3?a.unshift(b):a[0]=b;return a.join(".")}e.exports=a}),null); +__d("URIBase",["FBLogger","URIRFC3986","URISchemes","ex","invariant","setHostSubdomain"],(function(a,b,c,d,e,f,g,h,i,j,k,l){__p&&__p();var m=new RegExp("[\\x00-\\x2c\\x2f\\x3b-\\x40\\x5c\\x5e\\x60\\x7b-\\x7f\\uFDD0-\\uFDEF\\uFFF0-\\uFFFF\\u2047\\u2048\\uFE56\\uFE5F\\uFF03\\uFF0F\\uFF1F]"),n=new RegExp("^(?:[^/]*:|[\\x00-\\x1f]*/[\\x00-\\x1f]*/)");function o(a,b,c,d){__p&&__p();if(!b)return!0;if(b instanceof q){a.setProtocol(b.getProtocol());a.setDomain(b.getDomain());a.setPort(b.getPort());a.setPath(b.getPath());a.setQueryData(d.deserialize(d.serialize(b.getQueryData())));a.setFragment(b.getFragment());a.setIsGeneric(b.getIsGeneric());a.setForceFragmentSeparator(b.getForceFragmentSeparator());return!0}b=ES(b.toString(),"trim",!0);var e=h.parse(b)||{fragment:null,scheme:null};if(!c&&!i.isAllowed(e.scheme))return!1;a.setProtocol(e.scheme||"");if(!c&&m.test(e.host||""))return!1;a.setDomain(e.host||"");a.setPort(e.port||"");a.setPath(e.path||"");if(c)a.setQueryData(d.deserialize(e.query||"")||{});else try{a.setQueryData(d.deserialize(e.query||"")||{})}catch(a){return!1}a.setFragment(e.fragment||"");e.fragment===""&&a.setForceFragmentSeparator(!0);a.setIsGeneric(e.isGenericURI||!1);if(e.userinfo!==null)if(c)throw new Error(j("URI.parse: invalid URI (userinfo is not allowed in a URI): %s",a.toString()));else return!1;if(!a.getDomain()&&ES(a.getPath(),"indexOf",!0,"\\")!==-1)if(c)throw new Error(j("URI.parse: invalid URI (no domain but multiple back-slashes): %s",a.toString()));else return!1;if(!a.getProtocol()&&n.test(b))if(c)throw new Error(j("URI.parse: invalid URI (unsafe protocol-relative URLs): %s",a.toString()));else return!1;if(a.getDomain()&&a.getPath()&&!ES(a.getPath(),"startsWith",!0,"/"))if(c)throw new Error(j("URI.parse: invalid URI (domain and path where path lacks leading slash): %s",a.toString()));else return!1;return!0}var p=[];q.tryParse=function(a,b){"use strict";var c=new q(null,b);return o(c,a,!1,b)?c:null};q.isValid=function(a,b){"use strict";return!!q.tryParse(a,b)};function q(a,b){"use strict";b||k(0,undefined),this.$9=b,this.$7="",this.$1="",this.$6="",this.$5="",this.$3="",this.$4=!1,this.$8={},this.$2=!1,o(this,a,!0,b)}q.prototype.setProtocol=function(a){"use strict";i.isAllowed(a)||(g("uri").mustfix("You attempted to set the protocol of a URI to `%s`. That protocol does not pass the `URISchemes.isAllowed` test.",a),k(0,undefined,a));this.$7=a;return this};q.prototype.getProtocol=function(){"use strict";return(this.$7||"").toLowerCase()};q.prototype.setSecure=function(a){"use strict";return this.setProtocol(a?"https":"http")};q.prototype.isSecure=function(){"use strict";return this.getProtocol()==="https"};q.prototype.setDomain=function(a){"use strict";if(m.test(a))throw new Error(j("URI.setDomain: unsafe domain specified: %s for url %s",a,this.toString()));this.$1=a;return this};q.prototype.getDomain=function(){"use strict";return this.$1};q.prototype.setPort=function(a){"use strict";this.$6=a;return this};q.prototype.getPort=function(){"use strict";return this.$6};q.prototype.setPath=function(a){"use strict";this.$5=a;return this};q.prototype.getPath=function(){"use strict";return this.$5};q.prototype.addQueryData=function(a,b){"use strict";Object.prototype.toString.call(a)==="[object Object]"?ES("Object","assign",!1,this.$8,a):this.$8[a]=b;return this};q.prototype.setQueryData=function(a){"use strict";this.$8=a;return this};q.prototype.getQueryData=function(){"use strict";return this.$8};q.prototype.removeQueryData=function(a){"use strict";ES("Array","isArray",!1,a)||(a=[a]);for(var b=0,c=a.length;b0||this.getFragment())};q.prototype.toString=function(){"use strict";var a=this;for(var b=0;bh},ie64:function(){return x.ie()&&r},firefox:function(){return w()||i},opera:function(){return w()||j},webkit:function(){return w()||k},safari:function(){return x.webkit()},chrome:function(){return w()||l},windows:function(){return w()||o},osx:function(){return w()||n},linux:function(){return w()||p},iphone:function(){return w()||s},mobile:function(){return w()||s||t||q||v},nativeApp:function(){return w()||u},android:function(){return w()||q},ipad:function(){return w()||t}};e.exports=x}),null); +__d("htmlSpecialChars",[],(function(a,b,c,d,e,f){__p&&__p();var g=/&/g,h=//g,j=/\"/g,k=/\'/g;function a(a){if(typeof a==="undefined"||a===null||!a.toString)return"";if(a===!1)return"0";else if(a===!0)return"1";return a.toString().replace(g,"&").replace(j,""").replace(k,"'").replace(h,"<").replace(i,">")}e.exports=a}),null); +__d("emptyFunction",[],(function(a,b,c,d,e,f){__p&&__p();function a(a){return function(){return a}}b=function(){};b.thatReturns=a;b.thatReturnsFalse=a(!1);b.thatReturnsTrue=a(!0);b.thatReturnsNull=a(null);b.thatReturnsThis=function(){return this};b.thatReturnsArgument=function(a){return a};e.exports=b}),null); +__d("sdk.DOMEventListener",["emptyFunction","invariant","wrapFunction"],(function(a,b,c,d,e,f,g,h,i){__p&&__p();var j=!1;try{a=Object.defineProperty({},"passive",{get:function(){j=!0}});window.addEventListener("test",null,a)}catch(a){}var k,l;window.addEventListener?(k=function(a,b,c,d){d===void 0&&(d=!1),c.wrapper=i(c,"entry","DOMEventListener.add "+b),a.addEventListener(b,c.wrapper,j?d:!1)},l=function(a,b,c,d){d===void 0&&(d=!1),a.removeEventListener(b,c.wrapper,j?d:!1)}):window.attachEvent?(k=function(a,b,c){c.wrapper=i(c,"entry","DOMEventListener.add "+b),a.attachEvent||h(0,undefined),a.attachEvent("on"+b,c.wrapper)},l=function(a,b,c){a.detachEvent||h(0,undefined),a.detachEvent("on"+b,c.wrapper)}):l=k=g;b={add:function(a,b,c,d){d===void 0&&(d=!1);k(a,b,c,d);return{remove:function(){l(a,b,c,d)}}},remove:l};e.exports=b}),null); +__d("Flash",["DOMWrapper","QueryString","UserAgent_DEPRECATED","guid","htmlSpecialChars","sdk.DOMEventListener"],(function(a,b,c,d,e,f,g,h,i,j,k,l){__p&&__p();var m={},n,o=g.getWindow().document;function p(a){var b=o.getElementById(a);b&&b.parentNode.removeChild(b);delete m[a]}function q(){for(var a in m)Object.prototype.hasOwnProperty.call(m,a)&&p(a)}function r(a){return a.replace(/\d+/g,function(a){return"000".substring(a.length)+a})}function s(a){n||(i.ie()>=9&&l.add(window,"unload",q),n=!0),m[a]=a}var t={embed:function(a,b,c,d){__p&&__p();var e=j();a=k(a).replace(/&/g,"&");c=babelHelpers["extends"]({allowscriptaccess:"always",flashvars:d,movie:a},c);typeof c.flashvars==="object"&&(c.flashvars=h.encode(c.flashvars));d=[];for(var f in c)Object.prototype.hasOwnProperty.call(c,f)&&c[f]&&d.push('');b=b.appendChild(o.createElement("span"));a="'+d.join("")+"";b.innerHTML=a;c=b.firstChild;s(e);return c},remove:p,getVersion:function(){var a="Shockwave Flash",b="application/x-shockwave-flash",c="ShockwaveFlash.ShockwaveFlash",d;if(navigator.plugins&&typeof navigator.plugins[a]==="object"){a=navigator.plugins[a].description;a&&navigator.mimeTypes&&navigator.mimeTypes[b]&&navigator.mimeTypes[b].enabledPlugin&&(d=a.match(/\d+/g))}if(!d)try{d=new ActiveXObject(c).GetVariable("$version").match(/(\d+),(\d+),(\d+),(\d+)/),d=Array.prototype.slice.call(d,1)}catch(a){}return d},getVersionString:function(){var a=t.getVersion();return a?a.join("."):""},checkMinVersion:function(a){var b=t.getVersion();return!b?!1:r(b.join("."))>=r(a)},isAvailable:function(){return!!t.getVersion()}};e.exports=t}),null); +__d("XDM",["DOMWrapper","Flash","GlobalCallback","Log","UserAgent_DEPRECATED","emptyFunction","guid","sdk.DOMEventListener","wrapFunction"],(function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o){__p&&__p();var p={},q={transports:[]},r=g.getWindow();function s(a){__p&&__p();var b={},c=a.length,d=q.transports;while(c--)b[a[c]]=1;c=d.length;while(c--){a=d[c];var e=p[a];if(!b[a]&&e.isAvailable())return a}}a={register:function(a,b){j.debug("Registering %s as XDM provider",a),q.transports.push(a),p[a]=b},create:function(a){__p&&__p();if(!a.whenReady&&!a.onMessage){j.error("An instance without whenReady or onMessage makes no sense");throw new Error("An instance without whenReady or onMessage makes no sense")}a.channel||(j.warn("Missing channel name, selecting at random"),a.channel=m());a.whenReady||(a.whenReady=l);a.onMessage||(a.onMessage=l);var b=a.transport||s(a.blacklist||[]),c=p[b];if(c&&c.isAvailable()){j.debug("%s is available",b);c.init(a);return b}}};a.register("flash",function(){__p&&__p();var a=!1,b,c=!1,d=15e3,e;return{isAvailable:function(){return h.checkMinVersion("8.0.24")},init:function(f){__p&&__p();j.debug("init flash: "+f.channel);var g={send:function(a,c,d,e){j.debug("sending to: %s (%s)",c,e),b.postMessage(a,c,e)}};if(a){f.whenReady(g);return}var k=f.root.appendChild(r.document.createElement("div")),l=i.create(function(){i.remove(l);clearTimeout(e);j.info("xdm.swf called the callback");var a=i.create(function(a,b){a=decodeURIComponent(a),b=decodeURIComponent(b),j.debug("received message %s from %s",a,b),f.onMessage(a,b)},"xdm.swf:onMessage");b.init(f.channel,a);f.whenReady(g)},"xdm.swf:load");b=h.embed(f.flashUrl,k,null,{protocol:location.protocol.replace(":",""),host:location.host,callback:l,log:c});e=setTimeout(function(){j.warn("The Flash component did not load within %s ms - verify that the container is not set to hidden or invisible using CSS as this will cause some browsers to not load the components",d)},d);a=!0}}}());var t=/\.facebook\.com(\/|$)/;a.register("postmessage",function(){__p&&__p();var a=!1;return{isAvailable:function(){return!!r.postMessage},init:function(b){__p&&__p();j.debug("init postMessage: "+b.channel);var c="_FB_"+b.channel,d={send:function(a,b,c,d){if(r===c){j.error("Invalid windowref, equal to window (self)");throw new Error()}j.debug("sending to: %s (%s)",b,d);var e=function(){c.postMessage("_FB_"+d+a,b)};k.ie()==8||k.ieCompatibilityMode()?setTimeout(e,0):e()}};if(a){b.whenReady(d);return}n.add(r,"message",o(function(event){__p&&__p();var a=event.data,d=event.origin||"native";if(!/^(https?:\/\/|native$)/.test(d)){j.debug("Received message from invalid origin type: %s",d);return}if(d!=="native"&&!(t.test(location.hostname)||t.test(event.origin)))return;if(typeof a!=="string"){j.warn("Received message of type %s from %s, expected a string",typeof a,d);return}j.debug("received message %s from %s",a,d);a.substring(0,c.length)==c&&(a=a.substring(c.length));b.onMessage(a,d)},"entry","onMessage"));b.whenReady(d);a=!0}}}());e.exports=a}),null); +__d("isFacebookURI",[],(function(a,b,c,d,e,f){var g=null,h=["http","https"];function a(a){g||(g=new RegExp("(^|\\.)facebook\\.com$","i"));if(a.isEmpty()&&a.toString()!=="#")return!1;return!a.getDomain()&&!a.getProtocol()?!0:ES(h,"indexOf",!0,a.getProtocol())!==-1&&g.test(a.getDomain())}a.setRegex=function(a){g=a};e.exports=a}),null); +__d("sdk.Event",[],(function(a,b,c,d,e,f){"use strict";__p&&__p();a={SUBSCRIBE:"event.subscribe",UNSUBSCRIBE:"event.unsubscribe",subscribers:function(){this._subscribersMap||(this._subscribersMap={});return this._subscribersMap},subscribe:function(a,b){var c=this.subscribers();!c[a]?c[a]=[b]:ES(c[a],"indexOf",!0,b)==-1&&c[a].push(b);a!=this.SUBSCRIBE&&a!=this.UNSUBSCRIBE&&this.fire(this.SUBSCRIBE,a,c[a])},unsubscribe:function(a,b){var c=this.subscribers()[a];c&&ES(c,"forEach",!0,function(a,d){a===b&&c.splice(d,1)});a!=this.SUBSCRIBE&&a!=this.UNSUBSCRIBE&&this.fire(this.UNSUBSCRIBE,a,c)},monitor:function(a,b){if(!b()){var c=this,d=function d(){b.apply(b,arguments)&&c.unsubscribe(a,d)};this.subscribe(a,d)}},clear:function(a){delete this.subscribers()[a]},fire:function(a){for(var b=arguments.length,c=new Array(b>1?b-1:0),d=1;d'):(b=document.createElement("iframe"),b.name=c);delete a.style;delete a.name;delete a.url;delete a.root;delete a.onload;delete a.onerror;c=ES("Object","assign",!1,{frameBorder:0,allowTransparency:!0,allowFullscreen:!0,scrolling:"no",allow:"encrypted-media"},a);c.width&&j(c.width)&&(b.width=c.width+"px");c.height&&j(c.height)&&(b.height=c.height+"px");delete c.height;delete c.width;for(var n in c)Object.prototype.hasOwnProperty.call(c,n)&&b.setAttribute(n,c[n]);ES("Object","assign",!1,b.style,e);b.src=g();d.appendChild(b);if(l)var o=k.add(b,"load",function(){o.remove(),l()});if(m)var p=k.add(b,"error",function(){p.remove(),m()});b.src=f;return b}e.exports=a}),null); +__d("sdk.FeatureFunctor",["invariant"],(function(a,b,c,d,e,f,g){__p&&__p();function h(a,b,c){if(a.features&&b in a.features){a=a.features[b];if(typeof a==="object"&&typeof a.rate==="number")if(a.rate&&Math.random()*100<=a.rate)return a.value||!0;else return a.value?null:!1;else return a}return c}function a(a){return function(){for(var b=arguments.length,c=new Array(b),d=0;d=2||g(0,undefined);var e=c[0],f=c[1];return h(a,e,f)}}e.exports={create:a}}),null); +__d("sdk.feature",["JSSDKConfig","sdk.FeatureFunctor"],(function(a,b,c,d,e,f,g,h){e.exports=h.create(g)}),null); +__d("sdk.XD",["JSSDKXDConfig","Log","QueryString","Queue","UrlMap","XDM","guid","isFacebookURI","sdk.Content","sdk.createIframe","sdk.Event","sdk.feature","sdk.RPC","sdk.Runtime","sdk.Scribe","sdk.URI"],(function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v){__p&&__p();var w=new j(),x=new j(),y=m(),z="https";a=g.useCdn?"cdn":"www";b=r("use_bundle",!1)?g.XdBundleUrl:g.XdUrl;var A=k.resolve(a)+b;c=function(){if("origin"in location)if(location.origin&&location.origin!=="null")return location.origin;else if(window!==window.parent)try{var a=parent.location.origin;if(a&&a!=="null")return a}catch(a){}return location.protocol+"//"+location.host};var B=m(),C=c(),D,E,F=!1,G="Facebook Cross Domain Communication Frame",H={},I=new j();s.setInQueue(I);function J(a){h.info("Remote XD can talk to facebook.com (%s)",a),t.setEnvironment(a==="canvas"?t.ENVIRONMENTS.CANVAS:t.ENVIRONMENTS.PAGETAB)}function K(a,b){__p&&__p();if(!b){h.error("No senderOrigin");throw new Error()}switch(a.xd_action){case"proxy_ready":var c,d;c=x;d=E;t.setLoggedIntoFacebook(a.logged_in==="true");a.registered&&(J(a.registered),w=c.merge(w));h.info("Proxy ready, starting queue containing %s messages",c.getLength());c.start(function(a){D.send(typeof a==="string"?a:i.encode(a),b,d.contentWindow,B+"_"+z)});break;case"plugin_ready":h.info("Plugin %s ready, protocol: %s",a.name,z);H[a.name]={protocol:z};if(j.exists(a.name)){c=j.get(a.name);h.debug("Enqueuing %s messages for %s in %s",c.getLength(),a.name,z+"ProxyQueue");x.merge(c)}break}a.data&&L(a.data,b)}function L(a,b){__p&&__p();if(b&&b!=="native"&&!n(new v(b)))return;if(typeof a==="string"){if(/^FB_RPC:/.test(a)){I.enqueue(a.substring(7));return}if(a.substring(0,1)=="{")try{a=ES("JSON","parse",!1,a)}catch(b){h.warn("Failed to decode %s as JSON",a);return}else a=i.decode(a)}b||a.xd_sig==y&&(b=a.xd_origin);if(a.xd_action){K(a,b);return}if(a.cb){b=O._callbacks[a.cb];O._forever[a.cb]||delete O._callbacks[a.cb];b&&b(a)}}function M(a,b){if(a=="facebook")b.relation="parent.parent",w.enqueue(b);else{b.relation='parent.frames["'+a+'"]';var c=H[a];c?(h.debug("Enqueuing message for plugin %s in %s",a,c.protocol+"ProxyQueue"),x.enqueue(b)):(h.debug("Buffering message for plugin %s",a),j.get(a).enqueue(b))}}s.getOutQueue().start(function(a){M("facebook","FB_RPC:"+a)});function N(a){if(F)return;var b=o.appendHidden(document.createElement("div")),c=l.create({blacklist:null,root:b,channel:B,flashUrl:g.Flash.path,whenReady:function(d){D=d;d={channel:B,origin:C,transport:c,xd_name:a};d="#"+i.encode(d);E=p({url:A+d,name:"fb_xdm_frame_https",id:"fb_xdm_frame_https",root:b,"aria-hidden":!0,title:G,tabindex:-1})},onMessage:L});c||u.log("jssdk_error",{appId:t.getClientID(),error:"XD_TRANSPORT",extra:{message:"Failed to create a valid transport"}});F=!0}var O={rpc:s,_callbacks:{},_forever:{},_channel:B,_origin:C,onMessage:L,recv:L,init:N,sendToFacebook:M,inform:function(a,b,c,d){M("facebook",{method:a,params:ES("JSON","stringify",!1,b||{}),behavior:d||"p",relation:c})},handler:function(a,b,c,d){a="#"+i.encode({cb:this.registerCallback(a,c,d),origin:C+"/"+B,domain:location.hostname,relation:b||"opener"});return A+a},registerCallback:function(a,b,c){c=c||m();b&&(O._forever[c]=!0);O._callbacks[c]=a;return c},getXDArbiterURL:function(){return A}};q.subscribe("init:post",function(a){N(a.xdProxyName);var b=r("xd_timeout",!1);b&&setTimeout(function(){var a=E&&!!E==x.isStarted();a||u.log("jssdk_error",{appId:t.getClientID(),error:"XD_INITIALIZATION",extra:{message:"Failed to initialize in "+b+"ms"}})},b)});e.exports=O}),null); +__d("sdk.getContextType",["sdk.Runtime","sdk.UA"],(function(a,b,c,d,e,f,g,h){function a(){if(h.nativeApp())return 3;if(h.mobile())return 2;return g.isEnvironment(g.ENVIRONMENTS.CANVAS)?5:1}e.exports=a}),null); +__d("sdk.Auth",["DOMWrapper","Log","OAuthControllerParameterName","ObservableMixin","UrlMap","WebStorage","guid","sdk.Cookie","sdk.createIframe","sdk.feature","sdk.getContextType","sdk.Impressions","sdk.Runtime","sdk.Scribe","sdk.SignedRequest","sdk.URI","sdk.XD"],(function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w){__p&&__p();var x="fblst_",y="fblo_",z=365*24*60*60*1e3,A,B,C=new j();function D(a,b){__p&&__p();var c=s.getUserID(),d="";if(a)if(a.userID)d=a.userID;else if(a.signedRequest){var e=u.parse(a.signedRequest);e&&e.user_id&&(d=e.user_id)}e=s.getLoginStatus();var f=e==="unknown"&&a||s.getUseCookie()&&s.getCookieUserID()!==d,g=c&&!a;c=a&&c&&c!=d;var h=a!=A;e=b!=(e||"unknown");s.setLoginStatus(b);s.setAccessToken(a&&a.accessToken||null);s.setUserID(d);A=a;d={authResponse:a,status:b};(g||c)&&C.inform("logout",d);(f||c)&&C.inform("login",d);h&&C.inform("authresponse.change",d);e&&C.inform("status.change",d);return d}function E(){return A}function F(a,b,c){__p&&__p();return function(d){__p&&__p();var e=!1;if(d&&d.access_token){var f=u.parse(d.signed_request);b={accessToken:d.access_token,userID:f.user_id,expiresIn:parseInt(d.expires_in,10),signedRequest:d.signed_request};d.granted_scopes&&(b=babelHelpers["extends"]({},b,{grantedScopes:d.granted_scopes}));d.reauthorize_required_in&&(b=babelHelpers["extends"]({},b,{reauthorize_required_in:parseInt(d.reauthorize_required_in,10)}));d.data_access_expiration_time&&(b=babelHelpers["extends"]({},b,{data_access_expiration_time:Number(d.data_access_expiration_time)}));d.enforce_https&&(e=!0);if(s.getUseLocalStorage()&&location.protocol==="https:"&&d.long_lived_token){f=l.getLocalStorage();f&&f.setItem(x+s.getClientID(),d.long_lived_token)}if(s.getUseCookie()){f=b.expiresIn===0?0:ES("Date","now",!1)+b.expiresIn*1e3;var g=n.getDomain();!g&&d.base_domain&&n.setDomain("."+d.base_domain);n.setSignedRequestCookie(d.signed_request,f,e)}G();g="connected";D(b,g)}else(c==="logout"||c==="login_status")&&(d&&d.error&&d.error==="not_authorized"?(g="not_authorized",D(null,g)):d&&d.error&&d.error==="authorization_expired"?(g="authorization_expired",D(null,g)):(g="unknown",D(null,g)),s.getUseCookie()&&n.clearSignedRequestCookie(),c==="logout"&&(H(),t.log("jssdk_error",{appId:s.getClientID(),error:"PLATFORM_AUTH_LOGOUT",extra:{args:{fblo:!0}}})));if(a){f={authResponse:b,status:s.getLoginStatus()};a(f)}return b}}function G(){n.setRaw(y,"",0,!1)}function H(){n.setRaw(y,"y",ES("Date","now",!1)+z,!1)}function I(a){__p&&__p();var b,c=ES("Date","now",!1);B&&(clearTimeout(B),B=null);var d=n.getRaw(y)==="y";if(d){d="unknown";D(null,d);a&&a({authResponse:null,status:d});return}var e=F(a,A,"login_status");d=new v(k.resolve("www")+"/connect/ping").addQueryData(i.CLIENT_ID,s.getClientID()).addQueryData(i.RESPONSE_TYPE,"token,signed_request").addQueryData(i.DOMAIN,location.hostname).addQueryData(i.ORIGIN,q()).addQueryData(i.REDIRECT_URI,w.handler(function(a){if(p("e2e_ping_tracking",!0)){var d={init:c,close:ES("Date","now",!1),method:"ping"};h.debug("e2e: %s",ES("JSON","stringify",!1,d));r.log(114,{payload:d})}b.parentNode.removeChild(b);e(a)&&(B=setTimeout(function(){I(function(){})},12e5))},"parent")).addQueryData(i.SDK,"joey").addQueryData(i.VERSION,s.getIsVersioned()?s.getVersion():null);if(window.location.ancestorOrigins){a=window.location.ancestorOrigins;if(a.length>0){var f="";for(var j=0;j=0}function c(a,b){g.isTruthy(a,"element not specified"),g.isString(b),m(a,b)||(a.className=l(a,"className")+" "+b)}function d(a,b){g.isTruthy(a,"element not specified");g.isString(b);b=new RegExp("\\s*"+b,"g");a.className=ES(l(a,"className").replace(b,""),"trim",!0)}function f(a,b,c){__p&&__p();g.isString(a);b=b||document.body;c=c||"*";if(b.querySelectorAll)return ES("Array","from",!1,b.querySelectorAll(c+"."+a));b=b.getElementsByTagName(c);c=[];for(var d=0,e=b.length;d30?k.log("warn",-1,"The method FB.%s will stop working when called from http pages in %s days. Please update your site to use https for Facebook Login. %s",b,Math.floor((z-ES("Date","now",!1))/864e5),A):k.log("error",-1,"The method FB.%s will stop working when called from http pages in %s days. Please update your site to use https for Facebook Login. %s",b,Math.floor((z-ES("Date","now",!1))/864e5),A);r("https_only_scribe_logging",!0)&&!Object.prototype.hasOwnProperty.call(B,b)&&(u.log("jssdk_error",{appId:t.getClientID(),error:"HttpsOnly",extra:{message:b}}),B[b]=!0)}e==="warn"&&(k.warn("The method FB.%s is not officially supported by Facebook and access to it will soon be removed.",b),Object.prototype.hasOwnProperty.call(B,b)||(s.log(s.TYPE.WARNING,s.CATEGORY.DEPRECATED,"FB."+b),u.log("jssdk_error",{appId:t.getClientID(),error:"Private method used",extra:{message:b}}),B[b]=!0));function g(a){if(ES("Array","isArray",!1,a))return ES(a,"map",!0,g);return a&&typeof a==="object"&&a.__wrapped?a.__wrapped:typeof a==="function"&&/^function/.test(a.toString())?q.unguard(a):a}var h=ES(Array.prototype.slice.call(arguments),"map",!0,g),i=a.apply(d,h),j,l=!0;if(i&&typeof i==="object"){j=ES("Object","create",!1,i);j.__wrapped=i;for(var c in i){var m=i[c];if(typeof m!=="function"||c==="constructor")continue;l=!1;j[c]=D(m,b+":"+c,c,i)}}return!l?j:l?i:j},b)}}function a(a,b){var c=a?l(v,a,!0):v;ES(ES("Object","keys",!1,b),"forEach",!0,function(d){var e=b[d];if(typeof e==="function"){var f=(a?a+".":"")+d,g=D(e,f,d,b);g&&(c[d]=g)}else(typeof e==="object"||typeof e==="number")&&(f=(a?a+".":"")+d,w&&w[f]&&(c[d]=e))})}ES("Object","assign",!1,b,{provide:a});e.exports=b}),null); +__d("ArgumentError",["ManagedError"],(function(a,b,c,d,e,f,g){var h;b=babelHelpers.inherits(a,g);h=b&&b.prototype;function a(a,b){"use strict";h.constructor.call(this,a,b)}e.exports=a}),null); +__d("flattenObject",[],(function(a,b,c,d,e,f){"use strict";__p&&__p();a=function(a){var b={};for(var c in a)if(Object.prototype.hasOwnProperty.call(a,c)){var d=a[c];if(null===d||undefined===d)continue;else typeof d==="string"?b[c]=d:b[c]=ES("JSON","stringify",!1,d)}return b};e.exports=a}),null); +__d("ApiClientUtils",["ArgumentError","Assert","Log","flattenObject","sdk.URI","sprintf"],(function(a,b,c,d,e,f,g,h,i,j,k,l){__p&&__p();var m={get:!0,post:!0,"delete":!0,put:!0};function a(a){__p&&__p();var b=a.shift();h.isString(b,"Invalid path");!/^https?/.test(b)&&b.charAt(0)!=="/"&&(b="/"+b);var c={};try{b=new k(b)}catch(a){throw new g(a.message,a)}ES(a,"forEach",!0,function(a){return c[typeof a]=a});a=(c.string||"get").toLowerCase();h.isTrue(Object.prototype.hasOwnProperty.call(m,a),l("Invalid method passed to ApiClient: %s",a));var d=c["function"];d||i.warn("No callback passed to the ApiClient");c.object&&b.addQueryData(j(c.object));var e=b.getQueryData();e.method=a;return{uri:b,callback:d,params:e}}e.exports={parseCallDataFromArgs:a}}),null); +__d("errorCode",[],(function(a,b,c,d,e,f){"use strict";function a(a){throw new Error('errorCode("'+a+'"): This should not happen. Oh noes!')}e.exports=a}),null); +__d("nullthrows",[],(function(a,b,c,d,e,f){a=function(a,b){b===void 0&&(b="Got unexpected null or undefined");if(a!=null)return a;a=new Error(b);a.framesToPop=1;throw a};e.exports=a}),null); +__d("sdk.safelyParseResponse",["errorCode","nullthrows"],(function(a,b,c,d,e,f,g,h){"use strict";__p&&__p();b=function(a,b,c){return i};function a(a,c){c===void 0&&(c=null);try{return a===null?i:ES("JSON","parse",!1,h(a))}catch(d){return b(d,a,c)}}var i={error:{code:1,error_subcode:1357046,message:"Received Invalid JSON reply.",type:"http"}};a.ERROR=i;a.setErrorHandler=function(a){b=a};e.exports=a}),null); +__d("ApiBatcher",["ApiClientUtils","QueryString","invariant","sdk.safelyParseResponse"],(function(a,b,c,d,e,f,g,h,i,j){"use strict";__p&&__p();var k=50,l=105440539523;function m(a,b){this.$1=[],this.$2=[],this.$4=null,this.executeRequest=a,this.$3=b}m.prototype.scheduleBatchCall=function(){for(var a=arguments.length,b=new Array(a),c=0;c0||i(0,undefined);this.$1.length===this.$2.length||i(0,undefined);var a=this.$1,b=this.$2;this.$1=[];this.$2=[];this.$4=null;if(a.length===1){var c=a[0],d=b[0],e=c.body?h.decode(c.body):null;this.executeRequest(c.relative_url,c.method,e,d);return}this.executeRequest("/","POST",{batch:a,include_headers:!1,batch_app_id:this.$3||l},function(a){ES("Array","isArray",!1,a)?ES(a,"forEach",!0,function(a,c){b[c](j(a&&a.body))}):ES(b,"forEach",!0,function(a){return a({error:{message:"Fatal: batch call failed."}})})})};e.exports=m}),null); +__d("RequestConstants",["errorCode"],(function(a,b,c,d,e,f,g){a={code:1,error_subcode:1357045,message:"unknown error (empty response)",type:"http",status:0};e.exports={PARSE_ERROR_TEMPLATE:a}}),null); +__d("CORSRequest",["QueryString","RequestConstants","sdk.safelyParseResponse","wrapFunction"],(function(a,b,c,d,e,f,g,h,i,j){__p&&__p();function k(a,b){__p&&__p();if(!self.XMLHttpRequest)return null;var c=new XMLHttpRequest(),d=function(){};if("withCredentials"in c)c.open(a,b,!0),c.setRequestHeader("Content-type","application/x-www-form-urlencoded");else if(self.XDomainRequest){c=new XDomainRequest();try{c.open(a,b),c.onprogress=c.ontimeout=d}catch(a){return null}}else return null;var e={send:function(a){c.send(a)}},f=j(function(){f=d,"onload"in e&&e.onload(c)},"entry","XMLHttpRequest:load"),g=j(function(){g=d,"onerror"in e&&e.onerror(c)},"entry","XMLHttpRequest:error");c.onload=function(){f()};c.onerror=function(){g()};c.onreadystatechange=function(){c.readyState==4&&(c.status==200?f():g())};return e}function a(a,b,c,d){__p&&__p();c.suppress_http_code=1;c=g.encode(c);b!="post"&&(a=g.appendToUrl(a,c),c="");b=k(b,a);if(!b)return!1;b.onload=function(b){d(i(b.responseText,a))};b.onerror=function(b){b.responseText?d(i(b.responseText,a)):d({error:babelHelpers["extends"]({},h.PARSE_ERROR_TEMPLATE,{status:b.status})})};b.send(c);return!0}b={execute:a};e.exports=b}),null); +__d("GraphBatchConstants",[],(function(a,b,c,d,e,f){e.exports=ES("Object","freeze",!1,{FLUSH_DELIMITER:"\r\n"})}),null); +__d("ChunkedRequest",["GraphBatchConstants","QueryString","RequestConstants","sdk.safelyParseResponse","wrapFunction"],(function(a,b,c,d,e,f,g,h,i,j,k){__p&&__p();var l="{}";function m(a){a===void 0&&(a=g.FLUSH_DELIMITER),this.offset=0,this.delimiter=g.FLUSH_DELIMITER,this.delimiter=a}m.prototype.parse=function(a,b){__p&&__p();b===void 0&&(b=!1);var c=[],d=a.substring(this.offset),e=0,f=ES(d,"indexOf",!0,this.delimiter,e);f===0&&(e=this.delimiter.length,f=ES(d,"indexOf",!0,this.delimiter,e));while(f>-1){var g=d.substring(e,f);g&&c.push(g);e=f+this.delimiter.length;f=ES(d,"indexOf",!0,this.delimiter,e)}this.offset+=e;if(b&&d&&f===-1){g=a.substring(this.offset);c.push(g)}return c};function n(a,b){__p&&__p();if(!self.XMLHttpRequest)return null;var c=new XMLHttpRequest();if(!("withCredentials"in c))return null;c.open(a,b,!0);c.setRequestHeader("Content-type","application/x-www-form-urlencoded");var d=new m(),e={send:function(a){c.send(a)}},f=k(function(a,b){if(e.onchunk){a=d.parse(a);ES(a,"forEach",!0,function(a){return e.onchunk(a,b)});b&&e.onchunk(l,b)}},"entry","XMLHttpRequest:onchunk"),g=k(function(){e.onerror&&e.onerror(c)},"entry","XMLHttpRequest:error");c.onerror=g;c.onreadystatechange=function(){c.readyState==4?c.status===200?f(c.responseText,!0):g():c.readyState==3&&f(c.responseText,!1)};return e}function a(a,b,c,d){__p&&__p();c.suppress_http_code=1;c=h.encode(c);b!="post"&&(a=h.appendToUrl(a,c),c="");b=n(b,a);if(!b)return!1;b.onchunk=function(a,b){d(j(a),b)};b.onerror=function(a){a.responseText?d(j(a.responseText)):d({error:babelHelpers["extends"]({},i.PARSE_ERROR_TEMPLATE,{status:a.status})})};b.send(c);return!0}b={execute:a};e.exports=b}),null); +__d("FlashRequest",["DOMWrapper","Flash","GlobalCallback","QueryString","Queue"],(function(a,b,c,d,e,f,g,h,i,j,k){__p&&__p();var l,m={},n,o;function p(){__p&&__p();if(!n)throw new Error("swfUrl has not been set");var a=i.create(function(){l.start(function(a){var b=o.execute(a.method,a.url,a.body);if(!b)throw new Error("Could create request");m[b]=a.callback})}),b=i.create(function(a,b,c){var d;try{d=ES("JSON","parse",!1,decodeURIComponent(c))}catch(a){d={error:{type:"SyntaxError",message:a.message,status:b,raw:c}}}m[a](d);delete m[a]});o=h.embed(n,g.getRoot(),null,{log:!1,initCallback:a,requestCallback:b})}function a(a,b,c,d){__p&&__p();c.suppress_http_code=1;c.method||(c.method=b);c=j.encode(c);b==="get"&&a.length+c.length<2e3?(a=j.appendToUrl(a,c),c=""):b="post";if(!l){if(!h.isAvailable())return!1;l=new k();p()}l.enqueue({method:b,url:a,body:c,callback:d});return!0}b={setSwfUrl:function(a){n=a},execute:a};e.exports=b}),null); +__d("JSONPRequest",["DOMWrapper","GlobalCallback","QueryString"],(function(a,b,c,d,e,f,g,h,i){__p&&__p();var j=2e3,k=!1;function a(a,b,c,d){__p&&__p();var e=document.createElement("script"),f=function(a){f=function(){},h.remove(c.callback),d(a),e.parentNode.removeChild(e)};c.callback=h.create(f);c.method||(c.method=b);a=i.appendToUrl(a,c);if(!k&&a.length>j){h.remove(c.callback);return!1}e.onerror=function(){f({error:{type:"http",message:"unknown error"}})};var l=function(){setTimeout(function(){f({error:{type:"http",message:"unknown error"}})},0)};e.addEventListener?e.addEventListener("load",l,!1):e.onreadystatechange=function(){/loaded|complete/.test(this.readyState)&&l()};e.src=a;g.getRoot().appendChild(e);return!0}function b(){k=!0}c={execute:a,ignoreMaxQuerystringLength:b,MAX_QUERYSTRING_LENGTH:j};e.exports=c}),null); +__d("ApiClient",["ApiBatcher","ApiClientConfig","ApiClientUtils","Assert","ChunkedRequest","CORSRequest","FlashRequest","JSONPRequest","Log","ObservableMixin","QueryString","UrlMap","flattenObject"],(function(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s){__p&&__p();var t,u,v,w=n.MAX_QUERYSTRING_LENGTH,x={fql_query:!0,fql_multiquery:!0,friends_get:!0,notifications_get:!0,stream_get:!0,users_getinfo:!0},y=["cors","jsonp","flash"],z=0,A=[],B=0,C=0,D;function E(a,b,c,d){__p&&__p();var e=B!==0&&z>=B;if(e){A.push(function(){return E(a,b,c,d)});H.inform("request.queued",a,b,c);return}z++;v&&(c=ES("Object","assign",!1,{},v,c));c.pretty=c.pretty||0;c=s(c);e={jsonp:n,cors:l,flash:m,chunked:k};var f={},g=c.access_token||t;g&&(f.access_token=g);g=ES("Object","keys",!1,f);g.length>0&&(a=q.appendToUrl(a,f),ES(g,"forEach",!0,function(a){return delete c[a]}));c.transport?(f=[c.transport],delete c.transport):f=y;for(var g=0;g0&&zw&&b==="get"}m.setSwfUrl(h.FlashRequest.swfUrl);e.exports=H}),null); +__d("sdk.PlatformVersioning",["ManagedError","sdk.Runtime"],(function(a,b,c,d,e,f,g,h){var i=/^v\d+\.\d\d?$/;a={REGEX:i,assertVersionIsSet:function(){if(!h.getVersion())throw new g("init not called with valid version")},assertValidVersion:function(a){if(!i.test(a))throw new g("invalid version specified")}};e.exports=a}),null); +__d("sdk.api",["ApiClient","sdk.feature","sdk.PlatformVersioning","sdk.Runtime","sdk.Scribe","sdk.URI"],(function(a,b,c,d,e,f,g,h,i,j,k,l){__p&&__p();var m=h("should_log_response_error",!1),n;j.subscribe("ClientID.change",function(a){return g.setClientID(a)});j.subscribe("AccessToken.change",function(a){n=a,g.setAccessToken(a)});g.setDefaultParams({sdk:"joey"});g.subscribe("request.complete",function(a,b,c,d){a=!1;d&&typeof d==="object"&&(d.error?(d.error=="invalid_token"||d.error.type=="OAuthException"&&d.error.code==190)&&(a=!0):d.error_code&&(d.error_code=="190"&&(a=!0)));a&&n===j.getAccessToken()&&j.setAccessToken(null)});g.subscribe("request.complete",function(a,b,c,d){(a=="/me/permissions"&&b==="delete"||a=="/restserver.php"&&c.method=="Auth.revokeAuthorization")&&d===!0&&j.setAccessToken(null)});g.subscribe("request.error",function(a,b,c,d){m&&d.error.type==="http"&&k.log("jssdk_error",{appId:j.getClientID(),error:"transport",extra:{name:"transport",message:ES("JSON","stringify",!1,d.error)}})});function a(a){__p&&__p();if(typeof a==="string")if(j.getIsVersioned()){i.assertVersionIsSet();!/https?/.test(a)&&a.charAt(0)!=="/"&&(a="/"+a);a=new l(a).setDomain(null).setProtocol(null).toString();i.REGEX.test(a.substring(1,ES(a,"indexOf",!0,"/",1)))||(a="/"+j.getVersion()+a);var b=[a].concat(Array.prototype.slice.call(arguments,1));g.graph.apply(g,b)}else g.graph.apply(g,arguments);else g.rest.apply(g,arguments)}e.exports=a}),null); +__d("legacy:fb.api",["FB","sdk.api"],(function(a,b,c,d,e,f,g,h){g.provide("",{api:h})}),3); +__d("AppUserPropertyAPIBuiltinField",[],(function(a,b,c,d,e,f){e.exports={GENDER:"$gender",CITY:"$city",STATE:"$state",ZIPCODE:"$zipcode",COUNTRY:"$country",LANGUAGE:"$language",CURRENCY:"$currency",INSTALL_SOURCE:"$install_source",USER_TYPE:"$user_type",ACCOUNT_CREATED_TIME:"$account_created_time",APP_ID:"$app_id"}}),null); +__d("FBEventsParamList",[],(function(a,b,c,d,e,f){"use strict";__p&&__p();var g="deep",h="shallow";function a(){this.list=[]}a.prototype={append:function(a,b){this._append(encodeURIComponent(a),b,g)},_append:function(a,b,c){Object(b)!==b?this._appendPrimitive(a,b):c===g?this._appendObject(a,b):this._appendPrimitive(a,i(b))},_appendPrimitive:function(a,b){b!=null&&this.list.push([a,b])},_appendObject:function(a,b){for(var c in b)if(Object.prototype.hasOwnProperty.call(b,c)){var d=a+"["+encodeURIComponent(c)+"]";this._append(d,b[c],h)}},each:function(a){var b=this.list;for(var c=0,d=b.length;c(i+"?"+b).length?n(i,b):o(i,a)}function n(a,b){var c=new Image();c.src=a+"?"+b}function o(a,b){__p&&__p();var c="fb"+Math.random().toString().replace(".",""),d=document.createElement("form");d.method="post";d.action=a;d.target=c;d.acceptCharset="utf-8";d.style.display="none";a=!!(window.attachEvent&&!window.addEventListener);a=a?'