OpenJij/OpenJij

View on GitHub
docs/tutorial/ja/004-Evaluation.ipynb

Summary

Maintainability
Test Coverage
{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "V_NR6GiIBDP2"
   },
   "source": [
    "# アニーリングアルゴリズムの評価とOpenJijのベンチマーク機能"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "FbP_6wGgBDP6"
   },
   "source": [
    "アニーリングアルゴリズムはヒューリスティクスの一つなので毎回最適解を出せるとは限りません。\n",
    "また確率的なアルゴリズムであるため、毎回解が異なります。そのため、アルゴリズムの評価をするときは様々な平均値を用いてその解を評価します。よく用いられる指標に\n",
    "\n",
    "- TTS : Time to solution\n",
    "- 成功確率 : Success probability\n",
    "- 残留エネルギー : Resudial energy\n",
    "\n",
    "の3つがあります。\n",
    "成功確率は最適解が得られた確率です。\n",
    "残留エネルギーは最適解にどれくらい近づけたのかを平均的に示す値です。\n",
    "**TTS**は、ある確率で最適解が得られるまでにかかる計算時間を表すもので、様々な評価によく用いられます。\n",
    "\n",
    "この章では上記の3の評価指標の解説と測定方法について解説します。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "av11BMPjBDP8"
   },
   "source": [
    "## Time to solution\n",
    "Time to solutionについて、より詳細に説明していきます。\n",
    "アニーリングアルゴリズムはどの計算時間でも何かしらの解を出すことができます。しかしいくら計算が速くても、誤った解が求まるようでは意味がありません。そこで(例えば90%の確率で最適解が得られるのにかかる時間、のように)自分が必要な確率で最適解が算出されるまでにかかる計算時間を指標とします。\n",
    "\n",
    "\"1-Introduction\"でも行なったようにアニーリングアルゴリズムは複数回行った中から最適解を探すため、計算時間を評価するには複数回行うことも考慮に入れる必要があります。\n",
    "\n",
    "> 例えば短い計算時間$\\tau_{short}$で最適解を出す確率が低くても、その計算時間$\\tau_{short}$で複数回アニーリングをした方が、より長い計算時間$\\tau_{long}$を1回行うよりも計算時間が短くて済むかもしれません。\n",
    "> なので計算時間を考慮するには単純にアニーリング時間を比較するだけでは不十分なことがあります。\n",
    "\n",
    "複数回アニーリングを行うことも考慮に入れて、上述の計算時間を算出したものを**Time to solution(TTS)** と呼びます。TTSは以下のように導くことができます。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "kqwBOHdVBDP9"
   },
   "source": [
    "1回のアニーリング時間を$\\tau$とし、1回のアニーリングで最適解が算出される確率を$p_s(\\tau)$としましょう。この$p_s(\\tau)$が、アルゴリズムの評価に用いられる成功確率です。これらの定義から、1回のアニーリングで最適解が算出されない失敗確率は\n",
    "\n",
    "$$1-p_s(\\tau)$$\n",
    "\n",
    "となります。これを$R$回繰り返してみましょう。すると、この$R$回全てで最適解が算出されない確率は\n",
    "\n",
    "$$\\{ 1-p_s(\\tau) \\}^R$$\n",
    "\n",
    "です。よって$R$回のうち1回でも最適解を得る確率$p_R$は以下のように求まります。\n",
    "\n",
    "$$p_R = 1-\\{ 1-p_s(\\tau)\\}^R$$\n",
    "\n",
    "この式を$R$について解くと\n",
    "\n",
    "$$R = \\frac{\\ln(1-p_R)}{\\ln\\{1-p_s(\\tau)\\}}$$\n",
    "\n",
    "となります。これに1回の計算時間$\\tau$をかけると総計算時間となります。これがTime to solution (TTS, 解を得るまでにかかる計算時間)です。\n",
    "\n",
    "$${\\rm TTS}(\\tau, p_R) = \\tau R = \\tau \\frac{\\ln(1-p_R)}{\\ln\\{1-p_s(\\tau)\\}}$$\n",
    "\n",
    "${\\rm TTS}(\\tau, p_R)$は一回のアニーリングに$\\tau$の計算時間、確率$p_s(\\tau)$のアルゴリズムを用いて最適解が得られるとき、確率$p_R$で最適解が得られるまでの繰り返し回数も考慮した総計算時間になります。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "UH5K7TpfBDP-"
   },
   "source": [
    "実際の計算の評価では$p_R$を定数で与えます。研究などによく用いられる値としては、$p_R=0.99$が多いです。そして様々なアニーリング時間$\\tau$で$p_s(\\tau)$を計算し、それらを用いて${\\rm TTS}(\\tau, p_R)$を計算します。\n",
    "\n",
    "また、実問題では最適解をそもそも知らない場合も少なくありません。\n",
    "そこで、最適解が得られる確率ではなく、実行可能解が得られる確率を用いて計算され **Time to Feasible Solution**も用いられます。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 成功確率\n",
    "成功確率は、単純に最適解が得られる確率を計算します。\n",
    "$R$回アニーリングを繰り返した時に、最適解を$n$回得られたとすると、成功確率$p_s$は、\n",
    "\n",
    "$$p_s = \\frac{n}{R}$$\n",
    "\n",
    "と計算することができます。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 残留エネルギー\n",
    "TTSのように時間ではなく、どれくらい最適解に比べてコストを下げられたかを表す評価指標である**近似比**が用いられることもあります。\n",
    "近似比は、以下のように計算されます。\n",
    "\n",
    "$$\n",
    "r = \\langle E \\rangle / E_{\\min}\n",
    "$$\n",
    "\n",
    "また、物理では**残留エネルギー**という平均エネルギーと最適値の差が使われることもあります。\n",
    "\n",
    "$$\n",
    "E_{\\text{res}} = \\langle E \\rangle - E_{\\min}\n",
    "$$\n",
    "物理ではコスト値が変数の数$N$に比例する問題を扱うことが多いので$(\\langle E \\rangle - E_{\\min})/N$のようにサイズで規格化したり、\n",
    "最適値$E_{\\min}$を使って、$(\\langle E \\rangle - E_{\\min})/|E_{\\min}|$のように規格化することもあります。\n",
    "\n",
    "アニーリングアルゴリズムは最適解への漸近的な収束性が存在するアルゴリズムなので、ほとんどの場合はアニーリング時間を長くすれば、この残留エネルギーが小さくなっていきます。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "Y_aOax-OBDP_"
   },
   "source": [
    "### 1次元反強磁性イジング模型での実験と評価指標の計算\n",
    "\n",
    "実際にOpenJijを使ってこれらの評価指標を計算してみましょう。  \n",
    "以下では1次元反強磁性イジング模型を考えます。これは以下のハミルトニアンで表現される物理モデルです。\n",
    "\n",
    "$$H(\\{\\sigma_i\\}) = \\sum_{i=0}^{N-1} J_{i, i+1}\\sigma_i \\sigma_{i+1} + \\sum_{i=0}^{N-1} h_i \\sigma_i$$\n",
    "\n",
    "ここでは$J_{ij} \\in [0.1, 1.0]$、$h_0 = -1$で他の縦磁場は0を考えます。$J_{ij} > 0$(反強磁性)より、各スピンは異なる向きを向くとエネルギーが下がります。また$h_0=-1$より、0番目のスピンは$\\sigma_0 =1$になります。よって最適解となる$\\{\\sigma_i\\}$は$1, -1, 1, -1, \\cdots$のように、最初が1で値が交互な配置となります。\n",
    "\n",
    "つまり「この問題のTTSを求めよ」という問題は、$1, -1, 1, \\cdots$を得るためにかかる総計算時間となります。  \n",
    "上述のイジング模型を解き、1回の計算時間を伸ばしていくと、TTSや成功確率がどのように変化するかを見てみましょう。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import random\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "# OpenJijをimportします。\n",
    "import openjij as oj "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 反強磁性1次元Ising modelを作ります。\n",
    "N = 30\n",
    "h = {0: -10}\n",
    "J = {(i, i+1): 1 for i in range(N-1)}"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "63j1bHf1BDQR"
   },
   "source": [
    "## TTSを計算してみる\n",
    "\n",
    "OpenJijの`sample_ising`または`sample_qubo`から返ってくる Response クラスは`info`というメンバ変数を持っています。`info`にはsamplerごとに異なる情報が辞書型で格納されています。ほとんどのSamplerには`'execution_time'`というkeyで、各アルゴリズムの1回の実行時間(単位は$\\mu$ s)が格納されています。 \n",
    "SASamplerの場合はSimulated Annealingの1回あたりの計算時間を格納しています。\n",
    "\n",
    "ここでは、この計算時間を使ってTTSを計算していきます。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 最適解を作成します。\n",
    "correct_state = [(-1)**i for i in range(N)]\n",
    "# 最適値を計算しておきます。\n",
    "bqm = oj.BinaryQuadraticModel.from_ising(h, J)\n",
    "minimum_energy = bqm.energy(correct_state)\n",
    "\n",
    "# TTS を計算するのに必要なpRを定義します。\n",
    "pR = 0.99\n",
    "\n",
    "# Samplerの引数の というパラメータに渡すリスト: num_sweeps_listを定義します。 \n",
    "# num_sweepsはアニーリング中のパラメータ(温度, 横磁場)を下げていくときの分割数です。\n",
    "# よって増やすほどゆっくりアニーリングをすることに相当し、アニーリング時間が伸びます。\n",
    "num_sweeps_list = [30, 50, 80, 100, 150, 200,300,500]\n",
    "\n",
    "TTS_list = []       # 各計算時間に対するTTSを格納しておくリストを定義します。\n",
    "tau_list = []        # 計算時間を格納しておくリストを定義します。\n",
    "e_mean_list = []  # エネルギーの平均値\n",
    "e_min_list = []    # 最小エネルギー\n",
    "\n",
    "# 計算の過程で成功確率が求まるので、それを格納しておくリストも定義します。\n",
    "ps_list = []\n",
    "\n",
    "# 確率を計算するために1回のアニーリングを行う回数を定義します。\n",
    "num_reads = 1000\n",
    "\n",
    "for num_sweeps in num_sweeps_list:\n",
    "    sampler = oj.SASampler(num_sweeps=num_sweeps, num_reads=num_reads)  \n",
    "    response = sampler.sample_ising(h, J)\n",
    "\n",
    "    # 計算結果のうち、最適解の数を数えて最適解を得た確率を計算します。\n",
    "    tau = response.info['execution_time']\n",
    "    \n",
    "    # psを計算します。最適値以下のエネルギーの個数をカウントします。\n",
    "    energies = response.energies\n",
    "    ps = len(energies[energies <= minimum_energy])/num_reads\n",
    "    \n",
    "    \n",
    "    # ps = 0のときTTSが無限大に発散してしまうため、それを回避します。\n",
    "    if ps == 0.0:\n",
    "        continue\n",
    "    \n",
    "    # TTSを計算します。\n",
    "    TTS_list.append(np.log(1-pR)/np.log(1-ps)*tau if ps < pR else tau)\n",
    "    tau_list.append(tau)\n",
    "\n",
    "    # 成功確率を計算します。\n",
    "    ps_list.append(ps)\n",
    "    \n",
    "    e_mean_list.append(np.mean(energies))\n",
    "    e_min_list.append(np.min(energies))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "実際に得られたTTSと成功確率のアニーリング時間依存性をプロットしてみます。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'Success probability')"
      ]
     },
     "execution_count": 61,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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iIjMj/fDtsP7IbUWkyiySpcvX8bJkyexcuVKDB48GACwd+/eNn8ef39/dOjQAWfPnsXYsWObbLNv3z506tTJaEz2+fPn2zSObt26ITs7G3l5efD39wcAHDx48LrHyeVyo8mvbaV3797QarXIz883XH8iImp/vB/yfkjiYBJFVsnT0xPe3t745JNPEBgYiKysLMyYMcMszzVnzhxMmzYNKpUKw4cPh0ajwaFDh1BcXIz4+HjceuutyMrKwvr16xEVFYUff/wRmzdvbtMY7rnnHnTp0gXjx4/HwoULUVZWhrfeegvAlW8TmxIaGor9+/fj3LlzcHV1hZeXV5vE07VrV4wdOxbjxo3DBx98gN69e6OgoADJycno2bMnRowY0SbPQ0RELeP9kPdDEger85FVkkqlWL9+PVJTUxEREYGXXnoJ7733nlme65lnnsGqVauwZs0a3H777RgyZAjWrl2LsLAwAMCoUaPw0ksvYcqUKejVqxf27duHWbNmtWkMMpkMW7ZsQXl5OaKiovDMM88YvulTKpXNHvfKK69AJpMhPDwcvr6+yMrKarOY1qxZg3HjxuHll19Gt27dMHr0aBw8eBAdO3Zss+cgIqKW8X7I+yGJQyII7bBMNBG1ud9//x2DBg3C6dOnjSbBEhER2RPeD0kMTKKIrMTmzZvh6uqKW2+9FadPn8b06dPh6elplrHvRERElor3Q7IEnBNFZCXKysrw+uuvIysrCz4+PoiNjTW54hEREZG14/2QLAF7ooiIiIiIiEzAwhJEREREREQmYBJFRERERERkAiZRREREREREJmASRUREREREZAImUURERERERCZgEkVERERERGQCJlFEREREREQmYBJFRERERERkAiZRREREREREJvh/A7IwGEZAT50AAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 1000x300 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 各種描画の設定を行います。\n",
    "fig, (axL, axR) = plt.subplots(ncols=2, figsize=(10,3))\n",
    "plt.subplots_adjust(wspace=0.4)\n",
    "fontsize = 10\n",
    "\n",
    "# TTSを描画します。\n",
    "axL.plot(tau_list, TTS_list, '-o')\n",
    "axL.set_xlabel('annealing time', fontsize=fontsize)\n",
    "axL.set_yscale(\"log\")\n",
    "axL.set_ylabel('TTS', fontsize=fontsize)\n",
    "\n",
    "# 成功確率psを描画します。\n",
    "axR.plot(tau_list, ps_list, '-o')\n",
    "axR.set_xlabel('annealing time', fontsize=fontsize)\n",
    "axR.set_ylabel('Success probability', fontsize=fontsize)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "上の2つの図は両方とも、横軸が1回のアニーリングにかかる計算時間となっています。 \n",
    "アニーリング時間が増加と共に、成功確率が上がっていくことがわかります。\n",
    "この図では、アニーリング時間が200程度でおおよそ成功確率が収束している振る舞いが見られます。\n",
    "\n",
    "TTSを見ると、アニーリング時間が200程度は減少、つまり、素早く最適解が得られるようになっていますが、それ以上ゆっくりアニールすると、TTSが緩やかに上昇していることがわかります。\n",
    "これは、アニーリング時間に対する成功確率が頭打ちになっている傾向を示しています。\n",
    "なので、必要な成功確率が補償できた時点でアニーリングをやめたいときの指標として、これらを有効に使っていきましょう。\n",
    "TTSを縦軸に横軸にアニーリング時間を取った図において、最小のTTSが検証したインスタンスに対するアニーリングアルゴリズムの最良な計算時間となります。\n",
    "\n",
    "この最小のTTSがアルゴリズムの計算時間としてよく用いられる指標になります。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "アニーリングアルゴリズムは最適解への漸近的な収束性が存在するアルゴリズムなので、ほとんどの場合はアニーリング時間を長くすれば、残留エネルギーが小さくなっていきます。\n",
    "残留エネルギーのアニーリング時間依存性をプロットすることで、アニーリングアルゴリズムがうまく動いていることを確認できます。\n",
    "上記のOpenJijのテストでエネルギーの平均値を保存していたので、その結果をプロットしてみましょう。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(tau_list, (np.array(e_mean_list) - minimum_energy)/np.abs(minimum_energy), '-o', label='mean')\n",
    "plt.plot(tau_list, (np.array(e_min_list) - minimum_energy)/np.abs(minimum_energy), '-o', label='lowest')\n",
    "plt.xlabel('annealing time', fontsize=fontsize)\n",
    "plt.ylabel('Residual energy', fontsize=fontsize)\n",
    "plt.legend()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "しっかりアニーリング時間が伸びるごとに平均残留エネルギーが下がっていることがわかります。先ほどは成功確率からTTSなどを計算しましたが、なかなか問題が難しく、最適解が得られない場合にちゃんとアニーリングがうまくいっているかを図る指標としても残留エネルギーは有効です。\n",
    "また残留エネルギーは得られたエネルギー値を最適値でシフトしているだけなので、最適値を知らない場合でも、エネルギーのアニーリング時間依存性というプロットは有効です。\n",
    "最適値がわからない場合でのアルゴリズムの比較などを行う際に使うことができます。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "ekqnlWy_BDQY"
   },
   "source": [
    "## OpenJijのベンチマーク機能を用いた評価指標の計算\n",
    "ここまでは原理を確認するためにスクリプトを作成し、TTSや成功確率等を計算してきました。\n",
    "ですが、OpenJijにはデフォルトでTTS, 残留エネルギー, 成功確率を評価してくれるベンチマーク関数`openjij.solver_benchmark`が存在します。  \n",
    "\n",
    "### solver_benchmark関数\n",
    "\n",
    "`solver_benchmark`関数はTTS, 残留エネルギー, 成功確率を計算し、その値や標準誤差を返します。\n",
    "`solver_benchmark`関数の引数や返り値については、後ほど説明するので、\n",
    "まずは、先ほどと同じ設定で実際にこのベンチマーク関数を用いてTTSなどを計算してみましょう。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "UsT_OrHpBDQZ",
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "# 最適解を定義します。\n",
    "correct_state = [(-1)**i for i in range(N)]\n",
    "\n",
    "# num_sweepsとnum_readsの反復数を与えます。\n",
    "num_sweeps_list = [30, 50, 80, 100, 150, 200,300,500]\n",
    "num_reads = 1000\n",
    "\n",
    "# benchmark関数を用いてTTS, 残留エネルギー, 成功確率を計算します。\n",
    "result = oj.solver_benchmark(\n",
    "                      solver=lambda time, **args: oj.SASampler(num_sweeps=time, num_reads=num_reads).sample_ising(h,J), \n",
    "                      time_list=num_sweeps_list, solutions=[correct_state], p_r=0.99\n",
    "            )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 245
    },
    "colab_type": "code",
    "id": "cZ1cs-g1BDQc",
    "outputId": "faf086d7-83b4-48e8-f75a-d2eefbac563d"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'Success probability')"
      ]
     },
     "execution_count": 64,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABNQAAAEmCAYAAACqKs08AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAACDt0lEQVR4nO3deVxUZfs/8M/MsG/DviggiLkgKi6ouGSmKWma9dTPbHHJ7MkwS7TEckl90lyy8itpaS6VpS1aaWWaayYqLuSC4oaiyIDs+wAz5/cHzOjINiDDmWE+71fzkjnnPudcM9DccJ37vi+JIAgCiIiIiIiIiIiISC9SsQMgIiIiIiIiIiIyJUyoERERERERERER1QMTakRERERERERERPXAhBoREREREREREVE9MKFGRERERERERERUD0yoERERERERERER1QMTakRERERERERERPXAhBoREREREREREVE9WIgdgJjUajVu374NR0dHSCQSscMhIqo3QRCQn5+PFi1aQCrlPZLmjH0WEZk69lnmgf0VEZk6ffsrs06o3b59G35+fmKHQUT0wG7evAlfX1+xwyADYp9FRM0F+6zmjf0VETUXdfVXZp1Qc3R0BFDxJjk5OYkcDRFR/eXl5cHPz0/7eUbNF/ssIjJ17LPMA/srIjJ1+vZXZp1Q0wxBdnJy4oc9EZk0Tqlo/thnEVFzwT6reWN/RUTNRV39FRcvICIiIiIiaoYOHTqEESNGoEWLFpBIJPj555/rPObAgQPo1q0brK2t0aZNG2zcuNHgcRIRmSIm1IiIiIiIiJqhwsJCdOnSBTExMXq1T0pKwvDhwzFw4EDEx8fjrbfewiuvvII///zTwJESEZkes57y2RAqtYDjSVlIzy+Bp6MNega6QiblsHUiIjI+7LOIiMzb448/jscff1zv9mvWrEFgYCA++ugjAECHDh1w+PBhfPzxxxg6dKihwiQianRN8XuwWSbUYmJiEBMTA5VKVa/jdp1LxfwdCUjNLdFu85HbYN6IYESE+DR2mERERA3GPouIiOorNjYWgwcP1tk2dOhQvPXWW+IERETUAE31e7BZTvmMjIxEQkIC4uLi9D5m17lUTP7mlM43BAAUuSWY/M0p7DqX2thhEhERNQj7LCIiagiFQgEvLy+dbV5eXsjLy0NxcXG1xyiVSuTl5ek8iIjE0pS/B5tl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",
      "text/plain": [
       "<Figure size 1500x300 with 3 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 各種描画を行うための設定を行います。\n",
    "fig, (axL,axC,axR) = plt.subplots(ncols=3, figsize=(15,3))\n",
    "plt.subplots_adjust(wspace=0.4)\n",
    "fontsize = 10\n",
    "\n",
    "# TTSを描画します。\n",
    "axL.plot(result['time'], result['tts'],'-o')\n",
    "axL.set_xlabel('annealing time', fontsize=fontsize)\n",
    "axL.set_yscale(\"log\")\n",
    "axL.set_ylabel('TTS', fontsize=fontsize)\n",
    "\n",
    "# 残留エネルギーを描画します。\n",
    "axC.plot(result['time'], result['residual_energy'],'-o')\n",
    "axC.set_xlabel('annealing time', fontsize=fontsize)\n",
    "axC.set_ylabel('Residual energy', fontsize=fontsize)\n",
    "\n",
    "# 最適解が出現した確率を描画します。\n",
    "axR.plot(result['time'], result['success_prob'],'-o')\n",
    "axR.set_xlabel('annealing time', fontsize=fontsize)\n",
    "axR.set_ylabel('Success probability', fontsize=fontsize)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "先ほど自分でスクリプトを書いた場合と同じ結果が再現できていることがわかります。\n",
    "このようにして簡単にベンチマークをとることができます。  \n",
    "\n",
    "さらに、`solver_benchmark`関数は標準誤差も計算してくれるので、エラーバー付きの結果も簡単にプロットすることができます。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'Success probability')"
      ]
     },
     "execution_count": 65,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABNUAAAEmCAYAAABF6KYCAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAACItklEQVR4nO3deVxUZfs/8M8M+yKDyK4oikuayigqoeSSlrZItv2sfB5FlLAQLCzTUtEWrTRzIzURqL6VPuZSaZmKqZloiiLugooLOyoMy8g25/cHMjoyKCgzZ4b5vF8vXs7c55w51xxqbuY6931fEkEQBBAREREREREREVGDScUOgIiIiIiIiIiIyNgwqUZERERERERERNRITKoRERERERERERE1EpNqREREREREREREjcSkGhERERERERERUSMxqUZERERERERERNRITKoRERERERERERE1EpNqREREREREREREjWQudgBiU6lUyMrKQosWLSCRSMQOh4io0QRBQHFxMTw9PSGV8l5Jc8X+ioiMHfsr08D+ioiMXWP6K5NPqmVlZcHLy0vsMIiIHtqVK1fQpk0bscMgHWF/RUTNBfur5o39FRE1Fw3pr0w+qdaiRQsANRfLwcFB5GiIiBpPoVDAy8tL/XlGzRP7KyIyduyvTAP7KyIydo3pr0w+qVY7JNnBwYEf+kRk1DjFonljf0VEzQX7q+aN/RURNRcN6a+4mAEREREREREREVEjMalGRET0EDIyMjBhwgS0b98eNjY28PHxQXR0NCoqKjT2S01NxeOPPw5ra2t4eXnhiy++ECliIiIyFXv37sXIkSPh6ekJiUSCzZs333P/jRs34sknn4SLiwscHBwQEBCAP//8Uz/BEhEZISbViIiIHsKZM2egUqmwatUqnDx5El999RVWrlyJDz74QL2PQqHAU089hXbt2iE5ORkLFizAnDlz8M0334gYORERNXelpaXw9fVFTExMg/bfu3cvnnzySfz+++9ITk7GkCFDMHLkSBw9elTHkRIRGSeJIAiC2EGISaFQQCaToaioiHP+icgo8XPM8CxYsAArVqzAhQsXAAArVqzAhx9+iJycHFhaWgIApk+fjs2bN+PMmTMNek3+nonI2PFzTFwSiQSbNm3CqFGjGnXco48+itGjR2P27NkN2p+/ZyIydo35HONINSIioiZWVFQEJycn9fOkpCQMHDhQnVADgOHDh+Ps2bO4ceOG1tcoLy+HQqHQ+CEiItInlUqF4uJijT6NiIhuM9mkWkxMDLp164a+ffuKHQoRETUj6enpWLZsGcLCwtRtOTk5cHNz09iv9nlOTo7W15k/fz5kMpn6x8vLS3dBExERabFw4UKUlJTg//2//1fvPrwJRESmzFzsAMQSHh6O8PBw9bA+Q5KdnY3s7OxGH+fh4QEPDw8dREREZHqmT5+Ozz///J77nD59Go888oj6eWZmJkaMGIFXXnkFoaGhD3X+GTNmICoqSv1coVDcM7HGvoOIiJrSjz/+iLlz5+KXX36Bq6trvfvNnz8fc+fO1WNk+sF+lYgawmSTaoZs1apVD9QxRUdHY86cOU0fEBGRCZo6dSqCg4PvuU+HDh3Uj7OysjBkyBD079+/TgECd3d35ObmarTVPnd3d9f62lZWVrCysmpwvOw7iIioqaxduxYTJ07E+vXrMWzYsHvu29ibQMZCzH6VCT0i48GkmgEKCwtDUFCQRptSqURgYCAAYN++fbCxsalzHD9AiYiajouLC1xcXBq0b2ZmJoYMGQI/Pz/Ex8dDKtVcXSEgIAAffvghKisrYWFhAQDYsWMHunTpgpYtWzZJvOw7iIioKfz0008ICQnB2rVr8eyzz953/8beBDIWYvarvFFGZDyYVDNA2u4wlJaWqh/L5XLY2dnpOywiItIiMzMTgwcPRrt27bBw4ULk5+ert9WOQnv99dcxd+5cTJgwAe+//z5OnDiBJUuW4KuvvmqyONh3EBHR3UpKSpCenq5+fvHiRaSkpMDJyQlt27bFjBkzkJmZie+++w5AzZTPcePGYcmSJfD391ev+2ljY2NwS+bompj9Km+UERkPJtWIiIgewo4dO5Ceno709HS0adNGY5sgCAAAmUyG7du3Izw8HH5+fnB2dsbs2bPxxhtviBEyERGZiMOHD2PIkCHq57XTNMeNG4eEhARkZ2fj8uXL6u3ffPMNqqqq1OtP16rdn/SDN8qIjAeTakRERA8hODj4vmuvAUDPnj3x999/6z4gIiKiWwYPHqy+waPN3Ymy3bt36zYgIqJmhkm1JsLFJImIiIiIiIiITAeTak2Ei0kSERERERGRseEAEaIHx6RaE+FikkRERERERGRsOECE6MExqdZEuJgkERERERERGRtTGiDCUXnU1JhUIyIiIiIiIjJRpjRAhKPyqKkxqUZEREREREREzZ4pjcoj/WBSjYiIiIiIiIiaPVMalUf6IRU7ACIiIiIiIiIiImPDpBoREREREREREVEjcfonEREREREREREZJTGrujKpRkRERERERERERknMqq5MqhERERERERERkVESs6ork2pERERERERERGSUxKzqykIFREREREREREREjcSkGhERERERERERUSMxqUZERERERERERNRITKoRERERERERERE1EpNqREREREREREREjcSkGhERERERERERUSMxqUZERERERERERNRITKoRERERERERERE1krnYATSVsrIydO3aFa+88goWLlwodjhERERERESi2rt3LxYsWIDk5GRkZ2dj06ZNGDVq1D2P2b17N6KionDy5El4eXlh5syZCA4O1ku8upSdnY3s7OxGH+fh4QEPDw8dREREzUGzSap9+umneOyxx8QOg4iIiIiIyCCUlpbC19cXISEhePHFF++7/8WLF/Hss89i0qRJ+OGHH5CYmIiJEyfCw8MDw4cP10PEurNq1SrMnTu30cdFR0djzpw5TR8QETULzSKplpaWhjNnzmDkyJE4ceKE2OEQERERERGJ7umnn8bTTz/d4P1XrlyJ9u3b48svvwQAdO3aFfv27cNXX31l9Em1sLAwBAUFabQplUoEBgYCAPbt2wcbG5s6x3GUGpFxSk9PVz+Ojo5GWFgYOnXq1OTnEX1Ntb1792LkyJHw9PSERCLB5s2b6+wTExMDb29vWFtbw9/fH//++6/G9nfffRfz58/XU8RERERERETNT1JSEoYNG6bRNnz4cCQlJdV7THl5ORQKhcaPIfLw8EDv3r01fuRyuXq7XC6vs713795MqhEZofj4ePj5+cHBwQEDBw5EfHw8unbtioSEhCY/l+hJtdohyTExMVq3r1u3DlFRUYiOjsaRI0fg6+uL4cOHIy8vDwDwyy+/oHPnzujcubM+wyYiIiIiImpWcnJy4ObmptHm5uYGhUIBpVKp9Zj58+dDJpOpf7y8vPQRKlGTuXtEU1pamojR0IOqVgm4WVmNoydOITQ0FCEhIcjJycGePXtw9epVjB8/HhMnTtT4fTcF0ad/3m9I8qJFixAaGorx48cDqBmSvHXrVsTFxWH69Ok4cOAA1q5di/Xr16OkpASVlZVwcHDA7Nmztb5e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aNu2LfsrIjJajemvJIKJ92pXr17l3RQiahauXLmiHhlFzQ/7KyJqLthf6d7p06fRrVs3HD58GH5+fgCA7du3Y8SIEbh69So8PT21HqdQKDB8+HBYWVnh999/h62tbaPPzf6KiJqLhvRXJp9UU6lUyMrKQosWLSCRSMQOp8koFAp4eXnhypUrcHBwEDsc0fF61MVrosmYr4cgCCguLoanpyekUs7qb67YX5kOXhNNvB51Ges1YX+lX08//TRyc3OxcuVKVFZWYvz48ejTpw9+/PFHAEBmZiaGDh2K7777Dv369YNCocBTTz2FsrIybNq0CXZ2durXcnFxgZmZWYPOy/7KdPCaaOL1qMtYr0lj+iuTn/4plUqb9Z0yBwcHo/qPV9d4PeriNdFkrNdDJpOJHQLpGPsr08NroonXoy5jvCbsr/Tnhx9+wOTJkzF06FBIpVK89NJLWLp0qXp7ZWUlzp49i7KyMgDAkSNHcPDgQQBAx44dNV7r4sWL8Pb2btB52V+ZHl4TTbwedRnjNWlof2XySTUiIiIiIqLmxsnJST0qTRtvb2+N9YIGDx7M9e6IiBqJ466JiIiIiIiIiIgaiUm1ZsrKygrR0dGwsrISOxSDwOtRF6+JJl4PInHw/726eE008XrUxWtCpH/8/64uXhNNvB51mcI1MflCBURERERERERERI3FkWpERERERERERESNxKQaERERERERERFRIzGpRkRERERERERE1EhMqhERERERERERETUSk2pGZO/evRg5ciQ8PT0hkUiwefNmje2CIGD27Nnw8PCAjY0Nhg0bhrS0NI19rl+/jjFjxsDBwQGOjo6YMGECSkpK9Pgums78+fPRt29ftGjRAq6urhg1ahTOnj2rsc/NmzcRHh6OVq1awd7eHi+99BJyc3M19rl8+TKeffZZ2NrawtXVFe+99x6qqqr0+VaazIoVK9CzZ084ODjAwcEBAQEB+OOPP9TbTe163O2zzz6DRCLB22+/rW4z9WtCpAvsr+pin6WJ/dW9sb8i0h/2WZrYX2lif3V/pt5nMalmREpLS+Hr64uYmBit27/44gssXboUK1euxMGDB2FnZ4fhw4fj5s2b6n3GjBmDkydPYseOHdiyZQv27t2LN954Q19voUnt2bMH4eHhOHDgAHbs2IHKyko89dRTKC0tVe/zzjvv4LfffsP69eux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9vYabbXxHD9+HNXV1ejcubPG65SXl6NVq1ZNFhcRUXPBPot9FhGRMWB/xf6Kmh6TamSQRo4ciXbt2mH16tXw9PSESqVC9+7dUVFRobGfhYWF+rFEIgEAjeHLd26v3Ue4VTWmpKQEALB69Wr4+/tr7GdmZgYASEpKwpgxYzB37lwMHz4cMpkMa9euxZdfftmo96MtjruHWeuKtnPfK56SkhKYmZkhOTlZfR1q3dlJEBFRDfZZTYd9FhGR7rC/ajrsr6gWk2pkcK5du4azZ89i9erVePzxxwEA+/bta/LzuLm5wdPTExcuXMCYMWO07rN//360a9dOY/79pUuXmjSOLl264MqVK8jNzYWbmxsA4NChQ/c9ztLSUmPhy6bSq1cvVFdXIy8vT339iYhIO/ZZ7LOIiIwB+yv2V6QbTKqRwWnZsiVatWqFb775Bh4eHrh8+TKmT5+uk3PNnTsXkZGRkMlkGDFiBMrLy3H48GHcuHEDUVFR6NSpEy5fvoy1a9eib9++2Lp1KzZt2tSkMTz55JPw8fHBuHHj8MUXX6C4uBgzZ84EcPvOkDbe3t44ePAgMjIyYG9vDycnpyaJp3PnzhgzZgzGjh2LL7/8Er169UJ+fj4SExPRs2dPPPvss01yHiKi5oB9FvssIiJjwP6K/RXpBqt/ksGRSqVYu3YtkpOT0b17d7zzzjtYsGCBTs41ceJExMbGIj4+Hj169MCgQYOQkJCA9u3bAwCCgoLwzjvvYPLkyZDL5di/fz9mzZrVpDGYmZlh8+bNKCkpQd++fTFx4kT1XRtra+t6j3v33XdhZmaGbt26wcXFBZcvX26ymOLj4zF27FhMnToVXbp0wahRo3Do0CG0bdu2yc5BRNQcsM9in0VEZAzYX7G/It2QCLWTn4nIYPzzzz8IDAxEenq6xgKYREREhoZ9FhERGQP2V6QLTKoRGYBNmzbB3t4enTp1Qnp6OqZMmYKWLVvqZJ0DIiKih8E+i4iIjAH7K9IHrqlGZACKi4vx/vvv4/Lly3B2dsawYcMaXf2GiIhIH9hnERGRMWB/RfrAkWpERERERERERESNxEIFREREREREREREjcSkGhERERERERERUSMxqUZERERERERERNRITKoRERERERERERE1EpNqREREREREREREjcSkGhERERERERERUSMxqUZERERERERERNRITKoRERERERERERE1EpNqREREREREREREjfT/AdxZP36F69UKAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 1500x300 with 3 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, (axL,axC,axR) = plt.subplots(ncols=3, figsize=(15,3))\n",
    "plt.subplots_adjust(wspace=0.4)\n",
    "\n",
    "fontsize = 10\n",
    "axL.plot(result['time'], result['tts'])\n",
    "axL.errorbar(result['time'], result['tts'], yerr = (result['se_lower_tts'],result['se_upper_tts']), capsize=5, fmt='o', markersize=5, ecolor='black', markeredgecolor = \"black\", color='w')\n",
    "axL.set_xlabel('annealing time', fontsize=fontsize)\n",
    "axL.set_ylabel('TTS', fontsize=fontsize)\n",
    "axL.set_yscale(\"log\")\n",
    "\n",
    "axC.plot(result['time'], result['residual_energy'])\n",
    "axC.errorbar(result['time'], result['residual_energy'], yerr = result['se_residual_energy'], capsize=5, fmt='o', markersize=5, ecolor='black', markeredgecolor = \"black\", color='w')\n",
    "axC.set_xlabel('annealing time', fontsize=fontsize)\n",
    "axC.set_ylabel('Residual energy', fontsize=fontsize)\n",
    "\n",
    "axR.plot(result['time'], result['success_prob'])\n",
    "axR.errorbar(result['time'], result['success_prob'], yerr = result['se_success_prob'], capsize=5, fmt='o', markersize=5, ecolor='black', markeredgecolor = \"black\", color='w')\n",
    "axR.set_xlabel('annealing time', fontsize=fontsize)\n",
    "axR.set_ylabel('Success probability', fontsize=fontsize)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "F1MP6xatBDQf"
   },
   "source": [
    "## ユーザ定義関数のベンチマーク\n",
    "\n",
    "`solver`に入れる関数は`Response`クラスを返して、`.info['execution_time']`に計算時間を格納しておけばどのような自作関数を代入しても構いません。  \n",
    "\n",
    "次に、適当なユーザsolver関数を作成してベンチマークを取る例として、\n",
    "[1, 1, 1, 1,...]と[1, -1, 1, -1,...]と[-1, 1, -1, 1,...]の3つのスピン状態からランダムに一つの状態を返す関数を作成し、アニーリングアルゴリズムのベンチマークを取ってみましょう。最適解は[1, -1, 1, -1,...]とします。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "QDHCChaRBDQg"
   },
   "outputs": [],
   "source": [
    "import time \n",
    "\n",
    "def anti_ferro_solver(time_param, num_reads, h, J):\n",
    "#     \"\"\"\n",
    "#     [1, 1, 1,...]と[1,-1,1,...]と[-1,1,-1,...]の3つの状態からランダムに選ぶ関数です。\n",
    "#     \"\"\"\n",
    "    \n",
    "    # 入力された h と J から添字の集合を作成します。\n",
    "    indices = set(h.keys())\n",
    "    indices = list(indices | set([key for keys in J.keys() for key in keys]))\n",
    "    \n",
    "    # [1, 1, 1,...]の状態を作成します。\n",
    "    ones_state = list(np.ones(len(indices), dtype=int))\n",
    "    \n",
    "    # [-1, 1, -1,...]の状態を作成します。\n",
    "    minus_plus_state = np.ones(len(indices), dtype=int)\n",
    "    minus_plus_state[::2] *= -1\n",
    "    # [1, -1, 1,...]の状態を作成します。\n",
    "    plus_minus_state = -1 * minus_plus_state\n",
    "    \n",
    "    # 実行時間を計測を開始します。\n",
    "    start = time.time()\n",
    "    _states = [ones_state, list(minus_plus_state), list(plus_minus_state)]\n",
    "    \n",
    "    # 3つの状態からランダムに1つの状態を選出します。\n",
    "    state_record = [_states[np.random.randint(3)] for _ in range(num_reads)]\n",
    "    # state_recordをndarrayに変換します。\n",
    "    state_record = np.array(state_record)\n",
    "    \n",
    "    # ここでは適当に計算時間をかさ増しします。\n",
    "    exec_time = (time.time()-start) * 10**3 * time_param\n",
    "    # ここでは適当にエネルギーを計算します。\n",
    "    energies = [sum(state) for state in state_record]\n",
    "    \n",
    "    # 状態のリストと添字を紐づけるために、1つのタプルにします。\n",
    "    samples_like = (state_record, indices)\n",
    "        \n",
    "    # dimodのfrom_samplesを参考に、Responseクラスに状態とエネルギーを格納します。\n",
    "    response = oj.Response.from_samples(samples_like=samples_like, energy=energies, vartype='SPIN')\n",
    "    # response.infoの'execution_time'キーに計算時間を代入します。\n",
    "    response.info['execution_time'] = exec_time\n",
    "    \n",
    "    return response"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "OpenJijのresponseはdimodのSampleSetを参考にして作られています。\n",
    "そのため、OpenJijに慣れておけばdimodの利用やD-Wave実行への移行も容易になるというメリットがあります。\n",
    "dimodのSampleSetの詳細については以下のdimodのSamplesページをご覧ください。  \n",
    "[Samples](https://docs.ocean.dwavesys.com/projects/dimod/en/latest/reference/sampleset.html)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "自作solver関数ができたので、この関数に対してベンチマークをとってみましょう。\n",
    "ここでは、ランダムに状態を返すので、最適値はありませんがTTSの計算のために、`[1, -1, 1,...]`を最適解としておきます。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "lO8DpCkyBDQk"
   },
   "outputs": [],
   "source": [
    "# 最適解を[1, -1, 1,...]と定義しておきます。\n",
    "correct_state = [(-1)**i for i in range(N)]\n",
    "\n",
    "# num_sweepsとnum_readsを定義しておきます。\n",
    "num_sweeps_list = list(range(10, 101, 10))\n",
    "num_reads = 2000\n",
    "\n",
    "# benchmark関数でTTS, 残留エネルギー, 成功確率を計算します。\n",
    "result = oj.solver_benchmark(\n",
    "                      solver= lambda time_param, **args: anti_ferro_solver(time_param, num_reads, h, J), \n",
    "                      time_list=num_sweeps_list, solutions=[correct_state], p_r=0.99\n",
    "              )"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 245
    },
    "colab_type": "code",
    "id": "v8feULpDBDQo",
    "outputId": "6a4eb208-1795-4aec-ed26-bde92d9c928c",
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0, 0.5, 'Success probability')"
      ]
     },
     "execution_count": 59,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABN4AAAEmCAYAAAC9CF31AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAA9hAAAPYQGoP6dpAADJQ0lEQVR4nOzdd1zUhf/A8dcdG2QIyBBBUFyIiDtH7nJr9W3Yzm/ZN8vSbH1t6Fcz/Wal1jfTX7a1XZarNHObAwVRcYADRJG997i73x/HnZKggMDn7ng/Hw8eyd3n7t5k8bl7f95DpdPpdAghhBBCCCGEEEIIIRqUWukAhBBCCCGEEEIIIYSwRJJ4E0IIIYQQQgghhBCiEUjiTQghhBBCCCGEEEKIRiCJNyGEEEIIIYQQQgghGoEk3oQQQgghhBBCCCGEaASSeBNCCCGEEEIIIYQQohFI4k0IIYQQQgghhBBCiEYgiTchhBBCCCGEEEIIIRqBtdIBmAOtVsvly5dxdnZGpVIpHY4QQtSZTqcjPz+f1q1bo1bLNRdLJucsIYS5k3NW8yDnKyGEuavt+UoSb7Vw+fJl/P39lQ5DCCFu2sWLF2nTpo3SYYhGJOcsIYSlkHOWZZPzlRDCUtzofCWJt1pwdnYG9P8yXVxcFI5GCCHqLi8vD39/f+PvM2G55JwlhDB3cs5qHuR8JYQwd7U9X0nirRYMpc8uLi5yUhBCmDVp5bB8cs4SQlgKOWdZNjlfCSEsxY3OVzI0QQghhBBCCCGEEEKIRiCJNyGEEEIIIYQQQgghGoG0mgohhJnQaHVExGeRll+Cl7M9fYPcsVJLG44QQoiayblDCCFEXcm5o2FJ4k0IIczA5phk5m04SXJuifE2X1d75k4IYXSor4KRCSGEMFVy7hBCCFFXcu5oeNJqKoQQJm5zTDLT1kRVOfkBpOSWMG1NFJtjkhWKTAghhKmSc4cQQoi6knNH45DEmxBCmDCNVse8DSfRVXOf4bZ5G06i0VZ3hBBCiOZIzh1CCCHqSs4djUcSb0IIYcIi4rOuueJ0NR2QnFtCRHxW0wUlhBDCpMm5QwghRF3JuaPxSOJNCCFMWFp+zSe/+hwnhBDC8sm5QwghRF3JuaPxSOJNCCFMmJezfYMeJ4QQwvLJuUNUZ/ny5QQGBmJvb0+/fv2IiIio8di1a9fSu3dv3NzccHJyIjw8nNWrV1c55rHHHkOlUlX5Gj16dGP/GEKIRiLnjsYjiTchhDBhfYPc8XGp+eSmQr9lqG+Qe9MFJYQQwqT1DXLH19Ue1XWOkXNH8/L9998za9Ys5s6dS1RUFN27d2fUqFGkpaVVe7y7uzuvvfYa+/fv59ixY0yZMoUpU6awZcuWKseNHj2a5ORk49e3337bFD+OEKIR3OjcIZ876k8Sb0IIYcKs1Cp6BrhVe5/hpDh3QghW6ut9vBJCCNGcWKlVzJ0Qct1j5oyXc0dzsmTJEqZOncqUKVMICQlh5cqVODo68tlnn1V7/NChQ7nzzjvp0qUL7du3Z8aMGYSFhbF3794qx9nZ2eHj42P8atmyZVP8OEKIRlCbc4d87qgfSbwJIYQJ++NECr/FpADg6mBT5T4fV3tWPNST0aG+SoQmhBDChI0O9WXFQz3xcLKt9n6VSj44NRdlZWVERkYycuRI421qtZqRI0eyf//+Gz5ep9Oxbds2YmNjGTx4cJX7du7ciZeXF506dWLatGlkZmbW+DylpaXk5eVV+RJCmBbDucPOumqqyMFGLZ87boK10gEIIYSo3rn0Amb9cBSAxwYE8sb4ECLis0jLL8HLWV/mLVechBBC1GR0qC8FJRW8+NMxOni1YP6kUHafSWPFzvP8Z/0JBnXwpIWdfBywdBkZGWg0Gry9vavc7u3tzenTp2t8XG5uLn5+fpSWlmJlZcVHH33EbbfdZrx/9OjR3HXXXQQFBXHu3DleffVVxowZw/79+7Gysrrm+RYtWsS8efMa7gcTQjSKUV19cLBRU1qhZXyYLxuPJeNoa82orj5Kh2a25EwrhBAmqKC0gn+tjqSgtIK+ge68Nq4LVmoV/dt7KB2aEEIIM5KYXQxA78CW9G/vQY8ANzYdSyExq4glf8Qx5wZtRaL5cnZ2Jjo6moKCArZt28asWbNo164dQ4cOBWDy5MnGY7t160ZYWBjt27dn586djBgx4prnmz17NrNmzTJ+n5eXh7+/f6P/HEKIujmbVkBOcQX2Nmre/kcY206lkVlYRlxqAZ18nJUOzyxJq6kQQpgYnU7HSz8e5WxaAd4udnz4YA9srOTXtRBCiLq7kFkIQIC7EwD2Nla8eUcoAF/siycmKVex2ETT8PT0xMrKitTU1Cq3p6am4uNTcwWLWq0mODiY8PBwXnjhBe6++24WLVpU4/Ht2rXD09OTs2fPVnu/nZ0dLi4uVb6EEKbnYHwWAD0DWuJkZ21cprD3bIaSYZk1+SQnhBAmZuWu8/wek4KNlYqPHuwlK7uFEELU24XMIgACPRyNtw3p2IoJ3Vuj1cGrvxxHo9UpFZ5oAra2tvTq1Ytt27YZb9NqtWzbto3+/fvX+nm0Wi2lpaU13n/p0iUyMzPx9ZUZUEKYs4jKxJsh4TYo2BOAvyTxVm+SeBNCCBOy50w672zRz1uZO6ErvdrKdjAhhBD1Z6h4a+vhVOX2N8Z3wdnemmOXclm9P0GByERTmjVrFqtWreLLL7/k1KlTTJs2jcLCQqZMmQLAI488wuzZs43HL1q0iK1bt3L+/HlOnTrFe++9x+rVq3nooYcAKCgo4KWXXuLAgQMkJCSwbds2Jk2aRHBwMKNGjVLkZxRC3DydTncl8RaoT7wNrEy8HTifSVmFVrHYzJnMeBNCCBNxMauIZ789glYH9/Zuw4P9ApQOSQghhBnLLS4nu6gcgICrKt4AvJzteXl0Z974NYZ3/4hjdKgvPq5SYW2p7rvvPtLT05kzZw4pKSmEh4ezefNm48KFxMRE1OorNRmFhYU8/fTTXLp0CQcHBzp37syaNWu47777ALCysuLYsWN8+eWX5OTk0Lp1a26//XbefPNN7OzsFPkZhRA372JWMSl5JVirVfQI0BcAdPZxxsPJlszCMqIv5hgr4UTtSeJNCCFMQEm5hqfWRJJTVE5YG1fmTwpFpZKNpUIIIeovsbLN1LOFXbXbSx/sG8DPkZeIvpjD/I0n+OjBXk0domhC06dPZ/r06dXet3PnzirfL1iwgAULFtT4XA4ODmzZsqUhwxNCmICD8ZkAhLVxxcFWv51YrVYxINiTDUcvs/dshiTe6kFaTYUQQmE6nY5XfznOict5uDvZsuKhXtjbWCkdlhBCCDOXUNlmGvi3ajcDtVrForu6YaVW8dvxFLafTq32OCGEEM3DoQTDfDePKrcPCtZ/L3Pe6kcSb0IIobDVBy6wNioJtQo+vL8Hfm4OSockhBDCAtQ03+1qXXxdeHxQEABv/HqCorKKJolNCCGE6THMd+v3t6o2w5y36Is55JeUN3lc5k4Sb0IIoaBDCVnM33ASgNljujCg8qQmhBBC3KyEylbTtjVUvBnMHNkBPzcHknKKeX/bmaYITQghhIlJzSshIbMIlQp6BVZd8NampSOBHo5otDoOns9SKELzJYk3IYRQSGpeCU9/HUWFVsf4MF+euDVI6ZCEEEJYkMRaJt4cba2ZP6krAJ/uied0Sl6jxyaEEMK0GKrdQnxdcLG3ueZ+Q9XbXmk3rTNJvAkhhALKKrQ8/XUU6fmldPJ2ZvHdYbJMQQghRIO6MuOt5lZTgxFdvBnd1YcKrY7Za4+j1eoaOzwhhBAmxJB4q2l5wqDKxJvMeas7SbwJIYQC3tx4ksgL2TjbW/N/D/fC0VaWTAshhGg4RWUVpOWXAjeueDOYOzEEJ1srjiTm8O2hxMYMTwghhImpab6bQf/2HqhUcCatgNS8kqYMzexJ4k0IIZrYj4cvsvrABVQqeH9yOIGeN65EEEIIIeoiMUvfZurqYIObo22tHuPr6sALt3cC4O3fT5NembgTQghh2bILy4hNzQegd2D1iTc3R1vC/FwBqXqrK0m8CSFEEzp+KZfXfo0BYOaIjgzv7K1wRKK+du/ezYQJE2jdujUqlYpff/21yv06nY45c+bg6+uLg4MDI0eO5MyZGw8tT0pK4qGHHsLDwwMHBwe6devG4cOHG+mnEEJYqoQMfeItsJbVbgaPDgikm58reSUVLNh0sjFCE0IIYWIOJeir3dq3csKzhV2Nx8mct/qRxJsQQjSRzIJSnloTSVmFlpFdvHh2eLDSIYmbUFhYSPfu3Vm+fHm19y9evJgPPviAlStXcvDgQZycnBg1ahQlJTWX5mdnZzNw4EBsbGz4/fffOXnyJO+99x4tW7as8TFCCFGdC5Xz3QJqMd/talZqFQvv7IZaBeuiL7M7Lr0xwhNCCGFCrsx387jucYY5b3vPZKDTySzQ2pKhQkII0QQqNFqe/fYISTnFBHk6seS+cNRqWaZgzsaMGcOYMWOqvU+n07Fs2TJef/11Jk2aBMBXX32Ft7c3v/76K5MnT672cW+//Tb+/v58/vnnxtuCgmTbrRCi7i5k1a/iDaBbG1ce6R/IF/sSeGNdDFtmDsbexqqhQxRCCGEiDBVvNc13M+jZtiV21mrS8ks5m1ZAB2/npgjP7EnFmxBCNIF3tsSy71wmjrZW/N/Dvapd0S0sR3x8PCkpKYwcOdJ4m6urK/369WP//v01Pm79+vX07t2be+65By8vL3r06MGqVauu+1qlpaXk5eVV+RJCCEPFW9s6VrwZvHB7R7xd7LiQWcTyHWcbMjQhhBAmpKC0gpjL+vePNW00NbC3sTIeI+2mtSeJNyGEaGQbj13m/3afB+Cdu7vTUa4MWbyUlBQAvL2rzvDz9vY23led8+fPs2LFCjp06MCWLVuYNm0azz33HF9++WWNj1m0aBGurq7GL39//4b5IYQQZq2+M94MnO1tmDexKwArd53jbFp+g8UmhBDCdERdyEaj1dGmpQOt3RxueLxhzpssWKg9SbwJIUQjik3J5+WfjgHwr8HtGBfmq3BEwpRptVp69uzJwoUL6dGjB08++SRTp05l5cqVNT5m9uzZ5ObmGr8uXrzYhBHXj0arY/+5TNZFJ7H/XCYarcwIEaIhlVZouJxbDEBAPRNvAKO6+jCisxflGh2v/hIj83yEEMICXZnvdv1qNwPDnLcD57Mo12gbLS5LIjPehBCikeQWl/Ov1YcpKtMwMNiDl0Z1Ujok0UR8fHwASE1Nxdf3SrI1NTWV8PDwGh/n6+tLSEhIldu6dOnCzz//XONj7OzssLOrefuUqdkck8y8DSdJzr2yZMLX1Z65E0IYHSqJaSEawqXsYnQ6cLS1otV1ttPdiEqlYt6kruw7l0lEfBY/Rl7i3t5SVSuEEJbEkHi70Xw3gxBfF9wcbcgpKufYpRx6ta3d45ozqXgTQohGoNXqmPV9NAmZRfi5OfC/+3tibSW/cpuLoKAgfHx82LZtm/G2vLw8Dh48SP/+/Wt83MCBA4mNja1yW1xcHG3btm20WJvS5phkpq2JqpJ0A0jJLWHamig2xyQrFJkQluXq+W4q1c0t8mnT0pGZIzsAsOi3U2QVlt10fEIIIUxDSbmG6Is5APQJrF0CTa1WMbC9YbtpZmOFZlEU/RSo0Wh44403CAoKwsHBgfbt2/Pmm29WKWPX6XTMmTMHX19fHBwcGDlyJGfOnKnyPFlZWTz44IO4uLjg5ubG448/TkFBQZVjjh07xq233oq9vT3+/v4sXry4SX5GIUTz9MH2M2w7nYattZqVD/XC3clW6ZBEAysoKCA6Opro6GhAv1AhOjqaxMREVCoVM2fOZMGCBaxfv57jx4/zyCOP0Lp1a+644w7jc4wYMYIPP/zQ+P3zzz/PgQMHWLhwIWfPnuWbb77h448/5plnnmnin67habQ65m04SXWNaobb5m04KW2nQjQAw3y3tu71bzO92j8HBdHZx5nsonIW/naqQZ5TCCGE8o5ezKFMo8WzhR1BnrVfxiNz3upG0cTb22+/zYoVK/jwww85deoUb7/9NosXL+Z///uf8ZjFixfzwQcfsHLlSg4ePIiTkxOjRo2ipOTK1fIHH3yQEydOsHXrVjZu3Mju3bt58sknjffn5eVx++2307ZtWyIjI3nnnXf4z3/+w8cff9ykP68QonnYdiqVZX/qLxAsvLMb3dq4KhyRaAyHDx+mR48e9OjRA4BZs2bRo0cP5syZA8DLL7/Ms88+y5NPPkmfPn0oKChg8+bN2NvbG5/j3LlzZGRcecPSp08ffvnlF7799ltCQ0N58803WbZsGQ8++GDT/nCNICI+65pKt6vpgOTcEmO7gxCi/hKzKhNvng2TeLOxUrPwrm6oVPBT5CX2n5MKByGEsARXt5nWpULaMOctKjGbwtKKRonNkig6423fvn1MmjSJcePGARAYGMi3335LREQEoK92W7ZsGa+//jqTJk0C4KuvvsLb25tff/2VyZMnc+rUKTZv3syhQ4fo3bs3AP/73/8YO3Ys7777Lq1bt+brr7+mrKyMzz77DFtbW7p27Up0dDRLliypkqATQoibFZ9RyMzvowF4+Ja23N2rjbIBiUYzdOjQ6w4aV6lUzJ8/n/nz59d4TEJCwjW3jR8/nvHjxzdEiCYlLb/mpFt9jhNC1CyhstU00KP21Qs30jOgJQ/0DeDrg4m89utxfp9xK3bWVg32/EIIIZpeRELdFisYBHg44u/uwMWsYiLisxjW2asxwrMYila8DRgwgG3bthEXFwfA0aNH2bt3L2PGjAH0bTspKSmMHDnS+BhXV1f69evH/v37Adi/fz9ubm7GpBvAyJEjUavVHDx40HjM4MGDsbW90uo1atQoYmNjyc7Oviau0tJS8vLyqnwJIcSNFJZW8NTqSPJLKujVtiVvjA+58YOEaCa8nO1vfFAdjhNC1OxCZmXF201sNK3Oy6M749nCjvPphfzfrvMN+txCCCGaVoVGS+QFfT6krok3uFL1tlfaTW9I0cTbv//9byZPnkznzp2xsbGhR48ezJw509hSk5KSAoC3t3eVx3l7exvvS0lJwcuranbV2toad3f3KsdU9xxXv8bVFi1ahKurq/HL31+2Nwkhrk+n0/Hyz8eITc2nlbMdHz3YE1trWaYghEHfIHd8Xe2pqYlBhX67aX3e+AkhrqjQaLmUbUi8NVzFG4Crgw1zJugvKn244yzxGYUN+vxCCCGazonLeRSVaXCxt6aTt3OdHz8ouBUgc95qQ9FPhT/88ANff/0133zzDVFRUXz55Ze8++67fPnll0qGxezZs8nNzTV+Xbx4UdF4hBCmR6PVsf9cJuuik9h/LpOPd59n07FkrNUqVjzYE28XqdoR4mpWahVzJ1y/CnTuhBCs1De3gVGI5i45t4RyjQ5bazW+jXAumhDmy60dPCmr0PLGrzHXbbkXQghhugzz3foGuaOux/uv/u09UKngdEq+jAq5AUVnvL300kvGqjeAbt26ceHCBRYtWsSjjz6Kj48PAKmpqfj6+hofl5qaSnh4OAA+Pj6kpaVVed6KigqysrKMj/fx8SE1NbXKMYbvDcdczc7ODjs7u4b5IYUQFmdzTDLzNpysdlD8nAkh9K7lKm4hmpvRob7MmRDCvA0nq9zuaGvFknu7MzrUt4ZHCiFqyzDfLcDdsV4fpG5EpVKx4I5Qbl+6m71nM1gXfZk7evg1+OsIIYRoXAfj6zffzcDdyZaurV2IScpj39lMORdch6IVb0VFRajVVUOwsrJCq9UCEBQUhI+PD9u2bTPen5eXx8GDB+nfvz8A/fv3Jycnh8jISOMx27dvR6vV0q9fP+Mxu3fvpry83HjM1q1b6dSpEy1btmy0n08IYXk2xyQzbU1UjdsZW7WQpL0Q11NUpgGgu78rT9waBIBnC1tJugnRQBIM893cG3a+29Xaejjx7PBgABZsOkluUfkNHiGEEMKUaLU6DlUuVuhzE0UDA2XOW60omnibMGECb731Fps2bSIhIYFffvmFJUuWcOeddwL6K2ozZ85kwYIFrF+/nuPHj/PII4/QunVr7rjjDgC6dOnC6NGjmTp1KhEREfz1119Mnz6dyZMn07p1awAeeOABbG1tefzxxzlx4gTff/8977//PrNmzVLqRxdCmCGNVse8DSepqalGBczfeBKNVtpuhKjJlhP62aqT+wQwc2RHrNUqErOKuZAps6KEaAiJlf8vNfR8t797cnB7gr1akFFQxn83n27U1xJCCNGw4tLyyS0ux8HGilA/13o/j2HBwl9nM2T0wHUomnj73//+x913383TTz9Nly5dePHFF/nXv/7Fm2++aTzm5Zdf5tlnn+XJJ5+kT58+FBQUsHnzZuztr8ys+Prrr+ncuTMjRoxg7NixDBo0iI8//th4v6urK3/88Qfx8fH06tWLF154gTlz5vDkk0826c8rhDBvEfFZNVa6AejQz9YxzEsQQlSVlFPMsUu5qFQwsos3Leys6dVWX3m+Oy5d4eiEsAyGirdAz8areAOwtVaz8M5uAHwbkUjkBTn3CSGEuTB8XunVtiU2VvVPC/UJdMfWWk1ybgnnZeFOjRSd8ebs7MyyZctYtmxZjceoVCrmz5/P/PnzazzG3d2db7755rqvFRYWxp49e+obqhBC1HpoqAwXFaJ6f1RWu/Vu25JWzvq27MEdW3EwPotdcRk83D9QweiEsAwXrprx1tj6Brlzb+82/HD4Eq+ujWHjc4Nu6gOcEEKIphFxk/PdDOxtrOjdtiX7zmXy19kM2rdq0RDhWRw5MwohRC15OdduO1xtjxOiuTG0mY7qemWx0ZCO+lX0+89lUFahVSQuISyFVqsjMauy4q2RW00NZo/pgruTLbGp+XyyJ75JXlMIIUT96XS6Bku8wVVz3s7InLeaSOJNCCFqqW+QO+5OtjXerwJ8Xe0b5AQmhKXJKiwzvsm7OvEW4uuCh5MthWUaohKzlQpPCIuQll9KSbkWK7UKv5YOTfKaLZ1seW1sFwDe3xbHxcrEnxBCCNN0IbOItPxSbK3UhPu73fTzGea87T+fSYVGLqJWRxJvQghRS+fSCygqq6j2PlXlP+dOCMFKrar2GCGasz9PpaLV6RNt/le1wKnVKm7toH/DJnPehLg5CZVtpm1aOjRpy+ddPf3o386DknItc9bFyIDtBhAYGMj8+fNJTExUOhQhhIUxXAjt7u+KvY3VTT9fqJ8rLvbW5JdUcDwp96afzxJJ4k0IIWohLa+EKZ8foqRcS/tWTvi42FW538fVnhUP9WR0qK9CEQph2v6ops3U4NYO+nbT3Wck8SbEzWjK+W5XU6lULLgzFFsrNTti0/nteEqTvr4lmjlzJmvXrqVdu3bcdtttfPfdd5SWliodlhDCAhxswDZTACu1igHtr2w3FdeSxJsQQtxAYWkF//zyEEk5xbTzdOKnpwbw179H8O3UW3h/cjjfTr2Fva8Ml6SbEDUoLK1gd+Xcj1Gh3tfcf2tH/Zu1mKQ8Mgrkg6UQ9XUhs2nnu12tfasWTBvaHoB5G06QXVTG/nOZrItOYv+5TDRaqYKri5kzZxIdHU1ERARdunTh2WefxdfXl+nTpxMVFaV0eEIIMxaRkAnoN5I2lIGV3Qt7JfFWLUW3mgohhKmr0GiZ/k0UMUl5eDjZ8vmUPrSsnPPWv72HwtEJYR52xqZTVqGlrYcjnbydr7nfy9meLr4unErOY++ZDO7o4adAlEKYP0Pira1H01a8GUwb2p71Ry8Tn1HIwP9up6hMY7zP19WeuRNC5CJVHfXs2ZOePXvy3nvv8dFHH/HKK6+wYsUKunXrxnPPPceUKVNQqWTEhRCidi7nFHMxqxi1Cnq1bdlgz3tr5Zy3yAvZFJVV4GgrqaarScWbEELUQKfTMWf9CXbEpmNvo+aTR3vTVoEqAiHM3dXbTGv6gDi4o8x5E+JmGWa8KXWusrexYlL31gBVkm4AKbklTFsTxeaYZCVCM1vl5eX88MMPTJw4kRdeeIHevXvzySef8I9//INXX32VBx98UOkQhRBm5FCCvs20a2tXnO1tGux523o44ufmQLnmysZUcYUk3oQQogYrd53nm4OJqFTw/uQe9AhouKtCQjQXZRVadpxOA6qf72YwxDjnLQOttKQJUWc6nY5EY6upMhVvGq2O7w9frPY+w//V8zaclLbTWoiKiqrSXtq1a1diYmLYu3cvU6ZM4Y033uDPP//kl19+UTpUIYQZaej5bgYqlcq43VTmvF1LEm9CCFGNddFJvL35NABzxodcN2EghKjZvnMZ5JdW4OVsR4/rrKzvFdgSBxsrMgpKOZWS13QBCmEhsgrLyC+tQKWiyubgphQRn0VybkmN9+uA5NwSqYaohT59+nDmzBlWrFhBUlIS7777Lp07d65yTFBQEJMnT1YoQiGEOTrUSIk3uHrOW2aDP7e5k8ZbIYT4m4PnM3npx2MAPD4oiCkDgxSOSAjzteVEKgC3hXijVtc8h8jO2or+7T3YfjqN3XEZdG3t2lQhCmEREiqr3Xxc7LG3sVIkhrT8mpNu9TmuOTt//jxt27a97jFOTk58/vnnTRSREMLcZRaUciatAGjYxQoGAyrnX59K1i/L8mxh1+CvYa6k4k0IIa5yNq2AJ1dHUqbRMrqrD6+N7aJ0SEKYLY1Wx9aTV+a73cjgDjLnTYj6SswyzHdTptoN9ItSGvK45mzYsGFkZl5bNZKTk0O7du0UiEgIYe4OJWQD0NG7Be6Vy+IakmcLO7r4ugCw75xUvV1NEm9CCFEpPb+Uxz6PILe4nB4BbiybHH7dCh0hxPVFJWaTUVCGs701t7S78RbgwR31c94OX8iisLSiscMTwqIkZBjmuym3BKhvkDu+rvbUdOZUod9u2hgtTpYmISEBjUZzze2lpaUkJSUpEJEQwtxFNGKbqcGgYP37vb/OyJy3q0mrqRBCAEVlFTz+5SEuZRfT1sORTx7prVirjhCWYkuMvtptZBdvbK1vfK0vyNOJNi0duJRdzIHzmYzo4t3YIQphMS4ovNEUwEqtYu6EEKatiULFlYUKgDEZN3dCCFZyUatG69evN/55y5YtuLpeabvXaDRs27aNwMBABSITQpi7iAR9FVpjtJkaDAz2ZNWeePaezUCn09W4zb65kcSbEKLZ02h1PPftEY5dyqWlow1fTOmLh8wksEhDhgzh8ccf55577sHBwUHpcCyaTqdji7HNtHYJNJVKxeCOrfjmYCK749Il8SZEHRhmvCnZagowOtSXFQ/1ZN6Gk1UWLfi42jN3QgijQ30VjM703XHHHYD+9+Gjjz5a5T4bGxsCAwN57733FIhMCGHO8krKOXlZv7yqMSve+ga5Y2OlIimnmAuZRQR6KncxyJRIq6kQolnT6XTM23CCP0+lYWut5pNHexMkJwiL1aNHD1588UV8fHyYOnUqBw4cUDoki3UqOZ+LWcXYWauNLaS1MbiD/tjd0qIgRJ0kZplG4g30ybe9rwzn26m38P7kcL6degt7XxkuSbda0Gq1aLVaAgICSEtLM36v1WopLS0lNjaW8ePH1+u5ly9fTmBgIPb29vTr14+IiIgaj127di29e/fGzc0NJycnwsPDWb16dY3HP/XUU6hUKpYtW1av2GpLo9Wx/1wm66KT2H8uE41Wd+MHCSGIvJCNVgcB7o74ujbexWdHW2t6BrQEYO9ZeS9nIIk3IUSz9smeeL7afwGVCpbdF06vtjJ3xpItW7aMy5cv8/nnn5OWlsbgwYMJCQnh3XffJTU1VenwLMrmE/pqt8EdW+FoW/sC+wHBHlipVcRnFHKxMpEghLi+3OJysgrLAGVbTa9mpVbRv70Hk8L96N/eQ9pL6yg+Ph5PT88Ge77vv/+eWbNmMXfuXKKioujevTujRo0iLS2t2uPd3d157bXX2L9/P8eOHWPKlClMmTKFLVu2XHPsL7/8woEDB2jdunWDxVudzTHJDHp7O/evOsCM76K5f9UBBr29nc0xyY36ukJYgqaY72YwKFj/u+svSbwZSeJNCNFsbTqWzFu/nQLgtbFdGNtNrsQ3B9bW1tx1112sW7eOS5cu8cADD/DGG2/g7+/PHXfcwfbt25UO0SL8caL220yv5mJvQ88ANwB2yXZTIWolsbLN1LOFLS3sZJKMufrggw8oKSkx/vl6X3W1ZMkSpk6dypQpUwgJCWHlypU4Ojry2WefVXv80KFDufPOO+nSpQvt27dnxowZhIWFsXfv3irHJSUl8eyzz/L1119jY2NT9x+6ljbHJDNtTVSV9mWAlNwSpq2JkuSbEDdwqAkTbwMrt9Tvk6pUIzkzCyGapcMJWTz/QzQAj/Zvy+ODgpQNSDS5iIgIPv/8c7777ju8vLx47LHHSEpKYvz48Tz99NO8++67Sodoti5kFnI6JR8rtYqRXbzq/PjBHVpxKCGb3XHpPHRL20aIUAjLciFL+cUK4uYtXbqUBx98EHt7e5YuXVrjcSqViueee67Wz1tWVkZkZCSzZ8823qZWqxk5ciT79++/4eN1Oh3bt28nNjaWt99+23i7Vqvl4Ycf5qWXXqJr1661jqeuNFod8zacpLqP7zr0izvmbTjJbSE+UlkpRDVKyjUcvZQDQL8mSLyF+bnibG9NbnE5MUm5dPd3a/TXNHWSeBNCNDvn0wuY+tVhyiq0jOzizZwJXWXjTjORlpbG6tWr+fzzzzlz5gwTJkzg22+/ZdSoUcb/Bh577DFGjx4tibebsKWy2u2Wdu64OdrW+fGDO7biva1x7DuXSblGi42VFOgLcT0XTGSxgrg58fHx1f75ZmVkZKDRaPD2rrqwxtvbm9OnT9f4uNzcXPz8/CgtLcXKyoqPPvqI2267zXj/22+/jbW1da2TgKWlpZSWlhq/z8vLq9XjIuKzrql0u5oOSM4tISI+i/7tPWr1nEI0J0cScyjX6PB2sSPAvfHPE9ZWavq38+CPk6nsPZshiTck8SaEaGYyC0p57PNDZBeV072NK/+7v4dcHW1G2rRpQ/v27fnnP//JY489RqtW1w79DwsLo0+fPgpEZzm2nNDPy6trm6lBqJ8rLR1tyC4q50hiTpO0RQhhzhIy9BVvgVLxJhqQs7Mz0dHRFBQUsG3bNmbNmkW7du0YOnQokZGRvP/++0RFRdX64uWiRYuYN29eneNIy6856Vaf44Robq7Md/NosmKDQR08+eNkKn+dzeCZYcFN8pqmTBJvQohmo7hMw+NfHiYxqwh/dwc+ebQPDrZWSoclmtC2bdu49dZbr3uMi4sLO3bsaKKILE9aXgmRF7IBuD2kfok3K7WKQR1aseHoZXbHpUviTYgbuGBCG01F/c2aNavWxy5ZsqTWx3p6emJlZXXNEqHU1FR8fGr+Pa1WqwkO1n9gDg8P59SpUyxatIihQ4eyZ88e0tLSCAgIMB6v0Wh44YUXWLZsGQkJCdc83+zZs6v8jHl5efj7+98wfi9n+xseU5fjhGhuIhIyAegb2LLJXnNg5YKFwwnZFJdpmv1nLkm8CSGaBY1Wx8zvjxB9MQdXBxu+mNKXVs52SoclmtiNkm7i5v1xUv/Brru/Gz6u9f8QNLiDpz7xdiadF0d1aqjwhLBIFzJlxpslOHLkSK2Oq2vFiq2tLb169WLbtm3ccccdgH4+27Zt25g+fXqtn0er1RpbRR9++GFGjhxZ5f5Ro0bx8MMPM2XKlGofb2dnh51d3d979Q1yx9fVnpTckmrnvKkAH1d7uUgjRDXKKrTGC6J9g5quFbudpxO+rvYk55Zw+EIWt3a4tsukOZHEmxCiWXhr0ym2nEjF1krNqkd6075VC6VDEgro0aNHtR9YVCoV9vb2BAcH89hjjzFs2DAForMMW4zbTL1vcOT1De6of4N2PCmXrMIy3J3qPitOiOagqKyC1Dx9MiRQKt7MWmNWW8+aNYtHH32U3r1707dvX5YtW0ZhYaExSfbII4/g5+fHokWLAH1baO/evWnfvj2lpaX89ttvrF69mhUrVgDg4eGBh0fVD/E2Njb4+PjQqVPDXiyxUquYOyGEaWuiUEG1ybe5E0JkdIgQ1Yi5nEtJuRY3Rxs6eDXd5x+VSsXAYE9+irzE3rMZzT7xJtOKhRAW77O98Xz2l35I8bv3dpcros3Y6NGjOX/+PE5OTgwbNoxhw4bRokULzp07R58+fUhOTmbkyJGsW7dO6VDNUm5xOfvP6dsZRtdzvpuBt4s9nX2c0elgz5n0hghPCIuUWNlm6mJvXa9lJqJ5uO+++3j33XeZM2cO4eHhREdHs3nzZuPChcTERJKTk43HFxYW8vTTT9O1a1cGDhzIzz//zJo1a3jiiScUiX90qC8rHup5TSW1nbWaFQ/1ZHSoryJxCWHqDPPd+gS6o27i5PSgynbTv85mNOnrmiKpeBNCWLTNMSm8uekkAK+M7szE7q0VjkgoKSMjgxdeeIE33nijyu0LFizgwoUL/PHHH8ydO5c333yTSZMmKRSl+dpxOo0KrY4OXi1o1wBVpYM7tuJ0Sj674zKYFO7XABEKYXkMG00DPaXN1NzdddddfPHFF7i4uHDXXXdd99i1a9fW+fmnT59eY2vpzp07q3y/YMECFixYUKfnr26uW0MaHerLbSE+RMRnceJyLgs2naJco6VXW7mgask0Wh0R8Vmk5Zfg5axvKZbqxto7VJl466dA4cGAYH1V7InLec2+e0Eq3oQQFisqMZsZ3x1Bp4MH+wXw1JB2SockFPbDDz9w//33X3P75MmT+eGHHwC4//77iY2NberQLMKVNtObq3YzGFzZlrDnTDo6XXXNRUIIme9mOVxdXY3jEFxdXa/71VxZqVX0b+/BE7e2o3sbV7Q6+O148o0fKMzS5phkBr29nftXHWDGd9Hcv+oAg97ezuYY+TuvDY1WR0SCYaNp0yfevJzt6eSt714wdEQ0V1LxJoSwSBcyC3niy8OUVmgZ3tmLeRO7Ntn6bGG67O3t2bdvn3FLm8G+ffuwt9e3r2i1WuOfRe2VlGvYGatvCW2oxFvvwJbY26hJyy/ldEo+XXxdGuR5hbAkCZUVb23dZb6bufv888+r/bOo3oTurTl6KZd10Uk8OiBQ6XBEA9sck8y0NVHXzPRLyS1h2pooaTGuhdiUfPJLKnCytSJEofdQA4M9iU3NZ+/ZDMaFNd+/L0m8CSEsTlZhGY99foiswjJC/Vz43/09sLaSAl8Bzz77LE899RSRkZH06dMHgEOHDvHJJ5/w6quvArBlyxbCw8MVjNI87Y5Lp7hcg5+bA6F+DfPmzt7GilvaebAzNp3dcemSeBOiGomGxJssVrBIaWlpxirsTp064eXlpXBEpmNC99a89dspohJzuJhVhL8kny2GRqtj3oaT1S7S0KHfZDtvw0luC/GRttPriIjXV5n1CnRX7LPQoA4efPZXfLOf8yafRIUQZk+j1bH/XCbropPYFZfGE18eIj6jED83Bz57tA9OdnKNQei9/vrrrFq1ioiICJ577jmee+45IiIiWLVqFa+99hoATz31FBs2bFA4UvOz5UQqALd39W7Q6lJDu+luWbAgRLUSKltNZcabZcnLy+Phhx/Gz8+PIUOGMGTIEPz8/HjooYfIzc1VOjyT4O1iT/92+hlS649eVjga0ZAi4rNIzi2p8X4dkJxbYlwcIKpnaDNVYr6bQd8gD6zVKhKziowXipojSbwJIcza32c/PPrZIaISc7C3UfPFlD54uUjLoNCrqKhg/vz5DBkyhP3795OVlUVWVhb79+/ngQceMB7n4OBQq1bT3bt3M2HCBFq3bo1KpeLXX3+tcr9Op2POnDn4+vri4ODAyJEjOXPmTK3j/e9//4tKpWLmzJm1foxSKjRatp3WJ94aqs3UYHBHfeLtUHw2RWUVDfrcQpi7sgotl3OKAal4szRTp07l4MGDbNy4kZycHHJycti4cSOHDx/mX//6l9LhmQzD0qz10ZJ4syRp+TUn3epzXHOk0+mqbDRVSgs7a3oEuAGwtxlXvUniTQhhtgyzH6q7IlZSruVceoECUQlTZW1tzeLFi6moaJjkTWFhId27d2f58uXV3r948WI++OADVq5cycGDB3FycmLUqFGUlNz4TeKhQ4f4v//7P8LCwhok1sYWEZ9FTlE57k62Df7mrn0rJ/zcHCjTaDl4Xq5sC3G1S9lFaHXgaGtFqxZ2SocjGtDGjRv57LPPGDVqFC4uLri4uDBq1ChWrVolVdlXGRPqi42VitjUfE6n5CkdjmggXs61u3Be2+Oao/MZhWQUlGFrrSasjbILWQYF6y+iNud2U0m8CSHM0vVmP8CV2Q8arWxCFFeMGDGCXbt2NchzjRkzhgULFnDnnXdec59Op2PZsmW8/vrrTJo0ibCwML766isuX758TWXc3xUUFPDggw+yatUqWrZs2SCxNrbNldtMR3bxavBZKyqVisEdPQHYFSftpkJc7UJl206Au6MsELIwHh4e1W4vdXV1NZtzQ1NwdbRhaCf93DuperMcfYPc8XW1p6bfairA19VekU2d5sJQ7Rbu74a9jZWisQzqoG8J/+tcBtpm+tlMEm9CCLNSWFrB4YQs5m84IbMfRJ2NGTOGf//737z44ot8++23rF+/vspXQ4mPjyclJYWRI0cab3N1daVfv37s37//uo995plnGDduXJXHXk9paSl5eXlVvpqSVqvjjxON02ZqIHPehKiecb6bh8x3szSvv/46s2bNIiUlxXhbSkoKL730Em+88YaCkZkeY7vp0cvodM3zQ72lsVKrmDsh5LrHzJ0QIosVruNQvPLz3QzC2rjRws6anKJyTiY3z8pUmTguhDBZeSXlnEjK48TlXGKScom5nMe59ALq8p5KZj+Iqz399NMALFmy5Jr7VCoVGo2mQV7H8EHJ29u7yu3e3t5VPkT93XfffUdUVBSHDh2q9WstWrSIefPm1S/QBnAsKZeUvBKcbK0YGOzZKK8xINgTK7WK8+mFXMouok1LmWUlBFypeJP5bpahR48eVSoXz5w5Q0BAAAEBAQAkJiZiZ2dHenq6zHm7ysgu3jjaWnEpu5ioxBx6tZWKQEswOtSXGSM6sGxb1fm4LvbWLL47jNGhvgpFZh4OVibeTKEq0MZKzS3t3PnzVBp7z2YQ6qds66sSJPEmhLhpGq1+eGdafglezvqy77pegcouLCPmci4xSXmV/8w1fqD4O28XO/xcHYi6mHPD55XZD+JqWq1W6RBqdPHiRWbMmMHWrVtrtdzBYPbs2cyaNcv4fV5eHv7+/o0RYrW2VLaZDu3s1WitDK4ONoT7uxF5IZvdcRk80C+gUV5HCHNzobLira1UvFmEO+64Q+kQzJKDrRWjuvrwy5Ek1kcnSeLNgqQVlAIwvHMr7K2t+C0mhaGdWknS7QYuZReRlFOMlVpFzwDT+P9hYLAnf55K46+zGTw1pL3S4TQ5SbwJIW7K5phk5m04WaXt09fVnrkTQmo8Kabll3AiKa+yik2fbEuq3Mr2d35uDoT6uRDa2pVQP1e6+rng5WyPRqtj0NvbScktqXbOmwrwkdkP4jpKSkrqlOCqCx8ffctlamoqvr5X/j9ITU0lPDy82sdERkaSlpZGz549jbdpNBp2797Nhx9+SGlpKVZW1ya27OzssLNTZqi6TqdjS4w+8dZYbaYGgzu0qky8pUviTYhKhgtUgVLxZhHmzp2rdAhma2L31vxyJIlNx5N5Y3wI1lYyUcncVWi0bK58j/HPge2o0Gr5LSaF40nNs1WxLg4l6KvdQv1ccbIzjZTPoMquiIj4LErKNYrPnWtqpvG3IIQwS4aton9PfKXkljBtTRQfPdiT7v5uxjbRE0m5HE/KJS2/tNrnC/RwpKufa2WSTZ9sa+lkW+2xhtkP09ZEoYIqMRhq7WT2g/g7jUbDwoULWblyJampqcTFxdGuXTveeOMNAgMDefzxxxvkdYKCgvDx8WHbtm3GRFteXh4HDx5k2rRp1T5mxIgRHD9+vMptU6ZMoXPnzrzyyivVJt2UdjatgPMZhdhaqRnWqVWjvtbgjp4s/TOOv85lUKHRyocq0exptDouZlcuV5DEm2jmBnXwpKWjDRkFZew7l8ngjo17ThKN72B8FlmFZbg72XJLO3fySvRb6eMzCsktLsfVwUbhCE1XhAnNdzMI9mqBl7MdafmlRF3IZkAjjScxVZJ4E0LUy/W2ihpue+abKKpbXKNSQftWLQht7aKvYmvtSkhrlzqfQEeH+rLioZ7XVNz53KDiTjRfb731Fl9++SWLFy9m6tSpxttDQ0NZtmxZnRJvBQUFnD171vh9fHw80dHRuLu7ExAQwMyZM1mwYAEdOnQgKCiIN954g9atW1dpJRoxYgR33nkn06dPx9nZmdDQ0Cqv4eTkhIeHxzW3mwpDm+mAYA+c7Rv3DXBYGzfcHG3IKSon+mIOvQNN582kEEq4nFNMuUaHrZUaX1cHpcMRDUyj0bB06VJ++OEHEhMTKSsrq3J/VpYsj7qajZWacWG+rDmQyLroy5J4swAbjyUD+op6ays17k62tGnpwKXsYmKSchttrqwlMMx362NC75VUKhWDgj1ZeySJvWczJPEmhBC1ERGfdd2togBaHahV0NHbmVA/V2OirYuvS4OVPY8O9eW2EJ+bnjEnmoevvvqKjz/+mBEjRvDUU08Zb+/evTunT5+u03MdPnyYYcOGGb83zFl79NFH+eKLL3j55ZcpLCzkySefJCcnh0GDBrF58+Yq7a3nzp0jIyPjJn8q5Wxp5G2mV7NSqxgY7MmmY8nsjkuXxJto9gxtpv7uDnLOs0Dz5s3jk08+4YUXXuD111/ntddeIyEhgV9//ZU5c+YoHZ5JmtjdjzUHEtlyIoW3ykObXSubJanQaI0X98Z1u3IhvXsbNy5lF3P0Uo4k3mqQnl/K+XT9/M8+gaYx381gYGXi7a+z5vvet74U79NISkrioYcewsPDAwcHB7p168bhw4eN9+t0OubMmYOvry8ODg6MHDmSM2eqbjbJysriwQcfxMXFBTc3Nx5//HEKCgqqHHPs2DFuvfVW7O3t8ff3Z/HixU3y8wlhqWq7LXTx3WFsnjmYd+/pzmMDg+gd6N7gswas1Cr6t/dgUrgf/dt7yAcQUaOkpCSCg4OvuV2r1VJeXl6n5xo6dCg6ne6ary+++ALQX9mbP38+KSkplJSU8Oeff9KxY8cqz5GQkMB//vOfGl9j586dLFu2rE5xNZWknGKOJ+WiUsFtId43fkADGNJBX8Gw60zze8MmxN8lVC5WCJTFChbp66+/ZtWqVbzwwgtYW1tz//3388knnzBnzhwOHDigdHgmqXfblrR2taegtIIdp9OUDkfchAPnq7aZGoS10W/DPH4pV6nQTJ5hvltnH2fcHKsf2aMUQ7L0WFIuuUV1e99t7hRNvGVnZzNw4EBsbGz4/fffOXnyJO+99x4tW17JzC5evJgPPviAlStXcvDgQZycnBg1ahQlJVc+9D/44IOcOHGCrVu3snHjRnbv3s2TTz5pvD8vL4/bb7+dtm3bEhkZyTvvvMN//vMfPv744yb9eYWwFIcSsli561ytjvVzk7kzwnSEhISwZ8+ea27/6aef6NGjhwIRma8/Kq9E92nrjmeLplnucGvHyjdsl3LILiy7wdFCWLbELJnvZslSUlLo1q0bAC1atCA3V59oGD9+PJs2bVIyNJOlVquYEN4agHXRlxWORtyMTcertpkahLVxA+CYJN5qZJjvZooL5nxc7Qn2aoFOB/vONa+LqIq2mr799tv4+/vz+eefG28LCgoy/lmn07Fs2TJef/11Jk2aBOjbhLy9vfn111+ZPHkyp06dYvPmzRw6dIjevXsD8L///Y+xY8fy7rvv0rp1a77++mvKysr47LPPsLW1pWvXrkRHR7NkyZIqCTohxPVFX8xhydY4dsel3/BY2SoqTNGcOXN49NFHSUpKQqvVsnbtWmJjY/nqq6/YuHGj0uGZFcOmsdu7Nk21G4CvqwMdvVsQl1rA3rMZTOjeusleWwhTk5AhFW+WrE2bNiQnJxMQEED79u35448/6NmzJ4cOHVJsk7U5mNi9Nf+36zzbY9PIKynHpZHnj4qGp99mqk+8jQ+rOq851M8FlUpfdZ9RUNpkF/7MiSkn3kC/3fRsmv593JhuzWcet6IVb+vXr6d3797cc889eHl50aNHD1atWmW8Pz4+npSUFEaOHGm8zdXVlX79+rF//34A9u/fj5ubmzHpBjBy5EjUajUHDx40HjN48GBsba+UWo4aNYrY2Fiys7Mb+8cUwuyduJzLE18e4o7lf7E7Lh1rtYr7+waw8M5QVFzZImogW0WFqZo0aRIbNmzgzz//xMnJiTlz5nDq1Ck2bNjAbbfdpnR4ZiOzoNTYytAU892uNriy3bQ2FwCEsGSGGW9tpeLNIt15551s27YNgGeffZY33niDDh068Mgjj/DPf/5T4ehMV4ivC8FeLSir0LKl8gKRMC/7z2eSXVSOu5PtNVs5ne1taOepv9hw7FKOAtGZttzick6l5AHQ10Rn4Q6qbDdtbnPeFK14O3/+PCtWrGDWrFm8+uqrHDp0iOeeew5bW1seffRRUlL0vyy9vateTff29jbel5KSgpeXV5X7ra2tcXd3r3LM1ZV0Vz9nSkpKldZWgNLSUkpLS43f5+XlNcBPK4T5iUvNZ+nWOH6vfOOiVsFdPdvw3PAOxtYWdydb2SoqzMqtt97K1q1blQ7DrG07lYZWp/+A4+/etB/6B3dsxSd749l9Jh2dTodKJcl90fzodDouZOkr3tpKxZtF+u9//2v883333UdAQAD79++nQ4cOTJgwQcHITJtKpWJS99a8tzWO9Ucvc09vf6VDEnX0W2Wb6ejQqm2mBt3buHEuvZBjl3IZ3rnpqu7NQeSFLHQ6CPJ0wsvF/sYPUEC/dvoleAmZRVzMKmry95FKUTTxptVq6d27NwsXLgSgR48exMTEsHLlSh599FHF4lq0aBHz5s1T7PWFUNr59ALe33aG9Ucvo9OBSgUTwlozY2QH2rdqUeVY2SoqzFFZWRlpaWlotdoqtwcEBCgUkXkxbBpr6mo30LdO2FmrSc0rJS61gE4+zk0egxBKS8svpaRci5VahZ+bg9LhiCbQv39/+vfvr3QYZmFCZeLtr7MZxvemwjyUa7TGURbja2hD7NbGlbVHkmTOWzUOGtpMTbTaDfRVi+H+bkReyGbfuQzuc28e770VbTX19fUlJCSkym1dunQhMTERAB8f/Rv61NTUKsekpqYa7/Px8SEtrerWmoqKCrKysqocU91zXP0aV5s9eza5ubnGr4sXL9b3RxTCrFzMKuLFH49y29LdrIvWJ93GhPqwecZgPri/xzVJNwPZKirMxZkzZ7j11ltxcHCgbdu2BAUFERQURGBg4DWV0aJ6BaUV7KlsDxgd2vSJN3sbK/q18wCk3VQ0X4b5bn5uDthaK/p2XjSi2NhYpk+fzogRIxgxYgTTp08nNjZW6bBMXqCnE9393dDq4LdjyUqHI+rgQGWbqYeTbY0zyq4sWMhBp9M1YXSmzzDfrY+JznczMGw33Xs2U+FImo6iZ+qBAwdec/KIi4ujbdu2gH7Rgo+Pj3G+AejbPg8ePGi84tO/f39ycnKIjIw0HrN9+3a0Wi39+vUzHrN7927Ky6+srN26dSudOnW6ps0UwM7ODhcXlypfQliyyznFvPrLcYa9u5OfIi+h0eoY0dmLjc8OYsVDvaSiRFiMxx57DLVazcaNG4mMjCQqKoqoqCiOHDlCVFSU0uGZhZ2xaZRVaAn0cKSjd/XJ+MY2uIP+DdvuM5J4E82TzHezfD///DOhoaFERkbSvXt3unfvTlRUFKGhofz8889Kh2fyJlUu31l3VLabmpNNx67fZgrQtbULVmoVGQVlVUbdNHdFZRUcr6wC/PtsPFNjmPO272wGWm3zSJ4q2mr6/PPPM2DAABYuXMi9995LREQEH3/8MR9//DGg79GfOXMmCxYsoEOHDgQFBfHGG2/QunVr7rjjDkBfITd69GimTp3KypUrKS8vZ/r06UyePJnWrfW/cB944AHmzZvH448/ziuvvEJMTAzvv/8+S5cuVepHF8IkpOWV8NHOc3xzMJEyjb7l7tYOnsy6rSM9Aq5NSgth7qKjo4mMjKRz585Kh2K2tpzQV4yP6uqj2Hy1IR1bsWDTKQ7GZ1FcpsHB1kqROIRQypX5bpJ4s1Qvv/wys2fPZv78+VVunzt3Li+//DL/+Mc/FIrMPIwP82XBppMcScwhMbPIOJtYmK5yjdY4ymLcdbZd2ttY0dHbmVPJeRy7lENrabcH4EhiDhVaHb6u9rRpadr/TsL93XC0tSKzsIzTKfmEtLb8QidFK9769OnDL7/8wrfffktoaChvvvkmy5Yt48EHHzQe8/LLL/Pss8/y5JNP0qdPHwoKCti8eTP29ld69b/++ms6d+7MiBEjGDt2LIMGDTIm70C/CfWPP/4gPj6eXr168cILLzBnzhyefPLJJv15hTAVmQWlLPztFIPf2cEX+xIo02jpF+TOD//qz+rH+0nSTViskJAQMjKa1xalhlRaoWHHaf14h9sVmO9mEOzVAl9Xe8oqtByMN582BY1Wx/5zmayLTmL/uUw0zeQqr2h4CZUVb4GyWMFiJScn88gjj1xz+0MPPURysrRP3oiXiz392+vHEmw4JlVv5mD/OX2bqWeLmttMDbq3cQXgqMx5MzLOdwtyN/nFU7bWamNVXnPZbqpoxRvA+PHjGT9+fI33q1Qq5s+ff83Vnqu5u7vzzTffXPd1wsLC2LNnT73jFMIS5BaV8/Gec3z+VwJFZRoAega48cLtnRjQ3sPkf0kLcbPefvttXn75ZRYuXEi3bt2wsbGpcr+MFri+fecyKSitwMvZjh7+borFoVKpGNyhFd8fvsjuuAyGdvK68YMUtjkm+ZoN0L6yAVrU04VM2Whq6YYOHcqePXsIDg6ucvvevXu59dZbFYrKvEzq7sdfZzP59UgSTw9tL+9zTZyhzXRU15rbTA3C2rjx3aGLHLuU0wSRmYdDVyXezMHAYE92xKaz92wGUwe3UzqcRqd44k0I0fjyS8r5bG8Cn+w9T35JBQChfi68cFsnhnZqJW9ERLMxcuRIAEaMGFHldp1Oh0qlQqPRKBGW2fijsgXk9q7eqBVeojK4Y2XizQzmvG2OSWbamij+Xt+WklvCtDVRrHiopyTfRK3pdDouZMiMN0u0fv16458nTpzIK6+8QmRkJLfccgsABw4c4Mcff2TevHlKhWhWRoX68PqvMZxJK+B0Sj5dfOXimqkq12jZcrKyzTTsxufDsMqKt2OXco3v4ZqzsgotUYnZgOnPdzMYVDmvNyI+i9IKDXbWlj02RBJvQliworIKvtiXwMe7z5NTpF8u0snbmVm3d+T2EO9mf5ISzc+OHTuUDsFsabQ6tp68Mt9NaYOCPVGr4GxaAZdzik12xotGq2PehpPXJN0AdIAKmLfhJLeF+MhGaFEr2UXl5JfqL6IFuEvizZIYZlhf7aOPPuKjjz6qctszzzzDU0891URRmS9XBxuGdmrFHydTWX/0siTeTNi+c5nkVLaZ9gvyuOHxnXycsbVWk19SQUJmEUGezbv693hSDqUVWtydbGnfSpnFV3XVydsZzxa2ZBSUEXUhx9gabqkk8SaEmdJodUTEZ5GWX4KXsz19g9yNH9pKyjWsOXCBFTvPkVlYBkD7Vk7MHNmRcd18Fa9UEUIpQ4YMUToEsxV5IZuMgjJc7K25pZ3yb45cHW3o7u/GkcQcdselM7lvgNIhVSsiPuu6W9d0QHJuCRHxWRb/plM0jITKNlNfV3vsbSy7QqC50Wq1SodgcSaF++kTb9GXeen2Tmb3Hvh67/ctyW9XbTOtzc9nY6UmxNeF6Is5HLuU0+wTb8b5boGmP9/NQKVSMTDYk3XRl/nrbIbFvweSxJsQZqimWUGvju1MdlE5y3ecJTWvFNBfDZ85sgOTwv0s8kQtRF3t2bOH//u//+P8+fP8+OOP+Pn5sXr1aoKCghg0aJDS4Zksw6axEV28sbnB7JWmMrhDK33i7YzpJt7S8mtOutXnOCEM892k2k2IGxvRxQsnWyuScoqJSsymd6B5tOFB85kNWqXNtFvrWj+uexvXysRbLpPC/RorPLMQUZl462MmbaYGhsTb3rMZvDiqk9LhNCrTeOcshKg1w6ygv1dQJOeW8Oy30cxZd4LUvFL83Bz4713d2PbCEO7q2UaSbkIAP//8M6NGjcLBwYGoqChKS/UJ6tzcXBYuXKhwdKZLp9MZE2+junorHM0Vgzu2AmDvmQwqNKZZKeLlbH/jg+pwnBAXZKNps7Fr1y4mTJhAcHAwwcHBTJw4UZbF1ZG9jZVxPML6o+az3bSm9/uG2aCbYyxns+2VNlO7Oi0G6NbGDaDZL1jQaHUcTjCv+W4Gg4L1c96OXcoht7hc4WgalyTehDAj15sVZKBWwbyJIWx/cQiT+waYTGWKEKZgwYIFrFy5klWrVlXZaDpw4ECioqIUjMy0nUzO41J2MfY2amOyyxR0b+OKi701eSUVHL2Uq3Q41eob5I6PS81JNRX6CgZz2UImlGdIvLX1lIo3S7ZmzRpGjhyJo6Mjzz33HM899xwODg6MGDGCb775RunwzMrEcH0V1aZjyZSb6EWaq91oNijoZ4NqtNf7RGA+Nh3TJ0TH1LLN1KB75YKFmKQ8k7341hROJedRUFpBCztrs5tj2NrNgXatnNDq4MD5TKXDaVS1/kSekZHBhQsXqtx24sQJpkyZwr333isnACGawI1mBQFoddDR28XiN8MIUR+xsbEMHjz4mttdXV3Jyclp+oDMxJYT+qUKgzu0wtHWdKZUWFupjVuxdseZ5nZTK7XqhjPx5k4IkapkUWuGGW9S8WbZ3nrrLRYvXsz3339vTLx9//33/Pe//+XNN99UOjyzMjDYE3cnWzILy/jrbIbS4dxQXWaDmrtyjdb4HmNst7q1z7Zr1QInWyuKyzWcSy9sjPDMgmG+W+/Almb5XsJQ9WYO/2/ejFon3p599lk++OAD4/dpaWnceuutHDp0iNLSUh577DFWr17dKEEKIfRkVpAQN8fHx4ezZ89ec/vevXtp166dAhGZhy0xhjZT5beZ/t3gDvoKvD1nTDPxdjmn2Nim6+pgU+U+O2s1Kx7qaVGzekTjS6yseJMZb5bt/PnzTJgw4ZrbJ06cSHx8vAIRmS8bKzXjKpM65tBu2pze7/91NoPc4rq3mYL+wlZXP33V29Fm3G56yLBYwUwr5wdWJt72SuJN78CBA0ycONH4/VdffYW7uzvR0dGsW7eOhQsXsnz58kYJUgihJ7OChLg5U6dOZcaMGRw8eBCVSsXly5f5+uuvefHFF5k2bZrS4ZmkhIxCYlPzsVKrGNHFS+lwrmFofY2+mENukenNB3lz40mKyzX0CWxJ5Osj+XbqLbw2tgsAFRqtSWyIFeYjr6TcuK28rYck3iyZv78/27Ztu+b2P//8E39/fwUiMm+TKttNt8SkUFKuUTia62tO7/c3VW4zrWubqYGh3bS5znnT6XREJOgTb+Y2383glnYeqFVwPr2QyznFSofTaGrdL5KSkkJgYKDx++3bt3PXXXdhba1/iokTJ7Jo0aIGD1AIcUXvti2xt1FTUl79HAMV4COzgoSo0b///W+0Wi0jRoygqKiIwYMHY2dnx4svvsizzz6rdHgmyVCtdUs7d9wcbRWO5lqt3RwI9mrB2bQC/jqXUedWlca0Ky6d32NSsFKrmD8pFGsrNf3be9C/vQdrjyRxKjmPP06mcm9v+RAtasdQ7ebZwhZne5sbHC3M2QsvvMBzzz1HdHQ0AwYMAOCvv/7iiy++4P3331c4OvPTM6Alfm4OJOUUs+1UGuPCTOdc8Xd9g9xxdbCpcdi8pbzfL6vQ8sdJfZtpff8+wowLFkxzzmtjO5deQFZhGXbWarr5uSkdTr24OtgQ1saN6Is5/HU2g3ss9D1RrSveXFxcqsy/iYiIoF+/fsbvVSqVcTucEKJxvPNH7HWTbiCzgoS4HpVKxWuvvUZWVhYxMTEcOHCA9PR0mZdzHVe2mZpem6mBod3UlOa8lVZo+M/6EwA82j/wmoHH47rp/30arvYLURuG+W7SZmr5pk2bxnfffcfx48eZOXMmM2fOJCYmhu+//55//etfSodndtRqFRO666ve1h9NUjia67uYVXTDqjxLeL//17krbaZ9AuuXROxemXg7lZxHaYVpVzI2BsN8t54BLbG1Nt+Fes1hzlut/3ZuueUWPvjgA7RaLT/99BP5+fkMHz7ceH9cXJyUPQvRiL7cl8DHu88D8M+Bgfi6Vi0v93G1l1lBQtSSra0tISEh9O3blxYtWigdjslKyyshKjEHgNtDTDjx1vHKggWdzjS2vK3afZ74jEJaOdvx/G0drrnfUJn319kMcorKmjo8YaYMG01lsYJlq6ioYP78+fTp04e9e/eSmZlJZmYme/fuZdKkSUqHZ7YM7aY7TqfXWE2mtHKNlhnfR1NaoSXYq8U1W7EdbCxnNuhvlReexnarX5spgL+7A26ONpRrdMSm5DdkeGbBsGCjj5lXP16Z85ZpMu/jGlqtW03nz5/PyJEjWbNmDRUVFbz66qu0bNnSeP93333HkCFDGiVIIZq7P06kMG+DvnLipVGdeGZYMK+NCyEiPou0/BK8nPXl5uZ+5UsIYVq2VLaAhPu74eNqurNk+gV5YGut5nJuCefSCwj2clY0notZRXy4Q7/E4/VxXaptCWzXqgVdfF307aYnUrm3j1y8bCoarc5sz58XKive2krizaJZW1uzePFiHnnkEaVDsSidfZzp4NWCM2kFbIlJMcnfu+//eYajF3Nwsbfmy3/2xcfFnoj4LA4nZPHe1jgqtDr6BZn/bNCyCq2xov5mRkSoVCq6+bmy50wGRy/lGltPmwOdTsfB8+Y9382gZ1s37G3UZBSUEpdaQCcfZd/HNYZaJ966d+/OqVOn+Ouvv/Dx8anSZgowefJkQkJCGjxAIZq76Is5PPfdEbQ6uL9vAE8PbQ/oN/n0b2/+J14hhOn6wwzaTAEcbK3oF+TOnjMZ7IrLUDzxNn/jSUrKtdzSzp2Jla1N1Rkf5sup5Dw2Hk82yQ+AlmhzTDLzNpwkOffKNkBfV3vmTggxiwqShMqKN1msYPlGjBjBrl27qszYFjdHpVIxKbw17/4Rx/qjl03u9+7B85ks36m/aLPwrm74uTkA0L+9B7e0c+f3mBROJuex9kgSjw8KUjLUm/bXuQzySipo5Vz/NlOD7m3c2HMmg+OXcoC2DRKfObiUXUxKXgnWahU9AtyUDuem2Flb0TfIg91x6ew5k26Ribdat5oOHz4ca2trJk2adE3SDWDcuHEEBZn3LwAhTE1iZhGPf3GIknItwzq14s1JXVGpzOOqvBDCvOUWlbP/XCYAo7p6KxzNjZnKnLftp1PZejIVa7WKNyeFXvd3tuEq/76zGWQXSrtpY9sck8y0NVFVkm4AKbklTFsTxeYY05+3lyiJt2ZjzJgx/Pvf/+bFF1/k22+/Zf369VW+RP1M7O4HwL5zGaTlldzg6KaTW1TO899Ho9PB3b3aMD6s6kUblUrF/f0CAPg2ItHs2/EM803H1nOb6dW6GTebNq8FC4b5bt3auOJoW+t6KpM1KFhfUGKpc95q/Te0c+dOysrkTaEQTSW7sIzHPo8gs7CMUD8XPnygJ9ZW5js0UwhhXrbHplKh1dHBqwXtWpn+HLzBHVvx1m+nOBifSUm5BnsbqyaPoaRcw9zKhQqPDwqig/f1r9gGeToR4uvCyeQ8/jiZwn19ApoizGZJo9Uxb8NJqvuoqkO/oGjehpPcFnLzHwIbS3GZhpTKRIHMeLN8Tz/9NABLliy55j6VSoVG0/wGyTeEAA9HegS4cSQxh43HkvmnCVSO6XQ6Xv31OJdzS2jr4ch/Jnat9rhJ4a1ZuOkUZ9MKOHwh+6YrxZRSVqE1VtQ3xCZyw4KFuNR8isoqLCIJVRuHKhNv5r7d1sAw5+1gfBZlFVqzXhZRHcv6aYSwECXlGqZ+dZjzGYX4uTnw2aN9cLJrHicRIRra36sErvclrtgSo5/vNjrUtNtMDTp664dQl5RrOZSQpUgMK3ae42JWMT4u9jw34tqFCtUZF6b/0LHpeEpjhtbsRcRnXVPpdjUdkJxbYhxUbYoSs/TVbi721rg5Xjs3UFgWrVZb41d9k27Lly8nMDAQe3t7+vXrR0RERI3Hrl27lt69e+Pm5oaTkxPh4eGsXr26yjH/+c9/6Ny5M05OTrRs2ZKRI0dy8ODBesXWlCYat5teVjgSvZ8iL7HpWDLWahXvT+5Bixre87vY2zChu/6c8W1EYlOG2KD+OqtvM/VytqN3AyQPfVzt8XK2Q6uDE5fzGiBC8xCRYBnz3Qy6+Ljg4WRLUZmG6Is5SofT4Or0Sf7kyZOkpFz/jWFYWNhNBSREc6fV6njhh6McvpCNs701X0zpg5eL6Q41F8LU3XHHHbU6TioIrigu07AzLg0w/fluBiqVils7ePJj5CV2x6Vza2XraVO5kFnIil3nAHhjfEitL5aM6+bLO1ti+auy3bSlk21jhtlspeXXrqWstscp4erFCjJ2QtTV999/z6xZs1i5ciX9+vVj2bJljBo1itjYWLy8vK453t3dnddee43OnTtja2vLxo0bmTJlCl5eXowaNQqAjh078uGHH9KuXTuKi4tZunQpt99+O2fPnqVVq6b9HVwX48J8eXPjSaIv5nAhs1DRZSUJGYXGSunnb+tIuL/bdY+/v28APxzWJ+rmju+Kqxkm4TdWtpmOaYA2U4OwNm78eSqVY5dyzbYSsC7S8kqIzyhEpYJebS3j51WrVQwI9mTD0ct8dyiR5Nxis1uAdD11qngbMWIE4eHh13z16NHD+E8hxM357+bTbDqejI2Vio8f7n3DViUhxPVdr2qgISoILNHuM+mUlGvxc3Oga2sXpcOptcEdDXPemnY+iE6n4z/rT1BWoWVQsCdju9U+WRno6UTX1i5otDrjhjfR8Lyca3cBq7bHKeGCzHdrdrZt28b48eNp37497du3Z/z48fz555/1eq4lS5YwdepUpkyZQkhICCtXrsTR0ZHPPvus2uOHDh3KnXfeSZcuXWjfvj0zZswgLCyMvXv3Go954IEHGDlyJO3ataNr164sWbKEvLw8jh07Vq8Ym4qXs72xrW19tHJVb+UaLTO+O0JRmYZ+Qe48NaT9DR8T7u9GZx9nSiu0/HLkUhNE2bDKKrT8cVJ/rhsXVvPyoboKM855y2mw5zRlhmq3Lj4uuDqYX/K1Jm4O+ouWa6OSmPFdNPevOsCgt7ebxQzWG6lT4u3gwYPEx8df83X+/HnjP4UQ9fflvgQ+3q3//+jde7rL1lIhhCIMCaDbu3qbVWXNoGBPVCqITc0n5TpthQ1t68lUdsSmY2OlYl49luAYZtxsOm7+byxNVd8gd3xda06qqdBvNzXlWTkJlRVvMt+tefjoo48YPXo0zs7OzJgxgxkzZuDi4sLYsWNZvnx5nZ6rrKyMyMhIRo4cabxNrVYzcuRI9u/ff8PH63Q6tm3bRmxsLIMHD67xNT7++GNcXV3p3r17tceUlpaSl5dX5UspEyrbTdcdvazYooJlf8Zx9FIuLvbWLL0vvFZVPSqVigeMSxYumt2Shb1n08k3tJm2bdlgzxvWzBYsRFjYfDfQL0BafeDaFmpzWoB0PXVqNQ0ICKi2FFkIcfP+OJHCvA36UvOXRnViUrifwhEJYZkKCwvZtWsXiYmJ1ywNeu655xSKynSUa7RsO2VebaYGLZ1sCWvjxtGLOew+k869vf0b/TWLyzTM23ASgKm3tqN9PRZRGNpN953LJKuwDHdpN21wVmoVcyeE8NSaqGvuM3zUnTshxKTbWQwVbwFS8dYsLFy4kKVLlzJ9+nTjbc899xwDBw5k4cKFPPPMM7V+royMDDQaDd7eVTdUe3t7c/r06Rofl5ubi5+fH6WlpVhZWfHRRx9x2223VTlm48aNTJ48maKiInx9fdm6dSuenp7VPt+iRYuYN29ereNuTKNDfXj91xjOphVwKjmfkCau7j5wPpOPdurHEyy6K4zWbg61fuykcD8W/naK2NR8ohJz6NWACazGtunYlaUK6gb8fRtWuWAhPqOQ3OJyi6oCq46lJd4MC5CqYy4LkG5ElisIYQKiL+bw3HdH0Or0sxueHnrjUnMhRN0dOXKE4OBg7r//fqZPn86CBQuYOXMmr776KsuWLVM6PJMQEZ9FbnE5Hk62ZjknZUgH/Qe+3XHpTfJ6y3ecJSmnGD83B6YPD67Xc1zdbvqHtJs2mpqSoj6u9qx4qCejQ29+u15jupAlFW/NSU5ODqNHj77m9ttvv53c3Kap6nF2diY6OppDhw7x1ltvMWvWLHbu3FnlmGHDhhEdHc2+ffsYPXo09957L2lpadU+3+zZs8nNzTV+Xbx4sQl+iuq52NswvJO+oGTd0aQmfe3conKe/z4anQ7u6dXGuGSntlwdbBhf2aZpTksWSis0xjbThthmejV3J1vatNQnL2OSLLvqLaeojNMp+QBm+T6tOpawAOlGap14GzJkyDWVAUKIm5eYWcTjXxyipFzLsE6teLMebUpCiNp5/vnnmTBhAtnZ2Tg4OHDgwAEuXLhAr169ePfdd5UOzyRsjtG/KR7Zxdssryoa5rztPZuBRtu4LTjn0wuM4wHeGB+Co239t09f2W5q3q0UpuzHSP08pJFdvFjzeF8cba0AWHJPd5NPupVVaEnKLgYgUCremoWJEyfyyy+/XHP7unXrGD9+fJ2ey9PTEysrK1JTU6vcnpqaio9PzZXNarWa4OBgwsPDeeGFF7j77rtZtGhRlWOcnJwIDg7mlltu4dNPP8Xa2ppPP/202uezs7PDxcWlypeSJobrk1cbjyajbeTzhYFOp+PVX46TnFtCoIcj/5nYtV7Pc39ffbvpxmOXyS0ub8gQG81fZzMapc3UoHtl1dtRC5/zdighG4B2rZxo5WyncDQNwxIWIN1IrRNvu3fvxtZWWh+EaEjZhWU89nkEmYVlhPq58OEDPbG2kkJUIRpLdHQ0L7zwAmq1GisrK0pLS/H392fx4sW8+uqrSoenOK1WZ7waPSrU+wZHm6Zwfzec7a3JKSrneCNe9dbpdMxdf4IyjZahnVoxquvN/fsaV3n139BuKhpWhUbL2ih9Vcs9vf0Z1KGVsZV6RxNVR96MS9lFaHXgYGNlMR+0xPWFhITw1ltvMW7cOBYsWMCCBQsYP348b731FqGhoXzwwQfGrxuxtbWlV69ebNu2zXibVqtl27Zt9O/fv9YxabVaSktLb/oYUzG8sxct7KxJyikmMjG7SV7zx8hLbDqejLVaxfuTe9R6A/bf9Qxwo5O3MyXlWtZFN23FXn0Ztpk2dJupgWHO23ELn/MWEZ8JQD8LaTMFy1iAdCO1/oRvboMbhTB1JeUapn51mPMZhfi5OfDZo33qffIVQtSOjY0NarX+1Ofl5UVior5Fw9XVVdGWF1Nx9FIOqXmlONlaMaB99TN6TJ21lZqB7Ru/3fT3mBT2nMnA1lrNvIk3X6nc1sOJUD/ZbtpYdsWlk1FQioeTLcM769vLRnTR//PPU6nXe6hJuJB1ZaOpVMU3D59++iktW7bk5MmTfPrpp3z66aecOHECNzc3Pv30U5YuXcrSpUtrPSZh1qxZrFq1ii+//JJTp04xbdo0CgsLmTJlCgCPPPIIs2fPNh6/aNEitm7dyvnz5zl16hTvvfceq1ev5qGHHgL081JfffVVY+V4ZGQk//znP0lKSuKee+5p8H8fjcHexsqYgG+K5FV8RiH/Wa+f5/z8bR3p7u9W7+dSqVTc31c/x/Sbg4km/1m9tELD1hP637V1ba2trW7NZMFCRGXFm6XMd4MrC5BqOruZwwKkG6nTp3w50QvRMLRaHS/8cJTDF7Jxtrfmiyl98HIx3wy+EOaiR48eHDp0iA4dOjBkyBDmzJlDRkYGq1evJjQ0VOnwFLel8k3x0M5e2NtYKRxN/Q3u2IrNJ1LYHZfOcyM6NPjzF5ZW8OZG/RDgp4a0p20Dzdwa1601MUl5bDqWbGwjEg3jx8P6NtM7evhhU1lZPrhjK6zVKs6nFxKfUUiQp+nOTruQoZ/v1lbaTJuN+Pj4Bn2+++67j/T0dObMmUNKSgrh4eFs3rzZuHAhMTHReGEK9Im1p59+mkuXLuHg4EDnzp1Zs2YN9913HwBWVlacPn2aL7/8koyMDDw8POjTpw979uyha9f6tU8qYWJ4a36OusRvx1OYO6Gr8fdDQyvXaJn53RGKyjT0C3LnqSE3P8/5zh5tWPT7aU6n5BN9MYceAaa7ZGHvmQzySyvwdrGjVyPF2c3PFZUKknKKySgoxbOF5VUHF5ZWGGfY9Q3yUDiahmNYgDRtTRQq9DPdDMxlAdKN1Ok3S8eOHXF3d7/ulxDixv67+TSbjidjY6Xi44d708HbWemQhGgWFi5ciK+v/krrW2+9RcuWLZk2bRrp6el8/PHHCkenLJ3uymB/c9tm+neDO+or3o5czCGvpOFn33yw/QzJuSX4uzs06DIcQ7vp/vOZZBaYR6uWOcgqLGPbaX1S+e5ebYy3u9jb0K+d/r3rNhOvekuo3GgqixXEzZg+fToXLlygtLSUgwcP0q9fP+N9O3fu5IsvvjB+v2DBAs6cOUNxcTFZWVns27fPmHQDsLe3Z+3atSQlJVFaWsrly5dZt24dffr0acof6aYNbO+Bh5MtWYVl7D2b0Wivs3RrHEcv5eLqYMPS+8IbJIHg6mhjrB4z9SULmyrbTMeENk6bKYCzvQ3tKi+gHLPQOW9RidlotDr83Bzwq8MmXHMwOtSXFQ/1xMe1ajGKt4t5LEC6kTpVvM2bNw9XV9fGikWIZuHLfQnGYdzv3tOd/u0t52qFEKaud+/exj97eXmxefPmej/X7t27eeedd4iMjCQ5OZlffvmFO+64w3i/Tqdj7ty5rFq1ipycHAYOHMiKFSvo0KHmCqxFixaxdu1aTp8+jYODAwMGDODtt9+mU6dO9Y6zNjRaHb9EXeJ8RiHWahWDO5hnm6lBm5aOtGvlxPn0QvadzWjQN2tn0/L5dI++EuU/E7o2aGVggIcj3fxcOZ6Uy5YTqTzQT6reGsK66CTKNTpC/Vzo4lt1mPuIzt78dTaTP0+l8sSt7RSK8MYSK1tNA6TiTYgGZW2lZnyYL1/uv8D66MsMq9x02pD2n8tkxa5zACy6qxutGzBh8kDfANZGJbHhaDKvjw/Bxd6mwZ67oZRWaNh6Un9xY3wjtZkadG/jxrn0Qo5dymV4Z/OcVXs9hq2eljTf7WqjQ325LcSHiPhMpn9zhMzCMuZOCDH7pBvUseJt8uTJPProo9f9EkLU7I8TKczboJ/t8NKoTkwK91M4IiFEfRUWFtK9e3eWL19e7f2LFy/mgw8+YOXKlRw8eBAnJydGjRpFSUnNG5l27drFM888w4EDB9i6dSvl5eXcfvvtFBYWNtaPweaYZAa9vZ0XfzoGQIVWx5j397A5xry3aw7uoN9uuiuu4SoYdDodb/x6ggqtjpFdvBnRpeHf1I+trHr7TbabNhhDm+k9vfyvuW9k5d/hoYRscotMdzNgQqb+d4BUvAnR8AzbTf84kUJxmaZBnzunqIxZP0Sj08G9vdsYf8c3lF5tW9LBqwXF5RrWRV9u0OduKHvi9G2mPi729GzkdlhLn/N2sDLx1sdCE2+gbzvt396TCd31/1/uMoMFSLVR68SbzHcT4uZEX8zhue+OoNXpV4A3ZHuSEKJ2goKCaNeuXY1fdTFmzBgWLFjAnXfeec19Op2OZcuW8frrrzNp0iTCwsL46quvuHz5Mr/++muNz7l582Yee+wxunbtSvfu3fniiy9ITEwkMjKyrj9qrWyOSWbamiiSc6smA1NyS5i2Jsqsk29DOuoTb7vj0hts6PSGY8nsP5+JnbWauRNCGuQ5/+7KdtMMaTdtACcu53IyOQ9bKzUTK9/EXy3Aw5EOXi3QaHXsjEtTIMIb02h1XLxquYIQomH1DGhJm5YOFJZpjG3pDUGn0/HqL8dJzi0hyNOJuRMafvadfsmCvjraVJcsGC4kjenm02htpgZhbdwAfaupKf67uBkl5RqiL+YAlrVYoSbDKhch7YhNs4i/S9lqKkQTSMws4vEvDlFSrmVYp1a8OenmN+AJIepu5syZzJgxw/j19NNP079/f3Jzc3nyyScb7HXi4+NJSUlh5MiRxttcXV3p168f+/fvr/Xz5Obqr9g2xgxVjVbHvA0nqe7sbrht3oaTaLTmef7v184dWys1STnFnM+4+YrB/JJyFlQuVJg+LBh/98ZJgBjaTbW6K8suRP39FKmvdhsZ4kVLJ9tqjzFULm47ZZqJt8s5xZRrdNhYqfB1tayZPkKYApVKZUzMN2TV2I+H9UsbrNUqlt0XjpNdnaY81dpdPf2wtVZzKjnP5Cq9rm4zHdfA1X7V6draBSu1ioyCsmsuKpq7Y5dyKavQ4tnC1jjLzpL1C3LHwcaK1LxSTlzOUzqcm1brxJtWq8XLq+F73oWwdNmFZTz2eQSZhWWE+rnw4QM9sW6kjUlCiOu7Ouk2Y8YMXnzxRb7++mvmz59PbGxsg71OSop+SYFhW5yBt7e38b4b0Wq1zJw5k4EDB15342ppaSl5eXlVvmojIj7rum9KdUBybolxnoi5cbS1pk+QvqVldwO0KSz78wxp+aUEejgydXDjzgIzDMvedNw024bMRVmF1vghuro2U4ORXfTvb3fGplGu0TZJbHVhmO/m7+5o1hvdRN1s3ryZvXv3Gr9fvnw54eHhPPDAA2RnZysYmWUytJvuik1vkLbz+IxC/lM5XmbW7R3p7u92089ZEzdHW8aG6pcimdqShaZsMwWwt7GiY+XSOktbsBARnwnoq92aQwGHvY0VA4P1M4d3nDbNC2N1IZ/+hWhEJeUapn51mPMZhfi5OfDZo30a7WqXEKL+xowZw88//6x0GFU888wzxMTE8N133133uEWLFuHq6mr88vevOcFwtbT82l0Jru1xpsgw5+1mE2+nU/L4Yl8CAP+Z2LALFapj3G56Trab3oztp1PJKizDy9mOW6+zMKRHQEvcnWzJK6ngcILpJTRkvlvz9NJLLxkvpBw/fpwXXniBsWPHEh8fz6xZsxSOzvJ09nGhk7czZRotm0/c3JiFsgotM747QlGZhlvaufOvwY0/XsbQbrr+6GXyG2Gbd31tqmwzHdut8baZ/l33yjlvR02s+u9mRVSen/oGWn6bqcHwynbT7bGSeBNCXEWj1bH/XCbropPYdzaDWd9Hc/hCNs721nwxpQ9eLvY3fhIhRJP76aefGrSd08dHf+U5NbVqq2BqaqrxvuuZPn06GzduZMeOHbRp0+a6x86ePZvc3Fzj18WLF2sVo5dz7X4f1fY4UzS4cs7bgfNZlFbUb2C2Tqdjzq8n0Gh1jO7qw9BG2Hj3d/7ujoS10bebbj5RuwpJcS1Dm+mdPf2uW2lupVYxtJP+v5Vtp0yvvfdCpsx3a47i4+MJCdHPkvz5558ZP348CxcuZPny5fz+++8KR2eZDFVvN9tuuvTPOI5dysXVwYal94U3SaVq3yB32rVyoqhMw/qjplEtXVJ+VZtp2I3f+zSUq+e8WYoKjZbIBH0HQt8gD4WjaTrDOuvPzdEXc8z+QqQk3oRoIIbNgPevOsCM76J54JOD/BaTgpUaPn64Nx0qy56FEMrp0aMHPXv2NH716NEDX19fXn31VV599dUGe52goCB8fHzYtm2b8ba8vDwOHjxI//79a3ycTqdj+vTp/PLLL2zfvp2goKAbvpadnR0uLi5Vvmqjb5A7vq721PRxQAX4utqb9QDfzj7OeDnbUVyuqXcl0y9HkohIyMLBxoo3GmmhQnUMVW+bjpnvggslpeWXsCNWX+l4vTZTA8N2020m2M5yobLirW0jzRUUpsnW1paiIn3S9c8//+T2228H9DM/aztSQNSNYc7b/vOZpOXVr9p737kMVu46B8B/7+rWZHMZVSoVD1RWvZlKu+meMxkUlFbg62pPD//GbzM1CLtqs6mlzKk/mZxHYZkGF3trOvk0n8+Uvq4OdPF1Qacz/+2mkngTogHUtBkQQKOF3OIyBaISQvzdHXfcwaRJk4xfd911F3PnziUmJqbOyxUKCgqIjo4mOjoa0FcnREdHk5iYiEqlYubMmSxYsID169dz/PhxHnnkEVq3bs0dd9xhfI4RI0bw4YcfGr9/5plnWLNmDd988w3Ozs6kpKSQkpJCcXFxQ/z4VVipVcbNnH9Pvhm+nzshxKxnSqlUKm69iXbT3OJyFv52CoBnRwTj59Z0g+3HVibeDpzPJMPMr/Iq4dcjSWi0OnoEuBHs1eKGx9/awRMbKxXxGYWcSy9ogghrz1jx1gyGaYsrBg0axKxZs3jzzTeJiIhg3LhxAMTFxd2wElrUj7+7Iz0D3NDp9Fus6yqnqIxZ3x9Fp4P7evszpgmWCVztrp5tsLVSE5OUx3ETaLPcdExfeTcmtOnaTAE6+Thja60mv6SChMrfn+bOMG+3T6C7Wb8vq4/hlVVv203wwlhdSOJNiJt0vc2AoP8Aa86bAYWwJHPnzq3y9cYbb/DUU0/RuXPnOj/X4cOH6dGjBz169ABg1qxZ9OjRgzlz5gDw8ssv8+yzz/Lkk0/Sp08fCgoK2Lx5M/b2V1o3z507R0ZGhvH7FStWkJuby9ChQ/H19TV+ff/99zf5k1dvdKgvKx7qiY9r1XZSH1d7VjzUk9GhTfuhoTEM7qif7VWfK6VLt8aRUVBGu1ZOPDGocRcq/J2/uyPdDe2mMdJuWhc6nc7YZnp3r9olKJztbbilnb59x5TaTXU6nTHxJjPempcPP/wQa2trfvrpJ1asWIGfnx8Av//+O6NHj1Y4Oss1KVz/73l9dFKdHqfT6Zi99jgpeSUEeToxpwkrpA3cnWwZbViycEjZqreScg1/Vm6KNiwMaio2VmpCfPXV/5bSbnrQkHgz4y6E+jLMedsdl26SC5BqS6a8C3GT6rIZsH/75tOTL4SpqEtLTm3bNAGGDh163RYGlUrF/PnzmT9/fo3HJCQkVPleiZaI0aG+3BbiQ0R8Fmn5JXg569tLLeWK6qBgT1QqOJ2ST1peSa1nbcYk5fLV/gQA3pwUiq1101+rHNvNl6OXcvnteDIP3dK2yV/fXB27lEtcagF21momVLaO1caIzl7sOZPBn6fSeLIJhqHXRnp+KcXlGtQqmrTiUigvICCAjRs3XnP70qVLFYim+RjbzZd5G05w9FIuCRmFBNay0vSHwxf5PSYFa7WK9yeHK7ZM7f6+Aaw/epl1R5J4bWwXxeLYHZd+VZupW5O/fvc2rkRfzOHYpVxjMtVcabU6DhnnuzW/xFu4f0taOtqQXVRO5IVs40UycyMVb0LcpONJtSvlNufNgEKYMzc3N1q2bFmrr+bKSq2if3sPJoX70b+9h8Uk3QA8WtgR2lo/72X3mYwbHK2n1eqYsy4GrQ7Gh/ka19k3NWk3rZ8fI/ULRkaH+uBib1Prx42onPMWeSGbnCLTGBFhaJPya+mgSPJXKCcqKorjx48bv1+3bh133HEHr776KmVlpvHfpyVq5Wxn/J1f2yUF59ML+M/6kwC8cHsn43B/JdzSzp0gTycKyzRsUHDJwm8KbDO9WjcLWbCg0eoruHOKyrG1UtPFp/YXiC2FlVrFkMplWTvMuN1UzuBC1FNMUi7T1kQa5//ciDlvBhTCnO3YsYPt27ezfft2PvvsM7y8vHj55Zf55Zdf+OWXX3j55Zfx9vbms88+UzpU0UgM7aa1nfP2U+QlohJzcLK14vVxTd8uZCDtpnVXUq5hfeVGwtosVbiav7sjnbyd0Wh17Iw1jSHOCZWLFaTNtPn517/+RVxcHADnz59n8uTJODo68uOPP/Lyyy8rHJ1lM1RIrYtOumElelmFlhnfRVNcrqF/Ow/+NbhpxxL8nUql4v6++t99Si1ZuHqb6dgmnnNn0L1ywUJMUh4VZtqeaFjc9/LPxwAo02gZ/t5ONsc0v6VLwysvjJnznDeTSbz997//NQ6jNigpKeGZZ57Bw8ODFi1a8I9//IPU1KpzNxITExk3bhyOjo54eXnx0ksvUVFRUeWYnTt30rNnT+zs7AgODuaLL75ogp9IWKqI+Cwe/SyC8f/by++VH4TsrnMV2hI2AwphzoYMGWL8+uqrr1iyZAmLFi1i4sSJTJw4kUWLFvHuu+/y+eefKx2qaCSDKxcs7D2bgfYG8zZzisr47+bTAMwc2fGa+XdNzTAbR7ab1s7Wk6nklVTQ2tW+XuMdRnTRz5L500TmvBk2mgbIRtNmJy4ujvDwcAB+/PFHBg8ezDfffMMXX3zBzz//rGxwFm5UV29srdWcSy/kZPL1x1Us2RrH8aRcXB1sWHJfd0Wqu/7uHz3bYGOl4uilXGJq2ZnTkHbFpVNYpqG1Qm2mAO1atcDJ1oricg3n0gsVieFm1LS4LyW3hGlroppd8m1Ih1ZYqVWcSSvgYpZ5LswwicTboUOH+L//+z/CwsKq3P7888+zYcMGfvzxR3bt2sXly5e56667jPdrNBrGjRtHWVkZ+/bt48svv+SLL74wDrYG/Za5cePGMWzYMKKjo5k5cyZPPPEEW7ZsabKfT5g/nU7Hztg07l25n3v/bz+74tKxUqu4s4cffzw/mPcnh6PCcjcDCmEp9u/fT+/eva+5vXfv3kRERCgQkWgKPdu2pIWdNVmFZcRcvv6HkHe2xJJVWEZH7xY8NjCwaQK8DkO1wMH4TNLzpd30Rn6sXKrwj15t6nXeNbSb7jKRIc6yWKH50ul0aLX6/wb//PNPxo4dC4C/v3+VpTyi4Tnb2zCicqC7oYK2OvvOZfB/u88B8PY/uuHrahpzGD1a2DGqq37JwncKLFlQus0U9O2JXf30VW9Hzazd9HqL+wy3NbfFfa6ONvQK0I+E2RFrnlVviifeCgoKePDBB1m1alWV+Tq5ubl8+umnLFmyhOHDh9OrVy8+//xz9u3bx4EDBwD4448/OHnyJGvWrCE8PJwxY8bw5ptvsnz5cuPsg5UrVxIUFMR7771Hly5dmD59OnfffbcMJhW1otXq+P14MhM+3Mtjnx8iIiELWys1D/QLYMcLQ1l6XzgdvZ2bxWZAISyBv78/q1atuub2Tz75BH//urWlCfNhY6U2Vj9dr9302KUcvqlszZk/KRQbK8XfJtGmpSPd/d307aYnpN30epJzi9lzRv/3W9ttpn8X7u+Gh5Mt+SUVHKrcIqckQ+KtrYdUvDU3vXv3ZsGCBaxevZpdu3Yxbtw4QF9U4O3trXB0lm9SuH4xy/qjl6utlM4uLGPW90fR6WByH3+Te6//QN8AAH49cpmisoobHN1wSso1/GloM23ibaZ/Z2g3Nbc5b3VZ3NecDKtMhptru6ni7yifeeYZxo0bx8iRI6vcHhkZSXl5eZXbO3fuTEBAAPv37wf0lQvdunWrcvIZNWoUeXl5nDhxwnjM35971KhRxueoTmlpKXl5eVW+RPNSrtHyU+Qlblu6i2lfRxGTlIeDjRVPDApi98vDWHhnNwL+9iZ4dKgve18ZzrdTb+H9yeF8O/UW9r4y3OROxEI0Z0uXLuV///sf3bp144knnuCJJ54gLCyM//3vf3JBxsINrhzMuzuu+koRjVbHG7/GoNPBnT38TGpr1vhuhnZT5QZlm4O1UUnodNA30J229awQs1KrjG/u/zyl7Jt7nU53ZcZbLTcrCsuxbNkyoqKimD59Oq+99hrBwcEA/PTTTwwYMEDh6Czf0E5eONtZk5xbwuEL2VXu0+l0zF57nJS8Etp5OjFngnKzQGtySzsPAj0cKSitYOPRpmtLNLSZ+rk5KNZmahBmXLDQ9O22N6O2C/ma2+K+4ZXn5v3nMiku0ygcTd0pmnj77rvviIqKYtGiRdfcl5KSgq2tLW5ublVu9/b2JiUlxXjM36/4GL6/0TF5eXkUFxdXG9eiRYtwdXU1fkkVRPNRUq5h9f4Ehr6zkxd/PMq59EJc7K15bngwf/17OK+PD7nuvB9L3gwohCUYO3YscXFxTJgwgaysLLKyspgwYQJxcXHGNh5hmYZUznmLSswmv6T8mvu/P3SRo5dycbazZvbYzk0d3nWN6aZvGYqIz2p2b7RrS6fTb34DuLt3/ardDEZWznnbdjr1hoPVG1NOUTn5JfpKFZnx1vyEhYVx/PhxcnNzmTt3rvH2d955hy+//FLByJoHexsrRoXqf/eui06qct/3hy6y+UQKNlYq3p/cA0dbayVCvC61WsXkyqq3b5pwyYJhHumYUB9UKmU/B3WvTLydSs6jtMJ8EjW1XcjX3Bb3dfRugZ+bA6UVWvadM792e8USbxcvXmTGjBl8/fXX2Nub1n80s2fPJjc31/h18eJFpUMSjaygtIKVu84x6O0dvLHuBEk5xXi2sOPfYzrz17+HM+v2Trg72SodphCiAfj7+7Nw4ULWrl3L2rVreeutt+QCSzMQ4OFIoIcjFVod+85lVrkvq7CMxVv0CxVm3d7R5N7MtmnpSHhlu+kW2W5arcgL2cRnFOJoa8W4m9yid2uHVthaqbmQWcS59IIGirDuDNVuPi722NtYKRaHUE5OTg6ffPIJs2fPJitL31Z28uRJ0tLMs9XK3BjaTX87nmyc+XguvYB5G04C8MLtnehW2c5oiu7upV+yEH0xh5OXG7+Dq6Rcw7bKxTTjFG4zBfB3d8DN0YZyjY7YlHylw6m1vkHu1y30aK6L+1QqFcM66y+immO7qWKJt8jISNLS0ujZsyfW1tZYW1uza9cuPvjgA6ytrfH29qasrIycnJwqj0tNTcXHR3/1wcfH55otp4bvb3SMi4sLDg7VD8C0s7PDxcWlypewTNmFZSzZGseARdv47++nySgoxc/NgfmTurL3lWE8NaQ9zvY2SocphLgJx44dMw6oPnbs2HW/hGW70m5adc7b4s2nySkqp4uvCw/f0laJ0G7IkEzadLx5bTKrLUO125hQX5zsbq76xMnOmlsqZwIq2W4q892at2PHjtGhQwfefvtt3n33XeNnorVr1zJ79mxlg2sm+rfzwLOFLdlF5Xyy+zxrIy/xxJeHKS7XMKC9B0/e2k7pEK/Ls4Udt4c03ZKFnbFX2kzDFW4zBX2ipptxwYL5tJtaqVX8o6dftfc198V9hnbTHafTFK1Irw/FEm8jRozg+PHjREdHG7969+7Ngw8+aPyzjY0N27ZtMz4mNjaWxMRE+vfvD0D//v05fvx4las+W7duxcXFhZCQEOMxVz+H4RjDc4jmKTWvhLc2nWTg29v5YNsZ8koqaNfKiXfuDmPnS0N5pH+gXF0WwkKEh4cbN8CFh4fTo0cPwsPDr/nq0aOHwpGKxja4st1095l04xu2qMRsvjukr2x/c1JXrE1goUJ1DO2mB6Xd9BpFZRVsrGxvuucm20wNjO2mp1JvcGTjMVS8SeKteZo1axZTpkzhzJkzVbqDxo4dy+7duxWMrPmwtlIbEzdvb4ll1o9Hic8oRKWCCd1bK7axsy7ur2w3/SUqqdHnYl3ZZqp8m6mBod30uBktWNBqdWyrvOjjZFv182hzX9zXv50ndtZqLueWEJtqPlWMAIo1pDs7OxMaGlrlNicnJzw8PIy3P/7448yaNQt3d3dcXFx49tln6d+/P7fccgsAt99+OyEhITz88MMsXryYlJQUXn/9dZ555hns7OwAeOqpp/jwww95+eWX+ec//8n27dv54Ycf2LRpU9P+wMIkJGYWsXL3OX46fImyypLxrq1deGZYMKO6+jTLKwdCWLr4+HhatWpl/LNovvq398BaDRezivl0bzxdfF14a5O+ZejuXm3oHWi6bRuGdtPoizlsjknhkf6BSodkMjbHpFBQWkGAuyP9Gqj1ZnhnL+asO0HkhWyyC8toqcC4iURjxZssVmiODh06xP/93/9dc7ufn59xlrVoXJtjktkRe+0mbJ0OXl17nJaONiafABnQ3oMAd0cSs4rYeOwy9/RunNEaJeUa/qy8UDH2Jtv9G1I342ZT86l4W3/0MqdT8nG2s2bHi0M5k1ZAWn4JXs769tLm/HnVwdaKAe092BGbzvbTaXT2MZ/ORNObBHmVpUuXolar+cc//kFpaSmjRo3io48+Mt5vZWXFxo0bmTZtGv3798fJyYlHH32U+fPnG48JCgpi06ZNPP/887z//vu0adOGTz75hFGjRinxIwmFxKXms2LnOdYfvYymciV477YteWZ4MEM7tjKZqzJCiIbXtm3bav8smp89Z9JRq1SAjgWbThlvd7BR8+8xprVQoTrjw3yJvpjDpmPJkni7inGpQq82DXY+b9PSkc4+zpxOyWdHbBp39WyYSrq6MG40lcRbs2RnZ0de3rVzueLi4owXk0Tj0Wh1xlluNZm34SS3hZj2hXv9kgV/Fm+O5duIxEZLvO2MTaPIhNpMDQwVb3Gp+RSVVZjkIoyrlVVoeW9rLAD/GtIOT2c7PJ3tFI7KtAzv7MWO2HR2nE7j6aHBSodTaybVT7Fz506WLVtm/N7e3p7ly5eTlZVFYWEha9euNc5uM2jbti2//fYbRUVFpKen8+6772JtXfV/qKFDh3LkyBFKS0s5d+4cjz32WBP8NKKpaLQ69p/LZF10EvvPZRoTawBHL+bwr9WHuX3pbn45koRGq2Nwx1b88K/+/DRtAMM6eUnSTYhm5Msvv6xS8fzyyy/j5ubGgAEDuHDhgoKRica2OSaZaWuiKNNcOxOkuFzL4YQsBaKqmzGVVQQRCVmk5Um7KcDFrCL2nctEpYK7apiJU18jjO2mysx5kxlvzdvEiROZP38+5eX6LcwqlYrExEReeeUV/vGPfygcneWLiM8iObfm37M6IDm3hIh40z933N2rDdZqFVGJOZxOaZwlC5uO66swx4X5mtRnKx9Xe7yc7dDq4EQTLJi4Wd9GJHIxq5hWznb8c1CQ0uGYpGGVc94iL2STU1SmcDS1Z1KJNyHqanNMMoPe3s79qw4w47to7l91wDi37eFPDzJp+V9sOaEvex7d1YcN0wfx1T/7NrstMEIIvYULFxoX6+zfv58PP/yQxYsX4+npyfPPP69wdKKxGCoXahrDq0JfuXD1hRtT5OfmQI8AN3Q62HxCWs0Afo7SV7sNaO9Bm5YNm6Aa0cUbgF1x6ZRVaBv0uW8kv6SczEL9B4oASbw1S++99x4FBQV4eXlRXFzMkCFDCA4OxtnZmbfeekvp8CxebWdpmsPMTS9ne24L0f8++y7iYoM//9XbTE2pzdQgzEzaTQtLK/jf9jMAPDeig8lX5ymlTUtHOnq3QKvTn5/NhfxtCrNlqF74+8eklNwSlmyNA/RbYSaFt2bakPZ08HZu+iCFECbl4sWLBAfry9J//fVX7r77bp588kkGDhzI0KFDlQ1ONJq6VC70r9xmaarGdfPlSGIOG6XdFK1WZ2wzvadXw7dPhbdxw7OFLRkFZUTEZzGog2eDv0ZNDNVuHk62uMh29WbJ1dWVrVu38tdff3H06FEKCgro2bMnI0eOVDq0ZsHL2f7GB9XhOKVN7hvA7zEprI26xCujO+Ng23BL5K5uM+1emeQyJWFt3PjzVBrHTHzBwid74skoKKOthyOT+zROS7ClGNbZi7jUAnacTmNSeMNWuzcWqXgTZulG1QsAjrZWbJs1hCX3hkvSTQgBQIsWLcjMzATgjz/+4LbbbgP0ow2Ki4uVDE00IkuqXDBUExySdlMOxmdxKbsYZztrRnX1ufED6kitVjGsk76l5c8m3m4qbabCYODAgTz99NO8/PLLknRrQn2D3PF1taempkkV4OtqbzZdNLcGe+Ln5kBeSYVx+2hDMWyVNrU2UwNzqHjLLChl1Z7zALxweydsTHTDuqkYXnlu3hWXbvLdCgbyNyrM0o2qFwCKyjQ3PEYI0bzcdtttPPHEEzzxxBPExcUxduxYAE6cOEFgYKCywYlGY0mVC63dHOhZ2W76e0zzbjf9MVLfMjW+u2+DVm9czdBuuu10Kjpd0725v5ClX6wgG02br+eee44PPvjgmts//PBDZs6c2fQBNTNWahVzJ4QAXJN8M3w/d0KISS9WuJpareL+vvoqqm8jEhvseYvLNGw/rZ+DOc4E20xBX/EGEJ9RSG5xubLB1GD5jnMUlFbQtbUL403036Mp6dW2JS721mQXlRN9MVvpcGpFEm/CLFlS9YIQouksX76c/v37k56ezs8//4yHh76tMDIykvvvv1/h6ERjsbTKBUPV26ZjDVu1YE4KSiv4vXKY992N0GZqcGsHT2yt1FzMKuZsWkGjvc7fXciQirfm7ueff2bgwIHX3D5gwAB++uknBSJqfkaH+rLioZ74uFa9KOPjas+Kh3oyOtS8EiT39PbHSq3i8IVs4lLzG+Q5DW2mbVo6GCvLTI27ky1tWurn+8YkmV7V26XsItYc0C/4emV0Z9RmksxVkrWVmsEd9dudDYlfUycz3oRZ0taypNQcqheEEE3Hzc2NDz/88Jrb582bp0A0oqkYKhemrYlCBVXGFJhj5cLYbr4s2HSKQxeySM0rwdul+Z3rfjuWTHG5hnatnOgZ4NZor+NkZ03/9h7sikvnz1NpTTa6IiFTX/EWKBVvzVZmZiaurtcmMlxcXMjIyFAgouZpdKgvt4X4EBGfRVp+CV7O+os05nK+uJq3iz0jOnvxx8lUvou4yJzKir6bsbGybXVcN9NsMzXo3saNS9nFHL2Uw8DgppvXWRtLtsZRptEyoL0HtzbhLFFzN7yzFxuPJbP9dDovjeqsdDg3JBVvwuwcOJ/JfzacuO4x5la9IIRoOnv27OGhhx5iwIABJCUlAbB69Wr27t2rcGSiMVlS5UKVdtMGntVjLgxtpnf3atPoH/ZGdtHPktnWhHPeDDPeZKNp8xUcHMzmzZuvuf3333+nXbt2CkTUfFmpVfRv78GkcD/6t/cwy6Sbwf39AgD9RuiScs1NPVdxmYbtp/TVRqa4zfRqhmq84yY25y02JZ9fjujfi748urNJJy9NzZCOrVCp4FRyHpdzTH9Os1S8CbPy4+GLvPrLcco1Otp6OHIhs8giqheEEE3j559/5uGHH+bBBx8kKiqK0tJSAHJzc1m4cCG//fabwhGKxmRJlQvjwloTlZjDb8dTeGxgkNLhNKn4jEIOJWSjVsE/erZp9Ncb3sWbN9adICoxm6zCMtydbBv19UrKNaRULs6Qirfma9asWUyfPp309HSGDx8OwLZt23jvvfdYtmyZssEJszW4Qyv83BxIyilmc0wKd/So/0bIHbFpFJebdpupQTcTXbDwzpbT6HQwJtSHcH83pcMxKx4t7Ojh70ZUYg47YtN4sF9bpUO6Lql4E2ZBq9Xx9ubTvPTTMco1OsaF+bJl5mBWWkj1ghCiaSxYsICVK1eyatUqbGxsjLcPHDiQqKgoBSMTTcVSKhfGdtNv8TS0mzYnP0deAmBwx1ZN0mbr5+ZAF18XtDrY0QSzZBKz9NVuzvbWtHS0ucHRwlL985//5L333uPTTz9l2LBhDBs2jDVr1rBixQqmTp2qdHjCTFmpVdzXRz8X85ubXLKw6bhpbzO9Wjc/V1QqSMopJqOgVOlwAP128j9PpWGlVvHiqE5Kh2OWhnfWV6Q3xbn5ZkniTZi84jINz3wTxYqd5wB4dngw/5vcA3sbK0aH+rL3leF8O/UW3p8czrdTb2HvK8Ml6SaEqFZsbCyDBw++5nZXV1dycnKaPiAh6snX1YFebVs2u3ZTjVbHz1H6xNvdvRq/2s3A2G56uvHbTRMyDBtNHU3+w6xoXNOmTePSpUukpqaSl5fH+fPneeSRR5QOS5i5e3v7o1ZBRHxWvZfGXN1maqrbTK/mbG9DO099BfGxSznKBgPodDre/v00APf0akP7Vi0Ujsg8DatMvP11NvOmW6cbmyTehElLyyvhvo/383tMCrZWapbc250Xbu9UZduLpVQvCCEan4+PD2fPnr3m9r1798rMHGF2DB92NjWjxNtfZzNIzi3B1cGGkV28m+x1R1S+1u64DMoqtI36WoaKt7bSZtqsxcfHc+bMGQBatWpFixb6D+ZnzpwhISFBwciEufNxtWd4Z/3vtO/qWfVmaDP1d3egm59pt5kadG/jBphGu+n202kcvpCNnbWamSM7Kh2O2QrxdcHHxZ7icg0HzmcqHc51SeJNmKyTl/OYtPwvjl3KpaWjDWue6MddTTDLRQhhuaZOncqMGTM4ePAgKpWKy5cv8/XXX/Piiy8ybdo0pcMTok7GGNpNE7JJyW0e7aY/VraZTgpvjb2NVZO9bpifK62c7SgoreBgfOO+ub+y0VQWKzRnjz32GPv27bvm9oMHD/LYY481fUDCojzQT99uWt8lC5uO6S/4jDXxbaZXM5U5bxqtjsWbYwF4bGDgNWOTRO2pVCqGdW4FmH67qSTehEn682Qqd6/cR3JuCe1bOfHrMwNlQ6kQ4qb9+9//5oEHHmDEiBEUFBQwePBgnnjiCf71r3/x7LPPKh2eEHXi6+pA77YtAfg9xvKr3nKLy9lyIgVo2jZTALVaxfBOhu2mjfvm3rDRVCremrcjR44wcODAa26/5ZZbiI6ObvqAhEUZ0tELX1d7souu/F6traKyCrZXJjnGd2vdGOE1ijBjxVsOOp3u+gc3ol+PJBGbmo+LvTVPDwlWLA5LMazy3Lw9Nk3Rv9cbkcSbMCk6nY5P9pxn6urDFJVpGBjswdppA+XNpxCiQahUKl577TWysrKIiYnhwIEDpKen8+abb1JcbPqryIX4u7GGdtNjlp9423D0MmUVWjp5OyvS2jSics7bn6dSG/XNvTHx5i4Vb82ZSqUiPz//mttzc3PRaEx7lpEwfVcvWfi2ju2mO06nG9tMQ/1cGiO8RtG1tQtWahUZBWUkK1QlXlqhYcnWOACeGtoeV1mgc9MGBntia6XmYlYx59LrN7OwKUjiTZiMco2W136NYcGmU+h0cH/fAL6Y0ld+IQkhGpytrS0hISH07dsXGxsblixZQlBQkNJhCVFnhsTb4QuW325qaDO9p3cbRVqbBnXwxNZazaXsYuJSG+fNfVmFlkvZ+sRboKdcdGzOBg8ezKJFi6ok2TQaDYsWLWLQoEEKRiYshWHJwoHzWZyvQ8Ji0/HLAIzr1tps2kwB7G2s6OjtDCi3YOHrA4kk5RTj7WLHlAHyvrMhONlZ06+dvjNuuwm3m0riTZiE3OJy/vnFIb45mIhKBa+P68LCO0OxsZL/RIUQN6+0tJTZs2fTu3dvBgwYwK+//grA559/TlBQEEuXLuX5559XNkgh6sHH1Z4+gfp2098seMnCmdR8jl7MwVqt4o4eforE4GhrzcD2HoC+6q0xJOUUo9WBvY0aL2e7RnkNYR7efvtttm/fTqdOnZgyZQpTpkyhU6dO7N69m3feeUfp8IQFaO3mYGzT++7QxVo95uo2U3PYZvp33SvnvB1VYM5bfkk5H+7QL/iaMaIjDrZNN6fU0g2v3G4qiTchriMxs4h/rNjHnjMZONpa8fHDvXni1nZmdQVFCGHa5syZw4oVKwgMDCQhIYF77rmHJ598kqVLl7JkyRISEhJ45ZVXlA5TiHoxVL1ZcuLtp8pqt6GdvPBsoVxCyrDddFsjJd4MixXaujvJ+6BmLiQkhGPHjnHvvfeSlpZGfn4+jzzyCKdPnyY0NLRez7l8+XICAwOxt7enX79+RERE1Hjs2rVr6d27N25ubjg5OREeHs7q1auN95eXl/PKK6/QrVs3nJycaN26NY888giXL1+uV2xCGff3DQD0v2NLK27cwrz9dBol5VoC3B3Nqs3U4Oo5b03tkz3xZBWWEeTpxD29ZWFgQzIk3g4nZJNXUq5wNNWzVjoA0bwdTsjiydWRZBWW4eNizyeP9ibUTFZSCyHMx48//shXX33FxIkTiYmJISwsjIqKCo4ePSofboXZGxPqy/yNJzl8IZvk3GJ8XR2UDqlBVWi0rD2SBKD4h5URXbx4/Vc4cjGHjILSBk8CJhoXK8h8NwGtW7dm4cKFDfJc33//PbNmzWLlypX069ePZcuWMWrUKGJjY/Hy8rrmeHd3d1577TU6d+6Mra0tGzduZMqUKXh5eTFq1CiKioqIiorijTfeoHv37mRnZzNjxgwmTpzI4cOHGyRm0fiGdmqFj4s9KXkl/HEilQndr78swXCBx5y2mV4t7KrNpjqdrsl+hoyCUj7Zcx6AF2/vJF1dDaythxPtWjlxPr2QPXEZjAszvWpMSbwJxfx6JImXfzpGmUZLNz9XPnm0N94usk5ZCNHwLl26RK9evQAIDQ3Fzs6O559/3izfNArxdz6u9vRu25JDCdn8djyFxwdZ1tyY3WfSSc8vxcPJ1nhVWym+rg50be3Cict57Didxj29/Rv0+Q0VbzLfTezevfu69w8ePLhOz7dkyRKmTp3KlClTAFi5ciWbNm3is88+49///vc1xw8dOrTK9zNmzODLL79k7969jBo1CldXV7Zu3VrlmA8//JC+ffuSmJhIQEBAneITyrC2UnNvH38+2HaGbyMSr5t4q7LN1AQTG7XRyccZW2s1+SUVJGQWEdREv2s/3H6WwjINYW1cGdvNp0les7kZ3smL8+nxbD+dJok3IUC/uXTp1jg+2K7vcR/V1Zul94XjaCv/OQohGodGo8HW1tb4vbW1NS1atFAwIiEa1rhuvpWJt2SLS7z9eFjfZjop3M8kqgRGdPHmxOU8tp1q+MTbBal4E5X+nvgCqlwsqstm07KyMiIjI5n9/+3de1xUdf4/8NfMADMgMAjIAIqCV0BEvEdSXkChXDdL29afrmZlZfpNo9L8bml2WVZbu7i5utE3Na0sKyvNMAIvmSiKISKXvKAoAgMiA3Jn5vz+GOfoCCjoDDMDr+fjMY9HM+dzznzOcXfeh/f5fN6fpUvFz6RSKaKiopCSknLb/QVBQHJyMnJzc7Fy5coW22k0GkgkEri5uTW7va6uDnV1deL7ioqKVp8Dmc9jI/zw7+RTOHjmMvJKq1pMRhmmmfbycMJAX9ubZgoA9jIpgn1ckX6hHBkXy9sl8XahrBqfHT4PAFgSE8iHvmYyPtALHx/Iw74/1NDpBEil1nWdLX/3Qp1KbYMW//PF72LS7dkxfbBuxjAm3YjIrARBwOOPP45HHnkEjzzyCGpra/Hss8+K7w0vIlv1wCAfSCRA2vkruFReY+numExZVb24kIGlp5kaRAXpR939eqqkVTWR2uL8DTXeqHO7cuWK0UutViMhIQEjRozAzz//3KZjlZaWQqvVQqVSGX2uUqlQVFTU4n4ajQbOzs5wcHDApEmT8O9//xsTJkxotm1tbS2WLFmC6dOnw9W1+aRMXFwclEql+PLzM23imu5MdzdHjO3fDQCw9Uh+i+1+zLDtaaYGg2+Ybtoe3k38Aw1aARF9PTG6r2e7fGdnNNzfHc5yO5RerUdGQfsvnnE7TLxRuymprMP0+EPYmVEIO6kEq6aG4pUHAq0uG01EHc/s2bPh5eUl3uzPnDkTvr6+Rn8AKJWsL0m2S+WqwIhe7gCAnzJb/kPa1nyfXoAGrYCQ7q4I8rGOERYhvkp4uchRVa/FobNlJjuuVifgQpk+acoRb3RzfPL09MSECROwcuVKLF68uF364OLigvT0dBw5cgRvv/02YmNjsXfv3ibtGhoa8Je//AWCIGDdunUtHm/p0qXQaDTi68KF1q2kSeYnLrJw9CLqG3VNtlfVNWJPru2uZnqjQe24wEJ2YQW+S9fXKF0SE2j27+vMHOykuK+fPrFpjaubcpgRtYvcoko8sfEICsproHS0x/qZwxDex8PS3SKiTmLDhg2W7gKR2T04yBup58rwY8alDjPd1LCa6bSh1jHaDQCkUgkig7zwReoFJGUXY8y1kSJ3q1BTg3qtDvYyCXzdOtYCGWQ6KpUKubm5bdrH09MTMpkMxcXGq/EWFxfD27vlelNSqRR9+/YFAISFhSE7OxtxcXFG02ANSbfz588jOTm5xdFuACCXyyGXW25VYmrZ+EAveLnIoa6sQ2JWcZMaWR1hmqmBYcRbZkEFGrU62JmxhMGqhBwIAjAp1AeDevABr7mNC/TCT5lF2JOjRuyE/pbujhGOeCOz25urxtR1B1FQXgN/Dydsf+5eJt2IiIhMzDDd9Fh+eYeYbpp1qQInL1XAQSbFQ2HdLd0dI5GB+il7SdlqCIJgkmMaVjT16+oEGWcDdHoZGRlGr+PHjyMhIQHPPvsswsLC2nQsBwcHDBs2DElJSeJnOp0OSUlJCA8Pb/VxdDqdUY02Q9Lt1KlT+OWXX+Dhwft7W2Unk+Iv12pWfpHadLqpYZrpJBufZgoAvbs5o4uDDDUNWpwpqTLb9xw+exl7cksgk0rwopUlgTqqsQP0D8JOFGigrqi1cG+MMfFGZrXp4Dk8sfEIrtY1YlSAO7Y/Nxq9u7GgORERkampXBUY4a+fbrrrRKGFe3P3tqXpp6FFBXuhaxeH27RuX6P7ekJuJ0VBeQ1yiipNcsxzXFiBbhAWFoYhQ4YgLCxM/O8HH3wQ9fX1+Pjjj9t8vNjYWMTHx2PTpk3Izs7GvHnzUFVVJa5yOmvWLKPFF+Li4pCYmIizZ88iOzsbq1evxubNmzFz5kwA+qTbtGnTcPToUXz22WfQarUoKipCUVER6uvrTXMRqF09NsIPEglw4HSpWG8SMJ5m+qCNTzMFAJlUgoHd9aPPjptpuqkgCFiZkANAf13592/78HJRIPTayMK9uSUW7o0xJt7IJLQ6ASlnLuP79AKknLmMugYtln+fieU/nIROAKYN64HNT46yuhtnIqI7tX//fkyePBm+vr6QSCT47rvvjLYLgoBly5bBx8cHjo6OiIqKwqlTp2573LVr18Lf3x8KhQKjRo1Camqqmc6AOiJD7Z0fbTzxVt+ow/fplwAAjw6zvgLsjg4yRFwrkp2UXXyb1q0jLqzgwYUVCMjLy8PZs2eRl5eHvLw8nD9/HtXV1Th48CACA9teK+qxxx7Dv/71LyxbtgxhYWFIT09HQkKCuOBCfn4+Cguv/25UVVXhueeew8CBAzF69Gh888032LJlC5566ikAQEFBAX744QdcvHgRYWFh8PHxEV8HDx40zUWgduXn7oT7+ulHDH155Hr9vaQcNeoadfDvANNMDa4vsFBuluMnZhXjWH45FPZSLIzsZ5bvoOaNG6BfAMna6ryxxhvdtYTMQqzYkYVCzfXhnHI7KequFeZcHDMA88b0sflhyUREN6qqqsLgwYPxxBNPNLsi6qpVq7BmzRps2rQJAQEBeO211xAdHY2srCwoFIpmj/nll18iNjYW69evx6hRo/D+++8jOjoaubm58PLyMvcpUQfwQIg3Xt9xEr/nl6OgvAbdbbRWWHKOGmVV9fBykYvFkq1NZJAKSTlq/JKtxoLxd/+H1Tkx8cYRbwT06tXL5MdcsGABFixY0Oy2mxdNeOutt/DWW2+1eCx/f3+TTbMm6/H/Rvph/x8l+OroRbwwoT/sZVLs6iCrmd4oVFxgwfSrX2p1At7Zra/D+MToAKhcm7/nI/MYH+iFD5JOiSuPy+1klu4SAI54o7uUkFmIeVuOGSXdAIhJt6fvC8BzY/t2mB9pIiKDBx54AG+99RYefvjhJtsEQcD777+PV199FQ899BBCQ0Px6aef4tKlS01Gxt3o3Xffxdy5czFnzhwEBwdj/fr1cHJywieffGLGM6GOxOuG6aY/2fCot6+vTTN9eGh3sxa+vhuRQfpk+PGL5SiprLtN69s7f22qqT9HvHVqKSkp2Llzp9Fnn376KQICAuDl5YWnn37aqM4akSlFBqng6SxH6dU6JGUXG69mGmr700wNBl9LvGUXVqCuUWvSY3977CJOqa9C6WiPZ8b0Memx6fYGdVfC01m/8viRvCuW7o7IOu9kyCZodQJW7MjCrZ517cgohFbHp2FE1Lnk5eWhqKgIUVFR4mdKpRKjRo1CSkpKs/vU19cjLS3NaB+pVIqoqKgW9wGAuro6VFRUGL2oc/tTqG1PNy2prMOea7VZHh1mPauZ3kzlqsCg7koIArDnLqe0CIIgJt444q1ze+ONN3Dy5Enx/YkTJ/Dkk08iKioKr7zyCnbs2IG4uDgL9pA6MnuZFH8Zrv/d/c/eM1iVkCNOMw326RjTTAHAz90Rbk72aNAKyDVRnU4AqG3Q4r3EPwAAz43tA6WjvcmOTa0jlUow7toiC9Y03ZSJN7pjqXllTUa63axQU4vUvLJ26hERkXUoKioCALF2joFKpRK33ay0tBRarbZN+wD6AthKpVJ8+flZXz0sal8xId6QSCBON7U13/1eAK1OQJifG/p6uVi6O7dkGPX2y13WeSuprENNgxZSCdCjKxNvnVl6ejoiIyPF91u3bsWoUaMQHx+P2NhYrFmzBl999ZUFe0gdnY9SX6Ig46IGm1LOAwBKrtZh98mW70VsjUQiwSBxgQXTTTfdcug8Lmlq4e2qwOx7/U12XGqb8YH62GwYrWkNmHijO6aubN0Sva1tR0REbbd06VJoNBrxdeHChdvvRB2al4sCI210uqkgCOJqpo8Ot97RbgZRQfpE+a+nSlHbcOfTlc6X6Ue7+bo5wsGOt+ed2ZUrV4wewOzbtw8PPPCA+H7EiBH8nSezScgsxLLvM5t8XlWnxbwtx5CQaVsx5VYM001PmGiBhYraBqzdcxoAsCiqHxT21lFbrDOK6OcJe5kEeaVVyCutuv0O7YCRne5IWVU9vj56sVVtvVxYUJKIOhdvb28AQHGx8SiY4uJicdvNPD09IZPJ2rQPAMjlcri6uhq9iAy1eHZm2NYfSRkXNfij+CrkdlJMHuxr6e7c1kBfV6hc5ahp0CLl7OU7Ps65a38YsL4bqVQq5OXlAdCXIDh27BjuuececXtlZSXs7Tl9jUyvNWWEVuzI6jBlhAaJK5uaZsRb/P6zuFLdgD7dumCaFZdJ6AxcFPZivVtrmW7KxBu1iSAI+O73AkS9uw+/ni69ZVsJAB+lAiMD3Nunc0REViIgIADe3t5ISkoSP6uoqMDhw4cRHh7e7D4ODg4YNmyY0T46nQ5JSUkt7kPUEsN00/QL5bh4pdrS3Wm1r9P0D/ViQrzhqrD+5IJEIsH4QP3opKS7mG7K+m5k8OCDD+KVV17Br7/+iqVLl8LJyQn33XefuD0jIwN9+rBgO5ne7coICehYZYQMI97+KK5EdX3jXR1LXVmLj3/VJ8xfjh5gtYsCdSbidFMm3sjWXCirxuwNR7Doy3SUVdUj0NsFi6MHQAJ9ku1GhvfLJwdDJuWKpkTU8Vy9ehXp6elIT08HoF9QIT09Hfn5+ZBIJFi0aBHeeust/PDDDzhx4gRmzZoFX19fTJkyRTxGZGQkPvzwQ/F9bGws4uPjsWnTJmRnZ2PevHmoqqrCnDlz2vnsyNZ5uSgwKsAw3dQ26vLUNmjxfXoBANjUaIGoa3XekrPVEIQ7GwlimGrKxBu9+eabsLOzw5gxYxAfH4/4+Hg4ODiI2z/55BNMnDjRgj2kjqqzlRHyVirg5SKHTgBOXrq7hak+TD6NmgYtBvu5IXpgy7MUqP2Mu5Z4O5x3GVfr7i6xagp2lu4AWb9GrQ4bD57D6p//QE2DFg52UiyM7Ien7+8Ne5kUvbt1wYodWUZPSLyVCiyfHIyYkI6z7DQR0Y2OHj2KcePGie9jY2MBALNnz8bGjRuxePFiVFVV4emnn0Z5eTkiIiKQkJAAheL69PszZ86gtPT66OHHHnsMJSUlWLZsGYqKihAWFoaEhIQmCy4QtcakQT44dLYMO08UYu79vS3dndtKzCpGRW0jfJUK3NvH09LdabXRfT2hsJfikqYWWYUVGOirbPMxzl/WTzXtxammnZ6npyf2798PjUYDZ2dnyGTGdaK2bdsGZ2dnC/WOOrLWlgfqSGWEQnso8Uu2GhkXNeLUxLY6f7kKnx/OBwAsiRkAiYSDTqxBb88u6OXhhPOXq3HgVCliQiybEGXijW4p61IFXvk2Q5z7PirAHXGPDELvbtcDfkyIDyYEeyM1rwzqylp9UecAd450I6IObezYsbcc3SKRSPDGG2/gjTfeaLHNuXPnmny2YMECLFiwwBRdpE4uOsQby384ieMXynGhrBp+7tY9msowzXTqsB42dQ+hsJchoq8nfslWIylb3ebEmyAIYvFn1ngjA6Wy+f8dubuzhAuZx8gAd/goFSjS1DZb500C/eCKjlRGKLSH27XEW/kdH2P1z3+gUSfg/v7dbOqhUUcnkUgwboAXNh48hz05aosn3jjVlJpV26DFyoQcTP7wADIuauCisEPcI4Pwxdx7jJJuBjKpBOF9PPBQWHeE9/GwqRtmIiKijsjwIAwAfrLyleiKNLX49VQJAGDqUNuZZmoQGXTndd7KqxtQWaufBtPTypOjRNRxyaQSLJ8cDKDzlBEKvcsFFk5e0uCH45cAAIujB5isX2QaYp233DsvBWEqTLxREwdPlyLm/f1Yt/cMtDoBDw7yRlLsGEwf2RPSDvRDS0RE1NFNCtWvDPqjldd5++bYRegEYKS/O/w9bW/UV+S1m/vjFzVQV7St/pGhvpvKVQ5HB9ltWhMRmU9MiA/WzRwKb6XxdFJvpQLrZg7tcGWEQq8tsJBXWgVNTUOb91+VkAsA+PNgX4R0b3uZATKvUb3d4eQgg7qy7q7r+N0tTjUlUXl1Pf6xKxtfHdVP9fB2VeCNhwZiIgtEEhER2aSYgd5Y/n2mVU83FQQB31ybZjptuO2NdgMAL1cFQnsokXFRg+QcNf46smer92V9NyKyJp2pjJB7Fwf06OqIi1dqkFmgwei+rZ8qmnLmMvb9UQI7qQSxE/qbsZd0p+R2Mozu64nErGIk56gtmhzliDeCIAjYcfwSot7dJybd/nZPLyTG3s+kGxERkQ3r5iLHqAAPAMCuE9Y53fRY/hWcLa2Co70MDw6y3dEUkYH66aa/ZKvbtN+5Uv2IN3+uaEpEVqIzlREafG3U2/E21HkTBAH/TMgBAEwf2dMmR2p3Fobppsk5bYvNpmbRxFtcXBxGjBgBFxcXeHl5YcqUKcjNzTVqU1tbi/nz58PDwwPOzs6YOnUqiouN62fk5+dj0qRJcHJygpeXF15++WU0NhovGbt3714MHToUcrkcffv2xcaNG819ejahoLwGT246iv/54neUXq1HXy9nfP1sON6cEgIXhb2lu0dERER3aVKoPpllrYm3bdce+j04yAfOctudjBEZpL+5P3C6BLUN2lbvd76MI96IiCzFUOftRBvqvO0+WYzjF8rhaC/D/0T2NVfXyATGDTCUgijH5at1FuuHRRNv+/btw/z583Ho0CEkJiaioaEBEydORFVVldjmhRdewI4dO7Bt2zbs27cPly5dwiOPPCJu12q1mDRpEurr63Hw4EFs2rQJGzduxLJly8Q2eXl5mDRpEsaNG4f09HQsWrQITz31FHbv3t2u52tNtDoBG3/Lw8R39yE5Rw17mQSLovrhx+cjMPwOl1ImIiIi6xMT4g2pRF9/7MK1emLWoqZei50Z+oTgozY6zdRgoK8rfJQK1DbokHLmcqv3O39Z/2/SiyPeiIja3aA2LrDQqNXhnd360W5PRgTAy0Vxmz3IkryVCgT7uEIQgL25JRbrh0UTbwkJCXj88ccxcOBADB48GBs3bkR+fj7S0tIAABqNBv/3f/+Hd999F+PHj8ewYcOwYcMGHDx4EIcOHQIA/Pzzz8jKysKWLVsQFhaGBx54AG+++SbWrl2L+vp6AMD69esREBCA1atXIygoCAsWLMC0adPw3nvvWezcLSm3qBLT1h/E6zuyUFWvxbBeXbHr+fuwKKo/5HYs6ktERNSReDrLcU9v65xumnCyEFfrGtHT3QkjbfzBn0QiEae0/NKG1U0NNd78OeKNiKjdDequhESinwlW2ooRUd8cu4gzJVXo6mSPp8f0boce0t0Sp5vmWm66qVXVeNNo9Flmd3f9jVdaWhoaGhoQFRUltgkMDETPnj2RkpICAEhJScGgQYOgUqnENtHR0aioqMDJkyfFNjcew9DGcIyb1dXVoaKiwujVEdQ2aPHuz7n4079/xe/55XCW2+HNKSHY9kw4+qlcLN09IiIiMhND7bQfrSzxZphmOnVojw6xcnpUkP5+NDlHDUEQbtv+al0jSq/qHxT35Ig3IqJ256KwR+9rNdoyblPnrbZBi/d/OQUAmD+uL1xZmskmjLuWeNv/RwkatDqL9MFqEm86nQ6LFi3C6NGjERISAgAoKiqCg4MD3NzcjNqqVCoUFRWJbW5Muhm2G7bdqk1FRQVqamqa9CUuLg5KpVJ8+fn5meQcLSk1rwwPrvkVa5JPo0ErYEKwComx9+Nv9/TqEDe6RERE1DLDdNMMK5pueqGsGgfPXIZEAkwd1t3S3TGJ8D4ecLSXoVBTi5OXbv/g1jDazb2LA/+AIyKykNBrCyzcbrrppynnUKipha9SgZn39GqHnpEphPm5wb2LAyprG5F2/opF+mA1ibf58+cjMzMTW7dutXRXsHTpUmg0GvF14cIFS3epVbQ6ASlnLuP79AKknLkMrU5ARW0D/nf7Cfzlvyk4W1KFbi5yrJsxFB/9bRh8lI6W7jIRERG1gxunm1rLqLdvjxUAAO7t44EeXTvGaC+FvQwR/TwBAEmtWN2U9d2IiCwvtBV13jQ1DVi75wwAYNGE/lDYs0STrZBJJRjTvxsAYI+FVje1iqWjFixYgJ07d2L//v3o0eN6YV1vb2/U19ejvLzcaNRbcXExvL29xTapqalGxzOsenpjm5tXQi0uLoarqyscHZsmn+RyOeRyuUnOrb0kZBZixY4sFGpqxc/cnOyh0wmoqNWv8Dp9pB9eiQmC0olPVImIiDqbSaE+OHjmMn7MKMSzY/pYtC86nYCvj+kfbE4bZtuLKtwsKsgLiVnFSMopxsKofrdse4713YiILO76iLdyCIIAiaTpjLD/7jsDTU0D+nk5Y+rQjhW3OoPxgV7Y/nsBknPUWPpgULt/v0VHvAmCgAULFmD79u1ITk5GQECA0fZhw4bB3t4eSUlJ4me5ubnIz89HeHg4ACA8PBwnTpyAWn09c5mYmAhXV1cEBweLbW48hqGN4Ri2LiGzEPO2HDNKugFAeXUDKmob4eUix9an70HcI6FMuhEREXVS0QP1001PFGiQf9my000P55XhQlkNXOR2iBnoY9G+mJqhlkzGRQ2KK2pv2dbw79DTnSPeiIgsZaCvK2RSCUqv1jf5mxoA1BW1+OS3PADAy9EDIGOpJptzf/9ukEklOKW+apGSGxZNvM2fPx9btmzB559/DhcXFxQVFaGoqEisu6ZUKvHkk08iNjYWe/bsQVpaGubMmYPw8HDcc889AICJEyciODgYf/vb33D8+HHs3r0br776KubPny+OWnv22Wdx9uxZLF68GDk5OfjPf/6Dr776Ci+88ILFzt1UtDoBK3Zk4Vble6VSCUbY+EphREREdHc8neUI72Md002/TtMvqvCnwT5wdOhY03W8XBQY7OcGQL/Iwq2II948mXgjIrIUhb0M/a8tNtjcAgsfJJ1CbYMOQ3u6YUKwqsl2sn5KR3sM69UVwO1jszlYNPG2bt06aDQajB07Fj4+PuLryy+/FNu89957+NOf/oSpU6fi/vvvh7e3N7799ltxu0wmw86dOyGTyRAeHo6ZM2di1qxZeOONN8Q2AQEB+PHHH5GYmIjBgwdj9erV+PjjjxEdHd2u52sOqXllzWblb1SkqUVqXlk79YiIiIis1aRBvgCAXRZMvF2taxS/v6NNMzWIujbqLSm7+Jbtrtd441RTIiJLGnytztvxm+q85ZVWYesRfWmEJTGBzU5DJdsw/lpstkTizaI13lqzzLpCocDatWuxdu3aFtv06tULu3btuuVxxo4di99//73NfbR26spbJ93a2o6IiIg6ruiBKrz2faY43bSnBYr678ooRE2DFr27dcHQnl3b/fvbQ2SQCqsT/8CB06WobdA2W4S7tkErPjztxammREQWFdrDDVuPXGgy4m31z7nQ6gSMG9ANo64tUkS2aXygF/75Uw5Szl5GdX0jnBzaLx1mNauaUtsJgoCTl2695LGBl4vCzL0hIiIia+fhLEe4hVc3NUwznTasR4cdORDk4wJfpQK1DTr8drq02TaGGjMucju4d3Foz+4REdFNblzZ1DBA6MRFDXZmFEIiARbHBFqye2QC/byc0d3NEfWNOhw8fbldv5uJNxtVXd+IF786jo/2592ynQSAj1KBkQGs8UZERETAg4P0ixl8eTQf36cXIOXMZWh1t5+FYArnSquQeq4MUgnwyJCOOc0UACQSCSKD9HWAfslufkrLOcM0U0+nDpuAJCKyFQO8XeBgJ0VlbaP4+7xqdw4A4KHBvgjycbVk98gEJBLJ9emmue073ZSJNxt0qrgSD334G779vQBSCTAlzBcS6JNsNzK8Xz45mCuvEBEREQDAXqa/JzhXWo2FW9MxPf4QIlYmIyHT/CPgDKPd7uvXDd7Kjj0aPzLIUEumuNnyKuevLazQy5313YiILM1eJkWQt36BhQ2/5SF+/1n8eqoU9jIJXpw4wMK9I1MxJN725KhbVfrMVJh4szHfHruIP3/4G06pr8LLRY4v5t6D9/86BOtmDm1yA+utVGDdzKGICfGxUG+JiIjImiRkFmLx1xlNPi/S1GLelmNmTb5pdQK+OaZPvD06vOOOdjO4p7cHnBxkKK6oQ2ZBRZPt1xdWYH03IiJLS8gsxCn1VQDApynn8faubABARF9P+LEOZ4cR3scDCnspCjW1yCmqbLfvtejiCtR6tQ1avP7DSXFFlYi+nnj/r2HwdJYDAGJCfDAh2BupeWVQV9bCy0U/vZQj3YiIiAjQJ75W7MhCc893BehHyq/YkYUJwd4mvX/Q6gSk5pXh11MlKNTUwlVhh6hr0zA7MoW9DPf188Tuk8X4JbsYg67VDzI4d23Emz9XNCUisqiEzELM23Ks2fi4J7cECZmFHMzSQSjsZbi3jyeSc9RIzlG32xRiJt5swNmSq3jus2PIKaqERAIsjOyH/xnfr8lNsUwqQXgfrrRCRERETaXmlYmraDZHAFCoqcUzm49ihL87enk4wc/dCb08usBZfme3jAmZhVixI8voext1AvbmqjvFHzGRQSrsPlmMpJxivDChv9E2jngjIrK8Wz2UAsz3UIosZ1ygF5Jz1NiTo8b8cX3b5TuZeLNyO45fwivfZKCqXgtPZwd88NchGN3X09LdIiIiIhujrmw56XajX7LVTRYEcO/igJ7uTujp7nQ9IefuhJ4eTlC5KCBt5o+RlkYQVNdrMW/LsU5RDmN8oBckEiCzoAJFmlqxLEiDVoeC8hoAQC+OeCMispjWPpRKzSvjIJcOYnygF14DcCz/Cq5U1aNrO6wszsSblapr1OKtndnYfOg8AGBUgDvWTB8ClWvHLkRMRERE5uHl0rp7iClhvtAJwPmyalwoq0ZZVb34Sr9Q3qS9g50Ufl0d0cuji5ic6+HmiFe/y2xxBAHQOUYQeDrLEebnht/zy5GUU4wZo3oBAAqu1ECrE6Cwl8LLRW7hXhIRdV6tfSjV2nZk/bq7OWKAygW5xZXYf6oED4V1N/t3MvFmhfIvV2P+58dwokADAJg/rg9eiOoPOxnXwiAiIqI7MzLAHT5KBYo0tc0mxCTQL8y0+i9hRsmwytoG5F9Lwp2/XI38suuvgis1qG/U4UxJFc6UVLW6L51pBEFUkEqfeMtWi4m3czesaNrcaEEiImofrX0o1dp2ZBvGBXoht7gSyTlqJt46o90ni/DStuOorG1EVyd7vPtYGMYN8LJ0t4iIiMjGyaQSLJ8cjHlbjkECGCXfDKmf5ZODm4xAc1HYY6CvEgN9jRcHAIBGrQ6FmtqbEnJVyLiowcUrNbftU2cYQRAZ5IV3dufit9OlqKnXwtFBhvwyfX23nqzvRkRkUa19KDUywL29u0ZmND7QC+v3ncG+P0qg1QlmH33PxJuVqG/UYWVCDv7vQB4AYGhPN3z4/4bC183Rwj0jIiKijiImxAfrZg5tsuCBt1KB5ZOD21xzzU4mhZ+7vubbjVLOXMb0+EO33b8zjCAYoHJBdzdHFJTX4MDpUkwIVuFcqT7x5s/EGxGRRd3pQymybUN7ukHpaI/y6gb8nn8Fw/3Nm1hl4s0KFJTXYMHnx/B7fjkAYO59AVgcEwh7Ti0lIiIiE4sJ8cGEYG+k5pVBXVkLLxf9k3xT/lHBEQTXSSQSRAZ54dOU80jKLsaEYBXOG6aacmEFIiKLM/VDKbJ+djIp7u/fDTuOX0JyjpqJt44uOacYsV8dR3l1A1wVdvjXo4MxcaC3pbtFREREHZhMKjFrbTWOIDAWGaTSJ95y1NDphOs13jjijYjIKrTHQymyLuMDryfeFscEmvW7mHizkEatDqsT/8C6vWcAAKE9lFj7/4Y2mapBREREZIs4guC6e3q7o4uDDCWVdTh+sRwXyvT17/w54o2IyGqY+6EUWZcx/b0gkQA5RZW4VF5j1jJfTLxZQJGmFs9/8TtSz5UBAB6/1x9LHwyE3E5m4Z4RERERmQ5HEOjJ7WS4r183JJwswpZD+ajX6mAvk8BH2fFr3BEREVkj9y4OGOLnhmP55diTe33lcXNg4s1MtDqh2ZvMX0+VYNHWdFyuqoez3A4rp4ZiUmjneeJLREREnQtHEOhFBnkh4WQRvk8vAAB4dpFDIulcCUgiIiJrEhmkwrH8cnyTdhHOcjuzPSBk9X4zSMgsRMTKZEyPP4SFW9MxPf4QRv8zGc99dgyzPknF5ap6BPu4Ysf/RDDpRkRERNQJGOrcNer0/1VYUYuIlclIyCy0XKeo01i7di38/f2hUCgwatQopKamttj222+/xfDhw+Hm5oYuXbogLCwMmzdvbtJm4sSJ8PDwgEQiQXp6upnPgIjI9ByuLWh5LL9czN2YIzYz8WZiCZmFmLflmFEtEwAoqqjFrhOFEARg+sie+Pa5exHgyboeRERERB1dQmYhlnyd0eTzIk0t5m05xuQbmdWXX36J2NhYLF++HMeOHcPgwYMRHR0NtVrdbHt3d3f8/e9/R0pKCjIyMjBnzhzMmTMHu3fvFttUVVUhIiICK1eubK/TICIyqYTMQvxjV3aTz80Rm5l4MyGtTsCKHVlGK3fdzM3RHm9NCYHCnvXciIiIiDq6W90fGj5bsSMLWt2t7iCJ7ty7776LuXPnYs6cOQgODsb69evh5OSETz75pNn2Y8eOxcMPP4ygoCD06dMHCxcuRGhoKA4cOCC2+dvf/oZly5YhKiqqvU6DiMhk2js2M/FmQql5ZU1Gut2svKYBqXll7dQjIiIiIrKk290fCgAKNbW8PySzqK+vR1pamlGCTCqVIioqCikpKbfdXxAEJCUlITc3F/fff/9d9aWurg4VFRVGLyIiS2jv2MzEmwmpK2+ddGtrOyIiIiKybbw/JEsqLS2FVquFSqUy+lylUqGoqKjF/TQaDZydneHg4IBJkybh3//+NyZMmHBXfYmLi4NSqRRffn5+d3U8IqI71d6xmYk3E/Jyad2S8K1tR0RERES2jfeHZItcXFyQnp6OI0eO4O2330ZsbCz27t17V8dcunQpNBqN+Lpw4YJpOktE1EbtHZuZeDOhkQHu8FEq0NLCsxIAPkr98rRERNTxVVZWYtGiRejVqxccHR1x77334siRI7fc57PPPsPgwYPh5OQEHx8fPPHEE7h8+XI79ZiITI33h2RJnp6ekMlkKC4uNvq8uLgY3t7eLe4nlUrRt29fhIWF4cUXX8S0adMQFxd3V32Ry+VwdXU1ehERWUJ7x2Ym3kxIJpVg+eRgAGjyD2h4v3xyMGTSlv55iYioI3nqqaeQmJiIzZs348SJE5g4cSKioqJQUFDQbPvffvsNs2bNwpNPPomTJ09i27ZtSE1Nxdy5c9u550RkKrw/JEtycHDAsGHDkJSUJH6m0+mQlJSE8PDwVh9Hp9Ohrq7OHF0kImp37R2bmXgzsZgQH6ybORTeSuMhid5KBdbNHIqYEB8L9YyIiNpTTU0NvvnmG6xatQr3338/+vbti9dffx19+/bFunXrmt0nJSUF/v7+eP755xEQEICIiAg888wzSE1NbefeE5Ep8f6QLCk2Nhbx8fHYtGkTsrOzMW/ePFRVVWHOnDkAgFmzZmHp0qVi+7i4OCQmJuLs2bPIzs7G6tWrsXnzZsycOVNsU1ZWhvT0dGRlZQEAcnNzkZ6efsu6cURE1qQ9Y7OdyY5EopgQH0wI9kZqXhnUlbXwctEPUeSTTCKizqOxsRFarRYKhXEwd3R0xIEDB5rdJzw8HP/7v/+LXbt24YEHHoBarcbXX3+NBx98sMXvqaurMxqFwFXiiKwT7w/JUh577DGUlJRg2bJlKCoqQlhYGBISEsQFF/Lz8yGVXh+PUVVVheeeew4XL16Eo6MjAgMDsWXLFjz22GNimx9++EFM3AHAX//6VwDA8uXL8frrr7fPiRER3aX2is0SQRAEkx6xA6qoqIBSqYRGo2EtAiKySfwds4x7770XDg4O+Pzzz6FSqfDFF19g9uzZ6Nu3L3Jzc5vdZ9u2bXjiiSdQW1uLxsZGTJ48Gd988w3s7e2bbf/6669jxYoVTT7nvzUR2SrGrM6B/85EZOta+zvGqaZERERmsnnzZgiCgO7du0Mul2PNmjWYPn260ciCG2VlZWHhwoVYtmwZ0tLSkJCQgHPnzuHZZ59t8Tu4ShwRERERkfXiVFMiIiIz6dOnD/bt24eqqipUVFTAx8cHjz32GHr37t1s+7i4OIwePRovv/wyACA0NBRdunTBfffdh7feegs+Pk1rTcjlcsjlcrOeBxERERER3RmOeCMiIjKzLl26wMfHB1euXMHu3bvx0EMPNduuurq6yWg4mUwGAGBlCCIiIiIi28MRb61g+GOHBauJyFYZfr+YvGlfu3fvhiAIGDBgAE6fPo2XX34ZgYGBYkHqpUuXoqCgAJ9++ikAYPLkyZg7dy7WrVuH6OhoFBYWYtGiRRg5ciR8fX1b9Z2MWURk6xizOgfGKyKyda2NV0y8tUJlZSUAwM/Pz8I9ISK6O5WVlVAqlZbuRqeh0WiwdOlSXLx4Ee7u7pg6dSrefvttcaGEwsJC5Ofni+0ff/xxVFZW4sMPP8SLL74INzc3jB8/HitXrmz1dzJmEVFHwZjVsTFeEVFHcbt4xVVNW0Gn0+HSpUtwcXGBRNK5lnyvqKiAn58fLly4wNWGTITX1PR4TW9PEARUVlbC19e3xcL+1DEwZvG3wFR4PU2P17R1GLM6B8Yr/haYCq+n6fGatk5r4xVHvLWCVCpFjx49LN0Ni3J1deX/4UyM19T0eE1vjaMGOgfGLP4WmBqvp+nxmt4eY1bHx3jF3wJT4/U0PV7T22tNvOIjJCIiIiIiIiIiIjNg4o2IiIiIiIiIiMgMmHijW5LL5Vi+fDnkcrmlu9Jh8JqaHq8pEQH8LTA1Xk/T4zUlIoC/BabG62l6vKamxcUViIiIiIiIiIiIzIAj3oiIiIiIiIiIiMyAiTciIiIiIiIiIiIzYOKNiIiIiIiIiIjIDJh4IyIiIiIiIiIiMgMm3jqhuLg4jBgxAi4uLvDy8sKUKVOQm5tr1Ka2thbz58+Hh4cHnJ2dMXXqVBQXFxu1yc/Px6RJk+Dk5AQvLy+8/PLLaGxsbM9TsUr//Oc/IZFIsGjRIvEzXs+2KygowMyZM+Hh4QFHR0cMGjQIR48eFbcLgoBly5bBx8cHjo6OiIqKwqlTp4yOUVZWhhkzZsDV1RVubm548skncfXq1fY+FSK6Q4xX5seYZRqMWUTEmGVejFemwXhlGUy8dUL79u3D/PnzcejQISQmJqKhoQETJ05EVVWV2OaFF17Ajh07sG3bNuzbtw+XLl3CI488Im7XarWYNGkS6uvrcfDgQWzatAkbN27EsmXLLHFKVuPIkSP473//i9DQUKPPeT3b5sqVKxg9ejTs7e3x008/ISsrC6tXr0bXrl3FNqtWrcKaNWuwfv16HD58GF26dEF0dDRqa2vFNjNmzMDJkyeRmJiInTt3Yv/+/Xj66actcUpEdAcYr8yLMcs0GLOICGDMMifGK9NgvLIggTo9tVotABD27dsnCIIglJeXC/b29sK2bdvENtnZ2QIAISUlRRAEQdi1a5cglUqFoqIisc26desEV1dXoa6urn1PwEpUVlYK/fr1ExITE4UxY8YICxcuFASB1/NOLFmyRIiIiGhxu06nE7y9vYV33nlH/Ky8vFyQy+XCF198IQiCIGRlZQkAhCNHjohtfvrpJ0EikQgFBQXm6zwRmQ3jlekwZpkOYxYRNYcxyzQYr0yH8cpyOOKNoNFoAADu7u4AgLS0NDQ0NCAqKkpsExgYiJ49eyIlJQUAkJKSgkGDBkGlUoltoqOjUVFRgZMnT7Zj763H/PnzMWnSJKPrBvB63okffvgBw4cPx6OPPgovLy8MGTIE8fHx4va8vDwUFRUZXVOlUolRo0YZXVM3NzcMHz5cbBMVFQWpVIrDhw+338kQkckwXpkOY5bpMGYRUXMYs0yD8cp0GK8sh4m3Tk6n02HRokUYPXo0QkJCAABFRUVwcHCAm5ubUVuVSoWioiKxzY0/YIbthm2dzdatW3Hs2DHExcU12cbr2XZnz57FunXr0K9fP+zevRvz5s3D888/j02bNgG4fk2au2Y3XlMvLy+j7XZ2dnB3d++U15TI1jFemQ5jlmkxZhHRzRizTIPxyrQYryzHztIdIMuaP38+MjMzceDAAUt3xWZduHABCxcuRGJiIhQKhaW70yHodDoMHz4c//jHPwAAQ4YMQWZmJtavX4/Zs2dbuHdEZAmMV6bBmGV6jFlEdDPGrLvHeGV6jFeWwxFvndiCBQuwc+dO7NmzBz169BA/9/b2Rn19PcrLy43aFxcXw9vbW2xz84oxhveGNp1FWloa1Go1hg4dCjs7O9jZ2WHfvn1Ys2YN7OzsoFKpeD3byMfHB8HBwUafBQUFIT8/H8D1a9LcNbvxmqrVaqPtjY2NKCsr65TXlMiWMV6ZDmOW6TFmEdGNGLNMg/HK9BivLIeJt05IEAQsWLAA27dvR3JyMgICAoy2Dxs2DPb29khKShI/y83NRX5+PsLDwwEA4eHhOHHihNH/6RITE+Hq6trk/8wdXWRkJE6cOIH09HTxNXz4cMyYMUP8b17Pthk9enST5df/+OMP9OrVCwAQEBAAb29vo2taUVGBw4cPG13T8vJypKWliW2Sk5Oh0+kwatSodjgLIrpbjFemx5hleoxZRAQwZpka45XpMV5ZkIUXdyALmDdvnqBUKoW9e/cKhYWF4qu6ulps8+yzzwo9e/YUkpOThaNHjwrh4eFCeHi4uL2xsVEICQkRJk6cKKSnpwsJCQlCt27dhKVLl1rilKzOjSvuCAKvZ1ulpqYKdnZ2wttvvy2cOnVK+OyzzwQnJydhy5YtYpt//vOfgpubm/D9998LGRkZwkMPPSQEBAQINTU1YpuYmBhhyJAhwuHDh4UDBw4I/fr1E6ZPn26JUyKiO8B41T4Ys+4OYxYRCQJjVntgvLo7jFeWw8RbJwSg2deGDRvENjU1NcJzzz0ndO3aVXBychIefvhhobCw0Og4586dEx544AHB0dFR8PT0FF588UWhoaGhnc/GOt0cFHg9227Hjh1CSEiIIJfLhcDAQOGjjz4y2q7T6YTXXntNUKlUglwuFyIjI4Xc3FyjNpcvXxamT58uODs7C66ursKcOXOEysrK9jwNIroLjFftgzHr7jFmERFjlvkxXt09xivLkAiCILT3KDsiIiIiIiIiIqKOjjXeiIiIiIiIiIiIzICJNyIiIiIiIiIiIjNg4o2IiIiIiIiIiMgMmHgjIiIiIiIiIiIyAybeiIiIiIiIiIiIzICJNyIiIiIiIiIiIjNg4o2IiIiIiIiIiMgMmHgjaievv/46wsLCxPePP/44pkyZYpG+7N27FxKJBOXl5Rb5fiIisl6MV0REZCsYs8gW2Fm6A0Sd1QcffABBEMz+PWPHjkVYWBjef/998bN7770XhYWFUCqVZv9+IiKybYxXRERkKxizyBox8UZkIZb8QXZwcIC3t7fFvp+IiGwH4xUREdkKxiyyRpxqSjYtISEBERERcHNzg4eHB/70pz/hzJkz4vZz585BIpHg22+/xbhx4+Dk5ITBgwcjJSVFbLNx40a4ublh9+7dCAoKgrOzM2JiYlBYWGj0XR9//DGCgoKgUCgQGBiI//znP0bblyxZgv79+8PJyQm9e/fGa6+9hoaGhhb7fvMw6LFjx+L555/H4sWL4e7uDm9vb7z++utG++Tk5CAiIgIKhQLBwcH45ZdfIJFI8N1337X4Hfv27cMHH3wAiUQCiUSCc+fONRkGbbgGO3fuxIABA+Dk5IRp06ahuroamzZtgr+/P7p27Yrnn38eWq1WPH5dXR1eeukldO/eHV26dMGoUaOwd+/eFs+ZiKizYrxivCIishWMWYxZZFpMvJFNq6qqQmxsLI4ePYqkpCRIpVI8/PDD0Ol0Ru3+/ve/46WXXkJ6ejr69++P6dOno7GxUdxeXV2Nf/3rX9i8eTP279+P/Px8vPTSS+L2zz77DMuWLcPbb7+N7Oxs/OMf/8Brr72GTZs2iW1cXFywceNGZGVl4YMPPkB8fDzee++9Np3Ppk2b0KVLFxw+fBirVq3CG2+8gcTERACAVqvFlClT4OTkhMOHD+Ojjz7C3//+91se74MPPkB4eDjmzp2LwsJCFBYWws/Pr9m21dXVWLNmDbZu3YqEhATs3bsXDz/8MHbt2oVdu3Zh8+bN+O9//4uvv/5a3GfBggVISUnB1q1bkZGRgUcffRQxMTE4depUm86biKijY7xivCIishWMWYxZZGICUQdSUlIiABBOnDghCIIg5OXlCQCEjz/+WGxz8uRJAYCQnZ0tCIIgbNiwQQAgnD59Wmyzdu1aQaVSie/79OkjfP7550bf9eabbwrh4eEt9uWdd94Rhg0bJr5fvny5MHjwYPH97NmzhYceekh8P2bMGCEiIsLoGCNGjBCWLFkiCIIg/PTTT4KdnZ1QWFgobk9MTBQACNu3b2+xH2PGjBEWLlxo9NmePXsEAMKVK1cEQWj+GjzzzDOCk5OTUFlZKX4WHR0tPPPMM4IgCML58+cFmUwmFBQUGB07MjJSWLp0aYv9ISIixqvmMF4REVknxqymGLOoLVjjjWzaqVOnsGzZMhw+fBilpaXiU5j8/HyEhISI7UJDQ8X/9vHxAQCo1WoEBgYCAJycnNCnTx+jNmq1GoD+ic+ZM2fw5JNPYu7cuWKbxsZGoxoCX375JdasWYMzZ87g6tWraGxshKura5vO58Z+3tyP3Nxc+Pn5GdUNGDlyZJuOfys3XwOVSgV/f384OzsbfWboz4kTJ6DVatG/f3+j49TV1cHDw8Nk/SIi6ggYrxiviIhsBWMWYxaZFhNvZNMmT56MXr16IT4+Hr6+vtDpdAgJCUF9fb1RO3t7e/G/JRIJABgNlb5xu6GNcG01nKtXrwIA4uPjMWrUKKN2MpkMAJCSkoIZM2ZgxYoViI6OhlKpxNatW7F69eo2nU9z/bh5SLe5NPfdt+rP1atXIZPJkJaWJl4HgxsDCRERMV6ZEuMVEZF5MWaZDmMWAUy8kQ27fPkycnNzER8fj/vuuw8AcODAAZN/j0qlgq+vL86ePYsZM2Y02+bgwYPo1auXUT2A8+fPm7QfAwYMwIULF1BcXAyVSgUAOHLkyG33c3BwMCrWaSpDhgyBVquFWq0Wrz8RETXFeMV4RURkKxizGLPI9Jh4I5vVtWtXeHh44KOPPoKPjw/y8/PxyiuvmOW7VqxYgeeffx5KpRIxMTGoq6vD0aNHceXKFcTGxqJfv37Iz8/H1q1bMWLECPz444/Yvn27SfswYcIE9OnTB7Nnz8aqVatQWVmJV199FcD1J0zN8ff3x+HDh3Hu3Dk4OzvD3d3dJP3p378/ZsyYgVmzZmH16tUYMmQISkpKkJSUhNDQUEyaNMkk30NEZOsYrxiviIhsBWMWYxaZHlc1JZsllUqxdetWpKWlISQkBC+88ALeeecds3zXU089hY8//hgbNmzAoEGDMGbMGGzcuBEBAQEAgD//+c944YUXsGDBAoSFheHgwYN47bXXTNoHmUyG7777DlevXsWIESPw1FNPiU9/FApFi/u99NJLkMlkCA4ORrdu3ZCfn2+yPm3YsAGzZs3Ciy++iAEDBmDKlCk4cuQIevbsabLvICKydYxXjFdERLaCMYsxi0xPIhgmWRORzfntt98QERGB06dPGxXtJCIisiaMV0REZCsYs8jUmHgjsiHbt2+Hs7Mz+vXrh9OnT2PhwoXo2rWrWeouEBER3SnGKyIishWMWWRurPFGZEMqKyuxZMkS5Ofnw9PTE1FRUW1e1YeIiMjcGK+IiMhWMGaRuXHEGxERERERERERkRlwcQUiIiIiIiIiIiIzYOKNiIiIiIiIiIjIDJh4IyIiIiIiIiIiMgMm3oiIiIiIiIiIiMyAiTciIiIiIiIiIiIzYOKNiIiIiIiIiIjIDJh4IyIiIiIiIiIiMgMm3oiIiIiIiIiIiMyAiTciIiIiIiIiIiIz+P+TzQqSBTIA1gAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 1500x300 with 3 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, (axL,axC,axR) = plt.subplots(ncols=3, figsize=(15,3))\n",
    "plt.subplots_adjust(wspace=0.4)\n",
    "\n",
    "fontsize = 10\n",
    "axL.plot(result['time'], result['tts'],'o-')\n",
    "axL.set_xlabel('annealing time', fontsize=fontsize)\n",
    "axL.set_ylabel('TTS', fontsize=fontsize)\n",
    "\n",
    "axC.plot(result['time'], result['residual_energy'],'o-')\n",
    "axC.set_xlabel('annealing time', fontsize=fontsize)\n",
    "axC.set_ylabel('Residual energy', fontsize=fontsize)\n",
    "\n",
    "axR.plot(result['time'], result['success_prob'],'o-')\n",
    "axR.set_xlabel('annealing time', fontsize=fontsize)\n",
    "axR.set_ylabel('Success probability', fontsize=fontsize)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "c3T8GiiSBDQr"
   },
   "source": [
    "3つの状態からランダムにひとつ1つ最適解の状態を選んでいるので、成功確率はおよそ$1/3\\approx 0.33\\cdots$くらいになるはずです。  \n",
    "上の成功確率の図も縦軸がその程度の数値になっています。\n",
    "\n",
    "このようにうまくsolver関数を作っておけば、OpenJijのソルバーに限らず自作のソルバーに対して、TTS, 残留エネルギー, 成功確率を計算することが可能です。 "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### `solver_benchmark`関数の詳細\n",
    "ここでは、`solver_benchmark`関数の引数および、その返り値について説明します。\n",
    "#### `solver_benchmark`関数の引数\n",
    "\n",
    "- solver: function  \n",
    "    `Response`クラスを返す関数です。`time`と`num_reads`という引数を持つ必要があります。\n",
    "    `time`は計算時間を制御するパラメータです。`SASampler`の場合は`num_sweeps`に相当します。\n",
    "    `num_reads`はTTSや残留エネルギーなどを計算するときに必要なサンプリング回数を指定します。\n",
    "    また関数の戻り値の`Response.info`には、`time_name`という引数で指定する文字列をキーワードで持ち、`time_name`に紐づく値は1回あたりの計算時間が格納されている必要があります。\n",
    "- time_list: list  \n",
    "    solverの`time`引数に入れる値のリストです。\n",
    "- solutions: list(list: state)  \n",
    "    基底状態(最適解)となる状態のリストです。縮退(同じ状態が複数あり見分けがつかない状態)している場合は[state1, state2]のように、複数の状態を入れます。\n",
    "- args: dict\n",
    "    solverにオプションで必要な場合につけます。デフォルトでは`args = {}`です。\n",
    "- p_r: 0 < float <= 1  \n",
    "    TTSを計算するために必要な値です。上述のTTSの説明のp_Rに相当します。\n",
    "- ref_energy: float  \n",
    "    参照エネルギーです。次のmeasure_with_energyと合わせて用います。デフォルトでは`ref_energy = 0`です。\n",
    "- measure_with_energy: bool  \n",
    "    False: スピンの状態が基底状態と一致しているとき、成功とカウントします。  \n",
    "    True: エネルギーが先ほどのref_energy以下のとき、成功とカウントします。基底状態がわからない場合に用います。  \n",
    "    デフォルトではFalseです。\n",
    "- time_name: str  \n",
    "    `Response.info`に入っている実行時間と紐づくキーを指定します。デフォルトでは`'execution_time'`です。\n",
    "\n",
    "#### `solver_benchmark`関数の返り値\n",
    "返り値はbenchmark計算の結果が以下のように辞書型で格納されています。\n",
    "\n",
    "- time: 実行時間のリスト\n",
    "- success_prob: 成功確率のリスト\n",
    "- tts: TTSのリスト\n",
    "- residual_energy: 残留エネルギーのリストで\n",
    "- info: (dict) ベンチマーク関数のパラメータ情報\n",
    "- se_success_prob: 成功確率の標準誤差のリスト  \n",
    "      iteration 回アニーリング時、成功確率の期待値の標準偏差  \n",
    "      step_num ごとに、格納されている\n",
    "\n",
    "- se_residual_energy: 残留エネルギーの標準誤差のリスト  \n",
    "      iteration 回アニーリング時の、残留エネルギー値の平均の標準偏差  \n",
    "      step_num ごとに、格納されている\n",
    "\n",
    "- se_lower_tts: TTSの下位誤差のリスト\n",
    "      成功確率の上位誤差を基に算出したTTSの下位誤差\n",
    "\n",
    "- se_upper_tts: TTSの上位誤差のリスト\n",
    "      成功確率の下位誤差を基に算出したTTSの下位誤差\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "colab": {
   "collapsed_sections": [],
   "include_colab_link": true,
   "name": "2_Evaluation_ver008.ipynb",
   "provenance": []
  },
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "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.9.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}