tree-red_black 0.4.2 → 0.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 01243ab97c7f5ed1ac6ff3dcb41b9e9c62bbfa709c348df9ba0c69c69b652974
4
- data.tar.gz: 6109eec9ae6ec7d0de5f583d50588c7aa349efad76ab9b987ea857afc442ad2e
3
+ metadata.gz: a260e99aa136703d9ea2822bc9ded3ed98d5b1257c417ea61ba185ef395b7f2b
4
+ data.tar.gz: 4d10f2b2b9c4848988bccea875efaf282c880572d0b64565bd625ebce7166667
5
5
  SHA512:
6
- metadata.gz: df4e50125126871fb649f3316082fc38dd9fe472003411f5d50dca93d4ccd64fbb7dc537ba7a1df95448ad6342c157b95325946f29a88b918b7b5dfe4bea41d0
7
- data.tar.gz: e8b85911d1606729def0deba609fca3316bd986c11dc837a75409d255176588c63fc4845b1db75aa1f0812509956dd11775c4fca09a454cd7722b82acfe9b616
6
+ metadata.gz: 1ce34ce41c89669c90e3b9590e97127c777f67c971db0ce653f0efead59d9f33a638ebebfd212980c5e53004158f9db8b1374744cae877094bbd197b57797da4
7
+ data.tar.gz: cec57e420bcae60b8015757b21a09d08d71596f2f1549526793d1dec376aa8ee9429b58848eb66a9e61959b44212f5b5e27d6853da08667aaf34a7dc34819a08
data/.gitignore CHANGED
@@ -7,6 +7,11 @@
7
7
  /pkg/
8
8
  /spec/reports/
9
9
  /tmp/
10
+ .ipynb_checkpoints/
10
11
 
11
12
  # rspec failure tracking
12
13
  .rspec_status
14
+
15
+ /contrib/*.txt
16
+ /contrib/*.png
17
+ Gemfile.lock
data/Gemfile CHANGED
@@ -2,3 +2,5 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in tree-red_black.gemspec
4
4
  gemspec
5
+
6
+ gem 'iruby', github: 'SciRuby/iruby'
@@ -0,0 +1,163 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": 18,
6
+ "metadata": {},
7
+ "outputs": [
8
+ {
9
+ "data": {
10
+ "text/plain": [
11
+ ":graph_red_black_tree"
12
+ ]
13
+ },
14
+ "execution_count": 18,
15
+ "metadata": {},
16
+ "output_type": "execute_result"
17
+ }
18
+ ],
19
+ "source": [
20
+ "require_relative '../lib/tree/red_black'\n",
21
+ "\n",
22
+ "def graph_red_black_tree(rbt, filename, title)\n",
23
+ " count = {}\n",
24
+ " instance = {}\n",
25
+ "\n",
26
+ " rbt.each { |node| count[node.key] ||= 0; count[node.key] += 1 }\n",
27
+ "\n",
28
+ " File.open(filename, 'w') do |file|\n",
29
+ " file.write \"graph \\\"\\\"\\n{\\n label=\\\"#{title}\\\"\\n\"\n",
30
+ "\n",
31
+ " i = 0\n",
32
+ " rbt.in_order do |node|\n",
33
+ " parent = if count[node.key] == 1\n",
34
+ " node.key\n",
35
+ " else\n",
36
+ "\n",
37
+ " # left child...\n",
38
+ " if node == node.parent&.left\n",
39
+ "\n",
40
+ " # so increment node.key instance index.\n",
41
+ " instance[node.key] ||= -1\n",
42
+ " instance[node.key] += 1\n",
43
+ " instance[node] = instance[node.key]\n",
44
+ " end\n",
45
+ " \"#{node.key}_#{instance[node]}\"\n",
46
+ " end\n",
47
+ "\n",
48
+ " left_child = if node.left\n",
49
+ " if count[node.left.key] > 1\n",
50
+ " \"#{node.left.key}_#{instance[node.left]}\"\n",
51
+ " else\n",
52
+ " node.left.key\n",
53
+ " end\n",
54
+ " else\n",
55
+ " 'NIL' + (i += 1).to_s\n",
56
+ " end\n",
57
+ "\n",
58
+ " right_child = if node.right\n",
59
+ "\n",
60
+ " # right child...\n",
61
+ " if count[node.right.key] > 1\n",
62
+ "\n",
63
+ " # so increment node.right.key instance index.\n",
64
+ " instance[node.right.key] ||= -1\n",
65
+ " instance[node.right.key] += 1\n",
66
+ " instance[node.right] = instance[node.right.key]\n",
67
+ " \"#{node.right.key}_#{instance[node.right]}\"\n",
68
+ " else\n",
69
+ " node.right.key\n",
70
+ " end\n",
71
+ " else\n",
72
+ " 'NIL' + (i += 1).to_s\n",
73
+ " end\n",
74
+ "\n",
75
+ " file.write(\" \\\"#{parent}\\\" [style=filled,color=#{node.color.to_s.downcase},fontcolor=white,label=#{node.key}];\\n\")\n",
76
+ " file.write(\" \\\"#{parent}\\\" -- \\\"#{left_child}\\\";\\n\")\n",
77
+ " file.write(\" \\\"#{parent}\\\" -- \\\"#{right_child}\\\";\\n\")\n",
78
+ " end\n",
79
+ "\n",
80
+ " i.times do |n|\n",
81
+ " file.write(\" NIL#{n + 1} [fontsize=6,shape=box,width=0.2,height=0.2,style=filled,color=black,fontcolor=white,label=\\\"NIL\\\"];\\n\")\n",
82
+ " end\n",
83
+ "\n",
84
+ " file.write(\"}\\n\")\n",
85
+ " end\n",
86
+ "end\n",
87
+ "\n"
88
+ ]
89
+ },
90
+ {
91
+ "cell_type": "code",
92
+ "execution_count": 16,
93
+ "metadata": {},
94
+ "outputs": [
95
+ {
96
+ "data": {
97
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAABJgAAAIdCAIAAAD+m1C2AAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nOzde1yO9/8H8Pd1X/fVgZAatcqpA6lI4msOyybZ1yF8TYkRM8ohsmFibI2hzEbEVshpRuVYbKb0jWJtI4cOkkNSEStFIffx98e9n6/ZRrju+7ruu9fz4Y+51efzYtf7vq931+e6PoxarSYAAAAAAADQHxKhAwAAAAAAAMCLQSMHAAAAAACgZ9DIAQAAAAAA6Bmp0AEAAAB0SqlU3rp169atW9XV1UqlsqamRqFQNGrUyNjY2NTU1Nzc/PXXX7ewsBA6JgAAwLOgkQMAAEP28OHD33777fz587m5uWfPnr18+XJVVZVKpXr2dxkZGVlZWbm6urq7u7u6unbt2tXFxYVhGN1kBgAAeC4GT60EAAADo1Kpfvnllx9++CElJSU7O1sul3McR0RyufyFxmEYhuM4hUKhUqnMzc3feustb2/voUOHtm7dWjvBAQAA6guNHAAAGI4TJ07s2LFj9+7dv//+u5GRkUwm43FwlmUZhlEqlZ07dw4ICAgMDLSxseFxfAAAgPpDIwcAAHqvtrZ227Zta9euLSgo4DjuRa+8vSiGYaRSqUqlGjx4cEhIiI+Pj1anAwAA+Cs0cgAAoMdqa2s3bdq0ZMmSqqoqtVqt4w81TdPo4uISHh4+cuRI3EQHAAA6g0YOAAD0kkqliomJmT9//v379xUKhYBJWJZVKpUeHh4xMTHdu3cXMAkAADQcaOQAAED/ZGdnT5o06dy5c899/qTOSKVSpVIZFBQUERFhbm4udBwAADBwaOQAAECfqNXqL7/8csGCBQzDCHsh7m9xHNeiRYvExMRevXoJnQUAAAwZGjkAANAbVVVVI0eOTE9PF8+FuL9iWVatVkdERMydO1foLAAAYLDQyAEAgH4oKSnp379/UVGRth9KyQuGYYKDg6Ojo1mWFToLAAAYIDRyAACgBy5fvtynT587d+7oRRenwbLs0KFDExISpFKp0FkAAMDQSIQOAAAA8Bw3b97s16+ffnVxRKRUKpOSkiZPnoyfmQIAAO/QyAEAgKg9ePCgf//+5eXl+tXFaSiVym3btoWHhwsdBAAADA2WVgIAgKhNmTJl06ZNInxAZf0xDJOWlvbWW28JHQQAAAwHGjkAABCv5OTkoUOHCp3iVUkkkhYtWhQUFGB/OQAA4AuWVgIAgEjJZLKQkBCJhLePqkGDBhUWFj7j4l6XLl0OHTpUXV1dU1OTmprau3dvXuZVqVSVlZXLli3jZTQAAABCIwcAAKK1fv36srIyXraMc3BwSEpKWr58uZWV1T99TY8ePU6ePFlTU9OxY8d27dpdvXo1PT19wIABrz47ESkUitWrVxcXF/MyGgAAAJZWAgCAGKlUKjs7u5s3b/Iy2vfff3/+/PmVK1deu3bN2tr6r/sBSCSS8+fPW1hYODg4PHz4kIhYls3Ly2vUqJGTk9OjR49ePQPHcbNmzVqxYsWrDwUAAIArcgAAIEapqal8dXFE9MEHH0RERDxjUaWXl5erq+vu3bs1XRwRKZXKnTt3tmrVasiQIbxkkMvlmzZt0sdnbwIAgAihkQMAADHauXMnx3F8jfa4Pfsn/fr1I6JTp049+aLmt97e3nzFuHPnzn//+1++RgMAgIYMjRwAAIhRWlqaLi9eOTs7E1FpaemTL5aVlRFR+/bt+ZrFyMgoMzOTr9EAAKAhQyMHAACiU1FRUVJSossZNRsD3L9//8kXa2triah58+Z8zSKXyzMyMvgaDQAAGjI0cgAAIDrFxcVieBYXwzBExGMStVp95coVvkYDAICGDI0cAACITkVFhY5nrK6uJqLGjRs/+aLmt5o/4ktVVRWPowEAQIOFRg4AAETnuc8m4V1BQQER2dnZPfmira0tERUWFvI4UV1dHY+jAQBAg4VGDgAARIfH29LqSfMwSU9Pzydf1Pz26NGjPE7UtGlTHkcDAIAGC40cAACIjqWlpY5nPHbsWH5+/siRI01MTDSvsCwbEBBQUlJy6NAhHieysLDgcTQAAGiw0MgBAIDoODk58biJXH2oVKoPPvjAwsJi8+bN1tbWlpaW69atc3Jymjx5Mo+LIVmWfeqiHwAAwMtBIwcAAKJjbGzs7u7O44BDhgxRq9VqtdrW1pZlWc1/T5o06cmvycrK6tWrV7NmzS5evHjt2jUnJ6e33nrrp59+4jGGRCLp1asXjwMCAECDxYjh+c4AAABPWbRoUWRkpC73BNeNnJwcNzc3oVMAAIDeQyMHAABidPXqVUdHR0P6kGIYxt3d/cyZM0IHAQAAQ4CllQAAIEb29va9evWSSqVCB+GNRCKZOnWq0CkAAMBA4IocAACI1PHjx/v27St0Cn4wDGNjY3PlyhVjY2OhswAAgCHAFTkAABApLy+vQYMG6fjxldqzYsUKdHEAAMAXXJEDAADxKikpcXV1ra2t1etPK47jvLy8UlJSGIYROgsAABgIXJEDAADxatWqVWxsrF53cSzLNm3adMeOHejiAACAR2jkAABA1AICAmbNmsWyrNBBXgbDMBKJZN++fVZWVkJnAQAAg4KllQAAIHYqlWrs2LGJiYkKhULoLC9GIpHs2bNn+PDhQgcBAABDgytyAAAgdhKJZOvWrSNGjJBI9OZjSyKRSKXS7du3o4sDAABt0JtPRAAAaMg4jtu5c2dwcLDQQepFKpWamJj8+OOPY8aMEToLAAAYJsPZaBUAAAzYvXv3Vq1atWPHjtdee622tlapVMrlcqFD/T2pVNquXbt9+/a5uroKnQUAAAwWrsgBAICoyWSy2NjY9u3bf/XVV1OnTr1y5Up2draTk5MIH3+iiTRhwoRz586hiwMAAK3Cw04AAECk5HL55s2bFy9eXFVVNWPGjHnz5jVv3vzxH61evfqzzz5TKBQiuTTHsqy9vX1sbOxbb70ldBYAADB8uCIHAACio1KpEhMTXVxcZsyYMXjw4MuXL0dERDzu4oiI47i5c+cWFhYGBASwLGtkZCRgWs1OcStXrszLy0MXBwAAuoFGDgAAxCU1NdXT0zMgIMDDw+PChQsxMTGvv/76336lnZ3dtm3bCgoKAgICpFKpVKrTG79ZlmUYxtLSMigo6P79+wzDcBynywAAANCQoZEDAACxSE1N/de//jVgwAAnJ6f8/PyEhAR7e/vnfpejo+PWrVtLS0sXL15sZ2dHRFq9QKdp2BiG6dOnT3x8/I0bN9avX//VV1999NFHQUFBIlnnCQAABg/3yAEAgPCysrI++eSTtLS0/v37R0ZGdu3a9eXGUalUJ06c2Lt3b3x8/M2bN6VSqVqtViqVr57QyMhI06R179591KhRI0aMaNu27ZNfsHfv3nHjxvXp0ychIaFZs2avPiMAAMAzoJEDAAAh5ebmLl68ODExsVevXsuWLevbty+PIx87diw9PT09Pb2iooKINFfSFAqFSqV69veyLCuVSuVyuUqlYlnW0dHRx8fHy8vLy8vLysrqn77r7Nmzvr6+5ubmBw8ebNOmDV9/EQAAgL9CIwcAAMK4ePHi0qVLd+zY4enpuWjRIl9fX+3NVVlZmZOTk5eXd/ny5fLy8qKiovLy8pqaGplMVldXp1AoTE1NWZY1MzNr0qRJ69at7ezs7OzsnJ2dXV1dXVxcjI2N6zlRWVmZr6/vzZs3k5KSunfvrr2/EQAANHBo5AAAQNdKSkq++OKLuLg4Jyenzz//fOTIkQzDCB2KN7W1taNHj05NTd28eXNAQIDQcQAAwDDhYScAAKA7FRUVYWFh7du3/+mnn9atW5eTk+Pn52dIXRwRmZmZ7d+/f9KkSWPGjAkPDxc6DgAAGCadPqkZAAAarDt37qxZs2bVqlUmJibh4eGzZs2q/3pFvcOy7Nq1ax0dHWfPnl1SUvLtt99iZwIAAOAXllYCAIB23b9/Pzo6OiIigmXZuXPnzpw509TUVOhQOnL48OFRo0Z179599+7d5ubmQscBAADDgUYOAAC0RSaTbdmy5bPPPqutrZ0+ffr8+fMb4HP5z58/7+vra2xsfOjQIScnJ6HjAACAgcA9cgAAwD+FQrFt2zZnZ+eZM2cOHTr08uXLERERDbCLI6LOnTv//PPPTZs27dmzZ0ZGhtBxAADAQKCRAwAAPqnV6sTERFdX10mTJvn4+Fy9ejUmJuYZe681BDY2NseOHevTp4+Pj8+OHTuEjgMAAIYAjRwAAPAmNTXV09MzICDA3d09Pz8/JibGxsZG6FCi0Lhx4z179syaNWvcuHHh4eG4rwEAAF4RnloJAAA8yMzM/OSTT44fP96/f//s7Gx3d3ehE4kOy7IREREODg7Tp08vKCjYsmWLiYmJ0KEAAEBf4YocAAC8kl9//dXX1/fNN980MjL67bffUlJS0MU9w+TJkw8ePHj48GFvb+/ff/9d6DgAAKCv0MgBAMBLys/P9/f3f+ONNyorK9PS0lJSUrp16yZ0KD0wYMCAzMzMsrKynj17FhQUCB0HAAD0Eho5AAB4YdeuXQsODu7cufOFCxfi4+NPnjz59ttvCx1Kn7i5uWVlZVlYWPTu3Ts9PV3oOAAAoH/QyAEAwAsoLS0NDQ3t0KHD8ePH4+Lizp075+fnJ3QovWRtbX38+PEBAwa8884727ZtEzoOAADoGTRyAABQLxUVFWFhYe3bt9+/f//atWtzcnICAwMlEnyOvDwTE5Pvv/9+/vz548ePDw0NValUQicCAAC9weAJyAAA8Gy1tbXr1q1btmyZsbHx7NmzQ0ND8bhFfsXFxU2ZMmX48OFbt241NTUVOg4AAOgBNHIAAPCPHjx4sGHDhmXLlikUihkzZsyePbtJkyZChzJMR48eHTlypLOz84EDB1q2bCl0HAAAEDs0cgAA8DfkcvnmzZvDw8Pv3bsXEhISFhZmbm4udCgDd+nSpcGDBysUikOHDnXs2FHoOAAAIGq4twEAAP5EpVIlJiZ27NhxxowZvr6+ly9fjoiIQBenA05OTj///LOdnV2PHj1+/PFHoeMAAICooZEDAIA/qNXq5ORkDw+P9957r1evXgUFBTExMdbW1kLnakAsLS1TUlKGDh06dOjQb775Rug4AAAgXlKhAwAAgCikpqaGhYWdOXPm3Xff3b17t5OTk9CJGihjY+Pt27c7OjpOnz69oKBg1apVeDQoAAD8FT4bAAAaOs123j4+Ps2bNz916lRCQgK6OGExDBMeHr5z587Y2Fg/P78HDx4InQgAAEQHjRwAQMOVk5Pj7+/fu3dvuVx+/PjxlJQUDw8PoUPBH0aNGnX06NGMjIy33367vLxc6DgAACAuaOQAABqiCxcu+Pv7u7u7X79+PTU1NTMz88033xQ6FDytV69eP//8871797p163bmzBmh4wAAgIigkQMAaFiKi4uDg4M7deqUn58fHx//888/e3t7Cx0K/pGDg8OJEyecnJy8vLwOHjwodBwAABALNHIAAA3F7du3w8LCOnTocOTIkfXr1587d87Pz49hGKFzwXNYWFj89NNPI0aMGD58eHR0tNBxAABAFPDUSgAAw1dZWfnll1+uWbPmtddeW7NmzcSJE6VSvP/rEyMjo61bt3bt2jU0NPTSpUtff/01y7JChwIAACExarVa6AwAAKAttbW169atW758Ocdxc+bMCQ0NNTExEToUvLzExMTx48f37ds3Pj6+adOmQscBAADBoJEDADBMMplsy5Ytn3766YMHD6ZNm7ZgwQKc9xuGrKysYcOGWVtbJycnt27dWug4AAAgDDRyAACGRi6Xb968efHixdXV1SEhIfPmzWvevLnQoYBPRUVFgwcPvnv3blJSkqenp9BxAABAAHjYCQCA4VCpVImJiS4uLjNmzBg8ePClS5ciIiLQxRmedu3a/fLLL+7u7n379k1KShI6DgAACACNHACAgUhNTe3atWtAQICHh8eFCxdiYmJef/11oUOBtjRp0iQpKSkwMHDEiBGRkZFCxwEAAF1DIwcAoPdSU1P/9a9/DRgwoH379vn5+QkJCfb29kKHAq2TSqXr16//6quvFixYEBQUJJfLhU4EAAC6g0YOAECPZWVleXt7+/j4NGvW7NSpUwkJCR06dBA6FOhUaGhoYmLijh07hgwZcvfuXaHjAACAjqCRAwDQS7m5uf7+/j179nz06FF6enpKSkrXrl2FDgXCGDFixIkTJ/Lz8/v06VNcXCx0HAAA0AU0cgAAeqagoCAwMNDd3f3atWtJSUmZmZl9+/YVOhQIrEuXLllZWRzHvfHGG7/99pvQcQAAQOvQyAEA6I2SkpLg4OBOnTqdPn16165dv/zyi6+vr9ChQCxsbW2PHz/erVs3Ly+vXbt2CR0HAAC0C40cAIAe+P3338PCwtq3b//TTz+tW7fu/Pnzfn5+DMMInQvExczMbP/+/ZMmTRozZkx4eLjQcQAAQIukQgcAAIBnuXPnzpo1a77++uumTZtGRERMmTLF2NhY6FAgXizLrl271tHRcfbs2SUlJd9++y3HcUKHAgAA/jFqtVroDAAA8Dfu378fHR0dERHBsuzcuXNnzpxpamoqdCjQG4cPHx41alT37t13795tbm4udBwAAOAZGjkAANGRyWRbtmz57LPPamtrp0+fPn/+/GbNmgkdCvTP+fPnfX19jY2NDx065OTkJHQcAADgE+6RAwAQEYVCsW3bNmdn5w8//NDf3//KlSsRERHo4uDldO7c+eeff27atGnPnj0zMjKEjgMAAHxCIwcAIApqtToxMdHV1XXSpEk+Pj6XLl2Kiopq2bKl0LlAv9nY2Bw7dqxPnz4+Pj47duwQOg4AAPAGjRwAgPBSU1M9PT0DAgLc3d3z8/NjYmJsbGyEDgUGonHjxnv27Jk1a9a4cePCw8NxSwUAgGFAIwcAICTNdt4DBgywtbXNzs5OSEhwdHQUOhQYGpZlIyIiYmJili1bNnr06Lq6OqETAQDAq0IjBwAgjF9++cXHx+fNN980MjL69ddfk5OT3d3dhQ4Fhmzy5MkHDx48fPiwt7f377//LnQcAAB4JWjkAAB0LS8vz9/fv2fPnvfv309LS0tJSenWrZvQoaBBGDBgQGZmZllZWc+ePQsKCoSOAwAALw/bDwCAIbtz587Nmzerq6sfPnz46NGjBw8eSKXSJk2asCxrbm5uZWVlZWXFsqzO8ly7dm358uWbNm1ycXFZtGiRn5+fzqYGeKy8vHzo0KFXrlzZs2fPW2+99dLjiK2+AAAaFDRyAGAg1Gp1fn5+dnZ2bm7uuXPn8vLybt++LZPJnv1dEonEwsLCwcHBw8PDzc2tc+fO3bt3NzEx4T1eaWnpkiVL4uLiHB0d58+fP3bsWIkEayJAMHV1de+///7evXs3bNgQGBj43K8XeX0BADRAaOQAQL8VFxcnJyenpqamp6ffvXtXIpFwHCeTyV70zY3jOCKSy+Ucx3l6evr4+AwaNKhHjx4Mw7xiwoqKipUrV65Zs6ZFixaffPLJxIkTpVLpK44J8OrUavXnn3/++eefz5w5c9WqVX/7kwXx1xcAQIOFRg4A9FJZWdnWrVvj4+PPnz8vlUrVarVSqeRxfCMjI5lM1qJFC39///fee69nz54vMUhNTc369euXLVtmbGw8e/bs0NBQXIsAsYmLi5syZcrw4cO3bt1qamqqeVEv6gsAoIFDIwcA+kStVqekpERHR//www8SiUQul2t7Rs0Zp4uLS0hIyLhx48zMzOrzXQ8ePFi7dm1kZCTDMDNmzJg9e3aTJk20HRXg5Rw9enTkyJHOzs779+8/d+6c+OsLAAAIjRwA6JHU1NS5c+eePXuWZVl+rw88F8MwEonEzMxs1qxZH374YbNmzf7pK+Vy+ebNm8PDw+/duxcSEhIWFmZubq7LqAAvIT8/39vbu66urrq6Wsz1BQAAj6GRAwA98MsvvwQHB587d073p5hPkUqlZmZmERERkydPfuqeIpVKtWfPnvnz55eUlEyYMOHzzz+3trYWKidA/elFfQEAwFPwLgkAolZdXR0cHNyzZ8/8/HwiEvYsk4gUCkV1dfW0adO6deuWnZ2teVGtVicnJ3t4eLz33nu9evUqKCiIiYlBFwfipxf1BQAAfwtX5ABAvE6cOOHn51dRUaGDe3VelOYJEMuXL3d3d583b9758+fHjBkTHh7u4OAgdDSAetGL+pozZw6ebAkA8LfQyAGASEVERCxcuJBEcJXgGSQSiYODg62t7apVq7p06SJ0HID60pf68vb2TkhIwI2mAAB/hUYOAERHqVROnTp148aNevEGxXGcvb19amqqnZ2d0FkAng/1BQBgGNDIAYC4KBSKd99999ChQ2K+UPAUjuMsLS0zMzOxrhJEDvUFAGAw8LATABARtVo9ceJE/TrLJCK5XF5RUdGvX79bt24JnQXgH6G+AAAMCRo5ABCRRYsW7dixQ7/OMjUUCsXNmzd9fHzq6uqEzgLw91BfAACGhA0PDxc6AwAAEdHRo0eDgoL0d723SqW6c+dOZWXl4MGDhc4C8DTUFwCAgcE9cgAgClVVVc7OzpWVlfp4ueBJDMMkJyfjXBNEBfUFAGB4sLQSAERh6dKlVVVVvJ9lMgzTu3fvdevWFRYWPnr06Pbt25mZmWPHjtXezlQMw4SEhIhwYy5oyPitr0GDBhUWFioUiud+ZVJSklqt1uxzwAvUFwDAY2jkAEB4RUVFa9as0cbJWYcOHTIzM9u3bz9y5MhmzZq98cYb169f3759+5dffsn7XBoqlaqkpCQmJkZL4wO8KB7ry8HBISkpafny5VZWVs/94sDAQF9f31ef9EmoLwCAx9DIAYDw1q5dq73BFQqFv7//+fPn6+rqrl69OmHChMrKypCQEGNjYy3NqFQqIyMjVSqVlsYHeCE81teSJUtOnjzp6elZU1Pz7K+0sbFZvXr19u3b+Zr6MdQXAIAGGjkAEJhcLt+8ebOW1koVFBRwHFdVVfX4FZlMVlJSYmxsbGJioo0ZNUpLS9PT07U3PkA98VtfH3zwQURERH0WVW7YsCExMfHIkSO8zPsU1BcAAKGRAwDBHT16tLq6WmfTmZubOzk5nTlz5u7du9qbheO477//XnvjA9QTv/X18OHD+nzZxIkTXV1d58yZw9e8T0F9AQAQGjkAEFxGRoaRkZEOJmratGnv3r2TkpLKy8sDAwO1OpdcLk9LS9PqFAD1obP6eszOzu6rr76aOHHic5dfvjTUFwAAoZEDAMFlZmbKZDJtz7Jw4cK7d+9mZmYqlcr//Oc/ubm52p7x2rVrlZWV2p4F4Nl0U19P2rhx4/fff6/tRgv1BQCARg4ABHblyhUdzPLFF18YGxt37NixoKDgzJkzixYt0vaMarX6+vXr2p4F4Nl0U1+PTZ482cnJ6eOPP9b2RKgvAACp0AEAoKHT2Q1yMpmsoKBg6tSpVlZWixcv/vnnn1NTU7U6Y0VFhVbHB3guXd6A2rp16y+//HLYsGH379/XwXSoLwBo4HBFDgAEVldXp+MZk5OTiWjIkCHankg3p7MAz6DL+vL19W3WrFl6err6/2m2H1iyZInmt46OjjxOh/oCgAYOjRwACKxp06Y6nvHRo0dEZGFhoe2JdDAFwLPpsr7WrVvH/Nm4ceOIaNGiRZrfXr58mcfpUF8A0MChkQMAgWn1bGzlypXffffdUy8OHDiQiH777Tftzavx2muvaXsKgGcz4G4H9QUADRwaOQAQWJcuXViW1d74Y8aM+fTTT9u2bWtsbNy2bdvIyMixY8eePn1648aN2puUiDiOc3Bw0OoUAM+l7foSCuoLAACNHAAIrE+fPhKJtt6LFi9ePHny5F69ev33v/+9d+9eTk6Ot7f3/Pnz33zzzXpubfzSPDw8jI2NtToFwHPxW19DhgzR3O1ma2vLsqzmvydNmvTXr/z222+fukfu8OHDfMUg1BcAABGjVquFzgAADVpOTk7nzp2FTsEzjuPmz5//+eefCx0EGjrUFwCAoUIjBwDC69SpU15eniG9HTEMc+nSJSz9AjFAfQEAGCQsrQQA4U2dOlV7qyt1TyqVenl54SwTRAL1BQBgkHBFDgCEV1dX5+DgUF5erlKphM7Cj4yMjD59+gidAoAI9QUAYKAM50d0AKC/TExMIiMjDePnShzHDRkyBGeZIB6oLwAAg4QrcgAgCmq1euDAgWlpaXK5XOgsL49hmMaNG+fk5LRt21boLAD/g/oCADA8uCIHAKLAMMyWLVvMzMz0+mYetVodFxeHs0wQG9QXAIDh0eM3dAAwMNbW1nv37mVZlmEYobO8DIlEMnv2bD8/P6GDAPwN1BcAgIFBIwcAIuLl5TVnzhyhU7wMlmVHjx795ZdfCh0E4B+99dZbO3fu1MdGjmXZgIAA1BcAwJPY8PBwoTMAANCtW7fWrFkTGBh46NAhNze3yspKhtGbm3glEomfn9/WrVtZlhU6C8CzuLi4ODg4JCUl6Vd9GRkZVVRUyGQyZ2fnRo0aCZ0IAEAUcEUOAAR2+vTp4ODgtm3brlix4p133snJyTl//vwPP/xgbGwslUqFTlcvH3300c6dOzmOEzoIwPONHTtW7+orNzd3zJgxK1eutLOz8/f3z8rKEjoUAIDw9OYHcgBgYO7du7dr167o6OicnBxPT8+goKCxY8c++bP23NzcESNGFBUVKRQKAXM+g1QqlUql33zzzYQJE4TOAvBi9LG+6urqEhISVq5cqXnTmDlz5ujRo/EDFABosNDIAYCunT59OjY2dseOHUql0s/P78MPP/Tw8Pjbr3zw4MHMmTM3bdrEsqxSqdRxzmdjWbZDhw579uxxdnYWOgvAy9Df+srMzFyzZs2+fftee+218ePHz5gxw9bWVvchAQCEhUYOAHSkrq4uOTk5NjY2NTW1Q4cO77///uTJky0sLJ77jf/973+DgoKKiopEcq7JcZxUKl2yZMnMmTNxNQD0nf7W140bN2JjY9etW1I5ExsAACAASURBVHfv3r1hw4bNmjWrV69eOssJACA4NHIAoHWFhYVxcXEbN26sqakZNmxYUFCQt7f3Cz06Ty6Xr127dunSpffu3RNwJRjHcUqlcty4cUuXLsUVADAYel1fjx49io+P//rrr8+dO6dZpB0YGGhiYqLVqAAAYoBGDgC0RSaTHThwIDY29ujRozY2NpMmTZo2bVrLli1fesD79+9/8803ERERd+7ckUgkuryAoHksxJgxYz799FMHBwedzQugM/peX6dPn46Kitq5c6elpeWECRNCQkLs7Ox4jQkAIC5o5ACAfzdu3Ni+ffu6devKysr69esXFBQ0YsQIvh7NL5PJ9u/fHx0dnZmZKZVKFQqF9t7HjIyMZDJZq1atpk2b9v7771tZWWlpIgCR0Pf6unnzZkxMzPr16+/evau5/t+/f/9XHxYAQITQyAEAb1QqVVpaWmxs7OOHEEyZMqVt27Zamq6oqGjv3r3x8fGnTp0iIo7jZDLZqw/LsizDMAqFwsbGJiAgYMSIET179pRIsFkLNCx6XV+PHj1KSkr6+uuvs7KyNOstx40bZ2pqyu8sAADCQiMHADy4ffv25s2bY2JiioqKdP9Y8Fu3bh07diwjI+PIkSOXL19WqVQSiYTjOIVC8dzlYRKJRCqVqlQqza1BLVq0ePvtt/v27evl5eXm5qaT+ACiptf1pVlvuWvXrubNm7///vvTp09v1aqVDuYFANABNHIA8Eo0ewls377dyMho1KhRM2bMELb/qauru3DhQl5eXkFBQWlpaWlp6fXr12tqampra5VK5cOHD6VSqYmJibGxsZmZmbW1dbt27aytrZ2cnFxdXd3c3CwtLQUMDyByelpf5eXlW7duXbt2bXl5+cCBA0NDQ7HeEgAMABo5AHgZmu28161bd/78ec3Kpffee69x48ZC53oOhmHi4+P9/f2FDgJggEReX5rHL61evfrkyZMeHh5TpkwZO3Zso0aNhM4FAPCScNcHALyY7Ozs4OBgW1vb0NDQDh06nDhx4tSpU0FBQeLv4gCgITMyMvLz89O8ZXXv3j00NFTzPlZcXCx0NACAl4FGDgDq5dGjR4mJiT4+Pp6enseOHVu4cGFZWVlCQgJ24AUA/eLp6RkTE3Pt2rWwsLC9e/fa29v7+vqmpqZijRIA6Bc0cgDwHJcuXQoLC7O1tR07dmzz5s1TUlIuXLgwb948CwsLoaMBALwkKyurefPmXblyZdeuXXV1dT4+Pi4uLlFRUQ8ePBA6GgBAvaCRA4C/p1Qqk5OTfXx8OnTo8N13302aNOnKlSsJCQn9+/dnGEbodAAAPNCst0xJSTl16pSXl9f8+fNtbGxCQ0OvXbsmdDQAgOdAIwcAT7tx40ZkZGS7du2GDx9ORPHx8deuXYuIiLCzsxM6GgCAVjxebzl//vx9+/Y5ODhgvSUAiBwaOQD4g0qlSk1N9ff3b9OmzapVq8aMGXP58uWUlBQ/Pz+pVCp0OgAArWvZsuW8efOKior279+vWW/ZsWPHqKio+/fvCx0NAOBpaOQAgKqrq6OiopycnHx8fK5evbpp06br169HRES0a9dO6GgAALrGsqyvr29KSkp2dnbfvn0XLFigWW9ZVFQkdDQAgP9BIwfQoJ0+fTo4ONjGxubTTz/t37//+fPnT506FRgYaGRkJHQ0AACBeXh4xMTElJWVLV68+MCBA46Ojj4+PsnJyVhvCQBigEYOoCGqqamJjY3t0qVLt27dTp8+vXr16hs3bsTExHTq1EnoaAAA4mJubh4aGnr16tX9+/cT0bBhw5ydnaOiompra4WOBgANGho5gIblwoULoaGhmmVC7du3z8zMxHbeAADPJZFINOst8/Pz//3vfy9YsMDW1jY4OPjChQtCRwOABgqNHECD8Hg7bxcXl8OHDy9cuLC0tDQhIaF3795CRwMA0Ceay3E3btxYvHjxkSNH3NzcsN4SAASBRg7AwF2+fDksLMzOzu7xdt4FBQXz5s2ztLQUOhoAgL5q1qxZaGjolStXfvrpJxMTk2HDhrVv3z4yMrKqqkroaADQUKCRAzBMSqUyNTXV19e3ffv227dv/+CDD7CdNwAAvyQSSf/+/ZOTky9cuDBo0KAlS5a0adMmODg4Pz9f6GgAYPjQyAEYmps3b0ZGRtrb27/zzjt1dXXx8fHFxcXYzhsAQHs6dOigWW+5cuXK48ePa9ZbJiYmKpVKoaMBgMFCIwdgIB5v5926deuvv/569OjR2M4bAECXmjZtGhQUlJeXd+TIERMTk1GjRnXo0CEyMvLOnTtCRwMAA4RGDkDvVVdXx8bGdurUSbOd97p1665du4btvAEABPF4veXFixcHDx78xRdfaNZb5ubmCh0NAAwKGjkAPfZ4O++5c+f26dPn3Llzmr0ETE1NhY4GANDQOTk5RUVFlZWVffXVVxkZGZ06derTp09iYqJCoRA6GgAYAjRyAPrnr9t5l5WVxcTEdO7cWehoAADwJ5r1lrm5uSkpKc2bN3+83rKyslLoaACg39DIAeiTx9t5z5w5s3379ikpKZpLcGZmZkJHAwCAf/R4vWVhYaGfn19kZKSdnV1gYGBOTo7Q0QBAX6GRA9ADT27n/eOPPy5cuLCsrEyzl4DQ0QAA4AU4OjpGREQUFxdHRUVlZ2d37twZ6y0B4OWgkQMQtcfbeY8ePdrExCQlJeXixYvYzhsAQK81adIkKCgoJycnJSXFxsZm9OjRbdq0CQ8Pr6ioEDoaAOgNNHIAYqTZS+DJ7byLioqSk5OxnTcAgMFgGKZ///4JCQkXL14cN27c2rVrNestz507J3Q0ANADaOQAxEWznXe7du2e2s67VatWQkcDAACtcHBw0Ky3XLNmzZkzZzTPstq2bRvWWwLAM6CRAxAFtVqt2c67TZs2kZGRw4cPv3TpErbzBgBoOMzMzDTrLTMyMuzt7T/44IPWrVuHh4f//vvvQkcDADFCIwcgMM123m5ubprtvKOjo8vKyqKiouzt7YWOBgAAAujTp49mvWVgYGB0dHSrVq38/f2zsrKEzgUA4oJGDkAwmu28bW1tsZ03AAA8xd7ePiIiorS0NDY29uLFiz179tSst5TL5UJHAwBRQCMHoGua7bw9PDy6deuWmZm5bNkybOcNAAB/y8TERPP4kyfXW4aFhZWVlQkdDQAEhkYOQHcKCgrCwsLatGkzc+ZMJyenlJSUvLy80NBQbOcNAADPpllvWVxcHBwcvGnTJnt7e39//5MnTwqdCwAEg0YOQOseb+fdsWPHvXv3zps3r7S0FNt5AwDAi7KxsQkPDy8tLd2wYUNhYWHv3r27desWGxtbV1cndDQA0DU0cgBadOXKlbCwsFatWo0ePZqIkpKSNNt5v/baa0JHAwAAfWVsbBwYGHj27NlTp065uLiEhIS0bds2LCystLRU6GgAoDto5AD4p9nO29/fv0OHDtu2bZs4ceLVq1dTUlJ8fX2xnTcAAPDF09Nz27ZtxcXFU6ZMiYuLc3Bw8Pf3T01NFToXAOgCGjkAPpWXl0dGRtrb27/zzjtVVVU7d+68fv16RERE69athY4GAACG6fXXXw8PDy8pKfnuu+9KS0t9fHw06y0fPnwodDQA0CI0cgD8yMzM9Pf3b926dURExLBhwwoLC7GdNwAA6IyxsbGfn9/JkyefWm9ZUlIidDQA0Ao0cgCv5O7du5rtvN98803Ndt43btyIiopycHAQOhoAADREmvWW169f/+ijj7777rt27dr5+vpivSWA4UEjB/CSNNt529jYzJkzp3fv3pqbzrGdNwAAiIG1tfW8efOuXr26c+fOO3fu+Pj4dO3aNTY29sGDB0JHAwB+oJEDeDF1dXXbtm3r2rVrt27dMjIyli1bduPGjZiYGHd3d6GjAQAA/ImRkZGfn9+JEydOnTrVvXv30NBQW1vb0NDQ4uJioaMBwKtCIwdQXxcvXgwLC7O1tQ0KCnJ0dExJScnPz8d23gAAIH6enp4xMTHXrl0LCwvbu3evvb29Zr2lWq0WOhoAvCQ0cgDPIZPJHm/nvWfPno8//hjbeQMAgD6ysrKaN2/elStXdu3aVVdX5+Pj4+LiEhUVhfWWAPoIjRzAPyotLQ0PD2/VqlVAQAARHThwoLCwENt5AwCAXtOst0xJSTl16pSXl9f8+fNtbGxCQ0OvXbsmdDQAeAFo5ACe9ng777Zt28bGxr7//vtFRUXYzhsAAAzM4/WW8+fP379/v4ODg4+PT3JyMtZbAugFNHIA/6PZztvBwWHAgAGa7byLi4uxnTcAABiwli1bap5vuX//fiIaOnRox44do6Ki7t+/L3Q0AHgWNHIARESnT58ODAzUbOc9YMCA3NxczXbeHMcJHQ0AAEDrWJb19fVNSUnJzs7u27fvggULNOsti4qKhI4GAH8PjRw0aJrtvDt16tStW7f8/Pzo6OiysrKYmBgXFxehowEAAAjAw8MjJiamrKxs8eLFBw4ccHR0xHpLAHFCIwcNlGY7b1tb2zlz5vTq1evMmTOa7bwbNWokdDQAAACBmZubh4aGPl5vOWzYsA4dOkRFRdXW1godDQD+gEYOGhbNdt6enp7dunU7fvz4okWLiouLY2JiunTpInQ0AAAAcZFIJJr1lvn5+QMHDlywYIGtrW1wcPCFCxeEjgYAJBU6AOilO3fu3Lx5s7q6+uHDh48ePXrw4IFUKm3SpAnLsubm5lZWVlZWVizLCh3zTy5evLh58+YNGzbcv39/6NChkZGR2AiuQbhzh27epOpqeviQHj0iIvr1V7KwIJYlc3OysiIrKxLZsQqgN1BfDYazs3NUVNTixYu3bNmyevXqjRs39uvXb+bMmUOGDBHL85yVSrp1i27doupqUiqppoYUCmrUiIyNydSUzM3p9dfJwkLolAB8YrDiGZ5NrVbn5+dnZ2fn5uaeO3cuLy/v9u3bMpns2d8lkUgsLCwcHBw8PDzc3Nw6d+7cvXt3ExMT3WR+kkwmO3DgQGxs7NGjR+3t7SdPnjxx4sQWLVroPglonVpN+fmUnU25uXTuHOXl0e3b9Odj9TSRPVHzJ1+SSMjCghwcyMOD3Nyoc2fq3p2EOFYBRA31Bf9PpVKlpaVFRUUdOnTIwcFh0qRJQUFBzZs3f/538ujhQ/rtNzp/nnJz6exZunyZqqpIpXrOdxkZkZUVubqSuzu5ulLXruTiQiJpRAFeHBo5+HvFxcXJycmpqanp6el3796VSCQcx8lkshc9YDRPfZTL5RzHeXp6+vj4DBo0qEePHjr4AV5ZWdmGDRu++eabioqKfv36BQUFjRgxQmzXCYEHxcWUnEypqZSeTnfvkkRCHEcyGb3om5vmCaVyOXEceXqSjw8NGkQ9euAzHho01Bf8s8LCwnXr1m3atEkikYwePXrmzJmurq5anE+lol9+oR9+oJQUys7+43AiIrn8xcZhGOI4UihIpSJzc3rrLfL2pqFDCVsNgb5BIwd/UlZWtnXr1vj4+PPnz0ulUrVarVQqeRzfyMhIJpO1aNHC39//vffe69mzJ4+Da2h+UhgbG7t3794WLVqMHz9+6tSpbdq04X0iEFhZGW3dSvHxdP48SaWkVhOvxyoZGZFMRi1akL8/vfceaeFYBRAv1BfU271793bt2rVq1aqLFy96e3tr5cemJ07Qjh20ezf9/vsfBw+PWJYYhpRK6tyZAgIoMJBsbPgcH0Br0MgBEZFarU5JSYmOjv7hhx8kEon8RX+49eI0HZ2Li0tISMi4cePMzMxefcxbt25t2bLl22+/vXbtWu/evUNDQ4cPH46N4AyNWk0pKRQdTT/8QBLJC/8g9iVoThpcXCgkhMaNIz6OVQCRQn3By3pyvaXmRobJkydbvOI9abW1tG0brV1LBQXEcVo/IBmGpFJSqWjwYAoJIR8f7U4H8MrQyAGlpqbOnTv37NmzLMvye/3tuRiGkUgkZmZms2bN+vDDD5s1a/Zy45w+fToqKmrXrl2NGjUaNWqU1ld3gFBSU2nuXDp7lliW5+sDz8UwJJGQmRnNmkUffkgve6wCiBfqC/hw6dKlTZs2xcTEKBSKMWPGzJgxw83N7YVHqa2lTZtoyRKqqiK1+oWX8r4iTdPo4kLh4TRyJBYAg3ipoQHLyspyd3cnIsHvHJNKpebm5t9++61Sqax//rt378bExHTq1ImIPD09Y2Ji7t+/r71/LhBSVpba3V1NpGZZNZGQv6RStbm5+ttv1S9yrAKIGuoL+Kb5gO7YsSMR9e7dOyEhQS6X1+s7lUr1+vXqZs3UUqnAR6OmHDw81L/+quV/LYCXhEaugaqqqgoKCmIYRlQrDyUSiYeHx+nTp5+bX7N5d+PGjU1MTMaNG5edna2DfzQQRlWVOihIzTBqjhP4Q/3JXxKJ2sNDXY9jFUDUUF+gTUqlMiUlRbNFgb29fUREREVFxbO+4fRptYeHWiIR/iB8/EsqVTOMOjhYXVWlq382gPrC0sqG6MSJE35+fhUVFTq4F+5FaZ6wsnz58jlz5vz1yZZ1dXXJyclRUVEnTpxwdnaeMGGCAI88Bl06cYL8/KiiQhf36rwozRMgli+nOXOw8Ab0EuoLdOXy5csbN26MjY19+PChn5/fnDlzOnfu/KevUKvpyy9pwQJiGFIoBIr5zziOWrSgxETq1UvoKAD/g0auwYmIiFi4cCER6fh2uBcikUi8vb0TEhLMzc01rxQWFsbFxW3cuLGmpmbYsGFBQUHe3t5i2YQUtCQighYuJCJd367zQiQS8vamhAT6/2MVQD+gvkDnampqdu7cuWbNmry8PM0zyf7zn/9IpVKqqqKRIyk9/fkbwQmIZUmtpogImjtX6CgAf0Aj14AolcqpU6du3LhRL/6ncxxnb2//448/njp1SrOdt62t7QcffDB9+nRs5234lEqaOpU2btT1De4vh+PI3p5SU8nOTugoAPWA+gJBqdXqn376ae3atYcPH27duvW8oKApW7ZQUZEYrwz/FcNQcDBFR5PQDxcAIDRyDYdCoXj33XcPHTok5gtxT+E4juO4R48eDRkyZMqUKQMGDJBIJEKHAu1TKOjdd+nQIVFfKHgKx5GlJWVmkoOD0FEAngn1BaJx+fLldUuXvrZ79yePHulHF6fBsjR0KCUkkFQqdBRo6NDINQhqtXr8+PHff/+9HnVxGizLWltbnz592srKSugsoBNqNY0fT99/r09nmRpSKdnY0K+/Eo5VEC3UF4jKzZvUoweVl+tTF6fBsjRuHMXF4QZOEBaubzQIixYt2rFjh951cUSkVCpv377t4+NTV1cndBbQiUWLaMcO/TvLJCKFgm7eJB8fwrEKooX6AvF48ID699fLLo6IlErato3Cw4XOAQ0dG46j0NAdPXo0KChIfy+9qlSqO3fuVFZWDh48WOgsoGVHj1JQkH7ct/O3VCq6c4cqKwnHKogQ6gtEZcYMSk0V4wMq60mtpuPHqW9fattW6CjQcGFppYGrqqpydnaurKzUx8txT2IYJjk5Gb2cIauqImdnqqzUy8sFT2IYSk7GuSaIC+oLRCU5mYYOFTrEK5NIqEULKijAU1VBKFhaaeCWLl1aVVWlvS5u0KBBhYWFCu3/RI1hmJCQEBFufAe8WbqUqqr4P8ucMoXU6r//9eOPPM+lwTAUEqKXi4XAgPFbX4MGUWHh319Lad6cpkyhtDS6c4cePqRLl2jHDnJ352deQn0ZBJmMQkKIx6eXPeOAJCKplD74gH79lSorqaqKTp+mkBAyMuJhXpWKKitp2TIehgJ4KWjkDFlRUdGaNWu01Pw4ODgkJSUtX75cN48hUalUJSUlMTExOpgLBFBURGvW6Prk7ORJrQyrUlFJCeFYBfHgsb4cHCgpiZYv/8eHjnz5Ja1dSwcOkIsLWVrSxInUpQudPk3Dh/MwO6G+DML69VRWxs+Wcc89IIlo82bauJFSU6ljR3J0pPh4WruW9uzhYXYiUiho9WoqLuZnNIAXhEbOkK1du1Z7gy9ZsuTkyZOenp41NTXam+VJSqUyMjJSJebdQuGlafNYpQMHiGH+9Kt9e3r0iDZs0NaMSiVFRop6Z1toUHisryVL6ORJ8vSkZ7zzx8VRVBSVl9ODB5SRQWPGEMvSihW8ZUB96TWVilas4O3i8HMPSHt7GjuWzpyhBQvo9m2qrKQVKyglhYYMoe7d+clAROvW8TYUwIvAPXIGSy6Xt2zZsrq6Wkvjm5qaPnz4kIhKS0utra2lutpN5ejRo/369dPNXKAjcjm1bElaOlb79yd3d/rqqz+9uGYNtWxJAQFamfGxo0cJxyoIjt/6MjWlhw+JiEpLydq6vvtoPXhAxsYklfL5qBXUl546coTeeYe30Z57QPbtS+np9P339N57/3txzRqaMYNGjuTtupyFBZWXE8fxMxpAveGKnME6evSo9ro4ItJ0cTrGcdz333+v+3lBu44e1VYXR0SpqU93cU2a0PjxtH69tmbU4DjCsQpiwG99vcQ7f+PGZGpKubl8dnGoL/21cyefDc9zD8iCApLLydn5Ty86O5NaTTk5vMW4c4f++1/eRgOoNzRyBisjI8OIl3t5xUQul6elpQmdAviWkcHPfef19P77dP06HT+u3VnkcsKxCmKg4/r6Kz8/IqKlS/kcE/Wlv9LSdHo79K1bNGcOubvTsmXUogVZWNDHH1P//rR4MRUW8jaLkRFlZvI2GkC96Wg5HOheZmamTCYTOgX/rl27VllZaWlpKXQQ4E9mJunsWGUYmj6dVq/WxVzXrlFlJeFYBWHpsr7+ysqKIiJo40ZKSOB5ZNSXPqqooJISXU+6Zg3dvElff03z5/+RYdIkiovjcwq5nDIy+BwQoH5wRc5gXblyRegIWqFWq69fvy50CuCVLo/VgQPp9ddp+3ZdzKVWE45VEJyAnwWWlnT4MKWn05Qp/A+O+tJHxcW63pKeYSg2lnbsoK+/JmtratGCPvmEoqNp16763uFZH2q1kIUGDRiuyBksrd4gJ6yKigqhIwCvdHmszpxJ27ZRba2OpsOxCoIT6rOgcWP66SfKz6fAQG3tQo760ju6/182bhxNnkxr19KqVX+8EhtL1tb0+eeUlcXn6oyqKt6GAqg3XJEzWHV1dUJH0Jb79+8LHQF4pbNjtX17GjBA6485eRKOVRCcIJ8FUiklJlJZGY0fr60ujlBfekj3j0n797+JiFJT//Ti0aNERAMH8jmR4Z50gZihkTNYTZs2FTqCtlhYWAgdAXils2N15kw6fpzy83U0HRHhWAXBCfJZEBNDxsbk708KxR+vXL5Mb7zB8yyoL73TvLmuZ2zc+B//yMyMz4kM96QLxAyNnMEy4G7ntddeEzoC8Eo3x2rTphQYqOttW3GsguB0/1kQHk6urjRsGD16pN2JUF96R/cPp/nlFyIib+8/vajZgTAri8+JDPekC8QMjZzB6tKlC8uyQqfgH8dxDg4OQqcAXnXpQjo4VidOpNpa2rdP6xM9xnGEYxUEp5v6emzCBPrsM+rRg2pqSK3+3y/eawH1pY+cnHS9a/b69XTpEk2dSjNnUsuWZGlJH3xAYWFUVkYrV/I2C8uSpydvowHUGxo5g9WnTx+JRIv/f4cMGaJWq9Vqta2tLcuymv+eNGmS9mbU8PDwMDY21vYsoFN9+pA2j1Wi/991YMOG/y300gEPD8KxCoLjt76GDPmjMbO1JZb947+ffOcfOZK3uZ4N9aWPjI3J3Z3PAZ97QFZXU48etHo1TZ1K16/TjRs0fz7FxZGnJ928yVsMiYR69eJtNIB6w1MrDZa3t7dcm3tuHjx4kGEY7Y3/tziO+7fmxmUwJN7eWt8fVq0mJyftTvEUjiMcqyAG/NbXwYP07Hf+IUN4m+sZUF/669//pnPneDsmn3tAElFVFX38MX38MT8z/i25/I/lmgC6xah1vKEH6FCnTp3y8vIM6X8xwzCXLl3C0koD1KkT5eXpen8hrWIYunQJS79AFFBfIB5Xr5Kjo6Edje7udOaM0DmgIcLSSkM2depUra6u1DGpVOrl5YUuzjBNnar11ZW6JJWSlxfOMkEsUF8gHvb21KsXn5txC04ioalThQ4BDRSuyBmyuro6BweH8vJylUoldBZ+ZGRk9OnTR+gUoAV1deTgQOXlZCjHKmVkEI5VEAnUF4jK8ePUt6/QIXjCMGRjQ1eu4I5NEIQB/YgO/sLExCQyMtIwenWO44YMGYIuzmCZmFBkpIEstuE4GjIEZ5kgIqgvEBUvLxo0SNePr9SeFSvQxYFQcEXOwKnV6oEDB6alpWn1wSfaxjBM48aNc3Jy2rZtK3QW0Bq1mgYOpLQ0rT/4RKsYhho3ppwcwrEKooL6AlEpKSFXV6qt1e+fL3AceXlRSsrzH7gCoB24ImfgGIbZsmWLmZmZXt8sp1ar4+Li0MUZOIahLVvIzEy/b+ZRqykuDmeZIDqoLxCVVq0oNla/uziWpaZNaccOdHEgIH1+Q4f6sba23rt3L8uyut8tgBcSiWT27Nl+fn5CBwHts7amvXuJZfX1c1EiodmzCccqiBPqC0QlIIBmzdLpbvU8YhiSSGjfPrKyEjoKNGhYWtlQ7Nmzx9/fX++eesKybEBAwPbt2/W0C4WXsWcP+fvr31MZWJYCAmj7dn09S4YGAvUF4qFS0dixlJhICoXQUV6QREJ79tDw4ULngIYOV+QainfffXfr1q0sy+rRGkuJRDJy5MjNmzeji2tY3n2Xtm4lltWnNWASCY0cSZs34ywTxA71BeIhkdDWrTRihJ4djVIpbd+OLg7EQH8qB17Z2LFjf/jhB2NjY6me7N/y0Ucf7dy5kzOYB1tB/Y0dSz/8QMbGerPX0Ecf0c6dhvMQNjBsqC8QD46jnTspNFToHPUjlZKJCf34I40ZI3QUACIsrWyAcnNzR4wYUVRUpBDrSgapVCqVSr/55psJjK+9JwAAIABJREFUEyYInQUElZtLI0ZQUZF4V91IpSSV0jffEI5V0DuoLxCVuDiaPp2USvE+WFUqpXbtaN8+cnUVOgrAH3BFrsFxc3M7e/bs+PHjiYgV303GLMu2b9/+zJkz6OKA3Nzo7FkaP56IxHhDPMtS+/Z05gzOMkEvob5AVCZOpOxscnIS59GYTnRu6FA6dw5dHIgKGrmGqFGjRhs3bkxLS2vXrp14ejmO40xNTSMjI8+ePevs7Cx0HBCHRo1o40ZKS6N27UT06c5xZGpKkZF09izhWAX9hfoCUenYkc6epeXLydRURCtpWZbs7b95663uyckLly599OiR0IEA/geNXMP19ttv5+fnr1ixolmzZsLeNcdxnEQiGTNmzKVLl2bPno2b4uBpb79N+fm0YgVZWAh8Vw/HkURCY8bQpUs0e7aITjUAXhrqC8SD42juXCospIAAYlkyMhIyDMtS8+a0ciXl5e1KS4uOjl6zZo2bm1t6erqQqQCegEauQeM4jmXZ2traSZMmWVpaMgyj4wt0mtvhRo8eXVhYuGXLFltbW13ODvqE4+ijj+j6dVq+nCwtiWF0fQFBc7vO6NFUWEhbthCOVTAkqC8QFTs72raNCgooIOCPY0OXNHstWlpSZCSVltKsWcRxDMMEBQUVFBS4urr269cvODi4pqZGp6kA/g4edtJwKZXKDz/8MDo6+tNPPw0PD5fJZPv374+Ojs7MzJRKpQqFQnvHhpGRkUwma9Wq1bRp095//30r7KcJL0Qmo/37KTqaMjNJKiWFgrT3PmZkRDIZtWpF06bR++9j71cwfKgvEJVbtygujtavp9LSPw4YLWGYPw54Ly+aPp2GDfun64GJiYnTpk0zMjJav379sGHDtJUHoB7QyDVQtbW1o0ePTk1NjYuLGz169JN/VFRUtHfv3vj4+FOnThERx3EyPt43WZZlGEahUNjY2AQEBIwYMaJnz556tKkdiFFREe3dS/HxdOoUERHH8fMZr/lxrEJBNjYUEEAjRlDPnvq0zREAL1BfIB4qFZ048ccBefMmSaWkVpNSycPIRkZ/PCeze3caNYpGjKC2bZ/7Tbdv354zZ8727dv9/PzWr1//2muv8ZAE4MWhkWuIysrKfH19b968mZSU1L1793/6slu3bh07diwjI+PIkSOXL19WqVQSiYTjOIVCoXzeu6dEIpFKpSqVSrPJQYsWLd5+++2+fft6eXm5ubnx/PcBuHWLjh07sG3bxvT0vQ8fcioVSSTEcaRQPP+TXrO7q0qleQj7WjOznJYtY2fPJi8vwrEKQKgvEJncXDp2jNLTKT2dKiqIiDjuj58OqFTP+V6WJamU5HJSqYhlydGRfHzIy4u8vF7igvChQ4emTp0qk8lWrFgRGBj4Un8ZgFeCRq7BOXv2rK+vr7m5+cGDB9u0aVPP76qrq7tw4UJeXl5BQUFpaWlpaen169drampqa2uVSuXDhw+lUqmJiYmxsbGZmZm1tXW7du2sra2dnJxcXV3d3NwsLS21+pcCUKvVHh4eTk5Oidu304ULlJdHBQVUWkqlpXT9OtXUUG0tKZX08OEfO7oaG5OZGVlbU7t2ZG1NTk7k6kpubvGpqWPGjDlz5kznzp2F/jsBiAXqC0SqspJycigvjy5fpvJyKiqi8nKqqSGZ7FZdXY5C0d/UlFiWzMyoSRNq3Zrs7MjOjpydydWVXFzI2PgV57979+6nn34aHR09aNCgb775xs7Ojpe/FkA9oZFrWPbt2zd27NjevXsnJiY2a9aMr2EZhomPj/f39+drQIAXFR8fz8sJouaE1dHRcffu3XxlA9B3qC/QOwkJCaNGjdLNWW5GRsbkyZPLy8tXrFgxefJkhmF0MCkA4amVDUpUVNTIkSPHjBlz6NAhHrs4AMEplcrPP/989OjRr/5jfoZhwsPD9+7d+9tvv/GSDUDfob4Anu3NN988c+bMlClTpk2b1rdv38LCQqETQUOBRq5BUCgU06dP//DDDxctWrRhwwZs1AYG5rvvvissLFy0aBEvow0fPrx79+6LFy/mZTQAfYf6AnguU1PTiIiIU6dO3b9/v0uXLpGRkc99mgDAq0MjZ/hqamqGDh26devWffv2hYeHCx0HgGdyuXzJkiXjx4/v0KEDX2OGh4cfPHgwKyuLrwEB9BTqC6D+unTpkpWV9dlnn3322Wfdu3c/c+aM0InAwKGRM3BFRUVvvPHG2bNnjx07ht1OwCBt3rz5+vXrn3zyCY9jDhw40MvL69NPP+VxTAB9hPoCeCEcx82bN+/06dPGxsY9evQICwt79OiR0KHAYKGRM2RZWVk9e/aUSqVZWVmenp5CxwHgn0wmW758+eTJk+3t7fkd+YsvvkhJSUlPT+d3WAA9gvoCeDmurq4nTpyIjo5et26dp6fnL7/8InQiMExo5AzW7t27+/Xr5+HhkZGR0bp1a6HjAGhFTExMeXn5/PnzeR/5zTff7Nev38KFC3kfGUBfoL4AXppEIgkKCsrJybGxsenVq1dwcHBtba3QocDQoJEzTFFRUaNGjRo3blxycnLTpk2FjgOgFXV1dZGRkVOnTtXS1j1Lliw5ceLEkSNHtDE4/B979xkX1dE2DHy20USlBFDsKGoAWVBJVBSNxi5oLCgqojciaiwhIqj0Ik0MYkGxRsWCBRW72FuIlW7BLlJEEULfZXfeD5vH11gQ2XPOnN29/r/9cGdvmLmYM7POtWfODGA5GF8AyK99+/ZnzpzZu3fvwYMHLS0tU1JSSEcElAokcspGJBJNnz590aJFq1atio+P5/P5pCMCgC5r1qwpLS319vamqfw+ffoMHz7cx8cHztsEKgjGFwBUmTBhQnZ2do8ePYYMGeLo6Pj27VvSEQElAYmcUikpKRk6dOjBgwcPHz48f/580uEAQKOKioro6Oj58+cbGRnRV0tISMjt27ePHTtGXxUAsBCMLwCoZWRktH///uTk5OvXr1tYWBw4cIB0REAZQCKnPB4/fmxra5ubm3v58uVRo0aRDgcAeq1ataqqqur333+ntZYePXqMGTPGx8dHKpXSWhEArALjCwA62NvbZ2VlOTg4ODo62tvbv3r1inREQLFBIqckrl+/3rt3bw0NjdTUVGtra9LhAECvsrKymJiYRYsWGRgY0F1XSEhIdnb2wYMH6a4IAJaA8QUAfXR0dOLj4y9cuPDgwQMLC4uNGzfC6mLQaJDIKYPExMRBgwb17dv32rVrND2VDgCrREdHS6XS3377jYG6zM3NHR0dfX19JRIJA9UBQByMLwDo1r9//7S0NHd397lz5w4fPvz58+ekIwIKCRI5xYYxDgwMdHJymjVr1oEDB7S0tEhHBADt3r59u3r1ai8vLx0dHWZqDA4OfvLkyZ49e5ipDgCCYHwBwAwtLa2IiIgrV668fPnSzMwsMjISvs4A3woSOQVWW1s7bdq05cuXr127NjY2lsuFqwlUQmRkpJqa2rx58xir0dTUdMqUKUFBQXV1dYxVCgARML4AYFLv3r3T0tL8/f39/f379euXk5NDOiKgSGDqr6jevn07ZMiQI0eOJCcnz507l3Q4ADCksLBw3bp1y5Yta9q0KZP1BgYGvnjxYvv27UxWCgDDYHwBwDyBQODt7X3r1i2JRGJlZbVkyRKRSEQ6KKAYIJFTSI8ePerTp8/Lly9TU1OHDx9OOhwAmBMWFta8eXN3d3eG623fvv2MGTOCg4Nra2sZrhoAxsD4AoCUbt26Xbt2bcWKFWvXru3Zs+fNmzdJRwQUACRyiufcuXM2NjZ6enp//fWXmZkZ6XAAYE5+fv7mzZt9fX2JPA7q7+9fXFy8ZcsW5qsGgAEwvgAgi8/nL1y4MCMjw9DQsE+fPgsXLqysrCQdFGA1SOQUzNatW4cPH/7zzz+fP3+e1nNaAWChoKAgAwMDV1dXIrUbGxu7ubmFhoZWVVURCQAAWsH4AoANTExMUlJStmzZkpCQYGlpee7cOdIRAfaCRE5hyDaodHV1nTNnTmJioqamJumIAGDUs2fP/vzzT39/f3V1dVIxLF26tKysbMOGDaQCAIAmML4AYA8OhzNt2rSsrCwrK6vBgwdPmzatpKSEdFCAjSCRUww1NTVTpkwJDw//888/YYNKoJoCAwPbtm3r4uJCMIYWLVr8+uuv4eHh5eXlBMMAgHIwvgBgm5YtWx48eDAxMfHUqVMWFhaHDh0iHRFgHcgHFMCbN29+/vnn06dPnz59muy/sgCQ8vDhw127dgUGBvL5fLKReHt7i0SitWvXkg0DAArB+AKAtSZMmPDgwQN7e/uxY8c6OjoWFxeTjgiwCCRybJeVlWVjY1NYWHjt2rUBAwaQDgcAMvz9/Tt37jxp0iTSgSB9ff0FCxZERUW9e/eOdCwAUAPGFwBspqurGx8ff+LEib///rtLly4bN24kHRFgC0jkWC0lJaVv377GxsZ//fVX165dSYcDABlZWVn79+8PCgri8XikY0EIIU9PTy6XGxsbSzoQACgA4wsAhTB8+PB79+7NmjVrzpw5I0aMePHiBemIAHmQyLHX5s2bR44cOWzYsHPnzhkYGJAOBwBi/Pz8zM3Nx44dSzqQfzVv3tzDw2PlypWwxAUoARhfACgKLS2tiIiIy5cvP336tFu3brGxsVKplHRQgCRI5NhItkHlrFmzli1btmfPHg0NDdIRAUDM7du3jxw5snz5clbt8fPbb79paWn98ccfpAMBQC4wvgBQOLa2tnfv3vXw8PDy8rKzs7t//z7piAAxLPrgBjKVlZW//PJLRETEjh07AgMDORwO6YgAIMnPz69Hjx6jRo0iHch/aGtre3p6rlmzpqioiHQsADQejC8AFJGGhkZgYODNmzdra2utra0DAwPFYjHpoAABkMixS35+fv/+/a9evXrmzJmpU6eSDgcAwq5fv37y5MmwsDAWfqMxf/58HR2dyMhI0oEA0EgwvgBQaJaWln/99VdgYGBkZKSNjc2tW7dIRwSYBokci2RkZPTu3busrOz69et2dnakwwGAPF9fX1tb28GDB5MO5DM0NDS8vb3Xr1+fl5dHOhYAGgPGFwCKjs/ne3t7Z2Vl6enp9e7de8mSJTU1NaSDAsyBRI4tTp8+3a9fP1NT05s3b3bu3Jl0OACQd+XKlQsXLoSGhpIO5Ivc3d1btGgRFhZGOhAAvhmMLwCURseOHc+dO7du3bq4uLhu3bpduHCBdESAIZDIscLGjRtHjRo1fvz4kydP6ujokA4HAFbw9fUdPHgwm49PVFNTW7p06ebNm588eUI6FgC+DYwvAJQJh8OZNWvW/fv3zc3NBw0a5O7uXl5eTjooQDtI5AiTSCQLFiyYPXu2j4/Pli1bBAIB6YgAYIWTJ09evnw5ODiYdCBfMWPGjLZt2y5fvpx0IAB8AxhfACglY2Pjw4cPJyYmJiUlde3a9ciRI6QjAvSCRI6kioqKMWPGbNq0adeuXYGBgaTDAYBFAgMD7e3te/XqRTqQrxAIBH5+ftu3b3/w4AHpWABoKBhfACixCRMmZGdnDxo0aMyYMY6Ojm/evCEdEaALJHLEvHr1ys7O7tatW5cvX3ZyciIdDgAscujQoZs3bwYFBZEOpEGmTp3auXPnkJAQ0oEA0CAwvgBQeoaGhjt27Dh27FhqaqqFhcWOHTtIRwRoAYkcGWlpab169RKLxX/99ZeNjQ3pcABgEYxxUFDQuHHjrK2tScfSIDweLyAgYM+ePRkZGaRjAeArYHwBoDpGjhyZmZk5ceLEGTNm2Nvbwx6wygcSOQIOHTpka2v7/fffX716tX379qTDAYBdEhMTMzMz/fz8SAfyDRwdHbt16wY3DQD7wfgCQKU0b948Njb24sWLubm5FhYWGzduxBiTDgpQBhI5psXGxo4fP37y5MnHjx9v3rw56XAAYBeJRBIcHOzk5GRpaUk6lm/A4XACAwMPHjx48+ZN0rEA8EUwvgBQTf369bt79+7s2bPnzp3bv3//hw8fko4IUAMSOebU1dX9+uuvHh4efn5+mzZtgg0qAfhUQkLCw4cPFet2gcyYMWNsbGzYvw0gUGUwvgBQWZqamhEREbdu3aqsrLSysoqMjJRIJKSDAvKCRI4h5eXlDg4O27dvP3ToEGxQCcBnicXikJCQ6dOnd+nShXQsjREYGCh7spx0IAB8BowvAICVlVVqampAQEBAQICNjc3du3dJRwTkAokcE54+fdqrV6+0tLRLly6NHj2adDgAsNTWrVtfvHjh4+NDOpBGGj58uJ2dnb+/P+lAAPgMGF8AAISQQCDw9va+ffu2urr6jz/+uGTJktraWtJBgUaCRI52qampvXv35vP5qampPXr0IB0OACwlEokiIiLc3Nw6dOhAOpbGCw0NTUlJuXjxIulAAPgPGF8AgA+Zm5tfu3Zt7dq169at69Gjx99//006ItAYkMjR68CBAwMHDrS2tr5y5Urbtm1JhwMAe23YsKGwsHDp0qWkA5FLv379Bg4c6OvrSzoQAP4DxhcA4CNcLnfWrFmZmZnGxsZ9+vRxd3evqKggHRT4NpDI0Sg2NnbixInOzs5Hjx5t1qwZ6XAAYK/q6uqoqKg5c+a0bt2adCzyCgkJuXbt2pkzZ0gHAsC/YHwBAL6kffv2Z86c2bt378GDBy0tLVNSUkhHBL4BJHK0EIlE06dPX7Ro0apVq+Lj4/l8PumIAGC1tWvXlpaWent7kw6EAn369Bk+fLiPjw+c1QNYAsYXAKB+EyZMyM7O7tGjx5AhQxwdHd++fUs6ItAgkMhRr6SkZOjQoQcPHjx8+PD8+fNJhwMA21VUVERHRy9YsMDIyIh0LNQICQm5ffv2sWPHSAcCAIwvAECDGBkZ7d+/Pzk5+fr16xYWFgcOHCAdEfg6SOQo9vjxY1tb29zc3MuXL48aNYp0OAAogJiYmJqaGk9PT9KBUKZHjx6jR4/28fGRSqWkYwGqDsYXAKDh7O3ts7KyHBwcHB0d7e3tX716RToiUB8VW/InkaCiIlRUhEpLkUSCystRXR3S0kLq6khTE+nooJYtkZ5eo4u/fv36mDFjWrVqlZKSogSPItSnpAQVFKDSUlRdjWS71t64gfT0EI+HdHSQkREyMkI8HukoAQElJSUFBQWlpaXV1dW1tbVVVVV8Pr9p06Y8Hk9HR8fIyMjIyIj3Qd8oKyuLiYnx8PDQk2PosVBISIhQKExKSho/fvyH739r+wDwIRhfMjC+wKckEklRUVFRUVFpaalEIrlx4wZC6Pjx4+rq6pqamjo6Oi1btlSygUATHR2d+Pj4yZMnu7m5WVhYREZGurm5cTgcamv56HqVl5fX1dVpaWnB9fomHGVeZV5djW7eRBkZKCsLpaWhR4/Qu3foq1/gqakhIyNkbo6EQmRujrp3R2ZmqAHdNzExcfr06cOHD09ISNDS0qLmT2ADjFFODrpzB2VlofR0lJ2NXr9GItGHP3IbIROEdD98i8tFenqoY0dkbY0sLJClJbKxQRoazIYO6IUxzsnJuXPnTlZWVnp6enZ29uvXr0X/7Ruf4nK5enp6HTt2tLa2trCwuHHjxpEjR549e6ajo8NM2IxxcnJKTU0NDAzMyclpdPtYWlra2NhowNhRPTC+6gfjS8VVV1ffvHkzIyMjKysrLS3t0aNH7969++pNWjU1NSMjI3Nzc6FQaG5u3r17dzMzM8pTFKVRVVUVHBwcHR39888/x8fHt2vXrtFFwfWiidIlclIp+vtvdOIESklBd+4gsRgJBAghJBZ/WzkcDhIIUF0dkkqRjg4aMAANGoQcHNDnjhDAGAcFBQUHB8+fPz8mJobLVYoFq8+fo6NH0dmz6OJFVFaGuFwkECCRCH1rh3nf/gIB6tEDDR6MRoxAP/7YkNwYsNPz58+PHj169uzZixcvlpWVcblcgUAgEom+9cNEIBAghMRiMY/Hs7GxGTx48IgRI3788UdF/4x+3z7nz58vLy+Xv30EAkGPHj2Upn1A/WB81Q/GlyqTSqV///33iRMnUlJS7ty5I7t8CCHxN87xOByOQCCoq6uTSqU6OjoDBgwYNGiQg4MDHBP1WX/99dfMmTOfPXvm7+/v6enZ8HvacL2YgJXG1at4zhxsYIARwmpqGCEqXzwe5vMxh4OFQhwejl+9el9tTU3N1KlT+Xz+unXrCP71lMnLw8uXY0tLjBDm8zGPR3FLyi6NgQH+9Vd8/TrpvxZ8g7y8vOXLl1taWiKE+Hw+5cuT1NTUEEIGBga//vrrdQXsG9A+QB7Qf+oH7aPirl69OmfOHAMDg/cXi0I8Ho/P53M4HKFQGB4e/uqDOR6QEYlEERERampqvXv3zs7O/urPw/VijOIncuXleN063LUrRggLBBRnHZ++OBwsEGAeDzs44DNn3rx5Y2dn17Rp0xMnTpBuCPlIpfj0aWxvj3k8JprxfUZnZobj4nB5Oem/H3yRVCo9ffq0vb09j8eTfZdGN9mHvpmZWVxcXDnr+wa0D5AH9J/6QfuouPLy8nXr1nXt2hX9301UWsnu/PB4PAcHhzNnzpD+61knIyPjhx9+EAgE3t7etbW1n/4AXC/mKXIiV16OV63C+vqYy8UcDhO5x4cvgQAjNL5Zsw6GhtlZWaTbQj4pKdjKCiNE/f23hiTGPB5u3hwHBODSUtINAT6WkpJiZWWFEGJ+ewAOh8Pj8Zo3bx4QEFDK1r4B7QPkAf2nftA+qqy8vHzVqlX6+vpcLpf59a6yJMTMzGzfvn1SqZR0Y7CIWCxetWpVkyZNunXrduPGjffvw/UiRTETOYkEx8Xh5s0xn8904vHfVz6PV4QQtrbGH/RmRZKaioVCMincRy8+H+vo4A0bsERCulEAxhinpqYKhUJEYgr1ET6fr6Ojs2HDBgmb+ga0D5AH9J/6QfuoMolEEhcX17x5cz6f8M7qsu5nbW19Q0HneLR5/PjxoEGD+Hz+ggUL/vnnH7heBClgInf7Nra2xlwu4cTjoySEw8Hu7vjdO9Kt02Dv3uFZs/5dKUq8Ad+/uFxsbY1v3ybdOirt3bt3s2bNkq1YIPuh/CEul2ttbX2bBX0D2gfIA/oPtA+ox+3bt62trVm1aZzscSx3d/d3CjTHo59UKt2wYYO2traOjg5cL4IUKpGTSnFk5L/7jhBPOT59CQTY2Bhfu0a6mRrg6lXcsiW7Urj3L9kOK1FRWMVujrPE1atXW7Zsyaop1HuyHQ6ioqIILpyA9gHygP4D7QO+RCqVRkZGyvaxIH21P0MgEBgbG19TiDkeI95fL+K3zT9Lda6X4iRyJSV44EB23Yj79MXjYS4XR0WRbqx6hYdjHo/8Wsr6X1wuHjxYke5wKoXw8HDWfii/x+VyBw8eTOSbNmgfIA/oP9A+4EtKSkoGDhzIqhs7n+LxeFwuN4rlczxGwPViDwVJ5F68wJ07s/QO0qcvDgfPno3r6ki32ifq6rCbG4GNYRr3Eghwly745UvSraYS6urq3NzcFOUAJYFA0KVLl5cM9g1oHyAP6D/QPqAeL1686Ny5MzvvxH6Kw+HMnj27joVzPKbA9WIVRUjkcnOxkZHCZHGyF4+Hf/kFi8Wk2+4DYjF2cGD7jbhPc7kWLfCjR6TbTsmJxWIHBweWfxH+EYFA0KJFi0eM9A1oHyAP6D/QPqAeubm5RkZGipIVyPB4vF9++UXMqjkeU+B6sQ3rE7n8fNymjYJlce9zuenT2fKgl1SKnZ0VLIuTvfh83LYtLiwk3YJKSyqVOjs7K9YsSobP57dt27aQ5r4B7QPkAf0H2gfUIz8/v02bNoqVFcjweLzp06er2gOTcL1YiN2JXGUlNjNTyCxO9uJysb8/6UbEGGPs48P2xwvreQkEuFs3XF1NuhGVk4+PD8uXuddDIBB069atms6+Ae0D5AH9B9oHfEllZaWZmZkiZgUyXC7XnyVzPEbA9WIndidy7u4s3aCy4S8OB1+4QLgZz55VmOfivvTi8/HcuYSbURmdPXtWUZ5L+RI+nz+Xtr4B7QPkAf0H2gfUw93dnZ0bVDYch8O5QHyOxxS4XuzE4kQuOZl8/iD/i8vFRkYkd18sKcGGhgq5qPKjF4eDjx0j1ozKqKSkxNDQUBEXNX2Ew+Eco6FvQPsAeUD/gfYB9UhOTiZ96SjA5XKNjIxUYRdTuF6sxdZErrYWt21L42pAKyt8/DguLcXl5fjsWWxrS2MGwufjxYuJteSiRbSsTdXVxbNn4/PncUkJrq7Gubl41y4sFNLYjFwubt8ei0TEWlLpLFq0iKY1ElevXv20ulWrVtFRF0KIy+W2b99eRHXfoK99+Hy+q6vrjRs33r59++7du9u3b8+bN09NTY2OuhBt7QPqR23/GTFixMOHD+vq6uT8mUZQiPFVz9/O4XBsbW3XrVv38OHD2tra169fX716derUqVTdDITx1Qi1tbVt27alcFXtVzu/QCDw8PC4fft2eXn569evT548aW9vT0kf4PP5iwnO8RhB1fXS1dWdPXv2+fPnS0pKqqurc3Nzd+3aJRQKP/1JKyur48ePl5aWlpeXnz171tbWVs6q31O+68XWRC4mhsabSD/+iKuq8N69uGVL/N13eONGLBbjIUNoTEIEAvzsGYFmfPKEricMN2/GYjFeuBC3aIG1tHC/fjg7G9fV4TFjaGxGHg+vWUOgGZXRkydP6FvpznAihxDi8XhrKO0btLbPzp07McZhYWGGhob6+vpeXl4Y46NHj9JUHaKhfUD9KOw/HTt2TE5OTk9PLysr+9I8tSE/Iw82j6+v/u1du3bFGKekpFhaWmpoaJiYmOzevRtjHB0dTUkACMbXt4uJiaHqZmxDOn+TJk2uXLmSnp5uZ2enqanZtm3b/fv3Y4wtLCwoiUEgEDwjMsdjClXXa/PmzWKxeOHChS1atNDS0urXr192dnZdXd2YMWM+/LEff/yxqqqRud+kAAAgAElEQVRq7969LVu2/O677zZu3CgWi4cMGSJ/ADJKdr1YmchJJLhlS7qSAS4XZ2Xh/Hysqfn/04P79/GLF1hdncZEjsgXAB4eNCZy8fH/eUcoxBjjhw9pTOQQwq1bY4mEQEsqHQ8PD1oTuZ49e9JU+Je0bt1aQl3foK99TExMMMZ37tz58M0zZ85gjG1sbOioUYba9gH1o7D/7N69e8mSJXw+Py8v70vz1Ib8jJxYO76++rd37dpVLBbr6uq+f0dNTe3Nmzc1NTXq6uqUxIBgfH0LiUTSsmVLqlq+IZ0/Li6urKzMyMjo/TtNmjSpqamhMJFTsps8H6Lwem3evDk+Pv7Dd4RCIcb44cOH79/hcrlZWVn5+fmampqyd3g83v3791+8eEHVgFWy68XKRO70aRozgQEDMMZ49er/vBkQgDHG48bRWK+eHtPLAkUirKNDb1r10auqCksktG+scu4co82ojEQikY6ODiUfiJ9FJJFDCJ2jqG/Q2j79+/fHGO/atevDN1evXo0xHjduHE2VylDVPqB+1Paf97OZeuapDfkZ+bFzfDXub7979y7GuHnz5lSFgWB8Ndjp06cpbPavdgAjI6O6urq4uDgKK/2Unp6esi6vpfZ6faqqqkoikbxf5jpgwACM8erVqz/8mYCAAEzpP5HKdL1Yue3vnj2Ivu1NBw5ECKFbt/7zpuw/Bw2iq1KEUEkJunCBxvI/de4cKi1lrromTZCmJsrKQhjTWItAgHbvprF81XDu3LlSJvsGIwQCwW6K+gat7XP//n2xWNy1a9cP35St/srMzKSpUkRp+4D6Udt/qqurKfkZObF2fDXib9fR0TE1Nb17925ZWRlVYcD4arg9e/ZQuN7hqx1Adtz81atXqarxs0pKSi4wPMdjCrXX6yNNmjTR1NTMysrC/zd1HDhwIELo1n9n6bL/HETdLF2ZrhcrE7nz55FYTFfhsvlTXt5/3nz1CiGEOnemq1KEkJoaovlz5GNXriDatk/4jAkTEEJo+XJ6axGL0fnz9FahAq5cuULf1hoyzs7OaWlplZWVZWVlV65cmTx5Mq3VIYTEYvF5ivoGre1TVFTk6ekpFArDwsIMDAz09PS8vLx+/vnn4ODgD5eXUI7C9gH1Y2B8MU9Rxlf9mjVrZmtrm5ycXFhYOG3aNApLhvHVcOfPnxfTN8f7RPfu3RFC7969W7ly5cuXL0Ui0fPnz1evXq2np0dhLWpqanTniqTQer0mTJiAEFr+wdRR9i1n3n9n6a9evUIIdaZulq5U14v0LcFPFBfTuzbvzBmMMf7xx/+82akTxhjfvk1jvRzOv6s6GWNnR+8Sxw9fRka4sBBv2sREXRwOfvOG0ZZUOnZ2drR+qly9enXHjh3du3dv0qRJly5dduzYgT9ZKUEHDofzhoq+QXf7IIQmTJjw8uVLWXXFxcX/+9//6K4RUdc+oH409Z+GLB2kdWkly8fXV/92X19fWQAXLlzo1q0b5QHA+GqI4uJimg4P/FIHOHz4MMa4oKAgISHBxMRER0dn2rRpFRUVDx48oHBtLYfDGcDwHI8R9F0vhJCRkVFhYeGmTZs+fFP2xPiPP/744ZudOnXCGN++fZuqqpXperHvjtzz5/SuzfssWTeltV6M0ePHNJb/Kcaq09dHp06hixfR7NlMVIcxevGCiYqU12Oa+0bfvn2nTZt2586dysrKBw8eTJs27caNG/Pnz//oo5lyGOMXVPQNWtuHw+Fs3Lhx165df/zxR4sWLQwMDHx8fNauXbt37166z1qlqn1A/egeX6QoxPiqR2hoqLq6+vfff3///v27d+/6+flRWz6Mr4Z4/vw5ZnaOp6GhgRCqrq6ePn36kydPSktLd+zYER4e3rlz50WLFlFVC8ZYKQc+fddLX1//1KlTFy9enN2AqaMsmaQwEmW6XuxL5N68obd82dL8Jk3+86bsP+l+aujdO3rL/wgzD0E1aYJOn0Y5OWjKFCSRMFEjor+TKDvmH5A7cOAAQsje3p7uit5Q0TdobR9nZ2c3N7cNGzbExMQUFRW9efNm48aNEREREydOnDdvHn31ylDSPqB+yvcA6nvsH1/1E4lE9+/fnzNnTnJycnBw8M8//0xt+TC+vor5JqqsrEQInT179sP7dbLjXoYOHUphRe8YnuMxgqbr1aRJk9OnT+fk5EyZMkXy36mj7POhyX9n6bL/pPajQ2muF/sSObof2r5/HyGEWrf+z5utWiGEEJ0PqCCEUE0NveUzXx2fj/bvR69eIRcX5rI4hFBlJXN1KaMahrsiQgUFBQghQ0NDuiuqpKJv0No+w4YNQwidPXv2wzfPnTuHEBo+fDh99cpQ0j6gfsyPL8awf3w1kGweP2rUKGqLhfH1VQxszPORZ8+eIYTevn374ZuvX79GCBkYGFBYERs6NuXouF58Pn///v2vXr1ycXGRfDJ1vH//PkKo9X9n6a1atUIIUfsYudJcL/Ylch8c9kIL2TY1PXr8503Zf547R2/VzZrRWz7z1cXHI3V15OiI3n/R9egR6tWL9nopfUZZBTVjuCsiZGxsjP7v305aUfL8Oq3t89EXjR/S1tamr14Zap/vB5/F/PhiDPvHVwPV1tYiGoYDjK+v0qV7jvcJ2Z4WH52EJvtWsaioiMKK2NCxKUfH9YqPj1dXV3d0dHx/j/TRo0e9/m/qKNtMssd/Z+my/zxH6Sxdaa4X+xI5fX16y790CeXkoPHjkYbGv+/weGjSJPTyJTp+nN6qGf6Ip7u6wEBkbo5Gj0a1tfRW9KnvvmO6RuVC62xj5syZHz2RzOFwHB0d0f99C06r76joG7S2z99//40+2UZZtuFyamoqffXKUNI+oH5KPJtn//j6VHR0dEJCwkdvyu5+37x5k9q6YHx9lT7dc7xPnDhx4tWrV8OGDdN4P+v7v3X+hw8fprAipRz4lF+vwMBAc3Pz0aNH135h6njp0qWcnJzx48e/v148Hm/SpEkvX748TuksXXmuF7FtVr6kpgYLBPRue9irF66uxnv24BYtsL4+3rABi8V46FB6K+Xx8MSJjLbkuHGYx6Prz5k+/Yv19upFb0sKBLimhsF2VELjxo3j8Xg0faTMnDkTY7xu3bpOnTppaGh06dIlISEBM7JrpUAgqKGib9DaPjo6Og8fPhSJRAsWLDA0NNTX13d1da2srMzLy/voO2PKUdU+oH409R/iu1ayfHx96W+Pjo6WSqX+/v7t27dXV1dv3759ZGQkxvjWrVvvz5KmBIyvhqipqaHpULJ6Ov+wYcPEYvHhw4dNTU11dHScnZ0rKipSU1Mp7AA8Hm8iw3M8RlB7vaZ/eerY64PFXL169aqurt6zZ0+LFi309fU3bNggFoupfaBRma4X+xI5jHHPnvRmAghha2t84gQuK8Pl5fjcOWxrS3uNAgGOjWW0GWNiaEyJjx37Yr10J3I//MBgIyqnmJgY+s73VFdXHz9+fFJS0qNHj2pqakpLSy9cuODk5ERTdR/6gaK+QWv7IIR0dXWjoqLu3btXU1NTW1v76NGjNWvWGBkZ0VejDFXtA+pHbf8ZNWrUp1XMnDnzW39GfuwcX1/925s1a+bq6nrq1KmnT5/W1taWl5ffunVryZIl1GZxCMZXg/Xs2ZPCZm9g5+/du/epU6dKS0tra2vv3bsXEBBAeRofy/AcjykUXq9jX5469vrvUznW1tYnTpwoKysrLy8/d+6cra0tVTHIKNP1YmUi5+tL+005Iq/MTEabMSOD/J9M+UsgwP7+jDajMsrIyKD2M5ENBAKBP0V9A9oHyAP6D7QPqIevry+t35SRksnwHI8pcL1YjoOZP7Ttq548QZ06EThNjj4cDhIK0d27TNfbrRvKzla2lszNRR07ko5D4XXr1i07O5uNw7+xOBxObm5uR4r6BrQPkAf0n/pB+6iyJ0+eyM53Jh0IZTgcjlAovMv8HI8RcL1Yjn2bnSCETExQnz6I5rNxGcXlojlzCNQ7Zw7isvISNw6fj+zsIIujxJw5c7hK1Df4fL6dnR2FsyhoHyAP6D/1g/ZRZSYmJn369OEr0RyPy+XOITLHYwRcL7YjeDewPpcukV/FR9WLw8GtWpHZn6O6GhsbYy6XfCNQ9bpyhUAzKqPq6mpjY2NlmktdobRvQPsAeUD/gfYB9bh06RLpK0YZDofTqlUr5d7nBq4Xm7E1kcMYjxihJE/KcTh41y5izbhzJ+ZwyDeC/C+BAH/umWbQaDt37uRwOKQ/VCkgEAg++7w7tI8MTe0D6gf9B9oH1GPEiBHK8eQVh8PZRXCOxxS4XqzF4kTuxQvctKnCJyECAR40CEulxJpRKsVDhyp8SszhYG1t/PQpsWZURlKpdOjQoYr+0czhcLS1tZ/S0DegfYA8oP9A+4B6vHjxomnTpoqezAsEgkGDBkkJzvGYAteLtVicyGGM9+whn0LI8+LxsL4+Liwk3IwFBVhXV+EXWO7bR7gZlVFBQYGurq6iL3DaR1vfgPYB8oD+A+0D6rFnzx7SV08uPB5PX1+/kPgcjylwvdiJ3Ykcxvi332g81ZrWF4eDBQJ8+TLpFsQYY3zhAhYIFPX2JpeLFy0i3YJK68KFCwKBQEG/ZuNyuYto7hvQPkAe0H+gfUA9fvvtNzpOh2cAh8MRCASXWTLHYwpcLxZifSInkWAnJ8znk08nGpF+HDpEuvk+cOCAQt6U4/HwlCkk16aqgAMHDijil+I8Hm/KlCkMrJGA9gHygP4D7QO+RCKRODk5KeKOiFwu9xCr5niMgOvFQqxP5DDGIhF2dFSkJITLxXw+yQ1OvmTnTszjKVhLTpyIRSLSDaf8du7cyePxFGg6xeVyJ06cKGKqb0D7AHlA/4H2AV8iEokcHR0V6+rz+Xwl2zCj4eB6sY0iJHIYY4kEe3iQzysa8uLzsZYWTkkh3WRfcPo01tRUmDucnp5wL44xp0+f1tTUVJRv2jw9PRn+LhzaB8gD+g+0D/gSiUTi4eFB+qo2CJ/P19LSSmHtHI8RcL1YRUESOZktW7CGBqs3YOTzsakpzsoi3VL1yszEpqaszuX4fKyhgbdtI91SKiczM9PU1JTNcyk+n6+hobGNUN+A9gHygP4D7QPqsWXLFg0NDTZvZMrn801NTbNYPsdjClwvllCoRA5jnJODzczYuP2JLKSZM3FVFek2aoDKSuzq+v/DZtWLx8NmZvjePdJtpKIqKytdXV0RQix8oJnH45mZmd0j2jegfYA8oP9A+4B65OTkmJmZsfPqI4RmzpxZpRBzPKbA9WIDRUvkMMYiEY6KwpqaLLo1x+NhU1N84QLppvlG58/jTp1YlMsJBFhTE0dHw0NxxJ0/f75Tp07s+XQWCASamprR0dEseSgF2gfIA/pP/aB9VJlIJIqKitLU1GTPrR4ej2dqanpB4eZ4jIDrRZwCJnIyL19iZ2fM42E1NcIpnK4ujolR1NxDJMIrV2I9PcIrLQUCzOViFxecl0e6RcC/RCLRypUr9fT0yK50EggEXC7XxcUlj2V9A9oHyAP6T/2gfVTcy5cvnZ2deTyempoawQ7A4/F0dXVjYmIgh68fXC+CFDaRk8nNxdOmYT6f6TyEx8McDtbXx9HRuLKSdCvIraICr1iB9fUxh8P0DTrZtZs2DT96RLoVwGdUVFSsWLFCX1+fw+Ew/AU5n8/n8/nTpk17xOK+Ae0D5AH9p37QPiouNzd32rRpsmvB5NXn8XgcDkdfXz86OrpSCeZ4TIHrRYSCJ3IyhYU4LAy3bo0RovcGneyMbw4H9++P9+3DtbWk/3JK1dbixETcr9///zPpa0nZZWrTBoeH48JC0n85+IoXL16Ym5v37NlTdqQmraf3yr7Pa9OmTXh4eKGC9I3a2trExMR+/fpB+4BGgP5TP2gfFVdYWBgWFta6dev3F4gm7ztY//799+3bV6tkczymMH+9bG1tVfl6cTDG9LUyo6RSdO0aSkq6t2uXWnFxRz4fYYwkEgpKVlNDYjFCCNnYoIkT0dixqH17CoplradPUVISSkxEt24hhJBAgEQiCorl8RCHg+rqkLExmjQJjR2LevdGinMUicoqKyv76aefysvLr1y5Ul1dnZSUlJiYeOvWLYSQQCAQUdE3ZF+n1dXVGRsbT5o0aezYsb1791agY2ree/r0Ka3tY2BgwOfzN23aNHz4cEVsH1A/uvsPjK/PUpr2UW5SqfTatWuyDlBQUMDn8zHGEirmeGpqamKxGCFkY2MzceLEsWPHtlfuOR4jmLleEyZM2LBhQ7t27U6dOsWeh/QYpkSJHEIIobq6ul69eukKBClTp6KLF9HFi+jNG4QQEgj+zSKk0q8UweMhPh+JxUgqRTwe6tQJDR6M7OyQnR0yMmLgT2CRoiJ06dKRHTs2X7yYVF0tkEoRl4sEAlRX9/UMmctFfD6SSlFdHUIIGRign35C/fsjOztkYcFA7IASVVVVQ4cOffbs2ZUrVz78t62oqOjSpUtXrlw5c+bMo0ePpFIpl8sVCAR1dXVf/aSWnc4plUrr6uoQQgYGBj/99FP//v3t7OwslKVv0NQ+rVu37t69e9euXY8dOwYTTSX2vv8kJyfn5eXB+PoIheOrefPmQ4cOVbL2UXpZWVmXLl1auXLl69evKysrEUKyOzN1dXXSr83xeDwen88Xi8VSqZTH42lqavbv39/FxcXOzs5I1eZ4TJFdr4sXL168ePHNmzdIjuvVqVOnwYMH29nZvb9e2dnZtra2Y8eO3bp1KxN/DPsoWyIXFhYWHBx8584dMzOzf996+xZlZqLsbPToESosRE+fosJCVF6ORKKimprMurqfNTURj4e0tVHTpqhtW9S6NWrdGnXtiszNkZkZUlcn+gcRhjG2trY2NTXdv3MnuncPZWej+/dRXh7Ky0MvXqDyclRRgSQSVF2N+HykoREgkQjU1X27dEEdOqAWLZCpKTI3RxYWSF+f9J8CvplIJHJwcLhz587ly5e7du36pR+rqam5d+9ednb2/fv38/Ly8vLyXrx4UV5eXlFRIZFIqqur+Xy+QCDQ0NBo1qxZixYtOnTo0KJFC1NTU3NzcwsLC31l7xufbZ/S0tKKigqEkKx9NDQ01NXVtbW1v9o+N27c6NevX0hIiJeXF6E/CDAEY9ytWzcrK6tFixbVP75k/aeurq5p06Z9+/ZV5fGVnZ2dk5PTtGnTysrKj9rn0/GVn58/ZcqUjIwMSOEUTnZ2tqWl5Z49ewYNGpSZmZmdnf3o0aPCwsKnT58WFhaWl5eLRKKampq6ujpNTU0ej6etrd20adO2bdu2bt26devWXbt2NTc3NzMzmzJlyoMHD9LT0+GrMWa8fftWnuul/rk5+cmTJ+3t7aOion7//Xfm/yLyCC7rpNy9e/c0NDQiIiIa+POJiYlK1gKU27t3L5fLTU9Pb+DPu7m5DRw4kNaQADNEItGoUaOaN29+584d+UvT0tLaunWr/OUojU2bNmlrazfudyMjI/l8/tWrV6kNCbDN4cOHORxOZmZmA39+7ty5ffr0oTUk9ouJiTEwMGjgD0ulUgsLC2dnZ1pDAnQYO3ashYWFRCKRs5ysrCwul5uYmEhJVEAe8szJo6OjuVzu4cOHqQ1JISjPNxBSqXTmzJnff/+9imbkNJBIJEFBQU5OTpaWlg38lU6dOuXm5tIaFWCAVCp1cXE5f/78sWPHrK2t5S/Q0NDw9evX8pejNPLz842NjRv3u4sXLx4xYoSTk9Pbt2+pjQqwSlRUlL29fcNvFgmFwoyMjK8uVVJu6enpQqGwgT/M4XC8vLz27Nnz7NkzOoMCFLtz586hQ4dCQ0Plv41mbm4+adIkPz8/2VJboKAWLVo0a9asqVOnpqenk46FacqTyMXExNy8eXP79u0q+7wj5RISEh4+fOjn59fwXzE1Nc3Ly6uurqYvKkA3jPHcuXMPHjyYlJTUt29fSso0NDQsLi6mpCjlUFBQ0OhEjsPhbNu2jcPhTJ8+HSvX2njw3sWLF69fv+7t7d3wXxEKhRUVFY8fP6YvKvZLS0uzsrJq+M87OTm1bt06OjqavpAA5fz9/bt37+7g4EBJaYGBgU+ePNm9ezclpQFSVq9e/eOPP44YMeLVq1ekY2GUkiRyT58+DQgI8PHx6datG+lYlIRYLA4JCXFxcenSpUvDf6tTp04YYxWfSSi6JUuWbN269cCBA0OHDqWqTLgj95GCgoKWLVs2+tf19PQSEhJOnTq1Zs0aCqMC7BERETFgwIA+ffo0/FcsLS15PJ4KfiH9nlgszsnJafgdOYQQn89ftGjRli1bCgsL6QsMUOjmzZsnTpwIDQ2l6iAKU1NTZ2fngIAASjZBBaQIBIJ9+/Zpa2uPHj26qqqKdDjMUYZETiqVzpgxo2PHjkuWLCEdi/LYtm3bixcvfHx8vum3OnXqxOVyHz16RFNUgG7BwcHR0dHbt2+3t7ensFhI5D4iz9JKmX79+vn7+3t6eqamplIVFWCJ9PT0M2fOfOu/aJqamqampqqcyOXk5IhEom+6I4cQmjlzpo6ODnwnoiiWLVvWp0+fYcOGUVhmQEBAfn7+9u3bKSwTME9PT+/kyZPPnz93cXFRneUqypDIxcXFXbt2bcuWLbSePKhSRCJReHi4m5ubiYnJN/2ipqamsbExPCanoNauXRsYGBgXF+fk5ERtyZDIfUTOO3IyPj4+AwYMmDp1allZGSVRAZZYvny5paXlkCFDvvUXrays0tLS6AhJIaSnp6urq3/TKhKEkIaGxvz589euXVtaWkpTYIAqV69ePXv2bEhICLXFtmvXztXVNTQ0tLa2ltqSAcNMTEySkpKSk5ODgoJIx8IQhU/knj9/vmzZMi8vr549e5KORXnEx8cXFhYuXbq0Eb/bqVMnuCOniHbs2LFw4cKIiAh3d3fKCzcwMIBE7j2pVFpUVCTnHTmEEJfLTUhIqKqqcnNzoyQwwAaPHz9OSkpatmxZI1aOCYVCVb4jl56ebm5u3ojn5OfNm8flcuPj4+mIClDI19d30KBBP/30E+Ul+/n5FRcXb9q0ifKSAcP69eu3YcOG4ODghIQE0rEwQbETOYyxu7t7q1atvmlDDlC/mpqayMjIOXPmtG7duhG/bmpqComcwjl06JCrq6uvry9Np5PJ7sipzlKH+hUXF4vFYvnvyCGEDA0Nd+3alZSUBHNQpREREdG+fftx48Y14neFQuHLly9lR+6qoG/d6eS9Zs2aubu7x8TEwE5dbHb69OlLly4FBATQUXjLli3d3d3DwsJU6vEqZTVjxozff//dzc3tr7/+Ih0L7RQ7kduyZUtKSsrmzZs1NDRIx6I81qxZU1pa+k27pX0ITiBQOCkpKU5OTrNnz6ZvKYKhoaFYLIYVgDL5+fkIIfnvyMn89NNPS5cu/e2331R5TZ3SKCwsTEhIWLJkCY/Ha8Svy9KYjIwMquNSDBkZGd+008mHPDw8/vnnH3hKis0CAgJGjBjRr18/mspftmxZRUVFXFwcTeUDJkVFRQ0dOtTBwUHpt99T4EQuPz/fy8vLw8PD1taWdCzKo6KiIjo6ev78+UZGRo0rAU4gUCzXr1//5ZdfJk6cGBsbS18thoaGCCFYXSlTUFCAEKLkjpxMUFBQnz59HB0dy8vLqSoTEBEdHa2jozN16tTG/XrLli2NjIxUc3VlXl7emzdvGp3IGRkZubi4REVFwXli7JScnHzjxg2absfJGBgYzJ07NzIyEj5IlYDs0YNWrVo5ODgo95fICpzIzZ07V0dHR3UeZ2TGqlWrqqqq5DlUHU4gUCBpaWkjR44cMmTIli1b5D9ZtR6QyH0oPz9fW1u7adOmVBXI5XJ37Njx7t27WbNmUVUmYF5JScnGjRs9PT3lWWNiaWmpmolcWloah8OxtLRsdAleXl4vX77cv38/hVEBSmCMAwICfvnllx9++IHWihYvXiwSiVavXk1rLYAZ2traJ06cKCsrmzRpkhJ/QaOoidzOnTuPHj26bdu2Jk2akI5FeZSVlcXExCxatMjAwKDRhcAJBIriwYMHw4YNs7Gx2bNnD5/Pp7UuAwMDDocDiZyM/GcPfKpVq1Y7duxITEz8888/qS0ZMGbt2rUCgUDObFxlN65MT09v166drq5uo0vo0KHDhAkTIiIi4Glettm/f39GRoa/vz/dFenr63t4eERHR797947uugADjI2Njxw5cvny5cWLF5OOhS4KmcgVFxcvWrRo7ty5/fv3Jx2LUomOjpZKpQsXLpSnEDiBQCE8fvx44MCBJiYmhw4dUldXp7s6gUCgq6sLiZxMQUEB5YkcQmj48OGLFi2aN29eTk4O5YUDulVVVa1du3bevHly3qoVCoX37t1TwaON09PTG72u8r0lS5ZkZmaeOHGCkpAAJSQSSWBg4MSJE+W/vg3h4eHB5XJjYmIYqAswoEePHtu3b4+NjV2/fj3pWGihkIncnDlztLS0wsLCSAeiVN6+fbt69WovLy95vtGUgRMIWO7Vq1eDBw82NDQ8fvw4Y/e04Si59yg5RO6zwsPDhUKho6MjbLymcDZt2lRZWTlv3jw5yxEKhSKRSAWT+UZvWfkhS0vLESNGhIaGUhISoMTu3bsfPnzIwO04mebNmy9atCgmJgb+wVIa48ePDwwMXLBgwdmzZ0nHQj3FS+T27dsn22ubwidMAEIoMjJSTU1N/mkEghMI2O3NmzdDhgwRCASnTp2SP2lvOAMDg+LiYsaqYzM6llbK8Pn8vXv3FhYWenh40FE+oIlYLI6JiXFzc5NnWbtM165dNTQ0VO0xucrKysePH1Nyx8bX1zc1NfXq1avyFwXkJ5FIli9f7uzs3LVrV8YqXbhwYZMmTVauXMlYjYBufn5+kyZNGjduXHZ2NulYKKZgidzbt28XLFjg6uo6dOhQ0rEolcLCwnXr1i1dupSS9BhOIGCtfyVYGBsAACAASURBVP75Z9iwYbW1tRcuXGj0xqSNA3fk3qPvjhxCqE2bNn/++eemTZt27dpFUxWAcgkJCfn5+ZSk33w+39zcXNUSufT0dKlUKv8dOYRQr169+vbtGx4eLn9RQH7btm178uQJw2cFN2nSxMvLa82aNa9evWKyXkAfDoezadMmc3Nze3t7JftOWcESuQULFvB4vKioKNKBKJvw8PDmzZvPnj2bktLgBAJ2qqqqsre3LywsTElJoemOUD0gkZORSqVFRUW0tv+oUaPmzZs3e/bsBw8e0FcLoArGeOXKlVOnTm3Xrh0lBargfifp6enNmjVr3749JaUtWbLkxIkTd+/epaQ00GgikSgsLMzV1dXExIThqufOnauvrw+zTWWioaGRnJzM5XLHjRtXW1tLOhzKKFIid/z48d27d8fFxTG5HkwV5Ofnb9q0ydfXV0tLi5IC4QQCFhKJROPHj8/JyTlz5kyHDh2YDwASOZni4mKxWEzfHTmZFStWdO7c2dHREb5PYb9Dhw7l5OQsWrSIqgKFQqEK3pETCoUcDoeS0kaOHGltbb1ixQpKSgONtmnTpvz8/GXLljFftYaGxpIlS+Lj41++fMl87YAm3333XXJyckZGBlX3LdhAYRK5srKy2bNnOzs7jx49mnQsyiYoKMjAwMDV1ZWqAuEEAraRSCTOzs7Xrl07efKkmZkZkRgMDAwgkUMI5efnI4ToviOqrq6+b9++Z8+eeXt701oRkN+KFSt++eUXc3NzqgoUCoUlJSUqNQGlZKeTDy1evHjfvn3wjABBNTU1ERERs2fPbtOmDZEAZs2aZWxsvHz5ciK1A5qYmZklJiYmJCQoze1WhUnkPDw8amtr4dlTyj179uzPP//09/encA96OIGAVTDG7u7uR48ePXr0aM+ePUmFYWho+PbtWyU+lLOBmEnkEEIdO3bctGnT2rVrk5KS6K4LNNq5c+dSU1OpPePIysqKw+GozupKqVSanZ1N7d70jo6OJiYmf/zxB4Vlgm+ybt26t2/fenl5kQpAIBAsW7Zs69atT548IRUDoMPQoUNXrFixdOnSw4cPk46FAoqRyJ07d+7PP/9cv369/Dt6gY8EBga2bdvWxcWF2mLhBAL28PT03Llz54EDB+zs7AiGYWhoiDF+8+YNwRjYoKCgQFtbW1tbm4G6HB0d3dzcXF1dnz59ykB1oBHCw8MHDRrUq1cvCsuUPS2mOqsrc3NzKyoqqE3keDze77//vm3bNtk3L4BhlZWVUVFR8+fPZ/5x7g/NmDHDxMQkJCSEYAyADr/99tvs2bMnT5588+ZN0rHISwESucrKylmzZk2YMGHcuHGkY1E2ubm5u3btCggI4PP51JYMJxCwhI+PT2xs7M6dO0eMGEE2EkNDQ4QQrK6k7+yBz4qNjW3fvv3EiRNV8IRo9rt58+a5c+eWLl1Keckq9ZhcWloaj8ejcG2qzIwZM/T19WNjY6ktFjREbGxsVVUVhQ+ONg6Px/P19d25c+e9e/fIRgIoFxsb27dv3zFjxuTl5ZGORS4KkMh5enqWlZWtXr2adCBKyN/fv2PHjk5OTpSXDCcQsMGqVavCw8Pj4+MdHR1JxwKJ3L8KCgqYTOQ0NDT27dt3//59Hx8fxioFDRQREWFjYzNo0CDKSxYKhaqztDI9Pb1r166amprUFquurr5w4cL169eXlpZSWzKoX1lZ2cqVKz08PGT/apA1efJkMzOz4OBg0oEAivH5/AMHDujq6o4ePbqyspJ0OI3H9kTu4sWL8fHxq1evZvjMK1WQlZW1b9++0NBQHo9HeeFwAgFx27Zt+/3336OjoyncxkYeenp6AoFAyc5vaQSGEzmEkKmp6erVq1euXHnkyBEm6wX1e/DgweHDh5csWUJH4VZWVo8fP/7nn3/oKJxtKN/p5L05c+bweLy4uDg6Cgdf8scff0ilUkqOVZQfl8v18/Pbt2+f6tziVh3NmjU7evToy5cvp02bJpVKSYfTSKxO5Kqqqtzc3EaOHDl58mTSsSghPz8/c3PzsWPH0lG47AQCeESYlF27ds2cOTM0NPT3338nHcu/OBzOd999B3fk8vPz6T574FPTp093dnaeMWPG8+fPGa4afElkZKSpqemYMWPoKNzKygpjnJmZSUfhbCM7e4COkps2bTp37tw//vhDob+wVyxv375dtWqVp6cnew6aGj9+vKWlZVBQEOlAAPU6dOiQlJR0/Phxf39/0rE0EqsTOR8fn+Li4vXr15MORAndvn37yJEjy5cv53Jp6QOyEwhgdSURycnJ06dPnz9/PpHjd+phaGgId+SIJHIIobi4uBYtWjg7O8PGoWyQl5e3a9cub29vmj6B27Vrp6urqwr3EIqLi/Pz82lK5BBCCxcurK6u3rZtG03lg4+sWLFCTU1twYIFpAP5/zgcTlBQ0KFDh27cuEE6FkC9vn37xsfHh4WF7dy5k3QsjcHeRC41NXXNmjUxMTGtW7cmHYsS8vPz69Gjx6hRo2gqH04gIOX8+fMTJ050dnaOiYkhHcvH4ExwqVRaVFREZB+2Jk2a7Nu37/bt2/C9MhtER0cbGhpOmTKFpvI5HE63bt1UIZGTPQpIXyJnaGj4v//9LyoqSiwW01QFeK+4uHjdunXe3t5NmzYlHct/ODg49OrVCz48lZWLi4uXl9fMmTMvXrxIOpZvxtJErra21tXVdcCAAdOnTycdixK6fv36yZMnly9fzuFw6KsFTiBg3t9//z169Ohx48Zt3ryZ1ovbOJDIFRcX19XVEbkjhxCysLD4448/wsLCUlJSiAQAZEpKSrZs2eLp6ammpkZfLVZWVqqw30l6enrLli1pfYrey8ursLBw79699FUBZMLCwmTLWUkH8hlBQUEnTpy4fPky6UAALcLCwkaMGDF+/HiFm7iyNJELCAh4/vz5xo0bWTgZVQJ+fn62trZDhgyhtRY4gYBhmZmZI0aMGDhw4LZt22haryUnSOQYOw38S9zd3Z2cnKZOnQqnYxEUGxurpqZG9y5EQqEwMzNTIpHQWgtx9D0g916bNm0mTZoUHh6uuNshKIT8/Pz4+Phly5ZpaWmRjuUzhgwZ0r9/f7gpp6y4XO7u3btNTEwcHBwUa6NaNs727t69+8cff0RHR5uYmJCORQlduXLl/PnzoaGhdFcEJxAwKTc3d8iQIVZWVomJiQKBgHQ4n2dgYACJHCKayCGENmzYoKurO2XKFKWf4rNTZWVlXFzcwoUL6T4UXigUVldXK/2HMH1bVn5o6dKlDx48OHr0KN0VqbKQkBADAwM3NzfSgXxRaGjo+fPnL1y4QDoQQAtNTc3Dhw+Xl5dPmjRJgR4mZ10iJxKJXFxcbG1t3d3dSceinHx9fQcPHjxgwAC6K4ITCBjz8uXLwYMHt2vX7siRIxoaGqTD+SK4I1dQUKCtrU33DL5+2tra+/btS01NDQsLIxiGytqwYUN1dTUDi8csLCwEAoFyr66sra198OAB3XfkEELff//9qFGjYMjQ5/nz51u3bvX19VVXVycdyxf17dv3559/9vX1JR0IoIuxsfGRI0euXr3Knh2/v4p1idzy5csfP368adMmWFRJh5MnT16+fJmZoy3hBAJmvH79esiQIc2aNTtx4gTZDOGrDAwMysvLVTm3z8/PJ3s7TsbS0jIyMjIwMPD8+fOkY1EtYrF49erVs2fP/u677+iuS11dvUuXLsq930l2drZYLGYgkUMI+fj43LhxQxH3QlAIQUFBxsbGLi4upAP5irCwsL/++uvUqVOkAwF06d69+44dO9atW7du3TrSsTQIuxK5jIyMiIiI5cuXd+rUiXQsyikwMHDUqFG9evVioC44gYABpaWlw4YNq6urO3PmjJ6eHulwvsLQ0BAhpMo35Zg/DfxLFixYMHr06GnTpr1584Z0LCpk+/btBQUFjG2tLhQKlTuRS0tL09TU7Ny5MwN1/fDDDwMGDIiIiGCgLlWTm5u7c+fOoKAgWrf/oYSNjc3IkSN9fX0xxqRjAXQZO3ZscHDwwoULjx07RjqWr2NRIldXV+fq6tq9e/f58+eTjkU5HT58+ObNm4wdeggnENCtqqpq1KhRxcXFKSkpLVq0IB3O10Eix55EDiG0detWNTW1adOmwYyEGVKpdMWKFS4uLm3btmWmRqFQqNxLK9PT07t168bj8ZipbsmSJadPn759+zYz1amOwMBAExOTyZMnkw6kQcLCwu7evXvkyBHSgQAa+fj4zJgxY/LkyVlZWaRj+QoWJXJRUVGZmZlbtmxh7ENZpWCMAwMDx40bZ2Njw1ilcAIBfUQi0dixY3Nzc1NSUtq3b086nAaBRI7UaeCfpaOjs3fv3nPnzkVHR5OORSUcPHjw0aNHixcvZqxGKyurgoKCoqIixmpkGDM7nbw3dOjQHj16REZGMlajKsjOzt67d29ISAifzycdS4N069btl19+8fPzg11MlVtcXFyPHj3s7e1ZPmlhSyL34MGDkJCQoKAgMzMz0rEop8TExMzMTD8/PyYrhRMIaCIWi8eNG5eamnrq1KmuXbuSDqehtLW1tbS0WP6ZSCtWJXIIoR9++CEkJGTZsmXXrl0jHYvyi4yMHDduHDPrAGVkSY6yrq7EGGdmZjLzgNx73t7eBw8efPjwIZOVKreAgAAzM7Px48eTDuQbBAUF5eTk7N+/n3QggEYCgeDAgQN8Pn/s2LG1tbWkw/kiViRyUql05syZ33//vQLtEqNYJBJJcHCwk5OTpaUlk/XCCQR0kEqlLi4u58+fP3bsmLW1Nelwvo0qb1wplUqLiorYs7RSZvHixSNGjHBycnr79i3pWJSZbEmet7c3k5UaGBgYGxsrayL3/Pnzd+/eMZzIjRs3rlOnTitWrGCyUiV2586dpKSk0NBQdp59+iXm5uaTJk3y9/dXoE3qQSPo6+snJydnZ2fPmjWLdCxfxIqRExMTc+PGje3bt7P2/CtFl5CQ8PDhQ4ZvxyE4gYAGGOO5c+cePHgwKSmpb9++pMP5ZoaGhsXFxaSjIKO4uLiuro5Vd+QQQhwOZ9u2bRwOZ/r06fCwHH0iIiJkC/MYrleJ9ztJS0vjcDjdunVjslIul7t48eLt27e/ePGCyXqVlb+/f/fu3R0cHEgH8s0CAwOfPHmye/du0oEAen3//feJiYm7d+8ODw8nHcvnkU/knj59GhAQ4OPjw/DHseoQi8UhISEuLi5dunRhuGo4gYBy3t7eW7duPXDgwNChQ0nH0hiqfEeODaeBf5aenl5CQsKpU6fWrFlDOhblJNu2fsmSJcxXbWVlpaz7naSnp3fs2LFZs2YM1+vi4tKyZcvY2FiG61U+N2/ePHHiRGhoqCIeN2Vqajpt2rSAgACRSEQ6FkCvIUOGrF+/3sfHZ+/evaRj+QzCiZxUKp0xY0bHjh2J/AunIrZt2/bixQsfHx/mq4YTCKgVHBy8cuXK7du329vbk46lkSCRY2EihxDq16+fv7+/p6fn33//TToWJbR8+XLZ5vXMVy0UCh88eFBTU8N81XRLT09neF2ljEAgWLBgQXx8PBzdIadly5b17t172LBhpANpJH9///z8/D///JN0IIB2M2fOnDt37v/+978bN26QjuVjhBO59evXX7t2bcuWLew/PERBiUSi8PBwNzc3ExMT5muHEwgotHbt2sDAwLi4OCcnJ9KxNJ4qL60sKCjQ1tZm7aHtPj4+AwYMmDJlSllZGelYlMq9e/eOHTu2bNkyIrULhcK6urrs7GwitdMqLS2NSCKHEJo9e7ampmZcXByR2pXD1atXz549GxoaSjqQxmvXrp2rq2toaCibd8IAVImNjR00aNCYMWNevnxJOpb/IJnIPX/+fOnSpV5eXj179iQYhnLbsGFDYWHh0qVLSQUAJxBQYseOHQsXLoyIiHB3dycdi1wMDAxU+Y4cO2/HyXC53ISEhKqqKjc3N9KxKJXw8PAuXbqQuoveuXPnJk2aKN/qyn/++efZs2dMnj3woSZNmsydOzc2NraiooJIAErA19d30KBBP/30E+lA5OLn5/fmzZuNGzeSDgTQjsfj7d69+7vvvhs9enRlZSXpcP4/Yokcxtjd3b1Vq1bM78ChOmpqaqKioubMmdO6dWtSMcAJBPI7dOiQq6urr6+vl5cX6VjkJVtaqZqbarDqNPDPMjQ03LVrV1JSUnx8POlYlMTLly/37t27dOlSUpvycblcCwsL5dvvJC0tDWNM6o4cQmjhwoUikWjz5s2kAlBop0+fvnTpUkBAAOlA5NWyZUt3d/ewsLCqqirSsQDaNW3aNDk5+dWrV87Ozuw5RZBYIrdly5aUlJTNmzdraGiQikHprVmzprS0lOENrz8CJxDIKSUlxcnJafbs2UFBQaRjoYChoaFIJFLNxXvsT+QQQj/99NOSJUt+++035buHQ0RUVFSLFi0mTZpEMAal3O8kPT1dV1e3TZs2pALQ09NzdXVduXIl7HXRCAEBASNGjOjXrx/pQCiwbNmyyspKWGerItq3b5+UlHTixAkiG098FplELj8/38vLy8PDw9bWlkgAqqCioiI6Onr+/PlGRkYEw+jUqROcQNBo169f/+WXXyZOnKg0O6QZGhoihFRzdSXbTgP/kuDg4D59+jg6OpaXl5OORbG9fv1669atXl5eZE/WkZ1AoGS3wdPT062srMjudujp6fn69etdu3YRjEERJScn37hxQwlux8kYGBj8+uuvkZGR8IGpImxtbbdv3x4ZGcmSJbVkErm5c+fq6Ogoxx0G1lq1alVVVRXxM9ZNTU3hBILGSUtLGzly5JAhQ7Zs2aJYh6XWAxI50lF8HZfL3bFjx7t379h8BKpCiI2N1dTUnDFjBtkwhEKh7IkysmFQKy0tjdQDcu+1bt16ypQpkZGR7FlkxX4Y44CAgDFjxvzwww+kY6GMt7d3XV2d0nzfCr5q4sSJS5cunTdv3oULF0jHgvjMV7lz586jR4+eP3++SZMmzNeuIsrKymJiYhYtWmRgYEA2kvcnEJibm5ONhHYlJaigAJWWoupqVFuLqqoQn4+aNkU8HtLRQUZGyMgI8XgNLOzBgwdDhw61sbHZs2cPn09gnFKvpAQVFBi8ecPhcF6fPIkKCuRpH4UjlUqLiorYv7RSplWrVjt27Bg5cuSwYcNcXFzq+9HqapSfj96+Rf/8g6RSJFs027w54nJRs2ZIXx8ZGyNNTWbCZpXy8vK4uDhPT0/i/9IJhUIul5uWltahQweykVBFtg/n/PnzSQeCvL29zczMDh8+PHbsWNKxkCCRoKIiVFSESkuRRILKy1FdHdLSQurqSFMT6eigli2Rnt6Hv3HgwIGMjAwl27JfR0dn4cKF0dHRv/76q66u7v//P769fVTLR+0j29n/+HGFaJ/Q0NAnT56MHz8+NTXV1NSUYCQchpdbFBcXm5ubOzo6rl27lsl6P2vfvn0TJ05UsgUnMn5+fmvXrn369KmOjg7pWFCbNm0WLlzo6elJOhDqYIxyctCdOygrC6Wno+xs9Po1+uqTElwu0tNDHTsia2tkYYEsLZGNDfrcM6KPHz+2s7Nr3779mTNniM8CG6Pe9rmJUFeEmn76Ww1uH0VUWFjYsmXLixcv9u/fn3QsDbV48eL169ffuHHDzMzs37eKilBqKsrORhkZKD0dvXqFGrKaqGlT1KoVsrJClpbI3Bz9+CMiut6bGVFRUaGhoc+fP//PxI6Qzp07T548OTAwkHQg1MjOzrawsLh79y7xm3IIoXHjxj19+vT27duKeKr1t6muRjdvoowMlJWF0tLQo0fo3Tv01buRamrIyAiZmyOhUPL995YhIcIffti9ezcjETOnrKzMpEOHXx0cgnv2bHT7IHNz1L07MjNDStmXvtZ/3iH0BKEeH/0Wi9unurr6p59+Kisru379OsnPecyscePGtWvX7p9//mG43s9KTExkvgUY8ObNm2bNmoWFhZEO5F8DBgyYNWsW6Sio8OwZXrMGjx6NmzfHCGEuF6urYw4HI/RtL4EACwT//o9evbCfH/7rLyyVyirJy8vr0KGDlZXVu3fv/l979xkXxdU1APxsozcr3YYtEqwPJhhjbFFj1yAgZQFB0FhijckbE01MYtQkSqIoAiJIx67YoliwYI31UaxRUEARQUCQXfa+H8YHEZGyO3X3/H/7Qdbde8+enZ2ZM3PnDrcft9FYyY9AXbhwAQAyMzO5DqQRKioqPvzwQydHx7L4eBIcTNq1e/UF6ekRiaTRX6tEQvT1X/3bwYEEB5PNm0lJCdefkhHl5eU2NjZfffUV14G84urqOnbsWK6joE1sbKxMJnv58iXXgRBCyIULF0Qi0d9//811IMyorCQnT5KFC8kHH7xeLVP/aNRDJCJ6ei/E4m8BbpiZkbFjyV9/kfv3uf54GquWnw0SyRbN8kPEYgJALCy0Mj+aLz88zM+jR4/s7e0/+eQTDldHrJYxycnJIpFo3759bHZaB20t5ObPn9+8eXOeVMuEkMmTJw8cOJDrKDSQnU1+/pl07UoAiFSqzi5s3Q89PQJAWrQg06a9OHz4vffec3R0fPLkCdcfu8FYzA85eZLrT6um3bt3A0BxcTHXgTRYWRnZtOnewIF/SCQqkUidTW/dD5ns1bZ51CgSF0fKy7n+wHRau3atvr7+w4cPuQ7klSVLlrRp04brKGgzf/78bt26cR3Fa4MHDx40aBDXUdDt+HEydSpp0eL1SpjGh0RCpFIiEpFu3cjSpYQ3v5RGwPzUTWfyc+HCBWNj44CAAK4CYK+Myc/Pt7S0DAwMZK3HemllIZeTk2NkZPTHH39wHchry5Yts7e35zqKxlOpyP79ZNQoIpHQvxdb60NPjwBE2dg8XLqU8H+Pn6P8kC5dSGioAPLzpvDwcBMTE66jaJhbt8jcucTMjIjF9JfltW6SxWJibk7mzSO3b3P94WmgVCo7dOgQHBzMdSCv7dq1SyQSFRQUcB0IPYYMGSKXy7mO4rWDBw8CwEnBHmZ6Q3ExWbOGdO5MANhYsVMHiSQSMno0OXCA6w/fAJifuulkfnbv3i2RSEJCQjjpnb0yxtPT08bGhlcbEq0s5GbOnGltbV1aWsp1IK9t2bJFJBK9ePGC60Aa4++/Sffur/YymV4Tvb1ikkiIuTlZtIgUFnKdiHfA/DTSDz/80KlTJ66jqM+dOyQwkIjFLFXmNR56ekQkIp9/Tm7c4DoRGomPj5dIJDdv3uQ6kNcePHgAAEePHuU6EHpYWlr+/vvvXEfxBhcXl3HjxnEdhWaKi8mqVaRZMyIWqzMkXsMHtc7p0oUkJ/N0ID3mp266nZ9ff/1VIpHs3LmT/a5ZKmOoYUXbt29np7sG0r5C7uHDh4aGhmvWrOE6kDdcvnwZAK5evcp1IA2TkUG6dSPARYlS4yGVEgsLsm4dqazkOinVYH7UMmXKlP79+3Mdxbs9eUL8/Tkr4ao/ZDIiFpPAQJKfz3VS1NSjR4+JEydyHUVNzZs35+qAMb0ePXoEAIcOHeI6kDdQxysFs5mrobKShIYSc3MilXL886c2Kz16kDNnuE5KNZifumF+CCGEBAUFmZqaUjftZBMbZUxhYaGdnZ2Pjw8LfTWK9hVyQUFBrVq1KufZ1SYvXrwQi8Xbtm3jOpD6PHtGgoIIE5cDafIQi0mPHuT8ea6zg/nRyOjRoz09PbmOojYqFQkPJ+bm9F/GoMlDJiPm5iQigqfHnt8tNTUVAC5cuMB1IDUNHDhw0qRJXEdBgz179gAA364iVqlUjo6Ofn5+XAfSeOfPkx49Xk0jwZMHdflTcDDhw4xfmB/MT8NUVFQMGDCgdevWubm5bPbLRhnj7+/fokWLx48fs9BXo2hZIXfv3j09Pb2IiAiuA6mFnZ3dihUruI6iTsePE2trfpUo1ddKEglZvpzLnVrMj2acnZ3nzp3LdRRvefKEfPYZv7bB1R9iMRk+XFin5vr27Tt8+HCuo6jFnDlzevbsyXUUNFi6dCk/L7qOioqSyWT//vsv14E0mEpFli17NW8E5z/2tx8yGbGxISdOYH4wP0LJz9OnTzt06PCf//yHzYuJGC9jDh48KBKJNm/ezHRHatCyQs7X17d9+/YKhYLrQGrB9zsQLF1KJBLuxwrW/RCLyaefcnMEDvOjMVtb299++43rKN504gSxtORpcV71kMmIpSU5dYrrZDXIqVOnACA9PZ3rQGoRHR2tr69fUVHBdSCa8vDwGDlyJNdR1KKioqJ169Zffvkl14E0TEEBGTiQvwdxqAc1E9Ly5ZgfzI9Q8nPjxo0mTZq4ubmp2DqyzGwZU1JS0q5duwkTJjDai9q0qZC7efOmVCqNjY3lOpDa8fcOBEolmTyZgwtz1XvIZKRTJ5KVhfnhS34aprKyUiqVxsfHcx1INdu2qXk7OPYf1A3oduzgOmX1GzFixIcffsh1FLW7ePEiAFy5coXrQDTVuXPnhQsXch1F7VatWmVkZMTD8Uc1PXhAOnbk+0GcqodIRKZMIUol5gfzI4j8HDlyRE9P78cff2SnO2bLmKlTpzZr1ozl0aINp02FnIeHR5cuXZRs/pIbg6d3IFAoyOjRwtiXrXrIZMTKiqVZ2jE/NMnJyQGAI0eOcB3I/0RFcTOxmNoPkYiIxSQ6muvE1eXSpUsikWj37t1cB1K7iooKPT29TZs2cR2IRl68eCGRSFJSUrgOpHalpaUtWrT47rvvuA6kTrduCeBUfI2HRELGjSPsDDjC/GB+NBYRESESieLi4ljoi8Ey5vDhw6x9DPVoTSF35coVsVjM220b4ecdCFQq4uMjsCqFekilpFUrwvTxEcwPfS5cuAAAmZmZXAdCCCFk2za+j4d510MsJlxM7txAnp6eXbt2ZW04jRq6d+8+b948rqPQyOnTpwGAV7d2qOHHH39s0qTJ8+fPuQ7kHR49Ivb23lJG6AAAIABJREFUAtsLpx4SCfHzY/xCaMwP5ocmX375pYGBwSnmrwtgqowpLS1t3779iBEjGGqfFlpTyI0dO9bJyamSx5Ow8/EOBN9+K9TdWQAikxEnJ1JWhvnhLD+NQd1/pZgPNzHPyCAymZDOxVV/iERET49f827/z927d6VSKZ8PXBJCfH19P/30U66j0EhYWJixsTGfN3YFBQWmpqa8uyCWUlpKunQR5F449RCLyfffY34wPzzNz5sqKytHjRplZWV1//59RjuSQjXZ2dknT54EOsTGxubk5MybNy85ObnuV/bp08fOzk7D7urtpVbUhenqvdfe3t7FxUWNN9YIICsrS8NGSkpKDh8+HBwcvHnz5oa83s3NTcMe1VhOKioqRCLRxo0bnZ2d1euUluXktUOH4JdfgBDaGmSZQgHXr8PcubBmDSPtY35qo966AgDS0tIMDAyoadMbhZb1zGvPn8OECUCIUL9ZQqCyElxd4epVMDWlq1Va1sM7duxo1qyZSCRq4ELCyXoYAM6cOaP2Ygycbq8p27Zts7W1beDGrgrL2+v+/fuvWbPG3t5ewx6BjuXkDXPmwM2boFTS2SabVCpYsgQGDID+/RlpH/NTN8zPW+peD3/++eeXLl0aOXLkwoUL6eoR3l4PV6/qqDNULEtKStK8HmU/bFdXV83DdnV1ZT9yzcMW7nLySkEBadlSkIMGazxEIsLEBTmYn3dgf7GnZT3zmre3gA+mVj2kUiKX05gVXA83HG6vWaZ52K/t3Mn9j1fzh1hMLC0ZmZ0Y84P5aTw+rIfF7EeAEMd+/hmePYPKSmZ72bkTCAFaD8PUJBLB9OmgUNDcLKP5kclg9mw4fx6Ki+HxY9i7F0aNApGIkb4Yyo9AZWRAXBwj2ZBIYNYsuHgRXryAoiJIS4PBg+nvpYpSCZs2wZkzDHaBkJapqIDp00FM3y7f8OF1nZw5fvzVmf/qj1WraOhXpYKnT+GXX2hoqjo28zNlSi3JoR5792rarxbkB5jcpjCUH05hIYd0zL178OefjO/cy+UwahSzXQCASgVZWRAWRmebjObH2BjS0sDPD2bPhpYt4T//gZIS2LkTHB0Z6Y6J/AjXrFkgldb/ssaSSGD7dli+HCIiwN4euneHf/+FAwfAw4P+vqp3OmsWg+0jpGVCQ+HhQ1CpaGjKwQF27oSlS8HSkobW1KBUwqpVcP8+nW3yJD+0XNwk9PwwvU1hIj+cwkIO6Zi//mK8CxsbWLUKNm1ivCMAqKyEZcvoWb1SGM3PihXQtSsMGQLHjkFZGTx4AH5+8PIlgz3Snh+BOnUKTp9mpD739oaRI2HdOli9Gp4+hXv3ICAAMjMhNBQsLOjvjqJUwqlTcPYsU+0jpE1UKli+nLZBFkuWwMmT0KsXFBfX9TJnZxCJ3njQe/CFxuuf2c/Pjh01k9OxI7x8CeHh9MQAQs4PO9sUhuYX4AIWckiXKBQQFcX46bjwcEhJgQMHmO2lSnY2HDlCT1OM5sfSEoKCIC4O8vJeP1laCgYGcPUqIz1SaMyPcEVGgkzGSMvjxgEA7Nr1+hlCYMcOaNIEGL2mSE8PIiMZbB8hrXHwIOTk0NZaQAD8+ivHM14oFBAZSdumiuX83L4N6ek1n5wxA7Zvh9xcemIQdH5Y2KbQmx+uYSGHdMmhQ1BYyGwXkyaBoyPMm8dsL9XJZBAfT09TjOZn9GiQSOD4cabafxca8yNQlZWQlMRgfQ4Ajx+/8SS11e/bl5EeKRUVEB+P51oRql9CAp3HccrKaGtKEwUFcPgwPU2xnJ+DB+H33994xtQUfH0hNJS2GEDI+WFnm0JjfrjW6EIuIiJCpVKNHDkSAAIDAwkhiYmJq1atIoTs27ev6h8MhKoRgYYNgo2cp2Gnp4OeHoPt29nB77/DpEn1jDmhl0IBaWn0NMVofnr2BAB49gx+/x2ysqCiAu7fhz//hKZNmeqRQmN+6sPTxf7KFSgpYarx/HwAqHm1Q4sWAABt2jDVKaW4GK5dY7aL/+HpN1sfDJtlPI08LY2Dkw8+PnDxIpSWQlERpKeDpyfN7evp0XZYkJP8VOfvDw8ewLFjdLYp3Pyws02hMT/1YXy1oMY0mvv37y8sLOzUqRMAfP3119ST586dq/GPBmJtOmN6w2ZzOmN6I9c8bOEuJ6RfP2Zntt23j6xZ8+rf3t6EELJwIRsz6opEJD+f7/nZvp0QQnJySGwsadeOWFgQuZyUlJDMTGJuLoj8sL/Y03P7gdBQIpUyldvp0wkh5M8/33jy3DlCCDl7ltmvVSol69Zpnh5cDzccbq9ZjlzzsMmTJ0QkYuQHmJ1NlMra/+v4cRITQ3r2JMbGpFMnEhNDyFtrCc3X6v37CzU/NT5IZiaZOpXm3oWbH3a2KTTlhw/rYXUmMUtPT8/IyNixY0fv3r3VeDtXBBo2CDZyPoZ95w6DjU+eDB06wOefM9jFuxACDx5As2aatsNofgwMAADKysDP79X4+JgYsLeHn36CuXPh++8Z7Jqu/DQAHxf7+/dBImHqmpaICPDzgylTIDMTEhPB2Bi++gpsbQGYH4IlkbA58xgfv9kGwLBZxrvI798H9u/dV30IXGYmyOXQqRPMmAFxcXD6ND1dEELPBouT/FT32WdgbU3/7GjCzQ872xS68tMwjK4W1LxGbvHixVevXo2LixPTeFsJ5gk0bBBs5LwLm7kLwFq1ghUrYNIkKC1lqou6UaMRNMToBYRUZg4efKOioC5oHjqUwX4ptOSnYXi32D99yuBdE8vLYcAACAmBefMgJwdOnwaRCCZMAADaLtx/F+qOQCzi3TfbMBg2y/gVOYurvrps3gwANN+V59kzGhrhPD8zZ0JMDCOj3wWaH9a2KbTkp8GYWy2o2RwhRC6X29nZTaCSWxtvb+82TF8j0UgCDRsEGznvwi4vZ6rlUaPA3ByOHHl9Z0/qANuSJa/+bN+eqa4ptBSQzOUHAP79FwBq7nlTFzRTw98ZxWKBzbvF/sULZicFKS6G+fOhbVvQ0wNra5g2DYyNAQAuXGCwUwCorGTw2r/a8O6bbRgMm2X8ipwnc5NQk1W0bElnm7RssLjNT8eOMGQIzdOcVBFuftjZpjC6w/MWBlcLjR3rGRERQQiZNWsWANjb2x8/fhwAaly0V6UhAbEz5p72sFkbc0975JqHLdzlhDRpwshQ71ofbF4jB0COHuV7fsaNI4SQjRvfeLJrV0IIOXVKEPlhf7Gn5xq5adOITMbSckg9liwhhJCOHZntRU+PzJiheXpwPdzwsHF7zXLkmodNjhxh6gfYwGvAqMdXXxFCyE8/0RlA06aCz8/q1QwGoAX5qXowsU2hIz98WA+rM9kJvVi7eJpebF48TS/NwxbuckIcHJhaJb39YLmQu3aN7/nR1yfZ2SQ3lxgYvH7y228JIWTBAkHkh/3Fnp5CbtEioq/PVGKbNycqFbGxef2MmRnJySEJCYx/p/r6ZPFizdOD6+GGw+01yzQPm1y5wtQP8F074oGB5Pz5N54RiV5NVvHBB3QG0L69IPNT9TAzI8+fkwkTmApAoPlhbZtCR374sB7mwQBuhFjTvTtIJFwHwQCZDBwcaGiH0fy8fAmBgdCsGSQmQocOYGEBPj7wzTdw+jT8+SdTnVLoyo9AOTpCRQWD7YtEEBUF7duDvj707g379kFeHkybxmCPlIoKeP99xntBSNA6dKDzJmAN1LMnrFkD7duDgQF06gSbNkGvXvDXX7TNdAIAEgn06kVDO5zkhzJpEpSUwLZtjDQu6PywsE2hKz88gIUc0iV9+wILV5+vW1fzGjmmbxzUowfo69PQDtP52bcP+vUDAwM4exby8uD//g9WrIABAxgfhU9XfgSqTx8Gpx3Lz4dPP4XyckhPh2fPIDIS9uwBFxcoKGCqxyqEQJ8+jPeCkKDp60O3bnQ2OHLkqwu/bW1BInn178DA1y/YtAkmTABra9i3DwoL4fRpsLUFT0+YOZPOMMRien7+7OeHIhLBtGkQHs7UfMLCzQ872xS68sMD6tx+ACGhGjSIjftaTpkCU6Yw3ksVmQyGDaOnKRbyc+oUbdE2EI35EShbW2jbFu7dY6r9gwfh4EGmGq+DgwNYW3PQL0LCMmwYXLpE27p9924Qiep6wcuXsHnzq2kqmaNQwMCB9DTFcn4ohECHDvT0WCtB54eFbQqN+eEanpFDusTJCd5/v0ErWQFRKkEup6cpzI+2mjyZs+FDDJFKITiY6yAQEgJ/f6ZO+3BFJILu3WkbWY35qRvmh9+wkEM6ZupUNkZXskYqhX796LwADPOjlXx9mb0DASd8fLiOACEhaNcO+vQBqRaNwBKLYepU2lrD/NQN88NvWrTHhlBDTJoElpbaU6solfDTT3Q2iPnRSjY2EBysPSflZDKYNg2srLiOAyGB+OUX7TmpIhKBlRX4+tLZJuanbpgfHtOW3TWEGsjAAJYtY3DuBzbJZDByJPTtS2ebmB9ttWiR9hRyenqwcCHXQSAkHP36wfDh2rMGWL6c5vmrMD91w/zwGBZySPd4ecGQIYJfJYlEoK8Pf/1Ff8uYH63UsiWsXKkNF0CKRBASAs2bcx0HQoKybh0YGAh+DSCTwcCBMHEi/S1jfuqG+eErEdGOQ+8INUpuLnTpAkVFwr5wKDkZJkxgpGXMj7YaNw5SU9mYu5UhMhmMGQMpKVzHgZAAJSYKexdWIgELC7h2DSwtGWkf81M3zA8v4Rk5pJOsrGDrVpBIhHp4SSyGuXMZrFIwP9oqKgratRPq6VapFNq3h4gIruNASJg8PGDWLJBIuI5DLSIRiMWwbRuDe+GYn7phfngJz8ghHbZlC7i5Ce+kk0QCHh6waRPjVRbmRys9fAi9e8PjxwK7eF0qBSsrOHMG7x2HkPpUKvD2hpQUgf38AUAshi1bYOxYZnvB/NQN88M/eEYO6bDPP4foaJBIhDRJo1gMrq4QFcVGlYL50Uq2tnD0KFhbC+m8nEwGNjZw5AhWcQhpRCyG6GgYP15ga3WpFDZtYmMvHPNTb1+YH54RzjeBEBO8vWHPHtDXF8w9UubMgYQE9nbBMT9aqX17OHsW3ntPGF+rVAqOjnD2LN4PECEayGSQkABffsl1HA0jlYKBAezdC56eLPWI+akb5odnsJBDOm/IEDhzBtq25fVOLbUyioqCFSvYPteE+dFKlpZw4sSrbRvPM+bpCcePQ8uWXMeBkLYQi+GPPyAyEgwMeH3YSyqFtm3hzBkYPJjVfjE/dcP88AkWcggBvP8+XLz46gaRPLyQVyKBjh3hn3/Az4+bADA/WsnEBKKjISYGDA35uDGWycDICGJjIToajI25jgYhrTNpEly4AB068HStDgB+fnDpEjg6chMD5qdumB9+wEIOIQAAMDKCiAhIS4O2bXm0VpLJwNAQli2Dixehc2cuI8H8aCsfH7h589XFAzz5Zqkwxo+HW7fAy4vraBDSXu+9BxcvwtKl/DqaI5FAu3Zw+DCEh4OhIZeRYH7qhvnhASzkEKpmwAD4739h+XJo2pTjkYQyGYjF4OkJt27B3Ll8WUVifrSSrS0kJ8PBg9C1KwBw+c1SJVy3bpCWBomJYGPDWSQI6QiZDObPh5s3wcMDJBLQ0+MyGIkEmjSB336Da9egf38uI6mC+akb5odrePsBhGpTWgpr18Kvv0JBAYjFUFnJXtfUbrSnJ3z/PX9nd8D8aKs9e+D77+H8eZDJWL1vONVdr16wZAl89hl7/SKEqty+DUuWQHw8ALA6v7xEAioVNG0K33wDU6eCkRF7XTcK5qdumB8uYCGH0LtVVMD27bB6NRw/niuVWiqVIuZ+L3p6UFEB9vbwxRfg7y+Me1ZWyw9IpaBUAuZHO5w7B+vWQVwcvHwJEgmDm2SpFCorwcAAvLxgyhTo1YupjhBCDZSXBxs2QGgoZGfnyGTWzB3QEYlebTj69YNp02DMGI7P5zRQtfy82jAxBPNTJyIS5UmlVoLLD92wkEOofkWXL/caONDPwGDho0cAADIZPesmiQREIlAqwcYGPDxg/HhwcRHS7Vmq3LsHW7dCUhKcOweA+dEWxcWQmgqbN8OePVBWBnp6oFDQUKuLRK+WEENDGDECJkyA4cPBxISOiBFCNFGpDoaEjPrqqzNNmjg9eQJSKRBCz+ALak0CAM7O4O4O48dDmzY0NMsylQpOnHi14cvJwfzUxHx+frK13VhWdv7wYXMnJxqaFSws5BCqByFkwoQJx48f/+eff6zFYjh6FNLT4cABuH0bVCoQi0EmA6Wy/jUUdVdKlerV+Y0WLWDAAPjkE+jXD95/n4UPwoa8vOr5yVGp7orFfWQyUWPyc16ptABw0Mr8CFR5OZw6BceOwaFDcPbsg/LyRwAf6uuDStWg4ZcyGYhEGRUVNgCtDA3B2RkGDoRPPoEPPwQDA+ajRwg1Wl5eXo8ePT7++OOkpCS4ehWOHoUjR+DIEcjPB3j1owalElSqehqSSEAqBYUCVCqQSKB9e/j0U+jXD/r1056BFdXycyc/vxCgV2PyQ6TSkwpFO5XKWgfyQ+Py81gk6tGjR69evXbs2CHi+U10mISFHEL1WLVq1bx58/bv3z9o0KA3/qO8HK5fh2vX4MYNyM6G7Gx48ACKi6GkBCorj5aVlUokww0NQV8fTEzAygratgUrK+jQARwd4f33oVkzjj4QW8rLl8yZszouLnvaNNmjRzXyA2Vlr27+9lZ+3l+xou8nn6zbuJHrD4BqQ8j84OCkbdvuzZolefgQsrIgKwvy86G4GFQqKC0FADA2BrEYTE2heXOwt4dWrVS2tu1CQtzGjFkeFsb329YhpPMqKyuHDh364MGDc+fOmZmZvfF/T5/ClStw7Rrcvg25uXDvHuTmQnExVFRAeXmUUuliYNBZKgUTEzA1hVatwM4O7Oygc2dwdIQuXUBfn6PPxJJgX99jR478d/580Z07b+cHlEowNASJpHp+lDY2dqGh0728Fv7xh9bnp47lZ09ZmXFl5Sdv5aeO5efo0aODBw/+7bffvhTKDcqZQBBC73b69Gk9Pb1ffvmlsW+cPHny4MGDmQhJQDp16jRr1qzGvmvlypUmJiZFRUVMhIQ0pFAorKysFi9e3Ng3Llq0yNLSsqKigomoEEI0+uabbwwMDC5cuNDYN1pYWISFhTERkiAUFxebmZmtWrWqsW/88ssvO3TooFKpmIhKKAYNGhQUFNTYd/38888ymezEiRNMhCQIeLUJQu/07NkzDw+PQYMGLViwoLHvlUqlSjZnbeKfkydPZmZmyuXyxr7Rz89PpVIlJiYyERXS0K5dux4/fuzX+HuvBwQE5Ofnp6amMhAUQog2e/fuXbZs2erVq3v06NHY90qlUgWbs93yTFxcnEKh8PHxaewb5XL5rVu3MjIymIhKKJRKpbTxN7/55ptvPvvsMw8Pj3xq0KbuwUIOodoRQvz9/RUKRUxMjLjxE2zIZDIdL+RiYmIcHR3V2BWwsLBwdXUNDQ1lIiqkocjIyMGDB7du3bqxb7S3tx84cGBkZCQTUSGEaJGdnS2Xy93d3QMCAtR4u45v+NavX+/m5ta0adPGvrFnz55du3aNiYlhIiqhUCqVssbfElYkEkVFRYnFYl9fX6KTF4thIYdQ7ZYvX56ampqQkNC8eXM13q7jZ+TKy8uTk5PVOG9DCQ4OvnTp0tmzZ2kNCmkqNzd3//796u3hAUBAQMC+ffseUVO/IoR4RqlUenh4NGvWLCwsTL0WdHnDd+bMmQsXLgQHB6v3dm9v74SEhLKyMnqjEhD1zsgBQNOmTZOSkg4ePLhixQrao+I/LOQQqkVGRsZ3333366+/9u3bV70WdHyEyc6dO58/f+7l5aXe2/v06dO9e3e1dyYQQ6KioszNzceMGaPe28eNG2dhYaHjR50R4q0FCxZcvHhx69atpqam6rWgy4VcWFiYk5OTi4uLem+Xy+WlpaW7d++mNyoBUSgU6hVyAPDBBx/8/PPP3377bXp6Or1R8R8WcgjV9OTJE1dX16FDh86ZM0ftRnR8hElMTMyQIUOsra3VbiEgICAhIaGwsJDGqJAmCCFRUVHe3t766s6rpqen5+npGR4erpsDYBDis927d69cuTI0NLRLly5qNyKTyXTzCGZRUVFSUpLap+MAwNLScvDgwbp8nEu9oZVV5s6dO2rUKDc3t9zcXBqj4j8s5BB6g0ql8vHxkUgkGzdu1OTOJLp8YPLx48cHDhxQY5qT6nx8fEQiUVxcHF1RIQ0dO3bs1q1bag+XpQQGBt69e1cHD5oixGcPHjzw8/MLDAzUcL2tsxu+TZs2EULUHoRCkcvl+/bt07U6pIpSqZRIJGq/XSQSbdiwwdDQ0MvLq5KWO48LBBZyCL3h559/TktLS0xMbKbZfd50eWhlbGysoaHh6NGjNWnE3Nzc3d0dR1fyR2Rk5H/+85/u3btr0oiTk1OvXr1wyhOE+EOhUHh4eNjY2KxatUrDpnS2kIuMjJw4caKFhYUmjYwbN87ExCQhIYGuqIRFoVBockYOACwsLJKSkk6cOLF06VK6ouI/LOQQeu3IkSM//PDD77//rvYw9yo6uz0DgJiYGHd3dyMjIw3bCQ4OvnLlyqlTp2iJCmmiqKhoy5Ytak9zUl1AQEBKSgoOmkWIJ+bMmXPlypXk5GTNV9q6eU3ByZMnL168qMm4SoqBgYGrq6vOjq5Ue7KT6pydnZcvX75o0aK///6blqj4Dws5hF7Jy8vz9PQcP378jBkzNG9NZwu5q1evXrp0ScPxOZTevXv37NkTT8rxQUJCAiHEw8ND86Y8PT1FIlFSUpLmTSGENJSSkrJ69ep169Z17txZ89Z0c8MXFhbWrVs3Z2dnzZuSy+UXL168dOmS5k0JDi2FHADMnDnTw8PDx8dHR2ZIxkIOIYD/XRpnbGwcHh5OS4M6O7QyKiqqbdu2H330ES2tBQUFJScnFxQU0NIaUltkZKSrq6uGA4co5ubm48ePx9GVCHHu9u3bkydPnjZtmoYXd1XRwQ1fYWHh5s2bv/jiC1pa69u3r4ODw6ZNm2hpTVg0mbWyhrCwMAsLCx25WA4LOYQAABYtWpSenp6UlGRubk5Lg7o5wkSpVMbHx/v6+moyT0x1Xl5eMplMN7dq/HHlypVz587RMq6SEhAQcPbsWd086owQT5SXl7u7u7dp04bGu2/p4Bm5jRs3isViWkYrAIBIJPL29o6NjdW1NILGs1ZWZ2JikpycfPr06R9++IGWBvkMCzmEIC0tbenSpSEhIT179qSrTR3cngHA/v378/LyvL296WrQxMTEw8Nj3bp1OGE9hyIiItq1a9evXz+6Gvzkk0/at28fFRVFV4MIocaaOXPm3bt3t27damhoSFebOngEMyIiwsvLy8zMjK4G/fz8qJmf6WpQKOgaWknp2rXrypUrf/755/3799PVJj9hIYd0XXZ2toeHh6ura1BQEI3N6mYhFxMT8/HHHzs4ONDY5hdffHHjxo3jx4/T2CZquIqKivj4+MDAQLrOsgKASCTy9/ePjY19+fIlXW0ihBouMTExIiIiMjKyXbt2NDaraxu+Y8eOXbt2jd6dhzZt2vTt21cHpzyht5ADgODgYC8vL09Pz/v379PYLN9gIYd0mlKp9PT0bNKkyfr16+ltWQfvi1pUVLRr1y5apjmpjrqIHKc84cq2bdsKCwt9fX3pbXbSpElFRUU7duygt1mEUL1u3rwZFBQ0e/bs8ePH09uyrl0jFxYWRk3KRW+zcrl8x44duja1r+a3H3jb2rVrraysPDw8tHixxEIO6bRvv/327NmzycnJNI6LoOjagUkASExMBIDPP/+c9paDg4NTUlKePHlCe8uoXpGRkcOGDbOxsaG3WSsrq6FDh+KUJwixrKyszM3N7b333mPiXls6NbTy6dOnW7du1fyuA29zc3MTi8XJycm0t8xntJ+RAwBjY+Pk5OTLly9/99139LbMH1jIId2Vmpq6YsWKtWvXduvWjfbGqUJOp67siomJGTduHC0TG9YwceJEIyMjHRxqwrmsrKy0tDQapzmpLiAg4ODBg9o96AUhvvniiy8ePHiQlJSkp6dHe+M6dQQzKipKX1/f3d2d9pbNzMzGjBmjU5s8QkhlZSXthRwAODo6hoeHL1++fPv27bQ3zgdYyCEdlZWV5evr6+/v7+fnx0T71AgBXZj6lnL79u1Tp07RPq6SYmRk5OXltXbtWp0qjPkgMjKyefPmI0aMYKLxUaNGtWzZcuPGjUw0jhB624YNG6Kjo6Oiotq0acNE+7oztJIQEh4eTt21iIn25XL5iRMnMjMzmWich6j6n/ahlRRPT08/P79Jkybdu3ePifa5hYUc0kUKhcLDw8Pa2vqvv/5iqAvqwJKObNIAIDo62traevDgwQy1HxwcfOfOncOHDzPUPnqbSqXauHGjXC5naOMqlUq9vb0jIyN153gHQhy6evXqjBkzFixYMGbMGIa60J2hlWlpaTdv3mRotAIADBkyxM7OLi4ujqH2+YbaWWLijBwlNDS0devWHh4eFRUVDHXBFSzkkC6aP3/+5cuXk5OTjYyMGOqCWh/pyCaNEBIXF+ft7S2RSBjqwsnJycXFBac8YRM17tHf35+5LgIDA7Ozs9PS0pjrAiEEACUlJW5ubt26dfvxxx+Z60V3hlaGhYX16dOne/fuDLUvFosnTpwYExOjUqkY6oJXqMWGuULOwMAgOTn5xo0bCxYsYKgLrmAhh3TOrl27/vzzz9DQ0Pfee4+5XnSqkDt69Oi9e/dovH1crYKDg7dv356Xl8doL6hKZGTkRx99xOjPpFOnTi4uLjjlCUJMmzp1an5+fkpKCkMn2Ck6MrTyyZMnO3fuZGKak+r8/Pzu37+fnp7OaC88wXQhBwAdOnRYv359SEjIli1bmOuFfVjIId1y584dHx+f4OAUV0l8AAAZ5klEQVRgHx8fRjuiNpa6sEkDgOjo6F69ejk5OTHai5ubm4mJCV5SxY6nT5/u2LGDuYFDVQICArZt25afn890RwjprLVr18bHx2/atMnW1pbRjnTkjFxkZKShoaGrqyujvXTp0qVnz57R0dGM9sIT1M4So0cZAMDd3T0oKMjf31+bLj7EQg7pkJcvX7q7u7du3fqPP/5gui/dOSP34sWLLVu20H6fsbcZGhr6+PisX79eR4aacCs2NlYmkzG9pwIA7u7u+vr68fHxTHeEkG66fPny3Llzv/vuu6FDhzLdly5cI0cIiYyM9PPzY+7SjCq+vr4pKSklJSVMd8Q5Fs7IUUJCQjp06ODm5lZWVsZ0X+zAQg7pkNmzZ9+8eTM5OdnQ0JDpvnSnkNu6dWt5ebmHhwcLfU2ZMuXevXsHDx5koS8dFxUV5eHhYWpqynRHxsbGbm5uERERTHeEkA4qLi52c3P74IMP2LmPli6ckTtw4MDt27cDAwNZ6MvLy6uiomLHjh0s9MUt1go5fX395OTk+/fvz5s3j+m+2IGFHNIVycnJ69at27BhQ6dOnVjojhohoPWbNACIjo4ePnx4ixYtWOirc+fOffv2xSlPmHb27NlLly6xMK6SEhAQcOXKlXPnzrHTHUK6w9/fv7CwMD4+nrmZqKrThWvkwsLC+vXr5+joyEJfzZo1GzZsmC6MrmT09gM1ODg4xMTErF27NjY2loXumIaFHNIJt27dmjx58owZM1gYKkbRkdsPPHz48PDhwyyMq6wSHBy8c+fOR48esdajDoqMjOzcufOHH37ITncuLi5dunTBKU8QoldISMi2bdtiY2Otra3Z6VHrh1bm5ubu3r2b6WlOqvP19T106FBWVhZrPXKC6dsP1DB69Ojp06dPnTr1+vXr7PTIHCzkkPYrLy93d3fv1KnT8uXLWetUR4ZWbtq0ydzcfPjw4az1OGHChCZNmmzYsIG1HnVNWVlZUlLS5MmT2ex00qRJCQkJL168YLNThLTY2bNnv/rqqx9//JG523u+TSKRaPdWLzw83MzMbPz48az1OHLkyKZNm2r9VcSsDa2s8vvvvzs5Obm5uQl9u4OFHNJ+06ZN+/fff5OSkvT19VnrVEeGVsbFxU2cOJHNxOrp6cnl8vXr1+NdpBmSkpLy4sULpm8mUYOvr295ebmWzQqNEFeePXvm7u7+8ccff/3112z2K5PJtHgcikqlioyM9Pf3NzAwYK1TPT09Nzc3rR9dyebQSopMJktMTMzJyZk5cyZrnTIBCzmk5RISEqKiojZs2NC2bVs2+9WFoZVnzpy5evUqm+MqKVOnTs3Ozt6/fz/L/eqIyMjIUaNGtWzZks1OmzdvPmLECBxdiZDmCCGTJk1SKBSJiYnsXBpXRbsnO9m7d++DBw9YHq0AAL6+vtevXz979izL/bKJ5aGVlFatWkVHR2/YsEHQdTIWckibXbt2bfLkyfPmzRs7dizLXevC0MqYmJiOHTs6Ozuz3K+Dg8OAAQNwyhMm3L17Nz09nbVpTqoLCAg4duzYrVu32O8aIW2yYsWK3bt3JyQkNG/enOWutbuQCwsLGzhwYMeOHVnut3fv3p07d46JiWG5XzaxP7SSMmLEiLlz506dOvXSpUssd00XLOSQ1iotLXVzc3v//fd/+ukn9nvX+qGVFRUVSUlJ/v7+nPQeHBycmpp6//59TnrXYuHh4TY2NkOGDGG/62HDhtnZ2UVFRbHfNUJaIyMjY+HChUuXLu3bty/7vWvx0Mrs7Ow9e/awOc1JdXK5PD4+/uXLl5z0zgL2h1ZWWbp0aa9evdzc3IqLi9nvXXNYyCGt9cUXX+Tm5iYlJenp6bHfu9YPrdy9e3dBQYGXlxcnvY8dO7Z58+a4008vpVIZExPj7+/P8nAsilgslsvlUVFRWnz4AyFGFRQUeHh4DBkyZO7cuZwEoMVn5MLDw5s2bTp69GhOepfL5UVFRXv27OGkdxZwMrSSIpVKExISCgoKgoKC2O9dc1jIIe0UHh4eGxsbFxfXunVrTgLQ+qGVMTExgwYNsre356R3PT09Pz+/9evXa3GG2bd3796cnBw/Pz+uAggICHj8+PG+ffu4CgAh4VKpVF5eXoSQ6OhokUjESQzaWsgplcrIyMiAgAA2Z/aqztbWdsCAAVo8upKroZUUOzu7xMTElJSUiIgITgLQBBZySAtduXJl1qxZ33zzzbBhw7iKQbsLuadPn+7du1cul3MYQ1BQUF5enhYfoWTfhg0bBgwY4ODgwFUAbdu2/eSTT/DeEgip4Zdffjl06FBiYmKzZs24ikFbbwiempr66NEjTi4eriKXy1NTU588ecJhDMzhtpADgEGDBi1YsGDGjBn//PMPVzGoBws5pG1KSkrc3NycnZ0XL17MYRjUUG+t3KQBQFxcnJ6eHvtTyFTXrl27wYMH45QndMnLy0tNTeV2TwUAAgICdu3alZuby20YCAnL0aNHFy9e/Ntvv7m4uHAYhrbeEDwsLGzIkCHt27fnMIbx48cbGBgkJiZyGANzqJ0lTq6Rq7JkyZK+ffu6ubkVFRVxGEZjYSGHtM2UKVMKCgri4+M5PLQD2n5GLiYmZsKECSYmJtyGERwcvG/fvn///ZfbMLRDTEyMkZERt8U5AHz++eempqaxsbHchoGQgDx+/NjT03PEiBEzZszgNhKtHFr54MGDAwcOcDXNSRVjY+PPP/9cW0dXcn5GDgDEYnFsbGxpaSn7d5jQBBZySKusXr06ISEhNjbWxsaG20ikUqlIJNK+TRoA/Pe//z1//jy34yopo0ePtra2FuKgdh6Kiory8vIyMjLiNgwDAwMPD4+IiAhCCLeRICQIKpXK29vb0NAwJiaGq0vjqkil0srKSi378YaFhbVs2XLkyJFcBwJyufzcuXNXrlzhOhD6KZVKkUjEyTxb1VlaWsbHx2/dunXNmjXcRtJwWMgh7XHu3Ll58+YtWrTo008/5ToWAACJRKKVhVx0dHTr1q379evHdSAglUr9/f0jIyO1dQgra06cOHH9+nXOx1VSAgICMjMzT506xXUgCAnA4sWLjx07lpycbG5uznUsWnjfHaVSuXHjxsDAQG5H/VH69+/ftm3buLg4rgOhn1Kp5PZ0XJX+/ft/9913s2fPFso2CAs5pCUKCwvd3d379Onz7bffch3LK1p5Rx2VShUfHy+Xy8ViXqw9goKCnjx5snPnTq4DEbbIyMiuXbv27NmT60AAAHr16tW9e/fIyEiuA0GI79LS0n755ZeQkBCe/Hi1774727dvz83N5clBLpFI5OXltWnTpsrKSq5joZlCoeBDqUz57rvvBgwY4OHhUVBQwHUs9ePFrhhCGiKEBAQEvHjxIj4+nvNT81W08mqBv//+Ozs7m6vbx73N3t5+6NChOOWJJkpKSjZv3syrqwImTZqUlJQk0NuzIsSO3NxcLy8vV1dXzi/fqqJ9F4eHhYV99tlnXN3H6G1yuTwnJ+fQoUNcB0Iz/pyRAwCxWExVy76+vvwfJ4yFHNIGK1eu3LlzZ3JyspWVFdexvKaVhVxMTEyfPn06derEdSCvBQcHHzx48NatW1wHIlSJiYkKhcLT05PrQF7z8fFRqVTJyclcB4IQTymVSjc3N1NT0/Xr13Mdy2taNrTy7t27aWlp/KmTAaBDhw4ffvih9k15wqtCDgBatmyZkpKyf//+VatWcR1LPbCQQ4J35syZb7755qeffvr444+5juUN2je08vnz59u3b+fDNCfVjRgxolWrVjgST22RkZHjxo1r2rQp14G8ZmFhMWbMGPxOEXqXhQsXnj17Njk52czMjOtYXtOyoZVhYWE2NjbDhw/nOpA3yOXyrVu3CmuK/HrxamglxcXF5ccff1ywYMGJEye4jqUuWMghYXv27Jm7u/vgwYPnz5/PdSw1ad8ZuZSUFJVK5ebmxnUgb5BIJNSUJy9fvuQ6FuG5ceNGRkYGT64AqS4gIODUqVP//e9/uQ4EId7Zs2fP8uXLQ0NDu3fvznUsb9CmoZUVFRUbN26cPHkyf67XoEycOBEAtmzZwnUgdOLbGTnKggULhg8fPnHixPz8fK5jeScs5JCAEUL8/f0rKyujo6N5MvdGddpXyMXExIwePbpJkyZcB1JTUFBQYWHh9u3buQ5EeMLDw9u0aTNgwACuA6lp0KBBDg4OGzZs4DoQhPglKyvL19d34sSJ/v7+XMdSkzYVclu3bi0oKODhQS5zc/ORI0dq2ehKfhZyIpEoKipKIpHI5XKVSsV1OLXj3b4vQg3366+/7tmzJyEhoXnz5lzHUgupVKo1I0wA4N9//01PT+fbuEqKtbX1iBEjcMqTxqqoqIiNjZ00aRIPj4OIRCK5XB4dHY0nWhGqolAoJk6caGlpGR4eznUstaBGx2nHhi8sLGzkyJG2trZcB1ILuVx+7Nixu3fvch0IbRQKBQ8LOQBo0qRJUlLSoUOHli9fznUstePdxhuhBjp27Nj333+/bNmyjz76iOtYaieTybTjwCQlOjq6RYsWQ4YM4TqQ2gUHBx8+fPj69etcByIku3btys/P9/X15TqQ2k2aNOnZs2epqalcB4IQX3z11VcXL15MTk42MjLiOpZaaM0ZuczMzKNHj/JqmpPqhg0bZmlpGRsby3UgtFEqlXy7Rq5K7969ly5dunDhwrS0NK5jqQUfy1+krU6dOpWVlUVLUyqVavbs2T169LCxsal7ajvNL+jKzs4+efKkGm8sLS29fPmyejPv9enTx87OTo03vovmEwBu2LDB2dl527ZtDXy9vb29i4uLhp02fJkhhLRo0WLRokWurq4adsq3iwDfRfPvNCQkpGvXrhkZGRkZGQ15PcvfKQA4OTn9/vvvmu8XCuU7RdqHxslX79y5ExISMn369KtXr169evVdL2P/d1olOzsbAFJTUy9fvqxGp3T9TjXP+ebNm5s3b15UVNTAptjPea9evSIjIzt37qxhp/SuG9XeX7py5UppaSmH+0t1d21ra9uzZ08vL6+VK1fSNYCFlmUGAIAgxBbN97A5WcKTkpLYDzspKUnzyKtj/yO4urpqHrZAlxl2sJ8Z/E4Raiz2l3b8nbIfOeacItz9JfbDpmWZIYTg0EqEEEIIIYQQEhgs5BBCCCGEEEJIYLCQQwghhBBCCCGBwUIOIYQQQgghhAQGCzmEEEIIIYQQEhgs5BC/REREqFSqkSNHAkBgYCAhJDExcdWqVYSQffv2Vf2D6zBrEmjY1Qn3Iwg3cqYJNzPCjRyhxhLu0o6Rs0+4kVcR6Efgb9i0zH2JUEM0cGrd/fv3FxYWdurUCQC+/vpr6slz587V+AdrS3gDp9OlN2xObj9A70dgczpmvi0z7GA/M/idItRY7C/t+DtlP3LMOUW4+0vsh03X7QfwhuCId9LT0zMyMnbs2NG7d2+uY2kEgYZdnXA/gnAjZ5pwMyPcyBFqLOEu7Rg5+4QbeRWBfgR+ho1DKxEfLV68+OrVq3FxcWKxkBZRgYZdnXA/gnAjZ5pwMyPcyBFqLOEu7Rg5+4QbeRWBfgQehs2XOBCqjhAil8vt7OwmTJjwrtd4e3u3adOGxaDqJ9CwqxPuRxBu5EwTbmaEGzlCjSXcpR0jZ59wI68i0I/Ax7BpGaCJUEM0ZPx3REQEIWTWrFkAYG9vf/z4cQCocTlplYb8VDQPuyFjvmkPm/1r5Gj/CKxdM8DDZYYd7GcGv1OEGov9pR1/p+xHjjmnCHd/if2w6bpGDjdviD0NvJCXXpqH3cCLd+nFyWQn9GLz4m96aR42O9jPDH6nCDUW+0s7/k7ZjxxzThHu/hL7YdNVyOHQSoQQQgghhBASGCzkEEIIIYQQQkhgsJBDCCGEEEIIIYHBQg4hhBBCCCGEBAYLOYQQQgghhBASGCzkEEIIIYQQQkhgsJBDCCGEEEIIIYHBQg4hhBBCCCGEBEbEyV3wEEIIIYQQQgipDc/IIYQQQgghhJDAYCGHEEIIIYQQQgKDhRxCCCGEEEIICQwWcgghhBBCCCEkMFjIIYQQQgghhJDAYCGHEEIITExMRG8xMDDo2rXrmjVrNJnfODExsaq1xgZgZGTUrVu3P/74o7KyknrZb7/9Rv2XnZ2d2iFVp0aD3bt3fzvUGn766SdawkMIIYTeBQs5hBBCUFJS8s8//wDAmDFjCCGEkJcvX2ZkZJiZmU2fPn3BggVqt+zh4UEIGTRoUGMDeP78+b59+wBg7ty58+fPp142b948Qki3bt3UjqcG9RpMSUkh/xMcHAwAe/furXrG3d2drvAQQgihd8FCDiGEUC309PS6d++ekJAgFotXrlxZUFDAcgCmpqb9+vVbt24dAISFhSkUCpYDQAghhPhMynUACCGE+Mve3t7a2vrhw4eXLl0aMGAA+wF06tQJAF68eFFUVNS8eXP2A3jbxYsX635BYmIiO5EghBDSZXhGDiGEUF2oC+TqvsKNOZmZmQDQokULnlRxCCGEEE9gIYcQQuidHjx4kJOTY2Zm5ujoWPXkkydPZs6c2aZNGz09vRYtWowfP77GSaobN26MHTvW3Nzc2Nj4448/Pn78uBpdl5SUpKenT5kyxcjIiBpg+S5KpTIpKenTTz+1srIyNDR0cnIKCQlRqVTVX/P06dM5c+Y4ODjo6+vb2dkNHjx448aNZWVlb7cWGxtbfdqS3NxcNYLfvn17VQuZmZlubm7NmjWj/szPz4cG5LDeFyCEENJxWMghhBCqhUKhuHjxoqenp0wmW716tZmZGfV8Tk6Os7NzcnJyaGhoQUHBkSNHCgoKXFxcTp06Rb3g9u3bLi4u586d27x5c15eXmho6JIlS+7cudPAfnfs2EEVPNQ1ci9fvty0adP48ePreMu+ffs8PDwGDhx4/fr1rKysoKCgOXPmVJ+gJTc319nZOSEhISQkJD8///z58/379/f39w8LC3u7tYkTJ86ZM+fTTz8tKCgghFhZWTUw8urGjh1LCBkzZgwABAcHf/HFF1lZWRkZGRKJBBqQw3pfgBBCCAFBCCGECKEmjaxh3Lhxt2/frv4yX19fAIiLi6t6JicnR19fv1evXtSfEyZMAIDNmzdXveDhw4f6+vr6+voNCaBq1kqFQnH37t1FixaJRKLx48dXVFRUvbJbt262trZVf+7atat///7Vm/L29pbJZEVFRdSffn5+AJCUlFT9NcOGDVu5cmWNBp89ezZ06NAvv/xSqVTWHW2Vt2etrEIVcnv27KnxfL05rPcFCCGEEJ6RQwgh9FpVHZWdne3u7r5t27b169dXf8H27dvFYvHIkSOrnrGysnJ0dDx//nx2djYAUPcMGDp0aNULbGxsOnbsWPXn1atXq49dnD59eq2RSKXStm3bLl682NPTc+vWrX/++ee7Yh45cuThw4erP9OtWzeFQnHt2jXqz23btgHAZ599Vv01e/funTVrVvVnMjMzP/jgA7FYvGrVKurUGS169+5d45l6c1jvCxBCCCEs5BBCCNXC1tZ248aNDg4OK1asOHfuHPXky5cvi4qKVCqVubl59WLswoULAHDr1q2XL18WFxcbGBiYmJhUb61ly5ZV/37//ferH1BcvXp13ZH069cPAA4dOvSuFxQVFX3//fdOTk5NmjSh4qHuO/fixYuqmA0MDExNTevo5dmzZ2PHjrWzs9u7d29sbGzdITWKsbFx9T8bksO6X0BjbAghhIQLCzmEEEK1MzAw+OWXXwghX3/9NfWMvr6+hYWFVCpVKBRvj/EYMGCAvr6+qalpeXl5SUlJ9aY0uQ0dIQT+V5XVatSoUUuWLJk8efLNmzdVKhUhZOXKlVVv1NfXNzc3Ly8vLy4urqMXqVR68ODBHTt2ODk5TZ48+ezZs2oHXLeG5LDuFzAUGEIIIWHBQg4hhNA7TZgwoUePHocOHfr777+pZ8aPH69UKk+cOFH9ZcuWLWvVqpVSqYT/jWCkBlhS8vPzqbsIqCc9PR0AnJ2da/3fysrKEydOWFlZzZw5s0WLFiKRCABqTEc5btw4ANizZ0/1J3v06DF79uyqP01NTW1tbU1MTHbu3GliYjJ27NicnBy1Y65bvTms9wUIIYQQTnaCEEKIkLfmGqmSmpoKAD179qROduXl5Tk4OLRr127Pnj2FhYVPnz5dt26dkZFR1VQit2/fbtq0qa2t7YEDB4qLi69duzZ06NCWLVuqMdnJvXv3qMlObG1tHz16VPXKGpOdDBw4EACWL1/+5MmTFy9epKWltWrVCgD+/vtv6gU5OTlt27a1trbevXv38+fPs7Kypk6damlpef/+/VobPHLkiEwm+/DDD8vLy+vNW72TnZSVldV4vt4c1vsChBBCCAs5hBBCpMZ1XO7u7tX/t2/fvtTzH330ESGEuidbu3btZDJZixYthgwZUlUyUTIzM8eOHWtmZmZoaOjs7Lx79+5BgwZRLQQEBDQkAACg7kDQrVu3r776Ki8vj3rZihUrqr/m22+/JYQ8efIkODjY3t5eJpNZWlr6+flVjQWtmuYxPz9/1qxZbdu2lclk1tbWHh4eN2/eJIQkJCRUb3DlypU1pvj38vJ6V9KioqJqxFxcXEz919v3Cajx3npzWO8LEEII6TgRIaS+k3YIIYQQQgghhHgEr5FDCCGEEEIIIYHBQg4hhBBCCCGEBAYLOYQQQgghhBASGCzkEEIIIYQQQkhgsJBDCCGEEEIIIYHBQg4hhBBCCCGEBAYLOYQQQgghhBASGCzkEEIIIYQQQkhgsJBDCCGEEEIIIYHBQg4hhBBCCCGEBAYLOYQQQgghhBASGCzkEEIIIYQQQkhgsJBDCCGEEEIIIYHBQg4hhBBCCCGEBOb/AYYCTLHGOnPyAAAAAElFTkSuQmCC",
98
+ "text/plain": [
99
+ "#<File:dot.png>"
100
+ ]
101
+ },
102
+ "execution_count": 16,
103
+ "metadata": {},
104
+ "output_type": "execute_result"
105
+ }
106
+ ],
107
+ "source": [
108
+ "values = [*0..20].shuffle\n",
109
+ "rbt = Tree::RedBlack.new(true)\n",
110
+ "rbt.insert(*values)\n",
111
+ "graph_red_black_tree(rbt, 'dot.txt', 'Red-Black Tree')\n",
112
+ "system \"dot -Tpng -odot.png dot.txt\"\n",
113
+ "File.open('dot.png')"
114
+ ]
115
+ },
116
+ {
117
+ "cell_type": "code",
118
+ "execution_count": 17,
119
+ "metadata": {},
120
+ "outputs": [
121
+ {
122
+ "data": {
123
+ "image/png": "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QQEA6A+5XL5x48auXbvm5uYmJSXFxMSgqHieTZs2PXz48P/+7/9oBwEA0BOoKwAA9MSlS5c8PDwWL148d+7cnJycIUOG0E6k1WxsbL7++uvvvvvu5MmTtLMAAOgD3AcFAKDzHj9+vGrVqnXr1nl4eERERHTr1o12Ip0xbty4zMzMrKwsw9x4FwBARJivAADQbYmJid27d4+IiAgPDz958iSKigbZtGnTH3/88cknn9AOAgCg81BXAADoqtLSUj8/vxEjRrz55ptXrlzx9/dnGIZ2KB1jbW39zTffhIeHHzlyhHYWAADdhvugAAB0jyAIsbGxH374oamp6ffffz9s2DDaiXSbt7f3hQsXcnJycDcUAECjYb4CAEDH/Pbbb56enjNmzJg8eXJ2djaKiqb7/vvvq6urFy9eTDsIAIAOQ10BAKAzampqgoODe/To8eDBg7Nnz27cuBFnL4iidevW33zzTWRk5C+//EI7CwCArsJ9UAAAuuHUqVMBAQG3bt1asWLFokWLWJalnUjfjB8//syZMzk5OS1btqSdBQBA92C+AgBA21VUVAQEBAwaNKhz586XL19esmQJigp1CA8Pl8vluBsKAKBxUFcAAGi1+Pj4rl27JiQkbN++PSEhoX379rQT6a1WrVpFRERER0f//PPPtLMAAOge3AcFAKClrl+/PmfOnCNHjsyaNWvt2rWmpqa0ExmESZMmnTx5Mjc3F3dDAQA0COYrAAC0jlwu37hxo7Oz8507d1JTUyMiIlBUaMy3336rVCo//PBD2kEAAHQM6goAAO2SkZHRu3fvTz75ZNGiRRcuXOjTpw/tRIbF0tIyMjJy+/bt+/fvp50FAECXoK4AANAWjx49Wrp06Ztvvtm8efPMzMzg4GCpVEo7lCEaOXLklClT5s6de//+fdpZAAB0BtZXAABohYSEhLlz51ZVVYWGhs6aNYthGNqJDNqDBw969OgxaNCg2NhY2lkAAHQD5isAACgrKSnx8fEZNWpU7969r1y54u/vj6KCOnNz882bN//www/79u2jnQUAQDdgvgIAgBpBELZs2bJ48eLWrVt///33Xl5etBPB37z//vuJiYm5ublt2rShnQUAQNuhrgAAoCMnJ8ff3//ixYuBgYGrV69u1qwZ7UTwtIcPH/bo0aNfv367du2inQUAQNvhPigAAE2rrq4ODg5+4403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vP7666NGjRKlteDg4OvXr+/atUuU1kDvbdq0ycfHp9F7ZL/33nuCIMTExIibCnSIo6Ojqrp47bXXJkyY4ObmFh8fTzsUQCOhrtB/lZWVo0aN2rFjx/79+4ODg2nHARBTenr6oUOHvvjiC7HuH3BwcJg6derKlStF2QYN9Ftqamp6evr8+fMb3YKZmdmkSZO+//57vEtt4JycnOLi4i5dutSlS5cJEyb06dMnISGBdiiABkNdoecKCwt79+596dKlkydPjh49mnYcAJF9+umnHh4eb7/9tohtrly58s6dOzt27BCxTdBL33777euvv967d++mNDJ37tzLly8nJyeLFAp0mLOzc1xcXGZmZrt27UaNGtW3b99jx47RDgXQAKgr9Nm5c+f69OnDcdy5c+d69uxJOw6AyFJSUpKSkj7//HNxm3311VdnzJjxxRdfqDYPBXimO3fu7Nu3b+HChU1sx8XFpU+fPt9//70oqUAPuLi4xMXFnT171sLCYujQof369Tt+/DjtUAD1grpCb+3du3fIkCFubm6nT59u37497TgA4lu2bJmnp+fgwYNFb3n58uW///77li1bRG8Z9Mb333/fsmVLHx+fpjcVGBi4f//+4uLipjcFeqN3794JCQmpqanGxsaenp79+vXDpBZoP9QV+mnjxo0TJkyYOnVqQkKCqakp7TgA4jt8+PDJkydXrlypjsbbtm0bEBCwevXqx48fq6N90HW1tbVbtmyZPXu2KMfYjR8/3sLCYuvWrU1vCvSMh4dHUlLS6dOnjYyMBg8e7OXllZaWRjsUwHOhrtA3dXV177333kcffbRhw4aIiAiO42gnAlCLlStXDh8+vH///mpq/9NPP62qqgoPD1dT+6DTmri97FOMjIzef//9iIiI+pzVDQaoX79+x44dO336tFwu79Wrl5eX14ULF2iHAngG1BV65f79+8OGDfvpp58OHDjQlC1KALTcwYMH09LS1DRZodK6des5c+b8P3t3HldT+gYA/L333NOmlJKULKOyFBKiIVnLMsogIlM0UZKtYaxR0UIyZYsoW4qyJWsiTJbs+54tlVRU2u/2/v64fg2i9Zzznnvv+/3cP8adOu9zn855z3nuec/7rlmzpri4mL5WMCnVyOllq/Pw8MjNzU1MTKRqg5jssbS0PH/+fHJy8ufPn83Nza2trW/duoU6KAz7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5nVQjGR/w7t37x46dIiFSVBNlErljh077t27x1qPRigmJuaNN954++232enO09PzrbfewtXbood1mAmRkZETJkxwcnJip7tp06ZZWFikpaWx0x2H2JkHRbGzs0tOTs7KymJuz2XW4LgCiV9tba2vr6+7u/vy5ctZ69QYrr8DwObNm62trceNG8daj97e3h06dNi0aRNrPRqbmpqatLQ0lrcoCQsLS0lJqa6uZrNTxCasw0woKCg4cuQICyu2m1haWnp5eRnDVCiVSsXC1LImw4YNW7Jkyfz5848fP85ap0zAcQUSv7lz5966dSstLc3MzIy1To3h+jsAJCUlTZ8+nc3EmpqaKhSKjRs34s3UGLJly5bq6mqmdw1uJjg4uLa2dtu2bWx2itiEdZgJkZGRLi4uo0ePZrNThUJx5syZ8+fPs9kp+xoaGli7XkH56quvRo4c6efn9/DhQzb7pReOK5DIpaSkxMbGbtq0ydXVlc1+jeH6+6lTpy5cuMDmJCjKhx9+WFRUtHfvXpb7NRIxMTETJ060s7Njs1MbG5vx48fjVCixwjrMhLq6usTExNmzZ7P5tToADBs2rFu3bomJiWx2yj7W1m03kUqlSUlJUqk0ODhYuAstcFyBxOzixYszZ86cP3/+lClTWO5a9NffASAhIaFHjx4eHh4s9+vm5jZ8+HBcvc2EP//8Mzc3l7U1oJrCw8OPHDly7do19rtGjMI6zJD09PTy8nL2v9mRSCQBAQGJiYnivmjM/rgCADp27Jiamrp///7vv/+e5a7pguMKJFpPnjzx8fHp1avX0qVL2e9d9Nff6+vr09LSQkNDOeldqVRmZWXdvn2bk95FLCoqytHRccyYMex3/d577zk7O8fGxrLfNWIO1mHmREZGTp061dHRkf2uFQpFcXGxuLf8Zn8eFOXtt99eunTpV199dfToUfZ7NxyOK5BozZkz5/79+2lpaaampuz3Lu7r7wCwa9eusrKygIAATnqfMmWKjY0Nfgall0qlSkhICA0NZXlaBUUqlSoUitjYWLF+CjROWIcZcvny5ePHj7O5YltT9+7dPT09xb16m5PrFZT58+dPmDBh+vTppaWlnARgCBxXIHGKiopKTExMSkrq2rUrJwGI+/o7ACQkJIwcOdLFxYWT3k1NTUNCQjZu3CjiDLNvz549xcXFISEhXAUQHh7+119/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",
124
+ "text/plain": [
125
+ "#<File:dot2.png>"
126
+ ]
127
+ },
128
+ "execution_count": 17,
129
+ "metadata": {},
130
+ "output_type": "execute_result"
131
+ }
132
+ ],
133
+ "source": [
134
+ "rbt.delete(11)\n",
135
+ "graph_red_black_tree(rbt, 'dot2.txt', 'Red-Black Tree - 11')\n",
136
+ "system \"dot -Tpng -odot2.png dot2.txt\"\n",
137
+ "File.open('dot2.png')"
138
+ ]
139
+ },
140
+ {
141
+ "cell_type": "code",
142
+ "execution_count": null,
143
+ "metadata": {},
144
+ "outputs": [],
145
+ "source": []
146
+ }
147
+ ],
148
+ "metadata": {
149
+ "kernelspec": {
150
+ "display_name": "Ruby 2.7.1",
151
+ "language": "ruby",
152
+ "name": "ruby"
153
+ },
154
+ "language_info": {
155
+ "file_extension": ".rb",
156
+ "mimetype": "application/x-ruby",
157
+ "name": "ruby",
158
+ "version": "2.7.1"
159
+ }
160
+ },
161
+ "nbformat": 4,
162
+ "nbformat_minor": 4
163
+ }
@@ -0,0 +1,561 @@
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": 1,
6
+ "metadata": {},
7
+ "outputs": [
8
+ {
9
+ "data": {
10
+ "text/plain": [
11
+ "#<refinement:Integer@IntegerTime>"
12
+ ]
13
+ },
14
+ "execution_count": 1,
15
+ "metadata": {},
16
+ "output_type": "execute_result"
17
+ }
18
+ ],
19
+ "source": [
20
+ "require_relative '../lib/tree/red_black'\n",
21
+ "\n",
22
+ "module IntegerTime\n",
23
+ " interval_in_seconds = {\n",
24
+ " second: 1,\n",
25
+ " minute: 60,\n",
26
+ " hour: 60 * 60,\n",
27
+ " day: 24 * 60 * 60,\n",
28
+ " week: 7 * 24 * 60 * 60,\n",
29
+ " }\n",
30
+ "\n",
31
+ " refine Integer do\n",
32
+ " interval_in_seconds.keys.each do |key|\n",
33
+ " define_method(key) { self * interval_in_seconds[key] }\n",
34
+ " define_method((key.to_s + 's').to_sym) { self * interval_in_seconds[key] }\n",
35
+ " end\n",
36
+ " end\n",
37
+ "end"
38
+ ]
39
+ },
40
+ {
41
+ "cell_type": "code",
42
+ "execution_count": 2,
43
+ "metadata": {},
44
+ "outputs": [
45
+ {
46
+ "data": {
47
+ "text/plain": [
48
+ ":inspect"
49
+ ]
50
+ },
51
+ "execution_count": 2,
52
+ "metadata": {},
53
+ "output_type": "execute_result"
54
+ }
55
+ ],
56
+ "source": [
57
+ "class BusyFreeEvent\n",
58
+ " include Comparable\n",
59
+ "\n",
60
+ " attr_reader :time, :owner\n",
61
+ "\n",
62
+ " def initialize(time, owner)\n",
63
+ " @time = time\n",
64
+ " @owner = owner\n",
65
+ " end\n",
66
+ "\n",
67
+ " def <=>(other)\n",
68
+ " time <=> other.time\n",
69
+ " end\n",
70
+ "\n",
71
+ " def inspect\n",
72
+ " { time => owner }\n",
73
+ " end\n",
74
+ "end\n"
75
+ ]
76
+ },
77
+ {
78
+ "cell_type": "code",
79
+ "execution_count": 3,
80
+ "metadata": {},
81
+ "outputs": [
82
+ {
83
+ "data": {
84
+ "text/plain": [
85
+ ":inspect"
86
+ ]
87
+ },
88
+ "execution_count": 3,
89
+ "metadata": {},
90
+ "output_type": "execute_result"
91
+ }
92
+ ],
93
+ "source": [
94
+ "class Reservation\n",
95
+ " attr_reader :from, :to, :owner\n",
96
+ "\n",
97
+ " def initialize(from, to, owner)\n",
98
+ " @from = from\n",
99
+ " @to = to\n",
100
+ " @owner = owner\n",
101
+ " end\n",
102
+ "\n",
103
+ " def inspect\n",
104
+ " { [from, to] => owner }\n",
105
+ " end\n",
106
+ "end"
107
+ ]
108
+ },
109
+ {
110
+ "cell_type": "code",
111
+ "execution_count": 4,
112
+ "metadata": {},
113
+ "outputs": [
114
+ {
115
+ "data": {
116
+ "text/plain": [
117
+ ":is_consistent?"
118
+ ]
119
+ },
120
+ "execution_count": 4,
121
+ "metadata": {},
122
+ "output_type": "execute_result"
123
+ }
124
+ ],
125
+ "source": [
126
+ "class Schedule\n",
127
+ " using IntegerTime\n",
128
+ "\n",
129
+ " attr_accessor :events\n",
130
+ "\n",
131
+ " def initialize\n",
132
+ " @events = Tree::RedBlack.new(false)\n",
133
+ " end\n",
134
+ "\n",
135
+ " def reserve(from:, to: from + 1.hour, owner:)\n",
136
+ " return nil if owner == :FREE\n",
137
+ "\n",
138
+ " next_owner = :FREE\n",
139
+ " total_events = events.size\n",
140
+ "\n",
141
+ " rsv_from = BusyFreeEvent.new(from, owner)\n",
142
+ " rsv_to = BusyFreeEvent.new(to, next_owner)\n",
143
+ "\n",
144
+ " if total_events.zero?\n",
145
+ " events.insert(rsv_from, rsv_to)\n",
146
+ " else\n",
147
+ " succ_event = events.bsearch { |event| event.key > rsv_from }\n",
148
+ " if succ_event.nil?\n",
149
+ " pred_event = events.root.max\n",
150
+ "\n",
151
+ " # Assert: pred_event.key.owner == :FREE\n",
152
+ " if pred_event.key == rsv_from\n",
153
+ " events.delete(pred_event.key)\n",
154
+ " total_events -= 1\n",
155
+ " end\n",
156
+ " events.insert(rsv_from, rsv_to)\n",
157
+ " elsif succ_event.key >= rsv_to\n",
158
+ " pred_event = succ_event.pred\n",
159
+ " if pred_event.nil? || pred_event.key.owner == :FREE\n",
160
+ " events.delete(pred_event.key) if pred_event&.key == rsv_from\n",
161
+ " events.insert(rsv_from)\n",
162
+ " if succ_event.key != rsv_to\n",
163
+ "\n",
164
+ " # Assert: succ_event.key.owner != :FREE\n",
165
+ " events.insert(rsv_to)\n",
166
+ " else\n",
167
+ " next_owner = succ_event.key.owner\n",
168
+ " total_events -= 1\n",
169
+ " end\n",
170
+ " end\n",
171
+ " end\n",
172
+ " end\n",
173
+ "\n",
174
+ " # Assert: inserts/deletes successful\n",
175
+ " events.size == total_events + 2 ? Reservation.new(from, to, owner) : nil\n",
176
+ " end\n",
177
+ "\n",
178
+ " def unreserve(reservation)\n",
179
+ " event = events.bsearch { |ev| ev.key.time >= reservation.from }\n",
180
+ "\n",
181
+ " return false if (event.nil? || event.key.time != reservation.from || event.key.owner != reservation.owner)\n",
182
+ "\n",
183
+ " # Assert: event.key.owner != :FREE\n",
184
+ " pred_event = event.pred\n",
185
+ " succ_event = event.succ\n",
186
+ "\n",
187
+ " # Assert: ! succ_event.nil?\n",
188
+ "\n",
189
+ " events.delete(event.key)\n",
190
+ " events.delete(succ_event.key) if succ_event.key.owner == :FREE\n",
191
+ " events.insert(BusyFreeEvent.new(reservation.from, :FREE)) if pred_event && pred_event.key.owner != :FREE\n",
192
+ " true\n",
193
+ " end\n",
194
+ "\n",
195
+ " def is_consistent?\n",
196
+ " count = 0\n",
197
+ " prev = nil\n",
198
+ " event = events.root&.min\n",
199
+ " return false if event && event.key.owner == :FREE\n",
200
+ " while event\n",
201
+ " return false if prev&.key&.owner == :FREE && event.key.owner == :FREE\n",
202
+ " prev = event\n",
203
+ " event = event.succ\n",
204
+ " count += 1\n",
205
+ " end\n",
206
+ " return false if prev && prev.key.owner != :FREE\n",
207
+ " count == events.size && prev&.key&.owner == :FREE\n",
208
+ " end\n",
209
+ "end"
210
+ ]
211
+ },
212
+ {
213
+ "cell_type": "code",
214
+ "execution_count": 5,
215
+ "metadata": {},
216
+ "outputs": [
217
+ {
218
+ "name": "stdout",
219
+ "output_type": "stream",
220
+ "text": [
221
+ "Before:\n",
222
+ "First reservation:\n",
223
+ "reservation: {[2020-06-19 01:31:58.654815909 -0400, 2020-06-19 02:31:58.654815909 -0400]=>:BUSY3}\n",
224
+ "After first reservation:\n",
225
+ "key: {2020-06-19 01:31:58.654815909 -0400=>:BUSY3}\n",
226
+ "key: {2020-06-19 02:31:58.654815909 -0400=>:FREE}\n"
227
+ ]
228
+ }
229
+ ],
230
+ "source": [
231
+ "using IntegerTime\n",
232
+ "\n",
233
+ "sched = Schedule.new\n",
234
+ "reserve_time = Time.now\n",
235
+ "\n",
236
+ "puts \"Before:\"\n",
237
+ "sched.events.each do |event|\n",
238
+ " puts \"key: #{event.key}\"\n",
239
+ "end\n",
240
+ "\n",
241
+ "puts \"First reservation:\"\n",
242
+ "reservation1 = sched.reserve(from: reserve_time, owner: :BUSY3)\n",
243
+ "puts \"reservation: #{reservation1.inspect}\"\n",
244
+ "\n",
245
+ "puts \"After first reservation:\"\n",
246
+ "sched.events.each do |event|\n",
247
+ " puts \"key: #{event.key.inspect}\"\n",
248
+ "end"
249
+ ]
250
+ },
251
+ {
252
+ "cell_type": "code",
253
+ "execution_count": 6,
254
+ "metadata": {},
255
+ "outputs": [
256
+ {
257
+ "name": "stdout",
258
+ "output_type": "stream",
259
+ "text": [
260
+ "Second reservation:\n",
261
+ "reservation: {[2020-06-19 00:31:58.654815909 -0400, 2020-06-19 01:31:58.654815909 -0400]=>:BUSY2}\n",
262
+ "After second reservation:\n",
263
+ "key: {2020-06-19 00:31:58.654815909 -0400=>:BUSY2}\n",
264
+ "key: {2020-06-19 01:31:58.654815909 -0400=>:BUSY3}\n",
265
+ "key: {2020-06-19 02:31:58.654815909 -0400=>:FREE}\n"
266
+ ]
267
+ }
268
+ ],
269
+ "source": [
270
+ "puts \"Second reservation:\"\n",
271
+ "reservation2 = sched.reserve(from: reserve_time - 1.hour, owner: :BUSY2)\n",
272
+ "puts \"reservation: #{reservation2.inspect}\"\n",
273
+ "\n",
274
+ "puts \"After second reservation:\"\n",
275
+ "sched.events.each do |event|\n",
276
+ " puts \"key: #{event.key.inspect}\"\n",
277
+ "end"
278
+ ]
279
+ },
280
+ {
281
+ "cell_type": "code",
282
+ "execution_count": 7,
283
+ "metadata": {},
284
+ "outputs": [
285
+ {
286
+ "name": "stdout",
287
+ "output_type": "stream",
288
+ "text": [
289
+ "Third reservation:\n",
290
+ "reservation: {[2020-06-19 02:31:58.654815909 -0400, 2020-06-19 03:31:58.654815909 -0400]=>:BUSY4}\n",
291
+ "After third reservation:\n",
292
+ "key: {2020-06-19 00:31:58.654815909 -0400=>:BUSY2}\n",
293
+ "key: {2020-06-19 01:31:58.654815909 -0400=>:BUSY3}\n",
294
+ "key: {2020-06-19 02:31:58.654815909 -0400=>:BUSY4}\n",
295
+ "key: {2020-06-19 03:31:58.654815909 -0400=>:FREE}\n"
296
+ ]
297
+ }
298
+ ],
299
+ "source": [
300
+ "puts \"Third reservation:\"\n",
301
+ "reservation3 = sched.reserve(from: reserve_time + 1.hour, owner: :BUSY4)\n",
302
+ "puts \"reservation: #{reservation3.inspect}\"\n",
303
+ "\n",
304
+ "puts \"After third reservation:\"\n",
305
+ "sched.events.each do |event|\n",
306
+ " puts \"key: #{event.key.inspect}\"\n",
307
+ "end"
308
+ ]
309
+ },
310
+ {
311
+ "cell_type": "code",
312
+ "execution_count": 8,
313
+ "metadata": {},
314
+ "outputs": [
315
+ {
316
+ "name": "stdout",
317
+ "output_type": "stream",
318
+ "text": [
319
+ "Fourth reservation:\n",
320
+ "reservation: {[2020-06-18 21:31:58.654815909 -0400, 2020-06-18 22:31:58.654815909 -0400]=>:BUSY0}\n",
321
+ "After fourth reservation:\n",
322
+ "key: {2020-06-18 21:31:58.654815909 -0400=>:BUSY0}\n",
323
+ "key: {2020-06-18 22:31:58.654815909 -0400=>:FREE}\n",
324
+ "key: {2020-06-19 00:31:58.654815909 -0400=>:BUSY2}\n",
325
+ "key: {2020-06-19 01:31:58.654815909 -0400=>:BUSY3}\n",
326
+ "key: {2020-06-19 02:31:58.654815909 -0400=>:BUSY4}\n",
327
+ "key: {2020-06-19 03:31:58.654815909 -0400=>:FREE}\n"
328
+ ]
329
+ }
330
+ ],
331
+ "source": [
332
+ "puts \"Fourth reservation:\"\n",
333
+ "reservation4 = sched.reserve(from: reserve_time - 4.hours, owner: :BUSY0)\n",
334
+ "puts \"reservation: #{reservation4.inspect}\"\n",
335
+ "\n",
336
+ "puts \"After fourth reservation:\"\n",
337
+ "sched.events.each do |event|\n",
338
+ " puts \"key: #{event.key.inspect}\"\n",
339
+ "end"
340
+ ]
341
+ },
342
+ {
343
+ "cell_type": "code",
344
+ "execution_count": 9,
345
+ "metadata": {},
346
+ "outputs": [
347
+ {
348
+ "name": "stdout",
349
+ "output_type": "stream",
350
+ "text": [
351
+ "Fifth reservation:\n",
352
+ "reservation: {[2020-06-18 23:31:58.654815909 -0400, 2020-06-19 00:01:58.654815909 -0400]=>:BUSY1}\n",
353
+ "After fifth reservation:\n",
354
+ "key: {2020-06-18 21:31:58.654815909 -0400=>:BUSY0}\n",
355
+ "key: {2020-06-18 22:31:58.654815909 -0400=>:FREE}\n",
356
+ "key: {2020-06-18 23:31:58.654815909 -0400=>:BUSY1}\n",
357
+ "key: {2020-06-19 00:01:58.654815909 -0400=>:FREE}\n",
358
+ "key: {2020-06-19 00:31:58.654815909 -0400=>:BUSY2}\n",
359
+ "key: {2020-06-19 01:31:58.654815909 -0400=>:BUSY3}\n",
360
+ "key: {2020-06-19 02:31:58.654815909 -0400=>:BUSY4}\n",
361
+ "key: {2020-06-19 03:31:58.654815909 -0400=>:FREE}\n"
362
+ ]
363
+ }
364
+ ],
365
+ "source": [
366
+ "puts \"Fifth reservation:\"\n",
367
+ "reservation5 = sched.reserve(from: reserve_time - 2.hours, to: reserve_time - 90.minutes, owner: :BUSY1)\n",
368
+ "puts \"reservation: #{reservation5.inspect}\"\n",
369
+ "\n",
370
+ "puts \"After fifth reservation:\"\n",
371
+ "sched.events.each do |event|\n",
372
+ " puts \"key: #{event.key.inspect}\"\n",
373
+ "end"
374
+ ]
375
+ },
376
+ {
377
+ "cell_type": "code",
378
+ "execution_count": 10,
379
+ "metadata": {},
380
+ "outputs": [
381
+ {
382
+ "name": "stdout",
383
+ "output_type": "stream",
384
+ "text": [
385
+ "Schedule is consistent?: true\n"
386
+ ]
387
+ }
388
+ ],
389
+ "source": [
390
+ "puts \"Schedule is consistent?: #{sched.is_consistent?}\""
391
+ ]
392
+ },
393
+ {
394
+ "cell_type": "code",
395
+ "execution_count": 11,
396
+ "metadata": {},
397
+ "outputs": [
398
+ {
399
+ "name": "stdout",
400
+ "output_type": "stream",
401
+ "text": [
402
+ "Delete fifth reservation:\n",
403
+ "result: true\n",
404
+ "After deleting fifth reservation:\n",
405
+ "key: {2020-06-18 21:31:58.654815909 -0400=>:BUSY0}\n",
406
+ "key: {2020-06-18 22:31:58.654815909 -0400=>:FREE}\n",
407
+ "key: {2020-06-19 00:31:58.654815909 -0400=>:BUSY2}\n",
408
+ "key: {2020-06-19 01:31:58.654815909 -0400=>:BUSY3}\n",
409
+ "key: {2020-06-19 02:31:58.654815909 -0400=>:BUSY4}\n",
410
+ "key: {2020-06-19 03:31:58.654815909 -0400=>:FREE}\n"
411
+ ]
412
+ }
413
+ ],
414
+ "source": [
415
+ "puts \"Delete fifth reservation:\"\n",
416
+ "result = sched.unreserve(reservation5)\n",
417
+ "puts \"result: #{result}\"\n",
418
+ "\n",
419
+ "puts \"After deleting fifth reservation:\"\n",
420
+ "sched.events.each do |event|\n",
421
+ " puts \"key: #{event.key.inspect}\"\n",
422
+ "end"
423
+ ]
424
+ },
425
+ {
426
+ "cell_type": "code",
427
+ "execution_count": 12,
428
+ "metadata": {},
429
+ "outputs": [
430
+ {
431
+ "name": "stdout",
432
+ "output_type": "stream",
433
+ "text": [
434
+ "Delete fourth reservation:\n",
435
+ "result: true\n",
436
+ "After deleting fourth reservation:\n",
437
+ "key: {2020-06-19 00:31:58.654815909 -0400=>:BUSY2}\n",
438
+ "key: {2020-06-19 01:31:58.654815909 -0400=>:BUSY3}\n",
439
+ "key: {2020-06-19 02:31:58.654815909 -0400=>:BUSY4}\n",
440
+ "key: {2020-06-19 03:31:58.654815909 -0400=>:FREE}\n"
441
+ ]
442
+ }
443
+ ],
444
+ "source": [
445
+ "puts \"Delete fourth reservation:\"\n",
446
+ "result = sched.unreserve(reservation4)\n",
447
+ "puts \"result: #{result}\"\n",
448
+ "\n",
449
+ "puts \"After deleting fourth reservation:\"\n",
450
+ "sched.events.each do |event|\n",
451
+ " puts \"key: #{event.key.inspect}\"\n",
452
+ "end"
453
+ ]
454
+ },
455
+ {
456
+ "cell_type": "code",
457
+ "execution_count": 13,
458
+ "metadata": {},
459
+ "outputs": [
460
+ {
461
+ "name": "stdout",
462
+ "output_type": "stream",
463
+ "text": [
464
+ "Delete third reservation:\n",
465
+ "result: true\n",
466
+ "After deleting third reservation:\n",
467
+ "key: {2020-06-19 00:31:58.654815909 -0400=>:BUSY2}\n",
468
+ "key: {2020-06-19 01:31:58.654815909 -0400=>:BUSY3}\n",
469
+ "key: {2020-06-19 02:31:58.654815909 -0400=>:FREE}\n"
470
+ ]
471
+ }
472
+ ],
473
+ "source": [
474
+ "puts \"Delete third reservation:\"\n",
475
+ "result = sched.unreserve(reservation3)\n",
476
+ "puts \"result: #{result}\"\n",
477
+ "\n",
478
+ "puts \"After deleting third reservation:\"\n",
479
+ "sched.events.each do |event|\n",
480
+ " puts \"key: #{event.key.inspect}\"\n",
481
+ "end"
482
+ ]
483
+ },
484
+ {
485
+ "cell_type": "code",
486
+ "execution_count": 14,
487
+ "metadata": {},
488
+ "outputs": [
489
+ {
490
+ "name": "stdout",
491
+ "output_type": "stream",
492
+ "text": [
493
+ "Delete second reservation:\n",
494
+ "result: true\n",
495
+ "After deleting second reservation:\n",
496
+ "key: {2020-06-19 01:31:58.654815909 -0400=>:BUSY3}\n",
497
+ "key: {2020-06-19 02:31:58.654815909 -0400=>:FREE}\n"
498
+ ]
499
+ }
500
+ ],
501
+ "source": [
502
+ "puts \"Delete second reservation:\"\n",
503
+ "result = sched.unreserve(reservation2)\n",
504
+ "puts \"result: #{result}\"\n",
505
+ "\n",
506
+ "puts \"After deleting second reservation:\"\n",
507
+ "sched.events.each do |event|\n",
508
+ " puts \"key: #{event.key.inspect}\"\n",
509
+ "end"
510
+ ]
511
+ },
512
+ {
513
+ "cell_type": "code",
514
+ "execution_count": 15,
515
+ "metadata": {},
516
+ "outputs": [
517
+ {
518
+ "name": "stdout",
519
+ "output_type": "stream",
520
+ "text": [
521
+ "Delete first reservation:\n",
522
+ "result: true\n",
523
+ "After deleting first reservation:\n"
524
+ ]
525
+ }
526
+ ],
527
+ "source": [
528
+ "puts \"Delete first reservation:\"\n",
529
+ "result = sched.unreserve(reservation1)\n",
530
+ "puts \"result: #{result}\"\n",
531
+ "\n",
532
+ "puts \"After deleting first reservation:\"\n",
533
+ "sched.events.each do |event|\n",
534
+ " puts \"key: #{event.key.inspect}\"\n",
535
+ "end"
536
+ ]
537
+ },
538
+ {
539
+ "cell_type": "code",
540
+ "execution_count": null,
541
+ "metadata": {},
542
+ "outputs": [],
543
+ "source": []
544
+ }
545
+ ],
546
+ "metadata": {
547
+ "kernelspec": {
548
+ "display_name": "Ruby 2.7.1",
549
+ "language": "ruby",
550
+ "name": "ruby"
551
+ },
552
+ "language_info": {
553
+ "file_extension": ".rb",
554
+ "mimetype": "application/x-ruby",
555
+ "name": "ruby",
556
+ "version": "2.7.1"
557
+ }
558
+ },
559
+ "nbformat": 4,
560
+ "nbformat_minor": 4
561
+ }