Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save genkuroki/e58a3344fbbb856bf418181dfd0e784d to your computer and use it in GitHub Desktop.
Save genkuroki/e58a3344fbbb856bf418181dfd0e784d to your computer and use it in GitHub Desktop.
Julia/Statistics/Rmath-mpmath/hypergeometric distributions and the hypergeometric function 3F2.ipynb
{
"cells": [
{
"metadata": {},
"cell_type": "markdown",
"source": "# 超幾何分布と超幾何函数3F2"
},
{
"metadata": {},
"cell_type": "markdown",
"source": "## mpmathの一般超幾何函数のテスト\n\nhttp://docs.sympy.org/0.7.1/modules/mpmath/functions/hypergeometric.html\n\nhttps://media.readthedocs.org/pdf/mpmath/latest/mpmath.pdf\n\n以下では SymPy 経由ではなく、直接的に利用する。"
},
{
"metadata": {
"collapsed": true,
"trusted": true
},
"cell_type": "code",
"source": "using PyCall\n@pyimport mpmath as mpmath",
"execution_count": 1,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "y = mpmath.hyp3f2(1,2,3,4,5, 1)",
"execution_count": 2,
"outputs": [
{
"data": {
"text/plain": "PyObject mpf('1.5647471869276965')"
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "Float64(y)",
"execution_count": 3,
"outputs": [
{
"data": {
"text/plain": "1.5647471869276965"
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "@show keys(y);",
"execution_count": 4,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "keys(y) = Symbol[:__abs__, :__add__, :__bool__, :__class__, :__cmp__, :__complex__, :__delattr__, :__dict__, :__dir__, :__div__, :__doc__, :__eq__, :__float__, :__format__, :__ge__, :__getattribute__, :__getstate__, :__gt__, :__hash__, :__init__, :__init_subclass__, :__int__, :__le__, :__long__, :__lt__, :__mod__, :__module__, :__mul__, :__ne__, :__neg__, :__new__, :__nonzero__, :__pos__, :__pow__, :__radd__, :__rdiv__, :__reduce__, :__reduce_ex__, :__repr__, :__rmod__, :__rmul__, :__round__, :__rpow__, :__rsub__, :__rtruediv__, :__setattr__, :__setstate__, :__sizeof__, :__slots__, :__str__, :__sub__, :__subclasshook__, :__truediv__, :__weakref__, :_cmp, :_ctxdata, :_mpf_, :ae, :bc, :conjugate, :context, :exp, :imag, :man, :man_exp, :mpf_convert_arg, :mpf_convert_lhs, :mpf_convert_rhs, :real, :sqrt, :to_fixed]\n"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "Float64(y[:real]), Float64(y[:imag])",
"execution_count": 5,
"outputs": [
{
"data": {
"text/plain": "(1.5647471869276965, 0.0)"
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "z = mpmath.hyp3f2(1,2,3,4,5, 1.5)",
"execution_count": 6,
"outputs": [
{
"data": {
"text/plain": "PyObject mpc(real='2.1742091724977142', imag='-0.75073566029112859')"
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "@show keys(z);",
"execution_count": 7,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "keys(z) = Symbol[:__abs__, :__add__, :__bool__, :__class__, :__complex__, :__delattr__, :__dict__, :__dir__, :__div__, :__doc__, :__eq__, :__format__, :__ge__, :__getattribute__, :__getstate__, :__gt__, :__hash__, :__init__, :__init_subclass__, :__le__, :__lt__, :__module__, :__mul__, :__ne__, :__neg__, :__new__, :__nonzero__, :__pos__, :__pow__, :__radd__, :__rdiv__, :__reduce__, :__reduce_ex__, :__repr__, :__rmul__, :__rpow__, :__rsub__, :__rtruediv__, :__setattr__, :__setstate__, :__sizeof__, :__slots__, :__str__, :__sub__, :__subclasshook__, :__truediv__, :__weakref__, :_compare, :_ctxdata, :_mpc_, :ae, :conjugate, :context, :imag, :mpc_convert_lhs, :real]\n"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "Float64(z[:real]), Float64(z[:imag])",
"execution_count": 8,
"outputs": [
{
"data": {
"text/plain": "(2.174209172497714, -0.7507356602911286)"
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "zz = mpmath.hyper(Float64[1,2,3], Float64[4,5], 1.5)",
"execution_count": 9,
"outputs": [
{
"data": {
"text/plain": "PyObject mpc(real='2.1742091724977142', imag='-0.75073566029112859')"
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "z == zz",
"execution_count": 10,
"outputs": [
{
"data": {
"text/plain": "true"
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "## 超幾何分布"
},
{
"metadata": {
"collapsed": true,
"trusted": true
},
"cell_type": "code",
"source": "using Distributions",
"execution_count": 11,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "const n = 50\nconst r, s, t, u = 15, 35, 20, 30\n@assert r+s == t+u == n\na = Int[r*t/n, r*u/n, s*t/n, s*u/n]\nreshape(a,2,2)'",
"execution_count": 12,
"outputs": [
{
"data": {
"text/plain": "2×2 Array{Int64,2}:\n 6 9\n 14 21"
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "cdfhg(r,s,t,k) = cdf(Hypergeometric(r,s,t),k)",
"execution_count": 13,
"outputs": [
{
"data": {
"text/plain": "cdfhg (generic function with 1 method)"
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "cdfhg(r,s,t,6)",
"execution_count": 14,
"outputs": [
{
"data": {
"text/plain": "0.6261924712824409"
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "## https://en.wikipedia.org/wiki/Hypergeometric_distribution\n\nfact(k) = gamma(k+1)\nbinom(n,k) = fact(n)/fact(k)/fact(n-k)\n\nccdfhg_mpmath(N,K,n,k) = \n binom(n,k+1)*binom(N-n,K-k-1)/binom(N,K)*\n Float64(mpmath.hyper(Float64[1, k+1-K, k+1-n], Float64[k+2, N+k+2-K-n], 1))\n\ncdfhg_mpmath(N,K,n,k) = 1 - ccdfhg_mpmath(N,K,n,k)",
"execution_count": 15,
"outputs": [
{
"data": {
"text/plain": "cdfhg_mpmath (generic function with 1 method)"
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "cdfhg_mpmath(n,r,t,6)",
"execution_count": 16,
"outputs": [
{
"data": {
"text/plain": "0.6261924712824412"
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "using PyPlot\nx = 0:min(a[1]+a[2],a[1]+a[3])\ny1 = [cdfhg(a[1]+a[2], a[3]+a[4], a[1]+a[3], k) for k in x]\ny2 = [cdfhg_mpmath(sum(a), a[1]+a[2], a[1]+a[3], k) for k in x]\nfigure()\nplot(x, y1, ls=\"-\", label=\"Distribution.jl\")\nplot(x, y2, ls=\"--\", label=\"mpmath 3F2\")\ntitle(\"cdf of hypergeometric distribution\")\nlegend()\ngrid(true)",
"execution_count": 17,
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAicAAAGzCAYAAAD0T7cVAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAIABJREFUeJzs3Xd4FNX6wPHvZrPZ9ISQSghJSEKVJiiEDgKhKlhQUUMQURCQovIjcq8U9SIqKCqChaKg9yIiFjpSRHoRpEiJmhBKOiQhfbM7vz9iVpYUkpCwm837eZ48MLNnzrxntr175swZlaIoCkIIIYQQFsLG3AEIIYQQQtxIkhMhhBBCWBRJToQQQghhUSQ5EUIIIYRFkeRECCGEEBZFkhMhhBBCWBRJToQQQghhUSQ5EUIIIYRFkeRECCGEEBZFkhNhUVasWIFKpSIuLs5k/dtvv03jxo1Rq9W0bdu2Wva1efNm2rZti729PSqVivT09FLLzZo1C5VKRWpqarXsV1iOqKgogoKCanQfPXv2pGfPnsbluLg4VCoVK1asqNH9Qunvp6CgIAYPHlzj+wbYtWsXKpWKXbt23ZH9Cetha+4AhLiVrVu3Mm3aNJ588klmzZqFp6fnbdeZlpbG8OHDadmyJYsWLUKr1eLk5FQN0QpzyMnJ4a233iqRCFiTjz76CEdHR6KioswdSgmWHJuonSQ5ERZvx44d2NjYsHTpUuzs7KqlzsOHD3P9+nVee+01+vTpUy11CvPJyclh9uzZAJVKTj799FMMBkMNRVW6wMBAcnNz0Wg0ldruo48+wtPTs1IJwFNPPcVjjz2GVqutZJSVU1Zs3bt3Jzc3t9ret6LukNM6wuIlJyfj4OBQrR9wycnJALi7u1dbnZYmOzvb3CFYrOJjo9FoavyL+2YqlQp7e3vUanWN7aO4fWq12nja0hxsbGywt7fHxka+akTlyCtG1IjLly8zevRoGjRogFarJTg4mHHjxlFQUGAsc/r0aXr37o2DgwMNGzbk9ddfL/ErVqVSsXz5crKzs1GpVBU6V79mzRrat2+Pg4MDnp6ePPnkk1y+fNn4eM+ePRk5ciQA99xzDyqVqkK/RtPT04mKisLd3R03NzdGjRpFTk6O8fEePXrQpk2bUrdt2rQpERERwD9jDt555x3effddAgMDcXBwoEePHpw6darEtmfPnuXhhx/Gw8MDe3t7OnTowA8//GBSpnhswc8//8zzzz+Pt7c3DRs2ND6+a9cuOnTogL29PSEhIXz88cfGsTQ3W7VqlfH4eXh48Nhjj3Hx4sUS5W51nKFoTIezszPx8fEMHjwYZ2dn/P39WbRoEQAnT56kd+/eODk5ERgYyFdffVXqcZ88eTIBAQFotVpCQ0OZN2+e8bUSFxeHl5cXALNnzza+TmbNmmUSw59//snAgQNxcXHhiSeeMD5285gTg8HAwoULadWqFfb29nh5edG/f3+OHDlSIrabffLJJ4SEhODg4MC9997LL7/8UqJMaWNOEhMTGTVqFA0bNkSr1eLn58cDDzxgHCsSFBTE6dOn+fnnn43tK+4hKu+5L2sMFxSdLi0ec9WiRQu+/fZbk8fLen3cXGd5sZU15qQyr53Lly8zdOhQnJ2d8fLy4qWXXkKv15fxDAhrIad1RLW7cuUK9957L+np6Tz77LM0a9aMy5cv880335CTk4OdnR2JiYn06tWLwsJCpk+fjpOTE5988gkODg4mda1cuZJPPvmEQ4cO8dlnnwHQuXPnMve9YsUKRo0axT333MPcuXNJSkpi4cKF7N27l2PHjuHu7s6MGTNo2rQpn3zyCXPmzCE4OJiQkJBbtmv48OEEBwczd+5cfv31Vz777DO8vb2ZN28eUNSFPmbMGE6dOsVdd91l3O7w4cOcP3+ef/3rXyb1ffHFF1y/fp3x48eTl5fHwoUL6d27NydPnsTHxwcoSuC6dOmCv7+/8Th9/fXXDB06lLVr1zJs2DCTOp9//nm8vLx49dVXjb+ejx07Rv/+/fHz82P27Nno9XrmzJlj/EK/0RtvvMG///1vhg8fzjPPPENKSgoffPAB3bt3Nx6/ih7nYnq9ngEDBtC9e3feeustvvzySyZMmICTkxMzZszgiSee4MEHH2TJkiVERkYSHh5OcHAwUHS6pkePHly+fJnnnnuORo0asW/fPqKjo0lISOC9997Dy8uLxYsXM27cOIYNG8aDDz4IQOvWrY0xFBYWEhERQdeuXXnnnXdwdHQs83kePXo0K1asYMCAATzzzDMUFhbyyy+/cODAATp06FDmdkuXLuW5556jc+fOTJ48mb/++ov7778fDw8PAgICytwO4KGHHuL06dNMnDiRoKAgkpOT2bZtG/Hx8QQFBfHee+8xceJEnJ2dmTFjBoDxNVLec1+WmJgYHn30UcaOHcvIkSNZvnw5jzzyCJs3b6Zv377lbnuzisR2o8q+diIiIujYsSPvvPMOP/30E/PnzyckJIRx48ZVKk5RyyhCVLPIyEjFxsZGOXz4cInHDAaDoiiKMnnyZAVQDh48aHwsOTlZcXNzUwAlNjbWuH7kyJGKk5PTLfdbUFCgeHt7K3fddZeSm5trXL9+/XoFUF599VXjuuXLlytAqTHebObMmQqgPP300ybrhw0bptSvX9+4nJ6ertjb2yv/93//Z1LuhRdeUJycnJSsrCxFURQlNjZWARQHBwfl0qVLxnIHDx5UAGXKlCnGdffdd5/SqlUrJS8vz7jOYDAonTt3VsLCwkq0p2vXrkphYaHJ/ocMGaI4Ojoqly9fNq6LiYlRbG1tlRs/AuLi4hS1Wq288cYbJtufPHlSsbW1Na6vzHEeOXKkAij/+c9/jOuuXbumODg4KCqVSvnf//5nXH/27FkFUGbOnGlc99prrylOTk7K+fPnTWKaPn26olarlfj4eEVRFCUlJaXEtjfHMH369FIfCwwMNC7v2LFDAZQXXnihRNni125pio9J27Ztlfz8fOP6Tz75RAGUHj16GNcVP//Lly83Hg9Aefvtt8usX1EUpWXLlib1FCvvuS9+7Mb3U2BgoAIoa9euNa7LyMhQ/Pz8lHbt2hnXFb/uy9rfjXWWFdvOnTsVQNm5c6eiKFV77cyZM8ekznbt2int27cvsS9hXeS0jqhWBoOB7777jiFDhpT6K7O4m3jjxo106tSJe++91/iYl5eXsbu9Ko4cOUJycjLPP/889vb2xvWDBg2iWbNmbNiwocp1A4wdO9ZkuVu3bqSlpZGZmQmAm5sbDzzwAP/9739RFAUo+uW3evVqhg4dWuJqoKFDh+Lv729cvvfee+nYsSMbN24E4OrVq+zYsYPhw4dz/fp1UlNTSU1NJS0tjYiICGJiYkp0hY8ZM8ZkLINer+enn35i6NChNGjQwLg+NDSUAQMGmGz77bffYjAYGD58uHFfqamp+Pr6EhYWxs6dO4GqHednnnnG+H93d3eaNm2Kk5MTw4cPN65v2rQp7u7u/PXXX8Z1a9asoVu3btSrV88kpj59+qDX69m9e3eJfZWlIr+0165di0qlYubMmSUeK2/cRvExGTt2rMnYqKioKNzc3MrdZ/F4ql27dnHt2rVbxliWm5/78jRo0MCk183V1ZXIyEiOHTtGYmJilWO4laq8dkp73934GhHWSZITUa1SUlLIzMw0Oa1RmgsXLhAWFlZifdOmTau87wsXLpRZR7NmzYyPV1WjRo1MluvVqwdg8oUSGRlJfHy8cazBTz/9RFJSEk899VSJ+kprf5MmTYzn8v/44w8UReHf//43Xl5eJn/FX57FA3uLFZ8OKZacnExubi6hoaEl9nXzupiYGBRFISwsrMT+zpw5Y9xXZY9z8biNG7m5udGwYcMSX/hubm4mxzMmJobNmzeXiKf4Cqub218WW1tbkzE4Zfnzzz9p0KABHh4eFaq3WHGbb35ONRoNjRs3LndbrVbLvHnz2LRpEz4+PsbTX5VNEm5+7ssTGhpa4tg3adIEoNTxKdWlOl479erVu60kTtQOMuZEiAoq61dpcS8JQEREBD4+PqxatYru3buzatUqfH19q3S5cvGAz5deesk4mPZmNycYN4/Zqez+VCoVmzZtKrWtzs7OVaq3rONWkeNpMBjo27cv06ZNK7Vs8RfqrWi1Wou+YmTy5MkMGTKE7777ji1btvDvf/+buXPnsmPHDtq1a1ehOm7nuS9NWT1Fd3Iwak1e0SQsmyQnolp5eXnh6upa6lUnNwoMDCQmJqbE+nPnzlV534GBgcY6evfuXaLe4sdrklqtZsSIEaxYsYJ58+bx3XffldndXlr7z58/b7x6pPgXt0ajqfJcLN7e3tjb2/PHH3+UeOzmdSEhISiKQnBwcLlf+nfyOIeEhJCVlXXL9lfXpbIhISFs2bKFq1evVqr3pLjNMTExJsdEp9MRGxtb5lVcN+/7xRdf5MUXXyQmJoa2bdsyf/58Vq1aBVRfG+GfXrkb6zx//jyA8fVX3DOYnp5uMki1tB7IisZmCe9RUTtY7k8JUSvZ2NgwdOhQfvzxx1IvvSz+VTxw4EAOHDjAoUOHjI+lpKTw5ZdfVnnfHTp0wNvbmyVLlpCfn29cv2nTJs6cOcOgQYOqXHdlPPXUU1y7do3nnnuOrKwsnnzyyVLLfffddyZjRg4dOsTBgweNY0G8vb3p2bMnH3/8MQkJCSW2T0lJuWUsarWaPn368N1333HlyhXj+j/++INNmzaZlH3wwQdRq9XMnj3bpPcCip63tLQ04M4e5+HDh7N//362bNlS4rH09HQKCwsBjFfflHULgop66KGHUBTFOKHbjW4+Jjfq0KEDXl5eLFmyxORy+RUrVtwyppycHPLy8kzWhYSE4OLiYnJ8nZycbrt9xa5cucK6deuMy5mZmXzxxRe0bdsWX19fYwyAybie7OxsPv/88xL1VTQ2S3mPCssnPSei2v3nP/9h69at9OjRg2effZbmzZuTkJDAmjVr2LNnD+7u7kybNo2VK1fSv39/Jk2aZLyUODAwkBMnTlRpvxqNhnnz5jFq1Ch69OjB448/brxMMSgoiClTplRzS0vXrl077rrrLtasWUPz5s25++67Sy0XGhpK165dGTduHPn5+bz33nvUr1/f5BTGokWL6Nq1K61atWLMmDE0btyYpKQk9u/fz6VLl/jtt99uGc+sWbPYunUrXbp0Ydy4cej1ej788ENatmxpsn1ISAivv/460dHRxMXFMXToUFxcXIiNjWXdunU8++yzvPTSS3f0OL/88sv88MMPDB48mKioKNq3b092djYnT57km2++IS4uDk9PTxwcHGjRogWrV6+mSZMmeHh4cNddd91y7NPNevXqxVNPPcX7779PTEwM/fv3x2Aw8Msvv9CrVy8mTJhQ6nYajYbXX3+d5557jt69e/Poo48SGxvL8uXLbznm5Pz589x3330MHz6cFi1aYGtry7p160hKSuKxxx4zlmvfvj2LFy/m9ddfJzQ0FG9v7xK9DxXVpEkTRo8ezeHDh/Hx8WHZsmUkJSWxfPlyY5l+/frRqFEjRo8ezcsvv4xarWbZsmV4eXkRHx9vUl9FY7OU96ioBcxzkZCwdhcuXFAiIyMVLy8vRavVKo0bN1bGjx9vcpnliRMnlB49eij29vaKv7+/8tprrylLly6t8qXExVavXq20a9dO0Wq1ioeHh/LEE0+YXLKrKFW7lDglJaXUOm6Mtdhbb71V4hLaYsWXkr799tvK/PnzlYCAAEWr1SrdunVTfvvttxLl//zzTyUyMlLx9fVVNBqN4u/vrwwePFj55ptvKtye7du3K+3atVPs7OyUxo0bKx9//LHy4osvKvb29iXKrl27Vunatavi5OSkODk5Kc2aNVPGjx+vnDt3zqRcRY5zWc9djx49lJYtW5ZYHxgYqAwaNMhk3fXr15Xo6GglNDRUsbOzUzw9PZXOnTsr77zzjlJQUGAst2/fPqV9+/aKnZ2dyWXF5b1+br6UWFEUpbCwUHn77beVZs2aKXZ2doqXl5cyYMAA5ejRo6XWcaOPPvpICQ4OVrRardKhQwdl9+7dSo8ePcq9lDg1NVUZP3680qxZM8XJyUlxc3NTOnbsqHz99dcmdScmJiqDBg1SXFxcTC5PLu+5L+tS4kGDBilbtmxRWrdurWi1WqVZs2bKmjVrSmx/9OhRpWPHjoqdnZ3SqFEjZcGCBaXWWVZsN19KXOx2XjtlXeIsrItKUcrpqxRCVMnChQuZMmUKcXFxJa7yiYuLIzg4mLfffpuXXnrJTBEWXcp8+vTpUse+CCGEOcmYEyGqmaIoLF26lB49epRITMwlNzfXZDkmJoaNGzda7R18hRC1m4w5EaKaZGdn88MPP7Bz505OnjzJ999/b+6QjBo3bkxUVBSNGzfmwoULLF68GDs7uzIv0RVCCHOS5ESIapKSksKIESNwd3fnlVde4f777zd3SEb9+/fnv//9L4mJiWi1WsLDw/nPf/5T6kRwQghhbjLmRAghhBAWRcacCCGEEMKiSHIihBBCCItSK8acGAwGrly5gouLS7VO4SyEEEKImqMoCtevX6dBgwaVur9VrUhOrly5QkBAgLnDEEIIIUQVXLx4sUJ3Bi9WK5ITFxcXoKhxrq6u1VavTqdj69at9OvXD41GU231WrK61mZpr3WT9lo3aW/tl5mZSUBAgPF7vKJqRXJSfCrH1dW12pMTR0dHXF1dreaFcCt1rc3SXusm7bVu0l7rUdkhGTIgVgghhBAWRZITIYQQQlgUSU6EEEIIYVFqxZiTilAUhcLCQvR6fYW30el02NrakpeXV6ntarO61uay2qtWq7G1tZVL04UQwgJZRXJSUFBAQkICOTk5ldpOURR8fX25ePFinfmSqmttLq+9jo6O+Pn5YWdnZ6bohBBClKbWJycGg4HY2FjUajUNGjTAzs6uwl+6BoOBrKwsnJ2dKzU5TG1W19pcWnsVRaGgoICUlBRiY2MJCwurE8dCCCFqi1qfnBQUFGAwGAgICMDR0bFS2xoMBgoKCrC3t68zX051rc1ltdfBwQGNRsOFCxeMjwshhLAMVvPtVBe+aEX1kteMEEJYJvl0FkIIIYRFkeRECCGEEBal0snJ7t27GTJkCA0aNEClUvHdd9/dcptdu3Zx9913o9VqCQ0NZcWKFVWJtc6q6HGurJ49ezJ58mTjclBQEO+9916176e0fdWEuLg4VCoVx48fB4ped2q1moyMjBrdrxBCiOpV6eQkOzubNm3asGjRogqVj42NZdCgQfTq1Yvjx48zefJknnnmGbZs2VLpYK1NVFQUKpUKlUqFRqPBx8eHvn37smzZMgwGg7FcQkICAwYMqFCdlUlkvv32W1577bUqxV6WXbt2oVKpSE9Pr/F93SwgIICEhATuuuuuGt2PEEKImlXpq3UGDBhQ4S9KgCVLlhAcHMz8+fMBaN68OXv27OHdd98lIiKi1G3y8/PJz883LmdmZgJFE2rpdDqTsjqdDkVRMBgMJl/oFaEoivHfym5bHRRFISIigmXLlqHX60lKSmLLli1MmjSJNWvW8P3332Nra4u3tzdAhWMs71gUX0arKAru7u4l6r3dY1G87c0xlLav6qZSqUyO1a3aZTAYUBQFnU6HWq2usbjupOL3x83vE2sl7S2FoqDXF6IrLESHLQV6BV2hHiX9AnpdAXpdftG/hUX/Ggp15Nq6cM21BTq9gQK9QsML61AK80GvQ9EXgF4HhkJQFDK1fvzuPRCKPj7pcPlzbPXFn9cK/P25CgrX7bw47v0gSlFYhF/5HK3+OgqgUorKKCiogCxbD/b7jCiuhS4JX+Cou4r99escvvijyRQRubau/OwbZVzunPRfXHXJpR6OAhsHdjR41rjcMXkN9QqulFpWr9Kwzf9543KH1O/wzLtQxoFWsbnhC8aldmnr8cn9s4yysK3B8+htim7m1/rqFhrknC1RRlEU7DOvM1fng17jBECLaztolH2yzHp3+Y4iz7bohrjN0ncTlHWszLJ7fJ4kS1MfgLCM/YRcP2R87Nf6Q+gS3pWWDarv5rpQ9fdmjV9KvH//fvr06WOyLiIiotwu/rlz5zJ79uwS67du3VricmFbW1t8fX3Jysoyfunm6Sr3BZibln7rQhVgr7Gp1MRmxV+KxW1ycXEhNDSUVq1a8cADD7BkyRIiIyOpV68eq1atYtCgQRQUFDBjxgx+/PFH0tPT8fLyYtSoUUydOpXWrVsD8NBDDwFFPQknTpzgzTffZMOGDYwZM4b58+dz8eJFrl69yuDBg2nVqhVz584Fir6sU1NTeeSRR9i8eTNubm5MmTKFMWPGABAfH0+bNm3YvXs3rVq1AiAjI4OgoCB+/PFHGjVqxH333QdA/fpFb4DHH3+cjz76qMS+0tPTmT59Ops3b6agoIDOnTszb948QkJCAPjqq6+Ijo5m2bJlvPLKK1y+fJlOnTrx4Ycf4uvrW+rxvDm+Gyflu379eonyBQUF5Obmsnv3bgoLCyv8vNUG27ZtM3cId5S1tVcxKBTmZ6LPSsEmJwVtXgouuhR+NYTxrdKLucd3oFVy+Z/yf9iiR0MhthSi+fv/GpXCVn04L+gmAqBGz5/2T5W5v236uxmne8m4fE47B62q9PfEPn0L3j/V1Lh8TPsF9VRZpZY9bghh8dl2xuWR2q9poLpaatmzhgDG/NnFuPyk3Q+E2CQULeSblo03ePF0bG/j8sN2G2hlE1dqvSmKKyMv9DcuD7TbQkebkokBQJZiz5Pxg43LvTTbCFf/VmpZg6Li8YtDjcudNNsJVx8utSxA1MVB5FM04eN8zU7C1XvKLPt/Rx4kHRcAXrf9mXDb7WWWffFiN67gCcAM2z2E224ss+y/Lt3Ln4o/AFNs9/Gk7TrjY59dbkRytooLnkpZm1dJZSdHLVbjyUliYiI+Pj4m63x8fMjMzCQ3NxcHB4cS20RHRzN16lTjcmZmJgEBAfTr1w9XV9OsLi8vj4sXL+Ls7Iy9vT05BYW0m2eeD6pTs/riaFfxQ6rRaLC1tS3RpsGDB9OmTRs2bdrEhAkTgKJ5OVxdXZk/fz5btmxh9erVNGrUiIsXL3Lx4kVcXV05fPgwvr6+LF26lP79+6NWq3F1dUWr1RIbG8vGjRtZu3YteXl5uLi4YGtri52dnXH/NjY2fPDBB0RHR/PGG2+wdetWY9LTt29fnJ2dAXBycjJuU9wb4ejoSPPmzVmzZg2PPPIIZ86cwdXV1Rj3zfuKjIzkjz/+4Pvvv8fV1ZXp06fz2GOPcerUKTQaDfb29uTm5rJ48WJWrlyJjY0NkZGRzJkzh1WrVpV6PG+O78ZE1sXFpUTimJeXh4ODA927d7eaeU50Oh3btm2jb9++VnfL9dLU5vbmZGWQcjGGhOuFnNX7celaLtdSEply5UV89Ik4qvJLbJOlz+eyruhL2R41fvZpZdZvyz+3a7BRq8lRtBSqbNFhW5TKqGzRY4teZUuetgHtXN3QqG3QqG04cbUTahUYbGxRbDQYbDSgsgFUXNU24jGvhqgAlQpOXhmMnZIP/PP+UlRFIwYy7HwY6dMI/n70XOIwLuiz/imrUhX1oqAiS+PBGN8git+mcYkPk6i7RnpGBu5u7tjc8P7Ns3VhnF+wcTkx6UGyClJLPQ4FagfGNfin7LXkoezLTyi1rMFGwzj/f8pmpwxhX17b0g+wSsW4hv+U1aUOYl9ui9LLAs/4h2CwKfp+UF/tz77skBJlFEUhPSOdEe1CUTRFn18O1/qxL6thmfUO92tGvm1RIuOefh/7rnuVWXaobwtyNB4A+GT0ZF/mP9894Z4d6HhvJ5r5upS5fVUUn/moLIuchE2r1aLVakus12g0JT6A9Ho9KpUKGxsb45+5VHb/xeNNStumWbNmnDhxwvhYcd0XL14kLCyM7t27o1KpCA7+581RnAR6eHjQoEEDk/0UFBSwcuVK6tevT2ZmpvGL+ub9d+nShejoaGMM+/btY+HChURERJSIpfj/xf9qNBo8PYsyeF9fX+OpnBvjsLGxISYmhh9//JG9e/fSuXNnoKinJCAggB9++IFHHnkEGxsbdDodH3/8sbE3ZcKECcyZM6fMY3xzfDeWK+0429jYGMf71LYvtluxxjaVxxLbW6g3kJCRx6WUa9ie+prCq3FoMi/iknsJz8JE6pOBG/C7Ppw3/u7hsMHAfO0lNCo9BkVFisqDNLsGZDv6U+gaiLtPG8am6uka3hEHOzXnr/6AWqPFVmOHrZ327/9r0Wjs6KF15Ly9Exq16u/3e+mnPQCCgSEmazaU27bBJksfl1u2v8nSgnLL9jVZeh2dTsfGjRu5d+DAEs9vL5OlmeXW28NkqewEAqBrJcp2ruayxe2dMrDNDe2tyRiiynis+lT1fVnjyYmvry9JSUkm65KSkoy/qqubg0bN73NKH8tyM4PBwPXM67i4ulRLUuOgqb5xC4qilHqKKCoqir59+9K0aVP69+/P4MGD6dev3y3rCwwMxMvL65ZjPsLDw0ssV/cVPGfOnMHW1paOHTsa19WvX5+mTZty5swZ4zpHR0djYgLg5+dHcnLZH7BC3EmKwcC11ARSL8VwPSGGgtRY1BkXcMy+xGl9I2bkPE6hQUGNnnPaOdiqSr73MnDCydGRgY18CajnSICHI6d1X1DftxHeAaH42DtyY7+zTqfj6saNdAz2KPrQD+pRok4hrEGNJyfh4eFs3Gh6Dmzbtm0lvgSri0qlqvCpFYPBQKGdGkc7W4ubLfTMmTMmvSLF7r77bmJjY9m0aRM//fQTw4cPp0+fPnzzzTfl1ufk5HTbMd14b5piNTkQ8eaMW6VSmexbiDtNURR2x6Ty8c7zLL7yCB6qbDxKKVdgyKLQoGCntqGhhxP7DX2wc3BGcW+E1qsxLr6heDVqils9T+4D7jPZOvCOtEUIS1bp5CQrK4s//vjDuBwbG8vx48fx8PCgUaNGREdHc/nyZb744gsAxo4dy4cffsi0adN4+umn2bFjB19//TUbNpTfbViX7dixg5MnTzJlypRSH3d1deXRRx/l0Ucf5eGHH6Z///5cvXoVD4+iX1N6vb7U7SriwIEDJZabN28OgJcASPcDAAAgAElEQVRX0bnMhIQE2rUrGuRWPKdIseI7/JYXQ/PmzSksLOTgwYPG0zppaWmcO3eOFi3K75YUwhwUg4GDRw7z5uFCjl8sGkCfaeeImyqbZDxI0/iR5diQQtdG2NYPwrFBcw407YK3ixYbGxXQ06zxC1HbVDo5OXLkCL16/XO2r3jg6siRI1mxYgUJCQnEx8cbHw8ODmbDhg1MmTKFhQsX0rBhQz777LMyLyOua/Lz80lMTDReSrx582bmzp3L4MGDiYyMLFF+wYIF+Pn50a5dO2xsbFizZo3J+I6goCC2b99Oly5d0Gq11KtXr1Lx7N27l7feeouhQ4eybds21qxZY0wkHRwc6NSpE2+++SbBwcEkJyfzr3/9y2T7wMBAVCoV69evZ+DAgTg4OBgHqhYLCwvjgQceYMyYMXz88ce4uLgwffp0/P39eeCBByoc67p164iOjubs2dJH3gtxuxSDgd92fo3j/vm00cVxMX8h9pp6PNExEF3zDeQ1aIi3gxPe5g5UCCtT6eSkZ8+e5Xatlzb7a8+ePTl2rOxrr+uyzZs34+fnh62tLfXq1aNNmza8//77jBw5stRTTS4uLrz11lvExMSgVqu555572Lhxo7Hs/PnzmTp1Kp9++in+/v7ExcVVKp4XX3yRI0eOMHv2bFxdXVmwYIFJIrls2TJGjx5N+/btadq0KW+99ZbJmBd/f39mz57N9OnTGTVqFJGRkaW+JpYvX86kSZMYPHgwBQUFdO/enY0bN1Zq8FRGRgbnzp2rVPuEqAjFYOD49v/ifGABbfVFPcW52DGtVRa97n8QbxfruLpLCEulUmrBSfzMzEzc3NzIyMgo9VLi2NhYgoODK305qMFgIDMzE1dXV4sbc1JTrLnN586do1mzZsTExBAaGgqU397bee1YquLR/gNLubrBGlV3ew16A8d/+grXQwsI1RdNqJWjaDnh9zBhw16hvk/Zl3TeCfL8WjdrbG9539/lschLiYWorKtXr/LNN9/g6upKQECAucMRtYzBoLDldCIrtx1kecYktKpCshV7TvgPp+nQ6XTy9jd3iELUKZKcCKswevRojh49yuLFi0udI0eI0hj0eg7s+pHZJzw4l3Qd0LBSO4iW/vVoPiyacM/SZyMWQtQsSU6EVVi3bt2tCwnxN31hIce2LMfz6EI6Gy5il/86LtomjOoSxMNdP8Pd0c7cIQpRp0lyIoSoM/SFhRzb+Blexz+gg+ESAJk4MraViq5De+PmaB3n+YWo7SQ5EUJYvUJdAcc2fobv8Q/ooBTdkTYDJ34PfIqWw6YxyL2+mSMUQtxIkhMhhNUq1Bv47vgVPtl+mi+y38JXdY10nDkT9BR3DZtGuFtp87sKIcxNkhMhhNXRFeRzZOMKos+FEHet6O6+Hzk8zoAgG1oNe4lw18pNTiiEuLMkORFCWI2C/DyOr19Mw1OLCVeSaF0wnkynXjzbvTFPdYrASSsfeULUBvJOFULUegX5efz63fs0Or2Ye0kBIA03hrXx4c1hvSp8M1AhhGWQd6y4LT179qRt27a899575g5F1EH5ukIK/9xB5rGpdCQVgFTc+SNsNG2GTqGXk4uZIxRCVIV1zV8uasyuXbtQqVSkp6ffdl3ffvstHTp0wN3dHScnJ9q2bcvKlStNykRFRaFSqUr8Fd8Re+7cudxzzz24uLjg7e3N0KFD5T47dUxSZh4DP9hHo/R9+JFKCvU40ORlnKedptMTr+IgiYkQtZb0nIg7zsPDgxkzZtCsWTPs7OxYv349o0aNwtvb2+Qmg/3792f58uUm23p5eQHw888/M378eO655x4KCwt55ZVX6NevH7///jtOTk53tD3izisoNDBu1VHir+XxkWY4zzYpoN2wyXRykOdeCGtgvT0nBdll/+nyKlE2t2JlK6lnz55MnDiRyZMnU69ePXx8fPj000/Jzs5m1KhRuLi4EBoayqZNm4zbFPdebNiwgdatW2Nvb0+nTp04deqUscyKFStwd3dn/fr1NG3aFEdHRx5++GFycnL4/PPPady4MUFBQUyaNAm9Xm/cbuXKlXTo0AEXFxd8fX0ZMWIEycnJAMTFxdGrVy8A6tWrh0qlIioqyritwWBg2rRpeHh44Ovry6xZs27Z9mHDhtG8eXNCQkKYNGkSrVu3Zs+ePSbltFotvr6+Jn9qtRoouptzVFQULVu2pE2bNqxYsYL4+HiOHj1a6edC1D6ffLOeX+PTcbG3pUvLJnR4ZBr2kpgIYTWst+fkPw3KfiysHzyxxriomt8EdDmllw3sCqM2/LP8XivISStZblZGpUP8/PPPmTZtGocOHWL16tWMGzeOdevWMWzYMF555RXeffddnnrqKeLj43F0dDRu9/LLL7Nw4UJ8fX155ZVXGDJkCOfPnzfexTInJ4f333+f//3vf1y/fp0HH3yQYcOGGZOWU6dOMXLkSLp27cqjjz4KFN0N87XXXqNp06YkJyczdepUoqKi2LhxIwEBAaxdu5aHHnqIc+fO4erqioODg0k7pk6dysGDB9m/fz9RUVF06dKFvn373vIYKIrCjh07OHfuHPPmzav0MSyWkVF0/D08ZN4Ka3f4+4+YcDaaQtsHaf7wG+T9edjcIQkhqpn19pzUAm3atOFf//oXYWFhREdHY29vj6enJ2PGjCEsLIxXX32VtLQ0Tpw4YbLdzJkz6du3L61ateLzzz8nKSnJ5N4yOp2OxYsX065dO7p3787DDz/Mnj17WLp0KS1atKB///707NmTnTt3Grd5+umnGTBgAI0bN6ZTp068//77bNq0iaysLNRqtfFL39vbG19fX9zc3Izbtm7dmpkzZxIWFkZkZCQdOnRg+/bt5bY9IyMDZ2dn7OzsGDRoEB988EGJZGb9+vU4Ozsb/x555JFS6zIYDEyePJkuXbpw1113Vezgi1rpzxP7aPXrqwB0DPagd1MvM0ckhKgJ1ttz8sqVsh9TqU0WlRfPo7IpI09T3bR+8snbDOwfrVu3Nv5frVZTv359WrVqZVzn4+MDYDy9Uiw8PNz4fw8PD5o2bcqZM2eM6xwdHQkJCTGpJygoCGdnZwwGg3HdjfUePXqUWbNm8dtvv3Ht2jVjufj4eFq0aFHhdgD4+fmViPlmLi4uHD9+nKysLLZv387UqVNp3LgxPXv2NJbp1asXixcvNi6XNZZk/PjxnDp1qsRpIWFdMtKScFgXhb1Kx2/299Ax6i30f79OhRDWxXqTE7tKnH+2c4KykpPbqfcWik/DFFOpVCbrVCoVgDFRqK56i9cV15udnU1ERAQRERF8+eWXeHl5ER8fT0REBAUFBVXa361itrGxITQ0FIC2bdty5swZ5s6da5KcODk5GcuUZcKECaxfv57du3fTsGHDW8YqaieDXk/cp0/QRkniisqHoDFfYqNWS3IihJWy3uTEih04cIBGjRoBcO3aNc6fP0/z5s2rXN/Zs2dJS0vjzTffJCAgAIAjR46YlLGzK7qF/I2DaKuTwWAgPz+/wuUVRWHixImsW7eOXbt2ERwcXCNxCctwcMU0wvMOk6doyH1wBQ3q+5g7JCFEDZLkpBaaM2cO9evXx8fHhxkzZuDp6cnQoUOrXF+jRo2ws7Pjgw8+YOzYsZw6dYrXXnvNpExgYCAqlYr169czcOBAHBwccHZ2rtL+5s6dS4cOHQgJCSE/P5+NGzeycuVKk1M4tzJ+/Hi++uorvv/+e1xcXEhMTATAzc3NZLCuqP0O7P+F8IufAXDy7jnc07qzmSMSQtQ0GRBbC7355ptMmjSJ9u3bk5iYyI8//mjs2agKLy8vVqxYwZo1a2jRogVvvvkm77zzjkkZf39/Zs+ezfTp0/Hx8WHChAlV3l92djbPP/88LVu2pEuXLqxdu5ZVq1bxzDPPVLiOxYsXk5GRQc+ePfHz8zP+rV69uspxCcsTl5rNmC05TC0Yy17vx7nngefNHZIQ4g5QKYqimDuIW8nMzMTNzY2MjAxcXV1NHsvLyyM2Npbg4GDs7e0rVa/BYCAzMxNXV1dsKjrmxIx27dpFr169uHbtGu7u7lWqo7a1+XaV197bee1YKp1Ox8aNGxk4cGCJsUC1TU5BIQ9+tI+ziddpH1iP/47phJ2t6XNoTe2tCGmvdbPG9pb3/V0e6/92EkLUOorBwLZPZ5CceBlPZy0fPXF3icRECGG9ZMyJEMLiHFw9lwdSltBW603Soz/j42odPVtCiIqR5KQW6dmzJ7XgLJwQt+XMwS20PzsfVJDQNJJOYeXM9iyEsErSTyqEsBipVy7gtelZNCo9R1160/GxGeYOSQhhBlaTnEiPgqgsec1YloL8PFKWP4Yn6cTZNKL5c8vLnrlZCGHVav07/8ab3QlRGcWvGWsZFV/bHftsPM11v3NdcUA94iscnat2RZoQovar9WNO1Go17u7uxnu5ODo6Gqd9vxWDwUBBQQF5eXl14rJaqHttLq29iqKQk5NDcnIy7u7uqNXqW9QiatqPh87SMmkP2MCfXRfQNrTVrTcSQlitWp+cAPj6+gIlb5B3K4qikJubi4ODQ4UTmtqurrW5vPa6u7sbXzvCfH6/ksnLP8ai0b3Om60SGNR3hLlDEkKYmVUkJyqVCj8/P7y9vdHpdBXeTqfTsXv3brp3715nuvbrWpvLaq9Go5EeEwuQkV3A2FVHydMZuLdJIP0ff9jcIQkhLIBVJCfF1Gp1pb5w1Go1hYWF2Nvb14kvaqh7ba5r7a1NDHo9f3w4lJ6Zoexwf4D3H2uL2sb6e/OEELdmVcmJEKL2OPj5dMJz99LS9hBPPDAGd8eq3x9KCGFdrH9EpBDC4vy242s6XvgUgJPtZtK0uQyAFUL8Q5ITIcQddfmv0wTvnoyNSuFg/aHcM3SiuUMSQlgYSU6EEHdMbvZ18r58AleyOWfbjHZjlpg7JCGEBZLkRAhxRygGA6c/HkWIPpY03Kg36n/Y2TuYOywhhAWS5EQIcUd8sf8CW9M8yVc0JPZbgrd/sLlDEkJYKLlaRwhR447EXeW1DWcoNAwhqFcUIzp3MndIQggLJsmJEKJGpSRd4qVVxyg02DC4tR+P39fO3CEJISycnNYRQtQYXUE+KZ89yqcF/0cvzwzmPdS6Ttw2QQhxe6TnRAhRY45+NpFOulNcVzkw54GWOGnlI0cIcWvScyKEqBFH1n9Cp+TVAPzR5R0CwtqYOSIhRG0hyYkQotrFnj5Ii8P/AmC/fxTt+j1p5oiEELWJJCdCiGqVcS0VzTcjcVTlc8K+PfeOmm/ukIQQtYwkJ0KIamMwKJxYOp6GSgIJeNHoma9Q28o4EyFE5UhyIoSoNh/u/IOpqUPYa2hF9tDluHv6mjskIUQtJD9phBDVYue5ZN796TwK9bh8/3/p0jbA3CEJIWop6TkRQty2y3+dZcN/F6MoMKJjI4Z3kMRECFF10nMihLgt+Xk55H35OO/wF2Ge44ga8oa5QxJC1HLScyKEuC2/bfiYEP1fXMOVoY+NQWurNndIQohaTpITIUSVKQYD3qeXAnAu7Bl8GoaYOSIhhDWQ5EQIUWUndq8jyHCRLMWBloMmmDscIYSVkORECFFlqgOLADjl+wAu7vXNHI0QwlpIciKEqJLY3w/TOu8oekVFowFTzR2OEMKKyNU6Qogq2XL4d/oYGpDpGsrdQU3NHY4QwopUqedk0aJFBAUFYW9vT8eOHTl06FC55b/88kvatGmDo6Mjfn5+PP3006SlpVUpYCGE+aVcz2dBjDd9C97C5v4PzB2OEMLKVDo5Wb16NVOnTmXmzJn8+uuvtGnThoiICJKTk0stv3fvXiIjIxk9ejSnT59mzZo1HDp0iDFjxtx28EII81h14AIFhQbaBHjQtkmQucMRQliZSicnCxYsYMyYMYwaNYoWLVqwZMkSHB0dWbZsWanl9+/fT1BQEC+88ALBwcF07dqV55577pa9LUIIy5SXm03WvqXYk88z3YLNHY4QwgpVasxJQUEBR48eJTo62rjOxsaGPn36sH///lK3CQ8P55VXXmHjxo0MGDCA5ORk1qxZw8CBA8vcT35+Pvn5+cblzMxMAHQ6HTqdrjIhl6u4ruqs09LVtTZLe6vf8Q0f829lCY84bCWwyQGzHlt5fq2btLf2q2pbVIqiKBUtfOXKFfz9/dm3bx/h4eHG9dOmTePnn3/m4MGDpW63Zs0ann76afLy8igsLGTIkCGsXbsWjUZTavlZs2Yxe/bsEuu/+uorHB0dKxquEKKaKQaFVr/NIIRLfOf8OKqwAeYOSQhhwXJychgxYgQZGRm4urpWeLsav1rn999/Z9KkSbz66qtERESQkJDAyy+/zNixY1m6dGmp20RHRzN16j+XJmZmZhIQEEC/fv0q1bhb0el0bNu2jb59+5aZKFmbutZmaW/1Or3nO0K4RLZiT4+oWTi7mXduE3l+rZu0t/YrPvNRWZVKTjw9PVGr1SQlJZmsT0pKwtfXt9Rt5s6dS+fOnXn55ZcBaN26NU5OTnTr1o3XX38dPz+/EttotVq0Wm2J9RqNpkaesJqq15LVtTZLe6uHzcElAJz0uZ9OnqW/581Bnl/rJu2tvarajkoNiLWzs6N9+/Zs377duM5gMLB9+3aT0zw3ysnJwdbWNAdSq4tuDFaJM0pCCDOLO3OE1nlH0CsqAvrLpGtCiJpT6at1pk6dyqeffsrnn3/OmTNnGDduHNnZ2YwaNQooOiUTGRlpLF88vmTx4sX89ddf7N27lxdeeIF7772XBg0aVF9LhBA1KnnruwD85twV/8bNzRyNEMKaVXrMyaOPPkpKSgqvvvoqiYmJtG3bls2bN+Pj4wNAQkIC8fHxxvJRUVFcv36dDz/8kBdffBF3d3d69+7NvHnzqq8VQogalXo9j6tpyWADjt1fMHc4QggrV6UBsRMmTGDChNLvQLpixYoS6yZOnMjEiROrsishhAX48uBF3i2YTL8GuXx8Tx9zhyOEsHJy4z8hRLnydHpWHogDYHCPzqhs5GNDCFGz5FNGCFGuX3ZtQZOVQAM3ewbcZTlX6AghrJfclVgIUSbFYCBkfzS/aOP5qcl8NGr5PSOEqHnySSOEKNOpPT/Q2BBHARrCe99v7nCEEHWEJCdCiDIZ9n0IwEnvIbjV8zRzNEKIukKSEyFEqS6cOUqbvMMYFBUNB8ika0KIO0eSEyFEqZK2FU+61hn/xi3NHI0Qoi6R5EQIUcLV5Mu0TtsMgLabTLomhLizJDkRQpSwe/d2ClETYxtK83v7mTscIUQdI8mJEMJEfqGe1882oHP+B1zsvkAmXRNC3HHyqSOEMPHD8SukZuXj5Fafbl26mTscIUQdJMmJEMJIMRj4ZdcWQGFk5yCZdE0IYRYyQ6wQwuj03h95P+tFntC2oFmHn80djhCijpKfRUIII/3fk67h1Qw3JzvzBiOEqLMkORFCAHDh3HHa5B7CoKjw7y+TrgkhzEeSEyEEAIlbFwDwm1M4DUNbmTkaIURdJsmJEIJrKQm0Tt0EyKRrQgjzk+RECMHZDQtxUBXwhzqE5h0jzB2OEKKOk+REiDouv1CP/YVdAKS3eVYmXRNCmJ18CglRx/34WwIP5c7gZdvptI6IMnc4QgghyYkQdZmiKCzdE4sBG4K7PoKd1t7cIQkhhCQnQtRlR06e4c+ENBw0akbc28jc4QghBCAzxApRp2k2TWGv9gwbQ17F3VEmXRNCWAZJToSoo+JjfqNt7gEMqOgdfo+5wxFCCCM5rSNEHZWwuWjStRNOnQgIa2PmaIQQ4h+SnAhRB6WnJtI6dSMAmi4TzRyNEEKYkuREiDrozIb3cVAV8Ke6MS3CB5g7HCGEMCHJiRB1TEF+HqGxXwFwtfUYmXRNCGFx5FNJiDrm0M7v8OIaKdSjTf+nzR2OEEKUIFfrCFGHKIrCf875Y8h/kwnt7Rksk64JISyQJCdC1CEH/rrK7wmZ2GuC6DrwPnOHI4QQpZLTOkLUIV/tPgHAw+0byqRrQgiLJT0nQtQRF2N+4+24R+hm25n24SvNHY4QQpRJek6EqCOubHkPe5WOJi75hPi4mTscIYQokyQnQtQBGWlJtErZAIBt1wlmjkYIIconyYkQdcDv69/HUZXPn+pgWoYPMnc4QghRLklOhLByBfl5hBRPutZKJl0TQlg++ZQSwsqd2LIcb66SijttBow2dzhCCHFLkpwIYcUURcHhxBcAxAQ9jp1MuiaEqAUkORHCih2MvcqTWS/wruFRmg2aZO5whBCiQiQ5EcKKLd0TyzVcSWk3kXpefuYORwghKkSSEyGsVGxSOj+dSQLg6S7BZo5GCCEqTmaIFcJKJa+ZwmrNaX5qMI5Qb2dzhyOEEBUmyYkQVijzWgqtUjbgaJOPY0sPc4cjhBCVIqd1hLBC5zYuwlGVz182QbTsMsTc4QghRKVIciKElTHoCwmNK5p0LbXVMzLpmhCi1pFPLSGsTOGlwzLpmhCiVpPkRAgrohgM3HV1CwAxgY+htXc0c0RCCFF5kpwIYUXOHdlBc/4iT9HQbPBkc4cjhBBVIlfrCGFFFsW4Y1swkf6N9AyWSdeEELWUJCdCWIn4tBy2nLuKooQzfkhnc4cjhBBVJqd1hLAS3xy9iKJAUzeDTLomhKjVpOdECCugGAx0OfAcenUY+fX7mDscIYS4LZKcCGEFzh7eRkfDMe6yPcMWj77mDkcIIW6LnNYRwgpkHlwFwGn3Hqg1WjNHI4QQt0eSEyFqubzcHJpf3Q6Att3jZo5GCCFuX5WSk0WLFhEUFIS9vT0dO3bk0KFD5ZbPz89nxowZBAYGotVqCQoKYtmyZVUKWAhh6vef1+BKNsl40LRjf3OHI4QQt63SY05Wr17N1KlTWbJkCR07duS9994jIiKCc+fO4e3tXeo2w4cPJykpiaVLlxIaGkpCQgIGg+G2gxdCgOrEagD+9BtIB1sZRiaEqP0q/Um2YMECxowZw6hRowBYsmQJGzZsYNmyZUyfPr1E+c2bN/Pzzz/z119/4eFRdOv2oKCg24taCAFAemoiLbMPgAp8u0WZOxwhhKgWlUpOCgoKOHr0KNHR0cZ1NjY29OnTh/3795e6zQ8//ECHDh146623WLlyJU5OTtx///289tprODg4lLpNfn4++fn5xuXMzEwAdDodOp2uMiGXq7iu6qzT0tW1Nlt7e7cd/xO1IZwmdldpGtbW6tt7M2mvdZP21n5VbUulkpPU1FT0ej0+Pj4m6318fDh79myp2/z111/s2bMHe3t71q1bR2pqKs8//zxpaWksX7681G3mzp3L7NmzS6zfunUrjo7VfyOzbdu2VXudlq6utdla27vopJo43fMM9Suk18aNxvXW2t6ySHutm7S39srJyanSdjV+gtpgMKBSqfjyyy9xc3MDik4NPfzww3z00Uel9p5ER0czdepU43JmZiYBAQH069cPV1fXaotNp9Oxbds2+vbti0ajqbZ6LVlda7M1t/dCWg5x+/dgo4KXH7sPbxetVbe3NNJe6ybtrf2Kz3xUVqWSE09PT9RqNUlJSSbrk5KS8PX1LXUbPz8//P39jYkJQPPmzVEUhUuXLhEWFlZiG61Wi1Zbcq4GjUZTI09YTdVryepam62xvb/t/p7mqiy8wjrg72E6Xb01trc80l7rJu2tvarajkpdSmxnZ0f79u3Zvn27cZ3BYGD79u2Eh4eXuk2XLl24cuUKWVlZxnXnz5/HxsaGhg0bViloIeo6xWCg45k32KSNZrzvGXOHI4QQ1arS85xMnTqVTz/9lM8//5wzZ84wbtw4srOzjVfvREdHExkZaSw/YsQI6tevz6hRo/j999/ZvXs3L7/8Mk8//XSZA2KFEOU7d2Q7DZVEchQtrboPNXc4QghRrSo95uTRRx8lJSWFV199lcTERNq2bcvmzZuNg2QTEhKIj483lnd2dmbbtm1MnDiRDh06UL9+fYYPH87rr79efa0Qoo7JME5X35N7nN1uUVoIIWqXKg2InTBhAhMmTCj1sRUrVpRY16xZM6safSyEOeXn5dAsrej9ZN/+CTNHI4QQ1U/urSNELXP657W4/T1dfYvOg8wdjhBCVDtJToSoZVQn/gfAn74DUMt09UIIKyTJiRC1SPr1LHyzfgfAp+tIM0cjhBA1Q5ITIWqR9afT6Jb/HtOc3qDxXR3NHY4QQtQISU6EqEXWHbtMIbaEdhxg7lCEEKLGSHIiRC0Rn5TKrxfSsFHBA239zR2OEELUGElOhKglLm+Yxx7tJKb7/YqPq725wxFCiBojyYkQtYBiMBBw8Uf8VWm0C6xv7nCEEKJGSXIiRC1w7ugOGioJ5ChaWvQeYe5whBCiRklyIkQtkHFgJQC/u3XHycXdzNEIIUTNkuRECAtXkJ9H07SfANC2l14TIYT1k+RECAt3+udvcCeLFOrRosv95g5HCCFqnCQnQlg45be/p6v36S/T1Qsh6gT5pBPCgmXk6PhPRj/ux54u3UaZOxwhhLgjJDkRwoJtOJnAkcIQsnzbEinT1Qsh6gg5rSOEBVt37BIAw9rJjLBCiLpDkhMhLNSV2LMMu/Q27W3Oy3T1Qog6RU7rCGGhLuxazgjbHbTSXsPXbYq5wxFCiDtGek6EsECKwUDD+B8AyGv+iJmjEUKIO0uSEyEs0PlfdxGgXCmarv6+J8wdjhBC3FGSnAhhgdKN09V3k+nqhRB1jiQnQliYgvw8mqRuA8DubpmuXghR90hyIoSF+X33t9TjOqm406LLEHOHI4QQd5wkJ0JYmKN/XuGS4kmMzwBsNXbmDkcIIe44SU6EsCAZuTrmXWpJt/z3cB0w09zhCCGEWUhyIoQF2XgygYJCA2E+rrQI9DV3OEIIYRaSnAhhQc4c2IKGQoa1a4hKpTJ3OEIIYRYyQ6wQFuJK3DnmXH2JF7SuFLY8Zu5whBDCbKTnRAgLcWHnMgAS7Rvj6/fEfWQAACAASURBVOVp5miEEMJ8JDkRwgLcOF19TrOHzRyNEEKYlyQnQliAmOO7CVCukKvY0eK+J80djhBCmJUkJ0JYgGv7vgDgtGs3nF3rmTkaIYQwL0lOhDAzXUG+cbp6zd2PmzkaIYQwP0lOhDCzE3s3UY9MUnGnZdcHzB2OEEKYnSQnQpjZsiuNiMh/k59CXpHp6oUQApnnRAizyszTse1MEgVKI+7q3dXc4QghhEWQnhMhzGjTiStF09V7O9Oygau5wxFCCIsgPSdCmFHY9tEs1Gi43myaTFcvhBB/k+RECDNJuHCOu/MP09ZGRXKrAHOHI4QQFkNO6whhJhd2fg7AGW1rfANCzRyNEEJYDklOhDADxWDAL/57ALKby3T1QghxI0lOhDCDP37bQ6DhEnmKhua9Zbp6IYS4kSQnQphB2g3T1bu4eZg5GiGEsCySnAhxh+kK8mmSsgUA23YyXb0QQtxMrtYR4g7bez6Bg7qB9NGcoE23oeYORwghLI4kJ0LcYd+cuMp6/f3kdXqB9jJdvRBClCCndYS4gzLzdGz7PQmAYe38zRyNEEJYJklOhLiDju34lgjDL7TwtKWVv5u5wxFCCIskp3WEuIM8j3/I+3Yn2O+lQqWKMHc4QghhkaTnRIg7JDE+hpYFJwAI6jnSzNEIIYTlkuREiDskdudyAE7btcIvsImZoxFCCMslyYkQd4BiMNDgwg8AZDeV6eqFEKI8kpwIcQf8cWIvgYaL5Ckamt33lLnDEUIIiybJiRB3gHG6epcuuLrXN3M0Qghh2SQ5EaKGFeoN5KRcAEAt09ULIcQtyaXEQtSwX2JSeTp3Eq0dr7G22zBzhyOEEBavSj0nixYtIigoCHt7ezp27MihQ4cqtN3evXuxtbWlbdu2VdmtELXSt8cuA3B323Zo7LRmjkYIISxfpZOT1atXM3XqVGbOnMmvv/5KmzZtiIiIIDk5udzt0tPTiYyM5L777qtysELUNtevZ3D49HlApqsXQoiKqnRysmDBAsaMGcOoUaNo0aIFS5YswdHRkWXLlpW73dixYxkxYgTh4eFVDlaI/2/v3sOirvP+jz9nhjMBK6IcFE9lng8lQWptlqhbZrltm5VrrG3dP1u5U+k2s1bTuzarvTK13My6y9xNrXaztjKTpbLMYyBpKWp5wETw7CgEDDPf3x8mm4kHkOEzzLwe1+XlNV++M/N6MzC+/J6msdn87/l87riPZ6IW0r2lLlcvInI+anXMSWVlJbm5uUycOLF6md1uJz09nVWrVp3xfq+++irbt2/n73//O48//vg5n6eiooKKiorq206nEwCXy4XL5apN5LM6+Vj1+Zi+LtBmNj1vxOZ/EGxzk5jYgqqqKq8/n+l5G5rm9W+at/Gr6yy1KicHDhzA7XYTHx9/yvL4+HgKCgpqvM+2bdt46KGH+PzzzwkKOr+nmzZtGlOnTj1t+bJly4iIiKhN5POSnZ1d74/p6wJtZhPzVh4/xG8qvgIbfB/cnv1LljTYc+v19W+a17/507xlZWV1up9Xz9Zxu93ceeedTJ06lUsvPf/LdU+cOJGsrKzq206nk+TkZAYOHEh0dHS95XO5XGRnZzNgwACCg4Pr7XF9WaDNbHLeda9PwW6z2BTclV/f3jCfpaPX179pXv/mj/Oe3PNRW7UqJ3FxcTgcDkpKSk5ZXlJSQkJCwmnrHzt2jC+//JL169eTmZkJgMfjwbIsgoKCWLZsGdddd91p9wsNDSU09PSzGoKDg73ygnnrcX1ZoM3c0PNaHg9JhScuV3+8460N/r3W6+vfNK9/86d56zpHrQ6IDQkJoVevXuTk5FQv83g85OTk1Higa3R0NBs3biQ/P7/6z6hRo+jQoQP5+fmkpaXVKbSIr/tu4yraeAqpsILpcJ0uVy8iUhu13q2TlZVFRkYGKSkppKamMmPGDEpLSxk5ciRwYpfMnj17mD9/Pna7na5du55y/+bNmxMWFnbachF/sn/l37gE+CaqD5c3iTMdR0SkUal1ORk2bBj79+9n8uTJFBcX07NnT5YuXVp9kOzevXspLCys96AijUWV28OkAwPo4wrhpisGmo4jItLo1OmA2MzMzOpjSH5u3rx5Z73vlClTmDJlSl2eVqRR+HzbAb4tDeNQ5BAmXaWLDoqI1JY++E+kns1buROAoT1bEOzQr5iISG3pg/9E6lHh1nwe2PlfNHX8iow+/UzHERFplPTfOpF6tHfZTLrbd3BXTD6tm0aajiMi0iipnIjUk6OHD9Bt/wcABPW+z3AaEZHGS+VEpJ5sXjKbCFsFO+2t6NJ3iOk4IiKNlsqJSD1wV1XR6tvXASjp9Htsdv1qiYjUld5BRerBho8XkWSVcJRIut/wX6bjiIg0aionIvUg5Mu5AGxOvIXwyCjDaUREGjedSixygQqKnUw/ns7vgzy0v36M6TgiIo2eyonIBZr3xU5yPL0I7TCYv7ZqbzqOiEijp906IhfgcGkli9fvAWBk37aG04iI+AeVE5ELsOGd6fyRN7kqwU1K6yam44iI+AXt1hGpI5erko7b5nJN0EHWtemFzWYzHUlExC9oy4lIHW3Ifp14DnKQGLr/6m7TcURE/IbKiUgdRaw/cfrwtpa3EhoWYTiNiIj/UDkRqYNt+Z/TybWJSsvBJTfo9GERkfqkciJSB0c+eQ6ADTHXEpfU2nAaERH/onIiUksHinfT40gOAFH97jecRkTE/+hsHZFaWpy7i0j31XQNP0T3y68xHUdExO+onIjUQmWVhxfXl3Og6l5mDe5Jd9OBRET8kHbriNTCBxuLOHC8gvjoUK7vlmg6joiIX1I5ETlPlsdDxbLH6GrbzogrWxPs0K+PiIg3aLeOyHnakvsxt/+wiF+HBFPa/TbTcURE/Jb+6ydynko/ex6Ar5oMIDYu3nAaERH/pXIich5Kvv+OHs7lADS9TqcPi4h4k8qJyHnY/uEsgmweNoV04+LuvU3HERHxayonIudQXnacjnv+CUBFr3sNpxER8X8qJyLnsOHDl2nCMYppRvf+d5qOIyLi91RORM7CsiyWf3eEIiuWnRffiSMo2HQkERG/p1OJRc5i9fZDzD50BfODU1hx0y9NxxERCQjaciJyFvNW7gDgpstbExMTbTiNiEhgUDkROYOiXVsJKngXB25+36eN6TgiIgFDu3VEzqBwyXRmBy9kZcy1tI+/yXQcEZGAoS0nIjUoPXaEziXvAhCZcrvhNCIigUXlRKQGX3/4ItGU8b0tkW7X/NZ0HBGRgKJyIvIzHrebhIL5AHx/6QjsDofhRCIigUXlRORnvvn8HVp7vue4FU6XG+4zHUdEJOConIj8jLX6BQC+ib+RqJhYw2lERAKPyonIT2wvPkhF2VE8lo0WA8eajiMiEpB0KrHIT8xfW8y8yinccXEl0y7pajqOiEhA0pYTkR85y1289eVuAAb3u9pwGhGRwKVyIvKjTz7+iODKI7RvfhF9L2lqOo6ISMDSbh0RwF1VRcq6LFaFHmZFpznYbDbTkUREApa2nIgAGz99ixZWCZW2YPpenW46johIQFM5EQGC1s0BYHPCUCIuijGcRkQksKmcSMDbuflLulbk47ZstL5+jOk4IiIBT+VEAl5J9kwAvrroahJbdzCcRkREVE4koB09WEL3g0sBCLvqj4bTiIgIqJxIgFv56Qc4cPOdox2d0gaZjiMiIqicSACrcnt4bGtr+lbMYnufp7DZ9esgIuIL9G4sAWvZphKKjpbjiYzn6l/2Nx1HRER+pHIiAWvJ8lUA3JnWirBgh+E0IiJykq4QKwHp269W8PyBkdwa0pNOaR+ajiMiIj+hLScSkA5//BwAF8U0JT4mwnAaERH5KZUTCTgHS3bT48i/AYi6ZrThNCIi8nMqJxJwti55nhBbFVuDLqVDig6EFRHxNXUqJ7Nnz6ZNmzaEhYWRlpbG2rVrz7ju22+/zYABA2jWrBnR0dH07t2bjz76qM6BRS5EZUU57XctAsDZ4x7DaUREpCa1LidvvPEGWVlZPProo+Tl5dGjRw8GDRrEvn37alz/s88+Y8CAASxZsoTc3FyuvfZahgwZwvr16y84vEhtbVw2jziOsJ8mdB+YYTqOiIjUoNblZPr06dx7772MHDmSzp07M2fOHCIiInjllVdqXH/GjBk8+OCDXHHFFbRv354nnniC9u3b8957711weJHasja+BcB3rYcREhpmOI2IiNSkVqcSV1ZWkpuby8SJE6uX2e120tPTWbVq1Xk9hsfj4dixY8TGxp5xnYqKCioqKqpvO51OAFwuFy6XqzaRz+rkY9XnY/q6QJv5p/Ou332EEc5Mbg5azf8MvM8vvweB/PoGAs3r3/xx3rrOYrMsyzrflYuKimjRogUrV66kd+/e1csffPBBli9fzpo1a875GE8//TRPPvkkBQUFNG/evMZ1pkyZwtSpU09bvmDBAiIidNqn1M1rW+3kHbST2szD8Es8puOIiPi9srIy7rzzTo4ePUp0dPR5369BL8K2YMECpk6dyrvvvnvGYgIwceJEsrKyqm87nU6Sk5MZOHBgrYY7F5fLRXZ2NgMGDCA4OLjeHteXBdrMJ+ft0SuVjWtyAXj41j50Saq/nyNfEqivr+b1T5q38Tu556O2alVO4uLicDgclJSUnLK8pKSEhISEs9530aJF3HPPPbz11lukp6efdd3Q0FBCQ0NPWx4cHOyVF8xbj+vLAm3moiVPsizoQ/4Zey89Ww82HcfrAu311bz+TfM2XnWdo1YHxIaEhNCrVy9ycnKql3k8HnJyck7ZzfNzCxcuZOTIkSxcuJDBg/3/HwbxLe6qSjoWvU1bewnXdWxmOo6IiJxDrXfrZGVlkZGRQUpKCqmpqcyYMYPS0lJGjhwJnNgls2fPHubPnw+c2JWTkZHBzJkzSUtLo7i4GIDw8HBiYmLqcRSRmnl2ryEWJ8U0o3v/O03HERGRc6h1ORk2bBj79+9n8uTJFBcX07NnT5YuXUp8fDwAe/fupbCwsHr9uXPnUlVVxejRoxk9+j+XCs/IyGDevHkXPoHIWVgeD92PLANgZ7s7SAgOMZxIRETOpU4HxGZmZpKZmVnj135eOD799NO6PIVIvdiyLptu7OIHK4ROg2v+mRUREd+iz9YRv+Za+QIAG5oOIqZpvOE0IiJyPlROxG8V7fqWHqVfABB37X8bTiMiIuerQa9zItJQ3B6L8cv2U1k5iRsjvuHOjpebjiQiIudJ5UT80sycbXzx3SHCgzuTfsklpuOIiEgtaLeO+J2vPn+PnE+yAXjsps4k6BMPREQaFZUT8Ssl339Hq5w/8nbwo0zsfIibeyaZjiQiIrWkciJ+w1VZweHXfkcTnOwOakXGb28xHUlEROpA5UT8Ru7/jaGjaxNOK4Lw4X8jLDzSdCQREakDlRPxC+uX/Z0rSxYC8G2fp2jRrovhRCIiUlcqJ9Lo7dm+mYtXjgdgdfztXD7oLsOJRETkQqicSKNW7nKz9s0niaaMgqBO9PrDLNORRETkAuk6J9KoPfb+JhYcuZVd4Rdxe8Y4gkNCTUcSEZELpHIijda7+Xt4fU0hNpudnrc/SkJyc9ORRESkHmi3jjRKuwryKF08llAqybz2Evp1UDEREfEX2nIijU7Z8aNYb97FnbbdxDUNpX/6UNORRESkHmnLiTQqlsfDNy/dQxvPbvbThMtHTMNht5mOJSIi9UjlRBqVdW/P4Iqjy6iy7Owb9AJxCcmmI4mISD1TOZFG49uvvqDHxicAWHfxaLr0vt5wIhER8QaVE2kUnEcOEvbO3YTaXOSHX0na8KmmI4mIiJeonIjPsyyL2W8tJcJznL00o+0987E7HKZjiYiIl6iciM975YudvPjdL7i56kmODp1PTNN405FERMSLdCqx+LTcnQeZtmQzAH+44So69mxrOJGIiHibtpyIzzq8fy/Rr11LP75kcLdEMvq0MR1JREQagLaciE/yuN3s/r8RdLd2MTl0IU2GPoDNpuuZiIgEAm05EZ+05m+P0L18HeVWMFW/mUdUZKTpSCIi0kBUTsTnfP3Fe6TumAPAhh6Tadc1zXAiERFpSCon4lMOFO0iITsTh81i7S9uIPWW+01HEhGRBqZyIj6jylVJybzhxHGEHfY2dLt3rulIIiJigMqJ+IwZ2VvILUug1ArDcftrhEdGmY4kIiIG6Gwd8QkfF5Tw/GeFwEgSb3yYAZf2NB1JREQMUTkR44qKvueBRRsBuKt3awZc2dVwIhERMUm7dcSoyopyjr1yC7Pd/8svkzw8MriT6UgiImKYtpyIUXkvZ3Jl1RaOOiJ58qZLCQ3SB/qJiAQ6bTkRY3KXvMqV+98CYMfV00lq08FwIhER8QUqJ2JE4bYNdFgzEYBViSPo2f92w4lERMRXqJxIgysvO07VwhFcZPuBTcFdueLu6aYjiYiID1E5kQa3/uXRtPPs5CAxNBv5OkHBIaYjiYiID1E5kQb1j9zvmbL3SrZ6WrC3/3M0S2pjOpKIiPgYna0jDaag2Mmf3tlIudWKj375T/77ap02LCIip9OWE2kQx52HmTV/IeUuD1e3j2P0dR1NRxIRER+lLSfidZbHw5aX7mZm6XJaRv4X/2/YVOx2m+lYIiLio1ROxKsK1v2bypwn6VW+DhcObhnUn6YXhZqOJSIiPkzlRLzim1UfYn36JF0r8gGosuzkdXmItNQBhpOJiIivUzmRemNZFiu/O8iBxRO4ufQfALgsB+tjf0WLIY+Q1q6L4YQiItIYqJzIBbM8HpYX7GHWp4XkFR4h1daJ60OCWB93I8lDHiZVl6UXEZFaUDmROrM8Hr7KWUTkmulsKb+UvKrhhAbZ6Zx6PYdTbiMtqZXpiCIi0gipnEitedxu8rP/Rsy6mfR0bwegiWMfh1If5A/9OtI8OsxwQhERacxUTuS8uauqWP/Rq8TlzuJyTyEApVYYG1rcRoehDzGxeQvDCUVExB+onMg5Vbk9vJtfxPGPHiOjchEATiLY1PIOOg59kN5xCYYTioiIP1E5kTOqrChnybpNTF95lMJDZSTSlxvClvJt69vpPHQ8VzaJMx1RRET8kMqJnKaivIz8f82m9aYXiXQnU+j6H2IjQ7jr6r6EpxbQOyLcdEQREfFjKidSrbzsOPnvzqTdlpdJ4xAADkcV/3ttC269qisRIfpxERER79O/NkLZ8aNseOdZLvn2Va7kCAD7iGV7h3vpefP93BVxkeGEIiISSFROAtjxiirmr9rJ4eVzeMR6CYC9NKOw8yh63vRHrgyLMBtQREQCkspJAHJVlLLo/aU8szGUI2UuQunLjRErqOx6Bz1vHEViiD6YT0REzFE58XOWx4Pz6EEOFW3HWbKL0m0rGFT0JiVWE5yVT9OuWRSZ1/agS4+VBDnspuOKiIionDR2pceOcGDPdpwlO/nhQCErowZS5HSx92g5Q0r+yo0VHxJjqyDmp3eywQFHM+Zcn0T/tMtx2G2m4ouIiJymTuVk9uzZ/OUvf6G4uJgePXrw3HPPkZqaesb1P/30U7Kysvjmm29ITk7mT3/6E7///e/rmjlglJcdZ3/RTnZ7mrH3mIu9R38gYcc/aX8gh+iKfTT17CeaUiJ/cp8x5bHspSkAfYPcRARVAHCYKA45muEMSWBbZAo33/MIbcN0mXkREfE9tS4nb7zxBllZWcyZM4e0tDRmzJjBoEGD2LJlC82bNz9t/R07djB48GBGjRrF66+/Tk5ODvfccw+JiYkMGjSoXoZojFxuD8VHy9l7tJzy7SsJ3rMGu/N7QsqKiaoooal7P01wkgwMK59FEScueDYh6GtuDVp7ymM5rQgOOprhDGnOrzs0J6z5xSTGhNEmuBW7I8YTl9SOJpFRNAFcLheFS5ZgdzgafmgREZHzUOtyMn36dO69915GjhwJwJw5c/jggw945ZVXeOihh05bf86cObRt25ZnnnkGgE6dOrFixQqeffZZ4+Vk8foiDm5ZRW7hYuyWGyw3No8bm+XGZlVhs9y81vQBSu2RVHksrj36DillK7DhwW65sVtVJ/7Gjd3y8FD4ZIqJo8pj8bvKt/iN+0McuHH8+HUHHoJwY8fDjZVPsMU68am9E4IWcV/QezVmLLNC6Rbrol1sHIkxYcQ4bmGt1Yuwpq2IiW9DbFJbomNiif5x/R6n3DvZm98+ERERr6hVOamsrCQ3N5eJEydWL7Pb7aSnp7Nq1aoa77Nq1SrS09NPWTZo0CDGjh17xuepqKigoqKi+rbT6QRO/K/f5XLVJvJZfbplH790bubKsk/PuM6oA8PYRxMArgn6li5BX51x3eJDR9lpnTj91h10nGZBh//zxZ8d1uHAQ0iQnYToUI6HXsY6dzmuyCTsMUmExCZzUbPWJ4rHL+J43v7TA1U7n/a8tfmenFy3Pr+Pvkzz+jfN6980b+NX11lqVU4OHDiA2+0mPj7+lOXx8fEUFBTUeJ/i4uIa13c6nfzwww+Eh59+KfRp06YxderU05YvW7aMiIj6u/ZGs0obB5tcxvtVTbBsdiybHQ8OLJsdbHYsm4OBCSFU2d04bPCDqy9vuS/GsjmwsGP7cR1sdrDb+XVYNB57FXYbRLj784YnFct2Yj3bT9az2RyMCL6I8OBKbLZK4BKKuOQ/wX4ACg+e+OMl2dnZXntsX6R5/Zvm9W+at/EqKyur0/188mydiRMnkpWVVX3b6XSSnJzMwIEDiY6OPss9a2eAy0V2tsV1Ax4kODi4xnWG1Nuz+QaXy0V2djYDBgw448z+RPP6N83r3zRv43dyz0dt1aqcxMXF4XA4KCkpOWV5SUkJCQkJNd4nISGhxvWjo6Nr3GoCEBoaSmjo6RcCCw4O9soL5q3H9WWBNrPm9W+a179p3sarrnPU6qpbISEh9OrVi5ycnOplHo+HnJwcevfuXeN9evfufcr6cGKT1ZnWFxERkcBW60uCZmVl8dJLL/Haa6+xefNm7rvvPkpLS6vP3pk4cSJ33XVX9fqjRo1i+/btPPjggxQUFPDXv/6VN998k3HjxtXfFCIiIuI3an3MybBhw9i/fz+TJ0+muLiYnj17snTp0uqDXvfu3UthYWH1+m3btuWDDz5g3LhxzJw5k5YtW/Lyyy8bP41YREREfFOdDojNzMwkMzOzxq/NmzfvtGX9+vVj/fr1dXkqERERCTD6pDcRERHxKSonIiIi4lNUTkRERMSnqJyIiIiIT1E5EREREZ+iciIiIiI+ReVEREREfIrKiYiIiPgUn/xU4p+zLAuo+6cbnonL5aKsrAyn0+k3H7J0LoE2s+b1b5rXv2nexu/kv9sn/x0/X42inBw7dgyA5ORkw0lERESkto4dO0ZMTMx5r2+zaltnDPB4PBQVFREVFYXNZqu3x3U6nSQnJ7N7926io6Pr7XF9WaDNrHn9m+b1b5q38bMsi2PHjpGUlITdfv5HkjSKLSd2u52WLVt67fGjo6P95gfhfAXazJrXv2le/6Z5G7fabDE5SQfEioiIiE9RORERERGf4pgyZcoU0yFMcjgc9OvXj6CgRrGHq14E2sya179pXv+meQNTozggVkRERAKHduuIiIiIT1E5EREREZ+iciIiIiI+ReVEREREfIrKiYiIiPiUgC4ns2fPpk2bNoSFhZGWlsbatWtNR/KKadOmccUVVxAVFUXz5s0ZOnQoW7ZsMR2rwTz55JPYbDbGjh1rOorX7Nmzh9/97nc0bdqU8PBwunXrxpdffmk6lle43W4mTZpE27ZtCQ8P5+KLL+axxx6r9QeL+bLPPvuMIUOGkJSUhM1m45133jnl65ZlMXnyZBITEwkPDyc9PZ1t27YZSnvhzjavy+ViwoQJdOvWjcjISJKSkrjrrrsoKioymPjCnOv1/alRo0Zhs9mYMWNGAyY0L2DLyRtvvEFWVhaPPvooeXl59OjRg0GDBrFv3z7T0erd8uXLGT16NKtXryY7OxuXy8XAgQMpLS01Hc3r1q1bx4svvkj37t1NR/Gaw4cP07dvX4KDg/nwww/ZtGkTzzzzDE2aNDEdzSueeuopXnjhBZ5//nk2b97MU089xdNPP81zzz1nOlq9KS0tpUePHsyePbvGrz/99NPMmjWLOXPmsGbNGiIjIxk0aBDl5eUNnLR+nG3esrIy8vLymDRpEnl5ebz99tts2bKFm266yUDS+nGu1/ekxYsXs3r1apKSkhoomQ+xAlRqaqo1evTo6ttut9tKSkqypk2bZjBVw9i3b58FWMuXLzcdxauOHTtmtW/f3srOzrauueYaa8yYMaYjecWECROsq666ynSMBjN48GDr7rvvPmXZLbfcYg0fPtxQIu8CrMWLF1ff9ng8VkJCgvWXv/yletmRI0es0NBQa+HChSYi1qufz1uTtWvXWoC1a9euBkrlPWea9/vvv7datGhhff3111br1q2tZ5991kA6cwJyy0llZSW5ubmkp6dXL7Pb7aSnp7Nq1SqDyRrG0aNHAYiNjTWcxLtGjx7N4MGDT3md/dG//vUvUlJS+O1vf0vz5s257LLLeOmll0zH8po+ffqQk5PD1q1bAfjqq69YsWIF119/veFkDWPHjh0UFxef8nMdExNDWlpaQLx/wYn3MJvNxi9+8QvTUbzC4/EwYsQIxo8fT5cuXUzHMSIgr4974MAB3G438fHxpyyPj4+noKDAUKqG4fF4GDt2LH379qVr166m43jNokWLyMvLY926daajeN327dt54YUXyMrK4uGHH2bdunXcf//9hISEkJGRYTpevXvooYdwOp107NgRh8OB2+3mz3/+M8OHDzcdrUEUFxcD1Pj+dfJr/qy8vJwJEyZwxx13+NUn9/7UU089RVBQEPfff7/pKMYEZDkJZKNHj+brr79mxYoVpqN4ze7duxkzZgzZ2dmEhYWZjuN1Ho+HlJQUnnjiCQAuu+wyvv76a+bMaN+I0AAAA5ZJREFUmeOX5eTNN9/k9ddfZ8GCBXTp0oX8/HzGjh1LUlKSX84r/+FyubjtttuwLIsXXnjBdByvyM3NZebMmeTl5WGz2UzHMSYgd+vExcXhcDgoKSk5ZXlJSQkJCQmGUnlfZmYm77//Pp988gktW7Y0HcdrcnNz2bdvH5dffjlBQUEEBQWxfPlyZs2aRVBQEG6323TEepWYmEjnzp1PWdapUycKCwsNJfKu8ePHM2HCBG6//Xa6devGiBEjGDduHNOmTTMdrUGcfI8KtPevk8Vk165dZGdn++1Wk88//5x9+/bRqlWr6vevXbt28cADD9CmTRvT8RpMQJaTkJAQevXqRU5OTvUyj8dDTk4OvXv3NpjMOyzLIjMzk8WLF/Pxxx/Ttm1b05G8qn///mzcuJH8/PzqPykpKQwfPpz8/HwcDofpiPWqb9++p50avnXrVlq3bm0okXeVlZWd9omtDocDj8djKFHDatu2LQkJCae8fzmdTtasWeOX71/wn2Kybds2/v3vf9O0aVPTkbxmxIgRbNiw4ZT3r6SkJMaPH89HH31kOl6DCdjdOllZWWRkZJCSkkJqaiozZsygtLSUkSNHmo5W70aPHs2CBQt49913iYqKqt4vHRMTQ3h4uOF09S8qKuq042kiIyNp2rSpXx5nM27cOPr06cMTTzzBbbfdxtq1a5k7dy5z5841Hc0rhgwZwuOPP05ycjJdunRh/fr1TJ8+nbvvvtt0tHpz/Phxvv322+rbO3bsID8/n9jYWFq1asXYsWN5/PHHad++PW3btmXSpEkkJSUxdOhQg6nr7mzzJiYmcuutt5KXl8f777+P2+2ufg+LjY0lJCTEVOw6O9fr+/PyFRwcTEJCAh06dGjoqOaYPl3IpOeee85q1aqVFRISYqWmplqrV682HckrgBr/vPrqq6ajNRh/PpXYsizrvffes7p27WqFhoZaHTt2tObOnWs6ktc4nU5rzJgxVqtWraywsDCrXbt21iOPPGJVVFSYjlZvPvnkkxp/ZzMyMizLOnE68aRJk6z4+HgrNDTU6t+/v7VlyxazoS/A2ebdsWPHGd/DPvnkE9PR6+Rcr+/PBeKpxDbL8qPLKoqIiEijF5DHnIiIiIjvUjkRERERn6JyIiIiIj5F5URERER8isqJiIiI+BSVExEREfEpKiciIiLiU1RORERExKeonIiIiIhPUTkRERERn6JyIiIiIj7l/wN+VPbjQQbuKQAAAABJRU5ErkJggg==",
"text/plain": "PyPlot.Figure(PyObject <matplotlib.figure.Figure object at 0x0000000029CD5A20>)"
},
"metadata": {},
"output_type": "display_data"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "figure()\nplot(x, y2-y1, ls=\"-\", label=\"(mpmath 3F2)\\$-\\$(Distribution.jl)\")\ntitle(\"difference\")\nlegend()\ngrid(true)",
"execution_count": 18,
"outputs": [
{
"data": {
"image/png": "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hpIQkaZwvr/cwu3liYiIBsBQEiKF4zwB5B8n6tDm6IZBq0GeJU7hqoiIiNSDoSRECr0rcM41epYCT0yLh17LLz8REZGEfxVDZEpGArQaoc/HRERE1IOhJERMei1usvScBswmVyIior4YSkJImsIBeKeEiIioP4aSEJKaXQHeKSEiIuqPoSSEbs0eCwDITYlDYqxe4WqIiIjURad0AdFkWtYY/O+ltyInmUuBiYiI+mMoCbF7izKULoGIiEiVOH1DREREqsBQQkRERKrAUEJERESqwFBCREREqsBQQkRERKrAUEJERESqwFBCREREqsBQQkRERKrAUEJERESqwFBCREREqiBbKMnJyYEgCH3+vfzyy3JdjoiIiMKcrGff/Md//AeeeOIJ38dms1nOyxEREVEYkzWUmM1mpKeny3kJIiIiihCyhpKXX34ZL7zwArKzs7FkyRKsWrUKOt3gl3Q4HHA4HL6PW1paAADNzc1wOp1Brc3pdMJut+Pq1avQ6/VBfW814ngjG8cb2TjeyBdpY25tbQUAiKIY0OtkCyVPP/00br31ViQlJeHrr7/G+vXrceXKFbz22muDvmbz5s3YtGnTDY/n5ubKVSYRERHJpLW1FYmJicN+viAGEGPWrVuH0tJSv8+prKxEfn7+DY9v27YNP/3pT9HW1gaj0Tjga/vfKXG73WhubkZycjIEQRhumcNis9mQlZWFS5cuISEhIajvrUYcb2TjeCMbxxv5Im3MoiiitbUVVqsVGs3w19QEdKdkzZo1KCkp8fucvLy8AR+fOXMmuru7ceHCBUyePHnA5xiNxhsCy5gxYwIpMWAJCQkR8QMwXBxvZON4IxvHG/kiacyB3CGRBBRKLBYLLBZLwBcBgPLycmg0GqSmpo7o9URERBTZZOkp2b9/Pw4ePIh58+bBbDZj//79WLVqFR555BGMHTtWjksSERFRmNNu3LhxY7DftLGxEaWlpXj11VexZcsWHDt2DD/72c/w0ksv+V19E2parRZ33XWXqmqSE8cb2TjeyMbxRr5oHHN/ATW6EhEREcmFZ98QERGRKjCUEBERkSowlBAREZEqMJQQERGRKjCUEBERkSpEZSh5++23kZOTA5PJhFmzZuHQoUNKlySLzZs347bbboPZbEZqaioWL16MqqoqpcsKmZdffhmCIGDlypVKlyKrmpoaPPLII0hO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",
"text/plain": "PyPlot.Figure(PyObject <matplotlib.figure.Figure object at 0x00000000328D1C88>)"
},
"metadata": {},
"output_type": "display_data"
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "## ベンチマークテスト"
},
{
"metadata": {
"trusted": true,
"collapsed": true
},
"cell_type": "code",
"source": "using BenchmarkTools",
"execution_count": 19,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "@benchmark [cdfhg(r,s,t,k) for k in 0:r]",
"execution_count": 20,
"outputs": [
{
"data": {
"text/plain": "BenchmarkTools.Trial: \n memory estimate: 208 bytes\n allocs estimate: 1\n --------------\n minimum time: 9.797 μs (0.00% GC)\n median time: 10.264 μs (0.00% GC)\n mean time: 10.594 μs (0.00% GC)\n maximum time: 34.990 μs (0.00% GC)\n --------------\n samples: 10000\n evals/sample: 1"
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "@benchmark [cdfhg_mpmath(n,r,t,k) for k in 0:r]",
"execution_count": 21,
"outputs": [
{
"data": {
"text/plain": "BenchmarkTools.Trial: \n memory estimate: 23.95 KiB\n allocs estimate: 529\n --------------\n minimum time: 11.038 ms (0.00% GC)\n median time: 11.333 ms (0.00% GC)\n mean time: 11.410 ms (0.00% GC)\n maximum time: 12.430 ms (0.00% GC)\n --------------\n samples: 439\n evals/sample: 1"
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"collapsed": true,
"trusted": true
},
"cell_type": "code",
"source": "",
"execution_count": null,
"outputs": []
}
],
"metadata": {
"_draft": {
"nbviewer_url": "https://gist.github.com/e58a3344fbbb856bf418181dfd0e784d"
},
"gist": {
"id": "e58a3344fbbb856bf418181dfd0e784d",
"data": {
"description": "Julia/Statistics/Rmath-mpmath/hypergeometric distributions and the hypergeometric function 3F2.ipynb",
"public": true
}
},
"kernelspec": {
"name": "julia-0.6",
"display_name": "Julia 0.6.0",
"language": "julia"
},
"language_info": {
"file_extension": ".jl",
"name": "julia",
"mimetype": "application/julia",
"version": "0.6.0"
},
"toc": {
"threshold": 4,
"number_sections": true,
"toc_cell": false,
"toc_window_display": false,
"toc_section_display": "block",
"sideBar": true,
"navigate_menu": true,
"moveMenuLeft": true,
"widenNotebook": false,
"colors": {
"hover_highlight": "#DAA520",
"selected_highlight": "#FFD700",
"running_highlight": "#FF0000",
"wrapper_background": "#FFFFFF",
"sidebar_border": "#EEEEEE",
"navigate_text": "#333333",
"navigate_num": "#000000"
},
"nav_menu": {
"height": "103px",
"width": "252px"
}
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment