{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"
\n",
"array([[0, 0, 0, ..., 0, 0, 0],\n",
" [0, 0, 0, ..., 0, 0, 0],\n",
" [0, 0, 0, ..., 0, 0, 0],\n",
" ...,\n",
" [0, 0, 0, ..., 0, 0, 0],\n",
" [0, 0, 0, ..., 0, 0, 0],\n",
" [0, 0, 0, ..., 0, 0, 0]], dtype=uint32)\n",
"Coordinates:\n",
" * x (x) float64 -11.0 -10.96 -10.92 -10.88 ... 11.86 11.9 11.94 11.97\n",
" * y (y) float64 -10.98 -10.94 -10.9 -10.86 ... 12.03 12.07 12.11 12.15"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import datashader as ds\n",
"import datashader.transfer_functions as tf\n",
"\n",
"%time tf.shade(ds.Canvas().points(df,'x','y'))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This plot reveals the structure we already know was in this data, i.e. 5 separate 2D Gaussian distributions:\n",
"\n",
"
\n",
"\n",
"Let's look at each of the stages in the datashader pipeline in turn, to see how images like this are constructed and how they can be controlled and embedded into Bokeh plots.\n",
"\n",
"# Projection and Aggregation\n",
"\n",
"The first stages of the datashader pipeline are to choose:\n",
"\n",
"* which variables you want to plot on the x and y axes,\n",
"* what size array do you want to aggregate the values into,\n",
"* what range of data values should that array cover, and\n",
"* what \"reduction\" function you want to use for aggregating:"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<xarray.DataArray (y: 250, x: 250)>\n",
"array([[0, 0, 0, ..., 0, 0, 0],\n",
" [0, 0, 0, ..., 0, 0, 0],\n",
" [0, 0, 0, ..., 0, 0, 0],\n",
" ...,\n",
" [0, 1, 0, ..., 0, 0, 0],\n",
" [0, 0, 0, ..., 0, 0, 0],\n",
" [1, 0, 0, ..., 0, 0, 0]], dtype=int32)\n",
"Coordinates:\n",
" * x (x) float64 -3.984 -3.952 -3.92 -3.888 ... 3.888 3.92 3.952 3.984\n",
" * y (y) float64 -3.984 -3.952 -3.92 -3.888 ... 3.888 3.92 3.952 3.984
"
],
"text/plain": [
"\n",
"array([[0, 0, 0, ..., 0, 0, 0],\n",
" [0, 0, 0, ..., 0, 0, 0],\n",
" [0, 0, 0, ..., 0, 0, 0],\n",
" ...,\n",
" [0, 1, 0, ..., 0, 0, 0],\n",
" [0, 0, 0, ..., 0, 0, 0],\n",
" [1, 0, 0, ..., 0, 0, 0]], dtype=int32)\n",
"Coordinates:\n",
" * x (x) float64 -3.984 -3.952 -3.92 -3.888 ... 3.888 3.92 3.952 3.984\n",
" * y (y) float64 -3.984 -3.952 -3.92 -3.888 ... 3.888 3.92 3.952 3.984"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"canvas = ds.Canvas(plot_width=250, plot_height=250, x_range=(-4,4), y_range=(-4,4))\n",
"agg = canvas.points(df, 'x', 'y', agg=ds.count())\n",
"agg"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here we have chosen to plot the 'x' and 'y' columns of the dataframe on the x and y axes (unsurprisingly!), and to aggregate them by `count`. The result is a 2D [xarray](http://xarray.pydata.org/en/stable/computation.html) of the requested size, containing one value for each eventual pixel, counting the number of datapoints that were mapped to that pixel. An xarray is similar to a Numpy or Pandas data structure and supports similar operations, but allows arbitrary multidimensional data.\n",
"\n",
"Available reduction functions that you could use for aggregating include:\n",
"\n",
"**`count()`**: integer count of datapoints for each pixel (the default reduction).\n",
"\n",
"**`any()`**: each pixel 1 if any datapoint maps to it; 0 otherwise.\n",
" \n",
"**`sum(column)`**: total value of the given column for all datapoints in this pixel.\n",
"\n",
"**`count_cat(column)`**: count datapoints _per category_ using the given categorical column (which must be declared using [Pandas' `categorical` datatype](https://pandas-docs.github.io/pandas-docs-travis/categorical.html)). "
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"# EXERCISE: try some of these other reduction operators and see if you can understand the \n",
"# resulting differences in the plots. The arr can be visualized using `tf.shade(arr)` \n",
"# for most reduction operators (other than count_cat, below).\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Transformation\n",
"\n",
"Once data is in the xarray aggregate form, it can be processed in a variety of ways that provide flexibility and power. For instance, instead of plotting all the data, we can easily plot only those bins in the 99th percentile by count:"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/html": [
"
"
],
"text/plain": [
"\n",
"array([[0, 0, 0, ..., 0, 0, 0],\n",
" [0, 0, 0, ..., 0, 0, 0],\n",
" [0, 0, 0, ..., 0, 0, 0],\n",
" ...,\n",
" [0, 0, 0, ..., 0, 0, 0],\n",
" [0, 0, 0, ..., 0, 0, 0],\n",
" [0, 0, 0, ..., 0, 0, 0]], dtype=uint32)\n",
"Coordinates:\n",
" * x (x) float64 -3.984 -3.952 -3.92 -3.888 ... 3.888 3.92 3.952 3.984\n",
" * y (y) float64 -3.984 -3.952 -3.92 -3.888 ... 3.888 3.92 3.952 3.984"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tf.shade(agg.where(agg>=np.percentile(agg,99)))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Or apply any [NumPy ufunc](http://docs.scipy.org/doc/numpy/reference/ufuncs.html) to the bin values, whether or not it makes any sense:"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6CAYAAACI7Fo9AABpfUlEQVR4nO29z29VSZYuuo7TT7I8QQjdWSM8MKIaKhm8l86aeEibljzsPk5sbpKjIv+EWwn5Cmd14uzWG9Q4s0YJDQafd9UjS4UvQ08ynboDsuA2wgMjevaEEBOE9AznDo6/8LfXWSt+7L2P7ezuJVm2945YsSJ2rJ+xIqIzMfnH/uz8lKRgc31HRER0WX6+ub4z9D6GQ5fH/165FH6vTV3XwpNDe2nbsboxfKny1riJ2N+mpI0UtI3voKApbW2PVSlOj09KoHOh+y/9JghyCMsp14SZc3C/fbMrF7rTIiLysLctE5PjRQMtItHBRhsTk+NDZbm817+cNrz+xXA0gdJvUdK3OvibQBvM0qTeYeMfA3KR9AR52Nt23wFH7nPdHv62NNXm+o6JRz/T/zO9F7rT4f8L3enohEzR6v0PvGyVAK/Vvxg+71nsW1lt1wFNe24dr23QZT0fFWg62mDyh73tkQsmSxg2/Z4iSqPnQkwTW9qyjoZPPRPJ05qj0CY88Jar0UYbgOdPX8mpM8ej+NoyE4+C+d2W5s3BPQpo28VrC2oxOiDXtIz5yTGT1ir/sLcdTHA8F/H9fgZdt7SPuZZPCU25baeel8QBmvraOeMwSobNae8/oQpjbSJjM8Myy7mcNmVTkxR/x5gcf4OOh73tym/4zzFTKGbyeXRq88oyVdkN8dpieP70lenGMA3WMy5fZ+LHBACXSeEuFY66jRI4DCYvmUN18dTFadVrldFn56fk7ZtdsyG8tzSk/htlLfAmnDUQ8JnZdwbAX2c/3qItxmAx39tjwtwJD3M9Vi+GK0crl0yelPauS0eqbA6NbTJ5G/5wnT6n2i0dG/2uMzH5xz5HpFPAAS0grOuPi8QZunRyeVqNadYxBOA5OX0s6QuX0pf7wXUgKzWeJeWsMm2a1W27JW3BYZryR9GNqO2jl04W/d7zl+sE1CxGsRg65TN72ptjAzHLA+88wVnK0AcJdYVH7rtYuTZwlrbZFJdIWYyiBPco5kGS0dtuODZ56jLA5vrwGjYzHRheMzu/07isNfecCYkoeZ0gnoVTQ66l4Qk2T6vH2h+1ADoMi+KXBqVCV5cp0ugljaUCRdZzD4cnBHLp9QQI0xczkXVd7b5wW1b7sb+5LAuYXJPdghQzHwRzlGjpEjfuIBRPG7iOmvCqJMykwGMUBv3RSoNIuhzj4UCfFSzT71A+RoP+nZMUNDE5PmSag7GsQJ2mQZfFM8b59s3uUB95PHJAf682Ak2x8Y617b3D/7F+eeOYA6k+t8lQTegEjMLFEGnRR28bYn6595y1N8BzAyz/Pleje7hiffE0q3Yf6gTKRqWV2iqbq91HOaf+PZv4OX0zl9dyJH+Odtc4c7SB1l7Pn74aYjhmaG3ea+0QY1Z+ZgkJfr+5PliPx49u2+tTTICcnD7m5txr3LExTgmZ2P/6mR6HmOWUI4CsWIWHo4kWTL0vGaODgli71jfwynjje+AaPaWlSgJEXtvWYEBbvn2zK6fPn6isTT9/+kpebL8O/8/OD2fdpdr2fP+YpaCf6zYRzLu6PCPfLW8N9S+l/Up846ZQJ27i4Sn5/qV4Dxti8+SgoKLRU5KDoa6vmPrf0yDIbkN5S6PjN36gLScmxwNTo/ypM8ejcQTW2mhbuwez81NycvpYKGdJVE8o4LdesoMwujLTGxqjHO2X8nU9TcHjGdM0HMNgmkrmjkWXB020bUrTHZQmt2IQB8Xk6KOp0WN+U45P6/nB+hmX1ThEBqYtGBTamRNbeG1bf1Rry6jlv+tneg1ctwG/WsRPGvKeMb6csimrIBfa0JhHSTseBTp+CcA8NuSj64G0JBGbnYxQl7c0tda8Xtuz81PyYvu1zM5PBebDM4Bm5Ie97cCE7PuCTo7Cc1RbWwGstSYmxysaYHZ+Sk6fPxGea8GlQVsGoJlBj5MlkGL/M8SsL0vgpXz2nDZTkKM5PTq0pREb67babaNsKc5R4GYeS2r0GFhamTVWifby3rFQ0YErncxi0cJWAJcBAzLjpSbR7PyUXF2ekYVzq8HnZxrQX6/fmj4PeGuqV7+plo9BnfiLRQ/T6z2vs6PwoKCu5dQ2DSL+vMltc0xLFEtqen4bJAa/44/GTAQcetMLA95Z7UGjx2jhtlBHMznThkAdt6stEv7ZXN8JATLNiMC5ub5T0fYaF8caAHrtnnFrq8OiMwes79wUYnTELDZ+7qUKe//H3rUNpWNcohz575RyScVdctrqiPw//ToSVZuhukF+H/PJQdCtrW5gIpbyPJmsfHNPC7OPrstamvDzrz6Wb2/8OEQ73AYrHmD1I8WMlpvjPcv18WPQlpbh71dinYyaroNuI+cbHzZYdDU6eEIjzel4iuFF9pkrxgDapEeZHEbwhJTGzfRYbei2gVu7LrBkSgWFpk+X8eqmcFtwUCZ0zD1rQ4B4bRwG1HGBRgVFKbAWWBOTYXN9ZyjpxSuPIJkVsPImASYnnvPhEpvrO3J1eUZEqstz3plxHKwDc87OT1XKb67vhDYvdKeH3A0WUEwb/o65J3qyWzTGAmrAmQqSWnBQfnKsTykzVSQ9V1OCtBSfLlfCK0eFyUX2GJ0nGGd+adD+pV5TBegJphNTwNAa4N9qc5wnN9pkf52Da4img0kXzq1W6GQmODl9rFKXgZmTme/tm90KDmZ23Rfrb++UWG43xzXRVgj/sIAZpQ8bg5hfXQdPrrYv9WdzxogZcRQMWTfeUgJheY01oiXdnz99NbRbC9rLk5TMiFoTwfTlDwnmfP70VWBCvNMaW7fFgTCe7NwnWAvAh6CXNsOZdtAFOhHEw5hhXNBHfQQUj62m2fs/Vt8Twt43sMxk7++Y1qqj0QAlE9myckpxlEIT4ZELTcZPQx16htbRNUPiN5jCG3gwhH5nSUw2c7ns6fMnZHN9R15svzbTU5m2mOnPdKONq8szQ5tHPDwiVTOeI/5gaDAcn0qzub5TGSfPUtBtWscI6yOurOVAxsftxbSfzh9gPLFvWwq51oTH2KVtt8FAFjOW4vXK89iOwspK4WwlGAfwAirWejfv2uLDGrguT2DvCGlrzVm3xznv+jgppkckffikfv786SsRsZfbuKy3CqCDd1Y2nxeMyzVnrbqjKou/PWvCe5fbdi6OXHxNyh4Enlz8Xnt4nr17jaUda0IrgKInoo5ws5bUBGmJlzreGUkrTJNmKDbn2dTWvjO7IqBH7wsHYwNOnTlesT60JgatoGF2fj8/nsuxhYM4QGqy8Nhb6/O6jRJIadaUq+D5w967WNv6XSkTpcp6saYmMEomt/Cn2huzzNfcyeW9h6nJ5mTMZEGqq0jVBWCf+uT0MVOKiexHv8GUPPmZqWBaa0GF9jigp2MCTDve6yAfmBUCwRsr9Pfq8ox5Qu2F7rS7MoBx1GOpA4f4uy0zMaY9YhrcgqZ0aUVSB1h4WzGp2AEkBwVt+vPJ4549UxwT3fP3eAkqx/fjv3Xd2fmpijBAef7gYA5oQ9Bw6sxxeftmtxIkY0bW7Vn0gAbQgXx4uAGssUHXi+3XFevAiswjQQhtpQJt2s1ghtHxA814us9tgBaYuQojpSxy29ZtphjD0tye0OArvEpoahPa/F5heS2nMdagm+s7cvr8iaH33vJcbG0358NrwQJcMKXxvPdkKVgBfLYbTHyR4Y0q2u9jn1lrbtDJ2XIo55muEAQ8DpaQ5DV4vnxCjw27AbpddgG0a5IDKRNd91H3U5etO/lTDGxZETGrka0tC6z5p8cs5tIexL1sKYiN9VhqcDQCnpzsm8K8vtCdNieVTmyx2tBS+mFvOzDyw962nD5/olJ3dn5qKAjWPXtXbm115dZWN2jeq8szsrm+I70nSxUaoOVgBcDMh/bnwJ3WnCIS6OElu5SfDCbEZhtLKLI5ya6DZxl57XpMENNUMRPdc51iuCyNmcP8MQESe54qm2JG6ztbVqvGm5Nw1LbG92ixIOu4Z94Dzs+tjw4NaO3iQh294wtgpYhqbat9Zc5Jx99g2GePXprmuHXiDL8HDit2wNF7Xe/WVrdyYASnvcbOegfEXBvPD9ZlLRxWXWsloxRi9IwaUm3XoU0zd45Q8Ma7Lj0xodIEhhg9NZmYkVNglbcmvbctUwsFrn/6/InAiBBGL7ZfDzExLAG8szarrD1elO+Wt4Y2rnhbWUHzs0cvK0uEsHBu/7Qgn360Furos+WBx9Ia1jt+H5tYqUlSlzly6+n2c+ZSCbOUzruDhMMUehZoetyEGQu0L+mZY1q7T0yOh5xzmPdsInHSCROpTUyY8afPn5Bnj14OdQgm8Yvt1yG//kJ3OjAgzGXu48TkeNDC2uXQrgKnv8JaAK5nj16Gv8HkMF219eL58Za56gU8dd81Du0S6bHMTebRz1P+stVPqx6PgfdOQ8zHzqmfij94z1LgCewm0BSPHoPOxOQf+ykpbpnP+rIBryHPCvDq6EMb8Zzpedjblt6TJfn2xo9Dpr92C9YeL8qVmZ6cnD4WhAMDR1ctrasTWtYeL8rCudVk2Vztxi5BzDzXNDJYFlEpNNXmpbhLNWAOjoPUqjnWilWuxOrJeZ8LnYnJP/a54ZIGrU5oExrMZW1WEame0WZlrIE2K4OMGZ99ZxZE2gVgP1tn5mmwTHkWIvpkGe5/6YfWv/VYWBPa+yY5d7/x2MXOvrPqtw25bkoJjpJnbcJRM+EBY9ZApP63PgSe8emqL7ZfDyV/sOmsM8Ss5BSe9FzOEgYcHY/1AWWRhMNJNNpEvbo8E9bhAXqDDzLuvCuj4UbofH1eluP1/831HTMu4P0vIhVzObWUpl0X0JOaoE0mMI+rdhus/mEcYias/v4acp+1CUeNyTFGY/wgFthJSXqR6oYJ62pikYEvyxtCdJBudn4/RRTaFkdCiYi5O+z0+RNheez2TwsVpp+dn6pob+AALWgD7bEAudCdluuLG8HPh8CCYOCMOrxHgg4AbVrZd8yQvCwJOrQg1YKI/WFLK2umSgl165n29QHesqAH3HZs9UHTG2P4UVkXJc/bwj8qwBhVou4x34LLaPAOi/D8VuuwRsuk1cTqzS/6JBq9aUWb71Z73IamT6Qatbf6jQi/F5BhU94aC25bm+6aITT91u/Dhibm/2G5Dk1gVDTlrjDkQnIdnf3XlCDIDbjp+t4yFmtNfm8tV+E5zOhTZ46HwB4YcuXexRAR1z66yEDD954syacfrYXgHZbemGYWLCJirsnzeLDfDJp47LRrwuPEYAknr0zKp7eERgxSAqXtCd9kopfQMqqyBwEl9JhHSfH/3gTW+771ezbF2fxnF+H501eVSc6ZaigDHx957BrXyeljwazHxHj26KVsru/Is0cvA0M/e/QyHP4osi80eLlsYnJcumfviogEDX5lpjfkT4MG7HhDe7wUtrm+Exh7dn4qLNUxk/MSIH8wFoApP5XLcV3r2+hvVjJp9bh779sCvZSWMw6alpzyKbpLdrZp92pUUOf7jcU+mhWcEhn2JzFh8Uyf8sLMAWYFIwJwcgvwaGbgXHk+fw3bRJlmjqrrfegQJCenj8mtrW7wqycmx+XWVlfWHi+GfqEuGJXjAyenjwWBxMdJIa1VM5w2/fUzFp76W2ghoCeyPlZbB/ZQntOQLcHCOECTBR6za7DmTkkdr99endK2csrnrt2L2LGVuhCLldTB37nQ/Zd+zNzjv2P+IxPjmfecGisiQ9ltAEsrWUtGMIM55ZWz4Nhs1kkrvPQnMrxJRbsJfAMMfHhriU3Tjf7E4gSoHzPf+T2PL1wM72AOdhuOAhxUTKHEHWkLn1W2DV+7jbEKu9f0pGJgLSYyfNIqT1jtd/N7zUQ6hZUvLOTlopPTx0JkHe+Rgjo7PyU3V+fC9lGY6yjHgMDaxOS43FydC6Y3H0jBzAutDusETA7cbLGwAGPLgbU0a3rEBViAAHi/O8bP258Oa0QDm9p1JlrbmlErgRKm8aB0G6mGOq5LSVmeI00g14KKgXn3Gk8qy19niWxpX0gxy5ThHV9szsMEf/tmN5jUYPgX26+DtmafGmfM8UYSTHq0f2urG7bTIj12dn5Krsz0hlJa0ffbPy2E/oDhPv/q41COl9DgBjCT4+NCqLAVAWCrQwP6bmXBaUsAvz3f3BJ2bfiQFo5YrKeuRorV85hoFFtGY2PmvfNcojoQ60+OkB3LSV4AxCQoN8aTG+/wA2HBxyXpjSYIgAEXB9Qw+Scmx0Nyjv5heq4vbsiL7dfh44NxPfcAmhYn0YJxv73xY7AsPv/q48CMerKhL8jtR8QfJjbTobU4xy+88dVmnI6jaBfBSkpiF0bEP/7KA4sGq3wps7UVyIqlZvOzXIvA6i9DTj9H5ark4J2dn5Kx1HIYnucEPPRSGGsPnTDCRABg/nK03jJBWXtC6+Pn+dNXFdcCGlwfRgEBc/r8CXn7ZjcE4U6dOS6ffrQmL7ZfD92BBsuie/ZuRdtz4g/oujLTCxtfTp05Hv7mcienjwXBwsFItnR4jHRmnQVaUOhTaq1JgXbhz3OfrbYsHLEJp8cdfbFoT/XPw2+BJ3zYlSxty8M7ijoiadpyhUzWfnQruMYTXWTYjNL56Ew0J5FYQSvOl2dtL7IfDMN7AGt+EQl3uVl0MH28Fv5i+7Xc/mkhLLFxewi+6SiszrrjcZmYHK9sWeU+zM7v38zqjZPGzfhjQa0ck9kKDuZCm9pp1EG5pm3mls21ckrbbwuGdq/pD+8R5U2wkkinjprrW095InNSjT4IgzPmdJbe7PxUCNzpfem8r11EhqLpKAdmtTLxQA9v3mE8AET5WbikDuXIBRaOdZnXw3tQOFLl6s63JuVHCXW+cy5Y/Rza1CIyHPDRPiCeg2D89g4t5GfAB1MYE/TF9uuKX8u4NbBAgN8PJgfzIKD2sLcdGOzUmeNycvpYhdnAoN//0A0HOqJ/YNru2bthHz3ezc5Xk2BYuJw6czxcGIHIPoQJ6vWeLFVcD/QFQcScoBmPD++Hn523r7yyfHEvgKa/lcYT86c9iyLWn5j2qwva3TwqTC7i3//XBlh4x/RgAKyNGfpvDqRhQnOwCeXZ92NGmp0fLI3h7++WtypBKjDW86evQgRbBwdvbXXD/4gLzM5PhTRWAJcDcBT8kw9XzUl56sxxWXu8KM8evaxcFgkBg914WClg4HEAwIr59saPYTWAN+0ANMNbTMqCB2MPBmT/k8vzsiV+W4zJv3UZPUm1YPcmcCzQ6D3X9Gh8uWC5btbc9wSfBSVlRwUe3RqKb2qxfDv2Xb2Jwx+Nl6AQjLKWmxif9m+1vwyfnPPcLXNe73/XuewAfT4cGBQ+POe3W2a3t4FFn21nbdIB6CSZmO/OY2bh4vfeZh/+XkyDLlvXXPb+9kB/Y6u8pi+n7RitXjsl0DRJptQFzgEzBbYUNHPqHHeR6jIPR3nZpO09WQrai5kbbaw9Xgxpp8CBthbOrYayYEr4rr0nSyEhR69rYw2ek1xAI6yLq8szwTRGoA7r7qAd+NBPRPHxQTiVFv+DRrwDbXBhtOaE9cAptzzuTAvnIaB/eM/79jV9ej6wlcb4U5CK9eQyOcoyHm6Dy2iItWfNe8sCi4HHOykmTy3r5dAQc4ksutyjpDToD6W1gJb4Whvx//DLmWBkrekDHoEPATWR/d1iqCMicnN1Tr5b3nI1ODT85199HAJr+gQX7pNOLYXQAN066GdtkQWt+sJI3lXHOFjDe9rd0448zjkaOKXtYhojZgFYOEo0a66mamJZtIGvLbDajVkpdWEsJhkYdDktZXlNWNdDYIpz0kWqSTMi+ymxWHsGIKCGic+RcTBRp9MJ2Wtol892x4GR1y49CGUQsEMb3EesjSNp5u2b3ZBeC7zY2AKGheBBH4BHp8FaY4TsQBEJ+Bksn1vHO1COg3tagOn2LYEBnBZYbXrgCY/UPMuxMnM0dKx86fsU/lLL2HITOJaSK2itd6ZGr3ObqqVxAFqTX12eCemmIvZGFv03t6HXx/Uau5UrzniY5ts/Lci3N36s+O+sYU9OH5OVexele/aurD1eDFl1b9/syv2fF+VPf9gKzAzBAyGHeppepgeSWi/38VjxsdOxMdfa0vsdswTaBm6zbn59U9pifnap5VLSZh2rqQRXUzD3o3Oj+m9oPg6SsF/NOe6b6zsh0IWsMGZyvb+cGd4KOMGv5XcsAHirqKb/5PSxkLiib5jhOt/e+FHu/7yfJQfm+uw3veA7w6RHH7DXnZmctTivmyMuwVYLjxULSp1NZn0Xy9LCc2ut1rPgrDYsC80rz7i1VZELudal915bmrqs58fn0mhpy5iVUhKTKC1XCkUXOPB7npAxAjEA0Kaox/6uBVbWm45is5Wgo9fafxaRcPQz6EddK+Kvte6tra5cX9wYcil0Hd4br/31C91p+fyrjytRe1gE3v3wlha3gDMU9eQrmfi6XFsTrwRX21rtsPzvtsGzEHL6V9HourIlwTCBdLQTE83TAt/e+LHCiBzU4pxuJhhWABh3c30nnMrK97xhOQ34mC69Pg2fm7fKYrMK9xXHSAEWzq2GSDuPC0e1nz16GWIVHCjkrbCffrQWLBvURfRd+8pW3jkDfzcWOJ6VxHV4nLX2jfmPOdYfgOdCibaOadm6vnATHKVttIU/N2aWI8Qq21R1BQ8Bfwj8BuPwshMv6UBzIVsMAGbl8mDsz7/6uGJ+vn2zG5bReGkK2hfRet4cgv3auHgBGpkFADLzOKlnYnI8bExhFwF0zM5Pyf2fF8PWWfQDuODHQ7DAZMcR0xgzFm5wDQDoC487J9Do76CXObWg9iaktUSl67Lw0Di8CWkdQxYzdRm00Ev53jE83rxuypD8HXLxp4SC55ZZ/6do499Dprs2R7VZECNEg04a0dpfH/TA5TjoBWAz2lpKAw7rthe858Mury7PyPXFjcqyHS+pMQ3a/7bufhORSpBPuxLaRGeauU6u9rPqWskwTQNQMQ2fYz7yd4oFrZqY2Cl35OqNGRn7oCNffPKg8a02pXCYbgtg6OCJ2PIMBzvYz8U7TTCnZeIZbyMVkaHAFdrTWn/t8WLYf4796khrvbXVDZoTS2kig/x1EQnJMpvrOxVG+255KzD5he60fH1nTtYeL8qtrW7ImoOfzlpdZLBuj+VBxBuw3xxJPexizM5PVZJ40Fc9PvqUndn5wTIhjzvqakCQlN9b2jPHJE8J9JLJCLpSmjwHp2dBxIJwIiLXlzbkd588kJV7F90y3rNcze+Va8ttKWlTQ+UCB73llKWsJWk4ldQzM/Qyk94fbqW9gkGwWeRhb1sWzq0GpgBuRPSvzPRCJBuC4+2bXfny8obMzk/Js0cvQ7s44BH+Ppv6nbEBriszPZmYHA9uwrNHL8MaPdOL/ewiA2EyTT65iEjvyVIQOqD71la3YsKzW4LxAWDs0E/Gg7/5eYwJuByDjmlwG7FJpOdDqRWin2l3L9ZmzHLw8D579FI6IvL+Xb9S3hMOMUGXw9AetFUmpyzTmdymGqsca8wyQbVZyR+VM9CAk+twAO3WVlcWzq1WBI2Vpca0Mh6skYtUGUvfG8fvdeQez/T/AL2dVdPKfUUWnlWGx9zbiuoJzNg3zDW5rXd1L3WMzYnSunXbS7kxXjup9nPoG5VZnoPXvaklBd6mDV1fJ9BwO8zofOspB8bAMNrH0ymzIvt7wb++MyeffDjQxnrzCehgnNwWIsXIvtN0iewfD4XIPJbsrDiETuoBU+OiCMvPZhpTfra38cMT2FbcxLMSAG1MzsNkhIOEo9qHyvKaJ8m0WQX/G3/H6nECzedffVy5jBCm9oXudDBPYdbiHfADz29/P4hMT0wOTnJlPCIDE+2z3/QqUXAAXAL41db2UBz+CLOaN8uI7N/vDuHBWX8AXqMXkZCAI7J/aivOoHvY2w7uhGW26uVK/a0gnLRJazE4ynMZywTXPxZ4vn0JMI6YsGniI3t1Y22Utp+KZ5RC3f7HYEijAzDxciKllvllaXxLK4vYt6OiLMx0kX3tDu0K7chamze/sKl/ZaYn3//Qlc6YhIg92gFupOsC9Ek2nADDW1d5zDAeACsV1jMXU1ZSTNuyAIhZUTlgCf7S+rmBtSaM0bRPbdHRRspvjluR+84CN9e9xL/R5qNI1Z/k8jF/lZetNOjjmgDMVNhbznep8S421EV7jLP3ZElEpHJkFO8y49UIK9WVhRLns4v4t31YH1mPkTXG1v8oi756e9G5XQtSvn8OeBM/5TbEnudCji8tkta8h2mC58ZQSsA8193634vCwjwHQSDq1JnjcmurG05lQV3eC82JMmCYU2eOy/c/dAOe2fmpoFnXHi9WmGt2fqoS+V44txqYU2feIVGHd9lBEJw+f0K+vfFj2GvOO89EJFzH1HuyFAQF9sYj6212fipE65Elh0SdmPkINwLjgPbxjk10Nu31//ydtGDhd1ooaNq4DHBZ5WJgbcjhfun2rP+ZzhLTPcUU6J/V/5QJXmpCx8rH+uW5YLF5lKKtsrwm4i+3aMQA7eNyme+Wtypnr2sAE3O23MPedtglBs2FdFGY8NrUf7H9unJcM+iCn85a/dmjl3JzdS685wMgUAYprDjbHYKje/ZueP/d8lY4lOLq8kzFZEfcYXZ+KsQeuP/IrEPfdeSf4xI6LoJ+42YZBp2PYP2tn3kC3CqfU85ioLqa2dO+nHuQS4+ub/WH20kdDpFqMyV0YvGPWJ26uMyEGT3IWspyA7wDyyJK51FjMuI51wdDcioozl0Hw/JJKLPz++moYDzOHwcgYQaMsXBuVVbuXaxssIHAggk/MTke1t/Rhtb0b9/sypWZXliq02vi0Mp6V93E5HhlAwzfBquPseacBk4p1uPO9KXAmuBtBHw0PbG2UuZ1bPJaMR1uk0EHSkX8yyatMin8oFeXOyyz34LN9Z39qLulAbRZw5LUknhaAkMLabwi9rW4IoOPCKbdXN8/aoqZAZF7HGjB7U5MjldOgD05fSzczSYyEBwXutNhzzlntU1MjoetrGhP++f4G/7m7PyUrNy7GCL63Dcwn95AIyLB0nnY264E/GImq7d91TM/GVIaNmdieuZsrM1YW54r6LWpNWXKvN5cr2ZY6jIlws2r05aAHCXMzk/t36ZqBdpQCP97ZTzkAI5OsyTmHHAcBcUBOkTB+TIGkWrSiohUct9v/7Qg1y49CDnxWAPnI5pEBkteiMBzlJqj8CJS0frWYZNsuXBevHVABkfsraBTzhhb7xknC6aYhkdbOOxCP9exmdyAmXdoRqqPHtNqodBmkKputLxtaDPw57k7RWfGAWInneilHW6Yl6c4qKYTX0T2Nbe3Z52ZjQUBhAAntXByC6LioJdPl9EbTqx94oim8+YWPm2GcTLkBFW4nF7J0G0BUC73fAAGb1J4ZXPMbq9eCcTa8oROnbYsoXZQ0CZz57Q1xoOUMkvge+hILPuhKIf37K9yjjjwcPIJJipPWB3sg0/Lkx3a/PT5E3J9cSO0j6uRsW30ykxvyPQHQ3JADu2wFcKrAqDvQne6ctoM2mVTnGMKGCuMI35g9t/a6lZcGAb47/wcY8qBOrQHsE56YbdLa8yYOW1pWGvOxARZyTtPOHpuSMwlsNphF6COMGoCB9ne7PzUfjBOd5Y/ZEz6WM/BSFaAyAqOQFDogxbgOzN9m+s7IT1VS3KU31zfCdqbN8igLLQ8LozQbQMvdqHp9V/gBIOxf+751fw/7ykX2Wdi0MPjzXRpoYfdczyO/JvbZ2Gjd7hZfq/FTDkBMD2P9PeOBbRyafBiSKk2rPd1/HXgyIkx5EBOnVzB4OEairpbiNEp/YMy0MyY+NB6bHbqgeG/ESDDmjZrUGgqEZHPv/q44gJok5qvW0JAb2JyPJz9hnPRoeWxnn76/AlZe7xYESZ4/vbNbojEoy3U59NqdAYda1a2bERkyFcHYFmPxx6CxPqAGHe0iWdauKS0rDXxLQbWkDNBvWShVHuW9aChVJuzcNX1YvNT44iZ+nXM8Zjwi4H13rOCOhOTf+yLVHd8WX6L5WtbPjnKesRb2tHyLbVvqnPWOeAlIpVbS1kw4Hw2BOcWzq1K78mS9Pv9SiAO/UcAEDhw46lI9cjl73/oyp/+MAhiaT8f/dT9suIZwKvpYBx6XDFuOjNOfyfPn9VlrL+t76a/cyl488J6bqUDt+nTer59Xd85FU9I4R21zz6m/W40qv/2tCwmoiccWALyoRPar7faBn4c53Rrq1tJ6MHxUbgIUePD8ctYysIVxd2zdytRe/Rpc30nBPJgXiPbDdl3oPuz3/QCo+LIqJurc5UNLZoe1szaF+cxhaUBbY7yPMbeshGbthaT47n+m2MHWuuxi2K1yeAt/aXcPz3ntCUQsyjqmMuWNWC1k4s7pd09Uz8HmsYDRCJHSfGHwTMsxcQkLJ+ZrstojRRbhgLoCL8+Roq1n54cvImGNbW+9UVkPx2W6YUW4za1ZtbAm3FEpHKvm5U3HjNRtemvNb4FFj7LmrBAL7VpvLrtppo2h6a6OOvQIOILxzrtt2GJtGVhDN2magVqYFpyOicGR+db8+mmlhkOjQgNxvnkMNNF9s9p1zndV2Z68vzpq8BIsBh4Z5sGpM9CI8HcR9Rc3xwDgBZbOLcaJjq0LfdJw+z8IO+dmRxWk9ZC1kfk3HeMF69IWNqSswl5/EsYyWJyxmVZEdp6KwHL8mBoqqnr0qP/93x3z/LlvzWOJjSl0nJjFlDlSqaY2aInqTYheU+0tbUVzIhgkd7sgqOgYI5Dw4KxwNww2XlSclucSQdGhfAAk4BxYAX0nizJhe50OFYKDLa5Pojes1mtgf1W9ut5/LT25zx+tMNl+bgtzpvXjMFuDFscoAl4Y0xuReoZPOsh5X/qCW1NcI9pAHW0qVffayslbPS70r9L2kmBJWitNiwYOtddr7FaEsnqFC9f8e+ryzMVPOzXiuzfEMo+P37DrMfy0/XFjYAXeLAbDYIGNOGgRtSFxYAyOMv9+dNXYdeaNVidTicwjN6AwstqPG7fLW9Vbo7hTRQcD+GdbwA+007HPgBMD/Bba+Nc3gOmxfO3gSM2sVOMH5uEunxdnzTWb4u2knZSguogoImQCJlxlv+pEcO31VlxDF50Fma1vi1Um8pclrUz6vGeb9bO3J7VF94fjziCztQD6KUvpNJCC+tNFZpREXOwjpnS8QlcPmFlAOqz8SyIfS89qS0f+zD8xzr4U2214Q/XgTbTaEv6mwugb2hTiyWdAbhhFGAxuWXmQqNhUt/a6lbW3WGisqnJ69J8KQQi5yIS8ADgDgCg7VloPH/6qhId5yAXJ/nANz45fazCrBe61RtWdSSdD6qAe+EdFQXhpa+QhiZnH98yPVPmsbYGUgIj9c6LL+RotpSPmnqemvTa+myyzTQHQJe3WlUHV8r8rwOgL2h0bzOCyPAau36vgSe1pW01TgA0nN5kwprfy/fmdX1raQYaDZ2H768vfdR+EO8xx/+s0RGRB+hceN0P1qyx4Ik1Vvo5u0OeFcXMnorY67Y9QT4KTe4xtKV0ctpum8ZRWy+57cUsuBiEYJw3AdintPwuaEEwhM4A0x8JATUEvViLQbPxvnOR/XVlXKjA2p/vRBeRcEWSppUPuAAt0L5gWATtuB86GKbdFj5vHltOkd3HY+Ylm7AmAl6e0J7WZCa3Vko0k4vYW4N1zAN/W5PImwcp0NrcWqf3cGotZ5WztHdMcB425NCRGo/Sb2Bem8wTzTPb2HRBYAgMjOdMDBiKE1WgqaGJ8ZtNciS8wBTW2Wa4rpiX1ZjZLV/67Zvd4BogMo/TcPDesm6uLs+EPe4w3znlFHWwxMjCDLe/oE8coOMftA/h4Y0ljyH3jf8GAzGDeEEyFmDaWsox62PAbVuWY87kjbUTM59TVpNXxxOsbUDMKo65OCWCSgv0Md0w/2+ZCdZH4egz6unB4skKfHwcEjTtxOR4uHKJs+eYCSxNB5MfxzXzMpmIVDbHWMwB/57NbfQJm3Q4PoDVAB4zMAULPL6llYVUbE2arQjuo1WXx1lbAxpyJq9+BjqsXXAeXk2Lxher5z2PxQMsN63JOFhWVi6dntWS23YMvLJ6dcSqFw6eEMn34VLBGMuHYN9U4+JsMp1JlvLxAfqYZza9GX+n05Hu2buur7m5Xo34W64Il+G+4rm+MILp53Z0TMEaLxH/znPvO2jNqXHHIsXaJ05NRKt8iR+Z8rvb8o29bz2KWIP1bUbVXi5NIQXWmjTWR/MmAi9V4dhlgLVBgYNs3iYO/cwTFl7ndFng0ptPRKonyuB/b1MJt6HHjPvG7YpU/XSPEfXfmlZdJ8Uo3tjo8qllojYZDtAEnxaU+nkpnib9KxWOubialNHg3o/umfO6jPYjL3SnhzaMiAz7emyqs2nLJjCeced01pd2E3jig1k//+pj2VzfGbpPTfvYls/NSS96v7wGNr0tU5fdEC1YuI/8Nx+IoccCbXIdNh0tGlOBNgu0QOfnOX6jZm5tGlvlUng5tmAJjxzaNJOXLMl5Aot5QpfznvHczWHgOoJkTOela0L0wHHapq5nDRSYmX1OPTD4nxmJT1uZnZ8KwS9NF+pweU7rvNCdDttX+eRUFjKc464ZhZlWMxqy+nBNFHBby5EQIOhvTFAwjTGT1qrP7VnfVPv33Ff93PrGzFhWrMSC2MSMMUwTyPGz9XzUVmdMWMToS/XDcrU8a1GkLMfdg4rp3mRw9fp1iW9imciWDy6yH1Rj0xrtsYTmbDrLxNW77ADf/9CVz35TzWazzEPQ550Pp7WzSPwGlZh74Gk/z2fntvg9f6OYC9TEfGzTxPfcyJK6Bw1HlUb3hJkYaEkHzScSD6pYZp/nY/JmGdTDmWkXutPhqGcGxsHam81VjsRjwnMOwCcfrsrsfPUedUsLgmH0Uc1YRsRRU/igcCUAPBZ8DJUlHFJLXNqMR1t6bLl9T+DocczRaLHvaEFMQ1l4LEswl7ZcyNHidUBbR4CDYnK06969hkIx7eIFcLQ5FpP+XAZ/W8ErPQHApLwUxkznDSzn6/PJMHxPHLeFfex6P7j262KZawxsSeSOTRPgdjirz3pf0lYufSnrIacd3QbPj8PS3BpivBIbq1Fodgvn0O41XdhiWoAVUEI5zZDaf+ZyHCfYXN/fzqpNN4vJ8Rz58J5GwDtYBQ9725ULFax95Q972yHP3WJyjAHcCMt31eOK4BpfvcSZdQxW8G9zfadylbL+dlrA8VZWax8Cv8/xC3UfPQ3Iz62dcR69+rnFBLDqYpDSyk3fa/D8bvx9UEzOtDBUEmZygiGYmFZkXGT4KCGRamDI8rtju+E4FRbMgEnLAoTXznX7uo988AWuXeJAG7fJbWitrSez/tgYD+uEWBxvBcEGHMzw1mSenZ8achdi4FlcXhs8nrqP3J7F8IwjNrl1fzQ+/G5imlvfogSHJcRizG+9y2mjDtRxLaI+uidxWKJqzY/nlqbQBGI3m8j+vnRdRqe8ghk213eGTDdd1rsAUmeo8Z5y9qW5n0wbCxTtyuhnSOFFai+/17n+AI/BeRxZ0LK1ZFkSFnN5bVj+vmU6W9Ze7G+rn6kJm+uTx8p4zJSDyxNWXln+3Zaf7wkQD7/3fCxWKIbQKsO/reUd6yPDlOUjqBCAszY/oE381sw1Oz8ln3/1cdhgIiJDTMFr4yL7gTsd3IMA0HRj04qeBPD7LXMUqb2WYGILiceTlwkZ4EpohipNL607GS3hVwKWxk9N3lyNmctoMSFS0l4u/roQs6xLnkeDcRakMqhy64PhrKwm6zeD1qJ6/dMSKNpnssATRiLVTD69JVZkP8im8Vlte5aSl4mXojsGpX6gV56fj4KeFJ2j8mdz04HboMkqXweHSP7YA382o+sPHftY1rozwGNcntQ6XzynU1b6rPVOm9+8X5z/B12or5ertDDiFGAvcMf90dF3b8J5AkQLDP47lj/P/UqNm24v9/8cHPqZ1ac6tOT26ahAXcGXWwYQTHdmPivian0Qy6SE2c44LT9Nm27s0+uJzTRaJtbV5Rm50J0OkWw2nzHpeRLB9EUd/O8xud47b5nmuOkFdXVeO/dzc32nss4v4h/8l8PkjEfE3yHmuRsav9WeBZZ565nMFg4r1lHql1t4rdWFFLTlU5dCLpM3dSXca5NzoWRTgUesddoLfvMOLrSlzXWtjcFcp8+fCAE/S3hwZl3KjUj1zRuXEtfBA89sjmk3yzWyypW0HaOF3+tnJZDjXllZf6My7XXbTU3vXLxtt1GUAqtNwhRTa5M0VS/2XCTPv9VJISwcvOw9ixlFqsdG8RFRmhatNbmsxQSaBi3YStJkY9Lfom0UDJEylT3mjdES22bbNozS165De13lEoPiYFwusBblv1PZdDEtyv4ttH+MgRk3M5AVI3jY266c2srtpbaUastDt5nTtxLQAkYLtZwxaAK5Al4kf1fcKGk6KPyllpJIfcunFIpy3UGc58/AZ95c36ls9OC/oV2xnMR+N/tpeG75xbiLLUeTAIf2v/HDfiJfW8xCxbJIQA9y4nl7Kz8T2b91hvuIv1N57DouoceJwcpA4zo5y2+5kPLFc7LX6rTD//N8rBNHyBmDUoZk3FY7jK80HlFCr4Yko+vBRFBKZ8DhPf+I2Mfc6C2bIsMDqQdCM+Xm+v5aPdNmpaJa2XoATo7hemgLkXH0m+9+n53fP9CShQAfTw0cVqaZtRqgf1sTgsdAH7VlCUYLchnDEkQxmnJwpmiIgZ4TqfasMlqh5LYXAy1sYn/njocWEHX7K+IcDqkb50agNfSylDVZNQ79jMvGpKw2Az0T3MqR5/ZS5ib/r5Nf0G9sk7USepgOFjAQEloIssbzfHaLVq7DySsM3qSxtAv/rb9jTgTbw8N9qQt6XCxBFGu7BH8dsKxRq+0cZvRwpurk4Av3o48quJBa09Vte/4n14nRmlPGAo1Dn9/OOJlG78x1i4ZY29bOMpF4oIvpyPGLdfk2oK15kmpDZFjp1G0rxxxvk36GpglndSHcj56jhfE8BlrLWXuwtZlvMYengZnZUI83nsCszvF3PKacnbdTTK0JwhtReHKw62K5DnosPM1pra9rPKANFo0HlpuUo/W4nOVaWHhymCS37ZiL5ykQDzfPvRhdul9eOnbqmQZ2EduAXFzRdXStubz0zFwzrWSpTXfE0nTevvCUhk/1F2vwfFVSST91mVyByasTMbp1+5bVZDHAKDSUpkFD6VjF3qf81LaslaY4Dnrsve/Oc8g8192Szp6GK5n8WjtBgAD47nH8aK3vSTCtzWKnmICZPa1+oTsdtpFamsSqr/1UXT6llUT2N/horeP5gdx3q4+aHk2vRT//5n3vmlYNXmZfjDG9MpouvLfODNA4UnM5Bzwl0ATa0uJ6zor4febnrkYvkUp1/CZPY2nIxRvLctNltGlvrXfH6GQ62AqIWTx1pHpuHaaR24vRnfIVvfoltKXmTIy+um3WgVRfS9pvskmmtFxJHTMzrjRgEGsktbvMA8s01xrbCvJ5uKykGnZJ+F2KST1myjVBrbLW/4CYoMgVyE2YpE3zO/ddaT9S36Sk/dg8bVvYtMHUOThq7V7LeV5SrpRBRKofwfJtuQwY2hIU3IauozU/Q6wvOkuOQVsVOQxUemKrZ5nkZsY1jQzHBGNbfnSsvdS7EoXTBtRhTJQTaU7n5vqOjHk+WopQgDeIFj6ONGsfTPuOXtvaZxeRyrHN2h/GMx3tTPm1uj2NG3RqP3Z23j69RbeL7Lkc8PIGShhG02UlwuD/WAZdyte0aOLxs4R2DG8s1qLxe3Wt+VZCgwV6nsbqe+ORAj2Pc+jzdp6O8UewiIh9OA2eQMBzK7nDwm1tX2Rc+sgkTYPVPrajWuUtoeQdFqnLsZDxhKSG2fnqDSweWEJO47EgZ4LELnmMPYtZOVzeY1CvP15fvG20OZOesy+9+a1p8OaPpkGPcawPpQLEgxwB4SmZsZRU8jR2DuhBtrS1ZZ7UydnGR7IYlK9JtupBuPCNLdaWVR0T8DSVyP56aYwZAVY6cV3z1hMs1jO2TErxeYwMSyH2Da06XltW2/idKq/7XWod5AiHFKTcCv7NuEv4LNW+iOxrdN2QJqTEX/A6x9rakogeHRbAZNYfBgzKHzUmGPCD5TlLg8zOTw21F9N0Xv89l8Xa+prDhLpPFl1eOaaB8+W1uesJaXYn8Fz79rlmZ+wMuqYazmrHw5t6Zll/qW+UM8fb8MG9/4F7THfEI0R/NK9zsUkuMmwy5vpKGidyzj2IbUnlv72+6XrW9U0WeCe7Wm17ZbS1kTv5meEs0MID/zOjsdDJ0WRcTrtmdQRQrkYr8ZEtsI4Gt8bami/W8zqQIyByhL0eM4uesVyC9cfI8ec8htVMzWmcKUEByDkCSdMU87n085iJmONWeNohNZms+ENKu+vJl3J9rP/5O2iaY/9ryGFuq/+x8bLAEtAp8Ky8JpBi8pjmz+G3mHVXItjGRMp9F2vHEEPOmXP8nDVB6uNZmj8WnLNowMDBn9R7xVOazPNRU5M8Z2Ja2YOom+s2YYy978p7A5i2mPD0xiZn8upJauHQzJ7T3xLGEfGZW1tRJW3GmC2nPyUCOTYvY0JRZI/RS6Wb54fhf23C6T3iTJwFMUFhWSDaL9emmOVXMfBecQ36Y+F/aE3GWeKGMK4c8ywlRCwNwLfP8G9vD7zGVyI8LTyekIq5iLlgKQyRPKVlgSV8clzIGM2e62XVL/n+daCSMJP6uAe1xU5LeG0NxJ57TOANaMy8TE08vjI5pqVSjOkBa+bUUVaz81MmPTmpriWaIQdnCnKFSFvzLWdetI0/dy7G5kgp7hh9rZ8Z14RoS2uVCh+e9N6x0RpvSTot10/lyJfgSn3MnEmRiztFX1Pam0AuPothLKjzbdukk8ta3xQw6vEeOkoqxweJmaa6Izm+mX7P/mXKpNISH+X5nDqLZsZrXc8cq4v6qQh1zDROgeWz8m9NG5etk02Gfnn7rnUmnece5UJTU9RicgundwKPR08uXbnCiMt6fndJXKCusBq6wCHlg3jM6REV81EsolP+peXfWu3H+qEnp+UOWKAnFS6M0G3jtz5mKyYgLUj5d3qs8X8shhJra3bePwCDz+fz6nq0WXR7gqZ0IntzsVT45MQJUsIg1y0sgZgVEKujITB6yYSwkMY0YWrCWm14Gk3/z+V4mS4FfDUy8LA247/xjs2v2fkpcyMNyvPpsV4fYhNGa1YvQNmmOWpBzLJIffMYTutZjmZLWZyWQuB61opRqRb36LQsi6aWi9dGDLdFX/La5NQ77Xto7Rj78LmS0XpuTb6UmcYfFsdO8yTQ1ylb667exNeSl0+HxTtrVUDTi7K6vVTeAJdNWTu5kGJaj2FT+ErfpdpL1WUh4sVUcugpsa7wrKkgRn0rTTg2zzWtUUYv0fIl0sUDz/TxJnUpXh0DgDlqMRyYzcpDZ7ys4bU7oGnV+QKxfnnaq9Qk1nTG6o4KcrV8TEjFwNOkuX1Ouae6HT7dV78D5OR2lAg+zJ3YKTtMi247K+ru+VSj8EFGWRflN9f9U1dzcOYu+1xdnpHvlrfM9kWqE8eLDFs+Wul4ee2myjcpk0snl6u7nOb5sdrazKnfxniXAn+fpmPqfeMoo9edVIAmk0UTHPsYKfwxye3RGtOOpRO4LaYoAavvBzVp9ZXRB8E8npAUKbP+mrSXU/6wFGSR6Z7rR83OD9+qUopH7x9nHzfHL7No0m3jucfklqmcMybaJ9eT3Fv+8mIQKUBZy5T0XJMS8GjR44N+p+7C88a2iftgzQnv21pgmf0xeqz2YnWafoNY+ymXZ3N9pywYl2IwfmfdNa7/j3WaI9rAay0bpXy6FKN6ddn3ttqxLA6up+nl9q1DH7RP5/md1m9A6gQZC7y+a5o9sGjWvqwnSEu0fFM6c9pgPJaQ8HBxP2MxEg9PXcgV5rPzU+WZcXVNj5QfxESWmLqlKZ5NafXKi/javsT9yPHT6z6PQRMzN+WCeQxdxw1KtXkQ7kkONOUT63eT23BHngLbtp9k4cttw6LNC8qV0KO1bx3fLfXMqwtoGgNI3Uybi897ZwnknLE7KMat06e28OfWLVGAGoquTc4hSEPMBPJ8i5RvZGmIHJNcux6WGZ3rmsT6mmuOeR/GMtut/3P9vpSfurm+UyTsck15Bl6/xnfXcYw2FETq+3nfMNUny4cvAQtHSV2LxhLXxWT0un5DafDDY9AYjtwABPDouhaz8zOPUXVdzx9N4eDfemJ7Hw7vrDXUlIDzBBJwxr5DLqAN62YXkWFfndvTgjYWcG3iz+p2S0AL5Lp4NA7g5nZSdHj4UpC1vFbXZKjjj6XwNvGZS+pY7aTMz1w6m5iJuf2v4zPXhbqXdKSgaV+9nY25uEtpOUxI9S1rec0yqaxysec5mj6m/WNtxTQlIHXSqGV262Ww2BHJm+s7lUh3zFRLZTfFTMPYZItFufGbtXkKX873EKkewqG1XWonXcpNS9W1TsthupiG2HxM0RQTnKXQ1DKx8FnWJsPQlUwxpmqiuVPPczRNk4MIciWyN1iHda91KeTuv65jiaTe51iATayZWFnPHaozh732NP4cukYBdXhjaPcaJHLdIEhK+3ug27Pa17etaM1n/c/4Ytraaxc4vUMfU2fH5T6LafFcYCZPQa77k1PPi1vw+xSj5DKaR4ees954e/GT1HiUuos5/nbJ905ZtSkl1Gh5rdQfy9WKuX6ktiRyabFMHe9EGo+WmBWTemfRWUcTlCyJee3U1UBtxBK88rl1tWBr0q/Ydz3q/rlIur+NltcsvzYGdZhcxPZprXK5fpTWPJvrO5Vtpak29HOPDm/w9YTMmUjWGHuHRMQA9Of483X9Z0+4ef/HcIMOphlgnR7spR3H2k99p7rWT+77JpBjSWyuJ1Jgc6FNaaeDRWw2e21y+mjMLPMmMSaKl4aq66YGVfeFn1sWiC4XmxgaX91J5N30qvufoivHDPaEZWqsMNaor90Si2FzLs+M/V9nLqeU3SitgVTfMIadick/9lGgjonSpolWiitluta5lH5zfXBEFJ+mqk24mJvAZayUxTqmYe64NClXx4cuMZmbzJM267RJH+ComvXcp87E5B/7dQlt4+PVnZzWJLMizjmMdRAR9Vyh1pTpY30r9YNz2krlX8dwtO3nl+BpW3jG6h2Gr6/bGrpksQRK/HOUZ/BO4UiZ3572sSYc1lk9OmEVAJDdZZmIMV/P8iH5nWWyW3is/1PPGWJjUkcoW22yH4yx0+PG/dQ4vPiAhpiLlEO/xmPhTuHInZ/8XNfTvn6Oa9YUNN3ZUfdSyVxSXk9+LwMNZVLSkv/GpLL2SMf8Zq6L+tps9yZTibb2/NSmWsR71tRdakpTqSWROp8/lwaR9sZ0lPUsPCLN3QP3XHetrWINxbST9dwKIDCzpcxoiyH0M77nnKOzD3vb5pXL/D/wTEyOy8TkeCW6bQkTC481jjEm5N8xYWA9j02GGG26PzkQ0/AWeGOscVmW2ub6jsvkuVYQ8NW1DrQblANtMDmPRS6uWN9a2abaVOrlSH3rWck6qp7cVh403sH3PH3+ROUADA9/yjTn59qntXzophZSXYi12/bkbaMcl6/jljSBEqvyKEBFo9f1D3L9Het/PTjeAFm+HjLlWOpB6mLtXePEb75YkXGwJaC1ibdDDW0h5hCLXWhrRZ/EE/ONAaz9uE9NIebWlPiqMfwxYYXfKQ2sn+VYlPwuNl65fYr54Kk2cqFkfFNlK4xeh2FTZWLaVjMF/29dDRQz+QE4j10LAbTBWynfvtkNFzmgTfbFdV91GiwYXKfm6r7HpHvsuVc/1xTVlxWUTJycuZAjkErbi5n6ObTFxiUmENryhduEEoGUonvMquQ9Y4QpnyhFQEwjsTYWqTInX7qgaYBGnZgcr2jZ509fhTaePXoZ8MF/B57YtUOgh29s0RFtZnhmxpzdavgd0xRWn2MfuK0lw9x8fg053957XxoLyG3be5/LVHWs3rqWcgxHqUCqfa57E0jhs/xh7dtaPreOrFt+t1eGgcvpNlirM03aGrB+p+Cg/bqm7bXt61rPvDZKn+fi/aWD16+sFNi6A1Jq1mnGxLPZ+akh7TQ7PxVMb66nrQHGdaE7bR5DzfVQ7uT0sfD/ra2uiPjXNOGdx9QpKygWmyiBUs1jMZhFF2vYkthAnVtdNS1NmDymBY8Ck+dYNt5z71t7FulYG2aFB9YE18EW/Zz9X362ub4jV5dnKuUvdKeD5rW0PZiVL1Rk85zp05r+2aOXAd93y1sVt0DTjfZiueL6f64XC1LpPpW+A1gxDz1hQIM+x43p8xjMi2lYAgIukAepGEROXCNWzsPLzy26U1DiWoikYxy5cR0r/qWhc6H7L/1SbYLyo0gd1UtmfOsH/60B9FvXIOG9zoIDfoB1T7o2wfmZPkHWeqbBGmumK5ZSynXr5PHnQN26VmJLm65BSovntGVp/FFp9jbo9fDUqTt0wkxdglINigwzEID9W4/RAZhQqHNy+picOnO8osWxIQX1RfZNawgCXR5toyzaZXrwjCc1jw+esyBKXU+UM3alEzin3qgmeZvC3zPfc8fEqlvavlc/9yQfxtNmvKGkjEiL57pbO8lKCOX16xytd/r8iQpDiwx/VJj6V2Z6ZoANQqD3ZEm+vfGjPOxty+nzJ+TZo5eVyL2Ire01TvzPwsljQo9mfl86Sa0Eotg3SGlM633uxPIYPkUP6B4V5I4HQ0x4eZuG6tIm0m7/QZO7vOaB54dY5moJwWAYL8iAQBr8ZPjQJ6ePhWAZX2e7ub4jC+dWK0x+cvqYvH2zKyenj8nJ6WMyMTkup8+fkGuXHsjm+o6cPn8i0AIm5zjAyeljlY+BPuvlM47EM6Ow78txg1QMw/Kvrf+tLEFv4uJdbHJZ71NMCvAYIyXYSq2d0nIxv9hrO2ahxK4eY9A5DR5tbfcf+MYsAmMIUh+wzuCLVE10HbTS94gxvc8evZTrixty+6eFEBU/ff5ECMRBCIgM7nODJXBzdU5OTh+Tr+/MybNHL+Xtm1159uil3FydMzX17PxUxQfF2vzm+s5QlB7r9HoS6Cg9+mdpTYac3H/+O/U9cyenfl8ncGTRwYE73X+rrIenruYrme85NOTMeW8XYRPtneu+iGQE45oEDWINM6HaNGIT9NZWNwTX2E9mU5/fTUyOy62trlxf3JBnj16GstDWIiIvtl/LyeljwSpYe7wo1xc3Ks/XHi+G8gvnVgOetceLcmWmF3x7xsO+vLYK9Di17UPm/B2rryH2TWJ0l8YLLHxtxQ9GFYdoEiAbBeS03erda54flzs52F+3Eltu/7Qgn360Fp4/f/oqMBsCdCJSYW4w+/Onr+Tm6pxcX9yQU2eOy/Onr+TZo5ehDBh74dxqYGaOoDMDg7nZH99c36k81/3NZb7Y2Orx8HxmjEuMedrwJ0v6VyJwSvraFHICZUyLR/NBQJM2a92mKpL2R6xIsxewY7ACamA6ht6TJemevStrjxflu+Utubo8IwvnVsN7mOi3f1qQa5ceyIvt1/L9D1350x+2Ak6RgVkOJr++uCE3V+fkykxPbm11Q7vAxQwvIqFt3Q89cWDKQwh4Y1FyE0zqXQ60zfyjgqNK12FAXWut6HBIK1Bk+SdW+ujm+k5FO/I7/uEbVR72tuX64kbwf0+fPxGCY59+tCa9J0tyZaYnm+s7geFOnz8hp8+fkJV7F+Xtm13pnr0rzx69lO9/6Aa83y1vye2fFuTk9DE5ff6EdDod6b8f0IP2Op1OaPfm6pyIDBj25PQxudCdDq7Aw962fP7VxyHIh2ecsfdi+7WcOnO8wtj6BFf4+hpyhCL7vBakgk8Y65w4i+Vnl7ZbAqVJKKOEOn32Am9tjE1M+OlvWcToqcgsABqvJECHMpjsMJNfbL+WF9uvw98iEqLm3bN3RUTk9k8Llay5U2eOy6cfrcnp8yek92RJREQ++01Prl/ekFtbXXnY25Z+vy8r9y7Ks0cvgzsA/M8evQzv1x4vysK5Vfn+h67cXJ2TF9uv5WFvOwQBJybH5dqlB2ElABaApZm9Y6vxTgegdNCKA34MqWhtTsDIChZZdTj6ngpqpd7nzAtrNUePT11hUMpsOVFx/d4rX8dCaWLZuIxeMggxzcTEaZPWMnc313eCqXty+pjMzk8NRbRfbL8OZvCtra70+31ZOLcq03v+9tXlmcBU1y49kNPnT8jbN7vS2cMBbdzvD7yWW1td+eTDgdkP5sZ7+OxfXt6o9BWC5+2b3fAby3WIF4B5b211w3KeZmaePNqM1++8CyZi//P45kDp5Le+IQNbaLlMkCqjhY23Xl+Ku46WLRFeTd2POvVRx2X0psGiFD7N8JgQiGbD/EbQDEtc8JXhHvTfDwJo0NzTe0y89nhRTp05Ls8evZQX26+l92RJVu5dDNH4/vtBIs3E5Hjw7U9OH5P37wbMDXN+YnJcrsz05MX26+AmWMtkgBfbr2VzfUd6T5aCIFo4txqY1Aqcwa3hcUSM42Fvu/ZRTXq89d+pywdjwanc9nnJ1KMrl1lGzVSpOlpI122nFNow81u5wEEkr8O8l5v3i4vsm2inzhwPuK5dehCWrk6fP1HRDqg/9kFH1h4vSvfsXfm37deysjonnU5Hri1uyNXlGZmYHA8BuX6/H/D96Q8DP/32TwsiMhAMN1fnpDMmIYnm+uWN4CZwos3V5ZnwDD9sYs7OTwW34spMT06fP1EJTDJAcLG1w3gQk0hN/joWWEmqak4Qtm6cwBIWMbch1VZdsHBaTB2zBOoqyBgNbfQ7arrnEJEKNrDWtm7aQLKJdf0tAlgTk+MhIPb2za7c2uqGZS741yJSMfG3H72UhXOrFV/+ykxPpveCdZ9/9bG8f9eXfr8v939elGuLG5W2v74zJyurc3JzdZBQA4vhxfbrsEQHEx8JOnzkMWfN6bx4zuCLjSGABYH1jn9bkKshY+9zJltOcCiXDqs9/p3jL1v4LcEYm9c5cabSvjFvafylMYDcdltdR9cNWT45T1h+b90Eytofa9u3troDjb2n7cHwK/cuBp+70+nIF5ceyL9tvw6ZcdcWN+SbexdFROT9u750xgYmP9bR7/888MOB58pMT27/tCDf3vixsjyG4JyIhLoArN9b+e8YAyTd8LIc8gC8cYuNMcYpt4zGr9ux2o0dv221b33zUrpj9GiaSsasBErwpcqWvm+rL8DTaD96TFpx5N3T9PyBdNYV6oNRvlvekrdvduX64oZ8+tGarNy7GDQpmO3a4kZgwpXVObn904JcX9yQTqcj39y7KN2zd+XTj9ZCYO3+zwNzfe3xonTGBlocwgLm/tXlmWBNYClORII2h8UhMvC39cV/nPcuMnzuHOIO3nha420F8jywyvAk0t/Hwsd90G1zfYuBLUvEo1vPEy0w+HdOlp7Gpdvw2rZoT32bppo4ZTloCzuXb4G30VFSOdJWl9UTnstDQOhtqS/2NDNSUaFhoX2vLW7I9p627XQ68ulHa/JX08dkZS8TDhlwrK1vbXVF+iLXljZkZXUuRNc7nc5A43dE+n2Rzp5z038/iAd8cemBbO/hExmssSPiv72Xhcf98JKHUhrRet4EcjSKR49Xv0RLxdyAgwxotdXWqKyIUYHpo1sSOAa6vNZawIFJj4mPH04hvdCdls+/+jhoj2ePXob21x4vhjXslXsX9xiyIyt7Ghcm/e2fFuSbexel/36gpWFid8/elU6nI9//MDD/+32RjkhYD++/F/ni0oOBxu+IfHl5YA0snFuVTz5clWuXHsjK6pzc/3lv+W2v7trjRZna2zDz/OkrubXVDYIAzI5JwafexCDmo3rjHvs2qfZS4DFsru9qWQBcRm9c0lDH8kytr5fg9HjiIJm8ifVt3tRiBcascqWdtPbtvn2zG3aCYf352xs/hrIQAp1OR64vboTMt+7Zu/Ll5Q3p9/vhOaLq/X5frl16IH/6w5Z88uGqrOz55jC3v7y8IV9ceiCffLgqL7Zfy9d3Bmb+l5cHlsHKvYuycG5Qr3v2rkzvJd7AhP/sN71BhF4GVkWn0wmT6tSZ42GDDE9e/OZDMzyz2hvnOpqQXaNUuVx83v+5jGoJDStTMNVOygzn1QoEcfG+lGmaMHQTgcLPcwKDHgztR4df6XXM88Ms0B9H+xiz81OVAyTAAGCQ2fmpkF76/t2AifFz/+fFSiBs5d7FsJR1fXFD+iLy29/PDCLqlx7If//XyyIy0NjPHr2UlbsD3/zWVleuX96Q9+/6wV9//24QiX//rj8w50WCi9B/P+gXBAGEisjAjIdbAa0+Oz8VAoboI57zeHp+t/dxmwSJGJfWeinfuS6kTHivvNV+Spuy1YAzBBBE/e3vZ0IiFsqVWEZNy6TK5/SpjtAZWdRdZHiS5ZzUoX1YRKTZV0dUfVttM725OjfkS6/9ZVGuLw0Y/+adObl+eRB9/+LSA7l5Z06+vLwhX98ZaGpE3btn70rvyVIoIzLw1eHviwwCeZ98uFrZzQbgk3BE/Gg8X/nkjVnquS4j4k+EUr+y7sQaRYwh1paO8GOsEchFYFVE5B/X/lb+7ld3pPdkSd6/64eMSICX1Rlr75cArSXMaLBMDe9gR5H9o5TfvtkNees4DIKz40QG2nV7T6vDHId5LjLQ2iurc3vm/OAdGPabPd/+5p05GfugI88evZQvL2/Il5cHggITAmWvX96QztggGPeM2kRizds3u3JzdS6kvyIvANaKyL4Qg1aH1cTny/G4IFuO3+WYyDmuAMrFynDEu85Ezq1XJ+YQA7icp8+fkFtbXVn7y6L81fSxsBR78+6c/G7hz8G6u355Q3pPlkIWo7UZy6ItV5DlRuwZcuIKdWIZ2UdJWWViHeEgC//NGXEgmrPjkJIKZlh7vG+i954sSf/9QLOKiHzy4apc31tSQ2Duy8sbITuuLyLj/8eYfHHpgXQ6A03//l1fru8xNuDrO3Nhr/qL7dey9ngxMDwSbyD5P/lwkB57ZaYnX9+ZC4IG/t9vfz8jK/cuyub6TtiMw2MEjep9UCTYxFwj/X8sTTbHxbLqpAJtIs0ZM9WvOjhOTh8bxFL6Ih+Mj4WYCxKeRETev+9L/31fVu7OhYxJZD3GhCh+e2MTczE0r3jtlJwmVPJ+JAdPsInOp7Xy5g/438haY/MW70QkvAeOr/c0sch+iuz9nxdl7IP9JBosdYmIrP1lUfr9AcP/t4U/yz/tmW58gkwYjL2ofV/2Nf8nHw7y6LEsh4nEyTbQ3Cv3LsqnH60Fs5wTevhAiliCjOXu6COlmyzrlJqeo2onhdfSmrE6fMYAxvv0+RPywfiYvNt9L1/fmZMbnz2Ud7vv5YPxMfnX//n/yenzJ+Qf1/52wPh7QV3M0VGdZHtQ5r5uJ9t0z5HeQGxt+uDjljBROX31868+Nu8+O33+RPCzRAZ+dPfsXem/389bh3aGxEIG3P2fB0w+9kFHfrfwZ1m5Oyd/96s7FZqvL24MgnfvB0KlL4Nkmy8uPQgCBZPg1lZXvr4zsBb4IMn+Xv/A5BOT43LqzPFgrmOTjj57Dh+Dt9hqsG6o4d91wVtdsYKD1nv9d6wdi1ae+J5ZnKvxN9cHZwzMzk8Fy+r//V8DDf7V9xfkm/sX5cvLG/LV9xfk5t05+frO34Ql0r/71R3pdAZCHku5sYsncvqradZWVRNLKdeK0mOV1OglEihH28SOAdYAzQhNyWew//b3M9IZG3wgaH0E5dAhJLZ8fWdOPvlwkBCDVFjUOX3+RAjihRTY94MF9uuLG8GCwGk2C+dW97fH7gX+Pv1oLQQJIbz0UdGWue3FLPRFFangWgw4MBU7hzzF2E2siFhbpYE7z1LYXB/kKNy8O4jFLPx6YHF9c/+i/Nf/a01u/bh/SGi/LwPmHusMvvUedMYG3zl2AcdhQhNrrsLoTc0tBu+SA/xv3brChzviGiRmLgSzsKyFKDjnn8MXe/+uP6Tp4buLDAJ2IoNI/CcfrsraXxbl2tKgfEcG0dl3794HQTJ9/oSs7AkECBgIHxEJPj5MRj6zDcFEjsbrv7XLI5K+DKEp4+kVjibR/jYsjLouAuDO//xERER2///38sH4ICHq2qUHgfmvL23IzbtzsvDrQSbjyt2BEP/dJw/kn9b+Vn638Gfpi8hUZN424Ync/jR1lSxw70dPmVupq3T5cgVMYpTRxykDL9aXse9bZKBVe0+W5O2bXfn6zpx8fWduEFDbC8gh/7z3ZEnu/7wYNHVnTEIG3crdQXILluWu7S2bgcl7T5bkyse9cDDFyr2Lgcn7/f7AqthjckC/3w8Rd/QVv1fuXQzbWQHMsJynwME6HfW17pPj/0smRCxgGouSx7R/rIxVJ2YG113Cgzv09s2uvHv3Xt7tDj7Su91+cMUgwL+5f1EWfj1QCN/cuzhYhv3kgXxz76L8buHPcnN1Tqb2VkKs8Y3xRC6kzuiPWW9Ngp+1NrXMztuXDeoyDHqi61tNsZQmUt1ueurMcbl26YGsPV6Uz34zCLaMfdAJDIaNKP3+YEfaIDLfD4dRYJMKyn1z76L0RUIUHsLh1lZ3IBRW52RsbJD2eu3Sg5AYc31xEKlH9P3KTE96T5aGzphbe7wo3974MRxUAW2OicP91v42tCt/VE/bppbINMRcqVywAkvWb6/9OisAum0NfJb/wrlVWfj1qnww3pEbnz2U+z8vhqAsVlywTfmLSw/k/bu+fDA+WJW5eXdgkWEuak3eFngxFw0pX19DajzHUhI7ZxlBA08e1uRcz7rcACmLMPlxYANOZj05fYyCcQOBMPZBJ5wGg6j5taVB/nm/3xfpD3yvLy9vBOYFXNtbdus9WQpLdNiXPr0XGwCeF9uvZeXexRDEAeBYKzD39cUNedjbDss1EF6wapAPj/F4+2Y3LEHqW0zxd86Yxz40svUsKIkue8Iml9bcIJNnfcSEElymtb/sf5/rlzdk7S+DzMYvPnkgezJ/8C33zPZ/+Oe/kX+8f3Hgr4uE/RZMQ13TvImAaLvNMatQjglvfXQdddeDxWV4G6qGh71tubXVlWePXlY2gSDXfGJyXL68PFgKwTro9b2895V7F6Ujg73mC+dWBx+w35d/XPvbEJjryMCce/bopXTGOsFiwBr8f1v4c6AF6/Qn9xIvoNG//6Er3974MZwue3V5Rm7/tBAOqcARVnyl04XudHgO4EQNWDqeaxSD2KRKnTXHGrnJqaupwFquRvK0qeXuQUlc6E4PEp6WNuTv//qu/MM//42Mj49JZ2zgkN3cY+zx8bHB9uWljRCU+/u/vhtcPpG4YMwFy78vqVsXvDGudW1yCcQCfM+fvqqsPSPgBoZGEE4LA0TXOe1URCoRdpTDejcy5764tB94ERFzXR5LZ1ij/+w3+wdeAOASiOwn8ACQqgsrBBlw+uZXkWo0W48VgxWs8+rFvmUsat32HPD601YEn/uPOYIDRAZLav9D/uGf/0b+7//6P+Td7nv55v5F+fu/vjvImJRB0PWb+3u7IPcUwpWZ3oFE3EcVdPNgaHmtrUiu9xyJDZrhEaXmCDUn2fCNKshrByBCLyIheQYnuP73f70s7/eWUFhqY+/5tUsPghDo9/uVKPs2RfR7T5bk2qUHlbx7nHwDRkcijb6OCX2H6c4aVk/W1KkpdaLgpcsybTG9J5iagqctsbyGJJnOWEc6ncEKDGDh16vBvEeOBZKkVuj7jUIAWu7AqPhNQ2di8o/9UQx+7D0zOzMB37fGt64gYQZr2Tiz7eryTMhm+v6Hbljv5rVxbGJBXTxDkOb+z4vh9hYREYj6gc+/f/gE1t+hya8tboRtqjjo4t/o3HmR6sqDSHwjC0MpY8fG2sPRZIIdZN0Swfawtx1u8Ln/82L4zr/6P/+L7O6+l/HxMdn511dhTR0C4YPxMfm7X90Zuhr7IDR7DrRBSzRhpq1JxoBBtJ7pJBO++gjal+9Y0wy9TaY8TDh2A9hkw461Tmcg5WEJ8Po7zHqs2bNbgPKYVIgZiOzHHXgHlYhUEn4sfzbl4+pz0mJlPUjd533QWj+GXyTeP22pYA4hMUpk8K2xji6ynxQDrY7EGs7cPEg4CKG5ub5jM3pd81BEXC2d8j31ch0zOQ5qvHbpgXy9t7UUDIxMODCvZswOhRuxjo489i8vD+qu3J0LmhsJMbxmLrIvSFiAXFvcCFqc72hDnAEHQMIdAejDIr3J5Wl6jwnamDR1XIW2aGiKA2OJrEk+xFNkwPDYsoy8CGw15nl4VDR5KcTGLTB6SoLW/eDWb7TDvpUOUvG1xLyzjNfY9XP42ry5RWQ/Iw5LazC3cW4cIrP6dFhYDwjmwZ9n9+D64v4edpF9LY6TXj1m9Tar5Ix1G5bWQYAl/HP71sSy4HiQyHAqM8dbcvCVvK9Tb9SBUBHapspLXxbEiLT+T2kH/hu3m9z+aUFm56fC0hquO/pueUturs6FJbaVexeDRkdQTGTAqGBmrHd/c++iXFvcqJwC8/5dX77/YRAHuLa0EYI1OCMOlzns7C2z9EXk04/WgmkOIdDpDBJ3kB8NwOWPFmBLqbWBJ2bOM9SZFCmcKfC+c6pNaEq0b7luHp2xdmJjhSXKKzM9uTLT21tGHQRbNZNbx32l+pRb1gq+WWWaWGEeaJwHesIMm/TW/ec6+oyrkDnSriPcYW18z0SHhn3/rh9OmoFGx7bT6fMnQvortDVraQ4E8pXKWCPnpBv27fStMxyd1+a53tTCro43frGxPQwYpVnfRjRaZFgQcMwkx0Vpq49tWQJ1x7ARo6cCb3rHVOxYZ9TXZjwi8Bx55+OBXmy/Dkc7A7ATDQAz/t/IxMcBFCvE2EiZxXo5THUwNtbH4ZtjS6RI9ZgpvfbP+QG4cz02DiL+HfOHAbxByYM6cZ0SSG3wKcUV88VH6RodlttVfD86g24cphp+9AV7PHG9LZoctHr7ZjdchIhbU3FMkMj+8hXSWKDtO2N7O9z2nveeLElnD9+L7dfBF9/eu2wRAIaGvw2f/+s7c2GjCi6DePtmV75b3gomOo6Tmpgcl7/ay3nnHWqnzhwPAmVicjycfMtHX/M489jVnRxtmOgi1cy6Jkco5zKC5SakmDy3r8AFxWPhSLkXFuR+n9wxqIM7BsX3o8d8NW9wkNvN55szvs31wVXJrOlwvxo6CX8LRzF/e+PH4M+/2H4t/fcS3i2cW5Xu2btBy39x6YHcXJ2T6b3DH5Afj40yvSdL+1clv5fKUVI4Nrp79m7YGPPtjR/l/s+L8vzpK7n904IsnFsNWXBv3+yG46d4mY010ux89Qrk3OBUapwZOOZSxwf1wDtLQAskT9BYQk3/bSmQJnRrXxn/x4RHLr4mwGPBfzeNp1gQGN37KPrv2EfwBgdnoPFFDTrCjhNZoOk6nU4IqvA96Z9+tCYTk+Py29/PBB/+1lY3ZDjd/3kxBOIQLAPj/dNevjuCdtgY8/5dP2jm63sBOT5sEsdaISJ/dXlG/vSHQYCQD5qAhWEdNMg+vMUE3thxEIuflUwALxBWJ8BW0qZFZyzomwoIa4hZF7FAWGqsPTyp+iWgA+Be3+tYFxaYB094TJ0Dnk/pSSsuC59VZHitWTOOyP7atYhUAmXwhWGeccBt+vyJkCmHuiIS1ud1rjuSKfS5cZwKC8BuNU5Isfqj+2RFmnPG0NL2TfzOoxDgS0Fqbo6yD3UDc9rSKaVd1xcp583Wou6pQbCYWmRfYvGBiVYdlEXyiT4r/dZWt3LiDLLlOiJDkXQktvB533xSDYTBpx+tye2fFkIEH8LhhUp1RTouhIDIcPorwFuFKDlJZpSBnxJ8TfC3Fc1us14q8NnGeLY5hiWQ5aO34dtxOdZ0eIbDGXRbV5dn5O2bXXn7Zlc+/+rjYOJ//tXHlZNckYWGdFk+mB8Bt7XHi2GNnO9Nx82suOllZc8kx9bULy9X1+HfvtmV738YxAZurs7J1eUZ+W55KwQJV+5dDK6GNsnYfOcgJUOdYIzlh+do8BKImcCeG+C1wfGZFI1NmKGknuUmWe89mnPiKHU1c863ipVp5ZLFVMOsuURkaEnJu30VUfe1x4tyoTstn360FoJ63974MZjnJ6ePDZnRvSdL8m97h0KMfdAJJ5DgGmUAfPGbq3Py/Q/dvcMh983wlXsXw6ETwCEySJ3EtcwL51Zlc31wEikOodhc36lYKLj7yzPXGfS23ByG0JO0TeGcA54QiLWR8snZjy0JKJZCKW6P5pKLLEvHPmbu5+BMblMdhWnBOHPOLUdnYJ7D37bOi8dg80YF3tGEzScw21GGr0EWkYqpL7K/yw1ryrGcAO1y6E0uVvLMKHKs2zRBm86LtmIEuf5ubhu/hLhEGzDSzLhS0H57LIuJc97hs+NkEE5cEanmzSOwxkdE4750JLOISCVop+/xQqSdd6NxVhyD9sFLAzS54+aZ0bl4SxJSPHrbTGr5pcCoBEWd2EIMsq9kijWS+jtWR2Tfb9XLDUhsAGPwLasigyAYjmt62NuWF9uv5dSZ4zIxOR5uSgWAKScmx+XTj9bk/s/VhBZ9XPTNvTVzvAez4zQcLKdhCZAnONwJ9DV25xzKp8Cq7/l5GLOSCWgd/5XyMy0cozCtLUidptoGHLT7E8PbdP6MpQqm/EOPoJRvxjitScb4+KNy5H1zfZBY8/zpq3ATCspemenJ9cWNcI4btDyY/8vLGzI7PyXXFzfkQnc6HDX96UdrsvZ4MQTzsCbOzM6WAtMJ83tzfSe0B0HAAix3UqY0s9biXkAshlekekZaSQDPwq/7lyPwS3xklLFOUx0Vs8fGMXfMc9qJ1W8qUJJR95yAiVe2VArpI6C1STIxOR4i71z+2aOXcurM8eBnMwPCRO89WQoprNgF97C3HfLqb67Oyeb6Tsh0m5gcD8E+WBcnp49V7jbHCgDTAqYB0+ugI49TTpDNA81M1nfKnRyppUBP4KSi0ykadMAuN+BUwgy8yqHx5QQ4dTCQcZSMeUkwdRQCq/HymsXYPKFLThXVfiw6zcxy7dKD0M7E5Lh8t7w1JN2fPXopt39aqJzC+ulHa7Jy76J8e+NHEakG22bnp8IS3Lc3fgxBPlgIzJAI1q09Xgzv+GBL3N/F46LvSfcYp2S1IxVdj51kWsdVaHPyNcVVYtbq/Rb8d2wc9LytK0RLy+cGJEshi9FzJwYYE+ezi6SP5rEkLV/+pwNXHGhjQQIfnRkby244kP/apQeBAbAGf3V5Rp4/fRVMebyHluOJ8uzRy3AQ5XfLW8GEx2+2KniicICOb2lh6R0LqMWeeRrH09IWeJqbv4EXva8DbTNJjhYs1ejWLTltCLtczd60jIaiTS05jVuTIieQBM0oMjzI7Ofyu+dPX1UCQEiq4WAZgnMiA0aEoMCuuIVzq3LqzPHKmjcSXbRZzuevQyBA8wNwiMba48WiYE7JB/YY3vs/1/eN4bAss9I22ga2tHKEAeroZyko+Ua5uA4aGjN6W8EDzcSMW28rBG5oLY6uI00VwTmWxpY5xuY0B9FEBtpe3xkHQNvw07UG1K6BBzEhmDO2OSZ2TvmUxo7dA+fVj+HLfaef68AsyuQKmlTM6ZcGuZZf1jp6zG9gk73pAKakbcy0BCNaN7RiknJiii4jsn9ElMZrHYbBBz/yrbGa9ljWn3UoR2p8SsbaKlfynXK+eylwvSa05GryGI6mUIeGJnQ0of/IJczoiayZS5fBewTC+AplnbzCJ9QALFx4zmAxIh8VpXfb6fPbPYavM+ljOD2wGEX33ROudZipqZDJbUvEDs61KQDaGpvDhFqme6kJ5pmiMTw4RBEDyaYwPxcZfGgE4rAuzumws/NTIdlFMzmbgnyLJj/fXN+prAg8f/oqBP9m56eGUngvdKeHbmOxttlakeASX7ckQcXShjxRvQlbonFR3mOAHFO7pP+eGV7qRtRl1jqaHL9z+9lW7ONANHqJiRM7IJG3qMba0BPN03ysfbTZb2laz+LINW/bdHO8frThPrVlinr9r1O3LVpL6TtIaIseq15rUfcYxAIgWmIxs/EE3lzfCSmsXG9zfacSpGN8+ihf/QONHos2WzTyM62JNX4Lb9PAlX5fNyqco1VzNEoT5ohZEik62mbK3DnKoC2/XKjbn9hcjOFp7e41q3FPeudIdmt3WMwywDsd5PLa1M+tTSnse1s05/rIKGcFAz0JXmIp1C1TUu7fG7TZ78MYw9INRCM33dsehJQZDkA0nJ9bboFINWqvGbvUtKzDhKMKXLVt2h4U/NKFz1GkP2m61wkGaLOyJPjgAU6S9dZzeY2bc9jxnANiVlBwdn6qcoacx8TanPRSfL0+xywLhpjVUtJeDnh1U5HoUpzW/167Tc3gEmhaX0OO69cE2E3MhZHf1CJiB7b4f++5NnU9hshtp4Ru3ZbOjqsrsXNoybmxJdfMt9oHWJH4w7YiRtXWUdSydaFOX4oZ/aAGLGfiadM75buL5F+La90EyzgtJonRawmPptHtw2CqOm02ESKpWItXvm47bdc5KgKmOOruTfC6ULK7LVZWR78ZEKDjQJtlhjOUHu6PlQVvTDgybq1CeLTEBEOJeZ8yo1OgI/sl+GKrLqn6ut1Un635mePW1GHGnDq5AdHYeLbBZ61E3UchRUulZROJrC88FElr5rZp8Oq3Gag7CO3SpI3UfAC02Ye2XJajAt4Ytuqj537knA+aY57pj29dTIh3pR80piVSjJ3bVps+ZtMxtfBsrg/n5OfSfVRMVgvaEEaH6UbVgZEF40o0Ue7EEWkWBOP6pRriIDVv3bpHfbJ50MbBlAcFh2EVtRGXaDUzTjOPFSGPlY35Ujl+HuPVvz2/OhefZxVY9OaWi0HpKkFpHat+k7I5frAHqS2wsed13jfxeet8l6ZtxOJPKZpQ51B3r5VeRZQLdSVgTGsftC/XVHO0pXlGqcEOWzvH4JdoUcXaP5Bcdw+sHV1tgtbqAEtCpqwPbVF4Giz3Waq8J4hytESbE26UE7dN7ZirPXMthtiqiFf/sIVWrP3WNXrTKHTdtprUj2lrbiO1p7yU1oMcqxQ0iUGU0t52MO+wx+6XAK1rdB7wUQ9+U/yoH/P/efJbbkauH17XBTkoSH23khhHiu6csciNg3DZXGtnlFAHf4k1Upf+kafA1o2yjxKOQvsiaQsiF1dbfTms79X2isV/wjCM1EdPaclS0NJMn5GeC3XW0vWzOtFhZvC2xqap68J/t0FTW9+jREt75Zr49QdpTR0EdC50/6X/H0F6NtFWo/ClDyKK30bkOIfOnFUOC8dBz7tf+jxvQv+BLq8d1eDcqOgqwWvduKr/9sr8J7QPbQVZS3CP8puapvuozKWjyOQi7dJlBYlyQN/Gav3tlakLJRuKAE2DTbp+WyZy26Z27vjWScTylu7atBQ1RDX6L/m+64NeDvLK/ZLHMAVtmPV12xjluP6SrKVcWhtf4HAUoW16fwn9HyWNR73/OTGUWB/qmtpHGTTNrV2yeFQgN7jWJr4SnKmofV04KhlsdaHOuFjavs7KQampfVSgxE1ubXmtyWJ+m8CZbrEyKcg1S0twcjnLFM0Bz8c9yPFvEsPxwBuXGL5SBqwTk7DabRNHE9wl/T9SVzIdBBxEgslRgrpLX3VxjyL5paT+UXJhRkFLXZxDGv2wtHLddkdhhue25fmCOc8OAnL6G0veSWmhpqmysTZKIGZZtYm/aTJTG7RYOHPwmhr9KGgqPgHWg9Jkl1ikts0o/S8FUhM4531uPESP47+HMf0l9eE/nOkuYmd/1fH3jtKyWRtZcCXvRPJjHW3FREZR9z8KRINxsUSHowg5NOqJZ929loMvdtFjCT1NwDJZS2ioG4kuYaiSIGXd1Y3cuiXQ5upIDMdB8dUvUqP/e1knH6UmynE7miQC1cV12HCQdLYVmMT1Yk1gJLvXRimlckzKUmgbXw6gH7mBqlJaeLnKq9um6a1doaMKddybnGe5bcW+h/e8hMk9HP8bp0JgHBI2ONwAAAAASUVORK5CYII=\n",
"text/html": [
"
"
],
"text/plain": [
"\n",
"array([[4289680708, 4289680708, 4289680708, ..., 4289680708, 4289680708,\n",
" 4289680708],\n",
" [4289680708, 4289680708, 4289680708, ..., 4289680708, 4289680708,\n",
" 4289680708],\n",
" [4289680708, 4289680708, 4289680708, ..., 4289680708, 4289680708,\n",
" 4289680708],\n",
" ...,\n",
" [4289680708, 4287564296, 4289680708, ..., 4289680708, 4289680708,\n",
" 4289680708],\n",
" [4289680708, 4289680708, 4289680708, ..., 4289680708, 4289680708,\n",
" 4289680708],\n",
" [4287564296, 4289680708, 4289680708, ..., 4289680708, 4289680708,\n",
" 4289680708]], dtype=uint32)\n",
"Coordinates:\n",
" * x (x) float64 -3.984 -3.952 -3.92 -3.888 ... 3.888 3.92 3.952 3.984\n",
" * y (y) float64 -3.984 -3.952 -3.92 -3.888 ... 3.888 3.92 3.952 3.984"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tf.shade(np.sin(agg))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Multiple aggregates can be made for the same plot range, allowing quite complicated queries to be expressed easily (e.g. `agg1.where(agg2>2*agg1)`)."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"# EXERCISE: try making new aggregates using other numpy ufuncs\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Colormapping\n",
"\n",
"Once you have an aggregate array you want to visualize, you need to translate the values in that array into pixel colors. datashader supports any Bokeh palette or list of colors:"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/html": [
"
"
],
"text/plain": [
"\n",
"array([[ 0, 0, 0, ..., 0, 0,\n",
" 0],\n",
" [ 0, 0, 0, ..., 0, 0,\n",
" 0],\n",
" [ 0, 0, 0, ..., 0, 0,\n",
" 0],\n",
" ...,\n",
" [ 0, 4278190219, 0, ..., 0, 0,\n",
" 0],\n",
" [ 0, 0, 0, ..., 0, 0,\n",
" 0],\n",
" [4278190219, 0, 0, ..., 0, 0,\n",
" 0]], dtype=uint32)\n",
"Coordinates:\n",
" * x (x) float64 -3.984 -3.952 -3.92 -3.888 ... 3.888 3.92 3.952 3.984\n",
" * y (y) float64 -3.984 -3.952 -3.92 -3.888 ... 3.888 3.92 3.952 3.984"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tf.shade(agg, cmap=[\"darkred\", \"yellow\"])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can also choose how the data values should map into colors: 'linear', 'log', or 'eq_hist':"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/html": [
"
"
],
"text/plain": [
"\n",
"array([[ 0, 0, 0, ..., 0, 0,\n",
" 0],\n",
" [ 0, 0, 0, ..., 0, 0,\n",
" 0],\n",
" [ 0, 0, 0, ..., 0, 0,\n",
" 0],\n",
" ...,\n",
" [ 0, 4278190219, 0, ..., 0, 0,\n",
" 0],\n",
" [ 0, 0, 0, ..., 0, 0,\n",
" 0],\n",
" [4278190219, 0, 0, ..., 0, 0,\n",
" 0]], dtype=uint32)\n",
"Coordinates:\n",
" * x (x) float64 -3.984 -3.952 -3.92 -3.888 ... 3.888 3.92 3.952 3.984\n",
" * y (y) float64 -3.984 -3.952 -3.92 -3.888 ... 3.888 3.92 3.952 3.984"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tf.shade(agg,cmap=[\"darkred\", \"yellow\"],how='linear')"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/html": [
"
"
],
"text/plain": [
"\n",
"array([[ 0, 0, 0, ..., 0, 0,\n",
" 0],\n",
" [ 0, 0, 0, ..., 0, 0,\n",
" 0],\n",
" [ 0, 0, 0, ..., 0, 0,\n",
" 0],\n",
" ...,\n",
" [ 0, 4278190219, 0, ..., 0, 0,\n",
" 0],\n",
" [ 0, 0, 0, ..., 0, 0,\n",
" 0],\n",
" [4278190219, 0, 0, ..., 0, 0,\n",
" 0]], dtype=uint32)\n",
"Coordinates:\n",
" * x (x) float64 -3.984 -3.952 -3.92 -3.888 ... 3.888 3.92 3.952 3.984\n",
" * y (y) float64 -3.984 -3.952 -3.92 -3.888 ... 3.888 3.92 3.952 3.984"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tf.shade(agg,cmap=[\"darkred\", \"yellow\"],how='log')"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/html": [
"
"
],
"text/plain": [
"\n",
"array([[ 0, 0, 0, ..., 0, 0,\n",
" 0],\n",
" [ 0, 0, 0, ..., 0, 0,\n",
" 0],\n",
" [ 0, 0, 0, ..., 0, 0,\n",
" 0],\n",
" ...,\n",
" [ 0, 4278190219, 0, ..., 0, 0,\n",
" 0],\n",
" [ 0, 0, 0, ..., 0, 0,\n",
" 0],\n",
" [4278190219, 0, 0, ..., 0, 0,\n",
" 0]], dtype=uint32)\n",
"Coordinates:\n",
" * x (x) float64 -3.984 -3.952 -3.92 -3.888 ... 3.888 3.92 3.952 3.984\n",
" * y (y) float64 -3.984 -3.952 -3.92 -3.888 ... 3.888 3.92 3.952 3.984"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tf.shade(agg,cmap=[\"darkred\", \"yellow\"],how='eq_hist')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Notice how little of the color range is being used for the linear case, because the high end (yellow) is used only for the single pixel with the highest density, whereas a linear mapping results in all the rest having values near the low end of the colormap. The log mapping has similar issues, though less severe because it maps a wide range of data values into a smaller range for plotting. The `eq_hist` (default) setting correctly conveys the differences in density between the various distributions, by equalizing the histogram of pixel values such that every pixel color is used equally often.\n",
"\n",
"\n",
"If you have a categorical aggregate (from `count_cat`), you can now colorize the results:"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/html": [
"
"
],
"text/plain": [
"\n",
"array([[ 16777215, 16777215, 16777215, ..., 16777215, 16777215,\n",
" 16777215],\n",
" [ 16777215, 16777215, 16777215, ..., 16777215, 16777215,\n",
" 16777215],\n",
" [ 16777215, 16777215, 16777215, ..., 16777215, 16777215,\n",
" 16777215],\n",
" ...,\n",
" [ 16777215, 681791128, 16777215, ..., 16777215, 16777215,\n",
" 16777215],\n",
" [ 16777215, 16777215, 16777215, ..., 16777215, 16777215,\n",
" 16777215],\n",
" [681791128, 16777215, 16777215, ..., 16777215, 16777215,\n",
" 16777215]], dtype=uint32)\n",
"Coordinates:\n",
" * x (x) float64 -3.984 -3.952 -3.92 -3.888 ... 3.888 3.92 3.952 3.984\n",
" * y (y) float64 -3.984 -3.952 -3.92 -3.888 ... 3.888 3.92 3.952 3.984"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"color_key = dict(d1='blue', d2='green', d3='red', d4='orange', d5='purple')\n",
"aggc = canvas.points(df, 'x', 'y', ds.count_cat('cat'))\n",
"tf.shade(aggc, color_key)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here the color of each pixel is computed as a weighted average of the colors for those datapoints falling into this pixel."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"If you have trouble seeing the dots, you can increase their size by \"spreading\" them in the final image:"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAPoAAAD6CAYAAACI7Fo9AAEAAElEQVR4nMz9e3hc13UniP7WPq96owAUgCJRfBRfokRSFPWkkzCWorwsuxklk8xIo1GcdqtjfT1Kx3d8077f3PSIvt093+fO+F53t+YOlXb6G4eja02nO1FkS85MWu0H/aAk2qIsSqJIkSDBAlgACkC9z3uv+8c5p3BQLICgJHfP+gNVqLPP3uex116v31qbjh89sRcAPnvocUREX8Q5xOj40RN779v89TIA3DHx8lR0vO93AJgCUA4/V/UTjlMO/506OP5S9B1vzn8yPI9LK6NSJeonpF6/T774+Krr66fonlbG4y8A6ADUAoCRxJUsAPzOrX/8efoizsXaX9d3cIyPRNf05IuPf6u//fGjJ/bePvbSsY6bzzoyiavNO58BMBUdi+718OTzADB1auaRcnjPePLFx8/x09h7auaRMgAk1CbumHh56szcQ+VXZx+N33+ces8RAO7b/PVyTl8o7Rh+HQAqAKaefeNEr3H/PfHT6F1//7teq8165/DT2Htm7qEyALw6++hUfLzwvN71Rudu5Bo+Cho0/s2MHW8bp/XOu1H/ax0f9PvNvIf1SEX4EM7MPYQ7Jl5ea2Jhqn7PUwBwpXFnC/inj8SPNexiabq5H0vmVowkp0tL5tbwwl/utXn2jY1eUkRcAggx5i8G/weTexCzxU4u78z/4CnLy6RdNjDfviXJhN1gdMPj5wcMWA777WeMcjA2gICJNnztx4+ewMHxl8pDRjW6hzXPj9oYSqd3j2tdY9j/Wn2VAODg+EvRAnpTFJtIR2K/3YjKOX2hpCvd4sHxl8BP/2yZ90a0FnPGjq1aKDdIx9b4/jOj8Fqj91ABPvgzVbFys+W1GoWMdDX8Nx9nqkDqcOnc4gMVgJ8aS11KA8Bocvo5AFPRSo9Awn0rdhM9enP+k7HRVkny2DXRaaww+Sdik30KACKpuWhuKVVaByBZTeuKBQ12UlNM8qQOCdUBAFW4AIDg2l4+F97fes+pGt0DP429L73/0yOmmysuWtuqx4+eKANccvxUUbIKAJ3wDksAIaE2cWvhO6uY8vDk81Mf++rzA1/afHdnZee/fP3c8aOPYjLz1nMAYKhd81fKzzxxauaR6Hn17jvUxOITthQfg5/G3s8eCiZ+xHw3kDI9zSlON2DcqfnuTgwZ1XWa3Jg+KukVp7AfILivNef4eueH11YHkF+v7Uavd53nP2gBqsR/+6DPQY2+vDr76NSh4y/fTCcDH9pCd0cHQHqhuwNDRrXcsIuhNONSxEwxM6GMUI0PmD1g3JDxQmaOpCkDwFOB+s1ZAC+Ex0vHj54oN+3XSgDg+MkigGpSa3YAQLJAKXv2uUpr3x87fnC7891dnw8/AaxoHf20sqD1pGf5u9OfKWnCAjRUYUW/U+Xc0gNfQu8F8ZHguhkNu4gzcw9VAODQ8Ze/hQEUTMbvXPe7pljX/da0x0oIX/6TLz5+7rOHVqvNnz30eG+RjE3w3sS5wWQsI1wosIb2sZYqfnjy+WiMqdjYcUa77p4H9f9B6EYM1ncNA03LDVL9A563UfpQzLweqTeydyN68sXHnwTik/86exoA0vHf4jbmaOLy3aXc2+VFc0spmvihXX8drVbD6XT4ZQrAg31Ne4vAePpiBQAqzf1FAMV3ar+cBoBbR1/ZNZE+94TPqjrX2X3Z9jMA6LqVM7KVAeCzh7A39rBj2gWXLC9TJHA19gyKzCgQobZiWlAlWJiocm7x/hJC5jl+9NFPYIC0fPLFx8/FX+7/+btPfd/23koCvAeg8wq5SQDlw5PP48zcQ5Wpxr1TAMrHj57Ambmvr1pw+yThoMU4/tugd19BjIGBgJHWU4djbSPp1xtr0GIziD6oSj3ovBtpHx+EkeiLeLJvzOj3QYvlhsyX9Z5prO/e++SnV83LG1K8f3W9hoMoWhiOH/3zI7HfIgdVJ9Y0cswBAJJaszpkVEuubxRz+gKutg4gsuv7pVSfJI29dM4GEp1aAE6uSE4UX519NFxsuMqM/SCkCOg6ftoUxLWGXYzs7PTO/A+eAoB7Nv3V9s8ewkkAePaNE1+JM83xo4+iPPTakZyxUAFWzIvLjbuBVfYxFwMmR3XlWvsXQb47/B0ArTI1QlrFVP/xsptUyDNcP3l+pn3gsbij9NXZRxGndRx2EfVP7FK1vauoK93CG0/e0XOuriV5b0QfsVPtZybRNtLnTdzLwHf3QZ8hPoCWcSPnaPj1CEK+Ut948hPPA4AnE/V7/vSvnsQ6xE/j+MsX/+9HAOBqE5cBvACsksCRRO/0272f3PUnUwDK79buh+2nsdApF9vOaLXSuh1AwGwx6j3IuMZx/OiJzwMBkyyaW440rPH9TWciuFmKbHaqEHFRISdBkOyzMlG3ihOFxEWoirfPdLNzujB3SygXfFZ1y8tsqbT2HVbI/oX3l38OY6lL/yIabzx9sRI5KEPTIrZ4xZl5hZ588fFzP3rikf6IwsC2QOCEi7zub85/Et+d/nZJsjAMtWMDPTNnlUS8b/PXy/OdnaWcsbCmw+3M3EMAooXh8d47Wuj+90VPGlDI7T3ruJq91nVGFEkZYG0pHLNrI7pOQ+hv+yFpFZP8p/Lor0E30pj+s9BNS3QAYCZ95T+qYGUi9kJYfVR+9o0TU/dt/jrumHj55Pemf+/LrjTSrj0GAF+KtwsWhxWvcjz09OY8EI6DHfnXUetuq11totB0JsCM/RPpC8W0tlyttPY9WEhNmYbSNevW5MnL9j17AGBn/hSGElVTIQ8Mpf8a9cXuNtS6W/cHEpqR0xcAAC+//989BeAqgDzArzBjP4BhIlwAUAXoJIDyfZu/Xv5ff+uZL19rV9OeTHS25M4+Ey14MQlefnP+k7D9VGnIqFZuLXyncmbuoXKg1TAAoJC68kd9EZBYSDOYxNEi9LGvPt8fcUAQMlwt+SMyvaFqxykAsTd4Zu6h8khyuvTGk1vLkYSP90lffLzHQBETDVJZ+xeMjTidNqIGhzSQaT5iSX1DCvtaz4/REwY3UrUHLIgDF90Pcc09jXhdRl//AVEr1lH4QugZ9Nm9QBCyAgLp8ursoxhPvQ9VOJ3V/fXi6JEDrgJw6czcQ2jaY6VQhZ4KbWm8W7u/BAASyvBwYvqgLzUjodZtBv07RfgYTszCdHO3ShZgIElAi0FeUmsBwIWp+r14c/5TM2OpS+llq7RExA6IDWLcD4YFQu2thV9rvTn/ULZhF/dHTAgAoaoequvU00bq1sS/0EV3VFe6AlB+mFCb4UL1Unk8dbHUdMYqlpcDAARRCkyFforehI5+f3X2Uewd/fYRy8sUg2d4d3WdkBqAQNOJbOJTMy/F3yNOzQQOz6n6vSjnX0Mp9/bpUu7tNSMu8bDgDezNmw7h9dF6zLwRux7ARyO5b6KPVZ7wj2rctdT+m73PQf2ph45/65GNXEw42Fce2vk/fSUGxuifID2QyPGjJz6xd/TbpSGjWrG8VTHdct0upgX5HQK3MPhhhc4uFOc6u4qmmysE3vTAc09ffLznpTYv/cERQe5o0x4rJNQ2HD8DAKhbm2H7aaS0erVpFy0GTl2q33f2Uv1wBeASGE8wIbnQ3bEE4J/HbOlPgWACgM9qUUplmIEEArOkA+AxZtoFAET8JoCToSlREiQ1AGjaRdl0iqFXH+WmPVZKKM1iwynC9tJYWTQolJ6PlgF+OPzxKoCvACifW7y/9yxGE1eKAIpJrVl9dfbRk3GTJvoec3yVxlMX0XTGegvD4cnnp96c/yQMpQvPT/ZMiUj637f56wNew/q0ljq+USkd2rSRnwX89EBHWc+5tdbY613XevQzkPT9VMbNq+8bdubdDKkf5mbLQ6+Vckag3kYq5AoCLvBQA0V8fOu/ORkeB4DyWHLqlaxRqw4Z1cpq5xL1r5SlwPmFKoCHw98ePH70xLEQgFMGULmt8LfIYaFmekO42jxUBfCc46eeaDtjnmRRBHA5NsgUQFCFRZKFIchPepyIxnwKhJGw3fn57o4UGFkQ5vLG7Jvbh878zTu1+7/gypQZXu/VyCbXhAXHT9JYauqa7af1plN8IdRQKgAw391ZnWrcG9OAuISeqYKpuMmzZ+S7x+r2RNH1jeSSuf0UEWoeawWV3NoGXksJQFFXusCK5CkDKP3ilj9DQm0XNWHGnkVvoVj17mPhsnXpRmiuAcf7+11TS/kQzq01r+3DUtxHsQ59JJL+w1C/ibSu6r7Wih11EMasN4gW63nUkTVqpfhv4de4021vzKNeXQlXIQ1wGsCR+KLwTu1XIpOhDHBpMnO2ONfZlSSSF1yZBAjP0Qq6DQAwkrz6DcvL7E6o7Qvz3V3FlYdCr4R3/GMwjgDYBcb7GW2pdnjy+alzi7/Y4dDCpRA8lFC/DttPoZx/7Z8tmVsrlpdDpXUQAGB5OUSee8QmwGjiSrHpjD0GAK5MxcwYgi/VrKF0OxrZWCacBaiyd/R7iNT+0IEZXOX1IJMygErLGStFHvkojHlr4TtR00rUPv5MBjDGmhP6RgCbGK2pmg+QguWbkWQ3wbw35XD8vxqthQ0Abug36Tkpr2P0tXDfq3HrwcvLGrVqQm1ed14wAE1dbtwDADi3+ACOH8UnomPnFh84CfRsyt5FrsaoU2UseeEPAUBXLHumfeACgBbA2dHElWJSayJAp21HH1y26Em9QMQGASMAlsJFYdWCNJKsVC0vg4n0+6fnu7vjh/IA6qXsW2hY48uml+m6Mg3Ly/72X7z7z/6eLjojClnNocTczO7hV19p2MUeJn3IqKJhF0uBeh6MFz2ffsdZSlv8TNfNjQCAi9T3Afo8QqbQhPMFAB1J0evhUhg+DHHkz/e/tjhNAcCthe9MxRi7DADTzf0lAFgyt/bgzoOYLfwdkYl23+avl8P2N4yHA6ti+WUAdyM0P/onZPj/1Hp93kwseo22cRDQqnHimIObjVHf7HX20zrXvcqZt9YYAxba/sVs1QKrfpibixxH0f+DwDdxVb7PQx+ph2UA+NETj5RDr/padCz8PKIIt6gJC6O5q6cXre1h+IrvZsZuAGBQLqXWNQCa46TGJ1Lv/W8AfFU4V2faBx4D8CfnFh/QGUgFpgEDARinE97Hkz964pFgYbIAz03XFq1tWwW8vIQih4wZaMKGz7RfkFOMcOWRGVIeeq10cPwlLJpbSg27p0hMxZ/FkLHg1u1Jw2cF8LEPAPYV/uZPAOC92sd3e5ycAVgDUYgX6KEAVyUgxWkdCOmqJBcAN4uC7J0XzZc3nnzoExHq8dziA1PrAK+qWF/riyZkKdbuQ0vdPibZsNb5UdM6STUbCUt+GFq1qPUkevRgQu9sr9EaEv4jt0HC8FLEFVWATqb1uu36CXhS3wLwl0OwzNdGksF7q3W33t3XzTIAzHd3XwCjDMAAkGNA0xUbCrlGrK1DgLYyHrYzB8Hl40dPHJ/rvJeXrGRV4abBSDKwPQC+QVWFR4bSRcseP9p2C27D3vRfAfijCBjTdYcKjp8sWl6mUGkdOAsEWg1iq2zLGXNSaqMTtC+8DQBprW4DAJEEwdUA4LMvfuZchKcf9NzWMa+uo1L2pyUAGE1eXRXS6W8W+97/no+FmG88+8ajX4l+jHn7+6XTen312+DX3d9HZGP3FpABqMENayn/F6apvucYp552dp3qfnjy+SidEsDq1NLoIb30/k+PVFq3R0i2bwHBghDg04O2Kz3ykQjIghU7+ggAPPvGiUoYW++BSoaM2QKAQlav/VHbGcZY8rLz3vLHTYJ3h6F0RjJ67c7FbslZMHddAYCRxJXDKa3xgunmUDO3AcAwGPcDmFTIhoQKXbHBgCJZZAD+HQAZMDlErjaWnNoNYPeCuSOpKu4IATKpNo5UO7ecZMZdRAwOUHbvbs6++2ZOrx5Oqq3JJXNy4pp1S9ZnYxGAHmPEqqbYBVXY8KSOPhRdiNVH9krzrt8GcMxQWllDaWPv6PfKOWPBBABF+JLZBwD86IlHPrGi6QQaUQSGWS/bEOg3h/iIJqzoHa+K0ce+lxELHcXDo6/OPorH9z+FlNZYb8hVY8cn30dhGw9i/A3025/u3E8fCBL7EdCaSLibCaHd4Jze4rmK0SPgRNyGG0DlHfnXsdAtP2X72dbxoyc+DeAYejnbQATzXKGICXpY8N6RKJnm+NF7ywAXBfxhnzUwixRALojHFHIUBgkQSBMOQBKG0oZkkVaFhdHk1cpVd//DhyZe3Fe3iomaWaa2MzYznJyFJ1V03JxFkJOuNBpZffa3W/bmBoiXN2feHd6eP71susNYtkvvJtT2bmbKSlYmmXGEiDUAGjGSTNh0tXlgejyd2DukzxuK8NByxy3XT5Jk0tBz9lGl0joQfGccBmEC4OzO/A+x0C3foQmn2/XyP/70X/7BOQCP9EwEAP/h8h88cd/mr5cf2P6/lLbmzhYBVEO8wEmAeqHLyEToV79Xq+f96j1VxtMX0bCLpSgJpi/XoBfpiP225oSLe+pvoEmsGy6KSdlVDktenaKJ0MnYA6p8ROGnD4RLv5lxBzk1BzjSPkyizYaox+hRPHXv6LdLAEqh1Og5SqJMqag9gyIPOLCSJPJY+BlPPikCeC48K+Y0Gwj+qKb1eoGZarpi/iLABECktbqQUiBjLEIVDgnybQB7BLFOBNX2UyVFeOmE1tJ0bwgAoCmdoq60FUIiS4SuQm5CIX/Rk7qhKe2CL42dAp5oO6MGkTyX0+feHEtfGnG8lAoAbbewwEAHjASADBivEvDJpNLO6EqXAPCW7JtYMMtLvq+h5U48CFCVGY8QheG8AFhTN5R2Nq3V03XFVpmFHr/huHR9c/6TeH/55/4Eyz+H2dZP9cOT//YPEUzucoghWKVmR7nzfYU21pReMVz8Km88sDIh+eme0/Q6OnH2mWN9kOS9AHBmruesA3CdXdobr982PX3tNz8HAOdqtfzewsljseuI6KOwrVdJ7HgCznoL1M0y9s8ilDfIvr/JMXuLpxqr/DIF8JFzi/djPPV+0VC6lcjpc2rmkfKPnnik/Owbn5z67KHHp24tfGfqtWu//XAwGgqgnsSuhh3XsZK7G4WOimB8CsQ1gFpPvvj4I3239RQALJubCndtevGrte62P8vqCyCSD46lLpUlq87F+uEZAK8AqI4krv4/ASiun+QQWIKD4y8DTDSaqLw73TyAhNI+uGhuV5iVTDFzzleFkyCStuNnfIs1dL0htdMY2aoIe3TR3L5JFc63l6wtDzALgxkjAL4dXtxw+OlPN+8EwGAQFxJTyBlz23ypoeVMXAFxkQh5MArB44AZew7Ymj0Dn3W12rkle/zoib1Pvvj4uWffOPG52EP4SvSl7RQcALi18J1Kwy5GOegDaXUu/u2rGD2WlTcFoHxq5hEMGdUjDbs4EN0VeeYDOtvro3/MCPEHADl9YSNawCCn23U0IPOu1/d0cz+AXtTgPzem/aZpjQjHun6MD0kr4bWju//JsSVzMvv9ymc+H0nZtLa85pmh3XccYIBRyBnV9xJqu7gpc/70m/OfrANATq8ecaWRkayotp+9EJ3LhCQFCLMeOOT40RN7i+lzLy9Z7TECpBDe8kJ3+8MAkFSbpxpO8bmrrYOPKXAmk2p9e0Ktf2rZ2v7NRXNLMjIAGNgPYPpvp56aBgAibC0Pvbbb9PJJySq7MulPN++sMeNdAFduGT35sWvtWyZcP1lou6PQlW5eV1oHM9rCLbZMvafC1ut2MSNZ+zXJeoNBk0T8PoI4vg8mBYDddCcAAQsAVGETkYQnDVWSIACgQJM5+Xu3/wOcmnmkfLlx9xeWrVISQAHER0KwTD6hNrKSlfSto98tvzn/SVsVFhr2RPxlRYk0T8XexDP972Y0ebXyqef+ZF2J25c3fh2DLJlbY0x4ttdPX8kwACiF4cQbSd24s2gV86rCynsyUW+7hfoAsM11ZZ++dfELvU4PHX95XYm8EbpZFTweivug/fTRuu/ig9Ba+IZBgJmp8fTFGzp6AGqBOJ1Um8uqcKJU068AwO6RH2K+u32L7afS851bnlu5CoSOLe5JtOiQIB8AhCL8gullDwLAkll635N6IafPvVLOv76v1t2WbdpjhTCMNgdgAgAIuJ+BNwk4GA5TmGrcewEBdHUJgXf9zwAUiHDw/OIRBlDdOfwji7tqXsAdcWUSlpeTdbOErD7X0BRryPWFk9SWSraXzirC3m17ubMglEDczekLo39n1z9brJnbUgq5F35c/a1XLC/zoC/Vyx23ED4iPDaSuPLwn7/1r1oA0PWGygRUwwWv7w0hFT7DP/57B/8+AJQWOtt+veWMn02ozahW3acRFN0AYs6yFefpYIpJ3BIGSI1g4Q7o1dkVrWK9ohwAoso518XBbwC26WkSd0x861j0Y8xkiCT+B5JuNwHkWZduluk+gFodp4G+ghuBlm7mGtUhYw5Dxlzr+5XP9Dzo13celT26fkIltWYNABhUXPGwA0m11ZJSSQP0RwgYzQX4W3ljFgCQ1RcjiQYAGDKqdWYlP9/dhWVrMkdAixkYTV7ZxiyGbS9dNNRuJ4eF2nx39zICtfqwKiwwU0JXOjC9EQCwwFABJDWlkzCU9pDl5VIeJx+kgLs6IHQApN9f/th7AJb3jn73d5mFASDBhGJC60zZXmqnJwFmSgCQIvC+J4lRAaE2kb6w/Z3ag3rXHeJ5c0cyoy0XGAIAzI5XCM0VaumKBTP0G4CJQWwSIwFC9Ly+dnD8ZVSa++8O8fyYbu7H1txZ+KzD9tM9RFzUp6G0sr93+z/AZw9h77NvnMB080ulpe7WYjFzHv/rb33uKQK3TC8PAF8DgvJUO4Zfn8KKnXcjJ9tG6LoCFetRnxf+uiSatfpdHT58PBbqXZO5BvZ9I6juevcxKL8bH2ARWSObD2td84ekVe9GPXH2mWPhQOUf/r1Hjl1u3HUAAJpO8WRUVQYAXv/93zzeckbzAHB+CccAfA4gXG7csw/A18IYchHg4o+rv/WVlTvBvwOxDiYQoWYoXRSSU789lr588M7iXz+4+cvnHwGw4/jRE58A8zEAOwH4TFgEsE0hL0MkUTPLb1aaBw6DUCPCQQDPMfAxIXyWUilqirPc9VAGYTk0D8x8oqoBGPI4qbpu6k4iBgPLuugyQQ7ror3X8nPJ95Y+/n1m/DxACwC0he7OLyGoHItS9q3dAC7YfipptobAwD4weZ7UwSzqPivDUqpGpXlgiAlNXZjI6gEk3ZNaSxPdbFjwMWL4Thh0iPwZOHT85W8dP/poD8I7Vb8XAODLRK3ljBSb9likhh8DgL2j3ysDUc07oGWPFwe96YPjQQbbjST+jWgQFn492oBKPbAa7Dr9fJCY90YXoXU9732LR0/T+M/lE7jR4rTWda1S3T3Ws1iVqRzQ8aMnvr9kvrbT8ZN6Qm2eCiVRPqZGloaM2YJKbs3xE4WWO9HLSAIhE47jjCau4OD4t6oSsHxf317rbt9+/Og/fh7BQvEUCCUwZXSlIwylnfWkOj7f3XkqHGMYKzZ+wDmMH40krg47MplMKO1kyymYCnlVVyYSofSOks6JwAYYICCRT1TfNZSW4/kGXDutuR7tIeIEwGOCvMYvlP68dPrab6UcP4n57i7syP8ImpcxVWElXZnogNi73Lj7DIB7AAgwsgBmCTRmKG3kjCrGUxf/ja5Yp+Mm0LNv/PmXw+tOhn4FEHH48h7HqZlH8Ob8JyvnFh/AucUHpj576HE07PHyePoiphr34q7iX34OADJaLQ/gWIBMY1xu3FVgpr6EF86GpgAAnIxszGiixENxnz30+FcQTubPHkKv3FU/M/aXqe6fJzG6zuMe7y9OG/WC3wT9Z2XEiG4AVx0Ee/2ZXrM6qAIqg3QECRvRS08OOlkTZppZpJJqff948v37E1pruWEVky13ohba0csA/poINRBXc8Y8rrYO4MDY/0F1exNpsKMRSwD9HIM1EERWn5cASJAG08OV4cT0/UTSajkTm10/CRBSCIo/bFu2NmVcP5VNak0AyAJcEuSndcXsLHR3tMJwXhbEAdMzKT4rI5pw0pqw3ZY7DiIeA5gIvkip9blqZ9djo8kpo25ttkaTVysAYKhtCOGbxPAYyCKQ7ABxCyQVlRzLZzWnK5ZrKF103JEHZ1qTh6807mz9xp5/eiy4T3oG4NJQYna/J/VhAX+55U489tfn//hBAPiNPf/02Jvzn8Seke8eA4DT136z/uPqb/114IRj1K1Ne9La0o+X/cnQKfpAGeBSpXWgBuDwTPtAq5h+r/Ube/7psVMzj5QjnH1E52pHjiXUZhYADo6/9MxGykHH49kT6feLkZaAG0v4G3qTN4hTj/qKmx432896MfzeWDE1uh9EhLXGvtnrQJ8G8bMCEvWTCqwqEPH52MXEvL3AVOPeiwgYPkq+ODacmPkdy8vs9nx9n66aiay+mFTIw7JVKvRKPAGHAZgAOuOpi6cU4RROXn08N9e5JSGheAT+FYDuBPwMgWwAlFTbDGIGw2rak4fTaqNIJN2k2ro42z7wTe6Fr+iwgISmdLEt98aLs529pi/VCQLqCbWDpjN+xvKy23XRSTGEACAdP5Vc6m7jpe62GgPfCYtIfEETFsAwRpOXGQAYZABkqIrtJLWWqZLTmcy888JU454icZizTvxzmjBJES5tzZ5JX6x/rLNkbbWXrK0AUA01nmxPkoPTzHgzoy1uc2UCKW3poNcxhnTRmWy5BXxv+ve+fOvoKxhJXoUn9RaA/MHxl3Bu8Rdh+9kWka+rwsmG72ovVlXJvZ6iuHkASDqx15Vfy6pSTw8o+tFPvcl4I1pDCq9i8j5tYkPZbuHYPa/0Wn18WObrw5cPSoD5INL2Z5Ytt0YizsAMwfi9r1LdB4AvIvpjrDB+lKCCkWSl2rIL6DjDOdvP2A2bkqpwlpJaq9ZyJ2oAqqowD4MpCSBZae3HkDFXW7ZKtkLuZWalpgnrF5lpM4NIsqgDABH/ewBIa4uHk1q9lDVqaSK56EsVCGzbsOoqzITazfusitnO3sN1q2QyQCOJiiZZFArJy6fmuzuQN66Nu1JXCaC6tVkowtnq+unppFrfBmCbI9NuWlskELjhFLHcLKUAOMSYaC2NXw6ddy8A9IcZbT5terlRAs55MtEaT13UM3qNfFb128devtDxhltZfbH+4+pv5QGkGUgBACHYPIKIjgrykwIeRhIVWjS3JzvuCBr2puWMtoiJzIV9lpcZAQBP6stDRvWV6CVMN++Ymsy880LstVcAxpbcGw/XuuX9gnxHsnIeWF07np/G3ndrf3bE9LJpxffgyUQrfvzJF9eeIHEq509Xy/nTUwgmcv88icfHPxDQZYP552tmo30Q4qcRRRzyCJ2XHzX9DMyTjVKPh9U4Pr0/aSUm6eMMXkFYszwAqtBpZi7Unckfl7JvFZipNmxUPqWJrlm3Jic9TqR8VlSA5zTFwrb8j6uz7VsrppeD51MLgCBi5I1Zx1A6z2a02qfa7sjBWnf7LqSZCDzcckYVVyaGU2pdAlQhCicS479atktpZmQAvhWgJhHTklWaSyit7UvdzbepiqsvmVtcCXXZUDqqIJlShQdHgpJqq5lQmve23HE0nQmNmTyGuo8Yb4OwhEATSYBRYmA/ATsIrGrCZIC3emyAQUbLGQORHGdWyVDb55fM0i8BmAdIJ/AJZvwOEJaVIaDjFjzJYsxnnUqZs5zS69VObfhs9FKI5BIAOH767VsLf1G5tfCdz9MXce6NJx/6RE5fKC1Zm4uuTByptA4AoEpSbbU2Z945K1lNTzXufeHZN4IMt3jIKqPX9mf02pttp3D21v/55L/e6EzpZ75n3zgRVaOJo+HimsWNmLxX/hqh72C9sW/QzweqxNK3SOXD73WshAqPYaWG+5PYIG0k+2yj13qT4bkbLnjqaOLy3QAQ5HWv7nB1DfcIsspPgVGIgUiqRHglxHiXAKrszP/gcEJtAwByxtwFz9eR0uqvXG7cc/py456pJ198/F9HfW/KvHuX4yc0AJhp70d56DVTVywIkp6umDSRvrAsyM3admaxbm9affWEPzKU1lOOn9jHUArMyDMDACl545q7KLd4Q8Y1zZVJTRW2biimqivdLgDUzBKn9fpyUlm2N2fPTc+2by123fxy3d68hYDdALpMmCWGxYRkwKZMivAIgELEGdODN9PaPwtijRiVcv61kpRqOvBxcAaAyozCeOp91pWuKYTfudq4M71kbtFBjLx1zXT8hEioramsXku7MlUdS17pnK39KrL6vL5slVpn5h7Cq7OP4vhRfOLVWeDA2DcfazmFpKE0AeCbACqqcLKun0gziyQQxO6/N/172DPy/VOOTFSJ5RMJNUhG2VI4+zc3mhTrTayD4y/1tl/CGtVt6Yv41lqgkhuFk27E+H3Zbj1mX6uP2LjHY+2+0td1Nt4+zNA7Ep23EWb/T4nS22BCCxAHzHisFeJHBmGZAaqETpjK+aWfb5neEFTYt6uKnRYkbzO9fKTyPAzwPk8aeVW4C4rwnIXuzioz7lq2S4cBPgzQM3Hn33Tz0D+PDV80ghJI0BS7c6l++C2As1tzb+wxlE7BUICsUXvqavPQCwCKYPqMobTBTHmPjQYDRQaBII2E2rIVIdWmM6HYXkaqwk54MtWaSL/nKMKZUeCPXW0eGN498gNaNLeZTbuItjfigMDMcAnIEWOGQZPEPIMgpFep25snOIhMaABUgDeBYQPYPlW/9zIIrwCYBKAxB4G0pNYkhTy4MrEPxJcPjn9z1zu1X/arnVvI8jP12c7+JxGGzr516Y/eWnkcfFe1sycLoFXK/vSV0eTVSkpdTjpeGo5MJMI2pXdqv/wCEFSt0UT3QVVYaZ9VLJql3aY3VBgyqgkJEcIdr665+q+Tz97LhCsPvVZq2mPYknuritXSuz++3FOxb1bqrqXeRs6rkGHjWkR8zOvGC/vLI2DoFlb7CY5hsN8gij7l+69pQGjwWOy8+Pf/ZHSjzD41oy3VAKBhT646sb9ghO2ngpcGUQTQIWIIksBKCOtPANoEIHWleVcFoB9HePYAeUVA8NB6DzQsqhhWitkGZhTOLd3/CoJ89AdL2Tc/DgAL3R1K3pgxXKkLA9ZhZrwfevJJJZcz2nI7pS//+5Y99g86Xl4Bk3K5cVcSIH/b0E9orrNHBZh89rWkVpcJpfs+Abm6veXghaVfGAfgARgiQGewTkQuggjAJIFzDBABZwD8cwST6+8o5B5gCAUgkhAtMCoMnKLAhxC1uwvANk3YhiK8FML896TWoL0j33ZHklf1d2sPpPLJa8fOL30chtLKSlbSAODKJACkwCjoajud0+eLQ0YVdatoeqx3HD+VRqyIJoDq1qE3MFW/t5PRltN1a7LTsIrLc909tQNjf2PnjLnQAXe2l1O+nqTqT6iIsO1R0clbC99ZpYIP6GKV57pP6n4U4aQP4w9YBRwa4Hn/awBbwt+yG3Qirks3K/E/aq1AnWkfOB1+v+4mDo6/hLfmf+WPiNiZ7+zUx9MX/2T70I+fO7d4PzZn39kDAIL8ZlAyijMIJrIGYIwZvx6HViKoiZ7dmf/hlx2ZRFJtta61b8m6Ut/j+foEMy0ReA6BOhrdrhKOoeiKBQKIg5TQbWPJ9+9fsrYW6nYRAJMrlV8rZi6Q7afh+gnMtm8jgNUrzUOSgLYRZJ15M639iivTh8CcAGE7GC0AHoVBdmL4GnUNj3WVSI76rLkhXPWOIIEHkwS8rwuTFeEtWl4mL1mfAXA7BfXlfBD+FRifogCCi0Vz0tKEzU2nCACdrL7oSalKBpEqbJFS68X7Nn/9S4bSLV2q34O5zq7HVLKSEoqR1Fp5Q+nQka2B0vRu7f7nfrrwyZPAivO0lA02fcwb1wofK/1vL2zNna08+8aJKQS591i2Jn9Uyv008gE82LAmjjjS0P/j7/3q8+eXPn7sJtBwmO/urPSH5T5gtZqPglah6AYwbJxhjmENZu3TXiJN5IXYGNfRABReHTHpP0Cj6C2aa93MjbLVPgyp8YH7NwKI05K1FUvWFiBIRe1MNw+dx0od9zIAF8AcQCMA/paID4egmrvQK7hIz6S0+nHNt5kgXQDnFXiTPlRVIWdCQruMnpTiLEHmGABB4krzzg6vVIT5ZU042kjyigWmyyDs9KS+5UrjEGw/08t2JyIwswAok9KWicACAC1ZqQQAwUwpoiDVlkP8KgL721XJhUKOanqaD8BgwiIBQ6F0PzCSrOgAj2Y0rVPt3rIZgACQYWKFgC+AoCmwLvusjgbmiPBHk1cuz7b3v/C3U//wBYXcf7Qld2ZMV00S5KU8qd29NXe+0HJGaiOJq69UO3uQ1ecLQ8Y8tuTewpK5ueD4Kdh+6nSsvPNe4HG8W7sfte42NOzicNMZLy6ZWyvhInAaACqtA6VbR78TvcqePRqnNdT2eIi1HCXEfOyrz59748mHeplrg9JSQ0DOFIBBpa8iFfu6MNlakm+AjX2dVjCAYfvb3Azj9Jsigxgvrv737us/B60B0On9rg62yXvpjXi79mCQacawEWxW8GCgYor0RPpiPC0ytLX5YSCQjwS+i4GJpNL4uxLC8X39YU8a7EmdVOFU57s70yrZ8FklhTyWjE556HW4MoGFbhm66DiOnxQZfa7ddseaBGgMniSCogobkEhIooSuWIbrG6waDubNXZI5TB8DSyK4AFvL1hYtpS6R7acDrYPgU+Bhi2ofEwGnARQn0ucTlp+ZBCBML2coZFs+a+MgMsBCYUDMtvdJAB7APyTg5wBWQARiEOApDIUMzbJNL+On9Tp8qaUF+SUEC+Vzd2/69//Q8nJYNLeUiIISWsvmJEwvX7W9NMr50xVDaX0hobSSDbuQ8OTkm66fqkWr2PGjJ/ZGe8XdMfFy5d3a/ahbRSxZW6qV1u04fvTRveWh10quTEAh+4npxgEI4ZlNZ+xLnm/8T103BwXuXfHJEkFqjx99FLHdWRDb+rp8x8TLU/w09j77RhCjPzj+EnYMvx4PeT0MoHV09z/Bixf+8bFBE7IP874uBLWP8rHzbkqNvpH/oa/5zUBd48y9XrruzZgrHziisBZF+ej9kMby8aMnENZOD4tJ8BGAygAXg09Su+7Qwwh3VMGKY+QUwFUK8sYfpiCOnBKQuk8sLC+3zBC6CvcyM97clH13OwAQsTvdvHNbwy7+kSc1TTK1dLWrAsQGdQKeJLhgEiCm6dYhAKwyiyEiXwEgwYIQMB+BIBVyBLPQJRSDQawKhxSy2fKH4PipSPCngg9iBpdBaFxt3fEcgD9iIA2CIMikQq4pyNc96MRQiJl8IggAaQYTAS4zSBATAEnsyy25N85cbty9t9I6wLafLoUJMT1KqE08uP3/+/CytTndskcx2947bXmZousn8Orsoyf3jHy3CgBS4hfmO3t+Nakt/6or0z/mp1+eCt8NmtbYn5ya+S/DWnP449Hk1V456PH0xYrl5aCQU2NGWhFuYKcTTqb0ADUXy1cv5/SFUnzTh7V+7zsPWGdvub7NJFc5zXCD3PS+68hjxZk2FT+2AUl+Q+oPI24wyQVYrfX0P7v+/vfGQp5T/ccjv0H8Xj4q4I2KsARUVK0k+t5HsZdFXxoyqk850igwi3TI5GBGIadX/wufVdXxU8khY17W7c0Zn1VkjQUBQC5bkzRVv3cexHlmTBPwd64272gAsIIiDXyQoQiVvJYgNiwvZ7vS8AEGiEcReNRBYDAYgJSAltKEzYI8cv2EVIS97MrMMANQhSVGElftWresuzLl7xn5vgYAlxt3YsHcAQJ8BPFtRlDN5iyAUwCqDEgwJADkkrXltjuSF/DJ93Ui+CxJNbGSV99gwjCBtXzimj1kzLRGk9P/ftHcVrP97EkAIOBhENK60sFk5h3cMfHy1LNvnChvGzqDpj2eTKjt2kx733JWX6zOd3c8BmCfL/W7NKU703KKaLoFjwleUu2EEjYoAb0pcxZJ2TEB4FL9vqnbx146tjP/g6wivBZiAJCul4ciHDTtTaWRxNU8AIymrhwIASN5AF+7PlMOADA1390JABhPXRwEVJnq+7wLADZlzve0Qlyv0sbP6WkLWJGCg6T8MawhyQfZtnFcf6yPDSP+bpKuizQMus7/VDRoUVDDrX5Qyr1djjF4HwQ2qG46nrpQ9KWGZWtz2pVJE0FFmUiiDwvhqZCAIjxDFRbpignHS3rznZ0mUWi/E8AggPCrYB4GAAYtEPh9ZihL5maBwIl1bqGz/SoEj1nuUBFBTfe3c8b8Hk1YZQBou6Oe7Wv6psw51oSFJbNkW15OdRgeCLxr+JTq+EksW1uFI4HT1d8OymUg8LsBUBBcULi1KBdCiVskoM2gjCYsqlubNgnhY/fID2i2fRt8qaLpFHUwKgj2dcsgiLUry1ZRq5tj6mJ3K5rORGEsdekzntQwkqjkbD/91nByBmm1UXyn9ovHy0M/Qscd2m26Q4ZkZV9Wm7+rlH37YNsdTjqeU55u3j6zc/i15+rO5IOCcJcqejug9kgXNhw/sTP895jHetZQu1DJwaHjL0dpx99648mHPgEApjtc+unCJ48BwGcPPX4MAZMXAZTCOvA9xFxENypWgdX263ox5zI/jWNYkczHsDZDlACUQjs+GjvueIuXvLohU21EYn8QqdlnG38ktBHgzUZoFQRWES6y+nwho8/9+i9u+bOzDbtYifYCD2kKQAmgiiasuzVhIaG2Xplp768iCKuUy0OvY7p54GBGW8640pDS1aApDgvyiAKjdQnAeTAOM7ATgY7tBLzGPhGbaW2x7EndtP1UnqG2AexXVQcEGDbJLCQcBm0eTU7XHT/Z0IT1/qK17asA/csrzUNyW+4NNWvUkgm1leh2hgDG4tsLv9pBsB3TAQDMzAYRmEEUinAfDDVwKYARePyrCCY+gZh0pUuuNKALy7+4fJ9v+2lmKDbACSK/ZCidrOOnVQkFTMQCPhFBA3CYCN/UhFlkJsVQO4orkx/zfdWbs3fsm0i/T5pi2Wfnf6VypXE3JrNvbc8Z815aW4ImHNOJJRL97oE/+Nql5XteeXfxflRaB5DWlkqjiSvFnHHtMY+NK017gppO8STAW6RU0wDgCeD40RPPh13Uga//dfylhip1ZG6lAKDa3lWsdvaUjx999DpTDqsLM34uOhCF6NayeeMMNt3cf2Q8dTkLAAm1XY+p3JGkPRaelsWK13ut5Jh+5v7QIbt1HIGrfr/BGDe6jg1f50fqdS/nT58eSU6XpFT2z3d3Fpv2GBAaxGEMfSpExU1pinV3xxnZ7bOSY8YVIgaAx5atzcOqcLYsdLfP+1JvlYdPk+cb5nBiplRp3X4GQYnjr4H4MDHpodQUAJtgcgGeGUtOJW0/lZjv7Eh4UD0w1LpVAjMF+jqgAEyXGvekiGkW4AQIjwFMxORPNw+p4IA5AZaC/Ayz2mZgOwLpoajCIcmKACCZNcFgD8QCTEuCXCSU5u6k1vys6ydg+9m0IzMoJC+j2t2D8fQFYfkZe7Fblj5rHZ+VpCrc0eHEjKiZZUDCk6wpQ4l5n4gtKcVQOXfqsxKqLoPEOdIUS7H9DExvSJpeTk8oHUOylmSCpSkWLC9LLXcMt4+9hI47YtpepvPG/MMnP77138D206Xx1MX9OX2+ltTqAFBNa/WkhOi07IkMQkfVuaUH4ttQfzr6Ei8MGVOpo+o/RQCVrjscb9dPGym4sK5jTRdWEb2CogHFFoIyViT9VYRCBCuMvqaDaqPS+aOOTd/kAnAz/fbC0jcDwV2P1FdnH526b/PXoQmrWMycr+qKVZlqBIUP9hX+jz/clLnwaSAoRXy5cXeVGYWUuoScPgddsYqL1jaowrFU8gxJIucz0heWfv55ItTA+BSAAsCF0eTlX286Exddmbw9SO+ECfD/G8SHmekgQwwbasdUFZ98n71gnUGeiFVmqABJIhAAg8FFAkwwLAacUEMIuwUEfKjCMlyZ9QicBshTyNS25s7wbHs/SRae46tMgMkgXSW7qCkmKcL7r3VhEoOQ1Br+fPcWuta5BZIVLFubp5etLS8CwKbMueElc8vvAKRrwqFCckoKkq2Z9oH/pm6XPg1wVhOdu3cmZ/WGXZSmN0y2V8d8dxfl9DnRsDcNGWr3vOMnTcvPgBiY7+yoEvGbte625cnsuwd1pVvVFLseVd9NqO1iyxnZ5kp9m2NNgEE/TqotEsJr7ci/dvYnc795DMCR8tBrJQDIGQuhZsZZgOLbKgE4sXe6+aUjSbVRHEtdBcKQ5nx350DHWFQwsmWPF12ZwJ6RH+RTWqMeHY8iACPJ6dLW3Nnr+ogY4EdP3H0aDZwGgI999flv9beLUax0eLCzLPocfmsx1c0AU24SxHIz0YGfOW3k2lch48IY59SpmUfw/crfjTtHejuHhFQGAAIOM2ibK3X4rM4BWK6ZZTNvzPhSKlbSqOcZONx2CtscP0NE8BiYUYWDjFY713A2TUqoLkDjYPx3AJIEpiuNO8FAEqBWCJxJAFgEMAogA3CamVwiT9UVsytZy6rk3mrLZAKQMqGYniK8hUJyasLxk27D3mS4PqcZIEGeklSbNNfZzQKO6crsvCAPCtl5l5OcS1xTJrPv4GrjIGmKDSEYhtJWCD7GUlNwpcFSqiMU1qa71t6bA8EihnaldUeo2CAF4i8A6Iyn3j+lCrOQUDt3+nKBU0N18XbtVxzJqtZ2x5ojienFhl1MGEor27YLeVVY53XVtHRh5lRhQxFuCiTvUsjGq0/8Fy+dmtGe2Tn8AxDcpqG0N0837kDHGymMJq98I6W09zXtsfSW3E++fLV56IVdw6cAADuGXy8dnnz+2Evv/9GRSuv2iuMlvnCudqSaUJvZUvanL8x3dhY77mj141v/DRBK64D5nu+98GiiHD/aK8pYPjj+En46/4mvHZ58flVcORIYW3Nn15T4a+3QGpPqUZr05xCrnoue+dhj9o0w2k17rPvbxSUrrsfHr6KYCdKreXcTmPQN06DowkZIvbR8zxEACAsQxotQlBNqy3D8RLiNUeCQA8FMaW0LABThLne9QhaAUbdLGoP9LGpyIn2+Znn5kitxAYwkgFOaYsNn7ZbR5PSFhc6OpCq6Qx4SGQYJoOdGJyJXV8hLEGB5nNyFgIF0CmxskVA6TCR9TbR9Q2n5y1YJkhUuZi5YCaV1Yapxz6jlpwkIAuPBJbPQFQu+VIXPikFSlsBC0RUHvpekpNqBJw203QKazjgkqyjnX/MV4akL3R3s+qlwEcJeIiQBaGBOcfhgQny8DsbPg4hdP3G4kLy8VO3sZstLY8naCkPp2paXUZnFYt3apKvCcRJqixThkWSlBBZDgv3dvlTnF7rl50YTV343p9Xg+sl9ADDf2Y2F7vblpj2ec6WBjLY47PrJ2oJXzlpeDiq5aQDFi8v3fsqVxrZr7V3efHfPmwCfQm8/9htTDEtxDGEGF/om+ZBRHahGR5txhMduKtzVFyLbMqDJQNNhAC4+HrqLaK1xyxtok4+1vS4kts51fBj6SvyfASnBN01q0x4rWn660LA3FY8fPRELE3Dpe1ef+Be9wRj7wxzw3UvWlsjO6iBEWjFgA5grpKYSktV0iIPvgNAh0N9UWgeeYqYJgEcACCKkwByEylg4QFA2WRCkInyLwDXPRxoMXZC3FSAiAhcz582cPn/Sk+rRtjuWaNhSBUidqt+tE/hjAHGo7ntRzLqU+ykIYFfqtu1lDAFf9digQnIa1c4eVDt7eLZ9CwXgNgZIeio5nbHk+wlXGrxg7jKIoTAAjaztzHB9UhQAvkq+67EBgBIIOvBBEAvmjpmWUyj5Uufx1PuKItwF20u257p7T4ylLhXq9ubfYKZkVl9o+6zSsrVF5g0voQkbY6nLBV0xdQnBAHC1uf8pQX7Bk3qCIN+czL6zDABE7mdMZ3ST4ycIoDqAV9puoeZKvaQIF5JFYTRx5VOa6Jo+1Mm2WzgHBGWhPZmsnFt8YCqU6OtSfGvrQRN6oxDam2D+60pZ3wTFtdI14/QDYuHr0arsthu0jRycGOS0vFkagDqM6KYgsup8d2fV8ZMIvei4q/iXn4uVag4TTIAtuTNHDaXrznV2p9ru2A8Q1G57AeB/BCYmYBmEb4RbJR8GcAFAmhlvUm+DB+SIoANQN2XO8ZK5BZIVr+MN+6Hkp5wx11TgJRThYb6bHQchQ4AuyAMz5OXG3XWA9gOsc4hHBYMpAMmoAMsQziqZ4RFA0407QeRrCnlJIqn4rEKyhunWKABIAM5Y6qKxZG4lDoVfzdw6vWxtDV5a4EUXRCAQq0RQBTOYyU9py522OwYJVWWGBmZl2dpiMPOdk9m3yZUGmV7GXDK3LyEwRz7lytTkpsw51fZSacdPXVy2J3cSgKa9SSjCHbf8zP0jidnhpjO+DATwYwQ+CYBwYSJzsdqyC8Wk2sBs+zZPsmDXT1dBwHx3V4vB3rK1xQFgDhnXOgm1DU24r9zzp3/VN9mej4pOrKKD4y+Vzy3+YlaQD9PL1+PHBhWHWGur7RgNAs3ciFaZkfRFrLLp+wpGHOs79yPZFIG+iCfXYbT+thHYJR5Tz4ff6x/0GkKK38/J2HgbJnWqcW/k3QSAsusbeSmVtKF0OwiyyCoAMGTMddJa3a6Z5dFg3zMFE+n3UWkd+HMQRyGpKoDHmGkSgEbElwMtgCoAWkRsIMh2oyuNQxzAUNElEJhYBwh1azyvkjckiHek1dqi5aWNydy7RoCoZTHdPDQB8AQogLlykIwSIl6BAMkWImDIUwVYYQBJtSmJSBbT7xGzEAtmGaaXg+snAJA+390lAWBb7ifC9Q14Ut8LwpvE2MZMROSCoWAsNQUGkDeqkuC5AA29v/zzqs1qOCw8ZswQoTTb3kccFI9sG0rrIEPYzIQlq9RaNEtZIqgARgloMLBYSF0e9qTmCvKNK42Dpiq8qicTACHQoIKdX8KCH6huy/2kowp3WLLCrsQyQKcB/AWFW2SVsj8tDRnzD0cv+/Xf/83jYWFJ7C2cPDZosjz54uPn3njyofIdE998BkA8Fr8elSPgVBx4FdLU6nZrUz8mfYNx5Ho/Jh4rqv8zHzIUFi1sg0A90XgbcujdjONvgEnQM1sG+BHW7Tc6rkaVRe/50796MlqZE2q7EyCrejugImcsjALA9qHTftMuvtBxh4uOnyyG9dsKAIaJAumvK+YYMwlNmDD9PEL7/m0w/QoDPohTRHCYIRlwQGwQQwGYFWIiYh9gTQiZFIIT0807CGGwmwgqGJLBTKEbjIBlDhaQCoC9HDK7Rk5YKIIxkb5IANjxE77HCajCpKxuYcnc6hNYBcDMpFxp3gkCVMCFIVoHPZmQPutyyJgXLWeMZtt7AQhcCz7rDIwTJAUaBQMgVSF3q8+aFl4bGBgWgknA1hiKhLTZ9Q0GwAz4KbXOnq+OS0l62xmTCbU9K4gUgJNMMMA4RYRaeej1qisTAIBK6/bKleZdva2aASD0uJe25N5Cwy5WrrV3/+F085ANAL/9v//jT/7w7z3yvKsYWQD7ztWOHHv99wv1+KS4e9NffQUALi1fD3mNqA9jP8VPY+9L7/+0JODt77gjtVLu7euYIUZr1pX/iDO3WohMylgmWZ+6/rnY9zXV6n4V/0aM1Qd2ORY7FAf+bJgGaVB917ahfns146L8858ufPJrCGOtx49+POyISz+c+W+cAOQCbB86XUxpdSTUdnW+u6vKjP0E/AIYtzCwPaG2Ogo5Q7uHf0ANe+LBS/X7kp5MJECcRqBOMxgKAIUCaXWaCbvBlB5NTecAKD4r3miycqVlj2Tq9mbquiMKBQUjwYAkgAHfDz6lD1aTAO2hIFvNZ3A9n7o2nFIbDIA6br4719ljbhv6cVply23b23WXE0qoliNYKBjR0kEECJIKEQuARd2aBIihiy481qCQy45M5YiDXV4JDIKEQh4U4ZDvKwigAgQixkiiEp6ru0T+D6abd/48M+sAbRpJVFqL5hav6UzA8dMzI8mrbxJ8nYi5bk3WR5NXag174lO2nzQtL9fZP/YfXhhNXsWQUS29vRDsZ7lobYOhdrBsbt6/aJZQtzYXEVTztRlkHD964hOO/+2ixzrANNJ1h+9qu6NOSq2/pSlm1pNG+p2F+4/7rHZMdwgS2jPhZLqu/HMflW8rfLvYsMeGW/Z4bdBxhPH8a+09OH70Hx97fP9Tx6Lw3Bq26w095nGgzgCoaz38HDT5I8bIh+3yA87vb3/TsNaPwlF3sznsa1AZuH5LpilgsJ1FgBr5blv2WPib91hSqW/3pJpwZEYlwjQB7xaSU7sTalN40hiVrFTD0www2gCSDFAomb0wFj4NQgrEE65vpCUL6bOqnF88YnAgFF0QC2bYRNBDDDpn9QXP8jKGL41hSVAYzIH27isqnNyyWRJL2NKRrBoS4hwIE0PGguH5WiLl1tFxh+FJDYCykmtCAMDYlDmPurVJGEqHfU93AFaYoaT1RQIAKRWpSte0vIy+NXdGyRnzAMPuuMNou6OGZ+nwpRZu08Y0274V23I/IUPpiLS+uOdq484EB7kGUIWT0hRnCYDn+FnrWnsvCBgHIEGwFOGCSJoqucm0ttS5tfCdIoDKT+d+db/HUeYuagCgKTYU8oYz+sLw5ca9us8qPJmwAeDc0v3PAVTZNfz94yJ4hBkiWQSQEuQBYQHLnDHf2ls4Gbc1V02c+LbN/DTK5fzp6B2fRt+icAP1O/9BmWAtGoTU66OIabO4ge0c9tFDBPZnvYXjXVeVdQ0G7S0SN1hYbpY2hMRTV+2qglXb806FFWBKYQWYCxRunKCEmGtD7UKQ76oCcBkawuNTjXvPlIdeu0MTDpJaw1SE1/EYJjOGgxRx8jlI62RmzmX1+d9RyJOmN+S2nHE/DLlJABYRlgEMhU4yFSCFiHVmCEV4wf4vwSIUmewsyENSa7opbYk9P8mG0ub57s6DEho37AnF9Q2piw7nM9eoZm5H1x1C4L8jpNRlSBYMZmYmafsZlQGdABDBXLK26GA0CRApbTk3ZFTVRXMLl/On4fgJ1Kxtia475DMLwSBiBrYNvQECc1pbQsspkGttngjrzIEBXGneaQE4HgKMQMBBBlwieADMcv706db8J/Y1nYms7adbCB2k4+lLtenmHdBE9zMEH4vdUme+u+uVq80DGDZmcoXk1J99avc//4swN7wcmWIzrf0/AgDJSnZz5t0XxlMXi6afRMcdOexJvaUpdj1KTQ1BMDeEnmJA7DimWkaIt7Uo8sJft7FirB8AqxaQdePJ69my4bU+QwNq2w2gVWG9jwAPvxeBSp/lpwO8/wdl+PVs8v7jPYkextDD1ZvvBghNe6ykCQuaYVUXrW3PlYdeBwDsGj6FpjNW8aT2hKF2s57UUl2PLAB7iPg8AISbHAKgEJLJJQD7Bfm/HUheZTTI7iQhyBNCuJRQG2remFMcP+E07M26KfXdHCScBFwIqGAGwD6IuGEVGxKKQWCfAJWZbYBoNHU1ASCdT8xR2xnRUmpTCEuySl15tXk7M0gBGFu1n4IgMZk9C9tPY7FbRiF1GUvmFkrryxDCE3OdPZBSJRCgkCN81mdB+DMF5j8aT72vJNQmWX7O/9HMfy0y6iKNpS95heRlddmcxGxnH3wInm7eToIktmTfAkAaM2kECQkFIJZgOEBYKx4AM02qwgpMAeGff3X20aknX3z8kfjkPlc78ummPZ51WUt7Xj5vKCYApIlwFownFOElHJnKA/iLJ198/Nzrvx/sRQ4AqrC/BgCV5v67DbWDhlOsfnzrvzn57Bsn/iLqHwhs/rCGX4+Z9ox891haXc4aajvNT+NLCJiz57AbwDhTAD4f3xkm/T82Hlmj7aoJGlPL43ueRZO33N8+TuvE11dt4LgBJvvADP5h6aMYs1d4AjFo37979/Ldjp8otJyJ+0F8uOOOoJx//RkAcGWiFKGuwnJCKA+9OlXMvNe52rx9fyC7MMFMGhG/vcLgAMBfACNJQGI0ceUVyWJ52S79hmTaAhBl9DoQxLnR9bK25xtzEiIHoEaEoBhjUPWRGXBU8qoAZ1NqPd9yx6GQSz6rXUGsSlZ4obvTZxAvdHcqmjCVyezbECQDdCzABB8KSZpu3gEAaDsFIESVTDcPMTPsgtQ1ZuH4rKUIPhgETZi67+tZAFAVz59t78XBiZdRq5c1QRLL9mYjqTc96ahUtzaRL1UGobM5857etCe0BXM7FZKXsWRuQ1pbQtstsEKOI4SrM9NegMjj5E8AmEPG3JsM2qMJB/PdzDeOHz3x42ffQB1hdZXbx16CpthXDaW7hVmVvlTSACd2D3/viQtLv4hFa9sygM6ZuYfKbzyJMmDlU1r9AABk9cV8ryhEUKwX5xYfWHOyTDf3l5bMrTh+9FFk9b+sZ7QaktpyGtdnmMXpOikb5aZHQJuY9I5QbxVglcT+wACRvnP7NZLPITAbgOsdZhti7LUKWcSdf4MobFvfyA3ciG4GJbeqlFRSa1aTWrPacicOAtSa7+7CfHfXFBCEapr2WBEAbD8FgKEpdsp0c7uZRbaHvSLWwCiMJqd+XRFeTVfMaqV5IImwfppk5aAPxUqri3MtZ3wLCJht3wYEHmh3W+4nutDkgttNpy2CQ2HxSQobgLA4nKjMSVbh+EaWATunX9MdmVFdP2E4Mu0wkwIKouybMudguymMJKYlEYQrdb/ljCvjyYu8ZG0hyQo67jAQ5KYDQIeAxLI16bedMY1Z8KbMuwHSDlLMtPcNAXh6NDktARZXGndYte4WdevQWxSE6rA407qtSIErHqXsW59vWOP7t+dff6ztFPLX2rcKq1fuShLAuiDpSRZGSlu2Gs5khwivZLTFB7tufkIX7Zwgz1PILboymS0PvXbc8RPwWSnDN36UVFut80sf/9ti+r27GKQPJ66Bg0QeK3KeRiQgdZ/VMcdLpg+Nv/DlBXPHCzl9vhgevrvpjFcrrdt7qmrHHXlqobsd19p7CorwvgpwyfWNvKsY2YF7dK1DB8dfKkeIOuA6230Q6u0YApU/jaCISbxd1PZY2Neno+8xJlurFPVaXuwygLvRt+B8ALph8c31wDMbccCtx+BrndOT6ACmon3GKq3bqwgdFbH6ZIjgsu8vf6zIjMJ7i0fOUQABrVG0KwljGwglIeTBcv70lywvh0rr9l0IXNBo2BPno8EV4XpRGAoQgsDKleadQdCMwMQwQyd4tI6QBquwbG1WJauQrCgEGA17s5LVa25HDhMz9CAJlRnENN08FA0nQoCNAoac9u5QsFJdToL4miFaoxKq70md6tZklwDJwLBKLqqd3QiFvgCAmdY+nsy+I5NqZ0oRvHO6cacamAQoEMnAFQHCZPbtSsMaf8L2sv5s+zbBAbgI23I/lkQSzAIe69LxkwCQ0L32L+cT17ppfQmL1tY520/lAKjMdCdAru2nhC/1Tq27zZvr3oonX3z8keNHP773V8r/6ti19i3Flj0yrJJdNVTTMr3MxNXm/i+Y7tB2QzVP3bv53yKhtBog1iw/XdicPVdcMicLM+3bDrvSgOUOmUCgjoem3FXLyxxxfSNdSE89DOCFWC579Fz7pe7UmbmHyq/OPhpPpCnHdnTdSEWZ4wgLWAA4j8DJFx3bqPOuf1GIUx5r1M67CdoIfPY6+hlkpq2KCtzQRg9+7O2Dvgokcfzoib3PvgGUh15DzlioeKztBzCc1hZzrkyRIB+2nwEYPyLAMJRmUcDZu2wVjwnCVzXRATNJQAhB/i0MIZiF2JR5tzbf2TMhGeRxkgDWCUQgOshghYgMYn7XUFq3WH42FzjEWAMwqpDrAVJqwqKhxDwAJFXPgSeTACQU4bEg13dlQgl5M8hCB0NTLKErpuy6w4EDj4SpK52pkUQl4XiJTsuZyLmcSnPgjvenW3coYKKR5DQ6LuD4KYAgrrVvcSUrr+zIv1a73LjzPkAVACmG0oEqHHhSFxeX7/n/gUirtvdUHC+dB/kEsHBlQgDwXWnwfHfXHDGVQZAJtaExREqygpHEVRSSl9912cC11t5DLWdMGEqX3MAMAcDZMI595NtXfv8VZn4srS0vJ7T2rQS+QgRtydrasbycC5vqr83+lz+ezL6V1ZXuWEJtJlXhFDZl3kPdLsLxU7Dcod7kCXMe8gAgyHeTaquFoL5/eciolt6t3Y+wdsFUf5Tm+NFHexs9XFq+p6QG/gNszZ1FP8Xj6jGbPI8VbWSQEy9isvWcfGsBdc4hpq73Of+q2Hi9uIGS9GbU8jWYMrq2LD8dJPncyKMev961FsL+ODqAtbHL4+mLFQDIaEu1urUZhtLFltxbVxa6O45mtNq46WXvc/yUq5AvOu6o1IQ9WWnv+3/pij0EkGCwn9Ia8FlxmKVabe1O+jD8cANEhSAD3Exw6xHmrZQz5hJONw0CI60vQzKRJ3Xy2CCVXLHQ3QGCDEPzTEP6NZasinxiFjPt/ZBMCKS3hABTUm1hyLhGw4mrLKXGs519TQJ2J9VWOqU26kLx3Vpnt0dwE4CqApJAAovWFoAJQeabRSo5qi2TT0pWXE2xVcdXCEw0ZFShKSZMN4u6tTnjyZQEuEDkQxO24kmDqu09LCEkGFKQHGUSEiDO6gsEsLZsTXLLGf/x1dahY3tGvnus446yIjy62ryj7rI+HzwhpGOFG5FQ253x1NSelL7kCkjj7dqvLWrCGnOQ0g21k7/WvuVAtXPLW7ePfbOwKX3+20tWabhhT1y4WP+YmVIbHdPL4eD4S4gVHjm2e+SHn4v++eyhx6cQOMaKU/W70bDXl87z3Z2VSF0Pd3apXlq+p9R0xiqvzl5X3CKiyEv/FgLUW0/qDZjEz2Cl4mxIgabR5+neCPW8/v0HNoo+C49vRErnw8+e6r0Gg16nmq/lG4gdi1J8V5kfq2z0G1FYlKAM8IMEJBXhIW9Uv7nQ3QFVOKwKWyTVlp/RF1VBXseX2rhKLorp98j1EvBYEwvmbgKkrpItVcWRKty65Q+lN2fe1jypo+0UzK437BMjGSLchjThqEm1wcX0ezTT3g8Gke2nlcnMO6QrXQR7kAG+BADIur25TqBsyxn3GKRNZs9KAHpWr8H0sshoi7D9NAS5sm5NMkCphNpI17pl4bOys+uOirCcKwQcLqQuYqG7O/CSg7Al+xaEcGG6WZ7r7lQYQiumz2PJ3IqWO8oJtcVZfUEumVtAxMTEroauKGbfqzPUMdc30HQmyJeaCmZfQqlJ1vMAeNkswVDbXvTMn3zx8XM//HuPYM/I9zvMpF7r7J1b6JZPAcBQYhY5faFkJq4WW85YVRNOuuMNo+vmtbYzYuX0a4mcMc961pzKGbWvvTr76KcBwPKz5lj6yt+0nPGSrliVQxPfOH3HxMuI5kK8wlAcH7+e2hwdOzP3iWOe/Mt6Rqvl9xZOHnu3dn8pZPho8g20nfvSPJ/BOmmeccalL+Lc8aMrNmtUhvqOiZf7z1/lCIzGjI1704i1vutGvI91IgpP9tnYcYoWuZu+jtiYA7P84oCZVTe7Ro33Ywi2At4OwuWaWe5k9EU07OJwMX3eMNQuCUhcad61XEhOVdLaUloIaVxtHoRkhVVhg+BLVVj25sw5sWhuS0lWJIDGfHdHRZDEZOadr0417nmYCfvBSDBheLZ9KzMIV5qH2FA6ML0hEnDtmdZtRGAdRGIkcRW+VGF6Q8KWaZ3BCjHmCZyfbe/3CL4+i0CyM+DtGf6BAgg/pTV0mDLXsDcTh1H5CH63KXseDWsT0loDHa0BK9wc4krzDkxm30HLmSCVpLjSuBNE3HMkTDcPIUyo6QrhphNKq6MIO53TF8ypxn3sSRW+NKiQmvIJvt12xxyfbVNA6hm9pmSNBWYW6LojOH70xPMt57VX5jo7HpCswGd1W0avvQcAI4nK8nx3Z6XljGEqSCZ65bbCfzgsyE8LyF260tUIzAmlvYph6tZk58zcQ5jv7ERUZCSaA1Fxivu3/i/PAcD7//Bec9e/fO0XYm0qAFDOn66U86evqy8XzDgcaTsFnKsdOXZr4Ttfi503Nd/diXX2ZZ8CgDNzDwHAoJJWa1KE+cjpCxhQyXZV/320bpiur10UYYjH+yMnXjVsdzNOvKm+BQNYydz7SMN6cUa/EZMjZHIAGEG4mcJU/e73iXBmpr0fCPYcOw8ANbP8wmT27X9iqG2n2r5lqOEUuZg5L6RUPMmKcbl5V1CimHGRge8U0+/Dk9qwKxP7k2rjbsvLDkuQAAOqsKQnVVnMnA+YyQJ5Uhe2rymqYgkwoWGNM5FvujKlgVhQkCL7pwAeBPN9w8ng3TftCXhstM4v/UIaADTFBMLaND3XXPh5rX0bwMDF+uGV3HYCmMGz7VulgGdLqEGiTgj3C5A2sBH0KgrJS1AgM8Opq0rbGRsrps/TXGcXJtIX4fgJ8lnVJNNIVq/putL1ls0SmV6u2nQmQMBdAGt1a1NRIR+K8D2FfW88NXUSAHYNv4odw69P/dt3/scvMNMuAOo7tV8+t3f0O88xicdy+tytLadAvq1jav6+KQDHIoaYae0rhR72KQCIo92OH8VeQdIInkUUjFixp28SzRZqgcE4/cUtBtGASrTrUlQa69TMI8D1GkPEyCXcpNSOaD28eUirbPuN9HejMW4A+Bn421p5BMAqr3t8x9QALNFxh4u6YlbjE8JQ2nD9xLKgMLMK2MaMWwlAQm1kR5NXm4baNS/V7zv55vyn/jEzjhDhtwjwN6XPp4g8962FXzMIUgcLgLArqSxPLJubrgjyTzWdCaS15ayAy0wqNHL8rL6AjjdCNXMbiukLopCcIp81mmnfKnfmX/U9aSgL3R3k+ImkG/jbFBB8Bn2WwGMg1hr2BJgJGb0Gy8ulHT9JTIoYT13CQrcMTxpgEgymoD7dCiaWAIZCLiQrYTifagmlmQFId6VBQrDjSEMQoFDgi0iAAGLow4lr5Endsr2smG4eEgBJANRtDjvDyRlHwCNdMdVad9vs7ePfamW1eSjCNy/V7yt5UptgJkqoTXU0eXVOkG+1nEJ3PH2p0rCLpaYzVjkz91C56+U7Kpl5QEhd6W4/t/jAyYTaeHi+s/NdBiU9mXwOCDzll5bvKTGjWO3sAYDK0d3/5BgACPKzU/V7nvnRE4+U35wHJCuGIN/um1ARw67S/uIT7tDxbz3y+u//5nFNdH+D4P/S1ea+3Vtyb//xoLbxyRxXy4eM6hEg2BwCg/dtH6hqhxVs+qVklPRTjaRwHIK6Qft9w/Rh8Olr4ePD39fCBWyI1PBhYtHc0iv8D3DJUDvoukMFTVhVoIec+/ze0e+VL9Xv/YIrtRHJiuGz1lLJqpPg+mjy6gEi3uL4Sdw+9tKxandn0XSzw017MxFRKqk1FYKf0IRDLjzbg87EsAnQJSu7GZQAaGI8dQE1c4dm+Rmk1GVqe6M+AFcAxrXOLZTVatRyCyQISssZFwBgqC007IngwQS+9NAbS1CFjeHkVXhShyocOH5GIwp0+Jn2bQhLwkoCuSD+j6XsW4eXzFLe8rLkQwUBmEhfiJ6NP9ve9+546tIRRMKfWFRat1OwEPQ0AmKCYrpDWLK2JBDE5kQYogMDYsmcVFThSgb5Kjmbu26uqwkThdSVP7e89O/WzLICAE2nSNc6t/3FWPLCp0hImF7mX7q+fn62fQsU8k8BPKYICQakIN8FUC6mz58y3VxBsjq8YO4oAnxkurkfDbtwhMEYTlSWN2XOY1PmPBCGUifSF6f+z0t/cKQ89BoYeHn3yKmzGBwOmwps4xN733jy659Y6L5191jqaiTVzt3zp3/15Pv/8N79AOD46fjEjEvXStxejtOthe9UgECFP370xN54mA59TrNI+3z2jTWdyJFK3X8fN1Vqql9axqGswAqUNb4Y9fe/niNtPY/5zdKgBbE/qeXT4WcWwAuS1WHHTxbRsz4B20+V9ox89826tWm4Zm5frluboQg/F8E3I+q4I3cRs6YJWwXwVTCOfm/6M6Pbhn6Symg131CaWOjuBoMThtplIm6rwlnueqNDM+0DmSAdk1B3NhMYQpCbKKSmqeWMIam1YKhdcqXuzbZv8xnQiIkprEcVAmsSYLYZcDdn3lFdNqhuTWIy+zZUcqhhb0LXG0aIhAGYBBMMYjxYaR1YZIaMwDogidn2rZIj9zvwsenmnQQATIxtuZ8oGW0RHXeYfA5222UEnB7sKOP5YEXVhCUlCGmtVms74yYAZzhRqSvkntLV1qOWl9VZIb/WLSOhduT2oZ94AGjJLLXbzshuRXh5XXQTYMoRZEFKxWRSC2Opyz8aS15KMGhIFQ7mujufuty4+4UhY7YgpbI8mriCRWsbAGDR3AZVOMttp1C7f9s/X1MyNO2JGlaYI16scQrBJC6/W/uzkqF0oJBfuL6HgAh+EisMAayUcQ6e02Ap3b8wrEtRyC9uP8cOV2p/M/rXXlNVr25WUf23LojIn/iduaMb6fsjoP6dZNdtG/ve/256/38Qu12NF+d/9o0TdzHjCED6ucX7H0awawkA4PjRE58AgqIH24dO1+p28bCUCohgbs6++42E2q5ebtzZsbyhFsDZHflX9yvCG1aEBwLu5yBGrl9p3imBgCdD2GyrHmzZ7APoMEAZfbFTtzaHNdkIRBCGamLJ3AKfdVxtHfAAiCA1jAUCBxqFDAsilgAMBoYz+rw23boDCB1xl+v32CBWAFYC2xxgFhJgEfrgdHBYDijQDDBkVNkMYszNAD9OWpjPCmJgtn0bJZQWJtLvyY4zzG13XPqsKUHUQAIgBeR74+n32ZGGBqZhW5iKItzZmlk2wTg8nr6gutJIEUm2raGjquLAdHOWDyW70NlVIODXc0btMjMlGKQYapcYonOx/nM1ZhRMN/vticz5XYba6eViA4AQfi8JacncWrG83AVdMatZoxZNrK+dmnkk7iA7uXf020fSWh3Tzf2lrbmzlenm/t75YcYaABxJqO2iJkz4spdB16PIgReTfAAQL/UcOd7KwOrkmRVp/eigOXud93wQxRaQKftqUkWo6PkNHQxWEKtg0++Jj/pYJxMtTi2EGtEGTIKNgGx64JdBps0a93hD5lcjFQyBR/0ugEYBXAOoBfQqx6yS6pcbd1cB1ABqMePA5cY9+wDsA/D5aCvfS/XDxxj8MQq0BgPA6+H/SWakgo0UoAPIECABehnA1wj8hbYz8rFoc9PIVB5OVOBJHUvmNulJrU1AlomJOMSgESSYvICJQeFGi0IhjxQ4HkDwWBdEJAGSY6mLWLYmVV9qAIlgsPAWGT3fGwCgYW+mYFGQeYUc6bMhCC4C+B5wx/g30bQnALAgMFJa0162JoXlZ3lr7gw83+jWzLKc7+5IuTKBYaOi6oqVQ7C7y9sgbJvv7L7KwK5la+tCTq/Ckem3JIuk7aX3R1DW80tHvlHKvlVo2uNQhVObaR84PZ66cHcheaWmie5uRbhjtpdO68LsAHRy7+j3eurqfHf31B0TL/ccXW/Of3JqInXhGAAIuFmsVGDFucUHKuWh15Bzxitbc2fDeuxATl+ImpQBFMv500AMtbaByddBX5bbG08Ge7uFY3wZQIufDuLna9SqW1UHLlajflCV2ICRQ8/KjSgWhy4CqA5i1r77e2TQ7/F77+tjIMhmreMflGILVG/hjDZZjFaa84pw9+tK9zKzyNp+thJncACIMtgqrf1pVybTIGQAZIOFYaUZgK9RWCiPCZuIcTuADAc7EnaZYSLw3CcY5BPxXQBeASOZ1efdhr1ZkawSQzAzxLXWbVE5N3tIv5Zoe2NCssK9V8ggDrZFZjAkUSChM3odpjesMFOgZ4N1BZay0N0BBKoAmNgjsBqxd88I4EgPkCD4EPDEZPZtzLQPoJR9C7XudnS9PE5f+22AAJVslHJvwZOcUIVD5ANXm3cQAxIQP9iWO33/tfatomkXhR+UvAOAfQQYIAyHik5eCF9IX6QI8goFKoEHxhhAjwd+FA4RIlwiyELbHT7s+JsTXXd4uels+tLB8ZciiGofmCTY2DEiVxpZAPBYXbWpAgA4frLYtMdwZu6hiuXlViCo/8Pr3w/r+xkg/BFuMDnDyRxl3vUkWiTp5zrvZQFgqn7PM8XM+/swIEe8L8Y+cIwBTLlm+xXxcV2l2DKAIhgFUM+2j/paE3izViw9urYbtbnBfdyINqTh9Gz0YCtkJZ1Um1O3Fr79TLgJIACKO0HK4+mLOL/4C19Iqg24ThIU/J5GsFFCBJ2MbqQDIB2GmB0A71NQ7fWbAJ5CsBe5IEihie7WtLb4TMsZdxNqJ6mIafakJpfMbS4IesgUkgAy1K6S1s6j7mziAFzjSoVc32NNMmupMAQGgGimdRsTkcvgxWCjRqihs663hhGDx9KX4EkdvlTQsCeZeiJAYjhRiWL0mG3fBk/quFy/u+d44/Dv5uw7kKzAl5qvK6aq0DUGANPLab40jpjeUCKt19CyiwB8jcAKoM6BqRAk4XBTE+bllj2aCHLsjG8A+AaAKgj/KHymvUSVseSFJ4YSswDTdsliWYKGAS417TF8d/oz0SQ+GUnGYvqPn5esZAHg4PhLz1heDopw05pwO5899DiC981HJjNni0mtvntT+r2C46eLhyef7xWUiLtrcIMaZn2/9SZ5XCWeSF9shZ/AislR7+8jpIH10tegFZsW8EN1PVy4KQIkDQKXVMM3XwFuivnipsBaGWw3jI3fjP19MwtDL7x2x8Q3n7G8HMZTF0tNZyzepgwAt4+9dMzyM+i4Q0UmJDks5gTCN8O6cSAK8tgPjr+ERXNLaa6zM+3KVAeEKgOHwaQG1ZixK9yfzCNITQSxWlKEy2ltWVvolH2XU8yAi2CxSAJoEWMCICOpNgkAxlJTYrqZR1JrO55USfiKFkR9CcEuyOwR4HBg/3sU2vRjmUuodctgJricAAB1vrOTgaCmdKAkBDeXN66xKxNkeRnOJ66RJzXypYqGPdnTGogkq8Janm4eshkohFhc5I1ZBiBU4SYldLSdgm97aSmEp6aUNgOgrjuyKVhqACJ4guR2BuZUxYHticcT6nIKUF3Lz5GUmhPTQKu6Ypp1c/JA05lImf6QQeAfAHRyPH2xPNfZFYWVysePnvgcAFxr4wAR3gKATZn3sGxNvpBPzBTr1mRMelEla9SwZJaQUptoOWNVxENW/wN6AvHUzCPl40cDFF20mAyaqGfmHiqPJKdLAOIbPEQosHT4jiNEHBAmZ/SBUoCNM/kqmvz7MwfWORw5FyOqILag3Gj8jyCddhV9AB/BQOpv24PANuziEQC4sPyx4uXGPRXTzR3bkvtJNiz7/BwAZPXFessZRd0qBStvUO/tQQKGw/7+HQDMdXZ92vETWUSaACMpyCMmhQImRJjkAmwd+im70iBP6l5SbWkmQdoyrTguWJCnMEEHCxHi2AGwvNI8JAT5xGGMu5C6bHi+4S2YZVX6EbKNCGCFSCYV8n2f1SwokJvXWvsAYgeQKgXB/KiwYzAGw986dAaz7dtEyxnDRPp9pNVFacuUWLZKDCggggjWAh8K+e6wMTOzYO76dwCeJMIEAGo4m5TtuR+jZm5jXXSQT1yTDbvoJpS26kktcB2S7zO4BVCKWXBKXeaMvvztlLY0fHHp535JFVIlsrsT6Tf+ZKpxDyYzZ4ttd6SgkousvgTbT/uaYnevtW9pFlJXThVSl748274FdWui1LQ3fycotU15AKCg0m4dCGLOZ+YewkhyGrpi9WzeUjYo9JgzqkiqzVpSa1awOlT0C+tAONe00ZfMrRUA2Pb/ORufgM9gxeZec491DJCEN2KAPmm3ljc7/n1gbH6t8WN0bI3v111P/P8NhNKiZ37ddX0Q5u+p7ucWHwhfNgPgksd6Vkolst2KHuvZFZAUPRMAbFDkYGIzAIyn3geAux0/+Wue1EVSbUrXST0Hooog/iufeyHmJACLiJ3p5iFPFebbYMKC1G9jiGSYlmpn9XnF9PLwpab4EEkOPO0ImZtDZsGVxiGKPOEU3QKYCfBzxjUGEzecTRTZ3By0UxTyBZEPX2pQyIOEgCpsMFPjSvNgjqBIBtNs6zZnyJhV226BFPLAzFJCEAi8NftTQcTS8RO3MuP/gcDbL4gkCBJ1ezMcPw1mkjOtfZeHjZl3i5n3rlhe5jfmO7tTRMiH7gAQsVe3S/m6VTpcSE2BiMlQup7H+ljHHXkYjIIn9VN5ffZ+Q+0sL9mbMN/eOw8AqmIbKa2OlNq8Q0rNlZqitpzNZxGCoELTbOa2wrf/+s35T4Zx8EcRTaLAm/74XgCYqt9dA4CUtnx4In1xX/jSj21kQvW1ewQIciT2jHz3GAC8/vu/+RthtdkSYpsdYHWc+wjCOPtN0o3s1bjDbj0k27o2+Vr0EcFV41iD+OeHctSpkcoV2NZ8BECRGQUp1bQmnGRCtGvzQFUTzjMA8MC2r06dX/o4AJRClV1FsL+aN5KsVFt2objQ3UGSRTqQ3XgGhNndwyevtN3RMYKUV1uHzoJQBjDKgE7g/cykgiCISTBDAqwZqildmVYlq9RLayMGM7z5zk4BwCeKzIHI4O5plgRINaF0yJVGFM8LbpocBoN/rnRCOn5aAMDV5n7YfgaSgYTSnbnW2ZsD4BJgEPlKw9mshPF5SqnLZHtZwQCmW4d8ZmoCMhtUjA1s9u1DP4HjJ8AsZNMuuD7rPwAATbEyksW2TZlz37P87Naieu4gs8BMez88qZEndakIDzWzPAlGbcHcsQygk1YX9yTVxWwheTEhoYFZ7DJEW90z8p1zqvBeAbhge6ndDFIZBF2x4l7Ur23OvFuKSkUjTEONb7w4aCOHGEXaGYD4rqHPn7sRnDWQPo/jzFxvO/M8VsflT2NwrbiezRv7/6aoz/M9SL1eS+W+Lmbdj6iLta0P6mA9qTsgy2wtLWPV8Y36PwZdjwqswrY/DFCLiIvB9rscgfWLte7Woq6Y1dDJcxJAkYiOclDVVRL4jOVlip7UC4L8jmSRQlCIgQF02u7YKwvd8q8r5OiaMFMAplyZygGspbS6arpDCkmIUNoKsO/XzYl6SmukXT+RIvgUhNyYAdEmYJ4Dti8jrFArIBEpDQwBAUmer7tdL8/bh04rrm8ICUEquTTbuU39/tXfA7MCJmAkcRVSKhhLXQJD3KYrpuJ4GYXIJ0KwHVMUcxtLXhaub3DD2URdb1ghkmMI1hcpIEmCJIG56UwoCnlSkM9+UAE3s9DdeYvPmtuyx8dcP8kN30gS0CbyMJyYG2/YRU0h/1bXSywTYYiZUiDWFeE5CqQvhFxOKUt3MEjXhCVADMlawfZShx0/mei6eU8R3pmsUWsBdDJ60ePpi2thyPulV6WcPx1J10ia9yIq6zia4hMxiyBMtmpiqsLJhi9nPwhRcvogBg4kb9CuhmAORpP9OFbSPOOFFeNe9usYg1YKQX4ZK/H8aCeifmY7FvsehdAGxsD701L7IgTraQ0DN2WIx//XOG9NE2Y9ilT36CbShtKCL9VkMXOhFKV/AqhmjRqGjGoldPJE7V3qQQzpS8F2TFwCUCPgHwLIB3FtmrzaPDCc069pmmKqOnfKvtQvuX5Kgsiu25OGgMdEUjILIeCDCZqmuCNpvaGk9QYxCJaX5o47wraXkQAaBCSYYYGQJoCKmXPwpC49qfGytc3emntTWzS3KYIkXarfy5uz79CiuQ1D+hwEfBAxXCShwOVlq0R54xpq5g4wk+L4aTAYmzPvYaFbJhki9QDgSvNOBhgiVM8JPnLGvCTy3h9PTm2tdm+RvlSR1Rd0KRUohqMsm5selGR0mDm3aG5lP6FpXTdH46lLChGnFc8TmrDdkcQMa8LkTmsYCJyRDoF+vD3/+l0pte4C2D5kzFXq9qbxoURVkax2BMlawx4zk1rDtP3su+cXP36s/0WHBSbjzqXexI1qwoVt4kVHvhVNpunm/iMAsGRuBfDyeirqMazGxAMA7pj4VvR7wMABne4HhcRSLQOmDUJdccpjxYlX7lPTe57y2LVE9EjY/1XcuMJMfZ1jq+jDYNsH0QYW0Zui6DyVgwolJQCotA50BPktXbPSI4mrRdPN9aCT5xbvfyw4E8Obs299yvUNNOzJvCPTVwf0XwXhXwJ8OATeZIlwIam2HkprddH1hgxfeGi58AncAqDuGTnpznd3FV3f0EaSFQLYXzS3itn2bRKAwgHqgQnwiZAB487QtPWIYYPA19q3aQi2QBIJtZWcae2TkhUhoYJANNu+jcdTF2nZmgQAuJwAMZDWa2T5Q1y3N1O0yXqgpjPNtG4DAP+BbX9qnlv8RX3R3KaFZZ/kePp9rnXLKjOobm+ilFovX20d4OHEzGs+KxhOzHZ8qd5BYLfljA07vpYDkU4grlubAYDn2nu8ocS11pbsW77tp2B5mWHTzyUQLMJniQJp2nFGznecEdh+Zh9wdlwlV/H8xDVdtV64VL8H46mLHcvPIKEE1R7juO9IYws+H+9tXxwxVsC8axN9EefeeHLrWo63tWLDq6TaKudYjHHjGkIfYAUxaV4Jj38Cq+36OK0Kb4W/RW07sXb58DONFRx8v1QddJ/ACkY/HhEYWOgB64QC18syW4vWWgA22pd6Zu6hsias6LTP/+6BP8Brs7/1O017fDfAywj28wLAHQBpEJYNpQtD6WIsfeX1d2q//EJ48t0AwIwCBWpZNWTyXwJIY+BgSm/AlYZsOWNkevmdmujartSGM9pSomGPYyx5kaYa9/LV5u0U1oNjBimhry/IAQW0yA4ngs8BZNUGo6kKc9jjpAoAO/KnsGxN0nx310q8HMzz3Z09Mz76c8voD3G5cYiWzG3wKUTGBpNRhnnm4jvTf18V5EvJSosISQbg+MkakV8cS03B8ZM0mqioQnhsebn7XGm4vlT1pNqQPmuKKhy4MqEiQAGCiGcADBWz5yUA35XJqxm9/sdT9XuP+ys+0heii1eE//cF/C7DpFOzj/1lMf1eftvQT75W7ez6guOnOqaXA5EHj9XsrSP/4Ruv//5vvgKsLhwRUQQ7nf6/XXl5tuW7CaWtfffq33/o4PhLPU9vmPKJhNrEHRMvT52ayeHN+U9OhW3iDB5Hqn0uNsxXYsfXKwY5CAte7WsHrCwAr8SO92iNmHLE4HEw17Hw88sAHgzP/dd9fV33zHA9Dn8g3SwTf5QawXr2utqwiyVD7WDIqFZ+7cS/Ovfki8AbT1qnLS+HhNqOuigxMAbGEIIV0SNiT0p1CqHzDgAIuD/0eh8G4ZsAvwKmOwFoRBiZqt9j6Uo3o5DXVchOJdRG0nNGE4I8ajkF1Dpl6XLSB2BTAJuVBBZRsAyADw6KPAYCN9g5CeRpgBhLa0vUcCYBAkaTFVRaBwX3IO0MTVjCZw2SVQSlpwLk6+vV3wYxu2GAjRCAK4ggSVc60vFTIGJHFXbKk4YmWQhA8LK1dXQkMU1ZvQafNXhskO2MYKZ9m0Igmsz81NOENVNp7c9PZt+qXmncs0cyBdssM/4awAPznR0WQ+D28Ze/0XFHS7raPWu6Q3sAaGlt4YnR5NVTc92d959f/PkdIEUL0t1xBMBbvlSeEvB2GUorp5LVZAhNkDfnUiKlCivvyUS9fzLEvO3lh3Z8KSVBbs6oujEo6SAqH558Hocnn48m0YeJG2/UqVbE6gWhFKrx0bZPvc1BB4T7ojGe6fs/TpGdng41BeCDxekHVnRZjz6qLLWbIfXc4gOVUvanpbYzWvrRE7lPvDn/yalXZzEV2toAgFL2LZhu7huOnyi03IldU437WobSyuqi834hcfGxurVpnEg6jsxkQ2eewowCAZ8S5BYZEAwFqrCrGa02mTPma9XO3q1BAcdgxxdAwOeEcL1kFCJTQIGnTJCUkoUE0CLCSIBmYQbTtCB/KwhCMoQqXKhkg5lw8urfjd1msEpsSp/DkrUFbXcUhVTwXlrOGCw35zPghYg6B4CfVpf0cv60m1Cb4t3FX0r60kBSraPr5T2WQjgy6TNYWTS3+EvWFiAA5UQaCAGSNGHrqnDGVOEkXD91WZDnCqJlzzdUItSY8e2UvnzY9RJ7Z1q3HbK8IZlUGkuWl/sJQK2UXi9n9IXhBXNblgER2hUmEd6qdm45ltZqX6529pJCDhTh0lhyKq0IZ8KVqaAaM+PI67//m8dbznfz55cCuz36H8xFgBWKcH2rN0roSemcvhCEwVaYrF+axlXzPAbbvlHRh94CQV/s2f8RxePFFaxW0fsXluKA37DWGGtQB+vvHtOjGPMP8sBvZLfZD0UfhdRXAUyNJgeZ2QCCZJYiM0ERLnSgBhe7AIBIIqm1ail1ebjtFtKCZNpjX5EQGoMEAb/HgJXSF6d8qRqeTDkAinV7MqUItwDQctMudpmV7YvdbQBIyKDeAzFACnm+IhwhpYChtu2OW/gPAJp5o/JLppcvSBZw/VSukJrqAOw37YmcEL7IGnPouCPwfX3lQQVJL0GJJwoQ5QudnWG2GyQDAiCNmV0A3wXQHE7MPly3NylOd0cioXRqLDpe05nwfdZTgK8K8hVmQYGqQQSGD8JVYjiKcDOSKdF2ht1la3MnZ8zZguRXifgxy8ts18hSmfHfksAVYkwqwkfTHkfXHQXIgybMtCAfgmRJE07CUMyc7ed0ySSIZIYhsntGvncsqTR/fmvuJ6qhdGVQ5z6hJcjJE0s7obRhBQUW86qweuEx1zfyWX2xLqXIujL13zftseJIarp6Zu6h8h0TL/e8xPGsRgC/AwBNe3R33d5UTaqN4ljq6mlcX7XlGGKMdrl+8Knoe/lfvPmvB2kM/Tnca8zDKQBTa+SlfFDtIpL2JXywUlDXxew/asfcB6SB4B41VobnulWTGbsBYDgxs2yo7RoALFa3vbB39NsY0qtF08vB9lOeKlwGAIVcj6BKyYoWboqCrLZUdKWOlDZVbTpF+FLt2n4atp8+DtBfHBj71rddXx9y/IQ23bxTSFZYQqNNmXO2plhJxzek7WXdrle4H4BMac1cSmt4rjRoobOrNtfZ9VpOr/6S5WVzlp9bscfJD1VzCnNRCQBLgCDgCUk9c1kEsDhWmMkD0CTChZn2fj+hNBKWn9MBKjJIEvCXABdHE1fudmVCt/yccLxM4CckCvLxia/kjLm7fF9F2x3LuDKxnNKWJwvJK4/V7eKttpfyhPCyYPKIUFy2SyYDmRAnoAhwIak23ivnf/LMtfYtT03V7z6oKrY3mpxiX2ouA3LZ2v4CgAcdP7nQtMezHhtew57I7x75keL4WQjypOVn4Ek960stDaaRIWPm11Vyax7rWQ12PWfMt3YMv37yzNxD5ZgzLg7SiDNwFQTYXgaen8Symy0AuFsTViGfWFgzhGR5uZYQbm/74v7jkZPwzNzXy2FxSmBFFa4Gx4L6cQAQLkRxGuQAjD4HocmOIVYoItZHua9djwaEsuJhvBvWqB9EGwmP3Ui9v9Gi0n9cPX70xCdOXv3bp1RyWpafAYJ01SNDxmzB9lI5gmxea98CBHugYyx54VOSgZq5BUvmNnPJLnkAHAJaO/KvejOtfRlXGiShMQGnU9oyHJmE5WfTdatUxspGCtiZ/8GXmSmfUNtqUmtS1qqx7ae9rjeMmdb+CgPbAqgpJZigENicbd/GBF8yhM7gLSCRVxV7VCGbJDRIqC7AYmvup8qSuQVdL08SKkLEnyCANmXO9eLtdWuz7Hp5AQAU7EX+62D8CkBSkAzVAinAK/s9JNRuUkifDLWDeW+PJGJicI5ABoDRZatkAEBSWXZS6vIlVbjGslVKjiauXG47hWRGWzLa7mhOVzrFnF41bZloJ5UOt5xCZjgx4ynkTeaNmU9Xmvv2mF4uJ6Tf2pR+jxxpMADKD516LKfPTwIYA9BpeyMkHCm7bs5LaXWhEndsL120/NxzlpcplrJnMdfZXVCEh1p3+6lNmfOn6/Yknn3jRDncUx2uTGAkOQ0ApXj9dfoizr373x45llCbWdc3Sqoia7afhukNVU0MVfOJhZ5d2++Iev33C3W15+gdvN1RVP8dq02A5xGaADl94QXb7yXXnRwkPftooESLUX+WJTAYfruezb3KLu/TSNYEt6xzXesi+j4K7WBVhRlVWNlS9qdHGtb4fl1Yw6QwFOEuZ41arW4XP+VJLWEITAC4ktSapuo4IOAswm1zLtXvi2LqFYDvHk+9j4Ta/jtDyvxC0x47UKMdWpBXqnm3jHz7s7afHuu4w4pkxbf9ZKtub/KJ2ASQZ4IDhknw0gGDqSqCNFfShCNdNojgq8x6Ial2RFvIAL4OAkP84Fr7lp9jBkkmRROm40tdlxAEAC1nBB23AMkqb8qcI7uTBgDps06C3LRkoRKBC6nLvVLSMqg9/3cmUucWOm6eW844SVYBMIW7rwgmToBhKMIFmJDS6glVdG/P6Iuu5eW2p7Sml1KXW22nsOj4qVROn1PK+R+L95fvg6bYUpAvms6Eziy2KU0vc+vot9vnl47IpFYHgzoEtIXwkNVrIymtMaMr3ZmU1nyuMnfwsWLmfJmhwFC61bZb+CoQwZoZAIqqcKAKB7pirrKxx9MXK75UnvKljo4znAaAy/WDnZq54657/vSvnuSnsffMXAYprb4vn6gmxlLTn5pq3P3NJXNrpWEXS0vm1l611td//zePA0BU6hn4q78Oh4lDT69joBgjRwzSS3Yh4uKKU/h6OjXzSDkqmhHWnb8ZipsnA5FzMYx/P7MNquA66LdeX+Hv19XK46dXaSL942y45NV6msIqRhfw96XUpbSlJoqK8F9ThNP0WT94uXF3B4w7GHBGht4wXD91zvVTCHK6e1QF6A9j///vKa2OurX5G4XU9GlXJrcZSncTAKXrDYmcsZBvWIpm+ylpemnFk7qZ0RbSTFRt2xMNAFOaMLdJqAoYQsD2iXzykKC0vqi0nHEAED5YzLT2QZALBngseencfHfXm1m99gsdd5h8H8hoi6qhtgM72BuGoZow1KtoOQWabe/lsJSbD0CQYAIDhtp2ppt3CIBV9BB5RJriaPPdzcSBK8EngoynQCJA2ZEndZh+hshLF6udff8awCPhltF5Iv6fQXhy/9grQwAjqbX8SuvAqW25H3+cQRoAZiZdQmi7Rn5QX7Ym1XdrD74HwrbtQ6/NqYpTBLAEBPXVbi1850vPvnFiCuAjl3BfzIkVOFQJXNUUu2q6uWLWqKFpj5VyxkKf2sm/2P3/E/fv0XFc150o/Dv1rq5+AWgADaBBsvkSKEIiKZISZZuOHMUP0RZNeZKJPLqKbI9i897RZHTHy9HMd3MjaJKZtZTc3JEnzDf02E5C62rMSWJJlk0pjs1YMmOJEimRkigT4qtBoAE2gAbQ7+p6nu+PqmpUF7rxsDz322txEV116tSpqnPOfv323noH3Ec40TRJGD1iUyahWzKpmcpAOn72LIDMiStfS1X0rmCyhyC1XHweNBat1QWP65Z9tdc/EHlx8Yv3BtCaowdVkaAkstxi87sKP5CI38J2kQmeb3dtK7GeA5D5Rf7jXwWADw0c+7Oy3qWEhfniWPGOy65PfF1v6PL2mdomliUmf714m0oInnQn0QNudw6ogUIAoU6MK8VnTFs8bdoCSlp3ihArFRNuiDZYrmbEbZkrY0LfQU2bt8p6F9sbutxTIzZn2oJCiUVA2U0RYYbvVjI2R4xaQesPLdQHGFgcSnovwxDLUbdtm4IwdDD6LjUsEYTQTSCkd05dp3dIkyTMzzGEUCKwVRITc5QlBuZq66gNhpG4KnGqwwAgFsfCMtdHz9sztc26DQYc6npYzDNlvZcAgEVFgSFWb1IZNct6d03iKlZJ71FMS6S2g8IlFMCG2FugIFDNCGarG+2q2ZMHYFKAEEJN971efvn678qOJZscAYCx0u5uUNzm+viilBCeUiIYlkTgoACZmh6XRK6aG4xcOKnbUu6V8S+lOqXxPxzq/EeAUO7qwr73GWJXNStSBnAsFXknFRFmk3Epl8vX1oNntazI1prSLp/58n2fZQg1vXCCipEouBPmKID4cPdJFLVEERQwLMUEX80ASHsFGlORd/Daw/ffQ6k+aNpCGUszSwHtRepWi2AEzR6AUytN7iAtp8P6uK630JMIgGcCIJm1BLj4JYPgszX6CoxpNZLICF2meONKOn0TR6/oiTIBygKrASBnnfhygGM1whDTElhVtylT65Qm99SMyJaa1dlJACj83N64OLVlurplwKCiATgycrZ8S0PZ2xA9+35Z7+6tm5EEIVT82cS/tAFiU0oL62PnukwrBM2KkroZ5ggoAbFIRJxn6mYMACKT5e3oUa4SluSgWTIiwhwcQ5tdv17afdYtpngbAI1Q2kEJSKE+wIT4BWLYMplTB0HBoD980bSowOpWiHRKWczW0rAoB0JBGMbmcrUtTM3oMikliItTUknrZ0AAy+ZsQkyMl24FgU0T8vib27t/vHFeHVTn6wOGbinvFLT+T4Dawtkbv+nZhy0QLKQi7+amq5svU8qERK7SGxcndxTqAwMVI8GDopcQ+liXNPZ23QqPVo14mlLeoqDh64XdqlutBgAshtioGD1avRxbmK1u2jdfX18GaGRX7/cNiSvzFAAhVHaCWirK5vjpPRJXTvSF38+nou9l35j6XLJQH/BXND0KAJfmc/tLWkMQmPFANu75AgCM5u+6DAC6HaruH/wOAKRS0fcAAHXzOiSusqduhp8vasnsKxNfzrwy8WUAyCzjn28FuGmVgmk5dBm8wJrlUHofwG+9KpDMB+1rhQ3M3z7+y968Ka/7O7MHXB8omYAHUgCeub3v7x4Q2WpGt6XQ9eLOH+QqN8GwRcCESAlCAFgbRIxLkzOztY1lnqmLYCg6xewf6rYMy+Y5iau8HxIKcZOKvGXxDAWxedSpLCwY2fKwYVNe6w//gpO4Eor1fhi2yDr1ywmFk+GVma1tpv3hC6Sk9aFQH4RNWQaEyqD4MACdEMJQSlU4seKEgiAhjyEs5DFV2QbTljBZ3u6GqgIOvJVgfewtRIUZTFW2wbAlllKEAWoV9WQjlxwB1YkTggoCSmbVdTfZlOuVuDLi4g16Mf/rZZOKrMhVwLM1CGzFquo9FUqJVTNih8L8HHi2/gOFn79bd8orAw6WHTxTQ1iY65Ds4ic0S4kQalCDSgZxk18QWEWO1S+H+MLbmzte7eiUxzGa/9gO3ZIXKkbHZsOSuikIUfh5ncAmhNAqQJROeQIso3UUtd58fno9EvJELtHGlWpY4o8AwKmW+hzOfPm+o8X6q/sBICZNv5tX088AQLZ8a9Zd6I3gl/HScKqkdSdqRgdiYs7Lx75cRZa2tJy4ugpqSA0+EEzjONq74hoZdAKGxVaRb636armIV2E4XJaWg+Wu9jqPXI7eAMe42T7oIEDcByHZ5y498WQ6evrr81p/b1yYvqlqxkdZYrwP4HUCXE7IY79NiK1JbLXPosxMlzwusMQ+XTU6P2ebnEFBOEL0/j3J71k1I1b7efaLEdPmQQnlCLG742KW4RlteqHeX6yZ8Y710XOKYYkkr6ZhWCHiJHYlAKXkRmUIHKNRi/IONM5JGse4uNUcgBdA8UUQCKCUHS/vMgEiuKg3SojFOouHwCu7Ml7ahb7wL8Axul4z46JrXWcJbDDECcK3qIC+8Khp2CIohbmgpoxXxr9khPgi1S3Z4lgja1nitpg4TUybh2VzLCWIgiIk88Ux6hjnEpYtbBHYOgihPYRQg1Ii2JTp0Ux5e0yaIQJ7vkAINWtGTFbNWJgAlCH2+d/a9gdf9TK1yFwxWbdi61jGBENg/WLu7pxNwfKMfsWwQ88A5NTu5N/9Fs+oiboZgW7LuDD7yUdi4pRi2lJ1MHrhCH38zBBW4BCXFz50CgD29D33VJc8kQaAbPnWDNBwe3mU7ZTHYdpydlviZa9iyq+MVulKCmLOV7NJrGShXwKtDWwAI+7hQhvYbHDMq9Kr21w70up8i3b+Po96f3MA3ePqjB600JcokHiGibTEVXTOMOyaGbcL9VQewCkHlkqy10u7/xbASG/oYhcBHZCYaoVlTVSNTl7kqmGB1tie0HU2xBcjAGE75XGSr62ze8NXLYBSka2BIRYvc5VsprRn+nrxtiEAsuP3pgwDQ6OEEwWmRvrCo8xCfQDUZGBYspsZBgQOZNYNnaWjALmVY3RiUYYHWMebTmzCEYPYlEXD5eY42emNyjawRCcWFWwCmJSC29R5GoYlw7AkTFVu1qbK28cBbOwOXRZ4VltnWwIR2Rq1KW+KbFXRLMWarW20GWIJDswWACg3W924k4KIEluWy0ZvDBRVACYIJgnQHxNnyzWjkxM5lbMoZ0WEWTDE0gEm7Dwc3fnK+Jf2j859LDvU9VMk5DHc1vvc25Yt4PUbvx1Sjdh6ChaEUBkg2cMvPDj62sP3n30v//E9mhUCR/QEBVF4VgNDUHbBMGkAxwDgp9f/t3ZWZ3BMPQ4HApsCkHVhsJm6uYh9B4Cp8nD27ZlPZ3b2vgivFnqLumx+Y9VKC3G1SSLga+O88UX3XKOwgnv8V0I+NaFRtvmXBcusVoL5oC42DgAIcBecF1WFmz0mFXknFRVmkuOlWx8zbLlaNnp66mbccG87ASDrlm3as6PnpdQrE19KhoUFXrMUcKzeMV3d8s8AmDJf1iglGQpyy0TpViPEL7CqGaUhvoTJynaVJaa6LnoualGuG4RGCIVFCbXh1C8jxMHJS6Am3dL5T8xUZTtYxiSmJRsA6nFhSrbBlCiIVNNjFoB4VMrNLNQ35Lvk613ztUHedLi3zZM6061cAwAU6v0I8QWUtB5KQXSWGIzEF23dDOu6pZRNyoWvLHxYAAVLnbywEgWShNhC1am2arGkzlJKrC5pzOhWxp+8MPsbf2dRTkpF3sGUU7fNNiGSkFDgQAlsyqynToprlhDwlCIEB0bLEwKjqCf/h7fh9iqX/lVJ6yEEYG3KxG5Ubz4E4Kujcx9DOvYGqkYHksolpCLv1KLCTK6id4CCP/2LuY8DAPYNHMe1hb05ga1hod6XOD9977Y5dZ2pGvHugEvHowzQqMgz9GbOCUpxs8niZ+NfeGShnioPRs8nb0v+8Em3HHITiu7Obx0fXSGBRYP8XM4Vs72Ffco3vj2By9oVaQhSA4YbdGWtbnSrogx8Od1/xeT/Nq1cZi0xCcsRBwf1tAAnXXPB6YBkeKa+X+TKgJP2qZot3/qPcMUHbzJ0yWOPSFxRGSvcuplSwl8v7gqbVCqITEWuGJ2yRTlG4qpVnq2HZqqb372y8KF9HfI4JK5MnGypXCkZvjjHs/qPcuWb7ikbCQ0gEQJaBgHHk2rEoCEmKswS0+aYS/MfhW7JIAQWQC2WMZWC3s9QmFECjnKkLrp+7R2UQucYjRDGJjzVKWDT3vAV5Co3waI8KGWwu+95qEaUjhVv40NcgQHAi/K4caNyE6uaMcaiLAsCm1BqAniHEKgssW7rUa4Kc+o6QilLRK7KCWydvVHe8s2oOKtX9ZiUq2y1JbZMFH5hek5d111Q+x17O2ARgMKpXGjBybHXAWABwIXB6LuND5Mt3/rFmxM/fmSh3vdrls0RU+V3bO/+aXpOHUxFhNkkQBNbu07tmK5u2mBTVippyemS0QuApo4efPqeV8Z/mpK5QlJiK4m8un49gTVtU0ElBJmjB58eOj/9XRS1ZAoAPrXx/3pEYNUyAOz+8n2Fsv5KHAA8fHwr2pZ4OXvzX7y8YhbSFmiyR+DL3e6e9yeZ8HzJGayCo/vFU9JckrjVOLx2a13wLRcemqWFVenhy4wj86uWPPzqBOeCWxrxut4Ofm1hL0L8AsZLuwhjWYrmoOb2AyR77vCBdN08AYYxFNvmZApWCnGFvGkLvGlIWZGrbWMZ04YNZAp7c3DEarFTHrd1S5qr6l0RkVPnCaHxopaETflPVM1OUWRrYd2WBRamYlNisYxlmJZlLGj9gi/NMKiTPvpKhzg5uKD1hyklLAWMgcgFhoIlhiUKBQJMlbe/T4GXCSFf3hz/OTtd24QQX6hXjC4RADk18UUKWJYDgE8TUNAOaQJJ5X1Gs2Q1V725rluyxRDTsim7HZQIYWGWreqddCB8wRLYOljGgE1ZOqtuJFWj02ZgUQony6phyd3dyhVzXl0nUMrCsIUEBa+5j8GE+fw+mzLvc4yBstGb5BgNBS35GdvmBkLcLLKl4StlvbvIMZrJMpa+b+B45o3Jf/aIws8rUWEaXfJkbk5d102gIS5PLXCseaGoDWQBmuKINtwlTSAqzkDiytenq1v6LdtulM1yqqc6L3Vv3/fKIb5YABCfrm6Kc0w9YtpS2SvACABjxd1l1YwXAOC25A+XoL9WaTl+CMBWOCmrT/nOZ0GaXFytkjt6m0Vbn7RvPEewGAK77AIMPsNyoZ7+dqs5thK1uTew6FoE0LSRrArX3+qZ3Syw5KuAw6m/sstpdGVhHwDkJLb8g6gwkyvpyaYYYieL6D05ka/svrZwR6xidIYpOAJCiWYpaip8YYxhTLWgDrw9Vdm2j1IisYwOnlDCMTNqRMgrTiYXsfNGdfsMx6jXE6FrGwRGjc7X13M2ZUiHNMXfqN7EmDaoTTnbUbSpzRGtZNjyTynwRZ7RbJsyjGFzmKwME9MW4aDjwBKCTaCkF7CEOXWdRSi1KMi7feGLN5mWSEt6r00pRM2KhODklCMVPWHVzZhkU4bVbdkAIK2PvaVPlHbKNuVoQesnHdIN5KrbuJoZ0/vCo4ZpCSqlpAPAQjI8qhBi12drG2XVjLEd0gQSoQxXN2J2WU9At3kHDELB8VwdLMyFiDjbwdQtsNA7bMrEAUgcY9ZDfCnHELsaEWYaH0zmi7DBNjbmVOS9sXxtnVLRe54xbAmpyDupbPmWZNXogGaFUDG685cXPpIr6UnP1bkieCMizJVNWyq4BRjjN8pbdsfE6Tdj4nT8s1v/eARosmwv8Q23mJStuHHc164JoeaLDGvF4YJ9xQO//dJDK1pTccXAosm0Ot6Cq48AS33ey7kAfWMHmkN0/bREXPdLNFjMAeDfKDKA615Lx95ITVZufuDY5/489/1L0/js1j8e6VGuZgGgqCWhmU2FPNLT1c17Xhn/Uiom5o5V9c5I3Qz3cERnTcpWKMVrJa13tC/8/uWIOJOLizNY0AZ31E15w2x1QxngxkDwwzl1w28D6INjdEswsPs5YpCoOMvEpBndsGTuwuzdBgilHDHfswk/ko698ZhmhWTNDG+aq2/YMV9ffwrA8wD5OigVnRLIG2DZAixwDKWQCCjPMxqtGF0sgUUEVt1brCdNi/JTqhn/XzfGTx+1nGyy5HpptzYQGQ0BYHVLZG5UbqYABJ5oAhyzHQEBClqfC4Kz2Mnyze/EhJkfamboNwGsm6psV9001O9zRB+qGl0my5h81ewkDLEpgMsc0UIgQIgrbJC5Iiyb7aaU+adcbSsqRqIIini3nIlbNnegP3xhnoJ776Pr/voIgHRFTygAoFshvDL+pefLWiIpsGpO5KrQNTkJAAPhd+4eCL8HShmk42efScfPnvJBRb1JGAfICAAo/6n4TXfS3LOztxF16bVdLuWSP5OrPz0xsBgRlvUQZfRxfBZO4ghvUvoXZSbAxVdrqBpZZnweBTeT4HhXMvStVh/2L9RGME87SeH/pbj0NOBy9M0dp1OztXSIIVYyV70pt1jGx3G7pWNnsKPnBPYNHMfpyfsxpw7mRuf2ACC4OfFjsIwtAjahltbRrVz7cljIU90UKhDxf8zWNhxKRd6pLtQH1Pl6akw3ORkUnwGhfTxTky0qgGdqBYmrdOfVdeZMbSOqRtc3CcFvEmJ1u2bxDXASVW4R2Rp4VhPm6mlPzMsCuAZg41TlZoGBaVLAJKACJYShFGx/+Bd1CiKJbNUDsjA1oyM0Wel46OrCvhgcA5lBCKSx4i7Hdw7CEEIFChDNDlOZK1GbsmrV6LA5p0IsiUuTOZaYp0N8MVfSezTLBksBkQA1APP94V9MaZaSmFM3UNMWLBCqE+CkzBU+QwhVGVhG3YyoMlcsd8rZy1FhBvP1wVMOVHX27tnaxjsK2kAvz9QjPxv/AgDH9y9xlZMztc1IRd4d1q1Qh2kLCQrieU0gcZUqy5hl3/vxEY2477SRbsrDqI/mPYx6g0YA4MdjvzcCAAk5E1z0a4V2PoXFxb1/+aZNFNwEvEU64mszgqW0ZPMIkB9j3igagdYGsLZ9+Pr3Nq0QmtNXtaRlNo4clvHJByWeFrTEpsEBQEnrTsKpgeY/5xpDSFbkqimfS8ZHNOWmklIULi/H5an1irAQsSmHkt6nvZF74BSleLRDyg7UjA4ZhMoUmAYAkale7VEury/UB2BRgS/U+xlCnMotveH3d5S1XlPiKguWzbEE9kJB609MlG/JghJYlN8gsJUkAPSErqWy5VtEgKigIHH5xnTV6OQNW4zYlBMpATdW3C2yjMnExSl0ydcBgNiUiVCK3W6K5jEAoJSAEGxwcO/UohQmAEyUbmUpYLGwbELw1kDkvYRhi3GGWKEu6XpHjzIGAN/MFPf+HwQ0AVCZwNowUd45JjIlybIZnhDbqf8GfEbkamCIXe0KjYcjwly6asS58eIuENDcQOS9rMjWUKgnMVtLMyWtl/KMxtTMDqVDyoJhTNlL/ZUt35IHnGQQqci7qJuRJACsi50b5hjdK910DHAs4/sGjj/6/Ut/sBUActWb3mwzSYKU/p1b/vUx9++H4KaLoo/jqWsLe1MAUNK7s17aaN/c8f5vpycHN4lWKaWauO0qjVX+cSzpMwB/9SSSHAJGwmB7P7UT57EI2f0BFu0NQZeiF9wyFODq/rV1arU6fxv//ZKNitudfPZRi7KD3aHMnwNAWe/NBm6KuhlOjpeG918v7np4urq517Y5AHgPjticBZATOHV3TJ6WFH5BIKB1m3qMkYYXtAGGABooxgC8D8eoJwpsnV0fO3eNgpl9L/8bwwCozBX7wtz8nTFhGrnKkKWa0SsE9kaeqX2BJbZkg83zTP3ixviZZ3LVzQ8XtJ5HwvzsAGBXbMqV5+uDYwBAKdkJQAWhEUJg7er9PiOyFfWdmU+LdTM6Y1BBIYSGKCARYB11gN4mBSghMH2Pb/Qp76Og9QEAaqaA66XdX4sKN/6/ElfGZHn7/ZnC7Z8t6UkbhP4+R7Q/tiivEIJOSvEez+oh3VZY6on+gDSrpjUCgGN0JELXWZGrUM2MIOIGmmxLvJz9h2v/+pma2bHBsjmeENQoEJqtbZylQKiwqILm3PePLnkCkJ3Fs7njje0hvui1aUzEmhEd3Nn7g0sAcKNy5Rh9HEPfeffPR1TjzG4A4Ji6f/G3E2nj3vmZ2qYlHN2XcWW1FuTlxObVpHbypIy1IunatY3TFjaGVS48r88lHLXFJhVUdfweBv/m8KivjyWLeiWDqD+oBTUzBl80k2+AJAMAY8W96FWu4FrhjrxuhTotm4ebnbTxQPPqOn2hPjgLivedfHHOjkac807EB4FKgMuUYqFHuYqq3onZanofIVThicqyjPV2t3KtU2DVkGVzSISumVUj8bc2xb+vGAk5JuaIQOrdEWGGLtRTj1s2J1Gb5VyuLFDAokAnARl0yg/BKYLiVFWmNTNWHYycn704/3EAUCgQAaUlQkxQcFGWGDxgU5GtCaoZv0gIEizRYzyrsgwxAThlpAD6GMtYnSJblcAQzrTlEEA1AMm4dGOspPdsIICpWZzSHbpWRm0jUzfDkgGJAugiwBMAyd7S/aOtipAPAQBLbPxD5t803nyPcjWrW/K3s+XhBJz02QDIWeKoMEtIs0KpspZImraQ2BDr3m9YosExdShCaT8AXJrfdyghjw8LbBUMsaDw+UdG8/vLADBfX/cmAOxf950RNE+8oF5bwGKq5FRMzKGoJf2LfVlD1xrE4rSvjf9YUFe+3w91bRGMspJq4X++u7H4fKum1SSRaEHtDIYrAoM+SCopyFwZHGMsOdlcxaXx8gUQygFIoiHq0wgIwhRoFv4dOkkp3ibAPhBUAbKdEHoyW77FSSpJkOqSJgyG2GGGWOWx4u6FWxL/IFu2iKg4I8TEmUcrRpekWVFU9AQ4opOwmO+umxGoRpyYtqB2KxnYlLNNm9NrBtx6hYSA0HKIK9R6lfenJytDUrHej5rZ1UUpkgBsF1XHAYQnhBKO0QjHqAAIRwlJE4DyjFqfLA8DgG1S8eeU4goB9s2rA2ShnnIT1IJQUJZQfCavplNRIRezKaN3hy6vv1a8fZIAlymwhQDnXbzC3QDwo8yjWBd9SwKAHvnqg3BrjXuFFgS2cncq/M7miJiHTdkrMl89+/bMp892SWN7AEC3pOGy0QugUVIrC9DU5YUPbQaAsJBXBKae7FEuAwCuzN95oaD1KgJbR0/omgJfEgaeqXnppvwLpLHg3Al22M/ttiVezgDAtYW9+68t7E1xrOovoui/rkFtrMTBRQqsMOFXaJvB8rHhQcDOEBbTYPntBy03imUWW9P78ovl/g2wjRch0+K6D0T+fri9/+25w+cOH2jsit7ipo9jyHO1kSceHHUX+1cBpF1o5yNwdDbnAeBW3iA4HROnEgASG2Lns2/PHAAhyLsZm11QDjkFp/xTAhQcBeEUYb7aq1w9OTp3V/Ld2U90AYQowjybjp2BbXM0IY+REL8AntEshlgMx+iMws/bNTNK64ZSYBlDDfML80Vt4ChAfx8AzxIDqci701FxGhUtUWcotqpmNAzCM6CEoQ54hYmJ05Zls9jS+RpRzQillMHo3K/PAbS/V7nKS1yJY4k+a1Bxe0HtTxS0/g26rYxS0FsBojvSPi45rwXZXuX9GEuskmZJIHBSCRPgEIC9ALUAsAD5RwCXYuL0egCoGp2NDxQTcymRrcK0OVlkVVPmyoiKM7mhxKnMnd86Pvraw/cDALKl7XuwdH9ukG1zsmpHEteLtyEqzA7HpRsQuCpnU/5y1eis8qyK37nlX49gaWhlBm0Wmg+15iHZsp4IL3El+LPT+BYQ0AIPvgYrtp9G6OO4BQ5U+z0AR9aSkGEV1JBsV3tdCykiFRD/9/jOeX022byWQfC10sEb1GIjbblJcPRxDJ2ejGJOHUxly7dmjx78/BDg5PHqlMdT66IXsvRx4BvnAGdgtEnkcAxa7iR3/PHpTmkyBdBhSrGHhfabFhVB3USToKRCCOJw3SwCW0VF7wBDbMyrqSTP1GDYQoFSHh3iZJRSwhNi2aYtqbO1DXMA+5d94ff/3ebOV4WaHiOz6oacZkb7OEYXCaFezaE/AZDsC48mBFb9mG6F65oVpqoVYwkBoZQ6KeTgFEkuaH0MQGlR660SYi9kS7d2gNhdoIQdK95mdYeuWCyxuTA/F2MIlePi1NisuuWHAGapU7aoEwRd1EG+ZTrlKVO3ZJMQ04MMZ+Fsks+AQiTEvElga5+ilMFCPWUBgG7JIWfzJGVFyJ9cUPselrnCBosKosyVCoYtRsZLw/u/dejfPHOjMi7aVNCi4szRufqGbDr2RuoTG/8847rQTv0i//FTANCjjB4FsAMAPpk+8hpDzIjEVQEXUDKa3z8ymnfSRDGM9TzgVD01bfFRwJ8ppuUkyo6XhlNlrWdPvrYOAqvm3p759CmnWCOGXnv4/ntylbN7OuTJpMiqwevj7u974ONkXr55d94t4XTuNYDjJZHhLPam+ejniD4rehOtAujTLm58LdTWn79SUon/GcQBjkX29OT9jcgkjwSmnvT9zADAYPTcofnauq2aFe42qTgLAsHl1IBjOIhXjK5kVMiNl7TEeoBKAAqE4CxAyiAOkOD2vv9xuGrERcMSuYX6wBWASIYlbiGEgiFQLQpMVoYxWR6eBIAN8bM/pODvBnD3ROnW2YScSWhWiFi21CFxFUKILQMgPcr7D8xUbzpJKRKaGdp+w7jpGs9o16drW/MfHjjWe3nhQyIFg9naRkopISCU4YgGQmzLpuxbBXUQDNELMlfYrBodhBBbVPiibYNhRb4CG6xJKYOZGhIg6IaTB9YGoBKQNwF68vWpzz/jvA5yd2/o/f8IADZlZmbVzSIFQjzRrYgwu2DaPLLlW66DQqYESQIoUSG39XphV5oQawNAxgxbzpybvu8YAAx1/TQFAPP1dZppS2pe3XAKAESumjo/fSCdr61r6O+HX3jwpX/8wsM5AFDNSMMtVncwEY/YlCtLfHF33Yi9CQCmJWO+3p+crm5Fr3JpUOIqoGAUtK5smvLmR17dkCOEIirOZr+y60G4UmA6JuZSLDESBDQECslR27AfjrjuTyrhWebhFYm4o/+7WBe90ORjX34at6VVgWOC0WU+brzfw9a3ad+4j/t/EOiSDfz/gRf0WqC8/vNcu0Z1MwoHZeaQi2+HwKgAwAtstcpQc5JSJgQgadhy1dXQCzPVTbspJbJhiTGWsWE5kZ4K0NDiC1FxViWgmy2Ok8p6zy5C7CrP1Lv29D3/xMaOM1nyBF46evA7J+DUYMdYce9ZANsBmgTAz6mDdeIkdrgIACFufptJeTEmTHcAACHknhl1cxSOT/1NAPin7EPf75avfrJqJiIyV4RqxDsBiP2RiyCwWYaYWwihhsiqYxblqU50VeBqxLK5K2Wjh0xXt86zxNgicQUo/Mwnq0bPj5yqNORuhcvvBrC7MzQemSjd9lX3td0NgCWwQiCkI8zP6Lol6T1KZo5SJi5xtq1ZkbRqxjMAQIEQBREW6gNSh5Q1bSqoEWGu4H7iVN0MJwESDfP5TtMWsLP3B3/2T9kvPl/Ru4YFpvKwwFakwehb+yZKtx05evDpIYk9AZMKkQ7xRvnpC0dGvBiFB4cfGQEA3VL0ipEoVIxEwbTF7Jw6uNy88WgErqV7oZ56vqJ3tW2oWeF8ttTzzY0dZ5Jw7A/ewk1iMVe8t+DhD5RxyZ8w0pvgx9wx/BYCOebXwCXbYdeXo+Wu8e7VMsnkMgtyWSDOMovac9G1NQYG++S8A0cPfrpx0MsKMl4aTo2Xhr3Cejj8woOjP/vS74BhLGLZnAhATirvj3KMvpCvrUfZ6N0BIEII+HwtDQBFCpxeDIEljQB/0+aeoSAcS0zzRnWIAWwmzC/EXp/6539yNnefffRgSqJOrvSFhv4P6nGmyyAIgWI9gA0AxlLR966rRiQG2EMs6v8fCwJPKKuCwI7w058Ji3n0KZdPF7WeRJzkqgJTi2WKe2cI7N58bZ0FgOp2KG/YcpyA5NZH32RsyqJDnGRi0o2Foa6fvX2lcGdeN+Xb6mZ4iIFb5sWhkaHEzx7VLfmzVT22r1u+/Hez6pavATTCsRrLEIthbIvoxCAsw9rZ8o6RTfFXDwHA+ui57deLuzbExBu0rHfTddG3p0tad6yo9XGTlVtAKdnvqjrJseKeZwD8ySc2/pdD82pK4RgHNp8t35LniAbDFhYUoVDe0XMCMTG3H8DJ92bvTs7VN5xFg2ueSHvvcWvna+8CeMpbSF4cOccYR4a7TwKtxeKC+zOyLfEytiVebsWtMp6hzjcxM76/3Q5xwXc85fYHslj5FO64vUi2HFykHX0cZ/HLU9Mm0EKvXQlG2478VvNlF/GvOJJuRWrL0QFHXwOcSpzAizjz5fuOztS6EJcmL0yUdp0e6no55+V3L2m9gIFnXH30IRDqVG0B9awzSU8HBWjk5fHDOQps4ohuEUBmiE0FtkYpGBaUAShhCKELoMiB4LSLjDvtjc3FoH6FUmIAGJirrftOzYhs4Ri9n2FszrYBSqgJ2KzI1SSJrYAlWsdkeducDeFGb+jyQCKUucQRIyzzhfJkebjTooJmAhcOv/Dg/UcPPn0BFILAqqF6LYJsZXjfgjo4sCF2VgShlGEMVMyezQDpBfDQvJraJHGlTomrFjUr4gWunM6Wbrlyc+Lkp0p6z3qJqzI81WzVTGRFrgaO6GWWMQye1XSJqw7YlOOqRnRyvLTz73mmvo9narBsISxwtYhp83JSuQJfhVs/5SSuokbZWo5ntcKevucyF/N3pSSuklT4+YTMl1LZ8q1ZoBFS+tVgB87iOd702/vbr/MCiNeMaIQhljJTS3vGt5UMV379Oo3WtdWWjMd3zX5fVdW1iMErjcvLwxZHa2SdX6Joojbcsy12YAVs/Fpw9ysG97S6Z9uFTp5o1OgCgPTRg0/DsE7EXdEdAHKjcx87dUf/d9OEACxjuPohfQwgOYCU3QVzDxaTWygABceoCVAi25Sd7pAmCzt7fnj6vbmP31kzYlJZ795G3SQR1DGWBckDiWQA+jtwIqH6bMrezTGGLHIq1e0wFdhaXbPCr/KMtpPAGiDEAs9qGZ41oFnCNoGtxUDRC0LLhXr/dJibk0Smss6gc/TlL37pdy/P6yIlBHP1wbD7cjmAchPlHQYBtW3KNuzdIlveOlnejkQow1IKnmOMm9Ox1x4raEl5Xt1weqE+8HpMzP19ZySLotaX3xw//adlowtRcRo1o+NSiC98mGFMOSQsMDJXvkIILhBCdwDkFgoSsim7jyH2u13yRDZbvhV/c/HJI+nYG6moOJvd0dMofPDkvoHjmbM37nt0NL9/JCZOJvsjl08CyE9XN2fdajx+t1EGrhhOH28qaNBqsjQw2uenDxybqW5KAY6v313owfLFrfqAr592izXZtq/FxChLUGXeb/fYUQCeDnIELURz30IrtBpvK1oLB15D25bqwCo2AH+SjYbBcbn7csBixQyXHnVdaTj8woOH3fMAAJMKEZGrwbY5ZVP81UMKX7jbtMXCnd86fvjowaddd8FiyKvXbyrybk41oijpPTBsGQyxVQqGMLCRV9PqnDq449buE7NVvVPJ1bZkqkaHbloiZtXNX3fDF9ElXYduSQmBrWOuvsFz51wisD+qWyGBgn6YY7SaYYqcYYlZG0IZoAjzecO0JTpfXzd5deFD1wFcJ8A+CjapmpEey+alkFC6SWAqmmaFWMZUYhzRhrcnfvydseJtd5f0ZIQCfQTQQYC4NHkNlIhVo6NYtyLdBFRhidFJCYNcdSsTF3PFiJhhGWKC0w0Qgh256hBsynd1yxlF5EqyTdkBiStNRsUZbXv3T78K4M+uzN+xtaJ38Qtafw4gp7604yunvjf6R8+YtiCyjIHNHa8+6VUz8dxvGzvOAC04W8VIFJwKKZeRjp9FOn422M7jUoW6qUQAREbnfs1fLQVAUyBGg4MUtWRKt+RkWMgn6mY06zvXBDddSS9F88ZyDC0Wv2/CZ+GEtXobVRrL69aecXjNxi9fAM6vxJe9VmoV4dYGJrsmct1rTjqglZL5/SL/8SPucFKb4q8eArF3g0I/8+X7jjoZSWgKi0a3pgJ2JuUTUWH67by6AT2haxDZcoduhVAzYvsZYg5opgLdkqoAyYe4MsCVMatufgDAZkqJ+eHUdwyGsS/NVNd/Nq9u3A4ADLGfL9STdxW1Prao9TEco0u2zdkCq3bXTXY9Ifa2+fo6gTiVHWRC8C13ODssynUA4ChI2KaECGxdsClLKctohi10xMXpvMjVQHVoAOoUKBOK7Fxt/WkAIAQXiIuT3tzx6l7DFu2J0g63uCEVFWEhbYgiN6tuuQwAJb0bEl+BBRYSWyUURPO/n82dr78JAOQJ3A98C4dfAI4e3KB6lU5cLHmaUuwxLCFBSJMDveGT5Zh6XDViEBh1p24KCYHTVQB/62u7XPri4PdfYvmu6F0ghOZEtoZ9A8e9hBGAu9ixvGuqXXIFvzFrf6vz7sa0H8Bj7vmHsBgJ90sla/D8+isAahBs45MelnXjLdefS43vtoIrsCnqrd2Yl7snBzSsndjRcwJvz3x6yQWutfYogLhryHk+LMwrBLbg1DhjvTZpoJHzPQvQPwNI2bRF9IUvnayb4WRe3ZDIlm/Jb4idzXOMkVP44m0UDDRbAc9q9t0bvvEnAE65teAeoQABobxJeZ6xrQRDKOclRvDGFxVzxLTXISLk2ZLWy1IQxgkodWqpU0o4QoAOceKBuHTjmag4++TbM59+CKAfpwALFRyhuAoAw90/erluKR0m5T5T0ro3SGzJNGxZANBJgS5QXqLAy3AXeU/oSpIhVk1kaxDYOubrg6G6GSYx/UaPTbk5d4hVgCg1IxYqa92xEpLvv5f/5MjhFx586ejBp4fu6P/ukaKWTHVK44de/ZeJ4zyrFfb+t+cOH37hwY/4PnQaQGow+i5EtgKL8g1R1jdpAJBjZb07NSz/Q5pSRgIFsuXtv5Ut33LWrXXeEPvIEzh89ODRxoQJcHSPst6koY9jqEueyAJAT+gqAGC2NrjPsKUduhWqboi//Xzw4lYcKkiBxZ+GE2Byt3v6mO+cm+6seWyBvpYFmPwy4wtQy+CbVm681eDQW/XV4vcSnXytxjwOQJPl9M5vHV/uRRVcM9gpiatkAfoQAJg26533JtufAtAADCr8nFXWE7BsZnhW3ZwnQAco6gB+2KNczc6rg1qIL2giW+U4Ri+PFXYMF7SBbEnrdquMOKRbYXSHrqklrbdL4Qv7TFuwfpH/jUjdCucB9HWIk4ZhiwiLsxc6pcnkZHm7DBBFs3jeSfmGEEA3bO44DQApnqklDUu+QgCJZ6sDANkGAGW9q6eiJ/6GgCIqTOcYYncBqBa1XpmCqWsmX3dcagBAsiG+kLxevO29qJgb4pnqnMDUQt2hjElg8YTY8S0dP5MvL3z0ZEIeS/Cs2hGXbsCwQpd39JyAJ005xk7g1u4TK5XxzU5VbkoCyNuUTcw5xRGThi1BYssPAYBlsxEAz9uUV23wKki9atgyblQ2P8YxOkpaT9WNbQewiIR0/l5yvyUT30v8CHfiVY3OPOAUVPQ1ewDA79PHocOp6HoMS6nVsSAVAmPIoHWpY7+F/JexZq/GzbWS2NzS5bXK/oLPGKSGUXCFMbQlboV4XT/Fnf9oEiDpopZM/dq6vxwBPMPd0+7gaYolRhiggk25xg7AOUUhctSJLV8/p6Z6S1rPvhBfPJop3J7skCYTIlfJV42u3Ojcx+CI/3je/Zc8c+NzicHIu7Aot0PmC6gaHWGBVYdtylDTFhcK9YExEKQA5Av1wQyAYxJXfERgK4phSXtAaJEQq2F87FWuPNMljz0AQK3onZsK9X5q2jxsEDYqznSE+IJs2cIG3ZZ4gLAMsU3qXCrFxKlh0xY6NsTO7mdg8IYpKgAsgOEoSPx6aTc4opIueSLfo1ze3CNffrSmR5kblZsuVfXEDwVWzUXFWYzm94/olpAcjL5VnSjtej74wt3cbg2EIoCMwDqifFFLporlviQASFwlZfJigWPq8ZoZw+aO08gUdz/p49ANIM1CPVU+P30Ar099HkcPYsi/0IMUnFjkCYyeO+yknAaAddELp/Lqxokwn3fnRsPId8j9LaA9LXFf+fTjz7qH4ljKbUcCl6XRxri3gqXbc/m19bmv5Jdf4hlwpDwvgaX/GYOAoyWRcXQxzjx4ryU2i1/C7+5mgV3hQgdaiWOb4j9/RLfl6s1dP/0vIld780Zl690vXP4/R44e9CKI3FpfhBoA1RmYVoc0yQIAQ0zRdw4Cq4IlhqJbcpLATtyo3ASZL+c8N9AikSyALAP7scnydoT4hbBtcyZAOOoEpIAhRq5TvoYwP29IXGWrBf7NS/O/hh09Lx65NPeRxzSiVAFwFhUvbuw4k3X9xSkAiAj5KsfotmZFiWGJqBmd1q3dL60DMF8zOgbmq1sNjtFlltFnVSMaBrCO2szvMLAuyVyZVPUOQ7ViJMbltBBfICG+YE2Ubql/ZPA7Uo+See96ccdeADzL6ExZ65FuVG8GAHxo4DuPaJa8XeTKXN2MXgFIVuZLx3b2vpg5PXl/enHjdNyc66IXMn5PSCryTqpHufIZ9xnUuhnOcYweiQhz5ZLenX196vOZ16c+72IizmZOTTy0HQBUM17IVW9qObH9RlkXS+GqawB8iRD95FV18c8XONBU/yJvxTGXc615unO7yDQ/+TeMzBqNaC2x5svRsu0WXYBBCmIK/CGpS9q2edaW6sVqn5cLftxgg/PTB9KOGO3wM45oCgUJGZaQNG1xw9bOV0ZUMxJxOVKSUiRSkXe+I3GV3HR10+9PlG7lCaFcTJx6MR1748JUZVvEsCUA4CkY2bTELTxbj8p8+XpYmPMeJO0ucKAROEM38Kz+3mxtYzVr31IkQFdCzmQltgKRrf5QYGt3S2zFZ6GiqaKWRIgrbO5VLhkAkO44+wwc9cTbiXcDiL8/9+GFuhmdtmy+Nl9PnewKTdw9W92wg2fqSiI0ZgpsTWdg5sZLu261KMcxjMmEhfxOhV9AWJhXu5XrhWuF2/9jsd4zrFmRhxhCyenJf0HXxc6Vryx8SBmMvEMAEJkrLdyo3pwDSLaiJ8oUIHUzQihlZABwywenepUryY8Ofjt1rbAXUWEWJb07CzQvxE9v/tNT09VNh7zfvcrVEXcyZDzMuEduxqCRO/q/m/Y2Et9EaZBnlAWA1x6+P10zXoq7+PiGuPz61Oczd/R/FwCwLnqh3UR7BosQV89IF9xc1mQRp0uLNDjuQYo0CFQsGub8nPqXulcLaik2Bzi+P8Glg/oDPLdgUOxfThRfS4qrFckbI5eOvbEfgBeP3kq8cYlkY+IMZL5YjYvTELlKNVfZAv95AFlCgLHiXsctQPEkQBkAHEd06JacHOr62RGJK6GoJVMiWx4eK+6GakQXZmpbLizek6bu6D+eBYB3Zu6BasYLRb3PiAozoGCLAlPLGHYo45YJSgLIDXW+DImvoG4qIQZmMhV5F6NzHzsVFXJqQevj4+INLlO4HYHa34fp4xiyKb+/rCWGq0Zn3imxlEsXtT65PzJqvT39qflOaWIeDqiHMISSotYPhS9gXh00OFarXJm/c3pjx5vZst41vCX2T5eqRjwms+WwbsuRMD83dr20+13PiOn/CDUjfsGmnDJW3CN3SBOPTVc3yhs7zvzQO98tXzvEEB0SW27l5073KldRNxUFQLVuKn+Wq27aqluKvlDvfzfY3qtDfm1hb0riSlmgYclfE7nMwD9P1mLIatAaEjn4I+W8hbSI0nMW+XLXL4dNb7Tx01qBLIF+nDGTlqmqR3zt/X+vJnvOsnaElc5xABARZpMxMddk4ve4gpMW2EnNu7f/2a8CSF/M35UqaskspXgoIswVIsJcYaJ0mwvAcBBx7oPcAAgoaJwQuk+zFOiWtA/AkYrehTJN5DulbMKyecSkmXaoLwBAVJi59Ns3/7vnATx/MX8X3pu9OwkgOaeu/0xUzKlTlSFoVvhSTJwGBVHC/BwApDfE3nzTpEIEAH6R/3j2rr/6y1G/WHx++rsNS3RRS2Y1K5SqGh2Zszc+12FagqXZIchq+ae6LXWsi56fF9nKlonyDmV790+4Yj0Jjq3zUWF2ICFffYxQU66Yna+VtR7EojM7eKhbq0bXYIc02adZ4blc9aZTALA7+eyjAApRMhuZVTc+w7O1B3hWqzrxAsh5Nc0uze8DyxgJnq0r7ngblVEApC7N70NJ64Ft8xju+TFMy/HuRYS5wnK6t0d+zr+z98WMV4gBcNS1py8cGQEWU4D7os2CXLNJfMYqoKCrWUwB+1ErSGrc93fONx7//0Ed12/FXsJVg4Yy9/4j8GV1baG7Nz0r0FrHxvKJNoO0ovFtLRsSt7njNAS2Bq8ypkeuGImPDn4b2xIvPzRd3RTJ1waRLd9yBEDW9bkfw5Id0Yk5d91tXu7uwarRsR0AQnqhs86YKd2SkwKrJnpC1/KdofHcuuiFU4tJKR1Fp6glU3et/8bJeXVddmfvi40PPVvbcIiCgFJGAYEqc4XNuqVEGVgA7BJLzEnHIHU7ZL50LFPYs0dg1Zz3ck5Pnkh7YbmvT30+s7P3RWhWCBJXwtszBw6ti56/Y1//MwxLLM2wxe9VjE4YlrIwVdl2anT+LgAkW6wn97w//9F9NmUVAAOqGasSQqsxcTpf1noS+dqGkxJX2nfXum/CopxQqPfN56pbf2sgfAGAPcgxelniK2UbfHa2lq4yxNhX1Hqt05P/PLlv4G8eAJC2bFEx3YKM46XhFIBMf+SCZ5hLAoDMlTfblJgMsXgQajLUBsfUvXRIIE9g1FuoALKnJ+9viZfYdfTFwERxqpQC8CLS2lEGbr419373r9GnvVKEmbcwPW4e5JD+hev/f82llgP3A1aRoWYZI18rXbuMFRb7LznedpJAQ9riNnacOeU7gKMHnx76xjlgV+9zyYgwn5O4SrJuhiOGJSl1Gq56rqAdPc5i6ZInfL73BjcH0ISsG2KI9SMAoCC8yFVBQTBW2LNPsxQ1U9xbPTP124cBqHDijP/g9an7/Tt4arw0jEzhdsTEXLaid24XmCpMKkgARnlWIzYVbIZYKGr9lk2Z1Nkb9z0QFW7AtPmTUTGXsGwxB3eCTJSGHzEsMRHhc0iExr8F4JT3XADKb08fKJu2wNqUmesNX7uQjr+Bqk7hQVC3dr7yUNWMJVPRt7GgDp6MCPm7TSooMl+scoyZ41ktBwAKX2hyBVGKhGkLsGxe4Ri9DDjJGnb2/vBIrrJ1PQAs1Aeir4x/aX86/ga2JV5pqCbXFvYGP2KuZnSUw/y8yrEqCKwxga09426KjYUcsNxj38Dx7L6B4+nTk/cjW9q+Z66+PpeOnYET8OKkhHZ1+T92Bg0VwMPed/D975/MQIsySO0W/HLuqjbnsnAs+Y3NxHfOz0WDXL/VJtIYd+vRNe7n73stnDjo6vNvHKtxKbalVahKwU2qMRbOd6HrJsPQjp4T6XXRd5AMXwGAXN1UFEJsmVBrSc8xMZdKRd5xei7fesQbgGc4OvzCg6OHX3hw9NV/ef9r3jXz9UEU6z0Jhhjx2dpG1d0ckqCIg9AwpfgU3FJFdTOcl7hKbl5dl63oXSmRraGs9xCbshXDKdbwpMDWj5a1HrCMzohMWaJgTAJs4Ij+njPG6TyBfYhn1bvfvHFvROaLisBysCkrRYTph9+d+Y1Dg9G3wBHz+cnKzUmBqwEmLIuymFdTyZiQw87ki2cBZN6e+TQsm4ss6APgWU0mhOauFm6HYYeqAHBH//Esz9RTAPDO7IGTMl86li0N73ENkAmZL+XrVvSZOwb+7pTPLYn10eakrGWtJzleGs4ByK2LXjg1U9vUZIEHkNl19KVvUregYN0IJWaqm5JVowvjpeGUZ4vY0XPCz5WSAHC9OPwAA6PaJY8pc/UNT/YoV5vu7UpzThIPsir9cYlve4VJ2ZJrrhC0oQR+txpXIztOK7fxapBn/rH6+v8qFjlnSwRbG5y9n5JYhT98LeK47xkbgKp2bTn4rLRHD35+6OCWPxphiBXhmLoC4Enn/L2Nl+5LNQUAmfHS8H4v/TDgFL73WYdHjh58ugAA78ziGHx54gW2nldNu2g7lUUL/kGti751l27JYod8Q6vo3UcyhaFDmhUpR4UbyS554smN8ddBAJSMTlyevwvXCndcSCqXyrolRcp6t6LboTQBjKRyqZwp7N0XFacVQukWgatdXqgPVOfU9VUGthzi5wZ1S0ZZ697AEeOiyNWwMX7mmZiYy7q2CWyIndlT1JO589MHsOvoi6NHD2LISddsyYYlxHlGHaYgMs/UADQWSRYAMsXb4ZOAILBqKibONE1sL3PP9dJtX/eOpyLvgoGFeXUwKfMFZAq374+JuSwA7Dr6YqPCgsutj3XK46mqnoBqxJMVvcvT1Rv3qZvRhv7+S5C4kgvn/PQBH6dqQtet2gccoKTvb0/9yyFQFKHNtX5RtmFDWEY9WALz9fcRaL+azDNBnH1bI+UvafRbDhzk3xybNq0l0Wt94UsF988yGjvj8SVilseNhrp+CpGrIibmsp98+s/bDTbuuzLbo1xFVJzNpvDeWVfs9yyVAJDqlCcfAIC4lINmRkDc5KsSV632Ry6kKnpnRreUHDEIAPwxgEHNCoFnar8ICwshzdSnLcrN5qo3jchcYYQQa3unNBHTzdAWhjHPDyd+BI7R1WsLe3XdUohmRUGI2ckRbVjkKvmiloTrTkzWzfCWuhneIrLlhev/+3DqeuEnyenKltMSV0Yy/D46pancjerQZkoZUBAlV934gGGFNhDYxmD0rUu+JBTolq8d6lGueD+fB5D9yq4HM98493QGbsZd1389dDF/1/7J8tCwbon7VDOq2pTJoY0lXWDqyXWJl89ezN+FROg66mZoOFfZnNRtKbdv4PgpAOlL8/sOXS8OK6rRkatb4RzD2IWIOI/DLzz40mKPx0fPfFk7qltSfKyw49KG+NtNXKkdZ/epPaCPvxjUVf0GuyxtruLa0o/s/993zxG0EPdXiVpr135VnoI1gMqARaOdfy00WeRX2Vfa964yPnz9ctTOuOgs9Mny9lS2fGvWdbXFvQG3MCY0ARK+ca6RfdQ953zk05Mn3PI/XlUQmhwIv/OYbskyYWx1prrpmR7latZDbs2pg/uz5Vuzd/R/F3Uzmr2150dVgJQZYkamq1sAEAVAeaa2uTyvrstqZggsY0Qs29unyMxCfVC7o/+7T+7sfRGeV2DRdkD4mdqmOiE0W6gPHtmdfPazIluIW1QcmKwMX9LMcKJLHjutcZF8IjR+dnTuLs/4g1x16DKlSFDKICLMJQGgV7kCgCbKeuJgUes1uqTx8me2/MkD56cPpFmiP6KaRpwBtUN8acOn/5//PAo3Gmo0v79s2kKSIeaO6cr6mynYajJ87TdbfbFtiZezhiUMq2YEhi3Jls1F4IYLL24GuZRmKZipbTrb92dXXqKPvzw0XhreXzNiGC/dCpsK2fX/+UKjRLJmhasVI1EAgLLeFQccqcDrDwDOT9fjXtaZDfG3vYWaDn77VhzI5xFoTLogZ3X/z2JRzE77zgdFbi9e3LN2r4VG4KiDMoD3fUCWoH/fO+ZRy00jMK4li9B9N095bVt0sVLVmMZ9gCUSyUooPe/3oz7J5bC/AQfAMzJlXF1txLthCwhmK2rc1FMBYmIu9dHBb6fGCruuxKUb+eulndNhYX6HaQt5ljHLDLFR1JKp8dIwAGR1S04CFEUtiZnqxkMTpWHM19cD8HQj6gIwaEo3pcd0S5ZDjFa9WvjwVwF8C9Sp1jpd3bxnvDScK+udyZLWDQBYHzt38trC3k8BYHQ7vNkbb8VIFDZ3vvpm3Ywdu7aw+1OJUKaDZ3TsGziOt2cOHHIfSQHIkwD9VDp29q4IP4se5Vq9boZPz6mDHQv1AWLZAuHZOr5x7uk0ANyc+DFEpiJRAjDEGvCLrGe+nCiIbDnCMRo4RudNWxTOTx9IN3PVxUnFs/oFk+o7uuRs1bSFcvADB7O7OBDVdWndkhqir3d/3VLg9gGOqcclrpQEGotzObGx0befG/rF14A6l4av6gmcye8fd1CPXMJVVxEvHuSKS1x49PHFDMUguIz2FnT//ZdwehpIYOlbcKtK/oDmjaPpPS/nclyGmrh24JnbEgc4ifwAZIpaMnV++oB7atHd4jMA+Qee8ftqjx58+h6v3va66DtJABC5SgeAvMjW8lFxFgAUzZKVMD8/XKj3w7bZjv7IhVOUAjO1LQ0rIcfUFZEtY6jrZ15hwMbksKiQ0ywlYlKx7I7lYRC6PxV5F7olPny9uDNv2lI5Ks6e3dFzAiWt8wGbMhalhAK4AQBv5j73FADc0f/dNADYlN1XMyLrVasj/NKV//2AW5rpTXjqC8GFsDi/w6AyeoRr1aoeQ4hbwDxN8QAMlphiKvJOqkueyL498+mv7kn+7Q9sygoMsbjz0wfSnhV873977vDRg08PfXTwm39X0pJhQmySr6175MyX7/usL+Nqg/ttS7wMuHaSRddj80f3f2zqZvTtCV3NOWWSnm2IjMPdJ7/qtTt3+J7jgJMOmmfre84dPgBXt87s7H1pxNffPb57+SdlYyEHOMcIHD16O5xUzPCNz1skwYU94v4fAXBkNUEhLjVx1DZtqi4nz7ljBpxvOrIMpPZXRkFpGGj+Vm2w7fAdW1NY6nL35wAnv9fNf/Gyl7vdbfTi0OnJE+nJ8vYUz9RxfvqAF8bYEgCRiryTquhdUI1oMh1/IydzxWQ6fu4ypSQn86Xszt4Xz44VdjwCAEUtuaOk9z6zUB8cjonTiEu5HIDM6NzHMgB2y1whzhAL+waOZ+781vHRowe/s9815DkbCFvbyzKmNRB+d8tk5ZYHAJLtkidQ0jpVAGBh7NYtIQkAFKzMEGqBUIugrv3LHb8LDwJq2vyeEDef4DlVktkqTBpyK7FAx2LVjvS2rn/4WkSY8bIgnq4aXfke5XJe4iunpsrDWQAQreqemJjDRwe/nbIoe6lmxLo5RqPz9XUpLIq9aeBBnLjyta97BSy2dp7aB9hgGAPnp5sCRpK5ymbUjA78eOz3MkEATIsJA6CRKqqlf3dxx39pBMD+XGVzUuKKnzFtaZ97ouxeAziuoBSA7PnpAzh3GPecn26EsnoGp7hvM3gIaORbJ+7/Xn9tRf4WXNufYeYp/PI04r+nC3f237fJONhmITVZsunjTb89bu6J8R8ouixASwxuqwxkaYB5gs/TcK85ftTmBBReGmiJKzUu8CbjucPr0jt7X2w83Mb4GRTqyWSZSSQyhdtzMTF31jvvIdEkrpjgiK4q/Dy65IlsdyiT1K0QvKSALj2FJXpSA/ee/dC3j//RTx76yg3YAMMYnisjs2/gOM5P35MDANOSdJsSsIwuh/gi6VWu/KNpS4U9fc895e91uro1t63r5VzdjG0GYUJlrUcixBZkvjS5o+fE90W2lrpW2JsKCwu4UR66AQDXCvuO+AyIDX15vDScurqw7wEAYIlZ5Zn6D25UtuUyxduzd/3VXzbaAIDjpSBnCaGpsDB3J0tMhSWO67Ks9SQBYLY2iJrRkXPr1Dfp5r4PO+q9q2sLe1MlvTubKex9hCFW+ejBmwqHX3jwcAudzxM5s+/M3IMdPSdgg1XgxHm39Bd74CmXTmHRSxJv1R5OMs/TcDK/roTZ9vrw39vblPx1vkdbRIt5tOS9rLDoRrw/XCMfEJhzPn06KNr71SX/GNo9Y0vG6LtfKtjGp/+nfBvpShvJshh5zn/Qg0De+a3jo340lO9DZ/1BDX7alng5my1tT87W0piqbMPo3McaoZAA0q9PfR5DnT9VQ3yh6t3r/PQBsER/5Mr8XqWoJQ9VjO7nASAm5rL+TaQdiWzN8k9+T+w8d/ie42W9O81SXSbA3+7p+76XYSUNILVvwMHRn568P1vSuvdsiL31fDr+BmpmHDyjDiv8AqLCbEqzFGyMnwHPqIQQW7QpoxUq/Q3UlcdlPd24UB+oxqVJpaJ3Ih1/K0dIE4orLTD1JEuMRESYze/oOZF9e+bT2YQ88U0A2NhxJvvT6w8/5OVgN2zpiFuaKeVKM6mjB59Oj5ee9NtLmt6Pa/0uy1wBMleIt3JDzdYGk6oZA+DkfItJM3mbMihrndsZYvIAMRWheAEAvAzAuiUl+8Pvg2P0BJyJ/lRQZ3fpXbgiuPt7yYRrsVGNBPrwFlAwe02QfEbgJQEva+GsrWC8WGMfK94jaLyDzxK/CkkghcXw1yDizlvYQTBTc4aZ0fz+Ee+HvyrHYqPjTbvl1s5XRtzkBjg/feDIYgLJBzNTlZv2zKnr9lX1jh2d0vXqYPTCEQAN5Nzo/F0n07EzOa+v16c+n2mXbOH89IG0LzmlSzR19ODTQyHuxCuyWy303OF7jo/mK03j39n70rF3pj/xKYWf7yjrPf4O/BPvkXT8DMaKu7YblvDebDUN3ZJPE1gdhu1EWPqMXb+XLW3fo1uhnMLPJQ9u+aMRAPiKT0etm1EUtV4Utd4qQ6zygc3/9ynA2TS9e48V96BXubIHAHpCV1MATm3sONMYU4c0Cc7Nk/761OczX9n1IE5P3o9U5N2UFwcQKKrReKaZ2ibs6DmRvla4PelKYOnR/P6RM19OFPb+t+cONwx8jPYYL0zLFhXUqfLwk8fe/a9f3dFzIi1xxYdC/ELEtvmy9x6reiIlsrVUUrmEZPiKl5e9pcXXhb62E39bvX//eU8t81I4O/YaJ/Ir2+a64ML03stqDGSFZfryZ+AJqhnwn/O7CtsY1vwcv9W42vnrV+X2a9E2BTcddrAR57lbWg22FUWEuQIFVwCA16f+eROK6Nzh+tm6GdvHsxpMmwfgwE07pesAgBBffL5HudrQbXb0nABL9EhFT5TrVhiX5n8tOxh96xGbMmWXswXRRQCAd2Y/PeLht89P3zMCAEUtufv7l/5g5OjBm/De7F+9xzJ6R90KY7q2Gd8493T6nk0OJ8xVNu+ZU9chFX1nj26KAKVhCmbQpixV+PktXfIY8urGyxs7zpz6xrmnGwY7ka3lAEA14mCIFambYdTNcOTc4Y/eUzejDSirN0YfCMk98qAnMaUoJRDYWjLgjgKlTFLmylXAkRbu6D9wj8SV0B26moRjUErVjI4cApPRVY0yd/R/N/0vtv/bJwHsGc1/5DM25ZKAHfEbfXRLAQCVECrvGziOfQMORuLC7N2RmtFRNm2p4H2fsJAfNm0p7xbyWHbyrcE/HbRCt2rrHVsOSeYXodNw3s8DALbTx/HZoHvJT/5zLTYnz9e9GpF5NQvSvzE3fbeAu65x3N+/2+4eLEbwtdsslx1TAzBjWGLcD1v1N3JcQ/cdBQBQ7AdpoJWayBMdASCpvI99A8cz09U/aHDsLnki64Erdva+6KUl+uriw30L5w7f8xAA2Goq4VUNdQsQOE8Ue2P/YPRd72fWtIXIgjFQrhhdQq56EwAayasbcmXNCQeumxGkIu+kTEvG+ekD0C0JZT2xpS98UQAIDfFFYtihuk25WtXovGzYci5bvsWL4W6kefrKrge9CZUFsL1uhn6dwBY6pfGbJ8vDf1nUkjkPveah6tKxN1I7ek547/AlwNm9NUvZz7NqwuXujYUbE2ee8WLP6eMYurYwm4pJUw+wxMDt/c/mzk8fOFbSuxuGUW9xnZ48AZkt/KnCzwkLag/fIc28oFkK4RgjHeKKgCMeHwOAHiXjz7nWUMmGu0/6c72nAWAweiEPX9EEoAHz9LjbU4Ep0MoNtRpaApKhjy/WBccKhQaxiALzSh83yDeOpwKuqCUWcd+9gdWDcJZw5cCm531fv8vOL3YHI//aGVpPBa8P6PRZ/7FgW87LEBJI+dyeCE4tZhV5rlWLEQA49N0/HnX6vamQVN6P25SNeEa9wy886NkAGi/J454s0TdyjFGLCHMoaX3+fjMAyfQoV9Oe4e77l/7goVz1JncjoRdEthyxKaMU1OTXLMrpACDzpa8jQBW9C5fmPzIT5uc0zQx1GpZQM2xe5pm6ZyhbImYFduBjNaPj4wwxCEPMBAXdMltNe+ChTCryzn7ACf9Fi6R+9PGXG7/9OvNMbZMXFZgGkJ6pbsKO3herYKAAiCTk63uy5Vu8TW/Jzq1ZYV2zwjrIzAWB1S5EhJkHWMZA3VS84orAopTUDhftN9idbXWfNVImsMCWGL3cP5uyqq7QZ7tFWPD/oIsZcpZ13a3WWt5mAS5nhPO+JdBsWPSOe3aIvO/4ctSOc6/4jZogsJ4o6b0Q/ws/e8O9wBcC6ac2O0kaePD7cP3AM7XNyw6mqCVT66NvvtYfvrhP4HT10tzU3WPFvc/4mqRBsWe2Noju0ESu+WpyZKjrZwCAit7xpxblNQD45Mb/0ojOOz15P3pCV3M8oyf6wu//fc2IXxC42iGONcplvSsyWWksIo8ynorgM06mAaQ6pUkWBLZNORCQyzJfyqHuYAtee/j+dEzMpSLCLHQrlCrp3VkPgebrOwsAZS0Jr+zwnd86/hJwHEcPPo2oMLs/Ksyi1wEx5QCgrHcHntkZS0/oKizKgGfqYInZB+DQtsTL5YV6fxUAVDMG+T9WPVCO35/th6mmATwGCtlN5vCkew7np+8ZufivKu7lTcJc+vz0AXTK4ykvas6bByuIu948CxoLV8tF/ZgO/zVPrXDvltQKdeZJYB+AVhSnfeSXmlbqpyUcfaXBcID3oI2Y5ZaD2vvfnjvsE0nauUyWPNx4aTjl1G5r37efdCsEw5Yl2+RVlrGRKd6edazODhYcBGd/kf94Kibmsrnq1ghcVeHwCw++5OlV/zj2ZdFb6H5O7KoKGQDIVTYnAaCk9ULiKhGO0ZVU5B2vdFHDb31Hv1M73kMH5iqb90hcMaFbIY6A2iDEiku5XFzKoUuecK2rxwFHX6xOVzdhprbpSCryzv7XHr7fBQA92BiHZikpL922n2Zqm7Lu8YYFe1vi5cZ7/8a5p3HPpidTbh8oasmvuc/4EFzO9jcXnzy22OODaEFBmKoHMPHYfxoAOEaPACg7RSFwBEvjv5toOb95K/LNq4Yqs5yOvYb+BuHMjyWowmXE+OX6BAJzvBWXD+rf/vZLzi96FVYjObU1/rUYZ5ObcUlQyxrJ7+/DiSuNheKdSwlMPRkVZrGj50R238DxltZF59iDOHrwaYhsLdujZHaYNkVUnA6lY2+kDFtCtnxri9uTI54OTB93syQAkb7wpT9xse4tX97Pxr9wSLckZaGeqm7pfPXIcPdJ/Gz8C4/UjNghAOWDW/4IX3GBHOen8X3LZh+p6h3KVHkLeEZ/26Y83p351Czj+r4/tuFb/u5Tpyf/+eGbOn+2waK8BeBMSetO6ZbswXIXxTYAHVI2qdtSg1N71U7dXG0KgGcuze87VNL6JoDFZIyu27JBvs0igkURtuXzr7D4qlhcGGkAKZaYCsMYwXYpwPE2eDX6sIIvdxW0RJ/1KGjsC1q90ZrbPe/7Ow3gIR9A5ynf8bVSO9840PwOGhSUEDybxwr38evwnioAYO2baXChN3YoLwEFsMQ4lzk/fSD9+tTncUf/d/1J/9OAg5Bzf2fPTx/IzlQ3AQBcCOyy5PrE0xfzdz0zVdk6rJnhjhBfGJa5Ut5TK3b2vuiDg9KWHMV1izWSQPrVkNOT96fn1PUgMDZzRENJSzw2Xhp+RjMVReHnq6oZQ0ycxrw6cDcALNT743ClBpkrQbNieZ5RMVHeaXZKE5QQS5hX+4cBoGJ0Yl30AhhiiRblYdoCGxVn0SmPJwej5z/DEkMdiFw4NFsbPM0z9URcms3XjI7cogHuwpBX7dSmXBlwfNmmLSiGJcZ5Vis47ZwsOaYlw4G6vujfPE7DdVN5akdQDQtODN+ka0xGf/ttiVcaYnyQ9g0cXxVMs414POo71pjQy0zcIGKspSiLRUmjlcU7HhhHYw75DKZN3NnX3uu76V20wBP8KikLB767G46E0haj4FLjXfptEhywdmPEaw9H016IJICsZ1DimTp8FvEUgKznTgsmImzOVPpiYyJeW9ib0qxQtqQlk33hixDZSkcqeiHfHZpokVGUZHwFBYAWnKzVBGOItdWifNgGC4VfqM6r67Lz9cGqZilNPn1CrO6ByHu3MLCFitH5ZoFRkjVFBSDg1zf8xZ+si14AKIZna+sBADPVTUnTknMlrQfvzBwY4xgt2h0ae1414snu0FheYNUyAKhmLFe1OxOGLeHKwj5kirc3PBEAQEAVgCpen5bNgxA7KXGliOdqcUE/Wd/kdN6nk3K4ARfGItCikSct+F3bbAItRU7390pW9RVTLAXbe2OFD1IauCfQvHCD5In+HrXzp3sIPK9tk8F0GTeh9/dDcBbdfvp4w2DxVKDtiO8+LV3EK8CCgx4Bb15uRSMrcuuimGizAawouu/oObHEx+dVUSlp3djYcSYz6YI5MsXbM5/Y+OeNCeKPU16ak2wRcddq0ij8Qk6zIjmJrSZVM5YDJoJN0gDwjXNPe/r0/Ss8inMvij13Dvw//GwtzRmWaOtWSGEZC79987874gX0PH3hCG7tPoGIOLtbYGteXbSRv+ofSqcubn4MAKpGEQCeBAHyqvPI09WtMG05mwhd/xrP1P8iIszI82rqPyRC1/+wO5RBiC9hpppOTla3JVUjBhtc7paeH939iY1/vhsOpznmblxPemNWjXiypPc8wzN17Bv4G+85lljz4X1gsmQxOL8d624Srpq1Ch2vAZVdbiL6z7XD37ejwCbwCBx8fBUtFocrlZxtcczPaXPwUi0T7HH/v4DFDbFhx8EiZ/Zj2b1F3mAqfpDMasgdU8F36INAVzO+/uIAeDgbSLlVnz6QThLOu2j013ah+xIKLiEf6MUFbDh+Y1e8biTy+8quB9s+ZN2MQmRrS467LiakY29AMxVEI7O5TOF2AIDPqOdRWz3QJyHsnyjfgoQ8ljRsKUsIznbK2d8J8aUiALx8/eGTKbfGt+f/BpB+Z/bTIw8OPzIS4osFuOJef72aKtmOK6xmEM9gld2WeDkDAEUtmfaezWI4ALbJs3VPlTgCINOjZNLXCnegpPemsuVbs0Ndr3g7fyTwPGkASISu53hWy7quSW9S5tD62YPHUm5+8QSc1Fz5pZe0pdUaiBrkvvMRNHMzv2g82mYT8HOt5ajdM/ulj5yTAqHxzMFNMdhHq+dccsy3iRXgzAfB/b/QZo4XvOtaSZVrIV+wyoh3rIVq4R/7EqDRWoxxjd3tG+c+7xvsi8F4ZEyVtzygW6Fq3YzeTR9vhtUuPvTxJkuzH3L71lfKb8pcUQSAjR1nfvPHY78HmzKNfnb0nDjmS0zZ8sU9251OA4CqrUdl7GPZoa6fYjDybkpka9Ct0KXp6uYlOcjcvtNz6mAKQOqfJn7npJsgw91ZJ3Ben78bAExIBSczjEPOO2jAhdNvT3+q27Ql6p5ucmFtjL+OdPxMNVu+9asxcRp1MxxhiJEQWM0vMmYAwNtE2unZHv7hteyJEU+Hd4N3nHuSxqN5u/wSamOBDpYKCk6qNHz4a9+x5cTrpmvdv/2Lykv+2NK1tQoVsxH85FNfGs8ceH8NABOW6tceCi04Pv+iaxLvA8eeWmmsvo2j7bkWNOL723NR+se+BHzTAMwsM5YmU77/hbTi1H6xx7J52bQFOMkbl6WWaB6PLMoI46Xh/enYGwhWUO2SJ7JTO1/HiYESvveJ9D2fm8006XS9upoKWUayyEwlqpF3MDr3saxb6jcD4NRPxv41AKR3J/9uj6dCHH7hwZe+dySdvrGgJ0mxJxGrW/keE1kPdz9eenL/zt6Xjv08lkw9mb7t1NCZi+lNF7ZlfOpNQ4zc0fv3P0Mzl/ImS7VHyQBA+fALD45+fMPe5x30mw6BnX0Ivo/p1Uhz3u+DTVzBFUEzF/Pf3l/UklmW6H5r+0i+NhjhGE0p6T3PuEEwjQnbyni2Ft9zC5E5uNlW4cSkPwRnsT3pO+eX+vyAHM8VuCobQjtkG9AU9NFYjO107zbWe++52kFw/RvVQz4ufyzQrhXmvZ3lfFm//SrdgUu+sUfLLfRWnHK5xHTeNZls+da7A8cbQBzPCNcpj8NNZtGEK/7GuacR4v8rAGgcsbV5dV3WyXxDy6YtFQxLjHsIu85s6pEvTPDlTpKKQMz4IZy4pMSzQ9WFpJi4mr+LfzVLnsBL/hfkVRyhjzc/55SkpEqpMfA8xZbKDKIlvWEN9hJwXFLiTc92OazsGSMfT21VzuG2Sj4LIFs3w4ArwkpcpYH825b4qSKyTnERx3q+KasI81Uw8No3TcZgeibvDw+f4GaTaYimHFOPA4BFBRimnHvp6mOnVlHMId1msq+GkoExexb6EfeYp+K0qosWTMq4hFbBPYNYAH88+2oWxy9DK72foG7fQMQtt6G2EPH9/3tGuAJpTqu1Kmv/qkX3FjtfK0oDACE49vbMpzM7ek6kT0/en+4JXU25biC/gS7jutOWDPbl8f/1Ae9vL6hkZ+9LIwBwMX/XfgCpopbMzlO+bJt8BCwS46Xh/S7nGgWAL06NNhlagu5Cn86TxKIBaPQfulyfcFzLJWbmsh+fGm2qVeYnXaoDABixjDhKyajpAuyB7LF3/+tXF8fuWNPdZ/dXOU37vAZLxOrXpz6fCQa+eCQw9WRCvp6UucKWrtBkDsAR32Y24rVrZUxtQZ4hDHDqpjVxPH9DT1VwK9x4qMNW1ukCHC5XhjNJvd/H4BexHQr6iwG0NI61pQBIpR0t5/+G71zTBtFGdfE/J+AswIZ7LtDtSgxyOfJLQA0cs98DErxnKwNp24Xe5mWstJOlAGDfwPHsnd86PkofB9otEncCNhnv3OONNg4ktP2uvLGow7BYcExUnScRf7orHNx5AF+YvJgFAE+s90N8AXi6sUwpA5FTcfTg00MX3z0HANlrt4xmvjjl3HrfwPHM2zOfhleh9Ct4MPPFqVFczNdS1yIsMnYHSsTMkdBUbnO9DP+9guRVhvESeLjQ0a+2EDfTbiAN0GxwypAnMPraw3vO9ipX9lCTLHRh0mvj0UivctWd/Jea3llwQri/FVB0AKiDtIViLnmOXUdfbLu4SHPpohEsYs69SZ+Eix6Esxk0xN4AZwNai9CtFq3/nbd6hqbvH+xrGQpe5/8Wh5e7MKj2BufwWuG6Hn1QwMyyHax1UM92p9OqZqauYj0qY5/NOC62B3H04NNDElfyCg1k3QQHWWAx+YVHzcE2D6a3JV7GxVA8mS3dCbuSeE+YXp9Iht+HZkWW6Ip/PbCt8f+QcTEdts1Uks4tMRYZtihPlzalAOD+8SkAwD7rxSZ9cEfPiXRMzKWKWtIfmOBkylkwDkVrs2VpvjOC+MTzWPRz+/zJzTq2H1H2bHc6/b0jSD8L4HOzGa9v/6RN//jav3rMsMWqYYfKwB/f74W8Lvf+l/EJe4a0Rd2RYAHOoluzVdilZ+CZHgkeABqT/CicFFMCgDfRmjN7VvpHsGjXOIaA738ZS/MvQ6tVVVpKG8vRGsbX0n3n09eDefZWE2vfkpY1xgX9e8v47rx2jUVAH8fQX/EikL6Qfa5nI3DHd3HvFw8M/eC+pf705e6/mDq6QdlxKYI3iruyezCRlPlSXrMiudG5j53yUjYBSP9o/N3Uq/EkzkUd1Nno3vOZfZMX0aGWASc+I+OJ16bN70kqV5I3d/0kGRNzubciCUx1p3Hvc9vgjTcdP/MIga10yhMNP68XRecUO+zzUiSfeiuc2A8gNSZHAGSantfTrUtad+rtmU+fAoATn/wuvjB5Ma3nN6fOT2/Lvj71efi4eYN4RlO8dx4UVZcBugSt9v6J6216J+EaxlaapC30/RH3/0EQTAAQ0awnA04kTBzN2WSyWOTmcNWOz7rn4r4xtg17XQF0ctR37jCanxu+v1eSYPwb6i/rHltLXvgl1wKtrfMeBd9Nqw1xTVj3FcSFYDhiW+PHjp4T6boZxVR5OLv+P1946ejBxxqc5/Wpz+PwCw+Ofu9IOg0grc5F9rTr533tltw2TUuatoiPDn57v7cxjZeGU9tKwERnN84NI/OF0/wIAMyEhyNTfZnnx+QIPjebaRjkXnv4fpT17pTIlZOKkMdCgknurC488AdXz1RfeBwTAJ6KiTkQWKBgG8/qvfyS1otyuHa3AFP4SWcqLlvmScCx/AfF0Kre8YBls9UueQyffPrPvwkA937xwBAAxFFKJuRK8hPpr+/BokU6AyA9Xx+sAoAfvRd4397E9sMkG/cNWMmdBb4UUNKgdt+6zfEIKAQQt4xT85g8qeFUC/23HRWwAvdyx/FncEE21Cmb1GoR7qeL4aojLc43XdPm+YLGtIakt1opYxXegjVRoL+gHWNJv77oNQDNeN4gtRN1GseDH841iHlt0gDwA2DUE88dt9XTQ3f0fzft5kfD2zOfBn0cQz/X1RQA3IhlcxUgs7XzlZHRvDNnPolTI5/6T/8p+OKW6MR7JpH93f/zxdH/cNgx6vMAvtm17hQA/LNHFjmtN55cZXPStMWkBSahsYt74HeTWx79yPTCVgDo0o03l7guGOPI1ODMQwmzGmHhWPy9cx8uNmxszj2qNy0xuv3gvhdHfwCMvvbwHSiLuZTEVRrqxeLE+ncvLbd5urQfjoj8CJZiooPvJweCHFokNGhHbVSBgjNQnAdw0gfB9ciranq4xSIKGt6e8s4tp8v6xuEZEBUsxnt7m3DcPSf4umkJ613uuX1GaC9v26ojx9r1uZY2wbZtNpdlUYXA8hw9oGO21lW8eGQAcAv7LdlNPKMWAHzJdzwqzKZ29JxAVJhN1c1o0w7uLZaL+V3YBEAV7MgCE26cv/e5A0NfmLyYfkstp1yXVurnMSev/PeNg9lNFxz9/OjBzw8B/x0co0d4QpT7ZrLp2LWbHvrDL99XAJxoMG8xvfawk9Nta6WGjUwJIECBEwZtAD+SdlwCgEv6Hcfufe68p4I8CgC9ypX4e+6c42wr4nveDLAI3gGAdTfmCgBQFmn83ucONCbGFyYvpgX1J6ltlTywCmBLC9oPoA8AA2ASrfXK4LcJiq3+jb4tdwjQU1jEmS/ZPOAa4fwu1BZ9LIerX24B+bPlNMhtf9L9Gcxs24TUa3V9CwqK78HrgmruqkpB01WmiV7FBl/2/d+yv7WGqTZBGQGks6XrezhGgz/Usg094g66kc/rtYc3NT6wx1Vdd1PaXSyZb7gLVuQqTZ1tfHcordtG6hKAse4r2KCWMSZFkgmjnhvdez7jLXSg4ZpLDwM4f+4AVENGUbQHdVHDvc8duOfQ29wfczZR87gh7yNnj6YpcrDw9892p3EpFE8l9doDTMdkTidsZPSm80hmBvcfPfg0asYjcQCIidOo/PTIyP/iuO3uQYCKvIjnejZm7pu5lt7T99z3AeCv+ocAbAQA3DdzLd2rqynVkSJOrWYC+sRRwBFJT2GRozfI74YJGHa8CdlO9Gxnl2kYCn0TMOgdaCDE3P9beiDaMBGssEg8egiLE/wkFu0N3hi83363Yzv3sH+DC0o43rkkAhvwavTnIH0QfX2F/jxbR8t3FoxeW8kosYQM26nS6VbrbBeymEELLLPPwp4hT2DU49KA4xIjT2D0H7/wynEAuCFKkDadOQIAzyKdrunV1IJBkh0qzU1JSkqyzWSF5RIJo/ljXB2+mD6480DmC5MXPTdb42PrHBQAewywXaCkUqQxgHU2s/PTB6ATI8XGSDIXm33m1Y4+z2ecMgQ9eXX44kqYgiXqT3+92pRt9L6Za+n+ejUVtfSkZJmosXzLzXINIqFn9GqLMsNiAIn3PUZatEnC1a39ouoKE7tVrTXvb++5mxaR71mWQDe9NliUFu6Go4tPuGpAwW0WxyK++yEshnM+36KfJZy5Bbds5aXItDgW7BsI2G585wH8arwFbSSdY2izcXu/1wSYaXU8HT+bQws/ZwsraGE1ffbqaqpcWp+8tpBIHT34e2nL/nkEAPoWUP71RzIvAY7YPnSmCxl0ZcPK6YfmOTEiiYoyJ8gnu416Fli0Dt/7RScircg7cFyRraVEtnYy280mL64vJHrr4QQDnies3Qfbwk86Uw/9xnx25PWpz+Ni/zmgjOyO0It44fyLeHzj3tS5aDc4g8dWci31zvQ9x4DFghf3Pndg6NnJiwCAz81msl7BBpn0AT3IdOuq95jJL06N+kEjfm7RqvJHGnBCeI8e/D0XRPRiHIsgivRK/lwfpbCo2zY234CE4Im9Sd94PAraZ1YCobS1/NNFnHwWiwtwv++3/zjcccfdPryxeqJ5yvd3GViSwHRVRQ6XoVVXYlnJKB00Sq6lv7WQfxPiAqLmisgh/83XKLIc9nziwewoh194cNTVV9On4n2IlQdy8ZqQBQCFL5QBwAvY8Gh07/mHAES6F+a3hix6qcryudPx5NnT8WQGAP77f91yFABm5ibiJ7sGR7zrtiVezr4VTqQ2ATld7YDFMLm80JdXuPl968wFJSNFPv57N33ktrl1LyE+2/WnHyrcwANTo9mfx5L7ZctEfLoruY7JokeeTe4bONOU4OLeLx64x/Xdp3hqH7JEWREtu3qa3nIEGIUrmvttEf648eA5AI2P1co4OgLfQlsN53C/mWcFVwBM+BbfIBYNOkFq4ri+a7zgjyywBPCzBHO+zHxpZwdYDicwEngubx5HvOdy79l4L8vgCjxqhRVf8i5buCm9a///Re0kiYY1nkNzlM6qqdVHXal9sOSTH6l20O1na62A/olFNfOd2U+PXB2+mB7dez5z7z1NfvgIKBQKInSZ9bJeS9ySmtvwkCbVI7PrckdUho0DQMRyUiDtOrcR57ExPRB5d48cchjZtupCrtdQ74ZyA7OCvGGeYd/NC6Gbx+SoDrmAcmchK09eBHzJcaRaKNdXncPOeRXNzqRmmhXkss1EIVJavskcS+2YuYYKywOL4qP33hsx1p4EAAB+lB/cb6NZSsqX8KOtUcsTt/2+ZDSnZvYSbga5nufXbiTUXIbSoHgYANwspp57rp01238c8L0DV4duegYsSjlZdzx/i5X92Ee8/pZp02RjWAaPsFqxe4nRso3xbDVQ5DVRO0BbC5dbZq3GuCZ6K5xIAUArYMhKtLXzlREGhidqNQJSiryIz/lKQwGL4vd9M9fS931jKH2+VtxzLRTtBiH0nzr6LgAY2XJu+6MyAIuxIwCgEzZS5vitFEQAxdGfD0gn41Uml9CiGJccMXlUid+d0qq7AUCyzDd/ocS3XArF5ZCpb9QJk72lupDS85txfnpb9tW4mXy1gzs7OCOk9kwi+0bXYOpsdxV/PbAN9z6Hob++cHLkytUzEcU2y/9+y53HAIDpmCwbAHqNTBYG8Mn5CaAZMAL4rMBT5eGsGyKLl64+hkDCTi/NdQq+POteg1VYZj3yi8N+C3LQHRe8xjv+qDthB33n99E/xD+BIg6Cr8F1Q/meteEB8G0+cQS4svtnW3fXKhYwgF9NAEs77t+Gm/vPL5GQA9R2wf+q9Xn4VGoOi37Oth23G8CYHMn26mqqyItNxpV27fcNHM88251OnxgoYes/Cojac15m0f0vnH8xCyDzk87UQz/pbAgZ9wPOAh+TIilKaTITisIgJEEoeS2tFvM7K3NnAaTPczfFAUCGruwqzaZuiKHnL5J1v99H8x2D1UpigMwmy6GOH80SDp+cnzgLIJUXpAgFQjaIaTBMJGrq4p7SzPWkVkOfrl64tZT//W93fKT7vS5SuBrqGvvQwmhO7ZvFuY4ypnkZu8pm6sG3tT15EsvpthLZrJY8nTfzfM/GkR/c92LDwNjr4gL8HwBA+trCXoT4hT26LeV6lStJlugJwIHWYmlhwWUhry0oHvjt59JZOAvSM960zBfnPU8LQ1zZF+vu9auheXK3WgzBMTVR070p/hgO0k7zYLXtaBm9uMkY2ErlXGbutwtGyWB5gFjLTWCttFapOUBNKgjnv9jz635h8mLaCwRxacnO5ljJt+G+mWvBgQGBKpj3Pndg6GBgAABQMRIFjqnDa/tsdzrNU4cjy7bVMBR9cWoUf9l3U7JfqyZGlQ4I1AYI8n1aLffFqdHMX/UPpTO3vH8MAD60cCM1UKseAoDrkt0lwrZZUJaJTmMsYt11Hey6b4v7P79eLc2sr1fyMUPPmgxRVYY7QkH+i00IbxIGRVZIagwTooRwlNCG5FNj2OQ1OZLUCJsYk8LgBaDE2kBzspy0+z7TgIO1v2/mWjYIngGAfNgclgmPMuHxIfZso8F0dXPwnS6BGPuOZ3z/+yfuiP97tbCIN6LHWnCZJZbmgBGs4Pbv3WMTgCk006rUwRauL+ee3kZCW7ZvjHcFTtg0j9coPvvfd0tJpAUtsWe4fy/nsQhSy0yyy9FK0sAHEt1/cN+Loy8sWmTXhAP+fvfGY9vO7srcs+lJp3KmQ9kS5+jnpmU22r4VTqSqLJ+4HIpjNNx5AW5mzDlBwte23HlIss3TbtPc1lohy1OnzPmGG+G5366f10GM+FzM0CZFRZqSI6BAGAAMhsnvLuW/9XY4AQCpLkN9UbDtjlElflOfXttXrImsFZmHxvGkEkY1PGcABnLzvDgs2RailoF1pSqShGBs9hNH9g0czzy+ce/+dK24JxOKNbwRANI7SvlUhWEfCNtWFU4CvKfeiHY/MqWKCREUXD30QwBIx88CQM7936Mlu7rvw6Z8/6/2/TdlTfHfw+9O8+vNvok3AjS1KQB4FqSBKQfaT+r9cCz6re7vkae7J+Fxc0BdAY3WxIhWsHovec5WtIyxudCm71YehCXgmpXu6Y3tV02Nhe5Zvdu0W84av5JOh/tmrjX6/dJXRl+ij2PoYr6WktI/28M42/XZ89MH8MNEMrWtnj1txWZz/+76uYahaEyOZGdEOenvO2JqmBDDCgDUOMf/vKc4fWhCCpdNwnzYJmQ2pFwQLtbwe6/FUnsKnJjIicrHCAUhhDLjcoTlqS1bBMmttQJ6dTX33eTmHWFT77gqx5J1htO+NRA1OWrfUCzr6xFTO/RarPdQmRPLAE6ma8Xk6VgvyGDuboOZr5K+S7/zE5p6c3OtGCmz/Om4qQNA6ly0OwMnwCU5qFVC7kIHAEwLIcwrC+o8L1W7zLmzQX7YYjHDt+CCMdpLgjNa/W5leApyjxbSwhLytYljaXXSJfd327dD23nP4xng4P7/dThpoVrpyC37CXJsz5bRwkC13DOBPNFcY32Ni2+1qMLlaE2GbrR/JwBa5HUHmnHgLToE0HrRkycWK3sCToJJ+jiG4KLcAOA5x9ecjtVJcmMdmJW4xEw4kbpmUkQX4tmwmE1+dDbzQJHlD9HHjQnyBA7/bP4+lGjBmQCRXOYH9704+jt/8+tlEAoLxPMJZ0OWCZ1hd7+ndHDzghSilGRDtpHaVl3ApVCsI1Uv9UiWvXA5HO+YEZT6VTk6bHZtGLAIJtc7ceQboqZJeVDELJ3YIJBsS2Mohb14nzKAbMdk/wOcjarAL2zhxfplk6DPArOPgGJXJX/6oh1P3lQr5naU8+m3Iwl06PUtAJXg+rDJExj99jfkMoByp6nhi1OjmbfCif0xU0sCwKb6irkSg8kbmj5wC4t724mzBldpUKJIwwVrrNWw1GIR+cFMK0Fwg5b9FRd8i74aEXar2djI8hVYl4ztg9BK36PNu13WNc55vu2L755LX7tldFU+WX/tcvLEimmKgpQeVTr2pNdPJDYUp/OUEy+MyZHsGwu7ANRxKtF19+aychsBoBv16d/6u4++mS/kRIu1hNuKc1NqceHQnr/eDa5aOK2yLBTTzLmotUcpIVt1wvSyoAJ1MoDGywz/f0kw7F5drXYZ9VCdYTtvrsxjplMhFFApwPHUlnKiUh+Xoua4HIFomXMTonI+bJmXz4diZz8xN55igBAF1gM0DZBISGPA2QRzcgiaxCBm6AwB5VlKzTuL0znbVTB3lvOP3FxdQMgyUlkx/LfdhpYjT+CbAPB8z8YRuJM7bmjpXl2FynI52TIBlJu4NRZF2qA7dDXYBw9d5tFKC8/7/hlgsaqpN9l9i9zBt7fps0X/TYUU12JcWoW1frXW9jUtxGU8AMGx/1LMca1j+GX7aHD0bWd3Zb7+h/+308lSkMEHpcaO/4fHZvdPCzKmBTn/3b6tf9toMXAerpX6ke75OqgTnAEKiHGzNgAT2FItCtfD+ul5TkyejfUmAMANohgJm/ru95R4qMwKqkUY1YknpVjgRSFiGigzQmSDWZZE1mYJiA0CSkC08VAElEIigESBStzQ4ulaUaiw/EfKnBgFReIfutblKQUlhJqghIYsXcmEolsYClNlbjXynTnsK+ZqimVwnSomx0vDmOPlpBjJ5TSGTfRr1TxvW/V1WrVJ8XafFwAwJSn7L4XiAIBXO/pOvXC+qQJOcHJmApxozbTc5PkAIusHHYMf+NJOxC74r/8lJ75fRW3i+L8qH/cHpbVsYH4py+dFaXqONRnjvIs9bt6KfKmfW06kDxVyeCvSlQCATCiW/sF9Ly7m2XocQw+YOv6xM7XQpatcj6FOAhhQ4wUAsHl92gBiAIC+evmuBU7qTxiqpbNsyCYMZMsSY2Y1rzIcbkihaQD9om0xM0IIdYbFM8khU2cJQyi1QVEAwbdBkeivlz9pECc7Y7peme7U62lOsAlL6YenpdCvURADgEIpoQSwJdvkjYFLlwEgLyq5iKlFzoe7rm5QS5JRir32RojFbTP53EZjIltwNp5yneOUv497ZobFdevh3XXCDHea2oVpQc7++y+dG130XLXWo4PvtcVkeMpr0wq4EqQ2luw00DhedRehX8T2GxyD9Kjv78Mtzrcjp5Qw4Fndg33H0UIfXc7vvYIl/lcGYFkLrcSl2y3u4HOu1tjI+etztbpxqxuuIqtog57tTqfvfW4xkqz7yhu4qVbM9+pq7rWO/gzQwIinpyQldUt57vlrckSpMwwmJQUfm5/8zsfnJ+4dlyLbAfSc7BrcBeDRXcWZx8ocPyBQm9PBcRtrxYUuXRWTukqnRIW/Ia7vJAT1tyMJPprvHFUj1VRMU6EJBt1YK02WeOGHXXo9cVWOdkRNXaixHAzCQrFNvczzvElYMsNLBIAFCoEAPCW0DmDh1sp87nIoDhsIxQwtItlmN29b6+cFGXFwO96gO//+Nvw49VY4kbqodJz8H31bmjj5947gHg97HzM0fHJ+IvujzkFcUuLZ53o2ZoJz2y9KL6ML+12afhpFQPx2r2lU9Ahw7RHanL7YQ9H5+/a73tJw9N2meHD3fNwd4z1ofqiRNn879yFNv9PeuN2+ljMar9Z/3ZKjr9Jl2ZLo0ow23t8rqVSr8gAExtjuOf2Ygabn57z0y0cPfr7lAl5mYo1gsRrFqnfsMTmSvRSKo8iLSyblNTn6AEtpFcAWybayZSuyyVpIyN8Ib6ITSRUWYRjBtvp0hk11mHooZNuIWgazsV6qxU39sspwvRfCXd0qyxIAk5QCAEExsYC4qdJ9pZxVqvMcA8gLvLilynK3U4KublOLlahtagxbf7lj4Ac7y7Pr6gzLxCyDXXC4OCiggxKVEjp9XYrIsm2qfEURe0xGubW68FpcmKEXldiGQqe4ZTR9/pHzk/kjQASybTY4XiKb3A8A+pwB9E1kAeC1ePKRCSmsWITID9y4rH52JpPrfNxJ6Rt4PY1JcfbGfY8uHn7uqUC71eKvg8Y87x7B+O2W1GSxp/g7OOGxOgh+020SX0VfhWW4bRM4qJ1U0mLhL+e681/fBINdof2aqB23DmwkwMrZbVttBGksxkcEr22LGeCAxQQQy1kh1/oyvPb3Prct/aGFG/sBQGU5eHroF6dGM1/6yujov/3Drx0tjM8NnkASs3JuMxwDWYyldE6qysomQ99QMDjDrbwmA6AA/ZOTnalxgEozglwBISaAk7xtfcQGYW0ABBCoM9FCALaLNrWvS2GiMSxUlpeipn5etszBkGVxo6EYyQsyQIgISn/7XKSbA2iVAGEKjBIg1WHUYRHCaYTZkgnFCgAdkM1wdlOtJF+Uu7GRK99kMJwYsiyimLqiMtyen3b2362ynOdO++pNtflktM7k4iglVfcjva90lN9XOsoAIr81fQ28ZTfeYYuJ0YpaRZathKDzu7P8OQaAxYi2wgqQ01bUh0WJYATLj7slBXT1PWhRR6wNBaWM4PG1UlvuuAbwzHLfsKUHYBXjaucVaOeBAABwbu7wVfTfnv77f91ydIaX4gBwsmtw5Af3LVZH/auZa4gZWhZwcOwxQ2tcd+9zB4bMd804ZbCdEhoHqMRRu06BYo3hfioWBnovcrSuwYjtLo3mdYbpNUBwLtodIdQeogzDgFIVlAIgCcm2LBuE2gSI6jVmWgyFAEI425K21Ap6meU5EGJNyGFKKfkIQEWO2oxNCFhKGQuEAhCJ2yEIOAK6ExTG+nq5ztvW5C+Uzg0aBQghCmNyA2NCpyVZ8ukUGaMZOUJUhuVskG3X5IjMU6pqPlRXaoHL3VbOQ+IskI5qakpSluzmDGikwAmRv/zGxnueNTQvhn65yeqdewiLsdinvZPud3iqjZupwf18nHEkcK2flmz85AmM0j9sGMi8ajH74UuK0QLkM9JGUgzq2J5Ff7UBV+1i4v3j9/oPLl4/F37Jt2hGABTchRiUsnZj8X2NYO0UXOzL+sLbXNegFtJDQyLgliumGKSAHnK/9/ezR8zjEmOtSuTz030z19KXsT5SpbZsMlQmoCRq6pximdlUvYxI55sXOZtWqyy34T2lU1jgRBq2DAKAYUBhUcqAoBMU6FNLv3vv3Lg2K0h8iRXq74S7OgnAUAAMKC4onUKV4xmTYTkAouPTJkxSq4EAIACZlBRie79sIoJQAgIKQs24qUcJqMSBioRggVCqW9H8VcE21/dw1btmLTkyWK9YC5xIe1AfYykdMAhDLEJMUGQ+ujD5Z3RdTSmrhaptGYrKxsHZdvW+mWtHfLn1ACD9o85BP0cecf8vePq1W1utVXgm4ORoT7gRZe2+Ydxt/7zvVAat/eT+862JuFFszZO94I2x7XVYNcdbrgzzSsEu/pTKDZuCv88PQF510yZqseBG3HZe/vqgXt2OlkjTbb7Pkm8T9MVz/oYtcMNrEt0Eain3zVxLv+C7wRenRtsakIaqC3v6Yz98/q/7btpT5XjK2ZSsUyvVz+THTl8Md+B7vZtPguJuEBru0OvJsKkbe0ozeD2eZG2A1FgGlIKAAAq1pPfCHdaEFMGUqETSaokpUAkUFDvK80RjGKoyrH1Z6SAACAE4gCIrhcEAuL04jQIvQmVYWDYH1mIJJaAWaxHKUno1FKOMTQsh0+SKnCCJtsVQYBtPqRq2jI0MpcRgGHaBF0nYMm66EOkSKpzwU/eRj3Sa2kM6y5ZLnIg6YRUDRFYZVp7npdSz3Yvfekc5vydq6UAd+It1t5z63GymEHjNQUOS95EXETbOIvcs4kE9L+67fi2hyW1FWR+NuHPoaPBEAJkGurTqT1DdyAT+XzV54r97n3uwzIJoB5YJoAbjgcuecv/3R/C1BNu476OARbfgEldpoI+m+69AbdXq4EbAYenEaZA/eeFy+djvm80cc/9s4K2DN/dBbFMvTrybTGpq7s7iNN6Idh/aXC0Yo+HOeq9eq0rUpP/U0bfvihyTKGgKhMgExNpaK2oAMCvIqHC8BYBQh1kDlKDD1BG2TAauU+ayawsAgBtiCDNCiDEJAfUauEQApOplWMQ5yts2OieTkKoKAUAq8SLm+mf4rKgwAElSALxtknVq2agzLLdFLQrdusqfjicRMg1sUov2hwo55tmeTbyklvYTwP4Xucvl12O90AkbGZfCZYZShCxTlWwrtL9wA9OC3BhPkRNzdxanswAyn/o3E6No78dOBT6m/xsAPpx92x4WKRiJFdRBR9zfDSmgjU7pcc+nluPA/mfAomEph+Y4+DXr937y3bcpGeQyuIB2HH6kRb/e2LzQ3qYc9L/MeP2b0xppuUCdxlrksIYdcxnreubZ7nR6g1oGgP23VfJZbyL4F3iL63I1hkONE6xuQy2Oy9ELVZbbrhN2wAAjEThJ1CkFORvtlqm7RKkTK+Ya5kBAKM5Ee3B7cYaktCoWeAl1BvB841kp3BQAtaVWwIQUQZ1hAQBJXcWYFMFAvYIpUUG1/zqmOb6xIRAQAkItgDKghGUBkhNDfJXlSVYOY7gyT8osT0ssz9xRmkGRE6U7Cjl7QKuWBWrX+rRaAwV338w12MCeQa2Cc+GEz6Xm0BcmL+K2St7PWQ57oa7fO4J7MNv0ufwutQwATJS2/zHPqCIAJMPXvuae87gosGgka3DnZSZnwceR4r7jjf5aLfYW59p9/1YUXPxw+wu6vFYrejdZ4dvosSkA2eDz+NyQXj/eueBmuiytxSvVjoKW/IDEsSItAcz4H/Te55qNMUFxIPiix+RI1iDMI/OCVI6aWoQ+PvvVH42/u//VeBI2xcNFngcAnI90/3CIWciOyRFUOF7ZXpmfNhhGykqR53lKhwlsFQTEsGmMhQ0ThOnVVLvAi6xFAJtyCtz1RwEQCrqnNE2qLIvLSgI6YbC3NAOO2siKYUxI4SYufjkUByWOtY1S4I1oDwBgxuWsXltvcyCUsiCEuNIAuam6gH6tSl6LJ1HmBP5CuMsSbdNK1StkhsRQEdlql10z+vVZGITpPxdJrGdt+z6LIbU3I4m3Pz43IRPbxpZaQS1zwtkf3PfiqJf6SmO5oM8Yf+ULCkKzZb2dm8VPTSKwj6v54bSrQdkVfPdaa1y8d12rGO7GQnLH5n9WP4f3pMU1x2Wv0H4lFaEV5r5xbCVc+q+YGpto4NhyhsVRIBCPHiS/uB7c/YId/vXAtgwAfCF7UeFsC7xtJQCko5ae7NVqqHKcJGpmnQPUVzv6GrndPjE3/kyJFZIFTkiA4oHNtRJqLMurDEuLrIBeXWXH5TAEarEJXUWdYTEjcs76prSxKM+6ixVwFugb0R7cXppBr17DPC+i6qRxapwHBai7lAnQxPHXq2Us8CIYSlHgRa8xC8CiAERqO7o9paDOwic9ek24pHTQC1w3GGJKoXpR//su5vK8ICbeUbo2UDcNs0BtMED+uhxFTgyVT3YNZu59btuQOnMtDgCybRVafYtA4ooMfIv757Fk6pISx3M9GzP/+ad5NdDOo+CEaFxPH8dxNBuLngKaLOtNGw98uPvApFviMmpxvEFtFom/7Qiay0atmv4noN3aJslsB0Fdxea51nG2Asost5E1vsEHikf3OgOAF86/mCFPYPShv9g4MCfIoI7/GncWpxE3NIwqcWlKUEiV5WXfgDNumeIkgDwo8E8dfa+BYjcIJVuqBSZkm+AoxYwQwq2VOZqRI2AAxnJXJ0spbEIIQ21YrqjukcepCYB+rQIAmBYUmAzj6AMAKCHYUl3AhBSBxrCwAdxSnUeF5fB+qAMldzFTZ0dhAYLz4QR0xrkXT23YAGMQBp26avNSldmolnnINM6bFAVeCLOgDAPK2mDkK3J8w7Awf7rM8pAsK7KrNLu/S1cf4G1rCwOYNnDBE9W9ajU7SnncVsn/GwAAhUb+A3a7HzADIO2v1775v7zxEf87aDXZAgtsP5xFrqA5Jfdyul+TBNHCiLskHNY77wFU2oFKAoa0h3y3OetdF5AsvdTVrUBGbWk1RufAWJaVZldBvwrf/lqpsTG0XOjtPgJau2AadPTg00Ph2h9dAgCFMfFsdxob1HLu3UjnMG9br5sMgzE5vOAbRMb3Lw2CuynFx0FolFAwl0Jx4hnVbqnMocpydtTUybQgA5SQwXoFA1oFDKWQbAtnYr2osRzsJkHdoUkx7Njavefy/qcUVZZrGOMA4F2lEzkxBIMw2KQWoRMGOVFBnWFBQDFUW8D7SgdMQjBQr2JKVBCyLRgMy/bXVWgMy1ZYnlnghD1TksJ+dH6SORvtoRZD9Hk+NPZ8z8ZjADJfmLyYFmCjxrBbTDCUh0279frzf3Lp1T+TLFOps1z1tXjySMzQcFul2Vvm2T++MHkR07yc6jXUrN/jsdJE9H3D/VhM/+xRUKdu15df9/eu8/8e8f32jIVrneQe4GjV1y0zf/9nX9PWsP0roiaVoV0j37dtjGfVHL1VxwFwQnpHzwlc5ZwigPMSLXw3uQWfmBvHuBjGvuL05TleSnSZWj67iHZq7MqUIgHQIQIiEEpZ12uG/noFBmHsrBCyFgTZoCAsC1u0AZqVwmRTrYg34r3QCQPT5egEgGRbDWObd4xSv4C+SFNSZFGeByBQCyZhYBPSsN5TACAEjG3jfSVeNwkRbBD7uhxhttQKyMhRqAxHLisdAKVOfgvQ0IBWRcQyINsWVR2BALtKs6kN9TJmeOnrWr0LCW4mEbGMAguTjEnh4Q6znjAJJMmyNu+fn/ymZFsmHAlpAoBfNPdUpowfpNTiGzUs2YFFWIDjInrSPbbaxbRi9JzPiAe0zxOXRqA0UaDPEX9jH1fNYHEjCkoi/zOp4cVYq1gelHBWe8MPiFJtfM8PLLoHxLR05af/dgTwcrVv+d1/6FoHAPnRcOd2UEffohQycSbsBgBjALaAIO/JxwwFbJfBdpka6gzL6IRhFiBzAFV3l2ZNjbCV0XBH/OWuFBwd2sG2eEt5S62Aq6EYtlQLmJDCKHFCwwrvnb8SijveOXeRE5fPXwp1OM47SrC15hPrKcXu8ixUhhUTuoozsV7GBuxeXWW6ddV4N5JgdcrOAuhzthVCJkUFHChurcwRnWFK/yApJ4scPzzNy1BZVgjVlIptCWqNChfrooE5Qc6vr1dUAGqHoYVMQgQAZEIMn/lX2z76Vb/dxMvc01+vpl5Y3HDXyjHLba5pHFvBRbYaaoBKmhB17Y1YS0Rk3xiC93/yl4DqtvUWuNRSYl1urCsZ5JbxdTfOryBVNH2P1Sx2f5vlFnqTm6SVT90/AZ7tTgPdr+PEQAnAYilgANldpVmMyZHtGmFhA7LGMJsIYNkMIwOIgSLiorkopWT85ur85qRWwxuxXoyGOmCwDCh1NWoC6Y1ojy2bRlQnDEiDS1P06jV0GBquhmIYVTqgEwZvR5ywdUqIt6JB0Oxn9zi5UgxDk+swBbPB4S81tQPeiPWCwDXXO10xOmGgMqzYp5bNcriTpU59ZRugPEdt+je9/7/u3jxIjuu8E/x9edR99V1AFwgUSIAAD/OWKMnweM21RHEEiZDlGMnUrEiNtKbXGpu7Wq3Xuw6ipZmQV/YqlrPmhuSxR6JCpsYRsgmanCDpsalZDy0SJEESJEihCZAoEKhuVN/VXXfl8e0fedSrrKyruyE69osAuqoy872Xme973/X7vncVJhvVynwo/tdg3DHRrIUnG5VfWwmEU4ZkjNa1+MaykXr90ugaZqOj48dT6UcB5B9589kvhEz9Q1ZH7IKRnBfoQdQBPiqd/Y6cohMFtCZMB/P5XOdHfuEz5/w2iePjxPOjniaCcK13BxdHK+wgn3H53YNfTN/rZBZDer799HBG+poDXRCH3k0at0S+XvetNmpTzt6hBIC1ASIALO0opEvjxXzY0GGC4hIYIdMIm6SCiWSTSWLAgMXGDKZlIvzxG/HxfwcsB2Q2SQIzGBLZzMgMCYAko9NbntIbOBtJwSBq+53tC/tROemvAYoWP1vOubbfXouPwySCahhSVG+GFeZyUQ0tErDrNwpn5KIcQMzQV59PTd2+rIZvvBSIQGZGg6RZNb68p2Tqmknlj8/Gdv1QfKb3XnfHjP0566j77jjaQ1NAd9TXIR9IbBYW2MOJH3c4yASa8fmchbXvuJuaKrbtI93cCewD3WzbRMKrIQqHxH6+AmGbYI9Kv10ed6+folfb/Zx0fs9EJG+BT19H6IAahm+/ihgOGKYFnxcG+3tmMTP/JTDVTMkAgBMxU8PBytrxohIYv7G0tPu51HRQJ0IhFC0SMAVQCFa4TCWm6wDop+LjNTCiTLxOwATgsjrAwN76BuqSjOvKq3glMYmFQNh1whGA2zYW8bPoCBqS7NruIu1slJHUm3g7OoKJZg3LarhjgXBWEpGxyf53VbWIhUAEFVnFAdtMkMGSxGb4qurGuVeSoZcAxB6bvBKyaSZvKi0tTDeqU2tqSIkbGqKGjjHTqFclGRFDhw5FDa9HrZrugUvjt5WW84BVyvIjyAAARWpJREFUTBPA7BM2pv2nyfShw8duxmNWSe6BnDMCJBYQ8tDt716Hmh8V7etm0ImR75cD3gbr7KUp+MSHvfF68buzq4zfMfFZeNtxtAJv6NEhv3voqnVsMY7u+CW8GkNbf368Nizf+kp0b1iBj+IATj7lbTTbfv5TsMsifYWsgWqyobwFALadjk8unLt9VQntvaa8YiwHQu8thKJ/DsY9ICYwKQm9qYw267+8FAhXq2rgFYB/hZySMo4dTZYl/kZsDABwJpICwbK5VTaxp7aBc5EkXk5MdkheAPjAxgLeiI1jIRC1PPEAClboDqejo9BFZrc/OAtHXZIxF4yiLKttTro34uMIGTp+c+40apJsLgYiIyeSUzcQEB/V6qURrYHd9UqtIitUllUGQPOhqLmrVjp+bXVtSmLW2VAbL2vxN3fpK2keqe9j5lsXAxFRNc0BgBhKG5DEvPNuuepiieUCLPCKU/mnCMuZFkAr1p4Xzve25ZAIdAEsp5uogTg4fDce3Gf8jgqdg7Wz6qDkOO7EsT7nkZRu/10QZ21aSxfVvmP8fm11gbpua7jNr98ORh8izJABgNORVPrwsQ+3DbQ0sq4rpklxQysdWZzHscm9+YPllXtGtdr0O5FkWGEUK3IAV5dX0++F4uG6rOYAvmlHowomXBtkE1XgV5kgg6GB7CQyoM3OFqXvmWjK8Z+1HdhdK+Gq6jr+y9g0putlnIxNoClJLagMWZ/esG15CCAcsf26JON0dBQGEa6yIbQmgIYkgxjYXy3i78cyqEtyYD4QHY/rzVFNkpoXQonqjkYhfjaS3Bc1tKhBpNclWWGQ9mJi6mPPjO/5GxDePPDyjflEqI5IcDU92iivpfQmUnoz77yPnybThxYC4fyCGs4AyNkVagZRVXNoxZrjsFR2F6XGTsUSq3zTiH3zLuNSqyLNDNo3hHS3kfb210XK+e1U49AMWj6Dh4VjIl7f6SsHjzferz9ux+u/Nc8T+wDgAnYVbqdXcx988BlBs7izY7A+WAOH/J71QOGufseF/vygtUPv/tLmjGuHvN51YP3U331bZjMaM40KH23tiSbS4WN3HXj1nZcAOPuuWav3k0eeevrwsbsuAnQxaui7PrXoJrvkdjaqhRvKq9M/i4/HyiQZl0JRSmqNTxBwg+1Rk1N6wzCJKKU3+SU1aBDBBNBk5oAlx1vy2WVCaqn0ToQs3ay6qvj5cBzvWWPEhVDcs0Aw2sS33XymUXalPcNS8yeaNfzM+qk95Gb3fCo2Zo2FGUm9SbBw+gEQ7zqemtJDuq7srpfKMphV0wwXldCGau84AyD/x9/85tOHj911YLJYuPWsksIFNvB6fMJ9tutq0MHE5/oUjvRSFsI2yV4Ptas6EtJg7LbteT+I60yX/vrhvUVnlmgyeNXVknC++9fDcF512/3uzOMPPvjMgQ8+iAM5/vKuUTu69z187o44SrcBwNu46lcf4G9+Ea0KtnnvM/G2uRWI62bi8/BfODq0pmHMbUUcyCd9TvAuBPbH7PlwPA+gwyv95JGn7geAv344K242h6Bpxv9u7IozmXp57rX4+LM3biztOxtNHUkYTammKBbmPJm2MGgMgEiRTYMYkJkkXFVdx0IggpqkoClJLYYVnGzOb4VAxBLWcAW2GwefrpdwKRh17XkWrnPOvWgzudPmfDDmMr7zm9if2749FrtGPGQ25dfj41CZoZpmalejLK2qIem9UByraijJoPfImmwZJ/nneCpdQHvRxexUs5aJGjqOLJ6DmAAzAIkStwSrgIJoIz9g/00B+IF9Y07f1n11KeHkI0XbwlNdVGMvczvtFdEl1t7FF9SPsmtITVzE9AEAeAPXRBLYkMDAPO0IM+NvQJgj4HsA0h988BkAyL34jTu7MU63e/N1lHUzcQc8vxttaT+3DtXdIMleWY2eIAQH296tU9ELDwCLgRAAYLxZR0pvFvKhGArBaBPWtjsSCE0wdAY0ENXAOD/VqN28qgZoqlnBhVAcTUn2tbu93wG0693ub4xRrQEG4VIwajO/FUEHc9slvm2i5Yy7TrDpvfR2JAWTCFFdg2yyFDQN7GxWzRs3ls1Hpg9yRVYkBqlEfBVA9wP4A8AC0jht2Du84JHpg7nfvnAq87HVi45zbhY+oSwHNgsAn17KORLBeTciIMaviGSRrKoqXjvUWSg6ElLEvu3zXZucW8Uw/CSTny17v/jdx2EnSnfxmBvqu52fcX77NgPR38IfZffwBRmg0ApG6Qr7lgOsAWAFjN0M/joRGQBqt+I182MP/i9zuzD/3Je/8Rf3d1ngst1ASd7fLgMNUzugg9oY/ckjT82OoVU5pgfleuWnizF3m7LOjioJvYkNJYA99dKJXCR5HgCYeQ+BVBAHiaGwtaPJiMqmrDBc1RuABWP1hMp210rQSMJSIOxi0C1p2/rfoVO2E6+9hc5VYWejjIVAFNdWVmEC+FlsFDsaFTCAfdV1HE+m4ZffzrAk+ohulcxaU4IUMg2pLslSgE2obPKI3tQvBVSJmKGaRnC6Ubk1F0lif6WYPhkf+xc7GpXAdK30ux8oLX3t2OReTDRreDU2nrHTf4eRBF4JmoVQJ86mFNACYXgYfBjqKmUGUYG73ZeXsURp+sMHP+MsKFlYpbTiYP4VIigMyOexG867fQtXt2lisI8wIIPNGIOYiGNVWCXRPOQ8x1sxYIqqMO5+BSBFekD47C5+HgRq1+IfvebGQHF0twHB8+789v2dB7KOOunD/F+x/5Y+sLE4XVLUCQA4E01NPx/Y8QqAwl1L7+H55FS6rKhBDZJpSUxLvJ6PJNhGyrSp6ulmFQuBiJuUcl5cCADXVhaZnABMNatYssNwRELszKbdtRIuWJswYi4UB8AW4MY2/vO2+j4XiuO29QXUJRnnIklcW17F+VAcJUVFXVJwNpLEjkYVS4GwaYIkQyIGg76ZvcUAYAC0QcRJ2eRoiE3cUFpGLpLEiFb/hMrmDgksMWjJdrzBMZPEPHWHfvSdfd/9Z6tzh/LvvhwY1+pnTsbHHxYOe21aQADN2I42kVnE95cWz+8CxIHdjjc/uivAxO/6XjSotJzEwi0rPJLRoQY7wiZoMfcUFpFECe8gC9PGPUkERLhOdQSn57DjVy1HXZuDznmODpOlfY51I9EMEuviD+JIbY2/xext6cWDXAtsH2AGALKHj92FuxfPzZRWrJqtz47u2g9ATWr1KZXNeoPkKICGCUwx86eIIC8FQtJks1rXKRrQlKBBYCKGCgBmF5BLIRBpffGcQ0Anpp0szHzBsc2p/TqG5TW/GIpDYrbUcTe7zWmDQMz2d6vQxaRWQ0OS8UpiAoxWWC5gMn5lNY+Xk1NUCESwQQFb4ydisEqEAEAb/2xt/meH1i49+pPRnYcAFC4FI6E5oUjG7euFe3bVy+FrKmvLL6TSD3/yxrtwr13/fme9kj987CBQOAsAyDQqzZ3N6sUrf7/UDQ7qTDCv/d1N4jhOs6FURq/tPgA6rJtkagOh+LXzML7kXPtUGgvTRFDEkKiXYiijiQDOYq8rAgjAFTyHd7EHzJDWKBn/KH7y7T/nz1/88jf+4n7PPYjPwtec8VAW7ahEh7xx/O2mDsDNoIzu61DoRpNavWj1AoChyoA6ojWkmqRIEhgKM4ggsZXjTSqbkR3NKpeVgPmRtUtLMniiJit4KTFpFYhgS9peDFshLT/aXSuhEIx0tePnQjE4lSM6jlOnU1E4BCbHr482DWBRbZWA+oXyCn4WG4UBwqRWxd+N7gIDOgOyahqSLslgsEQEA4AJQH4vHMdEs/qNqKEFPrr83q/WZHXpQ8WF4wDw1sT4Vye0+kxSb6Z3NCpu9dx+vpG2sXdKYec9HgJwN1re+G8BHbt+dBSY8LOPbfLOCTGG7le4wfmeRSvP20/76EkvfuPOWSdMtg/vNiu4XjVgZS+OoIgKIiAwGmRtllGG41Bt1+bes0u/MQhRLksaKdEqQqkfPviZj3+e/kocV79n7/oMPAue8xxEvEJHBEMIZfbCs3d7nj1NpJ6FJ7p5XMVGgdlZYBaHj92VBZCtyoqo1rwCIJ1plMeOTWab88GopDCvNyVJA5AEUezlxKRVLsoStPRqYmJholkbz4djZAtPAO12usP8DsPurpUwodVQlRUsBcIgAFFDaxWb8CoGbAFszocTVqJLDynQLeNNPJ/Rsv0BIB+MmQBIZlO9vryKC6EYdMMwN9SABlCVGQYAvBNOYU91QwFDTuha8Kep9LmpZnWHzFz7nQtvzEw3KvEGSeG61LkeOwktnyucfcjrzHLH3qr4egvsdwFr5xXxHTlpoKLjDWgBTZwCEyLz5bBJieSB7qY9h/u16TKSQ3/CP84+il9X/ys+FBDf85rjxCfxLbUojBpqCKOdGDfhTQmgfQ0EKuhCfTI5/cix50Wtaqicdh/n6FDkzqC2MNuN1sZ/NszS9Tja53WzK3IA8J/HrvjWF+Z/9m8B4AvzP8MPdl7z3Tfi47iqWsTe2sb0TaXlM68kJq59VZl8PWxq+zSSYRBNgQkMplG9vu9iOObJKRfz0mAvxq3g1nt2rPy2jUUU1SA0klBRAh2edPczEc5Y6aRCD5YN78TfRSLPteRjGoCBgGkgoTexrgRgEmnXVNbkuiRTTVakuiQTiJBuVMo6SZBNU1kKhA7GDD2e1K3q7yqbWZkxHje0k3OByC1P7L3tTEOSa5dCsW+h3QE6e68dvnxsIpsF/Le59qEKOidJFO07rQ47ifxw2R1S0DNnxD7Snth9Dl08/H4YegZu3clzjxVo6isAwYQNd3Y9O85XE+wcA6MGKwQbQQVVDgN27uI/4nYAGL8dJx6/GW+IY+rQYPo5Rv1QcAM4JIcNJXb1l4g0qOrudvrYRDa78m/mZwBgVG+IVT1cdU2DHASASa3WgIWguuOdSAqH1uanGbhuRGuM7a2tkwQ+O9moPZoLxw5dCsU+zUzIB2MhgEu3bSzGFjcOSPmdRRgASGq3qcUVekKrYVUNtcNePcknon9G5GPn9+vtcJmDd48bGsqy6sJf34iNQSMJBpGbAmu6eD3G7loJU80qxpp1vJyclIpqMHAqNoaorkEy2dzRrJhzofgb15TX6PX42HSATRAgn4iPz1dlBWVZRUNWcUW9jFG94YY2g6ZRObJ4DvfNzwKCZ9ypPrMQCA/CmA581XmXObSSSRwpkYbH8WZLcW/81p3w3aSYN85sw6hFXIXY5gmbyYeRclkAeIFv/r2dKOBqeufAAk9RCkXUEUSlo44GYFmJnct+FREksY4NJKx3adl3ZEJKX0L6hDOmQUAz/cbOnv3ZuiwUHQvjAAlMfU1rxQ2FtdBWLj0yfTD3a1/JdaxeFVkV3NwN8FEc+NsLpzIAMB+K5m0G76DnRnae+VCxEP270eQECCM6S6FVNXidDukXwQjBcrFLxIi8nJiUkFx1nSZWfbZO5XpftYh1JQDDca4IcfGu5JHkALVUb1s672hUcC6cxC0bSziRnLCZ2rrWyld32rFsCBGB55DEzHcv5+jFxKTUJBkAX1mTZeOKWlnfVy2efXpi92jS0IIyAE1WGg3ixvMjO85+dOXCsy+OTMXjRhMVWS3dN9/57s5EU3kAODa5N8dHc76SxS9N1OMQm4EHeuqZrL1UdEeSu+mjfhlXPtTWZp9EF/iN3zEjVjAaPo390wFujiVQwgpGhava9DDhe/scGsUaVjEidAaAQGVE7wBwQrjPDpv6MpKfljRYAlMXciW6CLwQT3C+k602fu9Pg9m6JE1YR1UADQDITmq16wBgTQnccyo2dta5/nOFsw/83WjmluVA+AyDdyX1Zv2X1+aqATbL/3762nUiLDNQIrBOAKbrFdYZi0U1mK4rCpG9V/GORgWXgrGOV3U2ksLuWgkSLA+XV9o7n/YIobM2IrSbBfZvZ6IpgIEXk626c62pw22/tEJ47P7P1g/0o/R+BEyDG7LMUU2LHU9MKRFDN+eCkUoDVCsq6qgGCQbDANMCA7whB9JHFs89/GmrtHMOPlhrJxddAND4Ej+IfwTDKW97j3uLX2/fWMAPBjpgOKxrmqpnQg6E7OqhDs/Yx4vH+eZXAGCed4RLFE9M0LJc45AwcC+TA953JsGACRmrGGlDRwJAFJXqz3A1TuNqfB6uM64nYGiI++hKW4DcuuZ1t6y2Dhv9+4vnsr1glvfNz+aO7r3tzwDgtcREHrA0gZtKy8sAsC6rFZakYsjQU++FYrcsqCHsrm1gORB+mEC3/u/7bi+AMQOCRsxXgukOAsZBtMJg5WIwllJNPa1LsiSZdsFHtmq+TTdaIbLphlWrjQGcjyTgvib7rXlftRhrH9EbWFeC7V50ctzx1g8EyyRYUcNWwcjyCuaCURTVoKU9CMkvjsd/d70EBtAkCe9FEvjspbN4KTGFJknmhUi8poLDTTDJYClqahHo4B3NGtUk2TBkqV5FYAxgZT4Y+Z3lQOitS8FI5bfzb3XkG/hMnH6qW028TpiEKecEW7X+gv1VNMm81C9ppSN05D1/0InvyRJzX+A72JsHgFN08Mcv46YvMShMYNmnBXRxscKEc7rj2bVmjAIdCvQYgOsHGWOPcbu2tnAfD3k0ro7n4Gend8l4c2mQBUIZMkECALCnXsoDLZimeN2aGrrW+WxaZZCsyLi4ohNOprT6bUUlGAb4F20/3KsAriFiebJZk0pqEDqAqtzCtc8HWzHmuaBlh7nMSk7TsNFrQqko8aEAKCrBjnsiZg/jW+Gz/dUimiShIqsoqiE3vGf5eqxOHZX9jN2fEy34UXo/GGCydntVr6iX6Fw4SVPNqmkCkYipazFDkyOG3lgOhFUAGgh0IRw3YrqGmqREYeePvxIbu8eQpMqPvpP61G/81tn7PUzgUrcVXTwmXPMD4XAGrTTUzufTXZp1m2Te/HJxP3Z3rg3I9DlxXA/jS7l78OOsBLMQRSVXQXRkgpZjS+xkIEJwxgkv1CXbKccMUGtbkFvwOgCgzgFep+SlIcY3FA0g7X2fzSYTZAB0OuOy983P4r752a4NWb/POqE1sVOn3NQMADxx8in8y2vv+DZg7aIKIM/AgwBAQEJmbtifJVt3PgBCECApauq4Zr2IhiTj5cQkmpIEwz3NopCpoxV24naBzkBRDfpaaQMTW+eftZnXof22Iw4AnH2hPE8IjjeBwJCZywbJCwAmTsXG1UyjbJbkQPUTS7n/FGATq2oQK2p4bV0O3K6wkdYhazKbatA0IgqboXdD8TQAlJRApaQEUJPk1OFjdx3w86kAjhceOHzsoIVUbG2AmMVg8ek4gIHrkvmQI/FnhN9mupwLoPuk9ZgLThvZ43Sn89tzf8N34hF8FpcwdQjuK2YPs3d58x5P7Su40TG8zBDq+AyexPFNFmZBJz4/i/acfKdsFTbZ/kDedocUbMKd361DUe2nr2P28LGgo3YeApAhQJFNY1RmpqurxeBLiUmDQbJOREQcBENmWJLxTHTEE8ay3eX2b9fZsFN7X/MO55sIZvG+ZmcO7LRNgV21slve2SDquSC0Mb794fryCt6NJFGXZCtADmC6XsZSIAIJLMM0IzpRRAKkfDCKpNaQL0QSzwHAQiCcnmzUxgNspMYa9fWiGly9d/7tR2OGBjAfUtkcr8jq8poaKq2pnZqITe67m2rWDgHAkcVzeNJaid1oCPxDZ6JW9pzP8TbqJlUGmqhWGK1jzINQN/U0iY10iOsRgskMyW1dhg6jV1CJGQppCLCGKqzwGsCQSef9eOe1O/DTmWHG5zdW8bsHPDPwtYNChfuRu/ea1/u5GTXBwWbb5FyThVXUACAotvlMGqh6VXX9h7Ox0buIeYoZqhXZYgJbseqQoUOTJBgkdUBbXxZ2ZgFblWc+sF7Aa/EJaCRhUqthyWF2AiaaNZRk1dUCHLvahI2VdxcL64U7ITsDnYwvCgKHyWuSIlgQhHwoBpVNJpObCb1RXg2EJoOmtQwE2CR744oMgMK9G6cRNo2GwhyUgMhEs4aby8vP/e3oLjwb25UHgPvmZ6ffio6kAODxyb1ZZwdWIVMNAPC9P031ktpfED67avug0FSBsvb5veZGUWyfj1qPxWl7AEeWE9rzTR75C/4MHsaX8D/jTzBDf/Tk7+Cb1yhsRBzPuwEr9Zk6HHOtt6mzCh1q25FdmDOiqLWV1L4M5C2oAQyAOPVxjvZ9Vw4fty15HmbvarN7K8LaGyxm9leL6Zqs4LXERP7wsbv+0uoJacA2foD/+6rq+u9MNqsqA+oyhXczYxWgBFnRKBBRgK3azbixvIyypGI25p8O2n5HwIvJKRcxtygwOUBYVMOCd7xlV7dcb85fxs5GGfNC4Ym0nQxzZXW9haazzz4VGwMTkKlVoEuEVTXEGlmSZapRgyFB1SBlCVA+vfguACBgmtoj0wczv3Xx1N0AcHWliNcS4z++qro+PheMLZ8Px/MzV30AM++8hIqs3HqwsoYNWd11bWWtBAC/feFUZrJZTVdlteC8I/e9WaE4yyNv3ZQosW+xP6faHl1npdWOhX+Qxd5zfpszb9BYdL/sOWccH3zQskjO4KpCHeF8AqX1i8iEQXCTDixfifDFo4pFUUEai1jCOHRImKRlLYbK0q/ivz76h3ggBwD/8ut/tS02+rDgmQHJV0j7AmackzyAhjYG79fII9MHc/fOnRbx4pZjhxFlIDzZrIxIjDUA47PR0adPR0cTgAM85mvJ2tNMlZmrJuy9yxlkkERnoymXyT0mlYdadvq0zagsHgPsfdhCmGxW3eOOI4YB17k2J2zKuL/ilI0iFNUgZDahkYTdtRJW1BDKigowkA9FRX8gQIS5UNR2xlmdPLpjPxOTDqDMjC8tquHpg5W11/fWS6W9tdKJc+Fk5rXEBI6n0oBd3ONMJIWpZg3TDReRGU8YzXTQNMZtRvdSzqtSe7zsRfvfpky1TTCsOy70cfgK17SVp+6xyGSfsKftR3D8ZJOC+xcwcaU9UjjvXYEmSO7WrKhQDO9wzDnTmIfaiKFifIqeyd/99Wd6OTOHsqn7XNdTO9qq7e6Q4qMmOdR16yWHnDrjzm6fh4qXULbx5a8lJqJ25KK2s1k9CwAlWR0XLi8TsGFxActkspypbahFNShX5AAZkkQvJSZBaGHZX4tPdMBTRSK0tkRu3TUgxlUNIswFY/7KnCejzXHGOeSYAqJHX2yD7E0b2GmByCRgFYxJBltpLcxEwIRJkr6vtmHsaNZQkZT0/koxs79StEOWrcoyRSWQjhga/n4087ANR85+aH0hA3s/8SEnwkzb8+p8v91yrHvtw9aP3FRlWObCIGo/0L5l8oFOtfVO/An/KzyKX38OAHYjX9qN/Cs/xiezGqmSi4wkQIdqqfHeHqzkKpNB+QRK52/CG2EAOM43Z4BXe91T3+exXbb1VqlX9lpf5I2DuX7Cvtn75mfbUgnnQ9EsgEeLSiCd0puFCa2GDTmQbpAMBm6wmwkCeIkY6wBBZSM4odVZk2SJSUKFFJhkFXE8H4535pyLNyN8drQKx9dqhcws1nPTW71mG+Cq/GKbErgNc+9I8XfDyfYsOvuU6VqF19QgVWXVMffNndXSWFOSCgCaO5vV9blQdKohKWmNpNT/k7m2UlKDxz936cz4hVDsSzKbNVh49K8eWTyHj6wX8h9ZL+QB5G7+2krPWOlWwkDeUJn39y59djBsH4BNHO1FG7pRDi2Jnu4/eot+hM/MAMBH8ZP4OFaix+if317jsAI7ltaR22KFdFcA/CSJ9fjv4U8ej6OcLiFWsOL0rw4twXswt6jZbFoT6LV4dLPfnffjMHoOPRh8kMD+4WN3HXh45cKhDTmQvrG0hLciI58ImXptRQ3itcTEt64urX5JAteiejNdVVQGIDPoaiKrumimUfnaciASXgpG6KbSMp8PxaETYU0NtdRq196ytWMfCey8T7HIRMvF1jrZzxO/p1bCXCgKnSRMNatgAEuBiHudCHEloFVx1gICIB+KCZmwRACkKOsh1aBpEElBNkkCMKo19Lok48pqkVeV0CeW1BAuhmI1idmpVf7A25FU6t/tuj59aO3SowAyfHTZfRfD2nYDItx8qRuyru0cH4ZwbFI+ik/Zh3bBv6Z6xzj5KE54Ds3YKL422/9f03/I/c7X/4Nts1vpquNYLaWxiM/i2OtzSB//KT54QwWxmwFEr8I5ymMnAKDGwRIRXhY7uYR0AQDWkPR9Tt0WvgH8Ws5vfsi1nOe7l1yGHZT85kjPNFWR+gHwDx/DAduTjITRRMTUawqbFWtqIzel1ZYB4FIgqlcdTmDUYNfZzkWSBTD+TxCCb0ZH0ZRk2SCSXSYVw2f25+uFHHBviG3Blt7OLy173KIJrQYTwKoadlW885F42/UMILU0hqxyDhcjYawGAzDRWjRaWoCbS+cIDgIYzJBTehPEkECglxKThszMt1QXASAYYDOY1BtzOhHqkgJNcur1IWUQxfOhWKUmu0pXT/vW5125i/CgYbAeEszxQj8gTKCHhONuCM+r0gp4e8cHlO+j7opmpBjuS6EF1/UJQd3p9PvZDz74zIGv4M+z+ymHb9Aff4e+jtkPPvjMgUWMf1sj+UYGlCTWtesxi4N4p/gl+osZoANj0NWjPQjPDLK49gE1Ddz+IDRshRnv6uJ+/6QnCyoXTlQkcCmlNX7l8OK7f1WWg1dqkryYrZXwWiB01naGVwBkmPHHRDwNy0GnjekNZW91XXspOSU1JMkOntlOVCfOzVaJZZfFmLGvWkRdkpEPxQUNrUVOhtpUs+I645xCVW0xe/uiPbUSCmMGXpeSLYSdt7w04PoBCQSJDZiCV/712CgbJJHtkZMAmC8nJpsAtNs3Fo1svbQ83qxH/6eLpx4FkP/+zgP4+9HMV+aDUQCMsqyCwde9GhvH+XAch48ddKv19qrbJ74zb1LGdqC9PPa9uEGCMye8C43jjHOKR/otWuIuMn13bO1GL37jztkXbRX580ed/dTvBICvfpb//bcbCEQlGHtGsF5y7kUYb1tO/pDoNF+t2E8T8HFWtrXj9+Mw780X6+43eJ8H3Oaw81EPcs4A//WX3pwF3vwzAHju/5r6x4VAOPxmbLyUCydzMb1xw67qxm6JWHsvnPzhrurG/7YYjExpJCmGREwAXwxFpZ31cnBfZQ1NkvW346PEzNai1LH3WSsz3fX6E+HGjSWcjaQw2aziUjCKhiTjjdgYCLBqv7kOOuuv15O/u1ZCPhxzs+Ja3dnLDju9tx3EhFbHsq0lmES4obQKEJuTzbpxIRjV0o1a/R9GdxoEbLyQSm/8/slXvwohaWVnvZL57+bffhwAPrZ68TkA2Z8m0zgfjued6jJO0Ykn+ju0vOSrBnrQW4CYXfYN/KJ7d0KapbdNtPZ3ExnF3e6pi8nh9cp3oxlnnF3G8pB4cq/F4S/pv38YAB7lX/tCDeGizymiQ3IgJ+Sg78AHr7CpIhKbIVGie1diL1jB+7eDnAl45E9bBSNx/hVokIMMBJg4IoMRZENzOERlU4XFdmRhZVgBE15LTAAAk2kyGHUihGFVDiBHQ7YkLLCzXnKTXSyVmnEyMQEwIxdOdIyz3RTwsrhF5yNxF96qsNm+f1tnLXmW7Bo5tslggsiUTVM+GbfSXzVZ1gCsn2I6y7C3jWbgkzfelb137nTeKfDxsdWL7g44Dpx1XQ3mAeCmjaVDALCghnFTybLZ/d6XGLP1iUt3m1gu0/Xw1dzv9zuAPAhpwLWtHek9LOXhyUvvARJJwaPKsyu9u2+R5DDuPfTXM577zInn2e25NAi+RKQ+5/s9G/f9+GhLTpvitUOlqw6ruvvaew6AJqk18OmlXO77Ow+4N3Lof1z4xcPHbvk4gAwxrttXXR+pSkrAGjnGU0aTYtUiA9DeiI8rDNIByDeWlo26JBvvhpNoWIsAEaAzsUzMssPkYLibK3gdqy55vOxee72DPNL6ptKyW3jCJIIExpXVdTRJsmPpAeysV7gmKxQydeiQ0JDl5oFKUa7KikLM+uuJiTqAvO0wrIUMLQwAEvj3Hpk+WHhk+mDxySNP3e8w7qoawiPTB3NHFs9l7ZTU7Pd3HsgvqOFMzNQw0ewN3vJINUfbGtjO79Wej0rdJgQER1ybZO3ye9s1ffoedvHoMFcGYI5uO5/2XQgHHA9gMa/jf+gqQD0mxZZIERr0DqYjprqFG3RtOIOkPzofjt+jg0YYuP3V+ORfMfjzCpsKsSnJjDWDJO3lxNR5JlwNxhiII7bHzDI1CCYxpJZt7E+t8Fr7OQRgVKtjQwkgoTdbnn2bxDYJcCvXAFYRSAB4N5JERVJs4B3RXCiGWzcWETYNTDaq0oVQLPxGfKzSIFkCUAFjBUDIVm/3y+A5A+QtWuaSg0fw0mSzmn4vnCjYTjrX7gWQPh1JpU9HR3D42EHfQiLojY3Y1AIAHyYfUPqJWobvOX1UXK9EbhvTZqITXvJoE6LD0es572bqbgeJ2lHXNvsi47wH7R1RAVjOnmGcIa2KNLOzfHTWuu4oPn50YwlvR5J3VOUAFgLhTxkghYEQgHcZuB2gsARIEnPzmsrqd1+PTxTAuIcYSVi7ali8x2zXkLRYl8Fsl3AnADQp4NO9RR3FbwqbWFVDAOD+/cTye3gjNoaLoZivMu8wvlgE0tUgLOAFTiQm8RuFM1iXA4gYOiabtRUNkra7Xlp7MTFxvUmSwpCuJMI//PrCuw8DwN9MZr9QFXDhsPHoH1u9iDt/9+Kf3ftwNvtqbPwQANw3P/vc347uykw3qlaZK4+EPJ5KZ49N7s05JpRNA6l42+Gg207yMHlaOPQc4D/eLaLI3Eo56B0i60YzwucfCGNyC3r0Wnh6hbbF6zYbKm1T3fkoDjgoN6tE0WDA+X7e3z31Uv6dSKICQkllc48KNgyQoQFTIFYBau6oVyomaLlB8jgY44DDnGQZ7/Z92r+THduyEmBsvl9Uw+Sc5JXgrfaAayprmAtGsaEEoNugnNdiY20xc0eqO0krTZKgk4TbNhbxanzCdbaJgwLI+FF6vwxrXwCTLDNkbFyrpSUgYI87AKZrhbLNxWvKqykAeMLnxTnwYgC4ubwMZ2umzdKwtqbnGl9c9QATrs2p5Sdt+0ikAlpM2OFQHBT/0WXcXg12YM/5sOTTxqbKQm2GBrHRtxySuW9+Nvf/juwsASi+F05osEoPO0UOPgRg6UIoMYdW8ssIgH0AqgCrAJUyjXJcA5kbSkCtyqqrkztbKjhIFXBri6aiGkRFVnF9eRk7GxW8mJzCuhK0w3Lti0E+HINTR1rMMbd2SQWuL61gZ6OCt6KjUNlATVLwC3bVGQJMEzDW1HADoBKDV4jpJIA1AJ8JsRmVASI20WSlScB5oeuUQSTC/op9Hmcbc4qT94u/Ofu0rUlZ2yBbZgLQZ6tf9hQt7NW53+JvM8137eNiG12Zw2uTd1ks3EiOTcNuE7Xt1EOiFoXPPRfQfrzkXZD6nD+Qc07xPuBBa5F5B+SUiAasohPCQG3V5SefBYDDx+4Sk2c+BaamdSIqAN60f08DGCNG1GbH1wuB8JcNkgKW4LTZ1LK9nRKNbj3f98LxVsydGW/ExvBGfMwV6Y7Ev21jEdbOpkFokOAExG/dWMT5UBxlRUVNVkF2zN4Kz7nLg3kqNo4PrC8YRKxJzMqJuArVNOWqGhgF+KP2GJSXExM6A03VNGtRUzttgiJ1WfG1t7yM9uSRp2Zhm1OPTB90tac+HmbHC17w66MHpbaI0U45Y9uqpOoCJnFoRvh5Zlioqod8BdmwbfZbILdC3cYyjB+iI01V/O5sAWR1lut5w0cWz2V31iuDbEAnOhceEsTqLuGcEwCuhVVz/CoGRg6WV02FsVBRlNEz0VQAHnUegCyC41oFgpxwmm0ECBZ4UQkgbGiAVY3GFfInPLnubGnpJhgKE4Msc0FiAC8lJ4kJRtgwTACyBFZUXYsyQLokqwCVooa+LjOf/PylM4+/Fh9HLhw7dEmOO/tzz7wdHbFupIu08NvO2kMOEGVoB5ANcbUyvgj/4GnTGdfTwpja+vBh6jh8PNc9GMlZqIaNCBSddv2w3X4XeH8fQFJmAKRtSG7O5/2I1WKGTuv1tOX0uaXoSDfa6t5rXSdWR0mj/rQfwB325xlY+3VnAP4DAOmwaQR0oqmQoZOtXbdp32TLdsU02JRkYsclDw8shqx92HSScC6chE7EZO2J5iay7GhUsBCIujXeQagTc4jYaoIJpJoGWwUxWNch842l5WZFkiMAQu9GUkHT2mMOBjA31ajViTj6TiRx90oghEmtfvxSKI6ry6vpD60vZL3FI3yerZ+63u3ZOx7nXt5uh2ZBCAOYF567lzIeKe/bLrXqlG+XtxlAV2+2Y+oU+1zrmCQpdN5bR+itB3mBP362fa9xDLMADBXGG3RB6Yt1n7I3CrDJe657g/fNzzoDvAdA4epqEX8/msEdKxfxue/sK/7Gb529H7BUUY9n/34AcAtV2BIBjreVSQEgv5KYNMa1mrymhChgGmhINnbGJYurJYACugaWyK0m4yaf2M6z+WAMEjNMIqjMDY0QAoim6yXcVlrCyfi42yIBOjNVoroW1CRJChk6SkoAB6pFmgtGYUCS1lWZXkhORQhQQKAPrC8YEvNb70RS6eVAaPzdSFIDgIqsVmqSHN3RqETBeD3ExvJ8KJqBnRQkPJO259xloWwLrdm/WXXIBkhEEcitT9Uj9CZKrq6TehBVchPOQL8Fz61BP8giNCxxayurOIDHt6PNAcm3JHY3TW/bADNPHnlq9onBbIC2VbwoB9INSYZGUkVls6OqqDNxDx+760DnXup8HZh+j4EwEf4TCGcBhDP1UurqyvpVADhs6vRCMt1YUUMhQ5JMAkMxTRhEdKBapLokI6U38G44iYqsoiFbpX0dPPu+ahFLgTBkaxO00FogDICRD8cwF44xrH2XTYBZMc2mLimns/WNj0QMHQBwNpLEqfi4yQwTwAaIZWJEGCBiyC8lpiQQLcN6WXHbLX8dACjM2s5GtXA6NvbmteW1NID0T5Npt7IL0LHZYQ4YKJRSQGvyu/F5Pzy25/vX7L9eye1HfWsUDDH52hB8GLCU0ibBLHF0ahriNlR+1xTtf89BiPmLHnMMkTDkjNMPUuvxxm+rRuTQllT3bgMkcGRvdaN6OjoCmzlSoi0nMLdok9i1ncjWlu2MKYs3Q+dDyXpKa1YMImkuGAuUJYUNSWoCXAFIPlhZi84Fo9KZSAoNqa3Etw6gwkBCYSaDCCm9iX3VdQDAUiCMl9SwW9bdcuqxrLJJBhGTtUvFVW/Ex0xLxXfgukwEVgCkyGTTJIkVZgMAK2zKCpu/BMCMGvprNVmpAHjzl9fmLy6qoZQ9rnxNVvKAvVmEQI7ZAwDOTjkCiZJQZFrfsNsAHlwvIKPTsdcqHnEHgM/268NvHFugtvF44K4fRw9oL3XuVCOCdAretgcYw6YiUEOG5rYc5fKjvozeq8Muati3fhYbvXVDDhSakpy/p+Bu2pKFWDDSok5wAkGz7eDwznppX1EJhRmo12V1+vXE+NoVtZISNbTlkGlMXZKViMScNAl0KjZGEV0DmSYkECQCDCtGLgMkq2xq11RWAvlgDK8kJmBAau3ZAIAYOgAZgAwi3LK+BIXZ3FBU5VRsLGEBdXiOQEkATQZCe2qlwJIa1kzArCny7A3lpQwBWi4U39WU5CAB+G9W555tyvIJAPiN3zor7IZyCk/YqZt/O7rLhUQ+cfIpvBYbuzVoGuMNSV7mo31jreIkdCTGH3Q8V3QypEcq5z3HRMly0aeNoRxGvRaDbsd8xvtd4bKH4Jp3bdVlt8wgogd9i1GIYfsdyib3e27dnmVfRu/1ghzJMx+KZv7z2BU5wNrxk48uiBOglyqSd2z2uN6EQRQFMFeV1WcJQNg0xkvgml3lRQfT+ffCiTAxjstsflZms6SwETQgkU6SMqnVsKyGoQOYalRBRKbOtHYpFD13fWklsxIIjW8oAYUZBog3wLRip8eq040yzduJMQDz6/FxBE29WZIDKjGHGQCTVLAhuSEQKGFockkJSgbAkqHVKqQ8CwBlWf3MdKNiAqwuB0J3XApGr/0/3jk+80W42swMAHytshb/ULHw8Aup9N1oFW58aDEQKSSMJjbkQAFY8T4zPzvOC/n0Pv+c8NkhX5V+QEnSpioPwQwdYJdBr7OvScFSp1MADqFVXXgZPfwHXRa1YRGDfovTQDFsv3EMG4Lcqta0Va+7L3lWHT9qeyE21Pbhvx3dlXk1PnbdCyNWFZDJZn15sll/NmRo/8OJ5GRMhzRRU5S3AMLu+sZf1iR5ZFxrfCIfiiWqkoJ0s4qVQBimRJgLxZwEVhmEpAJz6rryisQAyrJirKrhFQAvMvAxWGG8UNjQ9ZqsyAZT9Yp6KbgQCENh047TE3QgY6HeaImYJ96IjTeIWA2YZvnmjUXsrpfX3oqmbv/MwrtUUlRpRQ0Zz47tKuxoVK7/j+l9D/zoO8B/tFMq43ozHjL06FSzlrEXuJTzPAT0m5867kzoGeG3GZ/z/J61gxl37PF+sE9nUXmol23uUacdBvAuHKLavK2hI5H6MESHXd2PgXoc/7ncz3bR0IzeFt9twTgBtIpFAq2HIgBpsoePWR9sKX4AsCSc7ZzLJIxmWmFzNzNuJ2D6eDJd29Eoz41r9cR0vcIVSaFFhIMAflkC1pK69voVtdIPDeBfjGmNVF1WArtrG3gzNsayqTdAsqSahlmT1ZGXE1OAtWEaM+gSGKcZ+ACYZAKQD8YBYmZGfU91I0cm1/dV15cl8O4myTvqkozZ6OhZAB8i8A4QSWDWrVqPkKOGjtuLheVlNVSb0GrViKk3z0ZTGNHqkNmMmcCuhiS3OSbPRRKVM/VU/p1IqgJYzG8fypHPpof9aAActLNwpAH8uvBbr40dOvroAV8VTTJvGznhWJsX32ehaPMniEAZQSoesiV5AUKRzEG0iyHV8V5a0MDkwdQ7vw1qGvtSL6iul7Zkowthn1mgVSxSJAdI8244kQ6zgR4bOOZlNu+ebNbHR/T6VFEJ6QobatDUwwSmAJtB2WiSrkv7TdDKO5HUaQBvXtEoY1xrfObtaKq5FAgHDBATABkwg4ZWSmgNngs7mysQA2wAKBGwwcA6rO1gx5hYJSYNQDlhNhHX9dqkVis9Prn3a2g5owDgAjONEnGciCpgyLvq5bfzoVjl9fj4iWfHdl27u166BoB85/KFi0Ul+IOarMQ1kqJNknHv3Onsp5dyMxCk3rHJvV8FgP92Nd/VzPGqkHzUVWEdgEqbFO3C9CKzOSE5kdq8wt1UbJ+2/cbdFnv2nNO2sPiosR3YeG//w4KD+oxZ9G8MqhrnsDnH2UBO082YBn7tOJ8vi+o+KImVUgDkNpRgySCKKswEggKGntA1/EJ59c1LwciBHY1q8B9GdpLMput6qZN8t2yay9eXVvLPjezMyEQaA7h9fVEtyQHoEo3PETTFNOuKab4bMfTXrXAa1gjIgBiqYYyDqAEg3JTkuYlmg0KmUQmaRjxbXb8VwPGctd9aAYwZIqgA6mC8DsKj9l5s+bejIxkAz35v+pq3YCdi3Dt3Gk1JfnhBDWeeH9mRdxJU0PbyLMiws1A+NpHNHj52EIB/DN1+mQ9hwFCMzyTPo1WySUS+ZWFLnE3Y0UC7Y9CRXKITdhjyteeFe/FltCGYrq3Qw7D3KzoH7WsfGmIMvbApDnWYBsM437zkYt0HfUC9zvNTwWBj5x26b342i6Nw8qVzgDWxH5k+mLt78RwAFH5pbX76Qij25s5GJfpWdCz8QjLN70SSuH29oO1sVMyk0Tx7PpKYAZAd1Rulc6F4vSYpobqklKYalcZ0o1yfjaZqZTmAiqLEAaqFTUO/srb+VxKjkDKaaQC4FIzk65JaixvaOAMBE0RNVQ79ZDTzOoArblsvhKNG8xNxXTueiyTtMqz4LoACmO6x8fl3wEpL9NVULoZiX5jU6sWE0bzj1vWFM6tqMPpqbPzRm8vLDmN1AD/W1aC7CD7ZxwkkHMp6zvF9X07s2kbOOcy0VWx6B8P1kLh5D6TWO7bLGk/eBPWzv1P2355RCFEjG8J0cMu2eX6fsTU6wFNGqxtdVonuMDCA3BMnn/Lz/LbR45N7ZwDgjpWLMwDi88Foxdm5FMDp48l0CECdPNdFTB0RU6+DgISprQF0A4NMA1CJqcTEK2PNxuiKEvqEQVQLmcazAdMAAWEQavurRU1iKBVZprMkTVWVAEBA2DRCAOoxCwtQQMueFVfkIuwXfNPGUgYAikognYskTwDITWr1IgCM6M2mRlKpqATx/IilNd9cXnal92OWSp8DrLpxgz5jP6/woNhvH+oWLRlkAvdqy7eNfs6vTfY7KLkApW1qz6FNbXYxALBps+0A6MPovWCZva55zE6EAXyTXToG5aipTj+f+86+4qRWLy6qoRQIpWx1/VeaJMkaSdJiMPo6yM3KytmLw7fBiBIj804kFcnUS8GQadQkNnlBVs+CKfxeOP6O1Skq986dPjEbHbnVqFdOvhNJ4VRsbFRhPtgkooihj1RhVbpaDIQpaBq1qKE54ZtWpRMLVnsjCPvtcd//hCDFvr/zAABka5KcCptGEQA0kuI6SdENSXbU5sxUs4bfvnAqEzM059KcX865X/zao755pXxP9VBQV7MADgnaRYe0HTTu7Tnup3V0PcfHo921/WHG0oPccfXSavtosPd7++/hqHTbGjZe7mnfaW8X7D3jB2lv4Lruw5AtxbMfXruU2VUvpxNGE6/Gxgvnw3E8Mn0w53jdDx9rD8U4v9shqBmnvX++fH5xVQnh+VQ6EzOaAJCeaNZ+PRdJFj68dgkn4+NRAKgq6kkApYvBeJIIMjPrBBtlZ6kBFWF8FiMwxq8vr/74+vLKA4tqSNIkGU9N7DkL4LmpRu26ABtQ2PzE/5p75V+dDSeUNTU095PRXcdBeNYenrPo+NLjk3tnnEXye3964OPnQ/EMAMxc9YHnnjj5FM5EU9md9UrmTDSV/8h6IQfgAbTUwRkfBu+YoPCUW+rmrBKYSyz86TyLW2HXZd/snPDxvl82Gga40wsduFVAzOXgnz6UhWUqinXn+tJQqvuwq+f+ajG/p1bCzeVlvBob73e6SFlYiCfYdjAA4Pb1wuKFUOJRALgQil4HxviqGgSBIwRU3bERfgIgTkRg8AQYu/dW1zlkGPWoqb91IjkFOGo4IXM8lc7fvl44n5IImiEHAdwOABNaZXyyWT9uVaK0yACF3C/W2OJJrRH/w+/d9OWfFi9hIRDOf3op1yaRHc0ocOnsrXeuXEDINMa/fu5lZzvkNnilTUWgYwX3AmX6MdOWYrtdmEGELA/avhMR6LoFsrdfQSp6a9L37HcL0n1oM6dbXz28++9rrL1vUku3Y91uVEhYAWDtCHpzeTk3c9UHOtq4Y+XizLoSiCf1ZunZsV0zwqEMM0Zh534/fMUNX4NVSy1+dWXt7rFm/fEAm5hoVkbSjQp2NKovNCT5zedHdgDttlcWTDMAI6ZrsZShlca0eunBk085qjWOTe59DgAe2n2jmOU1AyB+KRjDuhLCmFan/etFTTFNbT6orf0D4U1YqL5/c/jYXR//4MZCZiEQTj+X2lF4fmSHq7VYTc26jH6wsla4ubwsdONbxDDlecbOROmX498m6XswKiCE1ujreHqrzi8/rcPHrPAr49zhvO0SP9/qmETTscM5uZV+BqCePgA/E6ablmG3kRPPHXQQQ3vdfcjX+fDkkadm2z3GnVVJ44aGuKGVwqZRdBjDVt8PEfBf7FLpzzx55KmnDx+761MAim9HR/Dk55/6s8PH7vry3mrxugvhOFTTXH47NtqG8LLbyVrJMaRHTKNtX0THbxDXG18pKcES2lMS4wBKy4EwPlQsPAPgmT2/X3768LFfanspNgNnNuRAerTZGE/qDdy0sYTXEhO+DGkven7PLvvYhMtnP3CccmhnPvG3Ni1gQLCIKFnaxicy3ftIvaRqBq3yWG+i3XM/CLU53hzqYsr8k6ZBATbe84ZS3fvYNgN5G53rvr94LsueY4eP3XXg3rnT2RfKq+mmJC/nIskCOh9+ymawdELXoJE0Eje05V9anftK1SqBfPeJ5NTDh4/dlf3w2qXMG/ExmERnX0ymAcKjAPJfnO87px8HgJCpp89EUpkpreZMFK/UywLA8VT6xJHFcwARwoaeAXDo8LG7srCx/+4iJjCTc68Asp9e6ju/RIhqx4rey14VoK6OA3Ag1demGc9nr1e+W1veubCpRaQj3Gb5WXpi2p3P3Ra9HojBvhKym0N0EDX+/aZNh9d6qVd9AvvuQ3p8cu/MkcVz2c8VzuY+dxQHnJJJY1qjMKXV8rlIMueUnP7+4rm/AYBjk3udpgsnExMF2BP4l1bnkNSbDsQ0ByC7v1rM768Wv3Umkso8P7IjbZ+bB6xyyq/FxtIxQ4/aEr0ET+hsqlkr7KxX8p9eyuG+ozhw1A6fAcCeeskZSx6wNq+w/+afH9mBmzaWMnvqpUG3Tco9Mt2KPHgYf2Bb2Png018bdn4bJmCbJrEVVZt7V4HxUlr43NOD7Rd2tPvbivOte9blJsm7EHZByHWlQe9ny1534SVn0a4edlXFHpvIZh3GcHYh+Wkynbl74d00ABwqXip8ZL2Q++JvzvYam+jwyo/qjdKI1sCiGo7/9oVTh55PpdGU5PRyIFSoKEp6ql4ZB4CdzWrmsYks9tRKeDkxMZ6tbjx6KRjNP3nkKRdbbmsM2fFm/dYpe0eUxyayCNuFJwQJDwD48NqljLNtEmDF06caVXdR6bbiOyWfrZxzwbQRIKteG7JLqKvN697jefXcNHAA8o2t+zidNsMERbG9LnFl33scMNznkLggPo3LZLJswTHYjfpqzL3e7XYCZgZ9ublHpg/iD8++MPOHZ19wfvsBAFxdXS8sBMJOmKnbJHQcXW039STwtDjpP7Z6Mf/9nQfydvps1gGzhA0d86FoJmTqonRo70tA7dl/D2VrG7dmaxuoymrBGZ+gXbiS3l64+nqI++AS2hIpBtEIxL8+k2ygieYzUWbEY70WnF7t+JEwxhT6l7jeTuo7T3swqa8jTJS824Ay3Cz1XAguW5pqD4wyDh/DAZnZydQqAcidiaawv1IUQ0ieldeR7r2f4aux8UxSb6TfjqbSC2q48OG1S5kprZa/b342DyBno/UAa8OVAoD8kcVzsMs5OeExdzI8NpHN7qmVcDo6gnGtXpgPRfPfyt7sjC8DIL+/WnSuadNqhAngG2LxAyR1Q4b1AZgM1N8/UZoZwJnYD6U3aIZZL40EQH+NYLMAoUGpC2S5q1k0qNm0bYzuXdV6nWvXonNTNq3BtqvpPbDSAPyZhL6O2b9+OJ4F4vn5UDTz/MiO5+4VoKX0dcwKKDw3N/uGjWUUlcB1I3pjGQi7quFjE1k8Mn0QH125gCML5+6YblYrAErHbKjuTRtL2FMvwaniOqjEs+/P3RUH8M/8G4S2w/Qa4L11SIteIbVe1MtxKLbtiQZ1DSkNApn1Y4bLLXW3u/3NtCde835mr830Ob6plfERT468l4Q4f9tCcikYXdYkudDaP86F5maX1DBKSqCCZrWELmqmCP0VNYIelO2CaRdV/82qgj1jt4PSgNKiDWo7hG06zMLQJi27LEjetFg/Gkjyb/K5beqdDfq8+ml0/fq7nIzu+1AHvbHNTlJvjrw3+8tTdTYHAOfDcYRNPf+x1Yu5O3/3YodKvKdewoFq0dVAHB+Bd6+0duda6z5ERhFe2K0fW71YQLtzyS+M5raDHh5krwd8EzSoo21bqct88I6l38Ll+8x6nNdG/Z7ZoMcvM/BmS7StjO6JY24reSfEEyefeuCt6EgKAHDsrplBk24Ecp16T/ocFBcE28E2A1vdZKuoY9vkO3wMB8T8eq+zxmnPNiWAVjbc+2JH91DTfe1/wD9G3GURc6/x0oALkQgO6tuenzmwFbv7MnjM33dS/v94U14S7/GTXX7vdu828+YAy2YHkN1TK2VuLi+3TbwhauAD7RVecn5Ms9V3scn36rcjSdu2QwO04YfW61A5e9nqvdrzfu51nkjDxqc3Q1u1owegTZtkl011/3mvkoO23yb5hUnYx7Ybmrql+D4yfTAneOidsX9XuPQh+zfvRHzAew6wrWPupv76wke3kbram++jKjyQLd8HGDaUJnG5+aOD0Yd0DrSddzkH6zMZ7rd2JQb46FPbbkc6zClKacHRlxvWVPBZYN5vesD5QK2NDnpSv/fb5Z2LSSXePnousluZQ1u0u39u5tQQms0wbXVi3Xvc8AwfddMl79/KAH7e5L1hUVX73p8e+LhToJIseO3ANEA2X9tiY1fKadt7zhkT2h2U207boUb6jPOA53OvuL54focvwg9r0eV6P7Xf1YAGnZtDesH/yeEQNhPfF2kQ1T3liWluin4O9n8OaN/qeZAwV79xidsjAR3bI3Ulp1LOIOcOOFm7nnM5NanLYctuJ3kY0100B1WLuxzrm7Di973bbwMeHyrttA914B46GF1YNYu9WtpuVWsrJJoORxbPZaeatcxCIOyL+95Zr2SOWEUoO0JvXuKjOPBTezfZbu0556GPdBPOA3zKQf28aTNaWjfm6UNd79MHIDPMc0nZf7es8r6ftNn376d59PJtdJXo1LlB3cCdvp/e+531SqYsq1hXg13CQe42YvhilzZEhjwTTeUB2PXoc37nONQxQUV1vRcNqor28BwPvCnAVskzhq6bTGyHliGaDh603P2eRXMQmrHbKfZ6xj5jHRRe25UuowNuYGGxpQ0c/imSUFgx52XkzdhfTqknbyadqNIPiIS7nDTQpgBdjvdcoHu8/16w2J7nDUMDOKsG2sq5m4Y6wJjcmP4wJuzlMHkGbdNvfG2M/n7F1DfbbxenW69zh9U6fCdRj3CQF6Pd7brL/my36lTqcb/blpPt04ffc/Htz++Z92p/C7Rd97utYVxBo3N36enVrp9EH3pAPV7SpshWZVP215lBpJFnLOI5Ds3A2YMd+KpPW+71olosoODaJEo7pn5rAn2znuOtLBwCGCYN/8ozbljMMxec8zJoPX9fTcDuIyO249PHoA8vv0Vn8NA+CZt8xzeMcOomgH6ewvR93ZLpfSCnNpybeLAZycdH8V07Z/2fROixx6TrZcM591yAsEmh0J6D3iv4XOccawub9bFvexXFcKQS0CmZ+r0TMU7/3GVknqF8T5djHFtps43RPStP9ue1Cm2hzYHCIDYVV5VgSmETfz+ayX56KZcTNIc4gIc953tVNl+oqkO9IJaX45kNYg8LWslmMuC6bd2cQ4uxtqrOium9vk61AZxXXfvfokfbGdOWoiObCO0NTMNo0r3Ca+8bDeN57tOOePz+w8fucAoyihTvcn7XHOjtoMscqXAY3tn/HPCfEL1qyLlZY4DvYlFAa4PCXhrF+xpGFGk7F99+1/stFpvpnx/EP7rXfAO/OPxILdp21f3nAN7opmYPFAYRU0ltZhALSg7U3lbVdeE+utZ56+VB7vZbl8XZsY+9jNpXEnaL1fYSApt5/1vx8Wy3f8hDHdtabcP8dn1gIm0H3/Rqo1cc/X1fgYekviqkF8LqiccO3Z6nrW6OsstCAzJ8L7t4W/v+edDPq99t1mq7hv96OI63nf4/P9OC64u0SkkAAAAASUVORK5CYII=\n",
"text/html": [
"
"
],
"text/plain": [
"\n",
"array([[ 0, 0, 0, ..., 0, 0,\n",
" 0],\n",
" [ 0, 0, 0, ..., 0, 0,\n",
" 0],\n",
" [ 0, 0, 0, ..., 0, 0,\n",
" 0],\n",
" ...,\n",
" [ 681791128, 681791128, 1229613263, ..., 0, 0,\n",
" 0],\n",
" [1235439256, 1235439256, 1229613263, ..., 0, 0,\n",
" 0],\n",
" [ 681791128, 681791128, 671121407, ..., 0, 0,\n",
" 0]], dtype=uint32)\n",
"Coordinates:\n",
" * x (x) float64 -3.984 -3.952 -3.92 -3.888 ... 3.888 3.92 3.952 3.984\n",
" * y (y) float64 -3.984 -3.952 -3.92 -3.888 ... 3.888 3.92 3.952 3.984"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tf.spread(tf.shade(aggc, color_key))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"`tf.spread` uses a fixed (though configurable) spreading size, while a similar command `tf.dynspread` will spread different amounts depending on density of plots in this particular view.\n",
"\n",
"\n",
"# Embedding\n",
"\n",
"The images produced by datashader can be used with any plotting or display program, however HoloViews provides deep integration with datashader allowing large datasets to be rendered quickly and interactively using its Bokeh integration:"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"application/javascript": [
"\n",
"(function(root) {\n",
" function now() {\n",
" return new Date();\n",
" }\n",
"\n",
" var force = true;\n",
"\n",
" if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n",
" root._bokeh_onload_callbacks = [];\n",
" root._bokeh_is_loading = undefined;\n",
" }\n",
"\n",
" if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n",
" root._bokeh_timeout = Date.now() + 5000;\n",
" root._bokeh_failed_load = false;\n",
" }\n",
"\n",
" function run_callbacks() {\n",
" try {\n",
" root._bokeh_onload_callbacks.forEach(function(callback) {\n",
" if (callback != null)\n",
" callback();\n",
" });\n",
" } finally {\n",
" delete root._bokeh_onload_callbacks\n",
" }\n",
" console.debug(\"Bokeh: all callbacks have finished\");\n",
" }\n",
"\n",
" function load_libs(css_urls, js_urls, callback) {\n",
" if (css_urls == null) css_urls = [];\n",
" if (js_urls == null) js_urls = [];\n",
"\n",
" root._bokeh_onload_callbacks.push(callback);\n",
" if (root._bokeh_is_loading > 0) {\n",
" console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n",
" return null;\n",
" }\n",
" if (js_urls == null || js_urls.length === 0) {\n",
" run_callbacks();\n",
" return null;\n",
" }\n",
" console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n",
" root._bokeh_is_loading = css_urls.length + js_urls.length;\n",
"\n",
" function on_load() {\n",
" root._bokeh_is_loading--;\n",
" if (root._bokeh_is_loading === 0) {\n",
" console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n",
" run_callbacks()\n",
" }\n",
" }\n",
"\n",
" function on_error() {\n",
" console.error(\"failed to load \" + url);\n",
" }\n",
"\n",
" for (var i = 0; i < css_urls.length; i++) {\n",
" var url = css_urls[i];\n",
" const element = document.createElement(\"link\");\n",
" element.onload = on_load;\n",
" element.onerror = on_error;\n",
" element.rel = \"stylesheet\";\n",
" element.type = \"text/css\";\n",
" element.href = url;\n",
" console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n",
" document.body.appendChild(element);\n",
" }\n",
"\n",
" if (window.requirejs) {\n",
" require([], function() {\n",
" run_callbacks();\n",
" })\n",
" } else {\n",
" var skip = [];\n",
" for (var i = 0; i < js_urls.length; i++) {\n",
" var url = js_urls[i];\n",
" if (skip.indexOf(url) >= 0) { on_load(); continue; }\n",
" var element = document.createElement('script');\n",
" element.onload = on_load;\n",
" element.onerror = on_error;\n",
" element.async = false;\n",
" element.src = url;\n",
" console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n",
" document.head.appendChild(element);\n",
" }\n",
" }\n",
" };\n",
"\n",
" function inject_raw_css(css) {\n",
" const element = document.createElement(\"style\");\n",
" element.appendChild(document.createTextNode(css));\n",
" document.body.appendChild(element);\n",
" }\n",
"\n",
" var js_urls = [];\n",
" var css_urls = [];\n",
"\n",
" var inline_js = [\n",
" function(Bokeh) {\n",
" inject_raw_css(\".codehilite .hll { background-color: #ffffcc }\\n.codehilite { background: #f8f8f8; }\\n.codehilite .c { color: #408080; font-style: italic } /* Comment */\\n.codehilite .err { border: 1px solid #FF0000 } /* Error */\\n.codehilite .k { color: #008000; font-weight: bold } /* Keyword */\\n.codehilite .o { color: #666666 } /* Operator */\\n.codehilite .ch { color: #408080; font-style: italic } /* Comment.Hashbang */\\n.codehilite .cm { color: #408080; font-style: italic } /* Comment.Multiline */\\n.codehilite .cp { color: #BC7A00 } /* Comment.Preproc */\\n.codehilite .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */\\n.codehilite .c1 { color: #408080; font-style: italic } /* Comment.Single */\\n.codehilite .cs { color: #408080; font-style: italic } /* Comment.Special */\\n.codehilite .gd { color: #A00000 } /* Generic.Deleted */\\n.codehilite .ge { font-style: italic } /* Generic.Emph */\\n.codehilite .gr { color: #FF0000 } /* Generic.Error */\\n.codehilite .gh { color: #000080; font-weight: bold } /* Generic.Heading */\\n.codehilite .gi { color: #00A000 } /* Generic.Inserted */\\n.codehilite .go { color: #888888 } /* Generic.Output */\\n.codehilite .gp { color: #000080; font-weight: bold } /* Generic.Prompt */\\n.codehilite .gs { font-weight: bold } /* Generic.Strong */\\n.codehilite .gu { color: #800080; font-weight: bold } /* Generic.Subheading */\\n.codehilite .gt { color: #0044DD } /* Generic.Traceback */\\n.codehilite .kc { color: #008000; font-weight: bold } /* Keyword.Constant */\\n.codehilite .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */\\n.codehilite .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */\\n.codehilite .kp { color: #008000 } /* Keyword.Pseudo */\\n.codehilite .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */\\n.codehilite .kt { color: #B00040 } /* Keyword.Type */\\n.codehilite .m { color: #666666 } /* Literal.Number */\\n.codehilite .s { color: #BA2121 } /* Literal.String */\\n.codehilite .na { color: #7D9029 } /* Name.Attribute */\\n.codehilite .nb { color: #008000 } /* Name.Builtin */\\n.codehilite .nc { color: #0000FF; font-weight: bold } /* Name.Class */\\n.codehilite .no { color: #880000 } /* Name.Constant */\\n.codehilite .nd { color: #AA22FF } /* Name.Decorator */\\n.codehilite .ni { color: #999999; font-weight: bold } /* Name.Entity */\\n.codehilite .ne { color: #D2413A; font-weight: bold } /* Name.Exception */\\n.codehilite .nf { color: #0000FF } /* Name.Function */\\n.codehilite .nl { color: #A0A000 } /* Name.Label */\\n.codehilite .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */\\n.codehilite .nt { color: #008000; font-weight: bold } /* Name.Tag */\\n.codehilite .nv { color: #19177C } /* Name.Variable */\\n.codehilite .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */\\n.codehilite .w { color: #bbbbbb } /* Text.Whitespace */\\n.codehilite .mb { color: #666666 } /* Literal.Number.Bin */\\n.codehilite .mf { color: #666666 } /* Literal.Number.Float */\\n.codehilite .mh { color: #666666 } /* Literal.Number.Hex */\\n.codehilite .mi { color: #666666 } /* Literal.Number.Integer */\\n.codehilite .mo { color: #666666 } /* Literal.Number.Oct */\\n.codehilite .sa { color: #BA2121 } /* Literal.String.Affix */\\n.codehilite .sb { color: #BA2121 } /* Literal.String.Backtick */\\n.codehilite .sc { color: #BA2121 } /* Literal.String.Char */\\n.codehilite .dl { color: #BA2121 } /* Literal.String.Delimiter */\\n.codehilite .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */\\n.codehilite .s2 { color: #BA2121 } /* Literal.String.Double */\\n.codehilite .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */\\n.codehilite .sh { color: #BA2121 } /* Literal.String.Heredoc */\\n.codehilite .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */\\n.codehilite .sx { color: #008000 } /* Literal.String.Other */\\n.codehilite .sr { color: #BB6688 } /* Literal.String.Regex */\\n.codehilite .s1 { color: #BA2121 } /* Literal.String.Single */\\n.codehilite .ss { color: #19177C } /* Literal.String.Symbol */\\n.codehilite .bp { color: #008000 } /* Name.Builtin.Pseudo */\\n.codehilite .fm { color: #0000FF } /* Name.Function.Magic */\\n.codehilite .vc { color: #19177C } /* Name.Variable.Class */\\n.codehilite .vg { color: #19177C } /* Name.Variable.Global */\\n.codehilite .vi { color: #19177C } /* Name.Variable.Instance */\\n.codehilite .vm { color: #19177C } /* Name.Variable.Magic */\\n.codehilite .il { color: #666666 } /* Literal.Number.Integer.Long */\\n\\n.markdown h1 { margin-block-start: 0.34em }\\n.markdown h2 { margin-block-start: 0.42em }\\n.markdown h3 { margin-block-start: 0.5em }\\n.markdown h4 { margin-block-start: 0.67em }\\n.markdown h5 { margin-block-start: 0.84em }\\n.markdown h6 { margin-block-start: 1.17em }\\n.markdown ul { padding-inline-start: 2em }\\n.markdown ol { padding-inline-start: 2em }\\n.markdown { width: 100% }\\n.markdown strong { font-weight: 600 }\\n.markdown a { color: -webkit-link }\\n.markdown a { color: -moz-hyperlinkText }\\n\");\n",
" },\n",
" function(Bokeh) {\n",
" inject_raw_css(\".widget-box {\\n\\tmin-height: 20px;\\n\\tbackground-color: #f5f5f5;\\n\\tborder: 1px solid #e3e3e3 !important;\\n\\tborder-radius: 4px;\\n\\t-webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.05);\\n\\tbox-shadow: inset 0 1px 1px rgba(0,0,0,.05);\\n\\toverflow-x: hidden;\\n\\toverflow-y: hidden;\\n}\\n\\n.scrollable {\\n overflow: scroll;\\n}\\n\\nprogress {\\n\\tappearance: none;\\n\\t-moz-appearance: none;\\n\\t-webkit-appearance: none;\\n\\n\\tborder: none;\\n\\theight: 20px;\\n\\tbackground-color: whiteSmoke;\\n\\tborder-radius: 3px;\\n\\tbox-shadow: 0 2px 3px rgba(0,0,0,.5) inset;\\n\\tcolor: royalblue;\\n\\tposition: relative;\\n\\tmargin: 0 0 1.5em;\\n}\\n\\nprogress[value]::-webkit-progress-bar {\\n\\tbackground-color: whiteSmoke;\\n\\tborder-radius: 3px;\\n\\tbox-shadow: 0 2px 3px rgba(0,0,0,.5) inset;\\n}\\n\\nprogress[value]::-webkit-progress-value {\\n\\tposition: relative;\\n\\n\\tbackground-size: 35px 20px, 100% 100%, 100% 100%;\\n\\tborder-radius:3px;\\n}\\n\\nprogress.active:not([value])::before {\\n\\tbackground-position: 10%;\\n\\tanimation-name: stripes;\\n\\tanimation-duration: 3s;\\n\\tanimation-timing-function: linear;\\n\\tanimation-iteration-count: infinite;\\n}\\n\\nprogress[value]::-moz-progress-bar {\\n\\tbackground-size: 35px 20px, 100% 100%, 100% 100%;\\n\\tborder-radius:3px;\\n}\\n\\nprogress:not([value])::-moz-progress-bar {\\n\\tborder-radius:3px;\\n\\tbackground:\\n\\tlinear-gradient(-45deg, transparent 33%, rgba(0, 0, 0, 0.2) 33%, rgba(0, 0, 0, 0.2) 66%, transparent 66%) left/2.5em 1.5em;\\n\\n}\\n\\nprogress.active:not([value])::-moz-progress-bar {\\n\\tbackground-position: 10%;\\n\\tanimation-name: stripes;\\n\\tanimation-duration: 3s;\\n\\tanimation-timing-function: linear;\\n\\tanimation-iteration-count: infinite;\\n}\\n\\nprogress.active:not([value])::-webkit-progress-bar {\\n\\tbackground-position: 10%;\\n\\tanimation-name: stripes;\\n\\tanimation-duration: 3s;\\n\\tanimation-timing-function: linear;\\n\\tanimation-iteration-count: infinite;\\n}\\n\\nprogress.primary[value]::-webkit-progress-value { background-color: #007bff; }\\nprogress.primary:not([value])::before { background-color: #007bff; }\\nprogress.primary:not([value])::-webkit-progress-bar { background-color: #007bff; }\\nprogress.primary::-moz-progress-bar { background-color: #007bff; }\\n\\nprogress.secondary[value]::-webkit-progress-value { background-color: #6c757d; }\\nprogress.secondary:not([value])::before { background-color: #6c757d; }\\nprogress.secondary:not([value])::-webkit-progress-bar { background-color: #6c757d; }\\nprogress.secondary::-moz-progress-bar { background-color: #6c757d; }\\n\\nprogress.success[value]::-webkit-progress-value { background-color: #28a745; }\\nprogress.success:not([value])::before { background-color: #28a745; }\\nprogress.success:not([value])::-webkit-progress-bar { background-color: #28a745; }\\nprogress.success::-moz-progress-bar { background-color: #28a745; }\\n\\nprogress.danger[value]::-webkit-progress-value { background-color: #dc3545; }\\nprogress.danger:not([value])::before { background-color: #dc3545; }\\nprogress.danger:not([value])::-webkit-progress-bar { background-color: #dc3545; }\\nprogress.danger::-moz-progress-bar { background-color: #dc3545; }\\n\\nprogress.warning[value]::-webkit-progress-value { background-color: #ffc107; }\\nprogress.warning:not([value])::before { background-color: #ffc107; }\\nprogress.warning:not([value])::-webkit-progress-bar { background-color: #ffc107; }\\nprogress.warning::-moz-progress-bar { background-color: #ffc107; }\\n\\nprogress.info[value]::-webkit-progress-value { background-color: #17a2b8; }\\nprogress.info:not([value])::before { background-color: #17a2b8; }\\nprogress.info:not([value])::-webkit-progress-bar { background-color: #17a2b8; }\\nprogress.info::-moz-progress-bar { background-color: #17a2b8; }\\n\\nprogress.light[value]::-webkit-progress-value { background-color: #f8f9fa; }\\nprogress.light:not([value])::before { background-color: #f8f9fa; }\\nprogress.light:not([value])::-webkit-progress-bar { background-color: #f8f9fa; }\\nprogress.light::-moz-progress-bar { background-color: #f8f9fa; }\\n\\nprogress.dark[value]::-webkit-progress-value { background-color: #343a40; }\\nprogress.dark:not([value])::-webkit-progress-bar { background-color: #343a40; }\\nprogress.dark:not([value])::before { background-color: #343a40; }\\nprogress.dark::-moz-progress-bar { background-color: #343a40; }\\n\\nprogress:not([value])::-webkit-progress-bar {\\n\\tborder-radius: 3px;\\n\\tbackground:\\n\\tlinear-gradient(-45deg, transparent 33%, rgba(0, 0, 0, 0.2) 33%, rgba(0, 0, 0, 0.2) 66%, transparent 66%) left/2.5em 1.5em;\\n}\\nprogress:not([value])::before {\\n\\tcontent:\\\" \\\";\\n\\tposition:absolute;\\n\\theight: 20px;\\n\\ttop:0;\\n\\tleft:0;\\n\\tright:0;\\n\\tbottom:0;\\n\\tborder-radius: 3px;\\n\\tbackground:\\n\\tlinear-gradient(-45deg, transparent 33%, rgba(0, 0, 0, 0.2) 33%, rgba(0, 0, 0, 0.2) 66%, transparent 66%) left/2.5em 1.5em;\\n}\\n\\n@keyframes stripes {\\n from {background-position: 0%}\\n to {background-position: 100%}\\n}\");\n",
" },\n",
" function(Bokeh) {\n",
" inject_raw_css(\".codehilite .hll { background-color: #ffffcc }\\n.codehilite { background: #f8f8f8; }\\n.codehilite .c { color: #408080; font-style: italic } /* Comment */\\n.codehilite .err { border: 1px solid #FF0000 } /* Error */\\n.codehilite .k { color: #008000; font-weight: bold } /* Keyword */\\n.codehilite .o { color: #666666 } /* Operator */\\n.codehilite .ch { color: #408080; font-style: italic } /* Comment.Hashbang */\\n.codehilite .cm { color: #408080; font-style: italic } /* Comment.Multiline */\\n.codehilite .cp { color: #BC7A00 } /* Comment.Preproc */\\n.codehilite .cpf { color: #408080; font-style: italic } /* Comment.PreprocFile */\\n.codehilite .c1 { color: #408080; font-style: italic } /* Comment.Single */\\n.codehilite .cs { color: #408080; font-style: italic } /* Comment.Special */\\n.codehilite .gd { color: #A00000 } /* Generic.Deleted */\\n.codehilite .ge { font-style: italic } /* Generic.Emph */\\n.codehilite .gr { color: #FF0000 } /* Generic.Error */\\n.codehilite .gh { color: #000080; font-weight: bold } /* Generic.Heading */\\n.codehilite .gi { color: #00A000 } /* Generic.Inserted */\\n.codehilite .go { color: #888888 } /* Generic.Output */\\n.codehilite .gp { color: #000080; font-weight: bold } /* Generic.Prompt */\\n.codehilite .gs { font-weight: bold } /* Generic.Strong */\\n.codehilite .gu { color: #800080; font-weight: bold } /* Generic.Subheading */\\n.codehilite .gt { color: #0044DD } /* Generic.Traceback */\\n.codehilite .kc { color: #008000; font-weight: bold } /* Keyword.Constant */\\n.codehilite .kd { color: #008000; font-weight: bold } /* Keyword.Declaration */\\n.codehilite .kn { color: #008000; font-weight: bold } /* Keyword.Namespace */\\n.codehilite .kp { color: #008000 } /* Keyword.Pseudo */\\n.codehilite .kr { color: #008000; font-weight: bold } /* Keyword.Reserved */\\n.codehilite .kt { color: #B00040 } /* Keyword.Type */\\n.codehilite .m { color: #666666 } /* Literal.Number */\\n.codehilite .s { color: #BA2121 } /* Literal.String */\\n.codehilite .na { color: #7D9029 } /* Name.Attribute */\\n.codehilite .nb { color: #008000 } /* Name.Builtin */\\n.codehilite .nc { color: #0000FF; font-weight: bold } /* Name.Class */\\n.codehilite .no { color: #880000 } /* Name.Constant */\\n.codehilite .nd { color: #AA22FF } /* Name.Decorator */\\n.codehilite .ni { color: #999999; font-weight: bold } /* Name.Entity */\\n.codehilite .ne { color: #D2413A; font-weight: bold } /* Name.Exception */\\n.codehilite .nf { color: #0000FF } /* Name.Function */\\n.codehilite .nl { color: #A0A000 } /* Name.Label */\\n.codehilite .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */\\n.codehilite .nt { color: #008000; font-weight: bold } /* Name.Tag */\\n.codehilite .nv { color: #19177C } /* Name.Variable */\\n.codehilite .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */\\n.codehilite .w { color: #bbbbbb } /* Text.Whitespace */\\n.codehilite .mb { color: #666666 } /* Literal.Number.Bin */\\n.codehilite .mf { color: #666666 } /* Literal.Number.Float */\\n.codehilite .mh { color: #666666 } /* Literal.Number.Hex */\\n.codehilite .mi { color: #666666 } /* Literal.Number.Integer */\\n.codehilite .mo { color: #666666 } /* Literal.Number.Oct */\\n.codehilite .sa { color: #BA2121 } /* Literal.String.Affix */\\n.codehilite .sb { color: #BA2121 } /* Literal.String.Backtick */\\n.codehilite .sc { color: #BA2121 } /* Literal.String.Char */\\n.codehilite .dl { color: #BA2121 } /* Literal.String.Delimiter */\\n.codehilite .sd { color: #BA2121; font-style: italic } /* Literal.String.Doc */\\n.codehilite .s2 { color: #BA2121 } /* Literal.String.Double */\\n.codehilite .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */\\n.codehilite .sh { color: #BA2121 } /* Literal.String.Heredoc */\\n.codehilite .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */\\n.codehilite .sx { color: #008000 } /* Literal.String.Other */\\n.codehilite .sr { color: #BB6688 } /* Literal.String.Regex */\\n.codehilite .s1 { color: #BA2121 } /* Literal.String.Single */\\n.codehilite .ss { color: #19177C } /* Literal.String.Symbol */\\n.codehilite .bp { color: #008000 } /* Name.Builtin.Pseudo */\\n.codehilite .fm { color: #0000FF } /* Name.Function.Magic */\\n.codehilite .vc { color: #19177C } /* Name.Variable.Class */\\n.codehilite .vg { color: #19177C } /* Name.Variable.Global */\\n.codehilite .vi { color: #19177C } /* Name.Variable.Instance */\\n.codehilite .vm { color: #19177C } /* Name.Variable.Magic */\\n.codehilite .il { color: #666666 } /* Literal.Number.Integer.Long */\\n\\n.markdown h1 { margin-block-start: 0.34em }\\n.markdown h2 { margin-block-start: 0.42em }\\n.markdown h3 { margin-block-start: 0.5em }\\n.markdown h4 { margin-block-start: 0.67em }\\n.markdown h5 { margin-block-start: 0.84em }\\n.markdown h6 { margin-block-start: 1.17em }\\n.markdown ul { padding-inline-start: 2em }\\n.markdown ol { padding-inline-start: 2em }\\n.markdown strong { font-weight: 600 }\\n.markdown a { color: -webkit-link }\\n.markdown a { color: -moz-hyperlinkText }\\n\");\n",
" },\n",
" function(Bokeh) {\n",
" inject_raw_css(\".json-formatter-row {\\n font-family: monospace;\\n}\\n.json-formatter-row,\\n.json-formatter-row a,\\n.json-formatter-row a:hover {\\n color: black;\\n text-decoration: none;\\n}\\n.json-formatter-row .json-formatter-row {\\n margin-left: 1rem;\\n}\\n.json-formatter-row .json-formatter-children.json-formatter-empty {\\n opacity: 0.5;\\n margin-left: 1rem;\\n}\\n.json-formatter-row .json-formatter-children.json-formatter-empty:after {\\n display: none;\\n}\\n.json-formatter-row .json-formatter-children.json-formatter-empty.json-formatter-object:after {\\n content: \\\"No properties\\\";\\n}\\n.json-formatter-row .json-formatter-children.json-formatter-empty.json-formatter-array:after {\\n content: \\\"[]\\\";\\n}\\n.json-formatter-row .json-formatter-string,\\n.json-formatter-row .json-formatter-stringifiable {\\n color: green;\\n white-space: pre;\\n word-wrap: break-word;\\n}\\n.json-formatter-row .json-formatter-number {\\n color: blue;\\n}\\n.json-formatter-row .json-formatter-boolean {\\n color: red;\\n}\\n.json-formatter-row .json-formatter-null {\\n color: #855A00;\\n}\\n.json-formatter-row .json-formatter-undefined {\\n color: #ca0b69;\\n}\\n.json-formatter-row .json-formatter-function {\\n color: #FF20ED;\\n}\\n.json-formatter-row .json-formatter-date {\\n background-color: rgba(0, 0, 0, 0.05);\\n}\\n.json-formatter-row .json-formatter-url {\\n text-decoration: underline;\\n color: blue;\\n cursor: pointer;\\n}\\n.json-formatter-row .json-formatter-bracket {\\n color: blue;\\n}\\n.json-formatter-row .json-formatter-key {\\n color: #00008B;\\n padding-right: 0.2rem;\\n}\\n.json-formatter-row .json-formatter-toggler-link {\\n cursor: pointer;\\n}\\n.json-formatter-row .json-formatter-toggler {\\n line-height: 1.2rem;\\n font-size: 0.7rem;\\n vertical-align: middle;\\n opacity: 0.6;\\n cursor: pointer;\\n padding-right: 0.2rem;\\n}\\n.json-formatter-row .json-formatter-toggler:after {\\n display: inline-block;\\n transition: transform 100ms ease-in;\\n content: \\\"\\\\25BA\\\";\\n}\\n.json-formatter-row > a > .json-formatter-preview-text {\\n opacity: 0;\\n transition: opacity 0.15s ease-in;\\n font-style: italic;\\n}\\n.json-formatter-row:hover > a > .json-formatter-preview-text {\\n opacity: 0.6;\\n}\\n.json-formatter-row.json-formatter-open > .json-formatter-toggler-link .json-formatter-toggler:after {\\n transform: rotate(90deg);\\n}\\n.json-formatter-row.json-formatter-open > .json-formatter-children:after {\\n display: inline-block;\\n}\\n.json-formatter-row.json-formatter-open > a > .json-formatter-preview-text {\\n display: none;\\n}\\n.json-formatter-row.json-formatter-open.json-formatter-empty:after {\\n display: block;\\n}\\n.json-formatter-dark.json-formatter-row {\\n font-family: monospace;\\n}\\n.json-formatter-dark.json-formatter-row,\\n.json-formatter-dark.json-formatter-row a,\\n.json-formatter-dark.json-formatter-row a:hover {\\n color: white;\\n text-decoration: none;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-row {\\n margin-left: 1rem;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-children.json-formatter-empty {\\n opacity: 0.5;\\n margin-left: 1rem;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-children.json-formatter-empty:after {\\n display: none;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-children.json-formatter-empty.json-formatter-object:after {\\n content: \\\"No properties\\\";\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-children.json-formatter-empty.json-formatter-array:after {\\n content: \\\"[]\\\";\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-string,\\n.json-formatter-dark.json-formatter-row .json-formatter-stringifiable {\\n color: #31F031;\\n white-space: pre;\\n word-wrap: break-word;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-number {\\n color: #66C2FF;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-boolean {\\n color: #EC4242;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-null {\\n color: #EEC97D;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-undefined {\\n color: #ef8fbe;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-function {\\n color: #FD48CB;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-date {\\n background-color: rgba(255, 255, 255, 0.05);\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-url {\\n text-decoration: underline;\\n color: #027BFF;\\n cursor: pointer;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-bracket {\\n color: #9494FF;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-key {\\n color: #23A0DB;\\n padding-right: 0.2rem;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-toggler-link {\\n cursor: pointer;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-toggler {\\n line-height: 1.2rem;\\n font-size: 0.7rem;\\n vertical-align: middle;\\n opacity: 0.6;\\n cursor: pointer;\\n padding-right: 0.2rem;\\n}\\n.json-formatter-dark.json-formatter-row .json-formatter-toggler:after {\\n display: inline-block;\\n transition: transform 100ms ease-in;\\n content: \\\"\\\\25BA\\\";\\n}\\n.json-formatter-dark.json-formatter-row > a > .json-formatter-preview-text {\\n opacity: 0;\\n transition: opacity 0.15s ease-in;\\n font-style: italic;\\n}\\n.json-formatter-dark.json-formatter-row:hover > a > .json-formatter-preview-text {\\n opacity: 0.6;\\n}\\n.json-formatter-dark.json-formatter-row.json-formatter-open > .json-formatter-toggler-link .json-formatter-toggler:after {\\n transform: rotate(90deg);\\n}\\n.json-formatter-dark.json-formatter-row.json-formatter-open > .json-formatter-children:after {\\n display: inline-block;\\n}\\n.json-formatter-dark.json-formatter-row.json-formatter-open > a > .json-formatter-preview-text {\\n display: none;\\n}\\n.json-formatter-dark.json-formatter-row.json-formatter-open.json-formatter-empty:after {\\n display: block;\\n}\\n\");\n",
" },\n",
" function(Bokeh) {\n",
" inject_raw_css(\"table.panel-df {\\n margin-left: auto;\\n margin-right: auto;\\n border: none;\\n border-collapse: collapse;\\n border-spacing: 0;\\n color: black;\\n font-size: 12px;\\n table-layout: fixed;\\n width: 100%;\\n}\\n\\n.panel-df tr, th, td {\\n text-align: right;\\n vertical-align: middle;\\n padding: 0.5em 0.5em !important;\\n line-height: normal;\\n white-space: normal;\\n max-width: none;\\n border: none;\\n}\\n\\n.panel-df tbody {\\n display: table-row-group;\\n vertical-align: middle;\\n border-color: inherit;\\n}\\n\\n.panel-df tbody tr:nth-child(odd) {\\n background: #f5f5f5;\\n}\\n\\n.panel-df thead {\\n border-bottom: 1px solid black;\\n vertical-align: bottom;\\n}\\n\\n.panel-df tr:hover {\\n background: lightblue !important;\\n cursor: pointer;\\n}\\n\");\n",
" },\n",
" function(Bokeh) {\n",
" /* BEGIN bokeh.min.js */\n",
" /*!\n",
" * Copyright (c) 2012 - 2020, Anaconda, Inc., and Bokeh Contributors\n",
" * All rights reserved.\n",
" * \n",
" * Redistribution and use in source and binary forms, with or without modification,\n",
" * are permitted provided that the following conditions are met:\n",
" * \n",
" * Redistributions of source code must retain the above copyright notice,\n",
" * this list of conditions and the following disclaimer.\n",
" * \n",
" * Redistributions in binary form must reproduce the above copyright notice,\n",
" * this list of conditions and the following disclaimer in the documentation\n",
" * and/or other materials provided with the distribution.\n",
" * \n",
" * Neither the name of Anaconda nor the names of any contributors\n",
" * may be used to endorse or promote products derived from this software\n",
" * without specific prior written permission.\n",
" * \n",
" * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n",
" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n",
" * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n",
" * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE\n",
" * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\n",
" * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\n",
" * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\n",
" * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\n",
" * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n",
" * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF\n",
" * THE POSSIBILITY OF SUCH DAMAGE.\n",
" */\n",
" (function(root, factory) {\n",
" root[\"Bokeh\"] = factory();\n",
" })(this, function() {\n",
" var define;\n",
" var parent_require = typeof require === \"function\" && require\n",
" return (function(modules, entry, aliases, externals) {\n",
" if (aliases === undefined) aliases = {};\n",
" if (externals === undefined) externals = {};\n",
"\n",
" var cache = {};\n",
"\n",
" var normalize = function(name) {\n",
" if (typeof name === \"number\")\n",
" return name;\n",
"\n",
" if (name === \"bokehjs\")\n",
" return entry;\n",
"\n",
" var prefix = \"@bokehjs/\"\n",
" if (name.slice(0, prefix.length) === prefix)\n",
" name = name.slice(prefix.length)\n",
"\n",
" var alias = aliases[name]\n",
" if (alias != null)\n",
" return alias;\n",
"\n",
" var trailing = name.length > 0 && name[name.lenght-1] === \"/\";\n",
" var index = aliases[name + (trailing ? \"\" : \"/\") + \"index\"];\n",
" if (index != null)\n",
" return index;\n",
"\n",
" return name;\n",
" }\n",
"\n",
" var require = function(name) {\n",
" var mod = cache[name];\n",
" if (!mod) {\n",
" var id = normalize(name);\n",
"\n",
" mod = cache[id];\n",
" if (!mod) {\n",
" if (!modules[id]) {\n",
" if (externals[id] === false || (externals[id] == true && parent_require)) {\n",
" try {\n",
" mod = {exports: externals[id] ? parent_require(id) : {}};\n",
" cache[id] = cache[name] = mod;\n",
" return mod.exports;\n",
" } catch (e) {}\n",
" }\n",
"\n",
" var err = new Error(\"Cannot find module '\" + name + \"'\");\n",
" err.code = 'MODULE_NOT_FOUND';\n",
" throw err;\n",
" }\n",
"\n",
" mod = {exports: {}};\n",
" cache[id] = cache[name] = mod;\n",
" modules[id].call(mod.exports, require, mod, mod.exports);\n",
" } else\n",
" cache[name] = mod;\n",
" }\n",
"\n",
" return mod.exports;\n",
" }\n",
"\n",
" var main = require(entry);\n",
" main.require = require;\n",
"\n",
" if (typeof Proxy !== \"undefined\") {\n",
" // allow Bokeh.loader[\"@bokehjs/module/name\"] syntax\n",
" main.loader = new Proxy({}, {\n",
" get: function(_obj, module) {\n",
" return require(module);\n",
" }\n",
" });\n",
" }\n",
"\n",
" main.register_plugin = function(plugin_modules, plugin_entry, plugin_aliases, plugin_externals) {\n",
" if (plugin_aliases === undefined) plugin_aliases = {};\n",
" if (plugin_externals === undefined) plugin_externals = {};\n",
"\n",
" for (var name in plugin_modules) {\n",
" modules[name] = plugin_modules[name];\n",
" }\n",
"\n",
" for (var name in plugin_aliases) {\n",
" aliases[name] = plugin_aliases[name];\n",
" }\n",
"\n",
" for (var name in plugin_externals) {\n",
" externals[name] = plugin_externals[name];\n",
" }\n",
"\n",
" var plugin = require(plugin_entry);\n",
"\n",
" for (var name in plugin) {\n",
" main[name] = plugin[name];\n",
" }\n",
"\n",
" return plugin;\n",
" }\n",
"\n",
" return main;\n",
" })\n",
" ([\n",
" function _(e,t,_){Object.defineProperty(_,\"__esModule\",{value:!0}),e(1).__exportStar(e(2),_)},\n",
" function _(t,e,n){\n",
" /*! *****************************************************************************\n",
" Copyright (c) Microsoft Corporation. All rights reserved.\n",
" Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use\n",
" this file except in compliance with the License. You may obtain a copy of the\n",
" License at http://www.apache.org/licenses/LICENSE-2.0\n",
" \n",
" THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n",
" KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\n",
" WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\n",
" MERCHANTABLITY OR NON-INFRINGEMENT.\n",
" \n",
" See the Apache Version 2.0 License for specific language governing permissions\n",
" and limitations under the License.\n",
" ***************************************************************************** */\n",
" Object.defineProperty(n,\"__esModule\",{value:!0});var r=function(t,e){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,e)};function o(t){var e=\"function\"==typeof Symbol&&Symbol.iterator,n=e&&t[e],r=0;if(n)return n.call(t);if(t&&\"number\"==typeof t.length)return{next:function(){return t&&r>=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}};throw new TypeError(e?\"Object is not iterable.\":\"Symbol.iterator is not defined.\")}function a(t,e){var n=\"function\"==typeof Symbol&&t[Symbol.iterator];if(!n)return t;var r,o,a=n.call(t),i=[];try{for(;(void 0===e||e-- >0)&&!(r=a.next()).done;)i.push(r.value)}catch(t){o={error:t}}finally{try{r&&!r.done&&(n=a.return)&&n.call(a)}finally{if(o)throw o.error}}return i}function i(t){return this instanceof i?(this.v=t,this):new i(t)}n.__extends=function(t,e){function n(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)},n.__assign=function(){return n.__assign=Object.assign||function(t){for(var e,n=1,r=arguments.length;n=0;u--)(o=t[u])&&(i=(a<3?o(i):a>3?o(e,n,i):o(e,n))||i);return a>3&&i&&Object.defineProperty(e,n,i),i},n.__param=function(t,e){return function(n,r){e(n,r,t)}},n.__metadata=function(t,e){if(\"object\"==typeof Reflect&&\"function\"==typeof Reflect.metadata)return Reflect.metadata(t,e)},n.__awaiter=function(t,e,n,r){return new(n||(n=Promise))((function(o,a){function i(t){try{c(r.next(t))}catch(t){a(t)}}function u(t){try{c(r.throw(t))}catch(t){a(t)}}function c(t){var e;t.done?o(t.value):(e=t.value,e instanceof n?e:new n((function(t){t(e)}))).then(i,u)}c((r=r.apply(t,e||[])).next())}))},n.__generator=function(t,e){var n,r,o,a,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:u(0),throw:u(1),return:u(2)},\"function\"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function u(a){return function(u){return function(a){if(n)throw new TypeError(\"Generator is already executing.\");for(;i;)try{if(n=1,r&&(o=2&a[0]?r.return:a[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,a[1])).done)return o;switch(r=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return i.label++,{value:a[1],done:!1};case 5:i.label++,r=a[1],a=[0];continue;case 7:a=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==a[0]&&2!==a[0])){i=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]1||c(t,e)}))})}function c(t,e){try{(n=o[t](e)).value instanceof i?Promise.resolve(n.value.v).then(f,l):s(a[0][2],n)}catch(t){s(a[0][3],t)}var n}function f(t){c(\"next\",t)}function l(t){c(\"throw\",t)}function s(t,e){t(e),a.shift(),a.length&&c(a[0][0],a[0][1])}},n.__asyncDelegator=function(t){var e,n;return e={},r(\"next\"),r(\"throw\",(function(t){throw t})),r(\"return\"),e[Symbol.iterator]=function(){return this},e;function r(r,o){e[r]=t[r]?function(e){return(n=!n)?{value:i(t[r](e)),done:\"return\"===r}:o?o(e):e}:o}},n.__asyncValues=function(t){if(!Symbol.asyncIterator)throw new TypeError(\"Symbol.asyncIterator is not defined.\");var e,n=t[Symbol.asyncIterator];return n?n.call(t):(t=o(t),e={},r(\"next\"),r(\"throw\"),r(\"return\"),e[Symbol.asyncIterator]=function(){return this},e);function r(n){e[n]=t[n]&&function(e){return new Promise((function(r,o){(function(t,e,n,r){Promise.resolve(r).then((function(e){t({value:e,done:n})}),e)})(r,o,(e=t[n](e)).done,e.value)}))}}},n.__makeTemplateObject=function(t,e){return Object.defineProperty?Object.defineProperty(t,\"raw\",{value:e}):t.raw=e,t},n.__importStar=function(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e},n.__importDefault=function(t){return t&&t.__esModule?t:{default:t}},n.__classPrivateFieldGet=function(t,e){if(!e.has(t))throw new TypeError(\"attempted to get private field on non-instance\");return e.get(t)},n.__classPrivateFieldSet=function(t,e,n){if(!e.has(t))throw new TypeError(\"attempted to set private field on non-instance\");return e.set(t,n),n}},\n",
" function _(e,r,t){var l=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(null!=e)for(var t in e)Object.hasOwnProperty.call(e,t)&&(r[t]=e[t]);return r.default=e,r};Object.defineProperty(t,\"__esModule\",{value:!0});var o=e(3);t.version=o.version;var s=e(4);t.index=s.index,t.embed=l(e(4)),t.protocol=l(e(354)),t._testing=l(e(355));var n=e(70);t.logger=n.logger,t.set_log_level=n.set_log_level;var a=e(26);t.settings=a.settings;var i=e(7);t.Models=i.Models;var v=e(5);t.documents=v.documents;var _=e(356);t.safely=_.safely},\n",
" function _(e,n,o){Object.defineProperty(o,\"__esModule\",{value:!0}),o.version=\"2.0.1-rc.1\"},\n",
" function _(e,o,n){Object.defineProperty(n,\"__esModule\",{value:!0});const t=e(5),s=e(70),d=e(25),r=e(8),_=e(17),c=e(345),i=e(347),a=e(346);var u=e(345);n.add_document_standalone=u.add_document_standalone,n.index=u.index;var l=e(347);n.add_document_from_session=l.add_document_from_session;var m=e(352);n.embed_items_notebook=m.embed_items_notebook,n.kernels=m.kernels;var f=e(346);async function g(e,o,n,_){r.isString(e)&&(e=JSON.parse(d.unescape(e)));const u={};for(const o in e){const n=e[o];u[o]=t.Document.from_json(n)}const l=[];for(const e of o){const o=a._resolve_element(e),t=a._resolve_root_elements(e);if(null!=e.docid)l.push(await c.add_document_standalone(u[e.docid],o,t,e.use_for_title));else{if(null==e.token)throw new Error(\"Error rendering Bokeh items: either 'docid' or 'token' was expected.\");{const d=i._get_ws_url(n,_);s.logger.debug(`embed: computed ws url: ${d}`);try{l.push(await i.add_document_from_session(d,e.token,o,t,e.use_for_title)),console.log(\"Bokeh items were rendered successfully\")}catch(e){console.log(\"Error rendering Bokeh items:\",e)}}}}return l}n.BOKEH_ROOT=f.BOKEH_ROOT,n.embed_item=async function(e,o){const n={},t=d.uuid4();n[t]=e.doc,null==o&&(o=e.target_id);const s=document.getElementById(o);null!=s&&s.classList.add(a.BOKEH_ROOT);const r={roots:{[e.root_id]:o},root_ids:[e.root_id],docid:t},[c]=await _.defer(()=>g(n,[r]));return c},n.embed_items=async function(e,o,n,t){return await _.defer(()=>g(e,o,n,t))}},\n",
" function _(e,t,_){Object.defineProperty(_,\"__esModule\",{value:!0});const o=e(1);o.__exportStar(e(6),_),o.__exportStar(e(103),_)},\n",
" function _(e,t,s){Object.defineProperty(s,\"__esModule\",{value:!0});const o=e(7),n=e(3),i=e(70),r=e(281),_=e(13),l=e(14),a=e(24),c=e(100),d=e(15),h=e(9),f=e(23),u=e(16),m=e(8),g=e(244),v=e(73),p=e(69),w=e(103);class b{constructor(e){this.document=e,this.session=null,this.subscribed_models=new Set}send_event(e){const t=new w.MessageSentEvent(this.document,\"bokeh_event\",e.to_json());this.document._trigger_on_change(t)}trigger(e){for(const t of this.subscribed_models){if(null!=e.origin&&e.origin.id!==t)continue;const s=this.document._all_models[t];null!=s&&s instanceof p.Model&&s._process_event(e)}}}s.EventManager=b,b.__name__=\"EventManager\",s.documents=[],s.DEFAULT_TITLE=\"Bokeh Application\";class y{constructor(){s.documents.push(this),this._init_timestamp=Date.now(),this._title=s.DEFAULT_TITLE,this._roots=[],this._all_models={},this._all_models_by_name=new d.MultiDict,this._all_models_freeze_count=0,this._callbacks=[],this._message_callbacks=new Map,this.event_manager=new b(this),this.idle=new l.Signal0(this,\"idle\"),this._idle_roots=new WeakMap,this._interactive_timestamp=null,this._interactive_plot=null}get layoutables(){return this._roots.filter(e=>e instanceof g.LayoutDOM)}get is_idle(){for(const e of this.layoutables)if(!this._idle_roots.has(e))return!1;return!0}notify_idle(e){this._idle_roots.set(e,!0),this.is_idle&&(i.logger.info(`document idle at ${Date.now()-this._init_timestamp} ms`),this.idle.emit())}clear(){this._push_all_models_freeze();try{for(;this._roots.length>0;)this.remove_root(this._roots[0])}finally{this._pop_all_models_freeze()}}interactive_start(e){null==this._interactive_plot&&(this._interactive_plot=e,this._interactive_plot.trigger_event(new r.LODStart)),this._interactive_timestamp=Date.now()}interactive_stop(e){null!=this._interactive_plot&&this._interactive_plot.id===e.id&&this._interactive_plot.trigger_event(new r.LODEnd),this._interactive_plot=null,this._interactive_timestamp=null}interactive_duration(){return null==this._interactive_timestamp?-1:Date.now()-this._interactive_timestamp}destructively_move(e){if(e===this)throw new Error(\"Attempted to overwrite a document with itself\");e.clear();const t=h.copy(this._roots);this.clear();for(const e of t)if(null!=e.document)throw new Error(`Somehow we didn't detach ${e}`);if(0!==Object.keys(this._all_models).length)throw new Error(`this._all_models still had stuff in it: ${this._all_models}`);for(const s of t)e.add_root(s);e.set_title(this._title)}_push_all_models_freeze(){this._all_models_freeze_count+=1}_pop_all_models_freeze(){this._all_models_freeze_count-=1,0===this._all_models_freeze_count&&this._recompute_all_models()}_invalidate_all_models(){i.logger.debug(\"invalidating document models\"),0===this._all_models_freeze_count&&this._recompute_all_models()}_recompute_all_models(){let e=new d.Set;for(const t of this._roots)e=e.union(t.references());const t=new d.Set(f.values(this._all_models)),s=t.diff(e),o=e.diff(t),n={};for(const t of e.values)n[t.id]=t;for(const e of s.values)e.detach_document(),e instanceof p.Model&&null!=e.name&&this._all_models_by_name.remove_value(e.name,e);for(const e of o.values)e.attach_document(this),e instanceof p.Model&&null!=e.name&&this._all_models_by_name.add_value(e.name,e);this._all_models=n}roots(){return this._roots}add_root(e,t){if(i.logger.debug(`Adding root: ${e}`),!h.includes(this._roots,e)){this._push_all_models_freeze();try{this._roots.push(e)}finally{this._pop_all_models_freeze()}this._trigger_on_change(new w.RootAddedEvent(this,e,t))}}remove_root(e,t){const s=this._roots.indexOf(e);if(!(s<0)){this._push_all_models_freeze();try{this._roots.splice(s,1)}finally{this._pop_all_models_freeze()}this._trigger_on_change(new w.RootRemovedEvent(this,e,t))}}title(){return this._title}set_title(e,t){e!==this._title&&(this._title=e,this._trigger_on_change(new w.TitleChangedEvent(this,e,t)))}get_model_by_id(e){return e in this._all_models?this._all_models[e]:null}get_model_by_name(e){return this._all_models_by_name.get_one(e,`Multiple models are named '${e}'`)}on_message(e,t){const s=this._message_callbacks.get(e);null==s?this._message_callbacks.set(e,new Set([t])):s.add(t)}remove_on_message(e,t){var s;null===(s=this._message_callbacks.get(e))||void 0===s||s.delete(t)}_trigger_on_message(e,t){const s=this._message_callbacks.get(e);if(null!=s)for(const e of s)e(t)}on_change(e){h.includes(this._callbacks,e)||this._callbacks.push(e)}remove_on_change(e){const t=this._callbacks.indexOf(e);t>=0&&this._callbacks.splice(t,1)}_trigger_on_change(e){for(const t of this._callbacks)t(e)}_notify_change(e,t,s,o,n){\"name\"===t&&(this._all_models_by_name.remove_value(s,e),null!=o&&this._all_models_by_name.add_value(o,e));const i=null!=n?n.setter_id:void 0,r=null!=n?n.hint:void 0;this._trigger_on_change(new w.ModelChangedEvent(this,e,t,s,o,i,r))}static _references_json(e,t=!0){const s=[];for(const o of e){const e=o.struct();e.attributes=o.attributes_as_json(t),delete e.attributes.id,s.push(e)}return s}static _instantiate_object(e,t,s){const n=Object.assign(Object.assign({},s),{id:e,__deferred__:!0});return new(o.Models(t))(n)}static _instantiate_references_json(e,t){const s={};for(const o of e){const e=o.id,n=o.type,i=o.attributes||{};let r;e in t?r=t[e]:(r=y._instantiate_object(e,n,i),null!=o.subtype&&r.set_subtype(o.subtype)),s[r.id]=r}return s}static _resolve_refs(e,t,s){function o(e){if(a.is_ref(e)){if(e.id in t)return t[e.id];if(e.id in s)return s[e.id];throw new Error(`reference ${JSON.stringify(e)} isn't known (not in Document?)`)}return m.isArray(e)?function(e){const t=[];for(const s of e)t.push(o(s));return t}(e):m.isPlainObject(e)?function(e){const t={};for(const s in e){const n=e[s];t[s]=o(n)}return t}(e):e}return o(e)}static _initialize_references_json(e,t,s){const o={};for(const n of e){const e=n.id,i=n.attributes,r=!(e in t),_=r?s[e]:t[e],l=y._resolve_refs(i,t,s);o[_.id]=[_,l,r]}function n(e,t){const s={};function o(n){if(n instanceof _.HasProps){if(!(n.id in s)&&n.id in e){s[n.id]=!0;const[,i,r]=e[n.id];for(const e in i){o(i[e])}t(n,i,r)}}else if(m.isArray(n))for(const e of n)o(e);else if(m.isPlainObject(n))for(const e in n){o(n[e])}}for(const t in e){const[s,,]=e[t];o(s)}}n(o,(function(e,t,s){s&&e.setv(t,{silent:!0})})),n(o,(function(e,t,s){s&&e.finalize()}))}static _event_for_attribute_change(e,t,s,o,n){if(o.get_model_by_id(e.id).attribute_is_serializable(t)){const i={kind:\"ModelChanged\",model:{id:e.id},attr:t,new:s};return _.HasProps._json_record_references(o,s,n,!0),i}return null}static _events_to_sync_objects(e,t,s,o){const n=Object.keys(e.attributes),r=Object.keys(t.attributes),_=h.difference(n,r),l=h.difference(r,n),a=h.intersection(n,r),c=[];for(const e of _)i.logger.warn(`Server sent key ${e} but we don't seem to have it in our JSON`);for(const n of l){const i=t.attributes[n];c.push(y._event_for_attribute_change(e,n,i,s,o))}for(const n of a){const i=e.attributes[n],r=t.attributes[n];null==i&&null==r||(null==i||null==r?c.push(y._event_for_attribute_change(e,n,r,s,o)):u.isEqual(i,r)||c.push(y._event_for_attribute_change(e,n,r,s,o)))}return c.filter(e=>null!=e)}static _compute_patch_since_json(e,t){const s=t.to_json(!1);function o(e){const t={};for(const s of e.roots.references)t[s.id]=s;return t}const n=o(e),i={},r=[];for(const t of e.roots.root_ids)i[t]=n[t],r.push(t);const _=o(s),l={},a=[];for(const e of s.roots.root_ids)l[e]=_[e],a.push(e);if(r.sort(),a.sort(),h.difference(r,a).length>0||h.difference(a,r).length>0)throw new Error(\"Not implemented: computing add/remove of document roots\");const c={};let d=[];for(const e in t._all_models)if(e in n){const s=y._events_to_sync_objects(n[e],_[e],t,c);d=d.concat(s)}return{references:y._references_json(f.values(c),!1),events:d}}to_json_string(e=!0){return JSON.stringify(this.to_json(e))}to_json(e=!0){const t=this._roots.map(e=>e.id),s=f.values(this._all_models);return{version:n.version,title:this._title,roots:{root_ids:t,references:y._references_json(s,e)}}}static from_json_string(e){const t=JSON.parse(e);return y.from_json(t)}static from_json(e){i.logger.debug(\"Creating Document from JSON\");const t=e.version,s=-1!==t.indexOf(\"+\")||-1!==t.indexOf(\"-\"),o=`Library versions: JS (${n.version}) / Python (${t})`;s||n.version.replace(/-(dev|rc)\\./,\"$1\")==t?i.logger.debug(o):(i.logger.warn(\"JS/Python version mismatch\"),i.logger.warn(o));const r=e.roots,_=r.root_ids,l=r.references,a=y._instantiate_references_json(l,{});y._initialize_references_json(l,{},a);const c=new y;for(const e of _)c.add_root(a[e]);return c.set_title(e.title),c}replace_with_json(e){y.from_json(e).destructively_move(this)}create_json_patch_string(e){return JSON.stringify(this.create_json_patch(e))}create_json_patch(e){const t={},s=[];for(const o of e){if(o.document!==this)throw i.logger.warn(\"Cannot create a patch using events from a different document, event had \",o.document,\" we are \",this),new Error(\"Cannot create a patch using events from a different document\");s.push(o.json(t))}return{events:s,references:y._references_json(f.values(t))}}apply_json_patch(e,t=[],s){const o=e.references,n=e.events,r=y._instantiate_references_json(o,this._all_models);for(const e of n)switch(e.kind){case\"RootAdded\":case\"RootRemoved\":case\"ModelChanged\":{const t=e.model.id;if(t in this._all_models)r[t]=this._all_models[t];else if(!(t in r))throw i.logger.warn(\"Got an event for unknown model \",e.model),new Error(\"event model wasn't known\");break}}const _={},l={};for(const e in r){const t=r[e];e in this._all_models?_[e]=t:l[e]=t}y._initialize_references_json(o,_,l);for(const e of n)switch(e.kind){case\"MessageSent\":{const{msg_type:s,msg_data:o}=e;let n;if(void 0===o){if(1!=t.length)throw new Error(\"expected exactly one buffer\");{const[[,e]]=t;n=e}}else n=y._resolve_refs(o,_,l);this._trigger_on_message(s,n);break}case\"ModelChanged\":{const o=e.model.id;if(!(o in this._all_models))throw new Error(`Cannot apply patch to ${o} which is not in the document`);const n=this._all_models[o],i=e.attr;if(\"data\"===i&&\"ColumnDataSource\"===n.type){const[o,i]=c.decode_column_data(e.new,t);n.setv({_shapes:i,data:o},{setter_id:s})}else{const t=y._resolve_refs(e.new,_,l);n.setv({[i]:t},{setter_id:s})}break}case\"ColumnDataChanged\":{const o=e.column_source.id;if(!(o in this._all_models))throw new Error(`Cannot stream to ${o} which is not in the document`);const n=this._all_models[o],[i,r]=c.decode_column_data(e.new,t);if(null!=e.cols){for(const e in n.data)e in i||(i[e]=n.data[e]);for(const e in n._shapes)e in r||(r[e]=n._shapes[e])}n.setv({_shapes:r,data:i},{setter_id:s,check_eq:!1});break}case\"ColumnsStreamed\":{const t=e.column_source.id;if(!(t in this._all_models))throw new Error(`Cannot stream to ${t} which is not in the document`);const o=this._all_models[t];if(!(o instanceof v.ColumnDataSource))throw new Error(\"Cannot stream to non-ColumnDataSource\");const n=e.data,i=e.rollover;o.stream(n,i,s);break}case\"ColumnsPatched\":{const t=e.column_source.id;if(!(t in this._all_models))throw new Error(`Cannot patch ${t} which is not in the document`);const o=this._all_models[t];if(!(o instanceof v.ColumnDataSource))throw new Error(\"Cannot patch non-ColumnDataSource\");const n=e.patches;o.patch(n,s);break}case\"RootAdded\":{const t=r[e.model.id];this.add_root(t,s);break}case\"RootRemoved\":{const t=r[e.model.id];this.remove_root(t,s);break}case\"TitleChanged\":this.set_title(e.title,s);break;default:throw new Error(\"Unknown patch event \"+JSON.stringify(e))}}}s.Document=y,y.__name__=\"Document\"},\n",
" function _(e,r,s){Object.defineProperty(s,\"__esModule\",{value:!0});const o=e(1),t=e(8),d=e(13);s.overrides={};const i=new Map;s.Models=e=>{const r=s.overrides[e]||i.get(e);if(null==r)throw new Error(`Model '${e}' does not exist. This could be due to a widget or a custom model not being registered before first usage.`);return r},s.Models.register=(e,r)=>{s.overrides[e]=r},s.Models.unregister=e=>{delete s.overrides[e]},s.Models.register_models=(e,r=!1,s)=>{var o;if(null!=e)for(const l in e){const n=e[l];if(o=n,t.isObject(o)&&o.prototype instanceof d.HasProps){const e=n.__qualified__;r||!i.has(e)?i.set(e,n):null!=s?s(e):console.warn(`Model '${e}' was already registered`)}}},s.register_models=s.Models.register_models,s.Models.registered_names=()=>Array.from(i.keys());const l=o.__importStar(e(27));s.register_models(l)},\n",
" function _(n,t,r){Object.defineProperty(r,\"__esModule\",{value:!0});\n",
" // (c) 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n",
" // Underscore may be freely distributed under the MIT license.\n",
" const e=n(9),o=Object.prototype.toString;function i(n){return\"[object Number]\"===o.call(n)}function u(n){const t=typeof n;return\"function\"===t||\"object\"===t&&!!n}r.isBoolean=function(n){return!0===n||!1===n||\"[object Boolean]\"===o.call(n)},r.isNumber=i,r.isInteger=function(n){return i(n)&&isFinite(n)&&Math.floor(n)===n},r.isString=function(n){return\"[object String]\"===o.call(n)},r.isStrictNaN=function(n){return i(n)&&n!==+n},r.isFunction=function(n){return\"[object Function]\"===o.call(n)},r.isArray=function(n){return Array.isArray(n)},r.isArrayOf=function(n,t){return e.every(n,t)},r.isArrayableOf=function(n,t){for(let r=0,e=n.length;r0,\"'step' must be a positive number\"),null==t&&(t=n,n=0);const{max:r,ceil:i,abs:u}=Math,c=n<=t?e:-e,f=r(i(u(t-n)/e),0),s=Array(f);for(let t=0;t=0?t:n.length+t]},e.zip=function(...n){if(0==n.length)return[];const t=i.min(n.map(n=>n.length)),e=n.length,r=new Array(t);for(let o=0;on.length)),r=Array(e);for(let n=0;nn[t])},e.argmax=function(n){return i.max_by(l(n.length),t=>n[t])},e.sort_by=function(n,t){const e=n.map((n,e)=>({value:n,index:e,key:t(n)}));return e.sort((n,t)=>{const e=n.key,r=t.key;if(e!==r){if(e>r||void 0===e)return 1;if(en.value)},e.uniq=a,e.uniq_by=function(n,t){const e=[],r=[];for(const o of n){const n=t(o);s(r,n)||(r.push(n),e.push(o))}return e},e.union=function(...n){return a(f(n))},e.intersection=function(n,...t){const e=[];n:for(const r of n)if(!s(e,r)){for(const n of t)if(!s(n,r))continue n;e.push(r)}return e},e.difference=function(n,...t){const e=f(t);return n.filter(n=>!s(e,n))},e.remove_at=function(n,t){const e=c(n);return e.splice(t,1),e},e.remove_by=function(n,t){for(let e=0;e2*Math.PI;)n-=2*Math.PI;return n}function o(n,t){return e(n-t)}function a(){return Math.random()}Object.defineProperty(r,\"__esModule\",{value:!0}),r.angle_norm=e,r.angle_dist=o,r.angle_between=function(n,t,r,a){const u=o(t,r);if(0==u)return!1;if(u==2*Math.PI)return!0;const f=e(n),i=o(t,f)<=u&&o(f,r)<=u;return 0==a?i:!i},r.random=a,r.randomIn=function(n,t){return null==t&&(t=n,n=0),n+Math.floor(Math.random()*(t-n+1))},r.atan2=function(n,t){return Math.atan2(t[1]-n[1],t[0]-n[0])},r.rnorm=function(n,t){let r,e;for(;r=a(),e=a(),e=(2*e-1)*Math.sqrt(1/Math.E*2),!(-4*r*r*Math.log(r)>=e*e););let o=e/r;return o=n+t*o,o},r.clamp=function(n,t,r){return n>r?r:no&&(t=o),null==e||e>o-t?e=o-t:e<0&&(e=0);const u=o-e+r.length,i=new n.constructor(u);let f=0;for(;f0?0:r-1;for(;o>=0&&oe&&(e=t);return e},e.max_by=function(n,t){if(0==n.length)throw new Error(\"max_by() called with an empty array\");let e=n[0],r=t(e);for(let o=1,u=n.length;or&&(e=u,r=i)}return e},e.sum=function(n){let t=0;for(let e=0,r=n.length;et[r]=n+e,0),t},e.every=function(n,t){for(let e=0,r=n.length;e_.copy(t):()=>l.clone(t):()=>t}static define(t){for(const e in t){const s=t[e];if(null!=this.prototype.props[e])throw new Error(`attempted to redefine property '${this.prototype.type}.${e}'`);if(null!=this.prototype[e])throw new Error(`attempted to redefine attribute '${this.prototype.type}.${e}'`);Object.defineProperty(this.prototype,e,{get(){return this.getv(e)},set(t){return this.setv({[e]:t}),this},configurable:!1,enumerable:!0});const[i,n,r]=s,o={type:i,default_value:this._fix_default(n,e),internal:r||!1},c=l.clone(this.prototype.props);c[e]=o,this.prototype.props=c}}static internal(t){const e={};for(const s in t){const i=t[s],[n,r]=i;e[s]=[n,r,!0]}this.define(e)}static mixin(...t){this.define(r.create(t));const e=this.prototype.mixins.concat(t);this.prototype.mixins=e}static mixins(t){this.mixin(...t)}static override(t){for(const e in t){const s=this._fix_default(t[e],e),i=this.prototype.props[e];if(null==i)throw new Error(`attempted to override nonexistent '${this.prototype.type}.${e}'`);const n=l.clone(this.prototype.props);n[e]=Object.assign(Object.assign({},i),{default_value:s}),this.prototype.props=n}}toString(){return`${this.type}(${this.id})`}finalize(){for(const t in this.properties){const e=this.properties[t];e.update(),null!=e.spec.transform&&this.connect(e.spec.transform.change,()=>this.transformchange.emit())}this.initialize(),this.connect_signals()}initialize(){}connect_signals(){}disconnect_signals(){n.Signal.disconnectReceiver(this)}destroy(){this.disconnect_signals(),this.destroyed.emit()}clone(){return new this.constructor(this.attributes)}_setv(t,e){const s=e.check_eq,i=e.silent,n=[],r=this._changing;this._changing=!0;const o=this.attributes;for(const e in t){const i=t[e];!1!==s&&p.isEqual(o[e],i)||n.push(e),o[e]=i}if(!i){n.length>0&&(this._pending=!0);for(let t=0;tn.signal===t&&n.slot===e&&n.context===s)}const a=new s.Set;function f(n){0===a.size&&l.defer(h),a.add(n)}function h(){a.forEach(n=>{i.remove_by(n,n=>null==n.signal)}),a.clear()}},\n",
" function _(t,s,e){Object.defineProperty(e,\"__esModule\",{value:!0});const i=t(9),n=t(16),r=t(8);class o{constructor(){this._dict={}}_existing(t){return t in this._dict?this._dict[t]:null}add_value(t,s){const e=this._existing(t);null==e?this._dict[t]=s:r.isArray(e)?e.push(s):this._dict[t]=[e,s]}remove_value(t,s){const e=this._existing(t);if(r.isArray(e)){const n=i.difference(e,[s]);n.length>0?this._dict[t]=n:delete this._dict[t]}else n.isEqual(e,s)&&delete this._dict[t]}get_one(t,s){const e=this._existing(t);if(r.isArray(e)){if(1===e.length)return e[0];throw new Error(s)}return e}}e.MultiDict=o,o.__name__=\"MultiDict\";class a{constructor(t){if(null==t)this._values=[];else if(t instanceof a)this._values=i.copy(t._values);else{this._values=[];for(const s of t)this.add(s)}}get values(){return i.copy(this._values).sort()}toString(){return`Set([${this.values.join(\",\")}])`}get size(){return this._values.length}has(t){return-1!==this._values.indexOf(t)}add(t){this.has(t)||this._values.push(t)}remove(t){const s=this._values.indexOf(t);-1!==s&&this._values.splice(s,1)}toggle(t){const s=this._values.indexOf(t);-1===s?this._values.push(t):this._values.splice(s,1)}clear(){this._values=[]}union(t){return t=new a(t),new a(this._values.concat(t._values))}intersect(t){t=new a(t);const s=new a;for(const e of t._values)this.has(e)&&t.has(e)&&s.add(e);return s}diff(t){t=new a(t);const s=new a;for(const e of this._values)t.has(e)||s.add(e);return s}forEach(t,s){for(const e of this._values)t.call(s||this,e,e,this)}}e.Set=a,a.__name__=\"Set\";class h{constructor(t,s,e){this.nrows=t,this.ncols=s,this._matrix=new Array(t);for(let i=0;it(this.at(s,e),s,e))}apply(t){const s=h.from(t),{nrows:e,ncols:i}=this;if(e==s.nrows&&i==s.ncols)return new h(e,i,(t,e)=>s.at(t,e)(this.at(t,e),t,e));throw new Error(\"dimensions don't match\")}to_sparse(){const t=[];for(let s=0;st.length));return new h(s,e,(s,e)=>t[s][e])}}}e.Matrix=h,h.__name__=\"Matrix\"},\n",
" function _(t,e,n){Object.defineProperty(n,\"__esModule\",{value:!0});\n",
" // (c) 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n",
" // Underscore may be freely distributed under the MIT license.\n",
" const r=t(8),o=Object.prototype.toString;n.isEqual=function(t,e){return function t(e,n,c,u){if(e===n)return 0!==e||1/e==1/n;if(null==e||null==n)return e===n;const i=o.call(e);if(i!==o.call(n))return!1;switch(i){case\"[object RegExp]\":case\"[object String]\":return\"\"+e==\"\"+n;case\"[object Number]\":return+e!=+e?+n!=+n:0==+e?1/+e==1/n:+e==+n;case\"[object Date]\":case\"[object Boolean]\":return+e==+n}const s=\"[object Array]\"===i;if(!s){if(\"object\"!=typeof e||\"object\"!=typeof n)return!1;const t=e.constructor,o=n.constructor;if(t!==o&&!(r.isFunction(t)&&t instanceof t&&r.isFunction(o)&&o instanceof o)&&\"constructor\"in e&&\"constructor\"in n)return!1}u=u||[];let f=(c=c||[]).length;for(;f--;)if(c[f]===e)return u[f]===n;if(c.push(e),u.push(n),s){if(f=e.length,f!==n.length)return!1;for(;f--;)if(!t(e[f],n[f],c,u))return!1}else{const r=Object.keys(e);let o;if(f=r.length,Object.keys(n).length!==f)return!1;for(;f--;)if(o=r[f],!n.hasOwnProperty(o)||!t(e[o],n[o],c,u))return!1}return c.pop(),u.pop(),!0}(t,e)}},\n",
" function _(n,e,t){Object.defineProperty(t,\"__esModule\",{value:!0}),t.delay=\n",
" // (c) 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n",
" // Underscore may be freely distributed under the MIT license.\n",
" function(n,e){return setTimeout(n,e)};const u=\"function\"==typeof requestAnimationFrame?requestAnimationFrame:setImmediate;t.defer=function(n){return new Promise(e=>{u(()=>e(n()))})},t.throttle=function(n,e,t={}){let u,o,i,r=null,l=0;const c=function(){l=!1===t.leading?0:Date.now(),r=null,i=n.apply(u,o),r||(u=o=null)};return function(){const a=Date.now();l||!1!==t.leading||(l=a);const f=e-(a-l);return u=this,o=arguments,f<=0||f>e?(r&&(clearTimeout(r),r=null),l=a,i=n.apply(u,o),r||(u=o=null)):r||!1===t.trailing||(r=setTimeout(c,f)),i}},t.once=function(n){let e,t=!1;return function(){return t||(t=!0,e=n()),e}}},\n",
" function _(e,t,n){Object.defineProperty(n,\"__esModule\",{value:!0});const l=e(1).__importStar(e(19)),c=e(23);function o(e,t){const n={};for(const l in e){const c=e[l];n[t+l]=c}return n}const a={line_color:[l.ColorSpec,\"black\"],line_width:[l.NumberSpec,1],line_alpha:[l.NumberSpec,1],line_join:[l.LineJoin,\"bevel\"],line_cap:[l.LineCap,\"butt\"],line_dash:[l.Array,[]],line_dash_offset:[l.Number,0]};n.line=(e=\"\")=>o(a,e);const r={fill_color:[l.ColorSpec,\"gray\"],fill_alpha:[l.NumberSpec,1]};n.fill=(e=\"\")=>o(r,e);const i={hatch_color:[l.ColorSpec,\"black\"],hatch_alpha:[l.NumberSpec,1],hatch_scale:[l.NumberSpec,12],hatch_pattern:[l.StringSpec,null],hatch_weight:[l.NumberSpec,1],hatch_extra:[l.Any,{}]};n.hatch=(e=\"\")=>o(i,e);const _={text_font:[l.Font,\"helvetica\"],text_font_size:[l.FontSizeSpec,\"12pt\"],text_font_style:[l.FontStyle,\"normal\"],text_color:[l.ColorSpec,\"#444444\"],text_alpha:[l.NumberSpec,1],text_align:[l.TextAlign,\"left\"],text_baseline:[l.TextBaseline,\"bottom\"],text_line_height:[l.Number,1.2]};n.text=(e=\"\")=>o(_,e),n.create=function(e){const t={};for(const l of e){const[e,o]=l.split(\":\");let a;switch(e){case\"line\":a=n.line;break;case\"fill\":a=n.fill;break;case\"hatch\":a=n.hatch;break;case\"text\":a=n.text;break;default:throw new Error(`Unknown property mixin kind '${e}'`)}c.extend(t,a(o))}return t}},\n",
" function _(e,t,n){Object.defineProperty(n,\"__esModule\",{value:!0});const i=e(1),s=e(14),a=i.__importStar(e(20)),r=e(9),o=e(12),l=e(21),c=e(8);function _(e){try{return JSON.stringify(e)}catch(t){return e.toString()}}function u(e){return c.isPlainObject(e)&&(void 0===e.value?0:1)+(void 0===e.field?0:1)+(void 0===e.expr?0:1)==1}s.Signal,n.isSpec=u;class d extends(s.Signalable()){constructor(e,t,n){super(),this.obj=e,this.attr=t,this.default_value=n,this.optional=!1,this.change=new s.Signal0(this.obj,\"change\"),this._init(),this.connect(this.change,()=>this._init())}update(){this._init()}init(){}transform(e){return e}validate(e){if(!this.valid(e))throw new Error(`${this.obj.type}.${this.attr} given invalid value: ${_(e)}`)}valid(e){return!0}value(e=!0){if(void 0===this.spec.value)throw new Error(\"attempted to retrieve property value for property without value specification\");let t=this.transform([this.spec.value])[0];return null!=this.spec.transform&&e&&(t=this.spec.transform.compute(t)),t}_init(){const e=this.obj,t=this.attr;let n=e.getv(t);if(void 0===n){const i=this.default_value;n=void 0!==i?i(e):null,e.setv({[t]:n},{silent:!0,defaults:!0})}c.isArray(n)?this.spec={value:n}:u(n)?this.spec=n:this.spec={value:n},null!=this.spec.value&&this.validate(this.spec.value),this.init()}toString(){return`Prop(${this.obj}.${this.attr}, spec: ${_(this.spec)})`}}n.Property=d,d.__name__=\"Property\";class p extends d{}n.Any=p,p.__name__=\"Any\";class h extends d{valid(e){return c.isArray(e)||e instanceof Float64Array}}n.Array=h,h.__name__=\"Array\";class m extends d{valid(e){return c.isBoolean(e)}}n.Boolean=m,m.__name__=\"Boolean\";class S extends d{valid(e){return c.isString(e)&&l.is_color(e)}}n.Color=S,S.__name__=\"Color\";class g extends d{}n.Instance=g,g.__name__=\"Instance\";class v extends d{valid(e){return c.isNumber(e)}}n.Number=v,v.__name__=\"Number\";class x extends v{valid(e){return c.isNumber(e)&&(0|e)==e}}n.Int=x,x.__name__=\"Int\";class f extends v{}n.Angle=f,f.__name__=\"Angle\";class y extends v{valid(e){return c.isNumber(e)&&0<=e&&e<=1}}n.Percent=y,y.__name__=\"Percent\";class P extends d{valid(e){return c.isString(e)}}n.String=P,P.__name__=\"String\";class L extends P{}n.FontSize=L,L.__name__=\"FontSize\";class T extends P{}n.Font=T,T.__name__=\"Font\";class A extends d{valid(e){return c.isString(e)&&r.includes(this.enum_values,e)}}function b(e){return class extends A{get enum_values(){return e}}}n.EnumProperty=A,A.__name__=\"EnumProperty\",n.Enum=b;class M extends A{get enum_values(){return a.Direction}transform(e){const t=new Uint8Array(e.length);for(let n=0;ne*Math.PI/180)),e=o.map(e,e=>-e),super.transform(e)}}n.AngleSpec=O,O.__name__=\"AngleSpec\";class U extends C{}n.BooleanSpec=U,U.__name__=\"BooleanSpec\";class w extends C{}n.ColorSpec=w,w.__name__=\"ColorSpec\";class R extends C{}n.CoordinateSpec=R,R.__name__=\"CoordinateSpec\";class F extends C{}n.CoordinateSeqSpec=F,F.__name__=\"CoordinateSeqSpec\";class N extends k{get default_units(){return\"data\"}get valid_units(){return a.SpatialUnits}}n.DistanceSpec=N,N.__name__=\"DistanceSpec\";class E extends C{}n.FontSizeSpec=E,E.__name__=\"FontSizeSpec\";class $ extends C{}n.MarkerSpec=$,$.__name__=\"MarkerSpec\";class j extends C{}n.NumberSpec=j,j.__name__=\"NumberSpec\";class H extends C{}n.StringSpec=H,H.__name__=\"StringSpec\";class z extends C{}n.NullStringSpec=z,z.__name__=\"NullStringSpec\"},\n",
" function _(e,t,n){Object.defineProperty(n,\"__esModule\",{value:!0}),n.Align=[\"start\",\"center\",\"end\"],n.Anchor=[\"top_left\",\"top_center\",\"top_right\",\"center_left\",\"center\",\"center_right\",\"bottom_left\",\"bottom_center\",\"bottom_right\"],n.AngleUnits=[\"deg\",\"rad\"],n.BoxOrigin=[\"corner\",\"center\"],n.ButtonType=[\"default\",\"primary\",\"success\",\"warning\",\"danger\"],n.CalendarPosition=[\"auto\",\"above\",\"below\"],n.Dimension=[\"width\",\"height\"],n.Dimensions=[\"width\",\"height\",\"both\"],n.Direction=[\"clock\",\"anticlock\"],n.Distribution=[\"uniform\",\"normal\"],n.FontStyle=[\"normal\",\"italic\",\"bold\",\"bold italic\"],n.HatchPatternType=[\"blank\",\"dot\",\"ring\",\"horizontal_line\",\"vertical_line\",\"cross\",\"horizontal_dash\",\"vertical_dash\",\"spiral\",\"right_diagonal_line\",\"left_diagonal_line\",\"diagonal_cross\",\"right_diagonal_dash\",\"left_diagonal_dash\",\"horizontal_wave\",\"vertical_wave\",\"criss_cross\",\" \",\".\",\"o\",\"-\",\"|\",\"+\",'\"',\":\",\"@\",\"/\",\"\\\\\",\"x\",\",\",\"`\",\"v\",\">\",\"*\"],n.HTTPMethod=[\"POST\",\"GET\"],n.HexTileOrientation=[\"pointytop\",\"flattop\"],n.HoverMode=[\"mouse\",\"hline\",\"vline\"],n.LatLon=[\"lat\",\"lon\"],n.LegendClickPolicy=[\"none\",\"hide\",\"mute\"],n.LegendLocation=n.Anchor,n.LineCap=[\"butt\",\"round\",\"square\"],n.LineJoin=[\"miter\",\"round\",\"bevel\"],n.LinePolicy=[\"prev\",\"next\",\"nearest\",\"interp\",\"none\"],n.Location=[\"above\",\"below\",\"left\",\"right\"],n.Logo=[\"normal\",\"grey\"],n.MarkerType=[\"asterisk\",\"circle\",\"circle_cross\",\"circle_x\",\"cross\",\"dash\",\"diamond\",\"diamond_cross\",\"hex\",\"inverted_triangle\",\"square\",\"square_cross\",\"square_x\",\"triangle\",\"x\"],n.Orientation=[\"vertical\",\"horizontal\"],n.OutputBackend=[\"canvas\",\"svg\",\"webgl\"],n.PaddingUnits=[\"percent\",\"absolute\"],n.Place=[\"above\",\"below\",\"left\",\"right\",\"center\"],n.PointPolicy=[\"snap_to_data\",\"follow_mouse\",\"none\"],n.RadiusDimension=[\"x\",\"y\",\"max\",\"min\"],n.RenderLevel=[\"image\",\"underlay\",\"glyph\",\"annotation\",\"overlay\"],n.RenderMode=[\"canvas\",\"css\"],n.ResetPolicy=[\"standard\",\"event_only\"],n.RoundingFunction=[\"round\",\"nearest\",\"floor\",\"rounddown\",\"ceil\",\"roundup\"],n.Side=[\"above\",\"below\",\"left\",\"right\"],n.SizingMode=[\"stretch_width\",\"stretch_height\",\"stretch_both\",\"scale_width\",\"scale_height\",\"scale_both\",\"fixed\"],n.Sort=[\"ascending\",\"descending\"],n.SpatialUnits=[\"screen\",\"data\"],n.StartEnd=[\"start\",\"end\"],n.StepMode=[\"after\",\"before\",\"center\"],n.TapBehavior=[\"select\",\"inspect\"],n.TextAlign=[\"left\",\"right\",\"center\"],n.TextBaseline=[\"top\",\"middle\",\"bottom\",\"alphabetic\",\"hanging\",\"ideographic\"],n.TextureRepetition=[\"repeat\",\"repeat_x\",\"repeat_y\",\"no_repeat\"],n.TickLabelOrientation=[\"vertical\",\"horizontal\",\"parallel\",\"normal\"],n.TooltipAttachment=[\"horizontal\",\"vertical\",\"left\",\"right\",\"above\",\"below\"],n.UpdateMode=[\"replace\",\"append\"],n.VerticalAlign=[\"top\",\"middle\",\"bottom\"]},\n",
" function _(e,r,t){Object.defineProperty(t,\"__esModule\",{value:!0});const n=e(22),o=e(9);function l(e){const r=Number(e).toString(16);return 1==r.length?`0${r}`:r}function a(e){if(0==(e+=\"\").indexOf(\"#\"))return e;if(n.is_svg_color(e))return n.svg_colors[e];if(0==e.indexOf(\"rgb\")){const r=e.replace(/^rgba?\\(|\\s+|\\)$/g,\"\").split(\",\");let t=r.slice(0,3).map(l).join(\"\");return 4==r.length&&(t+=l(Math.floor(255*parseFloat(r[3])))),`#${t.slice(0,8)}`}return e}function c(e){let r;switch(e.substring(0,4)){case\"rgba\":r={start:\"rgba(\",len:4,alpha:!0};break;case\"rgb(\":r={start:\"rgb(\",len:3,alpha:!1};break;default:return!1}if(new RegExp(\".*?(\\\\.).*(,)\").test(e))throw new Error(`color expects integers for rgb in rgb/rgba tuple, received ${e}`);const t=e.replace(r.start,\"\").replace(\")\",\"\").split(\",\").map(parseFloat);if(t.length!=r.len)throw new Error(`color expects rgba ${r.len}-tuple, received ${e}`);if(r.alpha&&!(0<=t[3]&&t[3]<=1))throw new Error(\"color expects rgba 4-tuple to have alpha value between 0 and 1\");if(o.includes(t.slice(0,3).map(e=>0<=e&&e<=255),!1))throw new Error(\"color expects rgb to have value between 0 and 255\");return!0}t.is_color=function(e){return n.is_svg_color(e.toLowerCase())||\"#\"==e.substring(0,1)||c(e)},t.rgb2hex=function(e,r,t){return`#${l(255&e)}${l(255&r)}${l(255&t)}`},t.color2hex=a,t.color2rgba=function(e,r=1){if(!e)return[0,0,0,0];let t=a(e);t=t.replace(/ |#/g,\"\"),t.length<=4&&(t=t.replace(/(.)/g,\"$1$1\"));const n=t.match(/../g).map(e=>parseInt(e,16)/255);for(;n.length<3;)n.push(0);return n.length<4&&n.push(r),n.slice(0,4)},t.valid_rgb=c},\n",
" function _(e,F,r){Object.defineProperty(r,\"__esModule\",{value:!0}),r.svg_colors={indianred:\"#CD5C5C\",lightcoral:\"#F08080\",salmon:\"#FA8072\",darksalmon:\"#E9967A\",lightsalmon:\"#FFA07A\",crimson:\"#DC143C\",red:\"#FF0000\",firebrick:\"#B22222\",darkred:\"#8B0000\",pink:\"#FFC0CB\",lightpink:\"#FFB6C1\",hotpink:\"#FF69B4\",deeppink:\"#FF1493\",mediumvioletred:\"#C71585\",palevioletred:\"#DB7093\",coral:\"#FF7F50\",tomato:\"#FF6347\",orangered:\"#FF4500\",darkorange:\"#FF8C00\",orange:\"#FFA500\",gold:\"#FFD700\",yellow:\"#FFFF00\",lightyellow:\"#FFFFE0\",lemonchiffon:\"#FFFACD\",lightgoldenrodyellow:\"#FAFAD2\",papayawhip:\"#FFEFD5\",moccasin:\"#FFE4B5\",peachpuff:\"#FFDAB9\",palegoldenrod:\"#EEE8AA\",khaki:\"#F0E68C\",darkkhaki:\"#BDB76B\",lavender:\"#E6E6FA\",thistle:\"#D8BFD8\",plum:\"#DDA0DD\",violet:\"#EE82EE\",orchid:\"#DA70D6\",fuchsia:\"#FF00FF\",magenta:\"#FF00FF\",mediumorchid:\"#BA55D3\",mediumpurple:\"#9370DB\",blueviolet:\"#8A2BE2\",darkviolet:\"#9400D3\",darkorchid:\"#9932CC\",darkmagenta:\"#8B008B\",purple:\"#800080\",indigo:\"#4B0082\",slateblue:\"#6A5ACD\",darkslateblue:\"#483D8B\",mediumslateblue:\"#7B68EE\",greenyellow:\"#ADFF2F\",chartreuse:\"#7FFF00\",lawngreen:\"#7CFC00\",lime:\"#00FF00\",limegreen:\"#32CD32\",palegreen:\"#98FB98\",lightgreen:\"#90EE90\",mediumspringgreen:\"#00FA9A\",springgreen:\"#00FF7F\",mediumseagreen:\"#3CB371\",seagreen:\"#2E8B57\",forestgreen:\"#228B22\",green:\"#008000\",darkgreen:\"#006400\",yellowgreen:\"#9ACD32\",olivedrab:\"#6B8E23\",olive:\"#808000\",darkolivegreen:\"#556B2F\",mediumaquamarine:\"#66CDAA\",darkseagreen:\"#8FBC8F\",lightseagreen:\"#20B2AA\",darkcyan:\"#008B8B\",teal:\"#008080\",aqua:\"#00FFFF\",cyan:\"#00FFFF\",lightcyan:\"#E0FFFF\",paleturquoise:\"#AFEEEE\",aquamarine:\"#7FFFD4\",turquoise:\"#40E0D0\",mediumturquoise:\"#48D1CC\",darkturquoise:\"#00CED1\",cadetblue:\"#5F9EA0\",steelblue:\"#4682B4\",lightsteelblue:\"#B0C4DE\",powderblue:\"#B0E0E6\",lightblue:\"#ADD8E6\",skyblue:\"#87CEEB\",lightskyblue:\"#87CEFA\",deepskyblue:\"#00BFFF\",dodgerblue:\"#1E90FF\",cornflowerblue:\"#6495ED\",royalblue:\"#4169E1\",blue:\"#0000FF\",mediumblue:\"#0000CD\",darkblue:\"#00008B\",navy:\"#000080\",midnightblue:\"#191970\",cornsilk:\"#FFF8DC\",blanchedalmond:\"#FFEBCD\",bisque:\"#FFE4C4\",navajowhite:\"#FFDEAD\",wheat:\"#F5DEB3\",burlywood:\"#DEB887\",tan:\"#D2B48C\",rosybrown:\"#BC8F8F\",sandybrown:\"#F4A460\",goldenrod:\"#DAA520\",darkgoldenrod:\"#B8860B\",peru:\"#CD853F\",chocolate:\"#D2691E\",saddlebrown:\"#8B4513\",sienna:\"#A0522D\",brown:\"#A52A2A\",maroon:\"#800000\",white:\"#FFFFFF\",snow:\"#FFFAFA\",honeydew:\"#F0FFF0\",mintcream:\"#F5FFFA\",azure:\"#F0FFFF\",aliceblue:\"#F0F8FF\",ghostwhite:\"#F8F8FF\",whitesmoke:\"#F5F5F5\",seashell:\"#FFF5EE\",beige:\"#F5F5DC\",oldlace:\"#FDF5E6\",floralwhite:\"#FFFAF0\",ivory:\"#FFFFF0\",antiquewhite:\"#FAEBD7\",linen:\"#FAF0E6\",lavenderblush:\"#FFF0F5\",mistyrose:\"#FFE4E1\",gainsboro:\"#DCDCDC\",lightgray:\"#D3D3D3\",lightgrey:\"#D3D3D3\",silver:\"#C0C0C0\",darkgray:\"#A9A9A9\",darkgrey:\"#A9A9A9\",gray:\"#808080\",grey:\"#808080\",dimgray:\"#696969\",dimgrey:\"#696969\",lightslategray:\"#778899\",lightslategrey:\"#778899\",slategray:\"#708090\",slategrey:\"#708090\",darkslategray:\"#2F4F4F\",darkslategrey:\"#2F4F4F\",black:\"#000000\"},r.is_svg_color=function(e){return e in r.svg_colors}},\n",
" function _(e,t,n){Object.defineProperty(n,\"__esModule\",{value:!0});const c=e(9);function o(e){return Object.keys(e).length}n.keys=Object.keys,n.extend=Object.assign,n.values=void 0!==Object.values?Object.values:e=>{const t=Object.keys(e),n=t.length,c=new Array(n);for(let o=0;o\"'`])/g,t=>{switch(t){case\"&\":return\"&\";case\"<\":return\"<\";case\">\":return\">\";case'\"':return\""\";case\"'\":return\"'\";case\"`\":return\"`\";default:return t}})},r.unescape=function(t){return t.replace(/&(amp|lt|gt|quot|#x27|#x60);/g,(t,e)=>{switch(e){case\"amp\":return\"&\";case\"lt\":return\"<\";case\"gt\":return\">\";case\"quot\":return'\"';case\"#x27\":return\"'\";case\"#x60\":return\"`\";default:return e}})},r.use_strict=function(t){return`'use strict';\\n${t}`}},\n",
" function _(e,t,s){Object.defineProperty(s,\"__esModule\",{value:!0});class n{constructor(){this._dev=!1}set dev(e){this._dev=e}get dev(){return this._dev}}s.Settings=n,n.__name__=\"Settings\",s.settings=new n},\n",
" function _(t,_,r){Object.defineProperty(r,\"__esModule\",{value:!0});const e=t(1);e.__exportStar(t(28),r),e.__exportStar(t(147),r),e.__exportStar(t(174),r),e.__exportStar(t(178),r),e.__exportStar(t(193),r),e.__exportStar(t(197),r),e.__exportStar(t(203),r),e.__exportStar(t(207),r),e.__exportStar(t(237),r),e.__exportStar(t(240),r),e.__exportStar(t(242),r),e.__exportStar(t(255),r),e.__exportStar(t(122),r),e.__exportStar(t(261),r),e.__exportStar(t(265),r),e.__exportStar(t(288),r),e.__exportStar(t(289),r),e.__exportStar(t(290),r),e.__exportStar(t(291),r),e.__exportStar(t(292),r),e.__exportStar(t(297),r),e.__exportStar(t(299),r),e.__exportStar(t(309),r),e.__exportStar(t(313),r)},\n",
" function _(a,e,o){Object.defineProperty(o,\"__esModule\",{value:!0});var r=a(29);o.Annotation=r.Annotation;var n=a(71);o.Arrow=n.Arrow;var t=a(72);o.ArrowHead=t.ArrowHead;var v=a(72);o.OpenHead=v.OpenHead;var l=a(72);o.NormalHead=l.NormalHead;var d=a(72);o.TeeHead=d.TeeHead;var i=a(72);o.VeeHead=i.VeeHead;var A=a(104);o.Band=A.Band;var H=a(105);o.BoxAnnotation=H.BoxAnnotation;var T=a(107);o.ColorBar=T.ColorBar;var p=a(132);o.Label=p.Label;var L=a(134);o.LabelSet=L.LabelSet;var b=a(135);o.Legend=b.Legend;var B=a(136);o.LegendItem=B.LegendItem;var S=a(138);o.PolyAnnotation=S.PolyAnnotation;var P=a(139);o.Slope=P.Slope;var g=a(140);o.Span=g.Span;var m=a(133);o.TextAnnotation=m.TextAnnotation;var w=a(141);o.Title=w.Title;var x=a(142);o.ToolbarPanel=x.ToolbarPanel;var s=a(143);o.Tooltip=s.Tooltip;var u=a(146);o.Whisker=u.Whisker},\n",
" function _(t,e,n){Object.defineProperty(n,\"__esModule\",{value:!0});const i=t(1).__importStar(t(30)),s=t(23),o=t(63);class _ extends o.RendererView{get panel(){return this.layout}get_size(){if(this.model.visible){const{width:t,height:e}=this._get_size();return{width:Math.round(t),height:Math.round(e)}}return{width:0,height:0}}connect_signals(){super.connect_signals();const t=this.model.properties;this.on_change(t.visible,()=>this.plot_view.request_layout())}_get_size(){throw new Error(\"not implemented\")}get ctx(){return this.plot_view.canvas_view.ctx}set_data(t){const e=this.model.materialize_dataspecs(t);if(s.extend(this,e),this.plot_model.use_map){const t=this;null!=t._x&&([t._x,t._y]=i.project_xy(t._x,t._y)),null!=t._xs&&([t._xs,t._ys]=i.project_xsys(t._xs,t._ys))}}get needs_clip(){return null==this.layout}serializable_state(){const t=super.serializable_state();return null==this.layout?t:Object.assign(Object.assign({},t),{bbox:this.layout.bbox.box})}}n.AnnotationView=_,_.__name__=\"AnnotationView\";class a extends o.Renderer{constructor(t){super(t)}static init_Annotation(){this.override({level:\"annotation\"})}}n.Annotation=a,a.__name__=\"Annotation\",a.init_Annotation()},\n",
" function _(t,n,e){Object.defineProperty(e,\"__esModule\",{value:!0});const r=t(1),o=r.__importDefault(t(31)),a=r.__importDefault(t(32)),c=new a.default(\"GOOGLE\"),l=new a.default(\"WGS84\");e.wgs84_mercator=o.default(l,c);const u={lon:[-20026376.39,20026376.39],lat:[-20048966.1,20048966.1]},f={lon:[-180,180],lat:[-85.06,85.06]};function s(t,n){const r=Math.min(t.length,n.length),o=new Array(r),a=new Array(r);for(let c=0;c2?void 0!==e.name&&\"geocent\"===e.name||void 0!==n.name&&\"geocent\"===n.name?\"number\"==typeof r.z?[r.x,r.y,r.z].concat(t.splice(3)):[r.x,r.y,t[2]].concat(t.splice(3)):[r.x,r.y].concat(t.splice(2)):[r.x,r.y]):(o=a.default(e,n,t),2===(i=Object.keys(t)).length||i.forEach((function(r){if(void 0!==e.name&&\"geocent\"===e.name||void 0!==n.name&&\"geocent\"===n.name){if(\"x\"===r||\"y\"===r||\"z\"===r)return}else if(\"x\"===r||\"y\"===r)return;o[r]=t[r]})),o)}function u(e){return e instanceof o.default?e:e.oProj?e.oProj:o.default(e)}t.default=function(e,n,t){e=u(e);var r,o=!1;return void 0===n?(n=e,e=i,o=!0):(void 0!==n.x||Array.isArray(n))&&(t=n,n=e,e=i,o=!0),n=u(n),t?c(e,n,t):(r={forward:function(t){return c(e,n,t)},inverse:function(t){return c(n,e,t)}},o&&(r.oProj=n),r)}},\n",
" function _(e,t,a){Object.defineProperty(a,\"__esModule\",{value:!0});const s=e(1),i=s.__importDefault(e(33)),u=s.__importDefault(e(44)),l=s.__importDefault(e(45)),o=e(53),r=s.__importDefault(e(55)),f=s.__importDefault(e(56)),d=s.__importDefault(e(40));function p(e,t){if(!(this instanceof p))return new p(e);t=t||function(e){if(e)throw e};var a=i.default(e);if(\"object\"==typeof a){var s=p.projections.get(a.projName);if(s){if(a.datumCode&&\"none\"!==a.datumCode){var l=d.default(r.default,a.datumCode);l&&(a.datum_params=l.towgs84?l.towgs84.split(\",\"):null,a.ellps=l.ellipse,a.datumName=l.datumName?l.datumName:a.datumCode)}a.k0=a.k0||1,a.axis=a.axis||\"enu\",a.ellps=a.ellps||\"wgs84\";var m=o.sphere(a.a,a.b,a.rf,a.ellps,a.sphere),n=o.eccentricity(m.a,m.b,m.rf,a.R_A),h=a.datum||f.default(a.datumCode,a.datum_params,m.a,m.b,n.es,n.ep2);u.default(this,a),u.default(this,s),this.a=m.a,this.b=m.b,this.rf=m.rf,this.sphere=m.sphere,this.es=n.es,this.e=n.e,this.ep2=n.ep2,this.datum=h,this.init(),t(null,this)}else t(e)}else t(e)}p.projections=l.default,p.projections.start(),a.default=p},\n",
" function _(t,e,r){Object.defineProperty(r,\"__esModule\",{value:!0});const u=t(1),n=u.__importDefault(t(34)),f=u.__importDefault(t(41)),i=u.__importDefault(t(36)),a=u.__importDefault(t(40));var o=[\"PROJECTEDCRS\",\"PROJCRS\",\"GEOGCS\",\"GEOCCS\",\"PROJCS\",\"LOCAL_CS\",\"GEODCRS\",\"GEODETICCRS\",\"GEODETICDATUM\",\"ENGCRS\",\"ENGINEERINGCRS\"];var l=[\"3857\",\"900913\",\"3785\",\"102113\"];r.default=function(t){if(!function(t){return\"string\"==typeof t}(t))return t;if(function(t){return t in n.default}(t))return n.default[t];if(function(t){return o.some((function(e){return t.indexOf(e)>-1}))}(t)){var e=f.default(t);if(function(t){var e=a.default(t,\"authority\");if(e){var r=a.default(e,\"epsg\");return r&&l.indexOf(r)>-1}}(e))return n.default[\"EPSG:3857\"];var r=function(t){var e=a.default(t,\"extension\");if(e)return a.default(e,\"proj4\")}(e);return r?i.default(r):e}return function(t){return\"+\"===t[0]}(t)?i.default(t):void 0}},\n",
" function _(t,e,r){Object.defineProperty(r,\"__esModule\",{value:!0});const i=t(1),n=i.__importDefault(t(35)),f=i.__importDefault(t(36)),a=i.__importDefault(t(41));function l(t){var e=this;if(2===arguments.length){var r=arguments[1];\"string\"==typeof r?\"+\"===r.charAt(0)?l[t]=f.default(arguments[1]):l[t]=a.default(arguments[1]):l[t]=r}else if(1===arguments.length){if(Array.isArray(t))return t.map((function(t){Array.isArray(t)?l.apply(e,t):l(t)}));if(\"string\"==typeof t){if(t in l)return l[t]}else\"EPSG\"in t?l[\"EPSG:\"+t.EPSG]=t:\"ESRI\"in t?l[\"ESRI:\"+t.ESRI]=t:\"IAU2000\"in t?l[\"IAU2000:\"+t.IAU2000]=t:console.log(t);return}}n.default(l),r.default=l},\n",
" function _(e,t,l){Object.defineProperty(l,\"__esModule\",{value:!0}),l.default=function(e){e(\"EPSG:4326\",\"+title=WGS 84 (long/lat) +proj=longlat +ellps=WGS84 +datum=WGS84 +units=degrees\"),e(\"EPSG:4269\",\"+title=NAD83 (long/lat) +proj=longlat +a=6378137.0 +b=6356752.31414036 +ellps=GRS80 +datum=NAD83 +units=degrees\"),e(\"EPSG:3857\",\"+title=WGS 84 / Pseudo-Mercator +proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +no_defs\"),e.WGS84=e[\"EPSG:4326\"],e[\"EPSG:3785\"]=e[\"EPSG:3857\"],e.GOOGLE=e[\"EPSG:3857\"],e[\"EPSG:900913\"]=e[\"EPSG:3857\"],e[\"EPSG:102113\"]=e[\"EPSG:3857\"]}},\n",
" function _(t,n,o){Object.defineProperty(o,\"__esModule\",{value:!0});const e=t(1),a=t(37),u=e.__importDefault(t(38)),r=e.__importDefault(t(39)),i=e.__importDefault(t(40));o.default=function(t){var n,o,e,f={},l=t.split(\"+\").map((function(t){return t.trim()})).filter((function(t){return t})).reduce((function(t,n){var o=n.split(\"=\");return o.push(!0),t[o[0].toLowerCase()]=o[1],t}),{}),c={proj:\"projName\",datum:\"datumCode\",rf:function(t){f.rf=parseFloat(t)},lat_0:function(t){f.lat0=t*a.D2R},lat_1:function(t){f.lat1=t*a.D2R},lat_2:function(t){f.lat2=t*a.D2R},lat_ts:function(t){f.lat_ts=t*a.D2R},lon_0:function(t){f.long0=t*a.D2R},lon_1:function(t){f.long1=t*a.D2R},lon_2:function(t){f.long2=t*a.D2R},alpha:function(t){f.alpha=parseFloat(t)*a.D2R},lonc:function(t){f.longc=t*a.D2R},x_0:function(t){f.x0=parseFloat(t)},y_0:function(t){f.y0=parseFloat(t)},k_0:function(t){f.k0=parseFloat(t)},k:function(t){f.k0=parseFloat(t)},a:function(t){f.a=parseFloat(t)},b:function(t){f.b=parseFloat(t)},r_a:function(){f.R_A=!0},zone:function(t){f.zone=parseInt(t,10)},south:function(){f.utmSouth=!0},towgs84:function(t){f.datum_params=t.split(\",\").map((function(t){return parseFloat(t)}))},to_meter:function(t){f.to_meter=parseFloat(t)},units:function(t){f.units=t;var n=i.default(r.default,t);n&&(f.to_meter=n.to_meter)},from_greenwich:function(t){f.from_greenwich=t*a.D2R},pm:function(t){var n=i.default(u.default,t);f.from_greenwich=(n||parseFloat(t))*a.D2R},nadgrids:function(t){\"@null\"===t?f.datumCode=\"none\":f.nadgrids=t},axis:function(t){3===t.length&&-1!==\"ewnsud\".indexOf(t.substr(0,1))&&-1!==\"ewnsud\".indexOf(t.substr(1,1))&&-1!==\"ewnsud\".indexOf(t.substr(2,1))&&(f.axis=t)}};for(n in l)o=l[n],n in c?\"function\"==typeof(e=c[n])?e(o):f[e]=o:f[n]=o;return\"string\"==typeof f.datumCode&&\"WGS84\"!==f.datumCode&&(f.datumCode=f.datumCode.toLowerCase()),f}},\n",
" function _(P,_,e){Object.defineProperty(e,\"__esModule\",{value:!0}),e.PJD_3PARAM=1,e.PJD_7PARAM=2,e.PJD_WGS84=4,e.PJD_NODATUM=5,e.SEC_TO_RAD=484813681109536e-20,e.HALF_PI=Math.PI/2,e.SIXTH=.16666666666666666,e.RA4=.04722222222222222,e.RA6=.022156084656084655,e.EPSLN=1e-10,e.D2R=.017453292519943295,e.R2D=57.29577951308232,e.FORTPI=Math.PI/4,e.TWO_PI=2*Math.PI,e.SPI=3.14159265359},\n",
" function _(e,o,r){Object.defineProperty(r,\"__esModule\",{value:!0});var a={};r.default=a,a.greenwich=0,a.lisbon=-9.131906111111,a.paris=2.337229166667,a.bogota=-74.080916666667,a.madrid=-3.687938888889,a.rome=12.452333333333,a.bern=7.439583333333,a.jakarta=106.807719444444,a.ferro=-17.666666666667,a.brussels=4.367975,a.stockholm=18.058277777778,a.athens=23.7163375,a.oslo=10.722916666667},\n",
" function _(e,t,f){Object.defineProperty(f,\"__esModule\",{value:!0}),f.default={ft:{to_meter:.3048},\"us-ft\":{to_meter:1200/3937}}},\n",
" function _(e,r,t){Object.defineProperty(t,\"__esModule\",{value:!0});var o=/[\\s_\\-\\/\\(\\)]/g;t.default=function(e,r){if(e[r])return e[r];for(var t,a=Object.keys(e),n=r.toLowerCase().replace(o,\"\"),f=-1;++f0?90:-90),e.lat_ts=e.lat1)}(l),l}},\n",
" function _(t,e,r){Object.defineProperty(r,\"__esModule\",{value:!0}),r.default=function(t){return new a(t).output()};var i=/\\s/,s=/[A-Za-z]/,h=/[A-Za-z84]/,o=/[,\\]]/,n=/[\\d\\.E\\-\\+]/;function a(t){if(\"string\"!=typeof t)throw new Error(\"not a string\");this.text=t.trim(),this.level=0,this.place=0,this.root=null,this.stack=[],this.currentObject=null,this.state=1}a.prototype.readCharicter=function(){var t=this.text[this.place++];if(4!==this.state)for(;i.test(t);){if(this.place>=this.text.length)return;t=this.text[this.place++]}switch(this.state){case 1:return this.neutral(t);case 2:return this.keyword(t);case 4:return this.quoted(t);case 5:return this.afterquote(t);case 3:return this.number(t);case-1:return}},a.prototype.afterquote=function(t){if('\"'===t)return this.word+='\"',void(this.state=4);if(o.test(t))return this.word=this.word.trim(),void this.afterItem(t);throw new Error(\"havn't handled \\\"\"+t+'\" in afterquote yet, index '+this.place)},a.prototype.afterItem=function(t){return\",\"===t?(null!==this.word&&this.currentObject.push(this.word),this.word=null,void(this.state=1)):\"]\"===t?(this.level--,null!==this.word&&(this.currentObject.push(this.word),this.word=null),this.state=1,this.currentObject=this.stack.pop(),void(this.currentObject||(this.state=-1))):void 0},a.prototype.number=function(t){if(!n.test(t)){if(o.test(t))return this.word=parseFloat(this.word),void this.afterItem(t);throw new Error(\"havn't handled \\\"\"+t+'\" in number yet, index '+this.place)}this.word+=t},a.prototype.quoted=function(t){'\"'!==t?this.word+=t:this.state=5},a.prototype.keyword=function(t){if(h.test(t))this.word+=t;else{if(\"[\"===t){var e=[];return e.push(this.word),this.level++,null===this.root?this.root=e:this.currentObject.push(e),this.stack.push(this.currentObject),this.currentObject=e,void(this.state=1)}if(!o.test(t))throw new Error(\"havn't handled \\\"\"+t+'\" in keyword yet, index '+this.place);this.afterItem(t)}},a.prototype.neutral=function(t){if(s.test(t))return this.word=t,void(this.state=2);if('\"'===t)return this.word=\"\",void(this.state=4);if(n.test(t))return this.word=t,void(this.state=3);if(!o.test(t))throw new Error(\"havn't handled \\\"\"+t+'\" in neutral yet, index '+this.place);this.afterItem(t)},a.prototype.output=function(){for(;this.place90&&a*l.R2D<-90&&h*l.R2D>180&&h*l.R2D<-180)return null;if(Math.abs(Math.abs(a)-l.HALF_PI)<=l.EPSLN)return null;if(this.sphere)i=this.x0+this.a*this.k0*e.default(h-this.long0),s=this.y0+this.a*this.k0*Math.log(Math.tan(l.FORTPI+.5*a));else{var n=Math.sin(a),u=r.default(this.e,a,n);i=this.x0+this.a*this.k0*e.default(h-this.long0),s=this.y0-this.a*this.k0*Math.log(u)}return t.x=i,t.y=s,t}function f(t){var i,s,h=t.x-this.x0,a=t.y-this.y0;if(this.sphere)s=l.HALF_PI-2*Math.atan(Math.exp(-a/(this.a*this.k0)));else{var r=Math.exp(-a/(this.a*this.k0));if(-9999===(s=n.default(this.e,r)))return null}return i=e.default(this.long0+h/(this.a*this.k0)),t.x=i,t.y=s,t}s.init=u,s.forward=o,s.inverse=f,s.names=[\"Mercator\",\"Popular Visualisation Pseudo Mercator\",\"Mercator_1SP\",\"Mercator_Auxiliary_Sphere\",\"merc\"],s.default={init:u,forward:o,inverse:f,names:s.names}},\n",
" function _(e,t,n){Object.defineProperty(n,\"__esModule\",{value:!0}),n.default=function(e,t,n){var r=e*t;return n/Math.sqrt(1-r*r)}},\n",
" function _(e,t,u){Object.defineProperty(u,\"__esModule\",{value:!0});const n=e(1),a=e(37),f=n.__importDefault(e(49));u.default=function(e){return Math.abs(e)<=a.SPI?e:e-f.default(e)*a.TWO_PI}},\n",
" function _(e,n,t){Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=function(e){return e<0?-1:1}},\n",
" function _(t,e,n){Object.defineProperty(n,\"__esModule\",{value:!0});const a=t(37);n.default=function(t,e,n){var o=t*n,u=.5*t;return o=Math.pow((1-o)/(1+o),u),Math.tan(.5*(a.HALF_PI-e))/o}},\n",
" function _(t,a,e){Object.defineProperty(e,\"__esModule\",{value:!0});const n=t(37);e.default=function(t,a){for(var e,r,o=.5*t,u=n.HALF_PI-2*Math.atan(a),f=0;f<=15;f++)if(e=t*Math.sin(u),u+=r=n.HALF_PI-2*Math.atan(a*Math.pow((1-e)/(1+e),o))-u,Math.abs(r)<=1e-10)return u;return-9999}},\n",
" function _(e,n,i){function t(){}function r(e){return e}Object.defineProperty(i,\"__esModule\",{value:!0}),i.init=t,i.forward=r,i.inverse=r,i.names=[\"longlat\",\"identity\"],i.default={init:t,forward:r,inverse:r,names:i.names}},\n",
" function _(e,t,r){Object.defineProperty(r,\"__esModule\",{value:!0});const a=e(1),n=e(37),f=a.__importStar(e(54)),u=a.__importDefault(e(40));r.eccentricity=function(e,t,r,a){var f=e*e,u=t*t,i=(f-u)/f,c=0;return a?(f=(e*=1-i*(n.SIXTH+i*(n.RA4+i*n.RA6)))*e,i=0):c=Math.sqrt(i),{es:i,e:c,ep2:(f-u)/u}},r.sphere=function(e,t,r,a,i){if(!e){var c=u.default(f.default,a);c||(c=f.WGS84),e=c.a,t=c.b,r=c.rf}return r&&!t&&(t=(1-1/r)*e),(0===r||Math.abs(e-t)3&&(0===r.datum_params[3]&&0===r.datum_params[4]&&0===r.datum_params[5]&&0===r.datum_params[6]||(r.datum_type=t.PJD_7PARAM,r.datum_params[3]*=t.SEC_TO_RAD,r.datum_params[4]*=t.SEC_TO_RAD,r.datum_params[5]*=t.SEC_TO_RAD,r.datum_params[6]=r.datum_params[6]/1e6+1))),r.a=_,r.b=u,r.es=d,r.ep2=p,r}},\n",
" function _(t,e,a){Object.defineProperty(a,\"__esModule\",{value:!0});const r=t(1),u=t(37),m=r.__importDefault(t(58)),_=r.__importDefault(t(60)),o=r.__importDefault(t(32)),d=r.__importDefault(t(61)),f=r.__importDefault(t(62));a.default=function t(e,a,r){var n;return Array.isArray(r)&&(r=d.default(r)),f.default(r),e.datum&&a.datum&&function(t,e){return(t.datum.datum_type===u.PJD_3PARAM||t.datum.datum_type===u.PJD_7PARAM)&&\"WGS84\"!==e.datumCode||(e.datum.datum_type===u.PJD_3PARAM||e.datum.datum_type===u.PJD_7PARAM)&&\"WGS84\"!==t.datumCode}(e,a)&&(r=t(e,n=new o.default(\"WGS84\"),r),e=n),\"enu\"!==e.axis&&(r=_.default(e,!1,r)),\"longlat\"===e.projName?r={x:r.x*u.D2R,y:r.y*u.D2R,z:r.z||0}:(e.to_meter&&(r={x:r.x*e.to_meter,y:r.y*e.to_meter,z:r.z||0}),r=e.inverse(r)),e.from_greenwich&&(r.x+=e.from_greenwich),r=m.default(e.datum,a.datum,r),a.from_greenwich&&(r={x:r.x-a.from_greenwich,y:r.y,z:r.z||0}),\"longlat\"===a.projName?r={x:r.x*u.R2D,y:r.y*u.R2D,z:r.z||0}:(r=a.forward(r),a.to_meter&&(r={x:r.x/a.to_meter,y:r.y/a.to_meter,z:r.z||0})),\"enu\"!==a.axis?_.default(a,!0,r):r}},\n",
" function _(e,t,a){Object.defineProperty(a,\"__esModule\",{value:!0});const u=e(37),o=e(59);function _(e){return e===u.PJD_3PARAM||e===u.PJD_7PARAM}a.default=function(e,t,a){return o.compareDatums(e,t)||e.datum_type===u.PJD_NODATUM||t.datum_type===u.PJD_NODATUM?a:e.es!==t.es||e.a!==t.a||_(e.datum_type)||_(t.datum_type)?(a=o.geodeticToGeocentric(a,e.es,e.a),_(e.datum_type)&&(a=o.geocentricToWgs84(a,e.datum_type,e.datum_params)),_(t.datum_type)&&(a=o.geocentricFromWgs84(a,t.datum_type,t.datum_params)),o.geocentricToGeodetic(a,t.es,t.a,t.b)):a}},\n",
" function _(a,t,r){Object.defineProperty(r,\"__esModule\",{value:!0});const e=a(37);r.compareDatums=function(a,t){return a.datum_type===t.datum_type&&(!(a.a!==t.a||Math.abs(a.es-t.es)>5e-11)&&(a.datum_type===e.PJD_3PARAM?a.datum_params[0]===t.datum_params[0]&&a.datum_params[1]===t.datum_params[1]&&a.datum_params[2]===t.datum_params[2]:a.datum_type!==e.PJD_7PARAM||a.datum_params[0]===t.datum_params[0]&&a.datum_params[1]===t.datum_params[1]&&a.datum_params[2]===t.datum_params[2]&&a.datum_params[3]===t.datum_params[3]&&a.datum_params[4]===t.datum_params[4]&&a.datum_params[5]===t.datum_params[5]&&a.datum_params[6]===t.datum_params[6]))},r.geodeticToGeocentric=function(a,t,r){var m,u,s,_,n=a.x,d=a.y,i=a.z?a.z:0;if(d<-e.HALF_PI&&d>-1.001*e.HALF_PI)d=-e.HALF_PI;else if(d>e.HALF_PI&&d<1.001*e.HALF_PI)d=e.HALF_PI;else{if(d<-e.HALF_PI)return{x:-1/0,y:-1/0,z:a.z};if(d>e.HALF_PI)return{x:1/0,y:1/0,z:a.z}}return n>Math.PI&&(n-=2*Math.PI),u=Math.sin(d),_=Math.cos(d),s=u*u,{x:((m=r/Math.sqrt(1-t*s))+i)*_*Math.cos(n),y:(m+i)*_*Math.sin(n),z:(m*(1-t)+i)*u}},r.geocentricToGeodetic=function(a,t,r,m){var u,s,_,n,d,i,p,P,o,y,M,z,c,A,x,f=a.x,h=a.y,I=a.z?a.z:0;if(u=Math.sqrt(f*f+h*h),s=Math.sqrt(f*f+h*h+I*I),u/r<1e-12){if(A=0,s/r<1e-12)return e.HALF_PI,x=-m,{x:a.x,y:a.y,z:a.z}}else A=Math.atan2(h,f);_=I/s,P=(n=u/s)*(1-t)*(d=1/Math.sqrt(1-t*(2-t)*n*n)),o=_*d,c=0;do{c++,i=t*(p=r/Math.sqrt(1-t*o*o))/(p+(x=u*P+I*o-p*(1-t*o*o))),z=(M=_*(d=1/Math.sqrt(1-i*(2-i)*n*n)))*P-(y=n*(1-i)*d)*o,P=y,o=M}while(z*z>1e-24&&c<30);return{x:A,y:Math.atan(M/Math.abs(y)),z:x}},r.geocentricToWgs84=function(a,t,r){if(t===e.PJD_3PARAM)return{x:a.x+r[0],y:a.y+r[1],z:a.z+r[2]};if(t===e.PJD_7PARAM){var m=r[0],u=r[1],s=r[2],_=r[3],n=r[4],d=r[5],i=r[6];return{x:i*(a.x-d*a.y+n*a.z)+m,y:i*(d*a.x+a.y-_*a.z)+u,z:i*(-n*a.x+_*a.y+a.z)+s}}},r.geocentricFromWgs84=function(a,t,r){if(t===e.PJD_3PARAM)return{x:a.x-r[0],y:a.y-r[1],z:a.z-r[2]};if(t===e.PJD_7PARAM){var m=r[0],u=r[1],s=r[2],_=r[3],n=r[4],d=r[5],i=r[6],p=(a.x-m)/i,P=(a.y-u)/i,o=(a.z-s)/i;return{x:p+d*P-n*o,y:-d*p+P+_*o,z:n*p-_*P+o}}}},\n",
" function _(e,a,r){Object.defineProperty(r,\"__esModule\",{value:!0}),r.default=function(e,a,r){var c,s,u,i=r.x,n=r.y,t=r.z||0,d={};for(u=0;u<3;u++)if(!a||2!==u||void 0!==r.z)switch(0===u?(c=i,s=\"x\"):1===u?(c=n,s=\"y\"):(c=t,s=\"z\"),e.axis[u]){case\"e\":d[s]=c;break;case\"w\":d[s]=-c;break;case\"n\":d[s]=c;break;case\"s\":d[s]=-c;break;case\"u\":void 0!==r[s]&&(d.z=c);break;case\"d\":void 0!==r[s]&&(d.z=-c);break;default:return null}return d}},\n",
" function _(e,n,t){Object.defineProperty(t,\"__esModule\",{value:!0}),t.default=function(e){var n={x:e[0],y:e[1]};return e.length>2&&(n.z=e[2]),e.length>3&&(n.m=e[3]),n}},\n",
" function _(e,i,n){function t(e){if(\"function\"==typeof Number.isFinite){if(Number.isFinite(e))return;throw new TypeError(\"coordinates must be finite numbers\")}if(\"number\"!=typeof e||e!=e||!isFinite(e))throw new TypeError(\"coordinates must be finite numbers\")}Object.defineProperty(n,\"__esModule\",{value:!0}),n.default=function(e){t(e.x),t(e.y)}},\n",
" function _(e,t,i){Object.defineProperty(i,\"__esModule\",{value:!0});const r=e(1),n=e(64),s=r.__importStar(e(68)),_=r.__importStar(e(19)),l=e(69);class o extends n.DOMView{initialize(){super.initialize(),this.visuals=new s.Visuals(this.model),this._has_finished=!0}get plot_view(){return this.parent}get plot_model(){return this.parent.model}request_render(){this.plot_view.request_render()}map_to_screen(e,t){return this.plot_view.map_to_screen(e,t,this.model.x_range_name,this.model.y_range_name)}get needs_clip(){return!1}notify_finished(){this.plot_view.notify_finished()}get has_webgl(){return!1}}i.RendererView=o,o.__name__=\"RendererView\";class d extends l.Model{constructor(e){super(e)}static init_Renderer(){this.define({level:[_.RenderLevel],visible:[_.Boolean,!0]})}}i.Renderer=d,d.__name__=\"Renderer\",d.init_Renderer()},\n",
" function _(e,t,s){Object.defineProperty(s,\"__esModule\",{value:!0});const i=e(1),r=e(65),n=i.__importStar(e(66)),_=e(67);class a extends r.View{initialize(){super.initialize(),this._has_finished=!1,this.el=this._createElement()}remove(){n.removeElement(this.el),super.remove()}css_classes(){return[]}cursor(e,t){return null}render(){}renderTo(e){e.appendChild(this.el),this.render()}has_finished(){return this._has_finished}get _root_element(){return n.parent(this.el,`.${_.bk_root}`)||document.body}get is_idle(){return this.has_finished()}_createElement(){return n.createElement(this.tagName,{class:this.css_classes()})}}s.DOMView=a,a.__name__=\"DOMView\",a.prototype.tagName=\"div\"},\n",
" function _(t,e,i){Object.defineProperty(i,\"__esModule\",{value:!0});const r=t(14),n=t(8),o=t(25);class s{constructor(t){if(this.removed=new r.Signal0(this,\"removed\"),this._ready=Promise.resolve(void 0),null==t.model)throw new Error(\"model of a view wasn't configured\");this.model=t.model,this._parent=t.parent,this.id=t.id||o.uniqueId()}get ready(){return this._ready}connect(t,e){return t.connect((t,i)=>{const r=Promise.resolve(e.call(this,t,i));this._ready=this._ready.then(()=>r)},this)}disconnect(t,e){return t.disconnect(e,this)}initialize(){}async lazy_initialize(){}remove(){this._parent=void 0,this.disconnect_signals(),this.removed.emit()}toString(){return`${this.model.type}View(${this.id})`}serializable_state(){return{type:this.model.type}}get parent(){if(void 0!==this._parent)return this._parent;throw new Error(\"parent of a view wasn't configured\")}get is_root(){return null===this.parent}get root(){return this.is_root?this:this.parent.root}assert_root(){if(!this.is_root)throw new Error(`${this.toString()} is not a root layout`)}connect_signals(){}disconnect_signals(){r.Signal.disconnectReceiver(this)}on_change(t,e){for(const i of n.isArray(t)?t:[t])this.connect(i.change,e)}}i.View=s,s.__name__=\"View\"},\n",
" function _(t,e,n){Object.defineProperty(n,\"__esModule\",{value:!0});const i=t(8),s=t=>(e={},...n)=>{const s=document.createElement(t);s.classList.add(\"bk\");for(const t in e){let n=e[t];if(null!=n&&(!i.isBoolean(n)||n))if(\"class\"===t&&(i.isString(n)&&(n=n.split(/\\s+/)),i.isArray(n)))for(const t of n)null!=t&&s.classList.add(t);else if(\"style\"===t&&i.isPlainObject(n))for(const t in n)s.style[t]=n[t];else if(\"data\"===t&&i.isPlainObject(n))for(const t in n)s.dataset[t]=n[t];else s.setAttribute(t,n)}function o(t){if(t instanceof HTMLElement)s.appendChild(t);else if(i.isString(t))s.appendChild(document.createTextNode(t));else if(null!=t&&!1!==t)throw new Error(`expected an HTMLElement, string, false or null, got ${JSON.stringify(t)}`)}for(const t of n)if(i.isArray(t))for(const e of t)o(e);else o(t);return s};function o(t){const e=t.parentNode;null!=e&&e.removeChild(t)}function l(t,...e){const n=t.firstChild;for(const i of e)t.insertBefore(i,n)}function r(t,e){const n=Element.prototype;return(n.matches||n.webkitMatchesSelector||n.mozMatchesSelector||n.msMatchesSelector).call(t,e)}function c(t){return parseFloat(t)||0}function a(t){const e=getComputedStyle(t);return{border:{top:c(e.borderTopWidth),bottom:c(e.borderBottomWidth),left:c(e.borderLeftWidth),right:c(e.borderRightWidth)},margin:{top:c(e.marginTop),bottom:c(e.marginBottom),left:c(e.marginLeft),right:c(e.marginRight)},padding:{top:c(e.paddingTop),bottom:c(e.paddingBottom),left:c(e.paddingLeft),right:c(e.paddingRight)}}}function h(t){const e=t.getBoundingClientRect();return{width:Math.ceil(e.width),height:Math.ceil(e.height)}}n.createElement=function(t,e,...n){return s(t)(e,...n)},n.div=s(\"div\"),n.span=s(\"span\"),n.canvas=s(\"canvas\"),n.link=s(\"link\"),n.style=s(\"style\"),n.a=s(\"a\"),n.p=s(\"p\"),n.i=s(\"i\"),n.pre=s(\"pre\"),n.button=s(\"button\"),n.label=s(\"label\"),n.input=s(\"input\"),n.select=s(\"select\"),n.option=s(\"option\"),n.optgroup=s(\"optgroup\"),n.textarea=s(\"textarea\"),n.nbsp=function(){return document.createTextNode(\"Â \")},n.append=function(t,...e){for(const n of e)t.appendChild(n)},n.remove=o,n.removeElement=o,n.replaceWith=function(t,e){const n=t.parentNode;null!=n&&n.replaceChild(e,t)},n.prepend=l,n.empty=function(t){let e;for(;e=t.firstChild;)t.removeChild(e)},n.display=function(t){t.style.display=\"\"},n.undisplay=function(t){t.style.display=\"none\"},n.show=function(t){t.style.visibility=\"\"},n.hide=function(t){t.style.visibility=\"hidden\"},n.offset=function(t){const e=t.getBoundingClientRect();return{top:e.top+window.pageYOffset-document.documentElement.clientTop,left:e.left+window.pageXOffset-document.documentElement.clientLeft}},n.matches=r,n.parent=function(t,e){let n=t;for(;n=n.parentElement;)if(r(n,e))return n;return null},n.extents=a,n.size=h,n.scroll_size=function(t){return{width:Math.ceil(t.scrollWidth),height:Math.ceil(t.scrollHeight)}},n.outer_size=function(t){const{margin:{left:e,right:n,top:i,bottom:s}}=a(t),{width:o,height:l}=h(t);return{width:Math.ceil(o+e+n),height:Math.ceil(l+i+s)}},n.content_size=function(t){const{left:e,top:n}=t.getBoundingClientRect(),{padding:i}=a(t);let s=0,o=0;for(const l of t.children){const t=l.getBoundingClientRect();s=Math.max(s,Math.ceil(t.left-e-i.left+t.width)),o=Math.max(o,Math.ceil(t.top-n-i.top+t.height))}return{width:s,height:o}},n.position=function(t,e,n){const{style:i}=t;if(i.left=`${e.x}px`,i.top=`${e.y}px`,i.width=`${e.width}px`,i.height=`${e.height}px`,null==n)i.margin=\"\";else{const{top:t,right:e,bottom:s,left:o}=n;i.margin=`${t}px ${e}px ${s}px ${o}px`}},n.children=function(t){return Array.from(t.children)};class d{constructor(t){this.el=t,this.classList=t.classList}get values(){const t=[];for(let e=0;e\":case\"vertical_wave\":_.moveTo(n,0),_.lineTo(3*n,o),_.lineTo(n,l),_.stroke();break;case\"*\":case\"criss_cross\":h(_,l),c(_,l,o),i(_,l,o)}return r}class n{constructor(e,t=\"\"){this.obj=e,this.prefix=t,this.cache={};for(const a of this.attrs)this[a]=e.properties[t+a]}warm_cache(e){for(const t of this.attrs){const a=this.obj.properties[this.prefix+t];if(void 0!==a.spec.value)this.cache[t]=a.spec.value;else{if(null==e)throw new Error(\"source is required with a vectorized visual property\");this.cache[t+\"_array\"]=a.array(e)}}}cache_select(e,t){const a=this.obj.properties[this.prefix+e];let s;return void 0!==a.spec.value?this.cache[e]=s=a.spec.value:this.cache[e]=s=this.cache[e+\"_array\"][t],s}set_vectorize(e,t){null!=this.all_indices?this._set_vectorize(e,this.all_indices[t]):this._set_vectorize(e,t)}}a.ContextProperties=n,n.__name__=\"ContextProperties\";class r extends n{set_value(e){e.strokeStyle=this.line_color.value(),e.globalAlpha=this.line_alpha.value(),e.lineWidth=this.line_width.value(),e.lineJoin=this.line_join.value(),e.lineCap=this.line_cap.value(),e.setLineDash(this.line_dash.value()),e.setLineDashOffset(this.line_dash_offset.value())}get doit(){return!(null===this.line_color.spec.value||0==this.line_alpha.spec.value||0==this.line_width.spec.value)}_set_vectorize(e,t){this.cache_select(\"line_color\",t),e.strokeStyle!==this.cache.line_color&&(e.strokeStyle=this.cache.line_color),this.cache_select(\"line_alpha\",t),e.globalAlpha!==this.cache.line_alpha&&(e.globalAlpha=this.cache.line_alpha),this.cache_select(\"line_width\",t),e.lineWidth!==this.cache.line_width&&(e.lineWidth=this.cache.line_width),this.cache_select(\"line_join\",t),e.lineJoin!==this.cache.line_join&&(e.lineJoin=this.cache.line_join),this.cache_select(\"line_cap\",t),e.lineCap!==this.cache.line_cap&&(e.lineCap=this.cache.line_cap),this.cache_select(\"line_dash\",t),e.getLineDash()!==this.cache.line_dash&&e.setLineDash(this.cache.line_dash),this.cache_select(\"line_dash_offset\",t),e.getLineDashOffset()!==this.cache.line_dash_offset&&e.setLineDashOffset(this.cache.line_dash_offset)}color_value(){const[e,t,a,s]=l.color2rgba(this.line_color.value(),this.line_alpha.value());return`rgba(${255*e},${255*t},${255*a},${s})`}}a.Line=r,r.__name__=\"Line\",r.prototype.attrs=Object.keys(s.line());class _ extends n{set_value(e){e.fillStyle=this.fill_color.value(),e.globalAlpha=this.fill_alpha.value()}get doit(){return!(null===this.fill_color.spec.value||0==this.fill_alpha.spec.value)}_set_vectorize(e,t){this.cache_select(\"fill_color\",t),e.fillStyle!==this.cache.fill_color&&(e.fillStyle=this.cache.fill_color),this.cache_select(\"fill_alpha\",t),e.globalAlpha!==this.cache.fill_alpha&&(e.globalAlpha=this.cache.fill_alpha)}color_value(){const[e,t,a,s]=l.color2rgba(this.fill_color.value(),this.fill_alpha.value());return`rgba(${255*e},${255*t},${255*a},${s})`}}a.Fill=_,_.__name__=\"Fill\",_.prototype.attrs=Object.keys(s.fill());class p extends n{cache_select(e,t){let a;if(\"pattern\"==e){this.cache_select(\"hatch_color\",t),this.cache_select(\"hatch_scale\",t),this.cache_select(\"hatch_pattern\",t),this.cache_select(\"hatch_weight\",t);const{hatch_color:e,hatch_scale:a,hatch_pattern:s,hatch_weight:l,hatch_extra:c}=this.cache;if(null!=c&&c.hasOwnProperty(s)){const t=c[s];this.cache.pattern=t.get_pattern(e,a,l)}else this.cache.pattern=t=>{const c=o(s,e,a,l);return t.createPattern(c,\"repeat\")}}else a=super.cache_select(e,t);return a}_try_defer(e){const{hatch_pattern:t,hatch_extra:a}=this.cache;if(null!=a&&a.hasOwnProperty(t)){a[t].onload(e)}}get doit(){return!(null===this.hatch_color.spec.value||0==this.hatch_alpha.spec.value||\" \"==this.hatch_pattern.spec.value||\"blank\"==this.hatch_pattern.spec.value||null===this.hatch_pattern.spec.value)}doit2(e,t,a,s){if(!this.doit)return;this.cache_select(\"pattern\",t),null==this.cache.pattern(e)?this._try_defer(s):(this.set_vectorize(e,t),a())}_set_vectorize(e,t){this.cache_select(\"pattern\",t),e.fillStyle=this.cache.pattern(e),this.cache_select(\"hatch_alpha\",t),e.globalAlpha!==this.cache.hatch_alpha&&(e.globalAlpha=this.cache.hatch_alpha)}color_value(){const[e,t,a,s]=l.color2rgba(this.hatch_color.value(),this.hatch_alpha.value());return`rgba(${255*e},${255*t},${255*a},${s})`}}a.Hatch=p,p.__name__=\"Hatch\",p.prototype.attrs=Object.keys(s.hatch());class u extends n{cache_select(e,t){let a;if(\"font\"==e){super.cache_select(\"text_font_style\",t),super.cache_select(\"text_font_size\",t),super.cache_select(\"text_font\",t);const{text_font_style:e,text_font_size:s,text_font:l}=this.cache;this.cache.font=a=`${e} ${s} ${l}`}else a=super.cache_select(e,t);return a}font_value(){const e=this.text_font.value(),t=this.text_font_size.value();return this.text_font_style.value()+\" \"+t+\" \"+e}color_value(){const[e,t,a,s]=l.color2rgba(this.text_color.value(),this.text_alpha.value());return`rgba(${255*e},${255*t},${255*a},${s})`}set_value(e){e.font=this.font_value(),e.fillStyle=this.text_color.value(),e.globalAlpha=this.text_alpha.value(),e.textAlign=this.text_align.value(),e.textBaseline=this.text_baseline.value()}get doit(){return!(null===this.text_color.spec.value||0==this.text_alpha.spec.value)}_set_vectorize(e,t){this.cache_select(\"font\",t),e.font!==this.cache.font&&(e.font=this.cache.font),this.cache_select(\"text_color\",t),e.fillStyle!==this.cache.text_color&&(e.fillStyle=this.cache.text_color),this.cache_select(\"text_alpha\",t),e.globalAlpha!==this.cache.text_alpha&&(e.globalAlpha=this.cache.text_alpha),this.cache_select(\"text_align\",t),e.textAlign!==this.cache.text_align&&(e.textAlign=this.cache.text_align),this.cache_select(\"text_baseline\",t),e.textBaseline!==this.cache.text_baseline&&(e.textBaseline=this.cache.text_baseline)}}a.Text=u,u.__name__=\"Text\",u.prototype.attrs=Object.keys(s.text());class f{constructor(e){for(const t of e.mixins){const[a,s=\"\"]=t.split(\":\");let l;switch(a){case\"line\":l=r;break;case\"fill\":l=_;break;case\"hatch\":l=p;break;case\"text\":l=u;break;default:throw new Error(`unknown visual: ${a}`)}this[s+a]=new l(e,s)}}warm_cache(e){for(const t in this)if(this.hasOwnProperty(t)){const a=this[t];a instanceof n&&a.warm_cache(e)}}set_all_indices(e){for(const t in this)if(this.hasOwnProperty(t)){const a=this[t];a instanceof n&&(a.all_indices=e)}}}a.Visuals=f,f.__name__=\"Visuals\"},\n",
" function _(e,t,s){Object.defineProperty(s,\"__esModule\",{value:!0});const n=e(1),c=e(13),r=n.__importStar(e(19)),a=e(8),i=e(23),o=e(70);class _ extends c.HasProps{constructor(e){super(e)}static init_Model(){this.define({tags:[r.Array,[]],name:[r.String],js_property_callbacks:[r.Any,{}],js_event_callbacks:[r.Any,{}],subscribed_events:[r.Array,[]]})}connect_signals(){super.connect_signals(),this._update_property_callbacks(),this.connect(this.properties.js_property_callbacks.change,()=>this._update_property_callbacks()),this.connect(this.properties.js_event_callbacks.change,()=>this._update_event_callbacks()),this.connect(this.properties.subscribed_events.change,()=>this._update_event_callbacks())}_process_event(e){for(const t of this.js_event_callbacks[e.event_name]||[])t.execute(e);null!=this.document&&this.subscribed_events.some(t=>t==e.event_name)&&this.document.event_manager.send_event(e)}trigger_event(e){null!=this.document&&(e.origin=this,this.document.event_manager.trigger(e))}_update_event_callbacks(){null!=this.document?this.document.event_manager.subscribed_models.add(this.id):o.logger.warn(\"WARNING: Document not defined for updating event callbacks\")}_update_property_callbacks(){const e=e=>{const[t,s=null]=e.split(\":\");return null!=s?this.properties[s][t]:this[t]};for(const t in this._js_callbacks){const s=this._js_callbacks[t],n=e(t);for(const e of s)this.disconnect(n,e)}this._js_callbacks={};for(const t in this.js_property_callbacks){const s=this.js_property_callbacks[t].map(e=>()=>e.execute(this));this._js_callbacks[t]=s;const n=e(t);for(const e of s)this.connect(n,e)}}_doc_attached(){i.isEmpty(this.js_event_callbacks)&&i.isEmpty(this.subscribed_events)||this._update_event_callbacks()}select(e){if(a.isString(e))return this.references().filter(t=>t instanceof _&&t.name===e);if(e.prototype instanceof c.HasProps)return this.references().filter(t=>t instanceof e);throw new Error(\"invalid selector\")}select_one(e){const t=this.select(e);switch(t.length){case 0:return null;case 1:return t[0];default:throw new Error(\"found more than one object matching given selector\")}}}s.Model=_,_.__name__=\"Model\",_.init_Model()},\n",
" function _(e,l,o){Object.defineProperty(o,\"__esModule\",{value:!0});const n=e(8),t={};class s{constructor(e,l){this.name=e,this.level=l}}o.LogLevel=s,s.__name__=\"LogLevel\";class g{constructor(e,l=g.INFO){this._name=e,this.set_level(l)}static get levels(){return Object.keys(g.log_levels)}static get(e,l=g.INFO){if(e.length>0){let o=t[e];return null==o&&(t[e]=o=new g(e,l)),o}throw new TypeError(\"Logger.get() expects a non-empty string name and an optional log-level\")}get level(){return this.get_level()}get_level(){return this._log_level}set_level(e){if(e instanceof s)this._log_level=e;else{if(!n.isString(e)||null==g.log_levels[e])throw new Error(\"Logger.set_level() expects a log-level object or a string name of a log-level\");this._log_level=g.log_levels[e]}const l=`[${this._name}]`;for(const e in g.log_levels){g.log_levels[e].levelthis.set_data(this.model.source)),this.connect(this.model.source.streaming,()=>this.set_data(this.model.source)),this.connect(this.model.source.patching,()=>this.set_data(this.model.source))}set_data(t){super.set_data(t),this.visuals.warm_cache(t),this.plot_view.request_render()}_map_data(){const{frame:t}=this.plot_view;let e,s,i,a;return\"data\"==this.model.start_units?(e=t.xscales[this.model.x_range_name].v_compute(this._x_start),s=t.yscales[this.model.y_range_name].v_compute(this._y_start)):(e=t.xview.v_compute(this._x_start),s=t.yview.v_compute(this._y_start)),\"data\"==this.model.end_units?(i=t.xscales[this.model.x_range_name].v_compute(this._x_end),a=t.yscales[this.model.y_range_name].v_compute(this._y_end)):(i=t.xview.v_compute(this._x_end),a=t.yview.v_compute(this._y_end)),[[e,s],[i,a]]}render(){if(!this.model.visible)return;const{ctx:t}=this.plot_view.canvas_view;t.save();const[e,s]=this._map_data();null!=this.model.end&&this._arrow_head(t,\"render\",this.model.end,e,s),null!=this.model.start&&this._arrow_head(t,\"render\",this.model.start,s,e),t.beginPath();const{x:i,y:a,width:n,height:r}=this.plot_view.frame.bbox;t.rect(i,a,n,r),null!=this.model.end&&this._arrow_head(t,\"clip\",this.model.end,e,s),null!=this.model.start&&this._arrow_head(t,\"clip\",this.model.start,s,e),t.closePath(),t.clip(),this._arrow_body(t,e,s),t.restore()}_arrow_head(t,e,s,i,a){for(let n=0,r=this._x_start.length;nnew n.OpenHead({})],source:[o.Instance],x_range_name:[o.String,\"default\"],y_range_name:[o.String,\"default\"]})}}s.Arrow=h,h.__name__=\"Arrow\",h.init_Arrow()},\n",
" function _(i,e,s){Object.defineProperty(s,\"__esModule\",{value:!0});const t=i(1),l=i(29),n=i(68),o=t.__importStar(i(19));class h extends l.Annotation{constructor(i){super(i)}static init_ArrowHead(){this.define({size:[o.Number,25]})}initialize(){super.initialize(),this.visuals=new n.Visuals(this)}}s.ArrowHead=h,h.__name__=\"ArrowHead\",h.init_ArrowHead();class a extends h{constructor(i){super(i)}static init_OpenHead(){this.mixins([\"line\"])}clip(i,e){this.visuals.line.set_vectorize(i,e),i.moveTo(.5*this.size,this.size),i.lineTo(.5*this.size,-2),i.lineTo(-.5*this.size,-2),i.lineTo(-.5*this.size,this.size),i.lineTo(0,0),i.lineTo(.5*this.size,this.size)}render(i,e){this.visuals.line.doit&&(this.visuals.line.set_vectorize(i,e),i.beginPath(),i.moveTo(.5*this.size,this.size),i.lineTo(0,0),i.lineTo(-.5*this.size,this.size),i.stroke())}}s.OpenHead=a,a.__name__=\"OpenHead\",a.init_OpenHead();class r extends h{constructor(i){super(i)}static init_NormalHead(){this.mixins([\"line\",\"fill\"]),this.override({fill_color:\"black\"})}clip(i,e){this.visuals.line.set_vectorize(i,e),i.moveTo(.5*this.size,this.size),i.lineTo(.5*this.size,-2),i.lineTo(-.5*this.size,-2),i.lineTo(-.5*this.size,this.size),i.lineTo(.5*this.size,this.size)}render(i,e){this.visuals.fill.doit&&(this.visuals.fill.set_vectorize(i,e),this._normal(i,e),i.fill()),this.visuals.line.doit&&(this.visuals.line.set_vectorize(i,e),this._normal(i,e),i.stroke())}_normal(i,e){i.beginPath(),i.moveTo(.5*this.size,this.size),i.lineTo(0,0),i.lineTo(-.5*this.size,this.size),i.closePath()}}s.NormalHead=r,r.__name__=\"NormalHead\",r.init_NormalHead();class z extends h{constructor(i){super(i)}static init_VeeHead(){this.mixins([\"line\",\"fill\"]),this.override({fill_color:\"black\"})}clip(i,e){this.visuals.line.set_vectorize(i,e),i.moveTo(.5*this.size,this.size),i.lineTo(.5*this.size,-2),i.lineTo(-.5*this.size,-2),i.lineTo(-.5*this.size,this.size),i.lineTo(0,.5*this.size),i.lineTo(.5*this.size,this.size)}render(i,e){this.visuals.fill.doit&&(this.visuals.fill.set_vectorize(i,e),this._vee(i,e),i.fill()),this.visuals.line.doit&&(this.visuals.line.set_vectorize(i,e),this._vee(i,e),i.stroke())}_vee(i,e){i.beginPath(),i.moveTo(.5*this.size,this.size),i.lineTo(0,0),i.lineTo(-.5*this.size,this.size),i.lineTo(0,.5*this.size),i.closePath()}}s.VeeHead=z,z.__name__=\"VeeHead\",z.init_VeeHead();class _ extends h{constructor(i){super(i)}static init_TeeHead(){this.mixins([\"line\"])}render(i,e){this.visuals.line.doit&&(this.visuals.line.set_vectorize(i,e),i.beginPath(),i.moveTo(.5*this.size,0),i.lineTo(-.5*this.size,0),i.stroke())}clip(i,e){}}s.TeeHead=_,_.__name__=\"TeeHead\",_.init_TeeHead()},\n",
" function _(t,e,n){Object.defineProperty(n,\"__esModule\",{value:!0});const s=t(1),a=t(74),o=t(13),i=s.__importStar(t(19)),r=t(15),l=t(100),u=t(8),c=s.__importStar(t(102)),_=t(23),h=t(103);function d(t,e,n){if(u.isArray(t)){const s=t.concat(e);return null!=n&&s.length>n?s.slice(-n):s}if(u.isTypedArray(t)){const s=t.length+e.length;if(null!=n&&s>n){const a=s-n,o=t.length;let i;t.lengthnew _.UnionRenderers]}),this.internal({selection_manager:[l.Instance,t=>new c.SelectionManager({source:t})],inspected:[l.Instance,()=>new g.Selection],_shapes:[l.Any,{}]})}initialize(){super.initialize(),this._select=new i.Signal0(this,\"select\"),this.inspect=new i.Signal(this,\"inspect\"),this.streaming=new i.Signal0(this,\"streaming\"),this.patching=new i.Signal(this,\"patching\")}get_column(t){const n=this.data[t];return null!=n?n:null}columns(){return h.keys(this.data)}get_length(t=!0){const n=u.uniq(h.values(this.data).map(t=>t.length));switch(n.length){case 0:return null;case 1:return n[0];default:{const e=\"data source has columns of inconsistent lengths\";if(t)return r.logger.warn(e),n.sort()[0];throw new Error(e)}}}get_indices(){const t=this.get_length();return u.range(0,null!=t?t:1)}clear(){const t={};for(const n of this.columns())t[n]=new this.data[n].constructor(0);this.data=t}}e.ColumnarDataSource=d,d.__name__=\"ColumnarDataSource\",d.init_ColumnarDataSource()},\n",
" function _(e,t,a){Object.defineProperty(a,\"__esModule\",{value:!0});const c=e(1),n=e(69),o=e(76),i=c.__importStar(e(19));class r extends n.Model{constructor(e){super(e)}static init_DataSource(){this.define({selected:[i.Instance,()=>new o.Selection]})}}a.DataSource=r,r.__name__=\"DataSource\",r.init_DataSource()},\n",
" function _(i,e,s){Object.defineProperty(s,\"__esModule\",{value:!0});const t=i(1),n=i(69),l=t.__importStar(i(19)),_=i(9),h=i(23);class c extends n.Model{constructor(i){super(i)}static init_Selection(){this.define({indices:[l.Array,[]],line_indices:[l.Array,[]],multiline_indices:[l.Any,{}]}),this.internal({final:[l.Boolean],selected_glyphs:[l.Array,[]],get_view:[l.Any],image_indices:[l.Array,[]]})}initialize(){super.initialize(),this.get_view=()=>null}get selected_glyph(){return this.selected_glyphs.length>0?this.selected_glyphs[0]:null}add_to_selected_glyphs(i){this.selected_glyphs.push(i)}update(i,e,s){this.final=e,s?this.update_through_union(i):(this.indices=i.indices,this.line_indices=i.line_indices,this.selected_glyphs=i.selected_glyphs,this.get_view=i.get_view,this.multiline_indices=i.multiline_indices,this.image_indices=i.image_indices)}clear(){this.final=!0,this.indices=[],this.line_indices=[],this.multiline_indices={},this.get_view=()=>null,this.selected_glyphs=[]}is_empty(){return 0==this.indices.length&&0==this.line_indices.length&&0==this.image_indices.length}update_through_union(i){this.indices=_.union(i.indices,this.indices),this.selected_glyphs=_.union(i.selected_glyphs,this.selected_glyphs),this.line_indices=_.union(i.line_indices,this.line_indices),this.get_view()||(this.get_view=i.get_view),this.multiline_indices=h.merge(i.multiline_indices,this.multiline_indices)}update_through_intersection(i){this.indices=_.intersection(i.indices,this.indices),this.selected_glyphs=_.union(i.selected_glyphs,this.selected_glyphs),this.line_indices=_.union(i.line_indices,this.line_indices),this.get_view()||(this.get_view=i.get_view),this.multiline_indices=h.merge(i.multiline_indices,this.multiline_indices)}}s.Selection=c,c.__name__=\"Selection\",c.init_Selection()},\n",
" function _(e,t,i){Object.defineProperty(i,\"__esModule\",{value:!0});const s=e(1),n=e(13),o=e(76),c=e(78),r=e(97),l=s.__importStar(e(19));class _ extends n.HasProps{constructor(e){super(e),this.inspectors={}}static init_SelectionManager(){this.internal({source:[l.Any]})}select(e,t,i,s=!1){const n=[],o=[];for(const t of e)t instanceof c.GlyphRendererView?n.push(t):t instanceof r.GraphRendererView&&o.push(t);let l=!1;for(const e of o){const n=e.model.selection_policy.hit_test(t,e);l=l||e.model.selection_policy.do_selection(n,e.model,i,s)}if(n.length>0){const e=this.source.selection_policy.hit_test(t,n);l=l||this.source.selection_policy.do_selection(e,this.source,i,s)}return l}inspect(e,t){let i=!1;if(e instanceof c.GlyphRendererView){const s=e.hit_test(t);if(null!=s){i=!s.is_empty();const n=this.get_or_create_inspector(e.model);n.update(s,!0,!1),this.source.setv({inspected:n},{silent:!0}),this.source.inspect.emit([e,{geometry:t}])}}else if(e instanceof r.GraphRendererView){const s=e.model.inspection_policy.hit_test(t,e);i=i||e.model.inspection_policy.do_inspection(s,t,e,!1,!1)}return i}clear(e){this.source.selected.clear(),null!=e&&this.get_or_create_inspector(e.model).clear()}get_or_create_inspector(e){return null==this.inspectors[e.id]&&(this.inspectors[e.id]=new o.Selection),this.inspectors[e.id]}}i.SelectionManager=_,_.__name__=\"SelectionManager\",_.init_SelectionManager()},\n",
" function _(e,t,i){Object.defineProperty(i,\"__esModule\",{value:!0});const s=e(1),l=e(79),n=e(80),h=e(91),o=e(92),a=e(94),r=e(95),_=e(70),d=s.__importStar(e(19)),c=e(12),g=e(9),p=e(23),y=e(96),u=e(88),m={fill:{},line:{}},v={fill:{fill_alpha:.3,fill_color:\"grey\"},line:{line_alpha:.3,line_color:\"grey\"}},f={fill:{fill_alpha:.2},line:{}};class w extends l.DataRendererView{async lazy_initialize(){await super.lazy_initialize();const e=this.model.glyph,t=g.includes(e.mixins,\"fill\"),i=g.includes(e.mixins,\"line\"),s=p.clone(e.attributes);function l(l){const n=p.clone(s);return t&&p.extend(n,l.fill),i&&p.extend(n,l.line),new e.constructor(n)}delete s.id,this.glyph=await this.build_glyph_view(e);let{selection_glyph:n}=this.model;null==n?n=l({fill:{},line:{}}):\"auto\"===n&&(n=l(m)),this.selection_glyph=await this.build_glyph_view(n);let{nonselection_glyph:h}=this.model;null==h?h=l({fill:{},line:{}}):\"auto\"===h&&(h=l(f)),this.nonselection_glyph=await this.build_glyph_view(h);const{hover_glyph:o}=this.model;null!=o&&(this.hover_glyph=await this.build_glyph_view(o));const{muted_glyph:a}=this.model;null!=a&&(this.muted_glyph=await this.build_glyph_view(a));const r=l(v);this.decimated_glyph=await this.build_glyph_view(r),this.xscale=this.plot_view.frame.xscales[this.model.x_range_name],this.yscale=this.plot_view.frame.yscales[this.model.y_range_name],this.set_data(!1)}async build_glyph_view(e){return y.build_view(e,{parent:this})}remove(){var e,t;this.glyph.remove(),this.selection_glyph.remove(),this.nonselection_glyph.remove(),null===(e=this.hover_glyph)||void 0===e||e.remove(),null===(t=this.muted_glyph)||void 0===t||t.remove(),this.decimated_glyph.remove(),super.remove()}connect_signals(){super.connect_signals(),this.connect(this.model.change,()=>this.request_render()),this.connect(this.model.glyph.change,()=>this.set_data()),this.connect(this.model.data_source.change,()=>this.set_data()),this.connect(this.model.data_source.streaming,()=>this.set_data()),this.connect(this.model.data_source.patching,e=>this.set_data(!0,e)),this.connect(this.model.data_source.selected.change,()=>this.request_render()),this.connect(this.model.data_source._select,()=>this.request_render()),null!=this.hover_glyph&&this.connect(this.model.data_source.inspect,()=>this.request_render()),this.connect(this.model.properties.view.change,()=>this.set_data()),this.connect(this.model.view.change,()=>this.set_data()),this.connect(this.model.properties.visible.change,()=>this.plot_view.update_dataranges());const{x_ranges:e,y_ranges:t}=this.plot_view.frame;for(const t in e){const i=e[t];i instanceof u.FactorRange&&this.connect(i.change,()=>this.set_data())}for(const e in t){const i=t[e];i instanceof u.FactorRange&&this.connect(i.change,()=>this.set_data())}this.connect(this.model.glyph.transformchange,()=>this.set_data())}have_selection_glyphs(){return null!=this.selection_glyph&&null!=this.nonselection_glyph}set_data(e=!0,t=null){const i=Date.now(),s=this.model.data_source;this.all_indices=this.model.view.indices,this.glyph.model.setv({x_range_name:this.model.x_range_name,y_range_name:this.model.y_range_name},{silent:!0}),this.glyph.set_data(s,this.all_indices,t),this.glyph.set_visuals(s),this.decimated_glyph.set_visuals(s),this.have_selection_glyphs()&&(this.selection_glyph.set_visuals(s),this.nonselection_glyph.set_visuals(s)),null!=this.hover_glyph&&this.hover_glyph.set_visuals(s),null!=this.muted_glyph&&this.muted_glyph.set_visuals(s);const{lod_factor:l}=this.plot_model;this.decimated=[];for(let e=0,t=Math.floor(this.all_indices.length/l);e!u||u.is_empty()?[]:u.selected_glyph?this.model.view.convert_indices_from_subset(l):u.indices.length>0?u.indices:c.map(Object.keys(u.multiline_indices),e=>parseInt(e)))()),v=c.filter(l,e=>m.has(this.all_indices[e])),{lod_threshold:f}=this.plot_model;let w,b,x;null!=this.model.document&&this.model.document.interactive_duration()>0&&!t&&null!=f&&this.all_indices.length>f?(l=this.decimated,w=this.decimated_glyph,b=this.decimated_glyph,x=this.selection_glyph):(w=this.model.muted&&null!=this.muted_glyph?this.muted_glyph:this.glyph,b=this.nonselection_glyph,x=this.selection_glyph),null!=this.hover_glyph&&v.length&&(l=g.difference(l,v));let D,R=null;if(y.length&&this.have_selection_glyphs()){const e=Date.now(),t={};for(const e of y)t[e]=!0;const i=new Array,s=new Array;if(this.glyph instanceof n.LineView)for(const e of this.all_indices)null!=t[e]?i.push(e):s.push(e);else for(const e of l)null!=t[this.all_indices[e]]?i.push(e):s.push(e);R=Date.now()-e,D=Date.now(),b.render(d,s,this.glyph),x.render(d,i,this.glyph),null!=this.hover_glyph&&(this.glyph instanceof n.LineView?this.hover_glyph.render(d,this.model.view.convert_indices_from_subset(v),this.glyph):this.hover_glyph.render(d,v,this.glyph))}else if(D=Date.now(),this.glyph instanceof n.LineView)this.hover_glyph&&v.length?this.hover_glyph.render(d,this.model.view.convert_indices_from_subset(v),this.glyph):w.render(d,this.all_indices,this.glyph);else if(this.glyph instanceof h.PatchView||this.glyph instanceof o.HAreaView||this.glyph instanceof a.VAreaView)if(0==u.selected_glyphs.length||null==this.hover_glyph)w.render(d,this.all_indices,this.glyph);else for(const e of u.selected_glyphs)e.id==this.glyph.model.id&&this.hover_glyph.render(d,this.all_indices,this.glyph);else w.render(d,l,this.glyph),this.hover_glyph&&v.length&&this.hover_glyph.render(d,v,this.glyph);const V=Date.now()-D;this.last_dtrender=V;const $=Date.now()-e;_.logger.debug(`${this.glyph.model.type} GlyphRenderer (${this.model.id}): render finished in ${$}ms`),_.logger.trace(` - map_data finished in : ${i}ms`),_.logger.trace(` - mask_data finished in : ${r}ms`),null!=R&&_.logger.trace(` - selection mask finished in : ${R}ms`),_.logger.trace(` - glyph renders finished in : ${V}ms`),d.restore()}draw_legend(e,t,i,s,l,n,h,o){null==o&&(o=this.model.get_reference_point(n,h)),this.glyph.draw_legend_for_index(e,{x0:t,x1:i,y0:s,y1:l},o)}hit_test(e){if(!this.model.visible)return null;const t=this.glyph.hit_test(e);return null==t?null:this.model.view.convert_selection_from_subset(t)}}i.GlyphRendererView=w,w.__name__=\"GlyphRendererView\";class b extends l.DataRenderer{constructor(e){super(e)}static init_GlyphRenderer(){this.prototype.default_view=w,this.define({data_source:[d.Instance],view:[d.Instance,()=>new r.CDSView],glyph:[d.Instance],hover_glyph:[d.Instance],nonselection_glyph:[d.Any,\"auto\"],selection_glyph:[d.Any,\"auto\"],muted_glyph:[d.Instance],muted:[d.Boolean,!1]})}initialize(){super.initialize(),null==this.view.source&&(this.view.source=this.data_source,this.view.compute_indices())}get_reference_point(e,t){let i=0;if(null!=e){const s=this.data_source.get_column(e);if(null!=s){const e=c.indexOf(s,t);-1!=e&&(i=e)}}return i}get_selection_manager(){return this.data_source.selection_manager}}i.GlyphRenderer=b,b.__name__=\"GlyphRenderer\",b.init_GlyphRenderer()},\n",
" function _(e,r,n){Object.defineProperty(n,\"__esModule\",{value:!0});const t=e(1),a=e(63),_=t.__importStar(e(19));class i extends a.RendererView{}n.DataRendererView=i,i.__name__=\"DataRendererView\";class d extends a.Renderer{constructor(e){super(e)}static init_DataRenderer(){this.define({x_range_name:[_.String,\"default\"],y_range_name:[_.String,\"default\"]}),this.override({level:\"glyph\"})}}n.DataRenderer=d,d.__name__=\"DataRenderer\",d.init_DataRenderer()},\n",
" function _(e,t,i){Object.defineProperty(i,\"__esModule\",{value:!0});const s=e(1),n=e(81),_=e(90),l=s.__importStar(e(87));class r extends n.XYGlyphView{_render(e,t,{sx:i,sy:s}){let n=!1,_=null;this.visuals.line.set_value(e);for(const l of t){if(n){if(!isFinite(i[l]+s[l])){e.stroke(),e.beginPath(),n=!1,_=l;continue}null!=_&&l-_>1&&(e.stroke(),n=!1)}n?e.lineTo(i[l],s[l]):(e.beginPath(),e.moveTo(i[l],s[l]),n=!0),_=l}n&&e.stroke()}_hit_point(e){const t=l.create_empty_hit_test_result(),i={x:e.sx,y:e.sy};let s=9999;const n=Math.max(2,this.visuals.line.line_width.value()/2);for(let e=0,_=this.sx.length-1;e<_;e++){const _={x:this.sx[e],y:this.sy[e]},r={x:this.sx[e+1],y:this.sy[e+1]},h=l.dist_to_segment(i,_,r);hthis,t.line_indices=[e])}return t}_hit_span(e){const{sx:t,sy:i}=e,s=l.create_empty_hit_test_result();let n,_;\"v\"==e.direction?(n=this.renderer.yscale.invert(i),_=this._y):(n=this.renderer.xscale.invert(t),_=this._x);for(let e=0,t=_.length-1;ethis,s.line_indices.push(e));return s}get_interpolation_hit(e,t){const[i,s,n,l]=[this._x[e],this._y[e],this._x[e+1],this._y[e+1]];return _.line_interpolation(this.renderer,t,i,s,n,l)}draw_legend_for_index(e,t,i){_.generic_line_legend(this.visuals,e,t,i)}}i.LineView=r,r.__name__=\"LineView\";class h extends n.XYGlyph{constructor(e){super(e)}static init_Line(){this.prototype.default_view=r,this.mixins([\"line\"])}}i.Line=h,h.__name__=\"Line\",h.init_Line()},\n",
" function _(e,t,s){Object.defineProperty(s,\"__esModule\",{value:!0});const i=e(82),n=e(86);class _ extends n.GlyphView{_index_data(){const e=[];for(let t=0,s=this._x.length;t0){this.index=new e.default(n.length);for(const t of n){const{x0:n,y0:i,x1:e,y1:s}=t;this.index.add(n,i,e,s)}this.index.finish()}}_normalize(n){let{x0:t,y0:i,x1:e,y1:s}=n;return t>e&&([t,e]=[e,t]),i>s&&([i,s]=[s,i]),{x0:t,y0:i,x1:e,y1:s}}get bbox(){if(null==this.index)return s.empty();{const{minX:n,minY:t,maxX:i,maxY:e}=this.index;return{x0:n,y0:t,x1:i,y1:e}}}search(n){if(null==this.index)return[];{const{x0:t,y0:i,x1:e,y1:s}=this._normalize(n);return this.index.search(t,i,e,s).map(n=>this.points[n])}}indices(n){return this.search(n).map(({i:n})=>n)}}i.SpatialIndex=r,r.__name__=\"SpatialIndex\"},\n",
" function _(t,s,i){Object.defineProperty(i,\"__esModule\",{value:!0});const e=t(1).__importDefault(t(84)),h=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];class n{static from(t){if(!(t instanceof ArrayBuffer))throw new Error(\"Data must be an instance of ArrayBuffer.\");const[s,i]=new Uint8Array(t,0,2);if(251!==s)throw new Error(\"Data does not appear to be in a Flatbush format.\");if(i>>4!=3)throw new Error(`Got v${i>>4} data when expected v3.`);const[e]=new Uint16Array(t,2,1),[o]=new Uint32Array(t,4,1);return new n(o,e,h[15&i],t)}constructor(t,s=16,i=Float64Array,n){if(void 0===t)throw new Error(\"Missing required argument: numItems.\");if(isNaN(t)||t<=0)throw new Error(`Unpexpected numItems value: ${t}.`);this.numItems=+t,this.nodeSize=Math.min(Math.max(+s,2),65535);let o=t,r=o;this._levelBounds=[4*o];do{o=Math.ceil(o/this.nodeSize),r+=o,this._levelBounds.push(4*r)}while(1!==o);this.ArrayType=i||Float64Array,this.IndexArrayType=r<16384?Uint16Array:Uint32Array;const a=h.indexOf(this.ArrayType),_=4*r*this.ArrayType.BYTES_PER_ELEMENT;if(a<0)throw new Error(`Unexpected typed array class: ${i}.`);n&&n instanceof ArrayBuffer?(this.data=n,this._boxes=new this.ArrayType(this.data,8,4*r),this._indices=new this.IndexArrayType(this.data,8+_,r),this._pos=4*r,this.minX=this._boxes[this._pos-4],this.minY=this._boxes[this._pos-3],this.maxX=this._boxes[this._pos-2],this.maxY=this._boxes[this._pos-1]):(this.data=new ArrayBuffer(8+_+r*this.IndexArrayType.BYTES_PER_ELEMENT),this._boxes=new this.ArrayType(this.data,8,4*r),this._indices=new this.IndexArrayType(this.data,8+_,r),this._pos=0,this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0,new Uint8Array(this.data,0,2).set([251,48+a]),new Uint16Array(this.data,2,1)[0]=s,new Uint32Array(this.data,4,1)[0]=t),this._queue=new e.default}add(t,s,i,e){const h=this._pos>>2;return this._indices[h]=h,this._boxes[this._pos++]=t,this._boxes[this._pos++]=s,this._boxes[this._pos++]=i,this._boxes[this._pos++]=e,tthis.maxX&&(this.maxX=i),e>this.maxY&&(this.maxY=e),h}finish(){if(this._pos>>2!==this.numItems)throw new Error(`Added ${this._pos>>2} items when expected ${this.numItems}.`);const t=this.maxX-this.minX,s=this.maxY-this.minY,i=new Uint32Array(this.numItems);for(let e=0;e=n)return;const o=s[h+n>>1];let r=h-1,_=n+1;for(;;){do{r++}while(s[r]o);if(r>=_)break;a(s,i,e,r,_)}t(s,i,e,h,_),t(s,i,e,_+1,n)}(i,this._boxes,this._indices,0,this.numItems-1);for(let t=0,s=0;th&&(h=r),a>n&&(n=a)}this._indices[this._pos>>2]=o,this._boxes[this._pos++]=t,this._boxes[this._pos++]=e,this._boxes[this._pos++]=h,this._boxes[this._pos++]=n}}}search(t,s,i,e,h){if(this._pos!==this._boxes.length)throw new Error(\"Data not yet indexed - call index.finish().\");let n=this._boxes.length-4,o=this._levelBounds.length-1;const r=[],a=[];for(;void 0!==n;){const _=Math.min(n+4*this.nodeSize,this._levelBounds[o]);for(let d=n;d<_;d+=4){const _=0|this._indices[d>>2];ithis._boxes[d+2]||s>this._boxes[d+3]||(n<4*this.numItems?(void 0===h||h(_))&&a.push(_):(r.push(_),r.push(o-1))))}o=r.pop(),n=r.pop()}return a}neighbors(t,s,i=1/0,e=1/0,h){if(this._pos!==this._boxes.length)throw new Error(\"Data not yet indexed - call index.finish().\");let n=this._boxes.length-4;const a=this._queue,_=[],d=e*e;for(;void 0!==n;){const e=Math.min(n+4*this.nodeSize,r(n,this._levelBounds));for(let i=n;i>2],r=o(t,this._boxes[i],this._boxes[i+2]),_=o(s,this._boxes[i+1],this._boxes[i+3]),d=r*r+_*_;n<4*this.numItems?(void 0===h||h(e))&&a.push(-e-1,d):a.push(e,d)}for(;a.length&&a.peek()<0;){if(a.peekValue()>d)return a.clear(),_;if(_.push(-a.pop()-1),_.length===i)return a.clear(),_}n=a.pop()}return a.clear(),_}}function o(t,s,i){return t>1;s[h]>t?e=h:i=h+1}return s[i]}function a(t,s,i,e,h){const n=t[e];t[e]=t[h],t[h]=n;const o=4*e,r=4*h,a=s[o],_=s[o+1],d=s[o+2],l=s[o+3];s[o]=s[r],s[o+1]=s[r+1],s[o+2]=s[r+2],s[o+3]=s[r+3],s[r]=a,s[r+1]=_,s[r+2]=d,s[r+3]=l;const u=i[e];i[e]=i[h],i[h]=u}function _(t,s){let i=t^s,e=65535^i,h=65535^(t|s),n=t&(65535^s),o=i|e>>1,r=i>>1^i,a=h>>1^e&n>>1^h,_=i&h>>1^n>>1^n;i=o,e=r,h=a,n=_,o=i&i>>2^e&e>>2,r=i&e>>2^e&(i^e)>>2,a^=i&h>>2^e&n>>2,_^=e&h>>2^(i^e)&n>>2,i=o,e=r,h=a,n=_,o=i&i>>4^e&e>>4,r=i&e>>4^e&(i^e)>>4,a^=i&h>>4^e&n>>4,_^=e&h>>4^(i^e)&n>>4,i=o,e=r,h=a,n=_,a^=i&h>>8^e&n>>8,_^=e&h>>8^(i^e)&n>>8,i=a^a>>1,e=_^_>>1;let d=t^s,l=e|65535^(d|i);return d=16711935&(d|d<<8),d=252645135&(d|d<<4),d=858993459&(d|d<<2),d=1431655765&(d|d<<1),l=16711935&(l|l<<8),l=252645135&(l|l<<4),l=858993459&(l|l<<2),l=1431655765&(l|l<<1),(l<<1|d)>>>0}i.default=n},\n",
" function _(s,t,i){Object.defineProperty(i,\"__esModule\",{value:!0});i.default=class{constructor(){this.ids=[],this.values=[],this.length=0}clear(){this.length=0}push(s,t){let i=this.length++;for(this.ids[i]=s,this.values[i]=t;i>0;){const s=i-1>>1,e=this.values[s];if(t>=e)break;this.ids[i]=this.ids[s],this.values[i]=e,i=s}this.ids[i]=s,this.values[i]=t}pop(){if(0===this.length)return;const s=this.ids[0];if(this.length--,this.length>0){const s=this.ids[0]=this.ids[this.length],t=this.values[0]=this.values[this.length],i=this.length>>1;let e=0;for(;e=t)break;this.ids[e]=h,this.values[e]=l,e=s}this.ids[e]=s,this.values[e]=t}return s}peek(){return this.ids[0]}peekValue(){return this.values[0]}}},\n",
" function _(t,i,e){Object.defineProperty(e,\"__esModule\",{value:!0});const{min:h,max:r}=Math;e.empty=function(){return{x0:1/0,y0:1/0,x1:-1/0,y1:-1/0}},e.positive_x=function(){return{x0:Number.MIN_VALUE,y0:-1/0,x1:1/0,y1:1/0}},e.positive_y=function(){return{x0:-1/0,y0:Number.MIN_VALUE,x1:1/0,y1:1/0}},e.union=function(t,i){return{x0:h(t.x0,i.x0),x1:r(t.x1,i.x1),y0:h(t.y0,i.y0),y1:r(t.y1,i.y1)}};class s{constructor(t){if(null==t)this.x0=0,this.y0=0,this.x1=0,this.y1=0;else if(\"x0\"in t){const{x0:i,y0:e,x1:h,y1:r}=t;if(!(i<=h&&e<=r))throw new Error(`invalid bbox {x0: ${i}, y0: ${e}, x1: ${h}, y1: ${r}}`);this.x0=i,this.y0=e,this.x1=h,this.y1=r}else if(\"x\"in t){const{x:i,y:e,width:h,height:r}=t;if(!(h>=0&&r>=0))throw new Error(`invalid bbox {x: ${i}, y: ${e}, width: ${h}, height: ${r}}`);this.x0=i,this.y0=e,this.x1=i+h,this.y1=e+r}else{let i,e,h,r;if(\"width\"in t)if(\"left\"in t)i=t.left,e=i+t.width;else if(\"right\"in t)e=t.right,i=e-t.width;else{const h=t.width/2;i=t.hcenter-h,e=t.hcenter+h}else i=t.left,e=t.right;if(\"height\"in t)if(\"top\"in t)h=t.top,r=h+t.height;else if(\"bottom\"in t)r=t.bottom,h=r-t.height;else{const i=t.height/2;h=t.vcenter-i,r=t.vcenter+i}else h=t.top,r=t.bottom;if(!(i<=e&&h<=r))throw new Error(`invalid bbox {left: ${i}, top: ${h}, right: ${e}, bottom: ${r}}`);this.x0=i,this.y0=h,this.x1=e,this.y1=r}}toString(){return`BBox({left: ${this.left}, top: ${this.top}, width: ${this.width}, height: ${this.height}})`}get left(){return this.x0}get top(){return this.y0}get right(){return this.x1}get bottom(){return this.y1}get p0(){return[this.x0,this.y0]}get p1(){return[this.x1,this.y1]}get x(){return this.x0}get y(){return this.y0}get width(){return this.x1-this.x0}get height(){return this.y1-this.y0}get rect(){return{x0:this.x0,y0:this.y0,x1:this.x1,y1:this.y1}}get box(){return{x:this.x,y:this.y,width:this.width,height:this.height}}get h_range(){return{start:this.x0,end:this.x1}}get v_range(){return{start:this.y0,end:this.y1}}get ranges(){return[this.h_range,this.v_range]}get aspect(){return this.width/this.height}get hcenter(){return(this.left+this.right)/2}get vcenter(){return(this.top+this.bottom)/2}contains(t,i){return t>=this.x0&&t<=this.x1&&i>=this.y0&&i<=this.y1}clip(t,i){return tthis.x1&&(t=this.x1),ithis.y1&&(i=this.y1),[t,i]}union(t){return new s({x0:h(this.x0,t.x0),y0:h(this.y0,t.y0),x1:r(this.x1,t.x1),y1:r(this.y1,t.y1)})}equals(t){return this.x0==t.x0&&this.y0==t.y0&&this.x1==t.x1&&this.y1==t.y1}get xview(){return{compute:t=>this.left+t,v_compute:t=>{const i=new Float64Array(t.length),e=this.left;for(let h=0;hthis.bottom-t,v_compute:t=>{const i=new Float64Array(t.length),e=this.bottom;for(let h=0;hi.__importStar(t(358)))}catch(t){if(\"MODULE_NOT_FOUND\"!==t.code)throw t;c.logger.warn(\"WebGL was requested and is supported, but bokeh-gl(.min).js is not available, falling back to 2D rendering.\")}if(null!=s){const t=s[this.model.type+\"GLGlyph\"];null!=t&&(this.glglyph=new t(e.gl,this))}}}set_visuals(t){this.visuals.warm_cache(t),null!=this.glglyph&&this.glglyph.set_visuals_changed()}render(t,e,s){t.beginPath(),null!=this.glglyph&&this.glglyph.render(t,e,s)||this._render(t,e,s)}has_finished(){return!0}notify_finished(){this.renderer.notify_finished()}_bounds(t){return t}bounds(){return this._bounds(this.index.bbox)}log_bounds(){const t=a.empty(),e=this.index.search(a.positive_x());for(const s of e)s.x0t.x1&&(t.x1=s.x1);const s=this.index.search(a.positive_y());for(const e of s)e.y0t.y1&&(t.y1=e.y1);return this._bounds(t)}get_anchor_point(t,e,[s,i]){switch(t){case\"center\":return{x:this.scenterx(e,s,i),y:this.scentery(e,s,i)};default:return null}}sdist(t,e,s,i=\"edge\",n=!1){let r,a;const _=e.length;if(\"center\"==i){const t=d.map(s,t=>t/2);r=new Float64Array(_);for(let s=0;s<_;s++)r[s]=e[s]-t[s];a=new Float64Array(_);for(let s=0;s<_;s++)a[s]=e[s]+t[s]}else{r=e,a=new Float64Array(_);for(let t=0;t<_;t++)a[t]=r[t]+s[t]}const l=t.v_compute(r),o=t.v_compute(a);return n?d.map(l,(t,e)=>Math.ceil(Math.abs(o[e]-l[e]))):d.map(l,(t,e)=>Math.abs(o[e]-l[e]))}draw_legend_for_index(t,e,s){}hit_test(t){switch(t.type){case\"point\":if(null!=this._hit_point)return this._hit_point(t);break;case\"span\":if(null!=this._hit_span)return this._hit_span(t);break;case\"rect\":if(null!=this._hit_rect)return this._hit_rect(t);break;case\"poly\":if(null!=this._hit_poly)return this._hit_poly(t)}return this._nohit_warned.has(t.type)||(c.logger.debug(`'${t.type}' selection not available for ${this.model.type}`),this._nohit_warned.add(t.type)),null}_hit_rect_against_index(t){const{sx0:e,sx1:s,sy0:i,sy1:r}=t,[a,_]=this.renderer.xscale.r_invert(e,s),[l,o]=this.renderer.yscale.r_invert(i,r),h=n.create_empty_hit_test_result();return h.indices=this.index.indices({x0:a,x1:_,y0:l,y1:o}),h}set_data(t,e,s){let i=this.model.materialize_dataspecs(t);if(this.visuals.set_all_indices(e),e&&!(this instanceof u.LineView)){const t={};for(const s in i){const n=i[s];\"_\"===s.charAt(0)?t[s]=e.map(t=>n[t]):t[s]=n}i=t}const n=this;if(p.extend(n,i),this.renderer.plot_view.model.use_map&&(null!=n._x&&([n._x,n._y]=_.project_xy(n._x,n._y)),null!=n._xs&&([n._xs,n._ys]=_.project_xsys(n._xs,n._ys)),null!=n._x0&&([n._x0,n._y0]=_.project_xy(n._x0,n._y0)),null!=n._x1&&([n._x1,n._y1]=_.project_xy(n._x1,n._y1))),null!=this.renderer.plot_view.frame.x_ranges){const t=this.renderer.plot_view.frame.x_ranges[this.model.x_range_name],e=this.renderer.plot_view.frame.y_ranges[this.model.y_range_name];for(let[s,i]of this.model._coords)s=`_${s}`,i=`_${i}`,null!=n._xs?(t instanceof g.FactorRange&&(n[s]=d.map(n[s],e=>t.v_synthetic(e))),e instanceof g.FactorRange&&(n[i]=d.map(n[i],t=>e.v_synthetic(t)))):(t instanceof g.FactorRange&&(n[s]=t.v_synthetic(n[s])),e instanceof g.FactorRange&&(n[i]=e.v_synthetic(n[i])))}null!=this.glglyph&&this.glglyph.set_data_changed(n._x.length),this._set_data(s),this.index_data()}_set_data(t){}index_data(){this.index=this._index_data()}mask_data(t){return null!=this.glglyph||null==this._mask_data?t:this._mask_data()}map_data(){const t=this;for(let[e,s]of this.model._coords){const i=`s${e}`,n=`s${s}`;if(e=`_${e}`,s=`_${s}`,null!=t[e]&&(y.isArray(t[e][0])||y.isTypedArray(t[e][0]))){const r=t[e].length;t[i]=new Array(r),t[n]=new Array(r);for(let a=0;a1?e:{x:n.x+r*(e.x-n.x),y:n.y+r*(e.y-n.y)})}e.point_in_poly=function(t,n,e,i){let r=!1,s=e[e.length-1],o=i[i.length-1];for(let c=0;cn).map(([t,n])=>t),n},e.dist_2_pts=o,e.dist_to_segment_squared=c,e.dist_to_segment=function(t,n,e){return Math.sqrt(c(t,n,e))},e.check_2_segments_intersect=function(t,n,e,i,r,s,o,c){const u=(c-s)*(e-t)-(o-r)*(i-n);if(0==u)return{hit:!1,x:null,y:null};{let _=n-s,l=t-r;const h=(e-t)*_-(i-n)*l;return _=((o-r)*_-(c-s)*l)/u,l=h/u,{hit:_>0&&_<1&&l>0&&l<1,x:t+_*(e-t),y:n+_*(i-n)}}}},\n",
" function _(t,n,e){Object.defineProperty(e,\"__esModule\",{value:!0});const i=t(1),s=t(89),r=i.__importStar(t(19)),a=t(12),o=t(9),p=t(8),h=t(11);function g(t,n,e=0){const i={};for(let s=0;sa[t].value));s[t]={value:u/i,mapping:a},p+=i+n+c}return[s,a,(a.length-1)*n+h]}function u(t,n,e,i,s=0){const r={},a={},p=[];for(const[n,e,i]of t)n in a||(a[n]=[],p.push(n)),a[n].push([e,i]);const h=[];let g=s,u=0;for(const t of p){const s=a[t].length,[p,l,_]=c(a[t],e,i,g);for(const n of l)h.push([t,n]);u+=_;const d=o.sum(a[t].map(([t])=>p[t].value));r[t]={value:d/s,mapping:p},g+=s+n+_}return[r,p,h,(p.length-1)*n+u]}e.map_one_level=g,e.map_two_levels=c,e.map_three_levels=u;class l extends s.Range{constructor(t){super(t)}static init_FactorRange(){this.define({factors:[r.Array,[]],factor_padding:[r.Number,0],subgroup_padding:[r.Number,.8],group_padding:[r.Number,1.4],range_padding:[r.Number,0],range_padding_units:[r.PaddingUnits,\"percent\"],start:[r.Number],end:[r.Number]}),this.internal({levels:[r.Number],mids:[r.Array],tops:[r.Array],tops_groups:[r.Array]})}get min(){return this.start}get max(){return this.end}initialize(){super.initialize(),this._init(!0)}connect_signals(){super.connect_signals(),this.connect(this.properties.factors.change,()=>this.reset()),this.connect(this.properties.factor_padding.change,()=>this.reset()),this.connect(this.properties.group_padding.change,()=>this.reset()),this.connect(this.properties.subgroup_padding.change,()=>this.reset()),this.connect(this.properties.range_padding.change,()=>this.reset()),this.connect(this.properties.range_padding_units.change,()=>this.reset())}reset(){this._init(!1),this.change.emit()}_lookup(t){if(1==t.length){const n=this._mapping;return n.hasOwnProperty(t[0])?n[t[0]].value:NaN}if(2==t.length){const n=this._mapping;return n.hasOwnProperty(t[0])&&n[t[0]].mapping.hasOwnProperty(t[1])?n[t[0]].mapping[t[1]].value:NaN}if(3==t.length){const n=this._mapping;return n.hasOwnProperty(t[0])&&n[t[0]].mapping.hasOwnProperty(t[1])&&n[t[0]].mapping[t[1]].mapping.hasOwnProperty(t[2])?n[t[0]].mapping[t[1]].mapping[t[2]].value:NaN}h.unreachable()}synthetic(t){if(p.isNumber(t))return t;if(p.isString(t))return this._lookup([t]);let n=0;const e=t[t.length-1];return p.isNumber(e)&&(n=e,t=t.slice(0,-1)),this._lookup(t)+n}v_synthetic(t){return a.map(t,t=>this.synthetic(t))}_init(t){let n,e;if(o.every(this.factors,p.isString))n=1,[this._mapping,e]=g(this.factors,this.factor_padding);else if(o.every(this.factors,t=>p.isArray(t)&&2==t.length&&p.isString(t[0])&&p.isString(t[1])))n=2,[this._mapping,this.tops,e]=c(this.factors,this.group_padding,this.factor_padding);else{if(!o.every(this.factors,t=>p.isArray(t)&&3==t.length&&p.isString(t[0])&&p.isString(t[1])&&p.isString(t[2])))throw new Error(\"???\");n=3,[this._mapping,this.tops,this.mids,e]=u(this.factors,this.group_padding,this.subgroup_padding,this.factor_padding)}let i=0,s=this.factors.length+e;if(\"percent\"==this.range_padding_units){const t=(s-i)*this.range_padding/2;i-=t,s+=t}else i-=this.range_padding,s+=this.range_padding;this.setv({start:i,end:s,levels:n},{silent:t}),\"auto\"==this.bounds&&this.setv({bounds:[i,s]},{silent:!0})}}e.FactorRange=l,l.__name__=\"FactorRange\",l.init_FactorRange()},\n",
" function _(e,t,n){Object.defineProperty(n,\"__esModule\",{value:!0});const i=e(1),a=e(69),r=i.__importStar(e(19));class s extends a.Model{constructor(e){super(e),this.have_updated_interactively=!1}static init_Range(){this.define({bounds:[r.Any],min_interval:[r.Any],max_interval:[r.Any]}),this.internal({plots:[r.Array,[]]})}get is_reversed(){return this.start>this.end}}n.Range=s,s.__name__=\"Range\",s.init_Range()},\n",
" function _(e,t,i){Object.defineProperty(i,\"__esModule\",{value:!0});const n=e(1).__importStar(e(87));i.generic_line_legend=function(e,t,{x0:i,x1:n,y0:c,y1:o},r){t.save(),t.beginPath(),t.moveTo(i,(c+o)/2),t.lineTo(n,(c+o)/2),e.line.doit&&(e.line.set_vectorize(t,r),t.stroke()),t.restore()},i.generic_area_legend=function(e,t,{x0:i,x1:n,y0:c,y1:o},r){const l=.1*Math.abs(n-i),a=.1*Math.abs(o-c),s=i+l,_=n-l,h=c+a,v=o-a;e.fill.doit&&(e.fill.set_vectorize(t,r),t.fillRect(s,h,_-s,v-h)),null!=e.hatch&&e.hatch.doit&&(e.hatch.set_vectorize(t,r),t.fillRect(s,h,_-s,v-h)),e.line&&e.line.doit&&(t.beginPath(),t.rect(s,h,_-s,v-h),e.line.set_vectorize(t,r),t.stroke())},i.line_interpolation=function(e,t,i,c,o,r){const{sx:l,sy:a}=t;let s,_,h,v;\"point\"==t.type?([h,v]=e.yscale.r_invert(a-1,a+1),[s,_]=e.xscale.r_invert(l-1,l+1)):\"v\"==t.direction?([h,v]=e.yscale.r_invert(a,a),[s,_]=[Math.min(i-1,o-1),Math.max(i+1,o+1)]):([s,_]=e.xscale.r_invert(l,l),[h,v]=[Math.min(c-1,r-1),Math.max(c+1,r+1)]);const{x:x,y:y}=n.check_2_segments_intersect(s,h,_,v,i,c,o,r);return[x,y]}},\n",
" function _(e,t,i){Object.defineProperty(i,\"__esModule\",{value:!0});const s=e(1),l=e(81),_=e(90),n=s.__importStar(e(87));class a extends l.XYGlyphView{_inner_loop(e,t,i,s,l){for(const _ of t)0!=_?isNaN(i[_]+s[_])?(e.closePath(),l.apply(e),e.beginPath()):e.lineTo(i[_],s[_]):(e.beginPath(),e.moveTo(i[_],s[_]));e.closePath(),l.call(e)}_render(e,t,{sx:i,sy:s}){this.visuals.fill.doit&&(this.visuals.fill.set_value(e),this._inner_loop(e,t,i,s,e.fill)),this.visuals.hatch.doit2(e,0,()=>this._inner_loop(e,t,i,s,e.fill),()=>this.renderer.request_render()),this.visuals.line.doit&&(this.visuals.line.set_value(e),this._inner_loop(e,t,i,s,e.stroke))}draw_legend_for_index(e,t,i){_.generic_area_legend(this.visuals,e,t,i)}_hit_point(e){const t=n.create_empty_hit_test_result();return n.point_in_poly(e.sx,e.sy,this.sx,this.sy)&&(t.add_to_selected_glyphs(this.model),t.get_view=()=>this),t}}i.PatchView=a,a.__name__=\"PatchView\";class o extends l.XYGlyph{constructor(e){super(e)}static init_Patch(){this.prototype.default_view=a,this.mixins([\"line\",\"fill\",\"hatch\"])}}i.Patch=o,o.__name__=\"Patch\",o.init_Patch()},\n",
" function _(e,t,s){Object.defineProperty(s,\"__esModule\",{value:!0});const i=e(1),r=e(93),n=e(82),_=i.__importStar(e(87)),a=i.__importStar(e(19));class h extends r.AreaView{_index_data(){const e=[];for(let t=0,s=this._x1.length;t=0;t--)e.lineTo(s[t],i[t]);e.closePath(),r.call(e)}_render(e,t,{sx1:s,sx2:i,sy:r}){this.visuals.fill.doit&&(this.visuals.fill.set_value(e),this._inner(e,s,i,r,e.fill)),this.visuals.hatch.doit2(e,0,()=>this._inner(e,s,i,r,e.fill),()=>this.renderer.request_render())}_hit_point(e){const t=_.create_empty_hit_test_result(),s=this.sy.length,i=new Float64Array(2*s),r=new Float64Array(2*s);for(let e=0,t=s;ethis),t}scenterx(e){return(this.sx1[e]+this.sx2[e])/2}scentery(e){return this.sy[e]}_map_data(){this.sx1=this.renderer.xscale.v_compute(this._x1),this.sx2=this.renderer.xscale.v_compute(this._x2),this.sy=this.renderer.yscale.v_compute(this._y)}}s.HAreaView=h,h.__name__=\"HAreaView\";class l extends r.Area{constructor(e){super(e)}static init_HArea(){this.prototype.default_view=h,this.define({x1:[a.CoordinateSpec],x2:[a.CoordinateSpec],y:[a.CoordinateSpec]})}}s.HArea=l,l.__name__=\"HArea\",l.init_HArea()},\n",
" function _(e,i,_){Object.defineProperty(_,\"__esModule\",{value:!0});const a=e(86),n=e(90);class s extends a.GlyphView{draw_legend_for_index(e,i,_){n.generic_area_legend(this.visuals,e,i,_)}}_.AreaView=s,s.__name__=\"AreaView\";class r extends a.Glyph{constructor(e){super(e)}static init_Area(){this.mixins([\"fill\",\"hatch\"])}}_.Area=r,r.__name__=\"Area\",r.init_Area()},\n",
" function _(e,t,s){Object.defineProperty(s,\"__esModule\",{value:!0});const i=e(1),r=e(93),n=e(82),_=i.__importStar(e(87)),a=i.__importStar(e(19));class h extends r.AreaView{_index_data(){const e=[];for(let t=0,s=this._x.length;t=0;s--)e.lineTo(t[s],i[s]);e.closePath(),r.call(e)}_render(e,t,{sx:s,sy1:i,sy2:r}){this.visuals.fill.doit&&(this.visuals.fill.set_value(e),this._inner(e,s,i,r,e.fill)),this.visuals.hatch.doit2(e,0,()=>this._inner(e,s,i,r,e.fill),()=>this.renderer.request_render())}scenterx(e){return this.sx[e]}scentery(e){return(this.sy1[e]+this.sy2[e])/2}_hit_point(e){const t=_.create_empty_hit_test_result(),s=this.sx.length,i=new Float64Array(2*s),r=new Float64Array(2*s);for(let e=0,t=s;ethis),t}_map_data(){this.sx=this.renderer.xscale.v_compute(this._x),this.sy1=this.renderer.yscale.v_compute(this._y1),this.sy2=this.renderer.yscale.v_compute(this._y2)}}s.VAreaView=h,h.__name__=\"VAreaView\";class l extends r.Area{constructor(e){super(e)}static init_VArea(){this.prototype.default_view=h,this.define({x:[a.CoordinateSpec],y1:[a.CoordinateSpec],y2:[a.CoordinateSpec]})}}s.VArea=l,l.__name__=\"VArea\",l.init_VArea()},\n",
" function _(i,e,s){Object.defineProperty(s,\"__esModule\",{value:!0});const t=i(1),n=i(69),c=t.__importStar(i(19)),o=i(76),r=i(9),_=i(74);class h extends n.Model{constructor(i){super(i)}static init_CDSView(){this.define({filters:[c.Array,[]],source:[c.Instance]}),this.internal({indices:[c.Array,[]],indices_map:[c.Any,{}]})}initialize(){super.initialize(),this.compute_indices()}connect_signals(){super.connect_signals(),this.connect(this.properties.filters.change,()=>{this.compute_indices(),this.change.emit()});const i=()=>{const i=()=>this.compute_indices();null!=this.source&&(this.connect(this.source.change,i),this.source instanceof _.ColumnarDataSource&&(this.connect(this.source.streaming,i),this.connect(this.source.patching,i)))};let e=null!=this.source;e?i():this.connect(this.properties.source.change,()=>{e||(i(),e=!0)})}compute_indices(){const i=this.filters.map(i=>i.compute_indices(this.source)).filter(i=>null!=i);i.length>0?this.indices=r.intersection.apply(this,i):this.source instanceof _.ColumnarDataSource&&(this.indices=this.source.get_indices()),this.indices_map_to_subset()}indices_map_to_subset(){this.indices_map={};for(let i=0;ithis.indices[i]);return e.indices=s,e.image_indices=i.image_indices,e}convert_selection_to_subset(i){const e=new o.Selection;e.update_through_union(i);const s=i.indices.map(i=>this.indices_map[i]);return e.indices=s,e.image_indices=i.image_indices,e}convert_indices_from_subset(i){return i.map(i=>this.indices[i])}}s.CDSView=h,h.__name__=\"CDSView\",h.init_CDSView()},\n",
" function _(e,n,t){Object.defineProperty(t,\"__esModule\",{value:!0});const i=e(9);async function o(e,n,t){const i=new e(Object.assign(Object.assign({},t),{model:n}));return i.initialize(),await i.lazy_initialize(),i}t.build_view=async function(e,n={parent:null},t=(e=>e.default_view)){const i=await o(t(e),e,n);return i.connect_signals(),i},t.build_views=async function(e,n,t={parent:null},c=(e=>e.default_view)){const s=i.difference(Object.keys(e),n.map(e=>e.id));for(const n of s)e[n].remove(),delete e[n];const a=[],l=n.filter(n=>null==e[n.id]);for(const n of l){const i=await o(c(n),n,t);e[n.id]=i,a.push(i)}for(const e of a)e.connect_signals();return a},t.remove_views=function(e){for(const n in e)e[n].remove(),delete e[n]}},\n",
" function _(e,t,n){Object.defineProperty(n,\"__esModule\",{value:!0});const s=e(1),r=e(79),a=e(98),i=s.__importStar(e(19)),d=e(96);class _ extends r.DataRendererView{initialize(){super.initialize(),this.xscale=this.plot_view.frame.xscales.default,this.yscale=this.plot_view.frame.yscales.default,this._renderer_views={}}async lazy_initialize(){[this.node_view,this.edge_view]=await d.build_views(this._renderer_views,[this.model.node_renderer,this.model.edge_renderer],{parent:this.parent}),this.set_data()}connect_signals(){super.connect_signals(),this.connect(this.model.layout_provider.change,()=>this.set_data()),this.connect(this.model.node_renderer.data_source._select,()=>this.set_data()),this.connect(this.model.node_renderer.data_source.inspect,()=>this.set_data()),this.connect(this.model.node_renderer.data_source.change,()=>this.set_data()),this.connect(this.model.edge_renderer.data_source._select,()=>this.set_data()),this.connect(this.model.edge_renderer.data_source.inspect,()=>this.set_data()),this.connect(this.model.edge_renderer.data_source.change,()=>this.set_data());const{x_ranges:e,y_ranges:t}=this.plot_view.frame;for(const t in e){const n=e[t];this.connect(n.change,()=>this.set_data())}for(const e in t){const n=t[e];this.connect(n.change,()=>this.set_data())}}set_data(e=!0){this.node_view.glyph.model.setv({x_range_name:this.model.x_range_name,y_range_name:this.model.y_range_name},{silent:!0}),this.edge_view.glyph.model.setv({x_range_name:this.model.x_range_name,y_range_name:this.model.y_range_name},{silent:!0});const t=this.node_view.glyph;[t._x,t._y]=this.model.layout_provider.get_node_coordinates(this.model.node_renderer.data_source);const n=this.edge_view.glyph;[n._xs,n._ys]=this.model.layout_provider.get_edge_coordinates(this.model.edge_renderer.data_source),t.index_data(),n.index_data(),e&&this.request_render()}render(){this.edge_view.render(),this.node_view.render()}}n.GraphRendererView=_,_.__name__=\"GraphRendererView\";class o extends r.DataRenderer{constructor(e){super(e)}static init_GraphRenderer(){this.prototype.default_view=_,this.define({layout_provider:[i.Instance],node_renderer:[i.Instance],edge_renderer:[i.Instance],selection_policy:[i.Instance,()=>new a.NodesOnly],inspection_policy:[i.Instance,()=>new a.NodesOnly]})}get_selection_manager(){return this.node_renderer.data_source.selection_manager}}n.GraphRenderer=o,o.__name__=\"GraphRenderer\",o.init_GraphRenderer()},\n",
" function _(e,t,d){Object.defineProperty(d,\"__esModule\",{value:!0});const n=e(69),s=e(12),o=e(9),_=e(87);class i extends n.Model{constructor(e){super(e)}_hit_test_nodes(e,t){if(!t.model.visible)return null;const d=t.node_view.glyph.hit_test(e);return null==d?null:t.node_view.model.view.convert_selection_from_subset(d)}_hit_test_edges(e,t){if(!t.model.visible)return null;const d=t.edge_view.glyph.hit_test(e);return null==d?null:t.edge_view.model.view.convert_selection_from_subset(d)}}d.GraphHitTestPolicy=i,i.__name__=\"GraphHitTestPolicy\";class r extends i{constructor(e){super(e)}hit_test(e,t){return this._hit_test_nodes(e,t)}do_selection(e,t,d,n){if(null==e)return!1;const s=t.node_renderer.data_source.selected;return s.update(e,d,n),t.node_renderer.data_source._select.emit(),!s.is_empty()}do_inspection(e,t,d,n,s){if(null==e)return!1;const o=d.model.get_selection_manager().get_or_create_inspector(d.node_view.model);return o.update(e,n,s),d.node_view.model.data_source.setv({inspected:o},{silent:!0}),d.node_view.model.data_source.inspect.emit([d.node_view,{geometry:t}]),!o.is_empty()}}d.NodesOnly=r,r.__name__=\"NodesOnly\";class c extends i{constructor(e){super(e)}hit_test(e,t){return this._hit_test_nodes(e,t)}get_linked_edges(e,t,d){let n=[];\"selection\"==d?n=e.selected.indices.map(t=>e.data.index[t]):\"inspection\"==d&&(n=e.inspected.indices.map(t=>e.data.index[t]));const s=[];for(let e=0;es.indexOf(e.data.index,t)),c=_.create_empty_hit_test_result();return c.indices=r,c}do_selection(e,t,d,n){if(null==e)return!1;const s=t.edge_renderer.data_source.selected;s.update(e,d,n);const o=t.node_renderer.data_source.selected,_=this.get_linked_nodes(t.node_renderer.data_source,t.edge_renderer.data_source,\"selection\");return o.update(_,d,n),t.edge_renderer.data_source._select.emit(),!s.is_empty()}do_inspection(e,t,d,n,s){if(null==e)return!1;const o=d.edge_view.model.data_source.selection_manager.get_or_create_inspector(d.edge_view.model);o.update(e,n,s),d.edge_view.model.data_source.setv({inspected:o},{silent:!0});const _=d.node_view.model.data_source.selection_manager.get_or_create_inspector(d.node_view.model),i=this.get_linked_nodes(d.node_view.model.data_source,d.edge_view.model.data_source,\"inspection\");return _.update(i,n,s),d.node_view.model.data_source.setv({inspected:_},{silent:!0}),d.edge_view.model.data_source.inspect.emit([d.edge_view,{geometry:t}]),!o.is_empty()}}d.EdgesAndLinkedNodes=a,a.__name__=\"EdgesAndLinkedNodes\"},\n",
" function _(e,t,n){Object.defineProperty(n,\"__esModule\",{value:!0});const s=e(69);class o extends s.Model{do_selection(e,t,n,s){return null!==e&&(t.selected.update(e,n,s),t._select.emit(),!t.selected.is_empty())}}n.SelectionPolicy=o,o.__name__=\"SelectionPolicy\";class r extends o{hit_test(e,t){const n=[];for(const s of t){const t=s.hit_test(e);null!==t&&n.push(t)}if(n.length>0){const e=n[0];for(const t of n)e.update_through_intersection(t);return e}return null}}n.IntersectRenderers=r,r.__name__=\"IntersectRenderers\";class c extends o{hit_test(e,t){const n=[];for(const s of t){const t=s.hit_test(e);null!==t&&n.push(t)}if(n.length>0){const e=n[0];for(const t of n)e.update_through_union(t);return e}return null}}n.UnionRenderers=c,c.__name__=\"UnionRenderers\"},\n",
" function _(r,n,t){Object.defineProperty(t,\"__esModule\",{value:!0});const e=r(8),a=r(101);function o(r){const n=new Uint8Array(r.buffer,r.byteOffset,2*r.length);for(let r=0,t=n.length;rString.fromCharCode(r));return btoa(t.join(\"\"))}function y(r){const n=atob(r),t=n.length,e=new Uint8Array(t);for(let r=0,a=t;rr.filter(r=>0!=r.length))]}function d(r,n){const t=[];for(let a=0,o=r.length;a{const e=\"undefined\"!=typeof navigator?navigator.userAgent:\"\";return e.indexOf(\"MSIE\")>=0||e.indexOf(\"Trident\")>0||e.indexOf(\"Edge\")>0})(),i.is_mobile=\"undefined\"!=typeof window&&(\"ontouchstart\"in window||navigator.maxTouchPoints>0),i.is_little_endian=(()=>{const e=new ArrayBuffer(4),n=new Uint8Array(e);new Uint32Array(e)[1]=168496141;let i=!0;return 10==n[4]&&11==n[5]&&12==n[6]&&13==n[7]&&(i=!1),i})()},\n",
" function _(t,e,n){Object.defineProperty(n,\"__esModule\",{value:!0}),n.concat=function(t,...e){let n=t.length;for(const t of e)n+=t.length;const o=new t.constructor(n);o.set(t,0);let c=t.length;for(const t of e)o.set(t,c),c+=t.length;return o}},\n",
" function _(e,t,s){Object.defineProperty(s,\"__esModule\",{value:!0});const n=e(13);class o{constructor(e){this.document=e}}s.DocumentChangedEvent=o,o.__name__=\"DocumentChangedEvent\";class r extends o{constructor(e,t,s){super(e),this.msg_type=t,this.msg_data=s}json(e){const t=this.msg_data,s=n.HasProps._value_to_json(\"\",t,null);return n.HasProps._value_record_references(t,{},!0),{kind:\"MessageSent\",msg_type:this.msg_type,msg_data:s}}}s.MessageSentEvent=r,r.__name__=\"MessageSentEvent\";class d extends o{constructor(e,t,s,n,o,r,d){super(e),this.model=t,this.attr=s,this.old=n,this.new_=o,this.setter_id=r,this.hint=d}json(e){if(\"id\"===this.attr)throw new Error(\"'id' field should never change, whatever code just set it is wrong\");if(null!=this.hint)return this.hint.json(e);const t=this.new_,s=n.HasProps._value_to_json(this.attr,t,this.model),o={};n.HasProps._value_record_references(t,o,!0),this.model.id in o&&this.model!==t&&delete o[this.model.id];for(const t in o)e[t]=o[t];return{kind:\"ModelChanged\",model:this.model.ref(),attr:this.attr,new:s}}}s.ModelChangedEvent=d,d.__name__=\"ModelChangedEvent\";class i extends o{constructor(e,t,s){super(e),this.column_source=t,this.patches=s}json(e){return{kind:\"ColumnsPatched\",column_source:this.column_source,patches:this.patches}}}s.ColumnsPatchedEvent=i,i.__name__=\"ColumnsPatchedEvent\";class _ extends o{constructor(e,t,s,n){super(e),this.column_source=t,this.data=s,this.rollover=n}json(e){return{kind:\"ColumnsStreamed\",column_source:this.column_source,data:this.data,rollover:this.rollover}}}s.ColumnsStreamedEvent=_,_.__name__=\"ColumnsStreamedEvent\";class a extends o{constructor(e,t,s){super(e),this.title=t,this.setter_id=s}json(e){return{kind:\"TitleChanged\",title:this.title}}}s.TitleChangedEvent=a,a.__name__=\"TitleChangedEvent\";class l extends o{constructor(e,t,s){super(e),this.model=t,this.setter_id=s}json(e){return n.HasProps._value_record_references(this.model,e,!0),{kind:\"RootAdded\",model:this.model.ref()}}}s.RootAddedEvent=l,l.__name__=\"RootAddedEvent\";class h extends o{constructor(e,t,s){super(e),this.model=t,this.setter_id=s}json(e){return{kind:\"RootRemoved\",model:this.model.ref()}}}s.RootRemovedEvent=h,h.__name__=\"RootRemovedEvent\"},\n",
" function _(e,t,s){Object.defineProperty(s,\"__esModule\",{value:!0});const i=e(1),_=e(29),o=e(73),l=i.__importStar(e(19));class a extends _.AnnotationView{initialize(){super.initialize(),this.set_data(this.model.source)}connect_signals(){super.connect_signals(),this.connect(this.model.source.streaming,()=>this.set_data(this.model.source)),this.connect(this.model.source.patching,()=>this.set_data(this.model.source)),this.connect(this.model.source.change,()=>this.set_data(this.model.source))}set_data(e){super.set_data(e),this.visuals.warm_cache(e),this.plot_view.request_render()}_map_data(){const{frame:e}=this.plot_view,t=this.model.dimension,s=e.xscales[this.model.x_range_name],i=e.yscales[this.model.y_range_name],_=\"height\"==t?i:s,o=\"height\"==t?s:i,l=\"height\"==t?e.yview:e.xview,a=\"height\"==t?e.xview:e.yview;let n,h,r;n=\"data\"==this.model.properties.lower.units?_.v_compute(this._lower):l.v_compute(this._lower),h=\"data\"==this.model.properties.upper.units?_.v_compute(this._upper):l.v_compute(this._upper),r=\"data\"==this.model.properties.base.units?o.v_compute(this._base):a.v_compute(this._base);const[c,p]=\"height\"==t?[1,0]:[0,1],u=[n,r],d=[h,r];this._lower_sx=u[c],this._lower_sy=u[p],this._upper_sx=d[c],this._upper_sy=d[p]}render(){if(!this.model.visible)return;this._map_data();const{ctx:e}=this.plot_view.canvas_view;e.beginPath(),e.moveTo(this._lower_sx[0],this._lower_sy[0]);for(let t=0,s=this._lower_sx.length;t=0;t--)e.lineTo(this._upper_sx[t],this._upper_sy[t]);e.closePath(),this.visuals.fill.doit&&(this.visuals.fill.set_value(e),e.fill()),e.beginPath(),e.moveTo(this._lower_sx[0],this._lower_sy[0]);for(let t=0,s=this._lower_sx.length;tnew o.ColumnDataSource],x_range_name:[l.String,\"default\"],y_range_name:[l.String,\"default\"]}),this.override({fill_color:\"#fff9ba\",fill_alpha:.4,line_color:\"#cccccc\",line_alpha:.3})}}s.Band=n,n.__name__=\"Band\",n.init_Band()},\n",
" function _(t,e,i){Object.defineProperty(i,\"__esModule\",{value:!0});const s=t(1),l=t(29),o=t(14),n=t(66),a=s.__importStar(t(19)),h=t(85),r=t(106);i.EDGE_TOLERANCE=2.5;class d extends l.AnnotationView{initialize(){super.initialize(),this.plot_view.canvas_view.add_overlay(this.el),this.el.classList.add(r.bk_shading),n.undisplay(this.el)}connect_signals(){super.connect_signals(),\"css\"==this.model.render_mode?(this.connect(this.model.change,()=>this.render()),this.connect(this.model.data_update,()=>this.render())):(this.connect(this.model.change,()=>this.plot_view.request_render()),this.connect(this.model.data_update,()=>this.plot_view.request_render()))}render(){if(this.model.visible||\"css\"!=this.model.render_mode||n.undisplay(this.el),!this.model.visible)return;if(null==this.model.left&&null==this.model.right&&null==this.model.top&&null==this.model.bottom)return void n.undisplay(this.el);const{frame:t}=this.plot_view,e=t.xscales[this.model.x_range_name],i=t.yscales[this.model.y_range_name],s=(t,e,i,s,l)=>{let o;return o=null!=t?this.model.screen?t:\"data\"==e?i.compute(t):s.compute(t):l,o};this.sleft=s(this.model.left,this.model.left_units,e,t.xview,t._left.value),this.sright=s(this.model.right,this.model.right_units,e,t.xview,t._right.value),this.stop=s(this.model.top,this.model.top_units,i,t.yview,t._top.value),this.sbottom=s(this.model.bottom,this.model.bottom_units,i,t.yview,t._bottom.value),(\"css\"==this.model.render_mode?this._css_box.bind(this):this._canvas_box.bind(this))(this.sleft,this.sright,this.sbottom,this.stop)}_css_box(t,e,i,s){const l=this.model.properties.line_width.value(),o=Math.floor(e-t)-l,a=Math.floor(i-s)-l;this.el.style.left=`${t}px`,this.el.style.width=`${o}px`,this.el.style.top=`${s}px`,this.el.style.height=`${a}px`,this.el.style.borderWidth=`${l}px`,this.el.style.borderColor=this.model.properties.line_color.value(),this.el.style.backgroundColor=this.model.properties.fill_color.value(),this.el.style.opacity=this.model.properties.fill_alpha.value();const h=this.model.properties.line_dash.value().length<2?\"solid\":\"dashed\";this.el.style.borderStyle=h,n.display(this.el)}_canvas_box(t,e,i,s){const{ctx:l}=this.plot_view.canvas_view;l.save(),l.beginPath(),l.rect(t,s,e-t,i-s),this.visuals.fill.set_value(l),l.fill(),this.visuals.line.set_value(l),l.stroke(),l.restore()}interactive_bbox(){const t=this.model.properties.line_width.value()+i.EDGE_TOLERANCE;return new h.BBox({x0:this.sleft-t,y0:this.stop-t,x1:this.sright+t,y1:this.sbottom+t})}interactive_hit(t,e){if(null==this.model.in_cursor)return!1;return this.interactive_bbox().contains(t,e)}cursor(t,e){return Math.abs(t-this.sleft)<3||Math.abs(t-this.sright)<3?this.model.ew_cursor:Math.abs(e-this.sbottom)<3||Math.abs(e-this.stop)<3?this.model.ns_cursor:t>this.sleft&&tthis.stop&ðis.plot_view.request_render()),this.connect(this.model.ticker.change,()=>this.plot_view.request_render()),this.connect(this.model.formatter.change,()=>this.plot_view.request_render()),null!=this.model.color_mapper&&this.connect(this.model.color_mapper.change,()=>{this._set_canvas_image(),this.plot_view.request_render()})}_get_size(){if(null==this.model.color_mapper)return{width:0,height:0};{const{width:t,height:e}=this.compute_legend_dimensions();return{width:t,height:e}}}_set_canvas_image(){if(null==this.model.color_mapper)return;let t,e,{palette:i}=this.model.color_mapper;switch(\"vertical\"==this.model.orientation&&(i=c.reversed(i)),this.model.orientation){case\"vertical\":[t,e]=[1,i.length];break;case\"horizontal\":[t,e]=[i.length,1]}const o=document.createElement(\"canvas\");o.width=t,o.height=e;const s=o.getContext(\"2d\"),a=s.getImageData(0,0,t,e),l=new r.LinearColorMapper({palette:i}).rgba_mapper.v_compute(c.range(0,i.length));a.data.set(l),s.putImageData(a,0,0),this.image=o}compute_legend_dimensions(){const t=this._computed_image_dimensions(),[e,i]=[t.height,t.width],o=this._get_label_extent(),s=this._title_extent(),a=this._tick_extent(),{padding:l}=this.model;let r,n;switch(this.model.orientation){case\"vertical\":r=e+s+2*l,n=i+a+o+2*l;break;case\"horizontal\":r=e+s+a+o+2*l,n=i+2*l}return{width:n,height:r}}compute_legend_location(){const t=this.compute_legend_dimensions(),[e,i]=[t.height,t.width],o=this.model.margin,s=null!=this.panel?this.panel:this.plot_view.frame,[a,l]=s.bbox.ranges,{location:r}=this.model;let n,_;if(g.isString(r))switch(r){case\"top_left\":n=a.start+o,_=l.start+o;break;case\"top_center\":n=(a.end+a.start)/2-i/2,_=l.start+o;break;case\"top_right\":n=a.end-o-i,_=l.start+o;break;case\"bottom_right\":n=a.end-o-i,_=l.end-o-e;break;case\"bottom_center\":n=(a.end+a.start)/2-i/2,_=l.end-o-e;break;case\"bottom_left\":n=a.start+o,_=l.end-o-e;break;case\"center_left\":n=a.start+o,_=(l.end+l.start)/2-e/2;break;case\"center\":n=(a.end+a.start)/2-i/2,_=(l.end+l.start)/2-e/2;break;case\"center_right\":n=a.end-o-i,_=(l.end+l.start)/2-e/2}else if(g.isArray(r)&&2==r.length){const[t,i]=r;n=s.xview.compute(t),_=s.yview.compute(i)-e}else f.unreachable();return{sx:n,sy:_}}render(){if(!this.model.visible||null==this.model.color_mapper)return;const{ctx:t}=this.plot_view.canvas_view;t.save();const{sx:e,sy:i}=this.compute_legend_location();t.translate(e,i),this._draw_bbox(t);const o=this._get_image_offset();if(t.translate(o.x,o.y),this._draw_image(t),null!=this.model.color_mapper.low&&null!=this.model.color_mapper.high){const e=this.tick_info();this._draw_major_ticks(t,e),this._draw_minor_ticks(t,e),this._draw_major_labels(t,e)}this.model.title&&this._draw_title(t),t.restore()}_draw_bbox(t){const e=this.compute_legend_dimensions();t.save(),this.visuals.background_fill.doit&&(this.visuals.background_fill.set_value(t),t.fillRect(0,0,e.width,e.height)),this.visuals.border_line.doit&&(this.visuals.border_line.set_value(t),t.strokeRect(0,0,e.width,e.height)),t.restore()}_draw_image(t){const e=this._computed_image_dimensions();t.save(),t.setImageSmoothingEnabled(!1),t.globalAlpha=this.model.scale_alpha,t.drawImage(this.image,0,0,e.width,e.height),this.visuals.bar_line.doit&&(this.visuals.bar_line.set_value(t),t.strokeRect(0,0,e.width,e.height)),t.restore()}_draw_major_ticks(t,e){if(!this.visuals.major_tick_line.doit)return;const[i,o]=this._normals(),s=this._computed_image_dimensions(),[a,l]=[s.width*i,s.height*o],[r,n]=e.coords.major,_=this.model.major_tick_in,h=this.model.major_tick_out;t.save(),t.translate(a,l),this.visuals.major_tick_line.set_value(t);for(let e=0,s=r.length;ei.measureText(t.toString()).width));break;case\"horizontal\":e=d.measure_font(this.visuals.major_label_text.font_value()).height}e+=this.model.label_standoff,i.restore()}return e}_get_image_offset(){return{x:this.model.padding,y:this.model.padding+this._title_extent()}}_normals(){return\"vertical\"==this.model.orientation?[1,0]:[0,1]}_title_extent(){const t=this.model.title_text_font+\" \"+this.model.title_text_font_size+\" \"+this.model.title_text_font_style;return this.model.title?d.measure_font(t).height+this.model.title_standoff:0}_tick_extent(){return null!=this.model.color_mapper.low&&null!=this.model.color_mapper.high?c.max([this.model.major_tick_out,this.model.minor_tick_out]):0}_computed_image_dimensions(){const t=this.plot_view.frame._height.value,e=this.plot_view.frame._width.value,i=this._title_extent();let o,s;switch(this.model.orientation){case\"vertical\":\"auto\"==this.model.height?null!=this.panel?o=t-2*this.model.padding-i:(o=c.max([25*this.model.color_mapper.palette.length,.3*t]),o=c.min([o,.8*t-2*this.model.padding-i])):o=this.model.height,s=\"auto\"==this.model.width?25:this.model.width;break;case\"horizontal\":o=\"auto\"==this.model.height?25:this.model.height,\"auto\"==this.model.width?null!=this.panel?s=e-2*this.model.padding:(s=c.max([25*this.model.color_mapper.palette.length,.3*e]),s=c.min([s,.8*e-2*this.model.padding])):s=this.model.width}return{width:s,height:o}}_tick_coordinate_scale(t){const e={source_range:new h.Range1d({start:this.model.color_mapper.low,end:this.model.color_mapper.high}),target_range:new h.Range1d({start:0,end:t})};switch(this.model.color_mapper.type){case\"LinearColorMapper\":return new n.LinearScale(e);case\"LogColorMapper\":return new _.LogScale(e);default:f.unreachable()}}_format_major_labels(t,e){const i=this.model.formatter.doFormat(t,null);for(let t=0,o=e.length;tl||(h[o].push(n[t]),h[s].push(0));for(let t=0,e=_.length;tl||(m[o].push(_[t]),m[s].push(0));const d={major:this._format_major_labels(h[o],n)},c={major:[[],[]],minor:[[],[]]};return c.major[o]=i.v_compute(h[o]),c.minor[o]=i.v_compute(m[o]),c.major[s]=h[s],c.minor[s]=m[s],\"vertical\"==this.model.orientation&&(c.major[o]=u.map(c.major[o],t=>e-t),c.minor[o]=u.map(c.minor[o],t=>e-t)),{coords:c,labels:d}}}i.ColorBarView=b,b.__name__=\"ColorBarView\";class v extends s.Annotation{constructor(t){super(t)}static init_ColorBar(){this.prototype.default_view=b,this.mixins([\"text:major_label_\",\"text:title_\",\"line:major_tick_\",\"line:minor_tick_\",\"line:border_\",\"line:bar_\",\"fill:background_\"]),this.define({location:[m.Any,\"top_right\"],orientation:[m.Orientation,\"vertical\"],title:[m.String],title_standoff:[m.Number,2],width:[m.Any,\"auto\"],height:[m.Any,\"auto\"],scale_alpha:[m.Number,1],ticker:[m.Instance,()=>new a.BasicTicker],formatter:[m.Instance,()=>new l.BasicTickFormatter],major_label_overrides:[m.Any,{}],color_mapper:[m.Instance],label_standoff:[m.Number,5],margin:[m.Number,30],padding:[m.Number,10],major_tick_in:[m.Number,5],major_tick_out:[m.Number,0],minor_tick_in:[m.Number,0],minor_tick_out:[m.Number,0]}),this.override({background_fill_color:\"#ffffff\",background_fill_alpha:.95,bar_line_color:null,border_line_color:null,major_label_text_align:\"center\",major_label_text_baseline:\"middle\",major_label_text_font_size:\"8pt\",major_tick_line_color:\"#ffffff\",minor_tick_line_color:null,title_text_font_size:\"10pt\",title_text_font_style:\"italic\"})}}i.ColorBar=v,v.__name__=\"ColorBar\",v.init_ColorBar()},\n",
" function _(e,c,s){Object.defineProperty(s,\"__esModule\",{value:!0});const i=e(109);class r extends i.AdaptiveTicker{constructor(e){super(e)}}s.BasicTicker=r,r.__name__=\"BasicTicker\"},\n",
" function _(t,i,a){Object.defineProperty(a,\"__esModule\",{value:!0});const e=t(1),s=t(110),n=t(9),r=e.__importStar(t(19));class _ extends s.ContinuousTicker{constructor(t){super(t)}static init_AdaptiveTicker(){this.define({base:[r.Number,10],mantissas:[r.Array,[1,2,5]],min_interval:[r.Number,0],max_interval:[r.Number]})}initialize(){super.initialize();const t=n.nth(this.mantissas,-1)/this.base,i=n.nth(this.mantissas,0)*this.base;this.extended_mantissas=[t,...this.mantissas,i],this.base_factor=0===this.get_min_interval()?1:this.get_min_interval()}get_interval(t,i,a){const e=i-t,s=this.get_ideal_interval(t,i,a),r=Math.floor(function(t,i=Math.E){return Math.log(t)/Math.log(i)}(s/this.base_factor,this.base)),_=Math.pow(this.base,r)*this.base_factor,h=this.extended_mantissas,m=h.map(t=>Math.abs(a-e/(t*_))),o=h[n.argmin(m)];return c=o*_,l=this.get_min_interval(),u=this.get_max_interval(),Math.max(l,Math.min(u,c));var c,l,u}}a.AdaptiveTicker=_,_.__name__=\"AdaptiveTicker\",_.init_AdaptiveTicker()},\n",
" function _(t,i,e){Object.defineProperty(e,\"__esModule\",{value:!0});const n=t(1),r=t(111),s=n.__importStar(t(19)),o=t(9),_=t(8);class c extends r.Ticker{constructor(t){super(t)}static init_ContinuousTicker(){this.define({num_minor_ticks:[s.Number,5],desired_num_ticks:[s.Number,6]})}get_ticks(t,i,e,n,r){return this.get_ticks_no_defaults(t,i,n,this.desired_num_ticks)}get_ticks_no_defaults(t,i,e,n){const r=this.get_interval(t,i,n),s=Math.floor(t/r),c=Math.ceil(i/r);let u;u=_.isStrictNaN(s)||_.isStrictNaN(c)?[]:o.range(s,c+1);const a=u.map(t=>t*r).filter(e=>t<=e&&e<=i),l=this.num_minor_ticks,m=[];if(l>0&&a.length>0){const e=r/l,n=o.range(0,l).map(t=>t*e);for(const e of n.slice(1)){const n=a[0]-e;t<=n&&n<=i&&m.push(n)}for(const e of a)for(const r of n){const n=e+r;t<=n&&n<=i&&m.push(n)}}return{major:a,minor:m}}get_min_interval(){return this.min_interval}get_max_interval(){return null!=this.max_interval?this.max_interval:1/0}get_ideal_interval(t,i,e){return(i-t)/e}}e.ContinuousTicker=c,c.__name__=\"ContinuousTicker\",c.init_ContinuousTicker()},\n",
" function _(e,c,n){Object.defineProperty(n,\"__esModule\",{value:!0});const o=e(69);class r extends o.Model{constructor(e){super(e)}}n.Ticker=r,r.__name__=\"Ticker\"},\n",
" function _(i,t,e){Object.defineProperty(e,\"__esModule\",{value:!0});const r=i(1),o=i(113),s=r.__importStar(i(19));class n extends o.TickFormatter{constructor(i){super(i),this.last_precision=3}static init_BasicTickFormatter(){this.define({precision:[s.Any,\"auto\"],use_scientific:[s.Boolean,!0],power_limit_high:[s.Number,5],power_limit_low:[s.Number,-3]})}get scientific_limit_low(){return Math.pow(10,this.power_limit_low)}get scientific_limit_high(){return Math.pow(10,this.power_limit_high)}_need_sci(i){if(!this.use_scientific)return!1;const{scientific_limit_high:t}=this,{scientific_limit_low:e}=this,r=i.length<2?0:Math.abs(i[1]-i[0])/1e4;for(const o of i){const i=Math.abs(o);if(!(i<=r)&&(i>=t||i<=e))return!0}return!1}_format_with_precision(i,t,e){const r=new Array(i.length);if(t)for(let t=0,o=i.length;t=1;r?o++:o--){if(t){e[0]=i[0].toExponential(o);for(let t=1;tu?null!=s?s:l[u]:l[f]}}}l.LinearColorMapper=i,i.__name__=\"LinearColorMapper\"},\n",
" function _(o,r,l){Object.defineProperty(l,\"__esModule\",{value:!0});const i=o(1),t=o(116),e=i.__importStar(o(19));class s extends t.ColorMapper{constructor(o){super(o)}static init_ContinuousColorMapper(){this.define({high:[e.Number],low:[e.Number],high_color:[e.Color],low_color:[e.Color]})}_colors(o){return Object.assign(Object.assign({},super._colors(o)),{low_color:null!=this.low_color?o(this.low_color):void 0,high_color:null!=this.high_color?o(this.high_color):void 0})}}l.ContinuousColorMapper=s,s.__name__=\"ContinuousColorMapper\",s.init_ContinuousColorMapper()},\n",
" function _(t,e,r){Object.defineProperty(r,\"__esModule\",{value:!0});const n=t(1),o=t(117),_=n.__importStar(t(19)),i=t(8),l=t(21),c=t(101);function a(t){return i.isNumber(t)?t:(\"#\"!=t[0]&&(t=l.color2hex(t)),9!=t.length&&(t+=\"ff\"),parseInt(t.slice(1),16))}function s(t){const e=new Uint32Array(t.length);for(let r=0,n=t.length;rt)),e}get rgba_mapper(){const t=this,e=s(this.palette),r=this._colors(a);return{v_compute(n){const o=new Uint32Array(n.length);return t._v_compute(n,o,e,r),p(o)}}}_colors(t){return{nan_color:t(this.nan_color)}}}r.ColorMapper=u,u.__name__=\"ColorMapper\",u.init_ColorMapper()},\n",
" function _(e,r,n){Object.defineProperty(n,\"__esModule\",{value:!0});const o=e(118);class s extends o.Transform{constructor(e){super(e)}compute(e){throw new Error(\"mapping single values is not supported\")}}n.Mapper=s,s.__name__=\"Mapper\"},\n",
" function _(e,n,o){Object.defineProperty(o,\"__esModule\",{value:!0});const r=e(69);class s extends r.Model{constructor(e){super(e)}}o.Transform=s,s.__name__=\"Transform\"},\n",
" function _(e,t,n){Object.defineProperty(n,\"__esModule\",{value:!0});const r=e(120);class _ extends r.ContinuousScale{constructor(e){super(e)}compute(e){return this._linear_compute(e)}v_compute(e){return this._linear_v_compute(e)}invert(e){return this._linear_invert(e)}v_invert(e){return this._linear_v_invert(e)}}n.LinearScale=_,_.__name__=\"LinearScale\"},\n",
" function _(e,n,o){Object.defineProperty(o,\"__esModule\",{value:!0});const c=e(121);class s extends c.Scale{constructor(e){super(e)}}o.ContinuousScale=s,s.__name__=\"ContinuousScale\"},\n",
" function _(t,e,r){Object.defineProperty(r,\"__esModule\",{value:!0});const n=t(1),_=t(122),s=n.__importStar(t(19));class i extends _.Transform{constructor(t){super(t)}static init_Scale(){this.internal({source_range:[s.Any],target_range:[s.Any]})}r_compute(t,e){return this.target_range.is_reversed?[this.compute(e),this.compute(t)]:[this.compute(t),this.compute(e)]}r_invert(t,e){return this.target_range.is_reversed?[this.invert(e),this.invert(t)]:[this.invert(t),this.invert(e)]}_linear_compute(t){const[e,r]=this._linear_compute_state();return e*t+r}_linear_v_compute(t){const[e,r]=this._linear_compute_state(),n=new Float64Array(t.length);for(let _=0;_this._sorted_dirty=!0)}v_compute(t){const e=new Float64Array(t.length);for(let r=0;rt.x>e.x?-1:t.x==e.x?0:1):s.sort((t,e)=>t.xthis._x_sorted[this._x_sorted.length-1])return NaN}else{if(tthis._x_sorted[this._x_sorted.length-1])return this._y_sorted[this._y_sorted.length-1]}if(t==this._x_sorted[0])return this._y_sorted[0];const s=_.find_last_index(this._x_sorted,s=>sthis._x_sorted[this._x_sorted.length-1])return NaN}else{if(tthis._x_sorted[this._x_sorted.length-1])return this._y_sorted[this._y_sorted.length-1]}let e;switch(this.mode){case\"after\":e=i.find_last_index(this._x_sorted,e=>t>=e);break;case\"before\":e=i.find_index(this._x_sorted,e=>t<=e);break;case\"center\":{const r=this._x_sorted.map(e=>Math.abs(e-t)),s=i.min(r);e=i.find_index(r,t=>s===t);break}default:throw new Error(`unknown mode: ${this.mode}`)}return-1!=e?this._y_sorted[e]:NaN}}r.StepInterpolator=n,n.__name__=\"StepInterpolator\",n.init_StepInterpolator()},\n",
" function _(t,e,o){Object.defineProperty(o,\"__esModule\",{value:!0});const a=t(120);class s extends a.ContinuousScale{constructor(t){super(t)}compute(t){const[e,o,a,s]=this._compute_state();let n;if(0==a)n=0;else{const r=(Math.log(t)-s)/a;n=isFinite(r)?r*e+o:NaN}return n}v_compute(t){const[e,o,a,s]=this._compute_state(),n=new Float64Array(t.length);if(0==a)for(let e=0;ethis.render()):this.connect(this.model.change,()=>this.plot_view.request_render())}_calculate_text_dimensions(e,t){const{width:s}=e.measureText(t),{height:i}=o.measure_font(this.visuals.text.font_value());return[s,i]}_calculate_bounding_box_dimensions(e,t){const[s,i]=this._calculate_text_dimensions(e,t);let l,a;switch(e.textAlign){case\"left\":l=0;break;case\"center\":l=-s/2;break;case\"right\":l=-s;break;default:_.unreachable()}switch(e.textBaseline){case\"top\":a=0;break;case\"middle\":a=-.5*i;break;case\"bottom\":a=-1*i;break;case\"alphabetic\":a=-.8*i;break;case\"hanging\":a=-.17*i;break;case\"ideographic\":a=-.83*i;break;default:_.unreachable()}return[l,a,s,i]}_canvas_text(e,t,s,i,l){this.visuals.text.set_value(e);const a=this._calculate_bounding_box_dimensions(e,t);e.save(),e.beginPath(),e.translate(s,i),l&&e.rotate(l),e.rect(a[0],a[1],a[2],a[3]),this.visuals.background_fill.doit&&(this.visuals.background_fill.set_value(e),e.fill()),this.visuals.border_line.doit&&(this.visuals.border_line.set_value(e),e.stroke()),this.visuals.text.doit&&(this.visuals.text.set_value(e),e.fillText(t,0,0)),e.restore()}_css_text(e,t,s,i,l){a.undisplay(this.el),this.visuals.text.set_value(e);const n=this._calculate_bounding_box_dimensions(e,t),o=this.visuals.border_line.line_dash.value().length<2?\"solid\":\"dashed\";this.visuals.border_line.set_value(e),this.visuals.background_fill.set_value(e),this.el.style.position=\"absolute\",this.el.style.left=`${s+n[0]}px`,this.el.style.top=`${i+n[1]}px`,this.el.style.color=`${this.visuals.text.text_color.value()}`,this.el.style.opacity=`${this.visuals.text.text_alpha.value()}`,this.el.style.font=`${this.visuals.text.font_value()}`,this.el.style.lineHeight=\"normal\",l&&(this.el.style.transform=`rotate(${l}rad)`),this.visuals.background_fill.doit&&(this.el.style.backgroundColor=`${this.visuals.background_fill.color_value()}`),this.visuals.border_line.doit&&(this.el.style.borderStyle=`${o}`,this.el.style.borderWidth=`${this.visuals.border_line.line_width.value()}px`,this.el.style.borderColor=`${this.visuals.border_line.color_value()}`),this.el.textContent=t,a.display(this.el)}}s.TextAnnotationView=h,h.__name__=\"TextAnnotationView\";class c extends l.Annotation{constructor(e){super(e)}static init_TextAnnotation(){this.define({render_mode:[n.RenderMode,\"canvas\"]})}}s.TextAnnotation=c,c.__name__=\"TextAnnotation\",c.init_TextAnnotation()},\n",
" function _(t,e,s){Object.defineProperty(s,\"__esModule\",{value:!0});const i=t(1),l=t(133),o=t(73),a=t(66),n=i.__importStar(t(19)),r=t(106);class _ extends l.TextAnnotationView{initialize(){if(super.initialize(),this.set_data(this.model.source),\"css\"==this.model.render_mode)for(let t=0,e=this._text.length;t{this.set_data(this.model.source),this.render()}),this.connect(this.model.source.streaming,()=>{this.set_data(this.model.source),this.render()}),this.connect(this.model.source.patching,()=>{this.set_data(this.model.source),this.render()}),this.connect(this.model.source.change,()=>{this.set_data(this.model.source),this.render()})):(this.connect(this.model.change,()=>{this.set_data(this.model.source),this.plot_view.request_render()}),this.connect(this.model.source.streaming,()=>{this.set_data(this.model.source),this.plot_view.request_render()}),this.connect(this.model.source.patching,()=>{this.set_data(this.model.source),this.plot_view.request_render()}),this.connect(this.model.source.change,()=>{this.set_data(this.model.source),this.plot_view.request_render()}))}set_data(t){super.set_data(t),this.visuals.warm_cache(t)}_map_data(){const t=this.plot_view.frame.xscales[this.model.x_range_name],e=this.plot_view.frame.yscales[this.model.y_range_name],s=null!=this.panel?this.panel:this.plot_view.frame;return[\"data\"==this.model.x_units?t.v_compute(this._x):s.xview.v_compute(this._x),\"data\"==this.model.y_units?e.v_compute(this._y):s.yview.v_compute(this._y)]}render(){if(this.model.visible||\"css\"!=this.model.render_mode||a.undisplay(this.el),!this.model.visible)return;const t=\"canvas\"==this.model.render_mode?this._v_canvas_text.bind(this):this._v_css_text.bind(this),{ctx:e}=this.plot_view.canvas_view,[s,i]=this._map_data();for(let l=0,o=this._text.length;lnew o.ColumnDataSource],x_range_name:[n.String,\"default\"],y_range_name:[n.String,\"default\"]}),this.override({background_fill_color:null,border_line_color:null})}}s.LabelSet=h,h.__name__=\"LabelSet\",h.init_LabelSet()},\n",
" function _(t,e,i){Object.defineProperty(i,\"__esModule\",{value:!0});const s=t(1),l=t(29),n=s.__importStar(t(19)),h=t(14),a=t(131),_=t(85),o=t(9),r=t(23),d=t(8),c=t(11);class m extends l.AnnotationView{cursor(t,e){return\"none\"==this.model.click_policy?null:\"pointer\"}get legend_padding(){return null!=this.visuals.border_line.line_color.value()?this.model.padding:0}connect_signals(){super.connect_signals(),this.connect(this.model.change,()=>this.plot_view.request_render()),this.connect(this.model.item_change,()=>this.plot_view.request_render())}compute_legend_bbox(){const t=this.model.get_legend_names(),{glyph_height:e,glyph_width:i}=this.model,{label_height:s,label_width:l}=this.model;this.max_label_height=o.max([a.measure_font(this.visuals.label_text.font_value()).height,s,e]);const{ctx:n}=this.plot_view.canvas_view;n.save(),this.visuals.label_text.set_value(n),this.text_widths={};for(const e of t)this.text_widths[e]=o.max([n.measureText(e).width,l]);this.visuals.title_text.set_value(n),this.title_height=this.model.title?a.measure_font(this.visuals.title_text.font_value()).height+this.model.title_standoff:0,this.title_width=this.model.title?n.measureText(this.model.title).width:0,n.restore();const h=Math.max(o.max(r.values(this.text_widths)),0),m=this.model.margin,{legend_padding:g}=this,b=this.model.spacing,{label_standoff:f}=this.model;let u,x;if(\"vertical\"==this.model.orientation)u=t.length*this.max_label_height+Math.max(t.length-1,0)*b+2*g+this.title_height,x=o.max([h+i+f+2*g,this.title_width+2*g]);else{let e=2*g+Math.max(t.length-1,0)*b;for(const t in this.text_widths){const s=this.text_widths[t];e+=o.max([s,l])+i+f}x=o.max([this.title_width+2*g,e]),u=this.max_label_height+this.title_height+2*g}const p=null!=this.panel?this.panel:this.plot_view.frame,[v,w]=p.bbox.ranges,{location:y}=this.model;let k,N;if(d.isString(y))switch(y){case\"top_left\":k=v.start+m,N=w.start+m;break;case\"top_center\":k=(v.end+v.start)/2-x/2,N=w.start+m;break;case\"top_right\":k=v.end-m-x,N=w.start+m;break;case\"bottom_right\":k=v.end-m-x,N=w.end-m-u;break;case\"bottom_center\":k=(v.end+v.start)/2-x/2,N=w.end-m-u;break;case\"bottom_left\":k=v.start+m,N=w.end-m-u;break;case\"center_left\":k=v.start+m,N=(w.end+w.start)/2-u/2;break;case\"center\":k=(v.end+v.start)/2-x/2,N=(w.end+w.start)/2-u/2;break;case\"center_right\":k=v.end-m-x,N=(w.end+w.start)/2-u/2}else if(d.isArray(y)&&2==y.length){const[t,e]=y;k=p.xview.compute(t),N=p.yview.compute(e)-u}else c.unreachable();return new _.BBox({left:k,top:N,width:x,height:u})}interactive_bbox(){return this.compute_legend_bbox()}interactive_hit(t,e){return this.interactive_bbox().contains(t,e)}on_hit(t,e){let i;const{glyph_width:s}=this.model,{legend_padding:l}=this,n=this.model.spacing,{label_standoff:h}=this.model;let a=i=l;const o=this.compute_legend_bbox(),r=\"vertical\"==this.model.orientation;for(const d of this.model.items){const c=d.get_labels_list_from_label_prop();for(const m of c){const c=o.x+a,g=o.y+i+this.title_height;let b,f;if([b,f]=r?[o.width-2*l,this.max_label_height]:[this.text_widths[m]+s+h,this.max_label_height],new _.BBox({left:c,top:g,width:b,height:f}).contains(t,e)){switch(this.model.click_policy){case\"hide\":for(const t of d.renderers)t.visible=!t.visible;break;case\"mute\":for(const t of d.renderers)t.muted=!t.muted}return!0}r?i+=this.max_label_height+n:a+=this.text_widths[m]+s+h+n}}return!1}render(){if(!this.model.visible)return;if(0==this.model.items.length)return;for(const t of this.model.items)t.legend=this.model;const{ctx:t}=this.plot_view.canvas_view,e=this.compute_legend_bbox();t.save(),this._draw_legend_box(t,e),this._draw_legend_items(t,e),this.model.title&&this._draw_title(t,e),t.restore()}_draw_legend_box(t,e){t.beginPath(),t.rect(e.x,e.y,e.width,e.height),this.visuals.background_fill.set_value(t),t.fill(),this.visuals.border_line.doit&&(this.visuals.border_line.set_value(t),t.stroke())}_draw_legend_items(t,e){const{glyph_width:i,glyph_height:s}=this.model,{legend_padding:l}=this,n=this.model.spacing,{label_standoff:h}=this.model;let a=l,_=l;const r=\"vertical\"==this.model.orientation;for(const d of this.model.items){const c=d.get_labels_list_from_label_prop(),m=d.get_field_from_label_prop();if(0==c.length)continue;const g=(()=>{switch(this.model.click_policy){case\"none\":return!0;case\"hide\":return o.every(d.renderers,t=>t.visible);case\"mute\":return o.every(d.renderers,t=>!t.muted)}})();for(const o of c){const c=e.x+a,b=e.y+_+this.title_height,f=c+i,u=b+s;r?_+=this.max_label_height+n:a+=this.text_widths[o]+i+h+n,this.visuals.label_text.set_value(t),t.fillText(o,f+h,b+this.max_label_height/2);for(const e of d.renderers){this.plot_view.renderer_views[e.id].draw_legend(t,c,f,b,u,m,o,d.index)}if(!g){let s,n;[s,n]=r?[e.width-2*l,this.max_label_height]:[this.text_widths[o]+i+h,this.max_label_height],t.beginPath(),t.rect(c,b,s,n),this.visuals.inactive_fill.set_value(t),t.fill()}}}}_draw_title(t,e){this.visuals.title_text.doit&&(t.save(),t.translate(e.x0,e.y0+this.title_height),this.visuals.title_text.set_value(t),t.fillText(this.model.title,this.legend_padding,this.legend_padding-this.model.title_standoff),t.restore())}_get_size(){const{width:t,height:e}=this.compute_legend_bbox();return{width:t+2*this.model.margin,height:e+2*this.model.margin}}}i.LegendView=m,m.__name__=\"LegendView\";class g extends l.Annotation{constructor(t){super(t)}initialize(){super.initialize(),this.item_change=new h.Signal0(this,\"item_change\")}static init_Legend(){this.prototype.default_view=m,this.mixins([\"text:label_\",\"text:title_\",\"fill:inactive_\",\"line:border_\",\"fill:background_\"]),this.define({orientation:[n.Orientation,\"vertical\"],location:[n.Any,\"top_right\"],title:[n.String],title_standoff:[n.Number,5],label_standoff:[n.Number,5],glyph_height:[n.Number,20],glyph_width:[n.Number,20],label_height:[n.Number,20],label_width:[n.Number,20],margin:[n.Number,10],padding:[n.Number,10],spacing:[n.Number,3],items:[n.Array,[]],click_policy:[n.Any,\"none\"]}),this.override({border_line_color:\"#e5e5e5\",border_line_alpha:.5,border_line_width:1,background_fill_color:\"#ffffff\",background_fill_alpha:.95,inactive_fill_color:\"white\",inactive_fill_alpha:.7,label_text_font_size:\"10pt\",label_text_baseline:\"middle\",title_text_font_size:\"10pt\",title_text_font_style:\"italic\"})}get_legend_names(){const t=[];for(const e of this.items){const i=e.get_labels_list_from_label_prop();t.push(...i)}return t}}i.Legend=g,g.__name__=\"Legend\",g.init_Legend()},\n",
" function _(e,r,n){Object.defineProperty(n,\"__esModule\",{value:!0});const t=e(1),l=e(69),i=e(74),s=e(137),_=t.__importStar(e(19)),o=e(70),a=e(9);class u extends l.Model{constructor(e){super(e)}static init_LegendItem(){this.define({label:[_.StringSpec,null],renderers:[_.Array,[]],index:[_.Number,null]})}_check_data_sources_on_renderers(){if(null!=this.get_field_from_label_prop()){if(this.renderers.length<1)return!1;const e=this.renderers[0].data_source;if(null!=e)for(const r of this.renderers)if(r.data_source!=e)return!1}return!0}_check_field_label_on_data_source(){const e=this.get_field_from_label_prop();if(null!=e){if(this.renderers.length<1)return!1;const r=this.renderers[0].data_source;if(null!=r&&!a.includes(r.columns(),e))return!1}return!0}initialize(){super.initialize(),this.legend=null,this.connect(this.change,()=>{null!=this.legend&&this.legend.item_change.emit()}),this._check_data_sources_on_renderers()||o.logger.error(\"Non matching data sources on legend item renderers\"),this._check_field_label_on_data_source()||o.logger.error(`Bad column name on label: ${this.label}`)}get_field_from_label_prop(){const{label:e}=this;return s.isField(e)?e.field:null}get_labels_list_from_label_prop(){if(s.isValue(this.label)){const{value:e}=this.label;return null!=e?[e]:[]}const e=this.get_field_from_label_prop();if(null!=e){let r;if(!this.renderers[0]||null==this.renderers[0].data_source)return[\"No source found\"];if(r=this.renderers[0].data_source,r instanceof i.ColumnarDataSource){const n=r.get_column(e);return null!=n?a.uniq(Array.from(n)):[\"Invalid field\"]}}return[]}}n.LegendItem=u,u.__name__=\"LegendItem\",u.init_LegendItem()},\n",
" function _(e,i,n){Object.defineProperty(n,\"__esModule\",{value:!0});const t=e(8);n.isValue=function(e){return t.isPlainObject(e)&&\"value\"in e},n.isField=function(e){return t.isPlainObject(e)&&\"field\"in e}},\n",
" function _(t,e,i){Object.defineProperty(i,\"__esModule\",{value:!0});const n=t(1),s=t(29),l=t(14),o=n.__importStar(t(19));class a extends s.AnnotationView{connect_signals(){super.connect_signals(),this.connect(this.model.change,()=>this.plot_view.request_render()),this.connect(this.model.data_update,()=>this.plot_view.request_render())}render(){if(!this.model.visible)return;const{xs:t,ys:e}=this.model;if(t.length!=e.length)return;if(t.length<3||e.length<3)return;const{frame:i}=this.plot_view,{ctx:n}=this.plot_view.canvas_view;for(let s=0,l=t.length;sthis.plot_view.request_render())}render(){this.model.visible&&this._draw_slope()}_draw_slope(){const e=this.model.gradient,t=this.model.y_intercept;if(null==e||null==t)return;const{frame:i}=this.plot_view,n=i.xscales[this.model.x_range_name],s=i.yscales[this.model.y_range_name],l=i._top.value,o=l+i._height.value,a=(s.invert(l)-t)/e,_=(s.invert(o)-t)/e,r=n.compute(a),c=n.compute(_),{ctx:u}=this.plot_view.canvas_view;u.save(),u.beginPath(),this.visuals.line.set_value(u),u.moveTo(r,l),u.lineTo(c,o),u.stroke(),u.restore()}}i.SlopeView=o,o.__name__=\"SlopeView\";class a extends s.Annotation{constructor(e){super(e)}static init_Slope(){this.prototype.default_view=o,this.mixins([\"line\"]),this.define({gradient:[l.Number,null],y_intercept:[l.Number,null],x_range_name:[l.String,\"default\"],y_range_name:[l.String,\"default\"]}),this.override({line_color:\"black\"})}}i.Slope=a,a.__name__=\"Slope\",a.init_Slope()},\n",
" function _(e,i,t){Object.defineProperty(t,\"__esModule\",{value:!0});const s=e(1),o=e(29),n=e(66),l=s.__importStar(e(19));class a extends o.AnnotationView{initialize(){super.initialize(),this.plot_view.canvas_view.add_overlay(this.el),this.el.style.position=\"absolute\",n.undisplay(this.el)}connect_signals(){super.connect_signals(),this.model.for_hover?this.connect(this.model.properties.computed_location.change,()=>this._draw_span()):\"canvas\"==this.model.render_mode?(this.connect(this.model.change,()=>this.plot_view.request_render()),this.connect(this.model.properties.location.change,()=>this.plot_view.request_render())):(this.connect(this.model.change,()=>this.render()),this.connect(this.model.properties.location.change,()=>this._draw_span()))}render(){this.model.visible||\"css\"!=this.model.render_mode||n.undisplay(this.el),this.model.visible&&this._draw_span()}_draw_span(){const e=this.model.for_hover?this.model.computed_location:this.model.location;if(null==e)return void n.undisplay(this.el);const{frame:i}=this.plot_view,t=i.xscales[this.model.x_range_name],s=i.yscales[this.model.y_range_name],o=(i,t)=>this.model.for_hover?this.model.computed_location:\"data\"==this.model.location_units?i.compute(e):t.compute(e);let l,a,h,d;if(\"width\"==this.model.dimension?(h=o(s,i.yview),a=i._left.value,d=i._width.value,l=this.model.properties.line_width.value()):(h=i._top.value,a=o(t,i.xview),d=this.model.properties.line_width.value(),l=i._height.value),\"css\"==this.model.render_mode)this.el.style.top=`${h}px`,this.el.style.left=`${a}px`,this.el.style.width=`${d}px`,this.el.style.height=`${l}px`,this.el.style.backgroundColor=this.model.properties.line_color.value(),this.el.style.opacity=this.model.properties.line_alpha.value(),n.display(this.el);else if(\"canvas\"==this.model.render_mode){const{ctx:e}=this.plot_view.canvas_view;e.save(),e.beginPath(),this.visuals.line.set_value(e),e.moveTo(a,h),\"width\"==this.model.dimension?e.lineTo(a+d,h):e.lineTo(a,h+l),e.stroke(),e.restore()}}}t.SpanView=a,a.__name__=\"SpanView\";class h extends o.Annotation{constructor(e){super(e)}static init_Span(){this.prototype.default_view=a,this.mixins([\"line\"]),this.define({render_mode:[l.RenderMode,\"canvas\"],x_range_name:[l.String,\"default\"],y_range_name:[l.String,\"default\"],location:[l.Number,null],location_units:[l.SpatialUnits,\"data\"],dimension:[l.Dimension,\"width\"]}),this.override({line_color:\"black\"}),this.internal({for_hover:[l.Boolean,!1],computed_location:[l.Number,null]})}}t.Span=h,h.__name__=\"Span\",h.init_Span()},\n",
" function _(e,t,i){Object.defineProperty(i,\"__esModule\",{value:!0});const l=e(1),a=e(133),s=e(66),n=e(68),o=l.__importStar(e(19));class r extends a.TextAnnotationView{initialize(){super.initialize(),this.visuals.text=new n.Text(this.model)}_get_location(){const e=this.panel,t=this.model.offset;let i,l;switch(e.side){case\"above\":case\"below\":switch(this.model.vertical_align){case\"top\":l=e._top.value+5;break;case\"middle\":l=e._vcenter.value;break;case\"bottom\":l=e._bottom.value-5}switch(this.model.align){case\"left\":i=e._left.value+t;break;case\"center\":i=e._hcenter.value;break;case\"right\":i=e._right.value-t}break;case\"left\":switch(this.model.vertical_align){case\"top\":i=e._left.value-5;break;case\"middle\":i=e._hcenter.value;break;case\"bottom\":i=e._right.value+5}switch(this.model.align){case\"left\":l=e._bottom.value-t;break;case\"center\":l=e._vcenter.value;break;case\"right\":l=e._top.value+t}break;case\"right\":switch(this.model.vertical_align){case\"top\":i=e._right.value-5;break;case\"middle\":i=e._hcenter.value;break;case\"bottom\":i=e._left.value+5}switch(this.model.align){case\"left\":l=e._top.value+t;break;case\"center\":l=e._vcenter.value;break;case\"right\":l=e._bottom.value-t}}return[i,l]}render(){if(!this.model.visible)return void(\"css\"==this.model.render_mode&&s.undisplay(this.el));const{text:e}=this.model;if(null==e||0==e.length)return;this.model.text_baseline=this.model.vertical_align,this.model.text_align=this.model.align;const[t,i]=this._get_location(),l=this.panel.get_label_angle_heuristic(\"parallel\");(\"canvas\"==this.model.render_mode?this._canvas_text.bind(this):this._css_text.bind(this))(this.plot_view.canvas_view.ctx,e,t,i,l)}_get_size(){const{text:e}=this.model;if(null==e||0==e.length)return{width:0,height:0};{this.visuals.text.set_value(this.ctx);const{width:t,ascent:i}=this.ctx.measureText(e);return{width:t,height:i*this.visuals.text.text_line_height.value()+10}}}}i.TitleView=r,r.__name__=\"TitleView\";class c extends a.TextAnnotation{constructor(e){super(e)}static init_Title(){this.prototype.default_view=r,this.mixins([\"line:border_\",\"fill:background_\"]),this.define({text:[o.String],text_font:[o.Font,\"helvetica\"],text_font_size:[o.FontSizeSpec,\"10pt\"],text_font_style:[o.FontStyle,\"bold\"],text_color:[o.ColorSpec,\"#444444\"],text_alpha:[o.NumberSpec,1],text_line_height:[o.Number,1],vertical_align:[o.VerticalAlign,\"bottom\"],align:[o.TextAlign,\"left\"],offset:[o.Number,0]}),this.override({background_fill_color:null,border_line_color:null}),this.internal({text_align:[o.TextAlign,\"left\"],text_baseline:[o.TextBaseline,\"bottom\"]})}}i.Title=c,c.__name__=\"Title\",c.init_Title()},\n",
" function _(e,i,t){Object.defineProperty(t,\"__esModule\",{value:!0});const o=e(1),l=e(29),s=e(96),a=e(66),n=o.__importStar(e(19));class r extends l.AnnotationView{constructor(){super(...arguments),this.rotate=!0}initialize(){super.initialize(),this.plot_view.canvas_view.add_event(this.el)}async lazy_initialize(){this._toolbar_view=await s.build_view(this.model.toolbar,{parent:this}),this.plot_view.visibility_callbacks.push(e=>this._toolbar_view.set_visibility(e))}remove(){this._toolbar_view.remove(),super.remove()}render(){super.render(),this.model.visible?(this.el.style.position=\"absolute\",this.el.style.overflow=\"hidden\",a.position(this.el,this.panel.bbox),this._toolbar_view.render(),a.empty(this.el),this.el.appendChild(this._toolbar_view.el),a.display(this.el)):a.undisplay(this.el)}_get_size(){const{tools:e,logo:i}=this.model.toolbar;return{width:30*e.length+(null!=i?25:0),height:30}}}t.ToolbarPanelView=r,r.__name__=\"ToolbarPanelView\";class _ extends l.Annotation{constructor(e){super(e)}static init_ToolbarPanel(){this.prototype.default_view=r,this.define({toolbar:[n.Instance]})}}t.ToolbarPanel=_,_.__name__=\"ToolbarPanel\",_.init_ToolbarPanel()},\n",
" function _(t,e,s){Object.defineProperty(s,\"__esModule\",{value:!0});const i=t(1),l=t(29),o=t(66),a=i.__importStar(t(19)),h=t(144),n=t(145);function c(t,e,s,i,l){switch(t){case\"horizontal\":return ethis._draw_tips())}css_classes(){return super.css_classes().concat(h.bk_tooltip)}render(){this.model.visible&&this._draw_tips()}_draw_tips(){const{data:t}=this.model;if(o.empty(this.el),o.undisplay(this.el),this.model.custom?this.el.classList.add(h.bk_tooltip_custom):this.el.classList.remove(h.bk_tooltip_custom),0==t.length)return;const{frame:e}=this.plot_view;for(const[s,i,l]of t){if(this.model.inner_only&&!e.bbox.contains(s,i))continue;const t=o.div({},l);this.el.appendChild(t)}const[s,i]=t[t.length-1],l=c(this.model.attachment,s,i,e._hcenter.value,e._vcenter.value);this.el.classList.remove(n.bk_right),this.el.classList.remove(n.bk_left),this.el.classList.remove(n.bk_above),this.el.classList.remove(n.bk_below);let a;o.display(this.el);let r=0,d=0;switch(l){case\"right\":this.el.classList.add(n.bk_left),r=s+(this.el.offsetWidth-this.el.clientWidth)+10,a=i-this.el.offsetHeight/2;break;case\"left\":this.el.classList.add(n.bk_right),d=this.plot_view.layout.bbox.width-s+10,a=i-this.el.offsetHeight/2;break;case\"below\":this.el.classList.add(n.bk_above),a=i+(this.el.offsetHeight-this.el.clientHeight)+10,r=Math.round(s-this.el.offsetWidth/2);break;case\"above\":this.el.classList.add(n.bk_below),a=i-this.el.offsetHeight-10,r=Math.round(s-this.el.offsetWidth/2)}this.model.show_arrow&&this.el.classList.add(h.bk_tooltip_arrow),this.el.childNodes.length>0?(this.el.style.top=`${a}px`,this.el.style.left=r?`${r}px`:\"auto\",this.el.style.right=d?`${d}px`:\"auto\"):o.undisplay(this.el)}}s.TooltipView=r,r.__name__=\"TooltipView\";class d extends l.Annotation{constructor(t){super(t)}static init_Tooltip(){this.prototype.default_view=r,this.define({attachment:[a.TooltipAttachment,\"horizontal\"],inner_only:[a.Boolean,!0],show_arrow:[a.Boolean,!0]}),this.override({level:\"overlay\"}),this.internal({data:[a.Any,[]],custom:[a.Any]})}clear(){this.data=[]}add(t,e,s){this.data=this.data.concat([[t,e,s]])}}s.Tooltip=d,d.__name__=\"Tooltip\",d.init_Tooltip()},\n",
" function _(o,t,n){Object.defineProperty(n,\"__esModule\",{value:!0});const r=o(1);o(67),r.__importStar(o(66)).styles.append('.bk-root {\\n /* Same border color used everywhere */\\n /* Gray of icons */\\n}\\n.bk-root .bk-tooltip {\\n font-weight: 300;\\n font-size: 12px;\\n position: absolute;\\n padding: 5px;\\n border: 1px solid #e5e5e5;\\n color: #2f2f2f;\\n background-color: white;\\n pointer-events: none;\\n opacity: 0.95;\\n z-index: 100;\\n}\\n.bk-root .bk-tooltip > div:not(:first-child) {\\n /* gives space when multiple elements are being hovered over */\\n margin-top: 5px;\\n border-top: #e5e5e5 1px dashed;\\n}\\n.bk-root .bk-tooltip.bk-left.bk-tooltip-arrow::before {\\n position: absolute;\\n margin: -7px 0 0 0;\\n top: 50%;\\n width: 0;\\n height: 0;\\n border-style: solid;\\n border-width: 7px 0 7px 0;\\n border-color: transparent;\\n content: \" \";\\n display: block;\\n left: -10px;\\n border-right-width: 10px;\\n border-right-color: #909599;\\n}\\n.bk-root .bk-tooltip.bk-left::before {\\n left: -10px;\\n border-right-width: 10px;\\n border-right-color: #909599;\\n}\\n.bk-root .bk-tooltip.bk-right.bk-tooltip-arrow::after {\\n position: absolute;\\n margin: -7px 0 0 0;\\n top: 50%;\\n width: 0;\\n height: 0;\\n border-style: solid;\\n border-width: 7px 0 7px 0;\\n border-color: transparent;\\n content: \" \";\\n display: block;\\n right: -10px;\\n border-left-width: 10px;\\n border-left-color: #909599;\\n}\\n.bk-root .bk-tooltip.bk-right::after {\\n right: -10px;\\n border-left-width: 10px;\\n border-left-color: #909599;\\n}\\n.bk-root .bk-tooltip.bk-above::before {\\n position: absolute;\\n margin: 0 0 0 -7px;\\n left: 50%;\\n width: 0;\\n height: 0;\\n border-style: solid;\\n border-width: 0 7px 0 7px;\\n border-color: transparent;\\n content: \" \";\\n display: block;\\n top: -10px;\\n border-bottom-width: 10px;\\n border-bottom-color: #909599;\\n}\\n.bk-root .bk-tooltip.bk-below::after {\\n position: absolute;\\n margin: 0 0 0 -7px;\\n left: 50%;\\n width: 0;\\n height: 0;\\n border-style: solid;\\n border-width: 0 7px 0 7px;\\n border-color: transparent;\\n content: \" \";\\n display: block;\\n bottom: -10px;\\n border-top-width: 10px;\\n border-top-color: #909599;\\n}\\n.bk-root .bk-tooltip-row-label {\\n text-align: right;\\n color: #26aae1;\\n /* blue from toolbar highlighting */\\n}\\n.bk-root .bk-tooltip-row-value {\\n color: default;\\n /* seems to be necessary for notebook */\\n}\\n.bk-root .bk-tooltip-color-block {\\n width: 12px;\\n height: 12px;\\n margin-left: 5px;\\n margin-right: 5px;\\n outline: #dddddd solid 1px;\\n display: inline-block;\\n}\\n'),n.bk_tooltip=\"bk-tooltip\",n.bk_tooltip_arrow=\"bk-tooltip-arrow\",n.bk_tooltip_custom=\"bk-tooltip-custom\",n.bk_tooltip_row_label=\"bk-tooltip-row-label\",n.bk_tooltip_row_value=\"bk-tooltip-row-value\",n.bk_tooltip_color_block=\"bk-tooltip-color-block\"},\n",
" function _(e,b,t){Object.defineProperty(t,\"__esModule\",{value:!0}),e(1).__importStar(e(66)).styles.append(\"\"),t.bk_active=\"bk-active\",t.bk_inline=\"bk-inline\",t.bk_left=\"bk-left\",t.bk_right=\"bk-right\",t.bk_above=\"bk-above\",t.bk_below=\"bk-below\",t.bk_up=\"bk-up\",t.bk_down=\"bk-down\",t.bk_side=function(e){switch(e){case\"above\":return t.bk_above;case\"below\":return t.bk_below;case\"left\":return t.bk_left;case\"right\":return t.bk_right}}},\n",
" function _(e,t,s){Object.defineProperty(s,\"__esModule\",{value:!0});const i=e(1),r=e(29),o=e(73),a=e(72),n=i.__importStar(e(19));class h extends r.AnnotationView{initialize(){super.initialize(),this.set_data(this.model.source)}connect_signals(){super.connect_signals(),this.connect(this.model.source.streaming,()=>this.set_data(this.model.source)),this.connect(this.model.source.patching,()=>this.set_data(this.model.source)),this.connect(this.model.source.change,()=>this.set_data(this.model.source))}set_data(e){super.set_data(e),this.visuals.warm_cache(e),this.plot_view.request_render()}_map_data(){const{frame:e}=this.plot_view,t=this.model.dimension,s=e.xscales[this.model.x_range_name],i=e.yscales[this.model.y_range_name],r=\"height\"==t?i:s,o=\"height\"==t?s:i,a=\"height\"==t?e.yview:e.xview,n=\"height\"==t?e.xview:e.yview;let h,_,l;h=\"data\"==this.model.properties.lower.units?r.v_compute(this._lower):a.v_compute(this._lower),_=\"data\"==this.model.properties.upper.units?r.v_compute(this._upper):a.v_compute(this._upper),l=\"data\"==this.model.properties.base.units?o.v_compute(this._base):n.v_compute(this._base);const[d,p]=\"height\"==t?[1,0]:[0,1],c=[h,l],u=[_,l];this._lower_sx=c[d],this._lower_sy=c[p],this._upper_sx=u[d],this._upper_sy=u[p]}render(){if(!this.model.visible)return;this._map_data();const{ctx:e}=this.plot_view.canvas_view;if(this.visuals.line.doit)for(let t=0,s=this._lower_sx.length;tnew a.TeeHead({level:\"underlay\",size:10})],upper:[n.DistanceSpec],upper_head:[n.Instance,()=>new a.TeeHead({level:\"underlay\",size:10})],base:[n.DistanceSpec],dimension:[n.Dimension,\"height\"],source:[n.Instance,()=>new o.ColumnDataSource],x_range_name:[n.String,\"default\"],y_range_name:[n.String,\"default\"]}),this.override({level:\"underlay\"})}}s.Whisker=_,_.__name__=\"Whisker\",_.init_Whisker()},\n",
" function _(i,a,e){Object.defineProperty(e,\"__esModule\",{value:!0});var r=i(148);e.Axis=r.Axis;var s=i(150);e.CategoricalAxis=s.CategoricalAxis;var x=i(153);e.ContinuousAxis=x.ContinuousAxis;var A=i(154);e.DatetimeAxis=A.DatetimeAxis;var o=i(155);e.LinearAxis=o.LinearAxis;var t=i(168);e.LogAxis=t.LogAxis;var n=i(171);e.MercatorAxis=n.MercatorAxis},\n",
" function _(e,t,i){Object.defineProperty(i,\"__esModule\",{value:!0});const s=e(1),a=e(149),l=s.__importStar(e(19)),n=e(9),o=e(8),r=e(88),{abs:_,min:h,max:c}=Math;class m extends a.GuideRendererView{constructor(){super(...arguments),this.rotate=!0}get panel(){return this.layout}render(){if(!this.model.visible)return;const e={tick:this._tick_extent(),tick_label:this._tick_label_extents(),axis_label:this._axis_label_extent()},t=this.tick_coords,i=this.plot_view.canvas_view.ctx;i.save(),this._draw_rule(i,e),this._draw_major_ticks(i,e,t),this._draw_minor_ticks(i,e,t),this._draw_major_labels(i,e,t),this._draw_axis_label(i,e,t),null!=this._render&&this._render(i,e,t),i.restore()}connect_signals(){super.connect_signals(),this.connect(this.model.change,()=>this.plot_view.request_paint());const e=this.model.properties;this.on_change(e.visible,()=>this.plot_view.request_layout())}get_size(){if(this.model.visible&&null==this.model.fixed_location){const e=this._get_size();return{width:0,height:Math.round(e)}}return{width:0,height:0}}_get_size(){return this._tick_extent()+this._tick_label_extent()+this._axis_label_extent()}get needs_clip(){return null!=this.model.fixed_location}_draw_rule(e,t){if(!this.visuals.axis_line.doit)return;const[i,s]=this.rule_coords,[a,l]=this.plot_view.map_to_screen(i,s,this.model.x_range_name,this.model.y_range_name),[n,o]=this.normals,[r,_]=this.offsets;this.visuals.axis_line.set_value(e),e.beginPath(),e.moveTo(Math.round(a[0]+n*r),Math.round(l[0]+o*_));for(let t=1;tc&&(c=o)}return c>0&&(c+=s),c}get normals(){return this.panel.normals}get dimension(){return this.panel.dimension}compute_labels(e){const t=this.model.formatter.doFormat(e,this);for(let i=0;i_(n-o)?(e=c(h(a,l),n),s=h(c(a,l),o)):(e=h(a,l),s=c(a,l)),[e,s]}throw new Error(`user bounds '${t}' not understood`)}get rule_coords(){const e=this.dimension,t=(e+1)%2,[i]=this.ranges,[s,a]=this.computed_bounds,l=[new Array(2),new Array(2)];return l[e][0]=Math.max(s,i.min),l[e][1]=Math.min(a,i.max),l[e][0]>l[e][1]&&(l[e][0]=l[e][1]=NaN),l[t][0]=this.loc,l[t][1]=this.loc,l}get tick_coords(){const e=this.dimension,t=(e+1)%2,[i]=this.ranges,[s,a]=this.computed_bounds,l=this.model.ticker.get_ticks(s,a,i,this.loc,{}),n=l.major,o=l.minor,r=[[],[]],_=[[],[]],[h,c]=[i.min,i.max];for(let i=0;ic||(r[e].push(n[i]),r[t].push(this.loc));for(let i=0;ic||(_[e].push(o[i]),_[t].push(this.loc));return{major:r,minor:_}}get loc(){const{fixed_location:e}=this.model;if(null!=e){if(o.isNumber(e))return e;const[,t]=this.ranges;if(t instanceof r.FactorRange)return t.synthetic(e);throw new Error(\"unexpected\")}const[,t]=this.ranges;switch(this.panel.side){case\"left\":case\"below\":return t.start;case\"right\":case\"above\":return t.end}}serializable_state(){return Object.assign(Object.assign({},super.serializable_state()),{bbox:this.layout.bbox.box})}}i.AxisView=m,m.__name__=\"AxisView\";class d extends a.GuideRenderer{constructor(e){super(e)}static init_Axis(){this.prototype.default_view=m,this.mixins([\"line:axis_\",\"line:major_tick_\",\"line:minor_tick_\",\"text:major_label_\",\"text:axis_label_\"]),this.define({bounds:[l.Any,\"auto\"],ticker:[l.Instance],formatter:[l.Instance],x_range_name:[l.String,\"default\"],y_range_name:[l.String,\"default\"],axis_label:[l.String,\"\"],axis_label_standoff:[l.Int,5],major_label_standoff:[l.Int,5],major_label_orientation:[l.Any,\"horizontal\"],major_label_overrides:[l.Any,{}],major_tick_in:[l.Number,2],major_tick_out:[l.Number,6],minor_tick_in:[l.Number,0],minor_tick_out:[l.Number,4],fixed_location:[l.Any,null]}),this.override({axis_line_color:\"black\",major_tick_line_color:\"black\",minor_tick_line_color:\"black\",major_label_text_font_size:\"8pt\",major_label_text_align:\"center\",major_label_text_baseline:\"alphabetic\",axis_label_text_font_size:\"10pt\",axis_label_text_font_style:\"italic\"})}}i.Axis=d,d.__name__=\"Axis\",d.init_Axis()},\n",
" function _(e,r,d){Object.defineProperty(d,\"__esModule\",{value:!0});const n=e(63);class i extends n.RendererView{}d.GuideRendererView=i,i.__name__=\"GuideRendererView\";class t extends n.Renderer{constructor(e){super(e)}static init_GuideRenderer(){this.override({level:\"overlay\"})}}d.GuideRenderer=t,t.__name__=\"GuideRenderer\",t.init_GuideRenderer()},\n",
" function _(t,s,o){Object.defineProperty(o,\"__esModule\",{value:!0});const e=t(1),i=t(148),r=t(151),a=t(152),l=e.__importStar(t(19));class _ extends i.AxisView{_render(t,s,o){this._draw_group_separators(t,s,o)}_draw_group_separators(t,s,o){const[e]=this.ranges,[i,r]=this.computed_bounds;if(!e.tops||e.tops.length<2||!this.visuals.separator_line.doit)return;const a=this.dimension,l=(a+1)%2,_=[[],[]];let n=0;for(let t=0;ti&&ht[1]),s=this.model.formatter.doFormat(t,this);a.push([s,r.major,this.model.major_label_orientation,this.visuals.major_label_text]),a.push([i.tops,r.tops,this.model.group_label_orientation,this.visuals.group_text])}else if(3==t.levels){const t=i.major.map(t=>t[2]),s=this.model.formatter.doFormat(t,this),o=i.mids.map(t=>t[1]);a.push([s,r.major,this.model.major_label_orientation,this.visuals.major_label_text]),a.push([o,r.mids,this.model.subgroup_label_orientation,this.visuals.subgroup_text]),a.push([i.tops,r.tops,this.model.group_label_orientation,this.visuals.group_text])}return a}get tick_coords(){const t=this.dimension,s=(t+1)%2,[o]=this.ranges,[e,i]=this.computed_bounds,r=this.model.ticker.get_ticks(e,i,o,this.loc,{}),a={major:[[],[]],mids:[[],[]],tops:[[],[]],minor:[[],[]]};return a.major[t]=r.major,a.major[s]=r.major.map(t=>this.loc),3==o.levels&&(a.mids[t]=r.mids,a.mids[s]=r.mids.map(t=>this.loc)),o.levels>1&&(a.tops[t]=r.tops,a.tops[s]=r.tops.map(t=>this.loc)),a}}o.CategoricalAxisView=_,_.__name__=\"CategoricalAxisView\";class n extends i.Axis{constructor(t){super(t)}static init_CategoricalAxis(){this.prototype.default_view=_,this.mixins([\"line:separator_\",\"text:group_\",\"text:subgroup_\"]),this.define({group_label_orientation:[l.Any,\"parallel\"],subgroup_label_orientation:[l.Any,\"parallel\"]}),this.override({ticker:()=>new r.CategoricalTicker,formatter:()=>new a.CategoricalTickFormatter,separator_line_color:\"lightgrey\",separator_line_width:2,group_text_font_style:\"bold\",group_text_font_size:\"8pt\",group_text_color:\"grey\",subgroup_text_font_style:\"bold\",subgroup_text_font_size:\"8pt\"})}}o.CategoricalAxis=n,n.__name__=\"CategoricalAxis\",n.init_CategoricalAxis()},\n",
" function _(t,c,e){Object.defineProperty(e,\"__esModule\",{value:!0});const o=t(111);class s extends o.Ticker{constructor(t){super(t)}get_ticks(t,c,e,o,s){return{major:this._collect(e.factors,e,t,c),minor:[],tops:this._collect(e.tops||[],e,t,c),mids:this._collect(e.mids||[],e,t,c)}}_collect(t,c,e,o){const s=[];for(const r of t){const t=c.synthetic(r);t>e&&tnew r.DatetimeTicker,formatter:()=>new a.DatetimeTickFormatter})}}i.DatetimeAxis=_,_.__name__=\"DatetimeAxis\",_.init_DatetimeAxis()},\n",
" function _(e,i,s){Object.defineProperty(s,\"__esModule\",{value:!0});const t=e(148),n=e(153),r=e(112),a=e(108);class _ extends t.AxisView{}s.LinearAxisView=_,_.__name__=\"LinearAxisView\";class c extends n.ContinuousAxis{constructor(e){super(e)}static init_LinearAxis(){this.prototype.default_view=_,this.override({ticker:()=>new a.BasicTicker,formatter:()=>new r.BasicTickFormatter})}}s.LinearAxis=c,c.__name__=\"LinearAxis\",c.init_LinearAxis()},\n",
" function _(t,s,e){Object.defineProperty(e,\"__esModule\",{value:!0});const r=t(1),i=r.__importDefault(t(157)),n=t(113),o=t(70),a=r.__importStar(t(19)),c=t(158),m=t(9),u=t(8);function h(t){return i.default(t,\"%Y %m %d %H %M %S\").split(/\\s+/).map(t=>parseInt(t,10))}function d(t,s){if(u.isFunction(s))return s(t);{const e=c.sprintf(\"$1%06d\",function(t){return Math.round(t/1e3%1*1e6)}(t));return-1==(s=s.replace(/((^|[^%])(%%)*)%f/,e)).indexOf(\"%\")?s:i.default(t,s)}}const l=[\"microseconds\",\"milliseconds\",\"seconds\",\"minsec\",\"minutes\",\"hourmin\",\"hours\",\"days\",\"months\",\"years\"];class _ extends n.TickFormatter{constructor(t){super(t),this.strip_leading_zeros=!0}static init_DatetimeTickFormatter(){this.define({microseconds:[a.Array,[\"%fus\"]],milliseconds:[a.Array,[\"%3Nms\",\"%S.%3Ns\"]],seconds:[a.Array,[\"%Ss\"]],minsec:[a.Array,[\":%M:%S\"]],minutes:[a.Array,[\":%M\",\"%Mm\"]],hourmin:[a.Array,[\"%H:%M\"]],hours:[a.Array,[\"%Hh\",\"%H:%M\"]],days:[a.Array,[\"%m/%d\",\"%a%d\"]],months:[a.Array,[\"%m/%Y\",\"%b %Y\"]],years:[a.Array,[\"%Y\"]]})}initialize(){super.initialize(),this._update_width_formats()}_update_width_formats(){const t=+i.default(new Date),s=function(s){const e=s.map(s=>d(t,s).length),r=m.sort_by(m.zip(e,s),([t])=>t);return m.unzip(r)};this._width_formats={microseconds:s(this.microseconds),milliseconds:s(this.milliseconds),seconds:s(this.seconds),minsec:s(this.minsec),minutes:s(this.minutes),hourmin:s(this.hourmin),hours:s(this.hours),days:s(this.days),months:s(this.months),years:s(this.years)}}_get_resolution_str(t,s){const e=1.1*t;switch(!1){case!(e<.001):return\"microseconds\";case!(e<1):return\"milliseconds\";case!(e<60):return s>=60?\"minsec\":\"seconds\";case!(e<3600):return s>=3600?\"hourmin\":\"minutes\";case!(e<86400):return\"hours\";case!(e<2678400):return\"days\";case!(e<31536e3):return\"months\";default:return\"years\"}}doFormat(t,s){if(0==t.length)return[];const e=Math.abs(t[t.length-1]-t[0])/1e3,r=e/(t.length-1),i=this._get_resolution_str(r,e),[,[n]]=this._width_formats[i],a=[],c=l.indexOf(i),m={};for(const t of l)m[t]=0;m.seconds=5,m.minsec=4,m.minutes=4,m.hourmin=3,m.hours=3;for(const s of t){let t,e;try{e=h(s),t=d(s,n)}catch(t){o.logger.warn(`unable to format tick for timestamp value ${s}`),o.logger.warn(` - ${t}`),a.push(\"ERR\");continue}let r=!1,u=c;for(;0==e[m[l[u]]];){let n;if(u+=1,u==l.length)break;if((\"minsec\"==i||\"hourmin\"==i)&&!r){if(\"minsec\"==i&&0==e[4]&&0!=e[5]||\"hourmin\"==i&&0==e[3]&&0!=e[4]){n=this._width_formats[l[c-1]][1][0],t=d(s,n);break}r=!0}n=this._width_formats[l[u]][1][0],t=d(s,n)}if(this.strip_leading_zeros){let s=t.replace(/^0+/g,\"\");s!=t&&isNaN(parseInt(s))&&(s=`0${s}`),a.push(s)}else a.push(t)}return a}}e.DatetimeTickFormatter=_,_.__name__=\"DatetimeTickFormatter\",_.init_DatetimeTickFormatter()},\n",
" function _(e,t,n){!function(e){\"object\"==typeof t&&t.exports?t.exports=e():\"function\"==typeof define?define(e):this.tz=e()}((function(){function e(e,t,n){var r,o=t.day[1];do{r=new Date(Date.UTC(n,t.month,Math.abs(o++)))}while(t.day[0]<7&&r.getUTCDay()!=t.day[0]);return(r={clock:t.clock,sort:r.getTime(),rule:t,save:6e4*t.save,offset:e.offset})[r.clock]=r.sort+6e4*t.time,r.posix?r.wallclock=r[r.clock]+(e.offset+t.saved):r.posix=r[r.clock]-(e.offset+t.saved),r}function t(t,n,r){var o,a,u,i,l,s,c,f=t[t.zone],h=[],T=new Date(r).getUTCFullYear(),g=1;for(o=1,a=f.length;o=T-g;--c)for(o=0,a=s.length;o=h[o][n]&&h[o][h[o].clock]>u[h[o].clock]&&(i=h[o])}return i&&((l=/^(.*)\\/(.*)$/.exec(u.format))?i.abbrev=l[i.save?2:1]:i.abbrev=u.format.replace(/%s/,i.rule.letter)),i||u}function n(e,n){return\"UTC\"==e.zone?n:(e.entry=t(e,\"posix\",n),n+e.entry.offset+e.entry.save)}function r(e,n){return\"UTC\"==e.zone?n:(e.entry=r=t(e,\"wallclock\",n),0<(o=n-r.wallclock)&&o9)t+=s*l[c-10];else{if(a=new Date(n(e,t)),c<7)for(;s;)a.setUTCDate(a.getUTCDate()+i),a.getUTCDay()==c&&(s-=i);else 7==c?a.setUTCFullYear(a.getUTCFullYear()+s):8==c?a.setUTCMonth(a.getUTCMonth()+s):a.setUTCDate(a.getUTCDate()+s);null==(t=r(e,a.getTime()))&&(t=r(e,a.getTime()+864e5*i)-864e5*i)}return t}var a={clock:function(){return+new Date},zone:\"UTC\",entry:{abbrev:\"UTC\",offset:0,save:0},UTC:1,z:function(e,t,n,r){var o,a,u=this.entry.offset+this.entry.save,i=Math.abs(u/1e3),l=[],s=3600;for(o=0;o<3;o++)l.push((\"0\"+Math.floor(i/s)).slice(-2)),i%=s,s/=60;return\"^\"!=n||u?(\"^\"==n&&(r=3),3==r?(a=(a=l.join(\":\")).replace(/:00$/,\"\"),\"^\"!=n&&(a=a.replace(/:00$/,\"\"))):r?(a=l.slice(0,r+1).join(\":\"),\"^\"==n&&(a=a.replace(/:00$/,\"\"))):a=l.slice(0,2).join(\"\"),a=(a=(u<0?\"-\":\"+\")+a).replace(/([-+])(0)/,{_:\" $1\",\"-\":\"$1\"}[n]||\"$1$2\")):\"Z\"},\"%\":function(e){return\"%\"},n:function(e){return\"\\n\"},t:function(e){return\"\\t\"},U:function(e){return s(e,0)},W:function(e){return s(e,1)},V:function(e){return c(e)[0]},G:function(e){return c(e)[1]},g:function(e){return c(e)[1]%100},j:function(e){return Math.floor((e.getTime()-Date.UTC(e.getUTCFullYear(),0))/864e5)+1},s:function(e){return Math.floor(e.getTime()/1e3)},C:function(e){return Math.floor(e.getUTCFullYear()/100)},N:function(e){return e.getTime()%1e3*1e6},m:function(e){return e.getUTCMonth()+1},Y:function(e){return e.getUTCFullYear()},y:function(e){return e.getUTCFullYear()%100},H:function(e){return e.getUTCHours()},M:function(e){return e.getUTCMinutes()},S:function(e){return e.getUTCSeconds()},e:function(e){return e.getUTCDate()},d:function(e){return e.getUTCDate()},u:function(e){return e.getUTCDay()||7},w:function(e){return e.getUTCDay()},l:function(e){return e.getUTCHours()%12||12},I:function(e){return e.getUTCHours()%12||12},k:function(e){return e.getUTCHours()},Z:function(e){return this.entry.abbrev},a:function(e){return this[this.locale].day.abbrev[e.getUTCDay()]},A:function(e){return this[this.locale].day.full[e.getUTCDay()]},h:function(e){return this[this.locale].month.abbrev[e.getUTCMonth()]},b:function(e){return this[this.locale].month.abbrev[e.getUTCMonth()]},B:function(e){return this[this.locale].month.full[e.getUTCMonth()]},P:function(e){return this[this.locale].meridiem[Math.floor(e.getUTCHours()/12)].toLowerCase()},p:function(e){return this[this.locale].meridiem[Math.floor(e.getUTCHours()/12)]},R:function(e,t){return this.convert([t,\"%H:%M\"])},T:function(e,t){return this.convert([t,\"%H:%M:%S\"])},D:function(e,t){return this.convert([t,\"%m/%d/%y\"])},F:function(e,t){return this.convert([t,\"%Y-%m-%d\"])},x:function(e,t){return this.convert([t,this[this.locale].date])},r:function(e,t){return this.convert([t,this[this.locale].time12||\"%I:%M:%S\"])},X:function(e,t){return this.convert([t,this[this.locale].time24])},c:function(e,t){return this.convert([t,this[this.locale].dateTime])},convert:function(e){if(!e.length)return\"1.0.23\";var t,a,u,l,s,c=Object.create(this),f=[];for(t=0;t=o?Math.floor((n-o)/7)+1:0}function c(e){var t,n,r;return n=e.getUTCFullYear(),t=new Date(Date.UTC(n,0)).getUTCDay(),(r=s(e,1)+(t>1&&t<=4?1:0))?53!=r||4==t||3==t&&29==new Date(n,1,29).getDate()?[r,e.getUTCFullYear()]:[1,e.getUTCFullYear()+1]:(n=e.getUTCFullYear()-1,[r=4==(t=new Date(Date.UTC(n,0)).getUTCDay())||3==t&&29==new Date(n,1,29).getDate()?53:52,e.getUTCFullYear()-1])}return u=u.toLowerCase().split(\"|\"),\"delmHMSUWVgCIky\".replace(/./g,(function(e){a[e].pad=2})),a.N.pad=9,a.j.pad=3,a.k.style=\"_\",a.l.style=\"_\",a.e.style=\"_\",function(){return a.convert(arguments)}}))},\n",
" function _(r,n,e){Object.defineProperty(e,\"__esModule\",{value:!0});const t=r(1),i=t.__importStar(r(159)),u=r(160),a=t.__importDefault(r(157)),f=r(25),o=r(8);function l(r,...n){return u.sprintf(r,...n)}function s(r,n,e){if(o.isNumber(r)){return l((()=>{switch(!1){case Math.floor(r)!=r:return\"%d\";case!(Math.abs(r)>.1&&Math.abs(r)<1e3):return\"%0.3f\";default:return\"%0.3e\"}})(),r)}return`${r}`}function c(r,n,t){if(null==n)return s;if(null!=t&&r in t){const n=t[r];if(o.isString(n)){if(n in e.DEFAULT_FORMATTERS)return e.DEFAULT_FORMATTERS[n];throw new Error(`Unknown tooltip field formatter type '${n}'`)}return function(r,e,t){return n.format(r,e,t)}}return e.DEFAULT_FORMATTERS.numeral}function m(r,n,e,t){if(\"$\"==r[0]){return function(r,n){if(r in n)return n[r];throw new Error(`Unknown special variable '$${r}'`)}(r.substring(1),t)}return function(r,n,e){const t=n.get_column(r);if(null==t)return null;if(o.isNumber(e))return t[e];const i=t[e.index];if(o.isTypedArray(i)||o.isArray(i)){if(o.isArray(i[0])){return i[e.dim2][e.dim1]}return i[e.flat_index]}return i}(r.substring(1).replace(/[{}]/g,\"\"),n,e)}e.DEFAULT_FORMATTERS={numeral:(r,n,e)=>i.format(r,n),datetime:(r,n,e)=>a.default(r,n),printf:(r,n,e)=>l(n,r)},e.sprintf=l,e.basic_formatter=s,e.get_formatter=c,e.get_value=m,e.replace_placeholders=function(r,n,e,t,i={}){return r=(r=r.replace(/@\\$name/g,r=>`@{${i.name}}`)).replace(/((?:\\$\\w+)|(?:@\\w+)|(?:@{(?:[^{}]+)}))(?:{([^{}]+)})?/g,(r,u,a)=>{const o=m(u,n,e,i);if(null==o)return`${f.escape(\"???\")}`;if(\"safe\"==a)return`${o}`;const l=c(u,a,t);return`${f.escape(l(o,a,i))}`})}},\n",
" function _(e,n,t){\n",
" /*!\n",
" * numbro.js\n",
" * version : 1.6.2\n",
" * author : Företagsplatsen AB\n",
" * license : MIT\n",
" * http://www.foretagsplatsen.se\n",
" */\n",
" var r,i={},a=i,o=\"en-US\",l=null,u=\"0,0\";void 0!==n&&n.exports;function c(e){this._value=e}function s(e){var n,t=\"\";for(n=0;n-1?function(e,n){var t,r,i,a;return t=(a=e.toString()).split(\"e\")[0],i=a.split(\"e\")[1],a=t.split(\".\")[0]+(r=t.split(\".\")[1]||\"\")+s(i-r.length),n>0&&(a+=\".\"+s(n)),a}(e,n):(t(e*o)/o).toFixed(n),r&&(i=new RegExp(\"0{1,\"+r+\"}$\"),a=a.replace(i,\"\")),a}function d(e,n,t){return n.indexOf(\"$\")>-1?function(e,n,t){var r,a,l=n,u=l.indexOf(\"$\"),c=l.indexOf(\"(\"),s=l.indexOf(\"+\"),f=l.indexOf(\"-\"),d=\"\",p=\"\";-1===l.indexOf(\"$\")?\"infix\"===i[o].currency.position?(p=i[o].currency.symbol,i[o].currency.spaceSeparated&&(p=\" \"+p+\" \")):i[o].currency.spaceSeparated&&(d=\" \"):l.indexOf(\" $\")>-1?(d=\" \",l=l.replace(\" $\",\"\")):l.indexOf(\"$ \")>-1?(d=\" \",l=l.replace(\"$ \",\"\")):l=l.replace(\"$\",\"\");if(a=h(e,l,t,p),-1===n.indexOf(\"$\"))switch(i[o].currency.position){case\"postfix\":a.indexOf(\")\")>-1?((a=a.split(\"\")).splice(-1,0,d+i[o].currency.symbol),a=a.join(\"\")):a=a+d+i[o].currency.symbol;break;case\"infix\":break;case\"prefix\":a.indexOf(\"(\")>-1||a.indexOf(\"-\")>-1?(a=a.split(\"\"),r=Math.max(c,f)+1,a.splice(r,0,i[o].currency.symbol+d),a=a.join(\"\")):a=i[o].currency.symbol+d+a;break;default:throw Error('Currency position should be among [\"prefix\", \"infix\", \"postfix\"]')}else u<=1?a.indexOf(\"(\")>-1||a.indexOf(\"+\")>-1||a.indexOf(\"-\")>-1?(a=a.split(\"\"),r=1,(u-1?((a=a.split(\"\")).splice(-1,0,d+i[o].currency.symbol),a=a.join(\"\")):a=a+d+i[o].currency.symbol;return a}(e,n,t):n.indexOf(\"%\")>-1?function(e,n,t){var r,i=\"\";e*=100,n.indexOf(\" %\")>-1?(i=\" \",n=n.replace(\" %\",\"\")):n=n.replace(\"%\",\"\");(r=h(e,n,t)).indexOf(\")\")>-1?((r=r.split(\"\")).splice(-1,0,i+\"%\"),r=r.join(\"\")):r=r+i+\"%\";return r}(e,n,t):n.indexOf(\":\")>-1?function(e){var n=Math.floor(e/60/60),t=Math.floor((e-60*n*60)/60),r=Math.round(e-60*n*60-60*t);return n+\":\"+(t<10?\"0\"+t:t)+\":\"+(r<10?\"0\"+r:r)}(e):h(e,n,t)}function h(e,n,t,r){var a,u,c,s,d,h,p,m,x,g,O,b,w,y,M,v,$,B=!1,E=!1,F=!1,k=\"\",U=!1,N=!1,S=!1,j=!1,D=!1,C=\"\",L=\"\",T=Math.abs(e),K=[\"B\",\"KiB\",\"MiB\",\"GiB\",\"TiB\",\"PiB\",\"EiB\",\"ZiB\",\"YiB\"],G=[\"B\",\"KB\",\"MB\",\"GB\",\"TB\",\"PB\",\"EB\",\"ZB\",\"YB\"],I=\"\",P=!1,R=!1;if(0===e&&null!==l)return l;if(!isFinite(e))return\"\"+e;if(0===n.indexOf(\"{\")){var W=n.indexOf(\"}\");if(-1===W)throw Error('Format should also contain a \"}\"');b=n.slice(1,W),n=n.slice(W+1)}else b=\"\";if(n.indexOf(\"}\")===n.length-1){var Y=n.indexOf(\"{\");if(-1===Y)throw Error('Format should also contain a \"{\"');w=n.slice(Y+1,-1),n=n.slice(0,Y+1)}else w=\"\";if(v=null===($=-1===n.indexOf(\".\")?n.match(/([0-9]+).*/):n.match(/([0-9]+)\\..*/))?-1:$[1].length,-1!==n.indexOf(\"-\")&&(P=!0),n.indexOf(\"(\")>-1?(B=!0,n=n.slice(1,-1)):n.indexOf(\"+\")>-1&&(E=!0,n=n.replace(/\\+/g,\"\")),n.indexOf(\"a\")>-1){if(g=n.split(\".\")[0].match(/[0-9]+/g)||[\"0\"],g=parseInt(g[0],10),U=n.indexOf(\"aK\")>=0,N=n.indexOf(\"aM\")>=0,S=n.indexOf(\"aB\")>=0,j=n.indexOf(\"aT\")>=0,D=U||N||S||j,n.indexOf(\" a\")>-1?(k=\" \",n=n.replace(\" a\",\"\")):n=n.replace(\"a\",\"\"),p=0===(p=(d=Math.floor(Math.log(T)/Math.LN10)+1)%3)?3:p,g&&0!==T&&(h=Math.floor(Math.log(T)/Math.LN10)+1-g,m=3*~~((Math.min(g,d)-p)/3),T/=Math.pow(10,m),-1===n.indexOf(\".\")&&g>3))for(n+=\"[.]\",M=(M=0===h?0:3*~~(h/3)-h)<0?M+3:M,a=0;a=Math.pow(10,12)&&!D||j?(k+=i[o].abbreviations.trillion,e/=Math.pow(10,12)):T=Math.pow(10,9)&&!D||S?(k+=i[o].abbreviations.billion,e/=Math.pow(10,9)):T=Math.pow(10,6)&&!D||N?(k+=i[o].abbreviations.million,e/=Math.pow(10,6)):(T=Math.pow(10,3)&&!D||U)&&(k+=i[o].abbreviations.thousand,e/=Math.pow(10,3)))}if(n.indexOf(\"b\")>-1)for(n.indexOf(\" b\")>-1?(C=\" \",n=n.replace(\" b\",\"\")):n=n.replace(\"b\",\"\"),s=0;s<=K.length;s++)if(u=Math.pow(1024,s),c=Math.pow(1024,s+1),e>=u&&e0&&(e/=u);break}if(n.indexOf(\"d\")>-1)for(n.indexOf(\" d\")>-1?(C=\" \",n=n.replace(\" d\",\"\")):n=n.replace(\"d\",\"\"),s=0;s<=G.length;s++)if(u=Math.pow(1e3,s),c=Math.pow(1e3,s+1),e>=u&&e0&&(e/=u);break}if(n.indexOf(\"o\")>-1&&(n.indexOf(\" o\")>-1?(L=\" \",n=n.replace(\" o\",\"\")):n=n.replace(\"o\",\"\"),i[o].ordinal&&(L+=i[o].ordinal(e))),n.indexOf(\"[.]\")>-1&&(F=!0,n=n.replace(\"[.]\",\".\")),x=e.toString().split(\".\")[0],O=n.split(\".\")[1],y=n.indexOf(\",\"),O){if(x=(I=-1!==O.indexOf(\"*\")?f(e,e.toString().split(\".\")[1].length,t):O.indexOf(\"[\")>-1?f(e,(O=(O=O.replace(\"]\",\"\")).split(\"[\"))[0].length+O[1].length,t,O[1].length):f(e,O.length,t)).split(\".\")[0],I.split(\".\")[1].length)I=(r?k+r:i[o].delimiters.decimal)+I.split(\".\")[1];else I=\"\";F&&0===Number(I.slice(1))&&(I=\"\")}else x=f(e,null,t);return x.indexOf(\"-\")>-1&&(x=x.slice(1),R=!0),x.length-1&&(x=x.toString().replace(/(\\d)(?=(\\d{3})+(?!\\d))/g,\"$1\"+i[o].delimiters.thousands)),0===n.indexOf(\".\")&&(x=\"\"),b+(n.indexOf(\"(\")2)&&(o.length<2?!!o[0].match(/^\\d+.*\\d$/)&&!o[0].match(u):1===o[0].length?!!o[0].match(/^\\d+$/)&&!o[0].match(u)&&!!o[1].match(/^\\d+$/):!!o[0].match(/^\\d+.*\\d$/)&&!o[0].match(u)&&!!o[1].match(/^\\d+$/)))))},n.exports={format:function(e,n,t,i){return null!=t&&t!==r.culture()&&r.setCulture(t),d(Number(e),null!=n?n:u,null==i?Math.round:i)}}},\n",
" function _(e,n,t){!function(){\"use strict\";var e={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\\x25]+/,modulo:/^\\x25{2}/,placeholder:/^\\x25(?:([1-9]\\d*)\\$|\\(([^)]+)\\))?(\\+)?(0|'[^$])?(-)?(\\d+)?(?:\\.(\\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\\d]*)/i,key_access:/^\\.([a-z_][a-z_\\d]*)/i,index_access:/^\\[(\\d+)\\]/,sign:/^[+-]/};function n(e){return i(a(e),arguments)}function r(e,t){return n.apply(null,[e].concat(t||[]))}function i(t,r){var i,s,a,o,p,c,l,u,f,d=1,g=t.length,y=\"\";for(s=0;s=0),o.type){case\"b\":i=parseInt(i,10).toString(2);break;case\"c\":i=String.fromCharCode(parseInt(i,10));break;case\"d\":case\"i\":i=parseInt(i,10);break;case\"j\":i=JSON.stringify(i,null,o.width?parseInt(o.width):0);break;case\"e\":i=o.precision?parseFloat(i).toExponential(o.precision):parseFloat(i).toExponential();break;case\"f\":i=o.precision?parseFloat(i).toFixed(o.precision):parseFloat(i);break;case\"g\":i=o.precision?String(Number(i.toPrecision(o.precision))):parseFloat(i);break;case\"o\":i=(parseInt(i,10)>>>0).toString(8);break;case\"s\":i=String(i),i=o.precision?i.substring(0,o.precision):i;break;case\"t\":i=String(!!i),i=o.precision?i.substring(0,o.precision):i;break;case\"T\":i=Object.prototype.toString.call(i).slice(8,-1).toLowerCase(),i=o.precision?i.substring(0,o.precision):i;break;case\"u\":i=parseInt(i,10)>>>0;break;case\"v\":i=i.valueOf(),i=o.precision?i.substring(0,o.precision):i;break;case\"x\":i=(parseInt(i,10)>>>0).toString(16);break;case\"X\":i=(parseInt(i,10)>>>0).toString(16).toUpperCase()}e.json.test(o.type)?y+=i:(!e.number.test(o.type)||u&&!o.sign?f=\"\":(f=u?\"+\":\"-\",i=i.toString().replace(e.sign,\"\")),c=o.pad_char?\"0\"===o.pad_char?\"0\":o.pad_char.charAt(1):\" \",l=o.width-(f+i).length,p=o.width&&l>0?c.repeat(l):\"\",y+=o.align?f+i+p:\"0\"===c?f+p+i:p+f+i)}return y}var s=Object.create(null);function a(n){if(s[n])return s[n];for(var t,r=n,i=[],a=0;r;){if(null!==(t=e.text.exec(r)))i.push(t[0]);else if(null!==(t=e.modulo.exec(r)))i.push(\"%\");else{if(null===(t=e.placeholder.exec(r)))throw new SyntaxError(\"[sprintf] unexpected placeholder\");if(t[2]){a|=1;var o=[],p=t[2],c=[];if(null===(c=e.key.exec(p)))throw new SyntaxError(\"[sprintf] failed to parse named argument key\");for(o.push(c[1]);\"\"!==(p=p.substring(c[0].length));)if(null!==(c=e.key_access.exec(p)))o.push(c[1]);else{if(null===(c=e.index_access.exec(p)))throw new SyntaxError(\"[sprintf] failed to parse named argument key\");o.push(c[1])}t[2]=o}else a|=2;if(3===a)throw new Error(\"[sprintf] mixing positional and named placeholders is not (yet) supported\");i.push({placeholder:t[0],param_no:t[1],keys:t[2],sign:t[3],pad_char:t[4],align:t[5],width:t[6],precision:t[7],type:t[8]})}r=r.substring(t[0].length)}return s[n]=i}void 0!==t&&(t.sprintf=n,t.vsprintf=r),\"undefined\"!=typeof window&&(window.sprintf=n,window.vsprintf=r,\"function\"==typeof define&&define.amd&&define((function(){return{sprintf:n,vsprintf:r}})))}()},\n",
" function _(e,i,n){Object.defineProperty(n,\"__esModule\",{value:!0});const t=e(9),a=e(109),s=e(162),r=e(163),c=e(166),_=e(167),m=e(165);class k extends s.CompositeTicker{constructor(e){super(e)}static init_DatetimeTicker(){this.override({num_minor_ticks:0,tickers:()=>[new a.AdaptiveTicker({mantissas:[1,2,5],base:10,min_interval:0,max_interval:500*m.ONE_MILLI,num_minor_ticks:0}),new a.AdaptiveTicker({mantissas:[1,2,5,10,15,20,30],base:60,min_interval:m.ONE_SECOND,max_interval:30*m.ONE_MINUTE,num_minor_ticks:0}),new a.AdaptiveTicker({mantissas:[1,2,4,6,8,12],base:24,min_interval:m.ONE_HOUR,max_interval:12*m.ONE_HOUR,num_minor_ticks:0}),new r.DaysTicker({days:t.range(1,32)}),new r.DaysTicker({days:t.range(1,31,3)}),new r.DaysTicker({days:[1,8,15,22]}),new r.DaysTicker({days:[1,15]}),new c.MonthsTicker({months:t.range(0,12,1)}),new c.MonthsTicker({months:t.range(0,12,2)}),new c.MonthsTicker({months:t.range(0,12,4)}),new c.MonthsTicker({months:t.range(0,12,6)}),new _.YearsTicker({})]})}}n.DatetimeTicker=k,k.__name__=\"DatetimeTicker\",k.init_DatetimeTicker()},\n",
" function _(t,e,i){Object.defineProperty(i,\"__esModule\",{value:!0});const r=t(1),s=t(110),n=r.__importStar(t(19)),_=t(9),a=t(23);class c extends s.ContinuousTicker{constructor(t){super(t)}static init_CompositeTicker(){this.define({tickers:[n.Array,[]]})}get min_intervals(){return this.tickers.map(t=>t.get_min_interval())}get max_intervals(){return this.tickers.map(t=>t.get_max_interval())}get min_interval(){return this.min_intervals[0]}get max_interval(){return this.max_intervals[0]}get_best_ticker(t,e,i){const r=e-t,s=this.get_ideal_interval(t,e,i),n=[_.sorted_index(this.min_intervals,s)-1,_.sorted_index(this.max_intervals,s)],c=[this.min_intervals[n[0]],this.max_intervals[n[1]]].map(t=>Math.abs(i-r/t));let l;if(a.isEmpty(c.filter(t=>!isNaN(t))))l=this.tickers[0];else{const t=n[_.argmin(c)];l=this.tickers[t]}return l}get_interval(t,e,i){return this.get_best_ticker(t,e,i).get_interval(t,e,i)}get_ticks_no_defaults(t,e,i,r){return this.get_best_ticker(t,e,r).get_ticks_no_defaults(t,e,i,r)}}i.CompositeTicker=c,c.__name__=\"CompositeTicker\",c.init_CompositeTicker()},\n",
" function _(t,e,n){Object.defineProperty(n,\"__esModule\",{value:!0});const i=t(1),s=t(164),a=t(165),o=i.__importStar(t(19)),r=t(9);class _ extends s.SingleIntervalTicker{constructor(t){super(t)}static init_DaysTicker(){this.define({days:[o.Array,[]]}),this.override({num_minor_ticks:0})}initialize(){super.initialize();const t=this.days;t.length>1?this.interval=(t[1]-t[0])*a.ONE_DAY:this.interval=31*a.ONE_DAY}get_ticks_no_defaults(t,e,n,i){const s=function(t,e){const n=a.last_month_no_later_than(new Date(t)),i=a.last_month_no_later_than(new Date(e));i.setUTCMonth(i.getUTCMonth()+1);const s=[],o=n;for(;s.push(a.copy_date(o)),o.setUTCMonth(o.getUTCMonth()+1),!(o>i););return s}(t,e),o=this.days,_=this.interval;return{major:r.concat(s.map(t=>((t,e)=>{const n=t.getUTCMonth(),i=[];for(const s of o){const o=a.copy_date(t);o.setUTCDate(s),new Date(o.getTime()+e/2).getUTCMonth()==n&&i.push(o)}return i})(t,_))).map(t=>t.getTime()).filter(n=>t<=n&&n<=e),minor:[]}}}n.DaysTicker=_,_.__name__=\"DaysTicker\",_.init_DaysTicker()},\n",
" function _(e,t,i){Object.defineProperty(i,\"__esModule\",{value:!0});const n=e(1),r=e(110),l=n.__importStar(e(19));class a extends r.ContinuousTicker{constructor(e){super(e)}static init_SingleIntervalTicker(){this.define({interval:[l.Number]})}get_interval(e,t,i){return this.interval}get min_interval(){return this.interval}get max_interval(){return this.interval}}i.SingleIntervalTicker=a,a.__name__=\"SingleIntervalTicker\",a.init_SingleIntervalTicker()},\n",
" function _(t,e,n){function _(t){return new Date(t.getTime())}function O(t){const e=_(t);return e.setUTCDate(1),e.setUTCHours(0),e.setUTCMinutes(0),e.setUTCSeconds(0),e.setUTCMilliseconds(0),e}Object.defineProperty(n,\"__esModule\",{value:!0}),n.ONE_MILLI=1,n.ONE_SECOND=1e3,n.ONE_MINUTE=60*n.ONE_SECOND,n.ONE_HOUR=60*n.ONE_MINUTE,n.ONE_DAY=24*n.ONE_HOUR,n.ONE_MONTH=30*n.ONE_DAY,n.ONE_YEAR=365*n.ONE_DAY,n.copy_date=_,n.last_month_no_later_than=O,n.last_year_no_later_than=function(t){const e=O(t);return e.setUTCMonth(0),e}},\n",
" function _(t,e,n){Object.defineProperty(n,\"__esModule\",{value:!0});const r=t(1),i=t(164),s=t(165),a=r.__importStar(t(19)),o=t(9);class _ extends i.SingleIntervalTicker{constructor(t){super(t)}static init_MonthsTicker(){this.define({months:[a.Array,[]]})}initialize(){super.initialize();const t=this.months;t.length>1?this.interval=(t[1]-t[0])*s.ONE_MONTH:this.interval=12*s.ONE_MONTH}get_ticks_no_defaults(t,e,n,r){const i=function(t,e){const n=s.last_year_no_later_than(new Date(t)),r=s.last_year_no_later_than(new Date(e));r.setUTCFullYear(r.getUTCFullYear()+1);const i=[],a=n;for(;i.push(s.copy_date(a)),a.setUTCFullYear(a.getUTCFullYear()+1),!(a>r););return i}(t,e),a=this.months;return{major:o.concat(i.map(t=>a.map(e=>{const n=s.copy_date(t);return n.setUTCMonth(e),n}))).map(t=>t.getTime()).filter(n=>t<=n&&n<=e),minor:[]}}}n.MonthsTicker=_,_.__name__=\"MonthsTicker\",_.init_MonthsTicker()},\n",
" function _(e,t,a){Object.defineProperty(a,\"__esModule\",{value:!0});const i=e(108),r=e(164),n=e(165);class _ extends r.SingleIntervalTicker{constructor(e){super(e)}initialize(){super.initialize(),this.interval=n.ONE_YEAR,this.basic_ticker=new i.BasicTicker({num_minor_ticks:0})}get_ticks_no_defaults(e,t,a,i){const r=n.last_year_no_later_than(new Date(e)).getUTCFullYear(),_=n.last_year_no_later_than(new Date(t)).getUTCFullYear();return{major:this.basic_ticker.get_ticks_no_defaults(r,_,a,i).major.map(e=>Date.UTC(e,0,1)).filter(a=>e<=a&&a<=t),minor:[]}}}a.YearsTicker=_,_.__name__=\"YearsTicker\"},\n",
" function _(e,i,t){Object.defineProperty(t,\"__esModule\",{value:!0});const s=e(148),o=e(153),n=e(169),r=e(170);class _ extends s.AxisView{}t.LogAxisView=_,_.__name__=\"LogAxisView\";class c extends o.ContinuousAxis{constructor(e){super(e)}static init_LogAxis(){this.prototype.default_view=_,this.override({ticker:()=>new r.LogTicker,formatter:()=>new n.LogTickFormatter})}}t.LogAxis=c,c.__name__=\"LogAxis\",c.init_LogAxis()},\n",
" function _(t,e,r){Object.defineProperty(r,\"__esModule\",{value:!0});const i=t(1),o=t(113),a=t(112),n=i.__importStar(t(19));class c extends o.TickFormatter{constructor(t){super(t)}static init_LogTickFormatter(){this.define({ticker:[n.Instance,null]})}initialize(){super.initialize(),this.basic_formatter=new a.BasicTickFormatter}doFormat(t,e){if(0==t.length)return[];const r=null!=this.ticker?this.ticker.base:10;let i=!1;const o=new Array(t.length);for(let e=0,a=t.length;e0&&o[e]==o[e-1]){i=!0;break}return i?this.basic_formatter.doFormat(t,e):o}}r.LogTickFormatter=c,c.__name__=\"LogTickFormatter\",c.init_LogTickFormatter()},\n",
" function _(t,o,e){Object.defineProperty(e,\"__esModule\",{value:!0});const i=t(109),s=t(9);class n extends i.AdaptiveTicker{constructor(t){super(t)}static init_LogTicker(){this.override({mantissas:[1,5]})}get_ticks_no_defaults(t,o,e,i){const n=this.num_minor_ticks,r=[],a=this.base,c=Math.log(t)/Math.log(a),f=Math.log(o)/Math.log(a),l=f-c;let h;if(isFinite(l))if(l<2){const e=this.get_interval(t,o,i),a=Math.floor(t/e),c=Math.ceil(o/e);if(h=s.range(a,c+1).filter(t=>0!=t).map(t=>t*e).filter(e=>t<=e&&e<=o),n>0&&h.length>0){const t=e/n,o=s.range(0,n).map(o=>o*t);for(const t of o.slice(1))r.push(h[0]-t);for(const t of h)for(const e of o)r.push(t+e)}}else{const t=Math.ceil(.999999*c),o=Math.floor(1.000001*f),e=Math.ceil((o-t)/9);if(h=s.range(t-1,o+1,e).map(t=>Math.pow(a,t)),n>0&&h.length>0){const t=Math.pow(a,e)/n,o=s.range(1,n+1).map(o=>o*t);for(const t of o)r.push(h[0]/t);r.push(h[0]);for(const t of h)for(const e of o)r.push(t*e)}}else h=[];return{major:h.filter(e=>t<=e&&e<=o),minor:r.filter(e=>t<=e&&e<=o)}}}e.LogTicker=n,n.__name__=\"LogTicker\",n.init_LogTicker()},\n",
" function _(e,t,r){Object.defineProperty(r,\"__esModule\",{value:!0});const i=e(148),s=e(155),o=e(172),a=e(173);class c extends i.AxisView{}r.MercatorAxisView=c,c.__name__=\"MercatorAxisView\";class n extends s.LinearAxis{constructor(e){super(e)}static init_MercatorAxis(){this.prototype.default_view=c,this.override({ticker:()=>new a.MercatorTicker({dimension:\"lat\"}),formatter:()=>new o.MercatorTickFormatter({dimension:\"lat\"})})}}r.MercatorAxis=n,n.__name__=\"MercatorAxis\",n.init_MercatorAxis()},\n",
" function _(r,t,e){Object.defineProperty(e,\"__esModule\",{value:!0});const o=r(1),n=r(112),i=o.__importStar(r(19)),c=r(30);class s extends n.BasicTickFormatter{constructor(r){super(r)}static init_MercatorTickFormatter(){this.define({dimension:[i.LatLon]})}doFormat(r,t){if(null==this.dimension)throw new Error(\"MercatorTickFormatter.dimension not configured\");if(0==r.length)return[];const e=r.length,o=new Array(e);if(\"lon\"==this.dimension)for(let n=0;n{const n=i.replace_placeholders(this.url,t,e);this.same_tab?window.location.href=n:window.open(n)},{selected:o}=t;for(const e of o.indices)n(e);for(const e of o.line_indices)n(e)}}n.OpenURL=r,r.__name__=\"OpenURL\",r.init_OpenURL()},\n",
" function _(a,e,r){Object.defineProperty(r,\"__esModule\",{value:!0});var n=a(179);r.Canvas=n.Canvas;var s=a(183);r.CartesianFrame=s.CartesianFrame},\n",
" function _(e,t,s){Object.defineProperty(s,\"__esModule\",{value:!0});const a=e(1),i=e(13),n=e(64),l=e(70),o=a.__importStar(e(19)),c=e(66),d=e(85),h=e(180),_=e(181),r=(()=>{const e=document.createElement(\"canvas\"),t=e.getContext(\"webgl\",{premultipliedAlpha:!0});return null!=t?{canvas:e,gl:t}:void l.logger.trace(\"WebGL is not supported\")})(),v=a.__importDefault(e(182));class p extends n.DOMView{get ctx(){return this._ctx}initialize(){super.initialize();const e={position:\"absolute\",top:\"0\",left:\"0\",width:\"100%\",height:\"100%\"};switch(this.model.output_backend){case\"webgl\":this.webgl=r;case\"canvas\":{this.canvas_el=c.canvas({class:_.bk_canvas,style:e});const t=this.canvas_el.getContext(\"2d\");if(null==t)throw new Error(\"unable to obtain 2D rendering context\");this._ctx=t;break}case\"svg\":{const e=new v.default;this._ctx=e,this.canvas_el=e.getSvg();break}}this.underlays_el=c.div({class:_.bk_canvas_underlays,style:e}),this.overlays_el=c.div({class:_.bk_canvas_overlays,style:e}),this.events_el=c.div({class:_.bk_canvas_events,style:e}),c.append(this.el,this.underlays_el,this.canvas_el,this.overlays_el,this.events_el),h.fixup_ctx(this._ctx),l.logger.debug(\"CanvasView initialized\")}add_underlay(e){this.underlays_el.appendChild(e)}add_overlay(e){this.overlays_el.appendChild(e)}add_event(e){this.events_el.appendChild(e)}prepare_canvas(e,t){this.bbox=new d.BBox({left:0,top:0,width:e,height:t}),this.el.style.width=`${e}px`,this.el.style.height=`${t}px`;const{use_hidpi:s,output_backend:a}=this.model,i=s&&\"svg\"!=a?devicePixelRatio:1;this.model.pixel_ratio=i,this.canvas_el.style.width=`${e}px`,this.canvas_el.style.height=`${t}px`,this.canvas_el.setAttribute(\"width\",`${e*i}`),this.canvas_el.setAttribute(\"height\",`${t*i}`),l.logger.debug(`Rendering CanvasView with width: ${e}, height: ${t}, pixel ratio: ${i}`)}save(e){if(this.canvas_el instanceof HTMLCanvasElement){const t=this.canvas_el;if(null!=t.msToBlob){const s=t.msToBlob();window.navigator.msSaveBlob(s,e)}else{const s=document.createElement(\"a\");s.href=t.toDataURL(\"image/png\"),s.download=e+\".png\",s.target=\"_blank\",s.dispatchEvent(new MouseEvent(\"click\"))}}else{const t=this._ctx.getSerializedSvg(!0),s=new Blob([t],{type:\"text/plain\"}),a=document.createElement(\"a\");a.download=e+\".svg\",a.innerHTML=\"Download svg\",a.href=window.URL.createObjectURL(s),a.onclick=e=>document.body.removeChild(e.target),a.style.display=\"none\",document.body.appendChild(a),a.click()}}}s.CanvasView=p,p.__name__=\"CanvasView\";class u extends i.HasProps{constructor(e){super(e)}static init_Canvas(){this.prototype.default_view=p,this.internal({use_hidpi:[o.Boolean,!0],pixel_ratio:[o.Number,1],output_backend:[o.OutputBackend,\"canvas\"]})}}s.Canvas=u,u.__name__=\"Canvas\",u.init_Canvas()},\n",
" function _(e,t,n){Object.defineProperty(n,\"__esModule\",{value:!0}),n.fixup_ctx=function(e){!function(e){e.setLineDash||(e.setLineDash=t=>{e.mozDash=t,e.webkitLineDash=t}),e.getLineDash||(e.getLineDash=()=>e.mozDash)}(e),function(e){e.setLineDashOffset=t=>{e.lineDashOffset=t,e.mozDashOffset=t,e.webkitLineDashOffset=t},e.getLineDashOffset=()=>e.mozDashOffset}(e),function(e){e.setImageSmoothingEnabled=t=>{e.imageSmoothingEnabled=t,e.mozImageSmoothingEnabled=t,e.oImageSmoothingEnabled=t,e.webkitImageSmoothingEnabled=t,e.msImageSmoothingEnabled=t},e.getImageSmoothingEnabled=()=>{const t=e.imageSmoothingEnabled;return null==t||t}}(e),function(e){e.measureText&&null==e.html5MeasureText&&(e.html5MeasureText=e.measureText,e.measureText=t=>{const n=e.html5MeasureText(t);return n.ascent=1.6*e.html5MeasureText(\"m\").width,n})}(e),function(e){e.ellipse||(e.ellipse=function(t,n,a,o,s,i,m,h=!1){const l=.551784;e.translate(t,n),e.rotate(s);let u=a,r=o;h&&(u=-a,r=-o),e.moveTo(-u,0),e.bezierCurveTo(-u,r*l,-u*l,r,0,r),e.bezierCurveTo(u*l,r,u,r*l,u,0),e.bezierCurveTo(u,-r*l,u*l,-r,0,-r),e.bezierCurveTo(-u*l,-r,-u,-r*l,-u,0),e.rotate(-s),e.translate(-t,-n)})}(e)}},\n",
" function _(a,e,n){Object.defineProperty(n,\"__esModule\",{value:!0}),a(67),n.bk_canvas=\"bk-canvas\",n.bk_canvas_underlays=\"bk-canvas-underlays\",n.bk_canvas_overlays=\"bk-canvas-overlays\",n.bk_canvas_events=\"bk-canvas-events\"},\n",
" function _(t,e,r){var i,n,s,a,o;function h(t,e){var r,i=Object.keys(e);for(r=0;r1?((e=r).width=arguments[0],e.height=arguments[1]):e=t||r,!(this instanceof n))return new n(e);this.width=e.width||r.width,this.height=e.height||r.height,this.enableMirroring=void 0!==e.enableMirroring?e.enableMirroring:r.enableMirroring,this.canvas=this,this.__document=e.document||document,e.ctx?this.__ctx=e.ctx:(this.__canvas=this.__document.createElement(\"canvas\"),this.__ctx=this.__canvas.getContext(\"2d\")),this.__setDefaultStyles(),this.__stack=[this.__getStyleState()],this.__groupStack=[],this.__root=this.__document.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\"),this.__root.setAttribute(\"version\",1.1),this.__root.setAttribute(\"xmlns\",\"http://www.w3.org/2000/svg\"),this.__root.setAttributeNS(\"http://www.w3.org/2000/xmlns/\",\"xmlns:xlink\",\"http://www.w3.org/1999/xlink\"),this.__root.setAttribute(\"width\",this.width),this.__root.setAttribute(\"height\",this.height),this.__ids={},this.__defs=this.__document.createElementNS(\"http://www.w3.org/2000/svg\",\"defs\"),this.__root.appendChild(this.__defs),this.__currentElement=this.__document.createElementNS(\"http://www.w3.org/2000/svg\",\"g\"),this.__root.appendChild(this.__currentElement)}).prototype.__createElement=function(t,e,r){void 0===e&&(e={});var i,n,s=this.__document.createElementNS(\"http://www.w3.org/2000/svg\",t),a=Object.keys(e);for(r&&(s.setAttribute(\"fill\",\"none\"),s.setAttribute(\"stroke\",\"none\")),i=0;i0){\"path\"===this.__currentElement.nodeName&&(this.__currentElementsToStyle||(this.__currentElementsToStyle={element:e,children:[]}),this.__currentElementsToStyle.children.push(this.__currentElement),this.__applyCurrentDefaultPath());var r=this.__createElement(\"g\");e.appendChild(r),this.__currentElement=r}var i=this.__currentElement.getAttribute(\"transform\");i?i+=\" \":i=\"\",i+=t,this.__currentElement.setAttribute(\"transform\",i)},n.prototype.scale=function(t,e){void 0===e&&(e=t),this.__addTransform(h(\"scale({x},{y})\",{x:t,y:e}))},n.prototype.rotate=function(t){var e=180*t/Math.PI;this.__addTransform(h(\"rotate({angle},{cx},{cy})\",{angle:e,cx:0,cy:0}))},n.prototype.translate=function(t,e){this.__addTransform(h(\"translate({x},{y})\",{x:t,y:e}))},n.prototype.transform=function(t,e,r,i,n,s){this.__addTransform(h(\"matrix({a},{b},{c},{d},{e},{f})\",{a:t,b:e,c:r,d:i,e:n,f:s}))},n.prototype.beginPath=function(){var t;this.__currentDefaultPath=\"\",this.__currentPosition={},t=this.__createElement(\"path\",{},!0),this.__closestGroupOrSvg().appendChild(t),this.__currentElement=t},n.prototype.__applyCurrentDefaultPath=function(){var t=this.__currentElement;\"path\"===t.nodeName?t.setAttribute(\"d\",this.__currentDefaultPath):console.error(\"Attempted to apply path command to node\",t.nodeName)},n.prototype.__addPathCommand=function(t){this.__currentDefaultPath+=\" \",this.__currentDefaultPath+=t},n.prototype.moveTo=function(t,e){\"path\"!==this.__currentElement.nodeName&&this.beginPath(),this.__currentPosition={x:t,y:e},this.__addPathCommand(h(\"M {x} {y}\",{x:t,y:e}))},n.prototype.closePath=function(){this.__currentDefaultPath&&this.__addPathCommand(\"Z\")},n.prototype.lineTo=function(t,e){this.__currentPosition={x:t,y:e},this.__currentDefaultPath.indexOf(\"M\")>-1?this.__addPathCommand(h(\"L {x} {y}\",{x:t,y:e})):this.__addPathCommand(h(\"M {x} {y}\",{x:t,y:e}))},n.prototype.bezierCurveTo=function(t,e,r,i,n,s){this.__currentPosition={x:n,y:s},this.__addPathCommand(h(\"C {cp1x} {cp1y} {cp2x} {cp2y} {x} {y}\",{cp1x:t,cp1y:e,cp2x:r,cp2y:i,x:n,y:s}))},n.prototype.quadraticCurveTo=function(t,e,r,i){this.__currentPosition={x:r,y:i},this.__addPathCommand(h(\"Q {cpx} {cpy} {x} {y}\",{cpx:t,cpy:e,x:r,y:i}))};var p=function(t){var e=Math.sqrt(t[0]*t[0]+t[1]*t[1]);return[t[0]/e,t[1]/e]};n.prototype.arcTo=function(t,e,r,i,n){var s=this.__currentPosition&&this.__currentPosition.x,a=this.__currentPosition&&this.__currentPosition.y;if(void 0!==s&&void 0!==a){if(n<0)throw new Error(\"IndexSizeError: The radius provided (\"+n+\") is negative.\");if(s===t&&a===e||t===r&&e===i||0===n)this.lineTo(t,e);else{var o=p([s-t,a-e]),h=p([r-t,i-e]);if(o[0]*h[1]!=o[1]*h[0]){var l=o[0]*h[0]+o[1]*h[1],c=Math.acos(Math.abs(l)),_=p([o[0]+h[0],o[1]+h[1]]),u=n/Math.sin(c/2),d=t+u*_[0],g=e+u*_[1],m=[-o[1],o[0]],f=[h[1],-h[0]],y=function(t){var e=t[0];return t[1]>=0?Math.acos(e):-Math.acos(e)},v=y(m),b=y(f);this.lineTo(d+m[0]*n,g+m[1]*n),this.arc(d,g,n,v,b)}else this.lineTo(t,e)}}},n.prototype.stroke=function(){\"path\"===this.__currentElement.nodeName&&this.__currentElement.setAttribute(\"paint-order\",\"fill stroke markers\"),this.__applyCurrentDefaultPath(),this.__applyStyleToCurrentElement(\"stroke\")},n.prototype.fill=function(){\"path\"===this.__currentElement.nodeName&&this.__currentElement.setAttribute(\"paint-order\",\"stroke fill markers\"),this.__applyCurrentDefaultPath(),this.__applyStyleToCurrentElement(\"fill\")},n.prototype.rect=function(t,e,r,i){\"path\"!==this.__currentElement.nodeName&&this.beginPath(),this.moveTo(t,e),this.lineTo(t+r,e),this.lineTo(t+r,e+i),this.lineTo(t,e+i),this.lineTo(t,e),this.closePath()},n.prototype.fillRect=function(t,e,r,i){var n;n=this.__createElement(\"rect\",{x:t,y:e,width:r,height:i},!0),this.__closestGroupOrSvg().appendChild(n),this.__currentElement=n,this.__applyStyleToCurrentElement(\"fill\")},n.prototype.strokeRect=function(t,e,r,i){var n;n=this.__createElement(\"rect\",{x:t,y:e,width:r,height:i},!0),this.__closestGroupOrSvg().appendChild(n),this.__currentElement=n,this.__applyStyleToCurrentElement(\"stroke\")},n.prototype.__clearCanvas=function(){for(var t=this.__closestGroupOrSvg().getAttribute(\"transform\"),e=this.__root.childNodes[1],r=e.childNodes,i=r.length-1;i>=0;i--)r[i]&&e.removeChild(r[i]);this.__currentElement=e,this.__groupStack=[],t&&this.__addTransform(t)},n.prototype.clearRect=function(t,e,r,i){if(0!==t||0!==e||r!==this.width||i!==this.height){var n,s=this.__closestGroupOrSvg();n=this.__createElement(\"rect\",{x:t,y:e,width:r,height:i,fill:\"#FFFFFF\"},!0),s.appendChild(n)}else this.__clearCanvas()},n.prototype.createLinearGradient=function(t,e,r,i){var n=this.__createElement(\"linearGradient\",{id:l(this.__ids),x1:t+\"px\",x2:r+\"px\",y1:e+\"px\",y2:i+\"px\",gradientUnits:\"userSpaceOnUse\"},!1);return this.__defs.appendChild(n),new s(n,this)},n.prototype.createRadialGradient=function(t,e,r,i,n,a){var o=this.__createElement(\"radialGradient\",{id:l(this.__ids),cx:i+\"px\",cy:n+\"px\",r:a+\"px\",fx:t+\"px\",fy:e+\"px\",gradientUnits:\"userSpaceOnUse\"},!1);return this.__defs.appendChild(o),new s(o,this)},n.prototype.__parseFont=function(){var t=/^\\s*(?=(?:(?:[-a-z]+\\s*){0,2}(italic|oblique))?)(?=(?:(?:[-a-z]+\\s*){0,2}(small-caps))?)(?=(?:(?:[-a-z]+\\s*){0,2}(bold(?:er)?|lighter|[1-9]00))?)(?:(?:normal|\\1|\\2|\\3)\\s*){0,3}((?:xx?-)?(?:small|large)|medium|smaller|larger|[.\\d]+(?:\\%|in|[cem]m|ex|p[ctx]))(?:\\s*\\/\\s*(normal|[.\\d]+(?:\\%|in|[cem]m|ex|p[ctx])))?\\s*([-,\\'\\\"\\sa-z0-9]+?)\\s*$/i.exec(this.font),e={style:t[1]||\"normal\",size:t[4]||\"10px\",family:t[6]||\"sans-serif\",weight:t[3]||\"normal\",decoration:t[2]||\"normal\",href:null};return\"underline\"===this.__fontUnderline&&(e.decoration=\"underline\"),this.__fontHref&&(e.href=this.__fontHref),e},n.prototype.__wrapTextLink=function(t,e){if(t.href){var r=this.__createElement(\"a\");return r.setAttributeNS(\"http://www.w3.org/1999/xlink\",\"xlink:href\",t.href),r.appendChild(e),r}return e},n.prototype.__applyText=function(t,e,r,i){var n,s,a=this.__parseFont(),o=this.__closestGroupOrSvg(),h=this.__createElement(\"text\",{\"font-family\":a.family,\"font-size\":a.size,\"font-style\":a.style,\"font-weight\":a.weight,\"text-decoration\":a.decoration,x:e,y:r,\"text-anchor\":(n=this.textAlign,s={left:\"start\",right:\"end\",center:\"middle\",start:\"start\",end:\"end\"},s[n]||s.start),\"dominant-baseline\":c(this.textBaseline)},!0);h.appendChild(this.__document.createTextNode(t)),this.__currentElement=h,this.__applyStyleToCurrentElement(i),o.appendChild(this.__wrapTextLink(a,h))},n.prototype.fillText=function(t,e,r){this.__applyText(t,e,r,\"fill\")},n.prototype.strokeText=function(t,e,r){this.__applyText(t,e,r,\"stroke\")},n.prototype.measureText=function(t){return this.__ctx.font=this.font,this.__ctx.measureText(t)},n.prototype.arc=function(t,e,r,i,n,s){if(i!==n){(i%=2*Math.PI)===(n%=2*Math.PI)&&(n=(n+2*Math.PI-.001*(s?-1:1))%(2*Math.PI));var a=t+r*Math.cos(n),o=e+r*Math.sin(n),l=t+r*Math.cos(i),c=e+r*Math.sin(i),p=s?0:1,_=0,u=n-i;u<0&&(u+=2*Math.PI),_=s?u>Math.PI?0:1:u>Math.PI?1:0,this.lineTo(l,c),this.__addPathCommand(h(\"A {rx} {ry} {xAxisRotation} {largeArcFlag} {sweepFlag} {endX} {endY}\",{rx:r,ry:r,xAxisRotation:0,largeArcFlag:_,sweepFlag:p,endX:a,endY:o})),this.__currentPosition={x:a,y:o}}},n.prototype.clip=function(){var t=this.__closestGroupOrSvg(),e=this.__createElement(\"clipPath\"),r=l(this.__ids),i=this.__createElement(\"g\");this.__applyCurrentDefaultPath(),t.removeChild(this.__currentElement),e.setAttribute(\"id\",r),e.appendChild(this.__currentElement),this.__defs.appendChild(e),t.setAttribute(\"clip-path\",h(\"url(#{id})\",{id:r})),t.appendChild(i),this.__currentElement=i},n.prototype.drawImage=function(){var t,e,r,i,s,a,o,h,l,c,p,_,u,d,g=Array.prototype.slice.call(arguments),m=g[0],f=0,y=0;if(3===g.length)t=g[1],e=g[2],r=s=m.width,i=a=m.height;else if(5===g.length)t=g[1],e=g[2],r=g[3],i=g[4],s=m.width,a=m.height;else{if(9!==g.length)throw new Error(\"Inavlid number of arguments passed to drawImage: \"+arguments.length);f=g[1],y=g[2],s=g[3],a=g[4],t=g[5],e=g[6],r=g[7],i=g[8]}o=this.__closestGroupOrSvg(),this.__currentElement;var v=\"translate(\"+t+\", \"+e+\")\";if(m instanceof n){if((h=m.getSvg().cloneNode(!0)).childNodes&&h.childNodes.length>1){for(l=h.childNodes[0];l.childNodes.length;)d=l.childNodes[0].getAttribute(\"id\"),this.__ids[d]=d,this.__defs.appendChild(l.childNodes[0]);if(c=h.childNodes[1]){var b,x=c.getAttribute(\"transform\");b=x?x+\" \"+v:v,c.setAttribute(\"transform\",b),o.appendChild(c)}}}else\"IMG\"===m.nodeName?((p=this.__createElement(\"image\")).setAttribute(\"width\",r),p.setAttribute(\"height\",i),p.setAttribute(\"preserveAspectRatio\",\"none\"),(f||y||s!==m.width||a!==m.height)&&((_=this.__document.createElement(\"canvas\")).width=r,_.height=i,(u=_.getContext(\"2d\")).drawImage(m,f,y,s,a,0,0,r,i),m=_),p.setAttribute(\"transform\",v),p.setAttributeNS(\"http://www.w3.org/1999/xlink\",\"xlink:href\",\"CANVAS\"===m.nodeName?m.toDataURL():m.getAttribute(\"src\")),o.appendChild(p)):\"CANVAS\"===m.nodeName&&((p=this.__createElement(\"image\")).setAttribute(\"width\",r),p.setAttribute(\"height\",i),p.setAttribute(\"preserveAspectRatio\",\"none\"),(_=this.__document.createElement(\"canvas\")).width=r,_.height=i,(u=_.getContext(\"2d\")).imageSmoothingEnabled=!1,u.mozImageSmoothingEnabled=!1,u.oImageSmoothingEnabled=!1,u.webkitImageSmoothingEnabled=!1,u.drawImage(m,f,y,s,a,0,0,r,i),m=_,p.setAttribute(\"transform\",v),p.setAttributeNS(\"http://www.w3.org/1999/xlink\",\"xlink:href\",m.toDataURL()),o.appendChild(p))},n.prototype.createPattern=function(t,e){var r,i=this.__document.createElementNS(\"http://www.w3.org/2000/svg\",\"pattern\"),s=l(this.__ids);return i.setAttribute(\"id\",s),i.setAttribute(\"width\",t.width),i.setAttribute(\"height\",t.height),\"CANVAS\"===t.nodeName||\"IMG\"===t.nodeName?((r=this.__document.createElementNS(\"http://www.w3.org/2000/svg\",\"image\")).setAttribute(\"width\",t.width),r.setAttribute(\"height\",t.height),r.setAttributeNS(\"http://www.w3.org/1999/xlink\",\"xlink:href\",\"CANVAS\"===t.nodeName?t.toDataURL():t.getAttribute(\"src\")),i.appendChild(r),this.__defs.appendChild(i)):t instanceof n&&(i.appendChild(t.__root.childNodes[1]),this.__defs.appendChild(i)),new a(i,this)},n.prototype.setLineDash=function(t){t&&t.length>0?this.lineDash=t.join(\",\"):this.lineDash=null},n.prototype.drawFocusRing=function(){},n.prototype.createImageData=function(){},n.prototype.getImageData=function(){},n.prototype.putImageData=function(){},n.prototype.globalCompositeOperation=function(){},n.prototype.setTransform=function(){},r.default=n},\n",
" function _(e,t,s){Object.defineProperty(s,\"__esModule\",{value:!0});const a=e(184),_=e(120),n=e(129),r=e(130),i=e(185),g=e(88),c=e(187);class h extends c.LayoutItem{constructor(e,t,s,a,_={},n={}){super(),this.x_scale=e,this.y_scale=t,this.x_range=s,this.y_range=a,this.extra_x_ranges=_,this.extra_y_ranges=n,this._configure_scales()}map_to_screen(e,t,s=\"default\",a=\"default\"){return[this.xscales[s].v_compute(e),this.yscales[a].v_compute(t)]}_get_ranges(e,t){return Object.assign(Object.assign({},t),{default:e})}_get_scales(e,t,s){const c={};for(const h in t){const o=t[h];if((o instanceof i.DataRange1d||o instanceof r.Range1d)&&!(e instanceof _.ContinuousScale))throw new Error(`Range ${o.type} is incompatible is Scale ${e.type}`);if(o instanceof g.FactorRange&&!(e instanceof a.CategoricalScale))throw new Error(`Range ${o.type} is incompatible is Scale ${e.type}`);e instanceof n.LogScale&&o instanceof i.DataRange1d&&(o.scale_hint=\"log\");const l=e.clone();l.setv({source_range:o,target_range:s}),c[h]=l}return c}_configure_frame_ranges(){this._h_target=new r.Range1d({start:this._left.value,end:this._right.value}),this._v_target=new r.Range1d({start:this._bottom.value,end:this._top.value})}_configure_scales(){this._configure_frame_ranges(),this._x_ranges=this._get_ranges(this.x_range,this.extra_x_ranges),this._y_ranges=this._get_ranges(this.y_range,this.extra_y_ranges),this._xscales=this._get_scales(this.x_scale,this._x_ranges,this._h_target),this._yscales=this._get_scales(this.y_scale,this._y_ranges,this._v_target)}_update_scales(){this._configure_frame_ranges();for(const e in this._xscales){this._xscales[e].target_range=this._h_target}for(const e in this._yscales){this._yscales[e].target_range=this._v_target}}_set_geometry(e,t){super._set_geometry(e,t),this._update_scales()}get x_ranges(){return this._x_ranges}get y_ranges(){return this._y_ranges}get xscales(){return this._xscales}get yscales(){return this._yscales}}s.CartesianFrame=h,h.__name__=\"CartesianFrame\"},\n",
" function _(e,r,t){Object.defineProperty(t,\"__esModule\",{value:!0});const n=e(121);class _ extends n.Scale{constructor(e){super(e)}compute(e){return super._linear_compute(this.source_range.synthetic(e))}v_compute(e){return super._linear_v_compute(this.source_range.v_synthetic(e))}invert(e){return this._linear_invert(e)}v_invert(e){return this._linear_v_invert(e)}}t.CategoricalScale=_,_.__name__=\"CategoricalScale\"},\n",
" function _(t,i,n){Object.defineProperty(n,\"__esModule\",{value:!0});const e=t(1),a=t(186),s=t(78),l=t(70),_=e.__importStar(t(19)),o=e.__importStar(t(85)),r=t(9);class d extends a.DataRange{constructor(t){super(t),this._plot_bounds={},this.have_updated_interactively=!1}static init_DataRange1d(){this.define({start:[_.Number],end:[_.Number],range_padding:[_.Number,.1],range_padding_units:[_.PaddingUnits,\"percent\"],flipped:[_.Boolean,!1],follow:[_.StartEnd],follow_interval:[_.Number],default_span:[_.Number,2],only_visible:[_.Boolean,!1]}),this.internal({scale_hint:[_.String,\"auto\"]})}initialize(){super.initialize(),this._initial_start=this.start,this._initial_end=this.end,this._initial_range_padding=this.range_padding,this._initial_range_padding_units=this.range_padding_units,this._initial_follow=this.follow,this._initial_follow_interval=this.follow_interval,this._initial_default_span=this.default_span}get min(){return Math.min(this.start,this.end)}get max(){return Math.max(this.start,this.end)}computed_renderers(){const t=this.names;let i=this.renderers;if(0==i.length)for(const t of this.plots){const n=t.renderers.filter(t=>t instanceof s.GlyphRenderer);i=i.concat(n)}t.length>0&&(i=i.filter(i=>r.includes(t,i.name))),l.logger.debug(`computed ${i.length} renderers for DataRange1d ${this.id}`);for(const t of i)l.logger.trace(` - ${t.type} ${t.id}`);return i}_compute_plot_bounds(t,i){let n=o.empty();for(const e of t)null==i[e.id]||!e.visible&&this.only_visible||(n=o.union(n,i[e.id]));return n}adjust_bounds_for_aspect(t,i){const n=o.empty();let e=t.x1-t.x0;e<=0&&(e=1);let a=t.y1-t.y0;a<=0&&(a=1);const s=.5*(t.x1+t.x0),l=.5*(t.y1+t.y0);return e_&&(\"start\"==this.follow?a=e+s*_:\"end\"==this.follow&&(e=a-s*_)),[e,a]}update(t,i,n,e){if(this.have_updated_interactively)return;const a=this.computed_renderers();let s=this._compute_plot_bounds(a,t);null!=e&&(s=this.adjust_bounds_for_aspect(s,e)),this._plot_bounds[n]=s;const[l,_]=this._compute_min_max(this._plot_bounds,i);let[o,r]=this._compute_range(l,_);null!=this._initial_start&&(\"log\"==this.scale_hint?this._initial_start>0&&(o=this._initial_start):o=this._initial_start),null!=this._initial_end&&(\"log\"==this.scale_hint?this._initial_end>0&&(r=this._initial_end):r=this._initial_end);const[d,h]=[this.start,this.end];if(o!=d||r!=h){const t={};o!=d&&(t.start=o),r!=h&&(t.end=r),this.setv(t)}\"auto\"==this.bounds&&this.setv({bounds:[o,r]},{silent:!0}),this.change.emit()}reset(){this.have_updated_interactively=!1,this.setv({range_padding:this._initial_range_padding,range_padding_units:this._initial_range_padding_units,follow:this._initial_follow,follow_interval:this._initial_follow_interval,default_span:this._initial_default_span},{silent:!0}),this.change.emit()}}n.DataRange1d=d,d.__name__=\"DataRange1d\",d.init_DataRange1d()},\n",
" function _(e,a,t){Object.defineProperty(t,\"__esModule\",{value:!0});const n=e(1),r=e(89),s=n.__importStar(e(19));class _ extends r.Range{constructor(e){super(e)}static init_DataRange(){this.define({names:[s.Array,[]],renderers:[s.Array,[]]})}}t.DataRange=_,_.__name__=\"DataRange\",_.init_DataRange()},\n",
" function _(a,o,t){Object.defineProperty(t,\"__esModule\",{value:!0});var e=a(188);t.Sizeable=e.Sizeable;var r=a(189);t.Layoutable=r.Layoutable,t.LayoutItem=r.LayoutItem;var n=a(190);t.HStack=n.HStack,t.VStack=n.VStack,t.AnchorLayout=n.AnchorLayout;var u=a(191);t.Grid=u.Grid,t.Row=u.Row,t.Column=u.Column;var c=a(192);t.ContentBox=c.ContentBox,t.VariadicBox=c.VariadicBox},\n",
" function _(h,t,i){Object.defineProperty(i,\"__esModule\",{value:!0});const{min:e,max:w}=Math;class d{constructor(h={}){this.width=null!=h.width?h.width:0,this.height=null!=h.height?h.height:0}bounded_to({width:h,height:t}){return new d({width:this.width==1/0&&null!=h?h:this.width,height:this.height==1/0&&null!=t?t:this.height})}expanded_to({width:h,height:t}){return new d({width:h!=1/0?w(this.width,h):this.width,height:t!=1/0?w(this.height,t):this.height})}expand_to({width:h,height:t}){this.width=w(this.width,h),this.height=w(this.height,t)}narrowed_to({width:h,height:t}){return new d({width:e(this.width,h),height:e(this.height,t)})}narrow_to({width:h,height:t}){this.width=e(this.width,h),this.height=e(this.height,t)}grow_by({left:h,right:t,top:i,bottom:e}){const w=this.width+h+t,s=this.height+i+e;return new d({width:w,height:s})}shrink_by({left:h,right:t,top:i,bottom:e}){const s=w(this.width-h-t,0),n=w(this.height-i-e,0);return new d({width:s,height:n})}map(h,t){return new d({width:h(this.width),height:(null!=t?t:h)(this.height)})}}i.Sizeable=d,d.__name__=\"Sizeable\"},\n",
" function _(i,t,h){Object.defineProperty(h,\"__esModule\",{value:!0});const e=i(188),s=i(85),{min:n,max:g,round:a}=Math;class r{constructor(){this._bbox=new s.BBox,this._inner_bbox=new s.BBox;const i=this;this._top={get value(){return i.bbox.top}},this._left={get value(){return i.bbox.left}},this._width={get value(){return i.bbox.width}},this._height={get value(){return i.bbox.height}},this._right={get value(){return i.bbox.right}},this._bottom={get value(){return i.bbox.bottom}},this._hcenter={get value(){return i.bbox.hcenter}},this._vcenter={get value(){return i.bbox.vcenter}}}get bbox(){return this._bbox}get inner_bbox(){return this._inner_bbox}get sizing(){return this._sizing}set_sizing(i){const t=i.width_policy||\"fit\",h=i.width,e=null!=i.min_width?i.min_width:0,s=null!=i.max_width?i.max_width:1/0,n=i.height_policy||\"fit\",g=i.height,a=null!=i.min_height?i.min_height:0,r=null!=i.max_height?i.max_height:1/0,l=i.aspect,_=i.margin||{top:0,right:0,bottom:0,left:0},d=!1!==i.visible,o=i.halign||\"start\",u=i.valign||\"start\";this._sizing={width_policy:t,min_width:e,width:h,max_width:s,height_policy:n,min_height:a,height:g,max_height:r,aspect:l,margin:_,visible:d,halign:o,valign:u,size:{width:h,height:g},min_size:{width:e,height:a},max_size:{width:s,height:r}},this._init()}_init(){}_set_geometry(i,t){this._bbox=i,this._inner_bbox=t}set_geometry(i,t){this._set_geometry(i,t||i)}is_width_expanding(){return\"max\"==this.sizing.width_policy}is_height_expanding(){return\"max\"==this.sizing.height_policy}apply_aspect(i,{width:t,height:h}){const{aspect:e}=this.sizing;if(null!=e){const{width_policy:s,height_policy:n}=this.sizing,g=(i,t)=>{const h={max:4,fit:3,min:2,fixed:1};return h[i]>h[t]};if(\"fixed\"!=s&&\"fixed\"!=n)if(s==n){const s=t,n=a(t/e),g=a(h*e),r=h;Math.abs(i.width-s)+Math.abs(i.height-n)<=Math.abs(i.width-g)+Math.abs(i.height-r)?(t=s,h=n):(t=g,h=r)}else g(s,n)?h=a(t/e):t=a(h*e);else\"fixed\"==s?h=a(t/e):\"fixed\"==n&&(t=a(h*e))}return{width:t,height:h}}measure(i){if(!this.sizing.visible)return{width:0,height:0};const t=i=>\"fixed\"==this.sizing.width_policy&&null!=this.sizing.width?this.sizing.width:i,h=i=>\"fixed\"==this.sizing.height_policy&&null!=this.sizing.height?this.sizing.height:i,s=new e.Sizeable(i).shrink_by(this.sizing.margin).map(t,h),n=this._measure(s),g=this.clip_size(n),a=t(g.width),r=h(g.height),l=this.apply_aspect(s,{width:a,height:r});return Object.assign(Object.assign({},n),l)}compute(i={}){const t=this.measure({width:null!=i.width&&this.is_width_expanding()?i.width:1/0,height:null!=i.height&&this.is_height_expanding()?i.height:1/0}),{width:h,height:e}=t,n=new s.BBox({left:0,top:0,width:h,height:e});let g=void 0;if(null!=t.inner){const{left:i,top:n,right:a,bottom:r}=t.inner;g=new s.BBox({left:i,top:n,right:h-a,bottom:e-r})}this.set_geometry(n,g)}get xview(){return this.bbox.xview}get yview(){return this.bbox.yview}clip_width(i){return g(this.sizing.min_width,n(i,this.sizing.max_width))}clip_height(i){return g(this.sizing.min_height,n(i,this.sizing.max_height))}clip_size({width:i,height:t}){return{width:this.clip_width(i),height:this.clip_height(t)}}}h.Layoutable=r,r.__name__=\"Layoutable\";class l extends r{_measure(i){const{width_policy:t,height_policy:h}=this.sizing;let e,s;if(i.width==1/0)e=null!=this.sizing.width?this.sizing.width:0;else switch(t){case\"fixed\":e=null!=this.sizing.width?this.sizing.width:0;break;case\"min\":e=null!=this.sizing.width?n(i.width,this.sizing.width):0;break;case\"fit\":e=null!=this.sizing.width?n(i.width,this.sizing.width):i.width;break;case\"max\":e=null!=this.sizing.width?g(i.width,this.sizing.width):i.width}if(i.height==1/0)s=null!=this.sizing.height?this.sizing.height:0;else switch(h){case\"fixed\":s=null!=this.sizing.height?this.sizing.height:0;break;case\"min\":s=null!=this.sizing.height?n(i.height,this.sizing.height):0;break;case\"fit\":s=null!=this.sizing.height?n(i.height,this.sizing.height):i.height;break;case\"max\":s=null!=this.sizing.height?g(i.height,this.sizing.height):i.height}return{width:e,height:s}}}h.LayoutItem=l,l.__name__=\"LayoutItem\";class _ extends r{_measure(i){const t=this._content_size(),h=i.bounded_to(this.sizing.size).bounded_to(t);return{width:(()=>{switch(this.sizing.width_policy){case\"fixed\":return null!=this.sizing.width?this.sizing.width:t.width;case\"min\":return t.width;case\"fit\":return h.width;case\"max\":return Math.max(t.width,h.width)}})(),height:(()=>{switch(this.sizing.height_policy){case\"fixed\":return null!=this.sizing.height?this.sizing.height:t.height;case\"min\":return t.height;case\"fit\":return h.height;case\"max\":return Math.max(t.height,h.height)}})()}}}h.ContentLayoutable=_,_.__name__=\"ContentLayoutable\"},\n",
" function _(t,e,h){Object.defineProperty(h,\"__esModule\",{value:!0});const o=t(189),r=t(85);class i extends o.Layoutable{constructor(){super(...arguments),this.children=[]}}h.Stack=i,i.__name__=\"Stack\";class s extends i{_measure(t){let e=0,h=0;for(const t of this.children){const o=t.measure({width:0,height:0});e+=o.width,h=Math.max(h,o.height)}return{width:e,height:h}}_set_geometry(t,e){super._set_geometry(t,e);const{top:h,bottom:o}=t;let{left:i}=t;for(const t of this.children){const{width:e}=t.measure({width:0,height:0});t.set_geometry(new r.BBox({left:i,width:e,top:h,bottom:o})),i+=e}}}h.HStack=s,s.__name__=\"HStack\";class n extends i{_measure(t){let e=0,h=0;for(const t of this.children){const o=t.measure({width:0,height:0});e=Math.max(e,o.width),h+=o.height}return{width:e,height:h}}_set_geometry(t,e){super._set_geometry(t,e);const{left:h,right:o}=t;let{top:i}=t;for(const t of this.children){const{height:e}=t.measure({width:0,height:0});t.set_geometry(new r.BBox({top:i,height:e,left:h,right:o})),i+=e}}}h.VStack=n,n.__name__=\"VStack\";class c extends o.Layoutable{constructor(){super(...arguments),this.children=[]}_measure(t){let e=0,h=0;for(const{layout:o}of this.children){const r=o.measure(t);e=Math.max(e,r.width),h=Math.max(h,r.height)}return{width:e,height:h}}_set_geometry(t,e){super._set_geometry(t,e);for(const{layout:e,anchor:h,margin:o}of this.children){const{left:i,right:s,top:n,bottom:c,hcenter:a,vcenter:_}=t,{width:g,height:d}=e.measure(t);let m;switch(h){case\"top_left\":m=new r.BBox({left:i+o,top:n+o,width:g,height:d});break;case\"top_center\":m=new r.BBox({hcenter:a,top:n+o,width:g,height:d});break;case\"top_right\":m=new r.BBox({right:s-o,top:n+o,width:g,height:d});break;case\"bottom_right\":m=new r.BBox({right:s-o,bottom:c-o,width:g,height:d});break;case\"bottom_center\":m=new r.BBox({hcenter:a,bottom:c-o,width:g,height:d});break;case\"bottom_left\":m=new r.BBox({left:i+o,bottom:c-o,width:g,height:d});break;case\"center_left\":m=new r.BBox({left:i+o,vcenter:_,width:g,height:d});break;case\"center\":m=new r.BBox({hcenter:a,vcenter:_,width:g,height:d});break;case\"center_right\":m=new r.BBox({right:s-o,vcenter:_,width:g,height:d})}e.set_geometry(m)}}}h.AnchorLayout=c,c.__name__=\"AnchorLayout\"},\n",
" function _(t,i,s){Object.defineProperty(s,\"__esModule\",{value:!0});const e=t(188),o=t(189),n=t(8),r=t(85),h=t(9),{max:l,round:c}=Math;class a{constructor(t){this.def=t,this._map=new Map}get(t){let i=this._map.get(t);return void 0===i&&(i=this.def(),this._map.set(t,i)),i}apply(t,i){const s=this.get(t);this._map.set(t,i(s))}}a.__name__=\"DefaultMap\";class g{constructor(){this._items=[],this._nrows=0,this._ncols=0}get nrows(){return this._nrows}get ncols(){return this._ncols}add(t,i){const{r1:s,c1:e}=t;this._nrows=l(this._nrows,s+1),this._ncols=l(this._ncols,e+1),this._items.push({span:t,data:i})}at(t,i){return this._items.filter(({span:s})=>s.r0<=t&&t<=s.r1&&s.c0<=i&&i<=s.c1).map(({data:t})=>t)}row(t){return this._items.filter(({span:i})=>i.r0<=t&&t<=i.r1).map(({data:t})=>t)}col(t){return this._items.filter(({span:i})=>i.c0<=t&&t<=i.c1).map(({data:t})=>t)}foreach(t){for(const{span:i,data:s}of this._items)t(i,s)}map(t){const i=new g;for(const{span:s,data:e}of this._items)i.add(s,t(s,e));return i}}g.__name__=\"Container\";class p extends o.Layoutable{constructor(t=[]){super(),this.items=t,this.rows=\"auto\",this.cols=\"auto\",this.spacing=0,this.absolute=!1}is_width_expanding(){if(super.is_width_expanding())return!0;if(\"fixed\"==this.sizing.width_policy)return!1;const{cols:t}=this._state;return h.some(t,t=>\"max\"==t.policy)}is_height_expanding(){if(super.is_height_expanding())return!0;if(\"fixed\"==this.sizing.height_policy)return!1;const{rows:t}=this._state;return h.some(t,t=>\"max\"==t.policy)}_init(){super._init();const t=new g;for(const{layout:i,row:s,col:e,row_span:o,col_span:n}of this.items)if(i.sizing.visible){const r=s,h=e,l=s+(null!=o?o:1)-1,c=e+(null!=n?n:1)-1;t.add({r0:r,c0:h,r1:l,c1:c},i)}const{nrows:i,ncols:s}=t,e=new Array(i);for(let s=0;s{const t=n.isPlainObject(this.rows)?this.rows[s]||this.rows[\"*\"]:this.rows;return null==t?{policy:\"auto\"}:n.isNumber(t)?{policy:\"fixed\",height:t}:n.isString(t)?{policy:t}:t})(),o=i.align||\"auto\";if(\"fixed\"==i.policy)e[s]={policy:\"fixed\",height:i.height,align:o};else if(\"min\"==i.policy)e[s]={policy:\"min\",align:o};else if(\"fit\"==i.policy||\"max\"==i.policy)e[s]={policy:i.policy,flex:i.flex||1,align:o};else{if(\"auto\"!=i.policy)throw new Error(\"unrechable\");h.some(t.row(s),t=>t.is_height_expanding())?e[s]={policy:\"max\",flex:1,align:o}:e[s]={policy:\"min\",align:o}}}const o=new Array(s);for(let i=0;i{const t=n.isPlainObject(this.cols)?this.cols[i]||this.cols[\"*\"]:this.cols;return null==t?{policy:\"auto\"}:n.isNumber(t)?{policy:\"fixed\",width:t}:n.isString(t)?{policy:t}:t})(),e=s.align||\"auto\";if(\"fixed\"==s.policy)o[i]={policy:\"fixed\",width:s.width,align:e};else if(\"min\"==s.policy)o[i]={policy:\"min\",align:e};else if(\"fit\"==s.policy||\"max\"==s.policy)o[i]={policy:s.policy,flex:s.flex||1,align:e};else{if(\"auto\"!=s.policy)throw new Error(\"unrechable\");h.some(t.col(i),t=>t.is_width_expanding())?o[i]={policy:\"max\",flex:1,align:e}:o[i]={policy:\"min\",align:e}}}const[r,l]=n.isNumber(this.spacing)?[this.spacing,this.spacing]:this.spacing;this._state={items:t,nrows:i,ncols:s,rows:e,cols:o,rspacing:r,cspacing:l}}_measure_totals(t,i){const{nrows:s,ncols:e,rspacing:o,cspacing:n}=this._state;return{height:h.sum(t)+(s-1)*o,width:h.sum(i)+(e-1)*n}}_measure_cells(t){const{items:i,nrows:s,ncols:o,rows:n,cols:r,rspacing:h,cspacing:a}=this._state,p=new Array(s);for(let t=0;t{const{r0:o,c0:g,r1:d,c1:w}=i,u=(d-o)*h,m=(w-g)*a;let y=0;for(let i=o;i<=d;i++)y+=t(i,g).height;y+=u;let x=0;for(let i=g;i<=w;i++)x+=t(o,i).width;x+=m;const b=s.measure({width:x,height:y});f.add(i,{layout:s,size_hint:b});const z=new e.Sizeable(b).grow_by(s.sizing.margin);z.height-=u,z.width-=m;const j=[];for(let t=o;t<=d;t++){const i=n[t];\"fixed\"==i.policy?z.height-=i.height:j.push(t)}if(z.height>0){const t=c(z.height/j.length);for(const i of j)p[i]=l(p[i],t)}const O=[];for(let t=g;t<=w;t++){const i=r[t];\"fixed\"==i.policy?z.width-=i.width:O.push(t)}if(z.width>0){const t=c(z.width/O.length);for(const i of O)_[i]=l(_[i],t)}}),{size:this._measure_totals(p,_),row_heights:p,col_widths:_,size_hints:f}}_measure_grid(t){const{nrows:i,ncols:s,rows:e,cols:o,rspacing:n,cspacing:r}=this._state,h=this._measure_cells((t,i)=>{const s=e[t],n=o[i];return{width:\"fixed\"==n.policy?n.width:1/0,height:\"fixed\"==s.policy?s.height:1/0}});let a;a=\"fixed\"==this.sizing.height_policy&&null!=this.sizing.height?this.sizing.height:t