diff --git a/docs/examples/basic/xopt_basic.ipynb b/docs/examples/basic/xopt_basic.ipynb index 406c237a..7d88030e 100644 --- a/docs/examples/basic/xopt_basic.ipynb +++ b/docs/examples/basic/xopt_basic.ipynb @@ -77,8 +77,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2023-11-13T20:01:17.186087100Z", - "start_time": "2023-11-13T20:01:14.827413500Z" + "end_time": "2024-03-13T01:32:42.498257800Z", + "start_time": "2024-03-13T01:32:40.155677200Z" } } }, @@ -114,8 +114,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2023-11-13T20:01:17.201108100Z", - "start_time": "2023-11-13T20:01:17.188088100Z" + "end_time": "2024-03-13T01:32:42.513257500Z", + "start_time": "2024-03-13T01:32:42.502259Z" } } }, @@ -135,7 +135,7 @@ "outputs": [ { "data": { - "text/plain": "['random',\n 'mggpo',\n 'neldermead',\n 'upper_confidence_bound',\n 'mobo',\n 'bayesian_exploration',\n 'time_dependent_upper_confidence_bound',\n 'expected_improvement',\n 'multi_fidelity',\n 'cnsga',\n 'extremum_seeking',\n 'rcds']" + "text/plain": "['random',\n 'mggpo',\n 'neldermead',\n 'latin_hypercube',\n 'upper_confidence_bound',\n 'mobo',\n 'bayesian_exploration',\n 'time_dependent_upper_confidence_bound',\n 'expected_improvement',\n 'multi_fidelity',\n 'cnsga',\n 'extremum_seeking',\n 'rcds']" }, "execution_count": 3, "metadata": {}, @@ -149,8 +149,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2023-11-13T20:01:18.176954300Z", - "start_time": "2023-11-13T20:01:17.202618200Z" + "end_time": "2024-03-13T01:32:43.608257600Z", + "start_time": "2024-03-13T01:32:42.515259Z" } } }, @@ -188,8 +188,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2023-11-13T20:01:18.193499600Z", - "start_time": "2023-11-13T20:01:18.178957Z" + "end_time": "2024-03-13T01:32:43.652266600Z", + "start_time": "2024-03-13T01:32:43.611259600Z" } } }, @@ -213,8 +213,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2023-11-13T20:01:18.237178Z", - "start_time": "2023-11-13T20:01:18.195500200Z" + "end_time": "2024-03-13T01:32:43.652266600Z", + "start_time": "2024-03-13T01:32:43.626258200Z" } } }, @@ -241,8 +241,8 @@ "shell.execute_reply": "2022-07-02T04:16:41.889046Z" }, "ExecuteTime": { - "end_time": "2023-11-13T20:01:18.241091400Z", - "start_time": "2023-11-13T20:01:18.209499500Z" + "end_time": "2024-03-13T01:32:43.660292300Z", + "start_time": "2024-03-13T01:32:43.641259200Z" } }, "outputs": [], @@ -278,8 +278,8 @@ "shell.execute_reply": "2022-07-02T04:16:41.898677Z" }, "ExecuteTime": { - "end_time": "2023-11-13T20:01:18.242092100Z", - "start_time": "2023-11-13T20:01:18.237178Z" + "end_time": "2024-03-13T01:32:43.669259800Z", + "start_time": "2024-03-13T01:32:43.655257700Z" } }, "outputs": [], @@ -310,14 +310,14 @@ "shell.execute_reply": "2022-07-02T04:16:41.905324Z" }, "ExecuteTime": { - "end_time": "2023-11-13T20:01:18.254091900Z", - "start_time": "2023-11-13T20:01:18.240090300Z" + "end_time": "2024-03-13T01:32:43.712296Z", + "start_time": "2024-03-13T01:32:43.671257800Z" } }, "outputs": [ { "data": { - "text/plain": "\n Xopt\n________________________________\nVersion: 2.1.0+3.g57450726.dirty\nData size: 0\nConfig as YAML:\ndump_file: null\nevaluator:\n function: __main__.evaluate_function\n function_kwargs: {}\n max_workers: 1\n vectorized: false\ngenerator:\n name: random\n supports_batch_generation: true\n supports_multi_objective: true\nmax_evaluations: null\nserialize_inline: false\nserialize_torch: false\nstrict: true\nvocs:\n constants: {}\n constraints:\n g:\n - LESS_THAN\n - 0.0\n objectives:\n f: MINIMIZE\n observables: []\n variables:\n x1:\n - 0.0\n - 3.141592653589793\n x2:\n - 0.0\n - 3.141592653589793\n" + "text/plain": "\n Xopt\n________________________________\nVersion: 2.2.1+12.g2581926c.dirty\nData size: 0\nConfig as YAML:\ndump_file: null\nevaluator:\n function: __main__.evaluate_function\n function_kwargs: {}\n max_workers: 1\n vectorized: false\ngenerator:\n name: random\n supports_batch_generation: true\n supports_multi_objective: true\nmax_evaluations: null\nserialize_inline: false\nserialize_torch: false\nstrict: true\nvocs:\n constants: {}\n constraints:\n g:\n - LESS_THAN\n - 0.0\n objectives:\n f: MINIMIZE\n observables: []\n variables:\n x1:\n - 0.0\n - 3.141592653589793\n x2:\n - 0.0\n - 3.141592653589793\n" }, "execution_count": 8, "metadata": {}, @@ -354,15 +354,15 @@ "shell.execute_reply": "2022-07-02T04:16:41.920869Z" }, "ExecuteTime": { - "end_time": "2023-11-13T20:01:18.297163800Z", - "start_time": "2023-11-13T20:01:18.256093200Z" + "end_time": "2024-03-13T01:32:43.722288700Z", + "start_time": "2024-03-13T01:32:43.687283700Z" } }, "outputs": [ { "data": { - "text/plain": " x1 x2 f g xopt_runtime xopt_error\n0 0.452652 2.437029 6.144007 -5.144007 0.000004 False\n1 0.745589 1.582435 3.060004 -2.060004 0.000001 False\n2 2.955110 2.917873 17.246655 -16.246655 0.000001 False\n3 1.342087 0.196558 1.839833 -0.839833 0.000010 False\n4 0.553477 1.294747 1.982707 -0.982707 0.000001 False", - "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
x1x2fgxopt_runtimexopt_error
00.4526522.4370296.144007-5.1440070.000004False
10.7455891.5824353.060004-2.0600040.000001False
22.9551102.91787317.246655-16.2466550.000001False
31.3420870.1965581.839833-0.8398330.000010False
40.5534771.2947471.982707-0.9827070.000001False
\n
" + "text/plain": " x1 x2 f g xopt_runtime xopt_error\n0 2.267176 1.349315 6.960741 -5.960741 0.000004 False\n1 0.045394 1.694579 2.873660 -1.873660 0.000002 False\n2 3.043997 0.532273 9.549231 -8.549231 0.000001 False\n3 0.804098 2.547301 7.135317 -6.135317 0.000001 False\n4 0.378523 0.613382 0.519518 0.480482 0.000001 False", + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
x1x2fgxopt_runtimexopt_error
02.2671761.3493156.960741-5.9607410.000004False
10.0453941.6945792.873660-1.8736600.000002False
23.0439970.5322739.549231-8.5492310.000001False
30.8040982.5473017.135317-6.1353170.000001False
40.3785230.6133820.5195180.4804820.000001False
\n
" }, "execution_count": 9, "metadata": {}, @@ -380,8 +380,8 @@ "outputs": [ { "data": { - "text/plain": " x1 x2 f g xopt_runtime xopt_error\n0 1.00 0.00 1.0000 0.0000 0.000003 False\n1 0.50 1.75 3.3125 -2.3125 0.000002 False\n2 2.25 0.60 5.4225 -4.4225 0.000001 False", - "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
x1x2fgxopt_runtimexopt_error
01.000.001.00000.00000.000003False
10.501.753.3125-2.31250.000002False
22.250.605.4225-4.42250.000001False
\n
" + "text/plain": " x1 x2 f g xopt_runtime xopt_error\n0 1.00 0.00 1.0000 0.0000 0.000003 False\n1 0.50 1.75 3.3125 -2.3125 0.000010 False\n2 2.25 0.60 5.4225 -4.4225 0.000001 False", + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
x1x2fgxopt_runtimexopt_error
01.000.001.00000.00000.000003False
10.501.753.3125-2.31250.000010False
22.250.605.4225-4.42250.000001False
\n
" }, "execution_count": 10, "metadata": {}, @@ -396,8 +396,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2023-11-13T20:01:18.307170200Z", - "start_time": "2023-11-13T20:01:18.272138800Z" + "end_time": "2024-03-13T01:32:43.722288700Z", + "start_time": "2024-03-13T01:32:43.712296Z" } } }, @@ -407,8 +407,8 @@ "outputs": [ { "data": { - "text/plain": " x1 x2 f g xopt_runtime xopt_error\n0 0.452652 2.437029 6.144007 -5.144007 0.000004 False\n1 0.745589 1.582435 3.060004 -2.060004 0.000001 False\n2 2.955110 2.917873 17.246655 -16.246655 0.000001 False\n3 1.342087 0.196558 1.839833 -0.839833 0.000010 False\n4 0.553477 1.294747 1.982707 -0.982707 0.000001 False\n5 1.000000 0.000000 1.000000 0.000000 0.000003 False\n6 0.500000 1.750000 3.312500 -2.312500 0.000002 False\n7 2.250000 0.600000 5.422500 -4.422500 0.000001 False", - "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
x1x2fgxopt_runtimexopt_error
00.4526522.4370296.144007-5.1440070.000004False
10.7455891.5824353.060004-2.0600040.000001False
22.9551102.91787317.246655-16.2466550.000001False
31.3420870.1965581.839833-0.8398330.000010False
40.5534771.2947471.982707-0.9827070.000001False
51.0000000.0000001.0000000.0000000.000003False
60.5000001.7500003.312500-2.3125000.000002False
72.2500000.6000005.422500-4.4225000.000001False
\n
" + "text/plain": " x1 x2 f g xopt_runtime xopt_error\n0 2.267176 1.349315 6.960741 -5.960741 0.000004 False\n1 0.045394 1.694579 2.873660 -1.873660 0.000002 False\n2 3.043997 0.532273 9.549231 -8.549231 0.000001 False\n3 0.804098 2.547301 7.135317 -6.135317 0.000001 False\n4 0.378523 0.613382 0.519518 0.480482 0.000001 False\n5 1.000000 0.000000 1.000000 0.000000 0.000003 False\n6 0.500000 1.750000 3.312500 -2.312500 0.000010 False\n7 2.250000 0.600000 5.422500 -4.422500 0.000001 False", + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
x1x2fgxopt_runtimexopt_error
02.2671761.3493156.960741-5.9607410.000004False
10.0453941.6945792.873660-1.8736600.000002False
23.0439970.5322739.549231-8.5492310.000001False
30.8040982.5473017.135317-6.1353170.000001False
40.3785230.6133820.5195180.4804820.000001False
51.0000000.0000001.0000000.0000000.000003False
60.5000001.7500003.312500-2.3125000.000010False
72.2500000.6000005.422500-4.4225000.000001False
\n
" }, "execution_count": 11, "metadata": {}, @@ -422,8 +422,8 @@ "metadata": { "collapsed": false, "ExecuteTime": { - "end_time": "2023-11-13T20:01:18.350141100Z", - "start_time": "2023-11-13T20:01:18.286142300Z" + "end_time": "2024-03-13T01:32:43.729258500Z", + "start_time": "2024-03-13T01:32:43.716261900Z" } } }, @@ -452,8 +452,8 @@ "shell.execute_reply": "2022-07-02T04:16:41.930124Z" }, "ExecuteTime": { - "end_time": "2023-11-13T20:01:18.364141700Z", - "start_time": "2023-11-13T20:01:18.300144800Z" + "end_time": "2024-03-13T01:32:43.772322900Z", + "start_time": "2024-03-13T01:32:43.730259200Z" } }, "outputs": [], @@ -474,15 +474,15 @@ "shell.execute_reply": "2022-07-02T04:16:41.937164Z" }, "ExecuteTime": { - "end_time": "2023-11-13T20:01:18.390141200Z", - "start_time": "2023-11-13T20:01:18.316140200Z" + "end_time": "2024-03-13T01:32:43.862089800Z", + "start_time": "2024-03-13T01:32:43.745260300Z" } }, "outputs": [ { "data": { - "text/plain": " x1 x2 f g xopt_runtime xopt_error\n0 0.452652 2.437029 6.144007 -5.144007 0.000004 False\n1 0.745589 1.582435 3.060004 -2.060004 0.000001 False\n2 2.955110 2.917873 17.246655 -16.246655 0.000001 False\n3 1.342087 0.196558 1.839833 -0.839833 0.000010 False\n4 0.553477 1.294747 1.982707 -0.982707 0.000001 False\n5 1.000000 0.000000 1.000000 0.000000 0.000003 False\n6 0.500000 1.750000 3.312500 -2.312500 0.000002 False\n7 2.250000 0.600000 5.422500 -4.422500 0.000001 False\n8 2.037479 0.747310 4.709795 -3.709795 0.000020 False", - "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
x1x2fgxopt_runtimexopt_error
00.4526522.4370296.144007-5.1440070.000004False
10.7455891.5824353.060004-2.0600040.000001False
22.9551102.91787317.246655-16.2466550.000001False
31.3420870.1965581.839833-0.8398330.000010False
40.5534771.2947471.982707-0.9827070.000001False
51.0000000.0000001.0000000.0000000.000003False
60.5000001.7500003.312500-2.3125000.000002False
72.2500000.6000005.422500-4.4225000.000001False
82.0374790.7473104.709795-3.7097950.000020False
\n
" + "text/plain": " x1 x2 f g xopt_runtime xopt_error\n0 2.267176 1.349315 6.960741 -5.960741 0.000004 False\n1 0.045394 1.694579 2.873660 -1.873660 0.000002 False\n2 3.043997 0.532273 9.549231 -8.549231 0.000001 False\n3 0.804098 2.547301 7.135317 -6.135317 0.000001 False\n4 0.378523 0.613382 0.519518 0.480482 0.000001 False\n5 1.000000 0.000000 1.000000 0.000000 0.000003 False\n6 0.500000 1.750000 3.312500 -2.312500 0.000010 False\n7 2.250000 0.600000 5.422500 -4.422500 0.000001 False\n8 2.211109 0.034588 4.890201 -3.890201 0.000016 False", + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
x1x2fgxopt_runtimexopt_error
02.2671761.3493156.960741-5.9607410.000004False
10.0453941.6945792.873660-1.8736600.000002False
23.0439970.5322739.549231-8.5492310.000001False
30.8040982.5473017.135317-6.1353170.000001False
40.3785230.6133820.5195180.4804820.000001False
51.0000000.0000001.0000000.0000000.000003False
60.5000001.7500003.312500-2.3125000.000010False
72.2500000.6000005.422500-4.4225000.000001False
82.2111090.0345884.890201-3.8902010.000016False
\n
" }, "execution_count": 13, "metadata": {}, @@ -506,15 +506,15 @@ "shell.execute_reply": "2022-07-02T04:16:41.966065Z" }, "ExecuteTime": { - "end_time": "2023-11-13T20:01:18.432141400Z", - "start_time": "2023-11-13T20:01:18.332138700Z" + "end_time": "2024-03-13T01:32:43.897089900Z", + "start_time": "2024-03-13T01:32:43.772322900Z" } }, "outputs": [ { "data": { - "text/plain": " x1 x2 f g xopt_runtime xopt_error\n0 0.452652 2.437029 6.144007 -5.144007 0.000004 False\n1 0.745589 1.582435 3.060004 -2.060004 0.000001 False\n2 2.955110 2.917873 17.246655 -16.246655 0.000001 False\n3 1.342087 0.196558 1.839833 -0.839833 0.000010 False\n4 0.553477 1.294747 1.982707 -0.982707 0.000001 False\n5 1.000000 0.000000 1.000000 0.000000 0.000003 False\n6 0.500000 1.750000 3.312500 -2.312500 0.000002 False\n7 2.250000 0.600000 5.422500 -4.422500 0.000001 False\n8 2.037479 0.747310 4.709795 -3.709795 0.000020 False\n9 2.139956 1.762576 7.686089 -6.686089 0.000015 False\n10 2.666437 0.107368 7.121414 -6.121414 0.000013 False\n11 2.471817 0.699313 6.598916 -5.598916 0.000012 False\n12 2.163665 2.891508 13.042261 -12.042261 0.000012 False\n13 2.583720 0.981197 7.638356 -6.638356 0.000012 False\n14 2.347667 2.643958 12.502051 -11.502051 0.000014 False\n15 2.192651 2.252920 9.883366 -8.883366 0.000013 False\n16 1.273815 0.856981 2.357021 -1.357021 0.000013 False\n17 1.802016 0.813710 3.909387 -2.909387 0.000013 False\n18 3.100603 1.819718 12.925111 -11.925111 0.000014 False", - "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
x1x2fgxopt_runtimexopt_error
00.4526522.4370296.144007-5.1440070.000004False
10.7455891.5824353.060004-2.0600040.000001False
22.9551102.91787317.246655-16.2466550.000001False
31.3420870.1965581.839833-0.8398330.000010False
40.5534771.2947471.982707-0.9827070.000001False
51.0000000.0000001.0000000.0000000.000003False
60.5000001.7500003.312500-2.3125000.000002False
72.2500000.6000005.422500-4.4225000.000001False
82.0374790.7473104.709795-3.7097950.000020False
92.1399561.7625767.686089-6.6860890.000015False
102.6664370.1073687.121414-6.1214140.000013False
112.4718170.6993136.598916-5.5989160.000012False
122.1636652.89150813.042261-12.0422610.000012False
132.5837200.9811977.638356-6.6383560.000012False
142.3476672.64395812.502051-11.5020510.000014False
152.1926512.2529209.883366-8.8833660.000013False
161.2738150.8569812.357021-1.3570210.000013False
171.8020160.8137103.909387-2.9093870.000013False
183.1006031.81971812.925111-11.9251110.000014False
\n
" + "text/plain": " x1 x2 f g xopt_runtime xopt_error\n0 2.267176 1.349315 6.960741 -5.960741 0.000004 False\n1 0.045394 1.694579 2.873660 -1.873660 0.000002 False\n2 3.043997 0.532273 9.549231 -8.549231 0.000001 False\n3 0.804098 2.547301 7.135317 -6.135317 0.000001 False\n4 0.378523 0.613382 0.519518 0.480482 0.000001 False\n5 1.000000 0.000000 1.000000 0.000000 0.000003 False\n6 0.500000 1.750000 3.312500 -2.312500 0.000010 False\n7 2.250000 0.600000 5.422500 -4.422500 0.000001 False\n8 2.211109 0.034588 4.890201 -3.890201 0.000016 False\n9 1.686635 1.270264 4.458308 -3.458308 0.000014 False\n10 0.222783 1.733860 3.055903 -2.055903 0.000012 False\n11 2.282472 2.210513 10.096046 -9.096046 0.000012 False\n12 2.086007 2.011638 8.398116 -7.398116 0.000013 False\n13 0.375108 2.066133 4.409610 -3.409610 0.000012 False\n14 1.325943 2.218394 6.679394 -5.679394 0.000014 False\n15 0.672004 1.730114 3.444884 -2.444884 0.000014 False\n16 0.581386 1.359689 2.186764 -1.186764 0.000013 False\n17 2.313540 0.248613 5.414274 -4.414274 0.000013 False\n18 0.018150 1.542190 2.378678 -1.378678 0.000014 False", + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
x1x2fgxopt_runtimexopt_error
02.2671761.3493156.960741-5.9607410.000004False
10.0453941.6945792.873660-1.8736600.000002False
23.0439970.5322739.549231-8.5492310.000001False
30.8040982.5473017.135317-6.1353170.000001False
40.3785230.6133820.5195180.4804820.000001False
51.0000000.0000001.0000000.0000000.000003False
60.5000001.7500003.312500-2.3125000.000010False
72.2500000.6000005.422500-4.4225000.000001False
82.2111090.0345884.890201-3.8902010.000016False
91.6866351.2702644.458308-3.4583080.000014False
100.2227831.7338603.055903-2.0559030.000012False
112.2824722.21051310.096046-9.0960460.000012False
122.0860072.0116388.398116-7.3981160.000013False
130.3751082.0661334.409610-3.4096100.000012False
141.3259432.2183946.679394-5.6793940.000014False
150.6720041.7301143.444884-2.4448840.000014False
160.5813861.3596892.186764-1.1867640.000013False
172.3135400.2486135.414274-4.4142740.000013False
180.0181501.5421902.378678-1.3786780.000014False
\n
" }, "execution_count": 14, "metadata": {}, @@ -528,6 +528,52 @@ "X.data" ] }, + { + "cell_type": "markdown", + "source": [ + "## Find and evaluate the best point from `X.data`" + ], + "metadata": { + "collapsed": false + } + }, + { + "cell_type": "code", + "execution_count": 15, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "best objective value [1.]\n", + "best point {'x1': 1.0, 'x2': 0.0}\n" + ] + }, + { + "data": { + "text/plain": " x1 x2 f g xopt_runtime xopt_error\n0 1.0 0.0 1.0 0.0 0.000003 False", + "text/html": "
\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
x1x2fgxopt_runtimexopt_error
01.00.01.00.00.000003False
\n
" + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "idx, val, params = X.vocs.select_best(X.data)\n", + "print(f\"best objective value {val}\")\n", + "print(f\"best point {params}\")\n", + "\n", + "X.evaluate_data(params)" + ], + "metadata": { + "collapsed": false, + "ExecuteTime": { + "end_time": "2024-03-13T01:32:43.937089900Z", + "start_time": "2024-03-13T01:32:43.832332500Z" + } + } + }, { "cell_type": "markdown", "metadata": { @@ -541,7 +587,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 16, "metadata": { "collapsed": false, "execution": { @@ -551,8 +597,8 @@ "shell.execute_reply": "2022-07-02T04:16:42.285372Z" }, "ExecuteTime": { - "end_time": "2023-11-13T20:01:19.144190400Z", - "start_time": "2023-11-13T20:01:18.377142200Z" + "end_time": "2024-03-13T01:32:44.620735900Z", + "start_time": "2024-03-13T01:32:43.851332300Z" } }, "outputs": [ @@ -560,14 +606,14 @@ "data": { "text/plain": "" }, - "execution_count": 15, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": "
", - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAh8AAAGhCAYAAADBddZJAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABkvklEQVR4nO3dd3hb5fUH8O/V9JKHvB2PxJlkkE0CCRlAA4EwS0mAQoCOUFZDWgppf7R0EaCUMtKySgktsxQS0tICATJY2XYgezm2MxzHU56a9/eHdK/tRN5XuvdK38/z6Cmxr6RXlcfxec97jiCKoggiIiKiMDGovQAiIiKKLgw+iIiIKKwYfBAREVFYMfggIiKisGLwQURERGHF4IOIiIjCisEHERERhRWDDyIiIgorBh9EREQUVgw+iIiIKKx6HXxs2LABl19+OXJyciAIAlatWtXh842NjbjrrruQm5uL2NhYnHXWWXj22WeVWi8RERHpXK+Dj6amJowdOxbLly8P+vl7770XH3zwAV599VXs2bMH9957L+6++2689957/V4sERER6Z/Qn8FygiBg5cqVuOqqq+SPjR49GvPnz8eDDz4of2zixIm49NJL8dvf/rbbx/T5fDh+/DhsNhsEQejr0oiIiCiMRFFEQ0MDcnJyYDB0ndswKf3k06dPx+rVq3HbbbchJycH69atw/79+/HUU08Fvd7pdMLpdMr/PnbsGEaOHKn0soiIiCgMysvLkZub2+U1igcfTz/9NH7wgx8gNzcXJpMJBoMBf/3rXzF9+vSg1y9btgy//vWvz/h4eXk5EhMTlV4eERERhYDD4UBeXh5sNlu314Yk+Ni4cSNWr16NgoICbNiwAXfccQeys7Nx0UUXnXH90qVLsWTJEvnf0uITExMZfBAREelMT0omFA0+Wlpa8POf/xwrV67EZZddBgA4++yzUVxcjMcffzxo8GG1WmG1WpVcBhEREWmYon0+3G433G73GYUmRqMRPp9PyaciIiIinep15qOxsREHDx6U/11SUoLi4mLY7Xbk5+dj5syZuO+++xAbG4uCggKsX78ef//73/HEE08ounAiIiLSp14ftV23bh1mz559xscXLlyIFStWoKKiAkuXLsVHH32EmpoaFBQU4Ic//CHuvffeHu0DORwOJCUlob6+njUfRESka16vF263W+1lKMZoNMJkMgX9fd6b39/96vMRCgw+iIgoEjQ2NuLo0aPQ2K/ZfouLi0N2djYsFkuHj/fm97fip12IiIiindfrxdGjRxEXF4f09PSIaJopiiJcLhdOnTqFkpISDB06tNtmYp1h8EFERKQwt9sNURSRnp6O2NhYtZejmNjYWJjNZpSWlsLlciEmJqZPj8OptkRERCESCRmP0/U129HhMRRYBxEREVGPMfggIiKisGLwQURERAD8RaU//OEPYbfbIQgCiouLQ/I8LDglIiIiAMAHH3yAFStWYN26dSgsLERaWlpInofBhw59ebAK5bXNmD85X+2lEBFRBDl06BCys7Nx3nnnhfR5GHzo0OK3ilHZ4MTUwlQUpMarvRwiIuqGKIpocXtVee5Ys7FHp25uueUWvPLKKwD8p3QKCgpw5MiRkKyJwYfOuDw+VDY4AQAV9a0MPoiIdKDF7cXIX36oynPv/s3FiLN0/+v+qaeewuDBg/HCCy9gy5YtMBqNIVsTgw+dqW12Bf1vIiKi/khKSoLNZoPRaERWVlZIn4vBh85UNTrl/65pipxhRUREkSzWbMTu31ys2nNrDYMPnalpYuaDiEhvBEHo0dZHtGCfD52pbmwLONoHIkRERHrB4ENn2m+71DL4ICIiHWLwoTPV7QKOagYfRESkQww+dKa6feaDNR9ERKSgxYsXh6y3R3sMPnSGNR9ERKR3DD50pqr9aRcGH0REpEMMPnSmpqlt26XJ5UWrSu16iYiI+orBh86033YBgLpmNhojIiJ9YfChI80uD5pd/kxHnMXfsY51H0RE2iWKotpLUJwSr4nBh45IWQ+ryYABybEAeOKFiEiLpKFsLlfk/Yxubm4GAJjN5j4/Bnu96ojU1yMtwQp7vKXDx4iISDtMJhPi4uJw6tQpmM1mGAz6/1tfFEU0NzejsrISycnJ/Zp6y+BDR6QeH6kJFjn44IkXIiLtEQQB2dnZKCkpQWlpqdrLUVRycnK/p94y+NARadslNb4t+GDNBxGRNlksFgwdOjSitl7MZnO/Mh4SBh86Im2xpLbbdmHNBxGRdhkMBsTExKi9DM3R/yZUFGm/7ZISx8wHERHpE4MPHZEzH+22XZj5ICIivWHwoSNVUuYj3ooUueaDTcaIiEhfeh18bNiwAZdffjlycnIgCAJWrVp1xjV79uzBFVdcgaSkJNhsNkydOhVlZWVKrDeqyQWnCRbY43jahYiI9KnXwUdTUxPGjh2L5cuXB/38oUOHMH36dIwYMQLr1q3Djh078OCDD7LgRgHVgbkuaQlWpMT7m7vUNLkisoMeERFFrl6fdpk7dy7mzp3b6ed/8Ytf4NJLL8Vjjz0mf6ywsLBvqyOZKIpycWlqggVJsf7gw+X1ocnlRYKVB5eIiEgfFK358Pl8eP/99zFs2DBcfPHFyMjIwJQpU4JuzUicTiccDkeHG53J0eqB2+vPcNjjLYizmBBj9r993HohIiI9UTT4qKysRGNjIx555BFccskl+Oijj3D11Vfjmmuuwfr164PeZ9myZUhKSpJveXl5Si4pYkjHbG0xJlhN/gYvdh63JSIiHVI88wEAV155Je69916MGzcODzzwAObNm4fnnnsu6H2WLl2K+vp6+VZeXq7kkiJG+2O2EvnEC4/bEhGRjihaKJCWlgaTyYSRI0d2+PhZZ52Fzz//POh9rFYrrFarksuISG0Nxtr+v+J8FyIi0iNFMx8WiwWTJ0/Gvn37Onx8//79KCgoUPKpok5VY5DMB7ddiIhIh3qd+WhsbMTBgwflf5eUlKC4uBh2ux35+fm47777MH/+fMyYMQOzZ8/GBx98gH//+99Yt26dkuuOOm09PoJkPrjtQkREOtLr4GPr1q2YPXu2/O8lS5YAABYuXIgVK1bg6quvxnPPPYdly5bhnnvuwfDhw/HOO+9g+vTpyq06CrX1+GDmg4iI9K3XwcesWbO6bWp122234bbbbuvzouhMwQpO7e0ajREREekFZ7voRPCCU/9/13K+CxER6QiDD52oDlZwKmU+WPNBREQ6wuBDJ+RtFx61JSIinWPwoQMer08+0ZLaruBUnmzb7ILPx+FyRESkDww+dKC22Q1RBASh7YQLACQH/tsnAo5W1n0QEZE+MPjQAemYrT3OAqNBkD9uMRlgC0yz5YkXIiLSCwYfOlDTeOaWi0Se78Lgg4iIdILBhw5UyT0+zpyBw+CDiIj0hsGHDkg9PuxBMh+pbLFOREQ6w+BDB6QeH2nxQbZd5BbrLDglIiJ9YPChA1LBafseHxKpxTozH0REpBcMPnSgigWnREQUQRh86IA81yVIwancaIzBBxER6QSDDx2QshppXWU+uO1CREQ6weBDB+ShckFrPrjtQkRE+sLgQ+Na3V40OD0A2gKN9tpOuzD4ICIifWDwoXFSUGE2CkiMMZ3xeanPR0OrB26vL6xrIyIi6gsGHxonb7nEWyEIwhmfT4w1Qxr3wuO2RESkBww+NK5K7vFx5pYLABgNgjzdtpaNxoiISAcYfGhcV8WmkpQ4f6Mx1n0QEZEeMPjQuJpA5iNYa3WJnfNdiIhIRxh8aFx1F91NJTzxQkREesLgQ+Ok1ur2IN1NJez1QUREesLgQ+Oquyk4BTjfhYiI9IXBh8ZJ2y7BWqtLUlnzQUREOsLgQ+O6GionYc0HERHpCYMPDRNFEVVN3Rec8rQLERHpCYMPDWtyeeHy+Fumd5n5iGeTMSIi0g8GHxombbnEW4yItRg7vc7ObRciItIRBh8aJh+z7WLLBQBS4v0dTlvcXrS4vCFfFxERUX8w+NCwnhSbAkCC1QSz0T9droZ1H0REpHG9Dj42bNiAyy+/HDk5ORAEAatWrer02kWLFkEQBDz55JP9WGL0qm7q/pgtAAiCIJ94qeXWCxERaVyvg4+mpiaMHTsWy5cv7/K6VatWYdOmTcjJyenz4qJdTzMfALucEhGRfph6e4e5c+di7ty5XV5z7Ngx3HXXXfjwww9x2WWX9Xlx0a6qB3NdJDxuS0REetHr4KM7Pp8PN910E+677z6MGjWq2+udTiecTqf8b4fDofSSdKtG7vHRfeaDLdaJiEgvFC84ffTRR2EymXDPPff06Pply5YhKSlJvuXl5Sm9JN2S5rp0V/MBtB23Zc0HERFpnaLBx7Zt2/DUU09hxYoVEAShR/dZunQp6uvr5Vt5ebmSS9K1anmibffBh5z54LYLERFpnKLBx2effYbKykrk5+fDZDLBZDKhtLQUP/nJTzBw4MCg97FarUhMTOxwIz+55qMnBadx/l4f7HJKRERap2jNx0033YSLLrqow8cuvvhi3HTTTbj11luVfKqI5/OJqOnFtouU+ZC2aoiIiLSq18FHY2MjDh48KP+7pKQExcXFsNvtyM/PR2pqaofrzWYzsrKyMHz48P6vNorUtbjhE/3/ndKDbRc757sQEZFO9Dr42Lp1K2bPni3/e8mSJQCAhQsXYsWKFYotLNpJPT6S48wwG7vfHbOz5oOIiHSi18HHrFmzIIpij68/cuRIb5+C0NbdNLUHWQ+gfebDBVEUe1zwS0REFG6c7aJR1Y097/EBQG6v7vGJaHB6QrYuIiKi/mLwoVFS4WhPMx8xZiPiLEYA7PVBRETaxuBDo3rTWl0iZT/Y5ZSIiLSMwYdG9WaonITzXYiISA8YfGiUVPPRkx4fErnXRyODDyIi0i4GHxol13z0sOAUaNfllJkPIiLSMAYfGtXbo7YAYA9s0dSw0RgREWkYgw+N6u1RWwCwx0vzXZj5ICIi7WLwoUEujw/1Lf7sRW8yH5xsS0REesDgQ4Okmg2jQUBSrLnH97PHtXU5JSIi0ioGHxpUFThma4+3wGDoeZt0Zj6IiEgPGHxokFzv0YstF6DjfBci0rdWtxdPf3IAR6qa1F4KkeIYfGiQdMw2rRfFpkBbh9O6Fje8vp4P/yMi7Xl9UxmeWLMfv3t/t9pLIVIcgw8Nqu5Da3UASA70+RBFoI5bL0S69s2xegDA1tJa+PjHBClEFEV8ebAK5TXNqn5dMfjQoLYeH73LfJiNBrlAlY3GiPRt93EHAKCu2Y3D3HohhdQ0uXDDXzfh/MfWwuX1qbYOBh8aJM916WXmA2ir+2CjMSL9anV7cfBUo/zv7WW1Kq6GIklZTTMAICsxBjFmo2rrYPChQX0tOAWAlMDWCyfbEunX/pMNHeq2ihh8kEKk4CM/NU7VdTD40KCqpt53N5Vwsi2R/klbLhaT/0f0tlIGH6SMsupA8GFn8EGn6c+2i3TihZkPIv3afcIffMw7OxsAcKCyEY5WbqVS/0mZjwIGH3Q6adslrZcFpwB7fRBFAinzMWNoOgpS4yCKQHFZnbqLoohQym0XCqbZ5UGL2wugj5mPeGY+iPTM5xOxJ5D5GJmTiAn5KQC49ULKKA8EH3nMfFB7UtYjxmxAnKX3lcjSfBe2WCfSp7KaZjS5vLCaDChMi8eEAn/wwRMv1F+tbi8qHK0AuO1Cp2nf40MQej7XRcJtFyJ9k+o9RmTZYDIaMCE/GYB/20WPzcZEUcRHuypQUd+q9lKi3tHaFogiEG8xyr8r1MLgQ2P6U2wKcLgckd7tOu7vbDoyJxEAMDzThjiLEQ1ODw5UNnZ1V01au68SP/zHNtzy8maIov6Cp0hSLtd7xPfpj1slMfjQmP70+ADaZz5YGU+kR1Kx6chsf/BhMhowLi8ZgD63XtbvOwUA2FvRgHWB/yZ1lFb7O+Xm22NVXgmDD82papIyH70/6QK01Xw0Oj1weryKrYuIwmN3u2JTiZ6LTjcerpH/+7n1h1RcCZXVtABQv8cHwOBDc/o6VE5iizHBaPCn0+qamf0g0pOqRidOOpwQBGB4VrvgoyAZgP4yHzVNLuw72QAAMBkEbCqpYbdWFZXVBDIfqfEqr4TBh+ZIR2T70uMDAAwGQW6xLgUyRKQP0hHbganxSLCa5I+Pz/NnPg6fatJVMfnmkmoA/rqVK8cNAAA8v/6wmkuKanJrdWY+6HRV/Sw4Bdq6nLLFOpG+nF7vIUmJt6Aw3f/XalG5fjIH0pbL1EI7Fs0sBAB8uLsCh0/pr3BW70RRZPBBnZOyFf05BmVnozEiXQpW7yGZGKj72F5aF84l9cvGw/7Mx5TCVAzLtOHCERkQReDFz5j9CLdTDU60un0wCMCAZB0WnG7YsAGXX345cnJyIAgCVq1aJX/O7Xbj/vvvx5gxYxAfH4+cnBzcfPPNOH78uJJrjmjVgYLTtD4WnAIcLkekV3LmI0jwITUb00vRaW2TC3sr/PUe5wyyAwBunzUYAPDOtmOobGDfj3CSsh7ZSbHywEI19XoFTU1NGDt2LJYvX37G55qbm7F9+3Y8+OCD2L59O959913s378fV1xxhSKLjXSiKPa74BRgi3UiPWpxeXEosB0xKjtI8BHIfOw4WgeP1xfWtfXFphL/lsuwzAT5j6lJBSmYkJ8Ml9eHl784ouLqok9pYJptgcozXSSm7i/paO7cuZg7d27QzyUlJWHNmjUdPvbMM8/gnHPOQVlZGfLz8/u2yijhaPHAE+hg2K9tlzh2OSXSm30nG+ATgbQEC9JtZ2Y+h2YkwGY1ocHpwb6TDRiVk6TCKntO2nKZWpgqf0wQBCyaORiL/rENr24sxR2zBsMWY1ZriVFFS/UeQBhqPurr6yEIApKTk4N+3ul0wuFwdLhFK6nHhy3GBKup93NdJG1dTnnUlkgvpC2Xs7ITg3afNBgEjAu0Wt+ug60Xud5jUGqHj3/rrEwUpsejodWDNzeXq7G0qKSVgXKSkAYfra2teOCBB3DDDTcgMfHMNCIALFu2DElJSfItLy8vlEvSNPmYbT/qPQDAHu//S4KZDyL92H2iY1v1YKStl+1ldeFYUp/VNbf195hSaO/wOYNBwKIZ/pMvL31eApdH+1tIkaC0RlvbLiELPtxuNxYsWACfz4e//OUvnV63dOlS1NfXy7fy8uiNhOW5Lv0c+CMdta1m8EGkG50ds21vok6KTjeV1EAU/VtFwf6Yumr8AGTYrKhwtOK94mMqrDD6RMW2i9vtxnXXXYeSkhKsWbOm06wHAFitViQmJna4RasqBY7Ztr8/Mx9E+uD1ifLJkK5qOcblJ0MQ/L9IpJ5AWhSs3qM9q8mI26YPAgA8v+GwLqf16kmLy4tTDf6vlwK7+t1NgRAEH1LgceDAAXz88cdITQ3+xUdnajvp0t9tl7bJtpwiSaR9pdVNaHZ5EWM2YFBa578cEmPMGJqRAEDbdR9Sc7HTt1zau2FKPmxWEw5WNuLTvZXhWlpUkrIeiTEmJMVpo8C318FHY2MjiouLUVxcDAAoKSlBcXExysrK4PF4cO2112Lr1q147bXX4PV6UVFRgYqKCrhc/Cu8O209PpTJfLg8PjS7OFyOSOt2BbZcRmQlyrOZOiNvvWh0Rkpdswt7K/yv5/Ri0/YSY8y4Yar/BOTzGzhwLpTkLReN1HsAfQg+tm7divHjx2P8+PEAgCVLlmD8+PH45S9/iaNHj2L16tU4evQoxo0bh+zsbPn25ZdfKr74SCNnPvq57RJrNsIaaCLDXh9E2tdVZ9PTjQ8UnRZptNPp5kC9x5CMhKBHhtu7bdogWIwGbDlSi22lNV1eS31XWu0fKKeVLRegD30+Zs2a1WUqn2n+vmub69K/bRdBEGCPt+BEfStqm12aOVpFRMH1pNhUImU+dhytg9vrg9mofrfK9trPc+lOZmIMrh4/AG9tLcdz6w/jxZu7vw/1ntaO2QKc7aIpUpaiP91NJdKJF2Y+iLSvN5mPwrR4JMeZ4fT45KBFSzrr79GZH8wohCAAa3afxMHKhlAuLWqVaeyYLcDgQ1OqFerzAXC+C5FeVDa04lSDE4IAjMiydXu9IAgYn5cMANiusbqP+mY39kj1Hj3IfAD+7ZlvnZUJAHhhAwfOhUKpxo7ZAgw+NMPj9cmBQn+P2gJtXU6lOhIi0qY9J/x/7Q9Ki0ecpWc74Vrt97H5iL/eY3B6PDJsMT2+36KZ/oFzK4uO4aSDA+eU5POJOFrTAoDBBwVR2+yGKAKC0LZl0h/2wHEqZj6ItE3aOunNrBap02mRxjqddtffozMTC1IweWAK3F4Rf/u8JBRLi1oVjla4vD6YDAKyk3oeEIYagw+NkI7Z2uMs3R616wl7vH/rpqaJ812ItEyu9+hBsalkbF4yDAJwrK4FFfXayRT0NfgAgNsD2Y/XNpXB0cqfW0qR6j0GpMTCpKHiZO2sJMq1NRjrf9YD4HwXIr3Ydbz7mS6ni7eaMCLLf71W6j7qm91yINXTeo/2Zg/PwNCMBDQ6PXhtY5nSy4taWmurLmHwoRHyMdv4/hebAu0n2zL4INKqZpcHJVX+Hgy9yXwAwISCZADa6XS6JVDvUdjLeg+JwSDItR9/+6IETg8bJCqhrJrBB3VByWO2gH/7BmDmg0jL9lY0QBSBdJu124Zcp5OKTrWS+ejPlovkirE5yE6KwakGJ1YVceCcEpj5oC5J2y5KHLMF2jIfLDgl0q7eNBc7nVR0uvOYQxNZgo0l/Q8+LCYDvseBc4oq1WCPD4DBh2bIBacKHLNt/zi1zW5+AxNpVG+ai50u3x6H1HgLXF4fdh5Tt9lYfYtbnk8zdVD/upQuOCcfthgTDp9qwpo9J5VYXlTTYndTgMGHZlQpXHCaHDhq6/WJrBwn0qj+ZD4EQcAEaetF5bqPrVK9R1o8MhL7d5wzwWrCTVMLAADPrT/EkR390NDqlrf0ue1CQVUrXHBqNRmRYPU3LGKLdSLt8fpEefrrqD5kPoC2rRe16z7klur92HJp75ZpA2ExGVBUVoctR7RR06JHUr2HPd4CW4xZ5dV0xOBDI9paqyuT+QDYYp1Iy0qqmtDq9iHOYkRBat+mjU7ITwbgDz7UzBD0ZphcT2TYYvDtCbkAgOfXH1LkMaORVrdcAAYfmtHW50OZzAfQ7rgtG40RaY7U32NElq3PjQXPzk2GySDgpMOJY3UtSi6vxxytbvm19KfY9HQ/DAyc+2RvJfZVcOBcX8gD5Rh8UDCtbi8anR4AytV8AO1arHPbhUhz+lNsKom1GOX7b1ep1frWIzXwif7ZNJn9rPdob1BaPC4ZlQWAA+f6qlSjPT4ABh+aINVkWIwG2Kw9GyzVE2w0RqRdbcWmPZ/pEoxc96FS0anSWy7tSU3H3is+huMqZXb0TKs9PgAGH5ogbbnY4y0QhP7PdZGw0RiRNomi2BZ89CPzAaDtxItKRadKNBfrzLi8ZEwttMPj48C5vpCDD431+AAYfGhCVaDHh5JbLkD7mg8GH0RacqrBieomFwwCMDzT1q/HkopOdx93oMUV3mZjjlY3dh7z13tMGaR88AG0ZT/e2FyG+mbWr/WUx+vDsVp/toiZDwoqFMWmQNtpFwYfRNqyK1DvUZiegFiLsV+PNSA5FpmJVnh8Ir4+WqfA6npu25Fa+ERgYGocskI0rn3WsHSMyLKhyeXFq5tKQ/IckehEfSs8PhEWowFZCtbiKIXBhwZIPT7SFOpuKkmJY80HkRZJWy597e/RniAI7fp91PX78XojlFsuEkEQsGhmIQDg5S9K0OpWv5W8HkhbLrn2WBj6eJoqlBh8aEC1wkPlJNLjseaDSFv609k0GLWajYUj+ACAeWfnYEByLKoaXXhn+9GQPlek0HKxKcDgQxNCte0iZz4YfBBpihLHbNtr32Y9XM3GGlrd+Eaq9wjBSZf2zMa2gXMvbjgML+dVdUs6ZqvFHh8Agw9NkIbKpSq87SLVfDhaPXB7fYo+NhH1TaPTgyPVTQCAsxTKfIwekAiL0YDqJpf8F2+obQ3UexSkxiE7KTbkzzd/ch6SYs04Ut2Mj3ZVhPz59E7L3U0BBh+aUK3wUDlJUqwZ0sndOlaJE2nCvgoHRBHITLQiTaFsp9VkxOgB/kBmW5j6fWwsCWy5hOiUy+nirSYsPJcD53pK7m7ax9b9ocbgQwOUHionMRoEJMcGupyy6JRIE5Su95CEu+5Dbi42OLRbLu3dfN5AWE0G7DhaLz8/BVcayK6x5oOCEkURVSEqOAXY64NIa5Su95C01X3UKfq4wTSEob9HMGkJVlw3KQ+AP/tBwdU3u+Fo9Y/syLOHfkusLxh8qKzR6YHL46/HUDrzAbR1OWXwQaQNSrVVP93EQPCxt8Ihz4oKla2ltfD6ROTb45CTHN5fbt8/fxAMArB+/ynsCQRy1FFpjT/rkW6zIs6i3MgOJTH4UJlU7xFvMfa72VAwzHwQaYfH68PewIRWJXp8tJeZGIMBybHwicDX5XWKPvbpNoVwnkt3ClLjMXdMNgAOnOuM1o/ZAgw+VCefdFH4mK1EOkHDXh9E6jtc1QSnx4d4izEkvxjGB1qth7ruI1z9PTpz+wx/y/XVO47jaG14TvfoiVxsyuCDOhOqky4STrYl0g5py+Ws7MSQdJ2Utl5CeeKl0elp199DneBjTG4Spg1Jhdcn4iUOnDtDWbW2j9kCfQg+NmzYgMsvvxw5OTkQBAGrVq3q8HlRFPHQQw8hJycHsbGxmDVrFnbt2qXUeiOO3N1U4R4fEk62JdKOUBWbSqQTL0XldfCFqBHX1iM18PpE5NljMSDM9R7t3R4YOPfm5nL+fDtNRG67NDU1YezYsVi+fHnQzz/22GN44oknsHz5cmzZsgVZWVn41re+hYaGhn4vNhKF6pitpC3zwT4fRGoL1TFbycicRMSYDahrduNwVVNInmNTSaDeI4ynXIKZPiQNo3IS0eL24h8bOXCuvbYeHxEUfMydOxe/+93vcM0115zxOVEU8eSTT+IXv/gFrrnmGowePRqvvPIKmpub8frrryuy4EhTFeJtF3t8oM8H/zIgUpUoiiHPfJiNBpw9IBlA6Oo+1K73kPgHzvmzHyu+PMKBcwEujw/H61oARFjmoyslJSWoqKjAnDlz5I9ZrVbMnDkTX375ZdD7OJ1OOByODrdo0jZULkSZDx61JdKEkw4nappcMBoEDMu0hex5xhckAwCKQhB8NDk9+PpoeOa59MSlo7OQmxKLmiYX3t5arvZyNOF4XQt8IhBjNiDdFprfK0pQNPioqPD328/MzOzw8czMTPlzp1u2bBmSkpLkW15enpJL0jxp2yUtZJkPBh9EWrD7hP+X9uD0eMSYlT9WL5mYH7qiU6m/R25KLHJT1P+r2mQ04AfnFwIAXvysBB7OsEJpu3oPQVC+qFkpITntcvoLFkWx0/8Tli5divr6evlWXh5d0at82iXENR8tbi9aXExLEqlFqvcYlaNsc7HTSZ1OD1Q2wtGqbK3XJo1subR33aQ8pMSZUVbTjP/t5MA5PRSbAgoHH1lZWQBwRpajsrLyjGyIxGq1IjExscMtmlSHsLU6ANisJpiN/sCP812I1LMrxMWmkrQEK/LtcRBFoLisTtHH1kq9R3uxFiMWnjcQAPCPr1h4Wi4HH9ocKCdRNPgYNGgQsrKysGbNGvljLpcL69evx3nnnafkU0UEn09EjdRkLERHbQVBYN0HkQaEuti0vVD0++hQ7zFI/XqP9i4LdDzdfcIR9dNu2wbKaXOmi6TXwUdjYyOKi4tRXFwMwF9kWlxcjLKyMgiCgMWLF+Phhx/GypUrsXPnTtxyyy2Ii4vDDTfcoPTada+uxQ3pKH5KiIIPoK3ug5kPInU0tLpRGmj8dFaIMx8AMCEEnU63ldbC4xMxIDlWc82rClLjYTQIaHR6UOFoVXs5qiqrCZx00fAxWwDo9cSZrVu3Yvbs2fK/lyxZAgBYuHAhVqxYgZ/97GdoaWnBHXfcgdraWkyZMgUfffQRbLbQVXfrlVRsmhxnhtkYumazzHwQqUua55KdFCP/MRBKUt1HcZm/2ZgS3VQ3lWhvy0ViMRlQkBqHw6eacOBkI7KTtP1Xf6iIoogyOfOh7W2XXgcfs2bN6jKtJQgCHnroITz00EP9WVdUkHt8hPiHkZ3zXYhUFermYqcbnmlDnMWIBqcHByobMTyr/3/8bVRxmFxPDM1IwOFTTThY2YgZw9LVXo4qappcaHJ5IQhAboq2AzDOdlFRqIfKSVICjcbY5ZRIHXLwEYZ6D8B/BHVsbjIAZbZeml0e7AhMytVi5gMAhmQkAAAOnmpUeSXqkU66ZCXGhPQ4txIYfKhIOmYbqh4fEru87eIM6fMQUXBysWmYMh+AskWn7es9tPoXtRx8VDL40FpNTjAMPlTUNlQu1JkPaduFmQ+icHN7fdgXqPkIdY+P9iYEOp0qkfmQjthOKbRrtnHVkHT/1tKhaA4+qvXR4wNg8KEqqeA01AVo7HJKpJ5Dpxrh8vpgs5rCmjUYn+fPfBw+1dTveq9Ncr2HNrdcAGBwhr/AsrrJFbU/66TupgUMPqgrYdt24VFbItVI9R5nZScqcuqkp1LiLShM9/9CLirve/aj2eXBjqN1ANSfZNuVOIsJA5L9wV20br3I3U01fswWYPChqrAVnPKoLZFqwl1s2t6EwJyX7aV1fX6M7aV1cHtF5CTFIE/jjauive6jXCet1QEGH6qqDvdR22ZX1Hf/Iwo3NYpNJRMUGDLXvqW6Vus9JNEcfLS6vXKDNQYf1KWqxvBmPtxeEY1OT0ifi4jaiKIY1rbqp5NOvOw4Wtfnia9abi52umg+bnu0tgWiCMRbjGFpZNdfDD5U4vL44Gj1BwKhrvmItRgRGzjzzRMvROFzor4Vdc1umAyC/IsxnIZmJMBmNaHZ5cW+kw29vn+Ly4viQH+PKRptLtaeHHz04bXqnbzlkhqv+QwVwOBDNVLxp8kgIDHGHPLnkyLhavb6IAobqd5jSEaCKk2fDAYB46Q5L33YetleVgu3V0R2UowuUvlD0v3Bx/H6VjRFWZZXLwPlJAw+VCJtuaTEW8JSAS91OeWJF6Lw2aVisalELjotq+v1ffVU7wH4f55KmeRDUbb1Ig2UK0jV9kwXCYMPlYSr2FRiDzQyq+G2C1HY7D7hH0GvRrGpZEI/Op1u0vg8l2AGp0dn0WlZjT/zoYfupgCDD9VI2x9pIS42ldjjApkPHrclChs1i00l4/KSIQj+HhBSxrUnOtR7aLi/x+mi9cRLmY6O2QIMPlQjZz5CXGwqkVqs13DbhSgs6lvcKA+kwtXMfCTFmjE08Au5N3UfRWW1cHl9yEqMQYEOmlZJpODjQBQFH6IoysGHHrqbAgw+VFPVGJ65LhJpuBwzH0ThsTeQ9RiQHIvkOHWPPsr9Pnox56Wt3kO781yCGZoRfTNeTjU40er2wSAAOcksOKUuVMs9PsKc+WDwQRQW0pbLWSpmPSRS3UdRLzqdbizR/jyXYKTMR2lNM1yevvU20Rsp65GdFAuLSR+/1vWxyggkBQGh7vEh4XwXovBSs6366aTMx46jdXD3oNlYq9uL4sDpmCk6Cz4yE61IsJrg9Yk4Ejh+GulKA9Ns9bQ9xuBDJVWB4MMepm0XqctpNTMfRGGhZlv10xWmxSM5zgynxycHRV3ZHqj3yEy0YqCOfqEBgCAIGBxlRad6KzYFGHyoJtzbLnLmg8EHUci5PD7sD3TZHKWBzIfBIGB8XjIAf2DRnY2H27Zc9FTvIZGajR04GR3BR7mOptlKGHyoRDrtkhaugtNA8FHX4obXx+FyRKF0sLIRbq8IW4wJuSnaKADszZC5TYf1M88lmKGZ0TXjpZSZD+qJZpcHLW4vgPBlPpIDfT5E0X8EkIhCp/2Wi1YyB9KQuaJuOp22ur0oCvT30GvwMSTKGo1x24V6RMp6xJgNiLOEZ96D2WhAYowJAE+8EIWalopNJWPzkmEQgGN1Laiob+30uqKyOrg8PmTY9FfvIZFOvBw+1Rjxmd5mlwenGvzb+AV2fbRWBxh8qELqMpgabw3rX0U88UIUHlpoq366eKsJw7P86+mq7kNv81yCybPHwWIywOnx4Vhti9rLCSmpkV1ijAlJcaEfUqoUBh8qCPcxWwl7fRCFniiKmsx8AMDEgmQAXXc63ajzeg8AMBoEFKb5swAHKhtUXk1oyZ1NdTJQTsLgQwXStos9TEPlJOxyShR6x+pa4Gj1wGwU5G6bWtE24TZ48NGx3kM/w+SCiZYZL6WBXiZ6qvcAGHyooqpJOmYbnpMuEinzwV4fRKEjZT2GZNg0121SKjrdecwBp8d7xueLy/31Huk2Kwal6esv6dNFS/AhHbPVyzRbiba+M6JEuIfKSdjrgyj0dgWCDy309zhdvj0OqfEWuLw+7Dx2ZrOxSKj3kMjBR4Qft23bdmHwQd2QGoyFq8eHxM7JtkQhp6XOpqcTBAHjpa2XIHUf7YfJ6V37zIcoRu6JFz32+AAYfKhC2vYIe+aDNR9EIafVYlOJtPVyet1Hq9sr9wDRc7GpZFBaPAwC0NDadhQ10vh8Io4GTrsw+KBuVcnbLurUfNQ0s8kYUSjUN7txrM7/y0AL02yDmZCfDMAffLTPCOwor4PT40NaglU+KaJnVpNRPgFyIELrPiocrXB5fTAZBGQnxai9nF5h8KGCGqngNNynXeL9Z8CZ+SAKDWnLJTclFkmx2uy5cHZuMkwGAScdTjlQAtrPc7Hrvt5DMjjCO51K9R4DUmJhMurr17niq/V4PPi///s/DBo0CLGxsSgsLMRvfvMb+Hzdj3GOBqIoqlZwmsJtF6KQ0nK9hyTWYpS3hLa3a7UeCf09ThfpJ1702FZdonjw8eijj+K5557D8uXLsWfPHjz22GP4wx/+gGeeeUbpp9IlR4sHnkC737D3+Qg8X4PTA5eHwSCR0rRe7yGZcFrRqdPjlWtAGHzoR1k1gw/ZV199hSuvvBKXXXYZBg4ciGuvvRZz5szB1q1blX4qXZJ6fNhiTLCawjPXRZIYY4YhkE1li3Ui5e06rr226sFMOK3odEd5vVzvMThd//Uekkg/bqvXY7ZACIKP6dOn45NPPsH+/fsBADt27MDnn3+OSy+9NOj1TqcTDoejwy2SSVsuaWEuNgUAg0GQt17YYp1IWU6PV/4Le9SAJJVX0zWp6HT3cQdaXF55y2VKBNV7AG3Bx6kGJ+ojsNBer8dsgRAEH/fffz+uv/56jBgxAmazGePHj8fixYtx/fXXB71+2bJlSEpKkm95eXlKL0lTqhvVKTaVsNEYUWgcONkIj09EUqwZORo/eTAgORYZNis8PhFfH62LyHoPAEiwmuRTIAdPRd6MF712NwVCEHy89dZbePXVV/H6669j+/bteOWVV/D444/jlVdeCXr90qVLUV9fL9/Ky8uVXpKmVKnU40OSwkZjRCHRvthU69kDQRDkfh+bSmrk7ZdzI6C52Okite6jodUtZ7D1mPkwKf2A9913Hx544AEsWLAAADBmzBiUlpZi2bJlWLhw4RnXW61WWK3h34JQS408VE6d18xGY0ShoZdiU8mE/BT8b2cFXt1Yila3D2kJFvloaiQZnJ6Azw5URVzwIdV72OMtsMVo81h3VxTPfDQ3N8Ng6PiwRqORR20DqgMFp2lqZz6aIm//k0hNejhm296EgmQAQGWg++eUQfqf5xJMpGY+9LzlAoQg83H55Zfj97//PfLz8zFq1CgUFRXhiSeewG233ab0U+mS3ONDtZqPQKMxbrsQKUYURezRWeZjVE4SLEYDXF7/H4aRMM8lmKGB4CPSupyWBo7ZFjD48HvmmWfw4IMP4o477kBlZSVycnKwaNEi/PKXv1T6qXSpSio4VeG0CwCediFVbSutwaMf7MPMYen47tQCzXYB7a2jtS1ocHpgMRp0s3URYzZi1IDEiJrnEoyU+ThW14IWlxexlvC2OAgVPTcYA0IQfNhsNjz55JN48sknlX7oiKDWUDmJPNmWwQep4Hfv70FRWR02l9Tg2XWHcOOUfNw2fRAyE7V9OqQ7Un+PoZkJsJj00+Z6Yn4KisrqkBpvkX9JR5rUBCtS4syobXbj0KlGjNb4MeiekoMPHfb4ADjbJeyko7Zq9PkA2td8MPig8Np1vB5FZXUwGQQMzUhAo9OD5zccxvmPrsUD73yNwzpuBCUVm47SyZaL5FsjMyEIwKVjsiOy3kMiBVaHdPw1djpmPqjHPF4fagONbtSq+ZCelzUfFG6vbyoDAFw8OgvPLBiPtfsq8ey6Q9haWos3t5Tjra3luGRUFm6fORhj85LVXWwv6a3YVDKlMBVfPnABUlU6fRcuQzISsOVIbcQUnXq8Phyr9Q8FZPBB3ZICD0EAkuNUOu3SruZDFMWI/muHtKPR6cGqomMAgBun5MNgEHDhWZm48KxMbD1Sg+fWH8LHeyrxv50V+N/OCpxbmIofzRqM84em6eJrtO2Yrf5S+tlJsWovIeSGZNgA+BvBRYIT9a3w+ERYjAZk6XTLksFHGEnHbO1xFhgN6vxAlWo+nB4fWtxexFn4JUCh917xMTS5vChMj8e5pxU2Thpox18H2rGvogHPbziE1cXH8dXhanx1uBqjchKxaOZgXDo6S7Mjw2ubXDhe3woAGJFtU3k1FEykzXiRtlxy7bEwqPS7pL+0+d0coeRjtioVmwJAnMUoF8Sx7oPCQRRFvLrRv+Vy45SCTjMZw7NseOK6cVj/s9m4ddpAxJqN2HXcgXveKMIFf1yPf2wsRavbG86l98iewJZLvj0OiTps9hQNpODjSFUT3F7995ySB8rpdMsFYPARVvIxWxX3VwVBaNfllI3GKPSKyuuw54QDVpMB354woNvrByTH4leXj8KXD1yAey8ahpQ4M8pqmvHgqp2Y/uinWP7pAU0NCdNrvUc0yUmKQZzFCI9PlPtj6Jn0GvRa7wEw+AgrLWQ+AM53ofB6LZD1mHd2Tq9qnVLiLfjxRUPxxQMX4KHLR2JAciyqGl14/KP9OO+RT/D793ejIrDdoSa9tVWPRoIgyP1XIqHoVO/dTQEGH2HV1lpd3cpyqctpTWA9RKFS1+zCf74+DgC4cWp+nx4jzmLCLdMGYd19s/Cn+WMxPNOGJpcXL35WgvMf+xQ/+9cOVX+h7DrOzIceDJXbrOt/uq287ZIar/JK+o7VhmGkdmt1iTTUjvNdKNTe2X4MTo8PZ2UnYnw/j8+ajQZcPT4XV40bgHX7TuHZdYew+UgN/rn1KN7edhRzRmbi9pmDMT4/RZnF90Cr2ysXMY4awOBDywZH0IyX0uomAPredmHwEUZSd1O7ytsu9rjAfBcWnFIIiaKI1zaVAgC+OzVfsSOzgiBg9ogMzB6RgW2lNXh23WF8vOckPtzlv00ZZMePZg3GzGHpIT+me+BkI7w+ESlxZt0eeYwWkXLipb7ZDUerBwCDD+qhag0UnAKs+aDw+OpwNQ6fakK8xYgrx3VfaNoXEwvs+OtCOw6cbMDzGw5jVdExbCqpwaaSGgzNSMAt0wbi6vEDQnakfPcJf1v1kTmJuuhHEs3kLqeVTfD5RN0eUS2t8Wc90m1WXc+pYc1HGEmZjzS1Mx9Sl1NmPiiEXgt0NL1q/AAkWEP7d87QTBse/85YbPjZbHxv+iDEW4w4UNmIX6zciakPf4Jl/92Do7XKn3LYzXoP3Siwx8FsFNDi9uJ4fYvay+kzvbdVlzD4CKO20y4qZz442ZZC7FSDEx/urADg7+0RLjnJsXhw3kh89fML8eC8kci3x8HR6p8hM+Oxtbj9H9uw8XA1RFFU5PnkY7Y86aJ5JqMBg9L8BZoHdFz3EQk9PgAGH2HT6vai0enfp1P7qK2d810oxP65tRwen4jx+cmq/GJOjDHje9MHYe1PZ+GvN0/C9CFp8InAB7sqsOCFjbj06c/xzy3l/Wpa5vOJ2HPCf3JiZLb+2qpHo7atFx0HH9X6P2YLsOYjbKQtF4vRAFuIU9Ddact88LQLKc/rE/HGZv+Wy3fDmPUIxmgQcNHITFw0MhP7TzZgxZdH8O72o9hzwoGfvfM1lv1vD26Yko/vTi3o9YyTsppmNDo9sJgMKEzX75HHaDIkAnp9tB2z1XfwwcxHmMjFpgkW1QvT2mc+fD5l0s9Ekg37T+FobQuSYs247OxstZcjG5Zpw8NXj8HGpRfi55eOwIDkWNQ2u/HntYcw/dG1uOv17dhWWtPjLRlpy2V4pg1mjc6doY4i4bhtJHQ3BZj5CBv5mK3KPT4AICXQZMzrE9HQ6kFSHOdRkHKk47XXTsxFjFl71fjJcRb8cMZg3DZtED7eU4mXvyjBppIa/OfrE/jP1ydwdm4SbjlvIC47OxtWU+frl4pNR7HeQzekbZcDlY26nOrt8vhwIlAsq/fgg+F6mGil2BQArCajfPqAx21JScfqWvDp3koAwA1T+tbRNFxMRgMuGZ2Ftxadi//ecz6um5QLi8mAr4/WY8k/d2DaI2vxpzX7UdkQvIU7i031Z3B6AgQBqG9xo6pRfz/7jte1wCcCMWYD0m3q/y7pDwYfYSJtu6RpIPMBtGU/eOKFlPTW5jL4RODcwlR5loYejMxJxGPXjsXGpRfivouHIysxBlWNTjz1yQFMe+RT3PtWMXaU13W4D4/Z6k+M2Yi8FH/GQI9bL6XtjtnqLWtzOgYfYSJtu6h90kXSNtmWwQcpw+314c0t5QD6PsdFbfZ4C+6cPQSf3T8by28Yj4kFKXB7RawsOoYr//wFrvnLF1i94zgqHa2ocPgzIiMYfOiKnjudRkqPD4A1H2FTJRecaiNVxi6npLSPd59EZYMTaQlWzBmZpfZy+sVsNGDe2TmYd3YOvj5ahxVfHsF/dpzA9rI6bC8rkrctB6bGhbyBGilrSEYCPt1bqcvjtuVy8KH/01XMfISJVobKSZj5IKVJHU3nT/bXTkSKs3OT8cR14/DFAxfg3ouGId1mlXv2sN5Df/R83LZtoFzvjoVrEUP2MKkOjK9PY+aDIlBJVRM+P1gFQQAWTNbnlkt30m1W/PiiofjRrMH47zcn8PnBKnz//EFqL4t6aUimdOKlQeWV9F5Zjf+kS0Gq/jMfDD7CpKZRO0dtgbZ11Oiw4pu0R2oqNmtYuu47L3bHYjLgqvEDcNX40AzLo9CSaj5OOpxwtLqRGKOPVgOiKKIskPmIhO+xyMmNapgoiqjSWsEpW6yTQlrdXry9NVBoqnJHU6LuJMaYkRE4pqqnuo+aJheaXF4IApCbov9tFwYfYdDo9MDl8QEAUuM1su3C4XKkkP/tPIHaZjdykmIwe0SG2ssh6tYQHXY6lU66ZCXGaLJ5X28x+AgDqdg03mJErEUbXzRtmQ/Od6H+eW2jf8vl+nPyYTTou/cARQc9HreVgo9I2HIBGHyEhVRsqpVjtgBgZ5MxUsDeCge2ltbCaBAwf3Ke2ssh6pGhUvBxUkfBR2CmSwGDD+qpqkZt1XsAbdsu9S1ueLw+lVdDevV64HjtnJGZyEiMUXk1RD0zWIeZj9IIajAGRFnwIYoiTjqCz2kIpbYeH9rJfCTFmiF1561r4dYL9V6T04N3tx8DwEJT0hdp26W8phmtbq/Kq+kZubtpKoOPTh07dgzf/e53kZqairi4OIwbNw7btm0LxVP12JGqJlzy5Ge4cvkXYf9Lv0badtHIMVvAP1QrKda/9cJGY9QXq3ccR6PTg4GpcThvcKrayyHqsfQEKxJjTPCJ/h41elDOzEfXamtrMW3aNJjNZvzvf//D7t278cc//hHJyclKP1WvZCfHoLLBP49h/f5TYX1uLW67AG1dTqsZfFAviaKIVzeWAvBnPQwsNCUdEQRBVydeWt1eeZYQg49OPProo8jLy8PLL7+Mc845BwMHDsSFF16IwYMHK/1UvWI1GfHtCbkAIA+/Cpe2oXLa2XYB2p14YfBBvfT10XrsOu6AxWTAtyfmqr0col4bmmEDoI/g42htC0QRSLCaNNOosr8UDz5Wr16NSZMm4Tvf+Q4yMjIwfvx4vPjii51e73Q64XA4OtxCZcE5/mr8T/dWojKMtR/VjVJrdW190bDFOvXVa5v8WY/LxmRHzA9Dii56ynyU1bR1NhWEyMgyKh58HD58GM8++yyGDh2KDz/8ELfffjvuuece/P3vfw96/bJly5CUlCTf8vJCd1xvSIYNkwpS4PWJeHvb0ZA9z+m0WHAKcLgc9U19ixurdxwHANw4JTLnuFDk01XwUS3Ve+i/s6lE8eDD5/NhwoQJePjhhzF+/HgsWrQIP/jBD/Dss88GvX7p0qWor6+Xb+Xlod0SWXCO/4flW1vK4fOJIX0uSVufD239hShnPpp42oV6buX2o2h1+zA804aJBSlqL4eoT6Tgo6SqSfPtBiJpoJxE8eAjOzsbI0eO7PCxs846C2VlZUGvt1qtSExM7HALpUvHZMFmNaGsphkbD1eH9LkAwOcT5UZeWgs+pEZjnO9CPSWKIl4N9Pb47tT8iEkBU/QZkByLGLMBLq8P5bUtai+nS+23XSKF4sHHtGnTsG/fvg4f279/PwoKtNEHIM5iwpXjcwAAb4Sh8LSuxQ0pwSI19tIKzneh3tpcUoODlY2Isxg51ZV0zWAQMDhdH1svUo+PSOluCoQg+Lj33nuxceNGPPzwwzh48CBef/11vPDCC7jzzjuVfqo+WzDZv/Xy4c6KkNc7SMWmyXFmmI3a6unGybbUW68Fsh5XjsuBTSejyIk6I229HKhsUHklnRNFsa3BGIOPzk2ePBkrV67EG2+8gdGjR+O3v/0tnnzySdx4441KP1WfjR6QhNEDEuHy+vBu0bGQPpfc40ODJwKkmg+pIJaoK1WNTvxv5wkAwA3naCOTSdQfQ3SQ+TjV4ESr2weDAOQkR07BqSkUDzpv3jzMmzcvFA+tmPmT87Hz2E68taUMt00bGLK9ay0OlZOkMvNBvfCvbUfh9ooYm5uEMblJai+HqN+kzMchDQcfUtYjJzkWFpO2suf9ETmvpJeuHJeDGLMB+082YntZXcieR8oqaK3HB9CW+Wh2eXUz34DU4fOJ8hA5znGhSCEHH6eaIIrhOf3YW6XVkbflAkRx8JEYY8ZlY/yFp29uDn4SRwlSzYfWenwAgM1qginQFpvZD+rKZwerUFbTDFuMCZePzVF7OUSKKEiNh8kgoNHpkduXa00k1nsAURx8AMD1gY6n//n6BBpaQ9Prokqjx2wB/3yDtl4fDD6oc68F5rh8e0IuYi1GlVdDpAyLyYCCwJTYAye1ufVSHmHTbCVRHXxMLEjBkIwEtLi9csdGpdVouOAUaN/llI3GKLgT9S34ZG8lAHY0pcij9U6npcx8RB5BELBgsj/78VaIen5oueAUAFICjcY430XbXthwCGc/9CEe+d9eNDo9YX3ut7aUw+sTcc4gO4Zm2sL63EShJgcfp7QZfLT1+Iic7qZAlAcfAHD1+AEwG4XAlM56xR+/WuuZD0621bwjVU34w4f74Gj14Ln1h3DhH9dhVdGxsBTIebw+vLnZH5gz60GRSMuZj2aXB6ca/H/AMvMRYVITrJgzKgtAaLIfVY0az3wEtl2qGXxo1sP/3QO3V8TZuUkoSI3DSYcTi98qxnee+wo7jykfMLf3yd5KVDhakRpvwSWjs0L6XERqGJrhz+Zp8bhteWCmS2KMCUlxkdXUL+qDDwC4PtDxdGXRMbS4lDty6vL44Gj1p8i1eNQWaNfrg8GHJn15sAof7T4Jo0HAH78zFh8unoH7Lh6OWLMRW0trccXyz/GLld+E7P2TOpp+Z1IerCYWmlLkKUz3b2dUN7k0V3gvb7lE0EA5CYMPAOcNTkWePRYNrR65g6MSpC9kk0FAokZbUcunXVjzoTkerw+/+c9uAMBNUwswNNOGGLMRd84egk9/OhOXj82BT/QHCLMeX4d/fHUEXgUnNZdVN2PD/lMAgBvO4ZYLRaY4iwkDAp1Dtbb1UlrtHygXaVsuAIMPAP4BQ/Mn+QtPpf1tJUhbLvZ4CwwGbU7/ZM2Hdr25pRx7KxqQHGfG4ouGdvhcdlIsnrl+PN784VSMyLKhvsWNB9/bhXnPfI7NJTWKPP/rgf43M4alR9wxP6L2tFr3EanHbAEGH7JrJ+bBIACbj9Qo9gUoZT7sGi02BTjZVqvqW9x4Ys1+AMC9Fw1DcicTkacWpuI/d0/Hb64chaRYM/accOC657/CPW8UoaK+702TnB4v/rmVhaYUHbQafETqMVuAwYcsKykGF4zIAAD5h25/Scds0zRabApwsq1WPf3JAdQ0uTA0I6HbX/4mowE3nzsQa386CzdMyYcgAKt3HMcFf1yHv6w7CKen93VMH+ysQE2TC1mJMbgw8H1BFKmGavS4baR2NwUYfHQwP1B4+s62o3B5fP1+PPmYrUaLTYG2mo/aJrdmZxtEm0OnGvHKl0cAAA/OGwmTsWffpvZ4Cx6+egz+fdd0TCxIQbPLi8c+2IeL/7QBn+492as1SIWmC87J6/HzE+mVnPk42aDyStr4fCKOBk67MPiIcLOHpyPDZkV1kwsf7+ndD+tgquQeHxrOfATS+S6vD00KnvShvvv9+3vg8Ym4cEQGZgxL7/X9Rw9Iwr9uPxd/mj8WGTYrjlQ347YVW3Hbii0oqWrq9v4HTjZgc0kNjAYBCyZzy4UinxR8HK9vRVOYm/h1psLRCpfXB5NBQHZSjNrLURyDj3ZMRgO+MykXAPCGAsPm5KFyGs58xFqMiDH7vwykVvCknvX7T+HTvZUwGwX84rKz+vw4giDg6vG5+PSns7BoRiHMRgGf7q3ExX/agEc/2NvlD1gp63HhiAxkReAPPaLTJcdZ5HYIhzSy9SJtueSmxEZk9jHyXlE/zZ/k/0vv84NVcqVxX0mNu7Ta40MiZWZ43FZdbq8Pvw0crV147kAUpif0+zETrCYsvfQsfLB4BmYOS4fL68Oz6w7hgj+uw3vFZ3ZJbXF58c72owCAG6cW9Pv5ifRicLq2ik6l4CMvArdcAAYfZ8hPjcO0IakQReDtfhaeypkPDW+7AG3zXXjcVl2vbSzFwcpG2OMtuPvCod3foRcGpydgxa2T8eLNk5Bv93dJ/fGbxZj//EbsPu6Qr/v3juNoaPUgzx6L84ekKboGIi0bmqmx4KM6cotNAQYfQUn73P/cerRfTZukzIdd45kPHrdVX22TC3/6+AAA4CdzhiEpVvmmdIIg4FsjM/HRvW1dUjcfqcG8Zz7D/63yd0l9bVMpAOCGcwo025uGKBSGBDIfB7QSfMjdTRl8RI05ozKREmdGhaMV6/dX9vlxpNMuaRrPfPC4rfqe/Hg/6lvcGJFlC3mRp9Ql9ZOfzMS8s7PhE4FXN5Zhxh/WYsfRepiNAq4L1D4RRYshGpvxEsk9PgAGH0FZTUZcM0EqPO3b1kuzy4MWt//0iJYLTgFmPtS2/2QDXg0Uef5y3kgYw5RxyEmOxfIbJshdUhsCc4jmjs7W7CBEolCRTryU1jQr0mqhv+TupvbIm+sCMPjo1ILJ/nbrn+6tRKWj950ipaxHjNmAOIu2B3Ix86EeURTx2//shtcnYs7ITJynQp1F+y6pc0Zm4qdzhod9DURqy0y0IsFqgtcn4kh190fSQ6mh1S3/MZhnj1V1LaHC4KMTQzNtmFiQAq9PxNvbjvb6/lXtik0FQdt75/JwOWY+wu7TvZX47EAVLEZDv47W9pfUJfWFmydF5BwJou4IgqCZNutSvYc93gKbRoeS9heDjy5I2Y9/bi2Hr5eFp3K9h8a3XIC2RmMMPsLL5fHhd+/vAQDcOn1gRI7NJtITKfg4cFLd4KM8wus9AAYfXbrs7GzYrCaUVjdj4+HqXt1Xmuuih71zOzMfqvj7V0dQUtWEtAQr7po9RO3lEEW9IRqZ8VIa4cdsAQYfXYqzmHDFuBwA/vHmvVGtg4m2kraaD7fKK4ke1Y1OPPWJ/2jtfRcPi9jUKpGeDNFIo7FIHignYfDRDenY4wc7K3rVhEsPQ+UkUpOxumZXv/qaUM/9cc1+NLR6MConEddOzFN7OUSEtszH4VONqv4slIOPCK6/YvDRjTG5SRiVkwiX14eVRcd6fD+pu6nWe3wAbUdtfSLgaGH2I9T2nHDgzcDsoF9dPipsR2uJqGt59jhYTAY4PT4cq21RbR3MfBCAtsLTN7eU9XjsvLTtoofMh9logC3GBIDzXUJNFEX85t+74ROBy8Zk45xBdrWXREQBRoOAwjR/4feBygZV1uDxtgU+kdrdFGDw0SNXjBuAGLMB+082YntZXY/uUyVvu2g/8wG0q/tg0WlIfbjrJL46XA2LyYAH5o5QezlEdBq1j9ueqG+FxyfCYjQg0xa5U6UZfPRAUqwZl47JBgC8taWsR/dpGyqn/cwHwC6n4eD0ePHwf/1Ha394fmHETqsk0jO1gw9pyyXXHhvR85UYfPTQ9ef4C0//veMEGlq7rosQRVH+JZ6ms8wHg4/Q+dvnR1BW04wMmxU/mjVY7eUQURBqH7eVB8pF+B8nIQ8+li1bBkEQsHjx4lA/VUhNKkjB4PR4tLi9+PeOE11e62jxwBOolJZOkmidHHyw5iMkKhtasfxT/9Ha+y8ZgXirSeUVEVEwQwMD5g5WNva4xk9J0dDjAwhx8LFlyxa88MILOPvss0P5NGEhCIJ87PbNbrZeqgINxmwxJlhN2p7rImHNR2g9/uE+NLm8GJuXjKvHD1B7OUTUiYFpcTAIQEOrB5UNzrA/v9zdNMI7Hocs+GhsbMSNN96IF198ESkpKZ1e53Q64XA4Oty06poJA2A2Cvj6aD12Ha/v9Lq21ur62HIB2td88Kit0nYeq5fnA/1y3siI3scl0jurySiPOlCj7iMajtkCIQw+7rzzTlx22WW46KKLurxu2bJlSEpKkm95edptuJSaYMWckVkAgLe66Hiqt2JTALAHtoc42VZZoiji1//eBVEErhyXg4kFnQfiRKQNg1XsdFoamKjL4KMP3nzzTWzfvh3Lli3r9tqlS5eivr5evpWX966NebgtOMcfHK0sOoZWtzfoNVU66vEh4WmX0Hj/mxPYcqQWMWYD7r+ER2uJ9ECtEy91zS44Wj0AIj/4ULzqrby8HD/+8Y/x0UcfISam+zPKVqsVVqt+tiemDU5Dbkosjta24L/fnMA1E3LPuEbOfOho26VtvguDD6W0ur1Y9t+9AIDbZw5GTnKsyisiop5QK/h47MN9APzNxWIt+qgX7CvFMx/btm1DZWUlJk6cCJPJBJPJhPXr1+Ppp5+GyWSC1xs8W6AXBoOA+ZOkjqfBszRyzYeOtl1SeNRWcX/97DCO1bUgJykGi2bwaC2RXgxV4bjtP7eW4/VNZRAE4DdXjg7b86pF8eDjwgsvxDfffIPi4mL5NmnSJNx4440oLi6G0aj/aO7aSbkwCMDmkhocCvLFWaOjibYSe2DbpaHVA5fHp/Jq9O+koxV/WXcIAHD/3BER/1cMUSQZHAg+TjU4UR+Gad87j9Xj/1btBADce9EwzByWHvLnVJviwYfNZsPo0aM73OLj45GamorRoyMjmstOisXs4RkAgheeVulw2yUp1gzpEEYdt1767dEP9qLZ5cXEghRcMTZH7eUQUS8kWE3ITvKXDRw8FdoZL3XNLtz+6ja4PD5cMCIDd80eEtLn0wp2OO2j+YFhc+9sO3pGpkBPQ+UkBoPQVnTK4KNfisvr8O52/wTkX84bCUHg0VoivQlH3YfPJ2LxW8U4WtuCfHsc/nTduKg5ih+WNovr1q0Lx9OE1QUjMpBhs6KywYmP95yUZ78AbQWneurzAfjrPqqbXKz76Af/1NpdAPx9YcbmJau7ICLqk8HpCfjsQFVIg4+nPz2AdftOwWoy4NnvTkBSnD46YiuBmY8+MhkNuHai/6RL+8JTj9eH2sAeoZ76fABtdR+1bDTWZ6t3HMf2sjrEWYw8WkukY0MzQ5v5WLu3Ek994h+58PDVYzAqJykkz6NVDD76Qdp6+ezAKbklrrRlYRCA5Dh9BR/SHBpuu/RNs8uDR/7nP1p7x6zByEyM3HHYRJFuSKDR2IEQBB9l1c348ZtFEEXgu1Pz8e2JZ7ZsiHQMPvqhIDUe04akQhQht8+Wjtna4y0w6mzvjvNd+uf59Ydxor4VA5Jj8f3zC9VeDhH1g1TzcayuBS0u5VpEtLq9uP3VbXC0ejAuLxkPzhup2GPrCYOPfpofGDb39tZyeH2iLo/ZStjltO+O17Xg+Q3+o7U/v/QsxJh5tJZIz1ITrEiJM0MUEbSlQl+Iooj/W7UTu084YI+34C83TtDN8FGlMfjop4tHZSI5zowT9a3YsP9U2zHbeH0VmwJtARODj9575H970er24ZyBdlw6Jkvt5RCRAqTsh1LBxxuby/GvbUdhEIBnrh8f1V2PGXz0k9VkxDXj/ft1b2wuk7dd9HTMVsIW632zrbQGq3cchyAAv7ycR2uJIsWQDBsAZYpOi8vr8NBq/0m4+y4egWlD0vr9mHrG4EMB0rC5T/ZWYs8JBwD9HbMF2GK9L0RRxO/e3wMAuG5iHkYPiK6KdaJIJmU+DpzsX/BR3ejEHa9ug8vrw8WjMnH7TNaEMfhQwLBMGybkJ8PrE/Fe8XEA+jtmC7Q/asvgo6c+2VOJorI6xJgN+MmcYWovh4gUNESBGS9en4gfv1mM4/WtGJQWjz98Zyyzo2DwoZgF5/gLT11ef7dTPbVWl8g1H9x26RGfT8TjH/mnUN46bRAyeLSWKKJIwceRqia4vX2befXEmn34/GAVYs1GPPfdiUiMiZ5GYl1h8KGQeWdnI8Ha1jBWjzUf0rZLq9un6NGySPXvr49jb0UDbDEmLJrBNCpRpMlJikGcxQiPT0RpdXOv7//Rrgr8ea3/FNwj3x6D4Vk2pZeoWww+FBJnMeGKcW0DxPS47RJvMcJi9H9JMPvRNbfXhyfW7AcALJpRqLuGckTUPUEQ+jzjpaSqCT/55w4AwK3TBuLKcQMUX5+eMfhQ0IJAx1NAn30+BEFo63LayOCjK29vPYrS6makJVhw67RBai+HiEJE6nR6sLLn022bXR7c/o9taHB6MKkgBT+/9KxQLU+3wjJYLlqMGZCEG6fko67ZjYGp8Wovp09S4iw46XAy89GFVrcXTwdmMtw5ewjirfw2IopUg3uZ+RBFEUvf/Qb7TjYgLcGKP984AWYj/84/HX9qKkgQBPz+6jFqL6NfpFoVnnjp3KsbS1HhaEVOUgxumJKv9nKIKIR6e+Ll71+V4r3i4zAaBPz5hvGc8dQJhmPUAVusd62h1Y0/rz0IAFh80bCobY1MFC3kLqeVTfD5xC6v3VZag9/+ZzcAYOncEZhSmBry9ekVgw/qgF1Ou/a3z4+gttmNwrR4XDOBBWREka7AHgezUUCL24vj9S2dXlfZ0Io7XtsOj0/EZWdn43vTWQvWFQYf1AEzH52rbXLhxc8OAwCWzBkGE/dxiSKeyWjAoDR/Dd+BTuo+3F4f7nq9CCcdTgzJSMCj3z6bjcS6wZ+e1AEzH517bv0hNDo9GJmdiEtHZ6u9HCIKk7atl+DBx2Mf7MXmkhrEW/yNxBJYhN4tBh/UAee7BHfS0YoVXx4BANx38XAYDPyrhihatB23PTP4+O83J/DiZyUAgMe/M1YOVKhrDD6oAzu3XYJ65tMDcHp8mFSQglnD09VeDhGFUWfHbQ9WNuC+t/2NxH44oxBzxzAj2lMMPqgDeb5Lk1vllWhHWXUz3txcDsCf9eBeLlF0GZrhb4t+oLIRoug/8dLo9GDRP7ahyeXF1EI7fnbxcDWXqDsMPqiD9jUf0jdZtPvTx/vh8YmYMSydR+eIolBhejwEAahvcaOq0f+z8Wf/2oFDp5qQmWjFM9dPYAF6L/H/LeogOc7fXt3rE+Fo9ai8GvXtq2jAquJjAID75vAvG6JoFGM2Ii8lDoB/6+Wvn5Xgv99UwGwU8JcbJyLdpr8p5mpj8EEdxJiNiLf4G2exyynwx4/2QRSBS8dkYUxuktrLISKVSIWkb2wuwyMf7AUA/N9lIzGxIEXNZekWgw86g3ziJcqP2xaX1+Gj3SdhEIAl3xqm9nKISEVS8LF6x3F4fSKuGpeDm88tUHlV+sXgg84g131Eeebj8Q/3AQCumZCLIYGCMyKKTu2P0I7IsuHha8aw+LwfGHzQGdjlFPjyYBU+P1gFs1HAjy8cqvZyiEhlYwb4t11tMSY8992JiLOwkVh/8P89OoM9yhuNiaKIP3zkz3rccE4+8uxxKq+IiNR2VnYi/nrzJAxMi8fAQLt16jsGH3QGe5TXfHyypxJFZXWIMRtw5wVD1F4OEWnERSMz1V5CxOC2C50hmms+fD4RjweyHrdOG4QMW4zKKyIiijyKBx/Lli3D5MmTYbPZkJGRgauuugr79u1T+mkohNpqPqKvy+m/vz6OvRUNsMWYsGhGodrLISKKSIoHH+vXr8edd96JjRs3Ys2aNfB4PJgzZw6ampqUfioKEXu8v9FYtE22dXt9+NOa/QCARTMKkRwIwoiISFmK13x88MEHHf798ssvIyMjA9u2bcOMGTOUfjoKASnzEW3bLm9vPYoj1c1IS7Dg1mmD1F4OEVHECnnBaX19PQDAbrcH/bzT6YTT6ZT/7XA4Qr0k6oaSBac+n4hTjU4crW3B8bq227G6Vhyra0GC1YhfXT4Koweo2z201e3F058cAADcOXsI4q2sxSYiCpWQ/oQVRRFLlizB9OnTMXr06KDXLFu2DL/+9a9DuQzqJanDaX2LGx6vr8uBSc0ujxxMyIFFbQuO1bXgeH0LKupb4fZ2PaDu2ue+xGPXjsUVY3MUfR298erGUlQ4WpGTFIMbpuSrtg4iomgQ0uDjrrvuwtdff43PP/+802uWLl2KJUuWyP92OBzIy8sL5bKoG8mx/poPUQQOnmpEi8uL43WtOFbXHPjftgxGbXP3RalGg4CsxBjkJMdgQHIscgK37KQY/P2rUqzffwr3vFGEPScc+Omc4TAawts1sKHVjT+vPQgAWHzRMFhNxrA+PxFRtAlZ8HH33Xdj9erV2LBhA3Jzczu9zmq1wmrlREAtMRkNSI4zo67ZjUue/Kzb620xpnZBRQxykmMxIHDLSY5Fhs3aafZk1vAMPPbhXjy//jCeXXcIe0848NT145EYY1b6ZXXqb58fQW2zG4Vp8bhmwoCwPS8RUbRSPPgQRRF33303Vq5ciXXr1mHQIBbu6dGkAjs+3uMfqubPWvgDiQEpgf9NbvtYfwIFo0HA0rlnYWR2In72r6+xdt8pXLX8C7xw86QOsxRCpbbJhRc/OwwAWDJnWJdbTEREpAzFg48777wTr7/+Ot577z3YbDZUVFQAAJKSkhAbG6v001GIvHDTRJxqdCI13hKWX8hXjhuAwrQE/PAfW3G4qglX//kLPHX9OFwwIrQdBZ9bfwiNTg9GZifi0tHZIX0uIiLyE0RR7LoasLcP2MmUv5dffhm33HJLt/d3OBxISkpCfX09EhMTlVwa6cCpBifueG0bthyphSAAP50zHHfMGhyS6ZEnHa2Y8dhaOD0+vHzLZMwekaH4cxARRYve/P5W/E9aURSD3noSeBCl26x47ftTceOUfIgi8IcP9+HuN4rQ7PIo/lzPfHoATo8PkwpSMGt4uuKPT0REwXGDmzTHYjLg91ePwe+uGg2TQcB/vj6Ba5/9CkdrmxV7jrLqZry5uRwAcN/Fw0OSWSEiouAYfJBmfXdqAV7/wVSkxluw+4QDVyz/AhsPVyvy2E9+vB8en4gZw9IxpTBVkcckIqKeYfBBmnbOIDtW3z0dowckoqbJhe/+dRP+8dUR9KdUaf/JBqwsPgYAuG/OcKWWSkREPcTggzRvQHIs3l50Hq4YmwOPT8SD7+3Cz1d+A5fH16fHe/zDfRBF4NIxWRiTq25bdyKiaMTgg3Qh1mLEUwvGYencERAE4I3N5bj+xY2obGjt1eMUl9fho93+/iVLvjUsRKslIqKuMPgg3RAEAYtmDsbfbpkMW4wJ20prccUzX+Dro3U9fozHP9wHALhmQi6GZNhCtFIiIuoKgw/SndnDM/DendMwOD0eFY5WfOe5r7Cy6Gi39/vyYBU+P1gFs1HAjy8cGoaVEhFRMAw+SJcK0xOw6s5puHBEBpweH+59awce/u8eeH3BC1FFUcQfPvJnPW44Jx959rhwLpeIiNph8EG6ZYsx48WbJ+Gu2UMAAC9sOIxbXt6M+iCTdj/ZU4misjrEmA2484Ih4V4qERG1w+CDdM1gEPDTi4fjzzdMQKzZiM8OVOHKP3+OAycb5Gt8PhGPB7Iet04bhAxbjFrLJSIiMPigCHHZ2dl450fnYUByLI5UN+OqP3+Bj3b5hxr+++vj2FvRAFuMCYtmFKq8UiIiYvBBEWNkTiL+ffd0TC20o8nlxQ//sQ1Pfrwff1qzHwCwaEYhkuMsKq+SiIgYfFBEscdb8I/vTcEt5w0EADz58QEcqW5GWoIFt04bpO7iiIgIAIMPikBmowEPXTEKj337bFiM/i/xO2YNQbzVpPLKiIgIAPjTmCLWdZPzMCY3CbuPO3D1+AFqL4eIiAIYfFBEOys7EWdlJ6q9DCIiaofbLkRERBRWDD6IiIgorBh8EBERUVgx+CAiIqKwYvBBREREYcXgg4iIiMKKwQcRERGFFYMPIiIiCisGH0RERBRWDD6IiIgorBh8EBERUVgx+CAiIqKwYvBBREREYaW5qbaiKAIAHA6HyishIiKinpJ+b0u/x7uiueCjoaEBAJCXl6fySoiIiKi3GhoakJSU1OU1gtiTECWMfD4fjh8/DpvNBkEQFH1sh8OBvLw8lJeXIzExUdHH1rpofe3R+roBvvZofO3R+rqB6H3tWnrdoiiioaEBOTk5MBi6rurQXObDYDAgNzc3pM+RmJio+puklmh97dH6ugG+9mh87dH6uoHofe1aed3dZTwkLDglIiKisGLwQURERGEVVcGH1WrFr371K1itVrWXEnbR+tqj9XUDfO3R+Nqj9XUD0fva9fq6NVdwSkRERJEtqjIfREREpD4GH0RERBRWDD6IiIgorBh8EBERUVgx+CAiIqKwirjg4y9/+QsGDRqEmJgYTJw4EZ999lmX169fvx4TJ05ETEwMCgsL8dxzz4VppcpZtmwZJk+eDJvNhoyMDFx11VXYt29fl/dZt24dBEE447Z3794wrbr/HnrooTPWn5WV1eV9IuH9BoCBAwcGff/uvPPOoNfr+f3esGEDLr/8cuTk5EAQBKxatarD50VRxEMPPYScnBzExsZi1qxZ2LVrV7eP+84772DkyJGwWq0YOXIkVq5cGaJX0DddvW632437778fY8aMQXx8PHJycnDzzTfj+PHjXT7mihUrgn4dtLa2hvjV9E537/ktt9xyxmuYOnVqt4+r5/ccQND3ThAE/OEPf+j0MbX6nkdU8PHWW29h8eLF+MUvfoGioiKcf/75mDt3LsrKyoJeX1JSgksvvRTnn38+ioqK8POf/xz33HMP3nnnnTCvvH/Wr1+PO++8Exs3bsSaNWvg8XgwZ84cNDU1dXvfffv24cSJE/Jt6NChYVixckaNGtVh/d98802n10bK+w0AW7Zs6fC616xZAwD4zne+0+X99Ph+NzU1YezYsVi+fHnQzz/22GN44oknsHz5cmzZsgVZWVn41re+JQ+pDOarr77C/PnzcdNNN2HHjh246aabcN1112HTpk2hehm91tXrbm5uxvbt2/Hggw9i+/btePfdd7F//35cccUV3T5uYmJih6+BEydOICYmJhQvoc+6e88B4JJLLunwGv773/92+Zh6f88BnPG+/e1vf4MgCPj2t7/d5eNq8j0XI8g555wj3n777R0+NmLECPGBBx4Iev3PfvYzccSIER0+tmjRInHq1KkhW2M4VFZWigDE9evXd3rN2rVrRQBibW1t+BamsF/96lfi2LFje3x9pL7foiiKP/7xj8XBgweLPp8v6Ocj4f0WRVEEIK5cuVL+t8/nE7OyssRHHnlE/lhra6uYlJQkPvfcc50+znXXXSdecsklHT528cUXiwsWLFB8zUo4/XUHs3nzZhGAWFpa2uk1L7/8spiUlKTs4kIs2GtfuHCheOWVV/bqcSLxPb/yyivFCy64oMtrtPqeR0zmw+VyYdu2bZgzZ06Hj8+ZMwdffvll0Pt89dVXZ1x/8cUXY+vWrXC73SFba6jV19cDAOx2e7fXjh8/HtnZ2bjwwguxdu3aUC9NcQcOHEBOTg4GDRqEBQsW4PDhw51eG6nvt8vlwquvvorbbrut20nQen+/T1dSUoKKiooO76vVasXMmTM7/b4HOv9a6Oo+WldfXw9BEJCcnNzldY2NjSgoKEBubi7mzZuHoqKi8CxQYevWrUNGRgaGDRuGH/zgB6isrOzy+kh7z0+ePIn3338f3/ve97q9VovvecQEH1VVVfB6vcjMzOzw8czMTFRUVAS9T0VFRdDrPR4PqqqqQrbWUBJFEUuWLMH06dMxevToTq/Lzs7GCy+8gHfeeQfvvvsuhg8fjgsvvBAbNmwI42r7Z8qUKfj73/+ODz/8EC+++CIqKipw3nnnobq6Ouj1kfh+A8CqVatQV1eHW265pdNrIuH9Dkb63u7N9710v97eR8taW1vxwAMP4IYbbuhysumIESOwYsUKrF69Gm+88QZiYmIwbdo0HDhwIIyr7b+5c+fitddew6effoo//vGP2LJlCy644AI4nc5O7xNp7/krr7wCm82Ga665psvrtPqem1R99hA4/S8/URS7/Gsw2PXBPq4Xd911F77++mt8/vnnXV43fPhwDB8+XP73ueeei/Lycjz++OOYMWNGqJepiLlz58r/PWbMGJx77rkYPHgwXnnlFSxZsiTofSLt/QaAl156CXPnzkVOTk6n10TC+92V3n7f9/U+WuR2u7FgwQL4fD785S9/6fLaqVOndijMnDZtGiZMmIBnnnkGTz/9dKiXqpj58+fL/z169GhMmjQJBQUFeP/997v8ZRwp7zkA/O1vf8ONN97Ybe2GVt/ziMl8pKWlwWg0nhHFVlZWnhHtSrKysoJebzKZkJqaGrK1hsrdd9+N1atXY+3atcjNze31/adOnap6NNwf8fHxGDNmTKevIdLebwAoLS3Fxx9/jO9///u9vq/e328A8umm3nzfS/fr7X20yO1247rrrkNJSQnWrFnTZdYjGIPBgMmTJ+v+6yA7OxsFBQVdvo5Iec8B4LPPPsO+ffv69H2vlfc8YoIPi8WCiRMnylX/kjVr1uC8884Lep9zzz33jOs/+ugjTJo0CWazOWRrVZooirjrrrvw7rvv4tNPP8WgQYP69DhFRUXIzs5WeHXh43Q6sWfPnk5fQ6S83+29/PLLyMjIwGWXXdbr++r9/QaAQYMGISsrq8P76nK5sH79+k6/74HOvxa6uo/WSIHHgQMH8PHHH/cpgBZFEcXFxbr/OqiurkZ5eXmXryMS3nPJSy+9hIkTJ2Ls2LG9vq9m3nO1Kl1D4c033xTNZrP40ksvibt37xYXL14sxsfHi0eOHBFFURQfeOAB8aabbpKvP3z4sBgXFyfee++94u7du8WXXnpJNJvN4r/+9S+1XkKf/OhHPxKTkpLEdevWiSdOnJBvzc3N8jWnv/Y//elP4sqVK8X9+/eLO3fuFB944AERgPjOO++o8RL65Cc/+Ym4bt068fDhw+LGjRvFefPmiTabLeLfb4nX6xXz8/PF+++//4zPRdL73dDQIBYVFYlFRUUiAPGJJ54Qi4qK5FMdjzzyiJiUlCS+++674jfffCNef/31YnZ2tuhwOOTHuOmmmzqcevviiy9Eo9EoPvLII+KePXvERx55RDSZTOLGjRvD/vo609Xrdrvd4hVXXCHm5uaKxcXFHb7vnU6n/Binv+6HHnpI/OCDD8RDhw6JRUVF4q233iqaTCZx06ZNarzETnX12hsaGsSf/OQn4pdffimWlJSIa9euFc8991xxwIABEf2eS+rr68W4uDjx2WefDfoYennPIyr4EEVR/POf/ywWFBSIFotFnDBhQofjpgsXLhRnzpzZ4fp169aJ48ePFy0Wizhw4MBO31AtAxD09vLLL8vXnP7aH330UXHw4MFiTEyMmJKSIk6fPl18//33w7/4fpg/f76YnZ0tms1mMScnR7zmmmvEXbt2yZ+P1Pdb8uGHH4oAxH379p3xuUh6v6VjwqffFi5cKIqi/7jtr371KzErK0u0Wq3ijBkzxG+++abDY8ycOVO+XvL222+Lw4cPF81mszhixAjNBWJdve6SkpJOv+/Xrl0rP8bpr3vx4sVifn6+aLFYxPT0dHHOnDnil19+Gf4X142uXntzc7M4Z84cMT09XTSbzWJ+fr64cOFCsaysrMNjRNp7Lnn++efF2NhYsa6uLuhj6OU9F0QxUHFHREREFAYRU/NBRERE+sDgg4iIiMKKwQcRERGFFYMPIiIiCisGH0RERBRWDD6IiIgorBh8EBERUVgx+CAiIqKwYvBBREREYcXgg4iIiMKKwQcRERGF1f8DguJ9Ti7B9PcAAAAASUVORK5CYII=" + "image/png": "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4+sKAJMmTRrydVqzZs2QtzfT67p582Zcc801KC8vhyRJ+POf/zzg+7Is47777kN5eTkyMjKwatUq7N27d9T7ffHFFzF79my43W7Mnj0bL7/8skbPYGxGer5+vx8/+MEPcM455yArKwvl5eX40pe+hNOnT494n0899dSQr3dfX5/Gz2Zko722t95661lrPu+880a9XyO+tqM916FeH0mS8O///u/D3qdRX1ctpVXw8cILL+Cuu+7CD3/4Q2zfvh0XXHABrrzySpw4cWLI2x89ehSf/OQnccEFF2D79u34f//v/+Hb3/42XnzxxRSvfGw2bdqENWvWYMuWLVi3bh0CgQBWr16N7u7uUX/24MGDOHPmjPJVVVWVghUnb86cOQPWvXv37mFva9bXFQC2bt064HmuW7cOAPC5z31uxJ8zw+va3d2N+fPn45FHHhny+z//+c/xwAMP4JFHHsHWrVtRWlqKyy67TJn3NJT3338fN9xwA774xS9i586d+OIXv4jrr78eH3zwgVZPI24jPd+enh5s27YN//RP/4Rt27bhpZdeQnV1NT71qU+Ner85OTkDXuszZ87A4/Fo8RTiNtprCwBXXHHFgDX/9a9/HfE+jfrajvZcB782v//97yFJEj772c+OeL9GfF01JaeRT3ziE/I3vvGNAf82c+ZM+Z577hny9t///vflmTNnDvi322+/XT7vvPM0W6MWGhoaZADypk2bhr3Nhg0bZABya2tr6hamkh/96Efy/Pnz4759uryusizL3/nOd+SpU6fKoVBoyO+b9XUFIL/88svK/w6FQnJpaal8//33K//W19cn5+bmyo899tiw93P99dfLV1xxxYB/u/zyy+Ubb7xR9TUnY/DzHcqHH34oA5CPHz8+7G2efPJJOTc3V93FqWyo53rLLbfIn/70p8d0P2Z4beN5XT/96U/LF1988Yi3McPrqra02fnw+Xz4+OOPsXr16gH/vnr1arz33ntD/sz7779/1u0vv/xyfPTRR/D7/ZqtVW3t7e0AgPz8/FFvu3DhQpSVleGSSy7Bhg0btF6aag4dOoTy8nJMnjwZN954I2pqaoa9bbq8rj6fD8888wy+/OUvjzpk0ayvq3D06FHU1dUNeN3cbjdWrlw57PsXGP61HulnjKq9vR2SJCEvL2/E23V1dWHixImoqKjA1Vdfje3bt6dmgUnauHEjiouLMX36dHzta19DQ0PDiLdPh9e2vr4er776Kr7yla+Meluzvq6JSpvgo6mpCcFgECUlJQP+vaSkBHV1dUP+TF1d3ZC3DwQCaGpq0mytapJlGXfffTdWrFiBuXPnDnu7srIyPP7443jxxRfx0ksvYcaMGbjkkkuwefPmFK42Meeeey7+8Ic/4PXXX8cTTzyBuro6LFu2DM3NzUPePh1eVwD485//jLa2Ntx6663D3sbMr2ss8R4dy/tX/NxYf8aI+vr6cM899+Dzn//8iIPHZs6ciaeeegqvvPIKnnvuOXg8HixfvhyHDh1K4WrH7sorr8Qf//hHrF+/Hr/85S+xdetWXHzxxejv7x/2Z9LhtX366afh9Xpx7bXXjng7s76uyTDcVNtkDb5ClGV5xKvGoW4/1L8b1R133IFdu3bhnXfeGfF2M2bMwIwZM5T/ff7556O2tha/+MUvcOGFF2q9zKRceeWVyn+fc845OP/88zF16lQ8/fTTuPvuu4f8GbO/rgDwu9/9DldeeSXKy8uHvY2ZX9ehjPX9m+jPGInf78eNN96IUCiE3/zmNyPe9rzzzhuQqLl8+XIsWrQIDz/8MB566CGtl5qwG264QfnvuXPnYsmSJZg4cSJeffXVEf8wm/21/f3vf4+bb7551NwNs76uyUibnY/CwkLY7fazouKGhoazomehtLR0yNs7HA4UFBRotla13HnnnXjllVewYcMGVFRUjPnnzzvvPFNG1llZWTjnnHOGXbvZX1cAOH78ON5880189atfHfPPmvF1FdVLY3n/ip8b688Yid/vx/XXX4+jR49i3bp1Yx63brPZsHTpUtO93mVlZZg4ceKI6zb7a/v222/j4MGDCb2Hzfq6jkXaBB8ulwuLFy9WqgOEdevWYdmyZUP+zPnnn3/W7d944w0sWbIETqdTs7UmS5Zl3HHHHXjppZewfv16TJ48OaH72b59O8rKylRenfb6+/uxf//+Yddu1tc11pNPPoni4mJcddVVY/5ZM76ukydPRmlp6YDXzefzYdOmTcO+f4HhX+uRfsYoROBx6NAhvPnmmwkFxrIsY8eOHaZ7vZubm1FbWzvius382gLhncvFixdj/vz5Y/5Zs76uY6JXpqsWnn/+ednpdMq/+93v5H379sl33XWXnJWVJR87dkyWZVm+55575C9+8YvK7WtqauTMzEz5u9/9rrxv3z75d7/7nex0OuX/+Z//0espxOWb3/ymnJubK2/cuFE+c+aM8tXT06PcZvBz/dWvfiW//PLLcnV1tbxnzx75nnvukQHIL774oh5PYUy+973vyRs3bpRramrkLVu2yFdffbXs9XrT7nUVgsGgPGHCBPkHP/jBWd8z8+va2dkpb9++Xd6+fbsMQH7ggQfk7du3K9Ud999/v5ybmyu/9NJL8u7du+WbbrpJLisrkzs6OpT7+OIXvzigeu3dd9+V7Xa7fP/998v79++X77//ftnhcMhbtmxJ+fMbbKTn6/f75U996lNyRUWFvGPHjgHv4/7+fuU+Bj/f++67T37ttdfkI0eOyNu3b5dvu+022eFwyB988IEeT1Ex0nPt7OyUv/e978nvvfeefPToUXnDhg3y+eefL48fP96Ur+1ov8eyLMvt7e1yZmam/Oijjw55H2Z5XbWUVsGHLMvyf/zHf8gTJ06UXS6XvGjRogHlp7fccou8cuXKAbffuHGjvHDhQtnlcsmTJk0a9pfFSAAM+fXkk08qtxn8XH/2s5/JU6dOlT0ejzxu3Dh5xYoV8quvvpr6xSfghhtukMvKymSn0ymXl5fL1157rbx3717l++nyugqvv/66DEA+ePDgWd8z8+sqyoIHf91yyy2yLIfLbX/0ox/JpaWlstvtli+88EJ59+7dA+5j5cqVyu2FP/3pT/KMGTNkp9Mpz5w50zCB10jP9+jRo8O+jzds2KDcx+Dne9ddd8kTJkyQXS6XXFRUJK9evVp+7733Uv/kBhnpufb09MirV6+Wi4qKZKfTKU+YMEG+5ZZb5BMnTgy4D7O8tqP9HsuyLP/2t7+VMzIy5La2tiHvwyyvq5YkWY5k4hERERGlQNrkfBAREZE5MPggIiKilGLwQURERCnF4IOIiIhSisEHERERpRSDDyIiIkopBh9ERESUUgw+iIiIKKUYfBAREVFKMfggIiKilGLwQURERCnF4IOIiIhS6v8Dljv5nJby37gAAAAASUVORK5CYII=" }, "metadata": {}, "output_type": "display_data" @@ -575,7 +621,7 @@ { "data": { "text/plain": "
", - "image/png": "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" + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAGwCAYAAABVdURTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/H5lhTAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAn5UlEQVR4nO3df3BU13338c8ihGQBWhv9QgwyEkUj23iMZQFBBmQTGrnQ0pC6M66a2vQx9VQOlgarpLFMpz/ctHKnJMWWDYQJdoZQK04r45JCOihP9YNg0hh3ZTuxUcToFw+Wyi4YLZJaCcR9/vCjfbxoWVawu3f37Ps1s3/suefCV3cO7EfnnnvWYVmWJQAAAENMs7sAAACAcCLcAAAAoxBuAACAUQg3AADAKIQbAABgFMINAAAwCuEGAAAYZbrdBUTb1atX9cknn2j27NlyOBx2lwMAAEJgWZYuXbqkefPmadq04HMzCRduPvnkE+Xl5dldBgAAuAlnzpzR/Pnzg/ZJuHAze/ZsSZ9dnPT0dJurAQAAofB6vcrLy/N9jgeTcOFm4lZUeno64QYAgDgTypISFhQDAACjEG4AAIBRCDcAAMAohBsAAGAUwg0AADAK4QYAABiFcAMAAIxCuAEAAEYh3AAAAKMQbgAAgFES7usXgKnocg+p98KI8jNmqiBzpt3lAABCQLgBArg4Mqbqhna1dbp9bWWFWaqvKJYzLdnGygAAN8JtKSCA6oZ2HT/t8Ws7ftqjqgaXTRUBAEJFuAGu0eUeUlunW+OW5dc+bllq63Sr2zNsU2UAgFAQboBr9F4YCXq85zzhBgBiGeEGuMaCOWlBj+dnsLAYAGIZ4Qa4xsKsWSorzFKSw+HXnuRwqKwwi6emACDG2Rpu6urqtGzZMs2ePVvZ2dnauHGjOjo6gp7T0tIih8Mx6XXq1KkoVY1EUF9RrJWLMv3aVi7KVH1FsU0VAQBCZeuj4K2trdqyZYuWLVumK1euaPv27SovL9dHH32kmTOD/3bc0dGh9PR03/usrKxIl4sE4kxL1v7Ny9XtGVbP+WH2uQGAOGJruPm3f/s3v/evv/66srOz9d5776msrCzoudnZ2br99ttv+HeMjo5qdHTU997r9d5UrUhMBZmEGgCINzG15mZwcFCSNGfOnBv2LS4uVm5urtauXavm5ubr9qurq5PT6fS98vLywlYvAACIPQ7LumYzD5tYlqUvf/nL+vTTT3Xs2LHr9uvo6FBbW5tKSko0Ojqq73//+9qzZ49aWloCzvYEmrnJy8vT4OCg320tAAAQu7xer5xOZ0if3zETbrZs2aLDhw/rpz/9qebPnz+lczds2CCHw6FDhw7dsO9ULg4AAIgNU/n8jonbUlVVVTp06JCam5unHGwkacWKFers7IxAZQAAIN7YuqDYsixVVVXp4MGDamlpUUFBwU39OS6XS7m5uWGuDgAAxCNbw82WLVv0xhtv6F/+5V80e/ZsDQwMSJKcTqduu+02SVJtba3Onj2r/fv3S5J27typ/Px8LV68WGNjYzpw4IAaGxvV2Nho288BAABih63hZvfu3ZKkhx9+2K/99ddf1x/+4R9Kkvr7+9XX1+c7NjY2pm3btuns2bO67bbbtHjxYh0+fFjr16+PVtkAACCGxcyC4mhhQTEAAPEn7hYUAwAAhAvhBgAAGIVwAwAAjEK4AQAARiHcAAAAoxBuAACAUQg3AADAKIQbAABgFMINAAAwCuEGAAAYhXADAACMQrgBAABGIdwAAACjEG4AAIBRCDcAAMAohBsAAGAUwg0AADAK4QYAABiFcAMAAIxCuAEAAEYh3AAAAKMQbgAAgFEINwAAwCiEGwAAYBTCDQAAMMp0uwsAYJ4u95B6L4woP2OmCjJn2l0OgARDuAEQNhdHxlTd0K62TrevrawwS/UVxXKmJdtYGeIBoRjhQrgBEDbVDe06ftrj13b8tEdVDS7t37zcpqoQ6wjFCDfW3AAIiy73kNo63Rq3LL/2cctSW6db3Z5hmypDrAsWioGbQbgBEBa9F0aCHu85T7jBZIRiRALhBkBYLJiTFvR4fgZrKDAZoRiRQLgBEBYLs2aprDBLSQ6HX3uSw6GywiwWiCIgQjEigXADIGzqK4q1clGmX9vKRZmqryi2qSLEOkIxIsFhWdfc6DSc1+uV0+nU4OCg0tPT7S4HMFK3Z1g954d5pBchGRy5rKoGF09LIaipfH4TbgAAMYFQjGCm8vnNPjcAgJhQkEmoQXiw5gYAABiFcAMAAIxCuAEAAEYh3AAAAKMQbgAAgFEINwAAwCiEGwAAYBTCDQAAMArhBgAAGIUdihFUl3tIvRdG2A4dABA3CDcI6OLImKob2vkiOwBA3OG2FAKqbmjX8dMev7bjpz2qanDZVBEAAKEh3GCSLveQ2jrdGr/mC+PHLUttnW51e4ZtqgwAgBsj3GCS3gsjQY/3nCfcAABiF+EGkyyYkxb0eH4GC4sBALGLcINJFmbNUllhlpIcDr/2JIdDZYVZPDUFAIhphBsEVF9RrJWLMv3aVi7KVH1FsU0VAQAQGh4FR0DOtGTt37xc3Z5h9ZwfZp8bIMGwxxXima0zN3V1dVq2bJlmz56t7Oxsbdy4UR0dHTc8r7W1VSUlJUpNTdXChQu1Z8+eKFSbmAoyZ2pNUTb/uQEJ4uLImJ7Y93N98Vut+l+vv6s1O1r0xL6fa3Dkst2lASGzNdy0trZqy5Yt+tnPfqampiZduXJF5eXlGh6+/tM43d3dWr9+vVavXi2Xy6Xnn39e1dXVamxsjGLlAGAm9riCCRyWdc1mJjZyu93Kzs5Wa2urysrKAvb5xje+oUOHDunjjz/2tVVWVur999/XiRMnbvh3eL1eOZ1ODQ4OKj09PWy1A0C863IP6Yvfar3u8eZtDzOLC9tM5fM7phYUDw4OSpLmzJlz3T4nTpxQeXm5X9sjjzyikydP6vLlydOmo6Oj8nq9fi8AwGTscQVTxEy4sSxLNTU1WrVqle69997r9hsYGFBOTo5fW05Ojq5cuSKPxzOpf11dnZxOp++Vl5cX9toBwATscQVTxEy4eeaZZ/TBBx+ooaHhhn0d1+y/MnFn7dp2SaqtrdXg4KDvdebMmfAUDACGYY8rmCImwk1VVZUOHTqk5uZmzZ8/P2jfuXPnamBgwK/t3Llzmj59ujIyMib1T0lJUXp6ut8LABAYe1zBBLbuc2NZlqqqqnTw4EG1tLSooKDghueUlpbqRz/6kV/b0aNHtXTpUiUnJ0eqVABICOxxBRPYOnOzZcsWHThwQG+88YZmz56tgYEBDQwM6L//+799fWpra/XEE0/43ldWVqq3t1c1NTX6+OOP9dprr2nfvn3atm2bHT8CABiJPa4Qz2wNN7t379bg4KAefvhh5ebm+l5vvvmmr09/f7/6+vp87wsKCnTkyBG1tLTo/vvv11//9V/r5Zdf1qOPPmrHjwAAAGJMTO1zEw3scwMAQPyJ231uAAAAbhXhBgAAGIVwAwAAjEK4AQAARiHcAAAAoxBuAACAUQg3AADAKIQbAABgFMINAAAwCuEGAAAYhXADAACMQrgBAABGIdwAAACjEG4AAIBRCDcAAMAohBsAAGAUwg0AADAK4QYAABiFcAMAAIxCuAEAAEYh3AAAAKMQbgAAgFGm210AEkeXe0i9F0aUnzFTBZkz7S4HAGAowg0i7uLImKob2tXW6fa1lRVmqb6iWM60ZBsrAwCYiNtSBuhyD6m545y6PcN2lxJQdUO7jp/2+LUdP+1RVYPLpooAACZj5iaOxcOMSJd7yK++CeOWpbZOt7o9w2G9RcWtLwAA4SaOBZsR2b95uU1V+eu9MBL0eM/58ISbeAh6AIDo4LZUnJqYERm3LL/2z8+IxIIFc9KCHs/PCM/sCre+AAATCDdxKpQZkViwMGuWygqzlORw+LUnORwqK8wKy6xNvAQ9AEB0EG4iKJILfaM1IxIO9RXFWrko069t5aJM1VcUh+XPj5egBwCIDtbcREA01n9MzIgcP+3xm7FIcji0clFmTC2mdaYla//m5er2DKvn/HDYF/vGU9ADAEQeMzcREK31H5GeEQm3gsyZWlOUHfbgFY1bXwCA+MHMTZhF89HnSM+IxJP6imJVNbj8rn0sBz0AQOQQbsIsWo8+f15BZuKGmgkEPQDABMJNmLH+w14EPQAAa27CjPUfAADYi3ATAfG20BcAAJNwWyoCWP8BAIB9CDcRxPoPAACij9tSAADAKIQbAABgFMINAAAwCuEGAAAYhXADAACMQrgBAABGIdwAAACjEG4AAIBRCDcAAMAohBsAAGAUwg0AADAK3y0VRl3uIfVeGOGLMgEAsBHhJgwujoypuqFdbZ1uX1tZYZbqK4rlTEu2sTIAABIPt6XCoLqhXcdPe/zajp/2qKrBZVNFAAAkLsLNLepyD6mt061xy/JrH7cstXW61e0ZtqkyAAASE+HmFvVeGAl6vOc84QYAgGiyNdy0tbVpw4YNmjdvnhwOh95+++2g/VtaWuRwOCa9Tp06FZ2CA1gwJy3o8fwMFhYDABBNtoab4eFhLVmyRK+88sqUzuvo6FB/f7/vVVhYGKEKb2xh1iyVFWYpyeHwa09yOFRWmMVTUwAARJmtT0utW7dO69atm/J52dnZuv3228Nf0E2qryhWVYPL72mplYsyVV9RbGNVAAAkprh8FLy4uFj/8z//o3vuuUd/9md/pjVr1ly37+joqEZHR33vvV5v2OtxpiVr/+bl6vYMq+f8MPvcAABgo7haUJybm6u9e/eqsbFRb731loqKirR27Vq1tbVd95y6ujo5nU7fKy8vL2L1FWTO1JqibIINAAA2cljWNc8w28ThcOjgwYPauHHjlM7bsGGDHA6HDh06FPB4oJmbvLw8DQ4OKj09/VZKBgAAUeL1euV0OkP6/I6rmZtAVqxYoc7OzuseT0lJUXp6ut8LAACYK+7DjcvlUm5urt1lAACAGGHrguKhoSGdPn3a9767u1vt7e2aM2eO7rzzTtXW1urs2bPav3+/JGnnzp3Kz8/X4sWLNTY2pgMHDqixsVGNjY12/QgAACDG2BpuTp486fekU01NjSRp06ZN+t73vqf+/n719fX5jo+NjWnbtm06e/asbrvtNi1evFiHDx/W+vXro147AACITTGzoDhaprIgCQAAxIaEWlAMAADweYQbAABgFMINAAAwCuEGAAAYhXADAACMQrgBAABGIdwAAACjEG4AAIBRbN2hGAimyz2k3gsjys+YqYLMmXaXAwCIE4QbxJyLI2OqbmhXW6fb11ZWmKX6imI505JtrAxAJPCLDMKNcIOYU93QruOnPX5tx097VNXg0v7Ny22qCkC48YsMIoU1N4gpXe4htXW6NX7NV56NW5baOt3q9gzbVBmAcAv2iwxwKwg3iCm9F0aCHu85T7gBTMAvMogkwg1iyoI5aUGP52dwPx4wAb/IIJIIN4gpC7NmqawwS0kOh197ksOhssIsFhsChuAXGUQS4QYxp76iWCsXZfq1rVyUqfqKYpsqAhBu/CKDSHJY1jU3PA3n9XrldDo1ODio9PR0u8tBEN2eYfWcH+bxUMBQgyOXVdXg4mkphGQqn9+EGwCArfhFBqGYyuf3lG5Lvf/++/rmN7+pXbt2yePxf3zP6/XqySefnHq1AICEVpA5U2uKsgk2CJuQZ26OHj2qDRs2qLCwUJcuXdLIyIh++MMfas2aNZKk//qv/9K8efM0Pj4e0YJvFTM3AG4WO+kC9pnK53fIOxT/5V/+pbZt26a/+Zu/kWVZ2rFjh377t39b//RP/6Tf+I3fuOWiASBWsZMuEF9Cvi31y1/+0nfbyeFw6Otf/7r27t2r3/3d39WPfvSjiBUIAHZjJ10gvoQ8c5OSkqKLFy/6tVVUVGjatGn6vd/7PX3rW98Kd20AYLuJnXSv9fmddLlFBcSWkMPN/fffr+bmZpWUlPi1P/bYY7p69ao2bdoU9uIAwG6h7KRLuAFiS8jh5umnn1ZbW1vAYxUVFZKkvXv3hqcqAIgR7KQLxJ+Qw81XvvIVfeUrX9FPfvIT/fqv//qk4xUVFfJ6vWEtDgDsNrGT7vHTHr8veUxyOLRyUSazNkAMmvLXL/zmb/6m/uRP/kRjY2O+NrfbrQ0bNqi2tjasxQFALOArQYD4EvLMzYS2tjY9/vjj+slPfqI33nhDPT09evLJJ3XPPffo/fffj0SNAGArZ1qy9m9ezk66QJyYcrj5whe+IJfLpcrKSpWUlOjq1av65je/qa9//etyXPMFaABgkoJMQg0QD27qW8E7Ojr07rvvav78+Zo+fbpOnTqlkZHgTxQAAABEw5TDzYsvvqjS0lJ96Utf0i9+8Qu9++67crlcuu+++3TixIlI1AgAABCyKYebl156SW+//bbq6+uVmpqqxYsX6+c//7l+53d+Rw8//HAESgQAAAjdlNfcfPjhh8rM9H9qIDk5WX//93+v3/qt3wpbYQAAADdjyjM31wabz3vooYduqRgAAIBbdVMLigEAAGIV4QYAABiFcAMAAIxCuAEAAEYh3AAAAKMQbgAAgFEINwAAwCiEGwAAYBTCDQAAMArhBgAAGIVwAwAAjEK4AQAARiHcAAAAoxBuAACAUQg3AADAKIQbAABgFMINAAAwCuEGAAAYhXADAACMQrgBAABGIdwAAACj2Bpu2tratGHDBs2bN08Oh0Nvv/32Dc9pbW1VSUmJUlNTtXDhQu3ZsyfyhQIAgLhha7gZHh7WkiVL9Morr4TUv7u7W+vXr9fq1avlcrn0/PPPq7q6Wo2NjRGuFAAAxIvpdv7l69at07p160Luv2fPHt15553auXOnJOnuu+/WyZMntWPHDj366KMRqhIAAMSTuFpzc+LECZWXl/u1PfLIIzp58qQuX74c8JzR0VF5vV6/FwAAMFdchZuBgQHl5OT4teXk5OjKlSvyeDwBz6mrq5PT6fS98vLyolEqAACwSVyFG0lyOBx+7y3LCtg+oba2VoODg77XmTNnIl4jAACwj61rbqZq7ty5GhgY8Gs7d+6cpk+froyMjIDnpKSkKCUlJRrlAQCAGBBXMzelpaVqamryazt69KiWLl2q5ORkm6oCAACxxNZwMzQ0pPb2drW3t0v67FHv9vZ29fX1SfrsltITTzzh619ZWane3l7V1NTo448/1muvvaZ9+/Zp27ZtdpQPAABikK23pU6ePKk1a9b43tfU1EiSNm3apO9973vq7+/3BR1JKigo0JEjR/Tss8/q1Vdf1bx58/Tyyy/zGDgAAPBxWBMrchOE1+uV0+nU4OCg0tPT7S4HAACEYCqf33G15gYAAOBGCDcAAMAohBsAAGAUwg0AADAK4QYAABiFcAMAAIxCuAEAAEYh3AAAAKMQbgAAgFEINwAAwCiEGwAAYBTCDQAAMArhBgAAGIVwAwAAjEK4AQAARiHcAAAAoxBuAACAUQg3AADAKIQbAABgFMINAAAwCuEGAAAYhXADAACMQrgBAABGIdwAAACjEG4AAIBRCDcAAMAohBsAAGAUwg0AADAK4QYAABiFcAMAAIxCuAEAAEYh3AAAAKMQbgAAgFEINwAAwCiEGwAAYBTCDQAAMArhBgAAGIVwAwAAjEK4AQAARiHcAAAAo0y3uwDEvi73kHovjCg/Y6YKMmfaXQ4AAEERbnBdF0fGVN3QrrZOt6+trDBL9RXFcqYl21gZAADXx20pXFd1Q7uOn/b4tR0/7VFVg8umigCYpMs9pOaOc+r2DNtdCgzDzA0C6nIP+c3YTBi3LLV1utXtGeYWFYCbwqwwIo2ZGwTUe2Ek6PGe8/ymBeDmMCuMSCPcIKAFc9KCHs/PYNYGwNRNzAqPW5Zf++dnhYFbRbhBQAuzZqmsMEtJDodfe5LDobLCLG5JAbgpzAojGgg3uK76imKtXJTp17ZyUabqK4ptqghAvGNWGNHAgmJclzMtWfs3L1e3Z1g954fZ5wbALZuYFT5+2uN3ayrJ4dDKRZn8H4OwYOYGN1SQOVNrirL5TwdAWDArjEhj5gYAEFXMCiPSCDcAAFsUZBJqTBQLX9lDuAEAALcsljZnZM0NAAC4ZbG0OSPhBgAA3JJY25zR9nCza9cuFRQUKDU1VSUlJTp27Nh1+7a0tMjhcEx6nTp1KooVAwCAz4u1zRltDTdvvvmmtm7dqu3bt8vlcmn16tVat26d+vr6gp7X0dGh/v5+36uwsDBKFQMAgGvF2uaMtoabb3/729q8ebP+6I/+SHfffbd27typvLw87d69O+h52dnZmjt3ru+VlJQUpYoBAMC1Yu0re2wLN2NjY3rvvfdUXl7u115eXq533nkn6LnFxcXKzc3V2rVr1dzcHLTv6OiovF6v3wsAAIRXLG3OaNuj4B6PR+Pj48rJyfFrz8nJ0cDAQMBzcnNztXfvXpWUlGh0dFTf//73tXbtWrW0tKisrCzgOXV1dfqrv/qrsNcPAAD+v1janNH2fW4c10xhWZY1qW1CUVGRioqKfO9LS0t15swZ7dix47rhpra2VjU1Nb73Xq9XeXl5YagcAABcKxY2Z7TttlRmZqaSkpImzdKcO3du0mxOMCtWrFBnZ+d1j6ekpCg9Pd3vBQAAzGVbuJkxY4ZKSkrU1NTk197U1KQHH3ww5D/H5XIpNzc33OUBAIA4ZettqZqaGj3++ONaunSpSktLtXfvXvX19amyslLSZ7eUzp49q/3790uSdu7cqfz8fC1evFhjY2M6cOCAGhsb1djYaOePAQAAYoit4eaxxx7T+fPn9cILL6i/v1/33nuvjhw5ogULFkiS+vv7/fa8GRsb07Zt23T27FnddtttWrx4sQ4fPqz169fb9SMAAIAY47Csa/ZKNpzX65XT6dTg4CDrbwAAiBNT+fy2/esXAAAAwolwAwAAjEK4AQAARiHcAAAAoxBuAACAUQg3AADAKIQbAABgFMINAAAwCuEGAAAYhXADAACMQrgBAABGIdwAAACjEG4AAIBRCDcAAMAohBsAAGAUwg0AADAK4QYAABiFcAMAAIxCuAEAAEYh3AAAAKMQbgAAgFEINwAAwCjT7S4AAIDr6XIPqffCiPIzZqogc6bd5SBOEG4AADHn4siYqhva1dbp9rWVFWapvqJYzrRkGytDPOC2FAAg5lQ3tOv4aY9f2/HTHlU1uGyqCPGEcAMAiCld7iG1dbo1bll+7eOWpbZOt7o9wzZVhnhBuAEAxJTeCyNBj/ecJ9wgOMINACCmLJiTFvR4fgYLixEc4QYAEFMWZs1SWWGWkhwOv/Ykh0NlhVk8NYUbItwAAGJOfUWxVi7K9GtbuShT9RXFNlWEeMKj4ACAmONMS9b+zcvV7RlWz/lh9rnBlBBuAAAxqyCTUIOp47YUAAAwCuEGAAAYhXADAACMQrgBAABGIdwAAACjEG4AAIBRCDcAAMAohBsAAGAUwg0AADAK4QYAABiFcAMAAIxCuAEAAEYh3AAAAKMQbgAAgFEINwAAwCiEGwAAYBTCDQAAMArhBgAAGGW63QUAAMzW5R5S74UR5WfMVEHmTLvLQQIg3AAAIuLiyJiqG9rV1un2tZUVZqm+oljOtGQbK4PpuC0FAIiI6oZ2HT/t8Ws7ftqjqgaXTRUhURBuAABh1+UeUlunW+OW5dc+bllq63Sr2zNsU2VIBIQbAEDY9V4YCXq85zzhBpFje7jZtWuXCgoKlJqaqpKSEh07dixo/9bWVpWUlCg1NVULFy7Unj17olQpEB2tHef00v/+lY59bp0CEG8WzEkLejw/g4XFiBxbFxS/+eab2rp1q3bt2qWVK1fqO9/5jtatW6ePPvpId95556T+3d3dWr9+vZ566ikdOHBAx48f19e+9jVlZWXp0UcfteEnAMKn9/ywNr56XJ+OXPa13ZGWrENbVikvI/gHBRBrFmbNUllhlo6f9vjdmkpyOLRyUSZPTSGiHJZ1zQ3RKPrCF76gBx54QLt37/a13X333dq4caPq6uom9f/GN76hQ4cO6eOPP/a1VVZW6v3339eJEydC+ju9Xq+cTqcGBweVnp5+6z8EECbFLxz1CzYT7khLluvPy22oCLg1gyOXVdXg4mkphMVUPr9tm7kZGxvTe++9p+eee86vvby8XO+8807Ac06cOKHycv//5B955BHt27dPly9fVnLy5H8so6OjGh0d9b33er1hqB4Ir9aOcwGDjSR9OnJZxzrdWl2YFeWqgFvjTEvW/s3L1e0ZVs/5Yfa5QdTYtubG4/FofHxcOTk5fu05OTkaGBgIeM7AwEDA/leuXJHH4wl4Tl1dnZxOp++Vl5cXnh8ACKP2/3Mx6PH/7Ps0OoUAEVCQOVNrirIJNoga2xcUOxwOv/eWZU1qu1H/QO0TamtrNTg46HudOXPmFisGwu/++bcHPf7AnXdEpxAAMIBtt6UyMzOVlJQ0aZbm3Llzk2ZnJsydOzdg/+nTpysjIyPgOSkpKUpJSQlP0UCEPFSUrTvSkq+75oZbUgAQOttmbmbMmKGSkhI1NTX5tTc1NenBBx8MeE5paemk/kePHtXSpUsDrrcB4smhLat0xzWLLCeelgIAhM7WR8Framr0+OOPa+nSpSotLdXevXvV19enyspKSZ/dUjp79qz2798v6bMno1555RXV1NToqaee0okTJ7Rv3z41NDTY+WMAYZGXkSbXn5frWKdb/9n3qR648w5mbADgJtgabh577DGdP39eL7zwgvr7+3XvvffqyJEjWrBggSSpv79ffX19vv4FBQU6cuSInn32Wb366quaN2+eXn75Zfa4gVFWF2YRagDgFti6z40d2OcGAID4M5XPb9uflgIAAAgnwg0AADAK4QYAABiFcAMAAIxCuAEAAEYh3AAAAKMQbgAAgFEINwAAwCiEGwAAYBRbv37BDhMbMnu9XpsrAQAAoZr43A7lixUSLtxcunRJkpSXl2dzJQAAYKouXbokp9MZtE/CfbfU1atX9cknn2j27NlyOBy3/Od5vV7l5eXpzJkzfFfVDXCtQsN1Ch3XKjRcp9BxrUJjx3WyLEuXLl3SvHnzNG1a8FU1CTdzM23aNM2fPz/sf256ejr/EELEtQoN1yl0XKvQcJ1Cx7UKTbSv041mbCawoBgAABiFcAMAAIxCuLlFKSkp+ou/+AulpKTYXUrM41qFhusUOq5VaLhOoeNahSbWr1PCLSgGAABmY+YGAAAYhXADAACMQrgBAABGIdwAAACjEG5CsGvXLhUUFCg1NVUlJSU6duxY0P6tra0qKSlRamqqFi5cqD179kSpUvtN5Vq1tLTI4XBMep06dSqKFUdfW1ubNmzYoHnz5snhcOjtt9++4TmJOKamep0SdTzV1dVp2bJlmj17trKzs7Vx40Z1dHTc8LxEHFM3c60ScVzt3r1b9913n2+DvtLSUv34xz8Oek6sjSfCzQ28+eab2rp1q7Zv3y6Xy6XVq1dr3bp16uvrC9i/u7tb69ev1+rVq+VyufT888+rurpajY2NUa48+qZ6rSZ0dHSov7/f9yosLIxSxfYYHh7WkiVL9Morr4TUP1HH1FSv04REG0+tra3asmWLfvazn6mpqUlXrlxReXm5hoeHr3tOoo6pm7lWExJpXM2fP18vvviiTp48qZMnT+qLX/yivvzlL+uXv/xlwP4xOZ4sBLV8+XKrsrLSr+2uu+6ynnvuuYD9//RP/9S66667/Nr++I//2FqxYkXEaowVU71Wzc3NliTr008/jUJ1sUmSdfDgwaB9EnlMTQjlOjGePnPu3DlLktXa2nrdPoypz4RyrRhXn7njjjus7373uwGPxeJ4YuYmiLGxMb333nsqLy/3ay8vL9c777wT8JwTJ05M6v/II4/o5MmTunz5csRqtdvNXKsJxcXFys3N1dq1a9Xc3BzJMuNSoo6pm5Xo42lwcFCSNGfOnOv2YUx9JpRrNSFRx9X4+Lh+8IMfaHh4WKWlpQH7xOJ4ItwE4fF4ND4+rpycHL/2nJwcDQwMBDxnYGAgYP8rV67I4/FErFa73cy1ys3N1d69e9XY2Ki33npLRUVFWrt2rdra2qJRctxI1DE1VYynz741uaamRqtWrdK999573X6MqdCvVaKOqw8//FCzZs1SSkqKKisrdfDgQd1zzz0B+8bieEq4bwW/GQ6Hw++9ZVmT2m7UP1C7iaZyrYqKilRUVOR7X1paqjNnzmjHjh0qKyuLaJ3xJpHHVKgYT9IzzzyjDz74QD/96U9v2DfRx1So1ypRx1VRUZHa29t18eJFNTY2atOmTWptbb1uwIm18cTMTRCZmZlKSkqaNPNw7ty5SSl1wty5cwP2nz59ujIyMiJWq91u5loFsmLFCnV2doa7vLiWqGMqHBJpPFVVVenQoUNqbm7W/Pnzg/ZN9DE1lWsVSCKMqxkzZmjRokVaunSp6urqtGTJEr300ksB+8bieCLcBDFjxgyVlJSoqanJr72pqUkPPvhgwHNKS0sn9T969KiWLl2q5OTkiNVqt5u5VoG4XC7l5uaGu7y4lqhjKhwSYTxZlqVnnnlGb731lv793/9dBQUFNzwnUcfUzVyrQBJhXF3LsiyNjo4GPBaT48mmhcxx4wc/+IGVnJxs7du3z/roo4+srVu3WjNnzrR6enosy7Ks5557znr88cd9/bu6uqy0tDTr2WeftT766CNr3759VnJysvXP//zPdv0IUTPVa/UP//AP1sGDB61f/epX1i9+8QvrueeesyRZjY2Ndv0IUXHp0iXL5XJZLpfLkmR9+9vftlwul9Xb22tZFmNqwlSvU6KOp6efftpyOp1WS0uL1d/f73uNjIz4+jCmPnMz1yoRx1Vtba3V1tZmdXd3Wx988IH1/PPPW9OmTbOOHj1qWVZ8jCfCTQheffVVa8GCBdaMGTOsBx54wO+xwU2bNlkPPfSQX/+WlharuLjYmjFjhpWfn2/t3r07yhXbZyrX6u/+7u+sX/u1X7NSU1OtO+64w1q1apV1+PBhG6qOrolHS699bdq0ybIsxtSEqV6nRB1Pga6RJOv111/39WFMfeZmrlUijqsnn3zS9/94VlaWtXbtWl+wsaz4GE8Oy/p/q34AAAAMwJobAABgFMINAAAwCuEGAAAYhXADAACMQrgBAABGIdwAAACjEG4AAIBRCDcAAMAohBsAAGAUwg0Ao/T39+v3f//3VVRUpGnTpmnr1q12lwQgygg3AIwyOjqqrKwsbd++XUuWLLG7HAA2INwAiCtut1tz587V3/7t3/ra/uM//kMzZszQ0aNHlZ+fr5deeklPPPGEnE6njZUCsMt0uwsAgKnIysrSa6+9po0bN6q8vFx33XWX/uAP/kBf+9rXVF5ebnd5AGIA4QZA3Fm/fr2eeuopffWrX9WyZcuUmpqqF1980e6yAMQIbksBiEs7duzQlStX9MMf/lD/+I//qNTUVLtLAhAjCDcA4lJXV5c++eQTXb16Vb29vXaXAyCGcFsKQNwZGxvTV7/6VT322GO66667tHnzZn344YfKycmxuzQAMYBwAyDubN++XYODg3r55Zc1a9Ys/fjHP9bmzZv1r//6r5Kk9vZ2SdLQ0JDcbrfa29s1Y8YM3XPPPTZWDSBaHJZlWXYXAQChamlp0Ze+9CU1Nzdr1apVkqS+vj7dd999qqur09NPPy2HwzHpvAULFqinpyfK1QKwA+EGAAAYhQXFAADAKIQbAABgFMINAAAwCuEGAAAYhXADAACMQrgBAABGIdwAAACjEG4AAIBRCDcAAMAohBsAAGAUwg0AADDK/wU8Px2gFv99mgAAAABJRU5ErkJggg==" }, "metadata": {}, "output_type": "display_data" @@ -583,7 +629,7 @@ { "data": { "text/plain": "
", - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAGwCAYAAABVdURTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAnhElEQVR4nO3df1Tc1Z3/8dfwW4hMTzKIiVBCGtRojkqgpECD1TX0RDeeuNsjopuoRU+p22CM2k1O9qjJ5iz9sXqqVFLTjfZkG1mqqx53l9qwZ1NBkq2GBY81rhKBkBhiZsgJP7tg4PP9ww1fJ/xwBpj5zNx5Ps6ZP7jz+cy8J1eYl597P/c6LMuyBAAAYIgouwsAAACYS4QbAABgFMINAAAwCuEGAAAYhXADAACMQrgBAABGIdwAAACjxNhdQLCNjY3p5MmTuvjii+VwOOwuBwAA+MCyLPX392vRokWKipr+2kzEhZuTJ08qPT3d7jIAAMAMHD9+XGlpadMeE3Hh5uKLL5b0+T9OcnKyzdUAAABf9PX1KT09ffx7fDoRF27OD0UlJycTbgAACDO+TClhQjEAADAK4QYAABiFcAMAAIxCuAEAAEYh3AAAAKMQbgAAgFEINwAAwCiEGwAAYBTCDQAAMArhBgAAGCXitl8AACBStbsHdOzMkBYvSFKmK8nucgKGcAMAgOHODo2ooqZVDW3u8bairBRVlWbLmRhrY2WBwbAUAACGq6hpVdNRj1db01GPNta02FRRYBFuAMAw7e4BHfjwtDo8g3aXghDQ7h5QQ5tbo5bl1T5qWWpocxv53wnDUgBgiEgbeoBvjp0Zmvb5zp5B4+bfcOUGAAwRaUMP8E3G/MRpn1+8wKxgIxFuAMAIkTj0AN8sSZmnoqwURTscXu3RDoeKslKMu2ojEW4AwAi+DD0gclWVZqtwqcurrXCpS1Wl2TZVFFjMuQEAA0Ti0AN850yM1d6yPHV4BtXZM8g6NwCA0Hd+6KHpqMdraCra4VDhUpfRX2TwXabL7FBzHsNSAGCISBt6AKbClRsAMESkDT0AUyHcAIBhImXoAZgKw1IAAMAohBsAAGAUwg0AADAK4QYAABiFcAMAAIxCuAEAAEYh3AAAAKMQbgAAgFEINwAAwCiEGwAAYBTCDQAAMArhBgAAGIVwAwAAjEK4AQAARiHcAAAAoxBuAACAUQg3AADAKIQbAABglBi7CwAAmKXdPaBjZ4a0eEGSMl1JdpeDCES4AQDMibNDI6qoaVVDm3u8rSgrRVWl2XImxtpYGSINw1IAgDlRUdOqpqMer7amox5trGmxqSJEKsINAGDW2t0Damhza9SyvNpHLUsNbW51eAZtqgyRiHADAJi1Y2eGpn2+s4dwg+Ah3AAAZi1jfuK0zy9ewMRiBA/hBgAwa0tS5qkoK0XRDodXe7TDoaKsFO6aQlARbgAAc6KqNFuFS11ebYVLXaoqzbapIkQqbgUHAMwJZ2Ks9pblqcMzqM6eQda5gW0INwCAOZXpItTAXgxLAQAAoxBuAACAUQg3AADAKIQbAABgFMINAAAwCuEGAAAYxfZwU11drczMTCUkJCgnJ0eNjY3THr9v3z5de+21SkxM1MKFC3Xvvfeqp6cnSNUCAIBQZ2u4qa2t1aZNm7Rt2za1tLRo1apVWrNmjbq6uiY9/q233tKGDRtUVlam999/Xy+99JLeeecd3XfffUGuHAAAhCpbw81TTz2lsrIy3XfffVq2bJl+9rOfKT09Xbt27Zr0+P/6r//S4sWLVVFRoczMTH3zm9/U9773PR0+fDjIlQMAgFBlW7gZGRlRc3OziouLvdqLi4t18ODBSc8pKCjQiRMnVFdXJ8uy9Omnn+rll1/WLbfcMuX7DA8Pq6+vz+sBAADMZVu48Xg8Gh0dVWpqqld7amqqTp06Nek5BQUF2rdvn0pKShQXF6dLL71UX/nKV1RVVTXl+1RWVsrpdI4/0tPT5/RzAACA0GL7hGKHw+H1s2VZE9rOO3LkiCoqKvTYY4+publZb7zxhjo6OlReXj7l62/dulW9vb3jj+PHj89p/QAAILTYtnGmy+VSdHT0hKs0p0+fnnA157zKykoVFhbq0UcflSRdc801SkpK0qpVq7Rz504tXLhwwjnx8fGKj4+f+w8AAABCkm1XbuLi4pSTk6P6+nqv9vr6ehUUFEx6ztDQkKKivEuOjo6W9PkVHwAAAFuHpTZv3qx//Md/1PPPP68PPvhADz30kLq6usaHmbZu3aoNGzaMH7927Vq98sor2rVrl9rb29XU1KSKigrl5eVp0aJFdn2Mce3uAR348LQ6PIN2lwIAQMSybVhKkkpKStTT06MdO3aou7tby5cvV11dnTIyMiRJ3d3dXmve3HPPPerv79fPf/5zPfzww/rKV76iG2+8UT/+8Y/t+giSpLNDI6qoaVVDm3u8rSgrRVWl2XImxtpYGQAAkcdhRdh4Tl9fn5xOp3p7e5WcnDwnr7lhz9tqOurR6Bf+KaMdDhUudWlvWd6cvAcAAJHMn+9v2++WCnft7gE1tLm9go0kjVqWGtrcDFEBABBkhJtZOnZmaNrnO3sINwAABBPhZpYy5idO+/ziBUlBqgQAAEiEm1lbkjJPRVkpir5g4cFoh0NFWSnKdBFuAAAIJsLNHKgqzVbhUpdXW+FSl6pKs22qCACAyGXrreCmcCbGam9Znjo8g+rsGdTiBUlcsQEAwCaEmzmU6SLUAABgN4alAACAUQg3AADAKIQbAABgFMINAAAwCuEGAAAYhXADAACMQrgBAABGIdwAAACjEG4AAIBRCDcAAMAohBsAAGAU9pYCgAjQ7h7QsTNDbOyLiEC4AQCDnR0aUUVNqxra3ONtRVkpqirNljMx1sbKgMBhWAoADFZR06qmox6vtqajHm2sabGpIiDwCDcAYKh294Aa2twatSyv9lHLUkObWx2eQZsqAwKLcAMAhjp2Zmja5zt7CDcwE+EGAAyVMT9x2ucXL2BiMcxEuAEAQy1JmaeirBRFOxxe7dEOh4qyUrhrCsYi3ACAwapKs1W41OXVVrjUparSbJsqAgKPW8EBwGDOxFjtLctTh2dQnT2DrHODiEC4AYAIkOki1CByMCwFAACMQrgBAABGIdwAAACjEG4AAIBRCDcAAMAohBsAAGAUwg0AADAK4QYAABiFcAMAAIxCuAEAAEYh3AAAAKMQbgAAgFEINwAAwCiEGwAAYBTCDQAAMArhBgAAGIVwAwAAjEK4AQAARiHcAAAAoxBuAACAUQg3AADAKIQbAABgFMINAAAwCuEGAAAYhXADAACMQrgBAABGIdwAAACjEG4AAIBRCDcAAMAohBsAAGAUwg0AADAK4QYAABiFcAMAAIxie7iprq5WZmamEhISlJOTo8bGxmmPHx4e1rZt25SRkaH4+Hh97Wtf0/PPPx+kagEAQKiLsfPNa2trtWnTJlVXV6uwsFDPPfec1qxZoyNHjuirX/3qpOfcfvvt+vTTT7Vnzx4tXbpUp0+f1rlz54JcOQAACFUOy7Isu9585cqVWrFihXbt2jXetmzZMq1bt06VlZUTjn/jjTd0xx13qL29XfPnz5/Re/b19cnpdKq3t1fJyckzrh0AAASPP9/ftg1LjYyMqLm5WcXFxV7txcXFOnjw4KTnvP7668rNzdVPfvITXXbZZbr88sv1yCOP6E9/+tOU7zM8PKy+vj6vBwAAMJdtw1Iej0ejo6NKTU31ak9NTdWpU6cmPae9vV1vvfWWEhIS9Oqrr8rj8eiBBx7QmTNnppx3U1lZqe3bt895/QAAIDTZPqHY4XB4/WxZ1oS288bGxuRwOLRv3z7l5eXp5ptv1lNPPaVf/epXU1692bp1q3p7e8cfx48fn/PPAAAAQodtV25cLpeio6MnXKU5ffr0hKs55y1cuFCXXXaZnE7neNuyZctkWZZOnDihrKysCefEx8crPj5+bosHAAAhy7YrN3FxccrJyVF9fb1Xe319vQoKCiY9p7CwUCdPntTAwMB420cffaSoqCilpaUFtF4AAPDl2t0DOvDhaXV4Bm2rwdZbwTdv3qz169crNzdX+fn52r17t7q6ulReXi7p8yGlTz75RHv37pUk3Xnnnfq7v/s73Xvvvdq+fbs8Ho8effRRffe739VFF11k50cBACCinR0aUUVNqxra3ONtRVkpqirNljMxNqi12BpuSkpK1NPTox07dqi7u1vLly9XXV2dMjIyJEnd3d3q6uoaP37evHmqr6/Xxo0blZubqwULFuj222/Xzp077foIAABAUkVNq5qOerzamo56tLGmRXvL8oJai63r3NiBdW4AAJhb7e4B3fjkm1M+f+CRbynTlTSr9wiLdW4AAIAZjp0Zmvb5zp7gzr8h3AAAgFnJmJ847fOLF8zuqo2/CDcAAGBWlqTMU1FWiqIvWKcu2uFQUVbKrIek/EW4AYAwFwq33gJVpdkqXOryaitc6lJVaXbQa7H1bqlI0+4e0LEzQ1q8ICnoKRaAeULp1lvAmRirvWV56vAMqrNn0NbvOu6WCgL+AAEIhA173lbTUY9Gv/BnPNrhUOFSV9BvvQUCjbulQsx09/4DwEy0uwfU0Ob2CjaSNGpZamhzM0SFiEa4CTD+AAEIhFC79RYIJYSbAOMPEIBACLVbb4FQQrgJMP4AAQiEULv1FgglhJsA4w8QgEAJpVtvgVDC3VJB0Dv0mTbWtHC3FICACIVbb4FA8+f7m3ATRPwBAgBgZvz5/mYRvyDKdBFqAAAINObcAAAAoxBuAACAUQg3AADAKIQbAABgFMINAAAwCuEGAAAYhXADAACMQrgBAABGIdwAAACjEG4AAIBR2H4BE7S7B3TszBB7YAEAwhLhBuPODo2ooqaV3csBAGGNYSmMq6hpVdNRj1db01GPNta02FQRAAD+I9xA0udDUQ1tbo1allf7qGWpoc2tDs+gTZUBAOAfwg0kScfODE37fGcP4QYAEB4IN5AkZcxPnPb5xQuYWAwACA+EG0iSlqTMU1FWiqIdDq/2aIdDRVkp3DUFAAgbhBuMqyrNVuFSl1db4VKXqkqzbaoIAAD/cSs4xjkTY7W3LE8dnkF19gyyzg0AICwRbjBBpotQAwAIXwxLAQAAoxBuAACAUQg3AADAKH6Fm3fffVc7d+5UdXW1PB7vZfr7+vr03e9+d06LAwAA8JfDsi5Yb38K+/fv19q1a5WVlaX+/n4NDQ3pN7/5jW644QZJ0qeffqpFixZpdHQ0oAXPVl9fn5xOp3p7e5WcnGx3OQAAwAf+fH/7fOXmiSee0COPPKI//vGP6uzs1A9/+EPdeuuteuONN2ZdMAAAwFzx+Vbw999/X//0T/8kSXI4HHr00UeVlpam73znO6qpqVFeXl7AigQAAPCVz+EmPj5eZ8+e9WorLS1VVFSU7rjjDj355JNzXRsAAIDffA431113nQ4cOKCcnByv9pKSEo2Njenuu++e8+IAAAD85XO4+f73v6+GhoZJnystLZUk7d69e26qAgAAmCGfw81tt92m2267Tf/xH/+hm266acLzpaWl6uvrm9PiAAAA/OX3In633HKLHn74YY2MjIy3ud1urV27Vlu3bp3T4gAAAPzld7hpaGjQv/7rv+rrX/+63n//ff37v/+7li9froGBAb377ruBqBEAAMBnfoeblStXqqWlRddcc41ycnJ022236eGHH9Z//ud/Kj09PRA1AgAA+GxGe0t9+OGHeuedd5SWlqaYmBj9z//8j4aGhua6NgAAAL/5HW5+9KMfKT8/X6tXr9Yf//hHvfPOO+NXcg4dOhSIGgEAAHzmd7h5+umn9dprr6mqqkoJCQm6+uqr9fbbb+sv/uIv9K1vfSsAJQIAAPjO51vBz3vvvffkcrm82mJjY/XTn/5Uf/7nfz5nhQEAAMyE31duLgw2X3T99dfPqhgAAIDZmtGEYgAAgFBFuAEAAEYh3AAAAKMQbgAAgFH8vlsKgdXuHtCxM0NavCBJma4ku8sBACDsEG5CxNmhEVXUtKqhzT3eVpSVoqrSbDkTY22sDACA8MKwVIioqGlV01GPV1vTUY821rTYVBEAAOGJcBMC2t0Damhza9SyvNpHLUsNbW51eAZtqgwAgPBDuAkBx85Mv+loZw/hBgAAX9kebqqrq5WZmamEhATl5OSosbHRp/OampoUExOj6667LrAFBkHG/MRpn1+8gInFAAD4ytZwU1tbq02bNmnbtm1qaWnRqlWrtGbNGnV1dU17Xm9vrzZs2KA/+7M/C1KlgbUkZZ6KslIU7XB4tUc7HCrKSuGuKQAA/OCwrAsmegTRypUrtWLFCu3atWu8bdmyZVq3bp0qKyunPO+OO+5QVlaWoqOj9dprr6m1tXXKY4eHhzU8PDz+c19fn9LT09Xb26vk5OQ5+RxzoXfoM22saeFuKQAAJtHX1yen0+nT97dtt4KPjIyoublZW7Zs8WovLi7WwYMHpzzvhRde0Mcff6xf//rX2rlz55e+T2VlpbZv3z7regPNmRirvWV56vAMqrNnkHVuAACYIduGpTwej0ZHR5WamurVnpqaqlOnTk16Tltbm7Zs2aJ9+/YpJsa3XLZ161b19vaOP44fPz7r2gMp05WkG664hGADAMAM2b6In+OCeSaWZU1ok6TR0VHdeeed2r59uy6//HKfXz8+Pl7x8fGzrhMAAIQH28KNy+VSdHT0hKs0p0+fnnA1R5L6+/t1+PBhtbS06Ac/+IEkaWxsTJZlKSYmRvv379eNN94YlNoBAEDosm1YKi4uTjk5Oaqvr/dqr6+vV0FBwYTjk5OT9d5776m1tXX8UV5eriuuuEKtra1auXJlsEoHAAAhzNZhqc2bN2v9+vXKzc1Vfn6+du/era6uLpWXl0v6fL7MJ598or179yoqKkrLly/3Ov+SSy5RQkLChHYAABC5bA03JSUl6unp0Y4dO9Td3a3ly5errq5OGRkZkqTu7u4vXfMGAADgi2xd58YO/twnDwAAQoM/39+2b78AAAAwlwg3AADAKIQbAABgFMINAAAwCuEGAAAYhXADAACMQrgBAABGIdwAAACjEG4AAIBRCDcAAMAohBsAAGAUwg0AADAK4QYAABiFcAMAAIxCuAEAAEYh3AAAAKMQbgAAgFEINwAAwCiEGwAAYBTCDQAAMEqM3QUAABBM7e4BHTszpMULkpTpSrK7HAQA4QYAEBHODo2ooqZVDW3u8bairBRVlWbLmRhrY2WYawxLAQAiQkVNq5qOerzamo56tLGmxaaKECiEGwCA8drdA2poc2vUsrzaRy1LDW1udXgGbaoMgUC4AQAY79iZoWmf7+wh3JiEcAMAMF7G/MRpn1+8gInFJiHcAACMtyRlnoqyUhTtcHi1RzscKspK4a4pwxBuAAARoao0W4VLXV5thUtdqirNtqkiBAq3ggMAIoIzMVZ7y/LU4RlUZ88g69wYjHADAIgomS5CjekYlgIAAEYh3AAAAKMQbgAAgFEINwAAwChMKAZsws7EABAYhBsgyNiZGAACi2EpIMjYmRgAAotwAwQROxMDQOARboAgYmdiAAg85twAQcTOxMHHxG0g8hBugCA6vzNx01GP19BUtMOhwqUuvnznEBO3gcjFsBQQZOxMHBxM3AYiF1dugCBjZ+LAOz9x+0JfnLjNvzlgLsINYBN2Jg4cXyZu828PmIthKQDGYeI2ENkINwCMc37idrTD4dUe7XCoKCuFqzaA4Qg3AIzExG0gcjHnBoCRwmXiNuvwAHOPcAPAaKE6cZt1eIDAYVgKAGzAOjxA4BBuACDI2EAVCCzCDQAEGRuoAoHFnBsACDLW4fEfE6/hD8INAAQZG6j6jonXmAmGpQDABqzD4xsmXmMmuHIDADYIl3V47MQGqJgpwg0A2ChU1+EJBWyAipliWAoAEJKYeI2ZItwAAEISG6Bipgg3AICQxcRrzARzbgAAIYuJ15gJ26/cVFdXKzMzUwkJCcrJyVFjY+OUx77yyitavXq1UlJSlJycrPz8fP3ud78LYrUAADtkupJ0wxWXEGzgE1vDTW1trTZt2qRt27appaVFq1at0po1a9TV1TXp8Q0NDVq9erXq6urU3NysG264QWvXrlVLC+sdAACAzzks64Kd24Jo5cqVWrFihXbt2jXetmzZMq1bt06VlZU+vcbVV1+tkpISPfbYYz4d39fXJ6fTqd7eXiUnJ8+obgAAEFz+fH/bduVmZGREzc3NKi4u9movLi7WwYMHfXqNsbEx9ff3a/78+VMeMzw8rL6+Pq8HAGBy7e4BHfjwNDuTI6zZNqHY4/FodHRUqampXu2pqak6deqUT6/x5JNPanBwULfffvuUx1RWVmr79u2zqhUATMceTjCJ7ROKHResX2BZ1oS2ydTU1OiJJ55QbW2tLrnkkimP27p1q3p7e8cfx48fn3XNAGAa9nCCSWy7cuNyuRQdHT3hKs3p06cnXM25UG1trcrKyvTSSy/ppptumvbY+Ph4xcfHz7peADAVezjBNLZduYmLi1NOTo7q6+u92uvr61VQUDDleTU1Nbrnnnv04osv6pZbbgl0mQBgPF/2cALCia2L+G3evFnr169Xbm6u8vPztXv3bnV1dam8vFzS50NKn3zyifbu3Svp82CzYcMGPf300/rGN74xftXnoosuktPptO1zAEA4Yw8nmMbWOTclJSX62c9+ph07dui6665TQ0OD6urqlJGRIUnq7u72WvPmueee07lz5/TXf/3XWrhw4fjjwQcftOsjAEDYYw8nmMbWdW7swDo3ADBR79Bn2ljTwt1SCFn+fH+ztxQAgD2cYBTCDQBgXKaLUIPwZ/s6NwAAAHOJcAMAAIxCuAEAAEYh3AAAAKMQbgAAgFEINwAAwCiEGwAAYBTCDQAAMArhBgAAGIVwAwAAjEK4AQAARiHcAAAAoxBuAACAUQg3AADAKIQbAABgFMINAAAwCuEGAAAYhXADAACMQrgBAABGIdwAAACjEG4AAIBRCDcAAMAohBsAAGAUwg0AADAK4QYAABiFcAMAAIxCuAEAAEYh3AAAAKMQbgAAgFEINwAAwCiEGwAAYBTCDQAAMArhBgAAGIVwAwAAjEK4AQAARiHcAAAAo8TYXQCAL9fuHtCxM0NavCBJma4ku8sBgJBGuAFC2NmhEVXUtKqhzT3eVpSVoqrSbDkTY22sDABCF8NSQAirqGlV01GPV1vTUY821rTYVBEAhD7CDRCi2t0Damhza9SyvNpHLUsNbW51eAZtqgwAQhvhBghRx84MTft8Zw/hBgAmQ7gBQlTG/MRpn1+8gInFADAZwg0QopakzFNRVoqiHQ6v9miHQ0VZKdw1BQBTINwAIayqNFuFS11ebYVLXaoqzbapIgAIfdwKDoQwZ2Ks9pblqcMzqM6eQda5AQAfEG6AMJDpItQAgK8YlgIAAEbhyg0AAD5gG5TwQbgBAGAabIMSfhiWAgBgGmyDEn4INwAATIFtUMIT4QYAgCmwDUp4ItwAADAFtkEJT4QbAACmwDYo4YlwAwDANNgGJfxwKzgAANNgG5TwQ7gBAMAHbIMSPhiWAgAARiHcAAAAo9gebqqrq5WZmamEhATl5OSosbFx2uPffPNN5eTkKCEhQUuWLNEvfvGLIFWKUNTuHtCBD0+zkBYAYJytc25qa2u1adMmVVdXq7CwUM8995zWrFmjI0eO6Ktf/eqE4zs6OnTzzTfr/vvv169//Ws1NTXpgQceUEpKiv7yL//Shk8Au7DXCwBgKg7LumBN6SBauXKlVqxYoV27do23LVu2TOvWrVNlZeWE4//mb/5Gr7/+uj744IPxtvLycr377rs6dOiQT+/Z19cnp9Op3t5eJScnz/5DwBYb9rytpqMeryXRox0OFS51aW9Zno2VAQACwZ/vb9uGpUZGRtTc3Kzi4mKv9uLiYh08eHDScw4dOjTh+G9/+9s6fPiwPvvss0nPGR4eVl9fn9cD4Y29XgAA07Et3Hg8Ho2Ojio1NdWrPTU1VadOnZr0nFOnTk16/Llz5+TxeCY9p7KyUk6nc/yRnp4+Nx8AtmGvFwDAdGyfUOy4YElry7ImtH3Z8ZO1n7d161b19vaOP44fPz7LimE39noBAEzHtgnFLpdL0dHRE67SnD59esLVmfMuvfTSSY+PiYnRggULJj0nPj5e8fHxc1M0QsL5vV6mmnPDIlsAENlsu3ITFxennJwc1dfXe7XX19eroKBg0nPy8/MnHL9//37l5uYqNpY7ZCIJe70AAKZi663gmzdv1vr165Wbm6v8/Hzt3r1bXV1dKi8vl/T5kNInn3yivXv3Svr8zqif//zn2rx5s+6//34dOnRIe/bsUU1NjZ0fAzZgrxcAwFRsDTclJSXq6enRjh071N3dreXLl6uurk4ZGRmSpO7ubnV1dY0fn5mZqbq6Oj300EN69tlntWjRIj3zzDOscRPB2OsFAHAhW9e5sQPr3AAAEH7CYp0bAACAQCDcAAAAoxBuAACAUQg3AADAKIQbAABgFMINAAAwCuEGAAAYhXADAACMQrgBAABGsXX7BTucX5C5r6/P5koAAICvzn9v+7KxQsSFm/7+fklSenq6zZUAAAB/9ff3y+l0TntMxO0tNTY2ppMnT+riiy+Ww+Gwu5w50dfXp/T0dB0/fpz9skIcfRU+6KvwQV+Fj9n0lWVZ6u/v16JFixQVNf2smoi7chMVFaW0tDS7ywiI5ORkfrHDBH0VPuir8EFfhY+Z9tWXXbE5jwnFAADAKIQbAABgFMKNAeLj4/X4448rPj7e7lLwJeir8EFfhQ/6KnwEq68ibkIxAAAwG1duAACAUQg3AADAKIQbAABgFMINAAAwCuEmTFRXVyszM1MJCQnKyclRY2PjlMe+8sorWr16tVJSUpScnKz8/Hz97ne/C2K1kc2fvvqipqYmxcTE6LrrrgtsgRjnb18NDw9r27ZtysjIUHx8vL72ta/p+eefD1K1kc3fvtq3b5+uvfZaJSYmauHChbr33nvV09MTpGojU0NDg9auXatFixbJ4XDotdde+9Jz3nzzTeXk5CghIUFLlizRL37xi7kpxkLI++d//mcrNjbW+uUvf2kdOXLEevDBB62kpCTr2LFjkx7/4IMPWj/+8Y+tt99+2/roo4+srVu3WrGxsdZ///d/B7nyyONvX5139uxZa8mSJVZxcbF17bXXBqfYCDeTvrr11lutlStXWvX19VZHR4f1hz/8wWpqagpi1ZHJ375qbGy0oqKirKefftpqb2+3Ghsbrauvvtpat25dkCuPLHV1dda2bdusf/mXf7EkWa+++uq0x7e3t1uJiYnWgw8+aB05csT65S9/acXGxlovv/zyrGsh3ISBvLw8q7y83KvtyiuvtLZs2eLza1x11VXW9u3b57o0XGCmfVVSUmL97d/+rfX4448TboLE37767W9/azmdTqunpycY5eEL/O2rn/70p9aSJUu82p555hkrLS0tYDXCmy/h5oc//KF15ZVXerV973vfs77xjW/M+v0ZlgpxIyMjam5uVnFxsVd7cXGxDh486NNrjI2Nqb+/X/Pnzw9Eifg/M+2rF154QR9//LEef/zxQJeI/zOTvnr99deVm5urn/zkJ7rssst0+eWX65FHHtGf/vSnYJQcsWbSVwUFBTpx4oTq6upkWZY+/fRTvfzyy7rllluCUTJ8dOjQoQn9+u1vf1uHDx/WZ599NqvXjriNM8ONx+PR6OioUlNTvdpTU1N16tQpn17jySef1ODgoG6//fZAlIj/M5O+amtr05YtW9TY2KiYGH4dg2UmfdXe3q633npLCQkJevXVV+XxePTAAw/ozJkzzLsJoJn0VUFBgfbt26eSkhL97//+r86dO6dbb71VVVVVwSgZPjp16tSk/Xru3Dl5PB4tXLhwxq/NlZsw4XA4vH62LGtC22Rqamr0xBNPqLa2VpdcckmgysMX+NpXo6OjuvPOO7V9+3ZdfvnlwSoPX+DP79XY2JgcDof27dunvLw83XzzzXrqqaf0q1/9iqs3QeBPXx05ckQVFRV67LHH1NzcrDfeeEMdHR0qLy8PRqnww2T9Olm7v/hfxRDncrkUHR094f9QTp8+PSHxXqi2tlZlZWV66aWXdNNNNwWyTMj/vurv79fhw4fV0tKiH/zgB5I+/wK1LEsxMTHav3+/brzxxqDUHmlm8nu1cOFCXXbZZXI6neNty5Ytk2VZOnHihLKysgJac6SaSV9VVlaqsLBQjz76qCTpmmuuUVJSklatWqWdO3fO6ooA5s6ll146ab/GxMRowYIFs3ptrtyEuLi4OOXk5Ki+vt6rvb6+XgUFBVOeV1NTo3vuuUcvvvgi48xB4m9fJScn67333lNra+v4o7y8XFdccYVaW1u1cuXKYJUecWbye1VYWKiTJ09qYGBgvO2jjz5SVFSU0tLSAlpvJJtJXw0NDSkqyvvrLTo6WtL/vzIA++Xn50/o1/379ys3N1exsbGze/FZT0lGwJ2/DXLPnj3WkSNHrE2bNllJSUlWZ2enZVmWtWXLFmv9+vXjx7/44otWTEyM9eyzz1rd3d3jj7Nnz9r1ESKGv311Ie6WCh5/+6q/v99KS0uzvvOd71jvv/++9eabb1pZWVnWfffdZ9dHiBj+9tULL7xgxcTEWNXV1dbHH39svfXWW1Zubq6Vl5dn10eICP39/VZLS4vV0tJiSbKeeuopq6WlZfyW/Qv76fyt4A899JB15MgRa8+ePdwKHmmeffZZKyMjw4qLi7NWrFhhvfnmm+PP3X333db1118//vP1119vSZrwuPvuu4NfeATyp68uRLgJLn/76oMPPrBuuukm66KLLrLS0tKszZs3W0NDQ0GuOjL521fPPPOMddVVV1kXXXSRtXDhQuuuu+6yTpw4EeSqI8uBAwem/e6ZrJ9+//vfW9nZ2VZcXJy1ePFia9euXXNSi8OyuEYHAADMwZwbAABgFMINAAAwCuEGAAAYhXADAACMQrgBAABGIdwAAACjEG4AAIBRCDcAAMAohBsAAGAUwg0Ao3R3d+vOO+/UFVdcoaioKG3atMnukgAEGeEGgFGGh4eVkpKibdu26dprr7W7HAA2INwACCtut1uXXnqp/v7v/3687Q9/+IPi4uK0f/9+LV68WE8//bQ2bNggp9NpY6UA7BJjdwEA4I+UlBQ9//zzWrdunYqLi3XllVfqr/7qr/TAAw+ouLjY7vIAhADCDYCwc/PNN+v+++/XXXfdpa9//etKSEjQj370I7vLAhAiGJYCEJb+4R/+QefOndNvfvMb7du3TwkJCXaXBCBEEG4AhKX29nadPHlSY2NjOnbsmN3lAAghDEsBCDsjIyO66667VFJSoiuvvFJlZWV67733lJqaandpAEIA4QZA2Nm2bZt6e3v1zDPPaN68efrtb3+rsrIy/du//ZskqbW1VZI0MDAgt9ut1tZWxcXF6aqrrrKxagDB4rAsy7K7CADw1e9//3utXr1aBw4c0De/+U1JUldXl6655hpVVlbq+9//vhwOx4TzMjIy1NnZGeRqAdiBcAMAAIzChGIAAGAUwg0AADAK4QYAABiFcAMAAIxCuAEAAEYh3AAAAKMQbgAAgFEINwAAwCiEGwAAYBTCDQAAMArhBgAAGOX/AZeQ/CFC982gAAAAAElFTkSuQmCC" + "image/png": "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vfZav/7vv/++lZqaakVGRlrTpk2zNm7cGOSKzTCU437ttddakvpsP/jBD4JfeAgb6t/6NxF0hm+ox33fvn3WTTfdZF1wwQXW1KlTrYKCAqurqyvIVYe+oR73559/3rriiiusCy64wJo8ebJ19913W19++WWQqw5dO3bsGPDf6ZE6nzosizE3AABgJq7RAQAAxiLoAAAAYxF0AACAsQg6AADAWAQdAABgLIIOAAAwFkEHAAAYi6ADAACMRdABAADGIugAMEpTU5OWLl2qmTNnaty4ccrPz7e7JAA2IugAMEp3d7fi4+NVVFSkq666yu5yANiMoAMgpLS2tmrSpEn653/+Z1/b7373O0VGRmr79u2aNm2annvuOS1fvlxOp9PGSgGMBuF2FwAAQxEfH68tW7ZoyZIlysrK0qxZs/Q3f/M3evDBB5WVlWV3eQBGGYIOgJBzyy236P7779fdd9+t7373u4qOjtbTTz9td1kARiGmrgCEpGeeeUYnT57Ua6+9pm3btik6OtrukgCMQgQdACGpoaFBR48e1alTp3To0CG7ywEwSjF1BSDk9PT06O6771Z2drZmzZql3NxcffLJJ0pISLC7NACjDEEHQMgpKipSe3u7nn/+eV144YV69913lZubq//6r/+SJNXV1UmSTpw4odbWVtXV1SkyMlJXXHGFjVUDsIPDsizL7iIAYLDef/993XzzzdqxY4e+973vSZIaGxt15ZVXqri4WD/84Q/lcDj67JeUlKSDBw8GuVoAdiPoAAAAY3ExMgAAMBZBBwAAGIugAwAAjEXQAQAAxiLoAAAAYxF0AACAsQg6AADAWAQdAABgLIIOAAAwFkEHAAAYi6ADAACM9f8BzdL+CyM3Yh0AAAAASUVORK5CYII=" }, "metadata": {}, "output_type": "display_data" diff --git a/tests/generators/test_neldermead.py b/tests/generators/test_neldermead.py index e8ba61e7..22c7d721 100644 --- a/tests/generators/test_neldermead.py +++ b/tests/generators/test_neldermead.py @@ -138,7 +138,7 @@ def wrap(x): data = X.vocs.variable_data(X.data).to_numpy() assert np.array_equal(data, scipy_data) - idx, best = X.vocs.select_best(X.data) + idx, best, _ = X.vocs.select_best(X.data) xbest = X.vocs.variable_data(X.data.loc[idx, :]).to_numpy().flatten() assert np.array_equal( xbest, result.x @@ -216,7 +216,7 @@ def wrap(x): assert data.shape == scipy_data.shape assert np.allclose(data, scipy_data, rtol=0, atol=1e-10) - idx, best = X.vocs.select_best(X.data) + idx, best, _ = X.vocs.select_best(X.data) xbest = X.vocs.variable_data(X.data.loc[idx, :]).to_numpy().flatten() assert np.array_equal( xbest, result.x diff --git a/tests/test_vocs.py b/tests/test_vocs.py index 410e3d84..1106d3c6 100644 --- a/tests/test_vocs.py +++ b/tests/test_vocs.py @@ -208,29 +208,29 @@ def test_select_best(self): # test maximization vocs.objectives[vocs.objective_names[0]] = "MAXIMIZE" - idx, val = vocs.select_best(test_data) + idx, val, _ = vocs.select_best(test_data) assert idx == [2] assert val == [1.0] vocs.constraints = {} - idx, val = vocs.select_best(test_data) + idx, val, _ = vocs.select_best(test_data) assert idx == [3] assert val == [1.5] # test returning multiple best values -- sorted by best value - idx, val = vocs.select_best(test_data, 2) + idx, val, _ = vocs.select_best(test_data, 2) assert np.allclose(idx, np.array([3, 2])) assert np.allclose(val, np.array([1.5, 1.0])) # test minimization vocs.objectives[vocs.objective_names[0]] = "MINIMIZE" vocs.constraints = {"c1": ["GREATER_THAN", 0.5]} - idx, val = vocs.select_best(test_data) + idx, val, _ = vocs.select_best(test_data) assert idx == [0] assert val == [0.5] vocs.constraints = {} - idx, val = vocs.select_best(test_data) + idx, val, _ = vocs.select_best(test_data) assert idx == 1 assert val == 0.1 diff --git a/xopt/asynchronous.py b/xopt/asynchronous.py index 710d7216..f23d484c 100644 --- a/xopt/asynchronous.py +++ b/xopt/asynchronous.py @@ -31,7 +31,8 @@ def submit_data( """ Submit data to evaluator and return futures indexed to internal futures list. - Args: + Parameters + ---------- input_data: dataframe containing input data """ diff --git a/xopt/generators/bayesian/bax/acquisition.py b/xopt/generators/bayesian/bax/acquisition.py index 418e41fb..fb059106 100644 --- a/xopt/generators/bayesian/bax/acquisition.py +++ b/xopt/generators/bayesian/bax/acquisition.py @@ -20,7 +20,8 @@ class ModelListExpectedInformationGain(MultiObjectiveAnalyticAcquisitionFunction >>> EIG = ExpectedInformationGain(model, algo) >>> eig = EIG(test_X) - Args: + Parameters + ---------- model: A fitted independent multi-output (ModelList) model. """ @@ -62,13 +63,15 @@ def __init__(self, model: Model, algorithm: Algorithm, bounds: Tensor) -> None: def forward(self, X: Tensor) -> Tensor: r"""Evaluate Expected Information Gain on the candidate set X. - Args: + Parameters + ---------- X: A `(b1 x ... bk) x 1 x d`-dim batched tensor of `d`-dim design points. Expected Information Gain is computed for each point individually, i.e., what is considered are the marginal posteriors, not the joint. - Returns: + Returns + ------- A `(b1 x ... bk)`-dim tensor of Expected Information Gain values at the given design points `X`. """ diff --git a/xopt/generators/bayesian/bayesian_exploration.py b/xopt/generators/bayesian/bayesian_exploration.py index d7fcf1de..3807b8f0 100644 --- a/xopt/generators/bayesian/bayesian_exploration.py +++ b/xopt/generators/bayesian/bayesian_exploration.py @@ -55,7 +55,8 @@ def __init__( X_pending: Optional[Tensor] = None, ) -> None: r"""q-Upper Confidence Bound. - Args: + Parameters + ---------- model: A fitted model. sampler: The sampler used to draw base samples. Defaults to `SobolQMCNormalSampler(num_samples=512, collapse_batch_dims=True)` @@ -79,10 +80,13 @@ def __init__( @t_batch_mode_transform() def forward(self, X: Tensor) -> Tensor: r"""Evaluate qUpperConfidenceBound on the candidate set `X`. - Args: + Parameters + ---------- X: A `batch_sahpe x q x d`-dim Tensor of t-batches with `q` `d`-dim design points each. - Returns: + + Returns + ------- A `batch_shape'`-dim Tensor of Upper Confidence Bound values at the given design points `X`, where `batch_shape'` is the broadcasted batch shape of model and input `X`. diff --git a/xopt/generators/bayesian/custom_botorch/constrained_acquisition.py b/xopt/generators/bayesian/custom_botorch/constrained_acquisition.py index bb08b621..98c2025d 100644 --- a/xopt/generators/bayesian/custom_botorch/constrained_acquisition.py +++ b/xopt/generators/bayesian/custom_botorch/constrained_acquisition.py @@ -29,7 +29,8 @@ def ones_callable(Z, X=None): def forward(self, samples: Tensor, X: Optional[Tensor] = None) -> Tensor: r"""Evaluate the feasibility-weighted objective on the samples. - Args: + Parameters + ---------- samples: A `sample_shape x batch_shape x q x m`-dim Tensors of samples from a model posterior. X: A `batch_shape x q x d`-dim tensor of inputs. Relevant only if diff --git a/xopt/generators/bayesian/custom_botorch/heteroskedastic.py b/xopt/generators/bayesian/custom_botorch/heteroskedastic.py index 92ef53fc..9e013e23 100644 --- a/xopt/generators/bayesian/custom_botorch/heteroskedastic.py +++ b/xopt/generators/bayesian/custom_botorch/heteroskedastic.py @@ -38,7 +38,8 @@ def __init__( to specify mean and covariance modules. - Args: + Parameters + ---------- train_X: A `batch_shape x n x d` tensor of training features. train_Y: A `batch_shape x n x m` tensor of training observations. train_Yvar: A `batch_shape x n x m` tensor of observed measurement diff --git a/xopt/generators/bayesian/custom_botorch/identity.py b/xopt/generators/bayesian/custom_botorch/identity.py index 8f39db75..05fddf5e 100644 --- a/xopt/generators/bayesian/custom_botorch/identity.py +++ b/xopt/generators/bayesian/custom_botorch/identity.py @@ -11,10 +11,13 @@ def __init__(self, model) -> None: @t_batch_mode_transform() def forward(self, X: Tensor) -> Tensor: r"""Evaluate qUpperConfidenceBound on the candidate set `X`. - Args: + Parameters + ---------- X: A `batch_sahpe x q x d`-dim Tensor of t-batches with `q` `d`-dim design points each. - Returns: + + Returns + ------- A `batch_shape'`-dim Tensor of Upper Confidence Bound values at the given design points `X`, where `batch_shape'` is the broadcasted batch shape of model and input `X`. diff --git a/xopt/generators/bayesian/custom_botorch/proximal.py b/xopt/generators/bayesian/custom_botorch/proximal.py index d322c133..bb2b99c7 100644 --- a/xopt/generators/bayesian/custom_botorch/proximal.py +++ b/xopt/generators/bayesian/custom_botorch/proximal.py @@ -55,7 +55,8 @@ def __init__( r"""Derived Acquisition Function weighted by proximity to recently observed point. - Args: + Parameters + ---------- acq_function: The base acquisition function, operating on input tensors of feature dimension `d`. proximal_weights: A `d` dim tensor used to bias locality @@ -89,10 +90,12 @@ def __init__( def forward(self, X: Tensor) -> Tensor: r"""Evaluate base acquisition function with proximal weighting. - Args: + Parameters + ---------- X: Input tensor of feature dimension `d` . - Returns: + Returns + ------- Base acquisition function evaluated on tensor `X` multiplied by proximal weighting. """ @@ -143,7 +146,8 @@ def _validate_model(model: Model, proximal_weights: Tensor) -> None: Perform vaidation checks on model used in base acquisition function to make sure it is compatible with proximal weighting. - Args: + Parameters + ---------- model: Model associated with base acquisition function to be validated. proximal_weights: A `d` dim tensor used to bias locality along each axis. diff --git a/xopt/generators/bayesian/models/prior_mean.py b/xopt/generators/bayesian/models/prior_mean.py index 4de455e4..6235241b 100644 --- a/xopt/generators/bayesian/models/prior_mean.py +++ b/xopt/generators/bayesian/models/prior_mean.py @@ -14,7 +14,8 @@ def __init__( ): """Custom prior mean for a GP based on an arbitrary model. - Args: + Parameters + ---------- model: Representation of the model. input_transformer: Module used to transform inputs in the GP. outcome_transformer: Module used to transform outcomes in the GP. diff --git a/xopt/generators/bayesian/visualize.py b/xopt/generators/bayesian/visualize.py index 80a8342f..f814bf14 100644 --- a/xopt/generators/bayesian/visualize.py +++ b/xopt/generators/bayesian/visualize.py @@ -22,22 +22,36 @@ def visualize_generator_model( hollow red "o". Feasibility is calculated with respect to all constraints unless the selected output is a constraint itself, in which case only that one is considered. - Args: - generator: Bayesian generator object. - output_names: Outputs for which the GP models are displayed. Defaults to all outputs in generator.vocs. - variable_names: The variables with respect to which the GP models are displayed (maximum of 2). - Defaults to generator.vocs.variable_names. - idx: Index of the last sample to use. This also selects the point of reference in higher dimensions unless - an explicit reference_point is given. - reference_point: Reference point determining the value of variables in generator.vocs.variable_names, - but not in variable_names (slice plots in higher dimensions). Defaults to last used sample. - show_samples: Whether samples are shown. - show_prior_mean: Whether the prior mean is shown. - show_feasibility: Whether the feasibility region is shown. - show_acquisition: Whether the acquisition function is computed and shown. - n_grid: Number of grid points per dimension used to display the model predictions. + Parameters + ---------- + generator : Generator + Bayesian generator object. + output_names : List[str] + Outputs for which the GP models are displayed. Defaults to all outputs in + generator.vocs. + variable_names : List[str] + The variables with respect to which the GP models are displayed (maximum + of 2). Defaults to generator.vocs.variable_names. + idx : int + Index of the last sample to use. This also selects the point of reference in + higher dimensions unless an explicit reference_point is given. + reference_point : dict + Reference point determining the value of variables in + generator.vocs.variable_names, but not in variable_names (slice plots in + higher dimensions). Defaults to last used sample. + show_samples : bool, optional + Whether samples are shown. + show_prior_mean : bool, optional + Whether the prior mean is shown. + show_feasibility : bool, optional + Whether the feasibility region is shown. + show_acquisition : bool, optional + Whether the acquisition function is computed and shown. + n_grid : int, optional + Number of grid points per dimension used to display the model predictions. Returns: + -------- The matplotlib figure and axes objects. """ diff --git a/xopt/pydantic.py b/xopt/pydantic.py index af469f68..98f8b974 100644 --- a/xopt/pydantic.py +++ b/xopt/pydantic.py @@ -600,12 +600,14 @@ def get_callable_from_string(callable: str, bind: Any = None) -> Callable: """Get callable from a string. In the case that the callable points to a bound method, the function returns a callable taking the bind instance as the first arg. - Args: + Parameters + ---------- callable: String representation of callable abiding convention __module__:callable bind: Class to bind as self - Returns: + Returns + ------- Callable """ callable_split = callable.rsplit(".", 1) diff --git a/xopt/vocs.py b/xopt/vocs.py index 89a27796..4364bb66 100644 --- a/xopt/vocs.py +++ b/xopt/vocs.py @@ -293,12 +293,17 @@ def variable_data( Returns a dataframe containing variables according to `vocs.variables` in sorted order - Args: - data: Data to be processed. - prefix: Prefix added to column names. + Parameters + ---------- + data: DataFrame + Data to be processed. + prefix: str, optional + Prefix added to column names. - Returns: - result: processed Dataframe + Returns + ------- + result: DataFrame + Processed Dataframe """ return form_variable_data(self.variables, data, prefix=prefix) @@ -312,12 +317,17 @@ def objective_data( Returns a dataframe containing objective data transformed according to `vocs.objectives` such that we always assume minimization. - Args: - data: data to be processed. - prefix: prefix added to column names. + Parameters + ---------- + data: DataFrame + Data to be processed. + prefix: str, optional + Prefix added to column names. - Returns: - result: processed Dataframe + Returns + ------- + result: DataFrame + Processed Dataframe """ return form_objective_data(self.objectives, data, prefix, return_raw) @@ -330,12 +340,17 @@ def constraint_data( Returns a dataframe containing constraint data transformed according to `vocs.constraints` such that values that satisfy each constraint are negative. - Args: - data: data to be processed. - prefix: prefix added to column names. + Parameters + ---------- + data: DataFrame + Data to be processed. + prefix: str, optional + Prefix added to column names. - Returns: - result: processed Dataframe + Returns + ------- + result: DataFrame + Processed Dataframe """ return form_constraint_data(self.constraints, data, prefix) @@ -347,12 +362,17 @@ def observable_data( """ Returns a dataframe containing observable data - Args: - data: data to be processed. - prefix: prefix added to column names. + Parameters + ---------- + data: DataFrame + Data to be processed. + prefix: str, optional + Prefix added to column names. - Returns: - result: processed Dataframe + Returns + ------- + result: DataFrame + Processed Dataframe """ return form_observable_data(self.observable_names, data, prefix) @@ -366,12 +386,17 @@ def feasibility_data( not. Returned dataframe also contains a column `feasible` which denotes if all constraints are satisfied. - Args: - data: data to be processed. - prefix: prefix added to column names. + Parameters + ---------- + data: DataFrame + Data to be processed. + prefix: str, optional + Prefix added to column names. - Returns: - result: processed Dataframe + Returns + ------- + result: DataFrame + Processed Dataframe """ return form_feasibility_data(self.constraints, data, prefix) @@ -387,7 +412,7 @@ def normalize_inputs(self, input_points: pd.DataFrame) -> pd.DataFrame: Returns ------- - pd.DataFrame + result : pd.DataFrame A DataFrame with input data in the range [0,1] corresponding to the specified variable ranges. Contains columns equal to the intersection between `input_points` and `vocs.variable_names`. @@ -424,7 +449,7 @@ def denormalize_inputs(self, input_points: pd.DataFrame) -> pd.DataFrame: Returns ------- - pd.DataFrame + result : pd.DataFrame A DataFrame with denormalized input data corresponding to the specified variable ranges. Contains columns equal to the intersection between `input_points` and `vocs.variable_names`. @@ -454,13 +479,17 @@ def validate_input_data(self, input_points: pd.DataFrame) -> None: Validates input data. Raises an error if the input data does not satisfy requirements given by vocs. - Args: - input_points: input data to be validated. + Parameters + ---------- + input_points : DataFrame + Input data to be validated. - Returns: + Returns + ------- None - Raises: + Raises + ------ ValueError: if input data does not satisfy requirements. """ validate_input_data(self, input_points) @@ -471,33 +500,45 @@ def extract_data(self, data: pd.DataFrame, return_raw=False): constraints based on vocs - objective data is transformed based on `vocs.objectives` properties - Args: - data: dataframe to be split - return_raw: if True, return untransformed objective data + Parameters + ---------- + data: DataFrame + Dataframe to be split + return_raw : bool, optional + If True, return untransformed objective data - Returns: - variable_data: dataframe containing variable data - objective_data: dataframe containing objective data - constraint_data: dataframe containing constraint data + Returns + ------- + variable_data : DataFrame + Dataframe containing variable data + objective_data : DataFrame + Dataframe containing objective data + constraint_data : DataFrame + Dataframe containing constraint data """ variable_data = self.variable_data(data, "") objective_data = self.objective_data(data, "", return_raw) constraint_data = self.constraint_data(data, "") return variable_data, objective_data, constraint_data - def select_best(self, data: pd.DataFrame, n=1): + def select_best(self, data: pd.DataFrame, n: int = 1): """ get the best value and point for a given data set based on vocs - does not work for multi-objective problems - data that violates any constraints is ignored - Args: - data: dataframe to select best point from - n: number of best points to return + Parameters + ---------- + data: DataFrame + Dataframe to select best point from + n: int, optional + Number of best points to return - Returns: + Returns + ------- index: index of best point value: value of best point + params: input parameters that give the best point """ if self.n_objectives != 1: raise NotImplementedError( @@ -512,7 +553,11 @@ def select_best(self, data: pd.DataFrame, n=1): obj_name, ascending=ascending_flag[obj] )[obj_name][:n] - return res.index.to_numpy(), res.to_numpy() + params = data.iloc[res.index.to_numpy()][self.variable_names].to_dict( + orient="records" + )[0] + + return res.index.to_numpy(), res.to_numpy(), params def cumulative_optimum(self, data: pd.DataFrame) -> pd.DataFrame: """ @@ -520,12 +565,12 @@ def cumulative_optimum(self, data: pd.DataFrame) -> pd.DataFrame: Parameters ---------- - data: pd.DataFrame + data: DataFrame Data for which the cumulative optimum shall be calculated. Returns ------- - pd.DataFrame + DataFrame Cumulative optimum for the given DataFrame. """ @@ -640,10 +685,14 @@ def form_constraint_data(constraints: Dict, data: pd.DataFrame, prefix="constrai Use constraint dict and data (dataframe) to generate constraint data (dataframe). A constraint is satisfied if the evaluation is < 0. - Args: - constraints: Dictionary of constraints - data: Dataframe with the data to be evaluated - prefix: Prefix to use for the transformed data in the dataframe + Parameters + ---------- + constraints: dict + Dictionary of constraints + data: DataFrame + Dataframe with the data to be evaluated + prefix: str, optional + Prefix to use for the transformed data in the dataframe Returns a dataframe with the constraint data. @@ -683,10 +732,14 @@ def form_observable_data(observables: List, data: pd.DataFrame, prefix="observab Use constraint dict and data (dataframe) to generate constraint data (dataframe). A constraint is satisfied if the evaluation is < 0. - Args: - observables: Dictonary of constraints - data: Dataframe with the data to be evaluated - prefix: Prefix to use for the transformed data in the dataframe + Parameters + ---------- + observables: dict + Dictionary of observables + data: DataFrame + Dataframe with the data to be evaluated + prefix: str, optional + Prefix to use for the transformed data in the dataframe Returns a dataframe with the constraint data.