From 6d40ad16508b1f330b16b6f00512d9e52c25fdef Mon Sep 17 00:00:00 2001 From: Itai Caspi <30383381+itaicaspi-intel@users.noreply.github.com> Date: Thu, 15 Nov 2018 15:00:13 +0200 Subject: [PATCH] update of api docstrings across coach and tutorials [WIP] (#91) * updating the documentation website * adding the built docs * update of api docstrings across coach and tutorials 0-2 * added some missing api documentation * New Sphinx based documentation --- .gitignore | 2 + docs/404.html | 244 - .../design_imgs => _images}/ac.png | Bin docs/{img => _images}/act.png | Bin docs/_images/algorithms.png | Bin 0 -> 51160 bytes docs/_images/attention_discretization.png | Bin 0 -> 16399 bytes docs/{img => _images}/bollinger_bands.png | Bin docs/_images/box_discretization.png | Bin 0 -> 17143 bytes docs/_images/box_masking.png | Bin 0 -> 12810 bytes .../design_imgs => _images}/bs_dqn.png | Bin docs/_images/cil.png | Bin 0 -> 27469 bytes .../compare_by_num_episodes.png | Bin docs/{img => _images}/compare_by_time.png | Bin .../design_imgs => _images}/ddpg.png | Bin docs/_images/design.png | Bin 0 -> 109083 bytes .../design_imgs => _images}/dfp.png | Bin docs/{img => _images}/distributed.png | Bin .../distributional_dqn.png | Bin .../design_imgs => _images}/dqn.png | Bin .../design_imgs => _images}/dueling_dqn.png | Bin docs/{img => _images}/filters.png | Bin .../full_discrete_action_space_map.png | Bin 0 -> 20410 bytes docs/{img => _images}/improve.png | Bin docs/_images/linear_box_to_box_map.png | Bin 0 -> 12532 bytes .../design_imgs => _images}/naf.png | Bin .../design_imgs => _images}/nec.png | Bin docs/{img => _images}/network.png | Bin docs/{img => _images}/observe.png | Bin .../partial_discrete_action_space_map.png | Bin 0 -> 8562 bytes .../design_imgs => _images}/pg.png | Bin .../design_imgs => _images}/ppo.png | Bin docs/_images/qr_dqn.png | Bin 0 -> 26793 bytes docs/_images/rainbow.png | Bin 0 -> 38143 bytes docs/{img => _images}/separate_signals.png | Bin docs/{img => _images}/train.png | Bin .../{img => _images}/updating_dynamically.gif | Bin docs/_modules/index.html | 296 + .../rl_coach/agents/actor_critic_agent.html | 413 + docs/_modules/rl_coach/agents/agent.html | 1153 ++ docs/_modules/rl_coach/agents/bc_agent.html | 308 + .../agents/categorical_dqn_agent.html | 382 + docs/_modules/rl_coach/agents/cil_agent.html | 314 + .../rl_coach/agents/clipped_ppo_agent.html | 563 + docs/_modules/rl_coach/agents/ddpg_agent.html | 443 + docs/_modules/rl_coach/agents/dfp_agent.html | 475 + docs/_modules/rl_coach/agents/dqn_agent.html | 326 + docs/_modules/rl_coach/agents/mmc_agent.html | 306 + .../rl_coach/agents/n_step_q_agent.html | 373 + docs/_modules/rl_coach/agents/naf_agent.html | 354 + docs/_modules/rl_coach/agents/nec_agent.html | 435 + docs/_modules/rl_coach/agents/pal_agent.html | 334 + .../agents/policy_gradients_agent.html | 356 + docs/_modules/rl_coach/agents/ppo_agent.html | 620 + .../rl_coach/agents/qr_dqn_agent.html | 347 + .../rl_coach/agents/rainbow_dqn_agent.html | 359 + .../agents/value_optimization_agent.html | 325 + .../rl_coach/architectures/architecture.html | 442 + .../architectures/network_wrapper.html | 480 + docs/_modules/rl_coach/base_parameters.html | 801 ++ docs/_modules/rl_coach/core_types.html | 1092 ++ .../environments/carla_environment.html | 695 ++ .../control_suite_environment.html | 426 + .../environments/doom_environment.html | 495 + .../rl_coach/environments/environment.html | 721 ++ .../environments/gym_environment.html | 703 ++ .../environments/starcraft2_environment.html | 478 + .../exploration_policies/additive_noise.html | 330 + .../exploration_policies/boltzmann.html | 292 + .../exploration_policies/bootstrapped.html | 315 + .../exploration_policies/categorical.html | 281 + .../continuous_entropy.html | 265 + .../exploration_policies/e_greedy.html | 342 + .../exploration_policy.html | 311 + .../rl_coach/exploration_policies/greedy.html | 278 + .../exploration_policies/ou_process.html | 313 + .../exploration_policies/parameter_noise.html | 314 + .../truncated_normal.html | 337 + .../rl_coach/exploration_policies/ucb.html | 319 + .../action/attention_discretization.html | 300 + .../filters/action/box_discretization.html | 300 + .../rl_coach/filters/action/box_masking.html | 308 + .../full_discrete_action_space_map.html | 261 + .../filters/action/linear_box_to_box_map.html | 289 + .../partial_discrete_action_space_map.html | 286 + .../observation_clipping_filter.html | 274 + .../observation/observation_crop_filter.html | 321 + .../observation_move_axis_filter.html | 294 + .../observation_normalization_filter.html | 302 + ...on_reduction_by_sub_parts_name_filter.html | 308 + ...rvation_rescale_size_by_factor_filter.html | 300 + .../observation_rescale_to_size_filter.html | 326 + .../observation_rgb_to_y_filter.html | 278 + .../observation_squeeze_filter.html | 276 + .../observation_stacking_filter.html | 335 + .../observation_to_uint8_filter.html | 292 + .../reward/reward_clipping_filter.html | 281 + .../reward/reward_normalization_filter.html | 297 + .../filters/reward/reward_rescale_filter.html | 271 + .../episodic/episodic_experience_replay.html | 535 + .../episodic_hindsight_experience_replay.html | 375 + ...sodic_hrl_hindsight_experience_replay.html | 300 + .../episodic/single_episode_buffer.html | 260 + .../balanced_experience_replay.html | 400 + .../differentiable_neural_dictionary.html | 518 + .../non_episodic/experience_replay.html | 467 + .../prioritized_experience_replay.html | 526 + .../non_episodic/transition_collection.html | 263 + docs/_modules/rl_coach/spaces.html | 858 ++ .../components/additional_parameters.rst.txt | 18 + .../components/agents/imitation/bc.rst.txt | 29 + .../components/agents/imitation/cil.rst.txt | 36 + docs/_sources/components/agents/index.rst.txt | 43 + .../components/agents/other/dfp.rst.txt | 39 + .../agents/policy_optimization/ac.rst.txt | 40 + .../agents/policy_optimization/cppo.rst.txt | 44 + .../agents/policy_optimization/ddpg.rst.txt | 50 + .../agents/policy_optimization/hac.rst.txt | 24 + .../agents/policy_optimization/pg.rst.txt | 39 + .../agents/policy_optimization/ppo.rst.txt | 45 + .../agents/value_optimization/bs_dqn.rst.txt | 43 + .../categorical_dqn.rst.txt | 39 + .../value_optimization/double_dqn.rst.txt | 35 + .../agents/value_optimization/dqn.rst.txt | 37 + .../value_optimization/dueling_dqn.rst.txt | 27 + .../agents/value_optimization/mmc.rst.txt | 37 + .../agents/value_optimization/n_step.rst.txt | 35 + .../agents/value_optimization/naf.rst.txt | 33 + .../agents/value_optimization/nec.rst.txt | 50 + .../agents/value_optimization/pal.rst.txt | 45 + .../agents/value_optimization/qr_dqn.rst.txt | 33 + .../agents/value_optimization/rainbow.rst.txt | 51 + .../components/architectures/index.rst.txt | 27 + docs/_sources/components/core_types.rst.txt | 33 + .../components/environments/index.rst.txt | 70 + .../exploration_policies/index.rst.txt | 87 + .../_sources/components/filters/index.rst.txt | 28 + .../components/filters/input_filters.rst.txt | 67 + .../components/filters/output_filters.rst.txt | 37 + .../components/memories/index.rst.txt | 44 + docs/_sources/components/spaces.rst.txt | 64 + docs/_sources/contributing/add_agent.rst.txt | 80 + .../_sources/contributing/add_env.rst.txt | 40 +- .../_sources/dashboard.rst.txt | 95 +- .../_sources/design/control_flow.rst.txt | 58 +- .../design/horizontal_scaling.rst.txt | 0 docs/_sources/design/network.rst.txt | 56 + docs/_sources/features/algorithms.rst.txt | 10 + docs/_sources/features/benchmarks.rst.txt | 22 + docs/_sources/features/environments.rst.txt | 31 + docs/_sources/features/index.rst.txt | 10 + docs/_sources/index.rst.txt | 72 + docs/_sources/selecting_an_algorithm.rst.txt | 270 + docs/_sources/test.rst.txt | 8 + docs/_sources/usage.rst.txt | 158 + docs/_static/ajax-loader.gif | Bin 0 -> 673 bytes docs/_static/basic.css | 676 + docs/_static/comment-bright.png | Bin 0 -> 756 bytes docs/_static/comment-close.png | Bin 0 -> 829 bytes docs/_static/comment.png | Bin 0 -> 641 bytes docs/_static/css/badge_only.css | 1 + docs/_static/css/custom.css | 61 + docs/_static/css/theme.css | 6 + docs/_static/dark_logo.png | Bin 0 -> 37540 bytes docs/_static/doctools.js | 315 + docs/_static/documentation_options.js | 296 + docs/_static/down-pressed.png | Bin 0 -> 222 bytes docs/_static/down.png | Bin 0 -> 202 bytes docs/_static/file.png | Bin 0 -> 286 bytes docs/_static/fonts/Inconsolata-Bold.ttf | Bin 0 -> 109948 bytes docs/_static/fonts/Inconsolata-Regular.ttf | Bin 0 -> 96964 bytes docs/_static/fonts/Inconsolata.ttf | Bin 0 -> 63184 bytes docs/_static/fonts/Lato-Bold.ttf | Bin 0 -> 656544 bytes docs/_static/fonts/Lato-Regular.ttf | Bin 0 -> 656568 bytes docs/_static/fonts/Lato/lato-bold.eot | Bin 0 -> 256056 bytes docs/_static/fonts/Lato/lato-bold.ttf | Bin 0 -> 600856 bytes docs/_static/fonts/Lato/lato-bold.woff | Bin 0 -> 309728 bytes docs/_static/fonts/Lato/lato-bold.woff2 | Bin 0 -> 184912 bytes docs/_static/fonts/Lato/lato-bolditalic.eot | Bin 0 -> 266158 bytes docs/_static/fonts/Lato/lato-bolditalic.ttf | Bin 0 -> 622572 bytes docs/_static/fonts/Lato/lato-bolditalic.woff | Bin 0 -> 323344 bytes docs/_static/fonts/Lato/lato-bolditalic.woff2 | Bin 0 -> 193308 bytes docs/_static/fonts/Lato/lato-italic.eot | Bin 0 -> 268604 bytes docs/_static/fonts/Lato/lato-italic.ttf | Bin 0 -> 639388 bytes docs/_static/fonts/Lato/lato-italic.woff | Bin 0 -> 328412 bytes docs/_static/fonts/Lato/lato-italic.woff2 | Bin 0 -> 195704 bytes docs/_static/fonts/Lato/lato-regular.eot | Bin 0 -> 253461 bytes docs/_static/fonts/Lato/lato-regular.ttf | Bin 0 -> 607720 bytes docs/_static/fonts/Lato/lato-regular.woff | Bin 0 -> 309192 bytes docs/_static/fonts/Lato/lato-regular.woff2 | Bin 0 -> 182708 bytes docs/_static/fonts/RobotoSlab-Bold.ttf | Bin 0 -> 170616 bytes docs/_static/fonts/RobotoSlab-Regular.ttf | Bin 0 -> 169064 bytes .../fonts/RobotoSlab/roboto-slab-v7-bold.eot | Bin 0 -> 79520 bytes .../fonts/RobotoSlab/roboto-slab-v7-bold.ttf | Bin 0 -> 170616 bytes .../fonts/RobotoSlab/roboto-slab-v7-bold.woff | Bin 0 -> 87624 bytes .../RobotoSlab/roboto-slab-v7-bold.woff2 | Bin 0 -> 67312 bytes .../RobotoSlab/roboto-slab-v7-regular.eot | Bin 0 -> 78331 bytes .../RobotoSlab/roboto-slab-v7-regular.ttf | Bin 0 -> 169064 bytes .../RobotoSlab/roboto-slab-v7-regular.woff | Bin 0 -> 86288 bytes .../RobotoSlab/roboto-slab-v7-regular.woff2 | Bin 0 -> 66444 bytes docs/_static/fonts/fontawesome-webfont.eot | Bin 0 -> 165742 bytes docs/_static/fonts/fontawesome-webfont.svg | 2671 ++++ docs/_static/fonts/fontawesome-webfont.ttf | Bin 0 -> 165548 bytes docs/_static/fonts/fontawesome-webfont.woff | Bin 0 -> 98024 bytes docs/_static/fonts/fontawesome-webfont.woff2 | Bin 0 -> 77160 bytes docs/_static/jquery-3.2.1.js | 10253 ++++++++++++++++ docs/_static/jquery.js | 4 + docs/_static/js/modernizr.min.js | 4 + docs/_static/js/theme.js | 3 + docs/_static/minus.png | Bin 0 -> 90 bytes docs/_static/plus.png | Bin 0 -> 90 bytes docs/_static/pygments.css | 69 + docs/_static/searchtools.js | 482 + docs/_static/underscore-1.3.1.js | 999 ++ docs/_static/underscore.js | 31 + docs/_static/up-pressed.png | Bin 0 -> 214 bytes docs/_static/up.png | Bin 0 -> 203 bytes docs/_static/websupport.js | 808 ++ docs/algorithms/imitation/bc/index.html | 298 - docs/algorithms/other/dfp/index.html | 299 - .../policy_optimization/ac/index.html | 299 - .../policy_optimization/cppo/index.html | 309 - .../policy_optimization/ddpg/index.html | 307 - .../policy_optimization/pg/index.html | 299 - .../policy_optimization/ppo/index.html | 300 - .../value_optimization/bs_dqn/index.html | 301 - .../categorical_dqn/index.html | 310 - .../value_optimization/double_dqn/index.html | 305 - .../value_optimization/dqn/index.html | 304 - .../value_optimization/dueling_dqn/index.html | 294 - .../value_optimization/mmc/index.html | 306 - .../value_optimization/n_step/index.html | 305 - .../value_optimization/naf/index.html | 297 - .../value_optimization/nec/index.html | 304 - .../value_optimization/pal/index.html | 318 - docs/components/additional_parameters.html | 391 + docs/components/agents/imitation/bc.html | 298 + docs/components/agents/imitation/cil.html | 313 + docs/components/agents/index.html | 819 ++ docs/components/agents/other/dfp.html | 341 + .../agents/policy_optimization/ac.html | 331 + .../agents/policy_optimization/cppo.html | 354 + .../agents/policy_optimization/ddpg.html | 345 + .../agents/policy_optimization/hac.html | 249 + .../agents/policy_optimization/pg.html | 336 + .../agents/policy_optimization/ppo.html | 355 + .../agents/value_optimization/bs_dqn.html | 309 + .../value_optimization/categorical_dqn.html | 325 + .../agents/value_optimization/double_dqn.html | 298 + .../agents/value_optimization/dqn.html | 302 + .../value_optimization/dueling_dqn.html | 289 + .../agents/value_optimization/mmc.html | 309 + .../agents/value_optimization/n_step.html | 326 + .../agents/value_optimization/naf.html | 302 + .../agents/value_optimization/nec.html | 351 + .../agents/value_optimization/pal.html | 329 + .../agents/value_optimization/qr_dqn.html | 315 + .../agents/value_optimization/rainbow.html | 337 + docs/components/architectures/index.html | 793 ++ docs/components/core_types.html | 696 ++ docs/components/environments/index.html | 650 + .../exploration_policies/index.html | 663 + docs/components/filters/index.html | 266 + docs/components/filters/input_filters.html | 587 + docs/components/filters/output_filters.html | 384 + docs/components/memories/index.html | 431 + docs/components/spaces.html | 720 ++ docs/contributing/add_agent.html | 313 + docs/contributing/add_agent/index.html | 340 - docs/contributing/add_env.html | 332 + docs/contributing/add_env/index.html | 348 - docs/css/highlight.css | 124 - docs/css/theme.css | 12 - docs/css/theme_extra.css | 194 - docs/dashboard.html | 279 + docs/dashboard/index.html | 345 - docs/design/control_flow.html | 325 + docs/design/control_flow/index.html | 367 - docs/design/features/index.html | 328 - docs/design/filters/index.html | 416 - docs/design/horizontal_scaling.html | 394 + docs/design/network.html | 290 + docs/design/network/index.html | 310 - docs/diagrams.xml | 1 - docs/extra.css | 8 - docs/features/algorithms.html | 253 + docs/features/benchmarks.html | 266 + docs/features/environments.html | 277 + docs/features/index.html | 255 + docs/fonts/fontawesome-webfont.eot | Bin 37405 -> 0 bytes docs/fonts/fontawesome-webfont.svg | 399 - docs/fonts/fontawesome-webfont.ttf | Bin 79076 -> 0 bytes docs/fonts/fontawesome-webfont.woff | Bin 43572 -> 0 bytes docs/genindex.html | 937 ++ docs/img/algorithms.png | Bin 35829 -> 0 bytes docs/img/design.png | Bin 25863 -> 0 bytes docs/img/favicon.ico | Bin 1150 -> 0 bytes docs/index.html | 452 +- docs/js/highlight.pack.js | 2 - docs/js/jquery-2.1.1.min.js | 4 - docs/js/modernizr-2.8.3.min.js | 1 - docs/js/theme.js | 99 - docs/mdx_math.py | 80 - docs/objects.inv | Bin 0 -> 3257 bytes docs/search.html | 375 +- docs/search/lunr.min.js | 7 - docs/search/mustache.min.js | 1 - docs/search/require.js | 36 - docs/search/search-results-template.mustache | 4 - docs/search/search.js | 92 - docs/search/search_index.json | 704 -- docs/search/text.js | 390 - docs/searchindex.js | 1 + docs/selecting_an_algorithm.html | 492 + docs/setup.py | 42 - docs/sitemap.xml | 133 - docs/test.html | 722 ++ docs/usage.html | 370 + docs/usage/index.html | 460 - docs_raw/Makefile | 19 + docs_raw/README.md | 31 + docs_raw/README.txt | 12 - docs_raw/docs/__init__.py | 0 docs_raw/docs/algorithms/imitation/bc.md | 25 - docs_raw/docs/algorithms/other/dfp.md | 25 - .../docs/algorithms/policy_optimization/ac.md | 27 - .../algorithms/policy_optimization/cppo.md | 28 - .../algorithms/policy_optimization/ddpg.md | 32 - .../docs/algorithms/policy_optimization/pg.md | 27 - .../algorithms/policy_optimization/ppo.md | 24 - .../algorithms/value_optimization/bs_dqn.md | 30 - .../value_optimization/categorical_dqn.md | 33 - .../value_optimization/distributional_dqn.md | 33 - .../value_optimization/double_dqn.md | 28 - .../docs/algorithms/value_optimization/dqn.md | 28 - .../value_optimization/dueling_dqn.md | 21 - .../docs/algorithms/value_optimization/mmc.md | 32 - .../algorithms/value_optimization/n_step.md | 30 - .../docs/algorithms/value_optimization/naf.md | 22 - .../docs/algorithms/value_optimization/nec.md | 28 - .../docs/algorithms/value_optimization/pal.md | 32 - docs_raw/docs/contributing/add_agent.md | 68 - docs_raw/docs/design/features.md | 44 - docs_raw/docs/design/filters.md | 116 - docs_raw/docs/design/network.md | 36 - docs_raw/docs/extra.css | 8 - docs_raw/docs/img/algorithms.png | Bin 35829 -> 0 bytes docs_raw/docs/img/design.png | Bin 25863 -> 0 bytes docs_raw/docs/img/graph.png | Bin 29603 -> 0 bytes docs_raw/docs/img/level.png | Bin 24295 -> 0 bytes docs_raw/docs/index.md | 25 - docs_raw/docs/mdx_math.py | 80 - docs_raw/docs/setup.py | 42 - docs_raw/docs/usage.md | 133 - docs_raw/fix_index.py | 37 - docs_raw/make.bat | 35 + docs_raw/mkdocs.yml | 44 - {docs => docs_raw/source}/__init__.py | 0 docs_raw/source/_static/css/custom.css | 61 + docs_raw/{docs => source/_static}/img/act.png | Bin docs_raw/source/_static/img/algorithms.png | Bin 0 -> 51160 bytes .../_static/img/attention_discretization.png | Bin 0 -> 16399 bytes .../_static}/img/bollinger_bands.png | Bin .../source/_static/img/box_discretization.png | Bin 0 -> 17143 bytes docs_raw/source/_static/img/box_masking.png | Bin 0 -> 12810 bytes .../_static}/img/compare_by_num_episodes.png | Bin .../_static}/img/compare_by_time.png | Bin docs_raw/source/_static/img/dark_logo.png | Bin 0 -> 37540 bytes docs_raw/source/_static/img/design.png | Bin 0 -> 109083 bytes .../_static/img}/design_imgs/ac.png | Bin .../_static/img}/design_imgs/bs_dqn.png | Bin .../source/_static/img/design_imgs/cil.png | Bin 0 -> 27469 bytes .../_static/img}/design_imgs/ddpg.png | Bin .../_static/img}/design_imgs/dfp.png | Bin .../img}/design_imgs/distributional_dqn.png | Bin .../_static/img}/design_imgs/dqn.png | Bin .../_static/img}/design_imgs/dueling_dqn.png | Bin .../_static/img}/design_imgs/naf.png | Bin .../_static/img}/design_imgs/nec.png | Bin .../_static/img}/design_imgs/pg.png | Bin .../_static/img}/design_imgs/ppo.png | Bin .../source/_static/img/design_imgs/qr_dqn.png | Bin 0 -> 26793 bytes .../_static/img/design_imgs/rainbow.png | Bin 0 -> 38143 bytes docs_raw/source/_static/img/diagrams.xml | 1 + .../_static}/img/distributed.png | Bin .../{docs => source/_static}/img/filters.png | Bin .../img/full_discrete_action_space_map.png | Bin 0 -> 20410 bytes .../source/_static}/img/graph.png | Bin .../{docs => source/_static}/img/improve.png | Bin .../source/_static}/img/level.png | Bin .../_static/img/linear_box_to_box_map.png | Bin 0 -> 12532 bytes .../{docs => source/_static}/img/network.png | Bin .../{docs => source/_static}/img/observe.png | Bin .../source/_static/img/output_filters.xml | 1 + .../img/partial_discrete_action_space_map.png | Bin 0 -> 8562 bytes .../_static}/img/separate_signals.png | Bin .../{docs => source/_static}/img/train.png | Bin .../_static}/img/updating_dynamically.gif | Bin docs_raw/source/_templates/layout.html | 4 + .../components/additional_parameters.rst | 18 + .../source/components/agents/imitation/bc.rst | 29 + .../components/agents/imitation/cil.rst | 36 + docs_raw/source/components/agents/index.rst | 43 + .../source/components/agents/other/dfp.rst | 39 + .../agents/policy_optimization/ac.rst | 40 + .../agents/policy_optimization/cppo.rst | 44 + .../agents/policy_optimization/ddpg.rst | 50 + .../agents/policy_optimization/hac.rst | 24 + .../agents/policy_optimization/pg.rst | 39 + .../agents/policy_optimization/ppo.rst | 45 + .../agents/value_optimization/bs_dqn.rst | 43 + .../value_optimization/categorical_dqn.rst | 39 + .../agents/value_optimization/double_dqn.rst | 35 + .../agents/value_optimization/dqn.rst | 37 + .../agents/value_optimization/dueling_dqn.rst | 27 + .../agents/value_optimization/mmc.rst | 37 + .../agents/value_optimization/n_step.rst | 35 + .../agents/value_optimization/naf.rst | 33 + .../agents/value_optimization/nec.rst | 50 + .../agents/value_optimization/pal.rst | 45 + .../agents/value_optimization/qr_dqn.rst | 33 + .../agents/value_optimization/rainbow.rst | 51 + .../source/components/architectures/index.rst | 27 + docs_raw/source/components/core_types.rst | 33 + .../source/components/environments/index.rst | 70 + .../components/exploration_policies/index.rst | 87 + docs_raw/source/components/filters/index.rst | 28 + .../components/filters/input_filters.rst | 67 + .../components/filters/output_filters.rst | 37 + docs_raw/source/components/memories/index.rst | 44 + docs_raw/source/components/spaces.rst | 64 + docs_raw/source/conf.py | 214 + docs_raw/source/contributing/add_agent.rst | 80 + docs_raw/source/contributing/add_env.rst | 93 + docs_raw/source/dashboard.rst | 63 + docs_raw/source/design/control_flow.rst | 102 + docs_raw/source/design/horizontal_scaling.rst | 148 + docs_raw/source/design/network.rst | 56 + docs_raw/{docs => source}/diagrams.xml | 0 docs_raw/source/features/algorithms.rst | 10 + docs_raw/source/features/benchmarks.rst | 22 + docs_raw/source/features/environments.rst | 31 + docs_raw/source/features/index.rst | 10 + docs_raw/source/index.rst | 72 + docs_raw/source/selecting_an_algorithm.rst | 270 + docs_raw/source/test.rst | 8 + docs_raw/source/usage.rst | 158 + rl_coach/agents/actor_critic_agent.py | 18 +- rl_coach/agents/agent.py | 133 +- rl_coach/agents/bc_agent.py | 1 - rl_coach/agents/categorical_dqn_agent.py | 13 + rl_coach/agents/cil_agent.py | 5 +- rl_coach/agents/clipped_ppo_agent.py | 42 +- rl_coach/agents/ddpg_agent.py | 27 + rl_coach/agents/dfp_agent.py | 29 + rl_coach/agents/hac_ddpg_agent.py | 9 +- rl_coach/agents/mmc_agent.py | 5 + rl_coach/agents/n_step_q_agent.py | 20 + rl_coach/agents/nec_agent.py | 33 + rl_coach/agents/pal_agent.py | 13 + rl_coach/agents/policy_gradients_agent.py | 21 + rl_coach/agents/ppo_agent.py | 46 +- rl_coach/agents/qr_dqn_agent.py | 8 + rl_coach/agents/rainbow_dqn_agent.py | 11 + rl_coach/architectures/architecture.py | 22 +- rl_coach/architectures/network_wrapper.py | 17 +- .../embedders/embedder.py | 23 +- .../middlewares/middleware.py | 24 +- rl_coach/base_parameters.py | 189 +- rl_coach/coach.py | 145 +- rl_coach/core_types.py | 103 +- .../environments/control_suite_environment.py | 32 + rl_coach/environments/doom_environment.py | 30 + rl_coach/environments/environment.py | 31 +- rl_coach/environments/gym_environment.py | 37 +- rl_coach/exploration_policies/__init__.py | 40 + .../exploration_policies/additive_noise.py | 8 + rl_coach/exploration_policies/boltzmann.py | 6 + rl_coach/exploration_policies/bootstrapped.py | 11 + rl_coach/exploration_policies/categorical.py | 6 + .../continuous_entropy.py | 11 + rl_coach/exploration_policies/e_greedy.py | 13 + .../exploration_policy.py | 4 + rl_coach/exploration_policies/greedy.py | 5 + rl_coach/exploration_policies/ou_process.py | 5 + .../exploration_policies/parameter_noise.py | 10 +- .../exploration_policies/truncated_normal.py | 10 + rl_coach/exploration_policies/ucb.py | 9 + rl_coach/filters/action/__init__.py | 14 + .../action/attention_discretization.py | 13 +- rl_coach/filters/action/box_discretization.py | 9 +- rl_coach/filters/action/box_masking.py | 10 +- .../action/full_discrete_action_space_map.py | 4 +- .../filters/action/linear_box_to_box_map.py | 16 +- .../partial_discrete_action_space_map.py | 12 +- rl_coach/filters/observation/__init__.py | 25 + .../observation_clipping_filter.py | 5 +- .../observation/observation_crop_filter.py | 4 +- .../observation_move_axis_filter.py | 7 +- .../observation_normalization_filter.py | 5 +- ...tion_reduction_by_sub_parts_name_filter.py | 6 +- ...servation_rescale_size_by_factor_filter.py | 3 +- .../observation_rescale_to_size_filter.py | 3 +- .../observation_rgb_to_y_filter.py | 4 +- .../observation/observation_squeeze_filter.py | 5 +- .../observation_stacking_filter.py | 5 +- .../observation_to_uint8_filter.py | 9 +- rl_coach/filters/reward/__init__.py | 8 + .../filters/reward/reward_clipping_filter.py | 3 +- .../reward/reward_normalization_filter.py | 5 +- .../filters/reward/reward_rescale_filter.py | 3 +- rl_coach/graph_managers/graph_manager.py | 2 + rl_coach/memories/episodic/__init__.py | 14 + rl_coach/memories/non_episodic/__init__.py | 13 + rl_coach/spaces.py | 26 + tutorials/0. Quick Start Guide.ipynb | 75 +- tutorials/1. Implementing an Algorithm.ipynb | 145 +- tutorials/2. Adding an Environment.ipynb | 296 +- 517 files changed, 71034 insertions(+), 12834 deletions(-) delete mode 100644 docs/404.html rename docs/{algorithms/design_imgs => _images}/ac.png (100%) rename docs/{img => _images}/act.png (100%) create mode 100644 docs/_images/algorithms.png create mode 100644 docs/_images/attention_discretization.png rename docs/{img => _images}/bollinger_bands.png (100%) create mode 100644 docs/_images/box_discretization.png create mode 100644 docs/_images/box_masking.png rename docs/{algorithms/design_imgs => _images}/bs_dqn.png (100%) create mode 100644 docs/_images/cil.png rename docs/{img => _images}/compare_by_num_episodes.png (100%) rename docs/{img => _images}/compare_by_time.png (100%) rename docs/{algorithms/design_imgs => _images}/ddpg.png (100%) create mode 100644 docs/_images/design.png rename docs/{algorithms/design_imgs => _images}/dfp.png (100%) rename docs/{img => _images}/distributed.png (100%) rename docs/{algorithms/design_imgs => _images}/distributional_dqn.png (100%) rename docs/{algorithms/design_imgs => _images}/dqn.png (100%) rename docs/{algorithms/design_imgs => _images}/dueling_dqn.png (100%) rename docs/{img => _images}/filters.png (100%) create mode 100644 docs/_images/full_discrete_action_space_map.png rename docs/{img => _images}/improve.png (100%) create mode 100644 docs/_images/linear_box_to_box_map.png rename docs/{algorithms/design_imgs => _images}/naf.png (100%) rename docs/{algorithms/design_imgs => _images}/nec.png (100%) rename docs/{img => _images}/network.png (100%) rename docs/{img => _images}/observe.png (100%) create mode 100644 docs/_images/partial_discrete_action_space_map.png rename docs/{algorithms/design_imgs => _images}/pg.png (100%) rename docs/{algorithms/design_imgs => _images}/ppo.png (100%) create mode 100644 docs/_images/qr_dqn.png create mode 100644 docs/_images/rainbow.png rename docs/{img => _images}/separate_signals.png (100%) rename docs/{img => _images}/train.png (100%) rename docs/{img => _images}/updating_dynamically.gif (100%) create mode 100644 docs/_modules/index.html create mode 100644 docs/_modules/rl_coach/agents/actor_critic_agent.html create mode 100644 docs/_modules/rl_coach/agents/agent.html create mode 100644 docs/_modules/rl_coach/agents/bc_agent.html create mode 100644 docs/_modules/rl_coach/agents/categorical_dqn_agent.html create mode 100644 docs/_modules/rl_coach/agents/cil_agent.html create mode 100644 docs/_modules/rl_coach/agents/clipped_ppo_agent.html create mode 100644 docs/_modules/rl_coach/agents/ddpg_agent.html create mode 100644 docs/_modules/rl_coach/agents/dfp_agent.html create mode 100644 docs/_modules/rl_coach/agents/dqn_agent.html create mode 100644 docs/_modules/rl_coach/agents/mmc_agent.html create mode 100644 docs/_modules/rl_coach/agents/n_step_q_agent.html create mode 100644 docs/_modules/rl_coach/agents/naf_agent.html create mode 100644 docs/_modules/rl_coach/agents/nec_agent.html create mode 100644 docs/_modules/rl_coach/agents/pal_agent.html create mode 100644 docs/_modules/rl_coach/agents/policy_gradients_agent.html create mode 100644 docs/_modules/rl_coach/agents/ppo_agent.html create mode 100644 docs/_modules/rl_coach/agents/qr_dqn_agent.html create mode 100644 docs/_modules/rl_coach/agents/rainbow_dqn_agent.html create mode 100644 docs/_modules/rl_coach/agents/value_optimization_agent.html create mode 100644 docs/_modules/rl_coach/architectures/architecture.html create mode 100644 docs/_modules/rl_coach/architectures/network_wrapper.html create mode 100644 docs/_modules/rl_coach/base_parameters.html create mode 100644 docs/_modules/rl_coach/core_types.html create mode 100644 docs/_modules/rl_coach/environments/carla_environment.html create mode 100644 docs/_modules/rl_coach/environments/control_suite_environment.html create mode 100644 docs/_modules/rl_coach/environments/doom_environment.html create mode 100644 docs/_modules/rl_coach/environments/environment.html create mode 100644 docs/_modules/rl_coach/environments/gym_environment.html create mode 100644 docs/_modules/rl_coach/environments/starcraft2_environment.html create mode 100644 docs/_modules/rl_coach/exploration_policies/additive_noise.html create mode 100644 docs/_modules/rl_coach/exploration_policies/boltzmann.html create mode 100644 docs/_modules/rl_coach/exploration_policies/bootstrapped.html create mode 100644 docs/_modules/rl_coach/exploration_policies/categorical.html create mode 100644 docs/_modules/rl_coach/exploration_policies/continuous_entropy.html create mode 100644 docs/_modules/rl_coach/exploration_policies/e_greedy.html create mode 100644 docs/_modules/rl_coach/exploration_policies/exploration_policy.html create mode 100644 docs/_modules/rl_coach/exploration_policies/greedy.html create mode 100644 docs/_modules/rl_coach/exploration_policies/ou_process.html create mode 100644 docs/_modules/rl_coach/exploration_policies/parameter_noise.html create mode 100644 docs/_modules/rl_coach/exploration_policies/truncated_normal.html create mode 100644 docs/_modules/rl_coach/exploration_policies/ucb.html create mode 100644 docs/_modules/rl_coach/filters/action/attention_discretization.html create mode 100644 docs/_modules/rl_coach/filters/action/box_discretization.html create mode 100644 docs/_modules/rl_coach/filters/action/box_masking.html create mode 100644 docs/_modules/rl_coach/filters/action/full_discrete_action_space_map.html create mode 100644 docs/_modules/rl_coach/filters/action/linear_box_to_box_map.html create mode 100644 docs/_modules/rl_coach/filters/action/partial_discrete_action_space_map.html create mode 100644 docs/_modules/rl_coach/filters/observation/observation_clipping_filter.html create mode 100644 docs/_modules/rl_coach/filters/observation/observation_crop_filter.html create mode 100644 docs/_modules/rl_coach/filters/observation/observation_move_axis_filter.html create mode 100644 docs/_modules/rl_coach/filters/observation/observation_normalization_filter.html create mode 100644 docs/_modules/rl_coach/filters/observation/observation_reduction_by_sub_parts_name_filter.html create mode 100644 docs/_modules/rl_coach/filters/observation/observation_rescale_size_by_factor_filter.html create mode 100644 docs/_modules/rl_coach/filters/observation/observation_rescale_to_size_filter.html create mode 100644 docs/_modules/rl_coach/filters/observation/observation_rgb_to_y_filter.html create mode 100644 docs/_modules/rl_coach/filters/observation/observation_squeeze_filter.html create mode 100644 docs/_modules/rl_coach/filters/observation/observation_stacking_filter.html create mode 100644 docs/_modules/rl_coach/filters/observation/observation_to_uint8_filter.html create mode 100644 docs/_modules/rl_coach/filters/reward/reward_clipping_filter.html create mode 100644 docs/_modules/rl_coach/filters/reward/reward_normalization_filter.html create mode 100644 docs/_modules/rl_coach/filters/reward/reward_rescale_filter.html create mode 100644 docs/_modules/rl_coach/memories/episodic/episodic_experience_replay.html create mode 100644 docs/_modules/rl_coach/memories/episodic/episodic_hindsight_experience_replay.html create mode 100644 docs/_modules/rl_coach/memories/episodic/episodic_hrl_hindsight_experience_replay.html create mode 100644 docs/_modules/rl_coach/memories/episodic/single_episode_buffer.html create mode 100644 docs/_modules/rl_coach/memories/non_episodic/balanced_experience_replay.html create mode 100644 docs/_modules/rl_coach/memories/non_episodic/differentiable_neural_dictionary.html create mode 100644 docs/_modules/rl_coach/memories/non_episodic/experience_replay.html create mode 100644 docs/_modules/rl_coach/memories/non_episodic/prioritized_experience_replay.html create mode 100644 docs/_modules/rl_coach/memories/non_episodic/transition_collection.html create mode 100644 docs/_modules/rl_coach/spaces.html create mode 100644 docs/_sources/components/additional_parameters.rst.txt create mode 100644 docs/_sources/components/agents/imitation/bc.rst.txt create mode 100644 docs/_sources/components/agents/imitation/cil.rst.txt create mode 100644 docs/_sources/components/agents/index.rst.txt create mode 100644 docs/_sources/components/agents/other/dfp.rst.txt create mode 100644 docs/_sources/components/agents/policy_optimization/ac.rst.txt create mode 100644 docs/_sources/components/agents/policy_optimization/cppo.rst.txt create mode 100644 docs/_sources/components/agents/policy_optimization/ddpg.rst.txt create mode 100644 docs/_sources/components/agents/policy_optimization/hac.rst.txt create mode 100644 docs/_sources/components/agents/policy_optimization/pg.rst.txt create mode 100644 docs/_sources/components/agents/policy_optimization/ppo.rst.txt create mode 100644 docs/_sources/components/agents/value_optimization/bs_dqn.rst.txt create mode 100644 docs/_sources/components/agents/value_optimization/categorical_dqn.rst.txt create mode 100644 docs/_sources/components/agents/value_optimization/double_dqn.rst.txt create mode 100644 docs/_sources/components/agents/value_optimization/dqn.rst.txt create mode 100644 docs/_sources/components/agents/value_optimization/dueling_dqn.rst.txt create mode 100644 docs/_sources/components/agents/value_optimization/mmc.rst.txt create mode 100644 docs/_sources/components/agents/value_optimization/n_step.rst.txt create mode 100644 docs/_sources/components/agents/value_optimization/naf.rst.txt create mode 100644 docs/_sources/components/agents/value_optimization/nec.rst.txt create mode 100644 docs/_sources/components/agents/value_optimization/pal.rst.txt create mode 100644 docs/_sources/components/agents/value_optimization/qr_dqn.rst.txt create mode 100644 docs/_sources/components/agents/value_optimization/rainbow.rst.txt create mode 100644 docs/_sources/components/architectures/index.rst.txt create mode 100644 docs/_sources/components/core_types.rst.txt create mode 100644 docs/_sources/components/environments/index.rst.txt create mode 100644 docs/_sources/components/exploration_policies/index.rst.txt create mode 100644 docs/_sources/components/filters/index.rst.txt create mode 100644 docs/_sources/components/filters/input_filters.rst.txt create mode 100644 docs/_sources/components/filters/output_filters.rst.txt create mode 100644 docs/_sources/components/memories/index.rst.txt create mode 100644 docs/_sources/components/spaces.rst.txt create mode 100644 docs/_sources/contributing/add_agent.rst.txt rename docs_raw/docs/contributing/add_env.md => docs/_sources/contributing/add_env.rst.txt (68%) rename docs_raw/docs/dashboard.md => docs/_sources/dashboard.rst.txt (66%) rename docs_raw/docs/design/control_flow.md => docs/_sources/design/control_flow.rst.txt (73%) rename docs_raw/docs/design/horizontal_scaling.md => docs/_sources/design/horizontal_scaling.rst.txt (100%) create mode 100644 docs/_sources/design/network.rst.txt create mode 100644 docs/_sources/features/algorithms.rst.txt create mode 100644 docs/_sources/features/benchmarks.rst.txt create mode 100644 docs/_sources/features/environments.rst.txt create mode 100644 docs/_sources/features/index.rst.txt create mode 100644 docs/_sources/index.rst.txt create mode 100644 docs/_sources/selecting_an_algorithm.rst.txt create mode 100644 docs/_sources/test.rst.txt create mode 100644 docs/_sources/usage.rst.txt create mode 100644 docs/_static/ajax-loader.gif create mode 100644 docs/_static/basic.css create mode 100644 docs/_static/comment-bright.png create mode 100644 docs/_static/comment-close.png create mode 100644 docs/_static/comment.png create mode 100644 docs/_static/css/badge_only.css create mode 100644 docs/_static/css/custom.css create mode 100644 docs/_static/css/theme.css create mode 100644 docs/_static/dark_logo.png create mode 100644 docs/_static/doctools.js create mode 100644 docs/_static/documentation_options.js create mode 100644 docs/_static/down-pressed.png create mode 100644 docs/_static/down.png create mode 100644 docs/_static/file.png create mode 100644 docs/_static/fonts/Inconsolata-Bold.ttf create mode 100644 docs/_static/fonts/Inconsolata-Regular.ttf create mode 100644 docs/_static/fonts/Inconsolata.ttf create mode 100644 docs/_static/fonts/Lato-Bold.ttf create mode 100644 docs/_static/fonts/Lato-Regular.ttf create mode 100644 docs/_static/fonts/Lato/lato-bold.eot create mode 100644 docs/_static/fonts/Lato/lato-bold.ttf create mode 100644 docs/_static/fonts/Lato/lato-bold.woff create mode 100644 docs/_static/fonts/Lato/lato-bold.woff2 create mode 100644 docs/_static/fonts/Lato/lato-bolditalic.eot create mode 100644 docs/_static/fonts/Lato/lato-bolditalic.ttf create mode 100644 docs/_static/fonts/Lato/lato-bolditalic.woff create mode 100644 docs/_static/fonts/Lato/lato-bolditalic.woff2 create mode 100644 docs/_static/fonts/Lato/lato-italic.eot create mode 100644 docs/_static/fonts/Lato/lato-italic.ttf create mode 100644 docs/_static/fonts/Lato/lato-italic.woff create mode 100644 docs/_static/fonts/Lato/lato-italic.woff2 create mode 100644 docs/_static/fonts/Lato/lato-regular.eot create mode 100644 docs/_static/fonts/Lato/lato-regular.ttf create mode 100644 docs/_static/fonts/Lato/lato-regular.woff create mode 100644 docs/_static/fonts/Lato/lato-regular.woff2 create mode 100644 docs/_static/fonts/RobotoSlab-Bold.ttf create mode 100644 docs/_static/fonts/RobotoSlab-Regular.ttf create mode 100644 docs/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot create mode 100644 docs/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf create mode 100644 docs/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff create mode 100644 docs/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2 create mode 100644 docs/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot create mode 100644 docs/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf create mode 100644 docs/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff create mode 100644 docs/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 create mode 100644 docs/_static/fonts/fontawesome-webfont.eot create mode 100644 docs/_static/fonts/fontawesome-webfont.svg create mode 100644 docs/_static/fonts/fontawesome-webfont.ttf create mode 100644 docs/_static/fonts/fontawesome-webfont.woff create mode 100644 docs/_static/fonts/fontawesome-webfont.woff2 create mode 100644 docs/_static/jquery-3.2.1.js create mode 100644 docs/_static/jquery.js create mode 100644 docs/_static/js/modernizr.min.js create mode 100644 docs/_static/js/theme.js create mode 100644 docs/_static/minus.png create mode 100644 docs/_static/plus.png create mode 100644 docs/_static/pygments.css create mode 100644 docs/_static/searchtools.js create mode 100644 docs/_static/underscore-1.3.1.js create mode 100644 docs/_static/underscore.js create mode 100644 docs/_static/up-pressed.png create mode 100644 docs/_static/up.png create mode 100644 docs/_static/websupport.js delete mode 100644 docs/algorithms/imitation/bc/index.html delete mode 100644 docs/algorithms/other/dfp/index.html delete mode 100644 docs/algorithms/policy_optimization/ac/index.html delete mode 100644 docs/algorithms/policy_optimization/cppo/index.html delete mode 100644 docs/algorithms/policy_optimization/ddpg/index.html delete mode 100644 docs/algorithms/policy_optimization/pg/index.html delete mode 100644 docs/algorithms/policy_optimization/ppo/index.html delete mode 100644 docs/algorithms/value_optimization/bs_dqn/index.html delete mode 100644 docs/algorithms/value_optimization/categorical_dqn/index.html delete mode 100644 docs/algorithms/value_optimization/double_dqn/index.html delete mode 100644 docs/algorithms/value_optimization/dqn/index.html delete mode 100644 docs/algorithms/value_optimization/dueling_dqn/index.html delete mode 100644 docs/algorithms/value_optimization/mmc/index.html delete mode 100644 docs/algorithms/value_optimization/n_step/index.html delete mode 100644 docs/algorithms/value_optimization/naf/index.html delete mode 100644 docs/algorithms/value_optimization/nec/index.html delete mode 100644 docs/algorithms/value_optimization/pal/index.html create mode 100644 docs/components/additional_parameters.html create mode 100644 docs/components/agents/imitation/bc.html create mode 100644 docs/components/agents/imitation/cil.html create mode 100644 docs/components/agents/index.html create mode 100644 docs/components/agents/other/dfp.html create mode 100644 docs/components/agents/policy_optimization/ac.html create mode 100644 docs/components/agents/policy_optimization/cppo.html create mode 100644 docs/components/agents/policy_optimization/ddpg.html create mode 100644 docs/components/agents/policy_optimization/hac.html create mode 100644 docs/components/agents/policy_optimization/pg.html create mode 100644 docs/components/agents/policy_optimization/ppo.html create mode 100644 docs/components/agents/value_optimization/bs_dqn.html create mode 100644 docs/components/agents/value_optimization/categorical_dqn.html create mode 100644 docs/components/agents/value_optimization/double_dqn.html create mode 100644 docs/components/agents/value_optimization/dqn.html create mode 100644 docs/components/agents/value_optimization/dueling_dqn.html create mode 100644 docs/components/agents/value_optimization/mmc.html create mode 100644 docs/components/agents/value_optimization/n_step.html create mode 100644 docs/components/agents/value_optimization/naf.html create mode 100644 docs/components/agents/value_optimization/nec.html create mode 100644 docs/components/agents/value_optimization/pal.html create mode 100644 docs/components/agents/value_optimization/qr_dqn.html create mode 100644 docs/components/agents/value_optimization/rainbow.html create mode 100644 docs/components/architectures/index.html create mode 100644 docs/components/core_types.html create mode 100644 docs/components/environments/index.html create mode 100644 docs/components/exploration_policies/index.html create mode 100644 docs/components/filters/index.html create mode 100644 docs/components/filters/input_filters.html create mode 100644 docs/components/filters/output_filters.html create mode 100644 docs/components/memories/index.html create mode 100644 docs/components/spaces.html create mode 100644 docs/contributing/add_agent.html delete mode 100644 docs/contributing/add_agent/index.html create mode 100644 docs/contributing/add_env.html delete mode 100644 docs/contributing/add_env/index.html delete mode 100644 docs/css/highlight.css delete mode 100644 docs/css/theme.css delete mode 100644 docs/css/theme_extra.css create mode 100644 docs/dashboard.html delete mode 100644 docs/dashboard/index.html create mode 100644 docs/design/control_flow.html delete mode 100644 docs/design/control_flow/index.html delete mode 100644 docs/design/features/index.html delete mode 100644 docs/design/filters/index.html create mode 100644 docs/design/horizontal_scaling.html create mode 100644 docs/design/network.html delete mode 100644 docs/design/network/index.html delete mode 100644 docs/diagrams.xml delete mode 100644 docs/extra.css create mode 100644 docs/features/algorithms.html create mode 100644 docs/features/benchmarks.html create mode 100644 docs/features/environments.html create mode 100644 docs/features/index.html delete mode 100644 docs/fonts/fontawesome-webfont.eot delete mode 100644 docs/fonts/fontawesome-webfont.svg delete mode 100644 docs/fonts/fontawesome-webfont.ttf delete mode 100644 docs/fonts/fontawesome-webfont.woff create mode 100644 docs/genindex.html delete mode 100644 docs/img/algorithms.png delete mode 100644 docs/img/design.png delete mode 100644 docs/img/favicon.ico delete mode 100644 docs/js/highlight.pack.js delete mode 100644 docs/js/jquery-2.1.1.min.js delete mode 100644 docs/js/modernizr-2.8.3.min.js delete mode 100644 docs/js/theme.js delete mode 100644 docs/mdx_math.py create mode 100644 docs/objects.inv delete mode 100644 docs/search/lunr.min.js delete mode 100644 docs/search/mustache.min.js delete mode 100644 docs/search/require.js delete mode 100644 docs/search/search-results-template.mustache delete mode 100644 docs/search/search.js delete mode 100644 docs/search/search_index.json delete mode 100644 docs/search/text.js create mode 100644 docs/searchindex.js create mode 100644 docs/selecting_an_algorithm.html delete mode 100644 docs/setup.py delete mode 100644 docs/sitemap.xml create mode 100644 docs/test.html create mode 100644 docs/usage.html delete mode 100644 docs/usage/index.html create mode 100644 docs_raw/Makefile create mode 100644 docs_raw/README.md delete mode 100644 docs_raw/README.txt delete mode 100644 docs_raw/docs/__init__.py delete mode 100644 docs_raw/docs/algorithms/imitation/bc.md delete mode 100644 docs_raw/docs/algorithms/other/dfp.md delete mode 100644 docs_raw/docs/algorithms/policy_optimization/ac.md delete mode 100644 docs_raw/docs/algorithms/policy_optimization/cppo.md delete mode 100644 docs_raw/docs/algorithms/policy_optimization/ddpg.md delete mode 100644 docs_raw/docs/algorithms/policy_optimization/pg.md delete mode 100644 docs_raw/docs/algorithms/policy_optimization/ppo.md delete mode 100644 docs_raw/docs/algorithms/value_optimization/bs_dqn.md delete mode 100644 docs_raw/docs/algorithms/value_optimization/categorical_dqn.md delete mode 100644 docs_raw/docs/algorithms/value_optimization/distributional_dqn.md delete mode 100644 docs_raw/docs/algorithms/value_optimization/double_dqn.md delete mode 100644 docs_raw/docs/algorithms/value_optimization/dqn.md delete mode 100644 docs_raw/docs/algorithms/value_optimization/dueling_dqn.md delete mode 100644 docs_raw/docs/algorithms/value_optimization/mmc.md delete mode 100644 docs_raw/docs/algorithms/value_optimization/n_step.md delete mode 100644 docs_raw/docs/algorithms/value_optimization/naf.md delete mode 100644 docs_raw/docs/algorithms/value_optimization/nec.md delete mode 100644 docs_raw/docs/algorithms/value_optimization/pal.md delete mode 100644 docs_raw/docs/contributing/add_agent.md delete mode 100644 docs_raw/docs/design/features.md delete mode 100644 docs_raw/docs/design/filters.md delete mode 100644 docs_raw/docs/design/network.md delete mode 100644 docs_raw/docs/extra.css delete mode 100644 docs_raw/docs/img/algorithms.png delete mode 100644 docs_raw/docs/img/design.png delete mode 100644 docs_raw/docs/img/graph.png delete mode 100644 docs_raw/docs/img/level.png delete mode 100644 docs_raw/docs/index.md delete mode 100644 docs_raw/docs/mdx_math.py delete mode 100644 docs_raw/docs/setup.py delete mode 100644 docs_raw/docs/usage.md delete mode 100644 docs_raw/fix_index.py create mode 100644 docs_raw/make.bat delete mode 100644 docs_raw/mkdocs.yml rename {docs => docs_raw/source}/__init__.py (100%) create mode 100644 docs_raw/source/_static/css/custom.css rename docs_raw/{docs => source/_static}/img/act.png (100%) create mode 100644 docs_raw/source/_static/img/algorithms.png create mode 100644 docs_raw/source/_static/img/attention_discretization.png rename docs_raw/{docs => source/_static}/img/bollinger_bands.png (100%) create mode 100644 docs_raw/source/_static/img/box_discretization.png create mode 100644 docs_raw/source/_static/img/box_masking.png rename docs_raw/{docs => source/_static}/img/compare_by_num_episodes.png (100%) rename docs_raw/{docs => source/_static}/img/compare_by_time.png (100%) create mode 100644 docs_raw/source/_static/img/dark_logo.png create mode 100644 docs_raw/source/_static/img/design.png rename docs_raw/{docs/algorithms => source/_static/img}/design_imgs/ac.png (100%) rename docs_raw/{docs/algorithms => source/_static/img}/design_imgs/bs_dqn.png (100%) create mode 100644 docs_raw/source/_static/img/design_imgs/cil.png rename docs_raw/{docs/algorithms => source/_static/img}/design_imgs/ddpg.png (100%) rename docs_raw/{docs/algorithms => source/_static/img}/design_imgs/dfp.png (100%) rename docs_raw/{docs/algorithms => source/_static/img}/design_imgs/distributional_dqn.png (100%) rename docs_raw/{docs/algorithms => source/_static/img}/design_imgs/dqn.png (100%) rename docs_raw/{docs/algorithms => source/_static/img}/design_imgs/dueling_dqn.png (100%) rename docs_raw/{docs/algorithms => source/_static/img}/design_imgs/naf.png (100%) rename docs_raw/{docs/algorithms => source/_static/img}/design_imgs/nec.png (100%) rename docs_raw/{docs/algorithms => source/_static/img}/design_imgs/pg.png (100%) rename docs_raw/{docs/algorithms => source/_static/img}/design_imgs/ppo.png (100%) create mode 100644 docs_raw/source/_static/img/design_imgs/qr_dqn.png create mode 100644 docs_raw/source/_static/img/design_imgs/rainbow.png create mode 100644 docs_raw/source/_static/img/diagrams.xml rename docs_raw/{docs => source/_static}/img/distributed.png (100%) rename docs_raw/{docs => source/_static}/img/filters.png (100%) create mode 100644 docs_raw/source/_static/img/full_discrete_action_space_map.png rename {docs => docs_raw/source/_static}/img/graph.png (100%) rename docs_raw/{docs => source/_static}/img/improve.png (100%) rename {docs => docs_raw/source/_static}/img/level.png (100%) create mode 100644 docs_raw/source/_static/img/linear_box_to_box_map.png rename docs_raw/{docs => source/_static}/img/network.png (100%) rename docs_raw/{docs => source/_static}/img/observe.png (100%) create mode 100644 docs_raw/source/_static/img/output_filters.xml create mode 100644 docs_raw/source/_static/img/partial_discrete_action_space_map.png rename docs_raw/{docs => source/_static}/img/separate_signals.png (100%) rename docs_raw/{docs => source/_static}/img/train.png (100%) rename docs_raw/{docs => source/_static}/img/updating_dynamically.gif (100%) create mode 100644 docs_raw/source/_templates/layout.html create mode 100644 docs_raw/source/components/additional_parameters.rst create mode 100644 docs_raw/source/components/agents/imitation/bc.rst create mode 100644 docs_raw/source/components/agents/imitation/cil.rst create mode 100644 docs_raw/source/components/agents/index.rst create mode 100644 docs_raw/source/components/agents/other/dfp.rst create mode 100644 docs_raw/source/components/agents/policy_optimization/ac.rst create mode 100644 docs_raw/source/components/agents/policy_optimization/cppo.rst create mode 100644 docs_raw/source/components/agents/policy_optimization/ddpg.rst create mode 100644 docs_raw/source/components/agents/policy_optimization/hac.rst create mode 100644 docs_raw/source/components/agents/policy_optimization/pg.rst create mode 100644 docs_raw/source/components/agents/policy_optimization/ppo.rst create mode 100644 docs_raw/source/components/agents/value_optimization/bs_dqn.rst create mode 100644 docs_raw/source/components/agents/value_optimization/categorical_dqn.rst create mode 100644 docs_raw/source/components/agents/value_optimization/double_dqn.rst create mode 100644 docs_raw/source/components/agents/value_optimization/dqn.rst create mode 100644 docs_raw/source/components/agents/value_optimization/dueling_dqn.rst create mode 100644 docs_raw/source/components/agents/value_optimization/mmc.rst create mode 100644 docs_raw/source/components/agents/value_optimization/n_step.rst create mode 100644 docs_raw/source/components/agents/value_optimization/naf.rst create mode 100644 docs_raw/source/components/agents/value_optimization/nec.rst create mode 100644 docs_raw/source/components/agents/value_optimization/pal.rst create mode 100644 docs_raw/source/components/agents/value_optimization/qr_dqn.rst create mode 100644 docs_raw/source/components/agents/value_optimization/rainbow.rst create mode 100644 docs_raw/source/components/architectures/index.rst create mode 100644 docs_raw/source/components/core_types.rst create mode 100644 docs_raw/source/components/environments/index.rst create mode 100644 docs_raw/source/components/exploration_policies/index.rst create mode 100644 docs_raw/source/components/filters/index.rst create mode 100644 docs_raw/source/components/filters/input_filters.rst create mode 100644 docs_raw/source/components/filters/output_filters.rst create mode 100644 docs_raw/source/components/memories/index.rst create mode 100644 docs_raw/source/components/spaces.rst create mode 100644 docs_raw/source/conf.py create mode 100644 docs_raw/source/contributing/add_agent.rst create mode 100644 docs_raw/source/contributing/add_env.rst create mode 100644 docs_raw/source/dashboard.rst create mode 100644 docs_raw/source/design/control_flow.rst create mode 100644 docs_raw/source/design/horizontal_scaling.rst create mode 100644 docs_raw/source/design/network.rst rename docs_raw/{docs => source}/diagrams.xml (100%) create mode 100644 docs_raw/source/features/algorithms.rst create mode 100644 docs_raw/source/features/benchmarks.rst create mode 100644 docs_raw/source/features/environments.rst create mode 100644 docs_raw/source/features/index.rst create mode 100644 docs_raw/source/index.rst create mode 100644 docs_raw/source/selecting_an_algorithm.rst create mode 100644 docs_raw/source/test.rst create mode 100644 docs_raw/source/usage.rst diff --git a/.gitignore b/.gitignore index 39eaaf1..2f46d8b 100644 --- a/.gitignore +++ b/.gitignore @@ -30,3 +30,5 @@ trace_test* *.swo .cache/ *.pyc +coachenv + diff --git a/docs/404.html b/docs/404.html deleted file mode 100644 index 0779c3a..0000000 --- a/docs/404.html +++ /dev/null @@ -1,244 +0,0 @@ - - - - - - - - - - - Reinforcement Learning Coach - - - - - - - - - - - - - - - -
- - - - -
- - - - - -
-
-
-
    -
  • Docs »
  • - - -
  • - -
  • -
-
-
-
-
- - -

404

- -

Page not found

- - -
-
- - -
-
- -
- -
- -
- - - - - -
- - - - - - - - diff --git a/docs/algorithms/design_imgs/ac.png b/docs/_images/ac.png similarity index 100% rename from docs/algorithms/design_imgs/ac.png rename to docs/_images/ac.png diff --git a/docs/img/act.png b/docs/_images/act.png similarity index 100% rename from docs/img/act.png rename to docs/_images/act.png diff --git a/docs/_images/algorithms.png b/docs/_images/algorithms.png new file mode 100644 index 0000000000000000000000000000000000000000..ed6b47576b08810b746025878e792411df91aaa0 GIT binary patch literal 51160 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 qHIX;GdI-E{_3y5IQKt7?_`sc|lm}TSpNKZ8 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≫hIxBq4L;6Z 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 literal 0 HcmV?d00001 diff --git a/docs/algorithms/design_imgs/bs_dqn.png b/docs/_images/bs_dqn.png similarity index 100% rename from docs/algorithms/design_imgs/bs_dqn.png rename to docs/_images/bs_dqn.png diff --git a/docs/_images/cil.png b/docs/_images/cil.png new file mode 100644 index 0000000000000000000000000000000000000000..91138056fa088f3b6a279c1e8227f157a0defb35 GIT binary patch literal 27469 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 EFEsk(R{#J2 literal 0 HcmV?d00001 diff --git a/docs/img/compare_by_num_episodes.png b/docs/_images/compare_by_num_episodes.png similarity index 100% rename from docs/img/compare_by_num_episodes.png rename to docs/_images/compare_by_num_episodes.png diff --git a/docs/img/compare_by_time.png b/docs/_images/compare_by_time.png similarity index 100% rename from docs/img/compare_by_time.png rename to docs/_images/compare_by_time.png diff --git a/docs/algorithms/design_imgs/ddpg.png b/docs/_images/ddpg.png similarity index 100% rename from docs/algorithms/design_imgs/ddpg.png rename to docs/_images/ddpg.png diff --git a/docs/_images/design.png b/docs/_images/design.png new file mode 100644 index 0000000000000000000000000000000000000000..e092984d1eff534f17e9098e2eef74c0be3024af GIT binary patch literal 109083 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 + + + + + + + + Overview: module code — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Overview: module code
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

All modules for which code is available

+ + +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/agents/actor_critic_agent.html b/docs/_modules/rl_coach/agents/actor_critic_agent.html new file mode 100644 index 0000000..a897b1a --- /dev/null +++ b/docs/_modules/rl_coach/agents/actor_critic_agent.html @@ -0,0 +1,413 @@ + + + + + + + + + + + rl_coach.agents.actor_critic_agent — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.agents.actor_critic_agent
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.agents.actor_critic_agent

+#
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+from typing import Union
+
+import numpy as np
+import scipy.signal
+
+from rl_coach.agents.policy_optimization_agent import PolicyOptimizationAgent, PolicyGradientRescaler
+from rl_coach.architectures.embedder_parameters import InputEmbedderParameters
+from rl_coach.architectures.head_parameters import PolicyHeadParameters, VHeadParameters
+from rl_coach.architectures.middleware_parameters import FCMiddlewareParameters
+from rl_coach.base_parameters import AlgorithmParameters, NetworkParameters, \
+    AgentParameters
+from rl_coach.exploration_policies.categorical import CategoricalParameters
+from rl_coach.exploration_policies.continuous_entropy import ContinuousEntropyParameters
+from rl_coach.logger import screen
+from rl_coach.memories.episodic.single_episode_buffer import SingleEpisodeBufferParameters
+from rl_coach.spaces import DiscreteActionSpace, BoxActionSpace
+from rl_coach.utils import last_sample
+
+
+
[docs]class ActorCriticAlgorithmParameters(AlgorithmParameters): + """ + :param policy_gradient_rescaler: (PolicyGradientRescaler) + The value that will be used to rescale the policy gradient + + :param apply_gradients_every_x_episodes: (int) + The number of episodes to wait before applying the accumulated gradients to the network. + The training iterations only accumulate gradients without actually applying them. + + :param beta_entropy: (float) + The weight that will be given to the entropy regularization which is used in order to improve exploration. + + :param num_steps_between_gradient_updates: (int) + Every num_steps_between_gradient_updates transitions will be considered as a single batch and use for + accumulating gradients. This is also the number of steps used for bootstrapping according to the n-step formulation. + + :param gae_lambda: (float) + If the policy gradient rescaler was defined as PolicyGradientRescaler.GAE, the generalized advantage estimation + scheme will be used, in which case the lambda value controls the decay for the different n-step lengths. + + :param estimate_state_value_using_gae: (bool) + If set to True, the state value targets for the V head will be estimated using the GAE scheme. + """ + def __init__(self): + super().__init__() + self.policy_gradient_rescaler = PolicyGradientRescaler.A_VALUE + self.apply_gradients_every_x_episodes = 5 + self.beta_entropy = 0 + self.num_steps_between_gradient_updates = 5000 # this is called t_max in all the papers + self.gae_lambda = 0.96 + self.estimate_state_value_using_gae = False
+ + +class ActorCriticNetworkParameters(NetworkParameters): + def __init__(self): + super().__init__() + self.input_embedders_parameters = {'observation': InputEmbedderParameters()} + self.middleware_parameters = FCMiddlewareParameters() + self.heads_parameters = [VHeadParameters(loss_weight=0.5), PolicyHeadParameters(loss_weight=1.0)] + self.optimizer_type = 'Adam' + self.clip_gradients = 40.0 + self.async_training = True + + +class ActorCriticAgentParameters(AgentParameters): + def __init__(self): + super().__init__(algorithm=ActorCriticAlgorithmParameters(), + exploration={DiscreteActionSpace: CategoricalParameters(), + BoxActionSpace: ContinuousEntropyParameters()}, + memory=SingleEpisodeBufferParameters(), + networks={"main": ActorCriticNetworkParameters()}) + + @property + def path(self): + return 'rl_coach.agents.actor_critic_agent:ActorCriticAgent' + + +# Actor Critic - https://arxiv.org/abs/1602.01783 +class ActorCriticAgent(PolicyOptimizationAgent): + def __init__(self, agent_parameters, parent: Union['LevelManager', 'CompositeAgent']=None): + super().__init__(agent_parameters, parent) + self.last_gradient_update_step_idx = 0 + self.action_advantages = self.register_signal('Advantages') + self.state_values = self.register_signal('Values') + self.value_loss = self.register_signal('Value Loss') + self.policy_loss = self.register_signal('Policy Loss') + + # Discounting function used to calculate discounted returns. + def discount(self, x, gamma): + return scipy.signal.lfilter([1], [1, -gamma], x[::-1], axis=0)[::-1] + + def get_general_advantage_estimation_values(self, rewards, values): + # values contain n+1 elements (t ... t+n+1), rewards contain n elements (t ... t + n) + bootstrap_extended_rewards = np.array(rewards.tolist() + [values[-1]]) + + # Approximation based calculation of GAE (mathematically correct only when Tmax = inf, + # although in practice works even in much smaller Tmax values, e.g. 20) + deltas = rewards + self.ap.algorithm.discount * values[1:] - values[:-1] + gae = self.discount(deltas, self.ap.algorithm.discount * self.ap.algorithm.gae_lambda) + + if self.ap.algorithm.estimate_state_value_using_gae: + discounted_returns = np.expand_dims(gae + values[:-1], -1) + else: + discounted_returns = np.expand_dims(np.array(self.discount(bootstrap_extended_rewards, + self.ap.algorithm.discount)), 1)[:-1] + return gae, discounted_returns + + def learn_from_batch(self, batch): + # batch contains a list of episodes to learn from + network_keys = self.ap.network_wrappers['main'].input_embedders_parameters.keys() + + # get the values for the current states + + result = self.networks['main'].online_network.predict(batch.states(network_keys)) + current_state_values = result[0] + + self.state_values.add_sample(current_state_values) + + # the targets for the state value estimator + num_transitions = batch.size + state_value_head_targets = np.zeros((num_transitions, 1)) + + # estimate the advantage function + action_advantages = np.zeros((num_transitions, 1)) + + if self.policy_gradient_rescaler == PolicyGradientRescaler.A_VALUE: + if batch.game_overs()[-1]: + R = 0 + else: + R = self.networks['main'].online_network.predict(last_sample(batch.next_states(network_keys)))[0] + + for i in reversed(range(num_transitions)): + R = batch.rewards()[i] + self.ap.algorithm.discount * R + state_value_head_targets[i] = R + action_advantages[i] = R - current_state_values[i] + + elif self.policy_gradient_rescaler == PolicyGradientRescaler.GAE: + # get bootstraps + bootstrapped_value = self.networks['main'].online_network.predict(last_sample(batch.next_states(network_keys)))[0] + values = np.append(current_state_values, bootstrapped_value) + if batch.game_overs()[-1]: + values[-1] = 0 + + # get general discounted returns table + gae_values, state_value_head_targets = self.get_general_advantage_estimation_values(batch.rewards(), values) + action_advantages = np.vstack(gae_values) + else: + screen.warning("WARNING: The requested policy gradient rescaler is not available") + + action_advantages = action_advantages.squeeze(axis=-1) + actions = batch.actions() + if not isinstance(self.spaces.action, DiscreteActionSpace) and len(actions.shape) < 2: + actions = np.expand_dims(actions, -1) + + # train + result = self.networks['main'].online_network.accumulate_gradients({**batch.states(network_keys), + 'output_1_0': actions}, + [state_value_head_targets, action_advantages]) + + # logging + total_loss, losses, unclipped_grads = result[:3] + self.action_advantages.add_sample(action_advantages) + self.unclipped_grads.add_sample(unclipped_grads) + self.value_loss.add_sample(losses[0]) + self.policy_loss.add_sample(losses[1]) + + return total_loss, losses, unclipped_grads + + def get_prediction(self, states): + tf_input_state = self.prepare_batch_for_inference(states, "main") + return self.networks['main'].online_network.predict(tf_input_state)[1:] # index 0 is the state value +
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/agents/agent.html b/docs/_modules/rl_coach/agents/agent.html new file mode 100644 index 0000000..59234c3 --- /dev/null +++ b/docs/_modules/rl_coach/agents/agent.html @@ -0,0 +1,1153 @@ + + + + + + + + + + + rl_coach.agents.agent — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +

Source code for rl_coach.agents.agent

+#
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+import copy
+import random
+from collections import OrderedDict
+from typing import Dict, List, Union, Tuple
+
+import numpy as np
+from pandas import read_pickle
+from six.moves import range
+
+from rl_coach.agents.agent_interface import AgentInterface
+from rl_coach.architectures.network_wrapper import NetworkWrapper
+from rl_coach.base_parameters import AgentParameters, DistributedTaskParameters
+from rl_coach.core_types import RunPhase, PredictionType, EnvironmentEpisodes, ActionType, Batch, Episode, StateType
+from rl_coach.core_types import Transition, ActionInfo, TrainingSteps, EnvironmentSteps, EnvResponse
+from rl_coach.logger import screen, Logger, EpisodeLogger
+from rl_coach.memories.episodic.episodic_experience_replay import EpisodicExperienceReplay
+from rl_coach.spaces import SpacesDefinition, VectorObservationSpace, GoalsSpace, AttentionActionSpace
+from rl_coach.utils import Signal, force_list
+from rl_coach.utils import dynamic_import_and_instantiate_module_from_params
+from rl_coach.memories.backend.memory_impl import get_memory_backend
+
+
+
[docs]class Agent(AgentInterface): + def __init__(self, agent_parameters: AgentParameters, parent: Union['LevelManager', 'CompositeAgent']=None): + """ + :param agent_parameters: A AgentParameters class instance with all the agent parameters + """ + super().__init__() + self.ap = agent_parameters + self.task_id = self.ap.task_parameters.task_index + self.is_chief = self.task_id == 0 + self.shared_memory = type(agent_parameters.task_parameters) == DistributedTaskParameters \ + and self.ap.memory.shared_memory + if self.shared_memory: + self.shared_memory_scratchpad = self.ap.task_parameters.shared_memory_scratchpad + self.name = agent_parameters.name + self.parent = parent + self.parent_level_manager = None + self.full_name_id = agent_parameters.full_name_id = self.name + + if type(agent_parameters.task_parameters) == DistributedTaskParameters: + screen.log_title("Creating agent - name: {} task id: {} (may take up to 30 seconds due to " + "tensorflow wake up time)".format(self.full_name_id, self.task_id)) + else: + screen.log_title("Creating agent - name: {}".format(self.full_name_id)) + self.imitation = False + self.agent_logger = Logger() + self.agent_episode_logger = EpisodeLogger() + + # get the memory + # - distributed training + shared memory: + # * is chief? -> create the memory and add it to the scratchpad + # * not chief? -> wait for the chief to create the memory and then fetch it + # - non distributed training / not shared memory: + # * create memory + memory_name = self.ap.memory.path.split(':')[1] + self.memory_lookup_name = self.full_name_id + '.' + memory_name + if self.shared_memory and not self.is_chief: + self.memory = self.shared_memory_scratchpad.get(self.memory_lookup_name) + else: + # modules + self.memory = dynamic_import_and_instantiate_module_from_params(self.ap.memory) + + if hasattr(self.ap.memory, 'memory_backend_params'): + self.memory_backend = get_memory_backend(self.ap.memory.memory_backend_params) + + if self.ap.memory.memory_backend_params.run_type == 'trainer': + self.memory_backend.subscribe(self) + else: + self.memory.set_memory_backend(self.memory_backend) + + if agent_parameters.memory.load_memory_from_file_path: + screen.log_title("Loading replay buffer from pickle. Pickle path: {}" + .format(agent_parameters.memory.load_memory_from_file_path)) + self.memory.load(agent_parameters.memory.load_memory_from_file_path) + + if self.shared_memory and self.is_chief: + self.shared_memory_scratchpad.add(self.memory_lookup_name, self.memory) + + # set devices + if type(agent_parameters.task_parameters) == DistributedTaskParameters: + self.has_global = True + self.replicated_device = agent_parameters.task_parameters.device + self.worker_device = "/job:worker/task:{}".format(self.task_id) + else: + self.has_global = False + self.replicated_device = None + self.worker_device = "" + if agent_parameters.task_parameters.use_cpu: + self.worker_device += "/cpu:0" + else: + self.worker_device += "/device:GPU:0" + + # filters + self.input_filter = self.ap.input_filter + self.output_filter = self.ap.output_filter + self.pre_network_filter = self.ap.pre_network_filter + device = self.replicated_device if self.replicated_device else self.worker_device + if hasattr(self.ap.memory, 'memory_backend_params') and self.ap.algorithm.distributed_coach_synchronization_type: + self.input_filter.set_device(device, memory_backend_params=self.ap.memory.memory_backend_params) + self.output_filter.set_device(device, memory_backend_params=self.ap.memory.memory_backend_params) + self.pre_network_filter.set_device(device, memory_backend_params=self.ap.memory.memory_backend_params) + else: + self.input_filter.set_device(device) + self.output_filter.set_device(device) + self.pre_network_filter.set_device(device) + + # initialize all internal variables + self._phase = RunPhase.HEATUP + self.total_shaped_reward_in_current_episode = 0 + self.total_reward_in_current_episode = 0 + self.total_steps_counter = 0 + self.running_reward = None + self.training_iteration = 0 + self.last_target_network_update_step = 0 + self.last_training_phase_step = 0 + self.current_episode = self.ap.current_episode = 0 + self.curr_state = {} + self.current_hrl_goal = None + self.current_episode_steps_counter = 0 + self.episode_running_info = {} + self.last_episode_evaluation_ran = 0 + self.running_observations = [] + self.agent_logger.set_current_time(self.current_episode) + self.exploration_policy = None + self.networks = {} + self.last_action_info = None + self.running_observation_stats = None + self.running_reward_stats = None + self.accumulated_rewards_across_evaluation_episodes = 0 + self.accumulated_shaped_rewards_across_evaluation_episodes = 0 + self.num_successes_across_evaluation_episodes = 0 + self.num_evaluation_episodes_completed = 0 + self.current_episode_buffer = Episode(discount=self.ap.algorithm.discount, n_step=self.ap.algorithm.n_step) + # TODO: add agents observation rendering for debugging purposes (not the same as the environment rendering) + + # environment parameters + self.spaces = None + self.in_action_space = self.ap.algorithm.in_action_space + + # signals + self.episode_signals = [] + self.step_signals = [] + self.loss = self.register_signal('Loss') + self.curr_learning_rate = self.register_signal('Learning Rate') + self.unclipped_grads = self.register_signal('Grads (unclipped)') + self.reward = self.register_signal('Reward', dump_one_value_per_episode=False, dump_one_value_per_step=True) + self.shaped_reward = self.register_signal('Shaped Reward', dump_one_value_per_episode=False, dump_one_value_per_step=True) + self.discounted_return = self.register_signal('Discounted Return') + if isinstance(self.in_action_space, GoalsSpace): + self.distance_from_goal = self.register_signal('Distance From Goal', dump_one_value_per_step=True) + # use seed + if self.ap.task_parameters.seed is not None: + random.seed(self.ap.task_parameters.seed) + np.random.seed(self.ap.task_parameters.seed) + else: + # we need to seed the RNG since the different processes are initialized with the same parent seed + random.seed() + np.random.seed() + + @property + def parent(self) -> 'LevelManager': + """ + Get the parent class of the agent + + :return: the current phase + """ + return self._parent + + @parent.setter + def parent(self, val) -> None: + """ + Change the parent class of the agent. + Additionally, updates the full name of the agent + + :param val: the new parent + :return: None + """ + self._parent = val + if self._parent is not None: + if not hasattr(self._parent, 'name'): + raise ValueError("The parent of an agent must have a name") + self.full_name_id = self.ap.full_name_id = "{}/{}".format(self._parent.name, self.name) + +
[docs] def setup_logger(self) -> None: + """ + Setup the logger for the agent + + :return: None + """ + # dump documentation + logger_prefix = "{graph_name}.{level_name}.{agent_full_id}".\ + format(graph_name=self.parent_level_manager.parent_graph_manager.name, + level_name=self.parent_level_manager.name, + agent_full_id='.'.join(self.full_name_id.split('/'))) + self.agent_logger.set_logger_filenames(self.ap.task_parameters.experiment_path, logger_prefix=logger_prefix, + add_timestamp=True, task_id=self.task_id) + if self.ap.visualization.dump_in_episode_signals: + self.agent_episode_logger.set_logger_filenames(self.ap.task_parameters.experiment_path, + logger_prefix=logger_prefix, + add_timestamp=True, task_id=self.task_id)
+ +
[docs] def set_session(self, sess) -> None: + """ + Set the deep learning framework session for all the agents in the composite agent + + :return: None + """ + self.input_filter.set_session(sess) + self.output_filter.set_session(sess) + self.pre_network_filter.set_session(sess) + [network.set_session(sess) for network in self.networks.values()]
+ +
[docs] def register_signal(self, signal_name: str, dump_one_value_per_episode: bool=True, + dump_one_value_per_step: bool=False) -> Signal: + """ + Register a signal such that its statistics will be dumped and be viewable through dashboard + + :param signal_name: the name of the signal as it will appear in dashboard + :param dump_one_value_per_episode: should the signal value be written for each episode? + :param dump_one_value_per_step: should the signal value be written for each step? + :return: the created signal + """ + signal = Signal(signal_name) + if dump_one_value_per_episode: + self.episode_signals.append(signal) + if dump_one_value_per_step: + self.step_signals.append(signal) + return signal
+ +
[docs] def set_environment_parameters(self, spaces: SpacesDefinition): + """ + Sets the parameters that are environment dependent. As a side effect, initializes all the components that are + dependent on those values, by calling init_environment_dependent_modules + + :param spaces: the environment spaces definition + :return: None + """ + self.spaces = copy.deepcopy(spaces) + + if self.ap.algorithm.use_accumulated_reward_as_measurement: + if 'measurements' in self.spaces.state.sub_spaces: + self.spaces.state['measurements'].shape += 1 + self.spaces.state['measurements'].measurements_names += ['accumulated_reward'] + else: + self.spaces.state['measurements'] = VectorObservationSpace(1, measurements_names=['accumulated_reward']) + + for observation_name in self.spaces.state.sub_spaces.keys(): + self.spaces.state[observation_name] = \ + self.pre_network_filter.get_filtered_observation_space(observation_name, + self.input_filter.get_filtered_observation_space(observation_name, + self.spaces.state[observation_name])) + + self.spaces.reward = self.pre_network_filter.get_filtered_reward_space( + self.input_filter.get_filtered_reward_space(self.spaces.reward)) + + self.spaces.action = self.output_filter.get_unfiltered_action_space(self.spaces.action) + + if isinstance(self.in_action_space, GoalsSpace): + # TODO: what if the goal type is an embedding / embedding change? + self.spaces.goal = self.in_action_space + self.spaces.goal.set_target_space(self.spaces.state[self.spaces.goal.goal_name]) + + self.init_environment_dependent_modules()
+ +
[docs] def create_networks(self) -> Dict[str, NetworkWrapper]: + """ + Create all the networks of the agent. + The network creation will be done after setting the environment parameters for the agent, since they are needed + for creating the network. + + :return: A list containing all the networks + """ + networks = {} + for network_name in sorted(self.ap.network_wrappers.keys()): + networks[network_name] = NetworkWrapper(name=network_name, + agent_parameters=self.ap, + has_target=self.ap.network_wrappers[network_name].create_target_network, + has_global=self.has_global, + spaces=self.spaces, + replicated_device=self.replicated_device, + worker_device=self.worker_device) + + if self.ap.visualization.print_networks_summary: + print(networks[network_name]) + + return networks
+ +
[docs] def init_environment_dependent_modules(self) -> None: + """ + Initialize any modules that depend on knowing information about the environment such as the action space or + the observation space + + :return: None + """ + # initialize exploration policy + if isinstance(self.ap.exploration, dict): + if self.spaces.action.__class__ in self.ap.exploration.keys(): + self.ap.exploration = self.ap.exploration[self.spaces.action.__class__] + else: + raise ValueError("The exploration parameters were defined as a mapping between action space types and " + "exploration types, but the action space used by the environment ({}) was not part of " + "the exploration parameters dictionary keys ({})" + .format(self.spaces.action.__class__, list(self.ap.exploration.keys()))) + self.ap.exploration.action_space = self.spaces.action + self.exploration_policy = dynamic_import_and_instantiate_module_from_params(self.ap.exploration) + + # create all the networks of the agent + self.networks = self.create_networks()
+ + @property + def phase(self) -> RunPhase: + """ + The current running phase of the agent + + :return: RunPhase + """ + return self._phase + + @phase.setter + def phase(self, val: RunPhase) -> None: + """ + Change the phase of the run for the agent and all the sub components + + :param val: the new run phase (TRAIN, TEST, etc.) + :return: None + """ + self.reset_evaluation_state(val) + self._phase = val + self.exploration_policy.change_phase(val) + +
[docs] def reset_evaluation_state(self, val: RunPhase) -> None: + """ + Perform accumulators initialization when entering an evaluation phase, and signal dumping when exiting an + evaluation phase. Entering or exiting the evaluation phase is determined according to the new phase given + by val, and by the current phase set in self.phase. + + :param val: The new phase to change to + :return: None + """ + starting_evaluation = (val == RunPhase.TEST) + ending_evaluation = (self.phase == RunPhase.TEST) + + if starting_evaluation: + self.accumulated_rewards_across_evaluation_episodes = 0 + self.accumulated_shaped_rewards_across_evaluation_episodes = 0 + self.num_successes_across_evaluation_episodes = 0 + self.num_evaluation_episodes_completed = 0 + if self.ap.is_a_highest_level_agent or self.ap.task_parameters.verbosity == "high": + screen.log_title("{}: Starting evaluation phase".format(self.name)) + + elif ending_evaluation: + # we write to the next episode, because it could be that the current episode was already written + # to disk and then we won't write it again + self.agent_logger.set_current_time(self.current_episode + 1) + self.agent_logger.create_signal_value( + 'Evaluation Reward', + self.accumulated_rewards_across_evaluation_episodes / self.num_evaluation_episodes_completed) + self.agent_logger.create_signal_value( + 'Shaped Evaluation Reward', + self.accumulated_shaped_rewards_across_evaluation_episodes / self.num_evaluation_episodes_completed) + success_rate = self.num_successes_across_evaluation_episodes / self.num_evaluation_episodes_completed + self.agent_logger.create_signal_value( + "Success Rate", + success_rate + ) + if self.ap.is_a_highest_level_agent or self.ap.task_parameters.verbosity == "high": + screen.log_title("{}: Finished evaluation phase. Success rate = {}" + .format(self.name, np.round(success_rate, 2)))
+ +
[docs] def call_memory(self, func, args=()): + """ + This function is a wrapper to allow having the same calls for shared or unshared memories. + It should be used instead of calling the memory directly in order to allow different algorithms to work + both with a shared and a local memory. + + :param func: the name of the memory function to call + :param args: the arguments to supply to the function + :return: the return value of the function + """ + if self.shared_memory: + result = self.shared_memory_scratchpad.internal_call(self.memory_lookup_name, func, args) + else: + if type(args) != tuple: + args = (args,) + result = getattr(self.memory, func)(*args) + return result
+ +
[docs] def log_to_screen(self) -> None: + """ + Write an episode summary line to the terminal + + :return: None + """ + # log to screen + log = OrderedDict() + log["Name"] = self.full_name_id + if self.task_id is not None: + log["Worker"] = self.task_id + log["Episode"] = self.current_episode + log["Total reward"] = np.round(self.total_reward_in_current_episode, 2) + log["Exploration"] = np.round(self.exploration_policy.get_control_param(), 2) + log["Steps"] = self.total_steps_counter + log["Training iteration"] = self.training_iteration + screen.log_dict(log, prefix=self.phase.value)
+ +
[docs] def update_step_in_episode_log(self) -> None: + """ + Updates the in-episode log file with all the signal values from the most recent step. + + :return: None + """ + # log all the signals to file + self.agent_episode_logger.set_current_time(self.current_episode_steps_counter) + self.agent_episode_logger.create_signal_value('Training Iter', self.training_iteration) + self.agent_episode_logger.create_signal_value('In Heatup', int(self._phase == RunPhase.HEATUP)) + self.agent_episode_logger.create_signal_value('ER #Transitions', self.call_memory('num_transitions')) + self.agent_episode_logger.create_signal_value('ER #Episodes', self.call_memory('length')) + self.agent_episode_logger.create_signal_value('Total steps', self.total_steps_counter) + self.agent_episode_logger.create_signal_value("Epsilon", self.exploration_policy.get_control_param()) + self.agent_episode_logger.create_signal_value("Shaped Accumulated Reward", self.total_shaped_reward_in_current_episode) + self.agent_episode_logger.create_signal_value('Update Target Network', 0, overwrite=False) + self.agent_episode_logger.update_wall_clock_time(self.current_episode_steps_counter) + + for signal in self.step_signals: + self.agent_episode_logger.create_signal_value(signal.name, signal.get_last_value()) + + # dump + self.agent_episode_logger.dump_output_csv()
+ +
[docs] def update_log(self) -> None: + """ + Updates the episodic log file with all the signal values from the most recent episode. + Additional signals for logging can be set by the creating a new signal using self.register_signal, + and then updating it with some internal agent values. + + :return: None + """ + # log all the signals to file + self.agent_logger.set_current_time(self.current_episode) + self.agent_logger.create_signal_value('Training Iter', self.training_iteration) + self.agent_logger.create_signal_value('In Heatup', int(self._phase == RunPhase.HEATUP)) + self.agent_logger.create_signal_value('ER #Transitions', self.call_memory('num_transitions')) + self.agent_logger.create_signal_value('ER #Episodes', self.call_memory('length')) + self.agent_logger.create_signal_value('Episode Length', self.current_episode_steps_counter) + self.agent_logger.create_signal_value('Total steps', self.total_steps_counter) + self.agent_logger.create_signal_value("Epsilon", np.mean(self.exploration_policy.get_control_param())) + self.agent_logger.create_signal_value("Shaped Training Reward", self.total_shaped_reward_in_current_episode + if self._phase == RunPhase.TRAIN else np.nan) + self.agent_logger.create_signal_value("Training Reward", self.total_reward_in_current_episode + if self._phase == RunPhase.TRAIN else np.nan) + + self.agent_logger.create_signal_value('Update Target Network', 0, overwrite=False) + self.agent_logger.update_wall_clock_time(self.current_episode) + + if self._phase != RunPhase.TEST: + self.agent_logger.create_signal_value('Evaluation Reward', np.nan, overwrite=False) + self.agent_logger.create_signal_value('Shaped Evaluation Reward', np.nan, overwrite=False) + self.agent_logger.create_signal_value('Success Rate', np.nan, overwrite=False) + + for signal in self.episode_signals: + self.agent_logger.create_signal_value("{}/Mean".format(signal.name), signal.get_mean()) + self.agent_logger.create_signal_value("{}/Stdev".format(signal.name), signal.get_stdev()) + self.agent_logger.create_signal_value("{}/Max".format(signal.name), signal.get_max()) + self.agent_logger.create_signal_value("{}/Min".format(signal.name), signal.get_min()) + + # dump + if self.current_episode % self.ap.visualization.dump_signals_to_csv_every_x_episodes == 0 \ + and self.current_episode > 0: + self.agent_logger.dump_output_csv()
+ +
[docs] def handle_episode_ended(self) -> None: + """ + Make any changes needed when each episode is ended. + This includes incrementing counters, updating full episode dependent values, updating logs, etc. + This function is called right after each episode is ended. + + :return: None + """ + self.current_episode_buffer.is_complete = True + self.current_episode_buffer.update_transitions_rewards_and_bootstrap_data() + + for transition in self.current_episode_buffer.transitions: + self.discounted_return.add_sample(transition.n_step_discounted_rewards) + + if self.phase != RunPhase.TEST or self.ap.task_parameters.evaluate_only: + self.current_episode += 1 + + if self.phase != RunPhase.TEST: + if isinstance(self.memory, EpisodicExperienceReplay): + self.call_memory('store_episode', self.current_episode_buffer) + elif self.ap.algorithm.store_transitions_only_when_episodes_are_terminated: + for transition in self.current_episode_buffer.transitions: + self.call_memory('store', transition) + + if self.phase == RunPhase.TEST: + self.accumulated_rewards_across_evaluation_episodes += self.total_reward_in_current_episode + self.accumulated_shaped_rewards_across_evaluation_episodes += self.total_shaped_reward_in_current_episode + self.num_evaluation_episodes_completed += 1 + + if self.spaces.reward.reward_success_threshold and \ + self.total_reward_in_current_episode >= self.spaces.reward.reward_success_threshold: + self.num_successes_across_evaluation_episodes += 1 + + if self.ap.visualization.dump_csv: + self.update_log() + + if self.ap.is_a_highest_level_agent or self.ap.task_parameters.verbosity == "high": + self.log_to_screen()
+ +
[docs] def reset_internal_state(self) -> None: + """ + Reset all the episodic parameters. This function is called right before each episode starts. + + :return: None + """ + for signal in self.episode_signals: + signal.reset() + for signal in self.step_signals: + signal.reset() + self.agent_episode_logger.set_episode_idx(self.current_episode) + self.total_shaped_reward_in_current_episode = 0 + self.total_reward_in_current_episode = 0 + self.curr_state = {} + self.current_episode_steps_counter = 0 + self.episode_running_info = {} + self.current_episode_buffer = Episode(discount=self.ap.algorithm.discount, n_step=self.ap.algorithm.n_step) + if self.exploration_policy: + self.exploration_policy.reset() + self.input_filter.reset() + self.output_filter.reset() + self.pre_network_filter.reset() + if isinstance(self.memory, EpisodicExperienceReplay): + self.call_memory('verify_last_episode_is_closed') + + for network in self.networks.values(): + network.online_network.reset_internal_memory()
+ +
[docs] def learn_from_batch(self, batch) -> Tuple[float, List, List]: + """ + Given a batch of transitions, calculates their target values and updates the network. + + :param batch: A list of transitions + :return: The total loss of the training, the loss per head and the unclipped gradients + """ + return 0, [], []
+ + def _should_update_online_weights_to_target(self): + """ + Determine if online weights should be copied to the target. + + :return: boolean: True if the online weights should be copied to the target. + """ + + # update the target network of every network that has a target network + step_method = self.ap.algorithm.num_steps_between_copying_online_weights_to_target + if step_method.__class__ == TrainingSteps: + should_update = (self.training_iteration - self.last_target_network_update_step) >= step_method.num_steps + if should_update: + self.last_target_network_update_step = self.training_iteration + elif step_method.__class__ == EnvironmentSteps: + should_update = (self.total_steps_counter - self.last_target_network_update_step) >= step_method.num_steps + if should_update: + self.last_target_network_update_step = self.total_steps_counter + else: + raise ValueError("The num_steps_between_copying_online_weights_to_target parameter should be either " + "EnvironmentSteps or TrainingSteps. Instead it is {}".format(step_method.__class__)) + return should_update + + def _should_train(self, wait_for_full_episode=False) -> bool: + """ + Determine if we should start a training phase according to the number of steps passed since the last training + + :return: boolean: True if we should start a training phase + """ + + should_update = self._should_train_helper(wait_for_full_episode=wait_for_full_episode) + + step_method = self.ap.algorithm.num_consecutive_playing_steps + + if should_update: + if step_method.__class__ == EnvironmentEpisodes: + self.last_training_phase_step = self.current_episode + if step_method.__class__ == EnvironmentSteps: + self.last_training_phase_step = self.total_steps_counter + + return should_update + + def _should_train_helper(self, wait_for_full_episode=False): + + step_method = self.ap.algorithm.num_consecutive_playing_steps + + if step_method.__class__ == EnvironmentEpisodes: + should_update = (self.current_episode - self.last_training_phase_step) >= step_method.num_steps + should_update = should_update and self.call_memory('length') > 0 + + elif step_method.__class__ == EnvironmentSteps: + should_update = (self.total_steps_counter - self.last_training_phase_step) >= step_method.num_steps + should_update = should_update and self.call_memory('num_transitions') > 0 + + if wait_for_full_episode: + should_update = should_update and self.current_episode_buffer.is_complete + else: + raise ValueError("The num_consecutive_playing_steps parameter should be either " + "EnvironmentSteps or Episodes. Instead it is {}".format(step_method.__class__)) + + return should_update + +
[docs] def train(self) -> float: + """ + Check if a training phase should be done as configured by num_consecutive_playing_steps. + If it should, then do several training steps as configured by num_consecutive_training_steps. + A single training iteration: Sample a batch, train on it and update target networks. + + :return: The total training loss during the training iterations. + """ + loss = 0 + if self._should_train(): + for network in self.networks.values(): + network.set_is_training(True) + + for training_step in range(self.ap.algorithm.num_consecutive_training_steps): + # TODO: this should be network dependent + network_parameters = list(self.ap.network_wrappers.values())[0] + + # update counters + self.training_iteration += 1 + + # sample a batch and train on it + batch = self.call_memory('sample', network_parameters.batch_size) + if self.pre_network_filter is not None: + batch = self.pre_network_filter.filter(batch, update_internal_state=False, deep_copy=False) + + # if the batch returned empty then there are not enough samples in the replay buffer -> skip + # training step + if len(batch) > 0: + # train + batch = Batch(batch) + total_loss, losses, unclipped_grads = self.learn_from_batch(batch) + loss += total_loss + self.unclipped_grads.add_sample(unclipped_grads) + + # TODO: the learning rate decay should be done through the network instead of here + # decay learning rate + if network_parameters.learning_rate_decay_rate != 0: + self.curr_learning_rate.add_sample(self.networks['main'].sess.run( + self.networks['main'].online_network.current_learning_rate)) + else: + self.curr_learning_rate.add_sample(network_parameters.learning_rate) + + if any([network.has_target for network in self.networks.values()]) \ + and self._should_update_online_weights_to_target(): + for network in self.networks.values(): + network.update_target_network(self.ap.algorithm.rate_for_copying_weights_to_target) + + self.agent_logger.create_signal_value('Update Target Network', 1) + else: + self.agent_logger.create_signal_value('Update Target Network', 0, overwrite=False) + + self.loss.add_sample(loss) + + if self.imitation: + self.log_to_screen() + + for network in self.networks.values(): + network.set_is_training(False) + + # run additional commands after the training is done + self.post_training_commands() + + return loss
+ +
[docs] def choose_action(self, curr_state): + """ + choose an action to act with in the current episode being played. Different behavior might be exhibited when + training or testing. + + :param curr_state: the current state to act upon. + :return: chosen action, some action value describing the action (q-value, probability, etc) + """ + pass
+ +
[docs] def prepare_batch_for_inference(self, states: Union[Dict[str, np.ndarray], List[Dict[str, np.ndarray]]], + network_name: str) -> Dict[str, np.array]: + """ + Convert curr_state into input tensors tensorflow is expecting. i.e. if we have several inputs states, stack all + observations together, measurements together, etc. + + :param states: A list of environment states, where each one is a dict mapping from an observation name to its + corresponding observation + :param network_name: The agent network name to prepare the batch for. this is needed in order to extract only + the observation relevant for the network from the states. + :return: A dictionary containing a list of values from all the given states for each of the observations + """ + # convert to batch so we can run it through the network + states = force_list(states) + batches_dict = {} + for key in self.ap.network_wrappers[network_name].input_embedders_parameters.keys(): + # there are cases (e.g. ddpg) where the state does not contain all the information needed for running + # through the network and this has to be added externally (e.g. ddpg where the action needs to be given in + # addition to the current_state, so that all the inputs of the network will be filled) + if key in states[0].keys(): + batches_dict[key] = np.array([np.array(state[key]) for state in states]) + + return batches_dict
+ +
[docs] def act(self) -> ActionInfo: + """ + Given the agents current knowledge, decide on the next action to apply to the environment + + :return: An ActionInfo object, which contains the action and any additional info from the action decision process + """ + if self.phase == RunPhase.TRAIN and self.ap.algorithm.num_consecutive_playing_steps.num_steps == 0: + # This agent never plays while training (e.g. behavioral cloning) + return None + + # count steps (only when training or if we are in the evaluation worker) + if self.phase != RunPhase.TEST or self.ap.task_parameters.evaluate_only: + self.total_steps_counter += 1 + self.current_episode_steps_counter += 1 + + # decide on the action + if self.phase == RunPhase.HEATUP and not self.ap.algorithm.heatup_using_network_decisions: + # random action + self.last_action_info = self.spaces.action.sample_with_info() + else: + # informed action + if self.pre_network_filter is not None: + # before choosing an action, first use the pre_network_filter to filter out the current state + curr_state = self.run_pre_network_filter_for_inference(self.curr_state) + + else: + curr_state = self.curr_state + self.last_action_info = self.choose_action(curr_state) + + filtered_action_info = self.output_filter.filter(self.last_action_info) + + return filtered_action_info
+ +
[docs] def run_pre_network_filter_for_inference(self, state: StateType) -> StateType: + """ + Run filters which where defined for being applied right before using the state for inference. + + :param state: The state to run the filters on + :return: The filtered state + """ + dummy_env_response = EnvResponse(next_state=state, reward=0, game_over=False) + return self.pre_network_filter.filter(dummy_env_response)[0].next_state
+ +
[docs] def get_state_embedding(self, state: dict) -> np.ndarray: + """ + Given a state, get the corresponding state embedding from the main network + + :param state: a state dict + :return: a numpy embedding vector + """ + # TODO: this won't work anymore + # TODO: instead of the state embedding (which contains the goal) we should use the observation embedding + embedding = self.networks['main'].online_network.predict( + self.prepare_batch_for_inference(state, "main"), + outputs=self.networks['main'].online_network.state_embedding) + return embedding
+ +
[docs] def update_transition_before_adding_to_replay_buffer(self, transition: Transition) -> Transition: + """ + Allows agents to update the transition just before adding it to the replay buffer. + Can be useful for agents that want to tweak the reward, termination signal, etc. + + :param transition: the transition to update + :return: the updated transition + """ + return transition
+ +
[docs] def observe(self, env_response: EnvResponse) -> bool: + """ + Given a response from the environment, distill the observation from it and store it for later use. + The response should be a dictionary containing the performed action, the new observation and measurements, + the reward, a game over flag and any additional information necessary. + + :param env_response: result of call from environment.step(action) + :return: a boolean value which determines if the agent has decided to terminate the episode after seeing the + given observation + """ + + # filter the env_response + filtered_env_response = self.input_filter.filter(env_response)[0] + + # inject agent collected statistics, if required + if self.ap.algorithm.use_accumulated_reward_as_measurement: + if 'measurements' in filtered_env_response.next_state: + filtered_env_response.next_state['measurements'] = np.append(filtered_env_response.next_state['measurements'], + self.total_shaped_reward_in_current_episode) + else: + filtered_env_response.next_state['measurements'] = np.array([self.total_shaped_reward_in_current_episode]) + + # if we are in the first step in the episode, then we don't have a a next state and a reward and thus no + # transition yet, and therefore we don't need to store anything in the memory. + # also we did not reach the goal yet. + if self.current_episode_steps_counter == 0: + # initialize the current state + self.curr_state = filtered_env_response.next_state + return env_response.game_over + else: + transition = Transition(state=copy.copy(self.curr_state), action=self.last_action_info.action, + reward=filtered_env_response.reward, next_state=filtered_env_response.next_state, + game_over=filtered_env_response.game_over, info=filtered_env_response.info) + + # now that we have formed a basic transition - the next state progresses to be the current state + self.curr_state = filtered_env_response.next_state + + # make agent specific changes to the transition if needed + transition = self.update_transition_before_adding_to_replay_buffer(transition) + + # merge the intrinsic reward in + if self.ap.algorithm.scale_external_reward_by_intrinsic_reward_value: + transition.reward = transition.reward * (1 + self.last_action_info.action_intrinsic_reward) + else: + transition.reward = transition.reward + self.last_action_info.action_intrinsic_reward + + # sum up the total shaped reward + self.total_shaped_reward_in_current_episode += transition.reward + self.total_reward_in_current_episode += env_response.reward + self.shaped_reward.add_sample(transition.reward) + self.reward.add_sample(env_response.reward) + + # add action info to transition + if type(self.parent).__name__ == 'CompositeAgent': + transition.add_info(self.parent.last_action_info.__dict__) + else: + transition.add_info(self.last_action_info.__dict__) + + # create and store the transition + if self.phase in [RunPhase.TRAIN, RunPhase.HEATUP]: + # for episodic memories we keep the transitions in a local buffer until the episode is ended. + # for regular memories we insert the transitions directly to the memory + self.current_episode_buffer.insert(transition) + if not isinstance(self.memory, EpisodicExperienceReplay) \ + and not self.ap.algorithm.store_transitions_only_when_episodes_are_terminated: + self.call_memory('store', transition) + + if self.ap.visualization.dump_in_episode_signals: + self.update_step_in_episode_log() + + return transition.game_over
+ +
[docs] def post_training_commands(self) -> None: + """ + A function which allows adding any functionality that is required to run right after the training phase ends. + + :return: None + """ + pass
+ +
[docs] def get_predictions(self, states: List[Dict[str, np.ndarray]], prediction_type: PredictionType): + """ + Get a prediction from the agent with regard to the requested prediction_type. + If the agent cannot predict this type of prediction_type, or if there is more than possible way to do so, + raise a ValueException. + + :param states: The states to get a prediction for + :param prediction_type: The type of prediction to get for the states. For example, the state-value prediction. + :return: the predicted values + """ + + predictions = self.networks['main'].online_network.predict_with_prediction_type( + # states=self.dict_state_to_batches_dict(states, 'main'), prediction_type=prediction_type) + states=states, prediction_type=prediction_type) + + if len(predictions.keys()) != 1: + raise ValueError("The network has more than one component {} matching the requested prediction_type {}. ". + format(list(predictions.keys()), prediction_type)) + return list(predictions.values())[0]
+ +
[docs] def set_incoming_directive(self, action: ActionType) -> None: + """ + Allows setting a directive for the agent to follow. This is useful in hierarchy structures, where the agent + has another master agent that is controlling it. In such cases, the master agent can define the goals for the + slave agent, define it's observation, possible actions, etc. The directive type is defined by the agent + in-action-space. + + :param action: The action that should be set as the directive + :return: + """ + if isinstance(self.in_action_space, GoalsSpace): + self.current_hrl_goal = action + elif isinstance(self.in_action_space, AttentionActionSpace): + self.input_filter.observation_filters['attention'].crop_low = action[0] + self.input_filter.observation_filters['attention'].crop_high = action[1] + self.output_filter.action_filters['masking'].set_masking(action[0], action[1])
+ +
[docs] def save_checkpoint(self, checkpoint_id: int) -> None: + """ + Allows agents to store additional information when saving checkpoints. + + :param checkpoint_id: the id of the checkpoint + :return: None + """ + pass
+ +
[docs] def sync(self) -> None: + """ + Sync the global network parameters to local networks + + :return: None + """ + for network in self.networks.values(): + network.sync()
+ + def get_success_rate(self) -> float: + return self.num_successes_across_evaluation_episodes / self.num_evaluation_episodes_completed
+
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/agents/bc_agent.html b/docs/_modules/rl_coach/agents/bc_agent.html new file mode 100644 index 0000000..7b6529d --- /dev/null +++ b/docs/_modules/rl_coach/agents/bc_agent.html @@ -0,0 +1,308 @@ + + + + + + + + + + + rl_coach.agents.bc_agent — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.agents.bc_agent
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.agents.bc_agent

+#
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+from typing import Union
+
+import numpy as np
+
+from rl_coach.agents.imitation_agent import ImitationAgent
+from rl_coach.architectures.head_parameters import PolicyHeadParameters
+from rl_coach.architectures.middleware_parameters import FCMiddlewareParameters
+from rl_coach.architectures.embedder_parameters import InputEmbedderParameters
+from rl_coach.base_parameters import AgentParameters, AlgorithmParameters, NetworkParameters, \
+    MiddlewareScheme
+from rl_coach.exploration_policies.e_greedy import EGreedyParameters
+from rl_coach.memories.episodic.episodic_experience_replay import EpisodicExperienceReplayParameters
+from rl_coach.memories.non_episodic.experience_replay import ExperienceReplayParameters
+
+
+
[docs]class BCAlgorithmParameters(AlgorithmParameters): + def __init__(self): + super().__init__()
+ + +class BCNetworkParameters(NetworkParameters): + def __init__(self): + super().__init__() + self.input_embedders_parameters = {'observation': InputEmbedderParameters()} + self.middleware_parameters = FCMiddlewareParameters(scheme=MiddlewareScheme.Medium) + self.heads_parameters = [PolicyHeadParameters()] + self.optimizer_type = 'Adam' + self.batch_size = 32 + self.replace_mse_with_huber_loss = False + self.create_target_network = False + + +class BCAgentParameters(AgentParameters): + def __init__(self): + super().__init__(algorithm=BCAlgorithmParameters(), + exploration=EGreedyParameters(), + memory=ExperienceReplayParameters(), + networks={"main": BCNetworkParameters()}) + + @property + def path(self): + return 'rl_coach.agents.bc_agent:BCAgent' + + +# Behavioral Cloning Agent +class BCAgent(ImitationAgent): + def __init__(self, agent_parameters, parent: Union['LevelManager', 'CompositeAgent']=None): + super().__init__(agent_parameters, parent) + + def learn_from_batch(self, batch): + network_keys = self.ap.network_wrappers['main'].input_embedders_parameters.keys() + + # When using a policy head, the targets refer to the advantages that we are normally feeding the head with. + # In this case, we need the policy head to just predict probabilities, so while we usually train the network + # with log(Pi)*Advantages, in this specific case we will train it to log(Pi), which after the softmax will + # predict Pi (=probabilities) + targets = np.ones(batch.actions().shape[0]) + + result = self.networks['main'].train_and_sync_networks({**batch.states(network_keys), + 'output_0_0': batch.actions()}, + targets) + total_loss, losses, unclipped_grads = result[:3] + + return total_loss, losses, unclipped_grads + +
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/agents/categorical_dqn_agent.html b/docs/_modules/rl_coach/agents/categorical_dqn_agent.html new file mode 100644 index 0000000..12e04e0 --- /dev/null +++ b/docs/_modules/rl_coach/agents/categorical_dqn_agent.html @@ -0,0 +1,382 @@ + + + + + + + + + + + rl_coach.agents.categorical_dqn_agent — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.agents.categorical_dqn_agent
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.agents.categorical_dqn_agent

+#
+# Copyright (c) 2017 Intel Corporation 
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+from typing import Union
+
+import numpy as np
+from rl_coach.agents.dqn_agent import DQNNetworkParameters, DQNAlgorithmParameters, DQNAgentParameters
+from rl_coach.agents.value_optimization_agent import ValueOptimizationAgent
+from rl_coach.architectures.head_parameters import CategoricalQHeadParameters
+from rl_coach.core_types import StateType
+from rl_coach.exploration_policies.e_greedy import EGreedyParameters
+from rl_coach.memories.non_episodic.prioritized_experience_replay import PrioritizedExperienceReplay
+from rl_coach.schedules import LinearSchedule
+
+
+class CategoricalDQNNetworkParameters(DQNNetworkParameters):
+    def __init__(self):
+        super().__init__()
+        self.heads_parameters = [CategoricalQHeadParameters()]
+
+
+
[docs]class CategoricalDQNAlgorithmParameters(DQNAlgorithmParameters): + """ + :param v_min: (float) + The minimal value that will be represented in the network output for predicting the Q value. + Corresponds to :math:`v_{min}` in the paper. + + :param v_max: (float) + The maximum value that will be represented in the network output for predicting the Q value. + Corresponds to :math:`v_{max}` in the paper. + + :param atoms: (int) + The number of atoms that will be used to discretize the range between v_min and v_max. + For the C51 algorithm described in the paper, the number of atoms is 51. + """ + def __init__(self): + super().__init__() + self.v_min = -10.0 + self.v_max = 10.0 + self.atoms = 51
+ + +class CategoricalDQNExplorationParameters(EGreedyParameters): + def __init__(self): + super().__init__() + self.epsilon_schedule = LinearSchedule(1, 0.01, 1000000) + self.evaluation_epsilon = 0.001 + + +class CategoricalDQNAgentParameters(DQNAgentParameters): + def __init__(self): + super().__init__() + self.algorithm = CategoricalDQNAlgorithmParameters() + self.exploration = CategoricalDQNExplorationParameters() + self.network_wrappers = {"main": CategoricalDQNNetworkParameters()} + + @property + def path(self): + return 'rl_coach.agents.categorical_dqn_agent:CategoricalDQNAgent' + + +# Categorical Deep Q Network - https://arxiv.org/pdf/1707.06887.pdf +class CategoricalDQNAgent(ValueOptimizationAgent): + def __init__(self, agent_parameters, parent: Union['LevelManager', 'CompositeAgent']=None): + super().__init__(agent_parameters, parent) + self.z_values = np.linspace(self.ap.algorithm.v_min, self.ap.algorithm.v_max, self.ap.algorithm.atoms) + + def distribution_prediction_to_q_values(self, prediction): + return np.dot(prediction, self.z_values) + + # prediction's format is (batch,actions,atoms) + def get_all_q_values_for_states(self, states: StateType): + if self.exploration_policy.requires_action_values(): + prediction = self.get_prediction(states) + q_values = self.distribution_prediction_to_q_values(prediction) + else: + q_values = None + return q_values + + def learn_from_batch(self, batch): + network_keys = self.ap.network_wrappers['main'].input_embedders_parameters.keys() + + # for the action we actually took, the error is calculated by the atoms distribution + # for all other actions, the error is 0 + distributional_q_st_plus_1, TD_targets = self.networks['main'].parallel_prediction([ + (self.networks['main'].target_network, batch.next_states(network_keys)), + (self.networks['main'].online_network, batch.states(network_keys)) + ]) + + # select the optimal actions for the next state + target_actions = np.argmax(self.distribution_prediction_to_q_values(distributional_q_st_plus_1), axis=1) + m = np.zeros((self.ap.network_wrappers['main'].batch_size, self.z_values.size)) + + batches = np.arange(self.ap.network_wrappers['main'].batch_size) + + # an alternative to the for loop. 3.7x perf improvement vs. the same code done with for looping. + # only 10% speedup overall - leaving commented out as the code is not as clear. + + # tzj_ = np.fmax(np.fmin(batch.rewards() + (1.0 - batch.game_overs()) * self.ap.algorithm.discount * + # np.transpose(np.repeat(self.z_values[np.newaxis, :], batch.size, axis=0), (1, 0)), + # self.z_values[-1]), + # self.z_values[0]) + # + # bj_ = (tzj_ - self.z_values[0]) / (self.z_values[1] - self.z_values[0]) + # u_ = (np.ceil(bj_)).astype(int) + # l_ = (np.floor(bj_)).astype(int) + # m_ = np.zeros((self.ap.network_wrappers['main'].batch_size, self.z_values.size)) + # np.add.at(m_, [batches, l_], + # np.transpose(distributional_q_st_plus_1[batches, target_actions], (1, 0)) * (u_ - bj_)) + # np.add.at(m_, [batches, u_], + # np.transpose(distributional_q_st_plus_1[batches, target_actions], (1, 0)) * (bj_ - l_)) + + for j in range(self.z_values.size): + tzj = np.fmax(np.fmin(batch.rewards() + + (1.0 - batch.game_overs()) * self.ap.algorithm.discount * self.z_values[j], + self.z_values[-1]), + self.z_values[0]) + bj = (tzj - self.z_values[0])/(self.z_values[1] - self.z_values[0]) + u = (np.ceil(bj)).astype(int) + l = (np.floor(bj)).astype(int) + m[batches, l] += (distributional_q_st_plus_1[batches, target_actions, j] * (u - bj)) + m[batches, u] += (distributional_q_st_plus_1[batches, target_actions, j] * (bj - l)) + + # total_loss = cross entropy between actual result above and predicted result for the given action + # only update the action that we have actually done in this transition + TD_targets[batches, batch.actions()] = m + + # update errors in prioritized replay buffer + importance_weights = batch.info('weight') if isinstance(self.memory, PrioritizedExperienceReplay) else None + + result = self.networks['main'].train_and_sync_networks(batch.states(network_keys), TD_targets, + importance_weights=importance_weights) + + total_loss, losses, unclipped_grads = result[:3] + + # TODO: fix this spaghetti code + if isinstance(self.memory, PrioritizedExperienceReplay): + errors = losses[0][np.arange(batch.size), batch.actions()] + self.call_memory('update_priorities', (batch.info('idx'), errors)) + + return total_loss, losses, unclipped_grads + +
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/agents/cil_agent.html b/docs/_modules/rl_coach/agents/cil_agent.html new file mode 100644 index 0000000..3fc44b0 --- /dev/null +++ b/docs/_modules/rl_coach/agents/cil_agent.html @@ -0,0 +1,314 @@ + + + + + + + + + + + rl_coach.agents.cil_agent — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.agents.cil_agent
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.agents.cil_agent

+#
+# Copyright (c) 2017 Intel Corporation 
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+from typing import Union
+
+from rl_coach.agents.imitation_agent import ImitationAgent
+from rl_coach.architectures.embedder_parameters import InputEmbedderParameters
+from rl_coach.architectures.head_parameters import RegressionHeadParameters
+from rl_coach.architectures.middleware_parameters import FCMiddlewareParameters
+from rl_coach.base_parameters import AgentParameters, MiddlewareScheme, NetworkParameters, AlgorithmParameters
+from rl_coach.exploration_policies.e_greedy import EGreedyParameters
+from rl_coach.memories.non_episodic.balanced_experience_replay import BalancedExperienceReplayParameters
+
+
+
[docs]class CILAlgorithmParameters(AlgorithmParameters): + """ + :param state_key_with_the_class_index: (str) + The key of the state dictionary which corresponds to the value that will be used to control the class index. + """ + def __init__(self): + super().__init__() + self.state_key_with_the_class_index = 'high_level_command'
+ + +class CILNetworkParameters(NetworkParameters): + def __init__(self): + super().__init__() + self.input_embedders_parameters = {'observation': InputEmbedderParameters()} + self.middleware_parameters = FCMiddlewareParameters(scheme=MiddlewareScheme.Medium) + self.heads_parameters = [RegressionHeadParameters()] + self.optimizer_type = 'Adam' + self.batch_size = 32 + self.replace_mse_with_huber_loss = False + self.create_target_network = False + + +class CILAgentParameters(AgentParameters): + def __init__(self): + super().__init__(algorithm=CILAlgorithmParameters(), + exploration=EGreedyParameters(), + memory=BalancedExperienceReplayParameters(), + networks={"main": CILNetworkParameters()}) + + @property + def path(self): + return 'rl_coach.agents.cil_agent:CILAgent' + + +# Conditional Imitation Learning Agent: https://arxiv.org/abs/1710.02410 +class CILAgent(ImitationAgent): + def __init__(self, agent_parameters, parent: Union['LevelManager', 'CompositeAgent']=None): + super().__init__(agent_parameters, parent) + self.current_high_level_control = 0 + + def choose_action(self, curr_state): + self.current_high_level_control = curr_state[self.ap.algorithm.state_key_with_the_class_index] + return super().choose_action(curr_state) + + def extract_action_values(self, prediction): + return prediction[self.current_high_level_control].squeeze() + + def learn_from_batch(self, batch): + network_keys = self.ap.network_wrappers['main'].input_embedders_parameters.keys() + + target_values = self.networks['main'].online_network.predict({**batch.states(network_keys)}) + + branch_to_update = batch.states([self.ap.algorithm.state_key_with_the_class_index])[self.ap.algorithm.state_key_with_the_class_index] + for idx, branch in enumerate(branch_to_update): + target_values[branch][idx] = batch.actions()[idx] + + result = self.networks['main'].train_and_sync_networks({**batch.states(network_keys)}, target_values) + total_loss, losses, unclipped_grads = result[:3] + + return total_loss, losses, unclipped_grads +
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/agents/clipped_ppo_agent.html b/docs/_modules/rl_coach/agents/clipped_ppo_agent.html new file mode 100644 index 0000000..c24e2ef --- /dev/null +++ b/docs/_modules/rl_coach/agents/clipped_ppo_agent.html @@ -0,0 +1,563 @@ + + + + + + + + + + + rl_coach.agents.clipped_ppo_agent — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.agents.clipped_ppo_agent
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.agents.clipped_ppo_agent

+#
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+import copy
+from collections import OrderedDict
+from random import shuffle
+from typing import Union
+
+import numpy as np
+
+from rl_coach.agents.actor_critic_agent import ActorCriticAgent
+from rl_coach.agents.policy_optimization_agent import PolicyGradientRescaler
+from rl_coach.architectures.embedder_parameters import InputEmbedderParameters
+from rl_coach.architectures.head_parameters import PPOHeadParameters, VHeadParameters
+from rl_coach.architectures.middleware_parameters import FCMiddlewareParameters
+from rl_coach.base_parameters import AlgorithmParameters, NetworkParameters, \
+    AgentParameters
+from rl_coach.core_types import EnvironmentSteps, Batch, EnvResponse, StateType
+from rl_coach.exploration_policies.additive_noise import AdditiveNoiseParameters
+from rl_coach.exploration_policies.categorical import CategoricalParameters
+from rl_coach.logger import screen
+from rl_coach.memories.episodic.episodic_experience_replay import EpisodicExperienceReplayParameters
+from rl_coach.schedules import ConstantSchedule
+from rl_coach.spaces import DiscreteActionSpace, BoxActionSpace
+
+
+class ClippedPPONetworkParameters(NetworkParameters):
+    def __init__(self):
+        super().__init__()
+        self.input_embedders_parameters = {'observation': InputEmbedderParameters(activation_function='tanh')}
+        self.middleware_parameters = FCMiddlewareParameters(activation_function='tanh')
+        self.heads_parameters = [VHeadParameters(), PPOHeadParameters()]
+        self.batch_size = 64
+        self.optimizer_type = 'Adam'
+        self.clip_gradients = None
+        self.use_separate_networks_per_head = True
+        self.async_training = False
+        self.l2_regularization = 0
+
+        # The target network is used in order to freeze the old policy, while making updates to the new one
+        # in train_network()
+        self.create_target_network = True
+        self.shared_optimizer = True
+        self.scale_down_gradients_by_number_of_workers_for_sync_training = True
+
+
+
[docs]class ClippedPPOAlgorithmParameters(AlgorithmParameters): + """ + :param policy_gradient_rescaler: (PolicyGradientRescaler) + This represents how the critic will be used to update the actor. The critic value function is typically used + to rescale the gradients calculated by the actor. There are several ways for doing this, such as using the + advantage of the action, or the generalized advantage estimation (GAE) value. + + :param gae_lambda: (float) + The :math:`\lambda` value is used within the GAE function in order to weight different bootstrap length + estimations. Typical values are in the range 0.9-1, and define an exponential decay over the different + n-step estimations. + + :param clip_likelihood_ratio_using_epsilon: (float) + If not None, the likelihood ratio between the current and new policy in the PPO loss function will be + clipped to the range [1-clip_likelihood_ratio_using_epsilon, 1+clip_likelihood_ratio_using_epsilon]. + This is typically used in the Clipped PPO version of PPO, and should be set to None in regular PPO + implementations. + + :param value_targets_mix_fraction: (float) + The targets for the value network are an exponential weighted moving average which uses this mix fraction to + define how much of the new targets will be taken into account when calculating the loss. + This value should be set to the range (0,1], where 1 means that only the new targets will be taken into account. + + :param estimate_state_value_using_gae: (bool) + If set to True, the state value will be estimated using the GAE technique. + + :param use_kl_regularization: (bool) + If set to True, the loss function will be regularized using the KL diveregence between the current and new + policy, to bound the change of the policy during the network update. + + :param beta_entropy: (float) + An entropy regulaization term can be added to the loss function in order to control exploration. This term + is weighted using the :math:`\beta` value defined by beta_entropy. + + :param optimization_epochs: (int) + For each training phase, the collected dataset will be used for multiple epochs, which are defined by the + optimization_epochs value. + + :param optimization_epochs: (Schedule) + Can be used to define a schedule over the clipping of the likelihood ratio. + + """ + def __init__(self): + super().__init__() + self.num_episodes_in_experience_replay = 1000000 + self.policy_gradient_rescaler = PolicyGradientRescaler.GAE + self.gae_lambda = 0.95 + self.use_kl_regularization = False + self.clip_likelihood_ratio_using_epsilon = 0.2 + self.estimate_state_value_using_gae = True + self.beta_entropy = 0.01 # should be 0 for mujoco + self.num_consecutive_playing_steps = EnvironmentSteps(2048) + self.optimization_epochs = 10 + self.normalization_stats = None + self.clipping_decay_schedule = ConstantSchedule(1)
+ + +class ClippedPPOAgentParameters(AgentParameters): + def __init__(self): + super().__init__(algorithm=ClippedPPOAlgorithmParameters(), + exploration={DiscreteActionSpace: CategoricalParameters(), + BoxActionSpace: AdditiveNoiseParameters()}, + memory=EpisodicExperienceReplayParameters(), + networks={"main": ClippedPPONetworkParameters()}) + + @property + def path(self): + return 'rl_coach.agents.clipped_ppo_agent:ClippedPPOAgent' + + +# Clipped Proximal Policy Optimization - https://arxiv.org/abs/1707.06347 +class ClippedPPOAgent(ActorCriticAgent): + def __init__(self, agent_parameters, parent: Union['LevelManager', 'CompositeAgent']=None): + super().__init__(agent_parameters, parent) + # signals definition + self.value_loss = self.register_signal('Value Loss') + self.policy_loss = self.register_signal('Policy Loss') + self.total_kl_divergence_during_training_process = 0.0 + self.unclipped_grads = self.register_signal('Grads (unclipped)') + self.value_targets = self.register_signal('Value Targets') + self.kl_divergence = self.register_signal('KL Divergence') + self.likelihood_ratio = self.register_signal('Likelihood Ratio') + self.clipped_likelihood_ratio = self.register_signal('Clipped Likelihood Ratio') + + def set_session(self, sess): + super().set_session(sess) + if self.ap.algorithm.normalization_stats is not None: + self.ap.algorithm.normalization_stats.set_session(sess) + + def fill_advantages(self, batch): + network_keys = self.ap.network_wrappers['main'].input_embedders_parameters.keys() + + current_state_values = self.networks['main'].online_network.predict(batch.states(network_keys))[0] + current_state_values = current_state_values.squeeze() + self.state_values.add_sample(current_state_values) + + # calculate advantages + advantages = [] + value_targets = [] + total_returns = batch.n_step_discounted_rewards() + + if self.policy_gradient_rescaler == PolicyGradientRescaler.A_VALUE: + advantages = total_returns - current_state_values + elif self.policy_gradient_rescaler == PolicyGradientRescaler.GAE: + # get bootstraps + episode_start_idx = 0 + advantages = np.array([]) + value_targets = np.array([]) + for idx, game_over in enumerate(batch.game_overs()): + if game_over: + # get advantages for the rollout + value_bootstrapping = np.zeros((1,)) + rollout_state_values = np.append(current_state_values[episode_start_idx:idx+1], value_bootstrapping) + + rollout_advantages, gae_based_value_targets = \ + self.get_general_advantage_estimation_values(batch.rewards()[episode_start_idx:idx+1], + rollout_state_values) + episode_start_idx = idx + 1 + advantages = np.append(advantages, rollout_advantages) + value_targets = np.append(value_targets, gae_based_value_targets) + else: + screen.warning("WARNING: The requested policy gradient rescaler is not available") + + # standardize + advantages = (advantages - np.mean(advantages)) / np.std(advantages) + + for transition, advantage, value_target in zip(batch.transitions, advantages, value_targets): + transition.info['advantage'] = advantage + transition.info['gae_based_value_target'] = value_target + + self.action_advantages.add_sample(advantages) + + def train_network(self, batch, epochs): + batch_results = [] + for j in range(epochs): + batch.shuffle() + batch_results = { + 'total_loss': [], + 'losses': [], + 'unclipped_grads': [], + 'kl_divergence': [], + 'entropy': [] + } + + fetches = [self.networks['main'].online_network.output_heads[1].kl_divergence, + self.networks['main'].online_network.output_heads[1].entropy, + self.networks['main'].online_network.output_heads[1].likelihood_ratio, + self.networks['main'].online_network.output_heads[1].clipped_likelihood_ratio] + + for i in range(int(batch.size / self.ap.network_wrappers['main'].batch_size)): + start = i * self.ap.network_wrappers['main'].batch_size + end = (i + 1) * self.ap.network_wrappers['main'].batch_size + + network_keys = self.ap.network_wrappers['main'].input_embedders_parameters.keys() + actions = batch.actions()[start:end] + gae_based_value_targets = batch.info('gae_based_value_target')[start:end] + if not isinstance(self.spaces.action, DiscreteActionSpace) and len(actions.shape) == 1: + actions = np.expand_dims(actions, -1) + + # get old policy probabilities and distribution + + # TODO-perf - the target network ("old_policy") is not changing. this can be calculated once for all epochs. + # the shuffling being done, should only be performed on the indices. + result = self.networks['main'].target_network.predict({k: v[start:end] for k, v in batch.states(network_keys).items()}) + old_policy_distribution = result[1:] + + total_returns = batch.n_step_discounted_rewards(expand_dims=True) + + # calculate gradients and apply on both the local policy network and on the global policy network + if self.ap.algorithm.estimate_state_value_using_gae: + value_targets = np.expand_dims(gae_based_value_targets, -1) + else: + value_targets = total_returns[start:end] + + inputs = copy.copy({k: v[start:end] for k, v in batch.states(network_keys).items()}) + inputs['output_1_0'] = actions + + # The old_policy_distribution needs to be represented as a list, because in the event of + # discrete controls, it has just a mean. otherwise, it has both a mean and standard deviation + for input_index, input in enumerate(old_policy_distribution): + inputs['output_1_{}'.format(input_index + 1)] = input + + # update the clipping decay schedule value + inputs['output_1_{}'.format(len(old_policy_distribution)+1)] = \ + self.ap.algorithm.clipping_decay_schedule.current_value + + total_loss, losses, unclipped_grads, fetch_result = \ + self.networks['main'].train_and_sync_networks( + inputs, [value_targets, batch.info('advantage')[start:end]], additional_fetches=fetches + ) + + batch_results['total_loss'].append(total_loss) + batch_results['losses'].append(losses) + batch_results['unclipped_grads'].append(unclipped_grads) + batch_results['kl_divergence'].append(fetch_result[0]) + batch_results['entropy'].append(fetch_result[1]) + + self.unclipped_grads.add_sample(unclipped_grads) + self.value_targets.add_sample(value_targets) + self.likelihood_ratio.add_sample(fetch_result[2]) + self.clipped_likelihood_ratio.add_sample(fetch_result[3]) + + for key in batch_results.keys(): + batch_results[key] = np.mean(batch_results[key], 0) + + self.value_loss.add_sample(batch_results['losses'][0]) + self.policy_loss.add_sample(batch_results['losses'][1]) + self.loss.add_sample(batch_results['total_loss']) + + if self.ap.network_wrappers['main'].learning_rate_decay_rate != 0: + curr_learning_rate = self.networks['main'].online_network.get_variable_value( + self.networks['main'].online_network.adaptive_learning_rate_scheme) + self.curr_learning_rate.add_sample(curr_learning_rate) + else: + curr_learning_rate = self.ap.network_wrappers['main'].learning_rate + + # log training parameters + screen.log_dict( + OrderedDict([ + ("Surrogate loss", batch_results['losses'][1]), + ("KL divergence", batch_results['kl_divergence']), + ("Entropy", batch_results['entropy']), + ("training epoch", j), + ("learning_rate", curr_learning_rate) + ]), + prefix="Policy training" + ) + + self.total_kl_divergence_during_training_process = batch_results['kl_divergence'] + self.entropy.add_sample(batch_results['entropy']) + self.kl_divergence.add_sample(batch_results['kl_divergence']) + return batch_results['losses'] + + def post_training_commands(self): + # clean memory + self.call_memory('clean') + + def _should_train_helper(self, wait_for_full_episode=True): + return super()._should_train_helper(True) + + def train(self): + if self._should_train(wait_for_full_episode=True): + for network in self.networks.values(): + network.set_is_training(True) + + dataset = self.memory.transitions + dataset = self.pre_network_filter.filter(dataset, deep_copy=False) + batch = Batch(dataset) + + for training_step in range(self.ap.algorithm.num_consecutive_training_steps): + self.networks['main'].sync() + self.fill_advantages(batch) + + # take only the requested number of steps + if isinstance(self.ap.algorithm.num_consecutive_playing_steps, EnvironmentSteps): + dataset = dataset[:self.ap.algorithm.num_consecutive_playing_steps.num_steps] + shuffle(dataset) + batch = Batch(dataset) + + self.train_network(batch, self.ap.algorithm.optimization_epochs) + + for network in self.networks.values(): + network.set_is_training(False) + + self.post_training_commands() + self.training_iteration += 1 + # should be done in order to update the data that has been accumulated * while not playing * + self.update_log() + return None + + def run_pre_network_filter_for_inference(self, state: StateType): + dummy_env_response = EnvResponse(next_state=state, reward=0, game_over=False) + return self.pre_network_filter.filter(dummy_env_response, update_internal_state=False)[0].next_state + + def choose_action(self, curr_state): + self.ap.algorithm.clipping_decay_schedule.step() + return super().choose_action(curr_state) +
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/agents/ddpg_agent.html b/docs/_modules/rl_coach/agents/ddpg_agent.html new file mode 100644 index 0000000..14c7c30 --- /dev/null +++ b/docs/_modules/rl_coach/agents/ddpg_agent.html @@ -0,0 +1,443 @@ + + + + + + + + + + + rl_coach.agents.ddpg_agent — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.agents.ddpg_agent
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.agents.ddpg_agent

+#
+# Copyright (c) 2017 Intel Corporation 
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+import copy
+from typing import Union
+from collections import OrderedDict
+
+import numpy as np
+
+from rl_coach.agents.actor_critic_agent import ActorCriticAgent
+from rl_coach.agents.agent import Agent
+from rl_coach.architectures.embedder_parameters import InputEmbedderParameters
+from rl_coach.architectures.head_parameters import DDPGActorHeadParameters, VHeadParameters
+from rl_coach.architectures.middleware_parameters import FCMiddlewareParameters
+from rl_coach.base_parameters import NetworkParameters, AlgorithmParameters, \
+    AgentParameters, EmbedderScheme
+from rl_coach.core_types import ActionInfo, EnvironmentSteps
+from rl_coach.exploration_policies.ou_process import OUProcessParameters
+from rl_coach.memories.episodic.episodic_experience_replay import EpisodicExperienceReplayParameters
+from rl_coach.spaces import BoxActionSpace, GoalsSpace
+
+
+class DDPGCriticNetworkParameters(NetworkParameters):
+    def __init__(self):
+        super().__init__()
+        self.input_embedders_parameters = {'observation': InputEmbedderParameters(batchnorm=True),
+                                            'action': InputEmbedderParameters(scheme=EmbedderScheme.Shallow)}
+        self.middleware_parameters = FCMiddlewareParameters()
+        self.heads_parameters = [VHeadParameters()]
+        self.optimizer_type = 'Adam'
+        self.batch_size = 64
+        self.async_training = False
+        self.learning_rate = 0.001
+        self.create_target_network = True
+        self.shared_optimizer = True
+        self.scale_down_gradients_by_number_of_workers_for_sync_training = False
+
+
+class DDPGActorNetworkParameters(NetworkParameters):
+    def __init__(self):
+        super().__init__()
+        self.input_embedders_parameters = {'observation': InputEmbedderParameters(batchnorm=True)}
+        self.middleware_parameters = FCMiddlewareParameters(batchnorm=True)
+        self.heads_parameters = [DDPGActorHeadParameters()]
+        self.optimizer_type = 'Adam'
+        self.batch_size = 64
+        self.async_training = False
+        self.learning_rate = 0.0001
+        self.create_target_network = True
+        self.shared_optimizer = True
+        self.scale_down_gradients_by_number_of_workers_for_sync_training = False
+
+
+
[docs]class DDPGAlgorithmParameters(AlgorithmParameters): + """ + :param num_steps_between_copying_online_weights_to_target: (StepMethod) + The number of steps between copying the online network weights to the target network weights. + + :param rate_for_copying_weights_to_target: (float) + When copying the online network weights to the target network weights, a soft update will be used, which + weight the new online network weights by rate_for_copying_weights_to_target + + :param num_consecutive_playing_steps: (StepMethod) + The number of consecutive steps to act between every two training iterations + + :param use_target_network_for_evaluation: (bool) + If set to True, the target network will be used for predicting the actions when choosing actions to act. + Since the target network weights change more slowly, the predicted actions will be more consistent. + + :param action_penalty: (float) + The amount by which to penalize the network on high action feature (pre-activation) values. + This can prevent the actions features from saturating the TanH activation function, and therefore prevent the + gradients from becoming very low. + + :param clip_critic_targets: (Tuple[float, float] or None) + The range to clip the critic target to in order to prevent overestimation of the action values. + + :param use_non_zero_discount_for_terminal_states: (bool) + If set to True, the discount factor will be used for terminal states to bootstrap the next predicted state + values. If set to False, the terminal states reward will be taken as the target return for the network. + """ + def __init__(self): + super().__init__() + self.num_steps_between_copying_online_weights_to_target = EnvironmentSteps(1) + self.rate_for_copying_weights_to_target = 0.001 + self.num_consecutive_playing_steps = EnvironmentSteps(1) + self.use_target_network_for_evaluation = False + self.action_penalty = 0 + self.clip_critic_targets = None # expected to be a tuple of the form (min_clip_value, max_clip_value) or None + self.use_non_zero_discount_for_terminal_states = False
+ + +class DDPGAgentParameters(AgentParameters): + def __init__(self): + super().__init__(algorithm=DDPGAlgorithmParameters(), + exploration=OUProcessParameters(), + memory=EpisodicExperienceReplayParameters(), + networks=OrderedDict([("actor", DDPGActorNetworkParameters()), + ("critic", DDPGCriticNetworkParameters())])) + + @property + def path(self): + return 'rl_coach.agents.ddpg_agent:DDPGAgent' + + +# Deep Deterministic Policy Gradients Network - https://arxiv.org/pdf/1509.02971.pdf +class DDPGAgent(ActorCriticAgent): + def __init__(self, agent_parameters, parent: Union['LevelManager', 'CompositeAgent']=None): + super().__init__(agent_parameters, parent) + + self.q_values = self.register_signal("Q") + self.TD_targets_signal = self.register_signal("TD targets") + self.action_signal = self.register_signal("actions") + + def learn_from_batch(self, batch): + actor = self.networks['actor'] + critic = self.networks['critic'] + + actor_keys = self.ap.network_wrappers['actor'].input_embedders_parameters.keys() + critic_keys = self.ap.network_wrappers['critic'].input_embedders_parameters.keys() + + # TD error = r + discount*max(q_st_plus_1) - q_st + next_actions, actions_mean = actor.parallel_prediction([ + (actor.target_network, batch.next_states(actor_keys)), + (actor.online_network, batch.states(actor_keys)) + ]) + + critic_inputs = copy.copy(batch.next_states(critic_keys)) + critic_inputs['action'] = next_actions + q_st_plus_1 = critic.target_network.predict(critic_inputs) + + # calculate the bootstrapped TD targets while discounting terminal states according to + # use_non_zero_discount_for_terminal_states + if self.ap.algorithm.use_non_zero_discount_for_terminal_states: + TD_targets = batch.rewards(expand_dims=True) + self.ap.algorithm.discount * q_st_plus_1 + else: + TD_targets = batch.rewards(expand_dims=True) + \ + (1.0 - batch.game_overs(expand_dims=True)) * self.ap.algorithm.discount * q_st_plus_1 + + # clip the TD targets to prevent overestimation errors + if self.ap.algorithm.clip_critic_targets: + TD_targets = np.clip(TD_targets, *self.ap.algorithm.clip_critic_targets) + + self.TD_targets_signal.add_sample(TD_targets) + + # get the gradients of the critic output with respect to the action + critic_inputs = copy.copy(batch.states(critic_keys)) + critic_inputs['action'] = actions_mean + action_gradients = critic.online_network.predict(critic_inputs, + outputs=critic.online_network.gradients_wrt_inputs[0]['action']) + + # train the critic + critic_inputs = copy.copy(batch.states(critic_keys)) + critic_inputs['action'] = batch.actions(len(batch.actions().shape) == 1) + result = critic.train_and_sync_networks(critic_inputs, TD_targets) + total_loss, losses, unclipped_grads = result[:3] + + # apply the gradients from the critic to the actor + initial_feed_dict = {actor.online_network.gradients_weights_ph[0]: -action_gradients} + gradients = actor.online_network.predict(batch.states(actor_keys), + outputs=actor.online_network.weighted_gradients[0], + initial_feed_dict=initial_feed_dict) + + if actor.has_global: + actor.apply_gradients_to_global_network(gradients) + actor.update_online_network() + else: + actor.apply_gradients_to_online_network(gradients) + + return total_loss, losses, unclipped_grads + + def train(self): + return Agent.train(self) + + def choose_action(self, curr_state): + if not (isinstance(self.spaces.action, BoxActionSpace) or isinstance(self.spaces.action, GoalsSpace)): + raise ValueError("DDPG works only for continuous control problems") + # convert to batch so we can run it through the network + tf_input_state = self.prepare_batch_for_inference(curr_state, 'actor') + if self.ap.algorithm.use_target_network_for_evaluation: + actor_network = self.networks['actor'].target_network + else: + actor_network = self.networks['actor'].online_network + + action_values = actor_network.predict(tf_input_state).squeeze() + + action = self.exploration_policy.get_action(action_values) + + self.action_signal.add_sample(action) + + # get q value + tf_input_state = self.prepare_batch_for_inference(curr_state, 'critic') + action_batch = np.expand_dims(action, 0) + if type(action) != np.ndarray: + action_batch = np.array([[action]]) + tf_input_state['action'] = action_batch + q_value = self.networks['critic'].online_network.predict(tf_input_state)[0] + self.q_values.add_sample(q_value) + + action_info = ActionInfo(action=action, + action_value=q_value) + + return action_info +
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/agents/dfp_agent.html b/docs/_modules/rl_coach/agents/dfp_agent.html new file mode 100644 index 0000000..2734312 --- /dev/null +++ b/docs/_modules/rl_coach/agents/dfp_agent.html @@ -0,0 +1,475 @@ + + + + + + + + + + + rl_coach.agents.dfp_agent — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.agents.dfp_agent
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.agents.dfp_agent

+#
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+import copy
+from enum import Enum
+from typing import Union
+
+import numpy as np
+
+from rl_coach.agents.agent import Agent
+from rl_coach.architectures.head_parameters import MeasurementsPredictionHeadParameters
+from rl_coach.architectures.embedder_parameters import InputEmbedderParameters
+from rl_coach.architectures.middleware_parameters import FCMiddlewareParameters
+from rl_coach.architectures.tensorflow_components.layers import Conv2d, Dense
+from rl_coach.base_parameters import AlgorithmParameters, AgentParameters, NetworkParameters, \
+     MiddlewareScheme
+from rl_coach.core_types import ActionInfo, EnvironmentSteps, RunPhase
+from rl_coach.exploration_policies.e_greedy import EGreedyParameters
+from rl_coach.memories.episodic.episodic_experience_replay import EpisodicExperienceReplayParameters
+from rl_coach.memories.memory import MemoryGranularity
+from rl_coach.spaces import SpacesDefinition, VectorObservationSpace
+
+
+class HandlingTargetsAfterEpisodeEnd(Enum):
+    LastStep = 0
+    NAN = 1
+
+
+class DFPNetworkParameters(NetworkParameters):
+    def __init__(self):
+        super().__init__()
+        self.input_embedders_parameters = {'observation': InputEmbedderParameters(activation_function='leaky_relu'),
+                                            'measurements': InputEmbedderParameters(activation_function='leaky_relu'),
+                                            'goal': InputEmbedderParameters(activation_function='leaky_relu')}
+
+        self.input_embedders_parameters['observation'].scheme = [
+            Conv2d(32, 8, 4),
+            Conv2d(64, 4, 2),
+            Conv2d(64, 3, 1),
+            Dense(512),
+        ]
+
+        self.input_embedders_parameters['measurements'].scheme = [
+            Dense(128),
+            Dense(128),
+            Dense(128),
+        ]
+
+        self.input_embedders_parameters['goal'].scheme = [
+            Dense(128),
+            Dense(128),
+            Dense(128),
+        ]
+
+        self.middleware_parameters = FCMiddlewareParameters(activation_function='leaky_relu',
+                                                            scheme=MiddlewareScheme.Empty)
+        self.heads_parameters = [MeasurementsPredictionHeadParameters(activation_function='leaky_relu')]
+        self.async_training = False
+        self.batch_size = 64
+        self.adam_optimizer_beta1 = 0.95
+
+
+class DFPMemoryParameters(EpisodicExperienceReplayParameters):
+    def __init__(self):
+        self.max_size = (MemoryGranularity.Transitions, 20000)
+        self.shared_memory = True
+        super().__init__()
+
+
+
[docs]class DFPAlgorithmParameters(AlgorithmParameters): + """ + :param num_predicted_steps_ahead: (int) + Number of future steps to predict measurements for. The future steps won't be sequential, but rather jump + in multiples of 2. For example, if num_predicted_steps_ahead = 3, then the steps will be: t+1, t+2, t+4 + + :param goal_vector: (List[float]) + The goal vector will weight each of the measurements to form an optimization goal. The vector should have + the same length as the number of measurements, and it will be vector multiplied by the measurements. + Positive values correspond to trying to maximize the particular measurement, and negative values + correspond to trying to minimize the particular measurement. + + :param future_measurements_weights: (List[float]) + The future_measurements_weights weight the contribution of each of the predicted timesteps to the optimization + goal. For example, if there are 6 steps predicted ahead, and a future_measurements_weights vector with 3 values, + then only the 3 last timesteps will be taken into account, according to the weights in the + future_measurements_weights vector. + + :param use_accumulated_reward_as_measurement: (bool) + If set to True, the accumulated reward from the beginning of the episode will be added as a measurement to + the measurements vector in the state. This van be useful in environments where the given measurements don't + include enough information for the particular goal the agent should achieve. + + :param handling_targets_after_episode_end: (HandlingTargetsAfterEpisodeEnd) + Dictates how to handle measurements that are outside the episode length. + + :param scale_measurements_targets: (Dict[str, float]) + Allows rescaling the values of each of the measurements available. This van be useful when the measurements + have a different scale and you want to normalize them to the same scale. + """ + def __init__(self): + super().__init__() + self.num_predicted_steps_ahead = 6 + self.goal_vector = [1.0, 1.0] + self.future_measurements_weights = [0.5, 0.5, 1.0] + self.use_accumulated_reward_as_measurement = False + self.handling_targets_after_episode_end = HandlingTargetsAfterEpisodeEnd.NAN + self.scale_measurements_targets = {} + self.num_consecutive_playing_steps = EnvironmentSteps(8)
+ + +class DFPAgentParameters(AgentParameters): + def __init__(self): + super().__init__(algorithm=DFPAlgorithmParameters(), + exploration=EGreedyParameters(), + memory=DFPMemoryParameters(), + networks={"main": DFPNetworkParameters()}) + + @property + def path(self): + return 'rl_coach.agents.dfp_agent:DFPAgent' + + +# Direct Future Prediction Agent - http://vladlen.info/papers/learning-to-act.pdf +class DFPAgent(Agent): + def __init__(self, agent_parameters, parent: Union['LevelManager', 'CompositeAgent']=None): + super().__init__(agent_parameters, parent) + self.current_goal = self.ap.algorithm.goal_vector + self.target_measurements_scale_factors = None + + def learn_from_batch(self, batch): + network_keys = self.ap.network_wrappers['main'].input_embedders_parameters.keys() + + network_inputs = batch.states(network_keys) + network_inputs['goal'] = np.repeat(np.expand_dims(self.current_goal, 0), + self.ap.network_wrappers['main'].batch_size, axis=0) + + # get the current outputs of the network + targets = self.networks['main'].online_network.predict(network_inputs) + + # change the targets for the taken actions + for i in range(self.ap.network_wrappers['main'].batch_size): + targets[i, batch.actions()[i]] = batch[i].info['future_measurements'].flatten() + + result = self.networks['main'].train_and_sync_networks(network_inputs, targets) + total_loss, losses, unclipped_grads = result[:3] + + return total_loss, losses, unclipped_grads + + def choose_action(self, curr_state): + if self.exploration_policy.requires_action_values(): + # predict the future measurements + tf_input_state = self.prepare_batch_for_inference(curr_state, 'main') + tf_input_state['goal'] = np.expand_dims(self.current_goal, 0) + measurements_future_prediction = self.networks['main'].online_network.predict(tf_input_state)[0] + action_values = np.zeros(len(self.spaces.action.actions)) + num_steps_used_for_objective = len(self.ap.algorithm.future_measurements_weights) + + # calculate the score of each action by multiplying it's future measurements with the goal vector + for action_idx in range(len(self.spaces.action.actions)): + action_measurements = measurements_future_prediction[action_idx] + action_measurements = np.reshape(action_measurements, + (self.ap.algorithm.num_predicted_steps_ahead, + self.spaces.state['measurements'].shape[0])) + future_steps_values = np.dot(action_measurements, self.current_goal) + action_values[action_idx] = np.dot(future_steps_values[-num_steps_used_for_objective:], + self.ap.algorithm.future_measurements_weights) + else: + action_values = None + + # choose action according to the exploration policy and the current phase (evaluating or training the agent) + action = self.exploration_policy.get_action(action_values) + + if action_values is not None: + action_values = action_values.squeeze() + action_info = ActionInfo(action=action, action_value=action_values[action]) + else: + action_info = ActionInfo(action=action) + + return action_info + + def set_environment_parameters(self, spaces: SpacesDefinition): + self.spaces = copy.deepcopy(spaces) + self.spaces.goal = VectorObservationSpace(shape=self.spaces.state['measurements'].shape, + measurements_names= + self.spaces.state['measurements'].measurements_names) + + # if the user has filled some scale values, check that he got the names right + if set(self.spaces.state['measurements'].measurements_names).intersection( + self.ap.algorithm.scale_measurements_targets.keys()) !=\ + set(self.ap.algorithm.scale_measurements_targets.keys()): + raise ValueError("Some of the keys in parameter scale_measurements_targets ({}) are not defined in " + "the measurements space {}".format(self.ap.algorithm.scale_measurements_targets.keys(), + self.spaces.state['measurements'].measurements_names)) + + super().set_environment_parameters(self.spaces) + + # the below is done after calling the base class method, as it might add accumulated reward as a measurement + + # fill out the missing measurements scale factors + for measurement_name in self.spaces.state['measurements'].measurements_names: + if measurement_name not in self.ap.algorithm.scale_measurements_targets: + self.ap.algorithm.scale_measurements_targets[measurement_name] = 1 + + self.target_measurements_scale_factors = \ + np.array([self.ap.algorithm.scale_measurements_targets[measurement_name] for measurement_name in + self.spaces.state['measurements'].measurements_names]) + + def handle_episode_ended(self): + last_episode = self.current_episode_buffer + if self.phase in [RunPhase.TRAIN, RunPhase.HEATUP] and last_episode: + self._update_measurements_targets(last_episode, + self.ap.algorithm.num_predicted_steps_ahead) + super().handle_episode_ended() + + def _update_measurements_targets(self, episode, num_steps): + if 'measurements' not in episode.transitions[0].state or episode.transitions[0].state['measurements'] == []: + raise ValueError("Measurements are not present in the transitions of the last episode played. ") + measurements_size = self.spaces.state['measurements'].shape[0] + for transition_idx, transition in enumerate(episode.transitions): + transition.info['future_measurements'] = np.zeros((num_steps, measurements_size)) + for step in range(num_steps): + offset_idx = transition_idx + 2 ** step + + if offset_idx >= episode.length(): + if self.ap.algorithm.handling_targets_after_episode_end == HandlingTargetsAfterEpisodeEnd.NAN: + # the special MSE loss will ignore those entries so that the gradient will be 0 for these + transition.info['future_measurements'][step] = np.nan + continue + + elif self.ap.algorithm.handling_targets_after_episode_end == HandlingTargetsAfterEpisodeEnd.LastStep: + offset_idx = - 1 + + transition.info['future_measurements'][step] = \ + self.target_measurements_scale_factors * \ + (episode.transitions[offset_idx].state['measurements'] - transition.state['measurements']) +
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/agents/dqn_agent.html b/docs/_modules/rl_coach/agents/dqn_agent.html new file mode 100644 index 0000000..c60551f --- /dev/null +++ b/docs/_modules/rl_coach/agents/dqn_agent.html @@ -0,0 +1,326 @@ + + + + + + + + + + + rl_coach.agents.dqn_agent — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.agents.dqn_agent
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.agents.dqn_agent

+#
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+from typing import Union
+
+import numpy as np
+
+from rl_coach.agents.value_optimization_agent import ValueOptimizationAgent
+from rl_coach.architectures.embedder_parameters import InputEmbedderParameters
+from rl_coach.architectures.head_parameters import QHeadParameters
+from rl_coach.architectures.middleware_parameters import FCMiddlewareParameters
+from rl_coach.base_parameters import AlgorithmParameters, NetworkParameters, AgentParameters, \
+    MiddlewareScheme
+from rl_coach.core_types import EnvironmentSteps
+from rl_coach.exploration_policies.e_greedy import EGreedyParameters
+from rl_coach.memories.non_episodic.experience_replay import ExperienceReplayParameters
+from rl_coach.schedules import LinearSchedule
+
+
+
[docs]class DQNAlgorithmParameters(AlgorithmParameters): + def __init__(self): + super().__init__() + self.num_steps_between_copying_online_weights_to_target = EnvironmentSteps(10000) + self.num_consecutive_playing_steps = EnvironmentSteps(4) + self.discount = 0.99
+ + +class DQNNetworkParameters(NetworkParameters): + def __init__(self): + super().__init__() + self.input_embedders_parameters = {'observation': InputEmbedderParameters()} + self.middleware_parameters = FCMiddlewareParameters(scheme=MiddlewareScheme.Medium) + self.heads_parameters = [QHeadParameters()] + self.optimizer_type = 'Adam' + self.batch_size = 32 + self.replace_mse_with_huber_loss = True + self.create_target_network = True + + +class DQNAgentParameters(AgentParameters): + def __init__(self): + super().__init__(algorithm=DQNAlgorithmParameters(), + exploration=EGreedyParameters(), + memory=ExperienceReplayParameters(), + networks={"main": DQNNetworkParameters()}) + self.exploration.epsilon_schedule = LinearSchedule(1, 0.1, 1000000) + self.exploration.evaluation_epsilon = 0.05 + + @property + def path(self): + return 'rl_coach.agents.dqn_agent:DQNAgent' + + +# Deep Q Network - https://www.cs.toronto.edu/~vmnih/docs/dqn.pdf +
[docs]class DQNAgent(ValueOptimizationAgent): + def __init__(self, agent_parameters, parent: Union['LevelManager', 'CompositeAgent']=None): + super().__init__(agent_parameters, parent) + +
[docs] def learn_from_batch(self, batch): + network_keys = self.ap.network_wrappers['main'].input_embedders_parameters.keys() + + # for the action we actually took, the error is: + # TD error = r + discount*max(q_st_plus_1) - q_st + # # for all other actions, the error is 0 + q_st_plus_1, TD_targets = self.networks['main'].parallel_prediction([ + (self.networks['main'].target_network, batch.next_states(network_keys)), + (self.networks['main'].online_network, batch.states(network_keys)) + ]) + + # only update the action that we have actually done in this transition + TD_errors = [] + for i in range(self.ap.network_wrappers['main'].batch_size): + new_target = batch.rewards()[i] +\ + (1.0 - batch.game_overs()[i]) * self.ap.algorithm.discount * np.max(q_st_plus_1[i], 0) + TD_errors.append(np.abs(new_target - TD_targets[i, batch.actions()[i]])) + TD_targets[i, batch.actions()[i]] = new_target + + # update errors in prioritized replay buffer + importance_weights = self.update_transition_priorities_and_get_weights(TD_errors, batch) + + result = self.networks['main'].train_and_sync_networks(batch.states(network_keys), TD_targets, + importance_weights=importance_weights) + + total_loss, losses, unclipped_grads = result[:3] + + return total_loss, losses, unclipped_grads
+
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/agents/mmc_agent.html b/docs/_modules/rl_coach/agents/mmc_agent.html new file mode 100644 index 0000000..d27a727 --- /dev/null +++ b/docs/_modules/rl_coach/agents/mmc_agent.html @@ -0,0 +1,306 @@ + + + + + + + + + + + rl_coach.agents.mmc_agent — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.agents.mmc_agent
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.agents.mmc_agent

+#
+# Copyright (c) 2017 Intel Corporation 
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+from typing import Union
+
+import numpy as np
+
+from rl_coach.agents.dqn_agent import DQNAgentParameters, DQNAlgorithmParameters
+from rl_coach.agents.value_optimization_agent import ValueOptimizationAgent
+from rl_coach.memories.episodic.episodic_experience_replay import EpisodicExperienceReplayParameters
+
+
+
[docs]class MixedMonteCarloAlgorithmParameters(DQNAlgorithmParameters): + """ + :param monte_carlo_mixing_rate: (float) + The mixing rate is used for setting the amount of monte carlo estimate (full return) that will be mixes into + the single-step bootstrapped targets. + """ + def __init__(self): + super().__init__() + self.monte_carlo_mixing_rate = 0.1
+ + +class MixedMonteCarloAgentParameters(DQNAgentParameters): + def __init__(self): + super().__init__() + self.algorithm = MixedMonteCarloAlgorithmParameters() + self.memory = EpisodicExperienceReplayParameters() + + @property + def path(self): + return 'rl_coach.agents.mmc_agent:MixedMonteCarloAgent' + + +class MixedMonteCarloAgent(ValueOptimizationAgent): + def __init__(self, agent_parameters, parent: Union['LevelManager', 'CompositeAgent']=None): + super().__init__(agent_parameters, parent) + self.mixing_rate = agent_parameters.algorithm.monte_carlo_mixing_rate + + def learn_from_batch(self, batch): + network_keys = self.ap.network_wrappers['main'].input_embedders_parameters.keys() + + # for the 1-step, we use the double-dqn target. hence actions are taken greedily according to the online network + selected_actions = np.argmax(self.networks['main'].online_network.predict(batch.next_states(network_keys)), 1) + + # TD_targets are initialized with the current prediction so that we will + # only update the action that we have actually done in this transition + q_st_plus_1, TD_targets = self.networks['main'].parallel_prediction([ + (self.networks['main'].target_network, batch.next_states(network_keys)), + (self.networks['main'].online_network, batch.states(network_keys)) + ]) + + total_returns = batch.n_step_discounted_rewards() + + for i in range(self.ap.network_wrappers['main'].batch_size): + one_step_target = batch.rewards()[i] + \ + (1.0 - batch.game_overs()[i]) * self.ap.algorithm.discount * \ + q_st_plus_1[i][selected_actions[i]] + monte_carlo_target = total_returns[i] + TD_targets[i, batch.actions()[i]] = (1 - self.mixing_rate) * one_step_target + \ + self.mixing_rate * monte_carlo_target + + result = self.networks['main'].train_and_sync_networks(batch.states(network_keys), TD_targets) + total_loss, losses, unclipped_grads = result[:3] + + return total_loss, losses, unclipped_grads +
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/agents/n_step_q_agent.html b/docs/_modules/rl_coach/agents/n_step_q_agent.html new file mode 100644 index 0000000..bb1f371 --- /dev/null +++ b/docs/_modules/rl_coach/agents/n_step_q_agent.html @@ -0,0 +1,373 @@ + + + + + + + + + + + rl_coach.agents.n_step_q_agent — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.agents.n_step_q_agent
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.agents.n_step_q_agent

+#
+# Copyright (c) 2017 Intel Corporation 
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+from typing import Union
+
+import numpy as np
+
+from rl_coach.agents.policy_optimization_agent import PolicyOptimizationAgent
+from rl_coach.agents.value_optimization_agent import ValueOptimizationAgent
+from rl_coach.architectures.embedder_parameters import InputEmbedderParameters
+from rl_coach.architectures.head_parameters import QHeadParameters
+from rl_coach.architectures.middleware_parameters import FCMiddlewareParameters
+from rl_coach.base_parameters import AlgorithmParameters, AgentParameters, NetworkParameters
+
+from rl_coach.core_types import EnvironmentSteps
+from rl_coach.exploration_policies.e_greedy import EGreedyParameters
+from rl_coach.memories.episodic.single_episode_buffer import SingleEpisodeBufferParameters
+from rl_coach.utils import last_sample
+
+
+class NStepQNetworkParameters(NetworkParameters):
+    def __init__(self):
+        super().__init__()
+        self.input_embedders_parameters = {'observation': InputEmbedderParameters()}
+        self.middleware_parameters = FCMiddlewareParameters()
+        self.heads_parameters = [QHeadParameters()]
+        self.optimizer_type = 'Adam'
+        self.async_training = True
+        self.shared_optimizer = True
+        self.create_target_network = True
+
+
+
[docs]class NStepQAlgorithmParameters(AlgorithmParameters): + """ + :param num_steps_between_copying_online_weights_to_target: (StepMethod) + The number of steps between copying the online network weights to the target network weights. + + :param apply_gradients_every_x_episodes: (int) + The number of episodes between applying the accumulated gradients to the network. After every + num_steps_between_gradient_updates steps, the agent will calculate the gradients for the collected data, + it will then accumulate it in internal accumulators, and will only apply them to the network once in every + apply_gradients_every_x_episodes episodes. + + :param num_steps_between_gradient_updates: (int) + The number of steps between calculating gradients for the collected data. In the A3C paper, this parameter is + called t_max. Since this algorithm is on-policy, only the steps collected between each two gradient calculations + are used in the batch. + + :param targets_horizon: (str) + Should be either 'N-Step' or '1-Step', and defines the length for which to bootstrap the network values over. + Essentially, 1-Step follows the regular 1 step bootstrapping Q learning update. For more information, + please refer to the original paper (https://arxiv.org/abs/1602.01783) + """ + def __init__(self): + super().__init__() + self.num_steps_between_copying_online_weights_to_target = EnvironmentSteps(10000) + self.apply_gradients_every_x_episodes = 1 + self.num_steps_between_gradient_updates = 5 # this is called t_max in all the papers + self.targets_horizon = 'N-Step'
+ + +class NStepQAgentParameters(AgentParameters): + def __init__(self): + super().__init__(algorithm=NStepQAlgorithmParameters(), + exploration=EGreedyParameters(), + memory=SingleEpisodeBufferParameters(), + networks={"main": NStepQNetworkParameters()}) + + @property + def path(self): + return 'rl_coach.agents.n_step_q_agent:NStepQAgent' + + +# N Step Q Learning Agent - https://arxiv.org/abs/1602.01783 +class NStepQAgent(ValueOptimizationAgent, PolicyOptimizationAgent): + def __init__(self, agent_parameters, parent: Union['LevelManager', 'CompositeAgent']=None): + super().__init__(agent_parameters, parent) + self.last_gradient_update_step_idx = 0 + self.q_values = self.register_signal('Q Values') + self.value_loss = self.register_signal('Value Loss') + + def learn_from_batch(self, batch): + # batch contains a list of episodes to learn from + network_keys = self.ap.network_wrappers['main'].input_embedders_parameters.keys() + + # get the values for the current states + state_value_head_targets = self.networks['main'].online_network.predict(batch.states(network_keys)) + + # the targets for the state value estimator + if self.ap.algorithm.targets_horizon == '1-Step': + # 1-Step Q learning + q_st_plus_1 = self.networks['main'].target_network.predict(batch.next_states(network_keys)) + + for i in reversed(range(batch.size)): + state_value_head_targets[i][batch.actions()[i]] = \ + batch.rewards()[i] \ + + (1.0 - batch.game_overs()[i]) * self.ap.algorithm.discount * np.max(q_st_plus_1[i], 0) + + elif self.ap.algorithm.targets_horizon == 'N-Step': + # N-Step Q learning + if batch.game_overs()[-1]: + R = 0 + else: + R = np.max(self.networks['main'].target_network.predict(last_sample(batch.next_states(network_keys)))) + + for i in reversed(range(batch.size)): + R = batch.rewards()[i] + self.ap.algorithm.discount * R + state_value_head_targets[i][batch.actions()[i]] = R + + else: + assert True, 'The available values for targets_horizon are: 1-Step, N-Step' + + # train + result = self.networks['main'].online_network.accumulate_gradients(batch.states(network_keys), [state_value_head_targets]) + + # logging + total_loss, losses, unclipped_grads = result[:3] + self.value_loss.add_sample(losses[0]) + + return total_loss, losses, unclipped_grads + + def train(self): + # update the target network of every network that has a target network + if any([network.has_target for network in self.networks.values()]) \ + and self._should_update_online_weights_to_target(): + for network in self.networks.values(): + network.update_target_network(self.ap.algorithm.rate_for_copying_weights_to_target) + + self.agent_logger.create_signal_value('Update Target Network', 1) + else: + self.agent_logger.create_signal_value('Update Target Network', 0, overwrite=False) + + return PolicyOptimizationAgent.train(self) +
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/agents/naf_agent.html b/docs/_modules/rl_coach/agents/naf_agent.html new file mode 100644 index 0000000..72d71b3 --- /dev/null +++ b/docs/_modules/rl_coach/agents/naf_agent.html @@ -0,0 +1,354 @@ + + + + + + + + + + + rl_coach.agents.naf_agent — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.agents.naf_agent
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.agents.naf_agent

+#
+# Copyright (c) 2017 Intel Corporation 
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+from typing import Union
+
+import numpy as np
+
+from rl_coach.agents.value_optimization_agent import ValueOptimizationAgent
+from rl_coach.architectures.embedder_parameters import InputEmbedderParameters
+from rl_coach.architectures.head_parameters import NAFHeadParameters
+from rl_coach.architectures.middleware_parameters import FCMiddlewareParameters
+from rl_coach.base_parameters import AlgorithmParameters, AgentParameters, \
+    NetworkParameters
+
+from rl_coach.core_types import ActionInfo, EnvironmentSteps
+from rl_coach.exploration_policies.ou_process import OUProcessParameters
+from rl_coach.memories.episodic.episodic_experience_replay import EpisodicExperienceReplayParameters
+from rl_coach.spaces import BoxActionSpace
+
+
+class NAFNetworkParameters(NetworkParameters):
+    def __init__(self):
+        super().__init__()
+        self.input_embedders_parameters = {'observation': InputEmbedderParameters()}
+        self.middleware_parameters = FCMiddlewareParameters()
+        self.heads_parameters = [NAFHeadParameters()]
+        self.optimizer_type = 'Adam'
+        self.learning_rate = 0.001
+        self.async_training = True
+        self.create_target_network = True
+
+
+
[docs]class NAFAlgorithmParameters(AlgorithmParameters): + def __init__(self): + super().__init__() + self.num_consecutive_training_steps = 5 + self.num_steps_between_copying_online_weights_to_target = EnvironmentSteps(1) + self.rate_for_copying_weights_to_target = 0.001
+ + +class NAFAgentParameters(AgentParameters): + def __init__(self): + super().__init__(algorithm=NAFAlgorithmParameters(), + exploration=OUProcessParameters(), + memory=EpisodicExperienceReplayParameters(), + networks={"main": NAFNetworkParameters()}) + + @property + def path(self): + return 'rl_coach.agents.naf_agent:NAFAgent' + + +# Normalized Advantage Functions - https://arxiv.org/pdf/1603.00748.pdf +class NAFAgent(ValueOptimizationAgent): + def __init__(self, agent_parameters, parent: Union['LevelManager', 'CompositeAgent']=None): + super().__init__(agent_parameters, parent) + self.l_values = self.register_signal("L") + self.a_values = self.register_signal("Advantage") + self.mu_values = self.register_signal("Action") + self.v_values = self.register_signal("V") + self.TD_targets = self.register_signal("TD targets") + + def learn_from_batch(self, batch): + network_keys = self.ap.network_wrappers['main'].input_embedders_parameters.keys() + + # TD error = r + discount*v_st_plus_1 - q_st + v_st_plus_1 = self.networks['main'].target_network.predict( + batch.next_states(network_keys), + self.networks['main'].target_network.output_heads[0].V, + squeeze_output=False, + ) + TD_targets = np.expand_dims(batch.rewards(), -1) + \ + (1.0 - np.expand_dims(batch.game_overs(), -1)) * self.ap.algorithm.discount * v_st_plus_1 + + self.TD_targets.add_sample(TD_targets) + + result = self.networks['main'].train_and_sync_networks({**batch.states(network_keys), + 'output_0_0': batch.actions(len(batch.actions().shape) == 1) + }, TD_targets) + total_loss, losses, unclipped_grads = result[:3] + + return total_loss, losses, unclipped_grads + + def choose_action(self, curr_state): + if type(self.spaces.action) != BoxActionSpace: + raise ValueError('NAF works only for continuous control problems') + + # convert to batch so we can run it through the network + tf_input_state = self.prepare_batch_for_inference(curr_state, 'main') + naf_head = self.networks['main'].online_network.output_heads[0] + action_values = self.networks['main'].online_network.predict(tf_input_state, outputs=naf_head.mu, + squeeze_output=False) + + # get the actual action to use + action = self.exploration_policy.get_action(action_values) + + # get the internal values for logging + outputs = [naf_head.mu, naf_head.Q, naf_head.L, naf_head.A, naf_head.V] + result = self.networks['main'].online_network.predict( + {**tf_input_state, 'output_0_0': action_values}, + outputs=outputs + ) + mu, Q, L, A, V = result + + # store the q values statistics for logging + self.q_values.add_sample(Q) + self.l_values.add_sample(L) + self.a_values.add_sample(A) + self.mu_values.add_sample(mu) + self.v_values.add_sample(V) + + action_info = ActionInfo(action=action, action_value=Q) + + return action_info +
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/agents/nec_agent.html b/docs/_modules/rl_coach/agents/nec_agent.html new file mode 100644 index 0000000..8b63939 --- /dev/null +++ b/docs/_modules/rl_coach/agents/nec_agent.html @@ -0,0 +1,435 @@ + + + + + + + + + + + rl_coach.agents.nec_agent — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.agents.nec_agent
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.agents.nec_agent

+#
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+import os
+import pickle
+from typing import Union
+
+import numpy as np
+
+from rl_coach.agents.value_optimization_agent import ValueOptimizationAgent
+from rl_coach.architectures.embedder_parameters import InputEmbedderParameters
+from rl_coach.architectures.head_parameters import DNDQHeadParameters
+from rl_coach.architectures.middleware_parameters import FCMiddlewareParameters
+from rl_coach.base_parameters import AlgorithmParameters, NetworkParameters, AgentParameters
+
+from rl_coach.core_types import RunPhase, EnvironmentSteps, Episode, StateType
+from rl_coach.exploration_policies.e_greedy import EGreedyParameters
+from rl_coach.logger import screen
+from rl_coach.memories.episodic.episodic_experience_replay import EpisodicExperienceReplayParameters, MemoryGranularity
+from rl_coach.schedules import ConstantSchedule
+
+
+class NECNetworkParameters(NetworkParameters):
+    def __init__(self):
+        super().__init__()
+        self.input_embedders_parameters = {'observation': InputEmbedderParameters()}
+        self.middleware_parameters = FCMiddlewareParameters()
+        self.heads_parameters = [DNDQHeadParameters()]
+        self.optimizer_type = 'Adam'
+
+
+
[docs]class NECAlgorithmParameters(AlgorithmParameters): + """ + :param dnd_size: (int) + Defines the number of transitions that will be stored in each one of the DNDs. Note that the total number + of transitions that will be stored is dnd_size x num_actions. + + :param l2_norm_added_delta: (float) + A small value that will be added when calculating the weight of each of the DND entries. This follows the + :math:`\delta` patameter defined in the paper. + + :param new_value_shift_coefficient: (float) + In the case where a ew embedding that was added to the DND was already present, the value that will be stored + in the DND is a mix between the existing value and the new value. The mix rate is defined by + new_value_shift_coefficient. + + :param number_of_knn: (int) + The number of neighbors that will be retrieved for each DND query. + + :param DND_key_error_threshold: (float) + When the DND is queried for a specific embedding, this threshold will be used to determine if the embedding + exists in the DND, since exact matches of embeddings are very rare. + + :param propagate_updates_to_DND: (bool) + If set to True, when the gradients of the network will be calculated, the gradients will also be + backpropagated through the keys of the DND. The keys will then be updated as well, as if they were regular + network weights. + + :param n_step: (int) + The bootstrap length that will be used when calculating the state values to store in the DND. + + :param bootstrap_total_return_from_old_policy: (bool) + If set to True, the bootstrap that will be used to calculate each state-action value, is the network value + when the state was first seen, and not the latest, most up-to-date network value. + """ + def __init__(self): + super().__init__() + self.dnd_size = 500000 + self.l2_norm_added_delta = 0.001 + self.new_value_shift_coefficient = 0.1 + self.number_of_knn = 50 + self.DND_key_error_threshold = 0 + self.num_consecutive_playing_steps = EnvironmentSteps(4) + self.propagate_updates_to_DND = False + self.n_step = 100 + self.bootstrap_total_return_from_old_policy = True
+ + +class NECMemoryParameters(EpisodicExperienceReplayParameters): + def __init__(self): + super().__init__() + self.max_size = (MemoryGranularity.Transitions, 100000) + + +class NECAgentParameters(AgentParameters): + def __init__(self): + super().__init__(algorithm=NECAlgorithmParameters(), + exploration=EGreedyParameters(), + memory=NECMemoryParameters(), + networks={"main": NECNetworkParameters()}) + self.exploration.epsilon_schedule = ConstantSchedule(0.1) + self.exploration.evaluation_epsilon = 0.01 + + @property + def path(self): + return 'rl_coach.agents.nec_agent:NECAgent' + + +# Neural Episodic Control - https://arxiv.org/pdf/1703.01988.pdf +class NECAgent(ValueOptimizationAgent): + def __init__(self, agent_parameters, parent: Union['LevelManager', 'CompositeAgent']=None): + super().__init__(agent_parameters, parent) + self.current_episode_state_embeddings = [] + self.training_started = False + self.current_episode_buffer = \ + Episode(discount=self.ap.algorithm.discount, + n_step=self.ap.algorithm.n_step, + bootstrap_total_return_from_old_policy=self.ap.algorithm.bootstrap_total_return_from_old_policy) + + def learn_from_batch(self, batch): + if not self.networks['main'].online_network.output_heads[0].DND.has_enough_entries(self.ap.algorithm.number_of_knn): + return 0, [], 0 + else: + if not self.training_started: + self.training_started = True + screen.log_title("Finished collecting initial entries in DND. Starting to train network...") + + network_keys = self.ap.network_wrappers['main'].input_embedders_parameters.keys() + + TD_targets = self.networks['main'].online_network.predict(batch.states(network_keys)) + bootstrapped_return_from_old_policy = batch.n_step_discounted_rewards() + # only update the action that we have actually done in this transition + for i in range(self.ap.network_wrappers['main'].batch_size): + TD_targets[i, batch.actions()[i]] = bootstrapped_return_from_old_policy[i] + + # set the gradients to fetch for the DND update + fetches = [] + head = self.networks['main'].online_network.output_heads[0] + if self.ap.algorithm.propagate_updates_to_DND: + fetches = [head.dnd_embeddings_grad, head.dnd_values_grad, head.dnd_indices] + + # train the neural network + result = self.networks['main'].train_and_sync_networks(batch.states(network_keys), TD_targets, fetches) + + total_loss, losses, unclipped_grads = result[:3] + + # update the DND keys and values using the extracted gradients + if self.ap.algorithm.propagate_updates_to_DND: + embedding_gradients = np.swapaxes(result[-1][0], 0, 1) + value_gradients = np.swapaxes(result[-1][1], 0, 1) + indices = np.swapaxes(result[-1][2], 0, 1) + head.DND.update_keys_and_values(batch.actions(), embedding_gradients, value_gradients, indices) + + return total_loss, losses, unclipped_grads + + def act(self): + if self.phase == RunPhase.HEATUP: + # get embedding in heatup (otherwise we get it through get_prediction) + embedding = self.networks['main'].online_network.predict( + self.prepare_batch_for_inference(self.curr_state, 'main'), + outputs=self.networks['main'].online_network.state_embedding) + self.current_episode_state_embeddings.append(embedding) + + return super().act() + + def get_all_q_values_for_states(self, states: StateType): + # we need to store the state embeddings regardless if the action is random or not + return self.get_prediction(states) + + def get_prediction(self, states): + # get the actions q values and the state embedding + embedding, actions_q_values = self.networks['main'].online_network.predict( + self.prepare_batch_for_inference(states, 'main'), + outputs=[self.networks['main'].online_network.state_embedding, + self.networks['main'].online_network.output_heads[0].output] + ) + if self.phase != RunPhase.TEST: + # store the state embedding for inserting it to the DND later + self.current_episode_state_embeddings.append(embedding.squeeze()) + actions_q_values = actions_q_values[0][0] + return actions_q_values + + def reset_internal_state(self): + super().reset_internal_state() + self.current_episode_state_embeddings = [] + self.current_episode_buffer = \ + Episode(discount=self.ap.algorithm.discount, + n_step=self.ap.algorithm.n_step, + bootstrap_total_return_from_old_policy=self.ap.algorithm.bootstrap_total_return_from_old_policy) + + def handle_episode_ended(self): + super().handle_episode_ended() + + # get the last full episode that we have collected + episode = self.call_memory('get_last_complete_episode') + if episode is not None and self.phase != RunPhase.TEST: + assert len(self.current_episode_state_embeddings) == episode.length() + discounted_rewards = episode.get_transitions_attribute('n_step_discounted_rewards') + actions = episode.get_transitions_attribute('action') + self.networks['main'].online_network.output_heads[0].DND.add(self.current_episode_state_embeddings, + actions, discounted_rewards) + + def save_checkpoint(self, checkpoint_id): + with open(os.path.join(self.ap.task_parameters.checkpoint_save_dir, str(checkpoint_id) + '.dnd'), 'wb') as f: + pickle.dump(self.networks['main'].online_network.output_heads[0].DND, f, pickle.HIGHEST_PROTOCOL) +
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/agents/pal_agent.html b/docs/_modules/rl_coach/agents/pal_agent.html new file mode 100644 index 0000000..0344d4c --- /dev/null +++ b/docs/_modules/rl_coach/agents/pal_agent.html @@ -0,0 +1,334 @@ + + + + + + + + + + + rl_coach.agents.pal_agent — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.agents.pal_agent
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.agents.pal_agent

+#
+# Copyright (c) 2017 Intel Corporation 
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+from typing import Union
+
+import numpy as np
+
+from rl_coach.agents.dqn_agent import DQNAgentParameters, DQNAlgorithmParameters
+from rl_coach.agents.value_optimization_agent import ValueOptimizationAgent
+from rl_coach.memories.episodic.episodic_experience_replay import EpisodicExperienceReplayParameters
+
+
+
[docs]class PALAlgorithmParameters(DQNAlgorithmParameters): + """ + :param pal_alpha: (float) + A factor that weights the amount by which the advantage learning update will be taken into account. + + :param persistent_advantage_learning: (bool) + If set to True, the persistent mode of advantage learning will be used, which encourages the agent to take + the same actions one after the other instead of changing actions. + + :param monte_carlo_mixing_rate: (float) + The amount of monte carlo values to mix into the targets of the network. The monte carlo values are just the + total discounted returns, and they can help reduce the time it takes for the network to update to the newly + seen values, since it is not based on bootstrapping the current network values. + """ + def __init__(self): + super().__init__() + self.pal_alpha = 0.9 + self.persistent_advantage_learning = False + self.monte_carlo_mixing_rate = 0.1
+ + +class PALAgentParameters(DQNAgentParameters): + def __init__(self): + super().__init__() + self.algorithm = PALAlgorithmParameters() + self.memory = EpisodicExperienceReplayParameters() + + @property + def path(self): + return 'rl_coach.agents.pal_agent:PALAgent' + + +# Persistent Advantage Learning - https://arxiv.org/pdf/1512.04860.pdf +class PALAgent(ValueOptimizationAgent): + def __init__(self, agent_parameters, parent: Union['LevelManager', 'CompositeAgent']=None): + super().__init__(agent_parameters, parent) + self.alpha = agent_parameters.algorithm.pal_alpha + self.persistent = agent_parameters.algorithm.persistent_advantage_learning + self.monte_carlo_mixing_rate = agent_parameters.algorithm.monte_carlo_mixing_rate + + def learn_from_batch(self, batch): + network_keys = self.ap.network_wrappers['main'].input_embedders_parameters.keys() + + # next state values + q_st_plus_1_target, q_st_plus_1_online = self.networks['main'].parallel_prediction([ + (self.networks['main'].target_network, batch.next_states(network_keys)), + (self.networks['main'].online_network, batch.next_states(network_keys)) + ]) + selected_actions = np.argmax(q_st_plus_1_online, 1) + v_st_plus_1_target = np.max(q_st_plus_1_target, 1) + + # current state values + q_st_target, q_st_online = self.networks['main'].parallel_prediction([ + (self.networks['main'].target_network, batch.states(network_keys)), + (self.networks['main'].online_network, batch.states(network_keys)) + ]) + v_st_target = np.max(q_st_target, 1) + + # calculate TD error + TD_targets = np.copy(q_st_online) + total_returns = batch.n_step_discounted_rewards() + for i in range(self.ap.network_wrappers['main'].batch_size): + TD_targets[i, batch.actions()[i]] = batch.rewards()[i] + \ + (1.0 - batch.game_overs()[i]) * self.ap.algorithm.discount * \ + q_st_plus_1_target[i][selected_actions[i]] + advantage_learning_update = v_st_target[i] - q_st_target[i, batch.actions()[i]] + next_advantage_learning_update = v_st_plus_1_target[i] - q_st_plus_1_target[i, selected_actions[i]] + # Persistent Advantage Learning or Regular Advantage Learning + if self.persistent: + TD_targets[i, batch.actions()[i]] -= self.alpha * min(advantage_learning_update, next_advantage_learning_update) + else: + TD_targets[i, batch.actions()[i]] -= self.alpha * advantage_learning_update + + # mixing monte carlo updates + monte_carlo_target = total_returns[i] + TD_targets[i, batch.actions()[i]] = (1 - self.monte_carlo_mixing_rate) * TD_targets[i, batch.actions()[i]] \ + + self.monte_carlo_mixing_rate * monte_carlo_target + + result = self.networks['main'].train_and_sync_networks(batch.states(network_keys), TD_targets) + total_loss, losses, unclipped_grads = result[:3] + + return total_loss, losses, unclipped_grads +
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/agents/policy_gradients_agent.html b/docs/_modules/rl_coach/agents/policy_gradients_agent.html new file mode 100644 index 0000000..adf3150 --- /dev/null +++ b/docs/_modules/rl_coach/agents/policy_gradients_agent.html @@ -0,0 +1,356 @@ + + + + + + + + + + + rl_coach.agents.policy_gradients_agent — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.agents.policy_gradients_agent
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.agents.policy_gradients_agent

+#
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+from typing import Union
+
+import numpy as np
+
+from rl_coach.agents.policy_optimization_agent import PolicyOptimizationAgent, PolicyGradientRescaler
+from rl_coach.architectures.embedder_parameters import InputEmbedderParameters
+from rl_coach.architectures.head_parameters import PolicyHeadParameters
+from rl_coach.architectures.middleware_parameters import FCMiddlewareParameters
+from rl_coach.base_parameters import NetworkParameters, AlgorithmParameters, \
+    AgentParameters
+
+from rl_coach.exploration_policies.additive_noise import AdditiveNoiseParameters
+from rl_coach.exploration_policies.categorical import CategoricalParameters
+from rl_coach.logger import screen
+from rl_coach.memories.episodic.single_episode_buffer import SingleEpisodeBufferParameters
+from rl_coach.spaces import DiscreteActionSpace, BoxActionSpace
+
+
+class PolicyGradientNetworkParameters(NetworkParameters):
+    def __init__(self):
+        super().__init__()
+        self.input_embedders_parameters = {'observation': InputEmbedderParameters()}
+        self.middleware_parameters = FCMiddlewareParameters()
+        self.heads_parameters = [PolicyHeadParameters()]
+        self.async_training = True
+
+
+
[docs]class PolicyGradientAlgorithmParameters(AlgorithmParameters): + """ + :param policy_gradient_rescaler: (PolicyGradientRescaler) + The rescaler type to use for the policy gradient loss. For policy gradients, we calculate log probability of + the action and then multiply it by the policy gradient rescaler. The most basic rescaler is the discounter + return, but there are other rescalers that are intended for reducing the variance of the updates. + + :param apply_gradients_every_x_episodes: (int) + The number of episodes between applying the accumulated gradients to the network. After every + num_steps_between_gradient_updates steps, the agent will calculate the gradients for the collected data, + it will then accumulate it in internal accumulators, and will only apply them to the network once in every + apply_gradients_every_x_episodes episodes. + + :param beta_entropy: (float) + A factor which defines the amount of entropy regularization to apply to the network. The entropy of the actions + will be added to the loss and scaled by the given beta factor. + + :param num_steps_between_gradient_updates: (int) + The number of steps between calculating gradients for the collected data. In the A3C paper, this parameter is + called t_max. Since this algorithm is on-policy, only the steps collected between each two gradient calculations + are used in the batch. + """ + def __init__(self): + super().__init__() + self.policy_gradient_rescaler = PolicyGradientRescaler.FUTURE_RETURN_NORMALIZED_BY_TIMESTEP + self.apply_gradients_every_x_episodes = 5 + self.beta_entropy = 0 + self.num_steps_between_gradient_updates = 20000 # this is called t_max in all the papers
+ + +class PolicyGradientsAgentParameters(AgentParameters): + def __init__(self): + super().__init__(algorithm=PolicyGradientAlgorithmParameters(), + exploration={DiscreteActionSpace: CategoricalParameters(), + BoxActionSpace: AdditiveNoiseParameters()}, + memory=SingleEpisodeBufferParameters(), + networks={"main": PolicyGradientNetworkParameters()}) + + @property + def path(self): + return 'rl_coach.agents.policy_gradients_agent:PolicyGradientsAgent' + + +class PolicyGradientsAgent(PolicyOptimizationAgent): + def __init__(self, agent_parameters, parent: Union['LevelManager', 'CompositeAgent']=None): + super().__init__(agent_parameters, parent) + self.returns_mean = self.register_signal('Returns Mean') + self.returns_variance = self.register_signal('Returns Variance') + self.last_gradient_update_step_idx = 0 + + def learn_from_batch(self, batch): + # batch contains a list of episodes to learn from + network_keys = self.ap.network_wrappers['main'].input_embedders_parameters.keys() + + total_returns = batch.n_step_discounted_rewards() + for i in reversed(range(batch.size)): + if self.policy_gradient_rescaler == PolicyGradientRescaler.TOTAL_RETURN: + total_returns[i] = total_returns[0] + elif self.policy_gradient_rescaler == PolicyGradientRescaler.FUTURE_RETURN: + # just take the total return as it is + pass + elif self.policy_gradient_rescaler == PolicyGradientRescaler.FUTURE_RETURN_NORMALIZED_BY_EPISODE: + # we can get a single transition episode while playing Doom Basic, causing the std to be 0 + if self.std_discounted_return != 0: + total_returns[i] = (total_returns[i] - self.mean_discounted_return) / self.std_discounted_return + else: + total_returns[i] = 0 + elif self.policy_gradient_rescaler == PolicyGradientRescaler.FUTURE_RETURN_NORMALIZED_BY_TIMESTEP: + total_returns[i] -= self.mean_return_over_multiple_episodes[i] + else: + screen.warning("WARNING: The requested policy gradient rescaler is not available") + + targets = total_returns + actions = batch.actions() + if type(self.spaces.action) != DiscreteActionSpace and len(actions.shape) < 2: + actions = np.expand_dims(actions, -1) + + self.returns_mean.add_sample(np.mean(total_returns)) + self.returns_variance.add_sample(np.std(total_returns)) + + result = self.networks['main'].online_network.accumulate_gradients( + {**batch.states(network_keys), 'output_0_0': actions}, targets + ) + total_loss, losses, unclipped_grads = result[:3] + + return total_loss, losses, unclipped_grads +
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/agents/ppo_agent.html b/docs/_modules/rl_coach/agents/ppo_agent.html new file mode 100644 index 0000000..619ec6d --- /dev/null +++ b/docs/_modules/rl_coach/agents/ppo_agent.html @@ -0,0 +1,620 @@ + + + + + + + + + + + rl_coach.agents.ppo_agent — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.agents.ppo_agent
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.agents.ppo_agent

+#
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+import copy
+from collections import OrderedDict
+from typing import Union
+
+import numpy as np
+
+from rl_coach.agents.actor_critic_agent import ActorCriticAgent
+from rl_coach.agents.policy_optimization_agent import PolicyGradientRescaler
+from rl_coach.architectures.embedder_parameters import InputEmbedderParameters
+from rl_coach.architectures.head_parameters import PPOHeadParameters, VHeadParameters
+from rl_coach.architectures.middleware_parameters import FCMiddlewareParameters
+from rl_coach.base_parameters import AlgorithmParameters, NetworkParameters, \
+    AgentParameters, DistributedTaskParameters
+
+from rl_coach.core_types import EnvironmentSteps, Batch
+from rl_coach.exploration_policies.additive_noise import AdditiveNoiseParameters
+from rl_coach.exploration_policies.categorical import CategoricalParameters
+from rl_coach.logger import screen
+from rl_coach.memories.episodic.episodic_experience_replay import EpisodicExperienceReplayParameters
+from rl_coach.spaces import DiscreteActionSpace, BoxActionSpace
+from rl_coach.utils import force_list
+
+
+class PPOCriticNetworkParameters(NetworkParameters):
+    def __init__(self):
+        super().__init__()
+        self.input_embedders_parameters = {'observation': InputEmbedderParameters(activation_function='tanh')}
+        self.middleware_parameters = FCMiddlewareParameters(activation_function='tanh')
+        self.heads_parameters = [VHeadParameters()]
+        self.async_training = True
+        self.l2_regularization = 0
+        self.create_target_network = True
+        self.batch_size = 128
+
+
+class PPOActorNetworkParameters(NetworkParameters):
+    def __init__(self):
+        super().__init__()
+        self.input_embedders_parameters = {'observation': InputEmbedderParameters(activation_function='tanh')}
+        self.middleware_parameters = FCMiddlewareParameters(activation_function='tanh')
+        self.heads_parameters = [PPOHeadParameters()]
+        self.optimizer_type = 'Adam'
+        self.async_training = True
+        self.l2_regularization = 0
+        self.create_target_network = True
+        self.batch_size = 128
+
+
+
[docs]class PPOAlgorithmParameters(AlgorithmParameters): + """ + :param policy_gradient_rescaler: (PolicyGradientRescaler) + This represents how the critic will be used to update the actor. The critic value function is typically used + to rescale the gradients calculated by the actor. There are several ways for doing this, such as using the + advantage of the action, or the generalized advantage estimation (GAE) value. + + :param gae_lambda: (float) + The :math:`\lambda` value is used within the GAE function in order to weight different bootstrap length + estimations. Typical values are in the range 0.9-1, and define an exponential decay over the different + n-step estimations. + + :param target_kl_divergence: (float) + The target kl divergence between the current policy distribution and the new policy. PPO uses a heuristic to + bring the KL divergence to this value, by adding a penalty if the kl divergence is higher. + + :param initial_kl_coefficient: (float) + The initial weight that will be given to the KL divergence between the current and the new policy in the + regularization factor. + + :param high_kl_penalty_coefficient: (float) + The penalty that will be given for KL divergence values which are highes than what was defined as the target. + + :param clip_likelihood_ratio_using_epsilon: (float) + If not None, the likelihood ratio between the current and new policy in the PPO loss function will be + clipped to the range [1-clip_likelihood_ratio_using_epsilon, 1+clip_likelihood_ratio_using_epsilon]. + This is typically used in the Clipped PPO version of PPO, and should be set to None in regular PPO + implementations. + + :param value_targets_mix_fraction: (float) + The targets for the value network are an exponential weighted moving average which uses this mix fraction to + define how much of the new targets will be taken into account when calculating the loss. + This value should be set to the range (0,1], where 1 means that only the new targets will be taken into account. + + :param estimate_state_value_using_gae: (bool) + If set to True, the state value will be estimated using the GAE technique. + + :param use_kl_regularization: (bool) + If set to True, the loss function will be regularized using the KL diveregence between the current and new + policy, to bound the change of the policy during the network update. + + :param beta_entropy: (float) + An entropy regulaization term can be added to the loss function in order to control exploration. This term + is weighted using the :math:`\beta` value defined by beta_entropy. + + """ + def __init__(self): + super().__init__() + self.policy_gradient_rescaler = PolicyGradientRescaler.GAE + self.gae_lambda = 0.96 + self.target_kl_divergence = 0.01 + self.initial_kl_coefficient = 1.0 + self.high_kl_penalty_coefficient = 1000 + self.clip_likelihood_ratio_using_epsilon = None + self.value_targets_mix_fraction = 0.1 + self.estimate_state_value_using_gae = True + self.use_kl_regularization = True + self.beta_entropy = 0.01 + self.num_consecutive_playing_steps = EnvironmentSteps(5000)
+ + +class PPOAgentParameters(AgentParameters): + def __init__(self): + super().__init__(algorithm=PPOAlgorithmParameters(), + exploration={DiscreteActionSpace: CategoricalParameters(), + BoxActionSpace: AdditiveNoiseParameters()}, + memory=EpisodicExperienceReplayParameters(), + networks={"critic": PPOCriticNetworkParameters(), "actor": PPOActorNetworkParameters()}) + + @property + def path(self): + return 'rl_coach.agents.ppo_agent:PPOAgent' + + +# Proximal Policy Optimization - https://arxiv.org/pdf/1707.06347.pdf +class PPOAgent(ActorCriticAgent): + def __init__(self, agent_parameters, parent: Union['LevelManager', 'CompositeAgent']=None): + super().__init__(agent_parameters, parent) + + # signals definition + self.value_loss = self.register_signal('Value Loss') + self.policy_loss = self.register_signal('Policy Loss') + self.kl_divergence = self.register_signal('KL Divergence') + self.total_kl_divergence_during_training_process = 0.0 + self.unclipped_grads = self.register_signal('Grads (unclipped)') + + def fill_advantages(self, batch): + batch = Batch(batch) + network_keys = self.ap.network_wrappers['critic'].input_embedders_parameters.keys() + + # * Found not to have any impact * + # current_states_with_timestep = self.concat_state_and_timestep(batch) + + current_state_values = self.networks['critic'].online_network.predict(batch.states(network_keys)).squeeze() + total_returns = batch.n_step_discounted_rewards() + # calculate advantages + advantages = [] + if self.policy_gradient_rescaler == PolicyGradientRescaler.A_VALUE: + advantages = total_returns - current_state_values + elif self.policy_gradient_rescaler == PolicyGradientRescaler.GAE: + # get bootstraps + episode_start_idx = 0 + advantages = np.array([]) + # current_state_values[batch.game_overs()] = 0 + for idx, game_over in enumerate(batch.game_overs()): + if game_over: + # get advantages for the rollout + value_bootstrapping = np.zeros((1,)) + rollout_state_values = np.append(current_state_values[episode_start_idx:idx+1], value_bootstrapping) + + rollout_advantages, _ = \ + self.get_general_advantage_estimation_values(batch.rewards()[episode_start_idx:idx+1], + rollout_state_values) + episode_start_idx = idx + 1 + advantages = np.append(advantages, rollout_advantages) + else: + screen.warning("WARNING: The requested policy gradient rescaler is not available") + + # standardize + advantages = (advantages - np.mean(advantages)) / np.std(advantages) + + # TODO: this will be problematic with a shared memory + for transition, advantage in zip(self.memory.transitions, advantages): + transition.info['advantage'] = advantage + + self.action_advantages.add_sample(advantages) + + def train_value_network(self, dataset, epochs): + loss = [] + batch = Batch(dataset) + network_keys = self.ap.network_wrappers['critic'].input_embedders_parameters.keys() + + # * Found not to have any impact * + # add a timestep to the observation + # current_states_with_timestep = self.concat_state_and_timestep(dataset) + + mix_fraction = self.ap.algorithm.value_targets_mix_fraction + total_returns = batch.n_step_discounted_rewards(True) + for j in range(epochs): + curr_batch_size = batch.size + if self.networks['critic'].online_network.optimizer_type != 'LBFGS': + curr_batch_size = self.ap.network_wrappers['critic'].batch_size + for i in range(batch.size // curr_batch_size): + # split to batches for first order optimization techniques + current_states_batch = { + k: v[i * curr_batch_size:(i + 1) * curr_batch_size] + for k, v in batch.states(network_keys).items() + } + total_return_batch = total_returns[i * curr_batch_size:(i + 1) * curr_batch_size] + old_policy_values = force_list(self.networks['critic'].target_network.predict( + current_states_batch).squeeze()) + if self.networks['critic'].online_network.optimizer_type != 'LBFGS': + targets = total_return_batch + else: + current_values = self.networks['critic'].online_network.predict(current_states_batch) + targets = current_values * (1 - mix_fraction) + total_return_batch * mix_fraction + + inputs = copy.copy(current_states_batch) + for input_index, input in enumerate(old_policy_values): + name = 'output_0_{}'.format(input_index) + if name in self.networks['critic'].online_network.inputs: + inputs[name] = input + + value_loss = self.networks['critic'].online_network.accumulate_gradients(inputs, targets) + + self.networks['critic'].apply_gradients_to_online_network() + if isinstance(self.ap.task_parameters, DistributedTaskParameters): + self.networks['critic'].apply_gradients_to_global_network() + self.networks['critic'].online_network.reset_accumulated_gradients() + + loss.append([value_loss[0]]) + loss = np.mean(loss, 0) + return loss + + def concat_state_and_timestep(self, dataset): + current_states_with_timestep = [np.append(transition.state['observation'], transition.info['timestep']) + for transition in dataset] + current_states_with_timestep = np.expand_dims(current_states_with_timestep, -1) + return current_states_with_timestep + + def train_policy_network(self, dataset, epochs): + loss = [] + for j in range(epochs): + loss = { + 'total_loss': [], + 'policy_losses': [], + 'unclipped_grads': [], + 'fetch_result': [] + } + #shuffle(dataset) + for i in range(len(dataset) // self.ap.network_wrappers['actor'].batch_size): + batch = Batch(dataset[i * self.ap.network_wrappers['actor'].batch_size: + (i + 1) * self.ap.network_wrappers['actor'].batch_size]) + + network_keys = self.ap.network_wrappers['actor'].input_embedders_parameters.keys() + + advantages = batch.info('advantage') + actions = batch.actions() + if not isinstance(self.spaces.action, DiscreteActionSpace) and len(actions.shape) == 1: + actions = np.expand_dims(actions, -1) + + # get old policy probabilities and distribution + old_policy = force_list(self.networks['actor'].target_network.predict(batch.states(network_keys))) + + # calculate gradients and apply on both the local policy network and on the global policy network + fetches = [self.networks['actor'].online_network.output_heads[0].kl_divergence, + self.networks['actor'].online_network.output_heads[0].entropy] + + inputs = copy.copy(batch.states(network_keys)) + inputs['output_0_0'] = actions + + # old_policy_distribution needs to be represented as a list, because in the event of discrete controls, + # it has just a mean. otherwise, it has both a mean and standard deviation + for input_index, input in enumerate(old_policy): + inputs['output_0_{}'.format(input_index + 1)] = input + + total_loss, policy_losses, unclipped_grads, fetch_result =\ + self.networks['actor'].online_network.accumulate_gradients( + inputs, [advantages], additional_fetches=fetches) + + self.networks['actor'].apply_gradients_to_online_network() + if isinstance(self.ap.task_parameters, DistributedTaskParameters): + self.networks['actor'].apply_gradients_to_global_network() + + self.networks['actor'].online_network.reset_accumulated_gradients() + + loss['total_loss'].append(total_loss) + loss['policy_losses'].append(policy_losses) + loss['unclipped_grads'].append(unclipped_grads) + loss['fetch_result'].append(fetch_result) + + self.unclipped_grads.add_sample(unclipped_grads) + + for key in loss.keys(): + loss[key] = np.mean(loss[key], 0) + + if self.ap.network_wrappers['critic'].learning_rate_decay_rate != 0: + curr_learning_rate = self.networks['critic'].online_network.get_variable_value(self.ap.learning_rate) + self.curr_learning_rate.add_sample(curr_learning_rate) + else: + curr_learning_rate = self.ap.network_wrappers['critic'].learning_rate + + # log training parameters + screen.log_dict( + OrderedDict([ + ("Surrogate loss", loss['policy_losses'][0]), + ("KL divergence", loss['fetch_result'][0]), + ("Entropy", loss['fetch_result'][1]), + ("training epoch", j), + ("learning_rate", curr_learning_rate) + ]), + prefix="Policy training" + ) + + self.total_kl_divergence_during_training_process = loss['fetch_result'][0] + self.entropy.add_sample(loss['fetch_result'][1]) + self.kl_divergence.add_sample(loss['fetch_result'][0]) + return loss['total_loss'] + + def update_kl_coefficient(self): + # John Schulman takes the mean kl divergence only over the last epoch which is strange but we will follow + # his implementation for now because we know it works well + screen.log_title("KL = {}".format(self.total_kl_divergence_during_training_process)) + + # update kl coefficient + kl_target = self.ap.algorithm.target_kl_divergence + kl_coefficient = self.networks['actor'].online_network.get_variable_value( + self.networks['actor'].online_network.output_heads[0].kl_coefficient) + new_kl_coefficient = kl_coefficient + if self.total_kl_divergence_during_training_process > 1.3 * kl_target: + # kl too high => increase regularization + new_kl_coefficient *= 1.5 + elif self.total_kl_divergence_during_training_process < 0.7 * kl_target: + # kl too low => decrease regularization + new_kl_coefficient /= 1.5 + + # update the kl coefficient variable + if kl_coefficient != new_kl_coefficient: + self.networks['actor'].online_network.set_variable_value( + self.networks['actor'].online_network.output_heads[0].assign_kl_coefficient, + new_kl_coefficient, + self.networks['actor'].online_network.output_heads[0].kl_coefficient_ph) + + screen.log_title("KL penalty coefficient change = {} -> {}".format(kl_coefficient, new_kl_coefficient)) + + def post_training_commands(self): + if self.ap.algorithm.use_kl_regularization: + self.update_kl_coefficient() + + # clean memory + self.call_memory('clean') + + def _should_train_helper(self, wait_for_full_episode=True): + return super()._should_train_helper(True) + + def train(self): + loss = 0 + if self._should_train(wait_for_full_episode=True): + for network in self.networks.values(): + network.set_is_training(True) + + for training_step in range(self.ap.algorithm.num_consecutive_training_steps): + self.networks['actor'].sync() + self.networks['critic'].sync() + + dataset = self.memory.transitions + + self.fill_advantages(dataset) + + # take only the requested number of steps + dataset = dataset[:self.ap.algorithm.num_consecutive_playing_steps.num_steps] + + value_loss = self.train_value_network(dataset, 1) + policy_loss = self.train_policy_network(dataset, 10) + + self.value_loss.add_sample(value_loss) + self.policy_loss.add_sample(policy_loss) + + for network in self.networks.values(): + network.set_is_training(False) + + self.post_training_commands() + self.training_iteration += 1 + self.update_log() # should be done in order to update the data that has been accumulated * while not playing * + return np.append(value_loss, policy_loss) + + def get_prediction(self, states): + tf_input_state = self.prepare_batch_for_inference(states, "actor") + return self.networks['actor'].online_network.predict(tf_input_state) +
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/agents/qr_dqn_agent.html b/docs/_modules/rl_coach/agents/qr_dqn_agent.html new file mode 100644 index 0000000..e3bb992 --- /dev/null +++ b/docs/_modules/rl_coach/agents/qr_dqn_agent.html @@ -0,0 +1,347 @@ + + + + + + + + + + + rl_coach.agents.qr_dqn_agent — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.agents.qr_dqn_agent
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.agents.qr_dqn_agent

+#
+# Copyright (c) 2017 Intel Corporation 
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+from typing import Union
+
+import numpy as np
+
+from rl_coach.agents.dqn_agent import DQNAgentParameters, DQNNetworkParameters, DQNAlgorithmParameters
+from rl_coach.agents.value_optimization_agent import ValueOptimizationAgent
+from rl_coach.architectures.head_parameters import QuantileRegressionQHeadParameters
+from rl_coach.core_types import StateType
+from rl_coach.schedules import LinearSchedule
+
+
+class QuantileRegressionDQNNetworkParameters(DQNNetworkParameters):
+    def __init__(self):
+        super().__init__()
+        self.heads_parameters = [QuantileRegressionQHeadParameters()]
+        self.learning_rate = 0.00005
+        self.optimizer_epsilon = 0.01 / 32
+
+
+
[docs]class QuantileRegressionDQNAlgorithmParameters(DQNAlgorithmParameters): + """ + :param atoms: (int) + the number of atoms to predict for each action + + :param huber_loss_interval: (float) + One of the huber loss parameters, and is referred to as :math:`\kapa` in the paper. + It describes the interval [-k, k] in which the huber loss acts as a MSE loss. + """ + def __init__(self): + super().__init__() + self.atoms = 200 + self.huber_loss_interval = 1 # called k in the paper
+ + +class QuantileRegressionDQNAgentParameters(DQNAgentParameters): + def __init__(self): + super().__init__() + self.algorithm = QuantileRegressionDQNAlgorithmParameters() + self.network_wrappers = {"main": QuantileRegressionDQNNetworkParameters()} + self.exploration.epsilon_schedule = LinearSchedule(1, 0.01, 1000000) + self.exploration.evaluation_epsilon = 0.001 + + @property + def path(self): + return 'rl_coach.agents.qr_dqn_agent:QuantileRegressionDQNAgent' + + +# Quantile Regression Deep Q Network - https://arxiv.org/pdf/1710.10044v1.pdf +class QuantileRegressionDQNAgent(ValueOptimizationAgent): + def __init__(self, agent_parameters, parent: Union['LevelManager', 'CompositeAgent']=None): + super().__init__(agent_parameters, parent) + self.quantile_probabilities = np.ones(self.ap.algorithm.atoms) / float(self.ap.algorithm.atoms) + + def get_q_values(self, quantile_values): + return np.dot(quantile_values, self.quantile_probabilities) + + # prediction's format is (batch,actions,atoms) + def get_all_q_values_for_states(self, states: StateType): + if self.exploration_policy.requires_action_values(): + quantile_values = self.get_prediction(states) + actions_q_values = self.get_q_values(quantile_values) + else: + actions_q_values = None + return actions_q_values + + def learn_from_batch(self, batch): + network_keys = self.ap.network_wrappers['main'].input_embedders_parameters.keys() + + # get the quantiles of the next states and current states + next_state_quantiles, current_quantiles = self.networks['main'].parallel_prediction([ + (self.networks['main'].target_network, batch.next_states(network_keys)), + (self.networks['main'].online_network, batch.states(network_keys)) + ]) + + # get the optimal actions to take for the next states + target_actions = np.argmax(self.get_q_values(next_state_quantiles), axis=1) + + # calculate the Bellman update + batch_idx = list(range(self.ap.network_wrappers['main'].batch_size)) + + TD_targets = batch.rewards(True) + (1.0 - batch.game_overs(True)) * self.ap.algorithm.discount \ + * next_state_quantiles[batch_idx, target_actions] + + # get the locations of the selected actions within the batch for indexing purposes + actions_locations = [[b, a] for b, a in zip(batch_idx, batch.actions())] + + # calculate the cumulative quantile probabilities and reorder them to fit the sorted quantiles order + cumulative_probabilities = np.array(range(self.ap.algorithm.atoms + 1)) / float(self.ap.algorithm.atoms) # tau_i + quantile_midpoints = 0.5*(cumulative_probabilities[1:] + cumulative_probabilities[:-1]) # tau^hat_i + quantile_midpoints = np.tile(quantile_midpoints, (self.ap.network_wrappers['main'].batch_size, 1)) + sorted_quantiles = np.argsort(current_quantiles[batch_idx, batch.actions()]) + for idx in range(self.ap.network_wrappers['main'].batch_size): + quantile_midpoints[idx, :] = quantile_midpoints[idx, sorted_quantiles[idx]] + + # train + result = self.networks['main'].train_and_sync_networks({ + **batch.states(network_keys), + 'output_0_0': actions_locations, + 'output_0_1': quantile_midpoints, + }, TD_targets) + total_loss, losses, unclipped_grads = result[:3] + + return total_loss, losses, unclipped_grads + +
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/agents/rainbow_dqn_agent.html b/docs/_modules/rl_coach/agents/rainbow_dqn_agent.html new file mode 100644 index 0000000..f71cbf9 --- /dev/null +++ b/docs/_modules/rl_coach/agents/rainbow_dqn_agent.html @@ -0,0 +1,359 @@ + + + + + + + + + + + rl_coach.agents.rainbow_dqn_agent — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.agents.rainbow_dqn_agent
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.agents.rainbow_dqn_agent

+#
+# Copyright (c) 2017 Intel Corporation 
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+from typing import Union
+
+import numpy as np
+
+from rl_coach.agents.categorical_dqn_agent import CategoricalDQNAlgorithmParameters, \
+    CategoricalDQNAgent, CategoricalDQNAgentParameters
+from rl_coach.agents.dqn_agent import DQNNetworkParameters
+from rl_coach.architectures.head_parameters import RainbowQHeadParameters
+from rl_coach.architectures.middleware_parameters import FCMiddlewareParameters
+from rl_coach.base_parameters import MiddlewareScheme
+from rl_coach.exploration_policies.parameter_noise import ParameterNoiseParameters
+from rl_coach.memories.non_episodic.prioritized_experience_replay import PrioritizedExperienceReplayParameters, \
+    PrioritizedExperienceReplay
+
+
+class RainbowDQNNetworkParameters(DQNNetworkParameters):
+    def __init__(self):
+        super().__init__()
+        self.heads_parameters = [RainbowQHeadParameters()]
+        self.middleware_parameters = FCMiddlewareParameters(scheme=MiddlewareScheme.Empty)
+
+
+
[docs]class RainbowDQNAlgorithmParameters(CategoricalDQNAlgorithmParameters): + """ + :param n_step: (int) + The number of steps to bootstrap the network over. The first N-1 steps actual rewards will be accumulated + using an exponentially growing discount factor, and the Nth step will be bootstrapped from the network + prediction. + + :param store_transitions_only_when_episodes_are_terminated: (bool) + If set to True, the transitions will be stored in an Episode object until the episode ends, and just then + written to the memory. This is useful since we want to calculate the N-step discounted rewards before saving the + transitions into the memory, and to do so we need the entire episode first. + """ + def __init__(self): + super().__init__() + self.n_step = 3 + + # needed for n-step updates to work. i.e. waiting for a full episode to be closed before storing each transition + self.store_transitions_only_when_episodes_are_terminated = True
+ + +class RainbowDQNAgentParameters(CategoricalDQNAgentParameters): + def __init__(self): + super().__init__() + self.algorithm = RainbowDQNAlgorithmParameters() + self.exploration = ParameterNoiseParameters(self) + self.memory = PrioritizedExperienceReplayParameters() + self.network_wrappers = {"main": RainbowDQNNetworkParameters()} + + @property + def path(self): + return 'rl_coach.agents.rainbow_dqn_agent:RainbowDQNAgent' + + +# Rainbow Deep Q Network - https://arxiv.org/abs/1710.02298 +# Agent implementation is composed of: +# 1. NoisyNets +# 2. C51 +# 3. Prioritized ER +# 4. DDQN +# 5. Dueling DQN +# 6. N-step returns + +class RainbowDQNAgent(CategoricalDQNAgent): + def __init__(self, agent_parameters, parent: Union['LevelManager', 'CompositeAgent']=None): + super().__init__(agent_parameters, parent) + + def learn_from_batch(self, batch): + network_keys = self.ap.network_wrappers['main'].input_embedders_parameters.keys() + + ddqn_selected_actions = np.argmax(self.distribution_prediction_to_q_values( + self.networks['main'].online_network.predict(batch.next_states(network_keys))), axis=1) + + # for the action we actually took, the error is calculated by the atoms distribution + # for all other actions, the error is 0 + distributional_q_st_plus_n, TD_targets = self.networks['main'].parallel_prediction([ + (self.networks['main'].target_network, batch.next_states(network_keys)), + (self.networks['main'].online_network, batch.states(network_keys)) + ]) + + # only update the action that we have actually done in this transition (using the Double-DQN selected actions) + target_actions = ddqn_selected_actions + m = np.zeros((self.ap.network_wrappers['main'].batch_size, self.z_values.size)) + + batches = np.arange(self.ap.network_wrappers['main'].batch_size) + for j in range(self.z_values.size): + # we use batch.info('should_bootstrap_next_state') instead of (1 - batch.game_overs()) since with n-step, + # we will not bootstrap for the last n-step transitions in the episode + tzj = np.fmax(np.fmin(batch.n_step_discounted_rewards() + batch.info('should_bootstrap_next_state') * + (self.ap.algorithm.discount ** self.ap.algorithm.n_step) * self.z_values[j], + self.z_values[-1]), self.z_values[0]) + bj = (tzj - self.z_values[0])/(self.z_values[1] - self.z_values[0]) + u = (np.ceil(bj)).astype(int) + l = (np.floor(bj)).astype(int) + m[batches, l] += (distributional_q_st_plus_n[batches, target_actions, j] * (u - bj)) + m[batches, u] += (distributional_q_st_plus_n[batches, target_actions, j] * (bj - l)) + + # total_loss = cross entropy between actual result above and predicted result for the given action + TD_targets[batches, batch.actions()] = m + + # update errors in prioritized replay buffer + importance_weights = batch.info('weight') if isinstance(self.memory, PrioritizedExperienceReplay) else None + + result = self.networks['main'].train_and_sync_networks(batch.states(network_keys), TD_targets, + importance_weights=importance_weights) + + total_loss, losses, unclipped_grads = result[:3] + + # TODO: fix this spaghetti code + if isinstance(self.memory, PrioritizedExperienceReplay): + errors = losses[0][np.arange(batch.size), batch.actions()] + self.call_memory('update_priorities', (batch.info('idx'), errors)) + + return total_loss, losses, unclipped_grads + +
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/agents/value_optimization_agent.html b/docs/_modules/rl_coach/agents/value_optimization_agent.html new file mode 100644 index 0000000..88a4267 --- /dev/null +++ b/docs/_modules/rl_coach/agents/value_optimization_agent.html @@ -0,0 +1,325 @@ + + + + + + + + + + + rl_coach.agents.value_optimization_agent — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.agents.value_optimization_agent
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.agents.value_optimization_agent

+#
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+from typing import Union
+
+import numpy as np
+
+from rl_coach.agents.agent import Agent
+from rl_coach.core_types import ActionInfo, StateType
+from rl_coach.memories.non_episodic.prioritized_experience_replay import PrioritizedExperienceReplay
+from rl_coach.spaces import DiscreteActionSpace
+
+
+## This is an abstract agent - there is no learn_from_batch method ##
+
+
+class ValueOptimizationAgent(Agent):
+    def __init__(self, agent_parameters, parent: Union['LevelManager', 'CompositeAgent']=None):
+        super().__init__(agent_parameters, parent)
+        self.q_values = self.register_signal("Q")
+        self.q_value_for_action = {}
+
+    def init_environment_dependent_modules(self):
+        super().init_environment_dependent_modules()
+        if isinstance(self.spaces.action, DiscreteActionSpace):
+            for i in range(len(self.spaces.action.actions)):
+                self.q_value_for_action[i] = self.register_signal("Q for action {}".format(i),
+                                                                  dump_one_value_per_episode=False,
+                                                                  dump_one_value_per_step=True)
+
+    # Algorithms for which q_values are calculated from predictions will override this function
+    def get_all_q_values_for_states(self, states: StateType):
+        if self.exploration_policy.requires_action_values():
+            actions_q_values = self.get_prediction(states)
+        else:
+            actions_q_values = None
+        return actions_q_values
+
+    def get_prediction(self, states):
+        return self.networks['main'].online_network.predict(self.prepare_batch_for_inference(states, 'main'))
+
+    def update_transition_priorities_and_get_weights(self, TD_errors, batch):
+        # update errors in prioritized replay buffer
+        importance_weights = None
+        if isinstance(self.memory, PrioritizedExperienceReplay):
+            self.call_memory('update_priorities', (batch.info('idx'), TD_errors))
+            importance_weights = batch.info('weight')
+        return importance_weights
+
+    def _validate_action(self, policy, action):
+        if np.array(action).shape != ():
+            raise ValueError((
+                'The exploration_policy {} returned a vector of actions '
+                'instead of a single action. ValueOptimizationAgents '
+                'require exploration policies which return a single action.'
+            ).format(policy.__class__.__name__))
+
+    def choose_action(self, curr_state):
+        actions_q_values = self.get_all_q_values_for_states(curr_state)
+
+        # choose action according to the exploration policy and the current phase (evaluating or training the agent)
+        action = self.exploration_policy.get_action(actions_q_values)
+        self._validate_action(self.exploration_policy, action)
+
+        if actions_q_values is not None:
+            # this is for bootstrapped dqn
+            if type(actions_q_values) == list and len(actions_q_values) > 0:
+                actions_q_values = self.exploration_policy.last_action_values
+            actions_q_values = actions_q_values.squeeze()
+
+            # store the q values statistics for logging
+            self.q_values.add_sample(actions_q_values)
+            for i, q_value in enumerate(actions_q_values):
+                self.q_value_for_action[i].add_sample(q_value)
+
+            action_info = ActionInfo(action=action,
+                                     action_value=actions_q_values[action],
+                                     max_action_value=np.max(actions_q_values))
+        else:
+            action_info = ActionInfo(action=action)
+
+        return action_info
+
+    def learn_from_batch(self, batch):
+        raise NotImplementedError("ValueOptimizationAgent is an abstract agent. Not to be used directly.")
+
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/architectures/architecture.html b/docs/_modules/rl_coach/architectures/architecture.html new file mode 100644 index 0000000..940f357 --- /dev/null +++ b/docs/_modules/rl_coach/architectures/architecture.html @@ -0,0 +1,442 @@ + + + + + + + + + + + rl_coach.architectures.architecture — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.architectures.architecture
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.architectures.architecture

+#
+# Copyright (c) 2017 Intel Corporation 
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+from typing import Any, Dict, List, Tuple
+
+import numpy as np
+
+from rl_coach.base_parameters import AgentParameters
+from rl_coach.spaces import SpacesDefinition
+
+
+
[docs]class Architecture(object): + def __init__(self, agent_parameters: AgentParameters, spaces: SpacesDefinition, name: str= ""): + """ + Creates a neural network 'architecture', that can be trained and used for inference. + + :param agent_parameters: the agent parameters + :param spaces: the spaces (observation, action, etc.) definition of the agent + :param name: the name of the network + """ + self.spaces = spaces + self.name = name + self.network_wrapper_name = self.name.split('/')[0] # e.g. 'main/online' --> 'main' + self.full_name = "{}/{}".format(agent_parameters.full_name_id, name) + self.network_parameters = agent_parameters.network_wrappers[self.network_wrapper_name] + self.batch_size = self.network_parameters.batch_size + self.learning_rate = self.network_parameters.learning_rate + self.optimizer = None + self.ap = agent_parameters + +
[docs] def predict(self, + inputs: Dict[str, np.ndarray], + outputs: List[Any] = None, + squeeze_output: bool = True, + initial_feed_dict: Dict[Any, np.ndarray] = None) -> Tuple[np.ndarray, ...]: + """ + Given input observations, use the model to make predictions (e.g. action or value). + + :param inputs: current state (i.e. observations, measurements, goals, etc.) + (e.g. `{'observation': numpy.ndarray}` of shape (batch_size, observation_space_size)) + :param outputs: list of outputs to return. Return all outputs if unspecified. Type of the list elements + depends on the framework backend. + :param squeeze_output: call squeeze_list on output before returning if True + :param initial_feed_dict: a dictionary of extra inputs for forward pass. + :return: predictions of action or value of shape (batch_size, action_space_size) for action predictions) + """ + raise NotImplementedError
+ +
[docs] @staticmethod + def parallel_predict(sess: Any, + network_input_tuples: List[Tuple['Architecture', Dict[str, np.ndarray]]]) -> \ + Tuple[np.ndarray, ...]: + """ + :param sess: active session to use for prediction + :param network_input_tuples: tuple of network and corresponding input + :return: list or tuple of outputs from all networks + """ + raise NotImplementedError
+ +
[docs] def train_on_batch(self, + inputs: Dict[str, np.ndarray], + targets: List[np.ndarray], + scaler: float=1., + additional_fetches: list=None, + importance_weights: np.ndarray=None) -> Tuple[float, List[float], float, list]: + """ + Given a batch of inputs (e.g. states) and targets (e.g. discounted rewards), takes a training step: i.e. runs a + forward pass and backward pass of the network, accumulates the gradients and applies an optimization step to + update the weights. + Calls `accumulate_gradients` followed by `apply_and_reset_gradients`. + Note: Currently an unused method. + + :param inputs: typically the environment states (but can also contain other data necessary for loss). + (e.g. `{'observation': numpy.ndarray}` with `observation` of shape (batch_size, observation_space_size) or + (batch_size, observation_space_size, stack_size) or + `{'observation': numpy.ndarray, 'output_0_0': numpy.ndarray}` with `output_0_0` of shape (batch_size,)) + :param targets: target values of shape (batch_size, ). For example discounted rewards for value network + for calculating the value-network loss would be a target. Length of list and order of arrays in + the list matches that of network losses which are defined by network parameters + :param scaler: value to scale gradients by before optimizing network weights + :param additional_fetches: list of additional values to fetch and return. The type of each list + element is framework dependent. + :param importance_weights: ndarray of shape (batch_size,) to multiply with batch loss. + :return: tuple of total_loss, losses, norm_unclipped_grads, fetched_tensors + total_loss (float): sum of all head losses + losses (list of float): list of all losses. The order is list of target losses followed by list + of regularization losses. The specifics of losses is dependant on the network parameters + (number of heads, etc.) + norm_unclippsed_grads (float): global norm of all gradients before any gradient clipping is applied + fetched_tensors: all values for additional_fetches + """ + raise NotImplementedError
+ +
[docs] def get_weights(self) -> List[np.ndarray]: + """ + Gets model weights as a list of ndarrays. It is used for synchronizing weight between two identical networks. + + :return: list weights as ndarray + """ + raise NotImplementedError
+ +
[docs] def set_weights(self, weights: List[np.ndarray], rate: float=1.0) -> None: + """ + Sets model weights for provided layer parameters. + + :param weights: list of model weights in the same order as received in get_weights + :param rate: controls the mixture of given weight values versus old weight values. + i.e. new_weight = rate * given_weight + (1 - rate) * old_weight + :return: None + """ + raise NotImplementedError
+ +
[docs] def reset_accumulated_gradients(self) -> None: + """ + Sets gradient of all parameters to 0. + + Once gradients are reset, they must be accessible by `accumulated_gradients` property of this class, + which must return a list of numpy ndarrays. Child class must ensure that `accumulated_gradients` is set. + """ + raise NotImplementedError
+ +
[docs] def accumulate_gradients(self, + inputs: Dict[str, np.ndarray], + targets: List[np.ndarray], + additional_fetches: list=None, + importance_weights: np.ndarray=None, + no_accumulation: bool=False) -> Tuple[float, List[float], float, list]: + """ + Given a batch of inputs (i.e. states) and targets (e.g. discounted rewards), computes and accumulates the + gradients for model parameters. Will run forward and backward pass to compute gradients, clip the gradient + values if required and then accumulate gradients from all learners. It does not update the model weights, + that's performed in `apply_and_reset_gradients` method. + + Once gradients are accumulated, they are accessed by `accumulated_gradients` property of this class.å + + :param inputs: typically the environment states (but can also contain other data for loss) + (e.g. `{'observation': numpy.ndarray}` with `observation` of shape (batch_size, observation_space_size) or + (batch_size, observation_space_size, stack_size) or + `{'observation': numpy.ndarray, 'output_0_0': numpy.ndarray}` with `output_0_0` of shape (batch_size,)) + :param targets: targets for calculating loss. For example discounted rewards for value network + for calculating the value-network loss would be a target. Length of list and order of arrays in + the list matches that of network losses which are defined by network parameters + :param additional_fetches: list of additional values to fetch and return. The type of each list + element is framework dependent. + :param importance_weights: ndarray of shape (batch_size,) to multiply with batch loss. + :param no_accumulation: if True, set gradient values to the new gradients, otherwise sum with previously + calculated gradients + :return: tuple of total_loss, losses, norm_unclipped_grads, fetched_tensors + total_loss (float): sum of all head losses + losses (list of float): list of all losses. The order is list of target losses followed by list of + regularization losses. The specifics of losses is dependant on the network parameters + (number of heads, etc.) + norm_unclippsed_grads (float): global norm of all gradients before any gradient clipping is applied + fetched_tensors: all values for additional_fetches + """ + raise NotImplementedError
+ +
[docs] def apply_and_reset_gradients(self, gradients: List[np.ndarray], scaler: float=1.) -> None: + """ + Applies the given gradients to the network weights and resets the gradient accumulations. + Has the same impact as calling `apply_gradients`, then `reset_accumulated_gradients`. + + :param gradients: gradients for the parameter weights, taken from `accumulated_gradients` property + of an identical network (either self or another identical network) + :param scaler: A scaling factor that allows rescaling the gradients before applying them + """ + raise NotImplementedError
+ +
[docs] def apply_gradients(self, gradients: List[np.ndarray], scaler: float=1.) -> None: + """ + Applies the given gradients to the network weights. + Will be performed sync or async depending on `network_parameters.async_training` + + :param gradients: gradients for the parameter weights, taken from `accumulated_gradients` property + of an identical network (either self or another identical network) + :param scaler: A scaling factor that allows rescaling the gradients before applying them + """ + raise NotImplementedError
+ +
[docs] def get_variable_value(self, variable: Any) -> np.ndarray: + """ + Gets value of a specified variable. Type of variable is dependant on the framework. + Example of a variable is head.kl_coefficient, which could be a symbol for evaluation + or could be a string representing the value. + + :param variable: variable of interest + :return: value of the specified variable + """ + raise NotImplementedError
+ +
[docs] def set_variable_value(self, assign_op: Any, value: np.ndarray, placeholder: Any): + """ + Updates the value of a specified variable. Type of assign_op is dependant on the framework + and is a unique identifier for assigning value to a variable. For example an agent may use + head.assign_kl_coefficient. There is a one to one mapping between assign_op and placeholder + (in the example above, placeholder would be head.kl_coefficient_ph). + + :param assign_op: a parameter representing the operation for assigning value to a specific variable + :param value: value of the specified variable used for update + :param placeholder: a placeholder for binding the value to assign_op. + """ + raise NotImplementedError
+
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/architectures/network_wrapper.html b/docs/_modules/rl_coach/architectures/network_wrapper.html new file mode 100644 index 0000000..24ec906 --- /dev/null +++ b/docs/_modules/rl_coach/architectures/network_wrapper.html @@ -0,0 +1,480 @@ + + + + + + + + + + + rl_coach.architectures.network_wrapper — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.architectures.network_wrapper
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.architectures.network_wrapper

+#
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+from typing import List, Tuple
+
+from rl_coach.base_parameters import Frameworks, AgentParameters
+from rl_coach.logger import failed_imports
+from rl_coach.spaces import SpacesDefinition
+try:
+    import tensorflow as tf
+    from rl_coach.architectures.tensorflow_components.general_network import GeneralTensorFlowNetwork
+except ImportError:
+    failed_imports.append("tensorflow")
+
+try:
+    import mxnet as mx
+    from rl_coach.architectures.mxnet_components.general_network import GeneralMxnetNetwork
+except ImportError:
+    failed_imports.append("mxnet")
+
+
+
[docs]class NetworkWrapper(object): + """ + The network wrapper contains multiple copies of the same network, each one with a different set of weights which is + updating in a different time scale. The network wrapper will always contain an online network. + It will contain an additional slow updating target network if it was requested by the user, + and it will contain a global network shared between different workers, if Coach is run in a single-node + multi-process distributed mode. The network wrapper contains functionality for managing these networks and syncing + between them. + """ + def __init__(self, agent_parameters: AgentParameters, has_target: bool, has_global: bool, name: str, + spaces: SpacesDefinition, replicated_device=None, worker_device=None): + self.ap = agent_parameters + self.network_parameters = self.ap.network_wrappers[name] + self.has_target = has_target + self.has_global = has_global + self.name = name + self.sess = None + + if self.network_parameters.framework == Frameworks.tensorflow: + if "tensorflow" not in failed_imports: + general_network = GeneralTensorFlowNetwork + else: + raise Exception('Install tensorflow before using it as framework') + elif self.network_parameters.framework == Frameworks.mxnet: + if "mxnet" not in failed_imports: + general_network = GeneralMxnetNetwork + else: + raise Exception('Install mxnet before using it as framework') + else: + raise Exception("{} Framework is not supported" + .format(Frameworks().to_string(self.network_parameters.framework))) + + with tf.variable_scope("{}/{}".format(self.ap.full_name_id, name)): + + # Global network - the main network shared between threads + self.global_network = None + if self.has_global: + # we assign the parameters of this network on the parameters server + with tf.device(replicated_device): + self.global_network = general_network(agent_parameters=agent_parameters, + name='{}/global'.format(name), + global_network=None, + network_is_local=False, + spaces=spaces, + network_is_trainable=True) + + # Online network - local copy of the main network used for playing + self.online_network = None + with tf.device(worker_device): + self.online_network = general_network(agent_parameters=agent_parameters, + name='{}/online'.format(name), + global_network=self.global_network, + network_is_local=True, + spaces=spaces, + network_is_trainable=True) + + # Target network - a local, slow updating network used for stabilizing the learning + self.target_network = None + if self.has_target: + with tf.device(worker_device): + self.target_network = general_network(agent_parameters=agent_parameters, + name='{}/target'.format(name), + global_network=self.global_network, + network_is_local=True, + spaces=spaces, + network_is_trainable=False) + +
[docs] def sync(self): + """ + Initializes the weights of the networks to match each other + + :return: + """ + self.update_online_network() + self.update_target_network()
+ +
[docs] def update_target_network(self, rate=1.0): + """ + Copy weights: online network >>> target network + + :param rate: the rate of copying the weights - 1 for copying exactly + """ + if self.target_network: + self.target_network.set_weights(self.online_network.get_weights(), rate)
+ +
[docs] def update_online_network(self, rate=1.0): + """ + Copy weights: global network >>> online network + + :param rate: the rate of copying the weights - 1 for copying exactly + """ + if self.global_network: + self.online_network.set_weights(self.global_network.get_weights(), rate)
+ +
[docs] def apply_gradients_to_global_network(self, gradients=None): + """ + Apply gradients from the online network on the global network + + :param gradients: optional gradients that will be used instead of teh accumulated gradients + :return: + """ + if gradients is None: + gradients = self.online_network.accumulated_gradients + if self.network_parameters.shared_optimizer: + self.global_network.apply_gradients(gradients) + else: + self.online_network.apply_gradients(gradients)
+ +
[docs] def apply_gradients_to_online_network(self, gradients=None): + """ + Apply gradients from the online network on itself + + :return: + """ + if gradients is None: + gradients = self.online_network.accumulated_gradients + self.online_network.apply_gradients(gradients)
+ +
[docs] def train_and_sync_networks(self, inputs, targets, additional_fetches=[], importance_weights=None): + """ + A generic training function that enables multi-threading training using a global network if necessary. + + :param inputs: The inputs for the network. + :param targets: The targets corresponding to the given inputs + :param additional_fetches: Any additional tensor the user wants to fetch + :param importance_weights: A coefficient for each sample in the batch, which will be used to rescale the loss + error of this sample. If it is not given, the samples losses won't be scaled + :return: The loss of the training iteration + """ + result = self.online_network.accumulate_gradients(inputs, targets, additional_fetches=additional_fetches, + importance_weights=importance_weights, no_accumulation=True) + self.apply_gradients_and_sync_networks(reset_gradients=False) + return result
+ +
[docs] def apply_gradients_and_sync_networks(self, reset_gradients=True): + """ + Applies the gradients accumulated in the online network to the global network or to itself and syncs the + networks if necessary + + :param reset_gradients: If set to True, the accumulated gradients wont be reset to 0 after applying them to + the network. this is useful when the accumulated gradients are overwritten instead + if accumulated by the accumulate_gradients function. this allows reducing time + complexity for this function by around 10% + """ + if self.global_network: + self.apply_gradients_to_global_network() + if reset_gradients: + self.online_network.reset_accumulated_gradients() + self.update_online_network() + else: + if reset_gradients: + self.online_network.apply_and_reset_gradients(self.online_network.accumulated_gradients) + else: + self.online_network.apply_gradients(self.online_network.accumulated_gradients)
+ +
[docs] def parallel_prediction(self, network_input_tuples: List[Tuple]): + """ + Run several network prediction in parallel. Currently this only supports running each of the network once. + + :param network_input_tuples: a list of tuples where the first element is the network (online_network, + target_network or global_network) and the second element is the inputs + :return: the outputs of all the networks in the same order as the inputs were given + """ + return type(self.online_network).parallel_predict(self.sess, network_input_tuples)
+ +
[docs] def get_local_variables(self): + """ + Get all the variables that are local to the thread + + :return: a list of all the variables that are local to the thread + """ + local_variables = [v for v in tf.local_variables() if self.online_network.name in v.name] + if self.has_target: + local_variables += [v for v in tf.local_variables() if self.target_network.name in v.name] + return local_variables
+ +
[docs] def get_global_variables(self): + """ + Get all the variables that are shared between threads + + :return: a list of all the variables that are shared between threads + """ + global_variables = [v for v in tf.global_variables() if self.global_network.name in v.name] + return global_variables
+ +
[docs] def set_is_training(self, state: bool): + """ + Set the phase of the network between training and testing + + :param state: The current state (True = Training, False = Testing) + :return: None + """ + self.online_network.set_is_training(state) + if self.has_target: + self.target_network.set_is_training(state)
+ + def set_session(self, sess): + self.sess = sess + self.online_network.set_session(sess) + if self.global_network: + self.global_network.set_session(sess) + if self.target_network: + self.target_network.set_session(sess) + + def __str__(self): + sub_networks = [] + if self.global_network: + sub_networks.append("global network") + if self.online_network: + sub_networks.append("online network") + if self.target_network: + sub_networks.append("target network") + + result = [] + result.append("Network: {}, Copies: {} ({})".format(self.name, len(sub_networks), ' | '.join(sub_networks))) + result.append("-"*len(result[-1])) + result.append(str(self.online_network)) + result.append("") + return '\n'.join(result)
+
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/base_parameters.html b/docs/_modules/rl_coach/base_parameters.html new file mode 100644 index 0000000..adbd3d3 --- /dev/null +++ b/docs/_modules/rl_coach/base_parameters.html @@ -0,0 +1,801 @@ + + + + + + + + + + + rl_coach.base_parameters — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.base_parameters
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.base_parameters

+#
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+import inspect
+import json
+import os
+import sys
+import types
+from collections import OrderedDict
+from enum import Enum
+from typing import Dict, List, Union
+
+from rl_coach.core_types import TrainingSteps, EnvironmentSteps, GradientClippingMethod, RunPhase, \
+    SelectedPhaseOnlyDumpFilter, MaxDumpFilter
+from rl_coach.filters.filter import NoInputFilter
+
+
+class Frameworks(Enum):
+    tensorflow = "TensorFlow"
+    mxnet = "MXNet"
+
+
+class EmbedderScheme(Enum):
+    Empty = "Empty"
+    Shallow = "Shallow"
+    Medium = "Medium"
+    Deep = "Deep"
+
+
+class MiddlewareScheme(Enum):
+    Empty = "Empty"
+    Shallow = "Shallow"
+    Medium = "Medium"
+    Deep = "Deep"
+
+
+class EmbeddingMergerType(Enum):
+    Concat = 0
+    Sum = 1
+    #ConcatDepthWise = 2
+    #Multiply = 3
+
+
+# DistributedCoachSynchronizationType provides the synchronization type for distributed Coach.
+# The default value is None, which means the algorithm or preset cannot be used with distributed Coach.
+class DistributedCoachSynchronizationType(Enum):
+    # In SYNC mode, the trainer waits for all the experiences to be gathered from distributed rollout workers before
+    # training a new policy and the rollout workers wait for a new policy before gathering experiences.
+    SYNC = "sync"
+
+    # In ASYNC mode, the trainer doesn't wait for any set of experiences to be gathered from distributed rollout workers
+    # and the rollout workers continously gather experiences loading new policies, whenever they become available.
+    ASYNC = "async"
+
+
+def iterable_to_items(obj):
+    if isinstance(obj, dict) or isinstance(obj, OrderedDict) or isinstance(obj, types.MappingProxyType):
+        items = obj.items()
+    elif isinstance(obj, list):
+        items = enumerate(obj)
+    else:
+        raise ValueError("The given object is not a dict or a list")
+    return items
+
+
+def unfold_dict_or_list(obj: Union[Dict, List, OrderedDict]):
+    """
+    Recursively unfolds all the parameters in dictionaries and lists
+    :param obj: a dictionary or list to unfold
+    :return: the unfolded parameters dictionary
+    """
+    parameters = OrderedDict()
+    items = iterable_to_items(obj)
+    for k, v in items:
+        if isinstance(v, dict) or isinstance(v, list) or isinstance(v, OrderedDict):
+            if 'tensorflow.' not in str(v.__class__):
+                parameters[k] = unfold_dict_or_list(v)
+        elif 'tensorflow.' in str(v.__class__):
+            parameters[k] = v
+        elif hasattr(v, '__dict__'):
+            sub_params = v.__dict__
+            if '__objclass__' not in sub_params.keys():
+                try:
+                    parameters[k] = unfold_dict_or_list(sub_params)
+                except RecursionError:
+                    parameters[k] = sub_params
+                parameters[k]['__class__'] = v.__class__.__name__
+            else:
+                # unfolding this type of object will result in infinite recursion
+                parameters[k] = sub_params
+        else:
+            parameters[k] = v
+    if not isinstance(obj, OrderedDict) and not isinstance(obj, list):
+        parameters = OrderedDict(sorted(parameters.items()))
+    return parameters
+
+
+class Parameters(object):
+    def __setattr__(self, key, value):
+        caller_name = sys._getframe(1).f_code.co_name
+
+        if caller_name != '__init__' and not hasattr(self, key):
+            raise TypeError("Parameter '{}' does not exist in {}. Parameters are only to be defined in a constructor of"
+                            " a class inheriting from Parameters. In order to explicitly register a new parameter "
+                            "outside of a constructor use register_var().".
+                            format(key, self.__class__))
+        object.__setattr__(self, key, value)
+
+    @property
+    def path(self):
+        if hasattr(self, 'parameterized_class_name'):
+            module_path = os.path.relpath(inspect.getfile(self.__class__), os.getcwd())[:-3] + '.py'
+
+            return ':'.join([module_path, self.parameterized_class_name])
+        else:
+            raise ValueError("The parameters class does not have an attached class it parameterizes. "
+                             "The self.parameterized_class_name should be set to the parameterized class.")
+
+    def register_var(self, key, value):
+        if hasattr(self, key):
+            raise TypeError("Cannot register an already existing parameter '{}'. ".format(key))
+        object.__setattr__(self, key, value)
+
+    def __str__(self):
+        result = "\"{}\" {}\n".format(self.__class__.__name__,
+                                   json.dumps(unfold_dict_or_list(self.__dict__), indent=4, default=repr))
+        return result
+
+
+class AlgorithmParameters(Parameters):
+    def __init__(self):
+        # Architecture parameters
+        self.use_accumulated_reward_as_measurement = False
+
+        # Agent parameters
+        self.num_consecutive_playing_steps = EnvironmentSteps(1)
+        self.num_consecutive_training_steps = 1  # TODO: update this to TrainingSteps
+
+        self.heatup_using_network_decisions = False
+        self.discount = 0.99
+        self.apply_gradients_every_x_episodes = 5
+        self.num_steps_between_copying_online_weights_to_target = TrainingSteps(0)
+        self.rate_for_copying_weights_to_target = 1.0
+        self.load_memory_from_file_path = None
+        self.store_transitions_only_when_episodes_are_terminated = False
+
+        # HRL / HER related params
+        self.in_action_space = None
+
+        # distributed agents params
+        self.share_statistics_between_workers = True
+
+        # intrinsic reward
+        self.scale_external_reward_by_intrinsic_reward_value = False
+
+        # n-step returns
+        self.n_step = -1  # calculate the total return (no bootstrap, by default)
+
+        # Distributed Coach params
+        self.distributed_coach_synchronization_type = None
+
+
+
[docs]class PresetValidationParameters(Parameters): + def __init__(self, + test=False, + min_reward_threshold=0, + max_episodes_to_achieve_reward=1, + num_workers=1, + reward_test_level=None, + test_using_a_trace_test=True, + trace_test_levels=None, + trace_max_env_steps=5000): + """ + :param test: + A flag which specifies if the preset should be tested as part of the validation process. + :param min_reward_threshold: + The minimum reward that the agent should pass after max_episodes_to_achieve_reward episodes when the + preset is run. + :param max_episodes_to_achieve_reward: + The maximum number of episodes that the agent should train using the preset in order to achieve the + reward specified by min_reward_threshold. + :param num_workers: + The number of workers that should be used when running this preset in the test suite for validation. + :param reward_test_level: + The environment level or levels, given by a list of strings, that should be tested as part of the + reward tests suite. + :param test_using_a_trace_test: + A flag that specifies if the preset should be run as part of the trace tests suite. + :param trace_test_levels: + The environment level or levels, given by a list of strings, that should be tested as part of the + trace tests suite. + :param trace_max_env_steps: + An integer representing the maximum number of environment steps to run when running this preset as part + of the trace tests suite. + """ + super().__init__() + + # setting a seed will only work for non-parallel algorithms. Parallel algorithms add uncontrollable noise in + # the form of different workers starting at different times, and getting different assignments of CPU + # time from the OS. + + # Testing parameters + self.test = test + self.min_reward_threshold = min_reward_threshold + self.max_episodes_to_achieve_reward = max_episodes_to_achieve_reward + self.num_workers = num_workers + self.reward_test_level = reward_test_level + self.test_using_a_trace_test = test_using_a_trace_test + self.trace_test_levels = trace_test_levels + self.trace_max_env_steps = trace_max_env_steps
+ + +
[docs]class NetworkParameters(Parameters): + def __init__(self, + force_cpu=False, + async_training=False, + shared_optimizer=True, + scale_down_gradients_by_number_of_workers_for_sync_training=True, + clip_gradients=None, + gradients_clipping_method=GradientClippingMethod.ClipByGlobalNorm, + l2_regularization=0, + learning_rate=0.00025, + learning_rate_decay_rate=0, + learning_rate_decay_steps=0, + input_embedders_parameters={}, + embedding_merger_type=EmbeddingMergerType.Concat, + middleware_parameters=None, + heads_parameters=[], + use_separate_networks_per_head=False, + optimizer_type='Adam', + optimizer_epsilon=0.0001, + adam_optimizer_beta1=0.9, + adam_optimizer_beta2=0.99, + rms_prop_optimizer_decay=0.9, + batch_size=32, + replace_mse_with_huber_loss=False, + create_target_network=False, + tensorflow_support=True): + """ + :param force_cpu: + Force the neural networks to run on the CPU even if a GPU is available + :param async_training: + If set to True, asynchronous training will be used, meaning that each workers will progress in its own + speed, while not waiting for the rest of the workers to calculate their gradients. + :param shared_optimizer: + If set to True, a central optimizer which will be shared with all the workers will be used for applying + gradients to the network. Otherwise, each worker will have its own optimizer with its own internal + parameters that will only be affected by the gradients calculated by that worker + :param scale_down_gradients_by_number_of_workers_for_sync_training: + If set to True, in synchronous training, the gradients of each worker will be scaled down by the + number of workers. This essentially means that the gradients applied to the network are the average + of the gradients over all the workers. + :param clip_gradients: + A value that will be used for clipping the gradients of the network. If set to None, no gradient clipping + will be applied. Otherwise, the gradients will be clipped according to the gradients_clipping_method. + :param gradients_clipping_method: + A gradient clipping method, defined by a GradientClippingMethod enum, and that will be used to clip the + gradients of the network. This will only be used if the clip_gradients value is defined as a value other + than None. + :param l2_regularization: + A L2 regularization weight that will be applied to the network weights while calculating the loss function + :param learning_rate: + The learning rate for the network + :param learning_rate_decay_rate: + If this value is larger than 0, an exponential decay will be applied to the network learning rate. + The rate of the decay is defined by this parameter, and the number of training steps the decay will be + applied is defined by learning_rate_decay_steps. Notice that both parameters should be defined in order + for this to work correctly. + :param learning_rate_decay_steps: + If the learning_rate_decay_rate of the network is larger than 0, an exponential decay will be applied to + the network learning rate. The number of steps the decay will be applied is defined by this parameter. + Notice that both this parameter, as well as learning_rate_decay_rate should be defined in order for the + learning rate decay to work correctly. + :param input_embedders_parameters: + A dictionary mapping between input names and input embedders (InputEmbedderParameters) to use for the + network. Each of the keys is an input name as returned from the environment in the state. + For example, if the environment returns a state containing 'observation' and 'measurements', then + the keys for the input embedders dictionary can be either 'observation' to use the observation as input, + 'measurements' to use the measurements as input, or both. + The embedder type will be automatically selected according to the input type. Vector inputs will + produce a fully connected embedder, and image inputs will produce a convolutional embedder. + :param embedding_merger_type: + The type of embedding merging to use, given by one of the EmbeddingMergerType enum values. + This will be used to merge the outputs of all the input embedders into a single embbeding. + :param middleware_parameters: + The parameters of the middleware to use, given by a MiddlewareParameters object. + Each network will have only a single middleware embedder which will take the merged embeddings from the + input embedders and pass them through more neural network layers. + :param heads_parameters: + A list of heads for the network given by their corresponding HeadParameters. + Each network can have one or multiple network heads, where each one will take the output of the middleware + and make some additional computation on top of it. Additionally, each head calculates a weighted loss value, + and the loss values from all the heads will be summed later on. + :param use_separate_networks_per_head: + A flag that allows using different copies of the input embedders and middleware for each one of the heads. + Regularly, the heads will have a shared input, but in the case where use_separate_networks_per_head is set + to True, each one of the heads will get a different input. + :param optimizer_type: + A string specifying the optimizer type to use for updating the network. The available optimizers are + Adam, RMSProp and LBFGS. + :param optimizer_epsilon: + An internal optimizer parameter used for Adam and RMSProp. + :param adam_optimizer_beta1: + An beta1 internal optimizer parameter used for Adam. It will be used only if Adam was selected as the + optimizer for the network. + :param adam_optimizer_beta2: + An beta2 internal optimizer parameter used for Adam. It will be used only if Adam was selected as the + optimizer for the network. + :param rms_prop_optimizer_decay: + The decay value for the RMSProp optimizer, which will be used only in case the RMSProp optimizer was + selected for this network. + :param batch_size: + The batch size to use when updating the network. + :param replace_mse_with_huber_loss: + :param create_target_network: + If this flag is set to True, an additional copy of the network will be created and initialized with the + same weights as the online network. It can then be queried, and its weights can be synced from the + online network at will. + :param tensorflow_support: + A flag which specifies if the network is supported by the TensorFlow framework. + """ + super().__init__() + self.framework = Frameworks.tensorflow + self.sess = None + + # hardware parameters + self.force_cpu = force_cpu + + # distributed training options + self.async_training = async_training + self.shared_optimizer = shared_optimizer + self.scale_down_gradients_by_number_of_workers_for_sync_training = scale_down_gradients_by_number_of_workers_for_sync_training + + # regularization + self.clip_gradients = clip_gradients + self.gradients_clipping_method = gradients_clipping_method + self.l2_regularization = l2_regularization + + # learning rate + self.learning_rate = learning_rate + self.learning_rate_decay_rate = learning_rate_decay_rate + self.learning_rate_decay_steps = learning_rate_decay_steps + + # structure + self.input_embedders_parameters = input_embedders_parameters + self.embedding_merger_type = embedding_merger_type + self.middleware_parameters = middleware_parameters + self.heads_parameters = heads_parameters + self.use_separate_networks_per_head = use_separate_networks_per_head + self.optimizer_type = optimizer_type + self.optimizer_epsilon = optimizer_epsilon + self.adam_optimizer_beta1 = adam_optimizer_beta1 + self.adam_optimizer_beta2 = adam_optimizer_beta2 + self.rms_prop_optimizer_decay = rms_prop_optimizer_decay + self.batch_size = batch_size + self.replace_mse_with_huber_loss = replace_mse_with_huber_loss + self.create_target_network = create_target_network + + # Framework support + self.tensorflow_support = tensorflow_support
+ + +class NetworkComponentParameters(Parameters): + def __init__(self, dense_layer): + self.dense_layer = dense_layer + + +
[docs]class VisualizationParameters(Parameters): + def __init__(self, + print_networks_summary=False, + dump_csv=True, + dump_signals_to_csv_every_x_episodes=5, + dump_gifs=False, + dump_mp4=False, + video_dump_methods=None, + dump_in_episode_signals=False, + dump_parameters_documentation=True, + render=False, + native_rendering=False, + max_fps_for_human_control=10, + tensorboard=False, + add_rendered_image_to_env_response=False): + """ + :param print_networks_summary: + If set to True, a summary of all the networks structure will be printed at the beginning of the experiment + :param dump_csv: + If set to True, the logger will dump logs to a csv file once in every dump_signals_to_csv_every_x_episodes + episodes. The logs can be later used to visualize the training process using Coach Dashboard. + :param dump_signals_to_csv_every_x_episodes: + Defines the number of episodes between writing new data to the csv log files. Lower values can affect + performance, as writing to disk may take time, and it is done synchronously. + :param dump_gifs: + If set to True, GIF videos of the environment will be stored into the experiment directory according to + the filters defined in video_dump_methods. + :param dump_mp4: + If set to True, MP4 videos of the environment will be stored into the experiment directory according to + the filters defined in video_dump_methods. + :param dump_in_episode_signals: + If set to True, csv files will be dumped for each episode for inspecting different metrics within the + episode. This means that for each step in each episode, different metrics such as the reward, the + future return, etc. will be saved. Setting this to True may affect performance severely, and therefore + this should be used only for debugging purposes. + :param dump_parameters_documentation: + If set to True, a json file containing all the agent parameters will be saved in the experiment directory. + This may be very useful for inspecting the values defined for each parameters and making sure that all + the parameters are defined as expected. + :param render: + If set to True, the environment render function will be called for each step, rendering the image of the + environment. This may affect the performance of training, and is highly dependent on the environment. + By default, Coach uses PyGame to render the environment image instead of the environment specific rendered. + To change this, use the native_rendering flag. + :param native_rendering: + If set to True, the environment native renderer will be used for rendering the environment image. + In some cases this can be slower than rendering using PyGame through Coach, but in other cases the + environment opens its native renderer by default, so rendering with PyGame is an unnecessary overhead. + :param max_fps_for_human_control: + The maximum number of frames per second used while playing the environment as a human. This only has + effect while using the --play flag for Coach. + :param tensorboard: + If set to True, TensorBoard summaries will be stored in the experiment directory. This can later be + loaded in TensorBoard in order to visualize the training process. + :param video_dump_methods: + A list of dump methods that will be used as filters for deciding when to save videos. + The filters in the list will be checked one after the other until the first dump method that returns + false for should_dump() in the environment class. This list will only be used if dump_mp4 or dump_gif are + set to True. + :param add_rendered_image_to_env_response: + Some environments have a different observation compared to the one displayed while rendering. + For some cases it can be useful to pass the rendered image to the agent for visualization purposes. + If this flag is set to True, the rendered image will be added to the environment EnvResponse object, + which will be passed to the agent and allow using those images. + """ + super().__init__() + if video_dump_methods is None: + video_dump_methods = [SelectedPhaseOnlyDumpFilter(RunPhase.TEST), MaxDumpFilter()] + self.print_networks_summary = print_networks_summary + self.dump_csv = dump_csv + self.dump_gifs = dump_gifs + self.dump_mp4 = dump_mp4 + self.dump_signals_to_csv_every_x_episodes = dump_signals_to_csv_every_x_episodes + self.dump_in_episode_signals = dump_in_episode_signals + self.dump_parameters_documentation = dump_parameters_documentation + self.render = render + self.native_rendering = native_rendering + self.max_fps_for_human_control = max_fps_for_human_control + self.tensorboard = tensorboard + self.video_dump_filters = video_dump_methods + self.add_rendered_image_to_env_response = add_rendered_image_to_env_response
+ + +
[docs]class AgentParameters(Parameters): + def __init__(self, algorithm: AlgorithmParameters, exploration: 'ExplorationParameters', memory: 'MemoryParameters', + networks: Dict[str, NetworkParameters], visualization: VisualizationParameters=VisualizationParameters()): + """ + :param algorithm: + A class inheriting AlgorithmParameters. + The parameters used for the specific algorithm used by the agent. + These parameters can be later referenced in the agent implementation through self.ap.algorithm. + :param exploration: + Either a class inheriting ExplorationParameters or a dictionary mapping between action + space types and their corresponding ExplorationParameters. If a dictionary was used, + when the agent will be instantiated, the correct exploration policy parameters will be used + according to the real type of the environment action space. + These parameters will be used to instantiate the exporation policy. + :param memory: + A class inheriting MemoryParameters. It defines all the parameters used by the memory module. + :param networks: + A dictionary mapping between network names and their corresponding network parmeters, defined + as a class inheriting NetworkParameters. Each element will be used in order to instantiate + a NetworkWrapper class, and all the network wrappers will be stored in the agent under + self.network_wrappers. self.network_wrappers is a dict mapping between the network name that + was given in the networks dict, and the instantiated network wrapper. + :param visualization: + A class inheriting VisualizationParameters and defining various parameters that can be + used for visualization purposes, such as printing to the screen, rendering, and saving videos. + """ + super().__init__() + self.visualization = visualization + self.algorithm = algorithm + self.exploration = exploration + self.memory = memory + self.network_wrappers = networks + self.input_filter = None + self.output_filter = None + self.pre_network_filter = NoInputFilter() + self.full_name_id = None # TODO: do we really want to hold this parameter here? + self.name = None + self.is_a_highest_level_agent = True + self.is_a_lowest_level_agent = True + self.task_parameters = None + + @property + def path(self): + return 'rl_coach.agents.agent:Agent'
+ + +
[docs]class TaskParameters(Parameters): + def __init__(self, framework_type: Frameworks=Frameworks.tensorflow, evaluate_only: bool=False, use_cpu: bool=False, + experiment_path='/tmp', seed=None, checkpoint_save_secs=None, checkpoint_restore_dir=None, + checkpoint_save_dir=None, export_onnx_graph: bool=False): + """ + :param framework_type: deep learning framework type. currently only tensorflow is supported + :param evaluate_only: the task will be used only for evaluating the model + :param use_cpu: use the cpu for this task + :param experiment_path: the path to the directory which will store all the experiment outputs + :param seed: a seed to use for the random numbers generator + :param checkpoint_save_secs: the number of seconds between each checkpoint saving + :param checkpoint_restore_dir: the directory to restore the checkpoints from + :param checkpoint_save_dir: the directory to store the checkpoints in + :param export_onnx_graph: If set to True, this will export an onnx graph each time a checkpoint is saved + """ + self.framework_type = framework_type + self.task_index = 0 # TODO: not really needed + self.evaluate_only = evaluate_only + self.use_cpu = use_cpu + self.experiment_path = experiment_path + self.checkpoint_save_secs = checkpoint_save_secs + self.checkpoint_restore_dir = checkpoint_restore_dir + self.checkpoint_save_dir = checkpoint_save_dir + self.seed = seed + self.export_onnx_graph = export_onnx_graph
+ + +
[docs]class DistributedTaskParameters(TaskParameters): + def __init__(self, framework_type: Frameworks, parameters_server_hosts: str, worker_hosts: str, job_type: str, + task_index: int, evaluate_only: bool=False, num_tasks: int=None, + num_training_tasks: int=None, use_cpu: bool=False, experiment_path=None, dnd=None, + shared_memory_scratchpad=None, seed=None, checkpoint_save_secs=None, checkpoint_restore_dir=None, + checkpoint_save_dir=None, export_onnx_graph: bool=False): + """ + :param framework_type: deep learning framework type. currently only tensorflow is supported + :param evaluate_only: the task will be used only for evaluating the model + :param parameters_server_hosts: comma-separated list of hostname:port pairs to which the parameter servers are + assigned + :param worker_hosts: comma-separated list of hostname:port pairs to which the workers are assigned + :param job_type: the job type - either ps (short for parameters server) or worker + :param task_index: the index of the process + :param num_tasks: the number of total tasks that are running (not including the parameters server) + :param num_training_tasks: the number of tasks that are training (not including the parameters server) + :param use_cpu: use the cpu for this task + :param experiment_path: the path to the directory which will store all the experiment outputs + :param dnd: an external DND to use for NEC. This is a workaround needed for a shared DND not using the scratchpad. + :param seed: a seed to use for the random numbers generator + :param checkpoint_save_secs: the number of seconds between each checkpoint saving + :param checkpoint_restore_dir: the directory to restore the checkpoints from + :param checkpoint_save_dir: the directory to store the checkpoints in + :param export_onnx_graph: If set to True, this will export an onnx graph each time a checkpoint is saved + """ + super().__init__(framework_type=framework_type, evaluate_only=evaluate_only, use_cpu=use_cpu, + experiment_path=experiment_path, seed=seed, checkpoint_save_secs=checkpoint_save_secs, + checkpoint_restore_dir=checkpoint_restore_dir, checkpoint_save_dir=checkpoint_save_dir, + export_onnx_graph=export_onnx_graph) + self.parameters_server_hosts = parameters_server_hosts + self.worker_hosts = worker_hosts + self.job_type = job_type + self.task_index = task_index + self.num_tasks = num_tasks + self.num_training_tasks = num_training_tasks + self.device = None # the replicated device which will be used for the global parameters + self.worker_target = None + self.dnd = dnd + self.shared_memory_scratchpad = shared_memory_scratchpad
+
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/core_types.html b/docs/_modules/rl_coach/core_types.html new file mode 100644 index 0000000..a783c7d --- /dev/null +++ b/docs/_modules/rl_coach/core_types.html @@ -0,0 +1,1092 @@ + + + + + + + + + + + rl_coach.core_types — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +

Source code for rl_coach.core_types

+#
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+
+import copy
+from enum import Enum
+from random import shuffle
+from typing import List, Union, Dict, Any, Type
+
+import numpy as np
+
+from rl_coach.utils import force_list
+
+ActionType = Union[int, float, np.ndarray, List]
+GoalType = Union[None, np.ndarray]
+ObservationType = np.ndarray
+RewardType = Union[int, float, np.ndarray]
+StateType = Dict[str, np.ndarray]
+
+
+class GoalTypes(Enum):
+    Embedding = 1
+    EmbeddingChange = 2
+    Observation = 3
+    Measurements = 4
+
+
+# step methods
+
+class StepMethod(object):
+    def __init__(self, num_steps: int):
+        self._num_steps = self.num_steps = num_steps
+
+    @property
+    def num_steps(self) -> int:
+        return self._num_steps
+
+    @num_steps.setter
+    def num_steps(self, val: int) -> None:
+        self._num_steps = val
+
+
+class Frames(StepMethod):
+    def __init__(self, num_steps):
+        super().__init__(num_steps)
+
+
+class EnvironmentSteps(StepMethod):
+    def __init__(self, num_steps):
+        super().__init__(num_steps)
+
+
+class EnvironmentEpisodes(StepMethod):
+    def __init__(self, num_steps):
+        super().__init__(num_steps)
+
+
+class TrainingSteps(StepMethod):
+    def __init__(self, num_steps):
+        super().__init__(num_steps)
+
+
+class Time(StepMethod):
+    def __init__(self, num_steps):
+        super().__init__(num_steps)
+
+
+class PredictionType(object):
+    pass
+
+
+class VStateValue(PredictionType):
+    pass
+
+
+class QActionStateValue(PredictionType):
+    pass
+
+
+class ActionProbabilities(PredictionType):
+    pass
+
+
+class Embedding(PredictionType):
+    pass
+
+
+class InputEmbedding(Embedding):
+    pass
+
+
+class MiddlewareEmbedding(Embedding):
+    pass
+
+
+class InputImageEmbedding(InputEmbedding):
+    pass
+
+
+class InputVectorEmbedding(InputEmbedding):
+    pass
+
+
+class Middleware_FC_Embedding(MiddlewareEmbedding):
+    pass
+
+
+class Middleware_LSTM_Embedding(MiddlewareEmbedding):
+    pass
+
+
+class Measurements(PredictionType):
+    pass
+
+
+PlayingStepsType = Union[EnvironmentSteps, EnvironmentEpisodes, Frames]
+
+
+# run phases
+class RunPhase(Enum):
+    HEATUP = "Heatup"
+    TRAIN = "Training"
+    TEST = "Testing"
+    UNDEFINED = "Undefined"
+
+
+# transitions
+
+
[docs]class Transition(object): + def __init__(self, state: Dict[str, np.ndarray]=None, action: ActionType=None, reward: RewardType=None, + next_state: Dict[str, np.ndarray]=None, game_over: bool=None, info: Dict=None): + """ + A transition is a tuple containing the information of a single step of interaction + between the agent and the environment. The most basic version should contain the following values: + (current state, action, reward, next state, game over) + For imitation learning algorithms, if the reward, next state or game over is not known, + it is sufficient to store the current state and action taken by the expert. + + :param state: The current state. Assumed to be a dictionary where the observation + is located at state['observation'] + :param action: The current action that was taken + :param reward: The reward received from the environment + :param next_state: The next state of the environment after applying the action. + The next state should be similar to the state in its structure. + :param game_over: A boolean which should be True if the episode terminated after + the execution of the action. + :param info: A dictionary containing any additional information to be stored in the transition + """ + + self._state = self.state = state + self._action = self.action = action + self._reward = self.reward = reward + self._n_step_discounted_rewards = self.n_step_discounted_rewards = None + if not next_state: + next_state = state + self._next_state = self._next_state = next_state + self._game_over = self.game_over = game_over + if info is None: + self.info = {} + else: + self.info = info + + def __repr__(self): + return str(self.__dict__) + + @property + def state(self): + if self._state is None: + raise Exception("The state was not filled by any of the modules between the environment and the agent") + return self._state + + @state.setter + def state(self, val): + self._state = val + + @property + def action(self): + if self._action is None: + raise Exception("The action was not filled by any of the modules between the environment and the agent") + return self._action + + @action.setter + def action(self, val): + self._action = val + + @property + def reward(self): + + if self._reward is None: + raise Exception("The reward was not filled by any of the modules between the environment and the agent") + return self._reward + + @reward.setter + def reward(self, val): + self._reward = val + + @property + def n_step_discounted_rewards(self): + if self._n_step_discounted_rewards is None: + raise Exception("The n_step_discounted_rewards were not filled by any of the modules between the " + "environment and the agent. Make sure that you are using an episodic experience replay.") + return self._n_step_discounted_rewards + + @n_step_discounted_rewards.setter + def n_step_discounted_rewards(self, val): + self._n_step_discounted_rewards = val + + @property + def game_over(self): + if self._game_over is None: + raise Exception("The done flag was not filled by any of the modules between the environment and the agent") + return self._game_over + + @game_over.setter + def game_over(self, val): + self._game_over = val + + @property + def next_state(self): + if self._next_state is None: + raise Exception("The next state was not filled by any of the modules between the environment and the agent") + return self._next_state + + @next_state.setter + def next_state(self, val): + self._next_state = val + + def add_info(self, new_info: Dict[str, Any]) -> None: + if not new_info.keys().isdisjoint(self.info.keys()): + raise ValueError("The new info dictionary can not be appended to the existing info dictionary since there " + "are overlapping keys between the two. old keys: {}, new keys: {}" + .format(self.info.keys(), new_info.keys())) + self.info.update(new_info) + + def __copy__(self): + new_transition = type(self)() + new_transition.__dict__.update(self.__dict__) + new_transition.state = copy.copy(new_transition.state) + new_transition.next_state = copy.copy(new_transition.next_state) + new_transition.info = copy.copy(new_transition.info) + return new_transition
+ + +
[docs]class EnvResponse(object): + def __init__(self, next_state: Dict[str, ObservationType], reward: RewardType, game_over: bool, info: Dict=None, + goal: ObservationType=None): + """ + An env response is a collection containing the information returning from the environment after a single action + has been performed on it. + + :param next_state: The new state that the environment has transitioned into. Assumed to be a dictionary where the + observation is located at state['observation'] + :param reward: The reward received from the environment + :param game_over: A boolean which should be True if the episode terminated after + the execution of the action. + :param info: any additional info from the environment + :param goal: a goal defined by the environment + """ + self._next_state = self.next_state = next_state + self._reward = self.reward = reward + self._game_over = self.game_over = game_over + self._goal = self.goal = goal + if info is None: + self.info = {} + else: + self.info = info + + def __repr__(self): + return str(self.__dict__) + + @property + def next_state(self): + return self._next_state + + @next_state.setter + def next_state(self, val): + self._next_state = val + + @property + def reward(self): + return self._reward + + @reward.setter + def reward(self, val): + self._reward = val + + @property + def game_over(self): + return self._game_over + + @game_over.setter + def game_over(self, val): + self._game_over = val + + @property + def goal(self): + return self._goal + + @goal.setter + def goal(self, val): + self._goal = val + + def add_info(self, info: Dict[str, Any]) -> None: + if info.keys().isdisjoint(self.info.keys()): + raise ValueError("The new info dictionary can not be appended to the existing info dictionary since there" + "are overlapping keys between the two") + self.info.update(info)
+ + +
[docs]class ActionInfo(object): + """ + Action info is a class that holds an action and various additional information details about it + """ + + def __init__(self, action: ActionType, action_probability: float=0, + action_value: float=0., state_value: float=0., max_action_value: float=None, + action_intrinsic_reward: float=0): + """ + :param action: the action + :param action_probability: the probability that the action was given when selecting it + :param action_value: the state-action value (Q value) of the action + :param state_value: the state value (V value) of the state where the action was taken + :param max_action_value: in case this is an action that was selected randomly, this is the value of the action + that received the maximum value. if no value is given, the action is assumed to be the + action with the maximum value + :param action_intrinsic_reward: can contain any intrinsic reward that the agent wants to add to this action + selection + """ + self.action = action + self.action_probability = action_probability + self.action_value = action_value + self.state_value = state_value + if not max_action_value: + self.max_action_value = action_value + else: + self.max_action_value = max_action_value + self.action_intrinsic_reward = action_intrinsic_reward
+ + +
[docs]class Batch(object): + """ + A wrapper around a list of transitions that helps extracting batches of parameters from it. + For example, one can extract a list of states corresponding to the list of transitions. + The class uses lazy evaluation in order to return each of the available parameters. + """ + def __init__(self, transitions: List[Transition]): + """ + :param transitions: a list of transitions to extract the batch from + """ + self.transitions = transitions + self._states = {} + self._actions = None + self._rewards = None + self._n_step_discounted_rewards = None + self._game_overs = None + self._next_states = {} + self._goals = None + self._info = {} + +
[docs] def slice(self, start, end) -> None: + """ + Keep a slice from the batch and discard the rest of the batch + + :param start: the start index in the slice + :param end: the end index in the slice + :return: None + """ + + self.transitions = self.transitions[start:end] + for k, v in self._states.items(): + self._states[k] = v[start:end] + if self._actions is not None: + self._actions = self._actions[start:end] + if self._rewards is not None: + self._rewards = self._rewards[start:end] + if self._n_step_discounted_rewards is not None: + self._n_step_discounted_rewards = self._n_step_discounted_rewards[start:end] + if self._game_overs is not None: + self._game_overs = self._game_overs[start:end] + for k, v in self._next_states.items(): + self._next_states[k] = v[start:end] + if self._goals is not None: + self._goals = self._goals[start:end] + for k, v in self._info.items(): + self._info[k] = v[start:end]
+ +
[docs] def shuffle(self) -> None: + """ + Shuffle all the transitions in the batch + + :return: None + """ + batch_order = list(range(self.size)) + shuffle(batch_order) + self.transitions = [self.transitions[i] for i in batch_order] + self._states = {} + self._actions = None + self._rewards = None + self._n_step_discounted_rewards = None + self._game_overs = None + self._next_states = {} + self._goals = None + self._info = {}
+ + # This seems to be slower + # for k, v in self._states.items(): + # self._states[k] = [v[i] for i in batch_order] + # if self._actions is not None: + # self._actions = [self._actions[i] for i in batch_order] + # if self._rewards is not None: + # self._rewards = [self._rewards[i] for i in batch_order] + # if self._total_returns is not None: + # self._total_returns = [self._total_returns[i] for i in batch_order] + # if self._game_overs is not None: + # self._game_overs = [self._game_overs[i] for i in batch_order] + # for k, v in self._next_states.items(): + # self._next_states[k] = [v[i] for i in batch_order] + # if self._goals is not None: + # self._goals = [self._goals[i] for i in batch_order] + # for k, v in self._info.items(): + # self._info[k] = [v[i] for i in batch_order] + +
[docs] def states(self, fetches: List[str], expand_dims=False) -> Dict[str, np.ndarray]: + """ + follow the keys in fetches to extract the corresponding items from the states in the batch + if these keys were not already extracted before. return only the values corresponding to those keys + + :param fetches: the keys of the state dictionary to extract + :param expand_dims: add an extra dimension to each of the value batches + :return: a dictionary containing a batch of values correponding to each of the given fetches keys + """ + current_states = {} + # there are cases (e.g. ddpg) where the state does not contain all the information needed for running + # through the network and this has to be added externally (e.g. ddpg where the action needs to be given in + # addition to the current_state, so that all the inputs of the network will be filled) + for key in set(fetches).intersection(self.transitions[0].state.keys()): + if key not in self._states.keys(): + self._states[key] = np.array([np.array(transition.state[key]) for transition in self.transitions]) + if expand_dims: + current_states[key] = np.expand_dims(self._states[key], -1) + else: + current_states[key] = self._states[key] + return current_states
+ +
[docs] def actions(self, expand_dims=False) -> np.ndarray: + """ + if the actions were not converted to a batch before, extract them to a batch and then return the batch + + :param expand_dims: add an extra dimension to the actions batch + :return: a numpy array containing all the actions of the batch + """ + if self._actions is None: + self._actions = np.array([transition.action for transition in self.transitions]) + if expand_dims: + return np.expand_dims(self._actions, -1) + return self._actions
+ +
[docs] def rewards(self, expand_dims=False) -> np.ndarray: + """ + if the rewards were not converted to a batch before, extract them to a batch and then return the batch + + :param expand_dims: add an extra dimension to the rewards batch + :return: a numpy array containing all the rewards of the batch + """ + if self._rewards is None: + self._rewards = np.array([transition.reward for transition in self.transitions]) + if expand_dims: + return np.expand_dims(self._rewards, -1) + return self._rewards
+ +
[docs] def n_step_discounted_rewards(self, expand_dims=False) -> np.ndarray: + """ + if the n_step_discounted_rewards were not converted to a batch before, extract them to a batch and then return + the batch + if the n step discounted rewards were not filled, this will raise an exception + :param expand_dims: add an extra dimension to the total_returns batch + :return: a numpy array containing all the total return values of the batch + """ + if self._n_step_discounted_rewards is None: + self._n_step_discounted_rewards = np.array([transition.n_step_discounted_rewards for transition in + self.transitions]) + if expand_dims: + return np.expand_dims(self._n_step_discounted_rewards, -1) + return self._n_step_discounted_rewards
+ +
[docs] def game_overs(self, expand_dims=False) -> np.ndarray: + """ + if the game_overs were not converted to a batch before, extract them to a batch and then return the batch + + :param expand_dims: add an extra dimension to the game_overs batch + :return: a numpy array containing all the game over flags of the batch + """ + if self._game_overs is None: + self._game_overs = np.array([transition.game_over for transition in self.transitions]) + if expand_dims: + return np.expand_dims(self._game_overs, -1) + return self._game_overs
+ +
[docs] def next_states(self, fetches: List[str], expand_dims=False) -> Dict[str, np.ndarray]: + """ + follow the keys in fetches to extract the corresponding items from the next states in the batch + if these keys were not already extracted before. return only the values corresponding to those keys + + :param fetches: the keys of the state dictionary to extract + :param expand_dims: add an extra dimension to each of the value batches + :return: a dictionary containing a batch of values correponding to each of the given fetches keys + """ + next_states = {} + # there are cases (e.g. ddpg) where the state does not contain all the information needed for running + # through the network and this has to be added externally (e.g. ddpg where the action needs to be given in + # addition to the current_state, so that all the inputs of the network will be filled) + for key in set(fetches).intersection(self.transitions[0].next_state.keys()): + if key not in self._next_states.keys(): + self._next_states[key] = np.array( + [np.array(transition.next_state[key]) for transition in self.transitions]) + if expand_dims: + next_states[key] = np.expand_dims(self._next_states[key], -1) + else: + next_states[key] = self._next_states[key] + return next_states
+ +
[docs] def goals(self, expand_dims=False) -> np.ndarray: + """ + if the goals were not converted to a batch before, extract them to a batch and then return the batch + if the goal was not filled, this will raise an exception + + :param expand_dims: add an extra dimension to the goals batch + :return: a numpy array containing all the goals of the batch + """ + if self._goals is None: + self._goals = np.array([transition.goal for transition in self.transitions]) + if expand_dims: + return np.expand_dims(self._goals, -1) + return self._goals
+ +
[docs] def info_as_list(self, key) -> list: + """ + get the info and store it internally as a list, if wasn't stored before. return it as a list + :param expand_dims: add an extra dimension to the info batch + :return: a list containing all the info values of the batch corresponding to the given key + """ + if key not in self._info.keys(): + self._info[key] = [transition.info[key] for transition in self.transitions] + return self._info[key]
+ +
[docs] def info(self, key, expand_dims=False) -> np.ndarray: + """ + if the given info dictionary key was not converted to a batch before, extract it to a batch and then return the + batch. if the key is not part of the keys in the info dictionary, this will raise an exception + + :param expand_dims: add an extra dimension to the info batch + :return: a numpy array containing all the info values of the batch corresponding to the given key + """ + info_list = self.info_as_list(key) + + if expand_dims: + return np.expand_dims(info_list, -1) + return np.array(info_list)
+ + @property + def size(self) -> int: + """ + :return: the size of the batch + """ + return len(self.transitions) + + def __getitem__(self, key): + """ + get an item from the transitions list + + :param key: index of the transition in the batch + :return: the transition corresponding to the given index + """ + return self.transitions[key] + + def __setitem__(self, key, item): + """ + set an item in the transition list + + :param key: index of the transition in the batch + :param item: the transition to place in the given index + :return: None + """ + self.transitions[key] = item
+ + +class TotalStepsCounter(object): + """ + A wrapper around a dictionary counting different StepMethods steps done. + """ + + def __init__(self): + self.counters = { + EnvironmentEpisodes: 0, + EnvironmentSteps: 0, + TrainingSteps: 0 + } + + def __getitem__(self, key: Type[StepMethod]) -> int: + """ + get counter value + + :param key: counter type + :return: the counter value + """ + return self.counters[key] + + def __setitem__(self, key: StepMethod, item: int) -> None: + """ + set an item in the transition list + + :param key: counter type + :param item: an integer representing the new counter value + :return: None + """ + self.counters[key] = item + + def __add__(self, other: Type[StepMethod]) -> Type[StepMethod]: + return other.__class__(self.counters[other.__class__] + other.num_steps) + + def __lt__(self, other: Type[StepMethod]): + return self.counters[other.__class__] < other.num_steps + + +class GradientClippingMethod(Enum): + ClipByGlobalNorm = 0 + ClipByNorm = 1 + ClipByValue = 2 + + +
[docs]class Episode(object): + """ + An Episode represents a set of sequential transitions, that end with a terminal state. + """ + def __init__(self, discount: float=0.99, bootstrap_total_return_from_old_policy: bool=False, n_step: int=-1): + """ + :param discount: the discount factor to use when calculating total returns + :param bootstrap_total_return_from_old_policy: should the total return be bootstrapped from the values in the + memory + :param n_step: the number of future steps to sum the reward over before bootstrapping + """ + self.transitions = [] + self._length = 0 + self.discount = discount + self.bootstrap_total_return_from_old_policy = bootstrap_total_return_from_old_policy + self.n_step = n_step + self.is_complete = False + +
[docs] def insert(self, transition: Transition) -> None: + """ + Insert a new transition to the episode. If the game_over flag in the transition is set to True, + the episode will be marked as complete. + + :param transition: The new transition to insert to the episode + :return: None + """ + self.transitions.append(transition) + self._length += 1 + if transition.game_over: + self.is_complete = True
+ +
[docs] def is_empty(self) -> bool: + """ + Check if the episode is empty + + :return: A boolean value determining if the episode is empty or not + """ + return self.length() == 0
+ +
[docs] def length(self) -> int: + """ + Return the length of the episode, which is the number of transitions it holds. + + :return: The number of transitions in the episode + """ + return self._length
+ + def __len__(self): + return self.length() + +
[docs] def get_transition(self, transition_idx: int) -> Transition: + """ + Get a specific transition by its index. + + :param transition_idx: The index of the transition to get + :return: The transition which is stored in the given index + """ + return self.transitions[transition_idx]
+ +
[docs] def get_last_transition(self) -> Transition: + """ + Get the last transition in the episode, or None if there are no transition available + + :return: The last transition in the episode + """ + return self.get_transition(-1) if self.length() > 0 else None
+ +
[docs] def get_first_transition(self) -> Transition: + """ + Get the first transition in the episode, or None if there are no transitions available + + :return: The first transition in the episode + """ + return self.get_transition(0) if self.length() > 0 else None
+ +
[docs] def update_discounted_rewards(self): + """ + Update the discounted returns for all the transitions in the episode. + The returns will be calculated according to the rewards of each transition, together with the number of steps + to bootstrap from and the discount factor, as defined by n_step and discount respectively when initializing + the episode. + + :return: None + """ + if self.n_step == -1 or self.n_step > self.length(): + curr_n_step = self.length() + else: + curr_n_step = self.n_step + + rewards = np.array([t.reward for t in self.transitions]) + rewards = rewards.astype('float') + discounted_rewards = rewards.copy() + current_discount = self.discount + for i in range(1, curr_n_step): + discounted_rewards += current_discount * np.pad(rewards[i:], (0, i), 'constant', constant_values=0) + current_discount *= self.discount + + # calculate the bootstrapped returns + if self.bootstrap_total_return_from_old_policy: + bootstraps = np.array([np.squeeze(t.info['max_action_value']) for t in self.transitions[curr_n_step:]]) + bootstrapped_return = discounted_rewards + current_discount * np.pad(bootstraps, (0, curr_n_step), + 'constant', constant_values=0) + discounted_rewards = bootstrapped_return + + for transition_idx in range(self.length()): + self.transitions[transition_idx].n_step_discounted_rewards = discounted_rewards[transition_idx]
+ + def update_transitions_rewards_and_bootstrap_data(self): + if not isinstance(self.n_step, int) or (self.n_step < 1 and self.n_step != -1): + raise ValueError("n-step should be an integer with value >= 1, or set to -1 for always setting to episode" + " length.") + elif self.n_step > 1: + curr_n_step = self.n_step if self.n_step < self.length() else self.length() + + for idx, transition in enumerate(self.transitions): + next_n_step_transition_idx = (idx + curr_n_step) + if next_n_step_transition_idx < len(self.transitions): + # next state will now point to the n-step next state + transition.next_state = self.transitions[next_n_step_transition_idx].state + transition.info['should_bootstrap_next_state'] = True + else: + transition.next_state = self.transitions[-1].next_state + transition.info['should_bootstrap_next_state'] = False + + self.update_discounted_rewards() + + + +
[docs] def get_transitions_attribute(self, attribute_name: str) -> List[Any]: + """ + Get the values for some transition attribute from all the transitions in the episode. + For example, this allows getting the rewards for all the transitions as a list by calling + get_transitions_attribute('reward') + + :param attribute_name: The name of the attribute to extract from all the transitions + :return: A list of values from all the transitions according to the attribute given in attribute_name + """ + if len(self.transitions) > 0 and hasattr(self.transitions[0], attribute_name): + return [getattr(t, attribute_name) for t in self.transitions] + elif len(self.transitions) == 0: + return [] + else: + raise ValueError("The transitions have no such attribute name")
+ + def __getitem__(self, sliced): + return self.transitions[sliced]
+ + +""" +Video Dumping Methods +""" + + +class VideoDumpFilter(object): + """ + Method used to decide when to dump videos + """ + def should_dump(self, episode_terminated=False, **kwargs): + raise NotImplementedError("") + + +class AlwaysDumpFilter(VideoDumpFilter): + """ + Dump video for every episode + """ + def __init__(self): + super().__init__() + + def should_dump(self, episode_terminated=False, **kwargs): + return True + + +class MaxDumpFilter(VideoDumpFilter): + """ + Dump video every time a new max total reward has been achieved + """ + def __init__(self): + super().__init__() + self.max_reward_achieved = -np.inf + + def should_dump(self, episode_terminated=False, **kwargs): + # if the episode has not finished yet we want to be prepared for dumping a video + if not episode_terminated: + return True + if kwargs['total_reward_in_current_episode'] > self.max_reward_achieved: + self.max_reward_achieved = kwargs['total_reward_in_current_episode'] + return True + else: + return False + + +class EveryNEpisodesDumpFilter(object): + """ + Dump videos once in every N episodes + """ + def __init__(self, num_episodes_between_dumps: int): + super().__init__() + self.num_episodes_between_dumps = num_episodes_between_dumps + self.last_dumped_episode = 0 + if num_episodes_between_dumps < 1: + raise ValueError("the number of episodes between dumps should be a positive number") + + def should_dump(self, episode_terminated=False, **kwargs): + if kwargs['episode_idx'] >= self.last_dumped_episode + self.num_episodes_between_dumps - 1: + self.last_dumped_episode = kwargs['episode_idx'] + return True + else: + return False + + +class SelectedPhaseOnlyDumpFilter(object): + """ + Dump videos when the phase of the environment matches a predefined phase + """ + def __init__(self, run_phases: Union[RunPhase, List[RunPhase]]): + self.run_phases = force_list(run_phases) + + def should_dump(self, episode_terminated=False, **kwargs): + if kwargs['_phase'] in self.run_phases: + return True + else: + return False +
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/environments/carla_environment.html b/docs/_modules/rl_coach/environments/carla_environment.html new file mode 100644 index 0000000..ff99f1c --- /dev/null +++ b/docs/_modules/rl_coach/environments/carla_environment.html @@ -0,0 +1,695 @@ + + + + + + + + + + + rl_coach.environments.carla_environment — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.environments.carla_environment
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.environments.carla_environment

+#
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+import random
+import sys
+from os import path, environ
+
+from rl_coach.logger import screen
+from rl_coach.filters.action.partial_discrete_action_space_map import PartialDiscreteActionSpaceMap
+from rl_coach.filters.observation.observation_rgb_to_y_filter import ObservationRGBToYFilter
+from rl_coach.filters.observation.observation_to_uint8_filter import ObservationToUInt8Filter
+
+try:
+    if 'CARLA_ROOT' in environ:
+        sys.path.append(path.join(environ.get('CARLA_ROOT'), 'PythonClient'))
+    else:
+        screen.error("CARLA_ROOT was not defined. Please set it to point to the CARLA root directory and try again.")
+    from carla.client import CarlaClient
+    from carla.settings import CarlaSettings
+    from carla.tcp import TCPConnectionError
+    from carla.sensor import Camera
+    from carla.client import VehicleControl
+    from carla.planner.planner import Planner
+    from carla.driving_benchmark.experiment_suites.experiment_suite import ExperimentSuite
+except ImportError:
+    from rl_coach.logger import failed_imports
+    failed_imports.append("CARLA")
+
+import logging
+import subprocess
+from rl_coach.environments.environment import Environment, EnvironmentParameters, LevelSelection
+from rl_coach.spaces import BoxActionSpace, ImageObservationSpace, StateSpace, \
+    VectorObservationSpace
+from rl_coach.utils import get_open_port, force_list
+from enum import Enum
+import os
+import signal
+from typing import List, Union
+from rl_coach.base_parameters import VisualizationParameters
+from rl_coach.filters.filter import InputFilter, NoOutputFilter
+from rl_coach.filters.observation.observation_rescale_to_size_filter import ObservationRescaleToSizeFilter
+from rl_coach.filters.observation.observation_stacking_filter import ObservationStackingFilter
+import numpy as np
+
+
+# enum of the available levels and their path
+class CarlaLevel(Enum):
+    TOWN1 = {"map_name": "Town01", "map_path": "/Game/Maps/Town01"}
+    TOWN2 = {"map_name": "Town02", "map_path": "/Game/Maps/Town02"}
+
+key_map = {
+    'BRAKE': (274,),  # down arrow
+    'GAS': (273,),  # up arrow
+    'TURN_LEFT': (276,),  # left arrow
+    'TURN_RIGHT': (275,),  # right arrow
+    'GAS_AND_TURN_LEFT': (273, 276),
+    'GAS_AND_TURN_RIGHT': (273, 275),
+    'BRAKE_AND_TURN_LEFT': (274, 276),
+    'BRAKE_AND_TURN_RIGHT': (274, 275),
+}
+
+CarlaInputFilter = InputFilter(is_a_reference_filter=True)
+CarlaInputFilter.add_observation_filter('forward_camera', 'rescaling',
+                                        ObservationRescaleToSizeFilter(ImageObservationSpace(np.array([128, 180, 3]),
+                                                                                             high=255)))
+CarlaInputFilter.add_observation_filter('forward_camera', 'to_grayscale', ObservationRGBToYFilter())
+CarlaInputFilter.add_observation_filter('forward_camera', 'to_uint8', ObservationToUInt8Filter(0, 255))
+CarlaInputFilter.add_observation_filter('forward_camera', 'stacking', ObservationStackingFilter(4))
+
+CarlaOutputFilter = NoOutputFilter()
+
+
+class CameraTypes(Enum):
+    FRONT = "forward_camera"
+    LEFT = "left_camera"
+    RIGHT = "right_camera"
+    SEGMENTATION = "segmentation"
+    DEPTH = "depth"
+    LIDAR = "lidar"
+
+
+class CarlaEnvironmentParameters(EnvironmentParameters):
+    class Quality(Enum):
+        LOW = "Low"
+        EPIC = "Epic"
+
+    def __init__(self, level="town1"):
+        super().__init__(level=level)
+        self.frame_skip = 3  # the frame skip affects the fps of the server directly. fps = 30 / frameskip
+        self.server_height = 512
+        self.server_width = 720
+        self.camera_height = 128
+        self.camera_width = 180
+        self.experiment_suite = None  # an optional CARLA experiment suite to use
+        self.config = None
+        self.level = level
+        self.quality = self.Quality.LOW
+        self.cameras = [CameraTypes.FRONT]
+        self.weather_id = [1]
+        self.verbose = True
+        self.episode_max_time = 100000  # miliseconds for each episode
+        self.allow_braking = False
+        self.separate_actions_for_throttle_and_brake = False
+        self.num_speedup_steps = 30
+        self.max_speed = 35.0  # km/h
+        self.default_input_filter = CarlaInputFilter
+        self.default_output_filter = CarlaOutputFilter
+
+    @property
+    def path(self):
+        return 'rl_coach.environments.carla_environment:CarlaEnvironment'
+
+
+
[docs]class CarlaEnvironment(Environment): + def __init__(self, level: LevelSelection, + seed: int, frame_skip: int, human_control: bool, custom_reward_threshold: Union[int, float], + visualization_parameters: VisualizationParameters, + server_height: int, server_width: int, camera_height: int, camera_width: int, + verbose: bool, experiment_suite: ExperimentSuite, config: str, episode_max_time: int, + allow_braking: bool, quality: CarlaEnvironmentParameters.Quality, + cameras: List[CameraTypes], weather_id: List[int], experiment_path: str, + separate_actions_for_throttle_and_brake: bool, + num_speedup_steps: int, max_speed: float, target_success_rate: float = 1.0, **kwargs): + super().__init__(level, seed, frame_skip, human_control, custom_reward_threshold, visualization_parameters, target_success_rate) + + # server configuration + self.server_height = server_height + self.server_width = server_width + self.port = get_open_port() + self.host = 'localhost' + self.map_name = CarlaLevel[level.upper()].value['map_name'] + self.map_path = CarlaLevel[level.upper()].value['map_path'] + self.experiment_path = experiment_path + + # client configuration + self.verbose = verbose + self.quality = quality + self.cameras = cameras + self.weather_id = weather_id + self.episode_max_time = episode_max_time + self.allow_braking = allow_braking + self.separate_actions_for_throttle_and_brake = separate_actions_for_throttle_and_brake + self.camera_width = camera_width + self.camera_height = camera_height + + # setup server settings + self.experiment_suite = experiment_suite + self.config = config + if self.config: + # load settings from file + with open(self.config, 'r') as fp: + self.settings = fp.read() + else: + # hard coded settings + self.settings = CarlaSettings() + self.settings.set( + SynchronousMode=True, + SendNonPlayerAgentsInfo=False, + NumberOfVehicles=15, + NumberOfPedestrians=30, + WeatherId=random.choice(force_list(self.weather_id)), + QualityLevel=self.quality.value, + SeedVehicles=seed, + SeedPedestrians=seed) + if seed is None: + self.settings.randomize_seeds() + + self.settings = self._add_cameras(self.settings, self.cameras, self.camera_width, self.camera_height) + + # open the server + self.server = self._open_server() + + logging.disable(40) + + # open the client + self.game = CarlaClient(self.host, self.port, timeout=99999999) + self.game.connect() + if self.experiment_suite: + self.current_experiment_idx = 0 + self.current_experiment = self.experiment_suite.get_experiments()[self.current_experiment_idx] + self.scene = self.game.load_settings(self.current_experiment.conditions) + else: + self.scene = self.game.load_settings(self.settings) + + # get available start positions + self.positions = self.scene.player_start_spots + self.num_positions = len(self.positions) + self.current_start_position_idx = 0 + self.current_pose = 0 + + # state space + self.state_space = StateSpace({ + "measurements": VectorObservationSpace(4, measurements_names=["forward_speed", "x", "y", "z"]) + }) + for camera in self.scene.sensors: + self.state_space[camera.name] = ImageObservationSpace( + shape=np.array([self.camera_height, self.camera_width, 3]), + high=255) + + # action space + if self.separate_actions_for_throttle_and_brake: + self.action_space = BoxActionSpace(shape=3, low=np.array([-1, 0, 0]), high=np.array([1, 1, 1]), + descriptions=["steer", "gas", "brake"]) + else: + self.action_space = BoxActionSpace(shape=2, low=np.array([-1, -1]), high=np.array([1, 1]), + descriptions=["steer", "gas_and_brake"]) + + # human control + if self.human_control: + # convert continuous action space to discrete + self.steering_strength = 0.5 + self.gas_strength = 1.0 + self.brake_strength = 0.5 + # TODO: reverse order of actions + self.action_space = PartialDiscreteActionSpaceMap( + target_actions=[[0., 0.], + [0., -self.steering_strength], + [0., self.steering_strength], + [self.gas_strength, 0.], + [-self.brake_strength, 0], + [self.gas_strength, -self.steering_strength], + [self.gas_strength, self.steering_strength], + [self.brake_strength, -self.steering_strength], + [self.brake_strength, self.steering_strength]], + descriptions=['NO-OP', 'TURN_LEFT', 'TURN_RIGHT', 'GAS', 'BRAKE', + 'GAS_AND_TURN_LEFT', 'GAS_AND_TURN_RIGHT', + 'BRAKE_AND_TURN_LEFT', 'BRAKE_AND_TURN_RIGHT'] + ) + + # map keyboard keys to actions + for idx, action in enumerate(self.action_space.descriptions): + for key in key_map.keys(): + if action == key: + self.key_to_action[key_map[key]] = idx + + self.num_speedup_steps = num_speedup_steps + self.max_speed = max_speed + + # measurements + self.autopilot = None + self.planner = Planner(self.map_name) + + # env initialization + self.reset_internal_state(True) + + # render + if self.is_rendered: + image = self.get_rendered_image() + self.renderer.create_screen(image.shape[1], image.shape[0]) + + self.target_success_rate = target_success_rate + + def _add_cameras(self, settings, cameras, camera_width, camera_height): + # add a front facing camera + if CameraTypes.FRONT in cameras: + camera = Camera(CameraTypes.FRONT.value) + camera.set(FOV=100) + camera.set_image_size(camera_width, camera_height) + camera.set_position(2.0, 0, 1.4) + camera.set_rotation(-15.0, 0, 0) + settings.add_sensor(camera) + + # add a left facing camera + if CameraTypes.LEFT in cameras: + camera = Camera(CameraTypes.LEFT.value) + camera.set(FOV=100) + camera.set_image_size(camera_width, camera_height) + camera.set_position(2.0, 0, 1.4) + camera.set_rotation(-15.0, -30, 0) + settings.add_sensor(camera) + + # add a right facing camera + if CameraTypes.RIGHT in cameras: + camera = Camera(CameraTypes.RIGHT.value) + camera.set(FOV=100) + camera.set_image_size(camera_width, camera_height) + camera.set_position(2.0, 0, 1.4) + camera.set_rotation(-15.0, 30, 0) + settings.add_sensor(camera) + + # add a front facing depth camera + if CameraTypes.DEPTH in cameras: + camera = Camera(CameraTypes.DEPTH.value) + camera.set_image_size(camera_width, camera_height) + camera.set_position(0.2, 0, 1.3) + camera.set_rotation(8, 30, 0) + camera.PostProcessing = 'Depth' + settings.add_sensor(camera) + + # add a front facing semantic segmentation camera + if CameraTypes.SEGMENTATION in cameras: + camera = Camera(CameraTypes.SEGMENTATION.value) + camera.set_image_size(camera_width, camera_height) + camera.set_position(0.2, 0, 1.3) + camera.set_rotation(8, 30, 0) + camera.PostProcessing = 'SemanticSegmentation' + settings.add_sensor(camera) + + return settings + + def _get_directions(self, current_point, end_point): + """ + Class that should return the directions to reach a certain goal + """ + + directions = self.planner.get_next_command( + (current_point.location.x, + current_point.location.y, 0.22), + (current_point.orientation.x, + current_point.orientation.y, + current_point.orientation.z), + (end_point.location.x, end_point.location.y, 0.22), + (end_point.orientation.x, end_point.orientation.y, end_point.orientation.z)) + return directions + + def _open_server(self): + log_path = path.join(self.experiment_path if self.experiment_path is not None else '.', 'logs', + "CARLA_LOG_{}.txt".format(self.port)) + if not os.path.exists(os.path.dirname(log_path)): + os.makedirs(os.path.dirname(log_path)) + with open(log_path, "wb") as out: + cmd = [path.join(environ.get('CARLA_ROOT'), 'CarlaUE4.sh'), self.map_path, + "-benchmark", "-carla-server", "-fps={}".format(30 / self.frame_skip), + "-world-port={}".format(self.port), + "-windowed -ResX={} -ResY={}".format(self.server_width, self.server_height), + "-carla-no-hud"] + + if self.config: + cmd.append("-carla-settings={}".format(self.config)) + p = subprocess.Popen(cmd, stdout=out, stderr=out) + + return p + + def _close_server(self): + os.killpg(os.getpgid(self.server.pid), signal.SIGKILL) + + def _update_state(self): + # get measurements and observations + measurements = [] + while type(measurements) == list: + measurements, sensor_data = self.game.read_data() + self.state = {} + + for camera in self.scene.sensors: + self.state[camera.name] = sensor_data[camera.name].data + + self.location = [measurements.player_measurements.transform.location.x, + measurements.player_measurements.transform.location.y, + measurements.player_measurements.transform.location.z] + + self.distance_from_goal = np.linalg.norm(np.array(self.location[:2]) - + [self.current_goal.location.x, self.current_goal.location.y]) + + is_collision = measurements.player_measurements.collision_vehicles != 0 \ + or measurements.player_measurements.collision_pedestrians != 0 \ + or measurements.player_measurements.collision_other != 0 + + speed_reward = measurements.player_measurements.forward_speed - 1 + if speed_reward > 30.: + speed_reward = 30. + self.reward = speed_reward \ + - (measurements.player_measurements.intersection_otherlane * 5) \ + - (measurements.player_measurements.intersection_offroad * 5) \ + - is_collision * 100 \ + - np.abs(self.control.steer) * 10 + + # update measurements + self.measurements = [measurements.player_measurements.forward_speed] + self.location + self.autopilot = measurements.player_measurements.autopilot_control + + # The directions to reach the goal (0 Follow lane, 1 Left, 2 Right, 3 Straight) + directions = int(self._get_directions(measurements.player_measurements.transform, self.current_goal) - 2) + self.state['high_level_command'] = directions + + if (measurements.game_timestamp >= self.episode_max_time) or is_collision: + self.done = True + + self.state['measurements'] = np.array(self.measurements) + + def _take_action(self, action): + self.control = VehicleControl() + + if self.separate_actions_for_throttle_and_brake: + self.control.steer = np.clip(action[0], -1, 1) + self.control.throttle = np.clip(action[1], 0, 1) + self.control.brake = np.clip(action[2], 0, 1) + else: + # transform the 2 value action (steer, throttle - brake) into a 3 value action (steer, throttle, brake) + self.control.steer = np.clip(action[0], -1, 1) + self.control.throttle = np.clip(action[1], 0, 1) + self.control.brake = np.abs(np.clip(action[1], -1, 0)) + + # prevent braking + if not self.allow_braking or self.control.brake < 0.1 or self.control.throttle > self.control.brake: + self.control.brake = 0 + + # prevent over speeding + if hasattr(self, 'measurements') and self.measurements[0] * 3.6 > self.max_speed and self.control.brake == 0: + self.control.throttle = 0.0 + + self.control.hand_brake = False + self.control.reverse = False + + self.game.send_control(self.control) + + def _load_experiment(self, experiment_idx): + self.current_experiment = self.experiment_suite.get_experiments()[experiment_idx] + self.scene = self.game.load_settings(self.current_experiment.conditions) + self.positions = self.scene.player_start_spots + self.num_positions = len(self.positions) + self.current_start_position_idx = 0 + self.current_pose = 0 + + def _restart_environment_episode(self, force_environment_reset=False): + # select start and end positions + if self.experiment_suite: + # if an expeirent suite is available, follow its given poses + if self.current_pose >= len(self.current_experiment.poses): + # load a new experiment + self.current_experiment_idx = (self.current_experiment_idx + 1) % len(self.experiment_suite.get_experiments()) + self._load_experiment(self.current_experiment_idx) + + self.current_start_position_idx = self.current_experiment.poses[self.current_pose][0] + self.current_goal = self.positions[self.current_experiment.poses[self.current_pose][1]] + self.current_pose += 1 + else: + # go over all the possible positions in a cyclic manner + self.current_start_position_idx = (self.current_start_position_idx + 1) % self.num_positions + + # choose a random goal destination + self.current_goal = random.choice(self.positions) + + try: + self.game.start_episode(self.current_start_position_idx) + except: + self.game.connect() + self.game.start_episode(self.current_start_position_idx) + + # start the game with some initial speed + for i in range(self.num_speedup_steps): + self.control = VehicleControl(throttle=1.0, brake=0, steer=0, hand_brake=False, reverse=False) + self.game.send_control(VehicleControl()) + + def get_rendered_image(self) -> np.ndarray: + """ + Return a numpy array containing the image that will be rendered to the screen. + This can be different from the observation. For example, mujoco's observation is a measurements vector. + :return: numpy array containing the image that will be rendered to the screen + """ + image = [self.state[camera.name] for camera in self.scene.sensors] + image = np.vstack(image) + return image + + def get_target_success_rate(self) -> float: + return self.target_success_rate
+
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/environments/control_suite_environment.html b/docs/_modules/rl_coach/environments/control_suite_environment.html new file mode 100644 index 0000000..a43cb1d --- /dev/null +++ b/docs/_modules/rl_coach/environments/control_suite_environment.html @@ -0,0 +1,426 @@ + + + + + + + + + + + rl_coach.environments.control_suite_environment — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.environments.control_suite_environment
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.environments.control_suite_environment

+#
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+
+
+import random
+from enum import Enum
+from typing import Union
+
+import numpy as np
+
+try:
+    from dm_control import suite
+    from dm_control.suite.wrappers import pixels
+except ImportError:
+    from rl_coach.logger import failed_imports
+    failed_imports.append("DeepMind Control Suite")
+
+from rl_coach.base_parameters import VisualizationParameters
+from rl_coach.environments.environment import Environment, EnvironmentParameters, LevelSelection
+from rl_coach.filters.filter import NoInputFilter, NoOutputFilter
+from rl_coach.spaces import BoxActionSpace, ImageObservationSpace, VectorObservationSpace, StateSpace
+
+
+class ObservationType(Enum):
+    Measurements = 1
+    Image = 2
+    Image_and_Measurements = 3
+
+
+# Parameters
+class ControlSuiteEnvironmentParameters(EnvironmentParameters):
+    def __init__(self, level=None):
+        super().__init__(level=level)
+        self.observation_type = ObservationType.Measurements
+        self.default_input_filter = ControlSuiteInputFilter
+        self.default_output_filter = ControlSuiteOutputFilter
+
+    @property
+    def path(self):
+        return 'rl_coach.environments.control_suite_environment:ControlSuiteEnvironment'
+
+
+"""
+ControlSuite Environment Components
+"""
+ControlSuiteInputFilter = NoInputFilter()
+ControlSuiteOutputFilter = NoOutputFilter()
+
+control_suite_envs = {':'.join(env): ':'.join(env) for env in suite.BENCHMARKING}
+
+
+# Environment
+
[docs]class ControlSuiteEnvironment(Environment): + def __init__(self, level: LevelSelection, frame_skip: int, visualization_parameters: VisualizationParameters, + target_success_rate: float=1.0, seed: Union[None, int]=None, human_control: bool=False, + observation_type: ObservationType=ObservationType.Measurements, + custom_reward_threshold: Union[int, float]=None, **kwargs): + """ + :param level: (str) + A string representing the control suite level to run. This can also be a LevelSelection object. + For example, cartpole:swingup. + + :param frame_skip: (int) + The number of frames to skip between any two actions given by the agent. The action will be repeated + for all the skipped frames. + + :param visualization_parameters: (VisualizationParameters) + The parameters used for visualizing the environment, such as the render flag, storing videos etc. + + :param target_success_rate: (float) + Stop experiment if given target success rate was achieved. + + :param seed: (int) + A seed to use for the random number generator when running the environment. + + :param human_control: (bool) + A flag that allows controlling the environment using the keyboard keys. + + :param observation_type: (ObservationType) + An enum which defines which observation to use. The current options are to use: + * Measurements only - a vector of joint torques and similar measurements + * Image only - an image of the environment as seen by a camera attached to the simulator + * Measurements & Image - both type of observations will be returned in the state using the keys + 'measurements' and 'pixels' respectively. + + :param custom_reward_threshold: (float) + Allows defining a custom reward that will be used to decide when the agent succeeded in passing the environment. + + """ + super().__init__(level, seed, frame_skip, human_control, custom_reward_threshold, visualization_parameters, target_success_rate) + + self.observation_type = observation_type + + # load and initialize environment + domain_name, task_name = self.env_id.split(":") + self.env = suite.load(domain_name=domain_name, task_name=task_name, task_kwargs={'random': seed}) + + if observation_type != ObservationType.Measurements: + self.env = pixels.Wrapper(self.env, pixels_only=observation_type == ObservationType.Image) + + # seed + if self.seed is not None: + np.random.seed(self.seed) + random.seed(self.seed) + + self.state_space = StateSpace({}) + + # image observations + if observation_type != ObservationType.Measurements: + self.state_space['pixels'] = ImageObservationSpace(shape=self.env.observation_spec()['pixels'].shape, + high=255) + + # measurements observations + if observation_type != ObservationType.Image: + measurements_space_size = 0 + measurements_names = [] + for observation_space_name, observation_space in self.env.observation_spec().items(): + if len(observation_space.shape) == 0: + measurements_space_size += 1 + measurements_names.append(observation_space_name) + elif len(observation_space.shape) == 1: + measurements_space_size += observation_space.shape[0] + measurements_names.extend(["{}_{}".format(observation_space_name, i) for i in + range(observation_space.shape[0])]) + self.state_space['measurements'] = VectorObservationSpace(shape=measurements_space_size, + measurements_names=measurements_names) + + # actions + self.action_space = BoxActionSpace( + shape=self.env.action_spec().shape[0], + low=self.env.action_spec().minimum, + high=self.env.action_spec().maximum + ) + + # initialize the state by getting a new state from the environment + self.reset_internal_state(True) + + # render + if self.is_rendered: + image = self.get_rendered_image() + scale = 1 + if self.human_control: + scale = 2 + if not self.native_rendering: + self.renderer.create_screen(image.shape[1]*scale, image.shape[0]*scale) + + self.target_success_rate = target_success_rate + + def _update_state(self): + self.state = {} + + if self.observation_type != ObservationType.Measurements: + self.pixels = self.last_result.observation['pixels'] + self.state['pixels'] = self.pixels + + if self.observation_type != ObservationType.Image: + self.measurements = np.array([]) + for sub_observation in self.last_result.observation.values(): + if isinstance(sub_observation, np.ndarray) and len(sub_observation.shape) == 1: + self.measurements = np.concatenate((self.measurements, sub_observation)) + else: + self.measurements = np.concatenate((self.measurements, np.array([sub_observation]))) + self.state['measurements'] = self.measurements + + self.reward = self.last_result.reward if self.last_result.reward is not None else 0 + + self.done = self.last_result.last() + + def _take_action(self, action): + if type(self.action_space) == BoxActionSpace: + action = self.action_space.clip_action_to_space(action) + + self.last_result = self.env.step(action) + + def _restart_environment_episode(self, force_environment_reset=False): + self.last_result = self.env.reset() + + def _render(self): + pass + + def get_rendered_image(self): + return self.env.physics.render(camera_id=0) + + def get_target_success_rate(self) -> float: + return self.target_success_rate
+
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/environments/doom_environment.html b/docs/_modules/rl_coach/environments/doom_environment.html new file mode 100644 index 0000000..a71d746 --- /dev/null +++ b/docs/_modules/rl_coach/environments/doom_environment.html @@ -0,0 +1,495 @@ + + + + + + + + + + + rl_coach.environments.doom_environment — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.environments.doom_environment
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.environments.doom_environment

+#
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+try:
+    import vizdoom
+except ImportError:
+    from rl_coach.logger import failed_imports
+    failed_imports.append("ViZDoom")
+
+import os
+from enum import Enum
+from os import path, environ
+from typing import Union, List
+
+import numpy as np
+
+from rl_coach.base_parameters import VisualizationParameters
+from rl_coach.environments.environment import Environment, EnvironmentParameters, LevelSelection
+from rl_coach.filters.action.full_discrete_action_space_map import FullDiscreteActionSpaceMap
+from rl_coach.filters.filter import InputFilter, OutputFilter
+from rl_coach.filters.observation.observation_rescale_to_size_filter import ObservationRescaleToSizeFilter
+from rl_coach.filters.observation.observation_rgb_to_y_filter import ObservationRGBToYFilter
+from rl_coach.filters.observation.observation_stacking_filter import ObservationStackingFilter
+from rl_coach.filters.observation.observation_to_uint8_filter import ObservationToUInt8Filter
+from rl_coach.spaces import MultiSelectActionSpace, ImageObservationSpace, \
+    VectorObservationSpace, StateSpace
+
+
+# enum of the available levels and their path
+class DoomLevel(Enum):
+    BASIC = "basic.cfg"
+    DEFEND = "defend_the_center.cfg"
+    DEATHMATCH = "deathmatch.cfg"
+    MY_WAY_HOME = "my_way_home.cfg"
+    TAKE_COVER = "take_cover.cfg"
+    HEALTH_GATHERING = "health_gathering.cfg"
+    HEALTH_GATHERING_SUPREME_COACH_LOCAL = "D2_navigation.cfg"  # from https://github.com/IntelVCL/DirectFuturePrediction/tree/master/maps
+    DEFEND_THE_LINE = "defend_the_line.cfg"
+    DEADLY_CORRIDOR = "deadly_corridor.cfg"
+    BATTLE_COACH_LOCAL = "D3_battle.cfg"  # from https://github.com/IntelVCL/DirectFuturePrediction/tree/master/maps
+
+key_map = {
+    'NO-OP': 96,  # `
+    'ATTACK': 13,  # enter
+    'CROUCH': 306,  # ctrl
+    'DROP_SELECTED_ITEM': ord("t"),
+    'DROP_SELECTED_WEAPON': ord("t"),
+    'JUMP': 32,  # spacebar
+    'LAND': ord("l"),
+    'LOOK_DOWN': 274,  # down arrow
+    'LOOK_UP': 273,  # up arrow
+    'MOVE_BACKWARD': ord("s"),
+    'MOVE_DOWN': ord("s"),
+    'MOVE_FORWARD': ord("w"),
+    'MOVE_LEFT': 276,
+    'MOVE_RIGHT': 275,
+    'MOVE_UP': ord("w"),
+    'RELOAD': ord("r"),
+    'SELECT_NEXT_WEAPON': ord("q"),
+    'SELECT_PREV_WEAPON': ord("e"),
+    'SELECT_WEAPON0': ord("0"),
+    'SELECT_WEAPON1': ord("1"),
+    'SELECT_WEAPON2': ord("2"),
+    'SELECT_WEAPON3': ord("3"),
+    'SELECT_WEAPON4': ord("4"),
+    'SELECT_WEAPON5': ord("5"),
+    'SELECT_WEAPON6': ord("6"),
+    'SELECT_WEAPON7': ord("7"),
+    'SELECT_WEAPON8': ord("8"),
+    'SELECT_WEAPON9': ord("9"),
+    'SPEED': 304,  # shift
+    'STRAFE': 9,  # tab
+    'TURN180': ord("u"),
+    'TURN_LEFT': ord("a"),  # left arrow
+    'TURN_RIGHT': ord("d"),  # right arrow
+    'USE': ord("f"),
+}
+
+
+DoomInputFilter = InputFilter(is_a_reference_filter=True)
+DoomInputFilter.add_observation_filter('observation', 'rescaling',
+                                       ObservationRescaleToSizeFilter(ImageObservationSpace(np.array([60, 76, 3]),
+                                                                                            high=255)))
+DoomInputFilter.add_observation_filter('observation', 'to_grayscale', ObservationRGBToYFilter())
+DoomInputFilter.add_observation_filter('observation', 'to_uint8', ObservationToUInt8Filter(0, 255))
+DoomInputFilter.add_observation_filter('observation', 'stacking', ObservationStackingFilter(3))
+
+
+DoomOutputFilter = OutputFilter(is_a_reference_filter=True)
+DoomOutputFilter.add_action_filter('to_discrete', FullDiscreteActionSpaceMap())
+
+
+class DoomEnvironmentParameters(EnvironmentParameters):
+    def __init__(self, level=None):
+        super().__init__(level=level)
+        self.default_input_filter = DoomInputFilter
+        self.default_output_filter = DoomOutputFilter
+        self.cameras = [DoomEnvironment.CameraTypes.OBSERVATION]
+
+    @property
+    def path(self):
+        return 'rl_coach.environments.doom_environment:DoomEnvironment'
+
+
+
[docs]class DoomEnvironment(Environment): + class CameraTypes(Enum): + OBSERVATION = ("observation", "screen_buffer") + DEPTH = ("depth", "depth_buffer") + LABELS = ("labels", "labels_buffer") + MAP = ("map", "automap_buffer") + + def __init__(self, level: LevelSelection, seed: int, frame_skip: int, human_control: bool, + custom_reward_threshold: Union[int, float], visualization_parameters: VisualizationParameters, + cameras: List[CameraTypes], target_success_rate: float=1.0, **kwargs): + """ + :param level: (str) + A string representing the doom level to run. This can also be a LevelSelection object. + This should be one of the levels defined in the DoomLevel enum. For example, HEALTH_GATHERING. + + :param seed: (int) + A seed to use for the random number generator when running the environment. + + :param frame_skip: (int) + The number of frames to skip between any two actions given by the agent. The action will be repeated + for all the skipped frames. + + :param human_control: (bool) + A flag that allows controlling the environment using the keyboard keys. + + :param custom_reward_threshold: (float) + Allows defining a custom reward that will be used to decide when the agent succeeded in passing the environment. + + :param visualization_parameters: (VisualizationParameters) + The parameters used for visualizing the environment, such as the render flag, storing videos etc. + + :param cameras: (List[CameraTypes]) + A list of camera types to use as observation in the state returned from the environment. + Each camera should be an enum from CameraTypes, and there are several options like an RGB observation, + a depth map, a segmentation map, and a top down map of the enviornment. + + :param target_success_rate: (float) + Stop experiment if given target success rate was achieved. + + """ + super().__init__(level, seed, frame_skip, human_control, custom_reward_threshold, visualization_parameters, target_success_rate) + + self.cameras = cameras + + # load the emulator with the required level + self.level = DoomLevel[level.upper()] + local_scenarios_path = path.join(os.path.dirname(os.path.realpath(__file__)), 'doom') + if 'COACH_LOCAL' in level: + self.scenarios_dir = local_scenarios_path + elif 'VIZDOOM_ROOT' in environ: + self.scenarios_dir = path.join(environ.get('VIZDOOM_ROOT'), 'scenarios') + else: + self.scenarios_dir = path.join(os.path.dirname(os.path.realpath(vizdoom.__file__)), 'scenarios') + + self.game = vizdoom.DoomGame() + self.game.load_config(path.join(self.scenarios_dir, self.level.value)) + self.game.set_window_visible(False) + self.game.add_game_args("+vid_forcesurface 1") + + self.wait_for_explicit_human_action = True + if self.human_control: + self.game.set_screen_resolution(vizdoom.ScreenResolution.RES_640X480) + elif self.is_rendered: + self.game.set_screen_resolution(vizdoom.ScreenResolution.RES_320X240) + else: + # lower resolution since we actually take only 76x60 and we don't need to render + self.game.set_screen_resolution(vizdoom.ScreenResolution.RES_160X120) + + self.game.set_render_hud(False) + self.game.set_render_crosshair(False) + self.game.set_render_decals(False) + self.game.set_render_particles(False) + for camera in self.cameras: + if hasattr(self.game, 'set_{}_enabled'.format(camera.value[1])): + getattr(self.game, 'set_{}_enabled'.format(camera.value[1]))(True) + self.game.init() + + # actions + actions_description = ['NO-OP'] + actions_description += [str(action).split(".")[1] for action in self.game.get_available_buttons()] + actions_description = actions_description[::-1] + self.action_space = MultiSelectActionSpace(self.game.get_available_buttons_size(), + max_simultaneous_selected_actions=1, + descriptions=actions_description, + allow_no_action_to_be_selected=True) + + # human control + if self.human_control: + # TODO: add this to the action space + # map keyboard keys to actions + for idx, action in enumerate(self.action_space.descriptions): + if action in key_map.keys(): + self.key_to_action[(key_map[action],)] = idx + + # states + self.state_space = StateSpace({ + "measurements": VectorObservationSpace(self.game.get_state().game_variables.shape[0], + measurements_names=[str(m) for m in + self.game.get_available_game_variables()]) + }) + for camera in self.cameras: + self.state_space[camera.value[0]] = ImageObservationSpace( + shape=np.array([self.game.get_screen_height(), self.game.get_screen_width(), 3]), + high=255) + + # seed + if seed is not None: + self.game.set_seed(seed) + self.reset_internal_state() + + # render + if self.is_rendered: + image = self.get_rendered_image() + self.renderer.create_screen(image.shape[1], image.shape[0]) + + self.target_success_rate = target_success_rate + + def _update_state(self): + # extract all data from the current state + state = self.game.get_state() + if state is not None and state.screen_buffer is not None: + self.measurements = state.game_variables + self.state = {'measurements': self.measurements} + for camera in self.cameras: + observation = getattr(state, camera.value[1]) + if len(observation.shape) == 3: + self.state[camera.value[0]] = np.transpose(observation, (1, 2, 0)) + elif len(observation.shape) == 2: + self.state[camera.value[0]] = np.repeat(np.expand_dims(observation, -1), 3, axis=-1) + + self.reward = self.game.get_last_reward() + self.done = self.game.is_episode_finished() + + def _take_action(self, action): + self.game.make_action(list(action), self.frame_skip) + + def _restart_environment_episode(self, force_environment_reset=False): + self.game.new_episode() + + def get_rendered_image(self) -> np.ndarray: + """ + Return a numpy array containing the image that will be rendered to the screen. + This can be different from the observation. For example, mujoco's observation is a measurements vector. + :return: numpy array containing the image that will be rendered to the screen + """ + image = [self.state[camera.value[0]] for camera in self.cameras] + image = np.vstack(image) + return image + + def get_target_success_rate(self) -> float: + return self.target_success_rate
+
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/environments/environment.html b/docs/_modules/rl_coach/environments/environment.html new file mode 100644 index 0000000..3f30f9f --- /dev/null +++ b/docs/_modules/rl_coach/environments/environment.html @@ -0,0 +1,721 @@ + + + + + + + + + + + rl_coach.environments.environment — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.environments.environment
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.environments.environment

+#
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+import operator
+import time
+from collections import OrderedDict
+from typing import Union, List, Tuple, Dict
+
+import numpy as np
+
+from rl_coach import logger
+from rl_coach.base_parameters import Parameters
+from rl_coach.base_parameters import VisualizationParameters
+from rl_coach.core_types import GoalType, ActionType, EnvResponse, RunPhase
+from rl_coach.environments.environment_interface import EnvironmentInterface
+from rl_coach.logger import screen
+from rl_coach.renderer import Renderer
+from rl_coach.spaces import ActionSpace, ObservationSpace, DiscreteActionSpace, RewardSpace, StateSpace
+from rl_coach.utils import squeeze_list, force_list
+
+
+class LevelSelection(object):
+    def __init__(self, level: str):
+        self.selected_level = level
+
+    def select(self, level: str):
+        self.selected_level = level
+
+    def __str__(self):
+        if self.selected_level is None:
+            logger.screen.error("No level has been selected. Please select a level using the -lvl command line flag, "
+                                "or change the level in the preset.", crash=True)
+        return self.selected_level
+
+
+class SingleLevelSelection(LevelSelection):
+    def __init__(self, levels: Union[str, List[str], Dict[str, str]]):
+        super().__init__(None)
+        self.levels = levels
+        if isinstance(levels, list):
+            self.levels = {level: level for level in levels}
+        if isinstance(levels, str):
+            self.levels = {levels: levels}
+
+    def __str__(self):
+        if self.selected_level is None:
+            logger.screen.error("No level has been selected. Please select a level using the -lvl command line flag, "
+                                "or change the level in the preset. \nThe available levels are: \n{}"
+                                .format(', '.join(sorted(self.levels.keys()))), crash=True)
+        if self.selected_level not in self.levels.keys():
+            logger.screen.error("The selected level ({}) is not part of the available levels ({})"
+                                .format(self.selected_level, ', '.join(self.levels.keys())), crash=True)
+        return self.levels[self.selected_level]
+
+
+# class SingleLevelPerPhase(LevelSelection):
+#     def __init__(self, levels: Dict[RunPhase, str]):
+#         super().__init__(None)
+#         self.levels = levels
+#
+#     def __str__(self):
+#         super().__str__()
+#         if self.selected_level not in self.levels.keys():
+#             logger.screen.error("The selected level ({}) is not part of the available levels ({})"
+#                                 .format(self.selected_level, self.levels.keys()), crash=True)
+#         return self.levels[self.selected_level]
+
+
+class CustomWrapper(object):
+    def __init__(self, environment):
+        super().__init__()
+        self.environment = environment
+
+    def __getattr__(self, attr):
+        if attr in self.__dict__:
+            return self.__dict__[attr]
+        else:
+            return getattr(self.environment, attr, False)
+
+
+class EnvironmentParameters(Parameters):
+    def __init__(self, level=None):
+        super().__init__()
+        self.level = level
+        self.frame_skip = 4
+        self.seed = None
+        self.human_control = False
+        self.custom_reward_threshold = None
+        self.default_input_filter = None
+        self.default_output_filter = None
+        self.experiment_path = None
+
+        # Set target reward and target_success if present
+        self.target_success_rate = 1.0
+
+    @property
+    def path(self):
+        return 'rl_coach.environments.environment:Environment'
+
+
+
[docs]class Environment(EnvironmentInterface): + def __init__(self, level: LevelSelection, seed: int, frame_skip: int, human_control: bool, + custom_reward_threshold: Union[int, float], visualization_parameters: VisualizationParameters, + target_success_rate: float=1.0, **kwargs): + """ + :param level: The environment level. Each environment can have multiple levels + :param seed: a seed for the random number generator of the environment + :param frame_skip: number of frames to skip (while repeating the same action) between each two agent directives + :param human_control: human should control the environment + :param visualization_parameters: a blob of parameters used for visualization of the environment + :param **kwargs: as the class is instantiated by EnvironmentParameters, this is used to support having + additional arguments which will be ignored by this class, but might be used by others + """ + super().__init__() + + # env initialization + + self.game = [] + + self.state = {} + self.observation = None + self.goal = None + self.reward = 0 + self.done = False + self.info = {} + self._last_env_response = None + self.last_action = 0 + self.episode_idx = 0 + self.total_steps_counter = 0 + self.current_episode_steps_counter = 0 + self.last_episode_time = time.time() + self.key_to_action = {} + self.last_episode_images = [] + + # rewards + self.total_reward_in_current_episode = 0 + self.max_reward_achieved = -np.inf + self.reward_success_threshold = custom_reward_threshold + + # spaces + self.state_space = self._state_space = None + self.goal_space = self._goal_space = None + self.action_space = self._action_space = None + self.reward_space = RewardSpace(1, reward_success_threshold=self.reward_success_threshold) # TODO: add a getter and setter + + self.env_id = str(level) + self.seed = seed + self.frame_skip = frame_skip + + # human interaction and visualization + self.human_control = human_control + self.wait_for_explicit_human_action = False + self.is_rendered = visualization_parameters.render or self.human_control + self.native_rendering = visualization_parameters.native_rendering and not self.human_control + self.visualization_parameters = visualization_parameters + if not self.native_rendering: + self.renderer = Renderer() + + # Set target reward and target_success if present + self.target_success_rate = target_success_rate + + @property + def action_space(self) -> Union[List[ActionSpace], ActionSpace]: + """ + Get the action space of the environment + + :return: the action space + """ + return self._action_space + + @action_space.setter + def action_space(self, val: Union[List[ActionSpace], ActionSpace]): + """ + Set the action space of the environment + + :return: None + """ + self._action_space = val + + @property + def state_space(self) -> Union[List[StateSpace], StateSpace]: + """ + Get the state space of the environment + + :return: the observation space + """ + return self._state_space + + @state_space.setter + def state_space(self, val: Union[List[StateSpace], StateSpace]): + """ + Set the state space of the environment + + :return: None + """ + self._state_space = val + + @property + def goal_space(self) -> Union[List[ObservationSpace], ObservationSpace]: + """ + Get the state space of the environment + + :return: the observation space + """ + return self._goal_space + + @goal_space.setter + def goal_space(self, val: Union[List[ObservationSpace], ObservationSpace]): + """ + Set the goal space of the environment + + :return: None + """ + self._goal_space = val + +
[docs] def get_action_from_user(self) -> ActionType: + """ + Get an action from the user keyboard + + :return: action index + """ + if self.wait_for_explicit_human_action: + while len(self.renderer.pressed_keys) == 0: + self.renderer.get_events() + + if self.key_to_action == {}: + # the keys are the numbers on the keyboard corresponding to the action index + if len(self.renderer.pressed_keys) > 0: + action_idx = self.renderer.pressed_keys[0] - ord("1") + if 0 <= action_idx < self.action_space.shape[0]: + return action_idx + else: + # the keys are mapped through the environment to more intuitive keyboard keys + # key = tuple(self.renderer.pressed_keys) + # for key in self.renderer.pressed_keys: + for env_keys in self.key_to_action.keys(): + if set(env_keys) == set(self.renderer.pressed_keys): + return self.action_space.actions[self.key_to_action[env_keys]] + + # return the default action 0 so that the environment will continue running + return self.action_space.default_action
+ + @property + def last_env_response(self) -> Union[List[EnvResponse], EnvResponse]: + """ + Get the last environment response + + :return: a dictionary that contains the state, reward, etc. + """ + return squeeze_list(self._last_env_response) + + @last_env_response.setter + def last_env_response(self, val: Union[List[EnvResponse], EnvResponse]): + """ + Set the last environment response + + :param val: the last environment response + """ + self._last_env_response = force_list(val) + +
[docs] def step(self, action: ActionType) -> EnvResponse: + """ + Make a single step in the environment using the given action + + :param action: an action to use for stepping the environment. Should follow the definition of the action space. + :return: the environment response as returned in get_last_env_response + """ + action = self.action_space.clip_action_to_space(action) + if self.action_space and not self.action_space.val_matches_space_definition(action): + raise ValueError("The given action does not match the action space definition. " + "Action = {}, action space definition = {}".format(action, self.action_space)) + + # store the last agent action done and allow passing None actions to repeat the previously done action + if action is None: + action = self.last_action + self.last_action = action + if self.visualization_parameters.add_rendered_image_to_env_response: + current_rendered_image = self.get_rendered_image() + + self.current_episode_steps_counter += 1 + if self.phase != RunPhase.UNDEFINED: + self.total_steps_counter += 1 + + # act + self._take_action(action) + + # observe + self._update_state() + + if self.is_rendered: + self.render() + + self.total_reward_in_current_episode += self.reward + + if self.visualization_parameters.add_rendered_image_to_env_response: + self.info['image'] = current_rendered_image + + self.last_env_response = \ + EnvResponse( + reward=self.reward, + next_state=self.state, + goal=self.goal, + game_over=self.done, + info=self.info + ) + + # store observations for video / gif dumping + if self.should_dump_video_of_the_current_episode(episode_terminated=False) and \ + (self.visualization_parameters.dump_mp4 or self.visualization_parameters.dump_gifs): + self.last_episode_images.append(self.get_rendered_image()) + + return self.last_env_response
+ +
[docs] def render(self) -> None: + """ + Call the environment function for rendering to the screen + + :return: None + """ + if self.native_rendering: + self._render() + else: + self.renderer.render_image(self.get_rendered_image())
+ +
[docs] def handle_episode_ended(self) -> None: + """ + End an episode + + :return: None + """ + self.dump_video_of_last_episode_if_needed()
+ +
[docs] def reset_internal_state(self, force_environment_reset=False) -> EnvResponse: + """ + Reset the environment and all the variable of the wrapper + + :param force_environment_reset: forces environment reset even when the game did not end + :return: A dictionary containing the observation, reward, done flag, action and measurements + """ + + self._restart_environment_episode(force_environment_reset) + self.last_episode_time = time.time() + + if self.current_episode_steps_counter > 0 and self.phase != RunPhase.UNDEFINED: + self.episode_idx += 1 + + self.done = False + self.total_reward_in_current_episode = self.reward = 0.0 + self.last_action = 0 + self.current_episode_steps_counter = 0 + self.last_episode_images = [] + self._update_state() + + # render before the preprocessing of the observation, so that the image will be in its original quality + if self.is_rendered: + self.render() + + self.last_env_response = \ + EnvResponse( + reward=self.reward, + next_state=self.state, + goal=self.goal, + game_over=self.done, + info=self.info + ) + + return self.last_env_response
+ +
[docs] def get_random_action(self) -> ActionType: + """ + Returns an action picked uniformly from the available actions + + :return: a numpy array with a random action + """ + return self.action_space.sample()
+ +
[docs] def get_available_keys(self) -> List[Tuple[str, ActionType]]: + """ + Return a list of tuples mapping between action names and the keyboard key that triggers them + + :return: a list of tuples mapping between action names and the keyboard key that triggers them + """ + available_keys = [] + if self.key_to_action != {}: + for key, idx in sorted(self.key_to_action.items(), key=operator.itemgetter(1)): + if key != (): + key_names = [self.renderer.get_key_names([k])[0] for k in key] + available_keys.append((self.action_space.descriptions[idx], ' + '.join(key_names))) + elif type(self.action_space) == DiscreteActionSpace: + for action in range(self.action_space.shape): + available_keys.append(("Action {}".format(action + 1), action + 1)) + return available_keys
+ +
[docs] def get_goal(self) -> GoalType: + """ + Get the current goal that the agents needs to achieve in the environment + + :return: The goal + """ + return self.goal
+ +
[docs] def set_goal(self, goal: GoalType) -> None: + """ + Set the current goal that the agent needs to achieve in the environment + + :param goal: the goal that needs to be achieved + :return: None + """ + self.goal = goal
+ + def should_dump_video_of_the_current_episode(self, episode_terminated=False): + if self.visualization_parameters.video_dump_filters: + for video_dump_filter in force_list(self.visualization_parameters.video_dump_filters): + if not video_dump_filter.should_dump(episode_terminated, **self.__dict__): + return False + return True + return True + + def dump_video_of_last_episode_if_needed(self): + if self.last_episode_images != [] and self.should_dump_video_of_the_current_episode(episode_terminated=True): + self.dump_video_of_last_episode() + + def dump_video_of_last_episode(self): + frame_skipping = max(1, int(5 / self.frame_skip)) + file_name = 'episode-{}_score-{}'.format(self.episode_idx, self.total_reward_in_current_episode) + fps = 10 + if self.visualization_parameters.dump_gifs: + logger.create_gif(self.last_episode_images[::frame_skipping], name=file_name, fps=fps) + if self.visualization_parameters.dump_mp4: + logger.create_mp4(self.last_episode_images[::frame_skipping], name=file_name, fps=fps) + + # The following functions define the interaction with the environment. + # Any new environment that inherits the Environment class should use these signatures. + # Some of these functions are optional - please read their description for more details. + + def _take_action(self, action_idx: ActionType) -> None: + """ + An environment dependent function that sends an action to the simulator. + + :param action_idx: the action to perform on the environment + :return: None + """ + raise NotImplementedError("") + + def _update_state(self) -> None: + """ + Updates the state from the environment. + Should update self.observation, self.reward, self.done, self.measurements and self.info + + :return: None + """ + raise NotImplementedError("") + + def _restart_environment_episode(self, force_environment_reset=False) -> None: + """ + Restarts the simulator episode + + :param force_environment_reset: Force the environment to reset even if the episode is not done yet. + :return: None + """ + raise NotImplementedError("") + + def _render(self) -> None: + """ + Renders the environment using the native simulator renderer + + :return: None + """ + pass + +
[docs] def get_rendered_image(self) -> np.ndarray: + """ + Return a numpy array containing the image that will be rendered to the screen. + This can be different from the observation. For example, mujoco's observation is a measurements vector. + + :return: numpy array containing the image that will be rendered to the screen + """ + return np.transpose(self.state['observation'], [1, 2, 0])
+ + def get_target_success_rate(self) -> float: + return self.target_success_rate
+
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/environments/gym_environment.html b/docs/_modules/rl_coach/environments/gym_environment.html new file mode 100644 index 0000000..eea80ec --- /dev/null +++ b/docs/_modules/rl_coach/environments/gym_environment.html @@ -0,0 +1,703 @@ + + + + + + + + + + + rl_coach.environments.gym_environment — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.environments.gym_environment
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.environments.gym_environment

+#
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+import gym
+import numpy as np
+import scipy.ndimage
+
+from rl_coach.graph_managers.graph_manager import ScheduleParameters
+from rl_coach.utils import lower_under_to_upper, short_dynamic_import
+
+try:
+    import roboschool
+    from OpenGL import GL
+except ImportError:
+    from rl_coach.logger import failed_imports
+    failed_imports.append("RoboSchool")
+
+try:
+    from rl_coach.gym_extensions.continuous import mujoco
+except:
+    from rl_coach.logger import failed_imports
+    failed_imports.append("GymExtensions")
+
+try:
+    import pybullet_envs
+except ImportError:
+    from rl_coach.logger import failed_imports
+    failed_imports.append("PyBullet")
+
+from typing import Dict, Any, Union
+from rl_coach.core_types import RunPhase, EnvironmentSteps
+from rl_coach.environments.environment import Environment, EnvironmentParameters, LevelSelection
+from rl_coach.spaces import DiscreteActionSpace, BoxActionSpace, ImageObservationSpace, VectorObservationSpace, \
+    StateSpace, RewardSpace
+from rl_coach.filters.filter import NoInputFilter, NoOutputFilter
+from rl_coach.filters.reward.reward_clipping_filter import RewardClippingFilter
+from rl_coach.filters.observation.observation_rescale_to_size_filter import ObservationRescaleToSizeFilter
+from rl_coach.filters.observation.observation_stacking_filter import ObservationStackingFilter
+from rl_coach.filters.observation.observation_rgb_to_y_filter import ObservationRGBToYFilter
+from rl_coach.filters.observation.observation_to_uint8_filter import ObservationToUInt8Filter
+from rl_coach.filters.filter import InputFilter
+import random
+from rl_coach.base_parameters import VisualizationParameters
+from rl_coach.logger import screen
+
+
+# Parameters
+class GymEnvironmentParameters(EnvironmentParameters):
+    def __init__(self, level=None):
+        super().__init__(level=level)
+        self.random_initialization_steps = 0
+        self.max_over_num_frames = 1
+        self.additional_simulator_parameters = {}
+
+    @property
+    def path(self):
+        return 'rl_coach.environments.gym_environment:GymEnvironment'
+
+
+# Generic parameters for vector environments such as mujoco, roboschool, bullet, etc.
+class GymVectorEnvironment(GymEnvironmentParameters):
+    def __init__(self, level=None):
+        super().__init__(level=level)
+        self.frame_skip = 1
+        self.default_input_filter = NoInputFilter()
+        self.default_output_filter = NoOutputFilter()
+
+
+# Roboschool
+gym_roboschool_envs = ['inverted_pendulum', 'inverted_pendulum_swingup', 'inverted_double_pendulum', 'reacher',
+                       'hopper', 'walker2d', 'half_cheetah', 'ant', 'humanoid', 'humanoid_flagrun',
+                       'humanoid_flagrun_harder', 'pong']
+roboschool_v0 = {e: "{}".format(lower_under_to_upper(e) + '-v0') for e in gym_roboschool_envs}
+
+# Mujoco
+gym_mujoco_envs = ['inverted_pendulum', 'inverted_double_pendulum', 'reacher', 'hopper', 'walker2d', 'half_cheetah',
+                   'ant', 'swimmer', 'humanoid', 'humanoid_standup', 'pusher', 'thrower', 'striker']
+
+mujoco_v2 = {e: "{}".format(lower_under_to_upper(e) + '-v2') for e in gym_mujoco_envs}
+mujoco_v2['walker2d'] = 'Walker2d-v2'
+
+# Fetch
+gym_fetch_envs = ['reach', 'slide', 'push', 'pick_and_place']
+fetch_v1 = {e: "{}".format('Fetch' + lower_under_to_upper(e) + '-v1') for e in gym_fetch_envs}
+
+
+"""
+Atari Environment Components
+"""
+
+AtariInputFilter = InputFilter(is_a_reference_filter=True)
+AtariInputFilter.add_reward_filter('clipping', RewardClippingFilter(-1.0, 1.0))
+AtariInputFilter.add_observation_filter('observation', 'rescaling',
+                                        ObservationRescaleToSizeFilter(ImageObservationSpace(np.array([84, 84, 3]),
+                                                                                             high=255)))
+AtariInputFilter.add_observation_filter('observation', 'to_grayscale', ObservationRGBToYFilter())
+AtariInputFilter.add_observation_filter('observation', 'to_uint8', ObservationToUInt8Filter(0, 255))
+AtariInputFilter.add_observation_filter('observation', 'stacking', ObservationStackingFilter(4))
+AtariOutputFilter = NoOutputFilter()
+
+
+class Atari(GymEnvironmentParameters):
+    def __init__(self, level=None):
+        super().__init__(level=level)
+        self.frame_skip = 4
+        self.max_over_num_frames = 2
+        self.random_initialization_steps = 30
+        self.default_input_filter = AtariInputFilter
+        self.default_output_filter = AtariOutputFilter
+
+
+gym_atari_envs = ['air_raid', 'alien', 'amidar', 'assault', 'asterix', 'asteroids', 'atlantis',
+                  'bank_heist', 'battle_zone', 'beam_rider', 'berzerk', 'bowling', 'boxing', 'breakout', 'carnival',
+                  'centipede', 'chopper_command', 'crazy_climber', 'demon_attack', 'double_dunk',
+                  'elevator_action', 'enduro', 'fishing_derby', 'freeway', 'frostbite', 'gopher', 'gravitar',
+                  'hero', 'ice_hockey', 'jamesbond', 'journey_escape', 'kangaroo', 'krull', 'kung_fu_master',
+                  'montezuma_revenge', 'ms_pacman', 'name_this_game', 'phoenix', 'pitfall', 'pong', 'pooyan',
+                  'private_eye', 'qbert', 'riverraid', 'road_runner', 'robotank', 'seaquest', 'skiing',
+                  'solaris', 'space_invaders', 'star_gunner', 'tennis', 'time_pilot', 'tutankham', 'up_n_down',
+                  'venture', 'video_pinball', 'wizard_of_wor', 'yars_revenge', 'zaxxon']
+atari_deterministic_v4 = {e: "{}".format(lower_under_to_upper(e) + 'Deterministic-v4') for e in gym_atari_envs}
+atari_no_frameskip_v4 = {e: "{}".format(lower_under_to_upper(e) + 'NoFrameskip-v4') for e in gym_atari_envs}
+
+
+# default atari schedule used in the DeepMind papers
+atari_schedule = ScheduleParameters()
+atari_schedule.improve_steps = EnvironmentSteps(50000000)
+atari_schedule.steps_between_evaluation_periods = EnvironmentSteps(250000)
+atari_schedule.evaluation_steps = EnvironmentSteps(135000)
+atari_schedule.heatup_steps = EnvironmentSteps(1)
+
+
+class MaxOverFramesAndFrameskipEnvWrapper(gym.Wrapper):
+    def __init__(self, env, frameskip=4, max_over_num_frames=2):
+        super().__init__(env)
+        self.max_over_num_frames = max_over_num_frames
+        self.observations_stack = []
+        self.frameskip = frameskip
+        self.first_frame_to_max_over = self.frameskip - self.max_over_num_frames
+
+    def reset(self):
+        return self.env.reset()
+
+    def step(self, action):
+        total_reward = 0.0
+        done = None
+        info = None
+        self.observations_stack = []
+        for i in range(self.frameskip):
+            observation, reward, done, info = self.env.step(action)
+            if i >= self.first_frame_to_max_over:
+                self.observations_stack.append(observation)
+            total_reward += reward
+            if done:
+                # deal with last state in episode
+                if not self.observations_stack:
+                    self.observations_stack.append(observation)
+                break
+
+        max_over_frames_observation = np.max(self.observations_stack, axis=0)
+
+        return max_over_frames_observation, total_reward, done, info
+
+
+# Environment
+
[docs]class GymEnvironment(Environment): + def __init__(self, level: LevelSelection, frame_skip: int, visualization_parameters: VisualizationParameters, + target_success_rate: float=1.0, additional_simulator_parameters: Dict[str, Any] = {}, seed: Union[None, int]=None, + human_control: bool=False, custom_reward_threshold: Union[int, float]=None, + random_initialization_steps: int=1, max_over_num_frames: int=1, **kwargs): + """ + :param level: (str) + A string representing the gym level to run. This can also be a LevelSelection object. + For example, BreakoutDeterministic-v0 + + :param frame_skip: (int) + The number of frames to skip between any two actions given by the agent. The action will be repeated + for all the skipped frames. + + :param visualization_parameters: (VisualizationParameters) + The parameters used for visualizing the environment, such as the render flag, storing videos etc. + + :param additional_simulator_parameters: (Dict[str, Any]) + Any additional parameters that the user can pass to the Gym environment. These parameters should be + accepted by the __init__ function of the implemented Gym environment. + + :param seed: (int) + A seed to use for the random number generator when running the environment. + + :param human_control: (bool) + A flag that allows controlling the environment using the keyboard keys. + + :param custom_reward_threshold: (float) + Allows defining a custom reward that will be used to decide when the agent succeeded in passing the environment. + If not set, this value will be taken from the Gym environment definition. + + :param random_initialization_steps: (int) + The number of random steps that will be taken in the environment after each reset. + This is a feature presented in the DQN paper, which improves the variability of the episodes the agent sees. + + :param max_over_num_frames: (int) + This value will be used for merging multiple frames into a single frame by taking the maximum value for each + of the pixels in the frame. This is particularly used in Atari games, where the frames flicker, and objects + can be seen in one frame but disappear in the next. + """ + super().__init__(level, seed, frame_skip, human_control, custom_reward_threshold, + visualization_parameters, target_success_rate) + + self.random_initialization_steps = random_initialization_steps + self.max_over_num_frames = max_over_num_frames + self.additional_simulator_parameters = additional_simulator_parameters + + # hide warnings + gym.logger.set_level(40) + + """ + load and initialize environment + environment ids can be defined in 3 ways: + 1. Native gym environments like BreakoutDeterministic-v0 for example + 2. Custom gym environments written and installed as python packages. + This environments should have a python module with a class inheriting gym.Env, implementing the + relevant functions (_reset, _step, _render) and defining the observation and action space + For example: my_environment_package:MyEnvironmentClass will run an environment defined in the + MyEnvironmentClass class + 3. Custom gym environments written as an independent module which is not installed. + This environments should have a python module with a class inheriting gym.Env, implementing the + relevant functions (_reset, _step, _render) and defining the observation and action space. + For example: path_to_my_environment.sub_directory.my_module:MyEnvironmentClass will run an + environment defined in the MyEnvironmentClass class which is located in the module in the relative path + path_to_my_environment.sub_directory.my_module + """ + if ':' in self.env_id: + # custom environments + if '/' in self.env_id or '.' in self.env_id: + # environment in a an absolute path module written as a unix path or in a relative path module + # written as a python import path + env_class = short_dynamic_import(self.env_id) + else: + # environment in a python package + env_class = gym.envs.registration.load(self.env_id) + + # instantiate the environment + try: + self.env = env_class(**self.additional_simulator_parameters) + except: + screen.error("Failed to instantiate Gym environment class %s with arguments %s" % + (env_class, self.additional_simulator_parameters), crash=False) + raise + else: + self.env = gym.make(self.env_id) + + # for classic control we want to use the native renderer because otherwise we will get 2 renderer windows + environment_to_always_use_with_native_rendering = ['classic_control', 'mujoco', 'robotics'] + self.native_rendering = self.native_rendering or \ + any([env in str(self.env.unwrapped.__class__) + for env in environment_to_always_use_with_native_rendering]) + if self.native_rendering: + if hasattr(self, 'renderer'): + self.renderer.close() + + # seed + if self.seed is not None: + self.env.seed(self.seed) + np.random.seed(self.seed) + random.seed(self.seed) + + # frame skip and max between consecutive frames + self.is_robotics_env = 'robotics' in str(self.env.unwrapped.__class__) + self.is_mujoco_env = 'mujoco' in str(self.env.unwrapped.__class__) + self.is_atari_env = 'Atari' in str(self.env.unwrapped.__class__) + self.timelimit_env_wrapper = self.env + if self.is_atari_env: + self.env.unwrapped.frameskip = 1 # this accesses the atari env that is wrapped with a timelimit wrapper env + if self.env_id == "SpaceInvadersDeterministic-v4" and self.frame_skip == 4: + screen.warning("Warning: The frame-skip for Space Invaders was automatically updated from 4 to 3. " + "This is following the DQN paper where it was noticed that a frame-skip of 3 makes the " + "laser rays disappear. To force frame-skip of 4, please use SpaceInvadersNoFrameskip-v4.") + self.frame_skip = 3 + self.env = MaxOverFramesAndFrameskipEnvWrapper(self.env, + frameskip=self.frame_skip, + max_over_num_frames=self.max_over_num_frames) + else: + self.env.unwrapped.frameskip = self.frame_skip + + self.state_space = StateSpace({}) + + # observations + if not isinstance(self.env.observation_space, gym.spaces.dict_space.Dict): + state_space = {'observation': self.env.observation_space} + else: + state_space = self.env.observation_space.spaces + + for observation_space_name, observation_space in state_space.items(): + if len(observation_space.shape) == 3: + # we assume gym has image observations (with arbitrary number of channels) where their values are + # within 0-255, and where the channel dimension is the last dimension + self.state_space[observation_space_name] = ImageObservationSpace( + shape=np.array(observation_space.shape), + high=255, + channels_axis=-1 + ) + else: + self.state_space[observation_space_name] = VectorObservationSpace( + shape=observation_space.shape[0], + low=observation_space.low, + high=observation_space.high + ) + if 'desired_goal' in state_space.keys(): + self.goal_space = self.state_space['desired_goal'] + + # actions + if type(self.env.action_space) == gym.spaces.box.Box: + self.action_space = BoxActionSpace( + shape=self.env.action_space.shape, + low=self.env.action_space.low, + high=self.env.action_space.high + ) + elif type(self.env.action_space) == gym.spaces.discrete.Discrete: + actions_description = [] + if hasattr(self.env.unwrapped, 'get_action_meanings'): + actions_description = self.env.unwrapped.get_action_meanings() + self.action_space = DiscreteActionSpace( + num_actions=self.env.action_space.n, + descriptions=actions_description + ) + + if self.human_control: + # TODO: add this to the action space + # map keyboard keys to actions + self.key_to_action = {} + if hasattr(self.env.unwrapped, 'get_keys_to_action'): + self.key_to_action = self.env.unwrapped.get_keys_to_action() + else: + screen.error("Error: Environment {} does not support human control.".format(self.env), crash=True) + + # initialize the state by getting a new state from the environment + self.reset_internal_state(True) + + # render + if self.is_rendered: + image = self.get_rendered_image() + scale = 1 + if self.human_control: + scale = 2 + if not self.native_rendering: + self.renderer.create_screen(image.shape[1]*scale, image.shape[0]*scale) + + # measurements + if self.env.spec is not None: + self.timestep_limit = self.env.spec.timestep_limit + else: + self.timestep_limit = None + + # the info is only updated after the first step + self.state = self.step(self.action_space.default_action).next_state + self.state_space['measurements'] = VectorObservationSpace(shape=len(self.info.keys())) + + if self.env.spec and custom_reward_threshold is None: + self.reward_success_threshold = self.env.spec.reward_threshold + self.reward_space = RewardSpace(1, reward_success_threshold=self.reward_success_threshold) + + self.target_success_rate = target_success_rate + + def _wrap_state(self, state): + if not isinstance(self.env.observation_space, gym.spaces.Dict): + return {'observation': state} + return state + + def _update_state(self): + if self.is_atari_env and hasattr(self, 'current_ale_lives') \ + and self.current_ale_lives != self.env.unwrapped.ale.lives(): + if self.phase == RunPhase.TRAIN or self.phase == RunPhase.HEATUP: + # signal termination for life loss + self.done = True + elif self.phase == RunPhase.TEST and not self.done: + # the episode is not terminated in evaluation, but we need to press fire again + self._press_fire() + self._update_ale_lives() + # TODO: update the measurements + if self.state and "desired_goal" in self.state.keys(): + self.goal = self.state['desired_goal'] + + def _take_action(self, action): + if type(self.action_space) == BoxActionSpace: + action = self.action_space.clip_action_to_space(action) + + self.state, self.reward, self.done, self.info = self.env.step(action) + self.state = self._wrap_state(self.state) + + def _random_noop(self): + # simulate a random initial environment state by stepping for a random number of times between 0 and 30 + step_count = 0 + random_initialization_steps = random.randint(0, self.random_initialization_steps) + while self.action_space is not None and (self.state is None or step_count < random_initialization_steps): + step_count += 1 + self.step(self.action_space.default_action) + + def _press_fire(self): + fire_action = 1 + if self.is_atari_env and self.env.unwrapped.get_action_meanings()[fire_action] == 'FIRE': + self.current_ale_lives = self.env.unwrapped.ale.lives() + self.step(fire_action) + if self.done: + self.reset_internal_state() + + def _update_ale_lives(self): + if self.is_atari_env: + self.current_ale_lives = self.env.unwrapped.ale.lives() + + def _restart_environment_episode(self, force_environment_reset=False): + # prevent reset of environment if there are ale lives left + if (self.is_atari_env and self.env.unwrapped.ale.lives() > 0) \ + and not force_environment_reset and not self.timelimit_env_wrapper._past_limit(): + self.step(self.action_space.default_action) + else: + self.state = self.env.reset() + self.state = self._wrap_state(self.state) + self._update_ale_lives() + + if self.is_atari_env: + self._random_noop() + self._press_fire() + + # initialize the number of lives + self._update_ale_lives() + + def _set_mujoco_camera(self, camera_idx: int): + """ + This function can be used to set the camera for rendering the mujoco simulator + :param camera_idx: The index of the camera to use. Should be defined in the model + :return: None + """ + if self.env.unwrapped.viewer is not None and self.env.unwrapped.viewer.cam.fixedcamid != camera_idx and\ + self.env.unwrapped.viewer._ncam > camera_idx: + from mujoco_py.generated import const + self.env.unwrapped.viewer.cam.type = const.CAMERA_FIXED + self.env.unwrapped.viewer.cam.fixedcamid = camera_idx + + def _get_robotics_image(self): + self.env.render() + image = self.env.unwrapped._get_viewer().read_pixels(1600, 900, depth=False)[::-1, :, :] + image = scipy.misc.imresize(image, (270, 480, 3)) + return image + + def _render(self): + self.env.render(mode='human') + # required for setting up a fixed camera for mujoco + if self.is_mujoco_env: + self._set_mujoco_camera(0) + + def get_rendered_image(self): + if self.is_robotics_env: + # necessary for fetch since the rendered image is cropped to an irrelevant part of the simulator + image = self._get_robotics_image() + else: + image = self.env.render(mode='rgb_array') + # required for setting up a fixed camera for mujoco + if self.is_mujoco_env: + self._set_mujoco_camera(0) + return image + + def get_target_success_rate(self) -> float: + return self.target_success_rate
+
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/environments/starcraft2_environment.html b/docs/_modules/rl_coach/environments/starcraft2_environment.html new file mode 100644 index 0000000..3e3d8c8 --- /dev/null +++ b/docs/_modules/rl_coach/environments/starcraft2_environment.html @@ -0,0 +1,478 @@ + + + + + + + + + + + rl_coach.environments.starcraft2_environment — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.environments.starcraft2_environment
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.environments.starcraft2_environment

+#
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+
+from enum import Enum
+from typing import Union, List
+
+import numpy as np
+
+from rl_coach.filters.observation.observation_move_axis_filter import ObservationMoveAxisFilter
+
+try:
+    from pysc2 import maps
+    from pysc2.env import sc2_env
+    from pysc2.env import available_actions_printer
+    from pysc2.lib import actions
+    from pysc2.lib import features
+    from pysc2.env import environment
+    from absl import app
+    from absl import flags
+except ImportError:
+    from rl_coach.logger import failed_imports
+    failed_imports.append("PySc2")
+
+from rl_coach.environments.environment import Environment, EnvironmentParameters, LevelSelection
+from rl_coach.base_parameters import VisualizationParameters
+from rl_coach.spaces import BoxActionSpace, VectorObservationSpace, PlanarMapsObservationSpace, StateSpace, CompoundActionSpace, \
+    DiscreteActionSpace
+from rl_coach.filters.filter import InputFilter, OutputFilter
+from rl_coach.filters.observation.observation_rescale_to_size_filter import ObservationRescaleToSizeFilter
+from rl_coach.filters.action.linear_box_to_box_map import LinearBoxToBoxMap
+from rl_coach.filters.observation.observation_to_uint8_filter import ObservationToUInt8Filter
+
+FLAGS = flags.FLAGS
+FLAGS(['coach.py'])
+
+SCREEN_SIZE = 84  # will also impact the action space size
+
+# Starcraft Constants
+_NOOP = actions.FUNCTIONS.no_op.id
+_MOVE_SCREEN = actions.FUNCTIONS.Move_screen.id
+_SELECT_ARMY = actions.FUNCTIONS.select_army.id
+_PLAYER_RELATIVE = features.SCREEN_FEATURES.player_relative.index
+_NOT_QUEUED = [0]
+_SELECT_ALL = [0]
+
+
+class StarcraftObservationType(Enum):
+    Features = 0
+    RGB = 1
+
+
+StarcraftInputFilter = InputFilter(is_a_reference_filter=True)
+StarcraftInputFilter.add_observation_filter('screen', 'move_axis', ObservationMoveAxisFilter(0, -1))
+StarcraftInputFilter.add_observation_filter('screen', 'rescaling',
+                                            ObservationRescaleToSizeFilter(
+                                                PlanarMapsObservationSpace(np.array([84, 84, 1]),
+                                                                           low=0, high=255, channels_axis=-1)))
+StarcraftInputFilter.add_observation_filter('screen', 'to_uint8', ObservationToUInt8Filter(0, 255))
+
+StarcraftInputFilter.add_observation_filter('minimap', 'move_axis', ObservationMoveAxisFilter(0, -1))
+StarcraftInputFilter.add_observation_filter('minimap', 'rescaling',
+                                            ObservationRescaleToSizeFilter(
+                                                PlanarMapsObservationSpace(np.array([64, 64, 1]),
+                                                                           low=0, high=255, channels_axis=-1)))
+StarcraftInputFilter.add_observation_filter('minimap', 'to_uint8', ObservationToUInt8Filter(0, 255))
+
+
+StarcraftNormalizingOutputFilter = OutputFilter(is_a_reference_filter=True)
+StarcraftNormalizingOutputFilter.add_action_filter(
+    'normalization', LinearBoxToBoxMap(input_space_low=-SCREEN_SIZE / 2, input_space_high=SCREEN_SIZE / 2 - 1))
+
+
+class StarCraft2EnvironmentParameters(EnvironmentParameters):
+    def __init__(self, level=None):
+        super().__init__(level=level)
+        self.screen_size = 84
+        self.minimap_size = 64
+        self.feature_minimap_maps_to_use = range(7)
+        self.feature_screen_maps_to_use = range(17)
+        self.observation_type = StarcraftObservationType.Features
+        self.disable_fog = False
+        self.auto_select_all_army = True
+        self.default_input_filter = StarcraftInputFilter
+        self.default_output_filter = StarcraftNormalizingOutputFilter
+        self.use_full_action_space = False
+
+
+    @property
+    def path(self):
+        return 'rl_coach.environments.starcraft2_environment:StarCraft2Environment'
+
+
+# Environment
+
[docs]class StarCraft2Environment(Environment): + def __init__(self, level: LevelSelection, frame_skip: int, visualization_parameters: VisualizationParameters, + target_success_rate: float=1.0, seed: Union[None, int]=None, human_control: bool=False, + custom_reward_threshold: Union[int, float]=None, + screen_size: int=84, minimap_size: int=64, + feature_minimap_maps_to_use: List=range(7), feature_screen_maps_to_use: List=range(17), + observation_type: StarcraftObservationType=StarcraftObservationType.Features, + disable_fog: bool=False, auto_select_all_army: bool=True, + use_full_action_space: bool=False, **kwargs): + super().__init__(level, seed, frame_skip, human_control, custom_reward_threshold, visualization_parameters, target_success_rate) + + self.screen_size = screen_size + self.minimap_size = minimap_size + self.feature_minimap_maps_to_use = feature_minimap_maps_to_use + self.feature_screen_maps_to_use = feature_screen_maps_to_use + self.observation_type = observation_type + self.features_screen_size = None + self.feature_minimap_size = None + self.rgb_screen_size = None + self.rgb_minimap_size = None + if self.observation_type == StarcraftObservationType.Features: + self.features_screen_size = screen_size + self.feature_minimap_size = minimap_size + elif self.observation_type == StarcraftObservationType.RGB: + self.rgb_screen_size = screen_size + self.rgb_minimap_size = minimap_size + self.disable_fog = disable_fog + self.auto_select_all_army = auto_select_all_army + self.use_full_action_space = use_full_action_space + + # step_mul is the equivalent to frame skipping. Not sure if it repeats actions in between or not though. + self.env = sc2_env.SC2Env(map_name=self.env_id, step_mul=frame_skip, + visualize=self.is_rendered, + agent_interface_format=sc2_env.AgentInterfaceFormat( + feature_dimensions=sc2_env.Dimensions( + screen=self.features_screen_size, + minimap=self.feature_minimap_size + ) + # rgb_dimensions=sc2_env.Dimensions( + # screen=self.rgb_screen_size, + # minimap=self.rgb_screen_size + # ) + ), + # feature_screen_size=self.features_screen_size, + # feature_minimap_size=self.feature_minimap_size, + # rgb_screen_size=self.rgb_screen_size, + # rgb_minimap_size=self.rgb_screen_size, + disable_fog=disable_fog, + random_seed=self.seed + ) + + # print all the available actions + # self.env = available_actions_printer.AvailableActionsPrinter(self.env) + + self.reset_internal_state(True) + + """ + feature_screen: [height_map, visibility_map, creep, power, player_id, player_relative, unit_type, selected, + unit_hit_points, unit_hit_points_ratio, unit_energy, unit_energy_ratio, unit_shields, + unit_shields_ratio, unit_density, unit_density_aa, effects] + feature_minimap: [height_map, visibility_map, creep, camera, player_id, player_relative, selecte + d] + player: [player_id, minerals, vespene, food_cap, food_army, food_workers, idle_worker_dount, + army_count, warp_gate_count, larva_count] + """ + self.screen_shape = np.array(self.env.observation_spec()[0]['feature_screen']) + self.screen_shape[0] = len(self.feature_screen_maps_to_use) + self.minimap_shape = np.array(self.env.observation_spec()[0]['feature_minimap']) + self.minimap_shape[0] = len(self.feature_minimap_maps_to_use) + self.state_space = StateSpace({ + "screen": PlanarMapsObservationSpace(shape=self.screen_shape, low=0, high=255, channels_axis=0), + "minimap": PlanarMapsObservationSpace(shape=self.minimap_shape, low=0, high=255, channels_axis=0), + "measurements": VectorObservationSpace(self.env.observation_spec()[0]["player"][0]) + }) + if self.use_full_action_space: + action_identifiers = list(self.env.action_spec()[0].functions) + num_action_identifiers = len(action_identifiers) + action_arguments = [(arg.name, arg.sizes) for arg in self.env.action_spec()[0].types] + sub_action_spaces = [DiscreteActionSpace(num_action_identifiers)] + for argument in action_arguments: + for dimension in argument[1]: + sub_action_spaces.append(DiscreteActionSpace(dimension)) + self.action_space = CompoundActionSpace(sub_action_spaces) + else: + self.action_space = BoxActionSpace(2, 0, self.screen_size - 1, ["X-Axis, Y-Axis"], + default_action=np.array([self.screen_size/2, self.screen_size/2])) + + self.target_success_rate = target_success_rate + + def _update_state(self): + timestep = 0 + self.screen = self.last_result[timestep].observation.feature_screen + # extract only the requested segmentation maps from the observation + self.screen = np.take(self.screen, self.feature_screen_maps_to_use, axis=0) + self.minimap = self.last_result[timestep].observation.feature_minimap + self.measurements = self.last_result[timestep].observation.player + self.reward = self.last_result[timestep].reward + self.done = self.last_result[timestep].step_type == environment.StepType.LAST + self.state = { + 'screen': self.screen, + 'minimap': self.minimap, + 'measurements': self.measurements + } + + def _take_action(self, action): + if self.use_full_action_space: + action_identifier = action[0] + action_arguments = action[1:] + action = actions.FunctionCall(action_identifier, action_arguments) + else: + coord = np.array(action[0:2]) + noop = False + coord = coord.round() + coord = np.clip(coord, 0, SCREEN_SIZE - 1) + self.last_action_idx = coord + + if noop: + action = actions.FunctionCall(_NOOP, []) + else: + action = actions.FunctionCall(_MOVE_SCREEN, [_NOT_QUEUED, coord]) + + self.last_result = self.env.step(actions=[action]) + + def _restart_environment_episode(self, force_environment_reset=False): + # reset the environment + self.last_result = self.env.reset() + + # select all the units on the screen + if self.auto_select_all_army: + self.env.step(actions=[actions.FunctionCall(_SELECT_ARMY, [_SELECT_ALL])]) + + def get_rendered_image(self): + screen = np.squeeze(np.tile(np.expand_dims(self.screen, -1), (1, 1, 3))) + screen = screen / np.max(screen) * 255 + return screen.astype('uint8') + + def dump_video_of_last_episode(self): + from rl_coach.logger import experiment_path + self.env._run_config.replay_dir = experiment_path + self.env.save_replay('replays') + super().dump_video_of_last_episode() + + def get_target_success_rate(self): + return self.target_success_rate
+
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/exploration_policies/additive_noise.html b/docs/_modules/rl_coach/exploration_policies/additive_noise.html new file mode 100644 index 0000000..a27fc99 --- /dev/null +++ b/docs/_modules/rl_coach/exploration_policies/additive_noise.html @@ -0,0 +1,330 @@ + + + + + + + + + + + rl_coach.exploration_policies.additive_noise — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.exploration_policies.additive_noise
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.exploration_policies.additive_noise

+#
+# Copyright (c) 2017 Intel Corporation 
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+from typing import List
+
+import numpy as np
+
+from rl_coach.core_types import RunPhase, ActionType
+from rl_coach.exploration_policies.exploration_policy import ExplorationPolicy, ExplorationParameters
+from rl_coach.schedules import Schedule, LinearSchedule
+from rl_coach.spaces import ActionSpace, BoxActionSpace
+
+
+# TODO: consider renaming to gaussian sampling
+class AdditiveNoiseParameters(ExplorationParameters):
+    def __init__(self):
+        super().__init__()
+        self.noise_percentage_schedule = LinearSchedule(0.1, 0.1, 50000)
+        self.evaluation_noise_percentage = 0.05
+
+    @property
+    def path(self):
+        return 'rl_coach.exploration_policies.additive_noise:AdditiveNoise'
+
+
+
[docs]class AdditiveNoise(ExplorationPolicy): + """ + AdditiveNoise is an exploration policy intended for continuous action spaces. It takes the action from the agent + and adds a Gaussian distributed noise to it. The amount of noise added to the action follows the noise amount that + can be given in two different ways: + 1. Specified by the user as a noise schedule which is taken in percentiles out of the action space size + 2. Specified by the agents action. In case the agents action is a list with 2 values, the 1st one is assumed to + be the mean of the action, and 2nd is assumed to be its standard deviation. + """ + def __init__(self, action_space: ActionSpace, noise_percentage_schedule: Schedule, + evaluation_noise_percentage: float): + """ + :param action_space: the action space used by the environment + :param noise_percentage_schedule: the schedule for the noise variance percentage relative to the absolute range + of the action space + :param evaluation_noise_percentage: the noise variance percentage that will be used during evaluation phases + """ + super().__init__(action_space) + self.noise_percentage_schedule = noise_percentage_schedule + self.evaluation_noise_percentage = evaluation_noise_percentage + + if not isinstance(action_space, BoxActionSpace): + raise ValueError("Additive noise exploration works only for continuous controls." + "The given action space is of type: {}".format(action_space.__class__.__name__)) + + if not np.all(-np.inf < action_space.high) or not np.all(action_space.high < np.inf)\ + or not np.all(-np.inf < action_space.low) or not np.all(action_space.low < np.inf): + raise ValueError("Additive noise exploration requires bounded actions") + + # TODO: allow working with unbounded actions by defining the noise in terms of range and not percentage + + def get_action(self, action_values: List[ActionType]) -> ActionType: + # TODO-potential-bug consider separating internally defined stdev and externally defined stdev into 2 policies + + # set the current noise percentage + if self.phase == RunPhase.TEST: + current_noise_precentage = self.evaluation_noise_percentage + else: + current_noise_precentage = self.noise_percentage_schedule.current_value + + # scale the noise to the action space range + action_values_std = current_noise_precentage * (self.action_space.high - self.action_space.low) + + # extract the mean values + if isinstance(action_values, list): + # the action values are expected to be a list with the action mean and optionally the action stdev + action_values_mean = action_values[0].squeeze() + else: + # the action values are expected to be a numpy array representing the action mean + action_values_mean = action_values.squeeze() + + # step the noise schedule + if self.phase == RunPhase.TRAIN: + self.noise_percentage_schedule.step() + # the second element of the list is assumed to be the standard deviation + if isinstance(action_values, list) and len(action_values) > 1: + action_values_std = action_values[1].squeeze() + + # add noise to the action means + action = np.random.normal(action_values_mean, action_values_std) + + return action + + def get_control_param(self): + return np.ones(self.action_space.shape)*self.noise_percentage_schedule.current_value
+
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/exploration_policies/boltzmann.html b/docs/_modules/rl_coach/exploration_policies/boltzmann.html new file mode 100644 index 0000000..4affe8f --- /dev/null +++ b/docs/_modules/rl_coach/exploration_policies/boltzmann.html @@ -0,0 +1,292 @@ + + + + + + + + + + + rl_coach.exploration_policies.boltzmann — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.exploration_policies.boltzmann
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.exploration_policies.boltzmann

+#
+# Copyright (c) 2017 Intel Corporation 
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+from typing import List
+
+import numpy as np
+
+from rl_coach.core_types import RunPhase, ActionType
+from rl_coach.exploration_policies.exploration_policy import ExplorationPolicy, ExplorationParameters
+from rl_coach.schedules import Schedule
+from rl_coach.spaces import ActionSpace
+
+
+class BoltzmannParameters(ExplorationParameters):
+    def __init__(self):
+        super().__init__()
+        self.temperature_schedule = None
+
+    @property
+    def path(self):
+        return 'rl_coach.exploration_policies.boltzmann:Boltzmann'
+
+
+
+
[docs]class Boltzmann(ExplorationPolicy): + """ + The Boltzmann exploration policy is intended for discrete action spaces. It assumes that each of the possible + actions has some value assigned to it (such as the Q value), and uses a softmax function to convert these values + into a distribution over the actions. It then samples the action for playing out of the calculated distribution. + An additional temperature schedule can be given by the user, and will control the steepness of the softmax function. + """ + def __init__(self, action_space: ActionSpace, temperature_schedule: Schedule): + """ + :param action_space: the action space used by the environment + :param temperature_schedule: the schedule for the temperature parameter of the softmax + """ + super().__init__(action_space) + self.temperature_schedule = temperature_schedule + + def get_action(self, action_values: List[ActionType]) -> ActionType: + if self.phase == RunPhase.TRAIN: + self.temperature_schedule.step() + # softmax calculation + exp_probabilities = np.exp(action_values / self.temperature_schedule.current_value) + probabilities = exp_probabilities / np.sum(exp_probabilities) + # make sure probs sum to 1 + probabilities[-1] = 1 - np.sum(probabilities[:-1]) + # choose actions according to the probabilities + return np.random.choice(range(self.action_space.shape), p=probabilities) + + def get_control_param(self): + return self.temperature_schedule.current_value
+
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/exploration_policies/bootstrapped.html b/docs/_modules/rl_coach/exploration_policies/bootstrapped.html new file mode 100644 index 0000000..d1d3821 --- /dev/null +++ b/docs/_modules/rl_coach/exploration_policies/bootstrapped.html @@ -0,0 +1,315 @@ + + + + + + + + + + + rl_coach.exploration_policies.bootstrapped — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.exploration_policies.bootstrapped
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.exploration_policies.bootstrapped

+#
+# Copyright (c) 2017 Intel Corporation 
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+from typing import List
+
+import numpy as np
+
+from rl_coach.core_types import RunPhase, ActionType
+from rl_coach.exploration_policies.additive_noise import AdditiveNoiseParameters
+from rl_coach.exploration_policies.e_greedy import EGreedy, EGreedyParameters
+from rl_coach.exploration_policies.exploration_policy import ExplorationParameters
+from rl_coach.schedules import Schedule, LinearSchedule
+from rl_coach.spaces import ActionSpace
+
+
+class BootstrappedParameters(EGreedyParameters):
+    def __init__(self):
+        super().__init__()
+        self.architecture_num_q_heads = 10
+        self.bootstrapped_data_sharing_probability = 1.0
+        self.epsilon_schedule = LinearSchedule(1, 0.01, 1000000)
+
+    @property
+    def path(self):
+        return 'rl_coach.exploration_policies.bootstrapped:Bootstrapped'
+
+
+
[docs]class Bootstrapped(EGreedy): + """ + Bootstrapped exploration policy is currently only used for discrete action spaces along with the + Bootstrapped DQN agent. It assumes that there is an ensemble of network heads, where each one predicts the + values for all the possible actions. For each episode, a single head is selected to lead the agent, according + to its value predictions. In evaluation, the action is selected using a majority vote over all the heads + predictions. + + .. note:: + This exploration policy will only work for Discrete action spaces with Bootstrapped DQN style agents, + since it requires the agent to have a network with multiple heads. + """ + def __init__(self, action_space: ActionSpace, epsilon_schedule: Schedule, evaluation_epsilon: float, + architecture_num_q_heads: int, + continuous_exploration_policy_parameters: ExplorationParameters = AdditiveNoiseParameters(),): + """ + :param action_space: the action space used by the environment + :param epsilon_schedule: a schedule for the epsilon values + :param evaluation_epsilon: the epsilon value to use for evaluation phases + :param continuous_exploration_policy_parameters: the parameters of the continuous exploration policy to use + if the e-greedy is used for a continuous policy + :param architecture_num_q_heads: the number of q heads to select from + """ + super().__init__(action_space, epsilon_schedule, evaluation_epsilon, continuous_exploration_policy_parameters) + self.num_heads = architecture_num_q_heads + self.selected_head = 0 + self.last_action_values = 0 + + def select_head(self): + self.selected_head = np.random.randint(self.num_heads) + + def get_action(self, action_values: List[ActionType]) -> ActionType: + # action values are none in case the exploration policy is going to select a random action + if action_values is not None: + if self.phase == RunPhase.TRAIN: + action_values = action_values[self.selected_head] + else: + # ensemble voting for evaluation + top_action_votings = np.argmax(action_values, axis=-1) + counts = np.bincount(top_action_votings.squeeze()) + top_action = np.argmax(counts) + # convert the top action to a one hot vector and pass it to e-greedy + action_values = np.eye(len(self.action_space.actions))[[top_action]] + self.last_action_values = action_values + return super().get_action(action_values) + + def get_control_param(self): + return self.selected_head
+
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/exploration_policies/categorical.html b/docs/_modules/rl_coach/exploration_policies/categorical.html new file mode 100644 index 0000000..e901c8e --- /dev/null +++ b/docs/_modules/rl_coach/exploration_policies/categorical.html @@ -0,0 +1,281 @@ + + + + + + + + + + + rl_coach.exploration_policies.categorical — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.exploration_policies.categorical
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.exploration_policies.categorical

+#
+# Copyright (c) 2017 Intel Corporation 
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+from typing import List
+
+import numpy as np
+
+from rl_coach.core_types import RunPhase, ActionType
+from rl_coach.exploration_policies.exploration_policy import ExplorationPolicy, ExplorationParameters
+from rl_coach.spaces import ActionSpace
+
+
+class CategoricalParameters(ExplorationParameters):
+    @property
+    def path(self):
+        return 'rl_coach.exploration_policies.categorical:Categorical'
+
+
+
[docs]class Categorical(ExplorationPolicy): + """ + Categorical exploration policy is intended for discrete action spaces. It expects the action values to + represent a probability distribution over the action, from which a single action will be sampled. + In evaluation, the action that has the highest probability will be selected. This is particularly useful for + actor-critic schemes, where the actors output is a probability distribution over the actions. + """ + def __init__(self, action_space: ActionSpace): + """ + :param action_space: the action space used by the environment + """ + super().__init__(action_space) + + def get_action(self, action_values: List[ActionType]) -> ActionType: + if self.phase == RunPhase.TRAIN: + # choose actions according to the probabilities + return np.random.choice(self.action_space.actions, p=action_values) + else: + # take the action with the highest probability + return np.argmax(action_values) + + def get_control_param(self): + return 0
+
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/exploration_policies/continuous_entropy.html b/docs/_modules/rl_coach/exploration_policies/continuous_entropy.html new file mode 100644 index 0000000..71451b9 --- /dev/null +++ b/docs/_modules/rl_coach/exploration_policies/continuous_entropy.html @@ -0,0 +1,265 @@ + + + + + + + + + + + rl_coach.exploration_policies.continuous_entropy — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.exploration_policies.continuous_entropy
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.exploration_policies.continuous_entropy

+#
+# Copyright (c) 2017 Intel Corporation 
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+from rl_coach.exploration_policies.additive_noise import AdditiveNoise, AdditiveNoiseParameters
+
+
+class ContinuousEntropyParameters(AdditiveNoiseParameters):
+    @property
+    def path(self):
+        return 'rl_coach.exploration_policies.continuous_entropy:ContinuousEntropy'
+
+
+
[docs]class ContinuousEntropy(AdditiveNoise): + """ + Continuous entropy is an exploration policy that is actually implemented as part of the network. + The exploration policy class is only a placeholder for choosing this policy. The exploration policy is + implemented by adding a regularization factor to the network loss, which regularizes the entropy of the action. + This exploration policy is only intended for continuous action spaces, and assumes that the entire calculation + is implemented as part of the head. + + .. warning:: + This exploration policy expects the agent or the network to implement the exploration functionality. + There are only a few heads that actually are relevant and implement the entropy regularization factor. + """ + pass
+
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/exploration_policies/e_greedy.html b/docs/_modules/rl_coach/exploration_policies/e_greedy.html new file mode 100644 index 0000000..66112ff --- /dev/null +++ b/docs/_modules/rl_coach/exploration_policies/e_greedy.html @@ -0,0 +1,342 @@ + + + + + + + + + + + rl_coach.exploration_policies.e_greedy — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.exploration_policies.e_greedy
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.exploration_policies.e_greedy

+#
+# Copyright (c) 2017 Intel Corporation 
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+from typing import List
+
+import numpy as np
+
+from rl_coach.core_types import RunPhase, ActionType
+from rl_coach.exploration_policies.additive_noise import AdditiveNoiseParameters
+from rl_coach.exploration_policies.exploration_policy import ExplorationParameters
+from rl_coach.exploration_policies.exploration_policy import ExplorationPolicy
+from rl_coach.schedules import Schedule, LinearSchedule
+from rl_coach.spaces import ActionSpace, DiscreteActionSpace, BoxActionSpace
+from rl_coach.utils import dynamic_import_and_instantiate_module_from_params
+
+
+class EGreedyParameters(ExplorationParameters):
+    def __init__(self):
+        super().__init__()
+        self.epsilon_schedule = LinearSchedule(0.5, 0.01, 50000)
+        self.evaluation_epsilon = 0.05
+        self.continuous_exploration_policy_parameters = AdditiveNoiseParameters()
+        self.continuous_exploration_policy_parameters.noise_percentage_schedule = LinearSchedule(0.1, 0.1, 50000)
+        # for continuous control -
+        # (see http://www.cs.ubc.ca/~van/papers/2017-TOG-deepLoco/2017-TOG-deepLoco.pdf)
+
+    @property
+    def path(self):
+        return 'rl_coach.exploration_policies.e_greedy:EGreedy'
+
+
+
[docs]class EGreedy(ExplorationPolicy): + """ + e-greedy is an exploration policy that is intended for both discrete and continuous action spaces. + + For discrete action spaces, it assumes that each action is assigned a value, and it selects the action with the + highest value with probability 1 - epsilon. Otherwise, it selects a action sampled uniformly out of all the + possible actions. The epsilon value is given by the user and can be given as a schedule. + In evaluation, a different epsilon value can be specified. + + For continuous action spaces, it assumes that the mean action is given by the agent. With probability epsilon, + it samples a random action out of the action space bounds. Otherwise, it selects the action according to a + given continuous exploration policy, which is set to AdditiveNoise by default. In evaluation, the action is + always selected according to the given continuous exploration policy (where its phase is set to evaluation as well). + """ + def __init__(self, action_space: ActionSpace, epsilon_schedule: Schedule, + evaluation_epsilon: float, + continuous_exploration_policy_parameters: ExplorationParameters=AdditiveNoiseParameters()): + """ + :param action_space: the action space used by the environment + :param epsilon_schedule: a schedule for the epsilon values + :param evaluation_epsilon: the epsilon value to use for evaluation phases + :param continuous_exploration_policy_parameters: the parameters of the continuous exploration policy to use + if the e-greedy is used for a continuous policy + """ + super().__init__(action_space) + self.epsilon_schedule = epsilon_schedule + self.evaluation_epsilon = evaluation_epsilon + + if isinstance(self.action_space, BoxActionSpace): + # for continuous e-greedy (see http://www.cs.ubc.ca/~van/papers/2017-TOG-deepLoco/2017-TOG-deepLoco.pdf) + continuous_exploration_policy_parameters.action_space = action_space + self.continuous_exploration_policy = \ + dynamic_import_and_instantiate_module_from_params(continuous_exploration_policy_parameters) + + self.current_random_value = np.random.rand() + + def requires_action_values(self): + epsilon = self.evaluation_epsilon if self.phase == RunPhase.TEST else self.epsilon_schedule.current_value + return self.current_random_value >= epsilon + + def get_action(self, action_values: List[ActionType]) -> ActionType: + epsilon = self.evaluation_epsilon if self.phase == RunPhase.TEST else self.epsilon_schedule.current_value + + if isinstance(self.action_space, DiscreteActionSpace): + top_action = np.argmax(action_values) + if self.current_random_value < epsilon: + chosen_action = self.action_space.sample() + else: + chosen_action = top_action + else: + if self.current_random_value < epsilon and self.phase == RunPhase.TRAIN: + chosen_action = self.action_space.sample() + else: + chosen_action = self.continuous_exploration_policy.get_action(action_values) + + # step the epsilon schedule and generate a new random value for next time + if self.phase == RunPhase.TRAIN: + self.epsilon_schedule.step() + self.current_random_value = np.random.rand() + return chosen_action + + def get_control_param(self): + if isinstance(self.action_space, DiscreteActionSpace): + return self.evaluation_epsilon if self.phase == RunPhase.TEST else self.epsilon_schedule.current_value + elif isinstance(self.action_space, BoxActionSpace): + return self.continuous_exploration_policy.get_control_param() + + def change_phase(self, phase): + super().change_phase(phase) + if isinstance(self.action_space, BoxActionSpace): + self.continuous_exploration_policy.change_phase(phase)
+
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/exploration_policies/exploration_policy.html b/docs/_modules/rl_coach/exploration_policies/exploration_policy.html new file mode 100644 index 0000000..df2bf93 --- /dev/null +++ b/docs/_modules/rl_coach/exploration_policies/exploration_policy.html @@ -0,0 +1,311 @@ + + + + + + + + + + + rl_coach.exploration_policies.exploration_policy — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.exploration_policies.exploration_policy
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.exploration_policies.exploration_policy

+#
+# Copyright (c) 2017 Intel Corporation 
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+from typing import List
+
+from rl_coach.base_parameters import Parameters
+from rl_coach.core_types import RunPhase, ActionType
+from rl_coach.spaces import ActionSpace
+
+
+class ExplorationParameters(Parameters):
+    def __init__(self):
+        self.action_space = None
+
+    @property
+    def path(self):
+        return 'rl_coach.exploration_policies.exploration_policy:ExplorationPolicy'
+
+
+
[docs]class ExplorationPolicy(object): + """ + An exploration policy takes the predicted actions or action values from the agent, and selects the action to + actually apply to the environment using some predefined algorithm. + """ + def __init__(self, action_space: ActionSpace): + """ + :param action_space: the action space used by the environment + """ + self.phase = RunPhase.HEATUP + self.action_space = action_space + +
[docs] def reset(self): + """ + Used for resetting the exploration policy parameters when needed + :return: None + """ + pass
+ +
[docs] def get_action(self, action_values: List[ActionType]) -> ActionType: + """ + Given a list of values corresponding to each action, + choose one actions according to the exploration policy + :param action_values: A list of action values + :return: The chosen action + """ + if self.__class__ == ExplorationPolicy: + raise ValueError("The ExplorationPolicy class is an abstract class and should not be used directly. " + "Please set the exploration parameters to point to an inheriting class like EGreedy or " + "AdditiveNoise") + else: + raise ValueError("The get_action function should be overridden in the inheriting exploration class")
+ +
[docs] def change_phase(self, phase): + """ + Change between running phases of the algorithm + :param phase: Either Heatup or Train + :return: none + """ + self.phase = phase
+ +
[docs] def requires_action_values(self) -> bool: + """ + Allows exploration policies to define if they require the action values for the current step. + This can save up a lot of computation. For example in e-greedy, if the random value generated is smaller + than epsilon, the action is completely random, and the action values don't need to be calculated + :return: True if the action values are required. False otherwise + """ + return True
+ + def get_control_param(self): + return 0
+
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/exploration_policies/greedy.html b/docs/_modules/rl_coach/exploration_policies/greedy.html new file mode 100644 index 0000000..b031dbe --- /dev/null +++ b/docs/_modules/rl_coach/exploration_policies/greedy.html @@ -0,0 +1,278 @@ + + + + + + + + + + + rl_coach.exploration_policies.greedy — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.exploration_policies.greedy
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.exploration_policies.greedy

+#
+# Copyright (c) 2017 Intel Corporation 
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+from typing import List
+
+import numpy as np
+
+from rl_coach.core_types import ActionType
+from rl_coach.exploration_policies.exploration_policy import ExplorationPolicy, ExplorationParameters
+from rl_coach.spaces import ActionSpace, DiscreteActionSpace, BoxActionSpace
+
+
+class GreedyParameters(ExplorationParameters):
+    @property
+    def path(self):
+        return 'rl_coach.exploration_policies.greedy:Greedy'
+
+
+
[docs]class Greedy(ExplorationPolicy): + """ + The Greedy exploration policy is intended for both discrete and continuous action spaces. + For discrete action spaces, it always selects the action with the maximum value, as given by the agent. + For continuous action spaces, it always return the exact action, as it was given by the agent. + """ + def __init__(self, action_space: ActionSpace): + """ + :param action_space: the action space used by the environment + """ + super().__init__(action_space) + + def get_action(self, action_values: List[ActionType]) -> ActionType: + if type(self.action_space) == DiscreteActionSpace: + return np.argmax(action_values) + if type(self.action_space) == BoxActionSpace: + return action_values + + def get_control_param(self): + return 0
+
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/exploration_policies/ou_process.html b/docs/_modules/rl_coach/exploration_policies/ou_process.html new file mode 100644 index 0000000..390dcba --- /dev/null +++ b/docs/_modules/rl_coach/exploration_policies/ou_process.html @@ -0,0 +1,313 @@ + + + + + + + + + + + rl_coach.exploration_policies.ou_process — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.exploration_policies.ou_process
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.exploration_policies.ou_process

+#
+# Copyright (c) 2017 Intel Corporation 
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+from typing import List
+
+import numpy as np
+
+from rl_coach.core_types import RunPhase, ActionType
+from rl_coach.exploration_policies.exploration_policy import ExplorationPolicy, ExplorationParameters
+from rl_coach.spaces import ActionSpace, BoxActionSpace, GoalsSpace
+
+
+# Based on on the description in:
+# https://math.stackexchange.com/questions/1287634/implementing-ornstein-uhlenbeck-in-matlab
+class OUProcessParameters(ExplorationParameters):
+    def __init__(self):
+        super().__init__()
+        self.mu = 0
+        self.theta = 0.15
+        self.sigma = 0.2
+        self.dt = 0.01
+
+    @property
+    def path(self):
+        return 'rl_coach.exploration_policies.ou_process:OUProcess'
+
+
+# Ornstein-Uhlenbeck process
+
[docs]class OUProcess(ExplorationPolicy): + """ + OUProcess exploration policy is intended for continuous action spaces, and selects the action according to + an Ornstein-Uhlenbeck process. The Ornstein-Uhlenbeck process implements the action as a Gaussian process, where + the samples are correlated between consequent time steps. + """ + def __init__(self, action_space: ActionSpace, mu: float=0, theta: float=0.15, sigma: float=0.2, dt: float=0.01): + """ + :param action_space: the action space used by the environment + """ + super().__init__(action_space) + self.mu = float(mu) * np.ones(self.action_space.shape) + self.theta = float(theta) + self.sigma = float(sigma) * np.ones(self.action_space.shape) + self.state = np.zeros(self.action_space.shape) + self.dt = dt + + if not (isinstance(action_space, BoxActionSpace) or isinstance(action_space, GoalsSpace)): + raise ValueError("OU process exploration works only for continuous controls." + "The given action space is of type: {}".format(action_space.__class__.__name__)) + + def reset(self): + self.state = np.zeros(self.action_space.shape) + + def noise(self): + x = self.state + dx = self.theta * (self.mu - x) * self.dt + self.sigma * np.random.randn(len(x)) * np.sqrt(self.dt) + self.state = x + dx + return self.state + + def get_action(self, action_values: List[ActionType]) -> ActionType: + if self.phase == RunPhase.TRAIN: + noise = self.noise() + else: + noise = np.zeros(self.action_space.shape) + + action = action_values.squeeze() + noise + + return action + + def get_control_param(self): + if self.phase == RunPhase.TRAIN: + return self.state + else: + return np.zeros(self.action_space.shape)
+
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/exploration_policies/parameter_noise.html b/docs/_modules/rl_coach/exploration_policies/parameter_noise.html new file mode 100644 index 0000000..79a24c8 --- /dev/null +++ b/docs/_modules/rl_coach/exploration_policies/parameter_noise.html @@ -0,0 +1,314 @@ + + + + + + + + + + + rl_coach.exploration_policies.parameter_noise — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.exploration_policies.parameter_noise
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.exploration_policies.parameter_noise

+#
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+from typing import List, Dict
+
+import numpy as np
+
+from rl_coach.agents.dqn_agent import DQNAgentParameters
+from rl_coach.architectures.tensorflow_components.layers import NoisyNetDense
+from rl_coach.base_parameters import AgentParameters, NetworkParameters
+from rl_coach.spaces import ActionSpace, BoxActionSpace, DiscreteActionSpace
+
+from rl_coach.core_types import ActionType
+from rl_coach.exploration_policies.exploration_policy import ExplorationPolicy, ExplorationParameters
+
+
+class ParameterNoiseParameters(ExplorationParameters):
+    def __init__(self, agent_params: AgentParameters):
+        super().__init__()
+        if not isinstance(agent_params, DQNAgentParameters):
+            raise ValueError("Currently only DQN variants are supported for using an exploration type of "
+                             "ParameterNoise.")
+
+        self.network_params = agent_params.network_wrappers
+
+    @property
+    def path(self):
+        return 'rl_coach.exploration_policies.parameter_noise:ParameterNoise'
+
+
+
[docs]class ParameterNoise(ExplorationPolicy): + """ + The ParameterNoise exploration policy is intended for both discrete and continuous action spaces. + It applies the exploration policy by replacing all the dense network layers with noisy layers. + The noisy layers have both weight means and weight standard deviations, and for each forward pass of the network + the weights are sampled from a normal distribution that follows the learned weights mean and standard deviation + values. + + Warning: currently supported only by DQN variants + """ + def __init__(self, network_params: Dict[str, NetworkParameters], action_space: ActionSpace): + """ + :param action_space: the action space used by the environment + """ + super().__init__(action_space) + self.network_params = network_params + self._replace_network_dense_layers() + + def get_action(self, action_values: List[ActionType]) -> ActionType: + if type(self.action_space) == DiscreteActionSpace: + return np.argmax(action_values) + elif type(self.action_space) == BoxActionSpace: + action_values_mean = action_values[0].squeeze() + action_values_std = action_values[1].squeeze() + return np.random.normal(action_values_mean, action_values_std) + else: + raise ValueError("ActionSpace type {} is not supported for ParameterNoise.".format(type(self.action_space))) + + def get_control_param(self): + return 0 + + def _replace_network_dense_layers(self): + # replace the dense type for all the networks components (embedders, mw, heads) with a NoisyNetDense + + # NOTE: we are changing network params in a non-params class (an already instantiated class), this could have + # been prone to a bug, but since the networks are created very late in the game + # (after agent.init_environment_dependent()_modules is called) - then we are fine. + + for network_wrapper_params in self.network_params.values(): + for component_params in list(network_wrapper_params.input_embedders_parameters.values()) + \ + [network_wrapper_params.middleware_parameters] + \ + network_wrapper_params.heads_parameters: + component_params.dense_layer = NoisyNetDense
+ +
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/exploration_policies/truncated_normal.html b/docs/_modules/rl_coach/exploration_policies/truncated_normal.html new file mode 100644 index 0000000..62b5033 --- /dev/null +++ b/docs/_modules/rl_coach/exploration_policies/truncated_normal.html @@ -0,0 +1,337 @@ + + + + + + + + + + + rl_coach.exploration_policies.truncated_normal — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.exploration_policies.truncated_normal
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.exploration_policies.truncated_normal

+#
+# Copyright (c) 2017 Intel Corporation 
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+from typing import List
+
+import numpy as np
+from scipy.stats import truncnorm
+
+from rl_coach.core_types import RunPhase, ActionType
+from rl_coach.exploration_policies.exploration_policy import ExplorationPolicy, ExplorationParameters
+from rl_coach.schedules import Schedule, LinearSchedule
+from rl_coach.spaces import ActionSpace, BoxActionSpace
+
+
+class TruncatedNormalParameters(ExplorationParameters):
+    def __init__(self):
+        super().__init__()
+        self.noise_percentage_schedule = LinearSchedule(0.1, 0.1, 50000)
+        self.evaluation_noise_percentage = 0.05
+        self.clip_low = 0
+        self.clip_high = 1
+
+    @property
+    def path(self):
+        return 'rl_coach.exploration_policies.truncated_normal:TruncatedNormal'
+
+
+
[docs]class TruncatedNormal(ExplorationPolicy): + """ + The TruncatedNormal exploration policy is intended for continuous action spaces. It samples the action from a + normal distribution, where the mean action is given by the agent, and the standard deviation can be given in t + wo different ways: + 1. Specified by the user as a noise schedule which is taken in percentiles out of the action space size + 2. Specified by the agents action. In case the agents action is a list with 2 values, the 1st one is assumed to + be the mean of the action, and 2nd is assumed to be its standard deviation. + When the sampled action is outside of the action bounds given by the user, it is sampled again and again, until it + is within the bounds. + """ + def __init__(self, action_space: ActionSpace, noise_percentage_schedule: Schedule, + evaluation_noise_percentage: float, clip_low: float, clip_high: float): + """ + :param action_space: the action space used by the environment + :param noise_percentage_schedule: the schedule for the noise variance percentage relative to the absolute range + of the action space + :param evaluation_noise_percentage: the noise variance percentage that will be used during evaluation phases + """ + super().__init__(action_space) + self.noise_percentage_schedule = noise_percentage_schedule + self.evaluation_noise_percentage = evaluation_noise_percentage + self.clip_low = clip_low + self.clip_high = clip_high + + if not isinstance(action_space, BoxActionSpace): + raise ValueError("Truncated normal exploration works only for continuous controls." + "The given action space is of type: {}".format(action_space.__class__.__name__)) + + if not np.all(-np.inf < action_space.high) or not np.all(action_space.high < np.inf)\ + or not np.all(-np.inf < action_space.low) or not np.all(action_space.low < np.inf): + raise ValueError("Additive noise exploration requires bounded actions") + + # TODO: allow working with unbounded actions by defining the noise in terms of range and not percentage + + def get_action(self, action_values: List[ActionType]) -> ActionType: + # set the current noise percentage + if self.phase == RunPhase.TEST: + current_noise_precentage = self.evaluation_noise_percentage + else: + current_noise_precentage = self.noise_percentage_schedule.current_value + + # scale the noise to the action space range + action_values_std = current_noise_precentage * (self.action_space.high - self.action_space.low) + + # extract the mean values + if isinstance(action_values, list): + # the action values are expected to be a list with the action mean and optionally the action stdev + action_values_mean = action_values[0].squeeze() + else: + # the action values are expected to be a numpy array representing the action mean + action_values_mean = action_values.squeeze() + + # step the noise schedule + if self.phase == RunPhase.TRAIN: + self.noise_percentage_schedule.step() + # the second element of the list is assumed to be the standard deviation + if isinstance(action_values, list) and len(action_values) > 1: + action_values_std = action_values[1].squeeze() + + # sample from truncated normal distribution + normalized_low = (self.clip_low - action_values_mean) / action_values_std + normalized_high = (self.clip_high - action_values_mean) / action_values_std + distribution = truncnorm(normalized_low, normalized_high, loc=action_values_mean, scale=action_values_std) + action = distribution.rvs(1) + + return action + + def get_control_param(self): + return np.ones(self.action_space.shape)*self.noise_percentage_schedule.current_value
+
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/exploration_policies/ucb.html b/docs/_modules/rl_coach/exploration_policies/ucb.html new file mode 100644 index 0000000..b340ae9 --- /dev/null +++ b/docs/_modules/rl_coach/exploration_policies/ucb.html @@ -0,0 +1,319 @@ + + + + + + + + + + + rl_coach.exploration_policies.ucb — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.exploration_policies.ucb
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.exploration_policies.ucb

+#
+# Copyright (c) 2017 Intel Corporation 
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+from typing import List
+
+import numpy as np
+
+from rl_coach.core_types import RunPhase, ActionType, EnvironmentSteps
+from rl_coach.exploration_policies.additive_noise import AdditiveNoiseParameters
+from rl_coach.exploration_policies.e_greedy import EGreedy, EGreedyParameters
+from rl_coach.exploration_policies.exploration_policy import ExplorationParameters
+from rl_coach.schedules import Schedule, LinearSchedule, PieceWiseSchedule
+from rl_coach.spaces import ActionSpace
+
+
+class UCBParameters(EGreedyParameters):
+    def __init__(self):
+        super().__init__()
+        self.architecture_num_q_heads = 10
+        self.bootstrapped_data_sharing_probability = 1.0
+        self.epsilon_schedule = PieceWiseSchedule([
+            (LinearSchedule(1, 0.1, 1000000), EnvironmentSteps(1000000)),
+            (LinearSchedule(0.1, 0.01, 4000000), EnvironmentSteps(4000000))
+        ])
+        self.lamb = 0.1
+
+    @property
+    def path(self):
+        return 'rl_coach.exploration_policies.ucb:UCB'
+
+
+
[docs]class UCB(EGreedy): + """ + UCB exploration policy is following the upper confidence bound heuristic to sample actions in discrete action spaces. + It assumes that there are multiple network heads that are predicting action values, and that the standard deviation + between the heads predictions represents the uncertainty of the agent in each of the actions. + It then updates the action value estimates to by mean(actions)+lambda*stdev(actions), where lambda is + given by the user. This exploration policy aims to take advantage of the uncertainty of the agent in its predictions, + and select the action according to the tradeoff between how uncertain the agent is, and how large it predicts + the outcome from those actions to be. + """ + def __init__(self, action_space: ActionSpace, epsilon_schedule: Schedule, evaluation_epsilon: float, + architecture_num_q_heads: int, lamb: int, + continuous_exploration_policy_parameters: ExplorationParameters = AdditiveNoiseParameters()): + """ + :param action_space: the action space used by the environment + :param epsilon_schedule: a schedule for the epsilon values + :param evaluation_epsilon: the epsilon value to use for evaluation phases + :param architecture_num_q_heads: the number of q heads to select from + :param lamb: lambda coefficient for taking the standard deviation into account + :param continuous_exploration_policy_parameters: the parameters of the continuous exploration policy to use + if the e-greedy is used for a continuous policy + """ + super().__init__(action_space, epsilon_schedule, evaluation_epsilon, continuous_exploration_policy_parameters) + self.num_heads = architecture_num_q_heads + self.lamb = lamb + self.std = 0 + self.last_action_values = 0 + + def select_head(self): + pass + + def get_action(self, action_values: List[ActionType]) -> ActionType: + # action values are none in case the exploration policy is going to select a random action + if action_values is not None: + if self.requires_action_values(): + mean = np.mean(action_values, axis=0) + if self.phase == RunPhase.TRAIN: + self.std = np.std(action_values, axis=0) + self.last_action_values = mean + self.lamb * self.std + else: + self.last_action_values = mean + return super().get_action(self.last_action_values) + + def get_control_param(self): + if self.phase == RunPhase.TRAIN: + return np.mean(self.std) + else: + return 0
+
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/filters/action/attention_discretization.html b/docs/_modules/rl_coach/filters/action/attention_discretization.html new file mode 100644 index 0000000..7c11399 --- /dev/null +++ b/docs/_modules/rl_coach/filters/action/attention_discretization.html @@ -0,0 +1,300 @@ + + + + + + + + + + + rl_coach.filters.action.attention_discretization — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.filters.action.attention_discretization
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.filters.action.attention_discretization

+#
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+from typing import Union, List
+
+import numpy as np
+
+from rl_coach.filters.action.box_discretization import BoxDiscretization
+from rl_coach.filters.action.partial_discrete_action_space_map import PartialDiscreteActionSpaceMap
+from rl_coach.spaces import AttentionActionSpace, BoxActionSpace, DiscreteActionSpace
+
+
+
[docs]class AttentionDiscretization(PartialDiscreteActionSpaceMap): + """ + Discretizes an **AttentionActionSpace**. The attention action space defines the actions + as choosing sub-boxes in a given box. For example, consider an image of size 100x100, where the action is choosing + a crop window of size 20x20 to attend to in the image. AttentionDiscretization allows discretizing the possible crop + windows to choose into a finite number of options, and map a discrete action space into those crop windows. + + Warning! this will currently only work for attention spaces with 2 dimensions. + """ + def __init__(self, num_bins_per_dimension: Union[int, List[int]], force_int_bins=False): + """ + :param num_bins_per_dimension: Number of discrete bins to use for each dimension of the action space + :param force_int_bins: If set to True, all the bins will represent integer coordinates in space. + """ + # we allow specifying either a single number for all dimensions, or a single number per dimension in the target + # action space + self.num_bins_per_dimension = num_bins_per_dimension + + self.force_int_bins = force_int_bins + + # TODO: this will currently only work for attention spaces with 2 dimensions. generalize it. + + super().__init__() + + def validate_output_action_space(self, output_action_space: AttentionActionSpace): + if not isinstance(output_action_space, AttentionActionSpace): + raise ValueError("AttentionActionSpace discretization only works with an output space of type AttentionActionSpace. " + "The given output space is {}".format(output_action_space)) + + def get_unfiltered_action_space(self, output_action_space: AttentionActionSpace) -> DiscreteActionSpace: + if isinstance(self.num_bins_per_dimension, int): + self.num_bins_per_dimension = [self.num_bins_per_dimension] * output_action_space.shape[0] + + # create a discrete to linspace map to ease the extraction of attention actions + discrete_to_box = BoxDiscretization([n+1 for n in self.num_bins_per_dimension], + self.force_int_bins) + discrete_to_box.get_unfiltered_action_space(BoxActionSpace(output_action_space.shape, + output_action_space.low, + output_action_space.high), ) + + rows, cols = self.num_bins_per_dimension + start_ind = [i * (cols + 1) + j for i in range(rows + 1) if i < rows for j in range(cols + 1) if j < cols] + end_ind = [i + cols + 2 for i in start_ind] + self.target_actions = [np.array([discrete_to_box.target_actions[start], + discrete_to_box.target_actions[end]]) + for start, end in zip(start_ind, end_ind)] + + return super().get_unfiltered_action_space(output_action_space)
+
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/filters/action/box_discretization.html b/docs/_modules/rl_coach/filters/action/box_discretization.html new file mode 100644 index 0000000..553dbd2 --- /dev/null +++ b/docs/_modules/rl_coach/filters/action/box_discretization.html @@ -0,0 +1,300 @@ + + + + + + + + + + + rl_coach.filters.action.box_discretization — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.filters.action.box_discretization
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.filters.action.box_discretization

+#
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+from itertools import product
+from typing import Union, List
+
+import numpy as np
+
+from rl_coach.filters.action.partial_discrete_action_space_map import PartialDiscreteActionSpaceMap
+from rl_coach.spaces import BoxActionSpace, DiscreteActionSpace
+
+
+
[docs]class BoxDiscretization(PartialDiscreteActionSpaceMap): + """ + Discretizes a continuous action space into a discrete action space, allowing the usage of + agents such as DQN for continuous environments such as MuJoCo. Given the number of bins to discretize into, the + original continuous action space is uniformly separated into the given number of bins, each mapped to a discrete + action index. Each discrete action is mapped to a single N dimensional action in the BoxActionSpace action space. + For example, if the original actions space is between -1 and 1 and 5 bins were selected, the new action + space will consist of 5 actions mapped to -1, -0.5, 0, 0.5 and 1. + """ + def __init__(self, num_bins_per_dimension: Union[int, List[int]], force_int_bins=False): + """ + :param num_bins_per_dimension: The number of bins to use for each dimension of the target action space. + The bins will be spread out uniformly over this space + :param force_int_bins: force the bins to represent only integer actions. for example, if the action space is in + the range 0-10 and there are 5 bins, then the bins will be placed at 0, 2, 5, 7, 10, + instead of 0, 2.5, 5, 7.5, 10. + """ + # we allow specifying either a single number for all dimensions, or a single number per dimension in the target + # action space + self.num_bins_per_dimension = num_bins_per_dimension + self.force_int_bins = force_int_bins + super().__init__() + + def validate_output_action_space(self, output_action_space: BoxActionSpace): + if not isinstance(output_action_space, BoxActionSpace): + raise ValueError("BoxActionSpace discretization only works with an output space of type BoxActionSpace. " + "The given output space is {}".format(output_action_space)) + + if len(self.num_bins_per_dimension) != output_action_space.shape: + # TODO: this check is not sufficient. it does not deal with actions spaces with more than one axis + raise ValueError("The length of the list of bins per dimension ({}) does not match the number of " + "dimensions in the action space ({})" + .format(len(self.num_bins_per_dimension), output_action_space)) + + def get_unfiltered_action_space(self, output_action_space: BoxActionSpace) -> DiscreteActionSpace: + if isinstance(self.num_bins_per_dimension, int): + self.num_bins_per_dimension = np.ones(output_action_space.shape) * self.num_bins_per_dimension + + bins = [] + for i in range(len(output_action_space.low)): + dim_bins = np.linspace(output_action_space.low[i], output_action_space.high[i], + self.num_bins_per_dimension[i]) + if self.force_int_bins: + dim_bins = dim_bins.astype(int) + bins.append(dim_bins) + self.target_actions = [list(action) for action in list(product(*bins))] + + return super().get_unfiltered_action_space(output_action_space)
+
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/filters/action/box_masking.html b/docs/_modules/rl_coach/filters/action/box_masking.html new file mode 100644 index 0000000..552de5d --- /dev/null +++ b/docs/_modules/rl_coach/filters/action/box_masking.html @@ -0,0 +1,308 @@ + + + + + + + + + + + rl_coach.filters.action.box_masking — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.filters.action.box_masking
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.filters.action.box_masking

+#
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+from typing import Union
+
+import numpy as np
+
+from rl_coach.core_types import ActionType
+from rl_coach.filters.action.action_filter import ActionFilter
+from rl_coach.spaces import BoxActionSpace
+
+
+
[docs]class BoxMasking(ActionFilter): + """ + Masks part of the action space to enforce the agent to work in a defined space. For example, + if the original action space is between -1 and 1, then this filter can be used in order to constrain the agent actions + to the range 0 and 1 instead. This essentially masks the range -1 and 0 from the agent. + The resulting action space will be shifted and will always start from 0 and have the size of the unmasked area. + """ + def __init__(self, + masked_target_space_low: Union[None, int, float, np.ndarray], + masked_target_space_high: Union[None, int, float, np.ndarray]): + """ + :param masked_target_space_low: the lowest values that can be chosen in the target action space + :param masked_target_space_high: the highest values that can be chosen in the target action space + """ + self.masked_target_space_low = masked_target_space_low + self.masked_target_space_high = masked_target_space_high + self.offset = masked_target_space_low + super().__init__() + + def set_masking(self, masked_target_space_low: Union[None, int, float, np.ndarray], + masked_target_space_high: Union[None, int, float, np.ndarray]): + self.masked_target_space_low = masked_target_space_low + self.masked_target_space_high = masked_target_space_high + self.offset = masked_target_space_low + if self.output_action_space: + self.validate_output_action_space(self.output_action_space) + self.input_action_space = BoxActionSpace(self.output_action_space.shape, + low=0, + high=self.masked_target_space_high - self.masked_target_space_low) + + def validate_output_action_space(self, output_action_space: BoxActionSpace): + if not isinstance(output_action_space, BoxActionSpace): + raise ValueError("BoxActionSpace discretization only works with an output space of type BoxActionSpace. " + "The given output space is {}".format(output_action_space)) + if self.masked_target_space_low is None or self.masked_target_space_high is None: + raise ValueError("The masking target space size was not set. Please call set_masking.") + if not (np.all(output_action_space.low <= self.masked_target_space_low) + and np.all(self.masked_target_space_low <= output_action_space.high)): + raise ValueError("The low values for masking the action space ({}) are not within the range of the " + "target space (low = {}, high = {})" + .format(self.masked_target_space_low, output_action_space.low, output_action_space.high)) + if not (np.all(output_action_space.low <= self.masked_target_space_high) + and np.all(self.masked_target_space_high <= output_action_space.high)): + raise ValueError("The high values for masking the action space ({}) are not within the range of the " + "target space (low = {}, high = {})" + .format(self.masked_target_space_high, output_action_space.low, output_action_space.high)) + + def get_unfiltered_action_space(self, output_action_space: BoxActionSpace) -> BoxActionSpace: + self.output_action_space = output_action_space + self.input_action_space = BoxActionSpace(output_action_space.shape, + low=0, + high=self.masked_target_space_high - self.masked_target_space_low) + return self.input_action_space + + def filter(self, action: ActionType) -> ActionType: + return action + self.offset
+
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/filters/action/full_discrete_action_space_map.html b/docs/_modules/rl_coach/filters/action/full_discrete_action_space_map.html new file mode 100644 index 0000000..a6c6e9c --- /dev/null +++ b/docs/_modules/rl_coach/filters/action/full_discrete_action_space_map.html @@ -0,0 +1,261 @@ + + + + + + + + + + + rl_coach.filters.action.full_discrete_action_space_map — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.filters.action.full_discrete_action_space_map
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.filters.action.full_discrete_action_space_map

+#
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+from rl_coach.filters.action.partial_discrete_action_space_map import PartialDiscreteActionSpaceMap
+from rl_coach.spaces import ActionSpace, DiscreteActionSpace
+
+
+
[docs]class FullDiscreteActionSpaceMap(PartialDiscreteActionSpaceMap): + """ + Full map of two countable action spaces. This works in a similar way to the + PartialDiscreteActionSpaceMap, but maps the entire source action space into the entire target action space, without + masking any actions. + For example, if there are 10 multiselect actions in the output space, the actions 0-9 will be mapped to those + multiselect actions. + """ + def __init__(self): + super().__init__() + + def get_unfiltered_action_space(self, output_action_space: ActionSpace) -> DiscreteActionSpace: + self.target_actions = output_action_space.actions + return super().get_unfiltered_action_space(output_action_space)
+
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/filters/action/linear_box_to_box_map.html b/docs/_modules/rl_coach/filters/action/linear_box_to_box_map.html new file mode 100644 index 0000000..1ae9263 --- /dev/null +++ b/docs/_modules/rl_coach/filters/action/linear_box_to_box_map.html @@ -0,0 +1,289 @@ + + + + + + + + + + + rl_coach.filters.action.linear_box_to_box_map — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.filters.action.linear_box_to_box_map
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.filters.action.linear_box_to_box_map

+#
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+from typing import Union
+
+import numpy as np
+
+from rl_coach.core_types import ActionType
+from rl_coach.filters.action.action_filter import ActionFilter
+from rl_coach.spaces import BoxActionSpace
+
+
+
[docs]class LinearBoxToBoxMap(ActionFilter): + """ + A linear mapping of two box action spaces. For example, if the action space of the + environment consists of continuous actions between 0 and 1, and we want the agent to choose actions between -1 and 1, + the LinearBoxToBoxMap can be used to map the range -1 and 1 to the range 0 and 1 in a linear way. This means that the + action -1 will be mapped to 0, the action 1 will be mapped to 1, and the rest of the actions will be linearly mapped + between those values. + """ + def __init__(self, + input_space_low: Union[None, int, float, np.ndarray], + input_space_high: Union[None, int, float, np.ndarray]): + """ + :param input_space_low: the low values of the desired action space + :param input_space_high: the high values of the desired action space + """ + self.input_space_low = input_space_low + self.input_space_high = input_space_high + self.rescale = None + self.offset = None + super().__init__() + + def validate_output_action_space(self, output_action_space: BoxActionSpace): + if not isinstance(output_action_space, BoxActionSpace): + raise ValueError("BoxActionSpace discretization only works with an output space of type BoxActionSpace. " + "The given output space is {}".format(output_action_space)) + + def get_unfiltered_action_space(self, output_action_space: BoxActionSpace) -> BoxActionSpace: + self.input_action_space = BoxActionSpace(output_action_space.shape, self.input_space_low, self.input_space_high) + self.rescale = \ + (output_action_space.high - output_action_space.low) / (self.input_space_high - self.input_space_low) + self.offset = output_action_space.low - self.input_space_low + self.output_action_space = output_action_space + return self.input_action_space + + def filter(self, action: ActionType) -> ActionType: + return self.output_action_space.low + (action - self.input_space_low) * self.rescale
+ +
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/filters/action/partial_discrete_action_space_map.html b/docs/_modules/rl_coach/filters/action/partial_discrete_action_space_map.html new file mode 100644 index 0000000..acd17e2 --- /dev/null +++ b/docs/_modules/rl_coach/filters/action/partial_discrete_action_space_map.html @@ -0,0 +1,286 @@ + + + + + + + + + + + rl_coach.filters.action.partial_discrete_action_space_map — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.filters.action.partial_discrete_action_space_map
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.filters.action.partial_discrete_action_space_map

+#
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+from typing import List
+
+from rl_coach.core_types import ActionType
+from rl_coach.filters.action.action_filter import ActionFilter
+from rl_coach.spaces import DiscreteActionSpace, ActionSpace
+
+
+
[docs]class PartialDiscreteActionSpaceMap(ActionFilter): + """ + Partial map of two countable action spaces. For example, consider an environment + with a MultiSelect action space (select multiple actions at the same time, such as jump and go right), with 8 actual + MultiSelect actions. If we want the agent to be able to select only 5 of those actions by their index (0-4), we can + map a discrete action space with 5 actions into the 5 selected MultiSelect actions. This will both allow the agent to + use regular discrete actions, and mask 3 of the actions from the agent. + """ + def __init__(self, target_actions: List[ActionType]=None, descriptions: List[str]=None): + """ + :param target_actions: A partial list of actions from the target space to map to. + :param descriptions: a list of descriptions of each of the actions + """ + self.target_actions = target_actions + self.descriptions = descriptions + super().__init__() + + def validate_output_action_space(self, output_action_space: ActionSpace): + if not self.target_actions: + raise ValueError("The target actions were not set") + for v in self.target_actions: + if not output_action_space.val_matches_space_definition(v): + raise ValueError("The values in the output actions ({}) do not match the output action " + "space definition ({})".format(v, output_action_space)) + + def get_unfiltered_action_space(self, output_action_space: ActionSpace) -> DiscreteActionSpace: + self.output_action_space = output_action_space + self.input_action_space = DiscreteActionSpace(len(self.target_actions), self.descriptions) + return self.input_action_space + + def filter(self, action: ActionType) -> ActionType: + return self.target_actions[action] + + def reverse_filter(self, action: ActionType) -> ActionType: + return [(action == x).all() for x in self.target_actions].index(True)
+ +
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/filters/observation/observation_clipping_filter.html b/docs/_modules/rl_coach/filters/observation/observation_clipping_filter.html new file mode 100644 index 0000000..f750adc --- /dev/null +++ b/docs/_modules/rl_coach/filters/observation/observation_clipping_filter.html @@ -0,0 +1,274 @@ + + + + + + + + + + + rl_coach.filters.observation.observation_clipping_filter — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.filters.observation.observation_clipping_filter
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.filters.observation.observation_clipping_filter

+#
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+
+import numpy as np
+
+from rl_coach.core_types import ObservationType
+from rl_coach.filters.observation.observation_filter import ObservationFilter
+from rl_coach.spaces import ObservationSpace
+
+
+
[docs]class ObservationClippingFilter(ObservationFilter): + """ + Clips the observation values to a given range of values. + For example, if the observation consists of measurements in an arbitrary range, + and we want to control the minimum and maximum values of these observations, + we can define a range and clip the values of the measurements. + """ + def __init__(self, clipping_low: float=-np.inf, clipping_high: float=np.inf): + """ + :param clipping_low: The minimum value to allow after normalizing the observation + :param clipping_high: The maximum value to allow after normalizing the observation + """ + super().__init__() + self.clip_min = clipping_low + self.clip_max = clipping_high + + def filter(self, observation: ObservationType, update_internal_state: bool=True) -> ObservationType: + observation = np.clip(observation, self.clip_min, self.clip_max) + + return observation + + def get_filtered_observation_space(self, input_observation_space: ObservationSpace) -> ObservationSpace: + return input_observation_space
+
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/filters/observation/observation_crop_filter.html b/docs/_modules/rl_coach/filters/observation/observation_crop_filter.html new file mode 100644 index 0000000..b8f926c --- /dev/null +++ b/docs/_modules/rl_coach/filters/observation/observation_crop_filter.html @@ -0,0 +1,321 @@ + + + + + + + + + + + rl_coach.filters.observation.observation_crop_filter — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.filters.observation.observation_crop_filter
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.filters.observation.observation_crop_filter

+#
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+from typing import Union, Tuple
+
+import numpy as np
+
+from rl_coach.core_types import ObservationType
+from rl_coach.filters.observation.observation_filter import ObservationFilter
+from rl_coach.spaces import ObservationSpace
+
+
+
[docs]class ObservationCropFilter(ObservationFilter): + """ + Crops the size of the observation to a given crop window. For example, in Atari, the + observations are images with a shape of 210x160. Usually, we will want to crop the size of the observation to a + square of 160x160 before rescaling them. + """ + def __init__(self, crop_low: np.ndarray=None, crop_high: np.ndarray=None): + """ + :param crop_low: a vector where each dimension describes the start index for cropping the observation in the + corresponding dimension. a negative value of -1 will be mapped to the max size + :param crop_high: a vector where each dimension describes the end index for cropping the observation in the + corresponding dimension. a negative value of -1 will be mapped to the max size + """ + super().__init__() + if crop_low is None and crop_high is None: + raise ValueError("At least one of crop_low and crop_high should be set to a real value. ") + if crop_low is None: + crop_low = np.array([0] * len(crop_high)) + if crop_high is None: + crop_high = np.array([-1] * len(crop_low)) + + self.crop_low = crop_low + self.crop_high = crop_high + + for h, l in zip(crop_high, crop_low): + if h < l and h != -1: + raise ValueError("Some of the cropping low values are higher than cropping high values") + if np.any(crop_high < -1) or np.any(crop_low < -1): + raise ValueError("Cropping values cannot be negative") + if crop_low.shape != crop_high.shape: + raise ValueError("The low values and high values for cropping must have the same number of dimensions") + if crop_low.dtype != int or crop_high.dtype != int: + raise ValueError("The crop values should be int values, instead they are defined as: {} and {}" + .format(crop_low.dtype, crop_high.dtype)) + + def _replace_negative_one_in_crop_size(self, crop_size: np.ndarray, observation_shape: Union[Tuple, np.ndarray]): + # replace -1 with the max size + crop_size = crop_size.copy() + for i in range(len(observation_shape)): + if crop_size[i] == -1: + crop_size[i] = observation_shape[i] + return crop_size + + def validate_input_observation_space(self, input_observation_space: ObservationSpace): + crop_high = self._replace_negative_one_in_crop_size(self.crop_high, input_observation_space.shape) + crop_low = self._replace_negative_one_in_crop_size(self.crop_low, input_observation_space.shape) + if np.any(crop_high > input_observation_space.shape) or \ + np.any(crop_low > input_observation_space.shape): + raise ValueError("The cropping values are outside of the observation space") + if not input_observation_space.is_point_in_space_shape(crop_low) or \ + not input_observation_space.is_point_in_space_shape(crop_high - 1): + raise ValueError("The cropping indices are outside of the observation space") + + def filter(self, observation: ObservationType, update_internal_state: bool=True) -> ObservationType: + # replace -1 with the max size + crop_high = self._replace_negative_one_in_crop_size(self.crop_high, observation.shape) + crop_low = self._replace_negative_one_in_crop_size(self.crop_low, observation.shape) + + # crop + indices = [slice(i, j) for i, j in zip(crop_low, crop_high)] + observation = observation[indices] + return observation + + def get_filtered_observation_space(self, input_observation_space: ObservationSpace) -> ObservationSpace: + # replace -1 with the max size + crop_high = self._replace_negative_one_in_crop_size(self.crop_high, input_observation_space.shape) + crop_low = self._replace_negative_one_in_crop_size(self.crop_low, input_observation_space.shape) + + input_observation_space.shape = crop_high - crop_low + return input_observation_space
+
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/filters/observation/observation_move_axis_filter.html b/docs/_modules/rl_coach/filters/observation/observation_move_axis_filter.html new file mode 100644 index 0000000..8a3c193 --- /dev/null +++ b/docs/_modules/rl_coach/filters/observation/observation_move_axis_filter.html @@ -0,0 +1,294 @@ + + + + + + + + + + + rl_coach.filters.observation.observation_move_axis_filter — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.filters.observation.observation_move_axis_filter
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.filters.observation.observation_move_axis_filter

+#
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+import numpy as np
+
+from rl_coach.core_types import ObservationType
+from rl_coach.filters.observation.observation_filter import ObservationFilter
+from rl_coach.spaces import ObservationSpace, PlanarMapsObservationSpace
+
+
+
[docs]class ObservationMoveAxisFilter(ObservationFilter): + """ + Reorders the axes of the observation. This can be useful when the observation is an + image, and we want to move the channel axis to be the last axis instead of the first axis. + """ + def __init__(self, axis_origin: int = None, axis_target: int=None): + """ + :param axis_origin: The axis to move + :param axis_target: Where to move the selected axis to + """ + super().__init__() + self.axis_origin = axis_origin + self.axis_target = axis_target + + def validate_input_observation_space(self, input_observation_space: ObservationSpace): + shape = input_observation_space.shape + if not -len(shape) <= self.axis_origin < len(shape) or not -len(shape) <= self.axis_target < len(shape): + raise ValueError("The given axis does not exist in the context of the input observation shape. ") + + def filter(self, observation: ObservationType, update_internal_state: bool=True) -> ObservationType: + return np.moveaxis(observation, self.axis_origin, self.axis_target) + + def get_filtered_observation_space(self, input_observation_space: ObservationSpace) -> ObservationSpace: + axis_size = input_observation_space.shape[self.axis_origin] + input_observation_space.shape = np.delete(input_observation_space.shape, self.axis_origin) + if self.axis_target == -1: + input_observation_space.shape = np.append(input_observation_space.shape, axis_size) + elif self.axis_target < -1: + input_observation_space.shape = np.insert(input_observation_space.shape, self.axis_target+1, axis_size) + else: + input_observation_space.shape = np.insert(input_observation_space.shape, self.axis_target, axis_size) + + # move the channels axis according to the axis change + if isinstance(input_observation_space, PlanarMapsObservationSpace): + if input_observation_space.channels_axis == self.axis_origin: + input_observation_space.channels_axis = self.axis_target + elif input_observation_space.channels_axis == self.axis_target: + input_observation_space.channels_axis = self.axis_origin + elif self.axis_origin < input_observation_space.channels_axis < self.axis_target: + input_observation_space.channels_axis -= 1 + elif self.axis_target < input_observation_space.channels_axis < self.axis_origin: + input_observation_space.channels_axis += 1 + + return input_observation_space
+
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/filters/observation/observation_normalization_filter.html b/docs/_modules/rl_coach/filters/observation/observation_normalization_filter.html new file mode 100644 index 0000000..bc57068 --- /dev/null +++ b/docs/_modules/rl_coach/filters/observation/observation_normalization_filter.html @@ -0,0 +1,302 @@ + + + + + + + + + + + rl_coach.filters.observation.observation_normalization_filter — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.filters.observation.observation_normalization_filter
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.filters.observation.observation_normalization_filter

+#
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+from typing import List
+
+import numpy as np
+
+from rl_coach.architectures.tensorflow_components.shared_variables import SharedRunningStats
+from rl_coach.core_types import ObservationType
+from rl_coach.filters.observation.observation_filter import ObservationFilter
+from rl_coach.spaces import ObservationSpace
+
+
+
[docs]class ObservationNormalizationFilter(ObservationFilter): + """ + Normalizes the observation values with a running mean and standard deviation of + all the observations seen so far. The normalization is performed element-wise. Additionally, when working with + multiple workers, the statistics used for the normalization operation are accumulated over all the workers. + """ + def __init__(self, clip_min: float=-5.0, clip_max: float=5.0, name='observation_stats'): + """ + :param clip_min: The minimum value to allow after normalizing the observation + :param clip_max: The maximum value to allow after normalizing the observation + """ + super().__init__() + self.clip_min = clip_min + self.clip_max = clip_max + self.running_observation_stats = None + self.name = name + self.supports_batching = True + self.observation_space = None + + def set_device(self, device, memory_backend_params=None) -> None: + """ + An optional function that allows the filter to get the device if it is required to use tensorflow ops + :param device: the device to use + :return: None + """ + self.running_observation_stats = SharedRunningStats(device, name=self.name, create_ops=False, + pubsub_params=memory_backend_params) + + def set_session(self, sess) -> None: + """ + An optional function that allows the filter to get the session if it is required to use tensorflow ops + :param sess: the session + :return: None + """ + self.running_observation_stats.set_session(sess) + + def filter(self, observations: List[ObservationType], update_internal_state: bool=True) -> ObservationType: + observations = np.array(observations) + if update_internal_state: + self.running_observation_stats.push(observations) + self.last_mean = self.running_observation_stats.mean + self.last_stdev = self.running_observation_stats.std + + # TODO: make sure that a batch is given here + return self.running_observation_stats.normalize(observations) + + def get_filtered_observation_space(self, input_observation_space: ObservationSpace) -> ObservationSpace: + self.running_observation_stats.create_ops(shape=input_observation_space.shape, + clip_values=(self.clip_min, self.clip_max)) + return input_observation_space
+
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/filters/observation/observation_reduction_by_sub_parts_name_filter.html b/docs/_modules/rl_coach/filters/observation/observation_reduction_by_sub_parts_name_filter.html new file mode 100644 index 0000000..f997686 --- /dev/null +++ b/docs/_modules/rl_coach/filters/observation/observation_reduction_by_sub_parts_name_filter.html @@ -0,0 +1,308 @@ + + + + + + + + + + + rl_coach.filters.observation.observation_reduction_by_sub_parts_name_filter — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.filters.observation.observation_reduction_by_sub_parts_name_filter
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.filters.observation.observation_reduction_by_sub_parts_name_filter

+#
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+import copy
+from enum import Enum
+from typing import List
+
+import numpy as np
+
+from rl_coach.core_types import ObservationType
+from rl_coach.filters.observation.observation_filter import ObservationFilter
+from rl_coach.spaces import ObservationSpace, VectorObservationSpace
+
+
+
[docs]class ObservationReductionBySubPartsNameFilter(ObservationFilter): + """ + Allows keeping only parts of the observation, by specifying their + name. This is useful when the environment has a measurements vector as observation which includes several different + measurements, but you want the agent to only see some of the measurements and not all. + For example, the CARLA environment extracts multiple measurements that can be used by the agent, such as + speed and location. If we want to only use the speed, it can be done using this filter. + This will currently work only for VectorObservationSpace observations + """ + class ReductionMethod(Enum): + Keep = 0 + Discard = 1 + + def __init__(self, part_names: List[str], reduction_method: ReductionMethod): + """ + :param part_names: A list of part names to reduce + :param reduction_method: A reduction method to use - keep or discard the given parts + """ + super().__init__() + self.part_names = part_names + self.reduction_method = reduction_method + self.measurement_names = None + self.indices_to_keep = None + + def filter(self, observation: ObservationType, update_internal_state: bool=True) -> ObservationType: + if not isinstance(observation, np.ndarray): + raise ValueError("All the state values are expected to be numpy arrays") + if self.indices_to_keep is None: + raise ValueError("To use ObservationReductionBySubPartsNameFilter, the get_filtered_observation_space " + "function should be called before filtering an observation") + observation = observation[..., self.indices_to_keep] + return observation + + def validate_input_observation_space(self, input_observation_space: ObservationSpace): + if not isinstance(input_observation_space, VectorObservationSpace): + raise ValueError("The ObservationReductionBySubPartsNameFilter support only VectorObservationSpace " + "observations. The given observation space was: {}" + .format(input_observation_space.__class__)) + + def get_filtered_observation_space(self, input_observation_space: VectorObservationSpace) -> ObservationSpace: + self.measurement_names = copy.copy(input_observation_space.measurements_names) + + if self.reduction_method == self.ReductionMethod.Keep: + input_observation_space.shape[-1] = len(self.part_names) + self.indices_to_keep = [idx for idx, val in enumerate(self.measurement_names) if val in self.part_names] + input_observation_space.measurements_names = copy.copy(self.part_names) + elif self.reduction_method == self.ReductionMethod.Discard: + input_observation_space.shape[-1] -= len(self.part_names) + self.indices_to_keep = [idx for idx, val in enumerate(self.measurement_names) if val not in self.part_names] + input_observation_space.measurements_names = [val for val in input_observation_space.measurements_names if + val not in self.part_names] + else: + raise ValueError("The given reduction method is not supported") + + return input_observation_space
+
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/filters/observation/observation_rescale_size_by_factor_filter.html b/docs/_modules/rl_coach/filters/observation/observation_rescale_size_by_factor_filter.html new file mode 100644 index 0000000..3e7f311 --- /dev/null +++ b/docs/_modules/rl_coach/filters/observation/observation_rescale_size_by_factor_filter.html @@ -0,0 +1,300 @@ + + + + + + + + + + + rl_coach.filters.observation.observation_rescale_size_by_factor_filter — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.filters.observation.observation_rescale_size_by_factor_filter
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.filters.observation.observation_rescale_size_by_factor_filter

+#
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+from enum import Enum
+
+import scipy.ndimage
+
+from rl_coach.core_types import ObservationType
+from rl_coach.filters.observation.observation_filter import ObservationFilter
+from rl_coach.spaces import ObservationSpace
+
+
+# imresize interpolation types as defined by scipy here:
+# https://docs.scipy.org/doc/scipy-0.18.1/reference/generated/scipy.misc.imresize.html
+class RescaleInterpolationType(Enum):
+    NEAREST = 'nearest'
+    LANCZOS = 'lanczos'
+    BILINEAR = 'bilinear'
+    BICUBIC = 'bicubic'
+    CUBIC = 'cubic'
+
+
+
[docs]class ObservationRescaleSizeByFactorFilter(ObservationFilter): + """ + Rescales an image observation by some factor. For example, the image size + can be reduced by a factor of 2. + Warning: this requires the input observation to be of type uint8 due to scipy requirements! + """ + def __init__(self, rescale_factor: float, rescaling_interpolation_type: RescaleInterpolationType): + """ + :param rescale_factor: the factor by which the observation will be rescaled + :param rescaling_interpolation_type: the interpolation type for rescaling + """ + super().__init__() + self.rescale_factor = float(rescale_factor) # scipy requires float scale factors + self.rescaling_interpolation_type = rescaling_interpolation_type + # TODO: allow selecting the channels dim + + def validate_input_observation_space(self, input_observation_space: ObservationSpace): + if not 2 <= input_observation_space.num_dimensions <= 3: + raise ValueError("The rescale filter only applies to image observations where the number of dimensions is" + "either 2 (grayscale) or 3 (RGB). The number of dimensions defined for the " + "output observation was {}".format(input_observation_space.num_dimensions)) + if input_observation_space.num_dimensions == 3 and input_observation_space.shape[-1] != 3: + raise ValueError("Observations with 3 dimensions must have 3 channels in the last axis (RGB)") + + def filter(self, observation: ObservationType, update_internal_state: bool=True) -> ObservationType: + # scipy works only with uint8 + observation = observation.astype('uint8') + + # rescale + observation = scipy.misc.imresize(observation, + self.rescale_factor, + interp=self.rescaling_interpolation_type.value) + + return observation + + def get_filtered_observation_space(self, input_observation_space: ObservationSpace) -> ObservationSpace: + input_observation_space.shape[:2] = (input_observation_space.shape[:2] * self.rescale_factor).astype('int') + return input_observation_space
+
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/filters/observation/observation_rescale_to_size_filter.html b/docs/_modules/rl_coach/filters/observation/observation_rescale_to_size_filter.html new file mode 100644 index 0000000..922f0e5 --- /dev/null +++ b/docs/_modules/rl_coach/filters/observation/observation_rescale_to_size_filter.html @@ -0,0 +1,326 @@ + + + + + + + + + + + rl_coach.filters.observation.observation_rescale_to_size_filter — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.filters.observation.observation_rescale_to_size_filter
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.filters.observation.observation_rescale_to_size_filter

+#
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+import copy
+from enum import Enum
+
+import numpy as np
+import scipy.ndimage
+
+from rl_coach.core_types import ObservationType
+from rl_coach.filters.observation.observation_filter import ObservationFilter
+from rl_coach.spaces import ObservationSpace, PlanarMapsObservationSpace, ImageObservationSpace
+
+
+# imresize interpolation types as defined by scipy here:
+# https://docs.scipy.org/doc/scipy-0.18.1/reference/generated/scipy.misc.imresize.html
+class RescaleInterpolationType(Enum):
+    NEAREST = 'nearest'
+    LANCZOS = 'lanczos'
+    BILINEAR = 'bilinear'
+    BICUBIC = 'bicubic'
+    CUBIC = 'cubic'
+
+
+
[docs]class ObservationRescaleToSizeFilter(ObservationFilter): + """ + Rescales an image observation to a given size. The target size does not + necessarily keep the aspect ratio of the original observation. + Warning: this requires the input observation to be of type uint8 due to scipy requirements! + """ + def __init__(self, output_observation_space: PlanarMapsObservationSpace, + rescaling_interpolation_type: RescaleInterpolationType=RescaleInterpolationType.BILINEAR): + """ + :param output_observation_space: the output observation space + :param rescaling_interpolation_type: the interpolation type for rescaling + """ + super().__init__() + self.output_observation_space = output_observation_space + self.rescaling_interpolation_type = rescaling_interpolation_type + + if not isinstance(output_observation_space, PlanarMapsObservationSpace): + raise ValueError("The rescale filter only applies to observation spaces that inherit from " + "PlanarMapsObservationSpace. This includes observations which consist of a set of 2D " + "images or an RGB image. Instead the output observation space was defined as: {}" + .format(output_observation_space.__class__)) + + self.planar_map_output_shape = copy.copy(self.output_observation_space.shape) + self.planar_map_output_shape = np.delete(self.planar_map_output_shape, + self.output_observation_space.channels_axis) + + def validate_input_observation_space(self, input_observation_space: ObservationSpace): + if not isinstance(input_observation_space, PlanarMapsObservationSpace): + raise ValueError("The rescale filter only applies to observation spaces that inherit from " + "PlanarMapsObservationSpace. This includes observations which consist of a set of 2D " + "images or an RGB image. Instead the input observation space was defined as: {}" + .format(input_observation_space.__class__)) + if input_observation_space.shape[input_observation_space.channels_axis] \ + != self.output_observation_space.shape[self.output_observation_space.channels_axis]: + raise ValueError("The number of channels between the input and output observation spaces must match. " + "Instead the number of channels were: {}, {}" + .format(input_observation_space.shape[input_observation_space.channels_axis], + self.output_observation_space.shape[self.output_observation_space.channels_axis])) + + def filter(self, observation: ObservationType, update_internal_state: bool=True) -> ObservationType: + # scipy works only with uint8 + observation = observation.astype('uint8') + + # rescale + if isinstance(self.output_observation_space, ImageObservationSpace): + observation = scipy.misc.imresize(observation, + tuple(self.output_observation_space.shape), + interp=self.rescaling_interpolation_type.value) + else: + new_observation = [] + for i in range(self.output_observation_space.shape[self.output_observation_space.channels_axis]): + new_observation.append(scipy.misc.imresize(observation.take(i, self.output_observation_space.channels_axis), + tuple(self.planar_map_output_shape), + interp=self.rescaling_interpolation_type.value)) + new_observation = np.array(new_observation) + observation = new_observation.swapaxes(0, self.output_observation_space.channels_axis) + + return observation + + def get_filtered_observation_space(self, input_observation_space: ObservationSpace) -> ObservationSpace: + input_observation_space.shape = self.output_observation_space.shape + return input_observation_space
+
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/filters/observation/observation_rgb_to_y_filter.html b/docs/_modules/rl_coach/filters/observation/observation_rgb_to_y_filter.html new file mode 100644 index 0000000..cf4081b --- /dev/null +++ b/docs/_modules/rl_coach/filters/observation/observation_rgb_to_y_filter.html @@ -0,0 +1,278 @@ + + + + + + + + + + + rl_coach.filters.observation.observation_rgb_to_y_filter — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.filters.observation.observation_rgb_to_y_filter
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.filters.observation.observation_rgb_to_y_filter

+#
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+from rl_coach.core_types import ObservationType
+from rl_coach.filters.observation.observation_filter import ObservationFilter
+from rl_coach.spaces import ObservationSpace
+
+
+
[docs]class ObservationRGBToYFilter(ObservationFilter): + """ + Converts a color image observation specified using the RGB encoding into a grayscale + image observation, by keeping only the luminance (Y) channel of the YUV encoding. This can be useful if the colors + in the original image are not relevant for solving the task at hand. + The channels axis is assumed to be the last axis + """ + def __init__(self): + super().__init__() + + def validate_input_observation_space(self, input_observation_space: ObservationSpace): + if input_observation_space.num_dimensions != 3: + raise ValueError("The rescale filter only applies to image observations where the number of dimensions is" + "3 (RGB). The number of dimensions defined for the input observation was {}" + .format(input_observation_space.num_dimensions)) + if input_observation_space.shape[-1] != 3: + raise ValueError("The observation space is expected to have 3 channels in the 1st dimension. The number of " + "dimensions received is {}".format(input_observation_space.shape[-1])) + + def filter(self, observation: ObservationType, update_internal_state: bool=True) -> ObservationType: + + # rgb to y + r, g, b = observation[:, :, 0], observation[:, :, 1], observation[:, :, 2] + observation = 0.2989 * r + 0.5870 * g + 0.1140 * b + + return observation + + def get_filtered_observation_space(self, input_observation_space: ObservationSpace) -> ObservationSpace: + input_observation_space.shape = input_observation_space.shape[:-1] + return input_observation_space
+
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/filters/observation/observation_squeeze_filter.html b/docs/_modules/rl_coach/filters/observation/observation_squeeze_filter.html new file mode 100644 index 0000000..d9c0445 --- /dev/null +++ b/docs/_modules/rl_coach/filters/observation/observation_squeeze_filter.html @@ -0,0 +1,276 @@ + + + + + + + + + + + rl_coach.filters.observation.observation_squeeze_filter — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.filters.observation.observation_squeeze_filter
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.filters.observation.observation_squeeze_filter

+#
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+import numpy as np
+
+from rl_coach.core_types import ObservationType
+from rl_coach.filters.observation.observation_filter import ObservationFilter
+from rl_coach.spaces import ObservationSpace
+
+
+
[docs]class ObservationSqueezeFilter(ObservationFilter): + """ + Removes redundant axes from the observation, which are axes with a dimension of 1. + """ + def __init__(self, axis: int = None): + """ + :param axis: Specifies which axis to remove. If set to None, all the axes of size 1 will be removed. + """ + super().__init__() + self.axis = axis + + def validate_input_observation_space(self, input_observation_space: ObservationSpace): + if self.axis is None: + return + + shape = input_observation_space.shape + if self.axis >= len(shape) or self.axis < -len(shape): + raise ValueError("The given axis does not exist in the context of the input observation shape. ") + + def filter(self, observation: ObservationType, update_internal_state: bool=True) -> ObservationType: + return observation.squeeze(axis=self.axis) + + def get_filtered_observation_space(self, input_observation_space: ObservationSpace) -> ObservationSpace: + dummy_tensor = np.random.rand(*tuple(input_observation_space.shape)) + input_observation_space.shape = dummy_tensor.squeeze(axis=self.axis).shape + return input_observation_space
+
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/filters/observation/observation_stacking_filter.html b/docs/_modules/rl_coach/filters/observation/observation_stacking_filter.html new file mode 100644 index 0000000..3f6764e --- /dev/null +++ b/docs/_modules/rl_coach/filters/observation/observation_stacking_filter.html @@ -0,0 +1,335 @@ + + + + + + + + + + + rl_coach.filters.observation.observation_stacking_filter — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.filters.observation.observation_stacking_filter
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.filters.observation.observation_stacking_filter

+#
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+import copy
+from collections import deque
+
+import numpy as np
+
+from rl_coach.core_types import ObservationType
+from rl_coach.filters.observation.observation_filter import ObservationFilter
+from rl_coach.spaces import ObservationSpace
+
+
+class LazyStack(object):
+    """
+    A lazy version of np.stack which avoids copying the memory until it is
+    needed.
+    """
+
+    def __init__(self, history, axis=None):
+        self.history = copy.copy(history)
+        self.axis = axis
+
+    def __array__(self, dtype=None):
+        array = np.stack(self.history, axis=self.axis)
+        if dtype is not None:
+            array = array.astype(dtype)
+        return array
+
+
+
[docs]class ObservationStackingFilter(ObservationFilter): + """ + Stacks several observations on top of each other. For image observation this will + create a 3D blob. The stacking is done in a lazy manner in order to reduce memory consumption. To achieve this, + a LazyStack object is used in order to wrap the observations in the stack. For this reason, the + ObservationStackingFilter **must** be the last filter in the inputs filters stack. + This filter is stateful since it stores the previous step result and depends on it. + The filter adds an additional dimension to the output observation. + + Warning!!! The filter replaces the observation with a LazyStack object, so no filters should be + applied after this filter. applying more filters will cause the LazyStack object to be converted to a numpy array + and increase the memory footprint. + """ + def __init__(self, stack_size: int, stacking_axis: int=-1): + """ + :param stack_size: the number of previous observations in the stack + :param stacking_axis: the axis on which to stack the observation on + """ + super().__init__() + self.stack_size = stack_size + self.stacking_axis = stacking_axis + self.stack = [] + + if stack_size <= 0: + raise ValueError("The stack shape must be a positive number") + if type(stack_size) != int: + raise ValueError("The stack shape must be of int type") + + @property + def next_filter(self) -> 'InputFilter': + return self._next_filter + + @next_filter.setter + def next_filter(self, val: 'InputFilter'): + raise ValueError("ObservationStackingFilter can have no other filters after it since they break its " + "functionality") + + def validate_input_observation_space(self, input_observation_space: ObservationSpace): + if len(self.stack) > 0 and not input_observation_space.val_matches_space_definition(self.stack[-1]): + raise ValueError("The given input observation space is different than the observations already stored in" + "the filters memory") + if input_observation_space.num_dimensions <= self.stacking_axis: + raise ValueError("The stacking axis is larger than the number of dimensions in the observation space") + + def filter(self, observation: ObservationType, update_internal_state: bool=True) -> ObservationType: + + if len(self.stack) == 0: + self.stack = deque([observation] * self.stack_size, maxlen=self.stack_size) + else: + if update_internal_state: + self.stack.append(observation) + observation = LazyStack(self.stack, self.stacking_axis) + + return observation + + def get_filtered_observation_space(self, input_observation_space: ObservationSpace) -> ObservationSpace: + if self.stacking_axis == -1: + input_observation_space.shape = np.append(input_observation_space.shape, values=[self.stack_size], axis=0) + else: + input_observation_space.shape = np.insert(input_observation_space.shape, obj=self.stacking_axis, + values=[self.stack_size], axis=0) + return input_observation_space + + def reset(self) -> None: + self.stack = []
+
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/filters/observation/observation_to_uint8_filter.html b/docs/_modules/rl_coach/filters/observation/observation_to_uint8_filter.html new file mode 100644 index 0000000..30f9317 --- /dev/null +++ b/docs/_modules/rl_coach/filters/observation/observation_to_uint8_filter.html @@ -0,0 +1,292 @@ + + + + + + + + + + + rl_coach.filters.observation.observation_to_uint8_filter — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.filters.observation.observation_to_uint8_filter
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.filters.observation.observation_to_uint8_filter

+#
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+import numpy as np
+
+from rl_coach.core_types import ObservationType
+from rl_coach.filters.observation.observation_filter import ObservationFilter
+from rl_coach.spaces import ObservationSpace
+
+
+
[docs]class ObservationToUInt8Filter(ObservationFilter): + """ + Converts a floating point observation into an unsigned int 8 bit observation. This is + mostly useful for reducing memory consumption and is usually used for image observations. The filter will first + spread the observation values over the range 0-255 and then discretize them into integer values. + """ + def __init__(self, input_low: float, input_high: float): + """ + :param input_low: The lowest value currently present in the observation + :param input_high: The highest value currently present in the observation + """ + super().__init__() + self.input_low = input_low + self.input_high = input_high + + if input_high <= input_low: + raise ValueError("The input observation space high values can be less or equal to the input observation " + "space low values") + + def validate_input_observation_space(self, input_observation_space: ObservationSpace): + if np.all(input_observation_space.low != self.input_low) or \ + np.all(input_observation_space.high != self.input_high): + raise ValueError("The observation space values range don't match the configuration of the filter." + "The configuration is: low = {}, high = {}. The actual values are: low = {}, high = {}" + .format(self.input_low, self.input_high, + input_observation_space.low, input_observation_space.high)) + + def filter(self, observation: ObservationType, update_internal_state: bool=True) -> ObservationType: + # scale to 0-1 + observation = (observation - self.input_low) / (self.input_high - self.input_low) + + # scale to 0-255 + observation *= 255 + + observation = observation.astype('uint8') + + return observation + + def get_filtered_observation_space(self, input_observation_space: ObservationSpace) -> ObservationSpace: + input_observation_space.low = 0 + input_observation_space.high = 255 + return input_observation_space
+
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/filters/reward/reward_clipping_filter.html b/docs/_modules/rl_coach/filters/reward/reward_clipping_filter.html new file mode 100644 index 0000000..9bc744f --- /dev/null +++ b/docs/_modules/rl_coach/filters/reward/reward_clipping_filter.html @@ -0,0 +1,281 @@ + + + + + + + + + + + rl_coach.filters.reward.reward_clipping_filter — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.filters.reward.reward_clipping_filter
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.filters.reward.reward_clipping_filter

+#
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+import numpy as np
+
+from rl_coach.core_types import RewardType
+from rl_coach.filters.reward.reward_filter import RewardFilter
+from rl_coach.spaces import RewardSpace
+
+
+
[docs]class RewardClippingFilter(RewardFilter): + """ + Clips the reward values into a given range. For example, in DQN, the Atari rewards are + clipped into the range -1 and 1 in order to control the scale of the returns. + """ + def __init__(self, clipping_low: float=-np.inf, clipping_high: float=np.inf): + """ + :param clipping_low: The low threshold for reward clipping + :param clipping_high: The high threshold for reward clipping + """ + super().__init__() + self.clipping_low = clipping_low + self.clipping_high = clipping_high + + if clipping_low > clipping_high: + raise ValueError("The reward clipping low must be lower than the reward clipping max") + + def filter(self, reward: RewardType, update_internal_state: bool=True) -> RewardType: + reward = float(reward) + + if self.clipping_high: + reward = min(reward, self.clipping_high) + if self.clipping_low: + reward = max(reward, self.clipping_low) + + return reward + + def get_filtered_reward_space(self, input_reward_space: RewardSpace) -> RewardSpace: + input_reward_space.high = min(self.clipping_high, input_reward_space.high) + input_reward_space.low = max(self.clipping_low, input_reward_space.low) + return input_reward_space
+
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/filters/reward/reward_normalization_filter.html b/docs/_modules/rl_coach/filters/reward/reward_normalization_filter.html new file mode 100644 index 0000000..a391dca --- /dev/null +++ b/docs/_modules/rl_coach/filters/reward/reward_normalization_filter.html @@ -0,0 +1,297 @@ + + + + + + + + + + + rl_coach.filters.reward.reward_normalization_filter — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.filters.reward.reward_normalization_filter
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.filters.reward.reward_normalization_filter

+#
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+
+import numpy as np
+
+from rl_coach.architectures.tensorflow_components.shared_variables import SharedRunningStats
+from rl_coach.core_types import RewardType
+from rl_coach.filters.reward.reward_filter import RewardFilter
+from rl_coach.spaces import RewardSpace
+
+
+
[docs]class RewardNormalizationFilter(RewardFilter): + """ + Normalizes the reward values with a running mean and standard deviation of + all the rewards seen so far. When working with multiple workers, the statistics used for the normalization operation + are accumulated over all the workers. + """ + def __init__(self, clip_min: float=-5.0, clip_max: float=5.0): + """ + :param clip_min: The minimum value to allow after normalizing the reward + :param clip_max: The maximum value to allow after normalizing the reward + """ + super().__init__() + self.clip_min = clip_min + self.clip_max = clip_max + self.running_rewards_stats = None + + def set_device(self, device, memory_backend_params=None) -> None: + """ + An optional function that allows the filter to get the device if it is required to use tensorflow ops + :param device: the device to use + :return: None + """ + self.running_rewards_stats = SharedRunningStats(device, name='rewards_stats', + pubsub_params=memory_backend_params) + + def set_session(self, sess) -> None: + """ + An optional function that allows the filter to get the session if it is required to use tensorflow ops + :param sess: the session + :return: None + """ + self.running_rewards_stats.set_session(sess) + + def filter(self, reward: RewardType, update_internal_state: bool=True) -> RewardType: + if update_internal_state: + self.running_rewards_stats.push(reward) + + reward = (reward - self.running_rewards_stats.mean) / \ + (self.running_rewards_stats.std + 1e-15) + reward = np.clip(reward, self.clip_min, self.clip_max) + + return reward + + def get_filtered_reward_space(self, input_reward_space: RewardSpace) -> RewardSpace: + return input_reward_space
+
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/filters/reward/reward_rescale_filter.html b/docs/_modules/rl_coach/filters/reward/reward_rescale_filter.html new file mode 100644 index 0000000..f24abb6 --- /dev/null +++ b/docs/_modules/rl_coach/filters/reward/reward_rescale_filter.html @@ -0,0 +1,271 @@ + + + + + + + + + + + rl_coach.filters.reward.reward_rescale_filter — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.filters.reward.reward_rescale_filter
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.filters.reward.reward_rescale_filter

+#
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+from rl_coach.core_types import RewardType
+from rl_coach.filters.reward.reward_filter import RewardFilter
+from rl_coach.spaces import RewardSpace
+
+
+
[docs]class RewardRescaleFilter(RewardFilter): + """ + Rescales the reward by a given factor. Rescaling the rewards of the environment has been + observed to have a large effect (negative or positive) on the behavior of the learning process. + """ + def __init__(self, rescale_factor: float): + """ + :param rescale_factor: The reward rescaling factor by which the reward will be multiplied + """ + super().__init__() + self.rescale_factor = rescale_factor + + if rescale_factor == 0: + raise ValueError("The reward rescale value can not be set to 0") + + def filter(self, reward: RewardType, update_internal_state: bool=True) -> RewardType: + reward = float(reward) * self.rescale_factor + return reward + + def get_filtered_reward_space(self, input_reward_space: RewardSpace) -> RewardSpace: + input_reward_space.high = input_reward_space.high * self.rescale_factor + input_reward_space.low = input_reward_space.low * self.rescale_factor + return input_reward_space
+
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/memories/episodic/episodic_experience_replay.html b/docs/_modules/rl_coach/memories/episodic/episodic_experience_replay.html new file mode 100644 index 0000000..0461fc3 --- /dev/null +++ b/docs/_modules/rl_coach/memories/episodic/episodic_experience_replay.html @@ -0,0 +1,535 @@ + + + + + + + + + + + rl_coach.memories.episodic.episodic_experience_replay — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.memories.episodic.episodic_experience_replay
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.memories.episodic.episodic_experience_replay

+#
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+from typing import List, Tuple, Union, Dict, Any
+
+import numpy as np
+
+from rl_coach.core_types import Transition, Episode
+from rl_coach.memories.memory import Memory, MemoryGranularity, MemoryParameters
+from rl_coach.utils import ReaderWriterLock
+
+
+class EpisodicExperienceReplayParameters(MemoryParameters):
+    def __init__(self):
+        super().__init__()
+        self.max_size = (MemoryGranularity.Transitions, 1000000)
+        self.n_step = -1
+
+    @property
+    def path(self):
+        return 'rl_coach.memories.episodic.episodic_experience_replay:EpisodicExperienceReplay'
+
+
+
[docs]class EpisodicExperienceReplay(Memory): + """ + A replay buffer that stores episodes of transitions. The additional structure allows performing various + calculations of total return and other values that depend on the sequential behavior of the transitions + in the episode. + """ + def __init__(self, max_size: Tuple[MemoryGranularity, int]=(MemoryGranularity.Transitions, 1000000), n_step=-1): + """ + :param max_size: the maximum number of transitions or episodes to hold in the memory + """ + super().__init__(max_size) + self.n_step = n_step + self._buffer = [Episode(n_step=self.n_step)] # list of episodes + self.transitions = [] + self._length = 1 # the episodic replay buffer starts with a single empty episode + self._num_transitions = 0 + self._num_transitions_in_complete_episodes = 0 + self.reader_writer_lock = ReaderWriterLock() + + def length(self, lock: bool=False) -> int: + """ + Get the number of episodes in the ER (even if they are not complete) + """ + length = self._length + if self._length is not 0 and self._buffer[-1].is_empty(): + length = self._length - 1 + + return length + + def num_complete_episodes(self): + """ Get the number of complete episodes in ER """ + length = self._length - 1 + + return length + + def num_transitions(self): + return self._num_transitions + + def num_transitions_in_complete_episodes(self): + return self._num_transitions_in_complete_episodes + + def sample(self, size: int) -> List[Transition]: + """ + Sample a batch of transitions form the replay buffer. If the requested size is larger than the number + of samples available in the replay buffer then the batch will return empty. + :param size: the size of the batch to sample + :return: a batch (list) of selected transitions from the replay buffer + """ + self.reader_writer_lock.lock_writing() + + if self.num_complete_episodes() >= 1: + transitions_idx = np.random.randint(self.num_transitions_in_complete_episodes(), size=size) + batch = [self.transitions[i] for i in transitions_idx] + + else: + raise ValueError("The episodic replay buffer cannot be sampled since there are no complete episodes yet. " + "There is currently 1 episodes with {} transitions".format(self._buffer[0].length())) + + self.reader_writer_lock.release_writing() + + return batch + + def _enforce_max_length(self) -> None: + """ + Make sure that the size of the replay buffer does not pass the maximum size allowed. + If it passes the max size, the oldest episode in the replay buffer will be removed. + :return: None + """ + granularity, size = self.max_size + if granularity == MemoryGranularity.Transitions: + while size != 0 and self.num_transitions() > size: + self._remove_episode(0) + elif granularity == MemoryGranularity.Episodes: + while self.length() > size: + self._remove_episode(0) + + def _update_episode(self, episode: Episode) -> None: + episode.update_transitions_rewards_and_bootstrap_data() + + def verify_last_episode_is_closed(self) -> None: + """ + Verify that there is no open episodes in the replay buffer + :return: None + """ + self.reader_writer_lock.lock_writing_and_reading() + + last_episode = self.get(-1, False) + if last_episode and last_episode.length() > 0: + self.close_last_episode(lock=False) + + self.reader_writer_lock.release_writing_and_reading() + + def close_last_episode(self, lock=True) -> None: + """ + Close the last episode in the replay buffer and open a new one + :return: None + """ + if lock: + self.reader_writer_lock.lock_writing_and_reading() + + last_episode = self._buffer[-1] + + self._num_transitions_in_complete_episodes += last_episode.length() + self._length += 1 + + # create a new Episode for the next transitions to be placed into + self._buffer.append(Episode(n_step=self.n_step)) + + # if update episode adds to the buffer, a new Episode needs to be ready first + # it would be better if this were less state full + self._update_episode(last_episode) + + self._enforce_max_length() + + if lock: + self.reader_writer_lock.release_writing_and_reading() + + def store(self, transition: Transition) -> None: + """ + Store a new transition in the memory. If the transition game_over flag is on, this closes the episode and + creates a new empty episode. + Warning! using the episodic memory by storing individual transitions instead of episodes will use the default + Episode class parameters in order to create new episodes. + :param transition: a transition to store + :return: None + """ + + # Calling super.store() so that in case a memory backend is used, the memory backend can store this transition. + super().store(transition) + + self.reader_writer_lock.lock_writing_and_reading() + + if len(self._buffer) == 0: + self._buffer.append(Episode(n_step=self.n_step)) + last_episode = self._buffer[-1] + last_episode.insert(transition) + self.transitions.append(transition) + self._num_transitions += 1 + if transition.game_over: + self.close_last_episode(False) + + self._enforce_max_length() + + self.reader_writer_lock.release_writing_and_reading() + + def store_episode(self, episode: Episode, lock: bool=True) -> None: + """ + Store a new episode in the memory. + :param episode: the new episode to store + :return: None + """ + # Calling super.store() so that in case a memory backend is used, the memory backend can store this episode. + super().store_episode(episode) + + if lock: + self.reader_writer_lock.lock_writing_and_reading() + + if self._buffer[-1].length() == 0: + self._buffer[-1] = episode + else: + self._buffer.append(episode) + self.transitions.extend(episode.transitions) + self._num_transitions += episode.length() + self.close_last_episode(False) + + if lock: + self.reader_writer_lock.release_writing_and_reading() + + def get_episode(self, episode_index: int, lock: bool=True) -> Union[None, Episode]: + """ + Returns the episode in the given index. If the episode does not exist, returns None instead. + :param episode_index: the index of the episode to return + :return: the corresponding episode + """ + if lock: + self.reader_writer_lock.lock_writing() + + if self.length() == 0 or episode_index >= self.length(): + episode = None + else: + episode = self._buffer[episode_index] + + if lock: + self.reader_writer_lock.release_writing() + return episode + + def _remove_episode(self, episode_index: int) -> None: + """ + Remove the episode in the given index (even if it is not complete yet) + :param episode_index: the index of the episode to remove + :return: None + """ + if len(self._buffer) > episode_index: + episode_length = self._buffer[episode_index].length() + self._length -= 1 + self._num_transitions -= episode_length + self._num_transitions_in_complete_episodes -= episode_length + del self.transitions[:episode_length] + del self._buffer[episode_index] + + def remove_episode(self, episode_index: int) -> None: + """ + Remove the episode in the given index (even if it is not complete yet) + :param episode_index: the index of the episode to remove + :return: None + """ + self.reader_writer_lock.lock_writing_and_reading() + + self._remove_episode(episode_index) + + self.reader_writer_lock.release_writing_and_reading() + + # for API compatibility + def get(self, episode_index: int, lock: bool=True) -> Union[None, Episode]: + """ + Returns the episode in the given index. If the episode does not exist, returns None instead. + :param episode_index: the index of the episode to return + :return: the corresponding episode + """ + return self.get_episode(episode_index, lock) + + def get_last_complete_episode(self) -> Union[None, Episode]: + """ + Returns the last complete episode in the memory or None if there are no complete episodes + :return: None or the last complete episode + """ + self.reader_writer_lock.lock_writing() + + last_complete_episode_index = self.num_complete_episodes() - 1 + episode = None + if last_complete_episode_index >= 0: + episode = self.get(last_complete_episode_index) + + self.reader_writer_lock.release_writing() + + return episode + + # for API compatibility + def remove(self, episode_index: int): + """ + Remove the episode in the given index (even if it is not complete yet) + :param episode_index: the index of the episode to remove + :return: None + """ + self.remove_episode(episode_index) + + def clean(self) -> None: + """ + Clean the memory by removing all the episodes + :return: None + """ + self.reader_writer_lock.lock_writing_and_reading() + + self.transitions = [] + self._buffer = [Episode(n_step=self.n_step)] + self._length = 1 + self._num_transitions = 0 + self._num_transitions_in_complete_episodes = 0 + + self.reader_writer_lock.release_writing_and_reading() + + def mean_reward(self) -> np.ndarray: + """ + Get the mean reward in the replay buffer + :return: the mean reward + """ + self.reader_writer_lock.lock_writing() + + mean = np.mean([transition.reward for transition in self.transitions]) + + self.reader_writer_lock.release_writing() + return mean
+
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/memories/episodic/episodic_hindsight_experience_replay.html b/docs/_modules/rl_coach/memories/episodic/episodic_hindsight_experience_replay.html new file mode 100644 index 0000000..84f03f5 --- /dev/null +++ b/docs/_modules/rl_coach/memories/episodic/episodic_hindsight_experience_replay.html @@ -0,0 +1,375 @@ + + + + + + + + + + + rl_coach.memories.episodic.episodic_hindsight_experience_replay — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.memories.episodic.episodic_hindsight_experience_replay
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.memories.episodic.episodic_hindsight_experience_replay

+#
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+import copy
+from enum import Enum
+from typing import Tuple, List
+
+import numpy as np
+
+from rl_coach.core_types import Episode, Transition
+from rl_coach.memories.episodic.episodic_experience_replay import EpisodicExperienceReplayParameters, \
+    EpisodicExperienceReplay
+from rl_coach.memories.non_episodic.experience_replay import MemoryGranularity
+from rl_coach.spaces import GoalsSpace
+
+
+class HindsightGoalSelectionMethod(Enum):
+    Future = 0
+    Final = 1
+    Episode = 2
+    Random = 3
+
+
+class EpisodicHindsightExperienceReplayParameters(EpisodicExperienceReplayParameters):
+    def __init__(self):
+        super().__init__()
+        self.hindsight_transitions_per_regular_transition = None
+        self.hindsight_goal_selection_method = None
+        self.goals_space = None
+
+    @property
+    def path(self):
+        return 'rl_coach.memories.episodic.episodic_hindsight_experience_replay:EpisodicHindsightExperienceReplay'
+
+
+
[docs]class EpisodicHindsightExperienceReplay(EpisodicExperienceReplay): + """ + Implements Hindsight Experience Replay as described in the following paper: https://arxiv.org/pdf/1707.01495.pdf + + """ + def __init__(self, max_size: Tuple[MemoryGranularity, int], + hindsight_transitions_per_regular_transition: int, + hindsight_goal_selection_method: HindsightGoalSelectionMethod, + goals_space: GoalsSpace): + """ + :param max_size: The maximum size of the memory. should be defined in a granularity of Transitions + :param hindsight_transitions_per_regular_transition: The number of hindsight artificial transitions to generate + for each actual transition + :param hindsight_goal_selection_method: The method that will be used for generating the goals for the + hindsight transitions. Should be one of HindsightGoalSelectionMethod + :param goals_space: A GoalsSpace which defines the base properties of the goals space + """ + super().__init__(max_size) + + self.hindsight_transitions_per_regular_transition = hindsight_transitions_per_regular_transition + self.hindsight_goal_selection_method = hindsight_goal_selection_method + self.goals_space = goals_space + self.last_episode_start_idx = 0 + + def _sample_goal(self, episode_transitions: List, transition_index: int): + """ + Sample a single goal state according to the sampling method + :param episode_transitions: a list of all the transitions in the current episode + :param transition_index: the transition to start sampling from + :return: a goal corresponding to the sampled state + """ + if self.hindsight_goal_selection_method == HindsightGoalSelectionMethod.Future: + # states that were observed in the same episode after the transition that is being replayed + selected_transition = np.random.choice(episode_transitions[transition_index+1:]) + elif self.hindsight_goal_selection_method == HindsightGoalSelectionMethod.Final: + # the final state in the episode + selected_transition = episode_transitions[-1] + elif self.hindsight_goal_selection_method == HindsightGoalSelectionMethod.Episode: + # a random state from the episode + selected_transition = np.random.choice(episode_transitions) + elif self.hindsight_goal_selection_method == HindsightGoalSelectionMethod.Random: + # a random state from the entire replay buffer + selected_transition = np.random.choice(self.transitions) + else: + raise ValueError("Invalid goal selection method was used for the hindsight goal selection") + return self.goals_space.goal_from_state(selected_transition.state) + + def _sample_goals(self, episode_transitions: List, transition_index: int): + """ + Sample a batch of goal states according to the sampling method + :param episode_transitions: a list of all the transitions in the current episode + :param transition_index: the transition to start sampling from + :return: a goal corresponding to the sampled state + """ + return [ + self._sample_goal(episode_transitions, transition_index) + for _ in range(self.hindsight_transitions_per_regular_transition) + ] + + def store_episode(self, episode: Episode, lock: bool=True) -> None: + # generate hindsight transitions only when an episode is finished + last_episode_transitions = copy.copy(episode.transitions) + + # cannot create a future hindsight goal in the last transition of an episode + if self.hindsight_goal_selection_method == HindsightGoalSelectionMethod.Future: + relevant_base_transitions = last_episode_transitions[:-1] + else: + relevant_base_transitions = last_episode_transitions + + # for each transition in the last episode, create a set of hindsight transitions + for transition_index, transition in enumerate(relevant_base_transitions): + sampled_goals = self._sample_goals(last_episode_transitions, transition_index) + for goal in sampled_goals: + hindsight_transition = copy.copy(transition) + + if hindsight_transition.state['desired_goal'].shape != goal.shape: + raise ValueError(( + 'goal shape {goal_shape} already in transition is ' + 'different than the one sampled as a hindsight goal ' + '{hindsight_goal_shape}.' + ).format( + goal_shape=hindsight_transition.state['desired_goal'].shape, + hindsight_goal_shape=goal.shape, + )) + + # update the goal in the transition + hindsight_transition.state['desired_goal'] = goal + hindsight_transition.next_state['desired_goal'] = goal + + # update the reward and terminal signal according to the goal + hindsight_transition.reward, hindsight_transition.game_over = \ + self.goals_space.get_reward_for_goal_and_state(goal, hindsight_transition.next_state) + + hindsight_transition.n_step_discounted_rewards = None + episode.insert(hindsight_transition) + + super().store_episode(episode) + + def store(self, transition: Transition): + raise ValueError("An episodic HER cannot store a single transition. Only full episodes are to be stored.")
+
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/memories/episodic/episodic_hrl_hindsight_experience_replay.html b/docs/_modules/rl_coach/memories/episodic/episodic_hrl_hindsight_experience_replay.html new file mode 100644 index 0000000..b0b1c77 --- /dev/null +++ b/docs/_modules/rl_coach/memories/episodic/episodic_hrl_hindsight_experience_replay.html @@ -0,0 +1,300 @@ + + + + + + + + + + + rl_coach.memories.episodic.episodic_hrl_hindsight_experience_replay — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.memories.episodic.episodic_hrl_hindsight_experience_replay
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.memories.episodic.episodic_hrl_hindsight_experience_replay

+#
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+from typing import Tuple
+
+from rl_coach.core_types import Episode, Transition
+from rl_coach.memories.episodic.episodic_hindsight_experience_replay import HindsightGoalSelectionMethod, \
+    EpisodicHindsightExperienceReplay, EpisodicHindsightExperienceReplayParameters
+from rl_coach.memories.non_episodic.experience_replay import MemoryGranularity
+from rl_coach.spaces import GoalsSpace
+
+
+class EpisodicHRLHindsightExperienceReplayParameters(EpisodicHindsightExperienceReplayParameters):
+    def __init__(self):
+        super().__init__()
+
+    @property
+    def path(self):
+        return 'rl_coach.memories.episodic.episodic_hrl_hindsight_experience_replay:EpisodicHRLHindsightExperienceReplay'
+
+
+
[docs]class EpisodicHRLHindsightExperienceReplay(EpisodicHindsightExperienceReplay): + """ + Implements HRL Hindsight Experience Replay as described in the following paper: https://arxiv.org/abs/1805.08180 + + This is the memory you should use if you want a shared hindsight experience replay buffer between multiple workers + """ + def __init__(self, max_size: Tuple[MemoryGranularity, int], + hindsight_transitions_per_regular_transition: int, + hindsight_goal_selection_method: HindsightGoalSelectionMethod, + goals_space: GoalsSpace, + ): + """ + :param max_size: The maximum size of the memory. should be defined in a granularity of Transitions + :param hindsight_transitions_per_regular_transition: The number of hindsight artificial transitions to generate + for each actual transition + :param hindsight_goal_selection_method: The method that will be used for generating the goals for the + hindsight transitions. Should be one of HindsightGoalSelectionMethod + :param goals_space: A GoalsSpace which defines the properties of the goals + :param do_action_hindsight: Replace the action (sub-goal) given to a lower layer, with the actual achieved goal + """ + super().__init__(max_size, hindsight_transitions_per_regular_transition, hindsight_goal_selection_method, + goals_space) + + def store_episode(self, episode: Episode, lock: bool=True) -> None: + # for a layer producing sub-goals, we will replace in hindsight the action (sub-goal) given to the lower + # level with the actual achieved goal. the achieved goal (and observation) seen is assumed to be the same + # for all levels - we can use this level's achieved goal instead of the lower level's one + + # Calling super.store() so that in case a memory backend is used, the memory backend can store this episode. + super().store_episode(episode) + + for transition in episode.transitions: + new_achieved_goal = transition.next_state[self.goals_space.goal_name] + transition.action = new_achieved_goal + + super().store_episode(episode) + + def store(self, transition: Transition): + raise ValueError("An episodic HER cannot store a single transition. Only full episodes are to be stored.")
+
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/memories/episodic/single_episode_buffer.html b/docs/_modules/rl_coach/memories/episodic/single_episode_buffer.html new file mode 100644 index 0000000..844f643 --- /dev/null +++ b/docs/_modules/rl_coach/memories/episodic/single_episode_buffer.html @@ -0,0 +1,260 @@ + + + + + + + + + + + rl_coach.memories.episodic.single_episode_buffer — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.memories.episodic.single_episode_buffer
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.memories.episodic.single_episode_buffer

+#
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+from rl_coach.memories.episodic.episodic_experience_replay import EpisodicExperienceReplay
+from rl_coach.memories.memory import MemoryGranularity, MemoryParameters
+
+
+class SingleEpisodeBufferParameters(MemoryParameters):
+    def __init__(self):
+        super().__init__()
+        del self.max_size
+
+    @property
+    def path(self):
+        return 'rl_coach.memories.episodic.single_episode_buffer:SingleEpisodeBuffer'
+
+
+
[docs]class SingleEpisodeBuffer(EpisodicExperienceReplay): + def __init__(self): + super().__init__((MemoryGranularity.Episodes, 1))
+
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/memories/non_episodic/balanced_experience_replay.html b/docs/_modules/rl_coach/memories/non_episodic/balanced_experience_replay.html new file mode 100644 index 0000000..c1fdddc --- /dev/null +++ b/docs/_modules/rl_coach/memories/non_episodic/balanced_experience_replay.html @@ -0,0 +1,400 @@ + + + + + + + + + + + rl_coach.memories.non_episodic.balanced_experience_replay — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.memories.non_episodic.balanced_experience_replay
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.memories.non_episodic.balanced_experience_replay

+#
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+import operator
+import random
+from enum import Enum
+from typing import List, Tuple, Any, Union
+
+import numpy as np
+
+from rl_coach.core_types import Transition
+from rl_coach.memories.memory import MemoryGranularity
+from rl_coach.memories.non_episodic.experience_replay import ExperienceReplayParameters, ExperienceReplay
+from rl_coach.schedules import Schedule, ConstantSchedule
+
+
+class BalancedExperienceReplayParameters(ExperienceReplayParameters):
+    def __init__(self):
+        super().__init__()
+        self.max_size = (MemoryGranularity.Transitions, 1000000)
+        self.allow_duplicates_in_batch_sampling = False
+        self.num_classes = 0
+        self.state_key_with_the_class_index = 'class'
+
+    @property
+    def path(self):
+        return 'rl_coach.memories.non_episodic.balanced_experience_replay:BalancedExperienceReplay'
+
+
+"""
+A replay buffer which allows sampling batches which are balanced in terms of the classes that are sampled
+"""
+
[docs]class BalancedExperienceReplay(ExperienceReplay): + def __init__(self, max_size: Tuple[MemoryGranularity, int], allow_duplicates_in_batch_sampling: bool=True, + num_classes: int=0, state_key_with_the_class_index: Any='class'): + """ + :param max_size: the maximum number of transitions or episodes to hold in the memory + :param allow_duplicates_in_batch_sampling: allow having the same transition multiple times in a batch + :param num_classes: the number of classes in the replayed data + :param state_key_with_the_class_index: the class index is assumed to be a value in the state dictionary. + this parameter determines the key to retrieve the class index value + """ + super().__init__(max_size, allow_duplicates_in_batch_sampling) + self.current_class_to_sample_from = 0 + self.num_classes = num_classes + self.state_key_with_the_class_index = state_key_with_the_class_index + self.transitions = [[] for _ in range(self.num_classes)] + self.transitions_order = [] + + if self.num_classes < 2: + raise ValueError("The number of classes for a balanced replay buffer should be at least 2. " + "The number of classes that were defined are: {}".format(self.num_classes)) + + def store(self, transition: Transition, lock: bool=True) -> None: + """ + Store a new transition in the memory. + :param transition: a transition to store + :param lock: if true, will lock the readers writers lock. this can cause a deadlock if an inheriting class + locks and then calls store with lock = True + :return: None + """ + # Calling super.store() so that in case a memory backend is used, the memory backend can store this transition. + super().store(transition) + if lock: + self.reader_writer_lock.lock_writing_and_reading() + + self._num_transitions += 1 + + if self.state_key_with_the_class_index not in transition.state.keys(): + raise ValueError("The class index was not present in the state of the transition under the given key ({})" + .format(self.state_key_with_the_class_index)) + + class_idx = transition.state[self.state_key_with_the_class_index] + + if class_idx >= self.num_classes: + raise ValueError("The given class index is outside the defined number of classes for the replay buffer. " + "The given class was: {} and the number of classes defined is: {}" + .format(class_idx, self.num_classes)) + + self.transitions[class_idx].append(transition) + self.transitions_order.append(class_idx) + self._enforce_max_length() + + if lock: + self.reader_writer_lock.release_writing_and_reading() + + def sample(self, size: int) -> List[Transition]: + """ + Sample a batch of transitions form the replay buffer. If the requested size is larger than the number + of samples available in the replay buffer then the batch will return empty. + :param size: the size of the batch to sample + :return: a batch (list) of selected transitions from the replay buffer + """ + self.reader_writer_lock.lock_writing() + + if size % self.num_classes != 0: + raise ValueError("Sampling batches from a balanced replay buffer should be done only using batch sizes " + "which are a multiple of the number of classes. The number of classes defined is: {} " + "and the batch size requested is: {}".format(self.num_classes, size)) + + batch_size_from_each_class = size // self.num_classes + + if self.allow_duplicates_in_batch_sampling: + transitions_idx = [np.random.randint(len(class_transitions), size=batch_size_from_each_class) + for class_transitions in self.transitions] + + else: + for class_idx, class_transitions in enumerate(self.transitions): + if self.num_transitions() < batch_size_from_each_class: + raise ValueError("The replay buffer cannot be sampled since there are not enough transitions yet. " + "There are currently {} transitions for class {}" + .format(len(class_transitions), class_idx)) + + transitions_idx = [np.random.choice(len(class_transitions), size=batch_size_from_each_class, replace=False) + for class_transitions in self.transitions] + + batch = [] + for class_idx, class_transitions_idx in enumerate(transitions_idx): + batch += [self.transitions[class_idx][i] for i in class_transitions_idx] + + self.reader_writer_lock.release_writing() + + return batch + + def remove_transition(self, transition_index: int, lock: bool=True) -> None: + raise ValueError("It is not possible to remove specific transitions with a balanced replay buffer") + + def get_transition(self, transition_index: int, lock: bool=True) -> Union[None, Transition]: + raise ValueError("It is not possible to access specific transitions with a balanced replay buffer") + + def _enforce_max_length(self) -> None: + """ + Make sure that the size of the replay buffer does not pass the maximum size allowed. + If it passes the max size, the oldest transition in the replay buffer will be removed. + This function does not use locks since it is only called internally + :return: None + """ + granularity, size = self.max_size + if granularity == MemoryGranularity.Transitions: + while size != 0 and self.num_transitions() > size: + self._num_transitions -= 1 + del self.transitions[self.transitions_order[0]][0] + del self.transitions_order[0] + else: + raise ValueError("The granularity of the replay buffer can only be set in terms of transitions") + + def clean(self, lock: bool=True) -> None: + """ + Clean the memory by removing all the episodes + :return: None + """ + if lock: + self.reader_writer_lock.lock_writing_and_reading() + + self.transitions = [[] for _ in range(self.num_classes)] + self.transitions_order = [] + self._num_transitions = 0 + + if lock: + self.reader_writer_lock.release_writing_and_reading()
+
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/memories/non_episodic/differentiable_neural_dictionary.html b/docs/_modules/rl_coach/memories/non_episodic/differentiable_neural_dictionary.html new file mode 100644 index 0000000..6b5d69e --- /dev/null +++ b/docs/_modules/rl_coach/memories/non_episodic/differentiable_neural_dictionary.html @@ -0,0 +1,518 @@ + + + + + + + + + + + rl_coach.memories.non_episodic.differentiable_neural_dictionary — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.memories.non_episodic.differentiable_neural_dictionary
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.memories.non_episodic.differentiable_neural_dictionary

+#
+# Copyright (c) 2017 Intel Corporation 
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+import os
+import pickle
+
+import numpy as np
+try:
+    import annoy
+    from annoy import AnnoyIndex
+except ImportError:
+    from rl_coach.logger import failed_imports
+    failed_imports.append("annoy")
+
+
+class AnnoyDictionary(object):
+    def __init__(self, dict_size, key_width, new_value_shift_coefficient=0.1, batch_size=100, key_error_threshold=0.01,
+                 num_neighbors=50, override_existing_keys=True, rebuild_on_every_update=False):
+        self.rebuild_on_every_update = rebuild_on_every_update
+        self.max_size = dict_size
+        self.curr_size = 0
+        self.new_value_shift_coefficient = new_value_shift_coefficient
+        self.num_neighbors = num_neighbors
+        self.override_existing_keys = override_existing_keys
+
+        self.index = AnnoyIndex(key_width, metric='euclidean')
+        self.index.set_seed(1)
+
+        self.embeddings = np.zeros((dict_size, key_width))
+        self.values = np.zeros(dict_size)
+        self.additional_data = [None] * dict_size
+
+        self.lru_timestamps = np.zeros(dict_size)
+        self.current_timestamp = 0.0
+
+        # keys that are in this distance will be considered as the same key
+        self.key_error_threshold = key_error_threshold
+
+        self.initial_update_size = batch_size
+        self.min_update_size = self.initial_update_size
+        self.key_dimension = key_width
+        self.value_dimension = 1
+        self._reset_buffer()
+
+        self.built_capacity = 0
+
+    def add(self, keys, values, additional_data=None):
+        if not additional_data:
+            additional_data = [None] * len(keys)
+
+        # Adds new embeddings and values to the dictionary
+        indices = []
+        indices_to_remove = []
+        for i in range(keys.shape[0]):
+            index = self._lookup_key_index(keys[i])
+            if index and self.override_existing_keys:
+                # update existing value
+                self.values[index] += self.new_value_shift_coefficient * (values[i] - self.values[index])
+                self.additional_data[index[0][0]] = additional_data[i]
+                self.lru_timestamps[index] = self.current_timestamp
+                indices_to_remove.append(i)
+            else:
+                # add new
+                if self.curr_size >= self.max_size:
+                    # find the LRU entry
+                    index = np.argmin(self.lru_timestamps)
+                else:
+                    index = self.curr_size
+                    self.curr_size += 1
+                self.lru_timestamps[index] = self.current_timestamp
+                indices.append(index)
+
+        for i in reversed(indices_to_remove):
+            keys = np.delete(keys, i, 0)
+            values = np.delete(values, i, 0)
+            del additional_data[i]
+
+        self.buffered_keys = np.vstack((self.buffered_keys, keys))
+        self.buffered_values = np.vstack((self.buffered_values, values))
+        self.buffered_indices = self.buffered_indices + indices
+        self.buffered_additional_data = self.buffered_additional_data + additional_data
+
+        if len(self.buffered_indices) >= self.min_update_size:
+            self.min_update_size = max(self.initial_update_size, int(self.curr_size * 0.02))
+            self._rebuild_index()
+        elif self.rebuild_on_every_update:
+            self._rebuild_index()
+
+        self.current_timestamp += 1
+
+    # Returns the stored embeddings and values of the closest embeddings
+    def query(self, keys, k):
+        if not self.has_enough_entries(k):
+            # this will only happen when the DND is not yet populated with enough entries, which is only during heatup
+            # these values won't be used and therefore they are meaningless
+            return [0.0], [0.0], [0], [None]
+
+        _, indices = self._get_k_nearest_neighbors_indices(keys, k)
+
+        embeddings = []
+        values = []
+        additional_data = []
+        for ind in indices:
+            self.lru_timestamps[ind] = self.current_timestamp
+            embeddings.append(self.embeddings[ind])
+            values.append(self.values[ind])
+            curr_additional_data = []
+            for sub_ind in ind:
+                curr_additional_data.append(self.additional_data[sub_ind])
+            additional_data.append(curr_additional_data)
+
+        self.current_timestamp += 1
+
+        return embeddings, values, indices, additional_data
+
+    def has_enough_entries(self, k):
+        return self.curr_size > k and (self.built_capacity > k)
+
+    def sample_embeddings(self, num_embeddings):
+        return self.embeddings[np.random.choice(self.curr_size, num_embeddings)]
+
+    def _get_k_nearest_neighbors_indices(self, keys, k):
+        distances = []
+        indices = []
+        for key in keys:
+            index, distance = self.index.get_nns_by_vector(key, k, include_distances=True)
+            distances.append(distance)
+            indices.append(index)
+        return distances, indices
+
+    def _rebuild_index(self):
+        self.index.unbuild()
+        self.embeddings[self.buffered_indices] = self.buffered_keys
+        self.values[self.buffered_indices] = np.squeeze(self.buffered_values)
+        for i, data in zip(self.buffered_indices, self.buffered_additional_data):
+            self.additional_data[i] = data
+        for idx, key in zip(self.buffered_indices, self.buffered_keys):
+            self.index.add_item(idx, key)
+
+        self._reset_buffer()
+
+        self.index.build(self.num_neighbors)
+        self.built_capacity = self.curr_size
+
+    def _reset_buffer(self):
+        self.buffered_keys = np.zeros((0, self.key_dimension))
+        self.buffered_values = np.zeros((0, self.value_dimension))
+        self.buffered_indices = []
+        self.buffered_additional_data = []
+
+    def _lookup_key_index(self, key):
+        distance, index = self._get_k_nearest_neighbors_indices([key], 1)
+        if distance != [[]] and distance[0][0] <= self.key_error_threshold:
+            return index
+        return None
+
+
+
[docs]class QDND(object): + def __init__(self, dict_size, key_width, num_actions, new_value_shift_coefficient=0.1, key_error_threshold=0.01, + learning_rate=0.01, num_neighbors=50, return_additional_data=False, override_existing_keys=False, + rebuild_on_every_update=False): + self.dict_size = dict_size + self.key_width = key_width + self.num_actions = num_actions + self.new_value_shift_coefficient = new_value_shift_coefficient + self.key_error_threshold = key_error_threshold + self.learning_rate = learning_rate + self.num_neighbors = num_neighbors + self.return_additional_data = return_additional_data + self.override_existing_keys = override_existing_keys + self.dicts = [] + + # create a dict for each action + for a in range(num_actions): + new_dict = AnnoyDictionary(dict_size, key_width, new_value_shift_coefficient, + key_error_threshold=key_error_threshold, num_neighbors=num_neighbors, + override_existing_keys=override_existing_keys, + rebuild_on_every_update=rebuild_on_every_update) + self.dicts.append(new_dict) + + def add(self, embeddings, actions, values, additional_data=None): + # add a new set of embeddings and values to each of the underlining dictionaries + embeddings = np.array(embeddings) + actions = np.array(actions) + values = np.array(values) + for a in range(self.num_actions): + idx = np.where(actions == a) + curr_action_embeddings = embeddings[idx] + curr_action_values = np.expand_dims(values[idx], -1) + if additional_data: + curr_additional_data = [] + for i in idx[0]: + curr_additional_data.append(additional_data[i]) + else: + curr_additional_data = None + + self.dicts[a].add(curr_action_embeddings, curr_action_values, curr_additional_data) + return True + + def query(self, embeddings, action, k): + # query for nearest neighbors to the given embeddings + dnd_embeddings = [] + dnd_values = [] + dnd_indices = [] + dnd_additional_data = [] + for i in range(len(embeddings)): + embedding, value, indices, additional_data = self.dicts[action].query([embeddings[i]], k) + dnd_embeddings.append(embedding[0]) + dnd_values.append(value[0]) + dnd_indices.append(indices[0]) + dnd_additional_data.append(additional_data[0]) + + if self.return_additional_data: + return dnd_embeddings, dnd_values, dnd_indices, dnd_additional_data + else: + return dnd_embeddings, dnd_values, dnd_indices + + def has_enough_entries(self, k): + # check if each of the action dictionaries has at least k entries + for a in range(self.num_actions): + if not self.dicts[a].has_enough_entries(k): + return False + return True + + def update_keys_and_values(self, actions, key_gradients, value_gradients, indices): + # Update DND keys and values + for batch_action, batch_keys, batch_values, batch_indices in zip(actions, key_gradients, value_gradients, indices): + # Update keys (embeddings) and values in DND + for i, index in enumerate(batch_indices): + self.dicts[batch_action].embeddings[index, :] -= self.learning_rate * batch_keys[i, :] + self.dicts[batch_action].values[index] -= self.learning_rate * batch_values[i] + + def sample_embeddings(self, num_embeddings): + num_actions = len(self.dicts) + embeddings = [] + num_embeddings_per_action = int(num_embeddings/num_actions) + for action in range(num_actions): + embeddings.append(self.dicts[action].sample_embeddings(num_embeddings_per_action)) + embeddings = np.vstack(embeddings) + + # the numbers did not divide nicely, let's just randomly sample some more embeddings + if num_embeddings_per_action * num_actions < num_embeddings: + action = np.random.randint(0, num_actions) + extra_embeddings = self.dicts[action].sample_embeddings(num_embeddings - + num_embeddings_per_action * num_actions) + embeddings = np.vstack([embeddings, extra_embeddings]) + return embeddings + + def clean(self): + # create a new dict for each action + self.dicts = [] + for a in range(self.num_actions): + new_dict = AnnoyDictionary(self.dict_size, self.key_width, self.new_value_shift_coefficient, + key_error_threshold=self.key_error_threshold, num_neighbors=self.num_neighbors) + self.dicts.append(new_dict)
+ + +def load_dnd(model_dir): + max_id = 0 + + for f in [s for s in os.listdir(model_dir) if s.endswith('.dnd')]: + if int(f.split('.')[0]) > max_id: + max_id = int(f.split('.')[0]) + + model_path = str(max_id) + '.dnd' + with open(os.path.join(model_dir, model_path), 'rb') as f: + DND = pickle.load(f) + + for a in range(DND.num_actions): + DND.dicts[a].index = AnnoyIndex(512, metric='euclidean') + DND.dicts[a].index.set_seed(1) + + for idx, key in zip(range(DND.dicts[a].curr_size), DND.dicts[a].embeddings[:DND.dicts[a].curr_size]): + DND.dicts[a].index.add_item(idx, key) + + DND.dicts[a].index.build(50) + + return DND +
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/memories/non_episodic/experience_replay.html b/docs/_modules/rl_coach/memories/non_episodic/experience_replay.html new file mode 100644 index 0000000..660b17f --- /dev/null +++ b/docs/_modules/rl_coach/memories/non_episodic/experience_replay.html @@ -0,0 +1,467 @@ + + + + + + + + + + + rl_coach.memories.non_episodic.experience_replay — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.memories.non_episodic.experience_replay
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.memories.non_episodic.experience_replay

+#
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+from typing import List, Tuple, Union, Dict, Any
+import pickle
+import sys
+import time
+
+import numpy as np
+
+from rl_coach.core_types import Transition
+from rl_coach.logger import screen
+from rl_coach.memories.memory import Memory, MemoryGranularity, MemoryParameters
+from rl_coach.utils import ReaderWriterLock, ProgressBar
+
+
+class ExperienceReplayParameters(MemoryParameters):
+    def __init__(self):
+        super().__init__()
+        self.max_size = (MemoryGranularity.Transitions, 1000000)
+        self.allow_duplicates_in_batch_sampling = True
+
+    @property
+    def path(self):
+        return 'rl_coach.memories.non_episodic.experience_replay:ExperienceReplay'
+
+
+
[docs]class ExperienceReplay(Memory): + """ + A regular replay buffer which stores transition without any additional structure + """ + def __init__(self, max_size: Tuple[MemoryGranularity, int], allow_duplicates_in_batch_sampling: bool=True): + """ + :param max_size: the maximum number of transitions or episodes to hold in the memory + :param allow_duplicates_in_batch_sampling: allow having the same transition multiple times in a batch + """ + super().__init__(max_size) + if max_size[0] != MemoryGranularity.Transitions: + raise ValueError("Experience replay size can only be configured in terms of transitions") + self.transitions = [] + self.allow_duplicates_in_batch_sampling = allow_duplicates_in_batch_sampling + + self.reader_writer_lock = ReaderWriterLock() + + def length(self) -> int: + """ + Get the number of transitions in the ER + """ + return self.num_transitions() + + def num_transitions(self) -> int: + """ + Get the number of transitions in the ER + """ + return len(self.transitions) + + def sample(self, size: int) -> List[Transition]: + """ + Sample a batch of transitions form the replay buffer. If the requested size is larger than the number + of samples available in the replay buffer then the batch will return empty. + :param size: the size of the batch to sample + :param beta: the beta parameter used for importance sampling + :return: a batch (list) of selected transitions from the replay buffer + """ + self.reader_writer_lock.lock_writing() + + if self.allow_duplicates_in_batch_sampling: + transitions_idx = np.random.randint(self.num_transitions(), size=size) + + else: + if self.num_transitions() >= size: + transitions_idx = np.random.choice(self.num_transitions(), size=size, replace=False) + else: + raise ValueError("The replay buffer cannot be sampled since there are not enough transitions yet. " + "There are currently {} transitions".format(self.num_transitions())) + + batch = [self.transitions[i] for i in transitions_idx] + + self.reader_writer_lock.release_writing() + return batch + + def _enforce_max_length(self) -> None: + """ + Make sure that the size of the replay buffer does not pass the maximum size allowed. + If it passes the max size, the oldest transition in the replay buffer will be removed. + This function does not use locks since it is only called internally + :return: None + """ + granularity, size = self.max_size + if granularity == MemoryGranularity.Transitions: + while size != 0 and self.num_transitions() > size: + self.remove_transition(0, False) + else: + raise ValueError("The granularity of the replay buffer can only be set in terms of transitions") + + def store(self, transition: Transition, lock: bool=True) -> None: + """ + Store a new transition in the memory. + :param transition: a transition to store + :param lock: if true, will lock the readers writers lock. this can cause a deadlock if an inheriting class + locks and then calls store with lock = True + :return: None + """ + # Calling super.store() so that in case a memory backend is used, the memory backend can store this transition. + super().store(transition) + if lock: + self.reader_writer_lock.lock_writing_and_reading() + + self.transitions.append(transition) + self._enforce_max_length() + + if lock: + self.reader_writer_lock.release_writing_and_reading() + + def get_transition(self, transition_index: int, lock: bool=True) -> Union[None, Transition]: + """ + Returns the transition in the given index. If the transition does not exist, returns None instead. + :param transition_index: the index of the transition to return + :param lock: use write locking if this is a shared memory + :return: the corresponding transition + """ + if lock: + self.reader_writer_lock.lock_writing() + + if self.length() == 0 or transition_index >= self.length(): + transition = None + else: + transition = self.transitions[transition_index] + + if lock: + self.reader_writer_lock.release_writing() + + return transition + + def remove_transition(self, transition_index: int, lock: bool=True) -> None: + """ + Remove the transition in the given index. + + This does not remove the transition from the segment trees! it is just used to remove the transition + from the transitions list + :param transition_index: the index of the transition to remove + :return: None + """ + if lock: + self.reader_writer_lock.lock_writing_and_reading() + + if self.num_transitions() > transition_index: + del self.transitions[transition_index] + + if lock: + self.reader_writer_lock.release_writing_and_reading() + + # for API compatibility + def get(self, transition_index: int, lock: bool=True) -> Union[None, Transition]: + """ + Returns the transition in the given index. If the transition does not exist, returns None instead. + :param transition_index: the index of the transition to return + :return: the corresponding transition + """ + return self.get_transition(transition_index, lock) + + # for API compatibility + def remove(self, transition_index: int, lock: bool=True): + """ + Remove the transition in the given index + :param transition_index: the index of the transition to remove + :return: None + """ + self.remove_transition(transition_index, lock) + + def clean(self, lock: bool=True) -> None: + """ + Clean the memory by removing all the episodes + :return: None + """ + if lock: + self.reader_writer_lock.lock_writing_and_reading() + + self.transitions = [] + + if lock: + self.reader_writer_lock.release_writing_and_reading() + + def mean_reward(self) -> np.ndarray: + """ + Get the mean reward in the replay buffer + :return: the mean reward + """ + self.reader_writer_lock.lock_writing() + + mean = np.mean([transition.reward for transition in self.transitions]) + + self.reader_writer_lock.release_writing() + + return mean + + def save(self, file_path: str) -> None: + """ + Save the replay buffer contents to a pickle file + :param file_path: the path to the file that will be used to store the pickled transitions + """ + with open(file_path, 'wb') as file: + pickle.dump(self.transitions, file) + + def load(self, file_path: str) -> None: + """ + Restore the replay buffer contents from a pickle file. + The pickle file is assumed to include a list of transitions. + :param file_path: The path to a pickle file to restore + """ + with open(file_path, 'rb') as file: + transitions = pickle.load(file) + num_transitions = len(transitions) + if num_transitions > self.max_size[1]: + screen.warning("Warning! The number of transition to load into the replay buffer ({}) is " + "bigger than the max size of the replay buffer ({}). The excessive transitions will " + "not be stored.".format(num_transitions, self.max_size[1])) + + progress_bar = ProgressBar(num_transitions) + for transition_idx, transition in enumerate(transitions): + self.store(transition) + + # print progress + if transition_idx % 100 == 0: + progress_bar.update(transition_idx) + + progress_bar.close()
+
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/memories/non_episodic/prioritized_experience_replay.html b/docs/_modules/rl_coach/memories/non_episodic/prioritized_experience_replay.html new file mode 100644 index 0000000..a516e7c --- /dev/null +++ b/docs/_modules/rl_coach/memories/non_episodic/prioritized_experience_replay.html @@ -0,0 +1,526 @@ + + + + + + + + + + + rl_coach.memories.non_episodic.prioritized_experience_replay — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.memories.non_episodic.prioritized_experience_replay
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.memories.non_episodic.prioritized_experience_replay

+#
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+import operator
+import random
+from enum import Enum
+from typing import List, Tuple, Any
+
+import numpy as np
+
+from rl_coach.core_types import Transition
+from rl_coach.memories.memory import MemoryGranularity
+from rl_coach.memories.non_episodic.experience_replay import ExperienceReplayParameters, ExperienceReplay
+from rl_coach.schedules import Schedule, ConstantSchedule
+
+
+class PrioritizedExperienceReplayParameters(ExperienceReplayParameters):
+    def __init__(self):
+        super().__init__()
+        self.max_size = (MemoryGranularity.Transitions, 1000000)
+        self.alpha = 0.6
+        self.beta = ConstantSchedule(0.4)
+        self.epsilon = 1e-6
+
+    @property
+    def path(self):
+        return 'rl_coach.memories.non_episodic.prioritized_experience_replay:PrioritizedExperienceReplay'
+
+
+class SegmentTree(object):
+    """
+    A tree which can be used as a min/max heap or a sum tree
+    Add or update item value - O(log N)
+    Sampling an item - O(log N)
+    """
+    class Operation(Enum):
+        MAX = {"operator": max, "initial_value": -float("inf")}
+        MIN = {"operator": min, "initial_value": float("inf")}
+        SUM = {"operator": operator.add, "initial_value": 0}
+
+    def __init__(self, size: int, operation: Operation):
+        self.next_leaf_idx_to_write = 0
+        self.size = size
+        if not (size > 0 and size & (size - 1) == 0):
+            raise ValueError("A segment tree size must be a positive power of 2. The given size is {}".format(self.size))
+        self.operation = operation
+        self.tree = np.ones(2 * size - 1) * self.operation.value['initial_value']
+        self.data = [None] * size
+
+    def _propagate(self, node_idx: int) -> None:
+        """
+        Propagate an update of a node's value to its parent node
+        :param node_idx: the index of the node that was updated
+        :return: None
+        """
+        parent = (node_idx - 1) // 2
+
+        self.tree[parent] = self.operation.value['operator'](self.tree[parent * 2 + 1], self.tree[parent * 2 + 2])
+
+        if parent != 0:
+            self._propagate(parent)
+
+    def _retrieve(self, root_node_idx: int, val: float)-> int:
+        """
+        Retrieve the first node that has a value larger than val and is a child of the node at index idx
+        :param root_node_idx: the index of the root node to search from
+        :param val: the value to query for
+        :return: the index of the resulting node
+        """
+        left = 2 * root_node_idx + 1
+        right = left + 1
+
+        if left >= len(self.tree):
+            return root_node_idx
+
+        if val <= self.tree[left]:
+            return self._retrieve(left, val)
+        else:
+            return self._retrieve(right, val-self.tree[left])
+
+    def total_value(self) -> float:
+        """
+        Return the total value of the tree according to the tree operation. For SUM for example, this will return
+        the total sum of the tree. for MIN, this will return the minimal value
+        :return: the total value of the tree
+        """
+        return self.tree[0]
+
+    def add(self, val: float, data: Any) -> None:
+        """
+        Add a new value to the tree with data assigned to it
+        :param val: the new value to add to the tree
+        :param data: the data that should be assigned to this value
+        :return: None
+        """
+        self.data[self.next_leaf_idx_to_write] = data
+        self.update(self.next_leaf_idx_to_write, val)
+
+        self.next_leaf_idx_to_write += 1
+        if self.next_leaf_idx_to_write >= self.size:
+            self.next_leaf_idx_to_write = 0
+
+    def update(self, leaf_idx: int, new_val: float) -> None:
+        """
+        Update the value of the node at index idx
+        :param leaf_idx: the index of the node to update
+        :param new_val: the new value of the node
+        :return: None
+        """
+        node_idx = leaf_idx + self.size - 1
+        if not 0 <= node_idx < len(self.tree):
+            raise ValueError("The given left index ({}) can not be found in the tree. The available leaves are: 0-{}"
+                             .format(leaf_idx, self.size - 1))
+
+        self.tree[node_idx] = new_val
+        self._propagate(node_idx)
+
+    def get_element_by_partial_sum(self, val: float) -> Tuple[int, float, Any]:
+        """
+        Given a value between 0 and the tree sum, return the object which this value is in it's range.
+        For example, if we have 3 leaves: 10, 20, 30, and val=35, this will return the 3rd leaf, by accumulating
+        leaves by their order until getting to 35. This allows sampling leaves according to their proportional
+        probability.
+        :param val: a value within the range 0 and the tree sum
+        :return: the index of the resulting leaf in the tree, its probability and
+                 the object itself
+        """
+        node_idx = self._retrieve(0, val)
+        leaf_idx = node_idx - self.size + 1
+        data_value = self.tree[node_idx]
+        data = self.data[leaf_idx]
+
+        return leaf_idx, data_value, data
+
+    def __str__(self):
+        result = ""
+        start = 0
+        size = 1
+        while size <= self.size:
+            result += "{}\n".format(self.tree[start:(start + size)])
+            start += size
+            size *= 2
+        return result
+
+
+
[docs]class PrioritizedExperienceReplay(ExperienceReplay): + """ + This is the proportional sampling variant of the prioritized experience replay as described + in https://arxiv.org/pdf/1511.05952.pdf. + """ + def __init__(self, max_size: Tuple[MemoryGranularity, int], alpha: float=0.6, beta: Schedule=ConstantSchedule(0.4), + epsilon: float=1e-6, allow_duplicates_in_batch_sampling: bool=True): + """ + :param max_size: the maximum number of transitions or episodes to hold in the memory + :param alpha: the alpha prioritization coefficient + :param beta: the beta parameter used for importance sampling + :param epsilon: a small value added to the priority of each transition + :param allow_duplicates_in_batch_sampling: allow having the same transition multiple times in a batch + """ + if max_size[0] != MemoryGranularity.Transitions: + raise ValueError("Prioritized Experience Replay currently only support setting the memory size in " + "transitions granularity.") + self.power_of_2_size = 1 + while self.power_of_2_size < max_size[1]: + self.power_of_2_size *= 2 + super().__init__((MemoryGranularity.Transitions, self.power_of_2_size), allow_duplicates_in_batch_sampling) + self.sum_tree = SegmentTree(self.power_of_2_size, SegmentTree.Operation.SUM) + self.min_tree = SegmentTree(self.power_of_2_size, SegmentTree.Operation.MIN) + self.max_tree = SegmentTree(self.power_of_2_size, SegmentTree.Operation.MAX) + self.alpha = alpha + self.beta = beta + self.epsilon = epsilon + self.maximal_priority = 1.0 + + def _update_priority(self, leaf_idx: int, error: float) -> None: + """ + Update the priority of a given transition, using its index in the tree and its error + :param leaf_idx: the index of the transition leaf in the tree + :param error: the new error value + :return: None + """ + if error < 0: + raise ValueError("The priorities must be non-negative values") + priority = (error + self.epsilon) + self.sum_tree.update(leaf_idx, priority ** self.alpha) + self.min_tree.update(leaf_idx, priority ** self.alpha) + self.max_tree.update(leaf_idx, priority) + self.maximal_priority = self.max_tree.total_value() + + def update_priorities(self, indices: List[int], error_values: List[float]) -> None: + """ + Update the priorities of a batch of transitions using their indices and their new TD error terms + :param indices: the indices of the transitions to update + :param error_values: the new error values + :return: None + """ + self.reader_writer_lock.lock_writing_and_reading() + + if len(indices) != len(error_values): + raise ValueError("The number of indexes requested for update don't match the number of error values given") + for transition_idx, error in zip(indices, error_values): + self._update_priority(transition_idx, error) + + self.reader_writer_lock.release_writing_and_reading() + + def sample(self, size: int) -> List[Transition]: + """ + Sample a batch of transitions form the replay buffer. If the requested size is larger than the number + of samples available in the replay buffer then the batch will return empty. + :param size: the size of the batch to sample + :return: a batch (list) of selected transitions from the replay buffer + """ + + self.reader_writer_lock.lock_writing() + + if self.num_transitions() >= size: + # split the tree leaves to equal segments and sample one transition from each segment + batch = [] + segment_size = self.sum_tree.total_value() / size + + # get the maximum weight in the memory + min_probability = self.min_tree.total_value() / self.sum_tree.total_value() # min P(j) = min p^a / sum(p^a) + max_weight = (min_probability * self.num_transitions()) ** -self.beta.current_value # max wi + + # sample a batch + for i in range(size): + segment_start = segment_size * i + segment_end = segment_size * (i + 1) + + # sample leaf and calculate its weight + val = random.uniform(segment_start, segment_end) + leaf_idx, priority, transition = self.sum_tree.get_element_by_partial_sum(val) + priority /= self.sum_tree.total_value() # P(j) = p^a / sum(p^a) + weight = (self.num_transitions() * priority) ** -self.beta.current_value # (N * P(j)) ^ -beta + normalized_weight = weight / max_weight # wj = ((N * P(j)) ^ -beta) / max wi + + transition.info['idx'] = leaf_idx + transition.info['weight'] = normalized_weight + + batch.append(transition) + + self.beta.step() + + else: + raise ValueError("The replay buffer cannot be sampled since there are not enough transitions yet. " + "There are currently {} transitions".format(self.num_transitions())) + + self.reader_writer_lock.release_writing() + return batch + + def store(self, transition: Transition, lock=True) -> None: + """ + Store a new transition in the memory. + :param transition: a transition to store + :return: None + """ + # Calling super.store() so that in case a memory backend is used, the memory backend can store this transition. + super().store(transition) + + if lock: + self.reader_writer_lock.lock_writing_and_reading() + + transition_priority = self.maximal_priority + self.sum_tree.add(transition_priority ** self.alpha, transition) + self.min_tree.add(transition_priority ** self.alpha, transition) + self.max_tree.add(transition_priority, transition) + super().store(transition, False) + + if lock: + self.reader_writer_lock.release_writing_and_reading() + + def clean(self, lock=True) -> None: + """ + Clean the memory by removing all the episodes + :return: None + """ + if lock: + self.reader_writer_lock.lock_writing_and_reading() + + super().clean(lock=False) + self.sum_tree = SegmentTree(self.power_of_2_size, SegmentTree.Operation.SUM) + self.min_tree = SegmentTree(self.power_of_2_size, SegmentTree.Operation.MIN) + self.max_tree = SegmentTree(self.power_of_2_size, SegmentTree.Operation.MAX) + + if lock: + self.reader_writer_lock.release_writing_and_reading()
+
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/memories/non_episodic/transition_collection.html b/docs/_modules/rl_coach/memories/non_episodic/transition_collection.html new file mode 100644 index 0000000..1b18ee7 --- /dev/null +++ b/docs/_modules/rl_coach/memories/non_episodic/transition_collection.html @@ -0,0 +1,263 @@ + + + + + + + + + + + rl_coach.memories.non_episodic.transition_collection — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ +
    + +
  • Docs »
  • + +
  • Module code »
  • + +
  • rl_coach.memories.non_episodic.transition_collection
  • + + +
  • + +
  • + +
+ + +
+
+
+
+ +

Source code for rl_coach.memories.non_episodic.transition_collection

+from rl_coach.core_types import Transition
+
+
+
[docs]class TransitionCollection(object): + """ + Simple python implementation of transitions collection non-episodic memories + are constructed on top of. + """ + def __init__(self): + super(TransitionCollection, self).__init__() + + def append(self, transition): + pass + + def extend(self, transitions): + for transition in transitions: + self.append(transition) + + def __len__(self): + pass + + def __del__(self, range: slice): + # NOTE: the only slice used is the form: slice(None, n) + # NOTE: if it is easier, what we really want here is the ability to + # constrain the size of the collection. as new transitions are added, + # old transitions can be removed to maintain a maximum collection size. + pass + + def __getitem__(self, key: int): + # NOTE: we can switch to a method which fetches multiple items at a time + # if that would significantly improve performance + pass + + def __iter__(self): + # this is not high priority + pass
+
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_modules/rl_coach/spaces.html b/docs/_modules/rl_coach/spaces.html new file mode 100644 index 0000000..65f3bc5 --- /dev/null +++ b/docs/_modules/rl_coach/spaces.html @@ -0,0 +1,858 @@ + + + + + + + + + + + rl_coach.spaces — Reinforcement Learning Coach 0.11.0 documentation + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + +
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+ +

Source code for rl_coach.spaces

+#
+# Copyright (c) 2017 Intel Corporation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+import random
+from enum import Enum
+from itertools import product
+from typing import Union, List, Dict, Tuple, Callable
+
+import numpy as np
+import scipy
+import scipy.spatial
+
+from rl_coach.core_types import ActionType, ActionInfo
+from rl_coach.utils import eps
+
+
+
[docs]class Space(object): + """ + A space defines a set of valid values + """ + def __init__(self, shape: Union[int, tuple, list, np.ndarray], low: Union[None, int, float, np.ndarray]=-np.inf, + high: Union[None, int, float, np.ndarray]=np.inf): + """ + :param shape: the shape of the space + :param low: the lowest values possible in the space. can be an array defining the lowest values per point, + or a single value defining the general lowest values + :param high: the highest values possible in the space. can be an array defining the highest values per point, + or a single value defining the general highest values + """ + + # the number of dimensions is the number of axes in the shape. it will be set in the shape setter + self.num_dimensions = 0 + + # the number of elements is the number of possible actions if the action space was discrete. + # it will be set in the shape setter + self.num_elements = 0 + + self._low = self._high = None + self._shape = self.shape = shape + self._low = self.low = low + self._high = self.high = high + + # we allow zero sized spaces which means that the space is empty. this is useful for environments with no + # measurements for example. + if type(shape) == int and shape < 0: + raise ValueError("The shape of the space must be a non-negative number") + + @property + def shape(self): + return self._shape + + @shape.setter + def shape(self, val: Union[int, tuple, list, np.ndarray]): + # convert the shape to an np.ndarray + self._shape = val + if type(self._shape) == int: + self._shape = np.array([self._shape]) + if type(self._shape) == tuple or type(self._shape) == list: + self._shape = np.array(self._shape) + + # the shape is now an np.ndarray + self.num_dimensions = len(self._shape) + self.num_elements = int(np.prod(self._shape)) + + @property + def low(self): + if hasattr(self, '_low'): + return self._low + else: + return None + + @low.setter + def low(self, val: Union[None, int, float, np.ndarray]): + if type(val) == np.ndarray and type(self.shape) == np.ndarray and np.all(val.shape != self.shape): + raise ValueError("The low values shape don't match the shape of the space") + elif self.high is not None and not np.all(self.high >= val): + raise ValueError("At least one of the axes-parallel lines defining the space has high values which " + "are lower than the given low values") + else: + self._low = val + # we allow using a number to define the low values, but we immediately convert it to an array which defines + # the low values for all the space dimensions in order to expose a consistent value type + if type(self._low) == int or type(self._low) == float: + self._low = np.ones(self.shape)*self._low + + @property + def high(self): + if hasattr(self, '_high'): + return self._high + else: + return None + + @high.setter + def high(self, val: Union[None, int, float, np.ndarray]): + if type(val) == np.ndarray and type(self.shape) == np.ndarray and np.all(val.shape != self.shape): + raise ValueError("The high values shape don't match the shape of the space") + elif self.low is not None and not np.all(self.low <= val): + raise ValueError("At least one of the axes-parallel lines defining the space has low values which " + "are higher than the given high values") + else: + self._high = val + # we allow using a number to define the high values, but we immediately convert it to an array which defines + # the high values for all the space dimensions in order to expose a consistent value type + if type(self._high) == int or type(self._high) == float: + self._high = np.ones(self.shape)*self._high + +
[docs] def val_matches_space_definition(self, val: Union[int, float, np.ndarray]) -> bool: + """ + Checks if the given value matches the space definition in terms of shape and values + + :param val: a value to check + :return: True / False depending on if the val matches the space definition + """ + if (type(val) == int or type(val) == float) and not np.all(self.shape == np.ones(1)): + return False + if type(val) == np.ndarray and not np.all(val.shape == self.shape): + return False + if (self.low is not None and not np.all(val >= self.low)) \ + or (self.high is not None and not np.all(val <= self.high)): + # TODO: check the performance overhead this causes + return False + return True
+ +
[docs] def is_point_in_space_shape(self, point: np.ndarray) -> bool: + """ + Checks if a given multidimensional point is within the bounds of the shape of the space + + :param point: a multidimensional point + :return: True if the point is within the shape of the space. False otherwise + """ + if len(point) != self.num_dimensions: + return False + if np.any(point < np.zeros(self.num_dimensions)) or np.any(point >= self.shape): + return False + return True
+ +
[docs] def sample(self) -> np.ndarray: + """ + Sample the defined space, either uniformly, if space bounds are defined, or Normal distributed if no + bounds are defined + + :return: A numpy array sampled from the space + """ + # if there are infinite bounds, we sample using gaussian noise with mean 0 and std 1 + if np.any(self.low == -np.inf) or np.any(self.high == np.inf): + return np.random.normal(0, 1, self.shape) + else: + return np.random.uniform(self.low, self.high, self.shape)
+ + +class RewardSpace(Space): + def __init__(self, shape: Union[int, np.ndarray], low: Union[None, int, float, np.ndarray]=-np.inf, + high: Union[None, int, float, np.ndarray]=np.inf, + reward_success_threshold: Union[None, int, float]=None): + super().__init__(shape, low, high) + self.reward_success_threshold = reward_success_threshold + + +""" +Observation Spaces +""" + + +
[docs]class ObservationSpace(Space): + def __init__(self, shape: Union[int, np.ndarray], low: Union[None, int, float, np.ndarray]=-np.inf, + high: Union[None, int, float, np.ndarray]=np.inf): + super().__init__(shape, low, high)
+ + +
[docs]class VectorObservationSpace(ObservationSpace): + """ + An observation space which is defined as a vector of elements. This can be particularly useful for environments + which return measurements, such as in robotic environmnets. + """ + def __init__(self, shape: int, low: Union[None, int, float, np.ndarray]=-np.inf, + high: Union[None, int, float, np.ndarray]=np.inf, measurements_names: List[str]=None): + if measurements_names is None: + measurements_names = [] + if len(measurements_names) > shape: + raise ValueError("measurement_names size {} is larger than shape {}.".format( + len(measurements_names), shape)) + + self.measurements_names = measurements_names + super().__init__(shape, low, high)
+ + +
[docs]class PlanarMapsObservationSpace(ObservationSpace): + """ + An observation space which defines a stack of 2D observations. For example, an environment which returns + a stack of segmentation maps like in Starcraft. + """ + def __init__(self, shape: Union[np.ndarray], low: int, high: int, channels_axis: int=-1): + super().__init__(shape, low, high) + self.channels_axis = channels_axis + + if not 2 <= len(shape) <= 3: + raise ValueError("Planar maps observations must have 3 dimensions - a channels dimension and 2 maps " + "dimensions, not {}".format(len(shape))) + if len(shape) == 2: + self.channels = 1 + else: + self.channels = shape[channels_axis]
+ + +
[docs]class ImageObservationSpace(PlanarMapsObservationSpace): + """ + An observation space which is a private case of the PlanarMapsObservationSpace, where the stack of 2D observations + represent a RGB image, or a grayscale image. + """ + def __init__(self, shape: Union[np.ndarray], high: int, channels_axis: int=-1): + # TODO: consider allowing arbitrary low values for images + super().__init__(shape, 0, high, channels_axis) + self.has_colors = self.channels == 3 + if not self.channels == 3 and not self.channels == 1: + raise ValueError("Image observations must have 1 or 3 channels, not {}".format(self.channels))
+ + +# TODO: mixed observation spaces (image + measurements, image + segmentation + depth map, etc.) +class StateSpace(object): + def __init__(self, sub_spaces: Dict[str, Space]): + self.sub_spaces = sub_spaces + + def __getitem__(self, item): + return self.sub_spaces[item] + + def __setitem__(self, key, value): + self.sub_spaces[key] = value + + +""" +Action Spaces +""" + + +
[docs]class ActionSpace(Space): + def __init__(self, shape: Union[int, np.ndarray], low: Union[None, int, float, np.ndarray]=-np.inf, + high: Union[None, int, float, np.ndarray]=np.inf, descriptions: Union[None, List, Dict]=None, + default_action: ActionType=None): + super().__init__(shape, low, high) + # we allow a mismatch between the number of descriptions and the number of actions. + # in this case the descriptions for the actions that were not given will be the action index + if descriptions is not None: + self.descriptions = descriptions + else: + self.descriptions = {} + self.default_action = default_action + + @property + def actions(self) -> List[ActionType]: + raise NotImplementedError("The action space does not have an explicit actions list") + +
[docs] def sample_with_info(self) -> ActionInfo: + """ + Get a random action with additional "fake" info + + :return: An action info instance + """ + return ActionInfo(self.sample())
+ +
[docs] def clip_action_to_space(self, action: ActionType) -> ActionType: + """ + Given an action, clip its values to fit to the action space ranges + + :param action: a given action + :return: the clipped action + """ + return action
+ + def get_description(self, action: np.ndarray) -> str: + raise NotImplementedError("") + + def __str__(self): + return "{}: shape = {}, low = {}, high = {}".format(self.__class__.__name__, self.shape, self.low, self.high) + + def __repr__(self): + return self.__str__()
+ + +
[docs]class AttentionActionSpace(ActionSpace): + """ + A box selection continuous action space, meaning that the actions are defined as selecting a multidimensional box + from a given range. + The actions will be in the form: + [[low_x, low_y, ...], [high_x, high_y, ...]] + """ + def __init__(self, shape: int, low: Union[None, int, float, np.ndarray]=-np.inf, + high: Union[None, int, float, np.ndarray]=np.inf, descriptions: Union[None, List, Dict]=None, + default_action: np.ndarray = None, forced_attention_size: Union[None, int, float, np.ndarray]=None): + super().__init__(shape, low, high, descriptions) + + self.forced_attention_size = forced_attention_size + if isinstance(self.forced_attention_size, int) or isinstance(self.forced_attention_size, float): + self.forced_attention_size = np.ones(self.shape) * self.forced_attention_size + + if self.forced_attention_size is not None and np.all(self.forced_attention_size > (self.high - self.low)): + raise ValueError("The forced attention size is larger than the action space") + + # default action + if default_action is None: + if self.forced_attention_size is not None: + self.default_action = [self.low*np.ones(self.shape), + (self.low+self.forced_attention_size)*np.ones(self.shape)] + else: + self.default_action = [self.low*np.ones(self.shape), self.high*np.ones(self.shape)] + else: + self.default_action = default_action + + def sample(self) -> List: + if self.forced_attention_size is not None: + sampled_low = np.random.uniform(self.low, self.high-self.forced_attention_size, self.shape) + sampled_high = sampled_low + self.forced_attention_size + else: + sampled_low = np.random.uniform(self.low, self.high, self.shape) + sampled_high = np.random.uniform(sampled_low, self.high, self.shape) + return [sampled_low, sampled_high] + + def clip_action_to_space(self, action: ActionType) -> ActionType: + action = [np.clip(action[0], self.low, self.high), np.clip(action[1], self.low, self.high)] + return action
+ + +
[docs]class BoxActionSpace(ActionSpace): + """ + A multidimensional bounded or unbounded continuous action space + """ + def __init__(self, shape: Union[int, np.ndarray], low: Union[None, int, float, np.ndarray]=-np.inf, + high: Union[None, int, float, np.ndarray]=np.inf, descriptions: Union[None, List, Dict]=None, + default_action: np.ndarray=None): + super().__init__(shape, low, high, descriptions) + self.max_abs_range = np.maximum(np.abs(self.low), np.abs(self.high)) + + # default action + if default_action is None: + if np.any(np.isinf(self.low)) or np.any(np.isinf(self.high)): + self.default_action = np.zeros(shape) + else: + self.default_action = self.low + (self.high - self.low) / 2 + else: + self.default_action = default_action + + def clip_action_to_space(self, action: ActionType) -> ActionType: + action = np.clip(action, self.low, self.high) + return action
+ + +
[docs]class DiscreteActionSpace(ActionSpace): + """ + A discrete action space with action indices as actions + """ + def __init__(self, num_actions: int, descriptions: Union[None, List, Dict]=None, default_action: np.ndarray=None): + super().__init__(1, low=0, high=num_actions-1, descriptions=descriptions) + # the number of actions is mapped to high + + # default action + if default_action is None: + self.default_action = 0 + else: + self.default_action = default_action + + @property + def actions(self) -> List[ActionType]: + return list(range(0, int(self.high[0]) + 1)) + + def sample(self) -> int: + return np.random.choice(self.actions) + + def sample_with_info(self) -> ActionInfo: + return ActionInfo(self.sample(), action_probability=1. / (self.high[0] - self.low[0] + 1)) + + def get_description(self, action: int) -> str: + if type(self.descriptions) == list and 0 <= action < len(self.descriptions): + return self.descriptions[action] + elif type(self.descriptions) == dict and action in self.descriptions.keys(): + return self.descriptions[action] + elif 0 <= action < self.shape: + return str(action) + else: + raise ValueError("The given action is outside of the action space")
+ + +
[docs]class MultiSelectActionSpace(ActionSpace): + """ + A discrete action space where multiple actions can be selected at once. The actions are encoded as multi-hot vectors + """ + def __init__(self, size: int, max_simultaneous_selected_actions: int=1, descriptions: Union[None, List, Dict]=None, + default_action: np.ndarray=None, allow_no_action_to_be_selected=True): + super().__init__(size, low=None, high=None, descriptions=descriptions) + self.max_simultaneous_selected_actions = max_simultaneous_selected_actions + + if max_simultaneous_selected_actions > size: + raise ValueError("The maximum simultaneous selected actions can't be larger the max number of actions") + + # create all combinations of actions as a list of actions + I = [np.eye(size)]*self.max_simultaneous_selected_actions + self._actions = [] + if allow_no_action_to_be_selected: + self._actions.append(np.zeros(size)) + self._actions.extend(list(np.unique([np.clip(np.sum(t, axis=0), 0, 1) for t in product(*I)], axis=0))) + + # default action + if default_action is None: + self.default_action = self._actions[0] + else: + self.default_action = default_action + + @property + def actions(self) -> List[ActionType]: + return self._actions + + def sample(self) -> np.ndarray: + # samples a multi-hot vector + return random.choice(self.actions) + + def sample_with_info(self) -> ActionInfo: + return ActionInfo(self.sample(), action_probability=1. / len(self.actions)) + + def get_description(self, action: np.ndarray) -> str: + if np.sum(len(np.where(action == 0)[0])) + np.sum(len(np.where(action == 1)[0])) != self.shape or \ + np.sum(len(np.where(action == 1)[0])) > self.max_simultaneous_selected_actions: + raise ValueError("The given action is not in the action space") + selected_actions = np.where(action == 1)[0] + description = [self.descriptions[a] for a in selected_actions] + if len(description) == 0: + description = ['no-op'] + return ' + '.join(description)
+ + +
[docs]class CompoundActionSpace(ActionSpace): + """ + An action space which consists of multiple sub-action spaces. + For example, in Starcraft the agent should choose an action identifier from ~550 options (Discrete(550)), + but it also needs to choose 13 different arguments for the selected action identifier, where each argument is + by itself an action space. In Starcraft, the arguments are Discrete action spaces as well, but this is not mandatory. + """ + def __init__(self, sub_spaces: List[ActionSpace]): + super().__init__(0) + self.sub_action_spaces = sub_spaces + # TODO: define the shape, low and high value in a better way + + @property + def actions(self) -> List[ActionType]: + return [action_space.actions for action_space in self.sub_action_spaces] + + def sample(self) -> ActionType: + return [action_space.sample() for action_space in self.sub_action_spaces] + + def clip_action_to_space(self, actions: List[ActionType]) -> ActionType: + if not isinstance(actions, list) or len(actions) != len(self.sub_action_spaces): + raise ValueError("The actions to be clipped must be a list with the same number of sub-actions as " + "defined in the compound action space.") + for idx in range(len(self.sub_action_spaces)): + actions[idx] = self.sub_action_spaces[idx].clip_action_to_space(actions[idx]) + return actions + + def get_description(self, actions: np.ndarray) -> str: + description = [action_space.get_description(action) for action_space, action in zip(self.sub_action_spaces, actions)] + return ' + '.join(description)
+ + +""" +Goals +""" + + +class GoalToRewardConversion(object): + def __init__(self, goal_reaching_reward: float=0): + self.goal_reaching_reward = goal_reaching_reward + + def convert_distance_to_reward(self, distance: Union[float, np.ndarray]) -> Tuple[float, bool]: + """ + Given a distance from the goal, return a reward and a flag representing if the goal was reached + + :param distance: the distance from the goal + :return: + """ + raise NotImplementedError("") + + +class ReachingGoal(GoalToRewardConversion): + """ + get a reward if the goal was reached and 0 otherwise + """ + def __init__(self, distance_from_goal_threshold: Union[float, np.ndarray], goal_reaching_reward: float=0, + default_reward: float=-1): + """ + :param distance_from_goal_threshold: consider getting to this distance from the goal the same as getting + to the goal + :param goal_reaching_reward: the reward the agent will get when reaching the goal + :param default_reward: the reward the agent will get until it reaches the goal + """ + super().__init__(goal_reaching_reward) + self.distance_from_goal_threshold = distance_from_goal_threshold + self.default_reward = default_reward + + def convert_distance_to_reward(self, distance: Union[float, np.ndarray]) -> Tuple[float, bool]: + if np.all(distance <= self.distance_from_goal_threshold): + return self.goal_reaching_reward, True + else: + return self.default_reward, False + + +class InverseDistanceFromGoal(GoalToRewardConversion): + """ + get a reward inversely proportional to the distance from the goal + """ + def __init__(self, distance_from_goal_threshold: Union[float, np.ndarray], max_reward: float=1): + """ + :param distance_from_goal_threshold: consider getting to this distance from the goal the same as getting + to the goal + :param max_reward: the max reward the agent can get + """ + super().__init__(goal_reaching_reward=max_reward) + self.distance_from_goal_threshold = distance_from_goal_threshold + self.max_reward = max_reward + + def convert_distance_to_reward(self, distance: Union[float, np.ndarray]) -> Tuple[float, bool]: + return min(self.max_reward, 1 / (distance + eps)), distance <= self.distance_from_goal_threshold + + +
[docs]class GoalsSpace(VectorObservationSpace, ActionSpace): + """ + A multidimensional space with a goal type definition. It also behaves as an action space, so that hierarchical + agents can use it as an output action space. + The class acts as a wrapper to the target space. So after setting the target space, all the values of the class + will match the values of the target space (the shape, low, high, etc.) + """ +
[docs] class DistanceMetric(Enum): + Euclidean = 0 + Cosine = 1 + Manhattan = 2
+ + def __init__(self, goal_name: str, reward_type: GoalToRewardConversion, + distance_metric: Union[DistanceMetric, Callable]): + """ + :param goal_name: the name of the observation space to use as the achieved goal. + :param reward_type: the reward type to use for converting distances from goal to rewards + :param distance_metric: the distance metric to use. could be either one of the distances in the + DistanceMetric enum, or a custom function that gets two vectors as input and + returns the distance between them + """ + super().__init__(0) + self.goal_name = goal_name + self.distance_metric = distance_metric + self.reward_type = reward_type + self.target_space = None + self.max_abs_range = None + + def set_target_space(self, target_space: Space) -> None: + self.target_space = target_space + super().__init__(self.target_space.shape, self.target_space.low, self.target_space.high) + self.max_abs_range = np.maximum(np.abs(self.low), np.abs(self.high)) + +
[docs] def goal_from_state(self, state: Dict): + """ + Given a state, extract an observation according to the goal_name + + :param state: a dictionary of observations + :return: the observation corresponding to the goal_name + """ + return state[self.goal_name]
+ +
[docs] def distance_from_goal(self, goal: np.ndarray, state: dict) -> float: + """ + Given a state, check its distance from the goal + + :param goal: a numpy array representing the goal + :param state: a dict representing the state + :return: the distance from the goal + """ + state_value = self.goal_from_state(state) + + # calculate distance + if self.distance_metric == self.DistanceMetric.Cosine: + dist = scipy.spatial.distance.cosine(goal, state_value) + elif self.distance_metric == self.DistanceMetric.Euclidean: + dist = scipy.spatial.distance.euclidean(goal, state_value) + elif self.distance_metric == self.DistanceMetric.Manhattan: + dist = scipy.spatial.distance.cityblock(goal, state_value) + elif callable(self.distance_metric): + dist = self.distance_metric(goal, state_value) + else: + raise ValueError("The given distance metric for the goal is not valid.") + + return dist
+ +
[docs] def get_reward_for_goal_and_state(self, goal: np.ndarray, state: dict) -> Tuple[float, bool]: + """ + Given a state, check if the goal was reached and return a reward accordingly + + :param goal: a numpy array representing the goal + :param state: a dict representing the state + :return: the reward for the current goal and state pair and a boolean representing if the goal was reached + """ + dist = self.distance_from_goal(goal, state) + return self.reward_type.convert_distance_to_reward(dist)
+ + +class AgentSelection(DiscreteActionSpace): + """ + An discrete action space which is bounded by the number of agents to select from + """ + def __init__(self, num_agents: int): + super().__init__(num_agents) + + +class SpacesDefinition(object): + """ + A container class that allows passing the definitions of all the spaces at once + """ + def __init__(self, + state: StateSpace, + goal: ObservationSpace, + action: ActionSpace, + reward: RewardSpace): + self.state = state + self.goal = goal + self.action = action + self.reward = reward +
+ +
+ +
+ + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/_sources/components/additional_parameters.rst.txt b/docs/_sources/components/additional_parameters.rst.txt new file mode 100644 index 0000000..cfa8bb4 --- /dev/null +++ b/docs/_sources/components/additional_parameters.rst.txt @@ -0,0 +1,18 @@ +Additional Parameters +===================== + +VisualizationParameters +----------------------- +.. autoclass:: rl_coach.base_parameters.VisualizationParameters + +PresetValidationParameters +-------------------------- +.. autoclass:: rl_coach.base_parameters.PresetValidationParameters + +TaskParameters +-------------- +.. autoclass:: rl_coach.base_parameters.TaskParameters + +DistributedTaskParameters +------------------------- +.. autoclass:: rl_coach.base_parameters.DistributedTaskParameters diff --git a/docs/_sources/components/agents/imitation/bc.rst.txt b/docs/_sources/components/agents/imitation/bc.rst.txt new file mode 100644 index 0000000..3f9c06f --- /dev/null +++ b/docs/_sources/components/agents/imitation/bc.rst.txt @@ -0,0 +1,29 @@ +Behavioral Cloning +================== + +**Actions space:** Discrete | Continuous + +Network Structure +----------------- + +.. image:: /_static/img/design_imgs/pg.png + :align: center + + +Algorithm Description +--------------------- + +Training the network +++++++++++++++++++++ + +The replay buffer contains the expert demonstrations for the task. +These demonstrations are given as state, action tuples, and with no reward. +The training goal is to reduce the difference between the actions predicted by the network and the actions taken by +the expert for each state. + +1. Sample a batch of transitions from the replay buffer. +2. Use the current states as input to the network, and the expert actions as the targets of the network. +3. For the network head, we use the policy head, which uses the cross entropy loss function. + + +.. autoclass:: rl_coach.agents.bc_agent.BCAlgorithmParameters \ No newline at end of file diff --git a/docs/_sources/components/agents/imitation/cil.rst.txt b/docs/_sources/components/agents/imitation/cil.rst.txt new file mode 100644 index 0000000..b48c0d4 --- /dev/null +++ b/docs/_sources/components/agents/imitation/cil.rst.txt @@ -0,0 +1,36 @@ +Conditional Imitation Learning +============================== + +**Actions space:** Discrete | Continuous + +**References:** `End-to-end Driving via Conditional Imitation Learning `_ + +Network Structure +----------------- + +.. image:: /_static/img/design_imgs/cil.png + :align: center + + +Algorithm Description +--------------------- + +Training the network +++++++++++++++++++++ + +The replay buffer contains the expert demonstrations for the task. +These demonstrations are given as state, action tuples, and with no reward. +The training goal is to reduce the difference between the actions predicted by the network and the actions taken by +the expert for each state. +In conditional imitation learning, each transition is assigned a class, which determines the goal that was pursuit +in that transitions. For example, 3 possible classes can be: turn right, turn left and follow lane. + +1. Sample a batch of transitions from the replay buffer, where the batch is balanced, meaning that an equal number + of transitions will be sampled from each class index. +2. Use the current states as input to the network, and assign the expert actions as the targets of the network heads + corresponding to the state classes. For the other heads, set the targets to match the currently predicted values, + so that the loss for the other heads will be zeroed out. +3. We use a regression head, that minimizes the MSE loss between the network predicted values and the target values. + + +.. autoclass:: rl_coach.agents.cil_agent.CILAlgorithmParameters \ No newline at end of file diff --git a/docs/_sources/components/agents/index.rst.txt b/docs/_sources/components/agents/index.rst.txt new file mode 100644 index 0000000..1a5cd42 --- /dev/null +++ b/docs/_sources/components/agents/index.rst.txt @@ -0,0 +1,43 @@ +Agents +====== + +Coach supports many state-of-the-art reinforcement learning algorithms, which are separated into three main classes - +value optimization, policy optimization and imitation learning. +A detailed description of those algorithms can be found by navigating to each of the algorithm pages. + +.. image:: /_static/img/algorithms.png + :width: 600px + :align: center + +.. toctree:: + :maxdepth: 1 + :caption: Agents + + policy_optimization/ac + imitation/bc + value_optimization/bs_dqn + value_optimization/categorical_dqn + imitation/cil + policy_optimization/cppo + policy_optimization/ddpg + other/dfp + value_optimization/double_dqn + value_optimization/dqn + value_optimization/dueling_dqn + value_optimization/mmc + value_optimization/n_step + value_optimization/naf + value_optimization/nec + value_optimization/pal + policy_optimization/pg + policy_optimization/ppo + value_optimization/rainbow + value_optimization/qr_dqn + + +.. autoclass:: rl_coach.base_parameters.AgentParameters + +.. autoclass:: rl_coach.agents.agent.Agent + :members: + :inherited-members: + diff --git a/docs/_sources/components/agents/other/dfp.rst.txt b/docs/_sources/components/agents/other/dfp.rst.txt new file mode 100644 index 0000000..6640f56 --- /dev/null +++ b/docs/_sources/components/agents/other/dfp.rst.txt @@ -0,0 +1,39 @@ +Direct Future Prediction +======================== + +**Actions space:** Discrete + +**References:** `Learning to Act by Predicting the Future `_ + +Network Structure +----------------- + +.. image:: /_static/img/design_imgs/dfp.png + :width: 600px + :align: center + + +Algorithm Description +--------------------- +Choosing an action +++++++++++++++++++ + +1. The current states (observations and measurements) and the corresponding goal vector are passed as an input to the network. + The output of the network is the predicted future measurements for time-steps :math:`t+1,t+2,t+4,t+8,t+16` and + :math:`t+32` for each possible action. +2. For each action, the measurements of each predicted time-step are multiplied by the goal vector, + and the result is a single vector of future values for each action. +3. Then, a weighted sum of the future values of each action is calculated, and the result is a single value for each action. +4. The action values are passed to the exploration policy to decide on the action to use. + +Training the network +++++++++++++++++++++ + +Given a batch of transitions, run them through the network to get the current predictions of the future measurements +per action, and set them as the initial targets for training the network. For each transition +:math:`(s_t,a_t,r_t,s_{t+1} )` in the batch, the target of the network for the action that was taken, is the actual + measurements that were seen in time-steps :math:`t+1,t+2,t+4,t+8,t+16` and :math:`t+32`. + For the actions that were not taken, the targets are the current values. + + +.. autoclass:: rl_coach.agents.dfp_agent.DFPAlgorithmParameters diff --git a/docs/_sources/components/agents/policy_optimization/ac.rst.txt b/docs/_sources/components/agents/policy_optimization/ac.rst.txt new file mode 100644 index 0000000..c748e50 --- /dev/null +++ b/docs/_sources/components/agents/policy_optimization/ac.rst.txt @@ -0,0 +1,40 @@ +Actor-Critic +============ + +**Actions space:** Discrete | Continuous + +**References:** `Asynchronous Methods for Deep Reinforcement Learning `_ + +Network Structure +----------------- + +.. image:: /_static/img/design_imgs/ac.png + :width: 500px + :align: center + +Algorithm Description +--------------------- + +Choosing an action - Discrete actions ++++++++++++++++++++++++++++++++++++++ + +The policy network is used in order to predict action probabilites. While training, a sample is taken from a categorical +distribution assigned with these probabilities. When testing, the action with the highest probability is used. + +Training the network +++++++++++++++++++++ +A batch of :math:`T_{max}` transitions is used, and the advantages are calculated upon it. + +Advantages can be calculated by either of the following methods (configured by the selected preset) - + +1. **A_VALUE** - Estimating advantage directly: + :math:`A(s_t, a_t) = \underbrace{\sum_{i=t}^{i=t + k - 1} \gamma^{i-t}r_i +\gamma^{k} V(s_{t+k})}_{Q(s_t, a_t)} - V(s_t)` + where :math:`k` is :math:`T_{max} - State\_Index` for each state in the batch. + +2. **GAE** - By following the `Generalized Advantage Estimation `_ paper. + +The advantages are then used in order to accumulate gradients according to +:math:`L = -\mathop{\mathbb{E}} [log (\pi) \cdot A]` + + +.. autoclass:: rl_coach.agents.actor_critic_agent.ActorCriticAlgorithmParameters \ No newline at end of file diff --git a/docs/_sources/components/agents/policy_optimization/cppo.rst.txt b/docs/_sources/components/agents/policy_optimization/cppo.rst.txt new file mode 100644 index 0000000..b2cba5d --- /dev/null +++ b/docs/_sources/components/agents/policy_optimization/cppo.rst.txt @@ -0,0 +1,44 @@ +Clipped Proximal Policy Optimization +==================================== + +**Actions space:** Discrete | Continuous + +**References:** `Proximal Policy Optimization Algorithms `_ + +Network Structure +----------------- + +.. image:: /_static/img/design_imgs/ppo.png + :align: center + +Algorithm Description +--------------------- +Choosing an action - Continuous action +++++++++++++++++++++++++++++++++++++++ + +Same as in PPO. + +Training the network +++++++++++++++++++++ + +Very similar to PPO, with several small (but very simplifying) changes: + +1. Train both the value and policy networks, simultaneously, by defining a single loss function, + which is the sum of each of the networks loss functions. Then, back propagate gradients only once from this unified loss function. + +2. The unified network's optimizer is set to Adam (instead of L-BFGS for the value network as in PPO). + +3. Value targets are now also calculated based on the GAE advantages. + In this method, the :math:`V` values are predicted from the critic network, and then added to the GAE based advantages, + in order to get a :math:`Q` value for each action. Now, since our critic network is predicting a :math:`V` value for + each state, setting the :math:`Q` calculated action-values as a target, will on average serve as a :math:`V` state-value target. + +4. Instead of adapting the penalizing KL divergence coefficient used in PPO, the likelihood ratio + :math:`r_t(\theta) =\frac{\pi_{\theta}(a|s)}{\pi_{\theta_{old}}(a|s)}` is clipped, to achieve a similar effect. + This is done by defining the policy's loss function to be the minimum between the standard surrogate loss and an epsilon + clipped surrogate loss: + + :math:`L^{CLIP}(\theta)=E_{t}[min(r_t(\theta)\cdot \hat{A}_t, clip(r_t(\theta), 1-\epsilon, 1+\epsilon) \cdot \hat{A}_t)]` + + +.. autoclass:: rl_coach.agents.clipped_ppo_agent.ClippedPPOAlgorithmParameters \ No newline at end of file diff --git a/docs/_sources/components/agents/policy_optimization/ddpg.rst.txt b/docs/_sources/components/agents/policy_optimization/ddpg.rst.txt new file mode 100644 index 0000000..d136ab4 --- /dev/null +++ b/docs/_sources/components/agents/policy_optimization/ddpg.rst.txt @@ -0,0 +1,50 @@ +Deep Deterministic Policy Gradient +================================== + +**Actions space:** Continuous + +**References:** `Continuous control with deep reinforcement learning `_ + +Network Structure +----------------- + +.. image:: /_static/img/design_imgs/ddpg.png + :align: center + +Algorithm Description +--------------------- +Choosing an action +++++++++++++++++++ + +Pass the current states through the actor network, and get an action mean vector :math:`\mu`. +While in training phase, use a continuous exploration policy, such as the Ornstein-Uhlenbeck process, +to add exploration noise to the action. When testing, use the mean vector :math:`\mu` as-is. + +Training the network +++++++++++++++++++++ + +Start by sampling a batch of transitions from the experience replay. + +* To train the **critic network**, use the following targets: + + :math:`y_t=r(s_t,a_t )+\gamma \cdot Q(s_{t+1},\mu(s_{t+1} ))` + + First run the actor target network, using the next states as the inputs, and get :math:`\mu (s_{t+1} )`. + Next, run the critic target network using the next states and :math:`\mu (s_{t+1} )`, and use the output to + calculate :math:`y_t` according to the equation above. To train the network, use the current states and actions + as the inputs, and :math:`y_t` as the targets. + +* To train the **actor network**, use the following equation: + + :math:`\nabla_{\theta^\mu } J \approx E_{s_t \tilde{} \rho^\beta } [\nabla_a Q(s,a)|_{s=s_t,a=\mu (s_t ) } \cdot \nabla_{\theta^\mu} \mu(s)|_{s=s_t} ]` + + Use the actor's online network to get the action mean values using the current states as the inputs. + Then, use the critic online network in order to get the gradients of the critic output with respect to the + action mean values :math:`\nabla _a Q(s,a)|_{s=s_t,a=\mu(s_t ) }`. + Using the chain rule, calculate the gradients of the actor's output, with respect to the actor weights, + given :math:`\nabla_a Q(s,a)`. Finally, apply those gradients to the actor network. + +After every training step, do a soft update of the critic and actor target networks' weights from the online networks. + + +.. autoclass:: rl_coach.agents.ddpg_agent.DDPGAlgorithmParameters \ No newline at end of file diff --git a/docs/_sources/components/agents/policy_optimization/hac.rst.txt b/docs/_sources/components/agents/policy_optimization/hac.rst.txt new file mode 100644 index 0000000..b177b53 --- /dev/null +++ b/docs/_sources/components/agents/policy_optimization/hac.rst.txt @@ -0,0 +1,24 @@ +Hierarchical Actor Critic +========================= + +**Actions space:** Continuous + +**References:** `Hierarchical Reinforcement Learning with Hindsight `_ + +Network Structure +----------------- + +.. image:: /_static/img/design_imgs/ddpg.png + :align: center + +Algorithm Description +--------------------- +Choosing an action +++++++++++++++++++ + +Pass the current states through the actor network, and get an action mean vector :math:`\mu`. +While in training phase, use a continuous exploration policy, such as the Ornstein-Uhlenbeck process, +to add exploration noise to the action. When testing, use the mean vector :math:`\mu` as-is. + +Training the network +++++++++++++++++++++ diff --git a/docs/_sources/components/agents/policy_optimization/pg.rst.txt b/docs/_sources/components/agents/policy_optimization/pg.rst.txt new file mode 100644 index 0000000..ac0feaa --- /dev/null +++ b/docs/_sources/components/agents/policy_optimization/pg.rst.txt @@ -0,0 +1,39 @@ +Policy Gradient +=============== + +**Actions space:** Discrete | Continuous + +**References:** `Simple Statistical Gradient-Following Algorithms for Connectionist Reinforcement Learning `_ + +Network Structure +----------------- + +.. image:: /_static/img/design_imgs/pg.png + :align: center + +Algorithm Description +--------------------- +Choosing an action - Discrete actions ++++++++++++++++++++++++++++++++++++++ +Run the current states through the network and get a policy distribution over the actions. +While training, sample from the policy distribution. When testing, take the action with the highest probability. + +Training the network +++++++++++++++++++++ +The policy head loss is defined as :math:`L=-log (\pi) \cdot PolicyGradientRescaler`. +The :code:`PolicyGradientRescaler` is used in order to reduce the policy gradient variance, which might be very noisy. +This is done in order to reduce the variance of the updates, since noisy gradient updates might destabilize the policy's +convergence. The rescaler is a configurable parameter and there are few options to choose from: + +* **Total Episode Return** - The sum of all the discounted rewards during the episode. +* **Future Return** - Return from each transition until the end of the episode. +* **Future Return Normalized by Episode** - Future returns across the episode normalized by the episode's mean and standard deviation. +* **Future Return Normalized by Timestep** - Future returns normalized using running means and standard deviations, + which are calculated seperately for each timestep, across different episodes. + +Gradients are accumulated over a number of full played episodes. The gradients accumulation over several episodes +serves the same purpose - reducing the update variance. After accumulating gradients for several episodes, +the gradients are then applied to the network. + + +.. autoclass:: rl_coach.agents.policy_gradients_agent.PolicyGradientAlgorithmParameters \ No newline at end of file diff --git a/docs/_sources/components/agents/policy_optimization/ppo.rst.txt b/docs/_sources/components/agents/policy_optimization/ppo.rst.txt new file mode 100644 index 0000000..ea4ee39 --- /dev/null +++ b/docs/_sources/components/agents/policy_optimization/ppo.rst.txt @@ -0,0 +1,45 @@ +Proximal Policy Optimization +============================ + +**Actions space:** Discrete | Continuous + +**References:** `Proximal Policy Optimization Algorithms `_ + +Network Structure +----------------- + +.. image:: /_static/img/design_imgs/ppo.png + :align: center + + +Algorithm Description +--------------------- +Choosing an action - Continuous actions ++++++++++++++++++++++++++++++++++++++++ +Run the observation through the policy network, and get the mean and standard deviation vectors for this observation. +While in training phase, sample from a multi-dimensional Gaussian distribution with these mean and standard deviation values. +When testing, just take the mean values predicted by the network. + +Training the network +++++++++++++++++++++ + +1. Collect a big chunk of experience (in the order of thousands of transitions, sampled from multiple episodes). + +2. Calculate the advantages for each transition, using the *Generalized Advantage Estimation* method (Schulman '2015). + +3. Run a single training iteration of the value network using an L-BFGS optimizer. Unlike first order optimizers, + the L-BFGS optimizer runs on the entire dataset at once, without batching. + It continues running until some low loss threshold is reached. To prevent overfitting to the current dataset, + the value targets are updated in a soft manner, using an Exponentially Weighted Moving Average, based on the total + discounted returns of each state in each episode. + +4. Run several training iterations of the policy network. This is done by using the previously calculated advantages as + targets. The loss function penalizes policies that deviate too far from the old policy (the policy that was used *before* + starting to run the current set of training iterations) using a regularization term. + +5. After training is done, the last sampled KL divergence value will be compared with the *target KL divergence* value, + in order to adapt the penalty coefficient used in the policy loss. If the KL divergence went too high, + increase the penalty, if it went too low, reduce it. Otherwise, leave it unchanged. + + +.. autoclass:: rl_coach.agents.ppo_agent.PPOAlgorithmParameters \ No newline at end of file diff --git a/docs/_sources/components/agents/value_optimization/bs_dqn.rst.txt b/docs/_sources/components/agents/value_optimization/bs_dqn.rst.txt new file mode 100644 index 0000000..0b92eae --- /dev/null +++ b/docs/_sources/components/agents/value_optimization/bs_dqn.rst.txt @@ -0,0 +1,43 @@ +Bootstrapped DQN +================ + +**Actions space:** Discrete + +**References:** `Deep Exploration via Bootstrapped DQN `_ + +Network Structure +----------------- + +.. image:: /_static/img/design_imgs/bs_dqn.png + :align: center + +Algorithm Description +--------------------- +Choosing an action +++++++++++++++++++ +The current states are used as the input to the network. The network contains several $Q$ heads, which are used +for returning different estimations of the action :math:`Q` values. For each episode, the bootstrapped exploration policy +selects a single head to play with during the episode. According to the selected head, only the relevant +output :math:`Q` values are used. Using those :math:`Q` values, the exploration policy then selects the action for acting. + +Storing the transitions ++++++++++++++++++++++++ +For each transition, a Binomial mask is generated according to a predefined probability, and the number of output heads. +The mask is a binary vector where each element holds a 0 for heads that shouldn't train on the specific transition, +and 1 for heads that should use the transition for training. The mask is stored as part of the transition info in +the replay buffer. + +Training the network +++++++++++++++++++++ +First, sample a batch of transitions from the replay buffer. Run the current states through the network and get the +current :math:`Q` value predictions for all the heads and all the actions. For each transition in the batch, +and for each output head, if the transition mask is 1 - change the targets of the played action to :math:`y_t`, +according to the standard DQN update rule: + +:math:`y_t=r(s_t,a_t )+\gamma\cdot max_a Q(s_{t+1},a)` + +Otherwise, leave it intact so that the transition does not affect the learning of this head. +Then, train the online network according to the calculated targets. + +As in DQN, once in every few thousand steps, copy the weights from the online network to the target network. + diff --git a/docs/_sources/components/agents/value_optimization/categorical_dqn.rst.txt b/docs/_sources/components/agents/value_optimization/categorical_dqn.rst.txt new file mode 100644 index 0000000..dc07872 --- /dev/null +++ b/docs/_sources/components/agents/value_optimization/categorical_dqn.rst.txt @@ -0,0 +1,39 @@ +Categorical DQN +=============== + +**Actions space:** Discrete + +**References:** `A Distributional Perspective on Reinforcement Learning `_ + +Network Structure +----------------- + +.. image:: /_static/img/design_imgs/distributional_dqn.png + :align: center + +Algorithm Description +--------------------- + +Training the network +++++++++++++++++++++ + +1. Sample a batch of transitions from the replay buffer. + +2. The Bellman update is projected to the set of atoms representing the :math:`Q` values distribution, such + that the :math:`i-th` component of the projected update is calculated as follows: + + :math:`(\Phi \hat{T} Z_{\theta}(s_t,a_t))_i=\sum_{j=0}^{N-1}\Big[1-\frac{\lvert[\hat{T}_{z_{j}}]^{V_{MAX}}_{V_{MIN}}-z_i\rvert}{\Delta z}\Big]^1_0 \ p_j(s_{t+1}, \pi(s_{t+1}))` + + where: + * :math:`[ \cdot ]` bounds its argument in the range :math:`[a, b]` + * :math:`\hat{T}_{z_{j}}` is the Bellman update for atom :math:`z_j`: :math:`\hat{T}_{z_{j}} := r+\gamma z_j` + + +3. Network is trained with the cross entropy loss between the resulting probability distribution and the target + probability distribution. Only the target of the actions that were actually taken is updated. + +4. Once in every few thousand steps, weights are copied from the online network to the target network. + + + +.. autoclass:: rl_coach.agents.categorical_dqn_agent.CategoricalDQNAlgorithmParameters diff --git a/docs/_sources/components/agents/value_optimization/double_dqn.rst.txt b/docs/_sources/components/agents/value_optimization/double_dqn.rst.txt new file mode 100644 index 0000000..cb29797 --- /dev/null +++ b/docs/_sources/components/agents/value_optimization/double_dqn.rst.txt @@ -0,0 +1,35 @@ +Double DQN +========== + +**Actions space:** Discrete + +**References:** `Deep Reinforcement Learning with Double Q-learning `_ + +Network Structure +----------------- + +.. image:: /_static/img/design_imgs/dqn.png + :align: center + +Algorithm Description +--------------------- + +Training the network +++++++++++++++++++++ + +1. Sample a batch of transitions from the replay buffer. + +2. Using the next states from the sampled batch, run the online network in order to find the $Q$ maximizing + action :math:`argmax_a Q(s_{t+1},a)`. For these actions, use the corresponding next states and run the target + network to calculate :math:`Q(s_{t+1},argmax_a Q(s_{t+1},a))`. + +3. In order to zero out the updates for the actions that were not played (resulting from zeroing the MSE loss), + use the current states from the sampled batch, and run the online network to get the current Q values predictions. + Set those values as the targets for the actions that were not actually played. + +4. For each action that was played, use the following equation for calculating the targets of the network: + :math:`y_t=r(s_t,a_t )+\gamma \cdot Q(s_{t+1},argmax_a Q(s_{t+1},a))` + +5. Finally, train the online network using the current states as inputs, and with the aforementioned targets. + +6. Once in every few thousand steps, copy the weights from the online network to the target network. diff --git a/docs/_sources/components/agents/value_optimization/dqn.rst.txt b/docs/_sources/components/agents/value_optimization/dqn.rst.txt new file mode 100644 index 0000000..4882e38 --- /dev/null +++ b/docs/_sources/components/agents/value_optimization/dqn.rst.txt @@ -0,0 +1,37 @@ +Deep Q Networks +=============== + +**Actions space:** Discrete + +**References:** `Playing Atari with Deep Reinforcement Learning `_ + +Network Structure +----------------- + +.. image:: /_static/img/design_imgs/dqn.png + :align: center + +Algorithm Description +--------------------- + +Training the network +++++++++++++++++++++ + +1. Sample a batch of transitions from the replay buffer. + +2. Using the next states from the sampled batch, run the target network to calculate the :math:`Q` values for each of + the actions :math:`Q(s_{t+1},a)`, and keep only the maximum value for each state. + +3. In order to zero out the updates for the actions that were not played (resulting from zeroing the MSE loss), + use the current states from the sampled batch, and run the online network to get the current Q values predictions. + Set those values as the targets for the actions that were not actually played. + +4. For each action that was played, use the following equation for calculating the targets of the network:​ $$ y_t=r(s_t,a_t)+γ\cdot max_a {Q(s_{t+1},a)} $$ + :math:`y_t=r(s_t,a_t )+\gamma \cdot max_a Q(s_{t+1})` + +5. Finally, train the online network using the current states as inputs, and with the aforementioned targets. + +6. Once in every few thousand steps, copy the weights from the online network to the target network. + + +.. autoclass:: rl_coach.agents.dqn_agent.DQNAlgorithmParameters diff --git a/docs/_sources/components/agents/value_optimization/dueling_dqn.rst.txt b/docs/_sources/components/agents/value_optimization/dueling_dqn.rst.txt new file mode 100644 index 0000000..d29b305 --- /dev/null +++ b/docs/_sources/components/agents/value_optimization/dueling_dqn.rst.txt @@ -0,0 +1,27 @@ +Dueling DQN +=========== + +**Actions space:** Discrete + +**References:** `Dueling Network Architectures for Deep Reinforcement Learning `_ + +Network Structure +----------------- + +.. image:: /_static/img/design_imgs/dueling_dqn.png + :align: center + +General Description +------------------- +Dueling DQN presents a change in the network structure comparing to DQN. + +Dueling DQN uses a specialized *Dueling Q Head* in order to separate :math:`Q` to an :math:`A` (advantage) +stream and a :math:`V` stream. Adding this type of structure to the network head allows the network to better differentiate +actions from one another, and significantly improves the learning. + +In many states, the values of the different actions are very similar, and it is less important which action to take. +This is especially important in environments where there are many actions to choose from. In DQN, on each training +iteration, for each of the states in the batch, we update the :ath:`Q` values only for the specific actions taken in +those states. This results in slower learning as we do not learn the :math:`Q` values for actions that were not taken yet. +On dueling architecture, on the other hand, learning is faster - as we start learning the state-value even if only a +single action has been taken at this state. \ No newline at end of file diff --git a/docs/_sources/components/agents/value_optimization/mmc.rst.txt b/docs/_sources/components/agents/value_optimization/mmc.rst.txt new file mode 100644 index 0000000..c96b4ca --- /dev/null +++ b/docs/_sources/components/agents/value_optimization/mmc.rst.txt @@ -0,0 +1,37 @@ +Mixed Monte Carlo +================= + +**Actions space:** Discrete + +**References:** `Count-Based Exploration with Neural Density Models `_ + +Network Structure +----------------- + +.. image:: /_static/img/design_imgs/dqn.png + :align: center + +Algorithm Description +--------------------- +Training the network +++++++++++++++++++++ + +In MMC, targets are calculated as a mixture between Double DQN targets and full Monte Carlo samples (total discounted returns). + +The DDQN targets are calculated in the same manner as in the DDQN agent: + +:math:`y_t^{DDQN}=r(s_t,a_t )+\gamma Q(s_{t+1},argmax_a Q(s_{t+1},a))` + +The Monte Carlo targets are calculated by summing up the discounted rewards across the entire episode: + +:math:`y_t^{MC}=\sum_{j=0}^T\gamma^j r(s_{t+j},a_{t+j} )` + +A mixing ratio $\alpha$ is then used to get the final targets: + +:math:`y_t=(1-\alpha)\cdot y_t^{DDQN}+\alpha \cdot y_t^{MC}` + +Finally, the online network is trained using the current states as inputs, and the calculated targets. +Once in every few thousand steps, copy the weights from the online network to the target network. + + +.. autoclass:: rl_coach.agents.mmc_agent.MixedMonteCarloAlgorithmParameters diff --git a/docs/_sources/components/agents/value_optimization/n_step.rst.txt b/docs/_sources/components/agents/value_optimization/n_step.rst.txt new file mode 100644 index 0000000..6ff0722 --- /dev/null +++ b/docs/_sources/components/agents/value_optimization/n_step.rst.txt @@ -0,0 +1,35 @@ +N-Step Q Learning +================= + +**Actions space:** Discrete + +**References:** `Asynchronous Methods for Deep Reinforcement Learning `_ + +Network Structure +----------------- + +.. image:: /_static/img/design_imgs/dqn.png + :align: center + +Algorithm Description +--------------------- + +Training the network +++++++++++++++++++++ + +The :math:`N`-step Q learning algorithm works in similar manner to DQN except for the following changes: + +1. No replay buffer is used. Instead of sampling random batches of transitions, the network is trained every + :math:`N` steps using the latest :math:`N` steps played by the agent. + +2. In order to stabilize the learning, multiple workers work together to update the network. + This creates the same effect as uncorrelating the samples used for training. + +3. Instead of using single-step Q targets for the network, the rewards from $N$ consequent steps are accumulated + to form the :math:`N`-step Q targets, according to the following equation: + :math:`R(s_t, a_t) = \sum_{i=t}^{i=t + k - 1} \gamma^{i-t}r_i +\gamma^{k} V(s_{t+k})` + where :math:`k` is :math:`T_{max} - State\_Index` for each state in the batch + + + +.. autoclass:: rl_coach.agents.n_step_q_agent.NStepQAlgorithmParameters diff --git a/docs/_sources/components/agents/value_optimization/naf.rst.txt b/docs/_sources/components/agents/value_optimization/naf.rst.txt new file mode 100644 index 0000000..8d7df05 --- /dev/null +++ b/docs/_sources/components/agents/value_optimization/naf.rst.txt @@ -0,0 +1,33 @@ +Normalized Advantage Functions +============================== + +**Actions space:** Continuous + +**References:** `Continuous Deep Q-Learning with Model-based Acceleration `_ + +Network Structure +----------------- + +.. image:: /_static/img/design_imgs/naf.png + :width: 600px + :align: center + +Algorithm Description +--------------------- +Choosing an action +++++++++++++++++++ +The current state is used as an input to the network. The action mean :math:`\mu(s_t )` is extracted from the output head. +It is then passed to the exploration policy which adds noise in order to encourage exploration. + +Training the network +++++++++++++++++++++ +The network is trained by using the following targets: +:math:`y_t=r(s_t,a_t )+\gamma\cdot V(s_{t+1})` +Use the next states as the inputs to the target network and extract the :math:`V` value, from within the head, +to get :math:`V(s_{t+1} )`. Then, update the online network using the current states and actions as inputs, +and :math:`y_t` as the targets. +After every training step, use a soft update in order to copy the weights from the online network to the target network. + + + +.. autoclass:: rl_coach.agents.naf_agent.NAFAlgorithmParameters diff --git a/docs/_sources/components/agents/value_optimization/nec.rst.txt b/docs/_sources/components/agents/value_optimization/nec.rst.txt new file mode 100644 index 0000000..7410a9e --- /dev/null +++ b/docs/_sources/components/agents/value_optimization/nec.rst.txt @@ -0,0 +1,50 @@ +Neural Episodic Control +======================= + +**Actions space:** Discrete + +**References:** `Neural Episodic Control `_ + +Network Structure +----------------- + +.. image:: /_static/img/design_imgs/nec.png + :width: 500px + :align: center + +Algorithm Description +--------------------- +Choosing an action +++++++++++++++++++ + +1. Use the current state as an input to the online network and extract the state embedding, which is the intermediate + output from the middleware. + +2. For each possible action :math:`a_i`, run the DND head using the state embedding and the selected action :math:`a_i` as inputs. + The DND is queried and returns the :math:`P` nearest neighbor keys and values. The keys and values are used to calculate + and return the action :math:`Q` value from the network. + +3. Pass all the :math:`Q` values to the exploration policy and choose an action accordingly. + +4. Store the state embeddings and actions taken during the current episode in a small buffer :math:`B`, in order to + accumulate transitions until it is possible to calculate the total discounted returns over the entire episode. + +Finalizing an episode ++++++++++++++++++++++ +For each step in the episode, the state embeddings and the taken actions are stored in the buffer :math:`B`. +When the episode is finished, the replay buffer calculates the :math:`N`-step total return of each transition in the +buffer, bootstrapped using the maximum :math:`Q` value of the :math:`N`-th transition. Those values are inserted +along with the total return into the DND, and the buffer :math:`B` is reset. + +Training the network +++++++++++++++++++++ +Train the network only when the DND has enough entries for querying. + +To train the network, the current states are used as the inputs and the :math:`N`-step returns are used as the targets. +The :math:`N`-step return used takes into account :math:`N` consecutive steps, and bootstraps the last value from +the network if necessary: +:math:`y_t=\sum_{j=0}^{N-1}\gamma^j r(s_{t+j},a_{t+j} ) +\gamma^N max_a Q(s_{t+N},a)` + + + +.. autoclass:: rl_coach.agents.nec_agent.NECAlgorithmParameters diff --git a/docs/_sources/components/agents/value_optimization/pal.rst.txt b/docs/_sources/components/agents/value_optimization/pal.rst.txt new file mode 100644 index 0000000..9ebcba6 --- /dev/null +++ b/docs/_sources/components/agents/value_optimization/pal.rst.txt @@ -0,0 +1,45 @@ +Persistent Advantage Learning +============================= + +**Actions space:** Discrete + +**References:** `Increasing the Action Gap: New Operators for Reinforcement Learning `_ + +Network Structure +----------------- + +.. image:: /_static/img/design_imgs/dqn.png + :align: center + +Algorithm Description +--------------------- +Training the network +++++++++++++++++++++ + +1. Sample a batch of transitions from the replay buffer. + +2. Start by calculating the initial target values in the same manner as they are calculated in DDQN + :math:`y_t^{DDQN}=r(s_t,a_t )+\gamma Q(s_{t+1},argmax_a Q(s_{t+1},a))` + +3. The action gap :math:`V(s_t )-Q(s_t,a_t)` should then be subtracted from each of the calculated targets. + To calculate the action gap, run the target network using the current states and get the :math:`Q` values + for all the actions. Then estimate :math:`V` as the maximum predicted :math:`Q` value for the current state: + :math:`V(s_t )=max_a Q(s_t,a)` + +4. For *advantage learning (AL)*, reduce the action gap weighted by a predefined parameter :math:`\alpha` from + the targets :math:`y_t^{DDQN}`: + :math:`y_t=y_t^{DDQN}-\alpha \cdot (V(s_t )-Q(s_t,a_t ))` + +5. For *persistent advantage learning (PAL)*, the target network is also used in order to calculate the action + gap for the next state: + :math:`V(s_{t+1} )-Q(s_{t+1},a_{t+1})` + where :math:`a_{t+1}` is chosen by running the next states through the online network and choosing the action that + has the highest predicted :math:`Q` value. Finally, the targets will be defined as - + :math:`y_t=y_t^{DDQN}-\alpha \cdot min(V(s_t )-Q(s_t,a_t ),V(s_{t+1} )-Q(s_{t+1},a_{t+1} ))` + +6. Train the online network using the current states as inputs, and with the aforementioned targets. + +7. Once in every few thousand steps, copy the weights from the online network to the target network. + + +.. autoclass:: rl_coach.agents.pal_agent.PALAlgorithmParameters diff --git a/docs/_sources/components/agents/value_optimization/qr_dqn.rst.txt b/docs/_sources/components/agents/value_optimization/qr_dqn.rst.txt new file mode 100644 index 0000000..88bb5c3 --- /dev/null +++ b/docs/_sources/components/agents/value_optimization/qr_dqn.rst.txt @@ -0,0 +1,33 @@ +Quantile Regression DQN +======================= + +**Actions space:** Discrete + +**References:** `Distributional Reinforcement Learning with Quantile Regression `_ + +Network Structure +----------------- + +.. image:: /_static/img/design_imgs/qr_dqn.png + :align: center + +Algorithm Description +--------------------- + +Training the network +++++++++++++++++++++ + +1. Sample a batch of transitions from the replay buffer. + +2. First, the next state quantiles are predicted. These are used in order to calculate the targets for the network, + by following the Bellman equation. + Next, the current quantile locations for the current states are predicted, sorted, and used for calculating the + quantile midpoints targets. + +3. The network is trained with the quantile regression loss between the resulting quantile locations and the target + quantile locations. Only the targets of the actions that were actually taken are updated. + +4. Once in every few thousand steps, weights are copied from the online network to the target network. + + +.. autoclass:: rl_coach.agents.qr_dqn_agent.QuantileRegressionDQNAlgorithmParameters \ No newline at end of file diff --git a/docs/_sources/components/agents/value_optimization/rainbow.rst.txt b/docs/_sources/components/agents/value_optimization/rainbow.rst.txt new file mode 100644 index 0000000..5c2b443 --- /dev/null +++ b/docs/_sources/components/agents/value_optimization/rainbow.rst.txt @@ -0,0 +1,51 @@ +Rainbow +======= + +**Actions space:** Discrete + +**References:** `Rainbow: Combining Improvements in Deep Reinforcement Learning `_ + +Network Structure +----------------- + +.. image:: /_static/img/design_imgs/rainbow.png + :align: center + +Algorithm Description +--------------------- + +Rainbow combines 6 recent advancements in reinforcement learning: + +* N-step returns +* Distributional state-action value learning +* Dueling networks +* Noisy Networks +* Double DQN +* Prioritized Experience Replay + +Training the network +++++++++++++++++++++ + +1. Sample a batch of transitions from the replay buffer. + +2. The Bellman update is projected to the set of atoms representing the :math:`Q` values distribution, such + that the :math:`i-th` component of the projected update is calculated as follows: + + :math:`(\Phi \hat{T} Z_{\theta}(s_t,a_t))_i=\sum_{j=0}^{N-1}\Big[1-\frac{\lvert[\hat{T}_{z_{j}}]^{V_{MAX}}_{V_{MIN}}-z_i\rvert}{\Delta z}\Big]^1_0 \ p_j(s_{t+1}, \pi(s_{t+1}))` + + where: + * :math:`[ \cdot ]` bounds its argument in the range :math:`[a, b]` + * :math:`\hat{T}_{z_{j}}` is the Bellman update for atom + :math:`z_j`: :math:`\hat{T}_{z_{j}} := r_t+\gamma r_{t+1} + ... + \gamma r_{t+n-1} + \gamma^{n-1} z_j` + + +3. Network is trained with the cross entropy loss between the resulting probability distribution and the target + probability distribution. Only the target of the actions that were actually taken is updated. + +4. Once in every few thousand steps, weights are copied from the online network to the target network. + +5. After every training step, the priorities of the batch transitions are updated in the prioritized replay buffer + using the KL divergence loss that is returned from the network. + + +.. autoclass:: rl_coach.agents.rainbow_dqn_agent.RainbowDQNAlgorithmParameters diff --git a/docs/_sources/components/architectures/index.rst.txt b/docs/_sources/components/architectures/index.rst.txt new file mode 100644 index 0000000..3e3fa83 --- /dev/null +++ b/docs/_sources/components/architectures/index.rst.txt @@ -0,0 +1,27 @@ +Architectures +============= + +Architectures contain all the classes that implement the neural network related stuff for the agent. +Since Coach is intended to work with multiple neural network frameworks, each framework will implement its +own components under a dedicated directory. For example, tensorflow components will contain all the neural network +parts that are implemented using TensorFlow. + +.. autoclass:: rl_coach.base_parameters.NetworkParameters + +Architecture +------------ +.. autoclass:: rl_coach.architectures.architecture.Architecture + :members: + :inherited-members: + +NetworkWrapper +-------------- + +.. image:: /_static/img/distributed.png + :width: 600px + :align: center + +.. autoclass:: rl_coach.architectures.network_wrapper.NetworkWrapper + :members: + :inherited-members: + diff --git a/docs/_sources/components/core_types.rst.txt b/docs/_sources/components/core_types.rst.txt new file mode 100644 index 0000000..5202c22 --- /dev/null +++ b/docs/_sources/components/core_types.rst.txt @@ -0,0 +1,33 @@ +Core Types +========== + +ActionInfo +---------- +.. autoclass:: rl_coach.core_types.ActionInfo + :members: + :inherited-members: + +Batch +----- +.. autoclass:: rl_coach.core_types.Batch + :members: + :inherited-members: + +EnvResponse +----------- +.. autoclass:: rl_coach.core_types.EnvResponse + :members: + :inherited-members: + +Episode +------- +.. autoclass:: rl_coach.core_types.Episode + :members: + :inherited-members: + +Transition +---------- +.. autoclass:: rl_coach.core_types.Transition + :members: + :inherited-members: + diff --git a/docs/_sources/components/environments/index.rst.txt b/docs/_sources/components/environments/index.rst.txt new file mode 100644 index 0000000..5f0d20f --- /dev/null +++ b/docs/_sources/components/environments/index.rst.txt @@ -0,0 +1,70 @@ +Environments +============ + +.. autoclass:: rl_coach.environments.environment.Environment + :members: + :inherited-members: + +DeepMind Control Suite +---------------------- + +A set of reinforcement learning environments powered by the MuJoCo physics engine. + +Website: `DeepMind Control Suite `_ + +.. autoclass:: rl_coach.environments.control_suite_environment.ControlSuiteEnvironment + + +Blizzard Starcraft II +--------------------- + +A popular strategy game which was wrapped with a python interface by DeepMind. + +Website: `Blizzard Starcraft II `_ + +.. autoclass:: rl_coach.environments.starcraft2_environment.StarCraft2Environment + + +ViZDoom +-------- + +A Doom-based AI research platform for reinforcement learning from raw visual information. + +Website: `ViZDoom `_ + +.. autoclass:: rl_coach.environments.doom_environment.DoomEnvironment + + +CARLA +----- + +An open-source simulator for autonomous driving research. + +Website: `CARLA `_ + +.. autoclass:: rl_coach.environments.carla_environment.CarlaEnvironment + +OpenAI Gym +---------- + +A library which consists of a set of environments, from games to robotics. +Additionally, it can be extended using the API defined by the authors. + +Website: `OpenAI Gym `_ + +In Coach, we support all the native environments in Gym, along with several extensions such as: + +* `Roboschool `_ - a set of environments powered by the PyBullet engine, + that offer a free alternative to MuJoCo. + +* `Gym Extensions `_ - a set of environments that extends Gym for + auxiliary tasks (multitask learning, transfer learning, inverse reinforcement learning, etc.) + +* `PyBullet `_ - a physics engine that + includes a set of robotics environments. + + +.. autoclass:: rl_coach.environments.gym_environment.GymEnvironment + + + diff --git a/docs/_sources/components/exploration_policies/index.rst.txt b/docs/_sources/components/exploration_policies/index.rst.txt new file mode 100644 index 0000000..10b6c77 --- /dev/null +++ b/docs/_sources/components/exploration_policies/index.rst.txt @@ -0,0 +1,87 @@ +Exploration Policies +==================== + +Exploration policies are a component that allow the agent to tradeoff exploration and exploitation according to a +predefined policy. This is one of the most important aspects of reinforcement learning agents, and can require some +tuning to get it right. Coach supports several pre-defined exploration policies, and it can be easily extended with +custom policies. Note that not all exploration policies are expected to work for both discrete and continuous action +spaces. + +.. role:: green +.. role:: red + ++----------------------+-----------------------+------------------+ +| Exploration Policy | Discrete Action Space | Box Action Space | ++======================+=======================+==================+ +| AdditiveNoise | :red:`X` | :green:`V` | ++----------------------+-----------------------+------------------+ +| Boltzmann | :green:`V` | :red:`X` | ++----------------------+-----------------------+------------------+ +| Bootstrapped | :green:`V` | :red:`X` | ++----------------------+-----------------------+------------------+ +| Categorical | :green:`V` | :red:`X` | ++----------------------+-----------------------+------------------+ +| ContinuousEntropy | :red:`X` | :green:`V` | ++----------------------+-----------------------+------------------+ +| EGreedy | :green:`V` | :green:`V` | ++----------------------+-----------------------+------------------+ +| Greedy | :green:`V` | :green:`V` | ++----------------------+-----------------------+------------------+ +| OUProcess | :red:`X` | :green:`V` | ++----------------------+-----------------------+------------------+ +| ParameterNoise | :green:`V` | :green:`V` | ++----------------------+-----------------------+------------------+ +| TruncatedNormal | :red:`X` | :green:`V` | ++----------------------+-----------------------+------------------+ +| UCB | :green:`V` | :red:`X` | ++----------------------+-----------------------+------------------+ + +ExplorationPolicy +----------------- +.. autoclass:: rl_coach.exploration_policies.ExplorationPolicy + :members: + :inherited-members: + +AdditiveNoise +------------- +.. autoclass:: rl_coach.exploration_policies.AdditiveNoise + +Boltzmann +--------- +.. autoclass:: rl_coach.exploration_policies.Boltzmann + +Bootstrapped +------------ +.. autoclass:: rl_coach.exploration_policies.Bootstrapped + +Categorical +----------- +.. autoclass:: rl_coach.exploration_policies.Categorical + +ContinuousEntropy +----------------- +.. autoclass:: rl_coach.exploration_policies.ContinuousEntropy + +EGreedy +------- +.. autoclass:: rl_coach.exploration_policies.EGreedy + +Greedy +------ +.. autoclass:: rl_coach.exploration_policies.Greedy + +OUProcess +--------- +.. autoclass:: rl_coach.exploration_policies.OUProcess + +ParameterNoise +-------------- +.. autoclass:: rl_coach.exploration_policies.ParameterNoise + +TruncatedNormal +--------------- +.. autoclass:: rl_coach.exploration_policies.TruncatedNormal + +UCB +--- +.. autoclass:: rl_coach.exploration_policies.UCB \ No newline at end of file diff --git a/docs/_sources/components/filters/index.rst.txt b/docs/_sources/components/filters/index.rst.txt new file mode 100644 index 0000000..1e4c7f5 --- /dev/null +++ b/docs/_sources/components/filters/index.rst.txt @@ -0,0 +1,28 @@ +Filters +======= + +.. toctree:: + :maxdepth: 1 + :caption: Filters + + input_filters + output_filters + +Filters are a mechanism in Coach that allows doing pre-processing and post-processing of the internal agent information. +There are two filter categories - + +* **Input filters** - these are filters that process the information passed **into** the agent from the environment. + This information includes the observation and the reward. Input filters therefore allow rescaling observations, + normalizing rewards, stack observations, etc. + +* **Output filters** - these are filters that process the information going **out** of the agent into the environment. + This information includes the action the agent chooses to take. Output filters therefore allow conversion of + actions from one space into another. For example, the agent can take :math:`N` discrete actions, that will be mapped by + the output filter onto :math:`N` continuous actions. + +Filters can be stacked on top of each other in order to build complex processing flows of the inputs or outputs. + +.. image:: /_static/img/filters.png + :width: 350px + :align: center + diff --git a/docs/_sources/components/filters/input_filters.rst.txt b/docs/_sources/components/filters/input_filters.rst.txt new file mode 100644 index 0000000..3b0d4b1 --- /dev/null +++ b/docs/_sources/components/filters/input_filters.rst.txt @@ -0,0 +1,67 @@ +Input Filters +============= + +The input filters are separated into two categories - **observation filters** and **reward filters**. + +Observation Filters +------------------- + +ObservationClippingFilter ++++++++++++++++++++++++++ +.. autoclass:: rl_coach.filters.observation.ObservationClippingFilter + +ObservationCropFilter ++++++++++++++++++++++ +.. autoclass:: rl_coach.filters.observation.ObservationCropFilter + +ObservationMoveAxisFilter ++++++++++++++++++++++++++ +.. autoclass:: rl_coach.filters.observation.ObservationMoveAxisFilter + +ObservationNormalizationFilter +++++++++++++++++++++++++++++++ +.. autoclass:: rl_coach.filters.observation.ObservationNormalizationFilter + +ObservationReductionBySubPartsNameFilter +++++++++++++++++++++++++++++++++++++++++ +.. autoclass:: rl_coach.filters.observation.ObservationReductionBySubPartsNameFilter + +ObservationRescaleSizeByFactorFilter +++++++++++++++++++++++++++++++++++++ +.. autoclass:: rl_coach.filters.observation.ObservationRescaleSizeByFactorFilter + +ObservationRescaleToSizeFilter +++++++++++++++++++++++++++++++ +.. autoclass:: rl_coach.filters.observation.ObservationRescaleToSizeFilter + +ObservationRGBToYFilter ++++++++++++++++++++++++ +.. autoclass:: rl_coach.filters.observation.ObservationRGBToYFilter + +ObservationSqueezeFilter +++++++++++++++++++++++++ +.. autoclass:: rl_coach.filters.observation.ObservationSqueezeFilter + +ObservationStackingFilter ++++++++++++++++++++++++++ +.. autoclass:: rl_coach.filters.observation.ObservationStackingFilter + +ObservationToUInt8Filter +++++++++++++++++++++++++ +.. autoclass:: rl_coach.filters.observation.ObservationToUInt8Filter + + +Reward Filters +-------------- + +RewardClippingFilter +++++++++++++++++++++ +.. autoclass:: rl_coach.filters.reward.RewardClippingFilter + +RewardNormalizationFilter ++++++++++++++++++++++++++ +.. autoclass:: rl_coach.filters.reward.RewardNormalizationFilter + +RewardRescaleFilter ++++++++++++++++++++ +.. autoclass:: rl_coach.filters.reward.RewardRescaleFilter diff --git a/docs/_sources/components/filters/output_filters.rst.txt b/docs/_sources/components/filters/output_filters.rst.txt new file mode 100644 index 0000000..1a2f460 --- /dev/null +++ b/docs/_sources/components/filters/output_filters.rst.txt @@ -0,0 +1,37 @@ +Output Filters +-------------- + +The output filters only process the actions. + +Action Filters +++++++++++++++ + +.. autoclass:: rl_coach.filters.action.AttentionDiscretization + +.. image:: /_static/img/attention_discretization.png + :align: center + +.. autoclass:: rl_coach.filters.action.BoxDiscretization + +.. image:: /_static/img/box_discretization.png + :align: center + +.. autoclass:: rl_coach.filters.action.BoxMasking + +.. image:: /_static/img/box_masking.png + :align: center + +.. autoclass:: rl_coach.filters.action.PartialDiscreteActionSpaceMap + +.. image:: /_static/img/partial_discrete_action_space_map.png + :align: center + +.. autoclass:: rl_coach.filters.action.FullDiscreteActionSpaceMap + +.. image:: /_static/img/full_discrete_action_space_map.png + :align: center + +.. autoclass:: rl_coach.filters.action.LinearBoxToBoxMap + +.. image:: /_static/img/linear_box_to_box_map.png + :align: center \ No newline at end of file diff --git a/docs/_sources/components/memories/index.rst.txt b/docs/_sources/components/memories/index.rst.txt new file mode 100644 index 0000000..2575a32 --- /dev/null +++ b/docs/_sources/components/memories/index.rst.txt @@ -0,0 +1,44 @@ +Memories +======== + +Episodic Memories +----------------- + +EpisodicExperienceReplay +++++++++++++++++++++++++ +.. autoclass:: rl_coach.memories.episodic.EpisodicExperienceReplay + +EpisodicHindsightExperienceReplay ++++++++++++++++++++++++++++++++++ +.. autoclass:: rl_coach.memories.episodic.EpisodicHindsightExperienceReplay + +EpisodicHRLHindsightExperienceReplay +++++++++++++++++++++++++++++++++++++ +.. autoclass:: rl_coach.memories.episodic.EpisodicHRLHindsightExperienceReplay + +SingleEpisodeBuffer ++++++++++++++++++++ +.. autoclass:: rl_coach.memories.episodic.SingleEpisodeBuffer + + +Non-Episodic Memories +--------------------- +BalancedExperienceReplay +++++++++++++++++++++++++ +.. autoclass:: rl_coach.memories.non_episodic.BalancedExperienceReplay + +QDND +++++ +.. autoclass:: rl_coach.memories.non_episodic.QDND + +ExperienceReplay +++++++++++++++++ +.. autoclass:: rl_coach.memories.non_episodic.ExperienceReplay + +PrioritizedExperienceReplay ++++++++++++++++++++++++++++ +.. autoclass:: rl_coach.memories.non_episodic.PrioritizedExperienceReplay + +TransitionCollection +++++++++++++++++++++ +.. autoclass:: rl_coach.memories.non_episodic.TransitionCollection diff --git a/docs/_sources/components/spaces.rst.txt b/docs/_sources/components/spaces.rst.txt new file mode 100644 index 0000000..4adf3f5 --- /dev/null +++ b/docs/_sources/components/spaces.rst.txt @@ -0,0 +1,64 @@ +Spaces +====== + +Space +----- +.. autoclass:: rl_coach.spaces.Space + :members: + :inherited-members: + + + +Observation Spaces +------------------ +.. autoclass:: rl_coach.spaces.ObservationSpace + :members: + :inherited-members: + +VectorObservationSpace +++++++++++++++++++++++ +.. autoclass:: rl_coach.spaces.VectorObservationSpace + +PlanarMapsObservationSpace +++++++++++++++++++++++++++ +.. autoclass:: rl_coach.spaces.PlanarMapsObservationSpace + +ImageObservationSpace ++++++++++++++++++++++ +.. autoclass:: rl_coach.spaces.ImageObservationSpace + + + +Action Spaces +------------- +.. autoclass:: rl_coach.spaces.ActionSpace + :members: + :inherited-members: + +AttentionActionSpace +++++++++++++++++++++ +.. autoclass:: rl_coach.spaces.AttentionActionSpace + +BoxActionSpace +++++++++++++++ +.. autoclass:: rl_coach.spaces.BoxActionSpace + +DiscreteActionSpace +++++++++++++++++++++ +.. autoclass:: rl_coach.spaces.DiscreteActionSpace + +MultiSelectActionSpace +++++++++++++++++++++++ +.. autoclass:: rl_coach.spaces.MultiSelectActionSpace + +CompoundActionSpace ++++++++++++++++++++ +.. autoclass:: rl_coach.spaces.CompoundActionSpace + + + +Goal Spaces +----------- +.. autoclass:: rl_coach.spaces.GoalsSpace + :members: + :inherited-members: diff --git a/docs/_sources/contributing/add_agent.rst.txt b/docs/_sources/contributing/add_agent.rst.txt new file mode 100644 index 0000000..52a95b4 --- /dev/null +++ b/docs/_sources/contributing/add_agent.rst.txt @@ -0,0 +1,80 @@ +Adding a New Agent +================== + +Coach's modularity makes adding an agent a simple and clean task. +We suggest using the following +`Jupyter notebook tutorial `_ +to ramp up on this process. In general, it involves the following steps: + +1. Implement your algorithm in a new file. The agent can inherit base classes such as **ValueOptimizationAgent** or + **ActorCriticAgent**, or the more generic **Agent** base class. + + .. note:: + **ValueOptimizationAgent**, **PolicyOptimizationAgent** and **Agent** are abstract classes. + :code:`learn_from_batch()` should be overriden with the desired behavior for the algorithm being implemented. + If deciding to inherit from **Agent**, also :code:`choose_action()` should be overriden. + + .. code-block:: python + + def learn_from_batch(self, batch) -> Tuple[float, List, List]: + """ + Given a batch of transitions, calculates their target values and updates the network. + :param batch: A list of transitions + :return: The total loss of the training, the loss per head and the unclipped gradients + """ + + def choose_action(self, curr_state): + """ + choose an action to act with in the current episode being played. Different behavior might be exhibited when training + or testing. + + :param curr_state: the current state to act upon. + :return: chosen action, some action value describing the action (q-value, probability, etc) + """ + +2. Implement your agent's specific network head, if needed, at the implementation for the framework of your choice. + For example **architectures/neon_components/heads.py**. The head will inherit the generic base class Head. + A new output type should be added to configurations.py, and a mapping between the new head and output type should + be defined in the get_output_head() function at **architectures/neon_components/general_network.py** + +3. Define a new parameters class that inherits AgentParameters. + The parameters class defines all the hyperparameters for the agent, and is initialized with 4 main components: + + * **algorithm**: A class inheriting AlgorithmParameters which defines any algorithm specific parameters + + * **exploration**: A class inheriting ExplorationParameters which defines the exploration policy parameters. + There are several common exploration policies built-in which you can use, and are defined under + the exploration sub directory. You can also define your own custom exploration policy. + + * **memory**: A class inheriting MemoryParameters which defined the memory parameters. + There are several common memory types built-in which you can use, and are defined under the memories + sub directory. You can also define your own custom memory. + + * **networks**: A dictionary defining all the networks that will be used by the agent. The keys of the dictionary + define the network name and will be used to access each network through the agent class. + The dictionary values are a class inheriting NetworkParameters, which define the network structure + and parameters. + + + Additionally, set the path property to return the path to your agent class in the following format: + + :code:`:` + + For example, + + .. code-block:: python + + class RainbowAgentParameters(AgentParameters): + def __init__(self): + super().__init__(algorithm=RainbowAlgorithmParameters(), + exploration=RainbowExplorationParameters(), + memory=RainbowMemoryParameters(), + networks={"main": RainbowNetworkParameters()}) + + @property + def path(self): + return 'rainbow.rainbow_agent:RainbowAgent' + +4. (Optional) Define a preset using the new agent type with a given environment, and the hyper-parameters that should + be used for training on that environment. + diff --git a/docs_raw/docs/contributing/add_env.md b/docs/_sources/contributing/add_env.rst.txt similarity index 68% rename from docs_raw/docs/contributing/add_env.md rename to docs/_sources/contributing/add_env.rst.txt index 25a7f2c..ed2777f 100644 --- a/docs_raw/docs/contributing/add_env.md +++ b/docs/_sources/contributing/add_env.rst.txt @@ -1,29 +1,41 @@ -Adding a new environment to Coach is as easy as solving CartPole. +Adding a New Environment +======================== + +Adding a new environment to Coach is as easy as solving CartPole. There are essentially two ways to integrate new environments to Coach: -## Using the OpenAI Gym API +Using the OpenAI Gym API +------------------------ If your environment is already using the OpenAI Gym API, you are already good to go. -When selecting the environment parameters in the preset, use GymEnvironmentParameters(), +When selecting the environment parameters in the preset, use :code:`GymEnvironmentParameters()`, and pass the path to your environment source code using the level parameter. You can specify additional parameters for your environment using the additional_simulator_parameters parameter. -Take for example the definition used in the Pendulum_HAC preset: +Take for example the definition used in the :code:`Pendulum_HAC` preset: + +.. code-block:: python env_params = GymEnvironmentParameters() env_params.level = "rl_coach.environments.mujoco.pendulum_with_goals:PendulumWithGoals" env_params.additional_simulator_parameters = {"time_limit": 1000} -## Using the Coach API +Using the Coach API +------------------- There are a few simple steps to follow, and we will walk through them one by one. +As an alternative, we highly recommend following the corresponding +`tutorial `_ +in the GitHub repo. -1. Create a new class for your environment, and inherit the Environment class. +1. Create a new class for your environment, and inherit the Environment class. -2. Coach defines a simple API for implementing a new environment, which are defined in environment/environment.py. - There are several functions to implement, but only some of them are mandatory. +2. Coach defines a simple API for implementing a new environment, which are defined in environment/environment.py. + There are several functions to implement, but only some of them are mandatory. - Here are the important ones: + Here are the important ones: + + .. code-block:: python def _take_action(self, action_idx: ActionType) -> None: """ @@ -59,10 +71,12 @@ There are a few simple steps to follow, and we will walk through them one by one :return: numpy array containing the image that will be rendered to the screen """ -3. Create a new parameters class for your environment, which inherits the EnvironmentParameters class. - In the __init__ of your class, define all the parameters you used in your Environment class. - Additionally, fill the path property of the class with the path to your Environment class. - For example, take a look at the EnvironmentParameters class used for Doom: +3. Create a new parameters class for your environment, which inherits the EnvironmentParameters class. + In the __init__ of your class, define all the parameters you used in your Environment class. + Additionally, fill the path property of the class with the path to your Environment class. + For example, take a look at the EnvironmentParameters class used for Doom: + + .. code-block:: python class DoomEnvironmentParameters(EnvironmentParameters): def __init__(self): diff --git a/docs_raw/docs/dashboard.md b/docs/_sources/dashboard.rst.txt similarity index 66% rename from docs_raw/docs/dashboard.md rename to docs/_sources/dashboard.rst.txt index c00a1ac..2d89e3e 100644 --- a/docs_raw/docs/dashboard.md +++ b/docs/_sources/dashboard.rst.txt @@ -1,86 +1,63 @@ -Reinforcement learning algorithms are neat. That is - when they work. But when they don't, RL algorithms are often quite tricky to debug. +Coach Dashboard +=============== + +Reinforcement learning algorithms are neat. That is - when they work. But when they don't, RL algorithms are often quite tricky to debug. Finding the root cause for why things break in RL is rather difficult. Moreover, different RL algorithms shine in some aspects, but then lack on other. Comparing the algorithms faithfully is also a hard task, which requires the right tools. Coach Dashboard is a visualization tool which simplifies the analysis of the training process. Each run of Coach extracts a lot of information from within the algorithm and stores it in the experiment directory. This information is very valuable for debugging, analyzing and comparing different algorithms. But without a good visualization tool, this information can not be utilized. This is where Coach Dashboard takes place. -### Visualizing Signals +Visualizing Signals +------------------- Coach Dashboard exposes a convenient user interface for visualizing the training signals. The signals are dynamically updated - during the agent training. Additionaly, it allows selecting a subset of the available signals, and then overlaying them on top of each other. -

- -Updating Dynamically - -

+.. image:: /_static/img/updating_dynamically.gif + :width: 800px + :align: center * Holding the CTRL key, while selecting signals, will allow visualizing more than one signal. * Signals can be visualized, using either of the Y-axes, in order to visualize signals with different scales. To move a signal to the second Y-axis, select it and press the 'Toggle Second Axis' button. -### Tracking Statistics +Tracking Statistics +------------------- -When running parallel algorithms, such as A3C, it often helps visualizing the learning of all the workers, at the same time. Coach Dashboard allows viewing multiple signals (and even smooth them out, if required) from multiple workers. In addition, it supports viewing the mean and standard deviation of the same signal, across different workers, using Bollinger bands. +When running parallel algorithms, such as A3C, it often helps visualizing the learning of all the workers, at the same time. Coach Dashboard allows viewing multiple signals (and even smooth them out, if required) from multiple workers. In addition, it supports viewing the mean and standard deviation of the same signal, across different workers, using Bollinger bands. -

- - - - - -
- Bollinger Bands - Displaying Bollinger Bands - - Separate Signals - Displaying All The Workers -
+.. figure:: /_static/img/bollinger_bands.png + :width: 800px + :align: center + + **Displaying Bollinger Bands** +.. figure:: /_static/img/separate_signals.png + :width: 800px + :align: center + **Displaying all the Workers** - -

- - - -### Comparing Runs +Comparing Runs +-------------- Reinforcement learning algorithms are notoriously known as unstable, and suffer from high run-to-run variance. This makes benchmarking and comparing different algorithms even harder. To ease this process, it is common to execute several runs of the same algorithm and average over them. This is easy to do with Coach Dashboard, by centralizing all the experiment directories in a single directory, and then loading them as a single group. Loading several groups of different algorithms then allows comparing the averaged signals, such as the total episode reward. In RL, there are several interesting performance metrics to consider, and this is easy to do by controlling the X-axis units in Coach Dashboard. It is possible to switch between several options such as the total number of steps or the total training time. -

+ +.. figure:: /_static/img/compare_by_time.png + :width: 800px + :align: center + + **Comparing Several Algorithms According to the Time Passed** + + +.. figure:: /_static/img/compare_by_num_episodes.png + :width: 800px + :align: center + + **Comparing Several Algorithms According to the Number of Episodes Played** - - - - - - - -
- -Comparing By Time - - -Comparing Several Algorithms According to the Time Passed - - - - -Comparing By Number of Episodes - - -Comparing Several Algorithms According to the Number of Episodes Played - - -
- - - -

- - diff --git a/docs_raw/docs/design/control_flow.md b/docs/_sources/design/control_flow.rst.txt similarity index 73% rename from docs_raw/docs/design/control_flow.md rename to docs/_sources/design/control_flow.rst.txt index b21132f..b41ddfd 100644 --- a/docs_raw/docs/design/control_flow.md +++ b/docs/_sources/design/control_flow.rst.txt @@ -1,35 +1,34 @@ - -# Coach Control Flow +Control Flow +============ Coach is built in a modular way, encouraging modules reuse and reducing the amount of boilerplate code needed for developing new algorithms or integrating a new challenge as an environment. On the other hand, it can be overwhelming for new users to ramp up on the code. To help with that, here's a short overview of the control flow. -## Graph Manager +Graph Manager +------------- -The main entry point for Coach is **coach.py**. +The main entry point for Coach is :code:`coach.py`. The main functionality of this script is to parse the command line arguments and invoke all the sub-processes needed for the given experiment. -**coach.py** executes the given **preset** file which returns a **GraphManager** object. +:code:`coach.py` executes the given **preset** file which returns a :code:`GraphManager` object. A **preset** is a design pattern that is intended for concentrating the entire definition of an experiment in a single file. This helps with experiments reproducibility, improves readability and prevents confusion. -The outcome of a preset is a **GraphManager** which will usually be instantiated in the final lines of the preset. +The outcome of a preset is a :code:`GraphManager` which will usually be instantiated in the final lines of the preset. -A **GraphManager** is an object that holds all the agents and environments of an experiment, and is mostly responsible +A :code:`GraphManager` is an object that holds all the agents and environments of an experiment, and is mostly responsible for scheduling their work. Why is it called a **graph** manager? Because agents and environments are structured into a graph of interactions. For example, in hierarchical reinforcement learning schemes, there will often be a master policy agent, that will control a sub-policy agent, which will interact with the environment. Other schemes can have much more complex graphs of control, such as several hierarchy layers, each with multiple agents. The graph manager's main loop is the improve loop. -

- -Improve loop - -

+.. image:: /_static/img/improve.png + :width: 400px + :align: center The improve loop skips between 3 main phases - heatup, training and evaluation: @@ -48,7 +47,8 @@ The improve loop skips between 3 main phases - heatup, training and evaluation: evaluation will be averaged in order to reduce the stochasticity effects of all the components. -## Level Manager +Level Manager +------------- In each of the 3 phases described above, the graph manager will invoke all the hierarchy levels in the graph in a synchronized manner. In Coach, agents do not interact directly with the environment. Instead, they go through a @@ -63,32 +63,40 @@ level can be seen as an interaction between an agent and an environment, even if a lower hierarchy level. -## Agent +Agent +----- The base agent class has 3 main function that will be used during those phases - observe, act and train. * **Observe** - this function gets the latest response from the environment as input, and updates the internal state of the agent with the new information. The environment response will - be first passed through the agent's **InputFilter** object, which will process the values in the response, according + be first passed through the agent's :code:`InputFilter` object, which will process the values in the response, according to the specific agent definition. The environment response will then be converted into a - **Transition** which will contain the information from a single step - ($ s_{t}, a_{t}, r_{t}, s_{t+1}, terminal signal $), and store it in the memory. + :code:`Transition` which will contain the information from a single step + :math:`(s_{t}, a_{t}, r_{t}, s_{t+1}, \textrm{terminal signal})`, and store it in the memory. + +.. image:: /_static/img/observe.png + :width: 700px + :align: center -Observe * **Act** - this function uses the current internal state of the agent in order to select the next action to take on - the environment. This function will call the per-agent custom function **choose_action** that will use the network + the environment. This function will call the per-agent custom function :code:`choose_action` that will use the network and the exploration policy in order to select an action. The action will be stored, together with any additional - information (like the action value for example) in an **ActionInfo** object. The ActionInfo object will then be - passed through the agent's **OutputFilter** to allow any processing of the action (like discretization, + information (like the action value for example) in an :code:`ActionInfo` object. The ActionInfo object will then be + passed through the agent's :code:`OutputFilter` to allow any processing of the action (like discretization, or shifting, for example), before passing it to the environment. -Act +.. image:: /_static/img/act.png + :width: 700px + :align: center * **Train** - this function will sample a batch from the memory and train on it. The batch of transitions will be - first wrapped into a **Batch** object to allow efficient querying of the batch values. It will then be passed into - the agent specific **learn_from_batch** function, that will extract network target values from the batch and will + first wrapped into a :code:`Batch` object to allow efficient querying of the batch values. It will then be passed into + the agent specific :code:`learn_from_batch` function, that will extract network target values from the batch and will train the networks accordingly. Lastly, if there's a target network defined for the agent, it will sync the target network weights with the online network. -Train +.. image:: /_static/img/train.png + :width: 700px + :align: center diff --git a/docs_raw/docs/design/horizontal_scaling.md b/docs/_sources/design/horizontal_scaling.rst.txt similarity index 100% rename from docs_raw/docs/design/horizontal_scaling.md rename to docs/_sources/design/horizontal_scaling.rst.txt diff --git a/docs/_sources/design/network.rst.txt b/docs/_sources/design/network.rst.txt new file mode 100644 index 0000000..aa45b76 --- /dev/null +++ b/docs/_sources/design/network.rst.txt @@ -0,0 +1,56 @@ +Network Design +============== + +Each agent has at least one neural network, used as the function approximator, for choosing the actions. +The network is designed in a modular way to allow reusability in different agents. +It is separated into three main parts: + +* **Input Embedders** - This is the first stage of the network, meant to convert the input into a feature vector representation. + It is possible to combine several instances of any of the supported embedders, in order to allow varied combinations of inputs. + + There are two main types of input embedders: + + 1. Image embedder - Convolutional neural network. + 2. Vector embedder - Multi-layer perceptron. + + +* **Middlewares** - The middleware gets the output of the input embedder, and processes it into a different representation domain, + before sending it through the output head. The goal of the middleware is to enable processing the combined outputs of + several input embedders, and pass them through some extra processing. + This, for instance, might include an LSTM or just a plain simple FC layer. + +* **Output Heads** - The output head is used in order to predict the values required from the network. + These might include action-values, state-values or a policy. As with the input embedders, + it is possible to use several output heads in the same network. For example, the *Actor Critic* agent combines two + heads - a policy head and a state-value head. + In addition, the output heads defines the loss function according to the head type. + + ​ +.. image:: /_static/img/network.png + :width: 400px + :align: center + +Keeping Network Copies in Sync +------------------------------ + +Most of the reinforcement learning agents include more than one copy of the neural network. +These copies serve as counterparts of the main network which are updated in different rates, +and are often synchronized either locally or between parallel workers. For easier synchronization of those copies, +a wrapper around these copies exposes a simplified API, which allows hiding these complexities from the agent. +In this wrapper, 3 types of networks can be defined: + +* **online network** - A mandatory network which is the main network the agent will use + +* **global network** - An optional network which is shared between workers in single-node multi-process distributed learning. + It is updated by all the workers directly, and holds the most up-to-date weights. + +* **target network** - An optional network which is local for each worker. It can be used in order to keep a copy of + the weights stable for a long period of time. This is used in different agents, like DQN for example, in order to + have stable targets for the online network while training it. + + +.. image:: /_static/img/distributed.png + :width: 600px + :align: center + + diff --git a/docs/_sources/features/algorithms.rst.txt b/docs/_sources/features/algorithms.rst.txt new file mode 100644 index 0000000..eb5d19f --- /dev/null +++ b/docs/_sources/features/algorithms.rst.txt @@ -0,0 +1,10 @@ +Algorithms +========== + +Coach supports many state-of-the-art reinforcement learning algorithms, which are separated into three main classes - +value optimization, policy optimization and imitation learning. +A detailed description of those algorithms may be found in the `agents <../components/agents/index.html>`_ section. + +.. image:: /_static/img/algorithms.png + :width: 600px + :align: center \ No newline at end of file diff --git a/docs/_sources/features/benchmarks.rst.txt b/docs/_sources/features/benchmarks.rst.txt new file mode 100644 index 0000000..292c849 --- /dev/null +++ b/docs/_sources/features/benchmarks.rst.txt @@ -0,0 +1,22 @@ +Benchmarks +========== + +Reinforcement learning is a developing field, and so far it has been particularly difficult to reproduce some of the +results published in the original papers. Some reasons for this are: + +* Reinforcement learning algorithms are notoriously known as having an unstable learning process. + The data the neural networks trains on is dynamic, and depends on the random seed defined for the environment. + +* Reinforcement learning algorithms have many moving parts. For some environments and agents, there are many + "tricks" which are needed to get the exact behavior the paper authors had seen. Also, there are **a lot** of + hyper-parameters to set. + +In order for a reinforcement learning implementation to be useful for research or for data science, it must be +shown that it achieves the expected behavior. For this reason, we collected a set of benchmark results from most +of the algorithms implemented in Coach. The algorithms were tested on a subset of the same environments that were +used in the original papers, and with multiple seed for each environment. +Additionally, Coach uses some strict testing mechanisms to try and make sure the results we show for these +benchmarks stay intact as Coach continues to develop. + +To see the benchmark results, please visit the +`following GitHub page `_. \ No newline at end of file diff --git a/docs/_sources/features/environments.rst.txt b/docs/_sources/features/environments.rst.txt new file mode 100644 index 0000000..e1d72ac --- /dev/null +++ b/docs/_sources/features/environments.rst.txt @@ -0,0 +1,31 @@ +Environments +============ + +Coach supports a large number of environments which can be solved using reinforcement learning. +To find a detailed documentation of the environments API, see the `environments section <../components/environments/index.html>`_. +The supported environments are: + +* `DeepMind Control Suite `_ - a set of reinforcement learning environments + powered by the MuJoCo physics engine. + +* `Blizzard Starcraft II `_ - a popular strategy game which was wrapped with a + python interface by DeepMind. + +* `ViZDoom `_ - a Doom-based AI research platform for reinforcement learning + from raw visual information. + +* `CARLA `_ - an open-source simulator for autonomous driving research. + +* `OpenAI Gym `_ - a library which consists of a set of environments, from games to robotics. + Additionally, it can be extended using the API defined by the authors. + + In Coach, we support all the native environments in Gym, along with several extensions such as: + + * `Roboschool `_ - a set of environments powered by the PyBullet engine, + that offer a free alternative to MuJoCo. + + * `Gym Extensions `_ - a set of environments that extends Gym for + auxiliary tasks (multitask learning, transfer learning, inverse reinforcement learning, etc.) + + * `PyBullet `_ - a physics engine that + includes a set of robotics environments. diff --git a/docs/_sources/features/index.rst.txt b/docs/_sources/features/index.rst.txt new file mode 100644 index 0000000..3661755 --- /dev/null +++ b/docs/_sources/features/index.rst.txt @@ -0,0 +1,10 @@ +Features +======== + +.. toctree:: + :maxdepth: 1 + :caption: Features + + algorithms + environments + benchmarks \ No newline at end of file diff --git a/docs/_sources/index.rst.txt b/docs/_sources/index.rst.txt new file mode 100644 index 0000000..1543fba --- /dev/null +++ b/docs/_sources/index.rst.txt @@ -0,0 +1,72 @@ +.. Reinforcement Learning Coach documentation master file, created by + sphinx-quickstart on Sun Oct 28 15:35:09 2018. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + + +Reinforcement Learning Coach +============================ + +Coach is a python framework which models the interaction between an agent and an environment in a modular way. +With Coach, it is possible to model an agent by combining various building blocks, and training the agent on multiple environments. +The available environments allow testing the agent in different fields such as robotics, autonomous driving, games and more. +It exposes a set of easy-to-use APIs for experimenting with new RL algorithms, and allows simple integration of +new environments to solve. +Coach collects statistics from the training process and supports advanced visualization techniques for debugging the agent being trained. + +.. image:: _static/img/design.png + :width: 800px + +Blog posts from the Intel® AI website: + +* `Release 0.8.0 `_ (initial release) + +* `Release 0.9.0 `_ + +* `Release 0.10.0 `_ + +* `Release 0.11.0 `_ (current release) + +You can find more details in the `GitHub repository `_. + + +.. toctree:: + :maxdepth: 2 + :caption: Intro + :titlesonly: + + usage + features/index + selecting_an_algorithm + dashboard + + +.. toctree:: + :maxdepth: 1 + :caption: Design + + design/control_flow + design/network + +.. toctree:: + :maxdepth: 1 + :caption: Contributing + + contributing/add_agent + contributing/add_env + +.. toctree:: + :maxdepth: 1 + :caption: Components + + components/agents/index + components/architectures/index + components/environments/index + components/exploration_policies/index + components/filters/index + components/memories/index + components/core_types + components/spaces + components/additional_parameters + + diff --git a/docs/_sources/selecting_an_algorithm.rst.txt b/docs/_sources/selecting_an_algorithm.rst.txt new file mode 100644 index 0000000..c867191 --- /dev/null +++ b/docs/_sources/selecting_an_algorithm.rst.txt @@ -0,0 +1,270 @@ +Selecting an Algorithm +====================== + +As you probably already noticed, Coach has a lot of algorithms implemented into it: + +.. image:: /_static/img/algorithms.png + :width: 800px + :align: center + +**"ok that's prefect, but I am trying to build a solution for my application, how do I select the right algorithm?"** + +We collected some guidelines for how to choose the right algorithm for your application. +Answer the following questions to see what are the best algorithms for your task. +The algorithms are ordered by their release date in descending order. + +.. raw:: html + + + + +
+
+ What are the type of actions your task requires? +
+ Discrete actions
+ Continuous actions
+
+ Do you have expert demonstrations for your task?
+ Can you collect new data for your task dynamically?
+ Do you have a simulator for your task?
+
+ +
+
+
+ + DQN +
+ Learns action values for discrete actions, and allows learning from a replay buffer with old experiences +
+
+
+ + Rainbow +
+ Combines multiple recent innovations on top of DQN for discrete controls, and achieves + much better results on known benchmarks +
+
+
+ + HAC +
+ Works only for continuous actions, and uses hierarchy of agents to make the learning + more simple +
+
+
+ + DDQN +
+ An improvement over DQN, which learns more accurate action values, and therefore achieves better results + on known benchmarks +
+
+
+ + DFP +
+ Works only for discrete actions, by learning to predict the future values of a set of + measurements from the environment, and then using a goal vector to weight the importance of each of the + measurements +
+
+
+ + MMC +
+ A simple modification to DQN, which instead of learning action values only by bootstrapping the current + action value prediction, it mixes in the total discounted return as well. This helps learn the correct + action values faster, and is particularly useful for environments with delayed rewards. +
+
+
+ + PAL +
+ An improvement over DQN, that tries to deal with the approximation errors present in reinforcement + learning by increasing the gap between the value of the best action and the second best action. +
+
+
+ + NAF +
+ A variant of Q learning for continuous control. +
+
+
+ + NEC +
+ Uses a memory to "memorize" its experience and learn much faster by querying the memory on newly + seen states. +
+
+
+ + QR DQN +
+ Uses quantile regression to learn a distribution over the action values instead of only their mean. + This boosts performance on known benchmarks. +
+
+
+ + Bootstrapped DQN +
+ Uses an ensemble of DQN networks, where each network learns from a different subset of the experience + in order to improve exploration. +
+
+
+ + N-Step Q Learning +
+ A variant of Q learning that uses bootstrapping of N steps ahead, instead of 1 step. Doing this + makes the algorithm on-policy and therefore requires having multiple workers training in parallel in + order for it to work well. +
+
+
+ + Categorical DQN +
+ Learns a distribution over the action values instead of only their mean. This boosts performance on + known algorithms but requires knowing the range of possible values for the accumulated rewards before hand. +
+
+
+ + Policy Gradient +
+ Based on the REINFORCE algorithm, this algorithm learn a probability distribution over the actions. + This is the most simple algorithm available in Coach, but also has the worse results. +
+
+
+ + Actor Critic (A3C / A2C) +
+ Combines REINFORCE with a learned baseline (Critic) to improve stability of learning. It also + introduced the parallel learning of multiple workers to speed up data collection and improve the + learning stability and speed, both for discrete and continuous action spaces. +
+
+
+ + DDPG +
+ An actor critic scheme for continuous action spaces which assumes that the policy is deterministic, + and therefore it is able to use a replay buffer in order to improve sample efficiency. +
+
+
+ + PPO +
+ An actor critic scheme which uses bounded updates to the policy in order to make the learning process + very stable. +
+
+
+ + Clipped PPO +
+ A simplification of PPO, that reduces the code complexity while achieving similar results. +
+
+
+ + BC +
+ The simplest form of imitation learning. Uses supervised learning on a dataset of expert demonstrations + in order to imitate the expert behavior. +
+
+
+ + CIL +
+ A variant of behavioral cloning, where the learned policy is disassembled to several skills + (such as turning left or right in an intersection), and each skill is learned separately from the + human demonstrations. +
+
+
+
+ + +1. Does your environment have a discrete or continuous action space? +-------------------------------------------------------------------- + +Some reinforcement learning algorithms work only for discrete action spaces, where the agent needs to select +one out of several possible actions. Other algorithms work only for continuous action spaces, where there are +infinite possible actions, but there is some spatial relationship between the actions. And there are some algorithms +that can be applied in both cases. The available algorithms highly depend on the task at hand. + + +2. Is collecting more samples from your environment painful? +------------------------------------------------------------ + +Reinforcement learning algorithm are notoriously known for the amount of samples they need for training. +Typically, on-policy algorithms are much less sample efficient compared to off-policy algorithms. But there are +other algorithmic features that allow improving the sample efficiency even more, like using a DND in NEC, or using +Hindsight Experience Replay. It is hard to say which algorithm is the most sample efficient, but we can at least say +which ones are not sample efficient. + + +3. Do you have a simulator that can be parallelized across multiple processes or nodes? +--------------------------------------------------------------------------------------- + +Parallelizing training across multiple workers which are located on the same node or on different nodes is a technique +that has been introduced in recent years and achieved a lot of success in improving the results of multiple algorithms. +As part of this, there are some algorithms that don't work well without being parallelized with multiple workers +working in parallel, which requires having a simulator for each worker. + + +4. Do you have human demonstrations for solving the task? +--------------------------------------------------------- + +If human demonstrations are available for a task, most of the time it would be better to use those instead of training +using regular reinforcement learning from scratch. To use human demonstrations we have implemented several tools and +algorithms for imitation learning in Coach. diff --git a/docs/_sources/test.rst.txt b/docs/_sources/test.rst.txt new file mode 100644 index 0000000..51c4298 --- /dev/null +++ b/docs/_sources/test.rst.txt @@ -0,0 +1,8 @@ +test +---- + +.. important:: Its a note! in markdown! + +.. autoclass:: rl_coach.agents.dqn_agent.DQNAgent + :members: + :inherited-members: \ No newline at end of file diff --git a/docs/_sources/usage.rst.txt b/docs/_sources/usage.rst.txt new file mode 100644 index 0000000..d9eeba9 --- /dev/null +++ b/docs/_sources/usage.rst.txt @@ -0,0 +1,158 @@ +Usage +===== + +One of the mechanism Coach uses for running experiments is the **Preset** mechanism. +As its name implies, a preset defines a set of predefined experiment parameters. +This allows defining a *complex* agent-environment interaction, with multiple parameters, and later running it through +a very *simple* command line. + +The preset includes all the components that are used in the experiment, such as the agent internal components and +the environment to use. +It additionally defines general parameters for the experiment itself, such as the training schedule, +visualization parameters, and testing parameters. + +Training an Agent +----------------- + +Single-threaded Algorithms +++++++++++++++++++++++++++ + +This is the most common case. Just choose a preset using the `-p` flag and press enter. +To list the available presets, use the `-l` flag. + +*Example:* + +.. code-block:: python + + coach -p CartPole_DQN + +Multi-threaded Algorithms ++++++++++++++++++++++++++ + +Multi-threaded algorithms are very common this days. +They typically achieve the best results, and scale gracefully with the number of threads. +In Coach, running such algorithms is done by selecting a suitable preset, and choosing the number of threads to run using the :code:`-n` flag. + +*Example:* + +.. code-block:: python + + coach -p CartPole_A3C -n 8 + +Evaluating an Agent +------------------- + +There are several options for evaluating an agent during the training: + +* For multi-threaded runs, an evaluation agent will constantly run in the background and evaluate the model during the training. + +* For single-threaded runs, it is possible to define an evaluation period through the preset. This will run several episodes of evaluation once in a while. + +Additionally, it is possible to save checkpoints of the agents networks and then run only in evaluation mode. +Saving checkpoints can be done by specifying the number of seconds between storing checkpoints using the :code:`-s` flag. +The checkpoints will be saved into the experiment directory. +Loading a model for evaluation can be done by specifying the :code:`-crd` flag with the experiment directory, and the :code:`--evaluate` flag to disable training. + +*Example:* + +.. code-block:: python + + coach -p CartPole_DQN -s 60 + coach -p CartPole_DQN --evaluate -crd CHECKPOINT_RESTORE_DIR + +Playing with the Environment as a Human +--------------------------------------- + +Interacting with the environment as a human can be useful for understanding its difficulties and for collecting data for imitation learning. +In Coach, this can be easily done by selecting a preset that defines the environment to use, and specifying the :code:`--play` flag. +When the environment is loaded, the available keyboard buttons will be printed to the screen. +Pressing the escape key when finished will end the simulation and store the replay buffer in the experiment dir. + +*Example:* + +.. code-block:: python + + coach -et rl_coach.environments.gym_environment:Atari -lvl BreakoutDeterministic-v4 --play + +Learning Through Imitation Learning +----------------------------------- + +Learning through imitation of human behavior is a nice way to speedup the learning. +In Coach, this can be done in two steps - + +1. Create a dataset of demonstrations by playing with the environment as a human. + After this step, a pickle of the replay buffer containing your game play will be stored in the experiment directory. + The path to this replay buffer will be printed to the screen. + To do so, you should select an environment type and level through the command line, and specify the :code:`--play` flag. + + *Example:* + +.. code-block:: python + + coach -et rl_coach.environments.doom_environment:DoomEnvironmentParameters -lvl Basic --play + + +2. Next, use an imitation learning preset and set the replay buffer path accordingly. + The path can be set either from the command line or from the preset itself. + + *Example:* + +.. code-block:: python + + coach -p Doom_Basic_BC -cp='agent.load_memory_from_file_path=\"/replay_buffer.p\"' + + +Visualizations +-------------- + +Rendering the Environment ++++++++++++++++++++++++++ + +Rendering the environment can be done by using the :code:`-r` flag. +When working with multi-threaded algorithms, the rendered image will be representing the game play of the evaluation worker. +When working with single-threaded algorithms, the rendered image will be representing the single worker which can be either training or evaluating. +Keep in mind that rendering the environment in single-threaded algorithms may slow the training to some extent. +When playing with the environment using the :code:`--play` flag, the environment will be rendered automatically without the need for specifying the :code:`-r` flag. + +*Example:* + +.. code-block:: python + + coach -p Breakout_DQN -r + +Dumping GIFs +++++++++++++ + +Coach allows storing GIFs of the agent game play. +To dump GIF files, use the :code:`-dg` flag. +The files are dumped after every evaluation episode, and are saved into the experiment directory, under a gifs sub-directory. + +*Example:* + +.. code-block:: python + + coach -p Breakout_A3C -n 4 -dg + +Switching Between Deep Learning Frameworks +------------------------------------------ + +Coach uses TensorFlow as its main backend framework, but it also supports MXNet. +MXNet is optional, and by default, TensorFlow will be used. +If MXNet was installed, it is possible to switch to MXNet using the :code:`-f` flag. + +*Example:* + +.. code-block:: python + + coach -p Doom_Basic_DQN -f mxnet + +Additional Flags +---------------- + +There are several convenient flags which are important to know about. +The most up to date description can be found by using the :code:`-h` flag. + +.. argparse:: + :module: rl_coach.coach + :func: create_argument_parser + :prog: coach \ No newline at end of file diff --git a/docs/_static/ajax-loader.gif b/docs/_static/ajax-loader.gif new file mode 100644 index 0000000000000000000000000000000000000000..61faf8cab23993bd3e1560bff0668bd628642330 GIT binary patch literal 673 zcmZ?wbhEHb6krfw_{6~Q|Nno%(3)e{?)x>&1u}A`t?OF7Z|1gRivOgXi&7IyQd1Pl zGfOfQ60;I3a`F>X^fL3(@);C=vM_KlFfb_o=k{|A33hf2a5d61U}gjg=>Rd%XaNQW zW@Cw{|b%Y*pl8F?4B9 zlo4Fz*0kZGJabY|>}Okf0}CCg{u4`zEPY^pV?j2@h+|igy0+Kz6p;@SpM4s6)XEMg z#3Y4GX>Hjlml5ftdH$4x0JGdn8~MX(U~_^d!Hi)=HU{V%g+mi8#UGbE-*ao8f#h+S z2a0-5+vc7MU$e-NhmBjLIC1v|)9+Im8x1yacJ7{^tLX(ZhYi^rpmXm0`@ku9b53aN zEXH@Y3JaztblgpxbJt{AtE1ad1Ca>{v$rwwvK(>{m~Gf_=-Ro7Fk{#;i~+{{>QtvI yb2P8Zac~?~=sRA>$6{!(^3;ZP0TPFR(G_-UDU(8Jl0?(IXu$~#4A!880|o%~Al1tN literal 0 HcmV?d00001 diff --git a/docs/_static/basic.css b/docs/_static/basic.css new file mode 100644 index 0000000..104f076 --- /dev/null +++ b/docs/_static/basic.css @@ -0,0 +1,676 @@ +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2018 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 230px; + margin-left: -100%; + font-size: 90%; + word-wrap: break-word; + overflow-wrap : break-word; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +div.sphinxsidebar #searchbox form.search { + overflow: hidden; +} + +div.sphinxsidebar #searchbox input[type="text"] { + float: left; + width: 80%; + padding: 0.25em; + box-sizing: border-box; +} + +div.sphinxsidebar #searchbox input[type="submit"] { + float: left; + width: 20%; + border-left: none; + padding: 0.25em; + box-sizing: border-box; +} + + +img { + border: 0; + max-width: 100%; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li div.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; + margin-left: auto; + margin-right: auto; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable ul { + margin-top: 0; + margin-bottom: 0; + list-style-type: none; +} + +table.indextable > tbody > tr > td > ul { + padding-left: 0em; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- domain module index --------------------------------------------------- */ + +table.modindextable td { + padding: 2px; + border-collapse: collapse; +} + +/* -- general body styles --------------------------------------------------- */ + +div.body { + min-width: 450px; + max-width: 800px; +} + +div.body p, div.body dd, div.body li, div.body blockquote { + -moz-hyphens: auto; + -ms-hyphens: auto; + -webkit-hyphens: auto; + hyphens: auto; +} + +a.headerlink { + visibility: hidden; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink, +caption:hover > a.headerlink, +p.caption:hover > a.headerlink, +div.code-block-caption:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px 7px 0 7px; + background-color: #ffe; + width: 40%; + float: right; +} + +p.sidebar-title { + font-weight: bold; +} + +/* -- topics ---------------------------------------------------------------- */ + +div.topic { + border: 1px solid #ccc; + padding: 7px 7px 0 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +div.admonition dl { + margin-bottom: 0; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + border: 0; + border-collapse: collapse; +} + +table.align-center { + margin-left: auto; + margin-right: auto; +} + +table caption span.caption-number { + font-style: italic; +} + +table caption span.caption-text { +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +table.footnote td, table.footnote th { + border: 0 !important; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +/* -- figures --------------------------------------------------------------- */ + +div.figure { + margin: 0.5em; + padding: 0.5em; +} + +div.figure p.caption { + padding: 0.3em; +} + +div.figure p.caption span.caption-number { + font-style: italic; +} + +div.figure p.caption span.caption-text { +} + +/* -- field list styles ----------------------------------------------------- */ + +table.field-list td, table.field-list th { + border: 0 !important; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.field-name { + -moz-hyphens: manual; + -ms-hyphens: manual; + -webkit-hyphens: manual; + hyphens: manual; +} + +/* -- hlist styles ---------------------------------------------------------- */ + +table.hlist td { + vertical-align: top; +} + + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +dl { + margin-bottom: 15px; +} + +dd p { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +dt:target, span.highlighted { + background-color: #fbe54e; +} + +rect.highlighted { + fill: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.optional { + font-size: 1.3em; +} + +.sig-paren { + font-size: larger; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +abbr, acronym { + border-bottom: dotted 1px; + cursor: help; +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +span.pre { + -moz-hyphens: none; + -ms-hyphens: none; + -webkit-hyphens: none; + hyphens: none; +} + +td.linenos pre { + padding: 5px 0px; + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + margin-left: 0.5em; +} + +table.highlighttable td { + padding: 0 0.5em 0 0.5em; +} + +div.code-block-caption { + padding: 2px 5px; + font-size: small; +} + +div.code-block-caption code { + background-color: transparent; +} + +div.code-block-caption + div > div.highlight > pre { + margin-top: 0; +} + +div.code-block-caption span.caption-number { + padding: 0.1em 0.3em; + font-style: italic; +} + +div.code-block-caption span.caption-text { +} + +div.literal-block-wrapper { + padding: 1em 1em 0; +} + +div.literal-block-wrapper div.highlight { + margin: 0; +} + +code.descname { + background-color: transparent; + font-weight: bold; + font-size: 1.2em; +} + +code.descclassname { + background-color: transparent; +} + +code.xref, a code { + background-color: transparent; + font-weight: bold; +} + +h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +span.eqno a.headerlink { + position: relative; + left: 0px; + z-index: 1; +} + +div.math:hover a.headerlink { + visibility: visible; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} \ No newline at end of file diff --git a/docs/_static/comment-bright.png b/docs/_static/comment-bright.png new file mode 100644 index 0000000000000000000000000000000000000000..15e27edb12ac25701ac0ac21b97b52bb4e45415e GIT binary patch literal 756 zcmVgfIX78 z$8Pzv({A~p%??+>KickCb#0FM1rYN=mBmQ&Nwp<#JXUhU;{|)}%&s>suq6lXw*~s{ zvHx}3C%<;wE5CH!BR{p5@ml9ws}y)=QN-kL2?#`S5d*6j zk`h<}j1>tD$b?4D^N9w}-k)bxXxFg>+#kme^xx#qg6FI-%iv2U{0h(Y)cs%5a|m%Pn_K3X_bDJ>EH#(Fb73Z zfUt2Q3B>N+ot3qb*DqbTZpFIn4a!#_R-}{?-~Hs=xSS6p&$sZ-k1zDdtqU`Y@`#qL z&zv-~)Q#JCU(dI)Hf;$CEnK=6CK50}q7~wdbI->?E07bJ0R;!GSQTs5Am`#;*WHjvHRvY?&$Lm-vq1a_BzocI^ULXV!lbMd%|^B#fY;XX)n<&R^L z=84u1e_3ziq;Hz-*k5~zwY3*oDKt0;bM@M@@89;@m*4RFgvvM_4;5LB!@OB@^WbVT zjl{t;a8_>od-~P4 m{5|DvB&z#xT;*OnJqG}gk~_7HcNkCr0000W zanA~u9RIXo;n7c96&U)YLgs-FGlx~*_c{Jgvesu1E5(8YEf&5wF=YFPcRe@1=MJmi zag(L*xc2r0(slpcN!vC5CUju;vHJkHc*&70_n2OZsK%O~A=!+YIw z7zLLl7~Z+~RgWOQ=MI6$#0pvpu$Q43 zP@36QAmu6!_9NPM?o<1_!+stoVRRZbW9#SPe!n;#A_6m8f}|xN1;H{`0RoXQ2LM47 zt(g;iZ6|pCb@h2xk&(}S3=EVBUO0e90m2Lp5CB<(SPIaB;n4))3JB87Or#XPOPcum z?<^(g+m9}VNn4Y&B`g8h{t_$+RB1%HKRY6fjtd-<7&EsU;vs0GM(Lmbhi%Gwcfs0FTF}T zL{_M6Go&E0Eg8FuB*(Yn+Z*RVTBE@10eIOb3El^MhO`GabDll(V0&FlJi2k^;q8af zkENdk2}x2)_KVp`5OAwXZM;dG0?M-S)xE1IKDi6BY@5%Or?#aZ9$gcX)dPZ&wA1a< z$rFXHPn|TBf`e?>Are8sKtKrKcjF$i^lp!zkL?C|y^vlHr1HXeVJd;1I~g&Ob-q)& z(fn7s-KI}G{wnKzg_U5G(V%bX6uk zIa+<@>rdmZYd!9Y=C0cuchrbIjuRB_Wq{-RXlic?flu1*_ux}x%(HDH&nT`k^xCeC ziHi1!ChH*sQ6|UqJpTTzX$aw8e(UfcS^f;6yBWd+(1-70zU(rtxtqR%j z-lsH|CKQJXqD{+F7V0OTv8@{~(wp(`oIP^ZykMWgR>&|RsklFMCnOo&Bd{le} zV5F6424Qzl;o2G%oVvmHgRDP9!=rK8fy^!yV8y*4p=??uIRrrr0?>O!(z*g5AvL2!4z0{sq%vhG*Po}`a<6%kTK5TNhtC8}rXNu&h^QH4A&Sk~Autm*s~45(H7+0bi^MraaRVzr05hQ3iK?j` zR#U@^i0WhkIHTg29u~|ypU?sXCQEQgXfObPW;+0YAF;|5XyaMAEM0sQ@4-xCZe=0e z7r$ofiAxn@O5#RodD8rh5D@nKQ;?lcf@tg4o+Wp44aMl~c47azN_(im0N)7OqdPBC zGw;353_o$DqGRDhuhU$Eaj!@m000000NkvXXu0mjfjZ7Z_ literal 0 HcmV?d00001 diff --git a/docs/_static/css/badge_only.css b/docs/_static/css/badge_only.css new file mode 100644 index 0000000..323730a --- /dev/null +++ b/docs/_static/css/badge_only.css @@ -0,0 +1 @@ +.fa:before{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-weight:normal;font-style:normal;src:url("../fonts/fontawesome-webfont.eot");src:url("../fonts/fontawesome-webfont.eot?#iefix") format("embedded-opentype"),url("../fonts/fontawesome-webfont.woff") format("woff"),url("../fonts/fontawesome-webfont.ttf") format("truetype"),url("../fonts/fontawesome-webfont.svg#FontAwesome") format("svg")}.fa:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;text-decoration:inherit}a .fa{display:inline-block;text-decoration:inherit}li .fa{display:inline-block}li .fa-large:before,li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-0.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before,ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before{content:""}.icon-book:before{content:""}.fa-caret-down:before{content:""}.icon-caret-down:before{content:""}.fa-caret-up:before{content:""}.icon-caret-up:before{content:""}.fa-caret-left:before{content:""}.icon-caret-left:before{content:""}.fa-caret-right:before{content:""}.icon-caret-right:before{content:""}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;z-index:400}.rst-versions a{color:#2980B9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27AE60;*zoom:1}.rst-versions .rst-current-version:before,.rst-versions .rst-current-version:after{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book{float:left}.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#E74C3C;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#F1C40F;color:#000}.rst-versions.shift-up{height:auto;max-height:100%}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:gray;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:solid 1px #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px}.rst-versions.rst-badge .icon-book{float:none}.rst-versions.rst-badge .fa-book{float:none}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book{float:left}.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge .rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width: 768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}} diff --git a/docs/_static/css/custom.css b/docs/_static/css/custom.css new file mode 100644 index 0000000..6ab0757 --- /dev/null +++ b/docs/_static/css/custom.css @@ -0,0 +1,61 @@ +/* Docs background */ +.wy-side-nav-search{ + background-color: #043c74; +} + +/* Mobile version */ +.wy-nav-top{ + background-color: #043c74; +} + + +.green { + color: green; +} + +.red { + color: red; +} + +.blue { + color: blue; +} + +.yellow { + color: yellow; +} + +.badge { + border: 2px; + border-style: solid; + border-color: #6C8EBF; + border-radius: 5px; + padding: 3px 15px 3px 15px; + margin: 5px; + display: inline-block; + font-weight: bold; + font-size: 16px; + background: #DAE8FC; +} + +.badge:hover { + cursor: pointer; +} + +.badge > a { + color: black; +} + +.bordered-container { + border: 0px; + border-style: solid; + border-radius: 8px; + padding: 15px; + margin-bottom: 20px; + background: #f2f2f2; +} + +.questionnaire { + font-size: 1.2em; + line-height: 1.5em; +} \ No newline at end of file diff --git a/docs/_static/css/theme.css b/docs/_static/css/theme.css new file mode 100644 index 0000000..b19dbfe --- /dev/null +++ b/docs/_static/css/theme.css @@ -0,0 +1,6 @@ +/* sphinx_rtd_theme version 0.4.2 | MIT license */ +/* Built 20181005 13:10 */ +*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}[hidden]{display:none}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a:hover,a:active{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}blockquote{margin:0}dfn{font-style:italic}ins{background:#ff9;color:#000;text-decoration:none}mark{background:#ff0;color:#000;font-style:italic;font-weight:bold}pre,code,.rst-content tt,.rst-content code,kbd,samp{font-family:monospace,serif;_font-family:"courier new",monospace;font-size:1em}pre{white-space:pre}q{quotes:none}q:before,q:after{content:"";content:none}small{font-size:85%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}ul,ol,dl{margin:0;padding:0;list-style:none;list-style-image:none}li{list-style:none}dd{margin:0}img{border:0;-ms-interpolation-mode:bicubic;vertical-align:middle;max-width:100%}svg:not(:root){overflow:hidden}figure{margin:0}form{margin:0}fieldset{border:0;margin:0;padding:0}label{cursor:pointer}legend{border:0;*margin-left:-7px;padding:0;white-space:normal}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button;*overflow:visible}button[disabled],input[disabled]{cursor:default}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0;*width:13px;*height:13px}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top;resize:vertical}table{border-collapse:collapse;border-spacing:0}td{vertical-align:top}.chromeframe{margin:.2em 0;background:#ccc;color:#000;padding:.2em 0}.ir{display:block;border:0;text-indent:-999em;overflow:hidden;background-color:transparent;background-repeat:no-repeat;text-align:left;direction:ltr;*line-height:0}.ir br{display:none}.hidden{display:none !important;visibility:hidden}.visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.visuallyhidden.focusable:active,.visuallyhidden.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.invisible{visibility:hidden}.relative{position:relative}big,small{font-size:100%}@media print{html,body,section{background:none !important}*{box-shadow:none !important;text-shadow:none !important;filter:none !important;-ms-filter:none !important}a,a:visited{text-decoration:underline}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:.5cm}p,h2,.rst-content .toctree-wrapper p.caption,h3{orphans:3;widows:3}h2,.rst-content .toctree-wrapper p.caption,h3{page-break-after:avoid}}.fa:before,.wy-menu-vertical li span.toctree-expand:before,.wy-menu-vertical li.on a span.toctree-expand:before,.wy-menu-vertical li.current>a span.toctree-expand:before,.rst-content .admonition-title:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content dl dt .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.rst-content code.download span:first-child:before,.icon:before,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-alert,.rst-content .note,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .tip,.rst-content .warning,.rst-content .seealso,.rst-content .admonition-todo,.rst-content .admonition,.btn,input[type="text"],input[type="password"],input[type="email"],input[type="url"],input[type="date"],input[type="month"],input[type="time"],input[type="datetime"],input[type="datetime-local"],input[type="week"],input[type="number"],input[type="search"],input[type="tel"],input[type="color"],select,textarea,.wy-menu-vertical li.on a,.wy-menu-vertical li.current>a,.wy-side-nav-search>a,.wy-side-nav-search .wy-dropdown>a,.wy-nav-top a{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:""}.clearfix:after{clear:both}/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:'FontAwesome';src:url("../fonts/fontawesome-webfont.eot?v=4.7.0");src:url("../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0") format("embedded-opentype"),url("../fonts/fontawesome-webfont.woff2?v=4.7.0") format("woff2"),url("../fonts/fontawesome-webfont.woff?v=4.7.0") format("woff"),url("../fonts/fontawesome-webfont.ttf?v=4.7.0") format("truetype"),url("../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular") format("svg");font-weight:normal;font-style:normal}.fa,.wy-menu-vertical li span.toctree-expand,.wy-menu-vertical li.on a span.toctree-expand,.wy-menu-vertical li.current>a span.toctree-expand,.rst-content .admonition-title,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content dl dt .headerlink,.rst-content p.caption .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.rst-content code.download span:first-child,.icon{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.3333333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.2857142857em;text-align:center}.fa-ul{padding-left:0;margin-left:2.1428571429em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.1428571429em;width:2.1428571429em;top:.1428571429em;text-align:center}.fa-li.fa-lg{left:-1.8571428571em}.fa-border{padding:.2em .25em .15em;border:solid 0.08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.wy-menu-vertical li span.fa-pull-left.toctree-expand,.wy-menu-vertical li.on a span.fa-pull-left.toctree-expand,.wy-menu-vertical li.current>a span.fa-pull-left.toctree-expand,.rst-content .fa-pull-left.admonition-title,.rst-content h1 .fa-pull-left.headerlink,.rst-content h2 .fa-pull-left.headerlink,.rst-content h3 .fa-pull-left.headerlink,.rst-content h4 .fa-pull-left.headerlink,.rst-content h5 .fa-pull-left.headerlink,.rst-content h6 .fa-pull-left.headerlink,.rst-content dl dt .fa-pull-left.headerlink,.rst-content p.caption .fa-pull-left.headerlink,.rst-content table>caption .fa-pull-left.headerlink,.rst-content tt.download span.fa-pull-left:first-child,.rst-content code.download span.fa-pull-left:first-child,.fa-pull-left.icon{margin-right:.3em}.fa.fa-pull-right,.wy-menu-vertical li span.fa-pull-right.toctree-expand,.wy-menu-vertical li.on a span.fa-pull-right.toctree-expand,.wy-menu-vertical li.current>a span.fa-pull-right.toctree-expand,.rst-content .fa-pull-right.admonition-title,.rst-content h1 .fa-pull-right.headerlink,.rst-content h2 .fa-pull-right.headerlink,.rst-content h3 .fa-pull-right.headerlink,.rst-content h4 .fa-pull-right.headerlink,.rst-content h5 .fa-pull-right.headerlink,.rst-content h6 .fa-pull-right.headerlink,.rst-content dl dt .fa-pull-right.headerlink,.rst-content p.caption .fa-pull-right.headerlink,.rst-content table>caption .fa-pull-right.headerlink,.rst-content tt.download span.fa-pull-right:first-child,.rst-content code.download span.fa-pull-right:first-child,.fa-pull-right.icon{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left,.wy-menu-vertical li span.pull-left.toctree-expand,.wy-menu-vertical li.on a span.pull-left.toctree-expand,.wy-menu-vertical li.current>a span.pull-left.toctree-expand,.rst-content .pull-left.admonition-title,.rst-content h1 .pull-left.headerlink,.rst-content h2 .pull-left.headerlink,.rst-content h3 .pull-left.headerlink,.rst-content h4 .pull-left.headerlink,.rst-content h5 .pull-left.headerlink,.rst-content h6 .pull-left.headerlink,.rst-content dl dt .pull-left.headerlink,.rst-content p.caption .pull-left.headerlink,.rst-content table>caption .pull-left.headerlink,.rst-content tt.download span.pull-left:first-child,.rst-content code.download span.pull-left:first-child,.pull-left.icon{margin-right:.3em}.fa.pull-right,.wy-menu-vertical li span.pull-right.toctree-expand,.wy-menu-vertical li.on a span.pull-right.toctree-expand,.wy-menu-vertical li.current>a span.pull-right.toctree-expand,.rst-content .pull-right.admonition-title,.rst-content h1 .pull-right.headerlink,.rst-content h2 .pull-right.headerlink,.rst-content h3 .pull-right.headerlink,.rst-content h4 .pull-right.headerlink,.rst-content h5 .pull-right.headerlink,.rst-content h6 .pull-right.headerlink,.rst-content dl dt .pull-right.headerlink,.rst-content p.caption .pull-right.headerlink,.rst-content table>caption .pull-right.headerlink,.rst-content tt.download span.pull-right:first-child,.rst-content code.download span.pull-right:first-child,.pull-right.icon{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before,.icon-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-remove:before,.fa-close:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-gear:before,.fa-cog:before{content:""}.fa-trash-o:before{content:""}.fa-home:before,.icon-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before,.rst-content tt.download span:first-child:before,.rst-content code.download span:first-child:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-rotate-right:before,.fa-repeat:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before,.icon-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before{content:""}.fa-check-circle:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.rst-content .admonition-title:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before,.icon-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-warning:before,.fa-exclamation-triangle:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-gears:before,.fa-cogs:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before,.icon-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before,.icon-circle-arrow-left:before{content:""}.fa-arrow-circle-right:before,.icon-circle-arrow-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before,.icon-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-save:before,.fa-floppy-o:before{content:""}.fa-square:before{content:""}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before,.wy-dropdown .caret:before,.icon-caret-down:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-unsorted:before,.fa-sort:before{content:""}.fa-sort-down:before,.fa-sort-desc:before{content:""}.fa-sort-up:before,.fa-sort-asc:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-legal:before,.fa-gavel:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-flash:before,.fa-bolt:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-paste:before,.fa-clipboard:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-unlink:before,.fa-chain-broken:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before,.wy-menu-vertical li.on a span.toctree-expand:before,.wy-menu-vertical li.current>a span.toctree-expand:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:""}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:""}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:""}.fa-euro:before,.fa-eur:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-rupee:before,.fa-inr:before{content:""}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:""}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:""}.fa-won:before,.fa-krw:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before,.icon-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-turkish-lira:before,.fa-try:before{content:""}.fa-plus-square-o:before,.wy-menu-vertical li span.toctree-expand:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-institution:before,.fa-bank:before,.fa-university:before{content:""}.fa-mortar-board:before,.fa-graduation-cap:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:""}.fa-file-zip-o:before,.fa-file-archive-o:before{content:""}.fa-file-sound-o:before,.fa-file-audio-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:""}.fa-ge:before,.fa-empire:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-send:before,.fa-paper-plane:before{content:""}.fa-send-o:before,.fa-paper-plane-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-hotel:before,.fa-bed:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-yc:before,.fa-y-combinator:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-tv:before,.fa-television:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.fa-reddit-alien:before{content:""}.fa-edge:before{content:""}.fa-credit-card-alt:before{content:""}.fa-codiepie:before{content:""}.fa-modx:before{content:""}.fa-fort-awesome:before{content:""}.fa-usb:before{content:""}.fa-product-hunt:before{content:""}.fa-mixcloud:before{content:""}.fa-scribd:before{content:""}.fa-pause-circle:before{content:""}.fa-pause-circle-o:before{content:""}.fa-stop-circle:before{content:""}.fa-stop-circle-o:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-hashtag:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-percent:before{content:""}.fa-gitlab:before,.icon-gitlab:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpforms:before{content:""}.fa-envira:before{content:""}.fa-universal-access:before{content:""}.fa-wheelchair-alt:before{content:""}.fa-question-circle-o:before{content:""}.fa-blind:before{content:""}.fa-audio-description:before{content:""}.fa-volume-control-phone:before{content:""}.fa-braille:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:""}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-signing:before,.fa-sign-language:before{content:""}.fa-low-vision:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-pied-piper:before{content:""}.fa-first-order:before{content:""}.fa-yoast:before{content:""}.fa-themeisle:before{content:""}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:""}.fa-fa:before,.fa-font-awesome:before{content:""}.fa-handshake-o:before{content:""}.fa-envelope-open:before{content:""}.fa-envelope-open-o:before{content:""}.fa-linode:before{content:""}.fa-address-book:before{content:""}.fa-address-book-o:before{content:""}.fa-vcard:before,.fa-address-card:before{content:""}.fa-vcard-o:before,.fa-address-card-o:before{content:""}.fa-user-circle:before{content:""}.fa-user-circle-o:before{content:""}.fa-user-o:before{content:""}.fa-id-badge:before{content:""}.fa-drivers-license:before,.fa-id-card:before{content:""}.fa-drivers-license-o:before,.fa-id-card-o:before{content:""}.fa-quora:before{content:""}.fa-free-code-camp:before{content:""}.fa-telegram:before{content:""}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:""}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:""}.fa-thermometer-2:before,.fa-thermometer-half:before{content:""}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:""}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:""}.fa-shower:before{content:""}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:""}.fa-podcast:before{content:""}.fa-window-maximize:before{content:""}.fa-window-minimize:before{content:""}.fa-window-restore:before{content:""}.fa-times-rectangle:before,.fa-window-close:before{content:""}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:""}.fa-bandcamp:before{content:""}.fa-grav:before{content:""}.fa-etsy:before{content:""}.fa-imdb:before{content:""}.fa-ravelry:before{content:""}.fa-eercast:before{content:""}.fa-microchip:before{content:""}.fa-snowflake-o:before{content:""}.fa-superpowers:before{content:""}.fa-wpexplorer:before{content:""}.fa-meetup:before{content:""}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.fa,.wy-menu-vertical li span.toctree-expand,.wy-menu-vertical li.on a span.toctree-expand,.wy-menu-vertical li.current>a span.toctree-expand,.rst-content .admonition-title,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content dl dt .headerlink,.rst-content p.caption .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.rst-content code.download span:first-child,.icon,.wy-dropdown .caret,.wy-inline-validate.wy-inline-validate-success .wy-input-context,.wy-inline-validate.wy-inline-validate-danger .wy-input-context,.wy-inline-validate.wy-inline-validate-warning .wy-input-context,.wy-inline-validate.wy-inline-validate-info .wy-input-context{font-family:inherit}.fa:before,.wy-menu-vertical li span.toctree-expand:before,.wy-menu-vertical li.on a span.toctree-expand:before,.wy-menu-vertical li.current>a span.toctree-expand:before,.rst-content .admonition-title:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content dl dt .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.rst-content code.download span:first-child:before,.icon:before,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before{font-family:"FontAwesome";display:inline-block;font-style:normal;font-weight:normal;line-height:1;text-decoration:inherit}a .fa,a .wy-menu-vertical li span.toctree-expand,.wy-menu-vertical li a span.toctree-expand,.wy-menu-vertical li.on a span.toctree-expand,.wy-menu-vertical li.current>a span.toctree-expand,a .rst-content .admonition-title,.rst-content a .admonition-title,a .rst-content h1 .headerlink,.rst-content h1 a .headerlink,a .rst-content h2 .headerlink,.rst-content h2 a .headerlink,a .rst-content h3 .headerlink,.rst-content h3 a .headerlink,a .rst-content h4 .headerlink,.rst-content h4 a .headerlink,a .rst-content h5 .headerlink,.rst-content h5 a .headerlink,a .rst-content h6 .headerlink,.rst-content h6 a .headerlink,a .rst-content dl dt .headerlink,.rst-content dl dt a .headerlink,a .rst-content p.caption .headerlink,.rst-content p.caption a .headerlink,a .rst-content table>caption .headerlink,.rst-content table>caption a .headerlink,a .rst-content tt.download span:first-child,.rst-content tt.download a span:first-child,a .rst-content code.download span:first-child,.rst-content code.download a span:first-child,a .icon{display:inline-block;text-decoration:inherit}.btn .fa,.btn .wy-menu-vertical li span.toctree-expand,.wy-menu-vertical li .btn span.toctree-expand,.btn .wy-menu-vertical li.on a span.toctree-expand,.wy-menu-vertical li.on a .btn span.toctree-expand,.btn .wy-menu-vertical li.current>a span.toctree-expand,.wy-menu-vertical li.current>a .btn span.toctree-expand,.btn .rst-content .admonition-title,.rst-content .btn .admonition-title,.btn .rst-content h1 .headerlink,.rst-content h1 .btn .headerlink,.btn .rst-content h2 .headerlink,.rst-content h2 .btn .headerlink,.btn .rst-content h3 .headerlink,.rst-content h3 .btn .headerlink,.btn .rst-content h4 .headerlink,.rst-content h4 .btn .headerlink,.btn .rst-content h5 .headerlink,.rst-content h5 .btn .headerlink,.btn .rst-content h6 .headerlink,.rst-content h6 .btn .headerlink,.btn .rst-content dl dt .headerlink,.rst-content dl dt .btn .headerlink,.btn .rst-content p.caption .headerlink,.rst-content p.caption .btn .headerlink,.btn .rst-content table>caption .headerlink,.rst-content table>caption .btn .headerlink,.btn .rst-content tt.download span:first-child,.rst-content tt.download .btn span:first-child,.btn .rst-content code.download span:first-child,.rst-content code.download .btn span:first-child,.btn .icon,.nav .fa,.nav .wy-menu-vertical li span.toctree-expand,.wy-menu-vertical li .nav span.toctree-expand,.nav .wy-menu-vertical li.on a span.toctree-expand,.wy-menu-vertical li.on a .nav span.toctree-expand,.nav .wy-menu-vertical li.current>a span.toctree-expand,.wy-menu-vertical li.current>a .nav span.toctree-expand,.nav .rst-content .admonition-title,.rst-content .nav .admonition-title,.nav .rst-content h1 .headerlink,.rst-content h1 .nav .headerlink,.nav .rst-content h2 .headerlink,.rst-content h2 .nav .headerlink,.nav .rst-content h3 .headerlink,.rst-content h3 .nav .headerlink,.nav .rst-content h4 .headerlink,.rst-content h4 .nav .headerlink,.nav .rst-content h5 .headerlink,.rst-content h5 .nav .headerlink,.nav .rst-content h6 .headerlink,.rst-content h6 .nav .headerlink,.nav .rst-content dl dt .headerlink,.rst-content dl dt .nav .headerlink,.nav .rst-content p.caption .headerlink,.rst-content p.caption .nav .headerlink,.nav .rst-content table>caption .headerlink,.rst-content table>caption .nav .headerlink,.nav .rst-content tt.download span:first-child,.rst-content tt.download .nav span:first-child,.nav .rst-content code.download span:first-child,.rst-content code.download .nav span:first-child,.nav .icon{display:inline}.btn .fa.fa-large,.btn .wy-menu-vertical li span.fa-large.toctree-expand,.wy-menu-vertical li .btn span.fa-large.toctree-expand,.btn .rst-content .fa-large.admonition-title,.rst-content .btn .fa-large.admonition-title,.btn .rst-content h1 .fa-large.headerlink,.rst-content h1 .btn .fa-large.headerlink,.btn .rst-content h2 .fa-large.headerlink,.rst-content h2 .btn .fa-large.headerlink,.btn .rst-content h3 .fa-large.headerlink,.rst-content h3 .btn .fa-large.headerlink,.btn .rst-content h4 .fa-large.headerlink,.rst-content h4 .btn .fa-large.headerlink,.btn .rst-content h5 .fa-large.headerlink,.rst-content h5 .btn .fa-large.headerlink,.btn .rst-content h6 .fa-large.headerlink,.rst-content h6 .btn .fa-large.headerlink,.btn .rst-content dl dt .fa-large.headerlink,.rst-content dl dt .btn .fa-large.headerlink,.btn .rst-content p.caption .fa-large.headerlink,.rst-content p.caption .btn .fa-large.headerlink,.btn .rst-content table>caption .fa-large.headerlink,.rst-content table>caption .btn .fa-large.headerlink,.btn .rst-content tt.download span.fa-large:first-child,.rst-content tt.download .btn span.fa-large:first-child,.btn .rst-content code.download span.fa-large:first-child,.rst-content code.download .btn span.fa-large:first-child,.btn .fa-large.icon,.nav .fa.fa-large,.nav .wy-menu-vertical li span.fa-large.toctree-expand,.wy-menu-vertical li .nav span.fa-large.toctree-expand,.nav .rst-content .fa-large.admonition-title,.rst-content .nav .fa-large.admonition-title,.nav .rst-content h1 .fa-large.headerlink,.rst-content h1 .nav .fa-large.headerlink,.nav .rst-content h2 .fa-large.headerlink,.rst-content h2 .nav .fa-large.headerlink,.nav .rst-content h3 .fa-large.headerlink,.rst-content h3 .nav .fa-large.headerlink,.nav .rst-content h4 .fa-large.headerlink,.rst-content h4 .nav .fa-large.headerlink,.nav .rst-content h5 .fa-large.headerlink,.rst-content h5 .nav .fa-large.headerlink,.nav .rst-content h6 .fa-large.headerlink,.rst-content h6 .nav .fa-large.headerlink,.nav .rst-content dl dt .fa-large.headerlink,.rst-content dl dt .nav .fa-large.headerlink,.nav .rst-content p.caption .fa-large.headerlink,.rst-content p.caption .nav .fa-large.headerlink,.nav .rst-content table>caption .fa-large.headerlink,.rst-content table>caption .nav .fa-large.headerlink,.nav .rst-content tt.download span.fa-large:first-child,.rst-content tt.download .nav span.fa-large:first-child,.nav .rst-content code.download span.fa-large:first-child,.rst-content code.download .nav span.fa-large:first-child,.nav .fa-large.icon{line-height:.9em}.btn .fa.fa-spin,.btn .wy-menu-vertical li span.fa-spin.toctree-expand,.wy-menu-vertical li .btn span.fa-spin.toctree-expand,.btn .rst-content .fa-spin.admonition-title,.rst-content .btn .fa-spin.admonition-title,.btn .rst-content h1 .fa-spin.headerlink,.rst-content h1 .btn .fa-spin.headerlink,.btn .rst-content h2 .fa-spin.headerlink,.rst-content h2 .btn .fa-spin.headerlink,.btn .rst-content h3 .fa-spin.headerlink,.rst-content h3 .btn .fa-spin.headerlink,.btn .rst-content h4 .fa-spin.headerlink,.rst-content h4 .btn .fa-spin.headerlink,.btn .rst-content h5 .fa-spin.headerlink,.rst-content h5 .btn .fa-spin.headerlink,.btn .rst-content h6 .fa-spin.headerlink,.rst-content h6 .btn .fa-spin.headerlink,.btn .rst-content dl dt .fa-spin.headerlink,.rst-content dl dt .btn .fa-spin.headerlink,.btn .rst-content p.caption .fa-spin.headerlink,.rst-content p.caption .btn .fa-spin.headerlink,.btn .rst-content table>caption .fa-spin.headerlink,.rst-content table>caption .btn .fa-spin.headerlink,.btn .rst-content tt.download span.fa-spin:first-child,.rst-content tt.download .btn span.fa-spin:first-child,.btn .rst-content code.download span.fa-spin:first-child,.rst-content code.download .btn span.fa-spin:first-child,.btn .fa-spin.icon,.nav .fa.fa-spin,.nav .wy-menu-vertical li span.fa-spin.toctree-expand,.wy-menu-vertical li .nav span.fa-spin.toctree-expand,.nav .rst-content .fa-spin.admonition-title,.rst-content .nav .fa-spin.admonition-title,.nav .rst-content h1 .fa-spin.headerlink,.rst-content h1 .nav .fa-spin.headerlink,.nav .rst-content h2 .fa-spin.headerlink,.rst-content h2 .nav .fa-spin.headerlink,.nav .rst-content h3 .fa-spin.headerlink,.rst-content h3 .nav .fa-spin.headerlink,.nav .rst-content h4 .fa-spin.headerlink,.rst-content h4 .nav .fa-spin.headerlink,.nav .rst-content h5 .fa-spin.headerlink,.rst-content h5 .nav .fa-spin.headerlink,.nav .rst-content h6 .fa-spin.headerlink,.rst-content h6 .nav .fa-spin.headerlink,.nav .rst-content dl dt .fa-spin.headerlink,.rst-content dl dt .nav .fa-spin.headerlink,.nav .rst-content p.caption .fa-spin.headerlink,.rst-content p.caption .nav .fa-spin.headerlink,.nav .rst-content table>caption .fa-spin.headerlink,.rst-content table>caption .nav .fa-spin.headerlink,.nav .rst-content tt.download span.fa-spin:first-child,.rst-content tt.download .nav span.fa-spin:first-child,.nav .rst-content code.download span.fa-spin:first-child,.rst-content code.download .nav span.fa-spin:first-child,.nav .fa-spin.icon{display:inline-block}.btn.fa:before,.wy-menu-vertical li span.btn.toctree-expand:before,.rst-content .btn.admonition-title:before,.rst-content h1 .btn.headerlink:before,.rst-content h2 .btn.headerlink:before,.rst-content h3 .btn.headerlink:before,.rst-content h4 .btn.headerlink:before,.rst-content h5 .btn.headerlink:before,.rst-content h6 .btn.headerlink:before,.rst-content dl dt .btn.headerlink:before,.rst-content p.caption .btn.headerlink:before,.rst-content table>caption .btn.headerlink:before,.rst-content tt.download span.btn:first-child:before,.rst-content code.download span.btn:first-child:before,.btn.icon:before{opacity:.5;-webkit-transition:opacity .05s ease-in;-moz-transition:opacity .05s ease-in;transition:opacity .05s ease-in}.btn.fa:hover:before,.wy-menu-vertical li span.btn.toctree-expand:hover:before,.rst-content .btn.admonition-title:hover:before,.rst-content h1 .btn.headerlink:hover:before,.rst-content h2 .btn.headerlink:hover:before,.rst-content h3 .btn.headerlink:hover:before,.rst-content h4 .btn.headerlink:hover:before,.rst-content h5 .btn.headerlink:hover:before,.rst-content h6 .btn.headerlink:hover:before,.rst-content dl dt .btn.headerlink:hover:before,.rst-content p.caption .btn.headerlink:hover:before,.rst-content table>caption .btn.headerlink:hover:before,.rst-content tt.download span.btn:first-child:hover:before,.rst-content code.download span.btn:first-child:hover:before,.btn.icon:hover:before{opacity:1}.btn-mini .fa:before,.btn-mini .wy-menu-vertical li span.toctree-expand:before,.wy-menu-vertical li .btn-mini span.toctree-expand:before,.btn-mini .rst-content .admonition-title:before,.rst-content .btn-mini .admonition-title:before,.btn-mini .rst-content h1 .headerlink:before,.rst-content h1 .btn-mini .headerlink:before,.btn-mini .rst-content h2 .headerlink:before,.rst-content h2 .btn-mini .headerlink:before,.btn-mini .rst-content h3 .headerlink:before,.rst-content h3 .btn-mini .headerlink:before,.btn-mini .rst-content h4 .headerlink:before,.rst-content h4 .btn-mini .headerlink:before,.btn-mini .rst-content h5 .headerlink:before,.rst-content h5 .btn-mini .headerlink:before,.btn-mini .rst-content h6 .headerlink:before,.rst-content h6 .btn-mini .headerlink:before,.btn-mini .rst-content dl dt .headerlink:before,.rst-content dl dt .btn-mini .headerlink:before,.btn-mini .rst-content p.caption .headerlink:before,.rst-content p.caption .btn-mini .headerlink:before,.btn-mini .rst-content table>caption .headerlink:before,.rst-content table>caption .btn-mini .headerlink:before,.btn-mini .rst-content tt.download span:first-child:before,.rst-content tt.download .btn-mini span:first-child:before,.btn-mini .rst-content code.download span:first-child:before,.rst-content code.download .btn-mini span:first-child:before,.btn-mini .icon:before{font-size:14px;vertical-align:-15%}.wy-alert,.rst-content .note,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .tip,.rst-content .warning,.rst-content .seealso,.rst-content .admonition-todo,.rst-content .admonition{padding:12px;line-height:24px;margin-bottom:24px;background:#e7f2fa}.wy-alert-title,.rst-content .admonition-title{color:#fff;font-weight:bold;display:block;color:#fff;background:#6ab0de;margin:-12px;padding:6px 12px;margin-bottom:12px}.wy-alert.wy-alert-danger,.rst-content .wy-alert-danger.note,.rst-content .wy-alert-danger.attention,.rst-content .wy-alert-danger.caution,.rst-content .danger,.rst-content .error,.rst-content .wy-alert-danger.hint,.rst-content .wy-alert-danger.important,.rst-content .wy-alert-danger.tip,.rst-content .wy-alert-danger.warning,.rst-content .wy-alert-danger.seealso,.rst-content .wy-alert-danger.admonition-todo,.rst-content .wy-alert-danger.admonition{background:#fdf3f2}.wy-alert.wy-alert-danger .wy-alert-title,.rst-content .wy-alert-danger.note .wy-alert-title,.rst-content .wy-alert-danger.attention .wy-alert-title,.rst-content .wy-alert-danger.caution .wy-alert-title,.rst-content .danger .wy-alert-title,.rst-content .error .wy-alert-title,.rst-content .wy-alert-danger.hint .wy-alert-title,.rst-content .wy-alert-danger.important .wy-alert-title,.rst-content .wy-alert-danger.tip .wy-alert-title,.rst-content .wy-alert-danger.warning .wy-alert-title,.rst-content .wy-alert-danger.seealso .wy-alert-title,.rst-content .wy-alert-danger.admonition-todo .wy-alert-title,.rst-content .wy-alert-danger.admonition .wy-alert-title,.wy-alert.wy-alert-danger .rst-content .admonition-title,.rst-content .wy-alert.wy-alert-danger .admonition-title,.rst-content .wy-alert-danger.note .admonition-title,.rst-content .wy-alert-danger.attention .admonition-title,.rst-content .wy-alert-danger.caution .admonition-title,.rst-content .danger .admonition-title,.rst-content .error .admonition-title,.rst-content .wy-alert-danger.hint .admonition-title,.rst-content .wy-alert-danger.important .admonition-title,.rst-content .wy-alert-danger.tip .admonition-title,.rst-content .wy-alert-danger.warning .admonition-title,.rst-content .wy-alert-danger.seealso .admonition-title,.rst-content .wy-alert-danger.admonition-todo .admonition-title,.rst-content .wy-alert-danger.admonition .admonition-title{background:#f29f97}.wy-alert.wy-alert-warning,.rst-content .wy-alert-warning.note,.rst-content .attention,.rst-content .caution,.rst-content .wy-alert-warning.danger,.rst-content .wy-alert-warning.error,.rst-content .wy-alert-warning.hint,.rst-content .wy-alert-warning.important,.rst-content .wy-alert-warning.tip,.rst-content .warning,.rst-content .wy-alert-warning.seealso,.rst-content .admonition-todo,.rst-content .wy-alert-warning.admonition{background:#ffedcc}.wy-alert.wy-alert-warning .wy-alert-title,.rst-content .wy-alert-warning.note .wy-alert-title,.rst-content .attention .wy-alert-title,.rst-content .caution .wy-alert-title,.rst-content .wy-alert-warning.danger .wy-alert-title,.rst-content .wy-alert-warning.error .wy-alert-title,.rst-content .wy-alert-warning.hint .wy-alert-title,.rst-content .wy-alert-warning.important .wy-alert-title,.rst-content .wy-alert-warning.tip .wy-alert-title,.rst-content .warning .wy-alert-title,.rst-content .wy-alert-warning.seealso .wy-alert-title,.rst-content .admonition-todo .wy-alert-title,.rst-content .wy-alert-warning.admonition .wy-alert-title,.wy-alert.wy-alert-warning .rst-content .admonition-title,.rst-content .wy-alert.wy-alert-warning .admonition-title,.rst-content .wy-alert-warning.note .admonition-title,.rst-content .attention .admonition-title,.rst-content .caution .admonition-title,.rst-content .wy-alert-warning.danger .admonition-title,.rst-content .wy-alert-warning.error .admonition-title,.rst-content .wy-alert-warning.hint .admonition-title,.rst-content .wy-alert-warning.important .admonition-title,.rst-content .wy-alert-warning.tip .admonition-title,.rst-content .warning .admonition-title,.rst-content .wy-alert-warning.seealso .admonition-title,.rst-content .admonition-todo .admonition-title,.rst-content .wy-alert-warning.admonition .admonition-title{background:#f0b37e}.wy-alert.wy-alert-info,.rst-content .note,.rst-content .wy-alert-info.attention,.rst-content .wy-alert-info.caution,.rst-content .wy-alert-info.danger,.rst-content .wy-alert-info.error,.rst-content .wy-alert-info.hint,.rst-content .wy-alert-info.important,.rst-content .wy-alert-info.tip,.rst-content .wy-alert-info.warning,.rst-content .seealso,.rst-content .wy-alert-info.admonition-todo,.rst-content .wy-alert-info.admonition{background:#e7f2fa}.wy-alert.wy-alert-info .wy-alert-title,.rst-content .note .wy-alert-title,.rst-content .wy-alert-info.attention .wy-alert-title,.rst-content .wy-alert-info.caution .wy-alert-title,.rst-content .wy-alert-info.danger .wy-alert-title,.rst-content .wy-alert-info.error .wy-alert-title,.rst-content .wy-alert-info.hint .wy-alert-title,.rst-content .wy-alert-info.important .wy-alert-title,.rst-content .wy-alert-info.tip .wy-alert-title,.rst-content .wy-alert-info.warning .wy-alert-title,.rst-content .seealso .wy-alert-title,.rst-content .wy-alert-info.admonition-todo .wy-alert-title,.rst-content .wy-alert-info.admonition .wy-alert-title,.wy-alert.wy-alert-info .rst-content .admonition-title,.rst-content .wy-alert.wy-alert-info .admonition-title,.rst-content .note .admonition-title,.rst-content .wy-alert-info.attention .admonition-title,.rst-content .wy-alert-info.caution .admonition-title,.rst-content .wy-alert-info.danger .admonition-title,.rst-content .wy-alert-info.error .admonition-title,.rst-content .wy-alert-info.hint .admonition-title,.rst-content .wy-alert-info.important .admonition-title,.rst-content .wy-alert-info.tip .admonition-title,.rst-content .wy-alert-info.warning .admonition-title,.rst-content .seealso .admonition-title,.rst-content .wy-alert-info.admonition-todo .admonition-title,.rst-content .wy-alert-info.admonition .admonition-title{background:#6ab0de}.wy-alert.wy-alert-success,.rst-content .wy-alert-success.note,.rst-content .wy-alert-success.attention,.rst-content .wy-alert-success.caution,.rst-content .wy-alert-success.danger,.rst-content .wy-alert-success.error,.rst-content .hint,.rst-content .important,.rst-content .tip,.rst-content .wy-alert-success.warning,.rst-content .wy-alert-success.seealso,.rst-content .wy-alert-success.admonition-todo,.rst-content .wy-alert-success.admonition{background:#dbfaf4}.wy-alert.wy-alert-success .wy-alert-title,.rst-content .wy-alert-success.note .wy-alert-title,.rst-content .wy-alert-success.attention .wy-alert-title,.rst-content .wy-alert-success.caution .wy-alert-title,.rst-content .wy-alert-success.danger .wy-alert-title,.rst-content .wy-alert-success.error .wy-alert-title,.rst-content .hint .wy-alert-title,.rst-content .important .wy-alert-title,.rst-content .tip .wy-alert-title,.rst-content .wy-alert-success.warning .wy-alert-title,.rst-content .wy-alert-success.seealso .wy-alert-title,.rst-content .wy-alert-success.admonition-todo .wy-alert-title,.rst-content .wy-alert-success.admonition .wy-alert-title,.wy-alert.wy-alert-success .rst-content .admonition-title,.rst-content .wy-alert.wy-alert-success .admonition-title,.rst-content .wy-alert-success.note .admonition-title,.rst-content .wy-alert-success.attention .admonition-title,.rst-content .wy-alert-success.caution .admonition-title,.rst-content .wy-alert-success.danger .admonition-title,.rst-content .wy-alert-success.error .admonition-title,.rst-content .hint .admonition-title,.rst-content .important .admonition-title,.rst-content .tip .admonition-title,.rst-content .wy-alert-success.warning .admonition-title,.rst-content .wy-alert-success.seealso .admonition-title,.rst-content .wy-alert-success.admonition-todo .admonition-title,.rst-content .wy-alert-success.admonition .admonition-title{background:#1abc9c}.wy-alert.wy-alert-neutral,.rst-content .wy-alert-neutral.note,.rst-content .wy-alert-neutral.attention,.rst-content .wy-alert-neutral.caution,.rst-content .wy-alert-neutral.danger,.rst-content .wy-alert-neutral.error,.rst-content .wy-alert-neutral.hint,.rst-content .wy-alert-neutral.important,.rst-content .wy-alert-neutral.tip,.rst-content .wy-alert-neutral.warning,.rst-content .wy-alert-neutral.seealso,.rst-content .wy-alert-neutral.admonition-todo,.rst-content .wy-alert-neutral.admonition{background:#f3f6f6}.wy-alert.wy-alert-neutral .wy-alert-title,.rst-content .wy-alert-neutral.note .wy-alert-title,.rst-content .wy-alert-neutral.attention .wy-alert-title,.rst-content .wy-alert-neutral.caution .wy-alert-title,.rst-content .wy-alert-neutral.danger .wy-alert-title,.rst-content .wy-alert-neutral.error .wy-alert-title,.rst-content .wy-alert-neutral.hint .wy-alert-title,.rst-content .wy-alert-neutral.important .wy-alert-title,.rst-content .wy-alert-neutral.tip .wy-alert-title,.rst-content .wy-alert-neutral.warning .wy-alert-title,.rst-content .wy-alert-neutral.seealso .wy-alert-title,.rst-content .wy-alert-neutral.admonition-todo .wy-alert-title,.rst-content .wy-alert-neutral.admonition .wy-alert-title,.wy-alert.wy-alert-neutral .rst-content .admonition-title,.rst-content .wy-alert.wy-alert-neutral .admonition-title,.rst-content .wy-alert-neutral.note .admonition-title,.rst-content .wy-alert-neutral.attention .admonition-title,.rst-content .wy-alert-neutral.caution .admonition-title,.rst-content .wy-alert-neutral.danger .admonition-title,.rst-content .wy-alert-neutral.error .admonition-title,.rst-content .wy-alert-neutral.hint .admonition-title,.rst-content .wy-alert-neutral.important .admonition-title,.rst-content .wy-alert-neutral.tip .admonition-title,.rst-content .wy-alert-neutral.warning .admonition-title,.rst-content .wy-alert-neutral.seealso .admonition-title,.rst-content .wy-alert-neutral.admonition-todo .admonition-title,.rst-content .wy-alert-neutral.admonition .admonition-title{color:#404040;background:#e1e4e5}.wy-alert.wy-alert-neutral a,.rst-content .wy-alert-neutral.note a,.rst-content .wy-alert-neutral.attention a,.rst-content .wy-alert-neutral.caution a,.rst-content .wy-alert-neutral.danger a,.rst-content .wy-alert-neutral.error a,.rst-content .wy-alert-neutral.hint a,.rst-content .wy-alert-neutral.important a,.rst-content .wy-alert-neutral.tip a,.rst-content .wy-alert-neutral.warning a,.rst-content .wy-alert-neutral.seealso a,.rst-content .wy-alert-neutral.admonition-todo a,.rst-content .wy-alert-neutral.admonition a{color:#2980B9}.wy-alert p:last-child,.rst-content .note p:last-child,.rst-content .attention p:last-child,.rst-content .caution p:last-child,.rst-content .danger p:last-child,.rst-content .error p:last-child,.rst-content .hint p:last-child,.rst-content .important p:last-child,.rst-content .tip p:last-child,.rst-content .warning p:last-child,.rst-content .seealso p:last-child,.rst-content .admonition-todo p:last-child,.rst-content .admonition p:last-child{margin-bottom:0}.wy-tray-container{position:fixed;bottom:0px;left:0;z-index:600}.wy-tray-container li{display:block;width:300px;background:transparent;color:#fff;text-align:center;box-shadow:0 5px 5px 0 rgba(0,0,0,0.1);padding:0 24px;min-width:20%;opacity:0;height:0;line-height:56px;overflow:hidden;-webkit-transition:all .3s ease-in;-moz-transition:all .3s ease-in;transition:all .3s ease-in}.wy-tray-container li.wy-tray-item-success{background:#27AE60}.wy-tray-container li.wy-tray-item-info{background:#2980B9}.wy-tray-container li.wy-tray-item-warning{background:#E67E22}.wy-tray-container li.wy-tray-item-danger{background:#E74C3C}.wy-tray-container li.on{opacity:1;height:56px}@media screen and (max-width: 768px){.wy-tray-container{bottom:auto;top:0;width:100%}.wy-tray-container li{width:100%}}button{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle;cursor:pointer;line-height:normal;-webkit-appearance:button;*overflow:visible}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}button[disabled]{cursor:default}.btn{display:inline-block;border-radius:2px;line-height:normal;white-space:nowrap;text-align:center;cursor:pointer;font-size:100%;padding:6px 12px 8px 12px;color:#fff;border:1px solid rgba(0,0,0,0.1);background-color:#27AE60;text-decoration:none;font-weight:normal;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;box-shadow:0px 1px 2px -1px rgba(255,255,255,0.5) inset,0px -2px 0px 0px rgba(0,0,0,0.1) inset;outline-none:false;vertical-align:middle;*display:inline;zoom:1;-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:all .1s linear;-moz-transition:all .1s linear;transition:all .1s linear}.btn-hover{background:#2e8ece;color:#fff}.btn:hover{background:#2cc36b;color:#fff}.btn:focus{background:#2cc36b;outline:0}.btn:active{box-shadow:0px -1px 0px 0px rgba(0,0,0,0.05) inset,0px 2px 0px 0px rgba(0,0,0,0.1) inset;padding:8px 12px 6px 12px}.btn:visited{color:#fff}.btn:disabled{background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);opacity:.4;cursor:not-allowed;box-shadow:none}.btn-disabled{background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);opacity:.4;cursor:not-allowed;box-shadow:none}.btn-disabled:hover,.btn-disabled:focus,.btn-disabled:active{background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);opacity:.4;cursor:not-allowed;box-shadow:none}.btn::-moz-focus-inner{padding:0;border:0}.btn-small{font-size:80%}.btn-info{background-color:#2980B9 !important}.btn-info:hover{background-color:#2e8ece !important}.btn-neutral{background-color:#f3f6f6 !important;color:#404040 !important}.btn-neutral:hover{background-color:#e5ebeb !important;color:#404040}.btn-neutral:visited{color:#404040 !important}.btn-success{background-color:#27AE60 !important}.btn-success:hover{background-color:#295 !important}.btn-danger{background-color:#E74C3C !important}.btn-danger:hover{background-color:#ea6153 !important}.btn-warning{background-color:#E67E22 !important}.btn-warning:hover{background-color:#e98b39 !important}.btn-invert{background-color:#222}.btn-invert:hover{background-color:#2f2f2f !important}.btn-link{background-color:transparent !important;color:#2980B9;box-shadow:none;border-color:transparent !important}.btn-link:hover{background-color:transparent !important;color:#409ad5 !important;box-shadow:none}.btn-link:active{background-color:transparent !important;color:#409ad5 !important;box-shadow:none}.btn-link:visited{color:#9B59B6}.wy-btn-group .btn,.wy-control .btn{vertical-align:middle}.wy-btn-group{margin-bottom:24px;*zoom:1}.wy-btn-group:before,.wy-btn-group:after{display:table;content:""}.wy-btn-group:after{clear:both}.wy-dropdown{position:relative;display:inline-block}.wy-dropdown-active .wy-dropdown-menu{display:block}.wy-dropdown-menu{position:absolute;left:0;display:none;float:left;top:100%;min-width:100%;background:#fcfcfc;z-index:100;border:solid 1px #cfd7dd;box-shadow:0 2px 2px 0 rgba(0,0,0,0.1);padding:12px}.wy-dropdown-menu>dd>a{display:block;clear:both;color:#404040;white-space:nowrap;font-size:90%;padding:0 12px;cursor:pointer}.wy-dropdown-menu>dd>a:hover{background:#2980B9;color:#fff}.wy-dropdown-menu>dd.divider{border-top:solid 1px #cfd7dd;margin:6px 0}.wy-dropdown-menu>dd.search{padding-bottom:12px}.wy-dropdown-menu>dd.search input[type="search"]{width:100%}.wy-dropdown-menu>dd.call-to-action{background:#e3e3e3;text-transform:uppercase;font-weight:500;font-size:80%}.wy-dropdown-menu>dd.call-to-action:hover{background:#e3e3e3}.wy-dropdown-menu>dd.call-to-action .btn{color:#fff}.wy-dropdown.wy-dropdown-up .wy-dropdown-menu{bottom:100%;top:auto;left:auto;right:0}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu{background:#fcfcfc;margin-top:2px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a{padding:6px 12px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a:hover{background:#2980B9;color:#fff}.wy-dropdown.wy-dropdown-left .wy-dropdown-menu{right:0;left:auto;text-align:right}.wy-dropdown-arrow:before{content:" ";border-bottom:5px solid #f5f5f5;border-left:5px solid transparent;border-right:5px solid transparent;position:absolute;display:block;top:-4px;left:50%;margin-left:-3px}.wy-dropdown-arrow.wy-dropdown-arrow-left:before{left:11px}.wy-form-stacked select{display:block}.wy-form-aligned input,.wy-form-aligned textarea,.wy-form-aligned select,.wy-form-aligned .wy-help-inline,.wy-form-aligned label{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-form-aligned .wy-control-group>label{display:inline-block;vertical-align:middle;width:10em;margin:6px 12px 0 0;float:left}.wy-form-aligned .wy-control{float:left}.wy-form-aligned .wy-control label{display:block}.wy-form-aligned .wy-control select{margin-top:6px}fieldset{border:0;margin:0;padding:0}legend{display:block;width:100%;border:0;padding:0;white-space:normal;margin-bottom:24px;font-size:150%;*margin-left:-7px}label{display:block;margin:0 0 .3125em 0;color:#333;font-size:90%}input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}.wy-control-group{margin-bottom:24px;*zoom:1;max-width:68em;margin-left:auto;margin-right:auto;*zoom:1}.wy-control-group:before,.wy-control-group:after{display:table;content:""}.wy-control-group:after{clear:both}.wy-control-group:before,.wy-control-group:after{display:table;content:""}.wy-control-group:after{clear:both}.wy-control-group.wy-control-group-required>label:after{content:" *";color:#E74C3C}.wy-control-group .wy-form-full,.wy-control-group .wy-form-halves,.wy-control-group .wy-form-thirds{padding-bottom:12px}.wy-control-group .wy-form-full select,.wy-control-group .wy-form-halves select,.wy-control-group .wy-form-thirds select{width:100%}.wy-control-group .wy-form-full input[type="text"],.wy-control-group .wy-form-full input[type="password"],.wy-control-group .wy-form-full input[type="email"],.wy-control-group .wy-form-full input[type="url"],.wy-control-group .wy-form-full input[type="date"],.wy-control-group .wy-form-full input[type="month"],.wy-control-group .wy-form-full input[type="time"],.wy-control-group .wy-form-full input[type="datetime"],.wy-control-group .wy-form-full input[type="datetime-local"],.wy-control-group .wy-form-full input[type="week"],.wy-control-group .wy-form-full input[type="number"],.wy-control-group .wy-form-full input[type="search"],.wy-control-group .wy-form-full input[type="tel"],.wy-control-group .wy-form-full input[type="color"],.wy-control-group .wy-form-halves input[type="text"],.wy-control-group .wy-form-halves input[type="password"],.wy-control-group .wy-form-halves input[type="email"],.wy-control-group .wy-form-halves input[type="url"],.wy-control-group .wy-form-halves input[type="date"],.wy-control-group .wy-form-halves input[type="month"],.wy-control-group .wy-form-halves input[type="time"],.wy-control-group .wy-form-halves input[type="datetime"],.wy-control-group .wy-form-halves input[type="datetime-local"],.wy-control-group .wy-form-halves input[type="week"],.wy-control-group .wy-form-halves input[type="number"],.wy-control-group .wy-form-halves input[type="search"],.wy-control-group .wy-form-halves input[type="tel"],.wy-control-group .wy-form-halves input[type="color"],.wy-control-group .wy-form-thirds input[type="text"],.wy-control-group .wy-form-thirds input[type="password"],.wy-control-group .wy-form-thirds input[type="email"],.wy-control-group .wy-form-thirds input[type="url"],.wy-control-group .wy-form-thirds input[type="date"],.wy-control-group .wy-form-thirds input[type="month"],.wy-control-group .wy-form-thirds input[type="time"],.wy-control-group .wy-form-thirds input[type="datetime"],.wy-control-group .wy-form-thirds input[type="datetime-local"],.wy-control-group .wy-form-thirds input[type="week"],.wy-control-group .wy-form-thirds input[type="number"],.wy-control-group .wy-form-thirds input[type="search"],.wy-control-group .wy-form-thirds input[type="tel"],.wy-control-group .wy-form-thirds input[type="color"]{width:100%}.wy-control-group .wy-form-full{float:left;display:block;margin-right:2.3576515979%;width:100%;margin-right:0}.wy-control-group .wy-form-full:last-child{margin-right:0}.wy-control-group .wy-form-halves{float:left;display:block;margin-right:2.3576515979%;width:48.821174201%}.wy-control-group .wy-form-halves:last-child{margin-right:0}.wy-control-group .wy-form-halves:nth-of-type(2n){margin-right:0}.wy-control-group .wy-form-halves:nth-of-type(2n+1){clear:left}.wy-control-group .wy-form-thirds{float:left;display:block;margin-right:2.3576515979%;width:31.7615656014%}.wy-control-group .wy-form-thirds:last-child{margin-right:0}.wy-control-group .wy-form-thirds:nth-of-type(3n){margin-right:0}.wy-control-group .wy-form-thirds:nth-of-type(3n+1){clear:left}.wy-control-group.wy-control-group-no-input .wy-control{margin:6px 0 0 0;font-size:90%}.wy-control-no-input{display:inline-block;margin:6px 0 0 0;font-size:90%}.wy-control-group.fluid-input input[type="text"],.wy-control-group.fluid-input input[type="password"],.wy-control-group.fluid-input input[type="email"],.wy-control-group.fluid-input input[type="url"],.wy-control-group.fluid-input input[type="date"],.wy-control-group.fluid-input input[type="month"],.wy-control-group.fluid-input input[type="time"],.wy-control-group.fluid-input input[type="datetime"],.wy-control-group.fluid-input input[type="datetime-local"],.wy-control-group.fluid-input input[type="week"],.wy-control-group.fluid-input input[type="number"],.wy-control-group.fluid-input input[type="search"],.wy-control-group.fluid-input input[type="tel"],.wy-control-group.fluid-input input[type="color"]{width:100%}.wy-form-message-inline{display:inline-block;padding-left:.3em;color:#666;vertical-align:middle;font-size:90%}.wy-form-message{display:block;color:#999;font-size:70%;margin-top:.3125em;font-style:italic}.wy-form-message p{font-size:inherit;font-style:italic;margin-bottom:6px}.wy-form-message p:last-child{margin-bottom:0}input{line-height:normal}input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;*overflow:visible}input[type="text"],input[type="password"],input[type="email"],input[type="url"],input[type="date"],input[type="month"],input[type="time"],input[type="datetime"],input[type="datetime-local"],input[type="week"],input[type="number"],input[type="search"],input[type="tel"],input[type="color"]{-webkit-appearance:none;padding:6px;display:inline-block;border:1px solid #ccc;font-size:80%;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;box-shadow:inset 0 1px 3px #ddd;border-radius:0;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}input[type="datetime-local"]{padding:.34375em .625em}input[disabled]{cursor:default}input[type="checkbox"],input[type="radio"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0;margin-right:.3125em;*height:13px;*width:13px}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}input[type="text"]:focus,input[type="password"]:focus,input[type="email"]:focus,input[type="url"]:focus,input[type="date"]:focus,input[type="month"]:focus,input[type="time"]:focus,input[type="datetime"]:focus,input[type="datetime-local"]:focus,input[type="week"]:focus,input[type="number"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="color"]:focus{outline:0;outline:thin dotted \9;border-color:#333}input.no-focus:focus{border-color:#ccc !important}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:1px auto #129FEA}input[type="text"][disabled],input[type="password"][disabled],input[type="email"][disabled],input[type="url"][disabled],input[type="date"][disabled],input[type="month"][disabled],input[type="time"][disabled],input[type="datetime"][disabled],input[type="datetime-local"][disabled],input[type="week"][disabled],input[type="number"][disabled],input[type="search"][disabled],input[type="tel"][disabled],input[type="color"][disabled]{cursor:not-allowed;background-color:#fafafa}input:focus:invalid,textarea:focus:invalid,select:focus:invalid{color:#E74C3C;border:1px solid #E74C3C}input:focus:invalid:focus,textarea:focus:invalid:focus,select:focus:invalid:focus{border-color:#E74C3C}input[type="file"]:focus:invalid:focus,input[type="radio"]:focus:invalid:focus,input[type="checkbox"]:focus:invalid:focus{outline-color:#E74C3C}input.wy-input-large{padding:12px;font-size:100%}textarea{overflow:auto;vertical-align:top;width:100%;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif}select,textarea{padding:.5em .625em;display:inline-block;border:1px solid #ccc;font-size:80%;box-shadow:inset 0 1px 3px #ddd;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}select{border:1px solid #ccc;background-color:#fff}select[multiple]{height:auto}select:focus,textarea:focus{outline:0}select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#fafafa}input[type="radio"][disabled],input[type="checkbox"][disabled]{cursor:not-allowed}.wy-checkbox,.wy-radio{margin:6px 0;color:#404040;display:block}.wy-checkbox input,.wy-radio input{vertical-align:baseline}.wy-form-message-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-input-prefix,.wy-input-suffix{white-space:nowrap;padding:6px}.wy-input-prefix .wy-input-context,.wy-input-suffix .wy-input-context{line-height:27px;padding:0 8px;display:inline-block;font-size:80%;background-color:#f3f6f6;border:solid 1px #ccc;color:#999}.wy-input-suffix .wy-input-context{border-left:0}.wy-input-prefix .wy-input-context{border-right:0}.wy-switch{position:relative;display:block;height:24px;margin-top:12px;cursor:pointer}.wy-switch:before{position:absolute;content:"";display:block;left:0;top:0;width:36px;height:12px;border-radius:4px;background:#ccc;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.wy-switch:after{position:absolute;content:"";display:block;width:18px;height:18px;border-radius:4px;background:#999;left:-3px;top:-3px;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.wy-switch span{position:absolute;left:48px;display:block;font-size:12px;color:#ccc;line-height:1}.wy-switch.active:before{background:#1e8449}.wy-switch.active:after{left:24px;background:#27AE60}.wy-switch.disabled{cursor:not-allowed;opacity:.8}.wy-control-group.wy-control-group-error .wy-form-message,.wy-control-group.wy-control-group-error>label{color:#E74C3C}.wy-control-group.wy-control-group-error input[type="text"],.wy-control-group.wy-control-group-error input[type="password"],.wy-control-group.wy-control-group-error input[type="email"],.wy-control-group.wy-control-group-error input[type="url"],.wy-control-group.wy-control-group-error input[type="date"],.wy-control-group.wy-control-group-error input[type="month"],.wy-control-group.wy-control-group-error input[type="time"],.wy-control-group.wy-control-group-error input[type="datetime"],.wy-control-group.wy-control-group-error input[type="datetime-local"],.wy-control-group.wy-control-group-error input[type="week"],.wy-control-group.wy-control-group-error input[type="number"],.wy-control-group.wy-control-group-error input[type="search"],.wy-control-group.wy-control-group-error input[type="tel"],.wy-control-group.wy-control-group-error input[type="color"]{border:solid 1px #E74C3C}.wy-control-group.wy-control-group-error textarea{border:solid 1px #E74C3C}.wy-inline-validate{white-space:nowrap}.wy-inline-validate .wy-input-context{padding:.5em .625em;display:inline-block;font-size:80%}.wy-inline-validate.wy-inline-validate-success .wy-input-context{color:#27AE60}.wy-inline-validate.wy-inline-validate-danger .wy-input-context{color:#E74C3C}.wy-inline-validate.wy-inline-validate-warning .wy-input-context{color:#E67E22}.wy-inline-validate.wy-inline-validate-info .wy-input-context{color:#2980B9}.rotate-90{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.rotate-180{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.rotate-270{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.mirror{-webkit-transform:scaleX(-1);-moz-transform:scaleX(-1);-ms-transform:scaleX(-1);-o-transform:scaleX(-1);transform:scaleX(-1)}.mirror.rotate-90{-webkit-transform:scaleX(-1) rotate(90deg);-moz-transform:scaleX(-1) rotate(90deg);-ms-transform:scaleX(-1) rotate(90deg);-o-transform:scaleX(-1) rotate(90deg);transform:scaleX(-1) rotate(90deg)}.mirror.rotate-180{-webkit-transform:scaleX(-1) rotate(180deg);-moz-transform:scaleX(-1) rotate(180deg);-ms-transform:scaleX(-1) rotate(180deg);-o-transform:scaleX(-1) rotate(180deg);transform:scaleX(-1) rotate(180deg)}.mirror.rotate-270{-webkit-transform:scaleX(-1) rotate(270deg);-moz-transform:scaleX(-1) rotate(270deg);-ms-transform:scaleX(-1) rotate(270deg);-o-transform:scaleX(-1) rotate(270deg);transform:scaleX(-1) rotate(270deg)}@media only screen and (max-width: 480px){.wy-form button[type="submit"]{margin:.7em 0 0}.wy-form input[type="text"],.wy-form input[type="password"],.wy-form input[type="email"],.wy-form input[type="url"],.wy-form input[type="date"],.wy-form input[type="month"],.wy-form input[type="time"],.wy-form input[type="datetime"],.wy-form input[type="datetime-local"],.wy-form input[type="week"],.wy-form input[type="number"],.wy-form input[type="search"],.wy-form input[type="tel"],.wy-form input[type="color"]{margin-bottom:.3em;display:block}.wy-form label{margin-bottom:.3em;display:block}.wy-form input[type="password"],.wy-form input[type="email"],.wy-form input[type="url"],.wy-form input[type="date"],.wy-form input[type="month"],.wy-form input[type="time"],.wy-form input[type="datetime"],.wy-form input[type="datetime-local"],.wy-form input[type="week"],.wy-form input[type="number"],.wy-form input[type="search"],.wy-form input[type="tel"],.wy-form input[type="color"]{margin-bottom:0}.wy-form-aligned .wy-control-group label{margin-bottom:.3em;text-align:left;display:block;width:100%}.wy-form-aligned .wy-control{margin:1.5em 0 0 0}.wy-form .wy-help-inline,.wy-form-message-inline,.wy-form-message{display:block;font-size:80%;padding:6px 0}}@media screen and (max-width: 768px){.tablet-hide{display:none}}@media screen and (max-width: 480px){.mobile-hide{display:none}}.float-left{float:left}.float-right{float:right}.full-width{width:100%}.wy-table,.rst-content table.docutils,.rst-content table.field-list{border-collapse:collapse;border-spacing:0;empty-cells:show;margin-bottom:24px}.wy-table caption,.rst-content table.docutils caption,.rst-content table.field-list caption{color:#000;font:italic 85%/1 arial,sans-serif;padding:1em 0;text-align:center}.wy-table td,.rst-content table.docutils td,.rst-content table.field-list td,.wy-table th,.rst-content table.docutils th,.rst-content table.field-list th{font-size:90%;margin:0;overflow:visible;padding:8px 16px}.wy-table td:first-child,.rst-content table.docutils td:first-child,.rst-content table.field-list td:first-child,.wy-table th:first-child,.rst-content table.docutils th:first-child,.rst-content table.field-list th:first-child{border-left-width:0}.wy-table thead,.rst-content table.docutils thead,.rst-content table.field-list thead{color:#000;text-align:left;vertical-align:bottom;white-space:nowrap}.wy-table thead th,.rst-content table.docutils thead th,.rst-content table.field-list thead th{font-weight:bold;border-bottom:solid 2px #e1e4e5}.wy-table td,.rst-content table.docutils td,.rst-content table.field-list td{background-color:transparent;vertical-align:middle}.wy-table td p,.rst-content table.docutils td p,.rst-content table.field-list td p{line-height:18px}.wy-table td p:last-child,.rst-content table.docutils td p:last-child,.rst-content table.field-list td p:last-child{margin-bottom:0}.wy-table .wy-table-cell-min,.rst-content table.docutils .wy-table-cell-min,.rst-content table.field-list .wy-table-cell-min{width:1%;padding-right:0}.wy-table .wy-table-cell-min input[type=checkbox],.rst-content table.docutils .wy-table-cell-min input[type=checkbox],.rst-content table.field-list .wy-table-cell-min input[type=checkbox],.wy-table .wy-table-cell-min input[type=checkbox],.rst-content table.docutils .wy-table-cell-min input[type=checkbox],.rst-content table.field-list .wy-table-cell-min input[type=checkbox]{margin:0}.wy-table-secondary{color:gray;font-size:90%}.wy-table-tertiary{color:gray;font-size:80%}.wy-table-odd td,.wy-table-striped tr:nth-child(2n-1) td,.rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td{background-color:#f3f6f6}.wy-table-backed{background-color:#f3f6f6}.wy-table-bordered-all,.rst-content table.docutils{border:1px solid #e1e4e5}.wy-table-bordered-all td,.rst-content table.docutils td{border-bottom:1px solid #e1e4e5;border-left:1px solid #e1e4e5}.wy-table-bordered-all tbody>tr:last-child td,.rst-content table.docutils tbody>tr:last-child td{border-bottom-width:0}.wy-table-bordered{border:1px solid #e1e4e5}.wy-table-bordered-rows td{border-bottom:1px solid #e1e4e5}.wy-table-bordered-rows tbody>tr:last-child td{border-bottom-width:0}.wy-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.wy-table-horizontal td,.wy-table-horizontal th{border-width:0 0 1px 0;border-bottom:1px solid #e1e4e5}.wy-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.wy-table-responsive{margin-bottom:24px;max-width:100%;overflow:auto}.wy-table-responsive table{margin-bottom:0 !important}.wy-table-responsive table td,.wy-table-responsive table th{white-space:nowrap}a{color:#2980B9;text-decoration:none;cursor:pointer}a:hover{color:#3091d1}a:visited{color:#9B59B6}html{height:100%;overflow-x:hidden}body{font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;font-weight:normal;color:#404040;min-height:100%;overflow-x:hidden;background:#edf0f2}.wy-text-left{text-align:left}.wy-text-center{text-align:center}.wy-text-right{text-align:right}.wy-text-large{font-size:120%}.wy-text-normal{font-size:100%}.wy-text-small,small{font-size:80%}.wy-text-strike{text-decoration:line-through}.wy-text-warning{color:#E67E22 !important}a.wy-text-warning:hover{color:#eb9950 !important}.wy-text-info{color:#2980B9 !important}a.wy-text-info:hover{color:#409ad5 !important}.wy-text-success{color:#27AE60 !important}a.wy-text-success:hover{color:#36d278 !important}.wy-text-danger{color:#E74C3C !important}a.wy-text-danger:hover{color:#ed7669 !important}.wy-text-neutral{color:#404040 !important}a.wy-text-neutral:hover{color:#595959 !important}h1,h2,.rst-content .toctree-wrapper p.caption,h3,h4,h5,h6,legend{margin-top:0;font-weight:700;font-family:"Roboto Slab","ff-tisa-web-pro","Georgia",Arial,sans-serif}p{line-height:24px;margin:0;font-size:16px;margin-bottom:24px}h1{font-size:175%}h2,.rst-content .toctree-wrapper p.caption{font-size:150%}h3{font-size:125%}h4{font-size:115%}h5{font-size:110%}h6{font-size:100%}hr{display:block;height:1px;border:0;border-top:1px solid #e1e4e5;margin:24px 0;padding:0}code,.rst-content tt,.rst-content code{white-space:nowrap;max-width:100%;background:#fff;border:solid 1px #e1e4e5;font-size:75%;padding:0 5px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",Courier,monospace;color:#E74C3C;overflow-x:auto}code.code-large,.rst-content tt.code-large{font-size:90%}.wy-plain-list-disc,.rst-content .section ul,.rst-content .toctree-wrapper ul,article ul{list-style:disc;line-height:24px;margin-bottom:24px}.wy-plain-list-disc li,.rst-content .section ul li,.rst-content .toctree-wrapper ul li,article ul li{list-style:disc;margin-left:24px}.wy-plain-list-disc li p:last-child,.rst-content .section ul li p:last-child,.rst-content .toctree-wrapper ul li p:last-child,article ul li p:last-child{margin-bottom:0}.wy-plain-list-disc li ul,.rst-content .section ul li ul,.rst-content .toctree-wrapper ul li ul,article ul li ul{margin-bottom:0}.wy-plain-list-disc li li,.rst-content .section ul li li,.rst-content .toctree-wrapper ul li li,article ul li li{list-style:circle}.wy-plain-list-disc li li li,.rst-content .section ul li li li,.rst-content .toctree-wrapper ul li li li,article ul li li li{list-style:square}.wy-plain-list-disc li ol li,.rst-content .section ul li ol li,.rst-content .toctree-wrapper ul li ol li,article ul li ol li{list-style:decimal}.wy-plain-list-decimal,.rst-content .section ol,.rst-content ol.arabic,article ol{list-style:decimal;line-height:24px;margin-bottom:24px}.wy-plain-list-decimal li,.rst-content .section ol li,.rst-content ol.arabic li,article ol li{list-style:decimal;margin-left:24px}.wy-plain-list-decimal li p:last-child,.rst-content .section ol li p:last-child,.rst-content ol.arabic li p:last-child,article ol li p:last-child{margin-bottom:0}.wy-plain-list-decimal li ul,.rst-content .section ol li ul,.rst-content ol.arabic li ul,article ol li ul{margin-bottom:0}.wy-plain-list-decimal li ul li,.rst-content .section ol li ul li,.rst-content ol.arabic li ul li,article ol li ul li{list-style:disc}.wy-breadcrumbs{*zoom:1}.wy-breadcrumbs:before,.wy-breadcrumbs:after{display:table;content:""}.wy-breadcrumbs:after{clear:both}.wy-breadcrumbs li{display:inline-block}.wy-breadcrumbs li.wy-breadcrumbs-aside{float:right}.wy-breadcrumbs li a{display:inline-block;padding:5px}.wy-breadcrumbs li a:first-child{padding-left:0}.wy-breadcrumbs li code,.wy-breadcrumbs li .rst-content tt,.rst-content .wy-breadcrumbs li tt{padding:5px;border:none;background:none}.wy-breadcrumbs li code.literal,.wy-breadcrumbs li .rst-content tt.literal,.rst-content .wy-breadcrumbs li tt.literal{color:#404040}.wy-breadcrumbs-extra{margin-bottom:0;color:#b3b3b3;font-size:80%;display:inline-block}@media screen and (max-width: 480px){.wy-breadcrumbs-extra{display:none}.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}@media print{.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}html{font-size:16px}.wy-affix{position:fixed;top:1.618em}.wy-menu a:hover{text-decoration:none}.wy-menu-horiz{*zoom:1}.wy-menu-horiz:before,.wy-menu-horiz:after{display:table;content:""}.wy-menu-horiz:after{clear:both}.wy-menu-horiz ul,.wy-menu-horiz li{display:inline-block}.wy-menu-horiz li:hover{background:rgba(255,255,255,0.1)}.wy-menu-horiz li.divide-left{border-left:solid 1px #404040}.wy-menu-horiz li.divide-right{border-right:solid 1px #404040}.wy-menu-horiz a{height:32px;display:inline-block;line-height:32px;padding:0 16px}.wy-menu-vertical{width:300px}.wy-menu-vertical header,.wy-menu-vertical p.caption{height:32px;display:inline-block;line-height:32px;padding:0 1.618em;margin-bottom:0;display:block;font-weight:bold;text-transform:uppercase;font-size:80%;white-space:nowrap}.wy-menu-vertical ul{margin-bottom:0}.wy-menu-vertical li.divide-top{border-top:solid 1px #404040}.wy-menu-vertical li.divide-bottom{border-bottom:solid 1px #404040}.wy-menu-vertical li.current{background:#e3e3e3}.wy-menu-vertical li.current a{color:gray;border-right:solid 1px #c9c9c9;padding:.4045em 2.427em}.wy-menu-vertical li.current a:hover{background:#d6d6d6}.wy-menu-vertical li code,.wy-menu-vertical li .rst-content tt,.rst-content .wy-menu-vertical li tt{border:none;background:inherit;color:inherit;padding-left:0;padding-right:0}.wy-menu-vertical li span.toctree-expand{display:block;float:left;margin-left:-1.2em;font-size:.8em;line-height:1.6em;color:#4d4d4d}.wy-menu-vertical li.on a,.wy-menu-vertical li.current>a{color:#404040;padding:.4045em 1.618em;font-weight:bold;position:relative;background:#fcfcfc;border:none;padding-left:1.618em -4px}.wy-menu-vertical li.on a:hover,.wy-menu-vertical li.current>a:hover{background:#fcfcfc}.wy-menu-vertical li.on a:hover span.toctree-expand,.wy-menu-vertical li.current>a:hover span.toctree-expand{color:gray}.wy-menu-vertical li.on a span.toctree-expand,.wy-menu-vertical li.current>a span.toctree-expand{display:block;font-size:.8em;line-height:1.6em;color:#333}.wy-menu-vertical li.toctree-l1.current>a{border-bottom:solid 1px #c9c9c9;border-top:solid 1px #c9c9c9}.wy-menu-vertical li.toctree-l2 a,.wy-menu-vertical li.toctree-l3 a,.wy-menu-vertical li.toctree-l4 a{color:#404040}.wy-menu-vertical li.toctree-l1.current li.toctree-l2>ul,.wy-menu-vertical li.toctree-l2.current li.toctree-l3>ul{display:none}.wy-menu-vertical li.toctree-l1.current li.toctree-l2.current>ul,.wy-menu-vertical li.toctree-l2.current li.toctree-l3.current>ul{display:block}.wy-menu-vertical li.toctree-l2.current>a{background:#c9c9c9;padding:.4045em 2.427em}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{display:block;background:#c9c9c9;padding:.4045em 4.045em}.wy-menu-vertical li.toctree-l2 a:hover span.toctree-expand{color:gray}.wy-menu-vertical li.toctree-l2 span.toctree-expand{color:#a3a3a3}.wy-menu-vertical li.toctree-l3{font-size:.9em}.wy-menu-vertical li.toctree-l3.current>a{background:#bdbdbd;padding:.4045em 4.045em}.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{display:block;background:#bdbdbd;padding:.4045em 5.663em}.wy-menu-vertical li.toctree-l3 a:hover span.toctree-expand{color:gray}.wy-menu-vertical li.toctree-l3 span.toctree-expand{color:#969696}.wy-menu-vertical li.toctree-l4{font-size:.9em}.wy-menu-vertical li.current ul{display:block}.wy-menu-vertical li ul{margin-bottom:0;display:none}.wy-menu-vertical li ul li a{margin-bottom:0;color:#d9d9d9;font-weight:normal}.wy-menu-vertical a{display:inline-block;line-height:18px;padding:.4045em 1.618em;display:block;position:relative;font-size:90%;color:#d9d9d9}.wy-menu-vertical a:hover{background-color:#4e4a4a;cursor:pointer}.wy-menu-vertical a:hover span.toctree-expand{color:#d9d9d9}.wy-menu-vertical a:active{background-color:#2980B9;cursor:pointer;color:#fff}.wy-menu-vertical a:active span.toctree-expand{color:#fff}.wy-side-nav-search{display:block;width:300px;padding:.809em;margin-bottom:.809em;z-index:200;background-color:#2980B9;text-align:center;padding:.809em;display:block;color:#fcfcfc;margin-bottom:.809em}.wy-side-nav-search input[type=text]{width:100%;border-radius:50px;padding:6px 12px;border-color:#2472a4}.wy-side-nav-search img{display:block;margin:auto auto .809em auto;height:45px;width:45px;background-color:#2980B9;padding:5px;border-radius:100%}.wy-side-nav-search>a,.wy-side-nav-search .wy-dropdown>a{color:#fcfcfc;font-size:100%;font-weight:bold;display:inline-block;padding:4px 6px;margin-bottom:.809em}.wy-side-nav-search>a:hover,.wy-side-nav-search .wy-dropdown>a:hover{background:rgba(255,255,255,0.1)}.wy-side-nav-search>a img.logo,.wy-side-nav-search .wy-dropdown>a img.logo{display:block;margin:0 auto;height:auto;width:auto;border-radius:0;max-width:100%;background:transparent}.wy-side-nav-search>a.icon img.logo,.wy-side-nav-search .wy-dropdown>a.icon img.logo{margin-top:.85em}.wy-side-nav-search>div.version{margin-top:-.4045em;margin-bottom:.809em;font-weight:normal;color:rgba(255,255,255,0.3)}.wy-nav .wy-menu-vertical header{color:#2980B9}.wy-nav .wy-menu-vertical a{color:#b3b3b3}.wy-nav .wy-menu-vertical a:hover{background-color:#2980B9;color:#fff}[data-menu-wrap]{-webkit-transition:all .2s ease-in;-moz-transition:all .2s ease-in;transition:all .2s ease-in;position:absolute;opacity:1;width:100%;opacity:0}[data-menu-wrap].move-center{left:0;right:auto;opacity:1}[data-menu-wrap].move-left{right:auto;left:-100%;opacity:0}[data-menu-wrap].move-right{right:-100%;left:auto;opacity:0}.wy-body-for-nav{background:#fcfcfc}.wy-grid-for-nav{position:absolute;width:100%;height:100%}.wy-nav-side{position:fixed;top:0;bottom:0;left:0;padding-bottom:2em;width:300px;overflow-x:hidden;overflow-y:hidden;min-height:100%;color:#9b9b9b;background:#343131;z-index:200}.wy-side-scroll{width:320px;position:relative;overflow-x:hidden;overflow-y:scroll;height:100%}.wy-nav-top{display:none;background:#2980B9;color:#fff;padding:.4045em .809em;position:relative;line-height:50px;text-align:center;font-size:100%;*zoom:1}.wy-nav-top:before,.wy-nav-top:after{display:table;content:""}.wy-nav-top:after{clear:both}.wy-nav-top a{color:#fff;font-weight:bold}.wy-nav-top img{margin-right:12px;height:45px;width:45px;background-color:#2980B9;padding:5px;border-radius:100%}.wy-nav-top i{font-size:30px;float:left;cursor:pointer;padding-top:inherit}.wy-nav-content-wrap{margin-left:300px;background:#fcfcfc;min-height:100%}.wy-nav-content{padding:1.618em 3.236em;height:100%;max-width:800px;margin:auto}.wy-body-mask{position:fixed;width:100%;height:100%;background:rgba(0,0,0,0.2);display:none;z-index:499}.wy-body-mask.on{display:block}footer{color:gray}footer p{margin-bottom:12px}footer span.commit code,footer span.commit .rst-content tt,.rst-content footer span.commit tt{padding:0px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",Courier,monospace;font-size:1em;background:none;border:none;color:gray}.rst-footer-buttons{*zoom:1}.rst-footer-buttons:before,.rst-footer-buttons:after{width:100%}.rst-footer-buttons:before,.rst-footer-buttons:after{display:table;content:""}.rst-footer-buttons:after{clear:both}.rst-breadcrumbs-buttons{margin-top:12px;*zoom:1}.rst-breadcrumbs-buttons:before,.rst-breadcrumbs-buttons:after{display:table;content:""}.rst-breadcrumbs-buttons:after{clear:both}#search-results .search li{margin-bottom:24px;border-bottom:solid 1px #e1e4e5;padding-bottom:24px}#search-results .search li:first-child{border-top:solid 1px #e1e4e5;padding-top:24px}#search-results .search li a{font-size:120%;margin-bottom:12px;display:inline-block}#search-results .context{color:gray;font-size:90%}@media screen and (max-width: 768px){.wy-body-for-nav{background:#fcfcfc}.wy-nav-top{display:block}.wy-nav-side{left:-300px}.wy-nav-side.shift{width:85%;left:0}.wy-side-scroll{width:auto}.wy-side-nav-search{width:auto}.wy-menu.wy-menu-vertical{width:auto}.wy-nav-content-wrap{margin-left:0}.wy-nav-content-wrap .wy-nav-content{padding:1.618em}.wy-nav-content-wrap.shift{position:fixed;min-width:100%;left:85%;top:0;height:100%;overflow:hidden}}@media screen and (min-width: 1100px){.wy-nav-content-wrap{background:rgba(0,0,0,0.05)}.wy-nav-content{margin:0;background:#fcfcfc}}@media print{.rst-versions,footer,.wy-nav-side{display:none}.wy-nav-content-wrap{margin-left:0}}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;z-index:400}.rst-versions a{color:#2980B9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27AE60;*zoom:1}.rst-versions .rst-current-version:before,.rst-versions .rst-current-version:after{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-versions .rst-current-version .fa,.rst-versions .rst-current-version .wy-menu-vertical li span.toctree-expand,.wy-menu-vertical li .rst-versions .rst-current-version span.toctree-expand,.rst-versions .rst-current-version .rst-content .admonition-title,.rst-content .rst-versions .rst-current-version .admonition-title,.rst-versions .rst-current-version .rst-content h1 .headerlink,.rst-content h1 .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content h2 .headerlink,.rst-content h2 .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content h3 .headerlink,.rst-content h3 .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content h4 .headerlink,.rst-content h4 .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content h5 .headerlink,.rst-content h5 .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content h6 .headerlink,.rst-content h6 .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content dl dt .headerlink,.rst-content dl dt .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content p.caption .headerlink,.rst-content p.caption .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content table>caption .headerlink,.rst-content table>caption .rst-versions .rst-current-version .headerlink,.rst-versions .rst-current-version .rst-content tt.download span:first-child,.rst-content tt.download .rst-versions .rst-current-version span:first-child,.rst-versions .rst-current-version .rst-content code.download span:first-child,.rst-content code.download .rst-versions .rst-current-version span:first-child,.rst-versions .rst-current-version .icon{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#E74C3C;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#F1C40F;color:#000}.rst-versions.shift-up{height:auto;max-height:100%}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:gray;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:solid 1px #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px}.rst-versions.rst-badge .icon-book{float:none}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge .rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width: 768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}.rst-content img{max-width:100%;height:auto}.rst-content div.figure{margin-bottom:24px}.rst-content div.figure p.caption{font-style:italic}.rst-content div.figure p:last-child.caption{margin-bottom:0px}.rst-content div.figure.align-center{text-align:center}.rst-content .section>img,.rst-content .section>a>img{margin-bottom:24px}.rst-content abbr[title]{text-decoration:none}.rst-content.style-external-links a.reference.external:after{font-family:FontAwesome;content:"";color:#b3b3b3;vertical-align:super;font-size:60%;margin:0 .2em}.rst-content blockquote{margin-left:24px;line-height:24px;margin-bottom:24px}.rst-content pre.literal-block{white-space:pre;margin:0;padding:12px 12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",Courier,monospace;display:block;overflow:auto}.rst-content pre.literal-block,.rst-content div[class^='highlight']{border:1px solid #e1e4e5;overflow-x:auto;margin:1px 0 24px 0}.rst-content pre.literal-block div[class^='highlight'],.rst-content div[class^='highlight'] div[class^='highlight']{padding:0px;border:none;margin:0}.rst-content div[class^='highlight'] td.code{width:100%}.rst-content .linenodiv pre{border-right:solid 1px #e6e9ea;margin:0;padding:12px 12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",Courier,monospace;user-select:none;pointer-events:none}.rst-content div[class^='highlight'] pre{white-space:pre;margin:0;padding:12px 12px;display:block;overflow:auto}.rst-content div[class^='highlight'] pre .hll{display:block;margin:0 -12px;padding:0 12px}.rst-content pre.literal-block,.rst-content div[class^='highlight'] pre,.rst-content .linenodiv pre{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",Courier,monospace;font-size:12px;line-height:1.4}@media print{.rst-content .codeblock,.rst-content div[class^='highlight'],.rst-content div[class^='highlight'] pre{white-space:pre-wrap}}.rst-content .note .last,.rst-content .attention .last,.rst-content .caution .last,.rst-content .danger .last,.rst-content .error .last,.rst-content .hint .last,.rst-content .important .last,.rst-content .tip .last,.rst-content .warning .last,.rst-content .seealso .last,.rst-content .admonition-todo .last,.rst-content .admonition .last{margin-bottom:0}.rst-content .admonition-title:before{margin-right:4px}.rst-content .admonition table{border-color:rgba(0,0,0,0.1)}.rst-content .admonition table td,.rst-content .admonition table th{background:transparent !important;border-color:rgba(0,0,0,0.1) !important}.rst-content .section ol.loweralpha,.rst-content .section ol.loweralpha li{list-style:lower-alpha}.rst-content .section ol.upperalpha,.rst-content .section ol.upperalpha li{list-style:upper-alpha}.rst-content .section ol p,.rst-content .section ul p{margin-bottom:12px}.rst-content .section ol p:last-child,.rst-content .section ul p:last-child{margin-bottom:24px}.rst-content .line-block{margin-left:0px;margin-bottom:24px;line-height:24px}.rst-content .line-block .line-block{margin-left:24px;margin-bottom:0px}.rst-content .topic-title{font-weight:bold;margin-bottom:12px}.rst-content .toc-backref{color:#404040}.rst-content .align-right{float:right;margin:0px 0px 24px 24px}.rst-content .align-left{float:left;margin:0px 24px 24px 0px}.rst-content .align-center{margin:auto}.rst-content .align-center:not(table){display:block}.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content .toctree-wrapper p.caption .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content dl dt .headerlink,.rst-content p.caption .headerlink,.rst-content table>caption .headerlink{visibility:hidden;font-size:14px}.rst-content h1 .headerlink:after,.rst-content h2 .headerlink:after,.rst-content .toctree-wrapper p.caption .headerlink:after,.rst-content h3 .headerlink:after,.rst-content h4 .headerlink:after,.rst-content h5 .headerlink:after,.rst-content h6 .headerlink:after,.rst-content dl dt .headerlink:after,.rst-content p.caption .headerlink:after,.rst-content table>caption .headerlink:after{content:"";font-family:FontAwesome}.rst-content h1:hover .headerlink:after,.rst-content h2:hover .headerlink:after,.rst-content .toctree-wrapper p.caption:hover .headerlink:after,.rst-content h3:hover .headerlink:after,.rst-content h4:hover .headerlink:after,.rst-content h5:hover .headerlink:after,.rst-content h6:hover .headerlink:after,.rst-content dl dt:hover .headerlink:after,.rst-content p.caption:hover .headerlink:after,.rst-content table>caption:hover .headerlink:after{visibility:visible}.rst-content table>caption .headerlink:after{font-size:12px}.rst-content .centered{text-align:center}.rst-content .sidebar{float:right;width:40%;display:block;margin:0 0 24px 24px;padding:24px;background:#f3f6f6;border:solid 1px #e1e4e5}.rst-content .sidebar p,.rst-content .sidebar ul,.rst-content .sidebar dl{font-size:90%}.rst-content .sidebar .last{margin-bottom:0}.rst-content .sidebar .sidebar-title{display:block;font-family:"Roboto Slab","ff-tisa-web-pro","Georgia",Arial,sans-serif;font-weight:bold;background:#e1e4e5;padding:6px 12px;margin:-24px;margin-bottom:24px;font-size:100%}.rst-content .highlighted{background:#F1C40F;display:inline-block;font-weight:bold;padding:0 6px}.rst-content .footnote-reference,.rst-content .citation-reference{vertical-align:baseline;position:relative;top:-0.4em;line-height:0;font-size:90%}.rst-content table.docutils.citation,.rst-content table.docutils.footnote{background:none;border:none;color:gray}.rst-content table.docutils.citation td,.rst-content table.docutils.citation tr,.rst-content table.docutils.footnote td,.rst-content table.docutils.footnote tr{border:none;background-color:transparent !important;white-space:normal}.rst-content table.docutils.citation td.label,.rst-content table.docutils.footnote td.label{padding-left:0;padding-right:0;vertical-align:top}.rst-content table.docutils.citation tt,.rst-content table.docutils.citation code,.rst-content table.docutils.footnote tt,.rst-content table.docutils.footnote code{color:#555}.rst-content .wy-table-responsive.citation,.rst-content .wy-table-responsive.footnote{margin-bottom:0}.rst-content .wy-table-responsive.citation+:not(.citation),.rst-content .wy-table-responsive.footnote+:not(.footnote){margin-top:24px}.rst-content .wy-table-responsive.citation:last-child,.rst-content .wy-table-responsive.footnote:last-child{margin-bottom:24px}.rst-content table.docutils th{border-color:#e1e4e5}.rst-content table.docutils td .last,.rst-content table.docutils td .last :last-child{margin-bottom:0}.rst-content table.field-list{border:none}.rst-content table.field-list td{border:none}.rst-content table.field-list td>strong{display:inline-block}.rst-content table.field-list .field-name{padding-right:10px;text-align:left;white-space:nowrap}.rst-content table.field-list .field-body{text-align:left}.rst-content tt,.rst-content tt,.rst-content code{color:#000;font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",Courier,monospace;padding:2px 5px}.rst-content tt big,.rst-content tt em,.rst-content tt big,.rst-content code big,.rst-content tt em,.rst-content code em{font-size:100% !important;line-height:normal}.rst-content tt.literal,.rst-content tt.literal,.rst-content code.literal{color:#E74C3C}.rst-content tt.xref,a .rst-content tt,.rst-content tt.xref,.rst-content code.xref,a .rst-content tt,a .rst-content code{font-weight:bold;color:#404040}.rst-content pre,.rst-content kbd,.rst-content samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",Courier,monospace}.rst-content a tt,.rst-content a tt,.rst-content a code{color:#2980B9}.rst-content dl{margin-bottom:24px}.rst-content dl dt{font-weight:bold;margin-bottom:12px}.rst-content dl p,.rst-content dl table,.rst-content dl ul,.rst-content dl ol{margin-bottom:12px !important}.rst-content dl dd{margin:0 0 12px 24px;line-height:24px}.rst-content dl:not(.docutils){margin-bottom:24px}.rst-content dl:not(.docutils) dt{display:table;margin:6px 0;font-size:90%;line-height:normal;background:#e7f2fa;color:#2980B9;border-top:solid 3px #6ab0de;padding:6px;position:relative}.rst-content dl:not(.docutils) dt:before{color:#6ab0de}.rst-content dl:not(.docutils) dt .headerlink{color:#404040;font-size:100% !important}.rst-content dl:not(.docutils) dl dt{margin-bottom:6px;border:none;border-left:solid 3px #ccc;background:#f0f0f0;color:#555}.rst-content dl:not(.docutils) dl dt .headerlink{color:#404040;font-size:100% !important}.rst-content dl:not(.docutils) dt:first-child{margin-top:0}.rst-content dl:not(.docutils) tt,.rst-content dl:not(.docutils) tt,.rst-content dl:not(.docutils) code{font-weight:bold}.rst-content dl:not(.docutils) tt.descname,.rst-content dl:not(.docutils) tt.descclassname,.rst-content dl:not(.docutils) tt.descname,.rst-content dl:not(.docutils) code.descname,.rst-content dl:not(.docutils) tt.descclassname,.rst-content dl:not(.docutils) code.descclassname{background-color:transparent;border:none;padding:0;font-size:100% !important}.rst-content dl:not(.docutils) tt.descname,.rst-content dl:not(.docutils) tt.descname,.rst-content dl:not(.docutils) code.descname{font-weight:bold}.rst-content dl:not(.docutils) .optional{display:inline-block;padding:0 4px;color:#000;font-weight:bold}.rst-content dl:not(.docutils) .property{display:inline-block;padding-right:8px}.rst-content .viewcode-link,.rst-content .viewcode-back{display:inline-block;color:#27AE60;font-size:80%;padding-left:24px}.rst-content .viewcode-back{display:block;float:right}.rst-content p.rubric{margin-bottom:12px;font-weight:bold}.rst-content tt.download,.rst-content code.download{background:inherit;padding:inherit;font-weight:normal;font-family:inherit;font-size:inherit;color:inherit;border:inherit;white-space:inherit}.rst-content tt.download span:first-child,.rst-content code.download span:first-child{-webkit-font-smoothing:subpixel-antialiased}.rst-content tt.download span:first-child:before,.rst-content code.download span:first-child:before{margin-right:4px}.rst-content .guilabel{border:1px solid #7fbbe3;background:#e7f2fa;font-size:80%;font-weight:700;border-radius:4px;padding:2.4px 6px;margin:auto 2px}.rst-content .versionmodified{font-style:italic}@media screen and (max-width: 480px){.rst-content .sidebar{width:100%}}span[id*='MathJax-Span']{color:#404040}.math{text-align:center}@font-face{font-family:"Lato";src:url("../fonts/Lato/lato-regular.eot");src:url("../fonts/Lato/lato-regular.eot?#iefix") format("embedded-opentype"),url("../fonts/Lato/lato-regular.woff2") format("woff2"),url("../fonts/Lato/lato-regular.woff") format("woff"),url("../fonts/Lato/lato-regular.ttf") format("truetype");font-weight:400;font-style:normal}@font-face{font-family:"Lato";src:url("../fonts/Lato/lato-bold.eot");src:url("../fonts/Lato/lato-bold.eot?#iefix") format("embedded-opentype"),url("../fonts/Lato/lato-bold.woff2") format("woff2"),url("../fonts/Lato/lato-bold.woff") format("woff"),url("../fonts/Lato/lato-bold.ttf") format("truetype");font-weight:700;font-style:normal}@font-face{font-family:"Lato";src:url("../fonts/Lato/lato-bolditalic.eot");src:url("../fonts/Lato/lato-bolditalic.eot?#iefix") format("embedded-opentype"),url("../fonts/Lato/lato-bolditalic.woff2") format("woff2"),url("../fonts/Lato/lato-bolditalic.woff") format("woff"),url("../fonts/Lato/lato-bolditalic.ttf") format("truetype");font-weight:700;font-style:italic}@font-face{font-family:"Lato";src:url("../fonts/Lato/lato-italic.eot");src:url("../fonts/Lato/lato-italic.eot?#iefix") format("embedded-opentype"),url("../fonts/Lato/lato-italic.woff2") format("woff2"),url("../fonts/Lato/lato-italic.woff") format("woff"),url("../fonts/Lato/lato-italic.ttf") format("truetype");font-weight:400;font-style:italic}@font-face{font-family:"Roboto Slab";font-style:normal;font-weight:400;src:url("../fonts/RobotoSlab/roboto-slab.eot");src:url("../fonts/RobotoSlab/roboto-slab-v7-regular.eot?#iefix") format("embedded-opentype"),url("../fonts/RobotoSlab/roboto-slab-v7-regular.woff2") format("woff2"),url("../fonts/RobotoSlab/roboto-slab-v7-regular.woff") format("woff"),url("../fonts/RobotoSlab/roboto-slab-v7-regular.ttf") format("truetype")}@font-face{font-family:"Roboto Slab";font-style:normal;font-weight:700;src:url("../fonts/RobotoSlab/roboto-slab-v7-bold.eot");src:url("../fonts/RobotoSlab/roboto-slab-v7-bold.eot?#iefix") format("embedded-opentype"),url("../fonts/RobotoSlab/roboto-slab-v7-bold.woff2") format("woff2"),url("../fonts/RobotoSlab/roboto-slab-v7-bold.woff") format("woff"),url("../fonts/RobotoSlab/roboto-slab-v7-bold.ttf") format("truetype")} diff --git a/docs/_static/dark_logo.png b/docs/_static/dark_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..7e38ee697a355d865c1825886eea51ccf6ff0cdd GIT binary patch literal 37540 zcmeFY^LJ!Xw>Da-INeFdwr$(4*tTt>W7}#Z9lPU>ZQHidac=c{&iTH3|APC=$yhZ; zW!GNXYvP&DoI6TMK?)H87XbhOAj(LKs{jB%PVk2o4hDRM>jz*S0QgK}EheTUBPK?y z_yAC4)|V zJ9cW2LHNq~WK<%>RJ!n2WZfa>a8%zB=WJ9d zTDu)nZRBF$H_?43avVU(us6$X3(i!64o_b^X}%JaGh1JP9z+D}wPmE#!Jd4G);f$y z&hN`tv)5kBl^R7PDpPDaSLI0A8YS9^gRw`U(d$kMDqT+WUVP3nVN^o8No|9s3TqS> z`LM@aY6eo&eIsFsjchfm^cLH5OL_kf|fPP*TEnaJ5;~e6%h~ml=$o z&BZ?3CJcPKUAi8rrB-BR@R$

B=J{b%^$!bi_^1A81jJIpX*+ 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

1NV_=z}G*OZH`8RO0oXlzd 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 0 && + !jQuery(node.parentNode).hasClass(className) && + !jQuery(node.parentNode).hasClass("nohighlight")) { + var span; + var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.className = className; + } + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + node.parentNode.insertBefore(span, node.parentNode.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling)); + node.nodeValue = val.substr(0, pos); + if (isInSVG) { + var bbox = span.getBBox(); + var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute('class', className); + var parentOfText = node.parentNode.parentNode; + addItems.push({ + "parent": node.parentNode, + "target": rect}); + } + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this, addItems); + }); + } + } + var addItems = []; + var result = this.each(function() { + highlight(this, addItems); + }); + for (var i = 0; i < addItems.length; ++i) { + jQuery(addItems[i].parent).before(addItems[i].target); + } + return result; +}; + +/* + * backward compatibility for jQuery.browser + * This will be supported until firefox bug is fixed. + */ +if (!jQuery.browser) { + jQuery.uaMatch = function(ua) { + ua = ua.toLowerCase(); + + var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || + /(webkit)[ \/]([\w.]+)/.exec(ua) || + /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || + /(msie) ([\w.]+)/.exec(ua) || + ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || + []; + + return { + browser: match[ 1 ] || "", + version: match[ 2 ] || "0" + }; + }; + jQuery.browser = {}; + jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; +} + +/** + * Small JavaScript module for the documentation. + */ +var Documentation = { + + init : function() { + this.fixFirefoxAnchorBug(); + this.highlightSearchWords(); + this.initIndexTable(); + if (DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) { + this.initOnKeyListeners(); + } + }, + + /** + * i18n support + */ + TRANSLATIONS : {}, + PLURAL_EXPR : function(n) { return n === 1 ? 0 : 1; }, + LOCALE : 'unknown', + + // gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext : function(string) { + var translated = Documentation.TRANSLATIONS[string]; + if (typeof translated === 'undefined') + return string; + return (typeof translated === 'string') ? translated : translated[0]; + }, + + ngettext : function(singular, plural, n) { + var translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated === 'undefined') + return (n == 1) ? singular : plural; + return translated[Documentation.PLURALEXPR(n)]; + }, + + addTranslations : function(catalog) { + for (var key in catalog.messages) + this.TRANSLATIONS[key] = catalog.messages[key]; + this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); + this.LOCALE = catalog.locale; + }, + + /** + * add context elements like header anchor links + */ + addContextElements : function() { + $('div[id] > :header:first').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this headline')). + appendTo(this); + }); + $('dt[id]').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this definition')). + appendTo(this); + }); + }, + + /** + * workaround a firefox stupidity + * see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075 + */ + fixFirefoxAnchorBug : function() { + if (document.location.hash && $.browser.mozilla) + window.setTimeout(function() { + document.location.href += ''; + }, 10); + }, + + /** + * highlight the search words provided in the url in the text + */ + highlightSearchWords : function() { + var params = $.getQueryParameters(); + var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; + if (terms.length) { + var body = $('div.body'); + if (!body.length) { + body = $('body'); + } + window.setTimeout(function() { + $.each(terms, function() { + body.highlightText(this.toLowerCase(), 'highlighted'); + }); + }, 10); + $('

') + .appendTo($('#searchbox')); + } + }, + + /** + * init the domain index toggle buttons + */ + initIndexTable : function() { + var togglers = $('img.toggler').click(function() { + var src = $(this).attr('src'); + var idnum = $(this).attr('id').substr(7); + $('tr.cg-' + idnum).toggle(); + if (src.substr(-9) === 'minus.png') + $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); + else + $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); + }).css('display', ''); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { + togglers.click(); + } + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords : function() { + $('#searchbox .highlight-link').fadeOut(300); + $('span.highlighted').removeClass('highlighted'); + }, + + /** + * make the url absolute + */ + makeURL : function(relativeURL) { + return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; + }, + + /** + * get the current relative url + */ + getCurrentURL : function() { + var path = document.location.pathname; + var parts = path.split(/\//); + $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { + if (this === '..') + parts.pop(); + }); + var url = parts.join('/'); + return path.substring(url.lastIndexOf('/') + 1, path.length - 1); + }, + + initOnKeyListeners: function() { + $(document).keyup(function(event) { + var activeElementType = document.activeElement.tagName; + // don't navigate when in search box or textarea + if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT') { + switch (event.keyCode) { + case 37: // left + var prevHref = $('link[rel="prev"]').prop('href'); + if (prevHref) { + window.location.href = prevHref; + return false; + } + case 39: // right + var nextHref = $('link[rel="next"]').prop('href'); + if (nextHref) { + window.location.href = nextHref; + return false; + } + } + } + }); + } +}; + +// quick alias for translations +_ = Documentation.gettext; + +$(document).ready(function() { + Documentation.init(); +}); diff --git a/docs/_static/documentation_options.js b/docs/_static/documentation_options.js new file mode 100644 index 0000000..4e5aeec --- /dev/null +++ b/docs/_static/documentation_options.js @@ -0,0 +1,296 @@ +var DOCUMENTATION_OPTIONS = { + URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), + VERSION: '0.11.0', + LANGUAGE: 'None', + COLLAPSE_INDEX: false, + FILE_SUFFIX: '.html', + HAS_SOURCE: true, + SOURCELINK_SUFFIX: '.txt', + NAVIGATION_WITH_KEYS: false, + SEARCH_LANGUAGE_STOP_WORDS: ["a","and","are","as","at","be","but","by","for","if","in","into","is","it","near","no","not","of","on","or","such","that","the","their","then","there","these","they","this","to","was","will","with"] +}; + + + +/* Non-minified version JS is _stemmer.js if file is provided */ +/** + * Porter Stemmer + */ +var Stemmer = function() { + + var step2list = { + ational: 'ate', + tional: 'tion', + enci: 'ence', + anci: 'ance', + izer: 'ize', + bli: 'ble', + alli: 'al', + entli: 'ent', + eli: 'e', + ousli: 'ous', + ization: 'ize', + ation: 'ate', + ator: 'ate', + alism: 'al', + iveness: 'ive', + fulness: 'ful', + ousness: 'ous', + aliti: 'al', + iviti: 'ive', + biliti: 'ble', + logi: 'log' + }; + + var step3list = { + icate: 'ic', + ative: '', + alize: 'al', + iciti: 'ic', + ical: 'ic', + ful: '', + ness: '' + }; + + var c = "[^aeiou]"; // consonant + var v = "[aeiouy]"; // vowel + var C = c + "[^aeiouy]*"; // consonant sequence + var V = v + "[aeiou]*"; // vowel sequence + + var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 + var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 + var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 + var s_v = "^(" + C + ")?" + v; // vowel in stem + + this.stemWord = function (w) { + var stem; + var suffix; + var firstch; + var origword = w; + + if (w.length < 3) + return w; + + var re; + var re2; + var re3; + var re4; + + firstch = w.substr(0,1); + if (firstch == "y") + w = firstch.toUpperCase() + w.substr(1); + + // Step 1a + re = /^(.+?)(ss|i)es$/; + re2 = /^(.+?)([^s])s$/; + + if (re.test(w)) + w = w.replace(re,"$1$2"); + else if (re2.test(w)) + w = w.replace(re2,"$1$2"); + + // Step 1b + re = /^(.+?)eed$/; + re2 = /^(.+?)(ed|ing)$/; + if (re.test(w)) { + var fp = re.exec(w); + re = new RegExp(mgr0); + if (re.test(fp[1])) { + re = /.$/; + w = w.replace(re,""); + } + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + re2 = new RegExp(s_v); + if (re2.test(stem)) { + w = stem; + re2 = /(at|bl|iz)$/; + re3 = new RegExp("([^aeiouylsz])\\1$"); + re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re2.test(w)) + w = w + "e"; + else if (re3.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + else if (re4.test(w)) + w = w + "e"; + } + } + + // Step 1c + re = /^(.+?)y$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(s_v); + if (re.test(stem)) + w = stem + "i"; + } + + // Step 2 + re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step2list[suffix]; + } + + // Step 3 + re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step3list[suffix]; + } + + // Step 4 + re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; + re2 = /^(.+?)(s|t)(ion)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + if (re.test(stem)) + w = stem; + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1] + fp[2]; + re2 = new RegExp(mgr1); + if (re2.test(stem)) + w = stem; + } + + // Step 5 + re = /^(.+?)e$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + re2 = new RegExp(meq1); + re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) + w = stem; + } + re = /ll$/; + re2 = new RegExp(mgr1); + if (re.test(w) && re2.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + + // and turn initial Y back to y + if (firstch == "y") + w = firstch.toLowerCase() + w.substr(1); + return w; + } +} + + + + + +var splitChars = (function() { + var result = {}; + var singles = [96, 180, 187, 191, 215, 247, 749, 885, 903, 907, 909, 930, 1014, 1648, + 1748, 1809, 2416, 2473, 2481, 2526, 2601, 2609, 2612, 2615, 2653, 2702, + 2706, 2729, 2737, 2740, 2857, 2865, 2868, 2910, 2928, 2948, 2961, 2971, + 2973, 3085, 3089, 3113, 3124, 3213, 3217, 3241, 3252, 3295, 3341, 3345, + 3369, 3506, 3516, 3633, 3715, 3721, 3736, 3744, 3748, 3750, 3756, 3761, + 3781, 3912, 4239, 4347, 4681, 4695, 4697, 4745, 4785, 4799, 4801, 4823, + 4881, 5760, 5901, 5997, 6313, 7405, 8024, 8026, 8028, 8030, 8117, 8125, + 8133, 8181, 8468, 8485, 8487, 8489, 8494, 8527, 11311, 11359, 11687, 11695, + 11703, 11711, 11719, 11727, 11735, 12448, 12539, 43010, 43014, 43019, 43587, + 43696, 43713, 64286, 64297, 64311, 64317, 64319, 64322, 64325, 65141]; + var i, j, start, end; + for (i = 0; i < singles.length; i++) { + result[singles[i]] = true; + } + var ranges = [[0, 47], [58, 64], [91, 94], [123, 169], [171, 177], [182, 184], [706, 709], + [722, 735], [741, 747], [751, 879], [888, 889], [894, 901], [1154, 1161], + [1318, 1328], [1367, 1368], [1370, 1376], [1416, 1487], [1515, 1519], [1523, 1568], + [1611, 1631], [1642, 1645], [1750, 1764], [1767, 1773], [1789, 1790], [1792, 1807], + [1840, 1868], [1958, 1968], [1970, 1983], [2027, 2035], [2038, 2041], [2043, 2047], + [2070, 2073], [2075, 2083], [2085, 2087], [2089, 2307], [2362, 2364], [2366, 2383], + [2385, 2391], [2402, 2405], [2419, 2424], [2432, 2436], [2445, 2446], [2449, 2450], + [2483, 2485], [2490, 2492], [2494, 2509], [2511, 2523], [2530, 2533], [2546, 2547], + [2554, 2564], [2571, 2574], [2577, 2578], [2618, 2648], [2655, 2661], [2672, 2673], + [2677, 2692], [2746, 2748], [2750, 2767], [2769, 2783], [2786, 2789], [2800, 2820], + [2829, 2830], [2833, 2834], [2874, 2876], [2878, 2907], [2914, 2917], [2930, 2946], + [2955, 2957], [2966, 2968], [2976, 2978], [2981, 2983], [2987, 2989], [3002, 3023], + [3025, 3045], [3059, 3076], [3130, 3132], [3134, 3159], [3162, 3167], [3170, 3173], + [3184, 3191], [3199, 3204], [3258, 3260], [3262, 3293], [3298, 3301], [3312, 3332], + [3386, 3388], [3390, 3423], [3426, 3429], [3446, 3449], [3456, 3460], [3479, 3481], + [3518, 3519], [3527, 3584], [3636, 3647], [3655, 3663], [3674, 3712], [3717, 3718], + [3723, 3724], [3726, 3731], [3752, 3753], [3764, 3772], [3774, 3775], [3783, 3791], + [3802, 3803], [3806, 3839], [3841, 3871], [3892, 3903], [3949, 3975], [3980, 4095], + [4139, 4158], [4170, 4175], [4182, 4185], [4190, 4192], [4194, 4196], [4199, 4205], + [4209, 4212], [4226, 4237], [4250, 4255], [4294, 4303], [4349, 4351], [4686, 4687], + [4702, 4703], [4750, 4751], [4790, 4791], [4806, 4807], [4886, 4887], [4955, 4968], + [4989, 4991], [5008, 5023], [5109, 5120], [5741, 5742], [5787, 5791], [5867, 5869], + [5873, 5887], [5906, 5919], [5938, 5951], [5970, 5983], [6001, 6015], [6068, 6102], + [6104, 6107], [6109, 6111], [6122, 6127], [6138, 6159], [6170, 6175], [6264, 6271], + [6315, 6319], [6390, 6399], [6429, 6469], [6510, 6511], [6517, 6527], [6572, 6592], + [6600, 6607], [6619, 6655], [6679, 6687], [6741, 6783], [6794, 6799], [6810, 6822], + [6824, 6916], [6964, 6980], [6988, 6991], [7002, 7042], [7073, 7085], [7098, 7167], + [7204, 7231], [7242, 7244], [7294, 7400], [7410, 7423], [7616, 7679], [7958, 7959], + [7966, 7967], [8006, 8007], [8014, 8015], [8062, 8063], [8127, 8129], [8141, 8143], + [8148, 8149], [8156, 8159], [8173, 8177], [8189, 8303], [8306, 8307], [8314, 8318], + [8330, 8335], [8341, 8449], [8451, 8454], [8456, 8457], [8470, 8472], [8478, 8483], + [8506, 8507], [8512, 8516], [8522, 8525], [8586, 9311], [9372, 9449], [9472, 10101], + [10132, 11263], [11493, 11498], [11503, 11516], [11518, 11519], [11558, 11567], + [11622, 11630], [11632, 11647], [11671, 11679], [11743, 11822], [11824, 12292], + [12296, 12320], [12330, 12336], [12342, 12343], [12349, 12352], [12439, 12444], + [12544, 12548], [12590, 12592], [12687, 12689], [12694, 12703], [12728, 12783], + [12800, 12831], [12842, 12880], [12896, 12927], [12938, 12976], [12992, 13311], + [19894, 19967], [40908, 40959], [42125, 42191], [42238, 42239], [42509, 42511], + [42540, 42559], [42592, 42593], [42607, 42622], [42648, 42655], [42736, 42774], + [42784, 42785], [42889, 42890], [42893, 43002], [43043, 43055], [43062, 43071], + [43124, 43137], [43188, 43215], [43226, 43249], [43256, 43258], [43260, 43263], + [43302, 43311], [43335, 43359], [43389, 43395], [43443, 43470], [43482, 43519], + [43561, 43583], [43596, 43599], [43610, 43615], [43639, 43641], [43643, 43647], + [43698, 43700], [43703, 43704], [43710, 43711], [43715, 43738], [43742, 43967], + [44003, 44015], [44026, 44031], [55204, 55215], [55239, 55242], [55292, 55295], + [57344, 63743], [64046, 64047], [64110, 64111], [64218, 64255], [64263, 64274], + [64280, 64284], [64434, 64466], [64830, 64847], [64912, 64913], [64968, 65007], + [65020, 65135], [65277, 65295], [65306, 65312], [65339, 65344], [65371, 65381], + [65471, 65473], [65480, 65481], [65488, 65489], [65496, 65497]]; + for (i = 0; i < ranges.length; i++) { + start = ranges[i][0]; + end = ranges[i][1]; + for (j = start; j <= end; j++) { + result[j] = true; + } + } + return result; +})(); + +function splitQuery(query) { + var result = []; + var start = -1; + for (var i = 0; i < query.length; i++) { + if (splitChars[query.charCodeAt(i)]) { + if (start !== -1) { + result.push(query.slice(start, i)); + start = -1; + } + } else if (start === -1) { + start = i; + } + } + if (start !== -1) { + result.push(query.slice(start)); + } + return result; +} + + diff --git a/docs/_static/down-pressed.png b/docs/_static/down-pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..5756c8cad8854722893dc70b9eb4bb0400343a39 GIT binary patch literal 222 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`OFdm2Ln;`PZ^+1>KjR?B@S0W7 z%OS_REiHONoJ6{+Ks@6k3590|7k9F+ddB6!zw3#&!aw#S`x}3V3&=A(a#84O-&F7T z^k3tZB;&iR9siw0|F|E|DAL<8r-F4!1H-;1{e*~yAKZN5f0|Ei6yUmR#Is)EM(Po_ zi`qJR6|P<~+)N+kSDgL7AjdIC_!O7Q?eGb+L+qOjm{~LLinM4NHn7U%HcK%uoMYO5 VJ~8zD2B3o(JYD@<);T3K0RV0%P>BEl literal 0 HcmV?d00001 diff --git a/docs/_static/down.png b/docs/_static/down.png new file mode 100644 index 0000000000000000000000000000000000000000..1b3bdad2ceffae91cee61b32f3295f9bbe646e48 GIT binary patch literal 202 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6CVIL!hEy=F?b*7pIY7kW{q%Rg zx!yQ<9v8bmJwa`TQk7YSw}WVQ()mRdQ;TC;* literal 0 HcmV?d00001 diff --git a/docs/_static/file.png b/docs/_static/file.png new file mode 100644 index 0000000000000000000000000000000000000000..a858a410e4faa62ce324d814e4b816fff83a6fb3 GIT binary patch literal 286 zcmV+(0pb3MP)s`hMrGg#P~ix$^RISR_I47Y|r1 z_CyJOe}D1){SET-^Amu_i71Lt6eYfZjRyw@I6OQAIXXHDfiX^GbOlHe=Ae4>0m)d(f|Me07*qoM6N<$f}vM^LjV8( literal 0 HcmV?d00001 diff --git a/docs/_static/fonts/Inconsolata-Bold.ttf b/docs/_static/fonts/Inconsolata-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..809c1f5828f86235347019a50e78b4b486a6a045 GIT binary patch literal 109948 zcmdSC34D}A@;}_&&oeW*lbOt9l8|F2lY=DOAqh9bDFPxQm&kntMD9Zc6cj|o6A%&6 zRXl$z>nb85vaIKN3yK$_D1rxwi2PiaRZJ%Dx9T}&0s(jTzwi6`zl5i!r=IG5s;jH3 ztE=nj5mE@@L86O5&x_AL58tGaf1ZcWxbu4U>Rmdkyg5M4@O|ES124Sz>#JM*hVL7M zC|q~m#Y4I;ST=XO5XJ3;NIiPt#Vy;+>-(rjh^j*1kDV}m+^jcl89o)?uNNXQFyV@M zfmwRoS|J|@;QqRrS(B$%R4eBUlaa>nFwb7ujbhVPm9jGH`dLCvi6q=iCsdql{x zHB%;yn;3WbYm1`jX6bWN@O{ZZ;0I=mn?C8STHhP^j`Gfavu4hn*W<0W{e)b;Q;4jQv*t{i z)xK)LOd%hC5BLv*GpH7q5N(ALPNBc& zB4ygRc{4-~`V0T+>ruZD37{vg+lXEP(WOVX!2!{y#~`GG`gI!-5F;`8VK$){iIMGO% zn<<wRQs2+VTGjQeLDloq{h1@^Smy}lk_i9{AaovRLc3f+4t;a?8=-Pm~-oxi( zxagVI^*Hid%!{5)G;POal%aa!Wtz;8SK}{77VxL_y{T*~TgVPFEPFG&zZ}G$!{uoH zoG7RA=PY>zeF|AuOA->H@gwVwalV{WB!DYzC(<}hJ)Cytv?HZ;r#PR$X&R@3;kBIp z!s%BAT(3nv9!{HZTFPlxPIXG_YB?XrX?HG_#c2|!2?nNG1xREA*VfeQ`m1|1#{ z=840VBBUqVgn5PL+02*nOacB3T=Q@(#C0vM8*trgv%&{dgOLDy2z7|H6m*S=hEz4hMmiyoTmVIQCL&^ZVNlt*3NaXb79JH*(j{H zeYd}z8)WB(+quz{EpfFCTWaSRM&CR)88GB-=kIHfTW{z1 zu7_Y781|TbmvYg&kJ}}-aBe&9{>}3|Qp&x>x%X_?$5sv;-)}sPb0#f-9imzoW<2*u z0~kMz?;hu;72s|Z_Oo5~l$A>tcFt+%lB}G^pqXmnmQ&5?9_wy;rk%^PbA@)U%+9s4 zaxt}388Eb$xtrc8Yeaf?f^n{oof}~126K)uqIhHNyET+^N2osHX*8EUEf$tOhdEvl zg{5C*P~eWFUzNVts0F#}?c5wYce9;aY3J73x%(*RDQHmNL-yT`cJ2u~x7EtUP_Tnw z=`Z4X&Cb2Ux%VlhKcj8wpQL|5x%9Z$?`)(II z*VE4RwQ~dQ+)z6=l5#scJ2l{cdMO?J}sJy z@+DgHYP-ZbJ9j_j3^}m)9PNc@?ss~S<+)++r?YgX+db%g#Ohzl8TC=lyNP?1U@RL9 z+sv?S4NCCn@$PH@W6ANpY{QUCH(<7u7;W>uVM)7{OFuz5&k-t1IYTBH#xl+@rk--{ zh<7(}!}}rSh} zZS7nKD`&`yFKpF9IisgJ$34h7@CEhLUG6Pk?*=8nA@eRcWae1IaS6~2Sbvmd9YHzY zAPeT>nVn&y88*?zn`-gY9r4ZbT|sv_ceR~cYUggEoTmVIr@^=c`UN_dcqxtnC;c_>GclaZH^nNb+ck!CPpqz{Z-Mp;Iy zj4CR@xlVSjyPfO9xdFh7!Uo%SQ4(dx;%*dHW8a--=UD3a8CTh`#i!+{mMAS4(3J8s=WJVeixx3yCfqDJ3)7u<0dTQWJaw~7P-7LbAHtbEUpn)iVfrXJOz!{?DtxD{%kuJuyRpa z{KW(#4eW1b=i1o0c18)@?Ls-y&qj`T;O}YQ9q8}tAIh+ic8+0Of^)x)wGseSiLI~Tpn^!*DZzO~C9vvWV$ zxnJyD#L8vrR?grC@y5_Y%on@9%mfQBGtJIrP%f&QGIO#hHaL6mZCxSbo#-zQq%`P)=V(|N>N@XT3!=L-8fawhC*W4Sf<-Su{k@HTLX$86Z+c5X}Nc9P=E=QEMZ{F{}dF>S)$vT}ZmX#+-M5V`jn zl>OMcOXC-J_h%j=&6RnCb410F%;ODU^fcoxJ%e+ZKXZ;~IfWckMOwhjK?@kUEMeuM z)Mq&@SXPpq^H7e)YE~w3lX6tT$WeRE94IjFqHQJ&Eiz$TA`7W8x;e+An{ru&gvYRj zr{&6GOJudO?q*flxlUHjZ;p6;?@lnLxsR30WEo-@-zA-6;AIWSJd`yUtvnLdKIF9` zZ_ru&XYdpL|HzBRo-J(((X15vz?3tI^3L{1JG;&&pIKx9JY*wX$gP}~aJrmQ*Ih_U`MK<$Yv|i^ zmeSqGB0TX%eqtME7SX^o3$+CKSJ-3s3Sr9QOzrUqe5#rUzH6$P+9Ie1YQXP^&^rZK;!}Ep-yLrLJna>w>2i5TZPnX$UdjLj05v(V$(&bmrFG z2b^X^Eo!40L}VoHj^?}j4El{$8x%4P!l1!b1N?Yy>0ajEDW*p-J%VdfPWU+GEnLqc zqCwk7HOpi4Tp7ol*-Cy>C72RHJVEP-pI)X}a4Vc#LtjDOQ})Yh6Lr*}bf!%w+O+XZ zv(DUe5{H$}Jk*(oF6N=m^y^H&?z#>*$*!KDMBTZT>nGmo+!md9D?el2 z>MRes3wuNICz3S9V@k!li1K(>Z-Q`drg6K{xW`XYdsTO8g|?ODVK291z$-PXQVA=%JFPIYcL#qTTrA=WzBv2dWL6(y&eo7YeB*=L$^UceA z&gI?@^0VINyDYcz81;)h=IBVN{wAf)Wt@J8^n~*^JgcXE3qc&4I6chp9h7&1Cx8#6 zR6mLI0mllY-#QF~T`iFwchIQpOixs$EESrBIRErMGrn0~?Z2~JvD|vOHZPCL4DOxTq5}B5%b~u} zsCN{XQbeIPg1M@gtBU#QWPU2rO}u#^dFjjzn6+TpGmm4`NCNG5s}6{~&&14fpRL=2Z>1r8DtRB`{`!GZFc6mWn}4 ze;iRLYmHLen@=d(2Ro*dUac{n#iM%=Jq0p+4Ddk)KKJ-5R7#@_9n1&@pNTeYIQRZ5 zgejlqwl8P;uQc!pQ!eMbuXAq-=7u0%q1UMG%HR_5LGq54hP{8(JdJABnww=wR#TX( zUgjb1hCzC1ERQ67c?&%YIpiIK9N5jnu2C`e%Y|r)s|BvMxH_2Mv2Q7wVNa=@=puTG zzQ1Q-)G_ZOI`N{8b$x{S3pn~L!dhNG=D>aup86P`E5xU`zQpw{F52yLdN-mby|6gcj@#u@Ngx9@F5*T598|g@rR?qSu;c*dRof%=Ni+D-uuontVRreFg zRfNYf?qZzQeMQhi}WOE zmp?dqA^nI)F+UNS_6Q`|>!h)hsTHuiWMi*iK*I}>jSKsgkRcDAdFKA>&FYsJ3EK+n z9k^b^^%|~saJ`S~6I@^5`Wn}ZxQ^l?9ZvWJJBbVSGzOrM*aej-xbSp|r^|qGkM9@b zdoz5ey39+q0j!;Iah-UU>|&IWgr5!CH{oxy*d}(0m&F@mxA+jU{Uv1m|Gs_hG@Ab- zY0mGE=F;l;on8G<_t2G(A$-un|G_7kU`lE<*MfrfS6591sHWG$(|Qqi2fH zL-B~o8LWn=;p$Q~PEAk~)nwo*j?uvuGh%eGi_P&gIpAHMC=pqr6n`O6E_#SU(MyaM zoyA1_T`FquH&RRy)5It-1ApViEODQhAnwQCO0hvaEmnzVq$VDf4w))`#z-y`^|G04 zjuG8T4w2b%82-ZY68v?Om&)-N+Y{w=vaehwZajS_# z5l(&)L?2h6ch3_Sp?4>VnPP!hCT=rvDE28+6ku*@ii+#&*?*)ZsK$cr#m=(dBV84 zleD)ueUHDQbdNA%z{{TEInlsa@y6F5!dG=tL|P77wtpFYRYl+zZRw&k<~r(sTebK0NNL7Wcf zbo9(Q6K6OkaypIEd7NI&>Gho6%IO+T@8k3lP9L9(K6Py6bO)y|a{3yl?{NA)r=M{8 z1*czgdUWpGR;?W;I6cW}Eu~JyX&k31oO(IU<}|=*G14~9W}LR+v>m5iIPJ-4Urq;d zI+W9qoQ_9Y;he(h3{K~9x{%XrIlY0?TRC0L={ipDpF4m2T<0U4ZsK$^r`tH)$?40S zzQO5kPCw-I)4B6!&2@gs>9?F7pd zTTVN08s@Y&r~NsF?t)e_bmo8SQ$oj4jsHoC`H$@!icY22MxxGu{HLFiVnRX9f0Am@ zeIDp70b2gw%F$YY=%Xl3j(9~1dkd+HQzxhKoYHDQQnc%Tm@3SAK9v4%eM-ziM9Y7c zvVR716xHzWrep(4wuJxvv*L=~IsOrL0oCyDq`9y&dSXT< zJA*8o#hBS|7i(b^J|>=k_5D271iP`;`vNPypRmqTG6A+>HX>Qe@FYA<>%iktYWHC+ zOmW8FieIo2%;Rqgc!pgiWhWDIKgG*ZNolOKrF_}^{)YMan)wN@HRDiOZmzYLeuC&=%V`QhO25Bv@br zL3skSR0b?vKWy4vS_abHS{Blev`nOXV=&Sg1737s_!z^>7#eg(ituVp@a?b$3tJt5 zO{~;$e)d>An|xsS1O)~?@bGBxgJ}3h*U>$4>bv0?Lb6#jVeRi6GSG~9^b0N>WKPI9aZ0} zW9kQWT>YrUV@;8$C27f8ik7OSVQrDEHPLdIV~+`kJgSP_U= z#pD+Q?>psJnJPTAdtHi+!|9|;G)>5`yoAyJ8%)Uc+~T#!PKmVq&c(S$#pydv@oygzdo-!xG6 zBTRvKtUwbXDY?L+b?6@T0m~h~9RLY{*AjmiXDI)Kcuw9cA0-GhBp5Ca$Rm(f)NbU| zOf?hZ9`{u%PBF59RS(TYSQ7nZNIX&VJusA5B&lwRbsDS&)bc%W>Qy|xX)0eWRHQeR zYOY$~vkgiuA}Yl9vOj!upoJc-;L29Iaww;AsW_Ah6258$YET|rdPnV2yVbjB+xuwU zhw3A6t5(&i2sov%DA$Qs;FKT!DR{m_Dth36{8Ao-4*p7hEx(c9%ER(V3~i-M$@kP# zprgJKDuVy^b1@&`#h0CAJ2@(J@@(B>e5!Xujp~f=B91I4{0j)vp5kvp^tfbDFZe}7 zeVy|FeA*%|PR)gCx|42eJFy!@Mabi3UW)pf{;}3X*LX3ae!=&6@lVE~dxZP@|1?z$ zZkMWI>IU@$xZXi^L=VhRg(|GdRIA4Ls6wixny==ld8%Cf8Jx@qbtPEa_ktJU0<8bX z!Ph_@fH~;x`_Zlk#UC-d{}o=fkKkAPOnjr-seo#azHJSU%J=Z*#>rIalP%%>spdYp z5O1ekDo3GjR>)i6=~)Zk&L;Vid|AFO-;nRCD)o%2RtwR*bl6=X%vcNINq8Av>ss-5 zSPq($G7)dW6vBE4$}V{4B@7?ZBsm$rqRZqgdAbsf09n6)W<*m9|Arb^TzwM>mr3)Ho$ zhw7<{)Iiv^IpQAi2YHj~tU9Sa>U`B#^;5Ie2Kl!50{Zn5)l2oJH{#TDkoNxSJar@H z-8PV&_OOvIhF@bCJS|tlLK5&uJTG1pf0Lax0V#K=I>@|B)kEr?&=xv8OYn(899)=d z1gyc9VzF!uU-)8qhg>b!$p__T`J8+cBj9^z!{*TP)#?IJut=>_>(K`YE88kT5GLJo1Yh-mzw9#%gqbs73G!Zwalx|>zH?b-o<&B=3SOIGjCDe^1M6p z?##P8@BX}B1BrpOfG?08$O{w%iUX|z6@d^Vxq~3BAXMh6}<&cv}aCCDoHQ# zmphmfk~tyk|H0hgq`p|Z5!n^}ZsqDT>ia}KtoKJ|M&Lz@{;Pkp{*C$<>z}LNUjKCc zQ}s{O4~gD8SMIB{L$ux&hg#!mL%Drm3ccMsl!zn>0{K6v>-*sBNsa`1V+ ze?O;>9(?5BsxNmOyyPIfi(fv4YZe>!Gpqcr23;*@kf|Fdw7 z8cY~U#QxLw(>Hy;{slh%f35G;KxkXi)x2et0(of0Hpmi6i?rIBk<5p;Evh-`A zt)GNutyc+hKXkHBc~ypL2E9yg=H>9Lk&Ahw6K0M!(7BhII=3n2krk|W?-9$@EOEE^ z8*AT}#eVUCd=RtCG4XdS98O_=(J{jmVveC1rZ?sonqkr~$IQbla~WosS!%Xiidp7Q zG|xc)-VEKJDeAF0{6Sq?4y=SwhU#xNm$_`?HY$wLbeqyvdUksLA#TeOFTmsvAyc{4V%7OACF-2Z1 zrph7WGC5dWE{BSla)g*GM~nG#te7Xqh^yoTai?4?u8~v3DtR@{SK=Xgn|MUtAs&{u zi%s%w@ua*@JR$EDkIQ>tJw7V7%SXhs@?r75d_nA%e-SUp$HgA`ym&`GC*G5P6?^f< z?B{qB_6zZ?{6HL$ABn^ALvf3|LcAuQ7CmJP`2DBL;i3=r<<`pUL=)`k^&p{IB{&{S$_EME$0IR==u$s8hz=3H=_Y>1@aqdr6Mewiq*aEBue?FrC9f50E#GmoL@6&RF z_>0^qcFI4B59EvDUHB;W$=Afk@)hxkd{rEf?}+c@$FS>v!wR(y^V!c>U7f_L{Gagu z{eqSCKZFZA;_=wkOc4Kz{hps-0sJUB%8=+Ri$o9EOjO7wqEhCHD)>mMWxi-DbHqq_ zo){r}iJRnHakIpp2i{}8PEHd`<#e%3&Jfqi%f+qoN^!efAnuS0#Y(wI+$OIQugJ~f zRrph0ms`b~a+`PyyKHac{o^;}Gvc7!Exwey#3A{v_*(9PeQ}|>NDWYfR2Q~@y0Q&) z9;~hBU}s&bMq{7x5;Y3@j3d<~HAaoae&b4Yv$|E?u2!o%)hcz1x=r1o)~LJGTJ@s3 z2Da5wtOusT(jsf@Z|W8GlG>pDpzb9rhAb%!>tgUqXvbkMyTFk-&m>4)$-ezImk%5s z_Q6i2sDm1;M!fwT8Wx#8*}qA@%`F?hnTea>9D#MoGC~#zBtQlF5Hj*dBO?Y}a!D92 zg7`Q*%;k2woi2ZQPz!1ySs`VGrXrU{c8oeEH{BpN)!p~QeAzd$O|Sh;m*1hwc^8Ul zbxz0587hWeKBDc5f!|`okLmD*!=_<;*CrDlQVf?abwu}K)W<)i!M5qVxuTqLBP+Gz zhzKz14ypa1nx64{bsg5Go>>?1G)~!dSo;tr0* zb=H`;nmVdQtaj@2T@&m&j%t|gsGW`lkp4KdbMr~6BHB)?j%Yh$>HZ5&wq%C;)y9v?(qZke#Y@oX zH}I(~dIFvqZ$HzPE9b2?&OQv9#&J5>I3MfIhB!3#B3ZD1Y9Xh7F*BUxm%1kVdazg# z=NUuL3qgk)0uBRB^Y+7-!gOqnz%%b<;$FCkz`|r14L^bLhdGzVA7(I2z8HVc`Y`UY z9ImW#J;U!RF0O1_RUI;ipx^1kDAX48>N)a;72`$@wMXM4Ik!aIKg>VYE_G|cg1%jE z=xmNmfBO7^>Ioj4nlaX#%kde2m2l&;ArDqtx}{6t!*odpJQkBNnIjkpN=4W6`q82@ zs#DH^#JVLH=%iH|t4i+=<&x&}6$E_&Uw)Cl#GMw0R!Y(?+{~(qHW?W{uhRux@AP>y zD%w<4wk-~6&^r&a+WBMGi`tKC-(h^mL1FpF6OkiDML9Xe#W`1*is)D0)b7=zs`0=3 zRNrqdXF`iWpu9W~Xz|+ta6mWO?>Y$|LMHrqCF1sQN=Zf>vjECaQ+tlbcch-iBY-kxB$ZB!I2SZATJdohW;hEnv}PeL0`~qT_G*K!X1(; z)ZEDPGBxtQvP<0$PmH+j8Vu=IBCos|S^cW)9oYeo?5p4dx0mNGigCf*MbitU1uHb| zRpvt$c(mpj3=?|>&Ub=b8a0zJ{!JFRB!=@Sup}xj=S1U?6XHh-ZIWFfsv+HA)uu~o zvadUC^W;Gb1g_omC!)b7hpL2ix$-$x|3Vp`hfEQydDp(~U6{au1TrzWieF zc^yYp{`zZViJZM?M$56iH*A@^;JRB@>$OkabHVD8oCym$Klz51Ft|@?uhPh_y61*W z8ap>KmwC{!{xj_xN3O`l$SD<9gcF+?&V&Isz2<@f7{FXAOpDw|RF({X7tHQ?a z21psgp^ps>sV1Wk_&m%itBDKIT-vzJ6*(ovg$`IEh1GtiGgMHlD%*NUS@>P9%HrZs z0UDi=QQ=`oiQijXQmy_r>4`oc-n8=T>+ktt`Kk{)Jf?~lU$Ewm^RBz-D@{vM2?@DQ zO~3Q$*^8E}k)f1tyQCoQg3cA=y3SqRxm9kK zKVz-?ewqK~xmZgEC-Vxt)es-m8Ieu%!r9$Amz6pl;8uD(xP{}%z%A0x8uasjiD#J7 ztMp3ZSxe%Xgy!}9AM&l1m2%TbPyGAbbL@nsK2`km?Ei#^wj7eZXvpDFy@>53LvEMZ z@Nae6*H&T#g!EnLvjnV7ry6r!MpS$0*t$4Pdo^~Kl~y*%JEj5*UQ7-OgV!jlSXU({ zCAw1+JxQM8fWy>L{tPJWV6X@xnHCJWN65YpztnSC^h1U2qYxX%e zUMBFug?NGkFK=O>SyiGU?7eDsSzUgVHS(*L}UwUeGT6S^JofhxPEKd(rR=A;m zPitF+5A7Q`u#pzN^pfhiQ=Zn$$SXS|v%pUDC-;w&^hycy_j~PihFd&P6iH8bu$!qL zExi32d~6Kg+5mn?BTt+}M4`~O06$SIH8@C%OZW^hjW?XWp>ASk?{i`Cq#dN%tx21! zi%!<4%9yK3PbG>(o~LQdfo1kQJy+{mw?Y0AiBlu>+E*j5(!7jzFukmIS+Cl9*MQSH z(10J)aUPb9Pkb}rtd9u}eY}O&jRX&=1KLOUq;+F#IT}AkIcxmjIr@FPW;4ni)$`F% zTC;87HJgfAv&}_cY~gjEforWzW9rhj@S4r43(rPfhxI|cW~23zwPvH|mhzg-!UczE zo#PnFYc|5Q)@;lRUb9)a82i9Ip&j8h8*uG4o543)vk@+>*`6@hY$vhq@jQid*Nior zwRp36N^3SMLulc1EoZktU5eqPG~PHog%^BT;e z#m3>aoPo1XFFgwmt>p}ykM-t_zB9{!{jw;8$39!^T-k7>-T9Jz_Su@b2u#tn$(?$yEJ4pD$XSn)0Pam z=(4TTrvG_vrtG)r^~j;;oY&6pF{-66C$Ts5Ei{BT9t@Hc!>v66KE#W8hJHd=!|D3T z0sZcSZDg1NXF^_Ri4~<19!4^3nyU?XZj|+jz7Zpw6O-bV=56yr;OdIF#meWn&fXKHW4f zE@`1c1x~Zmsw+dXZABZutHj?5_OVlLx%A~Zj~rdN>4(|Ze%N)rO!PKsGq_XV#TWLu zZqV#r`w;1%yW`S|k~Ouw?nwXMn`G-Zf04}=-Z=LznH*{nZaMnh4R;^Bvhsv{Pfw0Z zbH{6-6XS(>#JaXO@eDdP6ay#SY{0+QF}KsW%<-OjwW;9uz2b+hqF?-=;s z>h2ggjeo!~ra#t8c>I(9klarsU&BGrcF0${n7%Cm<49Ob7awlIucOxhh9#^6wr13P zXyhi_3{9v44V&6AWwlW#D_FQ7RzA0n`zF1@=XCnrLAUW4LM}ACHW9La6{W`_HyzV! z{Ykk6k&((tpTE_p>bf_n;;oDNPb#^ z6aRURG~h=y#DFmV$_Dtx+$j-5DYW_MuS7B1XmchxqfA2&W}k43YG|o6exGd=IK9a= zrQ{?ObU4HiyS!jm!WrfXY`PHC9$4U8`_J#y8~>E*d2PuHFVrsCNi;KUY@5J4fHoe{ z_HtVcIN2r!{22KVY7j9C)bTCZhy;fnLp-?Sl2wvV)C&8oQ<` z8}-6AdfRryV!GATBoqVrL#)!$91b)!G@;?3W9GA*vB4P8P)AKyY~3DHNahbLv7NA% zz}Wo$tJyxM=008pufLR=tEfXXQBnW7hOHEMne$->Toq18lvwmY+Lbxp{Te9Lpdsj{eHnW|n;0d+)bJhprKn3e?Jdpf)MnXuRGg3`(JfG@?F2mo~m2bl<^@cSTeQsEA350Il82A2q|!-Z;P-{p$;i!}m}7T7diRh%C4sWi9vc=Yy=iim!%K{QY?dor_fTPfK=E-c?MIj29KdN_4{D#R(^{m}vkX2jq5}u;OHIY@? zE~X(M?h2=1tcYYNgd})2EpskN1~LX-1ETt&1D#`Bm?ncxi@wGXGaDj?bEzK8Jv!Fh z?DwR7BfBE%k%WYVKtjGdy$nr=gX&4I@VcBX$ZJqwluQ}y#X|<6o zdB+`J5w_t?owW-M&8MVnTMOO9hxjEjGl95`nbhY-u3%?Cs`^GrP zGWP+`V>Kkh#ym!Rp}ujHz(bTHratTQKoadS2&M~|w7dvGPmV?lV$G#9ZnC)qSCP?E z2#G*=t6_?xsM63~+uXj4avqvhwB=L6+d;-|kV~4@lP{=xx9OIyvhy$KRMM+#SKW(N zk7{dMT$JZT;Be&_WQPN!>>aJl>> z1^Q?Rl8=UR+?WIz7Z;4P1m|BU2RVu@7p8Zf$(&gXy+bbIn#P|RQwFk?lZBUnvRY=f zC@XDRQdmHqth7`#C%Gumvn*_=t_mUowuNJ*rq~_~RJ&+vkulfMp0>@$Zn@e zJV_*Z+#YiwTaixNUT(yCx;y{0_oJWR-Leh>UAIw<_)Tf|NAl#M+VLm@es^XcVgzG@ zoR9cb3bNJFhVJ;X8)GI}T>NYz<_}1lX^12nv}@40QPms+WQx;)1nNvmfy;z$^Y}bz zG|bb3(wu-p(jDrKH{{oT0rgxLxe(8+ouREZRzcdUwH-kt)51Dx4%2Aa+6Me#&~CuL zH`f{6G2V%G3vP{f1D|YO1K+ZFyMqU@_%;tBQ+RI373;!jIew_R3|JbN8)!$O-{uU= z!7xLi%-A5q$VQ`S+y{Bri>7goXveNj43<5coq3Nrmrb}B*f2`b4KQNNT4}S#>}u@7 zxxFQ&1JV5+-9y0u*hLLatv#FYy!Pfkln4hFlP7b)2NqkI9= zLbjIe`EBH)=OzyQOH#7OH)*W)dTmEA{~B!>$whaJ!&sj1IJEnMd{_n#k5e2Agfj%+ z$anCKq{4okW31Nb6&2=34zH-?7&tIuE!M_vv&Bm94H6F~W3?)!HjGxdTv}t3)sqH8 zAT2*FFEay=ODT3jcj@-lmdEE+&QKQ^tZcX#-VZr*-`u(T?!KGT{xdsvoY}wMEJ}+W zl&wG9Bbz<&K;*+cA4cANaQijith?=_`SU-zZQVE5puOBKmOZ?|fbnre`;5np0jG7I z0Y7HSo&l$Io&i5f!^x;ezmk2)1P>uD=oC7ae94Q>i2n&e9=~I|*udSd!}E`4$JC{L z$G&8G40HN7vbxY&{oiZd#`~TAvaB!?d$6*{TS`icx0T5I>|ciO8KZ5T7;V=($|pXooa`_Arn@-Y}V zkgtaQYvJ%70m&%s5da4?V%)R8->Q$}+RQxyLndjDpkW!bxA8KhFC)!aHnZ_w;lQnN zE=BQVw5t1$0wuypO`0?*Yf@TPoJVmI2*0Avw;UGHeSeSdbn(!>yWyH!*oV=v-5tB8 z8-fzKEJi-$eUX>Wx4jyzrnGTAD$93UIy2&FC?@EC=*-*Dw)q$%0mO>j6wdW~u|6v) z&d$O>Nkq^kmR1=)CHo}AbF*otY^>SQG1J)HeH;gVy+ldLqUnF1fdW{ z2#LSi?-G7#3>W5230wl&ANqq4cTOKPXF}H=$lWmMqB&#g{*ognbR2+rLw29pu`sf> z%Lu(yFbSCb^op~o{ z-hmC!pbVqO0^{|*Fm;TFgv|BLq&V1{cpCsFQBJ?ac!ZZZ$0WEElpHU=>8Z^vRJ>_u zVX}>Jwn9Wud4ob=KNhwSR%46p%;$tqr0QHnuu8KC>z63w{y0qU^$8J~}>=yrJ&&q9jDwWx(D_0L8#ld>t(aod~H58PRpf z)ySt-zc_Nl&fE7Km78iNOd9{PUR(3$Y11}MsH;`4j~zI;CbBk$emb3L#WUFUvDZ>? z;b9X{I%>$riS1o<4!0!Mp>lQ{Gjs)YEQ8k2u8*k`L=(M@!@eoEDt+FinEFWd7#)|T8gMS_(0%$ zvcd~_zCb8lb+s#`$S+0H1aE<>_76MeK05S@Pgh<4@sbITPSKi|z2$u5>SaBqcARlj zml=H`A1z&-|E%=?=~dZsm4d z?{@nGEE7f;Dcrq587t^x<(hByb)MNrmPaCyU+y|8ADS?JObzx@-`v{!*312MAE~su z6Y7JJ14j&xJjC`Gw~Obx2SGw~f6Rc>n%#g~Yxc2NvlAaIxV2_C@M)bv_-F2qHL%Cb z_YB68-5*nzwTETYMK&Vp!aQp2Ls@mu96c86-q^B+{|Rp}V}5-CvQ1~Sb-^C<1!8tM zEgutEmp}qUmK;%*zt{(9w6^^**2yCfwPYH($%YJ0AHi7;yECqWwymS9UVpW*XHx>jMUkM=+`B2RY}K~H?^1_Wb{hTmeZM|C zQL4LMAA4Ez>0`HSnEcG_CEEwjm9pjPVeKv|Z8>N9gGwbkwDb_#=&ZY6X{ip~TPPEC z_2}HigKM6evE>P+?j13r`T2dzFL-gu$a^mxJbZ(a{d$#zi<|d4zw$?wpgEFp`hzR3 zZaU6Ea3wi4>2R@(Fi%-V{sjz2_jA)!L4oeMYI)JDUEtUH{O zvHC;MPh%1hPJl?b3k%C!n2O2Ae3p1$-oyKSIYH34c1}^zo(SJO)p>eMu=m)L=N6r% zD?9!9EYc$r*Uj;lHVhbE<@(dPWvL4!4hJ+eE>IY|hAfcp#gGMSkG(x~3-zxB|3WW} zk-ud&-0}yuhyIAg-*4_0Fx+Y3(|cLiM?fEOIdtxT`h(gwM-9%5{IuWZGzf{iS$S3_ z+7}37Y+rQ6pN2=i*2KIgr_9_wJwLcL zE3@smaG%-Tw!PVANaek=Ye#EK9{6nf^eq!VwEaZrN5$)GiM6HBK7yWiiO~jgJQTlU z+V1ooL3CH@^gC=iAus^JI%GD{J}KBjkub*AKkf7yZ$Q$@5e6=sxpG2p|o@ficBEmg(4Hw zC{!%jnls{P-Sh@kPB~(~DA*W(6o_0I)IN%=J9+YGT^&)YS4LK^s(VXS;apjS5fdMo zZ%)#g+gN@rommP!Nc^R&{(*&htt3QEB1Tr%OcT#Re`Q`+dkY4f z{JRF+isLchq+<-YrDF^@*(n4+(@wEsUF??>!B?XU`9qDmI9`X~;4A%#g9W$vYT#20 zt$}aF;4qy1X@FynJ0k`Ma@w>0D?}vjL}bF4XHse75c3%E9yTNb12l)A5Poc4LQv&c z^aMNN3jjmVf)a~uEEp;9$eUQ2M0Zf+RG!ESm82IUf&ed5&?*V9w2^1h=o;)#u(jf* zsYn+E=XaHRo_qeyFA|(XYNiZb=XE=FE?wP4s~h>#&qhb(gshGlQ3HN3?c7JNnSJyG z%W+Tm9jQ$PIAM?U@P5-be>(nQoCrs9&v51w@QF{_0rvk{ePiRWFUF|zxb`lWHF!^c zM}zm@X)ndV$)+@TZ`qWwbsA;K?`Yth5!+1}M^^@OGXP*pY;@3$9d_;f_Q%$E!yeME|JmPm-i2lyRGZ7&I%*Fz9DjJ0 z)n?~%o2Ng(;~j;Q@7Lfp?=e~U><=S2`NPb2s1e^rJ}$E3*&haZr}xU~-9@Ju@C1qg-MwlsW z652t`*!y*R%)MWY_I~jnd%xPo`@TGX?VW2YKU%kS<0g=~O(BR$>-n3m#nsZb9e9d~ zPK)r^GTwXYeCYj1I>mG62g^ zyDw6}W^e)`8M~Dn3uSkWmwLnAOD1e%*PG^OyiwxucxWC#mr%2%3~E}r93FZ6)aQGT z!|gOV5;^)64qliY87&{GTU9q#Zj1CqNzmp2ZKpt6oEZ2lDEoK!xEqm@I1%STh#92B zErTQ`Zg|hHpo#puUm|zPUo;(#A-(ogB!PIw&u89$2703F9|KOjH{jMBW59{`2Hcu2 z4EQn|ZrQOO%p=r33xB_!%YAkFbFF!V;jAA~e`E8AO*82-1E(=vX4FsP*PzqbBbHcO z8SiiR_`N5NLZWJvPClV$-JSxso8Eq?mSpkCV4JFH1YQkR-RnNo zde^-v{~pXw^4BiEMcefHEwzJPiF>IZxn10k-Cs-Tr^^F$|Bwt14RDfO*A&zUAqbS7n!M~Ol8 zhqV=$C+ST3J>e8T*0z{AH1vj({1;yIL;$+a;iPi_5VM33H(k%~7l%MM!>1mNQRJ8A zPQwGeK1SyKPckA5Gvh3{nGJEnSeH3*@&J~~CJA^h{VvLcC@IE*#Mh*W5KRi3gz|II zl&pfHP&&PeCo+66f?o**!<8%=V_nq+*h|_Xxol=F0NVG@0!bdb-8=c;M%`jdvpIm?b>qx zF%KOZ(SPV?jN9GXlQHn&Hv9t(XH-Ex7~i?ogohNvF}`+d$8ai-5tp50`ZESW239z% zI%tha^NMDaIY(W)8mo)?+WGYv&&3%hGTD4?vh`fXy(R zILJR^w11EJ-XXQ~xRcIuA$UkJoZ9I~miQeCu0vVR<91qgMB5o#*9zx>GwRxqrz|8E30}MX1rfc>E096WagCo@Tv0W9nUD_j3p_4zsy0cInSW z>vBvr>%uRPXh#h=wGCs;;*Vv&pDs7Mv`=H|*=ysYe`4VMZTLRzSQM_Gvf&?VCqNg* zHr_j<=Qf9r@`i9`FRh`SyQ$6{uw*-S1^{N=x z@3g^7<9Y2F0blLD2M&6){O*`=~``*zLRHf!6uCD>I~7)mcJEXYXZ-9_WQ zLmd86z{(qeZR}F=`5f4Psc2)K15pB*l2)9Tf+xz5wtY8TSo4=_y0*Kx*Q|QdKc$uJe-f+I1j(!u?G;0?sp@ z3+Mxbqz1mgo$v)_h>&2Tj773T=-KB|JACyE0%|&?_*cy38t35xFw#`i$Vh>_C9R3j^hWvf{#+AjA0I z4>D9FwD5b<2`py~IBeCWQ_J#jxV*>;wrVu+P_F7!+N^!2(x#n>Hv{SqXj`;BB8d0? zTZ*A!w;R&bve<*o0r(kV8ks8Hj*`ibp1{JZ{&aG5qM`|4Bdhg%M3jYT{S*{|(qfK| zf$lX9S1~LnK3t{2c2Y$;z5C&^c9YbcYpRxC@Y3bC?q9U%^V_c2-SJu}%dWb#_uL*` z=bZnwa;E5>0vtK-e56y4^}{Y+`pq4;AGu-d@U=>wf8M~=V=ld^FMhl-#gUq-WSk4* zh}+2HD30WTY$KlQ3^>*jh$tcW`}7Vz@r2T$nKke;GPIE>j&>)EjcubAj*Sa&N2 zyj)W6OOC6?&R5CT`=g#JQCW&ZK$`KvDa3%Y?4-27mN3gbPMrB&rp$fhjI9#iqQ6f0 zT`n!nFKM_Ta!=|_d#^tS+XQxqm=EBahTqxhhTo|g5bjq7PW0(ojy)vZo8ST`(wP%* z{NMZTLHS5Hg`eXXx(7p}U)i64KqY?T5)$WYP<6r|WLk zN`~%Mq`NIo1}$1`m24tm^!<+Rjv}60cSrFI-Aw_amxR4JInaJ%>W|7XD2G2e@y8HJX9(i-(Yj<=T z(YD>FcAdslVgD(3?Uy&-^xZ9`p>`wNocB<9*DlqaJ9NIMJo3-T%12JFc&Yd8lPBNM zrT2}aFTLX;hzmxZxBejf&{J@RX>*+T^kFzH-idj>i9=xTq(Pq$YF*8Z^9*arH5D98JLXcr=Qdc^YasfXASmQ=brhGO83~j0YJD z>f9DB+<23|Mf(=*Dq6dnyPFjk<>qAh(WcY{=m9LOy)LbU&V4B1Y0h|Ah^9Ngn_d)h z`ZO;~)#+lTz0)@7x^Y=a&baOsb>r3yyX3B+l_Nv@;$3mNXLDkF_M|RbyIeTrk~aOz z98;=GvvVW+D*A@<-GybjoqL~JKtlK3H5JX}Kaw&$!K~jFmG+G*aObw`%2M~Id#0^` z)LCOTf-xJyDZ|6VDY-C?Gw?IuI6^+2_)jrNC6H=_4AP!@4LE_0z%LRQrWeJ&#kx1h zJS$}!Dxm3j&zxVoJ!=8-n>0UH0T5{f^~E?wsJF|{PE=z>$T&ZD5hMQ3ehRFAyd{NS zuD}+K-Fh@v$aoB}23&|EB?2{)SqNjPuw`M3(h{&Ugd+jci;KJz^(SLgM*)S<8gpVL z_8lwvEj?d_PsFGc?HJ6j1-%!3})xPyDhqWI(BQbc@!F%pKa?Rx*+?ClZ zXW8=3)k_{%lRMRPUQokrCH=aQ?Ia)bV7CT84R~O{;Wv^7`~zBt*l@C+4EX!x$A`}9 z5Bq5&{7lLG>s1rOB*cvRD7Fr-uaYl-3{4cV zS@U~VSB9^|;@zL_Z*xc9Mb+&t%wO5&fk|>*3=8K!c;>Nn^Piq%u=*Q=yL#tYQ@dT* zr_Y7mrp~JSqsic#n-n!PywBnxKF90y@Ozzxi?e;t@O!a* zIN|p?4fllh_8ES!hB8Keue+GWUHa!%d(j5?y|^y;z09+mjB;d88T@%ihs{p>p*CY2 zT5xW&Et|AM53r|d^ow=I^Vx7gQ$t*`ao}g8_E0R~u5bq4yu~0<5{?>$QRK*k{Y_rBMCj_4 zwD>@n7zM=Bk33I;*gMA{WDBZBO7^?K*@hWrEHq2dp4jn1Fh#aH7XQoT!Y$4$LcRux zwR7~5(FZ}#yIZwtRo$u@0k1{Hz5-7IB1swy$_kp*dFMXHc}Gq>OYujCrM59<91fbY zxkIe?uA*1l4mVpW&m4#HTXXD7Awk{gJUG{?b5G@ih_;q~8ZTeZ)vd64#dd=yn=&4bWYV57u&Ro3hW z=`<%g_8(vm+QPuJV!V`QOq1+LXnY>Dqg6>>s;h(6R!jwq2%ZJhI7=wt7n^(fJg9wc z%Yi)+*4<-hV~qLXk@ebI?XQ@cde)zeyoAv#UHP-)n0xaas?}IMEGP+u{KiBfg=tC` z1{$rkeDuNu$7&h&liy|eRd6nsc9WD{hgOdsD~lqZ9eDTMsavOSU%pV&JdX5|R9zpd zWc$)tGfKAAp3T@Ew{?VcLBUpt6B{5GOHe%GOQzs)5W8NO^R zrwRkgsWnSey0c%RiX#U!!_^sZIGL$XGsHX~3{{_;NG7mxSV?}r1UM<<#$eL-^-E%- z8BdMA?_7Oa8R)qDeq7!(w9j6gEZcv*cxJ<=hbyfI;{o_VGDn<6^%)ezQcc!wL6064 zctxhiMLh=g?NiacqFcxIbe?W`X$Y|}nHh!27}$mU<_GU7RyQ2t?3VWX(XsS4Cd`@w z_@qf`(wj- zYXklO+hEiIqy5q0-gq4Qw$dy=rnln=nQx*KoarVL!_r_pqkIO&p2LpZw zk#K3Kq2&Z6P08uTEO+T*NJZ|9!Mw z+tZ+_dhx0!X=!%Bs&}fxBrA(>)*JO%0jyJ!m4n8bto|nAhx0uH4qN!BIxeOfCtgjp z_F@;oE{rW}t>?C(>>!-8QXsLQK%MVUoEO^6aK!S(iyC9b_d^os4JYO21EGx5v7)C# zHhP<5LA-FA(+k%6IJ*XB8y%z(dm^N9(ihxj+rIrwzPM+*>c73Vc00A(ppk4>qEV^Z z6Zo*8Qt-TyKG`vS|oJF&d%aN^Zl#{W~aUL?^ zA?!UHztyo@dqs9IZQBm!US*^FBwE4$D4#O=H?Z z_PGH^EMyeUO?DM$m=1m>1eOLx+A)0GM3c$N(i2TvixW+2wAEm&uAXE?xQvi-% z2;GS@EVJR9X%%js8IOQYxVfMx!5Ix9;+h64#$+F+W)w>o>FLFMf<6UxVv@p2+?K{R3X(8no}xufYxI_xfMZmo+%oZDKgdDV0o3pq{a` zq#Hy-!&{>{dc50dH&_eud3T2Mo5w!Og`f5?&vne(<^hLEr^}h=H@hpcKyHp4k(>KQ z)*E`gZn(VM9l5dY)daL*5zcrcS_|Zb#CPM&D60+HF0k~1XWdC4-;VF(L+A`e6eT?d z$Ydu&@nF9dlbbY&EsZ&oE=Uo#IP1$gl@8>>5$|$f3w`#$qPrqj+7xR$lTuvRVUO&S zv)z&FKr?7t0YVpn<}>wU#<}%l?CrDY$Bf4HBP>~*LiYdA_9pOARcHVBJ@?L%nd~!@ zjjWT&WU`WFGMVg|gluGi5JCt`LfFD0`yv7YMnFYGL|oA#qNSE1KLi9silSAjxKV3) z)w;D(mlv(Cwbp9p^8Y^P&P*mDsC_^0pCy^O_uO;OdCqg5^X!i~Vhhv!n|;JohgIU? zADRyxy(lY>H07&;R?;rBG%YmU`T<{g4 zbjd%~hyQDdb5Dth356nfAfH)ibSPPxOhyB=j+E6b|)mUkN!kXvmbVQmUP&pW}dx(m>B=HRdmz?dp2BH=?V@(#RRwpp_HeOs`z*q zFHVDP@x$q1Z~x>L4i_jlv63qc+n3Uv(KdEQXqBye@4f$K9~?NqG>6$_`&m2t=&<{@ z#V?i0lWAi!NS1>1CU|zU@WrtJxZ!e#ZnCgMfGLH390wA7NSd@r8|LwFCsmmLO=xBY zZj!OZ|K^}4Db~{e=Ab7@>w}DTco)6cE28>!O{jU523&xTx#Br4AVhJS7~xo;(PDsK zl7+`vA(^CN@E9a2__%6(sQz8@#GJg&SnK3b^C!F&XCCvWIW|4>HR)_wc6MP|Nzt~u z-R0tgt+l7zTg4qyYsSrXZ^pi-{9^>qWHtqp@$g@C*5J!-=owAIjmVFQqXyfZ!sHEn zyJMSU;sat30V9$FW3b3Gz$^`S_o_k?8C~HK4Jpaum68Tc8tkoZ`?w3MLR;XVcLPz`S*t=2o3c0!V?ywXTK(d zaTHEv7Lt&LH^oM7DS|?#K%^Xg!W+lLB+AtdU!&vK%?UCDo6=HlR>ag#Ah)rKu16Qh zJGy=^g@=uZ>t~;PWL2z@(fHx$cb(HM0u~XV+BC zbUJ3#m~Z^_uB{h0ZMwMiu1{}#YTVB0Gj4Bg-adWCPOuR)zf#!CUgEe1`x*AuYtjpT z*GW!OuD|K=VOH9coTgkq?~!eAU8UkS9=c989>_f0#$&m{##0J>e2MeFN?Xr4t~}!% z6SwgU?(0?6w^!JBXguF=8_(dj7u4n}Y&?AI+{QDw?N`u~4)twT=1Fp=(iZg_IebvR z(GNZ(chY^b@!*$l>;=B(_;tX6YA2H1iCk^WD|ag68EE^8C+D5FE%}uD+7it89#-Dx z)ddV5C*)#}Jgr5PV7YSK#})gy3Ocdy?^$>!_ z(hGy_YTmwwX^S}wZcFPdH*`>AYrsSJN0B7TZLI9E z)YQ}jo>>Dqen?-dWK47V-2EaWRNPkKQQqRrlV0kbtWpxDbzFaLg+i0u-JnE1s>CMz zd6eW!nAXuLZTi~|g+zfW`4$+meCg$t$ZM1XTulz3PFBYvON~exU{Fo#fj8%X_-(rY3xtxCa{L3pQ)_u!XB z5QpS|;FX;S2cjgPmWoU$-pc|0mtjF6sVXH9<|#>~m5{tlqw%t*K{^DU z3DfiltH!!}1Efa!+QK;OZ3_9x`*G+~u1wzpbc=c;yWDWkl3$N2Av2TQdNM0BD~g>d z87UcQshD4KvMD7MCJxk^MOH~t40%ss#os;>)~W%Q4WnYhqf|)b1V+waFnn-Bhh03d zDcL&1-m$Z*>;9?vJ;^Dv^Sf_uklUn|(fOmDtLnD3x>#XBnO!;`p*Dnw(NQTSmb$9M z{A6qPw2w|4_+XCRno=w`_w{R#DQsE z*-lwrp7?-k90%GCTHYjMq809M$+WzF6|uk-cZVHAs?QFFy6`hL+BPf}`TdjM}~l z>>vH@bEb=kLoXx;pwJNZu&50{#5Ii41F$9@PJ#8?Dxe{U+0j8T`-_U7&G2c)nqduM z`HA?OW3ds)2kOO7zhpK5jZ(=1@bGGW2vZZ`Sphu-Y`L>>K;b6R;&7M2fo4RYW{oQw;u3Psbh^@L)-pji0WUmax zZcIxp^g#Z&53nNNuySM+YZh8uVM$C9%gsoFCMj8<6!h|?g5!JFpHpREkvXTzkFG@G zRMRtUgLA+sCLB@=z%>%n^g81X1gMbzfqxD-JTWu{+#heMn0a9S9e z`3g8n*DcC*@PV(W9Bc#lK*|BP!NUhCeGu(X`uM}3K5p{$!LRc^M0iLkeME3$G}aCN zu(WQJ18%%9MVKM{(iM}B9B||9@yG!ehnR#xIp9cXX#snHl^vP`jyq5N%p7oo+qwpF zcKPRi<9wYGqpKmlLl0!|W`9e$diJ-Ui6Mitzg>wW(tTAco3%rezeTJ&)AplCbL~wP z`-aDxx7SRG7&+MC_8!fcmLEl;6rdXGyBa2W@rCPL6dXA3#Q~fjw60#<;I*23?U(wl zzv69=bHl&=pZ%|Md#r+w{5tTJKZo5)x!?AJN6Qw@xhA)5^e z!pb;^msRrrWD8jqLy9@oN_B@I5h(83itr0}5vVzc;SVP_5}aOKg7nIf?EAT8l;bU} zI@K|^sdstHv}qkD-h2Dhs$Wl>)xCN1_=lG!`sa6>F?sT0`Sbp{(uQyT(eq$u_pdV2 z&+J(C#4Jpc35${M;!)L$kdE41AxQ!7&}WTC1P`f1Z}1RRk`PhYi*tEi7LZP56G$-r z&Gc&k_Qs{NhDV1-Bvbx6g^PpqVzfBzICn!tIHGIK66et2n=U=t^lnkLGoqxZ#E4&>l)tLW*f2Y{$bamq!hBb7 zDuOInV~^#FkNpO7#Z$V&xn;(%KZM{g|zHD4-d@m@SRzP z^|LTP>>I2NVx7)l-|WS7wXoODLXZHjWY@q+DXkx9DXpJF80B*1#fVzTk#Ewez=L2< zNR26Qv;aJiUr$5_O2X42Q>5jJN=X48#$~EJ(uW5d2?Z@&lX0~bq+mr!8dAVMa^>|` zUDCY8t2On5YS;fF{OIZ7*Z5F-B(I;i7<7f^$l(Aw@ILWM3VftTH9bD~P)>+%2|nVX zZ#jIZ4QP!2vwv1~D9=I{?|=O-#Fqh{b1z?z9t6)CBP@Ip0W3f%kNXqs86?G0co>-$ zdI*=|eNN<*K~K32n&7=n!DCdG22Gi279QnE4+YLVxybzqdA?0B`jDcNr`A(=RTxN# zYxTwrvcO0FqSzX=As+^7)9$KEf94Ib!@d8Sxn&D##Pa?R%Uy{vdDhzT1QR}fe#Y;| z3vk9u&-3{z*GUJjT=)7)Dc4B{uUtRx(IpP=jX6KojgF%SR$ekl;7SY_Wojv9v zED0j}dmuf;^ZeF|ElDG3HvV`!MWVm59oEp(UlRIrCE=au3K9r7>-C`VNb^n9(=!4k zm|t%|QU$BY;7Jn;5zn`RkW0LB2(2w?u%(YGXO(G!Uk=iwY_8n8^ITO)L3`dC&|9m- zdtL6O-W46R&{HTsABPKH-y@#&{eOIY?SMPME14~dJSa*(1b3yqHxG(( zoqVK}>t9KLp%1S}N3E>W>mJ*VvVJ7rDA&DyX#6_YQ7hNEADXux4RYV`_N1f6p%2mo z{NZ|M(VKFQ_9A@Nb_17Eg=<_v76|Gn$cvCNQqa;0M`ATd^FYyl*j%g!8*iXU=fGX8 zrsuArzJ+9pjZF*4lYENYIf#s}))*2bRX)!%PvGv5<)ej#0$VbAJkav_o_xT&Ni`wT z)=R#sqWmHp<}2q4YRBQHJ?J%@1o*4MU-%p(vtfk1>${__|8Q6 z)}UY2N*2lhhj0sNzuIB{>nZu}kN>_UEloPr{;M0^XQWf^QEbZcJ><@Xp29E|7_8xo z)_XjZd=Y%3iNIZ24W6fu4D4P}mUiYaH@Rf$yH3shNa}He5hc$QFJsEfS7>lJ>>5#v z;v>u zxlVLax$dQt%5|cH%5^Ut9NG`3cb;{53$O?jI)~5E2PgpWer}gMN1x{^_aF%24TLVP zb>*=SK^W?w?0jZ#c0N06lut78`IFztuOm_4_vc?=7uf~*9COIIvWeBmrvQHwe4h4V zOo`ZOnL>%n850Q#M^sl4p^>tUa^rv-2JW@`fduXHAw)xTmv@uG?yix*tB2v^pv=uF_!r_+0q<{ob>F&{g@a z)A}jb&#OlGU8nU^uAfsG{H~MCqFnd-KbSygp9HMD*Z-`}^J`B!GNt{i9$TF<9-_0# z^$RM*xp>FJ>7#P}PoB6tr9JI^<+|bvpwuRR4DSsVcKt{`KXQru$$Wm;{6Cq`Z=el# zaEbwzKy|kSat#i_8GtNz2j!IWs+s&c*;let?3W|iQJ%@~(01{f=eE1=(gwbX4giBr zY%nFh_79%5Qv9%$>!f2)u6uP1%5_>3x=wWxJ^f%!2sYmKiVuLoLqyPRO**|6u7pLB3DyGrE4x-yNb;mc~3{( zEzU-BN?yIAaDM$E_ZNr7wi7$rI-CWE;u4ch_JwWo+QT#%HLMPTbOEtcBZPDzkL$Hw zaOp=NJR=7Yjb0zbY&2EG&IH8f1O#|L2L}>qU|l*jr}6Ok^~-wtA3Vg#Y&IUJ;3;+t=N(A(R%b$UrtY5KJT&fxNwOl5#h9I~9gk=g&I zT4lB7bd4%R0D+`BQLyGvS6EWg3x1VRO)L;O#TukT`b!ViMsd5WCvzGMIXovvp@WRIWQSyw+H~%c>gRXo*a{rE6LXf<+%@I) z2VRb!HhO7iYW&oe+%);1cu5q?=2c(2MAclCma(+1a@$Sv$f>1;dz&XqdAV^}a^Idk zfaMlumsYElx}O$dmIAXxo@7gb3CxU(}>A29+mxhbs{v?+- z4VNX!l5F-*!=>}aWq1`(SGtPP>>jvhV%GzmQ}61SdjF)9;^gEab8>OAxhPrQA$}z$ zcJE)X^yutKzgczdp{|qJon;kWd3jSR$|jAJCm%Y5k>MQR{%_D5V&l+Ic@3&#z?ooh zi~&!Eg&?_IZYJ|4h;=Zei$!8+i*!uZu{-(Ea#$2(mDKFEUC%ySt-9}rPqcwMW~rk3 ze%MH*3_((by321%C)FnS(!~fCVUtUjln93tcqw}L;%HcGkgtn$S#do0g~M{7mdx_E@ViFq_3 zHqO7=(ZDrs$%I`LJl_N~y4I0ed~vn&5MB-mm=E zg{8e61>LTIH0TwzEHLc8#tWO59h)=fS9{yo!yH*Zee8?BJl{KRT6A(~1Hz<`)z_q3 zzG}m?{fid<{?y)a+Q2t3yk_9*7QihVxh>0tovtVg;vADH!zeH<(i?|Fgpk!0Kafp91+BTKGk|Asc_b)zQ}R>DHIIsu@F3hI9^OQJK37<4 z9lnnm4^gCcTEW31ubrN{NK)vUInQmDzuyAik?bAIy5}w5l3N-Yw|nixv9&8*eWRaS zwDQT>^G3VB7GXz44MQ?{i(4MKVeymm4m`ueiOoy9=gihT#d@bSPR%XdG;zYD2YTk* zZI*ut@iIu{R&XE@Xh|Jb_%!fd4{CxMvPh0gxbKUDisTy?Of85GCGaO7^?@js;qGz- zN+5f~Ml=>wo6rMZgrXs!zunZgfb`Zb1WN=3;;s5{6bh$uUsTtG*})T9!cjv+%$8%s z^k44ZFDIg>(mSNQe))`imVLw4(YPgHA=dv8#+@wKklpJ}=;q;tGBS3AUPmwTEW6@1 zgH#x_?%c#TIpxmrgBQFsZzIYV@kTQ|S5?CTquSWur`yky*}&84nNarg88igaI=q(D`0sHibw zKq}}v--a!Sy!vdY1ym~Rb(su+Xr|Q&zdmH9lAK7lpz^>gk?6BGZH0%zAlZWA)-pir zf3z8gn1z@QFTwYwuK@dw43|o8YEJo0*D8gObdT7oy#}{op)4S@wwskyOe+LVWwH9R-_O=A4uP8h& zsl&A4)?n4a=B)fN8P0jh_DRK3+mf^E*1vw;9u{}}T{i0RmeKdKaI+<{?icIQox7x< zfUporr|N&9cwuw%eEX=P1rLGFGXWmT(#^m>ozVFtRmbt37C6Wh*$)cED zKIp*u9sti13$M*WVVz5tlV;NRo!dT#`2Xv|=jrK!kY1SXu$b}g5m`#%bF%#VJUa*3 z*>;hUE{iTcTK*3(zxA)#V6;?J1|S?=q*gCOid|IS=i~`J#tL$ z=o^x)YwB{^pn9M^Krq^lJwPzZfhA~<%a{PH4+q7_4uI-Li}mwu0br*x)KcD<2+a_5{Y#aZ%_buN}p$ z!cYj8U=Q;wdGtjHmqn=Ti!aHIvtMkzm5Gi8RjpIA0;a6%d1BF`-(6okK3THW7f)X_ zee&N`DuXUONsW}qQSwXj@7#{&=3RIor}nPC8OvT?fBmc1y2p(kebb#qH?3K^RNkWs z)P-u*ObZSKX9eJ>@Q8`RGLP8@NY2UW|229MN9f0EE9f<-80HmW87l|#f{s~rUQS0@@G<~bG>7QK=!CGSutZ|oGZmpyjvko;7fNfoZr1nk7DjF{*^y@n3&fn(NlYNz>P$N^VOfU-%zSvXZ2 zFmTTL#gTg?PR}tbayK@dv+!sW*KKHMzpH!hLs=U|RNCXCpajwuEfiy;Gg|VZqerXs`p{r_xX9t- zDjHfc{|%Vqgfe4YE3s~YLL#Ljq(hIcQ=t^BkSL~$&8BdpgrQqOvgqt0>jHbYXhM?Z@E6!qF9CK=z-|QaAYX8}^0QKn%Gu?mD!G19TzRb7W`n*V z-T0bEGDY%t*B6 zr^krAtVTAiiUA4`F{uu!JMkpNoYrHdl_Z~om&e?)ePfB*lLmf-zfS|U<15`6dW zN0I#xefQz4$iC+Hy*MYbfAH_#H4{-)fzJnWZ>M?;5D?xj=eRv=86UAwZ*se}{m8?`P58%G*N%qVb`9CBKiu z0{36SeJ8&Ur2@Wxg6AvwcLQ(?=a6T7$~m;&rSqLbin_~B4^uO69KrX~Q?t|We#PMX zWH0v9(JEFrNV(J@e|KpaKNzF3#%0)%6J0eTivw^D6(=&MyIM2gT{C_w>H zPrS(-GGi8?I{4qaEa_u8g4 zwXV6nwJZ^O81dcb?lyNebxs|bnh|PH*J+@MVQQm(#4>pjSc4{xMlW7H8v_mV-w}k*oZ&0OuTF2{6`zsGsB8e zrLCo9*>+p0%~9?c*^{)cWY_HWO{0s7U*)k(muB&<y!ivk)T(Qxj=nXiQh?SB5N+H^-&Feq~^dcoe#i;{&P>P#s_9pdlQe zgX>j>@_VC}4CVJOdf7ddV}RXbvj?$z7g?af?19$<8WQdH@_G*{x|E^3o`-l`!SdA% zuzUmb_)1+$#o%VpT@Is5QB*Ptbv9keJ?j3CxJPC#w+`YS(?iAO9_~?9{iEC?bc_Ss zBX~#8ITt7tJ*lvc3Uc7oQ#eSz%gf1~ECdq<5k!7kQN)EwPZCp!8L_J|mEzU`u9E1H z_Y76|%2h6%kFQjg#-|gh@nbJ*d3`vdD8AbjLvF+41_L8Y5qZ`rG9MlT5itzqOns)I z|8ve%6#qlk6nv?NhakQ*PbeZCpqDQ#^y5nv;Fw8O%Jm+cJgZT3Ppz&TL{k;ff1n{> zy5SnS24VLwEdV;xmHh4??6o-^ikr+;`CW~JBqO53wB!9a-q`x9F}zPPBpr?CTrU`r zpJaLe$lz3|Ccc-j6}iJ6gPpM(n5H=bn`v%ll#NC8_lavacDAZ}+tG%24!I>P)2Ur+z7XlK$1F@h`z(KE8t0vGHiA-}Ubqfk1 zWT)9s3)je*9kPr)p%H3~V0d7Zmhfs;=yZCt%UX@URRP8rt-a7$2*bR~(tnbRmzC+#_6GDt+adYXl-gr}5dgduK~Is6)U;A@EpK zVZLxVSLUnINE49Q3QUnkB~r#EO&7{TNSc;FFcwjfff0d9{-n_0AU<{dl~b1n9aemj zOKFn3k^Ebak%?F88C zF(-Y1hO%wzyO8Qit8Z~Q1fk01sB~0TaAy!_A>N$>A9GWB2uugGyaq%(B!~*;d)bgd zmZKpt4@Tg@U|^hBSGrOksFMQAY?;oH1z{DY_?XnRjATo#wYzs~)k0TBQf6`E^$kvf z*IRz@`lhnFPiKtKMx-VsnG-bk2590Xo|o9L z5s_r$4oM}2qT-@Z=<}@cT4=am!gfD39IVu1TRS^jMRADG(zjzrU*8TsPUy@!v71Ao z#$BY0bC}b@KPYx!w4S4co05NY7Q;_NQGxs?)40kkNZ#CY`E$&p5L-1?xTI+AE?*+e z9o_S-4SDqV%c4}BXonIK4b8Yj6phWq@y*%rNECAfN#n_ee5s7${cE2MX-}(}LaX_6 zYNW-*k(!k%4J9Xq4XiKKNc*w%u|h))CURmn8u1ohQU~EMypdT*(Ga~+NhP7eeYNDnR;f8 z|2mV!H_Oj{_Q=_<`dH-5lUrD+{6gQMnewL_7|dhnf9~Zy(k}n=M$Mc|{KVaNMBLD$ z?&<#iJ~RWn-zdh2TclFpU;^z1NI?_nI&z>v`XXOrLVR*Z7z!A6$}c70kX(T1rkL$R zefrG*MZa%MD=Naj9w&aXeU3>5pdk2HFbM=uWObJ>imRlx=r@t}w&K$)Knnp<3VI6B zkoIsAoS9r82EOZ1tWNaa6(!%^P7F(kR@Cgn?d_qt5ZST1jEp*)wIMsBK0UoIP5GQ& zpCQglt+HBOsVOd-wJO!!XLVUqt5U61Hfv=nV38;96YmkeM;^2=SFj030$<@QT46P( z9|Pg9+^)~^ikrg?@yV(6*_mT za~jLg?@Oz#*6Q^1>eSTgbe8G=B@F3k^nmQ^y-s-ZYx(Hx4`Z@e(tabC{OX61G za3JX8C}nmiGp|T_k&1v%?&^H8joA6*TRGF$fZVWx@FzBCge}5C31pbfQ{ND-_J$!d zVco2yrg{u>Je4~-BeNkRyD>AnDMPg@deZpTPJ_O`U+%Egq}giIGi$B*0Ql4R+QqGi zp(6T?OtwHatO{ITfPp|ncrO6!P@hQ>$8yV5Y*=hm1R8q|k|BC9qmk1U1V%WGqOmC( zi8eDDGBZYJOmna?)io_FPxWG2jm=t{nORE=%9EhZ=LP`q!HR8(?aC`H&4a$ZZdHAAb$NNsp4OXM zT5f7ZKQzlSk);FyOOa~H=1)WNl|FzV-JcLb_5d<=J z4~u%3)rj&lFs93AAC>?6A^8CNJHoI5_a4xsm3$vM6fA{WS0SOw?t@mA_MZ15-*wOo zb5tPGI`lARFVbd7wN_g3FV^=7GzJf0J(ga+2-|cIB(qXs+OZMQv<%Rj5G_o=ZO8=D zdj2xJ7W)JYDTtzq*IjcViI}GWYNo3s)l6SQXl-3#Sy@@7StSMenHdRj8AKBqYGnPC ziV#kA5m#=gL+Pb?nfByqQ;WLF^;z6=D=2i!=y%pHd%QcXBrnUJe6H4Sp6pV^oR)&@ zs@9QXyOJ`)>p{9mcc@#tXx)s5r_{}>&&eonFI+0mzY-n`FDFV{Rl5MsVxiPkl$Hut ze3+TQ3BUd!fP`)<<^-r$4C6UNaOCE&8L_;KU6lgRM7yZhN z5@Z~9QR_F4YrNBTc9jQa>2z%9q*c58XW;(#&}kz{^%b+mB0=vjNY#>{ZWAox$jdyl zg*cLY5NQS3E~#4V#XX%6!?S2A`fe1(#a$%&O2s#)}8;^vhD3}~erCVQr<{1uSFFz!TW_kvK+cn_R z&Vx_Oa3O?y5TC}G*C)};1f}s2{9ZBX2@XMcK9c9lNkD;MrjXA4^ zC0Hw!iU-t-$%mI$^&~bTL1>229QzbN_a1K=En6FBU^V4s^^Q7e?&Ot~a~c}QjLG@+ zvv>e=YLHJ#)$oI~3SCde0whE{ESz|FcM3KN<*7H3nL$Y?8UrpI`9?uJU|E2k*t4bl zZY!xjtwKtc*=knY*??(I3U}tA_cS_q>cNFOO0lPl5ht!s>`bJq4{^2wTgI}S{5IzDE?nPX2s)z)@;^7gFsUDNNF+f8uCFqU90^F4Ec zpE;r#y>o#l4U(7na%y8Pa3+J2O0D+I1?M!^p(qXgZu{nfsbraXZY=K{NIB=76rB2% zIVh9TSe9>})u|fes%=qKR=>3G%vp80tG%PFMAQ4+z4FN?yXW39eOG$c_Q|K)+Mas) z*qI4qjyFv|uw!2h=JECA25F&sGJ?wa+0A*G>9p%W-c?u)E<-r*+spYr3!pOPPuzr+GE!6e$HOQ^*m`Q(+W>}>?O zM3|)i675evP0ww_a~t_{(WH_EV3p@^i?xJ@iHN}@-;a%w;1}sJ0@#CG)hXup;A0?Fq`2Jgw z3@}Oy`pJK>*X8}Jwf7sQ`WrrsSt7IG9=3E8{9XPnzk3b;wDKSFdl&}#+k*ZM`1%Xf z;-E!;HirB>5#h=&Cahw?@)GpKRNwTn)}DpT@{g7BsZsLwYnb)li}8v2V&IxO#doE4 z($yV-hR-`Lqu5FVy7}{OI@!`%R=4#-`Fm;)gzgkS^0Y_dZhEhg-pjUb{pRzVS!?H3 zrulHIe6kkfoF(s*7UK;jc-cg_4C&D(aLV=6#|n!%O9a&fB9f2CAXz{QN0cis&Qe4& zTb&}3G5b%7Xmf`-#zf%ZyYSu5;bX#1PmGJzL;or?5Lv~zB7mC_=@DtTZ&Xp;T0S&v zJaT)4W>0YsAMPSjxIk1~R@`hb#V28yY^~>eMD&Q*)Vgf(T}5)7>s*!;VhS~7rr5l~ zBwY%Ri-=5##wEbbe~eC-&O1g=4o{sj)Hs}Z$2_B+k4zx-2=F=A^jTs7Pa20Ad?qK^t(*0^c|yl4xQI0ZJQT zail5%HBOXVLRK!V){$xphfy^u9GEF!ig2!uGC}_=zBBe<#S@EHZhHONzSq{QTz|4) zpIEv@K2$iXYViWrFF|P3>*F<&>Zxr@uem;S$)cbKndSAjndP3amgb=Qt{=zP-pKwE zw&;~xqNLv@{Obi)6fUYG;=}+A)EcN44;#s0_)sUn|BHMF#<{`^GLy{-@t6nva)ZFH zdPE^gmoE0EKbml zzirY{DMTF_D#CC8#>BUN8CbhQIFeKg_q$@M%I(=%HcN6+e5}ZVHBx90Vgv<^H85a}$&f;smpIbEvIZEUsyTjmd~gvEsf|>Aa0HSf?Lw3h2xN#d0yDQl|siLseq$0y03IL>eGTOapLLc-_lt^xGg zd1UF@4Z4-Lgz5LbI*uj1`~}P1!W!E(fwOOJd;mz+l-+;5o{hRe3J#Vp$djX`ts$!Z z`^9GmkWCckGlz5!a#Y8`2YjrnIV?0d08TpCC-BmYia_c#sS$Q46TXfP(TYMtT%^c| zCkG`L=YWGFivoV}e9bT@#K*^{ApkNfgIG8t72Er1)r4aF9w8 z!m-5IK2!?>3UVyCACm-UFmiATq{|+rH1^6?s9!`Haw4==(IFs6|S7IpdUEH z5bwpQ2)t(K@U?|22OH=NVFM02gt^$l+0khSN3AoN0@P}2OWu9IXuNsyt3hh*_&dv1 zBm76BjvSTp*xoUB%y?CwX&;%(@>hq1O=~=)8DR=lr{(L}qN0bFH}y?1tWt++!Y!Jl z@M)v(2lpBflcAH}bUbon`_8$hMXJexB^fDI;qFi7&diiQP~dbgfOTG-ET9&jytChyE+ufzwddON^9HK3E5+HvL#e`OgykpdvqwaT ze%0CGbQB?--zsVY4+pBF=Q^j{HF4726SHTS|Ni$^^xCIfZ5jb0d)V$W z7`ZpDq|RnA%CkT{1$_`CGvKQOhb3%&=s%Gs4JDM}ed4iM0SB=1(}J+_Nd&xXoLmS7 zQ&TYOl@AfTCVC&x2SO)L(VBTeZf3eI)f8^9A@NbTF&O$xXbNo>Cnp_HYE~dZEJ~ZI zggI%E1dhT2@QeGQ(J5vTgMPm`Weqg$UI^VVJeDJ z6H*aNZ?J?LZB*jXpwJ6aw;?$ia=~%ps3kH%ntFf=ecenj%ffb5UI z3^6=$_kBxSlVPBBq!!j_bsv9|6Y=818oT1Jz~ zB#rzrHVFZE7gf(5=o=n0aAbgPwhR7tk_wx|739@jhw;1uB;lI}ayx{ZrAOVbvKQr& z4?g(Y;>A*os#t#O*}Hbg7g+iZsT$ml89W~4**4?6>T(&aam3qc1Susko{|u%h%cal zM`J>uTq<(+LssAc?Eo3X(Tr#0@-`W`JL!1Bh;SoM283wKVc9~3nio197Vt^L8j3fw zy!Iz%ue|NW-pwyAT)E=ek_U8AmNC_niaO<+7j;cuDsFavT34rDxXg5zC7pPO#ceaS zHt9Fbzb7!YqBXF8v^MLjkbax=kompm_zn5wO|UE8u!Ce zHW<`qy~LoHkOc<<6*xa-=264l=INQ@(Ht5h3NyzB^*+xN0;vRAoWSsK8`cNRG7!~@ z@Ft|t0E!~`6sdcaig#EpRgnC-yxDna%$WW_Sf~#-V2>)m;bAK!Dp3A-^ zvLmly--XHgxnv_RMs4s5YNR3&Nvo^mnfeeonIvpLpu5MeVc@Dq9DCv5D?GD}CT$!j z5IGwIIRS`nbTBa8;qUYLjsXA5Hj*BEBQQtc)=_$zN7^1U#>XTpbtNn6r z2!SkMjZoA7aHzzQbM3>$U!S`4DE@q})*?hyevAIkyl3XKto_0|aZJg&lJ4Sl#jGPV zI5P6-dF$qNML=Anr#(5?J((C`07{~aC?7k~*m=04F+h9n@czT9 zH@^B)|F=@mwYNw0Z$H*@4!BTffH$Dh2`0qc`&+}V+Jw7vSQP^p9s$42JA(i)fqzg7-MnKp zkB2tI#}RV)s74TFBLP-QzEsghFMit1c8NJG(q~gY{_Eb8EiL{3So;zXbgH}by6f1X zR?+T$Rrx

~ZfAdpL@UEZzOfmjHUG9$|Nv{)Tx6LHeC4%oOGcON8s#zZIS)J_CGE z?#RqE6crlBv;j-zPH!t!BeN%%B6TD79#xYV+$eZxBUci2fn9S#_{8;Ucr9^eEhKp2gw`=N)y2;IJX@+YB`G0pgdr^0 z7-BSsCx=qFDUM-6Gp^lGBZ)V@`JAjtih*=PsazdMQHxy{0gEeTdBD+LDMmrw@%qZ+ zWQRJ2_!uoe>hXTtejsww{%yN{OHlcW^qq#LhNsT40 zqbk$PknTQ%DoEcEIwn$;k`@u20>Y@(#MR~`WuzC4oiwv;d0QzQlr2_sMrE~18=^HN zt68Wd|6WA3+IUe4lf(#V(OnbVYgPSiw@x_w{6TrUoR(RVmD`@5k@iet-04-Yw?`S{ z6GB$K8WoXd4z3efv_5h~bbMq~f?>qCy4ney&0<`vDIy|1qD<21L&yn3C!Llk^P5Pe zPOzWImM%#B*iW&b@)Xf{K_PkhfqF3@7{VlR3*jLei6Ob4i0UA-4J-_jco=LiK|#DI zCJ4TNUWNbkNuG0|2pFQ;1Os7EfG%kEkG)%x!X{t{VWdh4ljuN9vDwUKTb3;o0%R(3 zE(1rX{BX2FkCJgx8aX{e4HmF%9(2Kp>7Y~742_Z9Y=&(}4N=b=p+f9mgk9=)vC5|S zR}Y^5d=&n$Cl0=rJl5UJdK~kfV_Ven^-MiEQr`Nkv?nMkqJ7;?cfVw6FKTB2+gF#r z6dD=pdN@11gXk4_A;9;~fNwND-LJql1x}TeAxWd2O>!G|8JZ2Yo2Pc-$LBz)!Jlr+ z!|^i|^QczPYqa{=gZc;co`BcD?8pf@K`hLi7#ovnR_JwDAVCK#gThC6p`vJb0V2gc z!@}k;CSU%1D*mu1?tFIY>1CoeRs;2nCZ^$GorKi@dXR^&wRe8wH+xp zgr%7KK8{3ZKX2$!bNK5QDRLzw3$tUkfy!X!FzL_|>W%;`||Jl+N zF1NCyAzkhNlpLxJWn0!w-F3re+Kpwp0BSWS}RAQM1E;}gzY;*q5 zC$OZXY=&CJ_ar*fPV_vb4S>`XQdw?Iv4uyZS;M0!t+e8|V8eu!FnH2ZdZZ;TDMeTm zeKg1q=_p9*Afd@8ZWNE7nx@ljo*FRg@%fW>j@lvx8xo7)m6H{~62H*~#F}H{5}aAK zl7z%jMICi3>a2}UXPu>VcJEGe^YW=FUAALc8H*3ks%_Y>icYe{jhtF#b{Zz7jHx3J6&GL#5jF>>34?iyBvgGwmO6Dn0#M1zT%-z6L1_Zi>w`iA0b?~K6^9uF zdz$idSAP%8we12!srho^tyJUk!4dnj*Hm=6d}Nr}XOfE5BqWioo% zknk`Q^Niw>xem7An)&6yOwa!0z7{YcpfSI;>idm=)7#P8Od28d4h=c zLI#B!7I-ltZaUo%n)wqAIf+cC2L;_mPALa<49uNCvFAKxvB+s63bA7}$j0OY2It8b zHXji|=+Uw7=r5)3l-`r~_T$e7@^>r%|0Ver`S0(m`rYlT=db$q+g0;diwER*_E+>t zeh7N$jA{w|5Hv?LWcT_xJ_h<>d<@XnN6aQAN_lYL@bop*gM%Hsv8i=qL*vbDZ~$Yr z+Et_LuB&faT~&Ww9gU?|J}vFnG=m%V_+c>e!_Yq}?s-%`ovZE6Lz^}*XxpVdfQIIX zfoKr6KZqT68Gd^6Qs5)o@>USsQlkT3dy$QnckOs<>54yYW%K3Z(wIa0+J5!RwuP_U zw)KxI+DJ|sBW6m6#m_)37IT=i3-3wCRHg6_%yOlJ605}tKwc1C(3aU~rG{t?RRno_ zAd@R!5?%+14Bto|O|+Li1~;zuv#efz>OD5+Ack=KpnN~Z?|qjf`1{i+@uS>*1kpNV zVjd&S5;ISe;hZ5apIO?jD#y!wYlL_U=y*}CE=v6N%m2RP%P;Tw?DPBo@dY#Yf4%+N z{vH4P$5y!?&q~4u;ah1VYUzc7zfKlh;NmF811Jm|1=IwD!O*LyRTH^K297b6daTJr zeubuFlR0ig7>-**IQPjJ&W)L2sDoG8!agZWv6dySHr71CX>9FpUsG#w;b z(GW+mW(1%LDy<4)D_TjY*sMT}hSM(1=-(~P5aojh<(m&41pL|shjdJB00iK7pyB5h z;f!R1F33zLmN5#x(8uIItYnY4|9xiN{m0md74kCn^=s>X`LZaVJ18HjWBP;V4zk{Q z`6C)5$(XIuIn`s_zRc~#P6va@JEB?K=-wc$Ykikp!|Kn;nIw-^qwN__Tc0gD0_WP9 z{yynCcb|Aus~EJ3y>(80O1>NO&lJqke$^@Tt%qG*r`W-bO8*jun+fH{T4_UU|AW#j z7XLEDxxkm@d8^#ZpQW*h(7~ILN6Y(sfMS>Dqtl51kaQZa-QZp;ZdN*AJ65rKUzY!Q zS&&PfeHPD;!ShE|4+7spg*i=!5+OAt`fmVW2@;`E%_1#=WVG4{El$>yVOwamnhD-^ z8f^F+N(l{u&y#QS=&2->|K`CU*@N<7Hs&o>B|qc-0MjgH(@#?htZ|WTT~ASGVMal0c5PbE$m<(KXG(H>oTGBVv?-~`Q)e&U(8B#Tg?+3PJN-*o z;_8|X1p?AhU`Mcsi)kqSxtI_(OLvAz(&P%n7}bJ0Je+6zreh#n+=iTGr&;M&&&!Hq znuSf4E=nt*T}XunSbsb_EjbQFV2OTm&V>K;urpD7Vv!Lkq#Wh4RiTqU!(K`3qja%q zc|+~8-27#wqgPhDRyJ+x$X!(1xXk6=Tb7)WpP!Xn63_0nr@JZ>s?BNnV%(aB%IdOF zHEYH+uc_~=bd6d&t~j?iE2AhcFSBrZo})M$dpJNiD_vAA1gw*R|N7&pDe=(UV0=ie z$ek0wJ%Q*c)*b@86YPPfLT3u)sv)(JG(Rh6?Hg;_?kV5Wcxzhbn%7ph?kv5b-fc`~ z*VnW)tgaVL>GFp9iH&RPrN@f5G_HAlO-aEGZ8sEcs$c!uYDeCxHo2sNP0y-dQ{Pf0 z?{YL;KbrRXLgc&Jsxg7**BpVFDmN1WQA+AOUhgF;g2M?lr!D_IK689weZ!GocQ;Qg z7+rV#A=zXwp0V`IQGNIP)5&Md)2{s?=p^?Wf~U9i-(07vITA`VNgzl^VHeoFW=)=Q z5~^u4iVc$8j@`4iyIr30)x!15{&e^Dw^puM_KiHTyYspgs@12TK5@B9{_e|WW_|f7 z#y0lJm!Cc-e=zn-7BK4j-<~43BOo{;IADM31+M5oS5RPw{A-}0K#Vm5S0(OXuKua4 zhAnzm^^v;whs4b{t3LRlQ~JE0%m#o%hrAYap?}~UGMY(q2SEeEMh8++XvItNEtgdN z!NCzR|30gJ?)wVC-A=&Za!mHho}{2BQL z>5}vqB(!C&U?Vn7VvI>k`dnzzthB{&j!*#*Z1Ntmqe54$IPZCsxr1+blDCu69a+-Q z9+?^D;sM`vNMJf+N~$5+K&ciZjY>rjtQmbE<{#WYG5^X&3%8i8?>1GIjk^#V6d&N2 zH{&`-$B3+J%d$HyZ=MlniW>L3*U!=hEt)5$yE~^Q8hW4Gnw_4W9UUbpA z8{sjZjWx6+Mba9gB$03H`ctPQ^8FVzmO_J*P?UrdY++`6!=#$=!uChziy9WV^~Um> z3ruCV)v2y+0ur^TgroX04!MVdcgRwqFg1!scfoKPYToi`?ngbNdC&iw5r6Y0rgnQC+qr^n)vT^1U=z+$C`B2)zwfz4qWAZcm}4-AuZI`yAO(1?YeLJ{L*RU=l=_qOTk&e~ntLn>grwI!DsCUN%x_!NNjPFT3@3%a;9a#R~qf z>!I%Mhq|Ud)YbLS)Raq?+CTpI-0~MZ_g1{Hyv=tL4J*DM_wmQ$zUMrobRIb?so)m4 zN4ATiOi`I-mnT0Q6R`Hut13jF;`|AaNOsVY!AEODe(zWJ9ee-8K6b}-l4{#0s5{#8 z**5km&Mc&ykzN45Kk$sr2vJsTvqnjq-?q5F-Ytg7Z-Hc!Jh_}^h}Mslg(>5!@fHseIoZ|%e#Bu zd8e1n$YvWlzxV=utrnIc-zvpdYmT6hoeyS&6oej5>EOiR=olX!nPs&AaBZu9p zQ}QAC&@)KaUpHB+b(_RXli7JWjjfe8yO9Zy_ym)%MY@Dk$x6SW!Q3~S=4^3joe&Vr z4kNzdHxdJ$mvhjKJf1y1p1P3R*g=&jcRS^tL{W2;z4UhfH>{PlK0}bCz6XyvEI2@- zG278MBNcqO-3cV3(Mx+0^ zrwdoS$G4Xhh)AcsfVe=9dZy3uQduW@4~i}G`FbWxv-Hl9^;}RUM)Mh?gvp>4imeu5cCC<9rJ_MDK`^oM+Ek& zY?tjS4Sp7|SNNC)+G$BPfjcC|q?7DAFak>Rm8=t0ksk9tB|k>r`LjLPLub`yk6c3z zy?7Rq1vZX^)R*jQc@evF6uVPiWd8W$i{f_iPWK}BQY2lwme3tt;7Na&z*ScmC4{r*RoML#d9m1E?O&<-&#?w2fGmL(r2b6#hI{9sw>yYTZ^6) z8UFl`Sm-2sGSmtXiTpW<<(@TQcF(F{F)~_v@;l=lJ?jUJn?37=yZ5*JFPF1oZgI}2 zW!R^&z{`uO*Kyuyj>PGJ`&`#zgV$=587^o8iImBpWJiV-Dmi?yWOmus36VGVY233k zw{9^^xU+0_N#)e0hW3&+by<6D)1(S^YGL{4`*-TCR?XcHk1bzVH~HqSvXb^yV_L3l zFD~!8WeVO6Yq0dK>L4t@njT)Jp0ty^j zdA-(A5RlxFQ@^^dZgqX289#8>94e*bSHpF6NpZXH)L=As?v78ayRHEjOQ-?<)t6u_ zF&N7ys*{k%J^B;RSSSY8LRGp)!japfbF$M1sp6W7ipkBRJ4)M1J4QE8uBf=iRkyg( zgrujclT|Al793bVal)!SGiUBuHDTiV0}C2fRu#@`te;;*_`$$Y3aGF60htDmaNR5@ z0Y9ABrE+#cZYT%s`M~{Dg?pbkxdQEj;Dho!e7}eWBMJpH7@=cef(i{r>G?_WBY%+3 zFMjs^4;xjl%YE)O7g_LzgJ(q(TSV`|AE{p*26$_Z=)KRv7G*3Hj8gwndBYb^&3dcm zeiqZAIwNmz?|y#<`#MK{_-O?Y# zUr#>y>sv9-fXm;jO4L9_63l3yI$wPMwwGoSuqa`E3XDu46D-O{4B z4I^8Ie+Ydy*Nwk$QAJta=xd*qj^NrAu|N5kYFfvQeaNC zLh9!kEj<@R|GurCz@0wf|J#KMfX>R-j%>G}0WSMu% z-y*27t};2Rv9I;PUrRGqE%|WIL!Yf_zqc@($rbCbVOb5C<&BsTCR2VH6)AzYHX&aq z7iPJl3XxyNk{lm9B2X`hsqkYE8*SWUjsOTPlaeYrj@NzUi^Zcj;O@u0S}806-SV&m zx=Yn`T)}p`z1&_lGAlb-jhG*$!Zas01A1I8vuc6Vg$_`}C=Fs21fS4~RLM^G<$`h} z7x`ON``Z^iI2O8#y3uW0+d6J(vQI5Lm<;~_ZRk@SWm^u&ujS`wjLe@LKE?7zMX9YO zV|ms1iMyt^JkXckvb$#N#^!OGMptfHWd1(8N*6vNA+T@9#G@OerSpmkM^_iLt#r?K zIap@u4Yk?r1q36?b+cSLr>49Y$X`xAfGBB7KR1zfq6HLU-4uBOT!=nh~(1Y3!dTs^=R1zvkWqF3RiNAAir8ja3m)L<9#0P+$gTVFwWg20@7;f`T!I z0R}rJiorZydovBsupZuTZk+GcN)G)r?6lji1nb9>X=6o%jT zIqy5exMk`8*U$f_oH^$`=Q+=L&U3csY|q()hnoV5>e3wZ6Bf)lzGp_cF{ga#y)E4j z=KpIrPJPwoB;@GR8*7^n&&|y)Say2l&hht_gioxg))))}ZOx}bBV%W!m0Jup(g=)T}8byDIJBkeXpKxw8XULP727KYObEb z142+`f}|wXm+Cy+57tX1(lW76v#@BUF-?utL#nrm5++Hb#gTVO8-%w2w7TVi@{Jf+ zxDkUh^SBZdkHavM6kifwT#%P#OPM}FKVe#Q6cCR`Yn1QjUnTGA&?2u9czt7%U}Yva zjFzfwhC~6J^}fG#=Z8DCT^>48@lgB9Q%%lOP0c@SZ2V#KqMdW*ZK+y&PxJ{)VAR36 ziDpO9OjBXxe&fN#NqesBk^f#kT2(#ReW|14=iQw@@9BD|qZXG87VlrUzBNxZZv435 z_~{k%7C3F0OXn>ina7_ubU&?AaHlDasdYwd+M2K|jZG|Qdcw(aT7u*d>cxVq4hycq zOouf|o!W(G0>Pif^w=On=Sr-~NGDd=Ea{mUnbVsPRZEq$BMy5G7m>cc3uq%i9aw3{TpPxTh&%R0<( zu{Vm-nvnG)(5J=|1ru=m0gvNNfHsN=k9?0k@!fNS0~>k{l+DbC)UV#Ub!3?D@cfkp zj;vj(of3J)4?EAqFj!z1HlV>UMdyyc@-}%}P!^=T zdT;!f?bt&@)eCpcuNhjfV5r7CbEY|?pddpvZr-zi4}$bW$*IhaGy; z^PINhe-8r;9nDxeI;mSuDayCWjaA94gR}z}V@Ht2Utbc%EbhZ?SyOQ=aG5 zCBI-Dp2NTR8&(szG;Z{Y%B|Usd!jQ?|C00(v|f{l_r%8GA(Z5-EUgZzuf?_?`dVBC z$D|`%^c=K_$GUpkkm-mIIu&~w!GV_KwC_>%=$?q~86dIC-*;Rq2f3qftM zw_qSbsnvnE1!1=#I*@ibXw}>g5}}j8$1(6RNK$$22k8%V70zNP*z+bVVd*|l9q9A} zrk6&cCJ>B{kj73fiSvnAOreDw?{OI{{Y_wk=|0BG%xC+4$^J{`zi0d}J($*_FI)ln z;uEpg6pI`9CT1!Qnv5MLJUtdjTYS`FP&gsjZ3zf;q3_d4x8blWZ6;tNifQRd&uM<| zSCeRI^uf~;Ds##w$0eNd|tijLsg z{R2kVFYp+q3jL-HM`YwNjy9ZC=u}l09+gKTl4AtuI< z5c6YJtJ-Ny@V6?}_lI5T;o*n)NKSgX&1TBT@nm&&Qon;a z!)K~jpka>A&;~rHj}hxnYQJ^=cwF41jngPJD)|{y9d?R)U+moe%D~o_*Nmj4?VY>+ zxV^~ScFzi?oiVg%!Ce_VXxxtX?*73$oonCyj^}Apv8&Bc)iz6IN-fGWeU4<&ZjSTQ z(C0~d`lpCqe!LbJEupyqf&Jlhy`K7UEYxEWSH;Rtvz$3B@AP?ox|#=!d{NDs2uJN` zIZh@W5OYf$yn)UUdO8@3e6<(YBT3AJ=+ zfu0P@(oDqlJM3v-AHut%(OZL^40)x^bF_>_KGni%^3?{~?Rc^eTN}PbxY|1#o(wPY z+>e((I5bsZElhPDt%UaY1GTvNg83{~I~n~Xsh%G0Wlwu{@sD9nj5P8SEYkDykw5X+ zw~0q;+{d`zw;oNeRAFr;dNQuJVqqFqu07I?ve8!k|LcCu$YL&`$6=MiT2EmV7c zF>;O-c^>=Z=uw(3Y>-aioEn`3(V@2p`dJv>ti_QWjP2+ra$um1BZ|(u>2M5WgGxL6 zWesl{Iqo@aJMH~bn}+*p_(z^yr!!B}AB7-Kn7sk_Ip8LqOa$)m5L#cPvn9aG=tqSO z79VyNPMq<4#)|pWk@w$W-&ODtR!Rd`<#zig^P?Y8GDydSbl$j8I)NPgk5J)9kS`zI zESz!BVG#4l zLGcV-Di+MKNe$O(wftorhiX22O#uhc`++AM>ZWkgUH zB8$v;a8vo1sKYsZtjGbM=xF2xIYgLbyHIbl)!SCC#82j8TjnC$Y1<;WGV!-!g>1tE zo|!9)Ovd6_CLV7pE;bp9zC3+;f6+=~aj}ulgU5;@V;H~zdkU~NxD>2}Sa|wl<$Wtn zvx<$TBEng0T=~T*k44~+aj!5H6RSCneU+*12fu@b+!+xnbkk7P@or5-q5F)_(nV$Q zeQesuYe}B>+0+!KeSV$CdE)!3(<8MP*-Si#d;S$3;91vs>ZdNki<^Av41QE|5w(Z( z2a$~8_x_%&KZqG3Y}{~%-*Tlh(d^c#6~oB=C)-SBby96$@hu*l9UVCbn0K#&nH~}4393K2OKq^Rnig<> z_zSgRbfe}1@X+1`^;^{E0xkk(WJT}EQ>}d`PpJ*1th(3pHvJ-Nz0H&qd z2Q)O6&@-(%)pXJbC=T@4JiVDAo1M`i+5o#vb08;WO04JiwmF7r6B1KnXJT864Ifv> zj4sj~`X*yq((vc?Y-SOgS??KE$INFbp4aAMGnWmYR!5CCYWDfzz^!YwQ~@IUBYoqd zCMgOVd?UEX%hdIr$BR6VYxaHk;e5I#3>%mY<*H1Y zpOiq_U#P}lT?c)NypfQdbIJP8F4uAEzPJTBx$~!KqE__utSFgZQGw%^d?ZaB?RiDx zM&0}e&Cf=jbmrwb^YWVt3Yzlcl9Q)Sg;7W6EX&EcP5dp(*^;K$r>E=nX~^pt^}uMi zW&_r>vqVctjfMmk8iHvNpF_t-RZt0xjB^Nv(2**yhT#CIxcTarb+MwLyt|8a7!r66 zOm8hT&PvsrV~yES8};jJ&E={3)XCAwQJUy^iwuU?sixe_rOT2GQ=(_2Qym(9OFcLm zqy7?g&%b^6&jSJGodXK_24lnUTf9g;xMd6KpiQ0Tc}epc?wp!MUXmtZeuqmBlojLw zOI`RT702{a9Q2hYr9{!?SJCEi{uhf#xO{+1uiojdlAlQvJugi$#70lvtxrfyPMJ1+ zPWYVU4myCM{yaNjVt90zA#Y-0%v57ce1bW3AR{Av5f<-9N6`-%Ml;af68Q7mK{$V2 z`i;ovb85?Iwx$a8Yr3FwYG??gH^^?(JNZ|zcy9%hX!P;2SLfM2KR0JV+&=4Zm+POc z`_-FJw@O4U1A5UH%<>%39zyRvS>PA?ltl{=`jiFdyenp6cvBW|Jx8uq*riRofqE{9 zjdE4m=)39-Qh-!W_~*JqF&}`|VWf?H1k6sTOXH2GIJ}w;8lnWYTmAj-%* z9@P@{6KgRl8aIoel6uSuAVSuN2g z18-SaFj(tZ+IRO%b1ddh7iIqg(EFL;+1dCpT`F#Hj(7>(t>|CaGT;+eeSzyZXEUcpgW7vi@`->aCA4`0v>j#g?n z3K;}?V!x^UaqWcmI@u#uh#M*Pr0J!QJ&H;8NGUPkS2Kt!Dv&*JJB1uV_DC+Gdn=-x zH*3~-?#1o3Z>__AqiD_cd_x+B3L>)Y;v5dBATQS~;7hg9AX48{wI8-(Kr%F~?%t~+Z z{8?kEf9v;4(Hm3!eNEFfIz#&d#Krw3@vwkqOcNfIEs}yJmPC^&&B*UPo?BkK?C@OC zbRqucnzs=DIZe-KwssflKXg`pm5gw;eDLg5@_}}aU&SZ+;8V{l+Pj5(fO-Qu#c54i z%9Pdi$FZs#tlC~%Z@fboO-8Pl2$GVfsz1H4L_mDGSF?T8rQHXaz*PKg7ycI1SM36-Q&AiojmRYPV4qOF28}UGpu?Xu#x@nC#gp zb24^5FXOI)j^w?Xg;(Pi^1;}+<|iM>)8!n#*MD47e}02;4f8n*=5q#RKDU#2$DbbE zNXep@-com}VsN(U8~5pSd62}r&hzJqCoO6NzhBHvynPMkIK1GsQ(}(O>v1D}?;I5K zNJ^7!hsxPC8tR7?nUH)jzT#9i7Wd`%F2tfE4X)#*@sSfIja`nCcR?n~)BA}$r@N%I zyExfwPFCGtw4%6pWzpt5lPMpvjek0+Vm$xaw*`b0Ca)!oy)UqxkQaBCmUP?ImVA>b zZ!=Dd6t9r$EZd@9!N1hp3;somG@y=BNLEt6Jh>JqX)64eJO1s0dIie`T}M6ZcpG-b zRgzxBA!+Oe^Kv=r1RHOA;RVk+_L$(^CDlH@6MDA4Y22N^`HgBHdtAiDT$5in*W~_l zO(xy1PJ(v8R`j3BEIkM^5R~iDu{u;oOth|<8;43Eesg2*d`s+L{^ZQU4JrLag?-j$ z`?*Exq=k#WTTxkd%b^;f*N;gab&M)Xa~yqryx_yl`g_3$74`Wl_R*gQzkjm%6Lkzr ztAFr;de3Vh338k2A11f4Z!EV-uOL6Ou9_>0dG2g5-*29a^+l`z^XHy^tA<6|S)@AV zkw<8<{0hLhgmn_tKX9Fd{hjM14C^HP|I0cFyZJf^`X>XwZk>etuaj^IYaptdu7R+d zu7RL`JAwYq@a_Az6A)R^D@}t=aq2T8r6r<{28E#sOu#5d!;-j9DH=r=K)IMF@rAUb%Or$aZFf!}$1;lelaOOnFIPqyZy z)@68hEpXVJbF*irMvM=iW;quhkFgbN7yKW(cEP^I+6C4Kv38-NwF?!01y`u)A7hX; z`E{};^OH3Z?+wjTRk?N$^S+mGq;8sWPeQ(3OMHA>V^Kv4neuDpLiVIjF0?3eA(u{S z230x#_ho+;{P)TJ46;A}yJUa%m9jsB?9Z>0{kgyF&%w(W)lKDkb~Cx2Gn@KT{?`9p zIhZ|v?aJ6!%fZqa%|=zXcKf%MgK^N0rnxtegH_!(7laMh3&L2V5Nnaz^H@WA2~|_a zUy#C}z&ViagR>A?ski~m^EZWg--qWlX)+5{@PsOOUctI&z4kjkm@A_%F_QvgQefQb z7-^jLKEV7gT+qYt7PSJy$6!X=v~T-hp2wh`qrl`SFvqag`?2;C!FUMIYb;9o6V~|| zbN`7zC|~yjrd4}}V4%)U$FGb&$;uQwWeOh5|D+ANX25(b_;Zcw2#adkki@Rd=@!=E~^fJXVI`u_7@wb{y0=ulpO! zV$*OMu}H$6V~)*gN(sl-9Tw7+v%5GMDJ$L)>v~a9)=Y~yGfan$aAFdBQmRZ^@x!6P zv7INLq8#{T&(E5YJZ)O?l$@60+TQGZ#^M?a3vWp^#!sJG`v??Z@!)4o#<;kYlsNTo zMjo3v;^x&edC~Alaa!!uv{|V|w^{9_>A38ZHM7iIlBTyfu&K>9sY9?g>`I#&XH1(G zn@VybWCUr`i?yHLKECjOBvpXuVqf}?L9zVva=H46;VmP3)yDz?0IMTd@elE|Z+q6! zp5E}5(H7`lAWVM$RMV8+8W02}OeE}owDG1@gR~01!Yn~p5RAV~?!JGZX#(zDF!5hu z>JfIWIRd}G*Vqu3j6co|`2IRWyqT#OJM6DB2EhEkV6>p4RWU?Q>L>*7({3AuqugJ1YJG_`=c)(|b!UjETWjWozm`4At8pEom9_lO^q zXKy|9`h6Xr{+@8^D=40~oe*6szQU|S81*%0$bQ@i&1d)ucs&R5w5i1+`3p|;u$L-m2^@#lrVJIXJN+UnP}Y5#C4M@r+X zOdG<#&UpLLYwd3mFAVsvHH3%i_BS!!I_YmyeBxP>V)nqMy08w0_*o8f6lM_&)oc3h zgduvj!;n82@+Wfw=5v_e!MI^Iz&r=@G-gjUUi}K@Lzw@+;3!{`pCLNF%20biUfCQN z)ES06VqHLt`OwBC2}Asu4tFE$J7B;cXamQsdKk(xwSVxKaES5mGTcN*1xydjXE1+- zc}+1?mRn#_V7zYnCbI^H%I8bqKpIjDj1tDG;gpeTHZz(9g>aU)j0SO z&sM-tyyGz5wDRC4I;kDem`A*zG${XNz;O;H2kw)waXxtXB3^ula)c2J%sG620ULh9 z$6-#x;41qFW=z9pVBUfoNBAht@N;k@&L|}FkzKOi$XvLw#V~^1Uy3*UF3d+TSb!S7 z0RPP}SbH65!Z%iOhjE~B_%#^9l?MA>;ERWwgEsUzqODNfd<$;WJ3;$)*krcAPR**1~$& zdbWcdWoOtUJdvMNnN@|V^QuSHcJ-s`U#nl&bZNu1Q?)a+cWJ+X^1cw=WL=_ey>5r@ zu6!S4ls8WIo^8Il^39byle7t$Eg8?rUzy^zmB zJ3?27J`?)#xQ=o6k53<;KmNq{GvhCge$;`LriD!Fn6`S_)@etly{b>w=j+S$HTq@x zGx|^TU&O29!{VpL&xp^AFORQ}Z;AhH{G0KYJFHDZfoUn6@=-f7&sl));P#Go~7!F#gu~f$?)wh$+F8YpO8Sni@?Vrq!mc zrv0X4rgNre((lTM%+O~HWgIn6vKTG7mNHAVWvQjj(r!((aEy$*~8Eu8O3R|tM(bi%6)b?ejHnTpnCG%3|Q(2K&OS8JN)@E(X`b)Ny{a*H` zITblqa)xsob31ZZ=Wfm2pL;AXJug46JnwkkeR&u19?N?@?=p_rM&_sH=jWH_FU{}G zzcYU*|46>4AgEwcK|(=#L4H9wt{^Wf=r0&5_@r=I;flglg}V#yExb5$N0C(2Rdi)m z>#W{ccg`A`b#&IL;u*!6#l^+1mUNY@E!kgktmK^ip#8Z0KKljxWA+zISC_t8R$f+L z_H5a!WtYqT;*cDTjt<9a$5zK-#|g(7$3@2z<<;d&%iEywcT@T9@_Wipmb=TJnw>q{ zK6~Emmf81JNEIO!lPeM{%oS@Z-l_Pc;)_akWmx6Z${CfJmBp1+l@}@>t9+sI50xL_ zuvPIK&)m~h^QtaYJy!L}EgiRw;S^8B*-uUBuaerCav1)iD}HS24BTl3jMzA$`Y z!onR3J+;ZTd+P$~!s;g1&8W+*tEj84tFLRUYpd(2TV1!QZb#kzx_jzQ)Sa$#*Ilf8 zbW!%AC5wX=KU%M?zq4U#LrudUmfW@E@U20&u2>qjRKL``GjXjO0oo44r=Q-!gO^Hp}O^ceAH63X>+4M|vdh@~N z3(c>$NG-`N_LikBt6Mg;9BVn*@@UIt*Em*)UWt><-C>WJCZy0ciht%(%IViUiVN>e$U08kMB6#YwW$Z_nF?yyYUf{u3Wx3*x_9W~q0e_E?^?8L_pVF3p567u?!w(mcJJ7IdiOKC zFYht$S-Pid&!#=c_FUTYhrQ~(<$HJRy|^!6U-mvcjJxmPzLWdT?0aW__L z58Dsd9&SCn`tZ=F+KHD+$x*|#d`z-Mve2c^@>}AebF|>t%d)9;->rbcPs8d zxbIQi!8o)3W5pc;_v?x~RN4>S*E0TbpzS+Er8*GlEoDDd+zi)$gB3TI0yyo_6O2mA z<|&F>E$MN>LiX24Q}{;3t%d*h6n6mhmp-Jp1L1yKaR*CFRHWUOaE8F`#S_Z(Dlhyv zDO3IX((ax$z3t1}`t??`Ia^=b=F(SoHFtOQb$2-Xo%-tD?iH@)etpS6e_MBNpI?x@ zyQ9ULZZ?|>N*ih%1%4qW3iA8b)Au4*Z(nC3yj`t=LDTl)u{ zy)HdGI@+6EU45<={XkcXt5@F-)-0^7($DX4b;-b0GJsL<&739Ok`5M*#U(V(RnGPf zXH$nuKiJ;irg!SgOBU#z{rO(H`(d;0s*``SB*@QnH8RSNMp2!U#uZai`VB~p0o zWI3v9zof^qw;BJl;i`p?3w9;MtY$!VNqzY3keq;X!oM2vx^V^0g;0uFf=b?xINk8? zyGbm&z|ewJ(nUIET>B`M8lX(u0oRRFGD+T8HxAeP!WV%SO1mAYbb+F=RBjw|408=~ z)C1b}P^avYRsn+x7>xKX75s4_yaQBz6DZfSBiBNiva8eeQsYEvIf0MrWs~5t9u&6= zI`r_PbW3oth}``slWY0ihrCez??GrEQl#3`0h?;^a+KeE#IL%hjJ{bM@16>@t+%4T zW@3!+`@uMbEq_3%q(tdgxX`VJrV=f5$Uy@!3&g`U!7PM@vT;%q8!!EYg|P{Ef;>WM zW|7kU7!@W$n@=*{@*b61pguZ^O_ruhA3>GW6c)qiJx>>l#cXJr^bFIpc$UBnERiKi z&$47TU3!kqU@0t>r7Y4He#$yo7weYXl1= lSJOz#fX%lhbk8e1i0vq836dY`S4{>Iiq8{2xe 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

bO)#R zarzLak8t`Vr_XWv_sz#`+U$Id(>I;Yv322Nge>_%4srx8xe zIj!Nek<)fgh0a>G=2uO;bqtxZPrJ?Y@O?Hed@@WKJ*a29xL00JQM$&Mq;JFxps0bkailezmU9|0 zQ|R1AOk}7um98>WrW&EL)JT=B+{Ξ29ypp!R(LOYK$fsCU(S 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 YaFbT>1t<8 literal 0 HcmV?d00001 diff --git a/docs/_static/fonts/Inconsolata.ttf b/docs/_static/fonts/Inconsolata.ttf new file mode 100644 index 0000000000000000000000000000000000000000..4b8a36d249a05a0fe1575dc3d96ef7079dba6b07 GIT binary patch literal 63184 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 literal 0 HcmV?d00001 diff --git a/docs/_static/fonts/Lato-Bold.ttf b/docs/_static/fonts/Lato-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..1d23c7066e095b5bff2c373d4064dc4f33659783 GIT binary patch literal 656544 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

f8495bJUR}lganziPo-_m8XTO;| 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%0AXJ$}2tfE_bG!=1%jk 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 MBJ=^|GbTs>0dZJj*Z=?k literal 0 HcmV?d00001 diff --git a/docs/_static/fonts/Lato-Regular.ttf b/docs/_static/fonts/Lato-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..0f3d0f837d24834b9b5b0a6b735459c56f5e75c3 GIT binary patch literal 656568 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 w-9m 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

{e2O2{s7^`lE9GCT@J zbQ6gfelE83=;=t}l2{XPmpe@5oM<9OzpYFQuRP>-uALj35-Hv6D9!uI`SZszD&qN# z5oxifrPk~z`3)|s{xs67@ETcb7)Y?FZr!>BZ@ntHp+gNqYc8RAUcdMn{H73EuI$UFCl&&c_x%|H%u| zB4OSg839`V)YyllmgovkenaB$*e>2TvhYcndaS&>?$Cu!j4hHFY=XPAXVfm8Gj5kg zg6yCD8na8$JBC&qBQ&X;IDmh@bn(IkQF$S_`Gf;Q>#*^53frNK*j`ir8sDj>`JnGa zA!-jsqv(K#M(2ZlC&PM=mF?)3f{bVItJJ?9>b)R;4@A*LZsbeYewL1Eit!y;+<94K z8$z-jJ-3)>AN|3IWG6ZRSxl=`nhr!dqgjdL6{4N&xU?&z^|*V+$aYvB;}k(qwvWAu z3HNYJu`J!`WPL&DPIIHwR2~Y-_t!S`EENc#ZH;8|J-;v{-(MTbyP%jRY7&D2{vinX z;#i|~ynyE}a+pCNt`R5iRXz$^tb;emvuQ+IBynoFQdDs${8tV0%HVV5*v|uFKhi*l zLWz>u?}AK$v&I1)s!%X*BY~=Fhzo_B4i{6Qq;0Qrp_^SulqWtcom!~?Iact=P|8<6 zn63}xT;ozu7|BC$H(>(=e+)95%x+6b^Cek*NuG3)A}r)FLYf6JM`xDhz<7{0u%u#; zdPYu)1>3=l>0pSy*idRnfuI}Xb5SWpu8w);lt5-uX-2g0OwqPL^@+yDN9G*+_nF=W zFY)0|lq_OFN|rdI9A(4q7gl6UOZEn`9GSDWO>N)Vma?WdeQH8!YqUL4Av`hTmSxl8 zYJYX0Y~7r~Kd>^XCn6L)5B3y_#2GjP z_OaWfRuOc8>|UnOA<3-5v%iFx_?wiaSfKdi;wf3FH5BjTJ7S0zA;zpl zJec~bgls@UNrcS5^h6Ry;O<5_Ev!yD0)PvJOa%L|`Vs!X7fWxPm)_uuhdy}H5gX1= zHpl9;F=oC_8z23Zp$~+pqtaIX=A*O4REK%!qlA2iBR@e1H^yH23EqTwl};;bF(wv= zbVZwWplhT-i6TjEQsgu&7K4_pn?x?rm*{i3>E%aTH9=!0Odey|m=TxCGc7M07EgXNu-%{C7Jz zv@b;yj?ohZCPak3Y0Ja`e}LbWt@!@Guld>6?^|7QVd_Kwek?Qsp+C+or1#uC!2hq5 z*1N@TOBWuX(XjDgA3^V6JjkF#+Ylb1W=T}x6QsX|x}o*MTri))Nt+m!0{cHG2CT4o zWuF4v7i2)IC^7S5~-ud@$ zpkdu~qXLcQzNLF*1Bnq(f0P}-?uI@f9B^<$f$_m^jZ~fOZm6Dqd9CP!%}IU|%Stra>tItS4YFd+9!ci6l@Ulx5&tL>v0WE_H)2 zGypJ4O?7T|Mw&Y@J{H}DBk=XwB&{mM6$*D`xbA2aSt#Km2~EHY-cWiJXm>c(1Ugq9 zE?Iu(+=chAtq=dUamnL;#E1kMIhZ(7ewTUq8<)GwMXOL)2VgX48 z`yV(M|ARTW3kWj zxb02PIE7xp`ixE9k1o zRzJ@7<7H4v41;$$>w@G$@_}!%ZIigA5l01g2>b6DeDuG(`wbTdl zJX&$a2?`t`F7kJ2ne@Bomv{hLjPH6HuJyfqd`O0#la49_c$av>*T5KiK}RIzNZzs^ zfV2rlL=uAQ)x-1)Wa<@5E4Ot)>~qZej=6r+0<+lX*eh`o$rv5=1>lwK2oO<1Jh~sk zVotOrlkd#SLHe;fVc2g_21?dEwjvn&AltaAuP!;{M|}R{HD@+g1kGVr!-kncV#swN zSwMUKw2Jx*L|o}F$!ki!eP~H>M+6r^77BhbuU=jy65+C1O+NARx;KWMB`n8?7ZcK{ zj|X)abZWE~RfNzLz$gLdKLGQKyd|17fO)x5mKSs?snnq5g~D;Nyr?tjXsxPP_a1Dp zUyf3$q`jnf5d8Qj|G!tN)zJH^SK{&5cc1f#x;;c+k9YIsUYiWL9y`be@KEUN9DnNC=RX zaXcX_Wt1Gl{>XqY1w~KHCCiUP#jUFkzxY}Hjzf1(J^I=6i#xya?|XLq{QfyAgWV+l zm1(=Gr8BGYQ%vzjVe*0p)>M#M6ZVzN%#T`lLHgs1$I#NYzwOj}Ct`sw+5e-1ldTEK z306DS0{b@)c&`$yUk=%5S+E4WFgw710uLB}&l;stR-yw_!FCqIu)!6BJDTM)swl!b zQcn;hEI`gT6l!ExE?{h7I3mg|%-r?W4Fw%{zPY+_-(Z>ypY@dpiBT z_CtNA!j1gCp$_o{oduZXK>y+Ct6$tz7gszrw@s(e7$P%KV&1-?vUov#%5Y`5uj92oa(sLR$_(E?O9Ou}f9 z|Zf>Q>#V@pL)|X%a%U7Yg#z}>3zKNrNxV1 zl3)!>m*^+RxZ5_qw5z6O*Gn6Z4xHUuS-JJ>fUu|kHR;0#ACx}4uzdLiUJs%W{cHWQ zOi|ddCgJ4oFlU%x*O-3DyKyd6IET;x3{kQQ$r25EQ~-gKKlOJCb6*VF<`kb5I1loK zoAGQLqLDvjnZoC_2!Ig!2EWS)Ny=TN!vz7UEznp!6s^^Ea9S-J0fI6())U4*a&hn( zT=IJNj){Z#ue^&=FNkta_{B`d+w69Gk{$hj7}rFk*_E7ZWZ`0z+cSkXnmWTRj>`f3 za#SWO-0!N+t>A~#0w>-tU)J~o5ba7>@VUJu|jreHo@gp9I*j|!Ai zm^b*QNb*7cERdB5DVW#_t*3$XtvY2`D|Py!B4KlL!`Yf^{x6q)9Te7KGpej1>tf!W065M%ljX z-_6)QJ3X~+$1MJo)V23JH&@o}ePh?}jtcWKrw>%uuAGvpRDIr8vF_nT3m@HFEl@HP zW4ZjX@?DI@$QARw&pQCdBuoos*prZI!KA9;H!6_rS1VAxOM)9D0|1*5K-|S@^~u${ z{aPuCd!7?rja*lDU%yoJIbG#l*|Pk4(o-MlEMIlYeMr2f-eix zXkk;D`fCD5R{wUVb>C_|2Oao?2VZ7Wu-oDf60CDpg{<@P6iuHMP|%Thfv$ zI|}%fdnezTb@oE{yy*)A>rXG}dtytCV7>T_)xGPMxytiX(EAwM0LvT$efJjPu(e!M zpdNZ#nS*x}sACP0OAz5UuL9Zk0JaQ~7EyA6X+G#c>JW-&xL9zbmaBsC%3LVv#ol0&yJ0@lu|F70(YFSsQ%W>j{V&^>GKXRoVlsleSh4fnFZO? zOA-=O65~4Sn+q1~ncDwQM#ftYme0tGR$wYB@>6uNkcFHRG03Md4_RD&pf&;hDbirS zU><-PMO2RPqtryVHx#`{kn?RQRT~}h%HpzU4v?y1qB5jPsWss>Cm@zrJcX>=d&lp( z@?Ep0{bVn_>&o7BdxBb+Uw8WUiC%5RBN?fK2R@~Bz5E&C>%YYL&g1&z5|0F0ND*Om zDpe20SBXP`LtvaOqBD>>!6jJl;1x1KTkvApTg>CYS>*Ouy)2?NYRyd(IE~C=9p2lj z^R&o2XEfc=kv*X!Y4H{&&1uBecE<|~>u=5K*w>wtHf!fB@x=*!%ZtwxPw`u5a~Gt5 zMU3t3bC>_6_F@iv+!9&Ox<|IN0^1qZIn4k}657hc)8M_@RV)xavg>8_=;OS^(vKzr z!y6xf4GQXol1dbDWU&3vxmN47#%CXG+SZXB^wKQeB6mgw@TH-*%^W#aXK-pbMe5AlZc%c8TYQ`;@N2!k)#(R%cUyY~M0 zj+VSd#}?R(D={=Chdx%^iM2}NK9|)H3PbTRXwnGTtVE!hIS()|sW}3ME-#2{++IOX2MSgOH&ni2 zyOeG5u+0+5q<*i?c;?Zj8|Gw7S;~{AFU_Vyz;=l&=caE*sB5@zuMk5=)wz{kYK;%p`HjH;fC6PZms$^?84RuA13TUcf z6Nbv-2w-AY^rx@ceMjr!mk!PJH7=_{>kMbz&F8nA{8dYOI9M=prr$89b={O?|E$do zf4kUm)9keDuD!Eb*R*CEG{!Ka{<}C5j^Y&$E-4%6YP6dxn%gs)Z(UM0dvcRa=kmIe z%co}+Oe>5znAzNuQwlBO%1GC#!-z$PVroZ~-^ZTIq&)`{`+1p%*Ga$2Q7E#z!6cwi zcK|H|Bok#4MX>fyV0=?d4kUoXAiRlg!J!NV8?i4b-J1_IC9oU_O^*8#^41*k7czYd zi(}NyNHvD;lLJ`Sy`56PGErbAmq{T$D-3!qOkk8xjrDd2(1!%g1W~{5GgH1X-Jk?| z&+l?&IK!pO6AJGW-y5;t?F7`jMnq5m9{;rBEY`uvm2gu7Q*x4oFj%AHz!7$ipmdy! zZ*filp^J%u5mORVGN~vt1I>uy<6`ab!NGp-aC0dp%PbOM&rWVH`)R1FI^jD>t&8b!X z&;KFCAPD!YCDU$6Gz|3_W5th$rkXSCW|u)YiEQ8zh`J2;2EPPI;F?%E=YN2ugHLZB zkENsX9ARmGYreylJH6y*KV5pb-Q(}tH%Hof?%Wf<{`D?rc9l1&!XG2u!@rv|b7e`* z+8J4*a_9E#JMSe~or$roXZ0Qvv97^g9v;JI8Bs9sK+|XjQRlS62yy{b&q?gUsx}` zSlt0FuEt0ZUSgGnEC?6Nyb&2^A*zrxfW*7XJvdRrw;+l>{%U0V6him7FJg`DD0Yl9 zW=4^i52VZ#J4V8DG?>ogEobdMsg+C!O~-O@Vw{wiHBdKeZ&!BNvfE~Q(5{im6LX~A z8<#t)!tD-p6jrpx4T>M{m5wI)%GN%*Y~9yxsteQUtrn{x!mLY~y>CJ14NVEjR*6=K z=b{l?-j1Kj2}?IAZXzt5^D0=na<04}&z~t{>5{I%(uuHY5jG+y9V4Y04W$E1ZxBjX zh{DuisFqo^J=VUW$)9U@J$vrrrxs;2*k6yx^>5|1jw-(=-!6T6z>ymMQ(JlJ?5En= z(taAA<~SgIYR~uhs~peWBF%8b^7G;n_>vZ>i2t_FBfXvw$Dd9wKqvHMewWiOz3OuF zFGwge4A`C0jmcTzhJtkIk5~`dQ>PURFb{5uu>+<`0!EGatXcv88+i{(*ot#y$&THN zje;NnUOFm-g&cW_P>2jskKi0oCa6&O$dKvSFMSr3$A+AbO7B82%-_ZXc*N*-2N)Uttu2w z;F?%eLx#=SN1__UtVGL$e=s}%Xb}WwYk|cg*qkD3i@#KN+EnJ*ymD}G<>uH7!=N_D zvHy=2jK9(zlgO92la%4zTm6_!dqc*G!E@&ZUwNfFwcPeodB*Jp$=Dz? zmmVJmtJ=A0)y{9ZU3@^EaM}fItT7ntH!;>Y!kIWH#>@>5Gl?*BNh6rK;8G(-M2kIU zXy0T*%bvUPtn@Pf$^7YQKQm-t<9-&E9~u{}asNKHGslgI_9e->E3k4-*~9$OSUJTJ zY`pJEj=@3x-NE3Q;eR1{#E+$Z{toCG>@gVB=kT3ixeg=^?ic3dFo-glV>8L6V&-W8fjs!D<#R0{oFtUw|&R_(b3w|Ku z*NTaNr{VOfCdWV^MzcjuOW~ z-kKYIDZWJD%aVLDzKjS%bLGZe}3nTaRa&3fO)k+K4oAWNgTL^ z5*?NijGAnW^K)gS8Wus$$|iB3JxaL(qefbXnF%sT%^Z~OVSK(K0|IL~k^+|%VVb`K zq;@~wD?Rz7&7%2CWBNsyHR2)ZNnRI}WOf68(BRZbj{>8n;omdprQNYkK436OG13~u zbhsGcBo<-3<1lKFrvDK}O}Pl$;nKa*%VL=H9{=aF!C{EY_w5^s5m!Q-;yb5dj&ksw zQN-zE)ldtJMv9X=(diqkbK`JvAYZbBWRcQsAq*cS(fQHPG(`^W!d-uQvUiYx1);Cy zpH4L8-L#HxmA=<7Gr{2Czr*DDRM_Ji@%_;p`i4Z=%mfLRQ|QPUQWzg&M68P;E7?|+ z@o3Rpw3Xm!Eb@RYtD;r~W8i3j$%z}!PHWvfWyjpy!M2&3CwEZoGXJzq_dl-*akZOh0af)M@;Og0LY zazFt745l8G8hHdPaFj?YFw_xS;dy)q%+9 zp-wStCi+$P)Mc4$;W@6kO9u-3p5Du3Th4-V#BgoH31!9Y&d@b$nl2^wyq`w&(dxs7U&gWoXj4t5!*o=?t* z{Ed`i0$((j?e`|fBCQl@j6m}%B$smeTuLs5n*K5ynmHpQ_Gyr)al~{HDnp*+XUs1N z8qtv+`;43B_{aL4=5X&{GdlNob#85pm)!vPR%F3CeFhfm4HxMU@!W!>Qqohhc2&$WDk;0~pDcI1Z<#5(w$ZU}|Dyq06NB!O=(8os(V- z_gBy8?D4ndCDv7!=O$}~J-1LmMqGMc`t$2sYoeU1qiVLk&PSgoY0i8w>4^Aqyh9?l zk!^-6?_b|Fs{b|(;&R?uM9Vn?*J5mW!VAkrX)gQ^k}r%$fB`8!LS7` z{yb;?fjOzQq40n?+>?^gTo@BS|AM zNXlra*(fb3ZhR9;@}*%VNt#Le1&;Y2dGB~N8CuuV%2<j2yx6vmk}2zZYLnuXpS zc`((eclU6fR96%{>=95T0nMoLmXHs!5(_f%1OiUht(?S0gVGX)~S*1QfeMN zY);birS?dZoiETQnGds#C_ETb8#i=kL?kLim&Z+x8R`~4HQ9&W&&|EvEA_u8%c?mJ8~;>tM}BE(~GK(o?<3uJ~wsgr4a)itU@_%v}&_2DLUEP0bx9 z7W2O6uI?$@aYy7(U1BE`*3vUO>npcBvr1NJ!oyV8SOg$PNjnMK-aLNHtKM`@@k~^UGfwNlyTv6^cC5oY{bFqu52xFg6S5 zr!m;9kw1^aX2}toFN)0?do`weI5UJj5K1G->Vk5gV=f=YX610%aJH_8&ANu~l}5AV zB|-)}rF5!uS6%6dnKhq}IAUS9jGenH9kQF^LJrw_m;*GYD6eIHb0Xoh>{r2Ojd%wP zpOrEyk{NOx2?EO8+K~5104?z!PmURKiS!9CNWXm2Hfq>E;Z@SmsFCt-?c^VY?-&|t z$4-n>;M#!aeO-ATn5Z&d2pCd{u^T2Kfulm*OOl}$@kRuWV)$-t#3*Nlv1f??2;zsPlXD9c3~ak|P(rO9SrQYy&pC~ZM8 zAl4IrSs$`{GZwQ%N{?g_;Twjb9b!VxI^ukrJin;0ry*6?r!_r$ddXo|?zzX{+nOxJ=mG*sqHTQ!{mLyKg^ob(NVqY!i@vx4^68m60$Gu zE1r^NT|a_e;yEjLC;tF_P|MvI(0U-#av{dZ3#5!cdaVT^Olq7h)SZuDm!KX-lG#MO zsSwp7Dm*ctf~Xd#C(zZem(4Z6owAY%?ld0t!O%`1rV8bCSZ;L$?u05OFnWxcF2x&! z>uT6GH_uT#C$MHsQG0oUvv5XX$&BJ8z22nr6+N_O?!oSCb81cY1?woZ6QN?xUPx_S z*O*hC61ld_@bg>qO``^f~t(h?%cSF(mYe%>zNh4$kEUk>|i@|&eNE?9Kt)f z;OU@3>Kb^b#0l|E0F%%pAjfb8-szfC5Qkz;@o9K+-`==m&6>iFGFR}0ll9?|+Tj;Y zpPbvXDip%@H_e^+6{||~jIlfB-7U)+?(&Dqe?xv}b3Y3b5M2RkqOeQ|)#PUEb3r>| z96oCFbpW}+(W7&EC5~$Jb@KD*h+g|Tdfs&|!K2v0q_P||_e+MqV@)0gT7@7X~*gpp^f28~_<~f!7hdj?Q z2(Uq1!lz}RDp(M7#wh1AGRIfHW@LV^e$B|-Ui}*RIYjYw^=s%kfrKlDI~v^;oO}7K zr*bJW!Yc@EB${V}6A(-yRCL3pT|V=K+*F=XhG`VfoNl~fPHxaEqRGw*_)MsY23WJt zU0+pVA3RSJemLZq$@3gnJR?5@(d4=5mp@im6yTxbEzt= zD{yKIGYiF3#w#pkphw$y;nt>xTQ6)X@9%7kP1hyc^eJU+#VuRgGR{4*Xa8?ZX8x1q zU3V@mnsVzm)~tQy)@G|a%TW`lHK?PbO!>VB+h09@(+0C)0mgv5!sU+?wbnQ!tu(9B=+vXR|>&CBGcFl{D zx3%r^hs4t=s5rUior8V-3g$EIi(#&Sc=@uJt8urCwydv$xeDF!A7ZYqdix0GDve8{ za1}W*6JoAd7kAfqS+00xRP6-l(%{2PB*w>C(kqD(9Z z-2;XaUTDLesA(o>&b4oZ#LdahOm`;(I)h(EG_)jlmr(`)MPqhcX7s!G zeITJMTTm&hN(ElkQmX(pVyju;!V-9qb44M*rGls?YQr29CaYA+#b6Ht>vz}y`o{5L z+)5NAi=xnnXy?dGGH1!FkS0#!gMGy0u0QI69P$VN>?~mz z6G|jwy}Tl@Ck4QI3R~RG-W7Jg)8I6$ZrRrE-?c*In%>-J;+@uNtG78Rl8>=gIp&{S zUfgoqn>R%8PFqzZdf>$tISuqT)}|W^0w@L#kM-ucmrmbYj2#mGG~DCr<{Rc%KEku>*`MBU=!2KGMcr+Vdj&bUW9GQu*qd`Zw0e^> z-f;1}t~4J3FOv65fT^|vA6v!!Sxy94-I&iRxO}A`pWq72VOTT;j!N)ze(dKsF(j`u zfI|bDKS*PU1`tGT*#3f=n+=yTO>re6cZ{lP!rQRi;mN5uU`Z*7CS=iXE}dP#T3Vd=TL-OJWZujh=Mu3@ z`Kpt1I%91LUB>#Bgc7^(*J$0UKIyo^5|3^u`WcJY1Sw<;7nU!WiS_aNy+k3i`L#ps zdf{6(=kdjB4It3t>f!QM05fW$np0XiieIUS7mcb1dvMS+41wEAad}82Tw())eVulS@sg@GE~uvmtoOZgaA%{2xl z=kgkDlqsB`(~UY_qel6jhQla^r6j^>om^NLq$F{2$s?(*Dl5s#fOxYfdl1kIXA;gz zwXJSe;EH+0@9-O4`Q@VA;u?hh=qWwY4@2b%V)Q{dF7`QNc2cbHu+AD2 zd8st9!XJC#!i8Ad;er(pt!&vcuQqD3Bhz9|$*s<)m>)>s&k29JwZI&EQ`3qJrMlVR zv>VoH6LV`b&n%{oPjo%Jb+Wf+PF|*7VRvS_EvYRlYwkk4t_wQkSD1GZQcMpySi4gQ&Ec^&;E=CAR?JTV#85VJMpcCwq^HkBI1P(qdf}YMLz;bPO)BluRlv zDlEv)@w194uP2$RG2>#K(Kf3&620N|kyew@h7NhW%bp8KgxSbK2XK-6$6O`am&>)P z6oe;JoQNXjsiGZf$7jfeSrz-G?@sxPN)(@Zf652YYUhO4&&1ldov_D8NWYZ!+<*4$ z*;xCHcST1V`7D0mfit2Slr%Ag_U|sf`DVfI$g};f?`F)%&>xLv{agLF0)c+XTH$to4J?0RlrofVxzv z7OKG2?oPxTg9{U#OU+2@>C_+q!E`Fa<(|rgu4o=%_B5V%8}NVmHCfLldoKU+z4sZU zV*WeI)Tx_h-Y9%_bJ*l<&#k}l+~LD~{ zso1e==pEsO!X-yLn|Cj5G+TW`Z=?uZly&F{FxiPZEfPh=8L^%id$cR3E*tgfzM}N1 zaJ?%URWLo2rJPEh)%!gMllfn%XfL@ zqYv5u8<6!Z0Y35*dZ?>fr5~pLHtMN-ja{cQYNT(cel_)(XZ;$JMr+p``9rGoKm6}+ zj#FDT8mn4VrSh6s`#(;8|4!-E6W>26{gzj!{yNrvc>Qs-be+#HTqb&=d-3B^e!+Z2 za`b`quZfEuS^Re9KuO8!48G_Q`gv_>>Do;E+_yQYD=Vuj>35G5M8*w0Ds<3)iywgy z;opk3N>fEajs8P0bh*X&9#Gu}y)EkO$%=c33lad{FVne;8;6oT1O6pzEg z$C4{|KIU;7q*MTJ*Pj3JkIy%FGA#VBEoli44-Lh}AcZ|Q%4-JI#Uz_m99kvZepFaL zv_H}=#5pWO=iTO`T9-o}pW<1JFP1RLQ5JMr1zrMj6}6lKZ-l67q#tD89r7yFAu^VW zHO0iRW~QcOtI|r1g(67cD)W=`l~BPIm^gUJ!tVih`VF5L75V9T=}){<`ct&&Us5Kq z&PnG_ZasPOWUI-i**)|#{(p{dJ$~{y{uH*Izw7jA(i7#<<6#LHTRN~yGr1u-FE<_7 zbIQw22b^;_FPD!PKj_7lzyeeVnw2mfxK2_k7_nN-Gjc}yT6KY@(OtAGEs9sxr$mgi>9nA%cTQ&OCrmEuiGbVOMq0b5Du z(`D@j;u3&Dz=z?2&me=UDOp9~^TGlW*Gx{A@yM~up8+aHA4bTuCxV&~AAsSz#e}Cn zKa%WAdE~d!r~4&ebkDAg!{K?keUHY@n*8&g7w+2Va#^?j`AkJeb3ff|=d>!zx#;=3AL^QUpglU?*?;)4_NJBY^=FhP`@SxH3U-Z8U+(KrzxaYs z>h}*VT>FTB#>t=V-u;_Xb0C@1}1cVkYxKsPM%w5fK41@jhB0v2TC3@VMI&cg{{A9S3n zuS-nG6tyx344`IIRZ4S0P8Q**%8`o+w)&v(4l)iPEuxFO22rgedK_NZ5|dTob|zUg z_T=nnM^=)xK4)5jzq>Ird-~F%Nqti?Y@WQhw5jEuGKoo{ByD_SY7y-f??d z(~cFL-pZP@y*cye&CROWwrZ}Mzh64#74E_NDqwkViZwVBYDg?AkXSu|E~7zE=xKTs zTu->#B=Vq$!kHC&fClEmv_cqh5=3-zWK+UiSg36d14JM<$B!bgG*sU+Thc}PMK-I# zbs9aY{?M;D$xKs+WR=J3vYH`*Tvk)iz9Rgd8VFkQYh@t?bCQWpd#)HjxKGNw^`;ZC zQU(9IKBr|_?X9ACGfwWFJ3Jr0b?dof_{9f){*T1l#Z~ccLyUg2^uImJzALEm8#Ara zui^5#<9i-@L24EaJ)3*@sZTyka(*6S3e_y85a8MaZEmpt{LCsFm3MzFt!UL#! z;?X7^mFR1*6NI&JZeV_C)C)0tay23x3_8IOZT&o`Hgy4Az@1@oJCe$b%+(?99mTyo z3!r#p&z)@+kckFecSv8j>+mbQBExqRUv?RA6RQTd)#UZ;ZxiU!oy)?LkBHXf!%f1 z40cV?v_BqLGq^Pnol%zb<0yVo#++2iFJ9i0G&hjiT;w7GhPn04Ws7fVY+09{+BGRU z#oXDo$(mi>lDl*v7!xCOb7w8eUwC*mLNMMD>cnos)|e9hfPsMx?`l17WMO?Re`*%i;onR>@;|%QeC@zobJF59Pn%=^V%hTYCr5}fx1T>~j(a_# zvlda0IG;~@@t%l;>_irpf{cs;=cXHHA&d(k_A!h5SHMsMF#sM#-b1dtFaLENDR1CCnkC8w%G5BD3MCxK1Kb%X3Av4PMTk9PDh9f4RO z@PgrIUF89RvM+ZpGh2eOtyPSaDY~+9R@=ki!Cxj2MttBqr4^s;s{u{o*fY8w@IgdN%*lkZ+iN!DA~fE1>-^mH!j`TlcQrTfda`S1 zkFcd>PfuZC&z_c{J&@YRK~D66q7Xl+5im#(q~JVLG!%X-DR#aG)m}^1VU~pGNps2)o)G_e!^^j#>!9A)tbLj@-HkLrbAp2n@P}Xf$E|tc#^!Lnil@;b zZiWY5{vRP$We|>H&qT4A=J+=H4op7JO)(j1WeF0dGJN)`Dj>vez~{oC6fUNy9>P8L zfCWw-^_AnerT7o^S|(;TV@HcA8&nVddx_=*eGlEkzDLQ$1)LME=bA#9^ z#9sWT;ubbe`c8~fz8??3j)0L(J7u_;y}TcAcfJc>KI9ZTrErA_L#FSi_r#c$9N|BM zN1C=;=wu7za*v#99%lpe*@jCGZxD`dP~39ypZHsOzSz4fxuk##_p-&pU$9vNnXmu<$3KCDF+PJ&U&CKzMDg<|Bw=zi!?V?nsA$>ta z7{o${)^?-~a3^}I@_Y`{BeYu*=~!Sp_fB|^d?meZ@Bm%qN(OZV92kRXONMarrJS^^ z*HP=$P}el_ebggq!8jZVqOc&(koi39uRs|4ct(^`tdcz7Z41uu3Foc{hGUW zY2EUt^1yNWYVV091+dq`Y)LU%lQle}E;EXuIPC=;RbMabtxfjSEv%T_R~0|`);D&F zw_O_Ox~(TCyXUrU`nluK!h#b=#dqcTFNb_ytULw3Xh$F%4a!9!k$fLQwoywpggCI5 zd6bwS71fC#fgt2l6a!u9p~5NSIKdU@N+@43(O-schs#b`FgNG+`pm=KE*ZmXu-mDu zZ6Rx95_QGm*Eaw5{CxxEDeZgbJG_xvR4f(Mr<$fdB0VM3mM0`C^ZK9I((}Lo8auQZ z%{tLPbxF~>!=;ui;Xy3^Icd3qc+36Vi5Jp2zyxTk5q>8L!A&%BAOl97Ms`ZNTusO7 z4YAckF^A>JOap111hErCUOQ_6*$2y7`^-t4M^MWwCF${i(# z{&r?Gx%%qP+j{e~X@y#&H9Vy@+o_E%?yTYucWuoxXUT-?Jhu?Of)c($HPsg;Lb9-` z1$tF@1&9h^$yn1#mKn?wo3lLTEU!`>oraXjsCWRQJio%|hpB|@A6rqXSX2KsBgc=u z+;e$82NuXu;%R6K+(MQTQ|%rTDLTBYGF(SvKA5Is+?8z z6`Q*!<<8ySH20?YHN}NBa{_C(hAjKCm3Pl;+teN?EU4?Mp0zkGry?;nHQuH%TEZ}T z^d|lbnUXe-TfnX2fDkmL{7~?Q(U+m#%WC1d z+VZ@dR9~Xg(qL^s;LOaM!&pOKmat%9A9Czjn>Y%U$%dLbM_c!D?ApJ5HJ-B|^+SWs_ zuiyCQ(HZlel^$I2#*_ON9Wzn>ehn z$&_Mop{yCbmgVf;XgSZ=MO=zHspb5W>64HoC^SZfiT0xIhO_7Sv*JgW!o`oYc2BG> z(iWcG;E&?f(q~vdp1VovSN=Ni*JSL(LRQM!$F0Osc6#! zHlZ7Vb@6%VGKOSFOTNB$dKQEGJLM*0b-%4kB zWku|~ovrSo{c{)J7;CL-TaYt#+w9E2B@5D9OWkLCyQ&7jUUF$+|6L0JC`M?;O6t&} zO|8v#;LieY%I<8KQ#*TUS5a$jRPKU9bA>%aTQ+WqFP&3LKW*MrS1x>rNtgkA@{7Pd zCUHCD9AreK35w7S?gMx#h>JJ_ktT3pMM8RqK2#83iSm^WNcYg$5;{@$EC}dsDYu~x z#D)Hn$|}(4nUp9@n9v2otZaxOg6teplwyIQ7)b$(m@ri!i%f8Vn8X*)&U>J8=B*0~ zPCgp#Gx0i;O$Tqsl2kdTVBkUV+HSVTB_L%FzhuM3@^$G=R6wjs- zUxb|*Z#1HnU#qdDwwl8KsXkA#+ZE%$I3xIoaBA(0;Hwf= zk&9D;TMt|bh~&bd0!!2wJ&l=#eL^H1(9@-pQoOGC7zcDUs_e$=YFS{9RE|T8Ls!cZ z9^pIE)nB*A`lfDZX;?Qc4QT(~?#7IS(pmYn3+l2gF{YHb>Ah>p<{ev7l-V?Y(fp>& zs5CJ8l%&|qM!m2nw!xRuR+o`l-&0i9UYX_dq)+m>OH%DI?igpQGs6{`Hg$Df$*hV@ zuP3WKEiT&)g6y;?rz=5`(;aN)y^X4=hEHW61 z4m5P+7B0&S=Qo{^-j?1zj6h3W!-9m#Z8qDix`YJ{b(W#$_@7ECbe=Y#Rx8~Ws#SM|zP62&5HibathxpYA(G~T$>c&|cKxbmFM5&JH?NuE zxr_f)Z%_-Stm%R5dA`QAGyLk@7x&J4aAQr~jc5D2Z(m-Y9+|ab@aBx}0*^md$8Rg> zxw)lvM`up<%+-N!y{ViL25Zza$!Aqhy77$z^H(?QJiBb!i?>Y4>DYSvgEODulYX>b ztujPKVlSgVjd&l^(-gM}>S?B(p{Y^yL`*?UVEDg~rWWs$P7SU}FAiyH8#MLiLB31u zyx5{R8zyUNU3OK9iGN;#M+w|;nOd*>gma>wF1qz%6Ulu9$g!RcaZRxhfp1MuPxl1F zRb=B(G!U{QQ&DJPejp|@6Mr@++R6s*edSjhH~#9Cdk4x!|2(;<@3v>&T(RQKXKw2& z8vV0y5*Ob`7vDGTMqGP4U3xw3`7c_4hQJ8IgYr5DGZBOek|>LvQWc`NQcmezL?&c7<{P!BK9YVX{Y(0@^xMWN{$G-@stGR@jSy@C zD@>v}I(PYfbs_wj0`B(b?L-_8mydd4XAeV#P!Y=Ov?$0@ASta=AW}%UM?wdItXHcY zMbS%C-LjD-Sb9=20{Zf3gAYjGzhA@XQRq~cQK0!YtzT~PW+ z{gL}H258KH3M`hz5UuLMnIArJ@c*7z7$%*+aDlJX_doN02af)sjWCa<>}ea@=bzfz zsuPY3^=n#hcxYZ(&$N0V|BT_^Uc9E~%%{g$L(+Y>|Ko{yy)$I6W98N}tB-Dad1uXV z@LvFmo>Q)ckF0^!45nWY;;Q&YI15nfNF4RR*@$kE8{v{)L~WIWkcTkb0=zX;EwRB- z86{qh(&czLH_LVLx#FfHI=c@49uYU+?MTqPd+&=U-&H3@-!060N%(+Y8q=7T))XV1 z7&164LebD&!s4NCN5)_@=y?sR;|(^hM8c?GT5!w&EE|p}mfl!R2 zQeGMJGj5EGsPn3046X&@_TRh8Sb0%$U$`Jd@$uIfGe&+Fa8@0{qZoTM+C=yf6!Qt1^smR%%-hyB zbV>Qx(51E;yJ}*@M`AM5Qlg?#(lTTCzRy35iR7Own4D%3hgJ)>38u8k1yUPwi+`&h zXigP{8-{KcQ>UzIAX&uLNAoz=C!8zgz<7Xn4C8@Q4P(m_#$Hm>F>Z|rkC~T?(;&Yr ztGE6lFUx~)gPj=639eU0vv*dpclP3)&)prJs2+J|VR~jmso#8(-uY$Q?Bb!v5frJy zdq4gK-utju;Mqk8 z7XhHHM3Ri7hUJ8!Vuo)5OR$7>YGDpL7%e8(i5M~$+r&XM>M6cPCPdZM?}wBL-3}u! z^kX=%bXPoyL|$P0lW--zP_JX4@8Fmwe&+CqC<0dg1)rnsg!n{LrywR3KgsVEs2qL( zP-AO{=SASOVS=`o3)gYsv$+X|7J5*aT&!s8?dh03Yi8?|#(LHbz~#wFGLR0-gtr+A zN01Xm!3eTuug#3l@GB&b-HGHQK($dIgPa72v=lzVRp5(G%_#D&d1z_&@mtH67uWVT zdef$_Z@hv>-$Xq6tIpg|y{xNXPKCRC>q}eRg_$YV)wbMOm9?94t2^>+LYOHcM_L|} zY}X=Skr3#q+^{XuTh~=o+Fg}65#j#w)0wu)SxYNs+_|n6MHjQ8y-tJHnO&O_ZZ&Fg z1R=S*rN^~d&~+a05ksbM`&Foh$Jy+<{IIH2`4JZn92nRrjUYJ|;US~_3ydua@WO|K z5T&FF`Bc2nnwgTBPMsT*WylY+0?3P}iGe?aIpr}gYSLc>52wH%GpcQ9r6m5K=bn`% zB`fdlvDT!dR$CX`yRx)&)x8U>)hQ`e!mim5{C=OMAv3eyvj3e2+uKjQv)@vmkC55id(cTI9#zw}MS%L19KKuU8{VA3@MmGj?zT3WoGb^^!LVB1}dhA|-{00IEirM6Ze0>*3@=#UwNtd4oYdYpyUv*g%P> z(QDNDf&czt9f5?^tNNEMUbvvAdtS%vnbVsZDl1BglWj>pYht9^Xr|50HmJ(#M&&1L z&|E$b6JN*{f{H- z!ZrSs%v68AHMJ_^O;~z!LYCgnoo`Q{_V&(QZykcA_v&6|>7{64=_Qb*_m$V5TYoD1 znE%v^yFAOu=YBa;a8398 z)ldwh%|O_J-QbG)6lWuoe>0#3n1j3waM8wC9E8{<4%9Qz3`~)Pk_|RX+UGDSljG(4M!CG^03CN_7ws zD9^2jt^63`yVaaGkW}D_Kym;{1OyF7@eks{YOX5XlM%%TrsSv-vN{l(u#!cHP|{b3 zj1p#=(fNgbCP@p)n#tPpD7TrTQd(BkEsZdTSFKMrXBP)tIzz;Yz_KZ+8)KuE%};G8 zh~F3!9h2Xfk=`=Nr8ns{${>fv&^;dqqKY#JO=`Ovl^uRq&bnu7V7U|`q zf0>igzjb#dzZHLat@5TDR%N6u-Fb3u#k}hD2$PfE@gRCPX?lrwn#m@}7n$oXqUi8qW2Ffu3wK@ z<>b<78l5A~;cHq|x2tL0)YLFbye%9y3ZO)aDL6}NcuN!eouIxTBt7%(P{CxCUrGy& zkLe=6lTH*;Z_Fkc<8}&zJz*BDIkHE1Y@a;l;n96I8t1A0`&99^ea}nJKJ^rT>+c`NXtNuW1NL#F#hBM(g3bJU zWCsc8mB=anA$|m3tcddmGIITxIOMwFZsI^wA{XyPd|M+kYWG%>yUE(nGY_l+8kD*3 z!|tYgVt+Hv93PGLFp<#-<`;&(C*HEp7N=eok(fToo5m|n3%u7iDLpY_nL5t8|DZj; zW_Gc3vto_3ySTl!z%HDP@+Ku&tw~AVs5dU%5*5MQQ}Pf>l*;)Fye>8`Mfz(*6hEb4 zW~o~RSZux0UD{R;TJkJlkHSSeU3A{g{AR{?qg)+{z@1U{NE6slDDPfkhN3mAADfqhnn$*-9 z|J7f$#aC>R%CM9TXe|(YT`ZYHS|B={tfZ~sj^`-cgQy;Z(Buvvkdy*<>p$ndBIDn3)%zyEv<6 zZJR%KQd_aB(Ni#^IBwhawQCC*mDTjZ(h!wZ?*932^;w*{70Pg=-DcWK6D#4B)4{rN!et4=+_QQcPk%RH{f2_fEy>M|=|B3-iQRJ7z+m$}iO)o3A#nmvwJ?!M=|!<&`mah$*V?pGWsIY8L0c<$!u;U1(u z!e`t(xT1gX=9#FI_j|)<-uxW-+#RqFUse7cK6eVYQdkr6xi!j0_}r8DFa!DAyW?MFnnKQq*+4kLQJiZ{ECP$;Bn)h>iWrm;|n!Ij`bzg@qNMMBc5GVVxOIc>qdc3CQPaUWRG$<2;!*m|5e76uMucIsW*gZlAw14-ctL1$C3c_Q zR8z6}%-ZFrE3!18|4GW9QbheoQm3q_Nl1^4RMmhwS0~m5`;F9A1a#pb{$UMA4)^3z zWT6I;1@z5}?&v}NnWy@N&} zH=(qYa-l7~w532x2mO~qp|`i~ZMiL_w@_mF{r=7)*|MWJfw%YndEeekWa*6OJZJpQ zZ+?F{6e2;|-svkoQ&eVsCva5Onw*{QbojH9le7E|XMT1vJD8l6?{wy8CMRdoXIApW z6JpcEi;CXqr{DZeX93kNaL)S9RzkHR39IogFKS-LyW~KU*?KYqYCE#u(krFGA6%3W zqbP{G0fK^I>l7`t*(2}?4|!q=`Ohd{s+O~rs4cLC@Okv*GNG&_x5ihK<3Z%6E#mVC zhzDy#@gIHVTrZhsvzSBWTI!iJtHNvax-qZM5FC8K4j!0Vidy`h+Lp|-eyWK_PEPT#uSaYsK?*Ap(*|9 z@B5pJ0O{`Rv|0i~yPNPRbsXgwN7qTl!)lA+d z2rMT{I#3Q`0hW;xX6enA`8#hOIq!-2xmu^qQZ#RE$By$;kc0DrmK(OLyl!KVkdsHQ ztTGsUTiNmOzn7iYarMpK*0oJbF9{AdZS3+lS9h4L>7MlddAnW>HP!8YV0`4kgPkpP z?YXDsY2i2aVQu+icMe_9gUC!f+yIipfAa0SFdeOuCY;NhQqaOB7bKYsW?8~*+={rwaCExqTiZ7*BZ zSyZ%mUuXMxe?d}4LE2X=fy^6v7c_c;KKr8PrbXhdS2Nw|okkw0b`*U8b;|$#Rk6oA ze``nU-lc((C41+W4h{?yhyR?BD&E(-D7C1;)45~-69#!bIpsrnwkeSAi}##4+Z0KUeCjqO(!KH8sC)Aa?^77R&75QN zOAmbN=afp%#%nX@bMoV_k9tNPm!flx{U2S^=vf&j#EW&yMV%2x#sJR;ozY;_L17v_ zGDe+ZT#DdcS!0k#OnOm)$`mo}v1ey+aBRn>4TI|k*E^CUrzqiHaf%oW0F^LTk+naeyztLv)D(s7h-E8> zPns2odC0`;gnJ8l$)h&{=$GXYNW55n@{k7(Dw)i3y{=SM4A4Lf$c^|7ks5&54fxv4 z^q(fvEK=0~fmCem+_$8-Xwmq*PB_T>`^MZ>Z&KjG&ZW2RY3n?Ea>w?^4j?fU+iot; z{^HS+#pA8>cl8&PFWFJwzI$=8cq*kBY0_(Vd}-sz1BW`>FFHBC`ltKZACloXi17*Q z@E&>aT_BmRLud{))POg^o2Z`BP#TLO*YIxRQENQPXS>`>Azdxa<)v8}wmf^D`c}F) zZ)J_VUDQho`IJ?LlUtq)~~yBchjCjc^xAS-CJ6-vRb!vH;i=T$#?l$ zmsOOn>?kbkSXo}NtkpO1L*ElutiEY$ZSB^ZR$uXiui)Oj{g-d7tJ`>a|K58s4~npC z^1qe;Qtpk&KkX2Qzp64~6x=01`lAa^r`O`*qYID11Ge=55>tT(IR|QiqK`sS3g@bh ziqwXCaBPReN2v6)+O%_`S1KMbs|9=%%tHfyf3DX@Vin<$%@(V)Q=t{aw>60|a1*lx zu-P@mA6G8j6PmYou&iuw@4U9XLuHqzm$&BThRV{@%R;%it>x+Br3RPt@F&05r`wJI zNetCVTV6J}r)}Q8!E&{FOPR}6*21gH%>$RNC@WiW>A=vjm1Sisj}5i1tWQg;U)kES zqBa!~qU@jwHNh4S9Hoj!2ZoMQ#p6S*tLoCy>Q=S3ET@VH`o`Hh7`~sK51mtj;3lsK z94*elgP+9#9;PMPtOiutk_j`;p#UMtY9arz0IUoaDF#xCr0@G=jb3vB{*!-d^%T3( ziaj=)r#Q`3?6HRL7c+_nm#(a=T)A|xc;Y?zZTgkhDxq44p#-hzmX3;DnhlbcA>LCu zD(D{<*fY{m&T>+Dhx9qIotNJqw|ooQS83LuJv@2iv|omexkI^C$YYO*tMHC_?B2=0 ziqA7GdqAT2W<5B7XT;~Ho`+dd7Dnn5mMqo(8?S$#MB%Bk>r?-SlskFZDatknoR)`;9#q)FyJ;Pu%-wNm^#&QoA5JD?KE)D z)o3^!2t?^XOp7>_U`8v@0>`1x?cKd~^V-!hG{O8Yr3otTMb!S5DgN)%3~3X{N^{$u zp|Y|ekQJ2*ft*CiN=teAzmBZ5oSp1I9}^Da{Br(4^CWKgvO+0f@gfDJ^1??5_m+k2 zQb7EN@(g?ivVi*5A*>0lv@k?&BIsL^fr6_U2STaJ8BhQs0bl`fRs*L3{Tj&QIsne< zbQ`q2Rh8~+0|K&|8!J1iItuf%1MUDYw9@Q0eU>2$4mLWbQ&D2cfKbTnL9Qy)Xu0C7 z6f7Qo^8z|nbxDr07PB>u?7?E6zo4|Vpf1N!=ugrObR_HBlmugD&*9p2oqm7ky4sp` z9r^hk>w@j)Evu+lc3yki`O5-MP^Xzaqzo2V< zP0dJGK|$9@P0e~_OX?3S-8XOEK59pwO9MD+pos^?P2x5&j68PTupvW6XOFFj%IHst zo256zKccMXw6crE&B_zvADIRees;T^tctxL4}mVWg2{eL?e!`2isxO0vUhmdJjBq= zEJHi-_wo?vA8$wPSvl%JDr1jPdy=rG`;m0KF7F3*=ds!|)IERzj(ene7;C?2_E=wM z_0rd5FWzy%Y40&t*+KTP46qfnTM2$FX5K)Tzl7`W7UiqpVp3!8MX(Ridl3jiP;l8y z2GmiK>0S(201J28mH1N1{*>2dQ&q8nZ3*8r@g2o~8u1iCJO3h;;MrE8iu`4&$j6zu zN3J9#7MLpsFcfG>SK?yWE~?CM4xo=Y4gfL3%U+tg#lrD+l#k|3=?Tx@YfWs%SYc(bfuv};!6oLiT zf&#A=3T;A>1?FxOcN>k87N-RWyvQF^rTXayBBl$iUAZnNGpt>7+4^Anf%`{C?my5T zTz_IwSeKc@zOweV?e*&)`|CB=eDLT<{r20|-aVS`WltxzY`SLEw!3%K)a+p23e zwIqhSz3HQmIM<$dWW&WjyLD*j)}LLx;gJ(-osSS5A>2X2k<-ZgKA`XL&zDQ^ZW{SK zE%Ay7*Oi|_xg^vIU7`80@QP+e_=-r~DhS5mq{IZtXxtcuTa;zFR<4DwN=11oQiuY{ z-R*TC-${-o$wC*aTXL%idt|f$q%*XnC1TJT1zhy_uwSiSs7>n`M{bsYzF6VVN>W|; zl@=CY&n76jzRO#l%t%r6e;!zr;7HU+9pP6xG^H8+gI`Eb)#!fM^7{lOC+~}$N>S#* z0TvkO&u}YU(s=kA?B$*eSNI$5{Mzua34zgUdH9apEOsw`VDr0ywYV|U6JE}~>dOe< z!T0gv$z<6C%s~y?`WKp`(Mh}Xmi#+>-}WYbFT)%yRqjK?*mf*76WZ|oUCfzBs0~%8 zF#(QmQ;9LxPv<0{pdttJ{>OHR}4QY@@a=T5y-+_iDvrts^mbkn|#l0Vfp@qJ%Qwmak# zt1ammF2=hE<0Y*6e`)T7UlFt=>j|Hv+zCrh&z*pI+l1#{rQCr%}Oy7U$*Y|z* z>057Q2R>m+0`T&$xH$ZGw(G><@aNau%+d01-^gxy{UyxXa$vu#0l(WJjE0b5LX;?$ zC5LG>)!=UdL@7e)Ap({O(ymso8;98;0l7nv0su@47*xFmaWE0X0|>iL$Ahu98+tqD zw}hIT2*fkTo8zT$)Fk3Yt#SQ-iJFj8gcBwx{F%vPQMn~lwK4z(J>aXXstkIUzv|fb zm0upa^zH5vi^Gyw*0-~7#m)N`S;Zr+l!-5cgo#xM*3~EV?!JC_*}mR#yU}iJ==keR zM}KV*Q&`;l>7~C}UCg z@7foD*wl&leZ&rcpnOE6<|jq&cm4n}Q;aVkfdIV^BJ*Qb;>-9ioIy$0KWUSmRvN%} z*?|bXFx1x-G9rA%VK+c3EcKy==!FqZ?gj=g>q71%#CpJ(0OOV@>_jPkT?JACUPutO z3%%|08jwt*Am0OTXRanw@0&bH^qQrKn-aG?UZ1B=wI=u*hw5F8=dG$MU47+h{J!+_ z75O@gIl)uWR(igiT@lL3sr0!_qDjdruFH0p;qMGf;k=E#^AD`4*Zk}k#=+*s#H0*g zj+R}JRM@_yziw<gx3}9+NcQNUeUX*V~&{vu8K*;XTf)N>nSAkPG zCZ#(a>ccK|i($^l`2eM`yNtv5hulm&m8XcALaaT(_>6IgG;)1Am)e+D?8kHKmPf(Z z^DJo=m(~EpBGn-fNV|N><4vla|Ny)SQvwiP-`7<#3mToI7#)5MD5{g^bugSXXuB^nJ6eIC{J z+AXR}M<)Dd1#KSbDK?)j9hya}p-%;FPRZWzqWkGi4io(^`Z#n#6QKjCF z^-ReuY%JJ6#%@Kbnp;<8HD!wpr?xaLzD2aA<(xNo^WL_LcKCHhhui0NeE#C|=UFoj zT`{25T{~`GGxQ+dqXq9V0h(eF5Q!jYIRv(D9bIRjCF`ayS@n9w@A0zz@GI7MBdG>6L6r?}ZxhEpQ8~gIAs8qpY;u}TAOP4cMB#Izvo)2t zM&;&b&o6NXYI-1TbpYU2G;g=ulIhq$GknPdvu5~c_;c(iX8EyIjiGD#1kPV_&}+>o zoIT4${O8mw1`_FgiCPPCI_6l_6wV8U;HfT&dTE3*)==^q=;)Cn9Je;lYZJ*|biqQR4WNDUh5!G(XD0qp{}1*IF}7FLKSqr0 ze|IdzJyZLS25_~Ddaos}_SO3TpbB@^Yl<=!c7D`J_e{e%-!tI3hH=l_h_eFNrD!5-Jh_d4l2@rFLksfLYZ(|5>6vW33O_u1%sDNdRWEAH2JXQh1Ylm`&e4Qj=9Z68bIItVZ z3j>&45|amGN@bbA{$$oiZg2EIjttDP;J_XeI*0V@@TFe}A7}f&zz(nv!n@ctC)hRN zU9>lju|eqxDIL37D|mn(qk4saVBk_EnUA^_7$FXGSDGl^@G+_A)Eo34d+P-I-f=n? zqHsIpmD{9+0@*EBg_gsHBUzD#MJ$7%ztjVRBzQmE*LW|G0(6ZG;cz>Vk#A%vo=#{l z^i?K%kgW7W;1DV+3iEwA>A{R(iX$-r@lr14LPjh=VnJ3%qH>asNLHlO4I~_rYAW9E z;#=ueg>GG{duLtQ`qj$|GAfI*bs6p*%@ylc59iNOCjL3W>d@~hDg>xif;Gjs12(DL ztnjxIY)<{I;zInLU{inf5%vxfjzL@Zg!BpY73)-tQ8!+giJJhK0fYbrZ@C^<2r-o) z$575~)M8DuQAgY}M->&n&MH{>`qDo<;Uj^pXuUyim7CmWf&nCD5N}<|#=;AC9v(Zz z8kdH*v!8A~wDnE#hG$Ov;SVRCIsW$Be67ePc@qqWzaa0QCk~r1hz+G5pBxH~dVXsO;l8_Nfi^S(?X8=m8u)|0i z;iitkHK{${BfdG2$Fh?BcDp~BeS`Wxeq6j+XHpcC?$x{4hHf?rb(1K39nbgze?}rb z19=Q6FU=XBfnnzoN?KlS)z|3}{4vjZN*w;=a66uGPj~pXyIxH+;3+>Qbr$jl-6Y+E z_c!7FaS!4BsS8RCLVZa0V3gmm6{VyU*~0V1Ro&sEcfN~hP?8Mq+{O1gWHRX;88#vy z(H&74t4yRyh7T1npun0ziAKUXQjs{JAcOLr9P25e@>DHAT7qO~05u;|FLaiUz(N5; zOiq*&X(J$%P!C3m&vaBQ#+hF(9XoZQbS!%AF$MpABK!awI>A83C2%=~+pSvh6wb*U5xrRwn^VqY zj~)MyYMbqNN_zeevm7_wk!Js)Gb8_a&}O~U=KR4AQfyzsepn`~7Td(-*blURXT0|4 z6h!Vkzi32h@sJL(^>3xB|FdW&hyn(AJ76QFU@UZMcEntfVX^Cq1yNI$&ZD^N4JFaj zD5x4#C&xqG2BW=UDVGfDrgNg#(vcY#-wI$ccc zzyi>;P=YKE=OB6JJahLXD5TS_d*ydxFoV!VVtKp@Cj z*v^u?aY_|Nle`HuiA&#Y5={BsRe&=HQP}{qXt$jwj4J_LSubRki%!X z6mp=6q`2bx4w&_#>JEaL;2IB16C{pEf~;mn`BYa zon%SNw)l$@okmwdQ%TuCC{OG#*>@O9JoSl*Hk;;MLwfPN3V&~14r?;mHW&)hN{w2* z*^GRC;LkrVHi`#u&z1`fq1t?JHZ+C>*fRh|A#Muz(qM_nksd@}#xVvX9h-UqptWhm zw3Ag01i6JrGd4$*5L3yS;Xev2IIe|YE1J9N%O-QzR%yiK#1ef`Z!pUpTHUB+_-4p& zP0!X_%()5>X!6%E-)t-_~cHLZJV~BbwzD(bw{DJz+~H_^`sRgId$R3 z#l%FD5!<^3n|rFiKaiZPsvuhWvKof#3)?Dv<}$rmXSAi~X9w%weme;CDl z^RYs?HcxrFTT$#O_O{yd2i757qM}sWybE>y{G&wUp!0_f?oGi>I{s9y$AlKO_@@@Tzo8WqDgnb+5D#KL$u^N8oU1Mb^qunfQp!nSSe& z0{9m`2mDe80S~a+<}Tg$f1p9GM0TiEf64iE2b!9mK6Fsq!Uk#^_C3*1`S8e&kJ-zO zKiLj53KNPaKNiQa2F9K?2R9x;|BfGi8?;janm+ zNRN`VQpmX*mWX7sMX1X{bRw#kf^4dRj7G#&W256oe<28lILc@s3fUoW*;jdsdkq!c zYwPB3br&Oo!(dG>aJMc=Wcp;wpV_-s%QLP^bBZ&qMw71EyQi~x{rp0GcN=SGuQYG$ z%&RU5;0m@{1{S3o?fPUxX1dY#kTu1stE{f`cW(~WXX>rwp~ZxT$>Yo}g>dI;o=hOQ z&k7TX16pFvas-i276jvgiV`HptLX`adTQ`TNd+6-^zt&BQ|sOPhl?-z;~tOBZeR8? z@2?j9CC}&&vEDue$df0gMhjdMDAB*d`>X8^g}Q5}`?K41o;`oO=;A-@^&*ag`h#91 z2%oi4%_>PNzkuz+Y`(KRmMZEl>==f%ge<}J`%O3`#aQgTcqJ1wP-y_lSNwM?01nrx7`J>V2 z&**=x^hdEl`7Y+?-{U^NQ?iMjns1~0ZINis60<~tbw>mVzq&wmi*Nxb~Wli_&flbPZu`v=-%|4(L;&!_mzWF~hH;d;aH z)xzH0&g}?Lim!j=wlpjU^9Y_qKmA@xg-_d2yq1Gs<58H~+l4 zJ~2MB%cKm@r&N@KKB?t1d}wz{e-caNUX+7A#Vx-c<@cZ*^eImNE5%ab18FhJzZ)%| z(f_dcjPM~Z2Yrgu|89)GN`3|HzXy{LAODQ@jpEnDHOif!KcHW6p1%?8E0kNwr#No^ zJt*(y?eD`SdV2qD=)aYh-ygSq8rl!j{IUmdbDuuH1885%%O8x6Z^rl+p?o1Pe<)fm z#`-WXLjOIy{Nc%oIOAK0_Pu<3ppR;~6x)6f?OS;HqtW@B(f?X07xYoU{Nnt?8Go19 zFLo(ml;ixw>3^fR5bf(w{{86u%;>)r&mW=Zr}vX_e&W2}VwA7s<*!8d z?~M7I?*B)V;W+K*qy0hN{?%yzGv=oVqaEYpdo4Qt8U5FZ^O=>?|JUR8UypJdFaL4e z@gbH*{4IQCeezzgGg?;14v0r0p65q6m6U{qlO4)0l^;O!R}P_gW=vv$` zgG=4bPAC<+5=7D}$UIyZ%6Jh@10u8_f@*3Jdf_fnlIzV%Pfa1gnVA*xCwFSe6(Efv zbjAzFL&A`cm?5exc~wBL@ph}-@u~qDDT6^(=?9mHGnfS=%s2TDnsWsQM@|w!?bx;55!~g!(;Nbbo+dQV= z-YXs&zZF_~*9SurmEi|`MNImc%~7)a=nyL^`K9T@Q=hD^efs}=`2H`4hW0OS_n2z- zUir|@Tf;vH|HlVIcs;=^q)xu3{8M=xJfIV{nk>P~@fJ$qTO5SveX}qR3YPx~RkWlc zkxZ)#7NL2KX_8TBZUQE`q8NdEo##^waz$aT#0-G~QOnBnMU7Sm-3DoeOYjgQQs)#)NO+2wtQYFQ2njv^rr!X-H*0O5rV^@<~vK zWY*MVXAdmy?yRY=fg?yMOwHNeY;PJw-5fJ%17>M^;T`JDMLu8!|1rC^$_j;&g#VZ~ zFQ7oHl#BmZRnRU$vt-48(kwL;Qx;wI&23wry>juQE1%u6?YXNKvDY{0&SS@x^=)ED z0$0~F+x@EoH`ebSUOpOrYm;_g_`+oiHii!cuBs3J`To_FH`MPLUcO;o%h(MA12^mp zg?3&)IB>&Qi}>wr-@J0sqAS0-ZR@l2`K+`o(#?tu;a_joo)^AwSnZ}E{HLjIm=`7N z*zf}N(cygRYP#zi1Vpu*eQ&%GDr#xWNCoECyjE8l{BUVsAZnvJ4~gQS7A`FCAyq+D zd44Y9cQuhc;nNvJ1&MZKM47L{N^{%a8TUed+}iQ?z&ZAewNIn9kF)NkIO}c=NM4AF zdAUv{PqF7#fzkx6S}7=bt;oj$YZgj!t6OuQdp-^!l&Ir}KQq>??rOU3U@ z_r!aYOtFneH>2?l!;!|%Wl#Kq{UbaOX2fJuvlnOH zD*%}VM~`cWmr{s7S3xhMU>fLB^`|3gXs0vZf#6B$RqIbIS#n~1RrK?!3%6AbHe_cv z3|4KsP@Y_PVzjn)^u)r2myOocj9#|z{Nvu%)%EqOTfE0Gl*!3ccKH$MPs&?@RxJ7i zT(0_?@o+75A$MSOQ|!4es_Gz3wWPR@5h^S{Jn5amSN4uqVS} z7R85dUN-Pht+UgbgaK%Z5K*#N@|K+N5=d&muSJNzy2x zQ^c!+0MO|w!yzXVqUj!Hg1O9gT(=V7DHH}U@C8_5G@>l6)N8kUOMh|G6Sv>~#7*)^ zo3}U(zd`X;nwD1VwVeuw``D9_*T7s(;yqTtpVTP0Lzy!i3E+0C>iJ_#D$`FCSN!nX zue|c@ABta@SSfyGuXuRkA}k(*-;col2WxYBe^`|{`eXld*~2GJJbW2@EnLQ4+r+*V zCY=)eiNgEX$GGFugj;yRlaq*9fg`z#KC$jVu%MIx>Chf-;JK3|xKK)?Jrr5Xw=&|w zpg$*+4liU>5$T91|Kp6h*ep|3L)lZcL|W!Gvnun{s%DHVO-QrY-MP6DclGGDA_rvB z>A;%{>%u;cf}1EQ#)LAryToOB{fXmmP63=Gr4%*$*CNmt0-7icg>O+(;OlD^I$41l z;+f*apgW;DtuaH1Ed-ek${DSq0MG+Pa@-=!30=K~Pt&S#4& zjK|@2pia@;O~z(7p%~N(K?CSyjRMczIi5B~(WO%l3)O#7iw_Q!Ehw^T90>^pzQLuZgRvyGe09fC{?o)rx|JT~hYqW5|n}yuguQ-n{jbeKS#8R_s}@cHSi~9vXk)>P5{pSo0;}TjU?% z#?%Qd!p}p7D)5L%&j)8ibrH*vqmG?I6st1*OuA47gpxJX!C|k6GI=>{NXLOhIypwf z|1cgV3`RhmbYw7ynS36PJ?)d71yv!1YSMB!rGR(d+Qy4-NS3}ELFK9aT;rC<4|ld) z_}I=Bx9tK->;da1-MO`Cf1Z#a5tK*jIrPjPl!_WdK2x~p-| z{o4!D*IvD*6rMbmmMG8 zf>ou(MFpPh441>^p}CIaVxoZlXq-%p2HMQy|LdVej~*CR{X9MA(IZkNJ{#CpwfGA= zLz|bEw)m~(>%Xvm{O%f_?<%KuNqx=Ypews+S3S{OU}1O}_KI6+L;a<*qDW%xXkomoV>ZCjTxE z;!deYw4xvI?sPyHm*lEo<;uYJ_2sGNQgQj_r!MU)=-tws)tvcgb{g9g zSU%5JIlQm6b>DEMZ{Bc#?M};nB(piQd2??;-=!yw?FS#+*mHd6A{fhtQ?g#tH?6s_ z9nP74|H2CvwO_cVN&iw-%CMq17wtUOv+==$?bw!}6ITg>bR*`#0Bc%xD3HZq!UWfY zUm=r?fU0xkgpEC5K;T1yxHn+mQlJOyDS`obP!UHt9?NOL`16oCihGv2qj8;1_O;-W z8rSw6mx!xwEwca4n4YohAy%^C^Q((4*y*;57FYQ^|DwV0-4p-qW&O#C;T_W73wpP< zY`Hnh=HX-9I{A00LwXB5QJ%0|rC)X-!ihyz2K8uRdLApl5sFht&gLO2)|}Rtj*@zS zuwcVa6AA&D_s@nxAayitytJd^=!V9|4M#gVF5TF4GAqyqkbppDW&juiZJ513T>RXD zhK2*rU3~bP^!d%hn~(QrW%VE59QnjJ8Emft`?d52B%!XSO$xSMH0hcRDgtmH!Z>9& z#G7%a4OeK!&rwI_;gAvK1QB47;e9a!BZaYF$H17JhBiX$zHajG;(O9hV52M*E<9=H z%&t1MsVF5LXatwRMil{MCEW&GiY8dEGgKHOMl=<+ae(bbdQfN|QDc;WmRs=Z#a?%+ z6MF~Q7*z-nSRPgXN}?6kxCkPuIrg6UgUb#1~GI@T`fE*aR@(Q)2DNzal{sIYfibMw~T!sa7GZT?!M-pi@=w+)G} z_cWvjd`_n?klxS}ejww5C9T_f^7DJPwJy0JBXehO&DsvXzhiAp?@rp!;2p&GF^7f1 zK**Saz2k>x9Z!Nmr_q6<%J~T*BB)MD!^u?<+Zv9#pfeQjF!eJ)7m@HX-D*L4p+Z)` z{Yi*2y6NU&6iGw87nxSc2uhc{Sxh9PZ1M4o?1_D53)6cVic)*(%NH0ETUQzCm+owA z+1X#5Ti2EIg1a^2evfN=qXmh9b8_2S=lNRO8|%wWj?QfzIr&|io2yqYS>XSf!Gx`W z_gap<@jT8*iSVURVvzz6a%8$voD9(gkt-q>cw$JwOHhi4fKj<9t~$cujj)~w7RElI zb8`-r#|WR%JJqQMqtIY_qn$^(L@n$YgVmqo@OwR60wtp_nd2ifLOf_5B}F8brwQyR z9Wia5)h&LpH27|IdLU)~jxJwd`GL;jMeTJd)yXc4+h6UYnM=-VDy$Ff=w&ZSm--4` zQ8a~p+go}sS`na}vkOujsSamxOMXs$QA%nyd!Nq}(ULc@{&m9PkRbsMF-V>zMQ>4f z4`GdEiPDL4qKm1C(C+QrVU_mC9F@jstI%1+h5!>3?JUv-N--7s9E+o+agpU7oxktJtWq<<=JD z27T7iJ)`S7>jV9Xiq2$D7N4i>;%{43xpvH%x^-F8jzuND_O-QMlgXJ-ke``W5X|VB z&kiGfXmd+rwGsKmB#d7a*5aR+F;59NDcvWLWQij^()*`Sxh#M_fcy~e&G*kJ(GEwH zWK31zL94@GEAr?1xS!k%KrCzZnXu@Xej3f{WOCveK;>e<-@-?LA{`eY4)4+g;_1ZM zP=GnPHe|#RmZ70iPd#mRC%9J$w3A+Pl;0#+bubXFkP~Yt@19Z2OF#vYg8>;uG~h50 zyaJaE^sW#UWEML7s*?j8b`Y;!${57pk0d$#f#^%NY(?aO#U)$VSHH@}SW!waBfNRN z+5X2r+AS-^O%u0c?r?~J6(hcaF((VP>WQ>qy5Vd)fOL&7NMfyp2~oNjB`%E?b{_`LJ+UHgtu8Con-TrkHJr9 zp0t?A*PVNLz@I7;PH!b5*3V)!nzL+%+%%n>7;Nr!W)>)~=-l?o@hvN|_2~w0@akK? z*g^JZ^d;^=Up}Q0eQT9Upr6tC8D+c0#Zn8#r4@81wIH}6d`oieiUt3TviHNu{J-~h z?H*^V@elQNx4d5*(bOUk5su`T=@NOPn4o+OR*6u^fLj>GjER@H^ za^+$8IYzMKIGqj<-UfctxFw`SXKFw$TiCM8WiyP+-l%Kx~GZj5)v=NposSMtVwSY9{um27A+0mAqux*K5mK3#~05sA7Jw$^8r6u`VyTFy7p8Yx&Tl18u@!_Hef=KBC|orXn0%N z4*XBr4r$ZH>RiB&nN(N-k~Y5PwO|eud0wj?{D5=u(`(K z&4KY$hL_&|D!l(2n&&}B%7xw0g`cJ*Ij90k0#8g0T(C5NnAJiF4m-{We`Ojj5f?A2 ziF@X*1-U6DC8a#2+?!+ZQm#vbHvNpW=k$#ps0hZRNbLG}d*9hD#(QaTN%TOJ_Sa@- zcr%vrJ#e4AO}vxSu5@8N*Iq?Pn2SDvp@VHtDlM!NsMyrDpFRUL1IokW~O`B z>~y%&9O=$<5INe*s-a>Qk+Z5hne79uOX0MxHZei=d3~pdOl@kJP4aYhmJY(j8u=P- z<7;S#47_6o_07TJf%?W-gb-Nksc0Jb3A!G>4PFuHW1o;%cH0sHNksx|hY1K%mNUX15ai1I1b&e*$W0xFE{QAlGRh>T>xaDdnyew*#dQQ zrI2Py-8F@f&T%tPunR6P3=&5Ur4$PqTfhSy3-jGsPCJyzbipAXc=Ups4HkDA!oR;| z3_EKl+Y^(lK+WCo5hXZqs`(x8OLnrni#32^-aIRN!|ZGh81DbxyLtJ$sh96r-|ea$ z2CHkVl_i|ZyMYjfzjIFSrsmvu9>`wBLW?k_u3PrhB@R3}tdbVe528~MYoG@#d?C4B z_~KMSA?hrpI+~TJuhk$=1JXG+HB?p<_{l(kP*Ia!3pOE@r6P_AalFAe_rDZ5Y|$8o z+3PIIUE+?kl2*UBp}O4BCGJcsZOzMRs4jajCXK}zvUq6LFP(Mn!uOti5Bz_QHx+it zuZoWf;t?iTfXuH^1Um=; ziFHH;1KcbF9R)2CyS8t0OZp+Rr?#-L)?+@D-m*o$vaoA?&|QmUDE?Y^aD7)Hf6k`x z1#D>Y8OYM$8I8DPEO_oL~0pW8ybwX5*;uJqv07HoC3jcP(}wUj4NbW zgz*5G<5bO;_l{~18tc4r(N*mz$hIbD7o^B{El+UyU3CHe0kC*zvzVZj4`aM1FkU|t zQCJty#Wh?%OX>z>yJ3PgImt`{rQn2jF<&0D?5(P3l1Z%aLWLyy3VVC{SMF@9A6>R+ zU`5r%`!90jmMbX^PoBrI!|CyRoR=TWuggioYn0%QIS09B1Ey$}T!Wufxd!hX=Mwo8 za?Pia^){R?>)|I=)}w)(fsg()vYrr_{EKp-Lio&@ClRw)R)~BUS|;UL5q=CJAxhMWhF%g`8id&RfIE^ z;!O5hy$L1*JOjvt;OD7&aTdH>EsT#Q(Mo3{<~y79og1e9h2`>^`r(GmLlsTU<%cp6 z|-rQV%FtdJGGeBPtRx~%EZvF5--#S0jr*UajLsL^j z)zU_fCMovYsgGj6#r_>`i2WA(w{#-*TkPN1QrJ@q!dK~nn)3yhPz%hCab(STNcf)c zp6F2#2g*Upw7Rv>M8URis$~}Ob)P6(-eZY!8#8FWhP2m%b)r5&-~ABNbzaT%9j*{> zV?6gZ<_^dc7IPz(tMC4sDHf}AMIqquii zqQ;UqA{eY@QEvcbEz(G>FeZySU22bzkdT%@N_xtQx=PR*1*6)xagM&N%&a%>iT4CS zZ#L*hlHodmu1zN63Z$Qoc?bzaK+HX-hX@IJLxO(ir+k(PB=uZhW5yHUTxDWL)5uxg zN(bqBIOKo$;h~|o-}?DafAI3d-+TCb&wk_XyY9H<(jylg7#bfMA02V!`wEL(IX2{o zV-AWBMJ{*JN@?&nxY1yfFb1C-^cKuGv!kv0Y>OyG#={Ci|#V0JGR)6#D`at#X@{^48t47@Z{em86sm46%m8TV&42! zGzgPC@fV$9j(L_P-Jeohmr~rCKhZcf@>#7C6y-Ml#%6kBS>uuEh4V~!VLnervnD}_ z%u}eWsL_^F=Hm0DeJxsqF|rv&AN>>XJvwVbiQ1!tnV;%WyfHx?qO8YkOplOgmMAX03PfUhu#;efhK8R~jnLj;aLHhH z3w9_rY!-f`t%6i{ut&JXJ9OG4pELY+vftJ$Hi>o3Hh{srTb7~GnKP|`N6NP~PrNws z68+3FbJD_Pa_cAGk}K-R0=B}G@NcX-Tcg-G@lumbpUg7K@&aS^r~Wg^Yh_tfGV!8V zPbJ~^00(q|s%QU1oDi4G*9bPkP=M&o!EbpgFuHo_wN=alXMU1IOe368!MWjl)bnUb z_!EAzVpAdzC<7}s+S1`81JZ)7T8q<}?(q3-Rq1VG{ls4@!fU`?{Wfq{4X`#OgX%X@ zY^x6-Q2^Ub&>`QlL2uXt?^viZA-#=glYkztTLEx+-AGR&BL9KZzrqNRRm2u2CK>@$ zMi>DYOGQa>M!GA_W=%{^1k+$N8)4}IEr&0O1=Fvl6!EFpWT_$$o}0+zn^&cJ#YAj+ z2-oF~G;Tn=@a!T#UUETS&K+Me?|u2@y`5XyJtwZ+|H!Ut_q+}B?zpq<@Us_anaj}{ zzL;H1pSSwj*VK+34kxg`g%jkBVJG`TI7Rk14+SnbPq{@7u06h_YTdv*d*(gIR@}I~ z{#(|J_mx}ju#&=_+i=*Qw97CrZ6RR#z~aTa0lFlr2AGf;+m0*>>##7~sAC834ZH-> z1`>J=d2fh9AEDG(X?+;%G8|_X?*4!JR^86<$r84IXPxHOZ`JPn$3Jwz9d!Z=+sJOj zpV=8of+hplJ}^;<-9Y(?eQwlfMHV1c#KCh>I|ele{H#UY7eL2>VF=L#Zf8mOvWR9`@I*UU_2Ghd5@+i0#S^52>#AnOL`27Z^} z*${CJ;r_$i(`;Pn&G!eZ{PXhX(H7!KH)9-x$b_FaOLZfiVbsdE&+4!BT-;o2>Klkp zM18oTK3%hXxuoNBzPLE`-U+yY>Ow&sS+qbtN$3~YI6!C={2_@%E4bZaT<%ST4|s;l zoS&Ev%|?R5riE)4ps6xNM7zV|IAA%`%gUYMcT06CE|+1i^yrB>UQ50s{LgwL;a`uH z6-}&0vI2R|*T6}St{?K{3iCqb;RxkEj(@in>j-Zc7O}%&HL;MA6kW*TA|}+=7IhSN zsJ#x?VKHunY>Ej0@;JabAwP3+DHFLwF{!69 zO|l&ITW_fE?yMhb7%D09S!{WFN+;|9K2u~$G+H~s98e$te0oY?OrLgSQGs?iIN_Nl zOS&T24rVg3KTzMf4t^|Pt#b=%b8Q-9an^$5^6o8gom*HiFx0Wc*Rd(oxOGX;z`S!z zoOHe<8j_6FjV;Zcz3ecX-<1(8NXyJGNN}1=-rBY8zLG^dnwD)%b&jpAT-D~Msg+Xa zp2b)iLH;Ba!m$v!h=bQsEo!9S^XU~G6l)+|B4Ppn@-J>g;3MdmhONV%)2>9+9z`64 z@@7>;-JS7j4u`T*xW|bv$61k5L4GG-NT56hHv+#CBj}+Xn~@G3!n868PZywH71c}B=9o;ehTRO<$?zNE=)^56E#$9aUN3K%d$y*} zV+qioK0%UV+(BUC33dc~EaI6~0^b|5e2jyMg%w{*90{rYM7pwh@-FUTq(dGK-MEgV zUz+5zx8gfDrWJw7oxRn}XPrZX8IK`xGr6p^siCyHtlNupOnz^Yfqb44yZDsOirYbPbg{!-lP&=%5e=Mi7Dq!SxcaGrvGOi!0O z*BX;QJ_*Gdpsi~tIjQQJAN36+z^0(}4EtK{&Z+a;9sc?pa;hJ^?e^@-q;Hj1BOz&b z*9C*6#a$~)a#}LKLSK*A(uH{dl9BGe&xo-K>4Ps67>WT zpj#)}X1XG%UrUI*j{EyUE0D=!6!)%?)cZMNgMdqR^!ld!2eI49cSaUv zanHgu)hF52*H1pll^$;ZKFRNfnhSfkHaBnUEewU0^pp&o*U_$g`;gkYa*%w;tel5+n-*ZX-3oIPABgPGkr` zn&$J>>n2ngw}C*>5DJ4kH8n%V0M&CGw*hYk7tvs~-`_s3dQotZzsg_bNFgD?NG#J? zgoGJP^qB~q=Do8@45#jh;j`!3pl1~y*pW}ih{x_rl0th!U5-S+-4pS{nHM#?iSYr$ zv>Tfh9+FH81vuO%DP1}kql|PjWQ)Rl0=hQ4%&xRltD0fbW}Gc!xMKy5GtHH?FnktVNLC>|jk;xDTm9kIZx)i_wsY)@(Ch!N5 zqP$CeT@l2Su8z9F`oW^wA^@$GmraW)CQkp(NlZDXouwQ)Cz<6`?4-`MyUtO5kqSTS z{MJE5Ix0LENLnNn_0Vjh%MQTo&LL@D}xTeG<-h4Qe+TB%Ozig;$w0pF^v%b@jstQdB&@_Dp zq3N8KPCoXjC8+S1V~)dI%lKKODQ5q4YdTH4Nw&%nLc-S2rYwY@Y9jJg0%$GLI5JAq zf_#p`PS~VH#4H%b%}j4njF9y8!a7`jVl>p$m+Rz`Q)NYN$QN?vIFaus-8EZ+N<6a! zb#4=X%jx3ODbqR5Y+TVw-0h8A%%K(}>L++B{;dITGaAQ@QR(b6^?|!H+6T#MpQ#V9 z)6qWYvj0qdOpPPdI(sSv%#*02(@zt!bJm1FZ8jydMmvE-h|ut+#?sQ>?#5+J%Sszc z8ywDvXvnk2o}*}(doEXU^HY$yxQQCgk2 z=^U5p+(lQm?$fQXJw{1RXLaVx;S#~Ic<5_cAC(8s`VVFOTK-!0L(t!tdRXNN_SOx zxKG$3{3B%SY=P~aB6MjdlU!Vb8%oyi#tp{9j)8zKVmFe2hAgpQLx8d{EiA)Dg!I!Y zBNAa_=5CJ`Q3*QQQIw5|+Ynqg(oliMEA;rCGn+$a1OF4^f83X3J|Ve(33B$`8Zy*_%P)jRa_Tz43=6v5P)b4c zHz2u^1fUE_!cimfUHwxFiWQw*SExF+1q4;Smgzy|;-*E$++2l!@OU_kUSrL3eo42BMf;X2&~_qL&-_3Q;JMFx+UUR-_a*FY#f);}LePc&~Jl`#(_LGIfkF=3$IWvAO99BA$T#ryBmFN_O=b!Ki0@WM3XB>>|** zp2ET&`s^y)m0DPv?XD|KO)ac*XV(^{ieH{C?k+6s9<6iZSJZN6tF(;&-R6 zQ{GxXctL)1A%);#{FU;382_)~pWGHQ02Bn)aQuTSU3J&Ts!_ZxIWmd-RbqT-XxeEE zqR>Bl(vzG+J~S3Q48Ry(qRl{0ZMg986}`88;q!0(XZP`oE^LzjlAN1q9b9qU-AOJF zI3@mm*GfN7UILet9m>#?juMXqyG0WQWHvli>`l)1aQ_?%0f5~V{zqg<3P?YA>p#1W zU38$S;lSa`dvE*v=arYxahlh9wKX?0d5~sD6eync9nCLy2}6o$mBFO=GDg_}1A_ zt?Li}#;jq<4r92?l97{K*x#7r&T}Wzp9}e){5>efa>TCBQQo(V`(DK z0lFmOVz>tm=_zMD2brqz9F2_B<$4|^L-=wq9po9wD5=k}JO64* zLP!9fgLwD-nkuPJ=MeLRhk=>+OPGzG!F%c+7uaLJQ~};aAw^Rq-m7!)cm8x^LA0fl z(lzHXO5FA{x7YIC#rCws@V~DUOD2A-a~K@q_Z2hC3ZK}5+h9A+!S^)};vAF+t?+r^ zvE5nN=J1QaULR2dzha}j`9bi_s4?RlphZl)H%>uwV^u&6<%^B`=GH41TBbM9RNVL3 z;=ay&I&M9C;8(n3V?^Ya#ggfFrXV5^U8KzVj(J*#J@`E4iFhoYM~=r{fJi`Kkl|oA z2s@^NRIswr2Ml4{Hk3zhHd@u}05-l^TF*Y_i6{6rs+l#c*~1KfNby~gun2qSRqYQW zV{KR0)CNWoqgw^%4BS8z?X`t`5Yx{59+XD(oL@zueP4{2M29^uGdVdk&+f?2N@ib9 z&h$H?!*=*HlP4aaU8r5@$fFt0Lv$Y1&UeoG{?jcukE?Ia89%Q%8TAOwFEjsV4l5#B|%mzXx#&zi0Cl!zqB$^8qZU z*kjX{hu`HS$xt-?Gf(e_siiT=pBG=$JdL^a2@6%VA)=$92|!dCao5-n8feueeo7F5 zOR@2@3x-2>8Jy6xY8&+7o|LECTDzh%@o>e38B4~ zu++D|`t|{nLvyhLY*4LovDRT!o|z5(iVR3hXHZTk1_l3*4|#N;+zXfo|jaGPG3UIUK}OQlT>|CORdZc0wRFV2#9UO7QuTi#Rr^viGLB0V;4o~PWZh;@nS>18#840Qbt+s zV?Pn1AT@|$i3B%nDgCdRQc_Z)l<|T3SqPn6n=#RNKXTX@ckiD5_kO*_h&$s1t3pfc zO~jCaZvy@aY+e(rd~f(i($a8#5BnMIB__NVegHSGOUM**Lmn6A8}@6JV`ZZ~sKHT& zHX|`5P!foFRlqtCheN!o8j8VX+&pj$ELlmgWjX`FgzSJXp=M=EPI_f$abQ(ex~Tt& zPOlA>rxbZ?u8fK{U*5cm^bBXKq9eRz&R z3h`r&S@a1H&4(l?yfC>0d5v|CGxpekdS9{dpC_-AUCJ+U{(zf9;glRV2Ya7!PE?QA zr8^stH&1zaDnd*+$LFbM%k1?T3*_@`+1aDjnW-AP%ZYWoak5G}D!+jKEO6LXFJiVu zZHjY%unKA~o-%t>f_oXy(a_w`oB)a19GR0v8i&-V>*ja3 z{|t2~ruuEod#Lk}P=pKx8sX$rKXs9Q`ZW%m!93J?{7lc9{2S`L%AfV%Ys*Ud zSexdw|2Dz=clBSa#whmSvsxse2WC3 zvpgcy*F_orX*3&7!E<8DXK*>3+Xu`ExP7470Ju97Armt>eeT#5pTpr7{~6J3!k6=C z?b9)C*n+*ZKf%|FZ)zWpthE*E7&)`ppH_7pg&z5z(j6MgajF%X)m)QYumU|=N0%lg zUEpuX@m=_@Q#>wUv_+|J_~~iE-j3Vd?(UHmpL&G;(_FRhequGSc6W!z#PyRmLw?Xa ziKQzmR48I0D6W6|ovxd1eEgkvx^BB|y523k9vqT^Jw-V=onq>ZH+8-9c6jWz+q&O* z2mSqKA}ksvpHu7ce9Sxqf{oqQ{r214;kRx??Jn#{^TdQ0{C}u>4*;pEs}KC$S7v5s zw$1L&&i38eUf2T5?gC30x-==GG)1}vq^eP|pg}Ak#4c)xh$R*ju%Qwa)L1@ai^jzG zrC8GQY19}aJ8%BKbMAX@$}VLg-}nFjO>}q9yZxSf@9D=X2lfo@p}Cq4wd1$rZ@(So zemDM>TX35yubOr0tmqGc&4?W--3MtMu$LNy1TsDbJAu$TSkOe#!K^1MDIPxV-(&$r z2PgiJVd`Ej>o}pdZX9J67*|(&LI>`$=EjbW#^!eO_w}Ru6&CgzU0*k%qPV2w62Nu z0qEvWV%O(f%j(k0%typK`bII~T-iT5TZ*O(x+h6gvYKDZ+4zXSYWOc~2mBnpv zecApL1gIx~yp9*ekgSeBVQm}6oadvrn>(yyh2*G`Gr|jWQt7lq6JrE zG^by>2(^I@Tl7=Z6$n{Ld0NnTC9e|51rV2~(ICjBhlMZ&6qZ2M&1{stA|i5`+a_ZUDkAo-9R5AUP217o~tNxlcpX2=S)ulZm*30`w`W%$uf( zWyVh^WkDPrJIcK2B(Y4c#}(@Jt_9q0L%5bgHZb9h^GlPLw;Sdxlvox8CzeH=kTD2^ zOrWP}et*IRq#BEmN1-6UiAL3wPk9wSw(h&Iey#et@i2}>5d!Jbo+@(*k06f1nmD+^ z$lj*D9ywq284sJkIrkA1yj?HTKXjc8T!DX2iU$cJ@VbzfBm4QBm7PUWP*H{GiB;GQ zL;ujMyxIKe&5)bEv10$Hvk&pj;ijDT@N|^4va3a z`u*M!>o!Nf(0^k*pt#hL2Wf}%cWXR-;?7StLY8Zw*MKl3iJmn*t46s~yJZU_nyhP`3mtA^$roa|`ae^_r$oalzP8>Y}7PE9P|Vv^1pC8h7P=4|x}4 zdgd+LaPYl^q$}D(U3Z~-Id9iY%zK0oGQdDElmRPLl4%M=x#$Ohl|H@<7ciog;fLPs zt3g&i6q%q6iy#BkEhO!i{VO@bDzgx&lU6G&RrPwYTpo{YnhEC%THIE91+lnP7gyZE z2}i0L?n}+06eN@LdupJ2cThhQK{7%aF+4nM=#as@_<_o*Tr!-Atv@L(J=i{L_@u+`nl_Ji z4*D7JKtD9r;;yby`pc+NX}GT}5fozDAmlsfMgYL3(|duBcrXqf@jY3bBNmhVEIy={ z7?4$3kKkTXuoSE>%`#FTf`XU{@rm#ke@*+OfN=hsWkNPfAD zLH1i|W!;HJqfaAWQ8{8QRU=b541JYd(Rpbj&dGr=tHb z+EBhxxmvE4w;lm#QrVsY@hasXKqtax3R8j8j?C{W%zK~`LMRO~!*b7pLKetPstbtv z1;ua<*B_=J(x}POKxY&N-Q$PkucERxliY)?z&QSYCcrA^m|oVjt@sy!El z2Q1G@^QL;6rmh%1@bppD(?Vrp`$5CldV;?)KU(j2RhaNnan9t%? zmoN-I#0XmK@pyb5Ul#E!l$VEO-!w4LRc(v(k!JXSIZPjU@F)7TySt`nyTqS&?BMnO z9@;NP`xWH<3H7!i;4ul&H?9>GXH{xNh}lb-1%oMGRAh6iC@=SCg({J09ZpWg4I%^q z9nx*XR|PQ#uu#yeVR6Wh03-(g9@2}=jbq08{`l6H@gR<&&O#&hnf2=+$&=xsv5C-&LzuZN{9AL-Akl)<~ zDzuINi=^>oN$o-?;1zVubFY(0&U_6Zo>z$>AU ze#Rmh<^uUxx4j6qQ&OypjNQQ8Vlc4?DNX_0?E=_+Rz2eTtf!EP$)9Op&s!@x5ERUj zi9vEo(z4g4j@!Yhm?rc|cOey1bNR^DtDbPuFlEf1Lg(%RbCWs`W6V<~Bg!Pax$v6O z`NF8A;A#;^Kec^;X;l0HR5-{^I(;}os%n3q^;A_TVN@)+V_9xG5CqX4o*g;v=G4Nb zP^cxzc{O_+{9fDIN3IxMV3slcm7Cp7ElU8?CP2ffgA(btw$ug27S*L^sP;C`!5dUt^MtNM?;3` z*L!^HJ-+Pq*}?;Q7->3zEXp^VYmL#y zBY@);L;080`z0Ll)^-~&I`BQ(9)^Pq(`OpDD>Y)5_y~u9@(ka>d1ysK9@#n3Z;g{= zIkgQf*Pz_j>hmc7fJRSh3b>c}yuDPuwa4-gsox!<{Inj+KTM=zkL{1|vHT;d*+co6 z7|(FyE}ExG5}6wDfRfGQe@KIbzFYfLerAv5AJI~KC_ftI&%&EQ?O)05Kd4l4`;TbF zvV1~b;n^s^)+!I%Bh-5cya%o4!x}}MNnTGXzoy6Xk7zYLls^^a6VmD}G5({gJ6 z5mibts<4G;}h^d*-BWMFA4ZEyaRmCa>h7TlF0OQ{3M)7Peu(4o)LZtR-Qc+ z1%+gngj8hMkU;}#1Ca0$)gY40fgo(h$)d8|{^?{q)={x_l6^iu_YS3W4Mn zl_y-eZ_T;;)}L^~`hDlF*>~j$>U*W9w$55Kvi-J$k1bg8jL^4j6UH-3W^Vs@V|H~( zcE7q{Nlu!PZm4gpf9Lv1ldgYf{rY#WKk>xt-#xf7SUh<|``jvH#eU)0wq2yXxNO;r z=2zQqjy(6h3}0zgpSNa%+=lWkV6$v{N_WR71myMDeK z|Lp$-{@JlZyuRtuP3pkNEBIml3f-fBC>W9Bbt@$8!^1<<@t_t%tOwH*kX2UdG##X= zTNevKrY>amG;Saz3f!ZSu`?Uq(S}4^cr#K zr^VcSlX1^iHDTq%TW-4PmWeATREe&V(^_XP8r^=@{pSxGb?IX(Ry=me$o9oI%*n1P z%jsKhVV(GH_U8HhUwizC*ZVKn(sdPM-09WEq^q7i_j~)V9zXu-{oh-+jJNpqs;KzYsP@5p`fg|quMsVVNE<*LglPD=&Vi!9|5IUC6r zmz>T^B=jVPsqW$$(pLul3 zxGTrc9Ci8LHEUnrGI_%2Q>*n|`s}__29;@BexD-GKhoC_UwI1F{Q%ZI9q-DW;oQyv zs@KyeS5+}M#VAZCc`}iLw2DosKG1Ce#a=kSU5K$BO{!Fkg9`_;;XW@vK$#s(}=fh!V~0VIF%xFB#S9;=F5S? z#?cFu8|-OG6H}Xt?Q}8bWS(8^%}mT;8t_}Inj75X_hD7zlbY%|bZzPf@2grHpTATT zd3a@w>pwFZ8s(Y6(fSm3el=bloCjsU*b;eLQVfx|tuyoe=oi|X#x*!I8?byh70NdJ z6iT~!pVol;_*8g90#L~_ZNHc`p@MAYR9M3dc@BtBZzA)r*=H@imdhAniY=ALUizBM(|24jYS@Ll*DT#Jtl5*9o>AF0X~2ZllWOWGoil3q z^o}ZIIo&*TYIX!=B-){J__>@z98IA3Y)hC=ee8Ak1RX-{jG`+p=w9c~fy7F}5 zTw&&J-Uklh0c8xGyLwXb9Ob#gcJ%Jt#VRD9yDB<&fg_*07=P3)mM)k+%bQlyQZwm>ch_%t_xgz$Wqr#L)sD}=^yrs#kKyfs z^n%_e<&my8<@?n2rgf(Jq0AY$>#EgV-*K7fx82H|4w(h*OEr#xeCIYrc3bb&w=!GB^WsM1$G8&)DfQw_oOb-w_bFLKBMKT39d~^nHA!czAwi2CjJgdK=OCs+Yob| zwiDLH)Q~EF4>wC?b^t)FW40 zkz9=wZSBdu0rx=-;O0s071_vRa@Rs==#qwMSA=pz)e+UZTYXAT2|f%j45gN@El&Z} z<=iszlIWfzdkFh!@VgWL($@?b@zdpaMMe+1aL<~4Gizfx$?cTbcvmtqD%vLv7*FrY z#N{K0Paja374&ImPMtVr1KyD5H=dZ8u_Q5d{J!CcPfl;jb+fED1tu)YKoGJK;}Q4} z+#C)R7l8;$M~;^IG{p1iz-lo8OKaIgQKq0DfHK7cL8s3HrrS~kLxkdXYqQ7!aLEJ& z7WXYeB!h4t@-l}rrhES3YFfoveu*&*Xz$%GFAo(@9H}Tn#zH?+PAK0LVK~OG(QdmY{I`F5BVh}f&VFMk{7Us za#o(6*FJOjX_uR?*i^qsmNMY{Ad_-01&*g7)6FDNAUXQ{@Sr?M^V<+Ru6X`xh7=ROE~G158@jo`k+~(w-Z0$*MGn3`zs_9HXY$~R(_dZPm3Q82 za~I4Vv9j5??c56=^RNEtoX7euJY(6Q$ChuraNW}Cl(YexPF-?YQSRtd=J%U&$&982 z;{9FUTU$DK&frC*jc+v+*IjhM*ddeiSKn4<{z#0kEjCw)*E5T9(;|OVmHIX3Z7mgx ztIixfbM^d=DgEB8hK6&%W8Y;yp!;+;^Lqak4y1$q6N5`(#Z-njwWU#Y!F0gk zvJC}!D?D)OK(G~rQO0J1!S=zzCnmyKMu+B1#Ic;Ps{lI*F8e4d;hK__!r-#ImG}7& zzax>Ahg{6AgI&vloN{1W|Lm;FEO6Q6=^W#-iNtleYiz>Ey0YR=6-5XX>B{}rO&vDiRr{cw`>Mrp>uMG5C|o>RGuFPp@}*p@9CAKu_CxWP1vayy zOf}p%W)pVRVkPODx7#-YtKGnqpO99+G6mtai1~mZ5z!YR_g%<#-gC$giQlG0$WtZT zukBuzPl~L7`@t!X*N(iWg^tiv$<1>Wyg9Mg4?SRuGW)eO_VL5vF{`FLr`$)pJ8cQ* zA@GP;evqmN6B{S$z`;q}6)2DIY}vH9tTUMA%1duAZ<)~9oSl-DV(&&Eh`g=V<(QSV zq&QdC>d!ncJ>$y!)S`~5{qNUwDdRBA2gQSiycfl*xv(pZ{t|D+e%yO4%I)%9&h}s* zT3|W{CR?uz$!!P&swP7%OM{B;E78Nc)gNZvl9w!;-rUIR1zl++>CvTutwlg$X+VD* zX2D*sop$LdEtC3WyK>Xg>Z?zlk+4#G{At!o1v1s!rfrzl=FgrKOv^ZP=}%(Ibdz{N zE)!y1Lk0oaM6NLuFc?)gF4#!HaFB) z`2Dq65DT$H2<$KLsVyFN+5iAW0;&a4OtO4PShkp+Ld$KsV)O-<$1Tl8nYs7XX#xLi zm|gxlVF8EsEvhRCc+!0n8~Sdz6k;#NC;d;^Ib#E2U`DpN<8t$5XDROv4@I^BKjtfx zGjZn6*ZzqZ!KZ{zYN9y!B>^zF1(>r28wHr`l3x+*77Z5>be32X2nuC7v6O6Tf%_0X zN3)^nM~dx!eX}bAxezesRI|MWS)0%lL3-JW01eY7MUCK-X1Sum6A}g(+WBd|FEfkN zGKz9DF3D>i+fp~F;uEz#Vx*>uKt(}DNq*+FCGC@1>QAhEG4fmWbM1lb$~5yim&cbI z$|dPxuHSrjhOJ%qV-VUYc7Mi3oPihDc!&02JeUc{LHvRsYl$7ap5tQ0S}@OOdH(} z1)DnF3*#f$$!Nw(Wa2asOWU;^_S=fGa02`)T(}t(WPuD19n#sirMVGJ)cNZ>Lq4*m z2Z<2OX3sW>xcCc%gN4O#7q8K(Yar>-Tonf4bvy)~y@#mW_4*m*u5%2JVffr@wd}Nh zWv&a-JbH?;N(-bdd~<={b9ssj17GjXh2cgrX#SyU!ye_9GIMo)Q!v<+FK$fFC^47! ztIO?^FSexnBWLG{M@q^vOa12byiL~MrDcBpo9h)ca=ja<-im&8fyO-M*USl`A^M!; z*Z%!G$*=wUcMjex#`h-v4t}lscXOqhhUf=daGWMY_5l^qW_K9QBL6zB~( z`+9e$MfE@rK8jnryCkB?x#q3vf#^0Rlls6t0Ye;Mpt>5574D3Q{s!p`f%}f^9nukM zoh=^J1C~XD;n6S7E`Uvgc`Ms17+xI~3*ghy_NC^X>fO-?Af2uZBQFb?`|~qSUPfs9 zm{K2_clMC_5PhvMUsRvOJo1&3ChV#Poq|NCuu{iM5=)4!vab5b39}RPWs;+)(PO?$ zVUAaOOqcz(BIzT2fginrUuQ2S3{e6~n#&EE#2iMr1uxtq-S&A#(@0IZ2 zLEyntzym}Kq0L99Dws7(FPWGClbkN&9nFR!0p`TB5))vaIj&*+{8;|W`Quq$6M4*) zqE2$3saA_FOc&Bv%=(woZ}OM6Os5UL9d8?_g73uJY1}980OLM+2N3lf`Llj?^he-a z-85Q2$nRr5+Dk}{L}rg<;m40ZUPArqgBQ@h=E|$YlUL!5dfqhD`O&8}w=i*+oFm_; zf1l&rHMheAacOi9#sRC7f1hdHMQ1wScbGz57~PNWuvYr_)zmzY#vrb+9dP+O)EPQ(EfAm-=0PS7xv@P~R{e(#QiEELOieL){cPcS81< z_Okw!+5Ys7EZAt27gU#euQ9epE>|zZ9()h_^Vf7Yh7e)LD^6?^8mZY5AZs;VTSk!Qp zl@u4|lQBnnn$H6l&N5M!=#D6vcMy`c8Wt1H6@Ra75LcB9nAGgc@$O0SdnT*bmJT?v zDLc3)Q|s)*=T}uDqqGc7pGAk+P#YubTr`LB=ojkKt`^MUV#0OUq3nmZD}032T~9C) zM5B>~`bP5$yhCo~!LHw7hNu@wb$O$z8__D2hisUs>Kmgsa=C|XSmXA;5S z*GDOjts8P&yS@G>x7(c$*rN_CR&JLAYj(=*c3_kBN20eF*P!lW4y?b+6MfqCC%_(e zV8iv>qdzj%0``Oh>+8ymKI-}suqPeZRQ;{!7WksOm8TroELU6fD%Uo^_Byb+`ljd= zJddXx*eLXS2Yh1P$}Ki+#<$TMT_#|yHq6{??uh0?Kjs!=BWywh+;|JH zIj|jZ8=u(aB9EH)M8m)>xACcjA@|mr=zU_7UIY3DzULI5$VaD#e9xDY4(f2e=fC#% zFP@?<&1@{28YrvM!zC5ycc^(o^lrRMZdbn3?@;qrz_4$wfCHOr-Wk0D^aM_<1DkBV z2;X%o7j$4#&F`XHU^nA7KDJ?II+B|G9d@X0V?Z2iDPa2m8|c7V^p(hvw-c~IHZ1b0 zzS4YvVVw@l!Chmp1KXl6iEiRPhB&Z`0K1T3Lmk*TfIaSd9(@dRU{?dz*6~=v4(tNJ z&SlsL2X+o%vhHvj*7dEvD*7>xZ)6X!Q8p~X=ZO0qZNtpB%nPE=A!oGP7-xcy#6LpW z4*ug!;E+$L4Oe*~W#xo=5X-?S6kg1vtCzm2NZ1+5VrNj;^7sW7v%Y5+xflKl-19wo|EX&>M$rJ5@@3lK zr~Zo#CBd$b;YdmC!?InS!*>&?4`dnEV3Q=qli(+A-N^};Ln+XzcLdwiIX^J(oo6q0 z^I~hQ(H8F`M{z>@q!h{q0{R~8A}BCQ1slJa$gNc&849#YBD5N$VCLQYI#6DeV_r8; zj1&ztWc}&)!HthvY(MI*=JK4ptW5Rlk&(|-AB-+y{iRcX z6xi#q{iQ4EiFirfi7MLMgMmV;x3MBfv(nD{C{yIx>|?8XEuUHJ1+QN!aSXl`PmlPC)*bv59o%+MBB<~gv|!7> zptfNj*$fVfmg};2weu6&_fh*tf&U43bPKh;!qE6K>!)5wEw42^<}!U8tq;_6y}fTF z9^G)2eLcR=H*z;tg4_BJ;n8QVn*97~m$~ICoY#8Z**7Ei2a1XU+ADp#KG8Cviv3UZ zN1O0RPgT(BZ?Gug{xox0cAo5SzxYaA5ZB*v<1H>!tGCJ6eC)c~@_tbEb;DoOUGZ}} zPQ10cS@X%)3mo3udw&ly^7dPUN?k{-JhDcYqbpmAe=l4YyCRy&ho!e!_}fW z!%sUCeoKEAO=GR*^b)VyAcy4p=?5D>qb55IcU9MKwUey2EWCmo2@Dp_7oIWse1R=f zBr$Thd+8ISwy>bqFt=k)GBq{(fy^)tPg@ z0#B`8rbBa!UHRMlLD|LZPZ1+Ge$BiJVrqd&b~XmM#EKQUIbOvJAqlCu@#s4jt2x?g ze(_h-x@@}C$i~=L^%8&l?ixe^oAZP3=84(Vmj3jw7l{^FAIP?Ny;Di<1{u0Tb0$$h zsY;3^QYG3%)QDhvYlz9&FU{@q#A=aUB$3DPn?GA5MhibABysJh(;B1^(T0fHKu{Le z#;9d1G~6e64J!O8vU!_ce&2jfb`YbP4f7A&2T{(v9v04^kMu+KfkV)}51Z~hV7?tW*fg-YS)3xqO5}P!xIvT>?Q8Q& zd{5i_jHG>$9>($umS=z{fFy3oCQ_MQ@|SpRBDHiwx{nCd-nM^uj;Y!qRA+3+lSC@x zZ|~+1>m!k?VXmp5#wJ*A-cXdw#46Lly`?dN{1#X|4N>ijew|3KA1kd|gPqE(Bs z1+fRsVi<2L)2e5`F{O%?dR}wAPlRgk+fJZU?=)|j zCst-irn{fILJUFEseYSIJzjnX+}VXA%tb_+6Ypf*rN_(f(0gyO2GwE!t%}BUYIcTt z&4@@u>&JBJf2KeC-B0ANG^SH!e}8~mHPNYdf5(Wk{5&&%h4(*^zalzS_Vv=&l1{bz zItHBOetP1s#3h{vstou0=s=eob96HtFe+FnT zv_$TvfyVPA^lmaA-4nreBtq4q+2J|B2*rdd5$-Krrrt65`1>J5>ds)POsL9!KGiZn zsPfxj^9Yg_==Gdzq_yTWL?HGDt_~(vWnTxxS0Gjs`jT`M%LRH`zrz!(iHsEpR@u!B zeKw#(c&bIj$ln-sASV~L9p`pfv3HD=QK&P{`FD;mvPXnW6eb))C&`2 zBxy&WS<@76jApF>QQ0~aS-FX5jhfpp1SB)q_K|ejRy<`;g+^xPCH;mdrRL-I}Rn#`+=Jn5N+nlkb~9vpR~ST)mM$ za91|v8k^H`_4TUxq1{)Ea_tw1a9=Swu)Ti0=nKzX(!8EGKe76XQLhWlH15hKU$KVA z!V3}oWb;CxG!}!#VR;zZ;x@@-JZ6FcXqwuuC_uhg?!a5WJHa zXP@pQk}^EUq05u${=@J^#Jf~Fd=W`~ZN`Ym zXmCbj#0={SgSdBtI-?bMV7Gs)d>7#X$mST|MI`eEn5Y7i3D1(-XTJWBcoySZY)uv8 z*;D4jVs&}ICTUAI1euzRZ~y3cyIA{)e38^vS$9c46|7e_6Sc?B7ZC-%_}7WF_fgY) zNiuxMd<;I}L>Wj`Or;o4TPi79QpZHK`ApCDnkVYsR|+d|F~)mEI0sn@g~ z5gjCGwOEE?_*fJAF#XB|y_u#jB>L5UJCB2=?9O;e`c*OxU0Oeze*F*hMOd21bV>SE z_64PuO~2ZG9T)wY$Z&yvmEFAfPf5SpeH<(OYBetvS+eP^HvQUbU64h;{tk8*+EsFQ=2d8jm(wkS0XDd8-;(G zyJZg!_4?anQJ`h`ic3X>?B6HiZ8nka5pyPN@vfW&++v23-fKO zuNdW;(e)|!WmB%l*cTHQ@$-7a{8084qg>m&Ozz5}Tzh{v`GHSFx7z%WrkaaJsuv{4 zG^CF85Hx{7&u zyKOJM`6-9MU1-ScH{VaV+rbplL24LjL{H)S^}LU$*-<)tM@U|5w|iWC)>r0T=po0_ zY^m1}pEb(Q`h2^6Np~G-KVd)AjrXx^aHMuCrzl2dL%BuW#At21FG;^1sW0$!PG8A< zkJNJI6xjw`{Z#0l}!`deH;&O1$r1goGebD84xiHot8}pC%1pJyp`mAtbLES0<2~uKoG6H=X*f2 zCg_78#a+zguWZYbXF$FrZHW#cGwjZUNQQ?_1Ei>bVqOtBKp{%`$GqE~I6;K+1c z_dX<}(~YT;)GGB6RkZm`to|qZi7`|yVkpf;QmV{db{witI(X&qd!_b1y(n7JO#EWm#5iP`zeyknzSWz-hf zBg^BGw8WIyC9A_tyh%fxV*sVl*jpSLiNA zlY&1#Cfu@l9`PLOfY^S^=Jk(>CN&IZdc@gu>k&8R}hh$e-%H<2b^ znm2)+a;Mo;>3fmO(Xh|UWGV309`|wKZ4xhqGq;uWBH2kcw?|Dc#_%Y1&(dVfKbg;9 zHefXz>eNzVWlQQbHlL$DBTir4a45z{IRas@Q9Ln=JjMEf7VZ@ewI%U2exF8B4!;Z<-j(*Zu_MWPh;7iQ5cYzne3r8IYbD9 zALtYdc)OVj-k^T~QVHvIobA&r5;-PG0dLT5CgS%$(taYxBq?8TOhoj?+P8h04!J%F z7Jx+dlA?=-FS#Yl0uU50m?b)6hyk$KG^6>hneaF!U%EN)!bJ4QIpl>YBHu>uQ$6r0 zMSf4paUW&xRsREd^vYe`5bMMuW#8I$mnc*mQ&7cTfTOx%Qc$)H?8*Y z_aFK1|FDmzC`asq$BYM57c!EOpJ^Y&z$@2YM?B?+6h+3s6LB%{L`c0&`zOW7Q(ovP zMxL2st~FnY-UT1Um%DxkOd=oDp8Vu`@~7*;@6PPOKM%fr-TnBw`TJonLh9b=e`#Bl z0;ONL8T7t}jHlhB1R%jE64?dfbEk8zXeVScg@1C~@y#!67v9=2LkHwr4!m_^hIH5t zyzsVFI*hQySH`MJv{6pv;XKfes0ep@~H8TXvkd**n2k2RLon=PoftA z_L+n!qU%HBAIc5x3V05KM+9Tb`9gtkCxg=^CKb8A&`BE9`y(SRvn#@sr&S9D*#nJ@Izki8xnf;zeunw# zbD?toCh>3MOMy$a)SLTbOcU+?3hU8^c6|!9%jXHsmFf%xCZY4BibRd%1!GT!dMu^boSmXAqaf#sK%VRxbCVtJ zxDUU)<|?5ssbiX`H}|ENXu7zQ{aR=AGrb6R@3Y3D1N`D3CbRR zdp7;VwIKeqDcrxGHfkAl?C@!N|A=cUbqr53G83aB97K$Gv>8UMhi%+uZa5q0 ziT~3|FBKCL&lBQ3VP8WF%qFoUP>}wY2N0uZqFSJD5)_^&5WE;|{SD*GKwCZ~pK>Zm z+J?iAqq*c`1jNjsme!eyIt-2J8`CnbJ1-DKJ9lGDFFWn<8N#?I%K~C1B_1ETl|r4S zei=>jCd^L_8~v}#Nc)nfhqg|_m~^yNNax!+Ke*{s#7>ec*YgRI)3r~KP6NI57W8qk zJ@=(&qqE)CxbM3!BTX*DBaZ|FJcs4zw~G74JsV8n^CSCZr+K+$g-Stdbt`EOvl9=J z)iEEW)+*Y;OK1eQ+Oyn)j+ZWVwlgi`{`+~(fglZl?&7KX+UT9Gb(Ceb>lB$=HnJ4? zVL28?^sw1w`3<7_TdewHWS-Z^9lfl7r|U}eKkzvEm-WNP(EnV$3G=@XXA3bsqMU6O zIKPvDZ+vQz(Iq<#laJS!qKa&8T=D_y}+^crKo=yk;oWPBUYlr8>@f-q5bGQ!${eoE? zNP0YS>H%sJ4b(@2rdrhJSkrxFKI9iCW4AH9X`n@;T8_4~= z_RuW_Wu6U@OE$R5^KVgyyrkx+V+%&tOl^-m6Zu;~j+kxUmsNzmo$(nD%kcp_{uXVC zegLWq4^;F6-ekn<#vY6~+*tE@tOec1>N@0DAL(JN1vejQtmdu8D9#1MxF9|gS+O~| zi|sWQ@5QgZ`$rD^7YTcHmjnN00{qVo{KI&-$H77IkqxKuxNTgkQ5e^V%8nnGr^IRR zH+DV3={WfB65w`wZt-yfJl6lGHk|vnaj`~WTukoY8J}C(ZP(*7W$ig`Cg3*6dqhm4 z?{e=&I_mU%J>i`#z5TYD&@j(dKKh;h}`T(j6CF8l~KGyilG^6RJ^Y`$U{XekV%<1UYVT^ zD1?agp4Ht7#+8{B&R3Mm@{;1B!h*a&jz7Z<*e z)28vi5O+Sr2lU{5d^|^#oU+<*e<1DBo+*xwMyY@FC`-R6dFz z4his~7W@H%yPkL285S*yYk!{uA1L9`8Qe|`9=6&Un*<+mi1vpkw7=77e~<;IyJeIS zgLlT4clF}_H7`IrlqZbu24kE+7D>WihTH2#x#kJS5!Fb3kIqf{&g&QVeO%IaUdOoa z572jKJ!=eJ&)9dXe|!Bv1=0Ls-=j0Q{n&S2-?;B%lfLsh$9+%kpVvF~UEbY@@r89U z(J#WU$UBqobk~!@bPvl_)}y8h1ZutDQjc4{yU2A(mT_esL{QfLOm zdI#3J{(?8dKqlW4!xMz?xJiqS!z5IMTgI*FgK8$nL!?NUZk%bwwy&4OzdoQ6S5>d^sV%`p8KaOsd?r&3s)b(=MD`ecN5@pIK7sx29j-a^i9KXAt!*# zwQvGOnRm|tCM`lffC8Z)%5hU;LqWg7e)&Ov24fHs4~X3I8y z7(d;5PoFYxC49u4hBEZ7D_`)P_LTWuJly!$g3m=hoHRb8Zq9MPQ~ZF-OE}RL68@;T zqeuAe1US9RD9`Wm?ffoN&MWyYBPWuTd#8^wIy{0x*K2r^k@*~c3wSbD;(Qp02)Z1E zEHmt!m`conL?J{eCu^#T3-faEz8Xp&(Z@}P8Y(SL6DI8Zu7}89q~DvFI%(#?J-2u5 zS#X3*MWQzCq$R7D?icBIA37%yPIoP6j8i~k_>{1+C7jpZ0%Btz=Iuigk*a)%MoU3y zP~JPr7t(~w5BWh5Fr6rMff;K08f4yyr6EKv7ZOoH5>FW*Q31KSR`*!Txo#2x6Oe#MEDzo~EI z=fFH#3{J)4F za}hHa=SoRYrV3p~&CO^-Fs_<(_%`Mf?jv$;0>scLdM;&a8c3&GD9A43^LRZzFESx3 z9-lyBlav&`udw-EuZovXRhK0O)s;QdJxEUVx^FyV7-Xe zJLSZ2V}}i?s-u8+@G3tq4^`ge<``MYzk|1rLd@o{n)ddFou$VZzG zTBJSP8bTfnyn!yff-W7GkIJV7ArxU+2E~UJk$I(#(Cj&(+7P7Og$*J{b?Fr$yl_aC z?d}h;H~l_TMF{`ugs|<#^-G>H4{nS6Sp`vq^w_UZ`fP;iJeg8y|2a9NyZXj<^V@xA z7+cTyiTUmJ^>6=R;=%0`x4hjoI6l(5Tu1LEc*l9Yu#SD8!?4yj1y-mIe3S7FCO{Fj z6=OT#nMz0*79Q+ImObm8rv$A?d!kcUl$MgH{COFzVf*3;C?%+;o* zckxtt+Uo7A)$9KMH(t3PdIQr3KE~^Zl#lKGNPzE5fD_#y%Rj38J+6EVzB?Z7`qC-? zWCEOcIoZzMcsR?_B>b5KIGr=V>6}3-MRI|7`h(~v1d>DvNY8*dNXn?sr&9rCogn($ zFi6j)^id!{Ln$9;QwO8bQ02xU07}rmdV}b?PFn+QZd2slZQH;JFk^t;fT{W`#=}Yt z>fXtt_?x+#C1W%SDH#Kp>9|9VgJ^7P9MEIMkHdAeAnj zZM9TrjX18o{TI?GT5;{`ahJM1F86%O!8Z$pD(+H`N1KH(_lVs-!O5wFj1-08zA&kP zX%MKs!&U+U@@0%VadGZ}dh~cwocqurBizT3GUQfYK17UrbEb`~>K<{3Aomi5w<%im zjp&W~cPu+|A%^|M;nWg8y%s*?|FPv}bs*D?HAq1PmRu9cd@xWTWL1@OC-LLLOM}!u z6yqP#XUNYIEA&(rde`D2KQg58q2o+J9k_I1!yj^o+9c76^T))hXbpsfSigGp$Ktfe zeoU+Dx=x}>ztPsD5j7f#K5c$r9u$AQ^EUC(!5!NQrhxREtUsk?K{ht}HWP=_!DCOZ zgBRDv;maTgUZd<3Rmz9BQ}_;&IUqh{Q6t_T;{0K)5@-VoKVoylkDDS5+k$)3@nj@3o zLn1dZyeSDjRKlap3@5puY-gYe!UydPPJ)N6cKRg2M_BD3dbr+<81QHZB0og0HzB9P zI7e}LlDo?GJIzxGF5fekX~SW87JKvS`Myr$*Koh`N0wIr*Bp5T$r(m+88W*-<_EEp z+mvv+vnBkQ1US9(fCGOIh=&v3dHglkTx*Pk-JxCgWjydS&g8y!C$u@(DZf+P9V^dr zN;!tTR(ZUyMwrK(VU2kue)7A{c~X2zO}LUIPf#q(XRDJ2JPke36&$DrK_Z<*B?saX zlGwRNqN~y0D9{zvN(LH*zRk=}qACv8cRu&sot8MNzG-h0=DJ&8u5!--r+vU0@II{Q zwhy=)X+2~aey1@LyDrlqa{ZpP+cfWtFYn3~OQ}4a55VbsaCsx{d?di*&PM{=Iv?g{ zYKP_SvYlb_e9*Z;c{(=|9(QgM;Bn_B0dAd}ZtV}Z+Q)gq{?U2D{>7cAq1-Q>C)sbO zd5T;g$nWFU%^0UL{zhvUZm&a)TnCcd%kSpMr0={Qao?MgzVo`oecw#qo%MlUg2o^F z9&P6O_Buf?k@(#lob;X7D^}m^lk}a}E$(}A|Ga*&@31^k#NABS`uW^F6kW&b1&O74 za~yo9ghzi1_^EtOsk}>hbR&KMp9sE)=~oGV+=71u_-w{Y34c<;Ngty2<9k5D_gdvY z2Yd|kA`26@$hG=?%akDt^{%6 zfdeRj@glPj%98Gt+N1ODN<9B4)8p8C=m$y@vTmb(T*>|P*aprkL@w~A}|d`tLeS1~;LA=V{+-FI8-)d6@a)8|~?xXXekt)sEsf`4tkr9wsF%=@wE zm5H>9HSbqF<7F8Iv|98rNSa&`D#_&^Ca8HJ`Y=4ji zuTO$^nkb2V>lNPi23LAj7W5?E_*};ILS-Fi{(S<)OXQ;?n7Rb%&>^I`fF;zH*U8h{|-1o;66%Q=(2eN9Xe}A_2 z2v7)wY98{=UWuGlLEP@=%V~H^Aa;ZNmYGQV56MH)EQ=tEb0G`^bO5WtS}lxmjht<^ zBL1_@KyvJ7i%&$USz)ig&W|}+61#MG5hTy1gV+YBV%bo*RlT>TdHwE+)R6zY)YS9* zq0~!0ze{}HZIY`}a<0qDx-KV0&=ZAy$9&a$v6n$*n%qg6DD5PE!pzs&N#Yra?ts-I z$r(e$4(B=SFnzPRUVNJMB+W#3<$*r$X(m07y@$bCv1#-1Kl|GoDP>`^!WC~3)eY*H_aT#hv(Itg@aGv9w~f1tcf&#^pv1Xs$4&MbEH zoH$7fVc()T#Aa2<@2@Fyxe4jZo75VlvE@`b7!vH4rR@pS;?VpU%|FgA%*k+@SvgJ3 zGxzTwSKX8?{yV2n**%fpa_hF2Y!ABe#7J+cX*lZpy*BDdz1rg+PXd90vi zn)$7jW8E#lU0AeUGr!FezEgy(x!oE+H^`jqIe!-qhn!o&Z-=7#Q*MWBk6p^nYwhxD zHKet{ok(za1}XR9C(?nU{5M#mG^H_IuOkDp5H3~B=L1K{ZI#(5CS$3S=O6#$!SzrD z37@rXaDUOh>H7KJz5CyKYsU_CGw;kM6aDbs+#266^sML?@N^S!rWI&BH4={T?!6g* za=q{3>p>4o<7GJl!C|kEs|*acrwPq~909p`Ve|mi3$8`d_Q+B54GB$)qT~j0vfRkq zs~CR28!i_#`c{88iGlWM*U$HhFOnq%J9Zdb4|*eCCrSzUzIJ`UV<}dCz**UzNaNF8 zNIx+yoFYoq7I5)>jr{EzhIT4sL2);Bsr-nPiOx6D5-Es?Ad7{I<4f>%IBFy)L2+v% zNJDW^Fp!;<>XlRU#HQH&xV7P+(L9aQdpK+dL4Wv$voir2=DP^HRyWi!;H3p83vRNa$ZF!Bz4G@C| zlXd94f)x7{Z;tEQ2N94eC)ixn95lVI2e%XyrHRi|gYafZ6Msl8E?`IN;y_D&*Sf|= zZGBtgK_vL{2D>)r^)D=J%hOf`A#6UXF~+lh_894^{l6L`tuGGjwS0E-FlN{RsnCTv zaN;2WCmvFjwtSAvp7-Wf+5=gJct{lwk*o{;lWb)3x$aKU1OG|=E}^lrDRLIb}$8BG=}CxG-v3^EMrQqRpH0oN)i1ZQoDvbH)9;3?1|R zWX-i!=?M2PP0%dT`A7OUn!8N$3bCG|)Yep2=I3E`XdOHxe)EGS>Anu#HH$qh%$doz z*P&PHTQl)Si;-nmUae5|+dPE()vZssh z(96^_O-uM=-sC=q??Z|2ON=Pv#@y&Xj8FI+7xFoHNPyu(`DFOc1b9C1P?mpG+z>0z z{I`TZo&f*SDgR^woOFS*{N8vt^WPHwOah$rKob4}!GXg(PWaVigHJ349d6Nlup_bb z;r*3~wY9aCI^E%{1~0F4>||_hcsUu?koP@NH%nDS?H)Ev5%wv+v3iPPlU4 z8q$T6>ieq$OP3xHY1_Apv=^5xd(r%A`}%jUKk>xt-(A1{o$Dt}y8a!kWAr+#@5e0X zD`Xq0znT5J+0`Fn4zQK7<^Y14=fLDN>8}4z=Ri5&k&BXKue|oSSFVrkIm-|v{5^4F z9GvX!CHxl&dq_G%3IAmRoOFf~{$V_vb%qlDkqxKuFkMP;vbQH(z&nyKt{9H)=I{3W799~gO8ZR+}~jjUwELCC8 zx;Ub%Q&_<1u3Q zhjU(yyX?K=`-a{z-cw_H0-WSwa!+v|V8Y~!Kzqx+0FEz$yqk6CI z3vVJBQL;gfbDt4ig7#7NfVdveI3EM2%+C_ql|Bx!G1xv1JOMeO)Jecb)skg*kGnUqt zW$LnxF(&SM$ifyT!G}a1XZVRp@SzeOoy>5OVaav|njtQKY7#tbwKFjZKEi5e6~jrk zCEFP!+lii(1n)GL#_kQ4)pB{c_q;DR(i;U@o@jW`ngUXPqFzfHjvkp zrYqV)uvXHL4gy$R@1svlg-8lUK@t;kz@)JPga36DkWwE{i6G~S?%6SuZ<>RKS zX7hY-qO_p;9535lk@34a%LBf3$pl=Mi(HVcRN_y-$r8J#DzezDaB*gakak*7j%S22 zk#Z3B{A`WwBflDH7vCV*8arW2*idVwwJk5b6t^)izG!dF?>GHEes8oJH!;;O=RVJ# zyD?DtDbv>Ecr7C=#PBFxDN}}o2f@z(++aZvb{_e8s;+6|ub@FvxsY~y4ss-`_J(F= z!0fCrqb##5RON!~9ekj~C=$lhbZCrME_cvf1HKWAg4Q@<6k%3&g@4I;rx1R9@7z<* zT`_JBQ0$YMbte&qY3iL5#dm~d>t7$ZdBQ`P7NW(*>BV^hy$-uL3=9qlMbZMeBs zle83-cPTHQhacERZXa~)FlA`CbC?hY1kSL|!6)D%q(y{(`f?mZV-6%PAPp^p`j9$t zNN0U*MX0EtqMT8Xt>>9y08Q(XGE7+Hl2p7zXR&zyCRba3Nh)YJr35nkO{3?J9=>p7 zdFTAKm#>}Q8D9I?>P??c9pDM3r-kaz+{CV%5<-LoS4~&4kEpCm(XS7CE-LKv2?6o#F+iOaD^GbB1^PD!z4|vh(8M9zz&#@b{AsxjqW%xx z25fvVKBYpr;wWw3O32a5m<5c2MXkFBd$%fEz~8+fsN|T9TP7w^p;Ta;WZ{+qo8v=U zxbZ4LsHt9g2*aBeS{<{cM=6XYMZp`Q?oNIOu%<=9naMh^vMg)=lw%hU2I{8^Pb&<+&PP9WB8 zg`agXg7%fI*xUi_fcc%c-CVNY+(PDS2rk{MXZpy3ZI%9wdAnE=c{egZ>^Dy)++Q|seiskNy+ydG0%y5Aa5Il+qzp^O z1H~Jx#~oaSB^OqLy$0BFoJ8lDY&mWrTsL`+gT-CRG8_x7lLa=I$-U9fjRJlzsxdb5 z;UCTOPKNJHfYaS7%Refn#LBa*LBbzTfPd+fe=-41vIbdxZ#zCgtS^fpPJowQ9z84q{KJ>)6@?>i(;qN816Pwp=yB%I1;(@3<`B+b}cp%JM%K980 zh}VpD5)^$sy@a;60~~CCuM`PkA&e}E48!#!{bYc!LaDE-tu8Fc$xcs&>Lg#} zdu-Exs7_d|(4<0_;0H@BAg@gDc~E~hYt#JJ{gZEeZ~glBZkoKmb^di?V=_|TK6u$J zv$Zq2wqE?+9W!U%@!rMw{r1_nEE^JuB*`UhJZIhz^G9Th4PuHs$8qnG#Q8UzHM-7P zBNr~JQHIEJt*H3AxTQf;S@0zXL6WZ9Ko?|LCO-(#-xc+G3Q!JNm%-_4r+fgF!G z9~Q*(J-HcAn^nPdb#|UV@>Y6K{hj)BdRpW_AYV;Q_eZ82b{zRE--hW7j{^_v|K2#T zSG*p)mi2Nim48XRi1QobGQ1BcgFEs`Mf&}#Sj*q=J~zmHRzBc;ONQ@EfYUz9@{d}+ z99*8;m+&VEjx}O9_9}<;9;wiW;XxQr%6^bBto`Uy?$@N=!!NhT(R_6Z^_>HeuO2KY z@re_%N_@T|zZjcRmj9628F^Xl)aK^rM1Ec|q_lKMh1%#R79KK*FK9k27sWV$SAUD# znr#0h$CNx)teA>7?Kg~XJO{jizlp5{pB*{3$K&VBa!OhLJ>`?Q^7Jmq@_Q4?(>n|} z;k@$uyuIHV0hRb%$ zUvYV|FO=;Mid@6xKT3jkM!qJvwN{6k3*E)sj`EDP-`EBHBkXr}@_vKlWMi@h?6-^c zJF)$?PNe!)Y`cqnxfNopCzQ0?LrXeG$<4;t+R)b;#@#+>oA|_cc+3(`I4a@070k{l zPwNjjum7(T*B|)GbuoUsB=8{eb$_<(KFP-`|_+dl;m z)$75f?uJ*f8=jmn=Z5DsZ1lYgNif3?eGH0ZM6$U-j21CF{HdA^`7%f3m&70w(# z?u0Qp*%f&;RW-Gl+(19QdT$u- zyqEi`9>X^Fdeh{3K`t;4#wXT(h|f-rTSvCJ+Xp3jVexgj z6#q<*Zp7U<-`b;*%5>$PaO(JxYKkx6x*G^rdCzLENb#w@lpgLppYPCj-jLqa?Y2W% z(@&ZcgeeOhi+uFe=Iu_ep)M_m|+5+yTY^^GK*9^ISEQyidK} z9JPO;Uh+Y1?sb2U-z3@_zK5Q7Ew#?i8NwY-ofTG7V^0z3Lq{m7UQb%;nb=u+kd{05 zj!#MR`qCC2&BG*xH6y7dZ>neI@iY}4d#tS_@BFNA?&))9&X_zY;c%w^Cl03+#=_>n zl>vKF)*0BZ9)yc^Ji=ql6RGKZoOSCF8KI_aSr_Mh4q$wwk9_bwQjAPkr zOWHvD8K__>yQGoY5Hlm`=pVzwsos*?XJnto(F0qHf}wzKMX+&XLlgcg43_75=NBQVXHd)le9C!aX}1ZQ85>4CMSNY<9h z@ZZ%n6!!$Wz3gLpX2r|drS-vJT}f6}NnJ2lUz+{mag(t|HOt%+_2!#wSZ1@DWHaJnwNPeNmK8#>kyCR zy4Y?@pV1?{2D!l9Z`D5$@i!QcTx%hHn|j+TLFWGz>>J?Na?x|3>IT4 z7%VWIF$SxDQWdz!_fUnARaIlmRrvpV%_)R;x1Nw@OH#B|h-!(L$ z=Hm@bDbD_`p-a#~-x;7Sk#i^DJ~DI4`wo-cM9H(JqCc@8o=ZzCAtwNM*kvu8KQeFT zjPkUCyfB<2!bjg?Q*;<&bCI5-MW{ZI<|;doB(lj1YDX&Op3`42ZyG%YZ7sH-i`DdhP235OS&PEF-43RBDY=bR~z|; zmrBx_)etQg&6zdO*WTLHP*W8O7Uui1G937PdzstpuVI>#Ct~|_PtG=tlM_FuOrfYW zRfIAG+;0Op63HT4ky_KHt}p3Z-O;ysR<-4^OP|`+v~5Y(=x{akYbW;}{8X_0iwBq9 zx}!HUcj87<{etrbXRYt6$aHzk4Z&5T=eJ(?)z18tJ1^>)wQpJ7&>ab?w-tkX7S~lR z9GksI4Ry?`UbVPvc=s^-!IH(>*RI|kx#a1ws=~F`t*t|G44bvDvZvg;_dx&Z&fL)K z^XK*+Sl?r6zVJ|}I^=b6y0`^(jvVSK&_yGsms8T)0uJ4(0S?_N93((rw?MaQfJ3)R zjuSHA#|SQENF6LRa-6tMRueL>AgMxa4ysfI;WmS`d?Uw8Q#?U>zWj(^Yn}s5b1h6z zctbVe*brw%Ib=~}!Xb}BuoIm35M|&SY&K6x(nmw5ZJm^nPfVvyGC`R~Y53BNk&uIr zk`JY6Pw7|q#BdxXyaV1B$?%kw1;e%BvQqLa4wFQIges61%obcdHQKTy_zA(2xV?{= ziNY-8xYoiVO`n*3+dbD^zUoLvNj6}dhxt#hF8x#^8Eh$|2S)`f8WX$k9Tgs>0Z0I!!|N&eYr~B4XAge z+`#z;>>HQvhdP-Tdt5H?EEZ}S_TrU0ixeDS?Vhr$$x31y)* z)8#H}ThKYOZ$U-%f(vF2F7F6uWoI-8mv1@0W7ES2XAWHarTse}9w<(}11N)zjNGE! zwr#hrUVqz`mg4ea&tO$|Mb_+VUcPMa*KUIHoMk4<_!|DOzXV>76JBHZCK*}4PjP%R zfo~Jiuu3~4b{*4XZXmWx?kJiYnn19ITPU41F&1iM_<^3bS%|P{6R0$s;YD*ss61oL zogPs{Ta&+bcC^+bBC{Xc-wr?4kRL8Xh4@@b^h%jKPoK9HBu3IB z*!~$NdX2xZ2SJe{(QA3A3ISD6zjH~R=Xuo}`gLZ{1%9s(_+uhIZU}mgSNYD07NRXr zX7i$J6Nqc!^<76v%zv}3n`o?gb;SiF*FWMb_cVYiokf0SkAujoXS90N<`{i7)cwYv z$JP!#x1Xpi)Agi3H#*@g_Cy>RUOI<4jd7akj&#InCJhy|$B3oXG+!eDgfahjkO1w2 z=zSXBX^!(9z*mAF{eYiK9f0GWc|Lv+9Cz9{9I+MmWx;$MAxpw*e?eM~82a_FVX}VXaXNq=12{s>? zd&@ngL!0|nU)6Eq{BnEd;G-9;x^-K7@7TlJH(b*?Y+zd6JQxfV(~P!PzdU-&y6VOA zOpksr5WaNb<{4MMd}!>{txE(7>`Rz?lr39Wz~sv)m6R3vc}V*PyePMcQF$B@4r0wm7cbNO!|ir=ySu%WWuaiWvb>brP!pCyO>qdP zSezD5;%cxJ$tUr?Da&)hxEx1M8V}>%~2WPRAi0FYW@?bmFxjTjm)MZz6V5(5ev^ zsYsLWcU0~B8fdW``SM6Ex!H7(@AqXKFBA*c!{Luh52l1aNpSE1(f$~+2iD=Vx%*@r zl`POsmR2kNP;3^scS8z@ z=Y8qO+`&tZ?_PJ`-bhyN#5$#6`GL7Jw#;tuWM?!O_yf1w%jflQ(1If8Bz<{g3UcF4%nQriS9OVvq8&fk(j306whYGlu`;3HYb`tyq_n32?f93ixvg zaJnZ8_zMYel8*%Z6v43{__#RhXdQP8sR-%##j26}iC8sl!LS*$1%rEjK5hl4Zy2H_ zg7a6>;#gyM!_zI!S**pGpgxZ4bhMrV*K|fAo1}(2oROb1tQp0Vah$RrNDmp{umQBRS7vBPCjb;>LRAES9l8+1z8W(Vxi@D=!<3I!3cR?DDS@pVQW$Lz*i+@@#(x zTqkta1=XP4!ks1*JJc{bfybACyCJ3KUmx>bz5)f3GpcRe}I_`%ghs~1V*ntf|hsSOm`MA$y z*z6gj&NJ8tB9{5@?FmbgADKbZu{kVbA9p^quxlbElC*5;{E-=hDfgD^Ojj4@SK{89 z#@2o|%RObYr8BXg$Q@f|t7lu_zZ(-)ge{5H4? zX~I$CjIO3*s7xhBIFlFmB)%Bw)CWT{a+}#|n{H67uU1_KV}i%x3IP7v+u2@UR}n5P zLAtjrd~o6wz+0~fH9(ThfwWL*OT5I^^v@eVy>}qp9iX{r@w#ozSt(1q=<7Ifvu)A! zU%O=LU0|@RqdZ#~NKwrN$TmrZu<<*f(^K$4ZbZ>O7Rl*mr~?UuuoV`fP!2NuG*-(N zRafgZOC&@h^M}evgN%}p`xOT-8)=rwr9d_2R3x3#$fO>e;=t2WXEVCFnq3 zS4Tr#RYkD4ATQu|qxu+PVGv|NRmfOt1-!tZ#v{!inIEW(4vamT?O#_d3wwV|{U;3k zSgQTU-;hfR*k!#-a1mp*dwqJFjNVJx}egE{J|TSVFh2LAsdD`w>)t1GBz+1FcBgEB;*l4rV65 z4=%T>*BkFn2KaScp2r01+AXNKC-x5PAg6x^ zq;GiVzx(!EZMgk%?U+vP)7^e2zG=AqS_tpa@5S#|P*>x=#N+1>y{zT=CtQP%smGA@ zu1MO5;GN@s=waLgaKqa;3$9p;nInU9G9v_%gl6rENHz;e4m@4IS(ZlKh$*nxRLeF> z=a1MssI)jc!@jUu`O&j$1a5d4j&(Rm#vD3h`xyP~N$dxHocdHU>`r@z^DL%>wRbx8 z8G-GUk+1QZRm+zyoIi6$Ur%Ryb7OU7c2RawK_2krFY}d&LIM=00Gq!kC4ih9UT%~% zTRt9394r_-Z~lTEg9V3NrCl{OU8SxuOT%Jrcl|so1s~;mBD5gz){QT(g-ofbh|a+@thy;BqIVt{t?EIe?(Du z(a@yY6C=l)LG#U$UU_2rSHUK@a*|iAXw+ZA07z%T)~Wo?w7~> z`42X&yJGRoE_E=+l+(U?aKn*_ibM^rvcU=6@w~08uG`QE9TMqon!s~ERH?r23;~<8eni6;zWH(WIp}*y?MnVD?+ZKv-ppf5IGp`}{Vj&y z4|uL60e@R>&+$w7$N`@gzt16I!le;MmIoMcu4|(kjznj$uO89p&wPN>*?d8Nro9^8zGo@b z;e;R4u2l4Aei!sNAUzt%s$r@%z-(#`Guv#;A(0a~(P3+*TXwh@?!FnkAPqSUgAUDR zo*;!XaAW1x*e$Zjw0*=$rx(xk&`c0KLlu-Qr|Cg|iC>H`nE_mkdb+zhQIDp%A?z=)z5)|qrIGlo7Q5VcdK$^b^SNMf$9;eJlz0{%8^ zWdi;^OHhaNHQbqI4WE-BgbNwOTNRMwtEdcDGIef##ET!+geP#l5ihhSE{_WNkJ6Oz z6&AmyUgH09@(}dVEeX=#rHblmLT5=IsrTP>#1Y?;XFwH(O{%dyK@VyjkIN3nG=O8=|4x-) zyFvkAMU@fEfv_wmZoN3E8Plw?I4!sUi7Hw7k-pf=XlB7Bo2BU`<@;+Qp)%MdcVDpU z{7oCnHk55xw`Rs*S4U%gNl~^B8L!;T?TY6W(@frQv@>yUY7v#;_50j#tLBHa0BaeO z$oCVO7P)t|_JjLeBnPpw|7>5{S+IBKuDykwOW8%$b2gs0tGRPdXzm5WbN4N(K3ToL zv}@bVOXm!fl=f^!b|vIQy5viH_B^_~W8>1gw#;B-$;k4q?YAr++Sjn%a7hrMt$!$L zAF120d-sOAk@ljApM>l49JtivEov+6smaZ295U4o1#Rx3#lsh`toQip0%hS$lP$Y> z_3Xh*Hg(kwZ)qFZQS6)1mEF)#omqX;`r(UL)E5@~qv2K|Y--wid>S6Yx_B@CRe?ZzRCUrY71SPk@umDBw>fz{xfz;LmCBmC?JDe^#mgjhrsOAw7bh zX(LZQ2m?lBcqHi-+Z}eKcd; zu{{Ix+GjXj1*HYmBinmFQQlqQopIzJF4^_v8y3wTSQP&B6nYZtM06w8?-Z>c=t*0@ z82kmkuH^TDbv2p!x;`M5C^K1seA!)o%o0j*|L%#VZck1SScS0F!9r?(|t!Wpbs zCcF>gYei|TKGs@&%%wTol^{Fy|HEZ!GXI#kR4?Xqxm5NGy7VkylD&ufBf-6xd{Lpw zrC14i;7EQzZb?ZGxE?tPMm|jBZ%pSY%E}|qh+IM>$-a)lA$E^AGq@)cxrl8Wu~Lx& zk=|6qr_dhgOz{@ZOclkF=^fJ0=)X^SpJv}1d*9*U+k&fhG)8s?eb9%_KD$0BDTVeK zq)Re>Q7w8KiuIl+HibPJ^30Ep;2%6UbV^g(Ua=sl2?0!K2H_yyevfH9$sVa7JtNUEAD? z9y#|682U~l1OH;8o?!7co7<-4y9qw|G_~h>fJFOeCutle&4RA;$MDf= zqKYP@=gjm_9=|#tD#M_d0aqv`f`mqinwE;|qAYS4?jAw81ImC0bATFG2car1YzI`m zl;16r8yodN@DZoXhu)B1_=szs_0UlWS9?z=ZDCTX3pX%$|GCQ!uc#eAZ|9;Lx~tM8 zMl2gwcF$Vcan7wPCoYw**?)Nc;6!%HEQvr0&RfJx81V_;)MJFVNn|wTcq^2)KFcvi zo(05wN|5v%^p8A6!*k@>$+=RU4=|7GMGw#MyF+s(6 z+EDHn1%C%34{oRLK5^bIeD{fa?>)i7(KnS~~P-&a1=ejy$;`NmnmR=SFXq{|$5YO7+r1!r8nMxF?23?4Q@Ag2Iy& z82A+72yAd-6;7{7?V$om-5&m~dQ%I$h%F#$Z3yElSay8`s5Tuz(rT7hmT|}QBs;F= zGmLmSs)uEWhhyg?BamIJg~UC1!VvJLwj?3+Z(FsHHz52|dQ=;5`72EH6UdEQE^V8n zd+Otp=WyJkQiYr&;P@8k>bP-M#ui3nD_Q@&2GN+6L2^jPJXN;e(-VmGbxR@_}2Pz9( zs>2cg!oOqkhk*OknK~S`^#uIqfLrh#`ggye!M_8zU9|rTefM*MucqstH2CZRuHWJK zV?UVO&S_M~livSvt^YScyQRu|G_ITLFej6Aboj<^U=B0QKiB3~0o;F*!Avflq&_sg zf48RhcVhf^(4RvJMv7n_hu(%M5^0Y?*xei;Rn{i+y@4>RRsAzlrqWle;+%1dhL; z<5*TS9L&WS-;dKAo8;dmqX_v?wwv$S3TYJz&|&^yo{eCh`PifU=qLeo$uf8jYzR2; zq(ZGy9!-5yQX}&EbW2iMDQa4KCGRYeMLd23l*we!mV!%_%)VfLNqas_raNukz5#n>g#H2kg79`Y}J0B!zOu|*G?)LEnS%K zId;iNj~+9dXc*8*A~VLA@sarGpWc^*iF@ujai8g=flUJ~A>T*QsGNWf7CoZTlRWt} z)^wX#Q|5@RsnfWoEqqPuV{6)oH5FdKv1Lzg(#e}p1a{gcqL;vQO++trIG?7M1QJX& z7b@16K!RE$^1h@0lIRc>YuS`lm~vVUl+3zdey}~?DqH_PI>f$`OTp{BQkjGt{P_sN zq|GG{wE=V ztE&uI@or;3>}?Vcc>f<5;p$ry%|SdEu{yILW;RphEs{j+c}N#n2^}tlZtH*8c;q%c zuA+!sq}vz;0|a;A$f1gjq{H8qT7!rzV$i_;t}s8Sol|e_gxl6r;Tf_?~)(0-MvEp|a`06L;JJd+28-M&-{OksqFb zt`+Ng2^{7dw1S)uv}d|nj-4*Ge1ay@_kz32zBGyb0X7N4Iy`4zlZ zg83!LTv$JNRLQ)+FQ!Q=tzZK~Zy`x3WG*&E=9+ba-D238+;v7h^}&F8YD)MRXmSQ{ zREarwrM5^jPA^1&skp9eF`JN^*)H}SAqst)->{_?UQX(FlO zYq6dq0Eq#3`b~b@MCK`cg?8_}WoNm~*?IH&?S~7pXRX}Qy!i4}_2WCX)-LJ|jc?sJ zG}fTJ7v3>z^}a0~i(7MAw%)d$u9g>FTHL#?mwvnC;GDh*2yhw=tH0&3+PeTC8~IBH zIO%%@{FDwy&T8O5hrW%qxFF*xR_vK6%xB6PC9h*t zPGmx|bn9fB`a2WpOFE^y1uGcs~}mKbw4o0 z)?g*Tc4$+}>v)~a?I^84Akq?4O>M`|Z7@NeED8D+tu53AW!e5vHer%iKGW$o33oi7 z5vfo(Wmn*e)}~OVOXfww4EZfi$p*yvXRX-Wyp~)X5A8oRzF=pGnGLpnAAe>?$BdrZJ}n+l!VhJK(k zyI1T<(*4ByhwkS-S}K0d1J3j7pBJ%v!54!}wNO+iEpQ30Mk-R)!`lv;F)&U9yU{)p znz1nzYg-m;!tZaI{wJv!bO)ZAEZQAHchH}}pv)GmA{y)}VEJs1}9gMTuZq9~+TlT&WR_ts0N1g~*~3S_HE$d>t$*k7WSJE0(id#PX> z+qqn#z^{q4FT|2{sS~n4@tF#!OTdgwCe64_F5W4dL#>Z%FU~$hN~L{+qa2eSL;3VI z5f6T=m+H%bL-H=OBQ-!cr8AkXUlhDX!?WquWQOrwu302}x?(uKE`dYz>MBK`a<`7) zD0nQV`{+^iCo0ub7WB8>1YQq00yzLod3-VK{7Ee?UbH7UKM2|J;7NGY zqfo0*e!*c3))un~7@z{~kQ61PS|JjodSiN-cHB5m-);}X#X8sTV^VWdV|}PJKi3C! zqquR}xKjYRw`&fc@WbgS+V|N`rde{8DBjG#Q zw++O}t@b8$`1(^99sJt$^X6UuwSyO(x_`h1^i?Job>Gi{#*i_?C%2pLIRw4ih#dFaPR^?F7^hk1#U1L-?Zi1`DK^m zyOqr+BpT6Y=2gU|LEkjknjSZCy7`ybTz{8hu8YLYI}n?2X?(&#I(||<2@y%a-y`X3 zcmcluEng${0rDB;aX!p(5B_Z29~2WS;6K35A>SKXlY0?&DfUONbknn)mC(WHTcpO0 zoOzagDK>zWZxma?Mmgiwe7h94KsI4gOK(dLZJM%#O(QDwO@k+Fn#91ncu?y!1i`*D zO%Ut!)PigpDYHtOCVxUaNyA|cd_}H#wz)=DEjkXXC6mRp4|W|3%!A-H7K_GfQlaon z8*>ci6aL^M*jZnTax?~(!kbegF=}LcmTYDV68FX!ww==w?9(RMHV;2Qe zaqMOoS26N2-s8I>NK3JF$>N1GhbZ`>t|oDBI8S>VYv=Ttq*R{fpnl_Q0zao;4|C6% zg?th}C;rd%nnBbonJwLZ5{cEU`gUrdY-FHtECtV5MyQ8q3e+PNm9~LMSr#`*pTQdl ze~G_=@H0aH>{&C1IuQ4gi2Bnrb%TgR8ipx(fu*dS-d zWuD_)UQmGd$AR~m&_{WoXXuKw=QG?mQ6mPnPZ_pPAQ|<7w?Ks8etyspAP!_bM0r&D zMto#Ba;8I93wso=#LcZRBxom;;Wh+Hy5z(X+{)^Sm*xJ6@jLI)B}Mi-UVM8-`#BGe z^^yolB4zgl_if24D>RheHhu3CA3gibw={wAqZ@hA?M-3p;%lGZOR^-%mV2JPb_r5# zmsRTpw{>}&=TGMHglScRoI&?SA^V*&!ei|zukvHat4wh_BpVtsE64i&vEGMzO+p_} z#Nan2z$reEkBRs|gUrL@0|op#Bb@t_3;66rIPM$*-j@iE_1~WWr`k)ReODTIBoQ9# zXD9)lB!lXBP^q4^=)WhSeL6XvVyJj~SxIOglgAN5CGayc`HZQ9+Z;*x4*i-0Ek3`q zKZe*=6iSxD(v=a13n2Knpx!d>O_ZK59|~Ymml%m>NW}uG4$`%>kXNnGOVcEzH;EL3 zVQ_n;OhL=>PV^QyPi;YOWw;y_X7gexBG#!ZhqS_)~*tMEc zg~97|!!<2*2c-;=Umm@cl7n5cX!DG#C@gRPD{v_%JJ00Rtud^W*+<*C1_vG5<>Arwp7w?B*3i%PXfWg zirf|nW1&Q(3jK*FD5@ZELs7_7EQYIq;U)=H>6+6lYSK5ynYjZuKZ7w^B-Lw<dt?ck}iGdyUw! zJUahG^8*(oFq=DnH|sMaPsQ*;d_lHkXE0)A!m zQu$lF78SL(NMGj(vKg{jOY*O=ze=R%#m=ys8IwH7CkoB_$ni>0G(oHyg#M7VKlHs+ zfb7+<0>SHbi_kfWdnt%+8}zTDkCJ#BP~`TwauTdZw1aXIT70By9ZPBo4$sw?dP}gT z42ldy_^L1NyNF;*qDzu^EOE0Kbc`s>xw7%*b4q#wPIHc{y|i(pr@{M~&y3%B=k~&E zlTy9o6E62Pxful=OIqiP084f%J74f_j$@KV1ddN>IKCLRLjx{hb3{B6aL?f?>A9$V zx%3>`ljjaaE0Jz@5#ouz30&8)YJqE)j_U&9{VBAx1m!4>L1`6?P`HKW6F{s4nvtKV zz8s|qi+~{Dwa^$Od5VgGDEo8bQlx856R6W;jnltHGU+;;<2*LGRbS79_YA8U8_e(; z`E_IvYYL}b-83=Ee5Ko_tn|q#dgUq09YIJhs^(ekGkG*letmCgbw@>ENmc*4!S0<)8V5Q+!H%n~ zRBG*NFXOchHCzF=0*A*5huB*)V1M#)y`+GDJ)3X~8#>_}I^kXk)t7aw%ENf1z=}R5 z!H!MHBwH*P4Mar^k4SVF$DrAKmKgka2s?ZHXy4B1iujQD_ERyO+-<}Odz)}VxI+6X zGh)wq`*P{Y3*nX`ow{ndWc`xNjxXnKj#@jP`B}YR^)_R_sy-g-;hLX16dPJGD#ka^S-`L8#_KSs4#A+D%qn`+*zd&BG=p2YqL~ZI%BX8`HVv0QsQwGOqbF~=3*o}7=kd2+m{YH<6gHY2a=iG zKNQUfPrrF9r|$TsB=efpI?c`T&cxY1v zS>!pjA1CBxaE6BuSRHT!+NzD-C%*`IALZL1qVZI~nXa#>5FRELw?LbAPzf%|ndAb$#v&tD=GhpK46%i+a}^SeDM^HEi=-*QQ2_M=sb-?NrN68f78s*3z5PS-j=TxaP|k%sC} z=9L%7yS%J;*~q=XGOs<98rd~X(a#$WK?`&Pk0amz zJ-}HF4C>cMd}esL)cOz!DwRV_EP+>|o>QWZPPu&&EcN>k#7=QARA1S$p9FAu4Tz8% z`_1dY+ji0Yza~w4$~h*fNPL3RQEv^h%?g)=pjWJfgi%;SdDjhe$^BbE#4*|wEKBoo z3H>aN8RuSdYnk{UPLcIj&f0KM;H%`{!hZGTFS8h$5pG z?gdpEouNkVIs9xo0)Rz*SzamV5Af|=_Tq5qaSdLDIzJY!mpKAn109vTT+k)pInZ;5 zq*m#Th^vNK&G`uW2bTdy5f}ef2{G4pGq3Myv0E*>;gv__B*wVefg&<^HXq=a_yZZD zx5YS1=NZ3CE@9|^>vB=KIzQ5$_EihU1XJ50%pOTEg3n|kmqQ~s4RWSH8%!R8aPl(p z557i8WZr>g)eWJ%FrcaH#Kd0`7Rx~A@>l-dK-t`XK-nB)95qcEm1na~VkyTBgsu4w zfUlU|<#nCJ`kjiepQ`e^lUTp!4C`m-u_Xl%8tZE4c2Zc7pO>2xK)wp$$>L5OJ0SvSPDiMo7Uk`vV2U>$ zIC1pobj13A>8n~$90kDffRm5@B7$>j(^7488DtT$X2gTP9NfM6tN`HQ1i~%wp@2Xr22P>gU|)-y+X7oL!dnSYw{S5k(yhL%|9P zhkd(gOMFZaN5U&uhb)R&sR(m606htJ_l(6UogU4mADg6Gjm2kXj*i$=s8SqjoQz_*DUw54 zk7#rwn@2tMGw%WOA~g*0dLk6g?0eI9fMIC@iUSOvW;6A5EOo)6g$qU^lllsoDSOC_s}uryLCCFP@0n2O7Ct>9)5uTsiBaE2CBEP73y~To#qT@YB;C z7-@GR>zR6r2;OfwN2Rz#K_jQ)G-A1k#~BJ5dCov1m+>>?8crkQL?c>1=YvMHexw%+ z{SfWw@Z)+v(eGIf3fiPI1i8Ro{vZhF)0a8Tah@;oT8c9SZRrfbm~@6vTX7GHw*ifQ zj-MekFT^C8-VtX=yg%a^Vwum+khQEh;+V(GnSE7q{16%P;8r0qw}gyD+A-pd9V0NP z>&J+TZrhn_vRG#3cDSO`N#e92Lqq&1nf-Bk;->+1XIt+?6+?cY%$(X0hNTIpndU7i zXE(JQ(0Bur)~;E-YUT1Ji;?bm=HNh27pfAbIb!^0dBmLIX7IF_S0x=jZ{C06&O1NO zhPeOC52e%W44hPSZzf(hAG9`G`bEUi#!Rj%)C7wiR;_O4bUF9oEEmTWH2E^p58=4V zup-%|Jciy?(jSPV#Rn4#qV++B`XG=(-J@5*rW!( z3c9@4_&Iqk)|&j4@8`TL8U7@}aqbEDF=Q2}lnz8tpj5SFt2lLa(IrTJgox6{Er$FE zah~y8B5Y~vVfW!Tm`FHv8-C$X6t*6#wu?KbN|Xh&EH?+E1>iZ4FrOR>Mu%f1-87Jr z43YM9Lu~KxOgT-I*HDzpHT1~&%MP!s5$P0WPB|$Mt{%Q%-kOeWx2}}0ow#KGp^+i^ zH;HkLz^V9V@@Eh@I+=hYvd0Mca|v*|BMA5l3Gjc5!M`j$7{m2jd~HPgmlE1j9DGv$ zh;evLc~9>LKC}*7Yy8e4`Z;dwpZmOUIDBLbYj6I!)<4b->D%Jm zpy$R|b{#k7*Y&xWRwwlFKVtATTHVsCpx=$n9p@H&xc@dueag@OZBo9 zXA;jgqC1&Fb% zmySMLk`&ERDq3+KN=>;dhftBlT2f?_xKyTY3?`tr z1?SB`{tOC%2^;H%Qi16d8#*zEhI)aPF=JcurZ#5Kh(4_)%$T~V;|VlC!a6Rw?TzCM zzDNR>M-urVe31k^0MD2|sT7lNJvuN;<4CYV{RBXVf8u+Q!`a(fJa9JX{ExtWg><2? zW7tV8NkP#(9$5QBiNyo+@^QG0dzqbSypS76V~4X?@dX% zd)P4D69>YxL!sGW`Q}U*qJfJb5F_)m5WI`#K!4q*oYlO=pZ~|7AvU00WiLPy?|vluM8L&vapgOrpLYeI_5Hoe8NIqNAED!(XaV0ZG!L#{y%F<* z)o%-a&_3dD`hEdFxfO8C8~eyqiFr3k*NT1QY^*HJg=>-?v1a%ibOZM*vdI;RZ9+^< zf##HSQNn8heUf=55{9Ol$Dd7Y2=a@uEFNauBsBpwC{h`wFyoZ=wDbtGAqhb82HQ0~ z2AMT!vrU82=!L+YKl+&RKHqmY;rmF2yOrZK8U7@}vF`-@nB;^1Br4SwzzF6-T5>J9 z1XC3x1>(si;BqZ;$?TBkOA@s8!E8U?@|K1uv4jm$SPkV0Hb^?R>b$7 zRlo5f4ZoubqITM~OfFFmO1mQ=(X`TXpir}C_ ztv%|~ln@=F<^duBDCC;Lxlmdb?iDEJh=~FYo&UHE_-ju5+)Qk+da^m0RKlDx^y~n&|&WZAyhMl2I`QL9&WY7E?aL&)= zYstTXz1^yP8{&!$aP=*MgKu@?{67I&ER_yv=f5953^0R{-&+LQUj9d%W0m00*9^(z zZb09g%(LLYrp3&rXqv#a?0%0Q_Wv@%j;h;%$uF7iN`1hQhAAYt2j-L$$qZ^Dq$7$W z?(_8t^>H;E&F2`Sb*xryVsEOSMcRNy>3b2o18bN|icUzI z(ln5#DDI5qhfTS;-lc2T4i^=#EvX32*c#~`om*92QV!+e?`fW}{S_t4^b6%EMyCiKVJ8N025qX`;F&{CsjWSk8xox0p>zt}`%n8VD#Tt0{8ib_rh`SWkda(vf$|Bo@wrL9? z7@1_O1ui7yayiN~)rh^y>sixYO>VR^xe;yA|?$LQwc>$=n2}f9eIRoo&g@x|mNfdp7v@90C3|2QJ(@_}q8-k|D?Jw2x zS4fIkMr;+_jZ-u?Qb3N)2CYhst(vmlWo0@Y7}Q#3i`RuDcOKnEXKF!ecAqQ1s-UgU zs+fm+i)w?pj!bKrzqPYFzkS23iqgUL-A&7SgBc#v{}-q(_V#uxTsRl|F{2?j=(U#3 z-Z8Uvf#DN>({#Z=j_6SO^#JXw&fMLUHc8LlBOpiy}~)qwHF z_aG|jh|EWNxgD_n0Nc;9b1ECJIdZ7Zm9^m9b)`XbgUeRk6e#MseYlX(p98!s$9sXpK#bxXZje zCgm;4TeM)LqpiL+T$Yoa=|;f01LjX2@=6|Rg7;COFSAaDZnc|r$ zL`e$0Fa=j`SQ~2V>g($2Ua0IF3Hfq6XGUfoDyXv;w~y4g^IbX3!>fmzOCuY4dscQ8 zRG0e#C83JC;*OEpU{9{;k-D<-y1MdEee@^USqP7E6lE1w*2+($L7_y6y!#4BB@1|E(hN$!gvZsTyhdFK3w5T0t>wRaKI}vomd*vBP~dt z4h9>GT(72AkBYqM7WE zPh=KmJDu5unVzC-Cpmq~lOM_dD!qrfW#X>4Ibw&2&Ll2F;!w?occB6mCq!5peiLPk z1zz$aLHq`hmggxpv{(hcM}i@OUU;I;;=+I*eP@=1&CpC}B}0URGt$MzrwvA){Z>}R zKz(VEDrb1h3qI-0F3R*^{tdxkBW5p^_SNOtXW7lgm9iB3j?%_P47CjF*^F<GXFwA^1OkbCcL_Ai|V{dE2S$Dr%}?Z0+*aniD@SgY;)k{f|*TC1DQGNn^vtq zygb}?sIoe*!FOmuj#*tEtZl7rsXKQgk?)qKM*7jvoEwNU8vXECQCP{)kF!?HD$+3}F5si{S zEVD(FQULi)iv7jY%_V-oO`T1okEYYlD#EicAIt;u!hB|hqYG9nTefoLvSlQS%hEFW zH*%x;S=^sO(u)yC?CzvrwuAigL{sBJskl6e8wUsS2xyYs;|+0C)54?s?eT^?c|(#S z;tkXGXlRqJGm-#!%yfz?TvEt1HUz}2*Rx52?`%W>q@!eM7nj~~g{$q$IkX^OHRa{; z3tUOzg7O9k@B9LnANYa%G?nZUdzIY;Jo%+NBN=`buCq~QNrc7&*tE$0s zXqZHe?#9l{%^tPBGWv>ac4vw2!yS%2k3G^RHAHILaDzj-S?pmv)UIndT@W$?AVt4p zyVQlkbrm$SW;^GSmM%&eVnINp^`_W$^Dfn4v-$HwfwJl_RwJC>wxFeLb8(UC&dBiR zhYM;e$^kCVZ5nQDUtOp+SuH3|Tbz@f>-7a&tIG%K@N>8kr?V@V{2W>( zq*3IJAUJPF(zu8p0%uOZPp&!3~*G=C;5aynaGH)VfzUG%p(d6^mgfoy!oeB2c?;m;M2kX=6; z%YaN8SPO=^pa>{2(ot?>5lg|<(3(SoIlV)JoVg&^Vkw#5Ry~B1zqY2NBUe2(@j;+E zSXtOQw}uTzpRI4s&t(@1da&Va%ElZ#5^~BTmH}zl3B~)l{(F?sY2=YIgB}wF^C=;u z#WUK&eRoHZmVX|i0gZ+^j2t(`;WSK`htmA{QIBN<;)oTqy2-%t$r8Dgm1BJ1E;c?!2A!;;2}tCjAWMt%S*X*^qV!^y$1saaT+Y}m9{ZUa zlW>2^=H`=l%BD{Oc0imTRlq?u(Fr0yQqW1Z>IQAktm4YdW?E8cga(LHv@JAY+2sG|ir(Qj;Rv*x>4 zABnW+-vs6`1N~=7`H>t*mRMNyFZLbOpq|NDjc;svm#1wzsGsF8=f{?|J2(Uw(Sgk&@EJa~~XgW$d9Hjitrvv8Z(T zwWG_;(a*At=H*9UJ1k2Th0&Rt?>etrRqp?2tJ;0uU7Oig3M-IX`yVm4U#L$)$NK#V z@?rg5bm!!cgn!ZGkF;7DV`%dS^$SuD<*?3!$(wbSLDI%ahdUH0CU=gQp)`j4f-e)* zOVGBvCRAMwBV{g`Yt5lx8|KZ`P&|HF4)}u@n@Lv+#Om(eAKLgRV)P54)DCnPTi2~jw z;L$si;1R7KcnKu5A4=2zpw|E6yglXq5&d^-aCpuekKUQ|oa4*z{FVeU#h>&1mPb{}t@Jw4f%H4+YQl>KC%kaD z+L;F4mj>Q%g!Atg{R|l4oIV7+D-Ar720mnj8~PtK!qa{i(Ty0lC!syr#09)J0Zz7W z4o6-tBYw!{F5oZd@aRF)QJ#lH^fQlrLg16&e7_OALgjF*LkzD;&pBRcozlF|@tgcS zh6m6Y%_sSJ4Bw!$(>&*RpXPmz|K#U}@%cI=Kj*o+#P@fn9A96T3YD+Rl=t=ZiQ`XS zrxla$Dl7PU{}A78mVQSiY(d8YPIS!S>g+V|zBKUu1UT(e(N9+zcq9#cC;?9UE!8~f z`$hjfTKg>I(aPZ8^<(i}d+-D2Y8BuiXzz=pTb|9fl9P#MI15mEaMLD4{!(&{}5+2jN((pL(ZR3-K7x~4SqH;ody{K3M?AG!cqz)pL7gyHch%<#y zP;c=KUE@PT)ite4FAdE8(gl=U91cW373K5fw-(Nu8z^76Y-9uF6X$Cva6oHFIKWvY z;grJKCd2#4Pb3ArUwSYO=QJw%86Y3ESbJJq0q;uaKMs#bM^m;Rk{*e}4gC)$^iOMU zSi{)3wB};m9_i=tez>ovfcH|~Io|%DDTC(-;r*!d_5&R{obwif;|!zuBXTd@bB?EJ zo^yO9KaYJE@fPy!OYUFC6Y-W*R)(QD9Xs-V!3e0=ZM4_c`aB zcJz$3EoGz$C~^m3Er>4{|)dkrytSJ zfapgO{S#dZc$e1yUwJ=qctq>xS4r@pH2n`wM)2kSFrq<7wsDHyeX9>8V zDMR~iZT?++K1AE1pB`=8mpGhgTEKg?{!ei@$ub;{I)wsnuW>lZG6Mbr!9mN<;EW-k z-E!%RLMP@ZvB5@yI6N~sk?DVdrpWJ=T&+Ty7rqGvb#OODLJL7=;&;&h4o?5PtV2@M zJ%*-8>nEC$`GtrT_bl%EA!=?4venvXq*pG5VIn9m4{4;wbI9PD4Gjjayf6=t&Mg+L z!+$Y-cc8m^!9cye_t@r_O~O?efLr}a0~pIAI}+1x-yPRoL}wWAGnRV&J(zpgA( zrHT9YT{F5?eqf?-;au>RD}Wyl=eutKUnI-j&goXbiGBpUOM_nt-~P8aFZmB@4_RBB zR{~D{j{<%&0Zu$dz<-|rr+vZU;P=LU;&A;u6#d8H{l@m3-b6nGMmU!h1-vT_Jdy@J zWP}^~A2h-_J&XQlq=C;g!VUe*GQti0bfKJ4%Cvt17K3NIYt_xoUI-lQ-;1*bGAciRll9}=}#`%$yk3sDGF&zI| zTRfhea3xQ49M)9^W`BreC`~~ibRy*V7sxhSTsRS+7*QIx9^KYbGiO8djCr5`>?gN8 zxIePwu7A1u^H=@gjzujSu3B8@%*@=nqj~EmHy>oZ7aZHT=&DU^D>grT&-|;O*>UN& zZ(q!!&$GE~@l9VHTl>J(=LF~a8!RoSE?;`{xxM%ZhT3G0tJgz^(;)pQl2MDqluRZK zuWs_8>JGUhT+hst)*{udD6%RHrfdact}h74Q!_YPJ5Tb)!Av_eQDtRMmXO? zqMrdHobPo3?@9xYq=63^;fDSPjc~q4MgQGt;5}@Y;d^P1iuS#Fd+0eHP(>+gftJqMlhwb=U^u!SRQJ6Y#RxjhOK7Y`Jp z5}?HBu*nf(?{YGU=S0bN7P`nTp20H6;uS`MFRlO$dYJAk8|2Bq{gapWrpqgBfN6QO&{XKd=~-7px8n&i8>&b@W{=mTTD>ak)K;(MkZ7e-{8|ewQJ#`!NXJT!hPuGw6Pq8-7>TTrb6UJ)b z-}}D!URH&linMX^PwLMR4`GM3xk^H{R-R!N_5q0c$i@K=Nt3B%1WmbrUaLAkknM0t zQm{C?Dp2L{JNzCu-nEz6EU2|z1ak{cmx_AW&A<^^vne~v?~~1@P-$5?7BQ>6jFnp# zT|K_*g7K>sS>=qyS3Q0HdB?9@lEMCZKT}`azWv4Mhxgwf{fK^pzW?@%Uc7SV%qw5K z=#H@ymkthIdSXnzcGoM>cOQBv`tHj+cfQP=4?V=3uj~TWER*k=e$Llzg1(QnNchee z{C?nu!=>jXXq{tlT2BFg)(E%c#o%Al;Ojvz2WXwi;>Fkb7y3Gz7n$Ed`Y{XO6_Uq9 zIvCIa`x}4Wh5SapqP0N^PtXDA&N>A*2<~&2b=GQB74&ZEme2;K+7m*esHr*{N1mm~!dW z%QY+)N%ORQ)uGD=TH?K+N6y-IAiH^4@0+jGj$ZhW=WJdP zY|hBes_I=e(6Oqwb>G zE+5AJqFi}&_3D)DHml8UMU)F1yi}Cbu!45_{p# z#_i%FY5^%Fxs)sxD%FxLpR#1F=eJ}O)RhJsGaNZ)SM5mU+;jR1KF$*QvR79Q)CSzn zz+Cv*t=!lDm9z_rJ;V2aiu^vDN0_CPnhbc$N?GIFKUJg`B6xaK9i; zK-|h&Dg}c%6~f0ud>OZ>Qydh(@Qd8&dR(aKFArJF(Fd)09-k-Q8ogJwK6D!b$XIV6 z%M)Pj&N8p^*N?37Lj|*nChm4;Wx3^@MRN)!HYtDg1SbAi-_lkqXXaoxa=e2Vz5%>D zq>4xxEdQ|nvn|{TY@DA%a*#5NJ6{s&gZN(y{#D)>kLHb!v;QE}vY$lDmG`2%*iqmS znnmRx-Ic zaN;bO{1cl4Sedj6pNx>7G(G5)b`<*Ie9t?O2;tdn~`_?Nu;QlGE1K98QFHGS9h z(Lb>(m7jnPI!Z~t>Xvfl{}l3-{GXcr{UYUAwn_aP^r_}?Rbq`b-g-E~h|8~>O?Tjz zs*3{iBkgX*niqEXid_z`^6Z??+xEJyitaeA zL?323>I5VKFX?v~3K%f91AZo%GC2yjctW?_bdx&q*GFlcqYo=%Xj{(aKpAaeb7T^9 znREpze4mhSLmxR2tS$ET3W6gNRbmUYj^M>{h1&eVYw~SZ@^@}gZd6}FSd}8xjU2DV z`QV`UG$$9XYEJBC%`@?iZlR7$8R!UHB>Hp3Hwp1xI-Q@d3U3+3_tEb@cktlf^PaRB zY3P4^2IGab@qYaGjrU*teS6qf*)jQ7@afgpauux?+;}CnsIpA9fGCpo*`7dETTyW* z1cJ)W;-a>yfV?F3S9?_;P}Po?FH^eN=S}CN?U#rxso%@+X1rhYq`a2guSuFS`A73| z^(n~)UDsS`we+Wmy$~A*Nzizzn_N&<2hu_#=b4PmY%9ixj~9qn#zh zC=|&S5umF{ET(_8<>y@S;jirl-mBR|4r@o6*ohFRiIJIUSDNa92&^ zlJ1hy-o^DDbAlPl-`cibziip{Tif)Xw_LKbZAEWMN$-lbotLPWW@LSEwKG$>#Max< z-7$K@lBG9{cC=LwT5MVVtkS_vy}g?TOLGhD6Te-2{kE>IZPzbee8aZR&TTg=zUaEp z(8ivgjf0_UK|@ES-zfJY3sV+&t;+#kOCDnI6;q249*cTJJY4&vuMT-eee9Gk^P>+G zbEZ%JnmtoByB$Bb=Ve~OJ~hlfdDxSSXj>-z0sZ|M{Soi>$kd;o?72Cc@MX&17>@3~A~VnabBEjP@cqJ`>p4uk8+Tmug_a)hM(AR32YZTL z4=AsT7P}uOw|OFMn*zNb_Rsv}P0^3}mwFrN8Ft6iv5^1dLUR~rHP;Oz|H+;FeE8ht zAI$fXK7iql%I7)E-^HO2n`d&HCs?{R1$sZ2=gQRmn189a!8}(?ZG(B<%jb#t;7oa& zf#0AN)u#L@ml1wNaL8a^NC|&D0S-MEoG%n=#KHT0nx20+Gh~5TsOVLmCZq>!- ziTO~z_sj4@ViV(*Yvl!2ilo!|^prD~az0Fqo9_K^yVVH+7VnsC@&fbiXZDWycJa>H zkHZ$5{p|aeZ($sgDYRq#JYA+>kSW;WE3UA7D@yV|o-a1t!@h5xKkdAIGAbW<7hxbkQ$Xoav zEmC154{wruLLIO*=!^uN)V#*d>akE{%&XUK+L#z@X3FulShGg(7C&6O6aT}OEE)ocTI#}sCy2795 zdhPeYYR?Os{l)ITS@Ht@UpQUwiGOjASZumk{=WGz*EUjol&++ap}~@+P4vz1_-9gi zSwS9UXGTRcKl59-12TLUTKL@^ij@|el-{J%lHI=glKG{Fvg?OiTZikj50%cpq|{qd zlM|>e$;v9J4&>C7cuhCg%-h-#?5ad9o~~fW)_FDTP!3|tQQtHtr-pvgeMpv8Kq&dP z<&U%yaj;OEQipiiJnoVv~$8s$fY`L0+ye>^ zS4~YS3OovqEEj9{R{ab zaJM)vP%Xv&u;%9FSP){;)YsS2)xBbY`af(gHAA%(RMh7)HrQO(zc{k+&LQ+!ZCW5Z zq3ZcxKc;CLjcK+Ol>Z+w=Km$Q^{KD2_d!EBQc)z|P0X6&rog~y_lR4eFU;u&rE_$m z;Z7|I)g7>~lM9x2ceV8OHJRMIIt8HkGG`;qxf z3)uUhpB$+mlAD==S{sJ=Xoy;b(%y`?mTA~bS}VvMY2GSAZ@7XL0Av|Pu_Vr`bD<1 zJv#X4fzNRq8TtW^zH~UOBt0O9oc~GQn*df-oc;gjoZL10p4@~aH~YRob_fs_A%U=OvI!vx$%T-F zB&@Q!P{j?GxV6S(L9nRD(yR6EEXH+*Is9IxxNg6GfJuPqZ%H7ixGMDwXZ zQjK%61#`z{)=YDn<*3-GG3BCsuaM7A^?a~2 z{oxU92R?H=j1s3N8J2_6rqo2F6ebD#+brxBancrMrgze$P@Y|qHz+wW*lzN-&rE2q z9yWJq+_p{SW5`7|JEzrTj-6YuOvt7pJ?|c>oUc8AJ(VDhocLf0&Kp7#8++2dWm_iZ z<%C;b->HreuuuNNnto^RhC>7R1IDjLpn0E6dI+EhR(7EbdbI7438C2%o12!|5k( zi-3JPRl@yxitE(t^E7(~KM}^*M=EwdsJx=>rm+zEOPB>QlP&~#pzy<9|gFAQP7ZVx&6W)JS&p$<)`6y9$^e7s_(H3DPCLxg$+I1n;7g$0OD{}|jhw%gk z5c|<6tB)r-g_I(tut1-{$6|G)*?TlwpA4`pw^Rh?LmDFsBl)1b5<7To=HQ9Zj){Xa z#}1C&oRXTHyg4N)HDy9X@svUb-%=fgQ;H)ZatF(WSrHLgh4SFs2)*ogdw7S0h=@L6 zLiZ8;rAUEj0rb5Hm7)4wq_qDg;hFh$U;~{fTGwLbm6HwY<$ET$zmh}l!HJ+q-gd^v zXz3}YFzah+rxjTb-bPa^D+Ahxh{7mVo5&}R9_@4|%RP5}*ed@HTFc!pD=%t~N-+`( z!kAB$LPNx~v%auR9HJeTjh|`80qtT(gc4P?IB=t_GAU)VlH#niZ3tXE9+pSf zOq@6^kqz5JvLfTtb7gsA;A<`_!VW>DF{{PBQ^4|9aDe z8*i$<@y6<#Zk%9w!~5x`o3JS;@13S~N}Z+rd*8k3Ch@L$E*J0r|H^#jG}AVM3%(@9 ziauRXf;!gGxF|kz=n53ZMn1}vkk}B1zG;`?kiMNV!dMuo3pxS%n`IsmRZucKIem0NOskxh95uLPcv8mbyqFboI=RSc<}Ve_TKwndYq>2dJ*zM| zo$2CMc~EjxdUjz_#>ni*6*9A_vNYBFYvpz8dMR0AHaso{$AO^FDAxthT0kGI11;#EZ%4DWU0%UJ13Jk6sB%C=Ol}(R{=(QEbO4jl!=h zyw%F&N0rVGwZ^WgObzaWihNmNFJNiFmp*rVqkJQKFs_nWeJf%x8>bz^BaexC5yX(FlrrB979p z9TB=gA4xC)x-25f6%huAcGVOWCl7MF6WxLQ=a%=mKME=c+_YrLMb-$$6`ShoMcvAm zocu(2S-X!mV~jD67(@fi{|j}K4x^eTQE$s>7xAp{kKW&l+?jAT+H_{Z!wjRFU_-^p zr6Xivfhfzj)owNNa$onWUm0ZR^3-cSuB2EW#|CE3R~GXIdIP7V?3>WlHNmp?eVV9h z3fF7eprlwT&i34`w@xrGcz?o;H?n>}`myPK1B>=pAA--q?$?J8i)i=tH8U=yCOjnC zh|M5;Kthosj6j+4o*~nRCMFJ@J|u70uslmpeCee8{7I$p7gUs%R)|XY#&n&$$5KSP zq78#XERUfL6J511XYmryQUAEqP1l{4x}N_33f+n{(fkE%(e>DSnbJZ-+6c=(z==kn zEU))Wafz6t;>ZTNLVRpE)M%#^mTvKFpf`kGG9o-R#Tk#AEi)qX9B#HVoLh>5caOQw z_|VXJ<~;HCwa>nAN@}O0Xi7=(lp;q*>XZvD7er+ygoY+$MnxM}IWA}N^2*%m;<&it z>fFlZlSP9?xlAjS*DaBHxd!?L&q?$D7QvFlP4KZ8P5%D4@&n{`O(L(5_9VZui))gkpHKJu0 zJVUe+GX`6JA{vGZyoyX7q_@FzzdYYE+0#axBL{E#VW*|PA-AF;*PFcAZ&-iwCGpT+ zW4d3-{;_Gxr=@)=?WZUHFXx-f-6p@v7`Q;1RT)u`pPiEEM2#KM;UWGutJT<~k|u^B zeDritN`H45-G7%V6;2j!$MvWqE^6cS(gAx~A5IiU_Ak>y$o^Q7+a%gT@PEahj7bQBx-7+C3KGI$8>y&S_SCQ~2 zsZ<(QIi{H1-l?*gsP$G~tVKG0lU!$4FkL;-syJ%M5gmYgpm1g=&kla2bJ-GCHm-PLSlM4VNBBYiYt&)Q!8kpvno;x#)O59E=a4$ zj*7~zNGli}7BTGcNlOFOt(|=F!8*lf~vLF*FwMGJA6R&xRqwqBa7c z>1!cb-JUj5P7cEwW-6_@b6!}0^*nXe+;D&ESZj>?k*JW}a!pjoqdG07sY`DU(iRzz#smh{LMSbKlIW5{Qr%3G1FaS%hs0APL13h;BO&> z6+97ks6VEkaR{UCYzgHnH8sb3S05j#3JHChG)xSn?aPtl;})JFOByxjlBNk z-}koWzvK>azv_O?9r99s>s$LzxSxp38kxCfc5UtKHJKx`BK5TkmQY)^wUWaj5fAOsC+ak@2 zd7t0UlD_AC;2!&aBJIyTy|RgZGP7I z#DHM?t=KFVgZYJ*Qy&vD#VMvXy(7ce$_$BvRea2xt)iHi`NUZ7dlpm8c$Sxh%g7#@ zn#AGgx?|Ls0A=@wcORmOabt0z&9AieR~?Oy-qU^8{k2`!Ufc7D{`tPzuIsL~j;`*Q zniZc@oD)BL-t~8SJ{Wr4Y1(1)GruPdlG+TK!=XitU5%lka9uT^M+RRK`baei%EY+> z4Pq<3zE)K{hFkZH!t_097K^)#q8OpInbSzhJ4;DCw4YH9^K*juqMZ0y^ZP#hr}BNK zB^#ZYi{7SHCL4-7aH3LZE3v`{s;AiflU_o9YKpSv3H3a&|E<>i7v)3D2Ia|zUdnGn zJuQFJ)pOR8C9@3m6#Q|yqiq((tA0|+V;mMy#j=1OJ6H{g(g&;YoT(y)tNd9Hi1F#k z;~OlOxIeNH4bi%3$u==IrK>i-A-`e$75U^#XFr$13_0S!5AV4Yo`XMJmYU?Gvz@Ww zV{Eh)yTwmEW25hgjmEqYslf?x@dZ)Gr?iSS|3$$}Cnb%_9XTOpWYeVTn53AP zk{P2!&*F##f16Pb(_HxtOP*eiQI#XU z=X{O6^3d;z8D<~m>{03||J$W8C!AWE%5?XK154wWgrw|u_9M7(P2dYQ%fCSJ6oyEYm8D4r__E~k#V7(QjbXXmRc|Oe|Wvs zn~76yTS4C(B(bwgO#7S}JRLFn;o#{UM{FS(ADSm42zROI|2!*C_P1}%j*rXEj*HK> zUge%DKX_AIR#sd>76y$X)teR*EB%m815q2firriU7uS7@1A??m(vQu=5`0P~yL2Ns3sVL*t8o4UtT2%#sc zF+N%7j+Ua6BhtM4z`PwdF53QZFY>W*egS4%?C9Lo^7QbIl+;1_5!O51L;ZXcW0PXo z_$nv5_oZh?N66!Z{nA9+dCZbV%EVLd&tF8iKowYmz(Cya+(Hbl+y8SSENN#D;RuI_ ze?1RG|Mxn&ktX7Mr(vKISDINUq(u0>#1cyEjzyGQ-<3gwB#x0fBfht1y@7YRf!BK= zKVtT^+k+$GBg;#N4T(vJ2xhT=V(Q}jtcj(Gab+_~3MVC4M_NTJ@5y7w)%XVm_-5xM zBvi~P8!~Go7Ad)l{_S;iCQTwP>sjbyz`)1=%dgK;5(Klu=ATQY`I$Z{i81b%mE#;h zrI4k6Z$9ceFMmgW<1ZzNGY}K0Y5gp&Fj_(%alC|n2$!gPSs7T}9Ep__fcGc-97kde zw4cR{W3jv~G%LEGEI%_TFT7o-qdj(9!Gwi_3afI`iXyDJ5h3FzPZ}BHP;4jL{CqPL z($=*W&aO;}3jYEjGwhk~=#vDUm6gNKK_|5?>$T3Tjj)gPxZ1KZ<)2Kg`N8j@_CJNE ztWz@g$QpJ31Lwog%zpp*FdxT^$Px`}dunP-K}1J~wKF9H*NlOQ5n-SGsPt~R^HlHACjDK=wVEY*6{jIYy z@&eBfG^HiE56I625avdfR-jW`@Ezzn+@Gh&j(U^p#0RnTRIj>!G(+=SWH=|to1s`- z@c)N0j>7g?ZOfJtr3T|%kOa@UAYvai3xdTogBhFDEG_OkA4H!T#9t|X^WiSO)><*Z zHqXInDJ{^So;tTOj1v(0&jU%66OCOlOdv5d8*Uu%AkG8nJAhMPswvCED|76D)f^l- zY|Wa8P~Sjb&WZO|BBCqIZ;T!Goxguxz?$$Yr+*O{ZYK1Hby#?Wkd0B;NUJRmP>zDi zTz|YptPedGflw+dmu9nx<}9s`7tIr>-i>BK2M!? zzDa^OW z@1)c?@5FOjnG&$VKghh$Y@KEf@>_cA^(zAW_-3oNhcsPp?g_Bn780<@7V!ByHrr1_ zgW5yiH263QJ_f+Y7zuxOU*4FpG>500b@D%?z_d8P-W3wC(S8aA=-$7q>^{;k^ET!0 z*1H&*MoHNcF-kCm#o0LY2x2)D|BGc!`XmarT?YT@E3!*vYwBs+-A>>B_RIP5rUmX} zp)AFT%n(a$G9p=u6Dt2%EV}WoWf6;TtV#3T7cH0;l@T8j5}(0(9I<;ZQ%*hYhNvs( zHQANFTR5;*ru&L^Qg=+KNKa%SIKpvki6JiN1tMf6rjm5#b-^*C# z;?pk^>2lN=VP8&Lxqlp)nBQ@_NVrQ+7YXy73wY4|nnxC*J)$7bJnhCgWMUw_n5Fay zEWm;M0UM?IWa6JlwJGh#QhgSg7)Y~FyMHSli+!LQ*$4VC`&5Qad{9JF73-a_6vb35 z^Q^3B;JmrY2plJ35ntPYALW|4yTen$jh!3=xAW@3F-lK_JJZ9{#twg+jxUe+L>qV7;lYXT9l}>(DHFZ!*@QNguG@)Yr4# zbl`Jsw~F;@<^`-OdtWrLKQ6t~*Q*gwrGLGeSu9s8^{iLZ_K6j4#(K4}WO3`Qu#Pwh zMcQH0FsnmJQwU?kUWkXJyLF!G_lff~MB;?|d}8dSQ+=#*@!^1b+FLQGW0Y;4i)Bh+ z70&`!0_ufCWaMWU+o9t1c(|fAjYCW$ql~zaM&LoQ21;gfR_tF@W?uB0)g^OpdST^+ z?du!UYkWg2ejIpLI;CmU>}~T4GS0uc@eVevZ$CNLXSZLtPlt(EdDB-ue$lx2@~MTh z{7kmM(7cS;qVrdeDqm8SIXyTrSibo7s*qGp0~f+L+kK_E-DKt5t`So2#0SN;4F4QV z??Hh=EJYY{@zvt}%0dY7NHXslXZ49A`8@NaKJ^proLQ~6aqNm>je*!Blul%sr4#k% z;m7wrp2XvMlHJGVV<*hsxnCo)OkXCILnOP&W;*i))JsG&_naa{JiPvwM1bPJilM0? zDH$oLscA{RzH!-1xr-$jM%cU3zU^DdNya?2XGOAD+RvGG?3?L}j~C^WIJmRw>YI~C zFCISU;!d<8Cf4DJ0FI{yXw29BCPr9CMpo(Vw&0+kfGM=MwC4Ge>>Z*ri>yIS4`JY3wBx_f@Z&Lnj-X-NqFB>xNO9Un`gLzGgBkEvES8d$R~E!QLV>s7}ZLr+2(lEq{-S*&em zeSu@+`kt@M#~#H5@j;bNe+A*tV^$LFss9b36}dTKiK(d}{F5TI!U$>QiNhp3gAs^+ zvN$|WRJtx1OhIr0Gbd2ImN9+P?1D)-VV1}M|LnAxb8fli%sZy?>Dv|;hlEXv3J7dm ze)5y8?m5#hTT-gu2x?j`Kf4uvR>RM);O8*uW6wUr0@-GbV{Z=9?%{)<_ZGoTIVz!m zcv<2BzIj=iDjFkJZ&|I&C;G|0zCPmkzIy#MIci4_#?Zz*uTeiaxOUk3CoAyvtZ(V3 zH;PG1@lIu-L?}?Z&9|-ZHKKr?C9i>R!Cukk4wHzHnwk!S1*iRCvgaU=0sQ3Xx8 zQ2{~ordCY7bdgaTFyB-?ux?Hag;;t3I<$849a6G%^=^VT3Ll3N4>cNbzmc#6d`B{En=7e-~lv&-lIX{WE{^zDmQrJ2@-HFpEYINZAut7I*cCz5@U`j#NpS z*VJ0#didh%qK0c1KGJZ*lKh-$tE_Wbhg~M~!l4OMkBP3qxR%L}9&+Z8Dr;b)Qe0O`K$k1%Tf2n%*l> z4zrmM!$_9k!}mQ(xx9}GmVDo%eW`x$Q{Dtc565;~sLy6MeN0+%mf`Up$R(Qaeh%tB zF|kAY4-G%9^)jm}! zvU7vZ!>23#h`pdB(n0m{Fv;6I>Cveex04oH=zI&93CnT3uDOZcc&wr{tu?0;sC&(k?v;7jn@3MM&Uv z*ZGGjdyyX>sSz43g$7?%ZlsFX-kis(pZhA>C7Fp6Z*1=={jt5Lnpsmq1Vbq$Nkkd) z3-b%@i|s8)(*t_Ln23-F(Qz@|W$YrcSYaaF8UggzrWM8qR8(EI{Jim%W2=^qiXT4u zhUBqzmF|N+T4;PmWPb5$iv056lJflK*uwF-g|niPHj7=GP_5`Re+A9{@QvsMG>-cA zwkcw`r+2wirJBUF#1xaAQ!$JT6R9GC7*az}qkhXw$xpqf( zn6B?Ecjk#(l=(%%3+$A^f3<0 z(#^G`tT%Xb`i>7eU#|z9@SbpJ1*(LL*ZmTUV zuDfc^ysdc|cAQ#?nL`pwW{*fr9yzBdZ%q8WfFQHtels&w55Ks53E>wj18si3VS%=k z(H9IIQ9C9%IPjuCJs^S3mzQlc z9pNML7sdzgoiEjdC8qbw0lhsNUi8^W-J&X#SH)M%s~A)qN8~IeFwj0IqI}qP(~ZOH z&Py}f!n4Euf~;ew$s#Wy2YbkCknlzN%XCbA<527qdCEjK3Mx~X5erF8OLdC6VOs{? zUlDlI2f>dD6Sjs=9%?Ekeh)dr9QHp242oEDBr?hwbz;3E%KjJMn5gW_FE>~C2Al{E zaKAPvz(3Lbt3ZyQ2=sIRUe{NHj!@_@>yj@rrnNVM5*REuOXiRe6TD)7tO!aH>YjDE z$_?>i-Yln$g#OsG&C8XqG(^}ySM{4lhS?q zV^fETY28vW{pYiJozFYLiD5}WJ&LlfDKyOfR!E>V*!G4k9D1qcm*W%NjR^_zEg{Z8 z_h1^nV0T+`N?1yWd`+-LXjY$0MMy-?V?(Z@Oqobcit6Y02q_{YI>c<(gMh=!ff2Ha z?GvKBJU%4Ck7ib0R}~WKCvQ*`k*{x{{GQ0MTG?w0bjOD#2g{Fm+K`p-;hb$hf@d;K zJ!{*qw{d5*{n+gC%!yT16YJ|IEFYJYJbrmq{pBY2_~Apxy4`Y1@`%}m#d9l@-J&9m zHtgqm{!S6sEl!sxX4pKg4bO10Ppm{xhOp3(AV0gO{~16-1bsk0V{1dQ^uEX5nA6m4hjIe?$`(thcV-ur=quv;7^V(tP~nt;$k8Zp}iU z?aC9p?~Tu1vuEf^?2nNmh}VzeR5 zKFMez{il@=g+rpk^jR(;#>3dwJ>YAhsqn*%xBFOqd@MfQ8$Rkxvt5WI#N=zf%H#;i z2#qpdW%e~O@Vn5*VF>x>zES@EQNHd7IO?7ek{%I}9wOiGPv7mH5u6$xo*FE^LGzz{ z{-&6Skz|*M%?W>vpxQ23V!K3D1Kgh|PjPP2&8NLs>faEXYCp}`_jqmig5QllqPPVPQ4dD)$k7`WRU89M2b z{+#-Al%)pKaygH^FZ%vcvF|68>=>kobydce7BO~X;6cUsh_!2dtC+-71NWEeyYtw8 z?s5Cbc?BgU1)0^QPG@O#runk6+?=wRB05gi*dei^tpD1)NBG>JgjqVIM6t$11g;eG z1DlR|CG|nPLs2b8xWnk=v`l?g>MVw>?gonrN$$-XSK!DPx2QCxth6v9#TMl6 zNXkhVT^*5ERkYc3Nl@Xa$ypWihdXWIiHvTR6O$?m60Po+$%k_oX*o@QGvBAA z`Rs&6oVj)K{!`C?$Hz+iF4Nz{nK9xSGsFT0c?|-R3&l!%M`$JFa=aswPJ?;LmlbmJLM-OM=c<6cDpvR!o z8q#CjW?EEoAA50AO;w8Y{g4i#%$=@AvHnfR+LP^z0~ldV>Hp3nmC*}=RK zN~5Fymn=qVsT>`lH<^i|L*`I}!VpVr(x8rmCwiZG#>f23&F=GJobp2D%9EX(1h7@v ztio>2IQ!Z>R_Enw1}|kM9JsHaU!>pPkcn`H8(yEBPJ7iQhjfnU+1Rn7fwU*q^m;n4aqFSefkqSzB&)|aE# z5q$2PTl>7adhDR$bHB>g85`}u8ML?hu!(IhQHLaPILhGs%=DC`c#f_KV28V8OVJNV zIo&7hwQ5TW6OBWhL>K2BOIxf1T*F@^kEtEL<%UqX)^qkrLF>r*T`Ma?9m?H4`7>5k zjj0`%9~|XZm^9zjR_c0aYt`WV{sU9wt4B0W%>3ykCubUGp5#QuRCM0coHc0iH5cSF zYz(c;7?vJ3e)|g-FT7*aQ=aotM14=fhx(#8w}R!GLZ=>;F4g5g#H5bV@8i|c@9VOv z9W{;j$uX~Eq}ga}VPSO(qm@Q|TNh1bJ#B}h?_g1!SUw`+9y_B3{8kw&+R%2-Z{9`0 z3wTKOnF@#f$uUZbWawkIaNKT$-jxz>k??e$5o+?zlBi5)*qFgeY)NF6GmL1o(Walz z3y95#9a^Yg;<92$M&{TZw@(hXMwGtJku8_P?_Ed!-dJd?4^m`y+l7S&2ik2`ixeeC z=^ac`po#I`2)0;8>akswwCtLRQx>$09aew-w3+jZx2)S7nL60=)5xUsq{tOfNf}8| z+c#zoO%c8n@-=ORPnVIe9)C~IWsyEI7ss_k6|2PUv%ah6{W{wgR6#1m<6j1N~Ui>hBMBNl2gA*!! zvB~+vrlhqtDhS0^s352wu$Dtq5D!s7r{16YXk1ba43yabB;*?$1t-^h`x5O3p5wI68AYAu#lMT1q`V23?hB(iKAXf-WAM&$CWp zh6NiW_1`k65ta4hsWDx7HfnTw{vG*5+uW!fvPqUtX`3q{(`vp}xl_K29rT=EAm1f+ z(DTeHCRgtQ<9Ev_uCkP@U2plV`E6;Goa5O$UXi6J*7CCG zi0}}6j)|hpXSOB$l-p+Gwr7j{5XoYf>=vd;OtPuNSGL<5CfdvlmvyH{i}9I#(pKwI z-GNxIZ$=mAloX!wrsV6(5()9P&~xE1;ayx?XS_N@f0cv#+E0D|2VccRIrA+mc~C3F zG&m(^-B@E$hH$Ho8aZreNJvIRc6f3`qMw*L_HJr67S9I>cZ5%Y*pm|kvSnh!F+nDl zpBke${anuQ$SC}MA-WI7^l8O;Gd9o4;c)Eg&81O!gu#i+LgSS@vg?g$D9S|s`V2hNuQ z0~`Fs>_-*}jPxeJ0t0_jpnu&DCKMDDFh>dq2%0ZaoDxfGVvxW@)Bjl#)LCA%zJa!- zdBMDz2^B+&i-r{BcuMAXAz4*rWmQ?h-)5x9;i>6G;&XEP&XA|0i(*LOEGbg!RX>WGYul%LBgE6aL1Iwd7KH_0(5FW!B1WKdFE zcz9e=P^7#gZ;&G?SNtdkx8B=6Y*_oft=)-JmaMOtuxUYY@q$egYSu5AlGuI8o43rE zam$;RbeAufTRS{w>C%N&+1XVKmoCj2UORU|Icmv&@vJsLBJ}^BQA1}Vin>`p3f%y>!!9g z*S6FJ6n_ToHeexhL#R~TGdkD(C+MPYH-e|u5nIjYiKc^ z_B@c|oZZmg;c9Jh4$d3gmtjX;yQ{6UBd^2NoY&gkm_KD)O(toQ^z??tRn4{SL-L?~ z7=+gh6L)hxx5a0u(jW1rYdk7ST%21_MyTRp&H=@0=8dIL-=UZ5jI>-G&RS<@du@Hg zirV(&&eo;pWEKoMI~Px9s?NDl^|dRUGuPC%*SFR+IR)=Ww|2T(os(V5Tbn!Uni^K? zMbWeGsD+X3E|GOx!_wNi2Itb+6|UxW&iaN9S7Qr2cC{D`UbSKcyr!fDdXf!mI~(Bs zS$;1R)jp@Ty`y$b?vh$jO`f#c&y)e9Mx84fAj6q7L(d~gWJz&d9Zl3rbtf!xHFP*( zeqC*Q!_rmFP`9KOnS$7kR>Y#M6;e7~wc>}m)|REsuDVWFOQW-`-PPLe>g462PFJV1 zqp5XObG@^pp<#t{S$}OU1wxU%8jm;+GbIKuFj5A-$sZUVOEE0eM3i{b0+dx*Ie7t;i}{Lw)WPx)^_Tn zr6b2l-kq*GA#~8b+STD&(%j(X_^P(HhW0ubnB#18t!~h3p}C>6v!Q)yYx{~0qoQ23 z?arp!_7$xy>x^n?ZfF#o$#af^ab(;f6sOa*f>Z>V9nB35%em>P_2$;r<<1qg%i(Xs zYF9mc&|g9j#E05WT`inzYCF7j*jL{|5GX*yYM9muXB(RYkLz1Wsin2kxwN&pxpfUB zQ6;O|1%qJ}0%LHaqhWg06tTl7vo5H$&ZP|v&7ww85yW~$ zXHyRRcEKvWgq`iJ{MOOgzN)TsRXg&~-YUvMVLNM=xSCy^25W?zx321FY3QI%s#}C8 z7m8-8D92M~UG7C$8`~RdJE@R98PCx5N@Uj5(A*}-_+cH()FrlcHF8i`P*9NVY;0cF z)iXl@qQ@$I74MN3dUb(FKMskNm6vGa(g&SSlqa-s>&+SSxX zt&qc|yd}z7hk!LU{7_@dA%c%zwXD|Z_y-xPAGp_B%l z2GydJjnF9g+78$A^cpB;Ntwa%8a{bTn5*-o|7q`igIE3cPp5Zas@^&-rj84wGX38Y z@^GG`wgg>*yG!-58|CuWmpA`&)8&E(PErt@Z|7Q1X;OU@7h6Md1viL)i z+AnjXpioGbQ<{k+iW;eh$~s*hy>dUAJDs{LI60WZg$@X<=+vKTKvun6aq^qD^c|#S zNTiStZ>fdsE#;Rwu1@{a3Vv<+NXdS3#%H0U_6h-WKr5OJ#$! z7Mg@?iO{P6pQJY{J69KGy<>NQBn60TltI+ZSw_YZM5;}jir>NFeN5ZXHf+4q(s zsgFvdb_M^MJo-{iX$&b6t&HHSkV+@K6SXAxD0Il+ouF69ZHtGq9Xx5Y7NXrTxFTv$ zJY~EgB)Ww(nz>uY6M|Qbq~1o_LhHr9;;zVfDEGxTr%qj~p0D7q;E<4Rr?irL;t8XD zG9+Krew&9@(T0h#uF+c~(fX{?-|nxaCFEJ}X?Km96g9I-&vgyIiL#2P>&Zu?D@rR` z>Hd-$G&k~li(XEz1`4_a_s*TSNK3R=hGYpDT+e6Go(Zim+Rr*Y#}4iaehEGryb?W& z$l1^jQD)J88s!%E>U7FQ`Uc-ub5EqPgzth|r^@Im-V{30uIC~6D^e3>5Ct8)yqe9T?Irs4;ZCnfzMy-$dKDoOcCvqOEXIgF;6K=47-8-aDf86*^|L z!lK@UE{d8Lshqog@U{p>4T!vqeopXA$dBmxy>cwtID@7ZK8gGU7lm%LlAqD02tyhqKlU_4IzC}I*<)njO1x$Q;-8_1!P{KWk;+wlyZ z6_kkj^QI*@*bMbvp8hlXF=35)+gQO9QC6o^h}9teviaPo)7SGirNx#Epq*#cSSuLGz;E}7S8xSUauiT*S(TZjcq)NCj>8qdBdMq&tIMY%Wl$^`< zJNp|#KSZ4wH6hvsudR6Y=YM<-KhCyh6_EJPou`K@H@*z~mzg!@VuEzXuBz z%9<&~)U9i8mNFQ+E|*FeNwqMZ(I?t@TFk2x{8uESe`6!vfNvbMGvJ#zUCFk*p}j>K za^}CnPbHO|`7a5}B6ZSX)*CM&3vuzGZkKMA?vq*h%1duGu04zNaoupGalLY=alLhyalOxCT%SB)TwmF( z=Z*)J?mel*THYI-m;y)k3&Bce_;}|5m|-f=ep%#9zU41)mOnZpgcZlM631?o{R#T~KsE;R}T?h_nh%6vc>l zc{{wQvNBx!iQkKM6un^FFFR0PDJUpET3I!8^3Y3$ULxKb`qc2XBQG0%fX}z`PM-H# zSyj2Z@}A1KNBNH`8Pzmu`*}O6o~pj9=8Z}9lb)FR{Pa6!-Ee-)`7_VI@%(q^wa+h_ zzwLsQ3&vegzhv!V%aXNAUZ^|K;Jfs<%c7e?o5s5KFN*Jjt zwq4M6&#F&XCawB(-2>|$Sha-D&FyLJRh=KM`c(XNe#l*Z*}Pn(d!;qU$lPz zhL{VtT)2C~YZo5f5VP^XhUSe2Hbw*S@6CL_Zo~5%Z{F~le&+yJ@tgQ%srYr1|E7C4 z9lF?k>CtVkUGe@^N3T3^)zPcBUt_yw+cl31?8v+QueYmrm+gAvo=&9I7t|xOOQkDm z9sVSJgrxsn`ds>jbVx3c9*|4rq0(1!g*;w5B3H9mSmRja8nNV=KSkOr`EaU*Nt|q< z{aOmso|7WAFQgRh4^pc3yp*9mE@f(em$J2orDfV9(njsDv`IT8U8cPvUCuhSE3}uS z=e6HUFYx}$+Golr?OEkKFaylf9#)#P12KDZ%!}ME{n7d}>2+(j_PO=vnr8hqzdy?FyZQYwX*7Gi1FgT|nJ0MW zzxn=Ko_msfe#di9^W5)w?iubs%X5F=xj*vUb9{e?{NI&cwDw3J64!mAb)OV%eP7yR z{XqKI`XRA@KhnOjek=u94`|O>4{FcZBDLp40rMqke(ywiU zwLja2Xa{UlwLjRVf$3l-m<{HD^TAxuraf+33EH*4+d4oeSOr#tHDH7Gux%sQ1U7>$ zV5{V`UBvZba0$2+Yy&?5mq|so%jMy=?Q)sz3h8p&l~S7RDk;HsHNRb>J#5d{zOYvS z>d}4)*PFD%_MO^C_BXUw>~Dg-+MD*b!8_nx&;#BB`@qNAOZLBm{ooUD0DKM(f-k_A z;4AGV-#BTjZ@jd@H$jT?b!wmaCh|Q=y4E+D?-_i~wOpdTEmv#T$TPHeUXusm#und zQm~W}=;>5cO5yS-AgGxp`N}hxXPm|L|BRxOrk_f_=cFpg!;??p$zgbMkn(><`43V) zm9l-NJg7ZG`M#uVZ<>CpeMPxGvvZz|eK37`Aa8w%O%*BCYpOh(eO<(R=dF);>ua9; zh$kcM2~vvPDP`LerD%JS;m!Cj!D5Fk`z+4clDGSw6Ek+?Jx2;XqcwG1uZW^ z%j?kcozkcsBh>>sE!S#qK+lWN^QJjoJ7(So-q(&q zlf$df`7xzbX{*Df_1b=F@;m5#os_>K<&UBHb=%#NzwJHk9s3|D!XBr6Lm6TzLl9*M zf_{rVO-iH;30N?S_8O_)B-LssN%=lf{1fy~l*_b3ayb~M-7O!|-j@%9ueDFf?Hh7? zkKAr2x7*0=J=@*d8|3yjxy6y&JLHy3Zc*eG1;@qW#T|M$_XA)s9k* z<8bIJQv8$@KPAPZaOE(meriw9G*V!9ie!byHV_D6!5|O^oFG#>!upDLr96-i3bfCp z!P;K-x9^n-K@lhhC7@J$hrRvpNabLt_MSA1dlg_f=kAOEBS9q?1xAB0U@SNfj059A z6{rRiz(i03CV|Od3YZF}f$3ldmKHxC7h??gDp%UEmks9`H+WFYo^f82a{+3I3Wowa?7q;CI?V^V8s2 z?EsQ?$owLoUji?KR{-ZQnS0R35464JPqcT;2eti{WbHFc3P{u5wH(*>T9>1r&0qy+ z0qx)}a5vZmegW5=vE8h_Yr6&93cA2;U?;d8 z{0wx1JHVabE^s&41%3hU0lx(B)&_5F_ksJt1K_{FgWw_XFxU+q1CN8>fG5Cjwa;u% zf~UaK+Fsl5!871l@F(!R_Kxk(;05p(@Dg~L`>%jk!E4}eU=Mg5yaC<@?|^qf4|osk z1MdUs&-Nks82laV2cH0B)ph`U4i0JuZC`?~z#(uLd<~9(qu?8G415c|1IK|1dcg^B z61ahe)gS>GD8L7pfEie58?C?w>>vOHf*=q~UlamDK^QuC7=`x1;aoE7!F2&k)RTc0;9oLa2}u! zvsZ%&U?QjilfYy!1xy9g0R63frnc8U3(N*{!1-VcF+yHI@=!G4p)~h8^9oqZ{@|z^}oh06npzCwBD2j-J@j6Z?OI--0K> zQ`&y}@4(aG_uv`uEcgTXBlr_|9{d@+0R9603SI;+ftSH6;8pM%*aKb%Z(#qt3HH*< zz75_1?}8ri9@qyykQDoe;A8smzk~hY6L0{04i17Zz?a}Fa76pqeiVEIj)8B%ciP8T zx}W(T(2n_j4i17Zz?a~tw%7L?a14A4z5~a#{k|&b1t-8sZNDFF0X_`TV;eo8ruP({ zmR+>qx@I8pc#(!`Z_#H8+xQ@M%xBmy!n*i|eqbNg#k(Hs;v3qv574PkdGjRta{}8$ z!3G?vJ;s~g(Tl!-<@^Sg^BdTM0Um4l8?5DQQoEXz-X`DO*ja;VagJd548>OQ$J+73 z+R4G%8HbdAj?C95>#vJJk(5-7i!bx3qU_r%TA$cp0-1$tcmOQ zQ#TdrY6NwR6Pp+(HZewQVvN|t7_o^lViRM;CdP<67$feW_u5JCwUgd!C%xBBdas@I zUOO2h?qH0#gE8U`#)vx@7w%wOxPx)w4#tH$7#Hr)OK+o;y0n~AQU+S@U%{gu-uQ~z zIqb3C4`99T#WsBj>-|m2c)Ioe7LxSRkF?%DzZ z;)B#5h4xWM{4QZr%Zsq4niy?7$SCMBZ6EaRh2Fy+>pW0cM0(ypdJafgcyh9}d!-!447rRz@<2W)01Lq)uo%>WC7=#4 zs={_vv0YVcR~6e;#dcM(T~%yX728$Cc2%)gRqRz2TUEt2Rk1gFu{V3A?b>l{%oB34 zKCXIJ9;*FD9tJA4Kgy%PICN#2c7PJUNlkr)-Wd~W921}9d6 zwO}3C0Jdr;usv05&J);~Dt4xdop}OVQ8itweG1p!5?sS>RMD|RNbw=;MirZ|7n@MU zCRFi0?ZNxB2k+A!yia@ZKJCH#v$C^2(;mD|d+<8#!RxdKuhSm9 zPJ8e=?ZNA`2d~o}yiR-YI_<&hv$C^2(;hrVd+^Hq3a`wsY~!?E z+jvj~s=-81115pVU<#P3J&CqGiMBn7wmpfqJ&CqGiMBn7w!MM2y@9qJK-&(WZ3ob{ z18Ca;wC#XxJ>HrN!3OPKwC-NC?q0O+UbOCBwC-NC?q0O+UbOCB+qK$jw(G$4;HTh5 za1*#$Q?WNy>`fJWQ^np?u{TxQ?cisi8{7fz1b2bE!7lI%a1Zz;xEK5i+z0Ll4}kvy zNH+GSioK~~Z>rdvD)y#|y{Tevs@R(<_NI!xsbZh0*k>yCnTma;VxOtlXDarYiVdb> zgQ?hHDmIvk4W?p)sn}pDHkgVHrecGs^cO1qg^CTPVuPvJU@A74iVddHhp5gQ?hHDmIvk4W?p)sn}pD zHkgVHrecGs*kCF)n2HUiVuPvJU@A74iVdb>gQ?g>Dt3{IU8G_csn|s-c9Du*q+%DT z*hMOKk&0cU+Mm*Tu`7D9D|)djda)~du`7D9D|)djda)~du`7D9D|)djda)~du`7D9 zD|)djda)~du`7D9D|)djda)~du`7D*A85zzAA%$FsYk&#;28K8e5akj7Eo!Szoeh< zrJwJmpYNrg@1>vb#T(J@Q8}|su4I%s3XDVBr_pQ9(7r+Azdc9WydSMS@FP4cM%(Nl z=i~Ttj?hjEn3xsw5lJF!*P1GxA5N_ z$A5Di|IKmyH^=ec9JhX>9mjuj9GN+RCGb~#9+8xi+7~v4XroC4H*Cg_uo>UMCR%%c+SSpdBHGH^X!YCi*W7}?=0>=4F)jZK z@?!ipwfJo6Ks{cqL)s1aaIVLPa}BwUC)X5m4aas69;4eC|88RZy9s?AiLO?mtL5lw zHM*LHu9l#iOdUUfM-7G;jXECnJWL%fc*e#ZETMFa0 zbjEFIjL{+(qa|Z8-NYCznK4>2W3&|8m)d5=Uz-_!ZDuUB30*BmR}<0EVT_wn7%!z^ zVdbHJkI{RT;af_FOHQn^_m=0!unLtR%Y_4;_ z`CzVg3*M$~yiMJBo4V<#r{irBt2O(j$fYf!H(o?*l3EKJIskPBF zFT#s7A1~5;yh!u$BFz`lhZm_EFH#p?q%OQjU3ihY@FI2LMe4$f)P)zR3olX^UZgI1 zbr-$5i@Bc-c#*c!ySFm`vz{J)hDVBjgA_j|kJc`d#~`s|xt_;$9Dd{p+D^F!^h@_) zr2DWg-TSp3JWw_C{H{|ZeJpcE6TvjF2y|#Qc%f>r02a~vFTw-Wg$Jq&D_{mzz;s(ztTs|T-F4_>bxyk0$cy?XF^_2BjD!Ryt7 z*Q*DwR}WsV9=u*Xc)fb?diCJ->cQ*PgV(DEuU8LVuO7T!J$Su(@Ot&&_3FXv)q~fo z2d`HTUaua!UOjlddhmMn;PvXk>(ztTs|T-FkKTISLhE$47VKx-?*?~(JHbEFqWu@o zKL{QI4};y{G4MF}4R``Pt=06ke9!XvPvCj*XYc~}3wQ~LR`C_C16#&De19Fh0p14h zfOEB$AM)GB;O}5RKrZlT)!@;p!J}1!N2~jk7WJ^U3y;<=JX*W(XzjwIwF{3{Hy*8S zJX+m&w7T(Vb>q?M#-r7ZN2{Aw_?Es_Sk|UvF-_N7V-r_1uxOL@mf6PD4nzwb$TbN3 zn3j61wg~HH5!THjteZtxH;b@t7Gd2i!n#?6b+ZWTW)arSBCMN5ST~FG)_s;%qqp#L zxQbSOF4uWrK3D`6gLAd~jr`UGTwobk4w}IV&;r(ibznW9ZNQRRgeA2|?=ddsdI`7` zYy+YPxt!~EaD_I%uQ$1x&$JtOnC9bQnvaKRJ|3p|c$m8IFm>5)0k?uKa2wbOZU;XD z-Qefo4sa*93)~HMfnR`oz%K#q3m&E}JWO49n7Z&Vb>U&^!o$>shp7t>Qx_hlE<8+K zc$m8IFm>T!>asr$egmEW{|$Z%o&-;6E-XP8mY@qu(1j)F!V+|03A(TZU08xHEI}8R zpbJaTg(c|15_Dk+y08RYSb{DrK^K;w3ro<2CFsHubTQAmfqB*qc$l{0VcLp^X)7M4 zt$3KW;$hl~hiNO;Vk_2SEAy@EnQvXseCvAVTh}w+x}N#g^~|@fXTEhk^R4UcUx6dq z4AEm_RnEYwoPkw21FLcdR^=k!9&IN*`Rl$1v>xBj!9nl^_!1n|YD5o@r>O={Qw^S` z8Z1zkuL^p>32;(#`JtmkH8QNUze)9s+8dZBS&y|@s=Y=p^eH`r@Fl&2?Ih;!gvBO& zN&B!(KJ@sKda*@h-T(5qXMDbqzBZ85t|z6(Ny&w^_A&k3N2It#uEsi>CIv7@8p0fD zApP5OSZ{y9di#R@?F;(1c>1*8VZA+x^(L%QLB$@ZxEv~4q2e(8$U!I(-ua7^+a#7+y{9eZ?^_!IXO-lVSrB<=Q zk70u!q4Z+5@IFd^BlhrL!ED<6n9i|I*9keB77Oq2E~T zX5z6dl`6g`)elJZ!+$tcvFhP7X#4^izktR+K;wJR_#COdNNPu*@jd7}27Sk%>wV~Y zAA0^v^5gE;-2ED=zc4>5MZ%*{_!0&mLhKn*usv5=3_qgm+i6Lkz^fj`THjV_IH3zh zfRUgQi~^&<7%&!`hxdIP7!RsIHJHHtiCk;AP6Cs`6fhOgVzTopfW0aKtUn1Lra}NK zFarp^7C^|)0M?oYNb|saumCWokrsnmutZwMDz{~s{b(KJNm*0QZ1jN&zO;1e?P_k+jiV41Om?nxB>eL=Bl=1TXRVW$+4k6&#i3 zSyH4{QG2%Ea(xm!1rAC9wlBd~;1D=W4Sx-2#cfByH{clezXjic<3I(y-~>1c-1HK` zQmZ`#gn}>tZT1KdB`vc%KnxfJ;((Bz1g=hy2$Dc5@Jdt;pM_NAa}|Ar<~egbiu1APE*~Jd&Dr46J2p z$B)|a`$4^F!b_myB~bAas1klb3BMp-0#zCV@D1W6Q1KF|cnMUz1S(zv6)%CxniLf; zfr^(v#Y>>#B~bAasCWrfyaXy<0u?WTikCpeOQ7N)t=vQSlqcWON z@eir^hg9b0RYo%^qZyUajLK+6Wi+EQno$|esElS*Ml&j-8I{qD%4kNVuTil^zr`B; z7K`&EEY6RxIFDg*9>d~1hQ)adi}M&3=P@kKV_2NWusDxlaUR3sJW4-u6pQmH7Uxkc z&ZAhIM`;lheHGC&^u8~{k*Cpi8`|!Nwu?1nR_c8}?c{#i$*<{8da3g%Xj{4MF)7IQ z9(~6ksT9e#A^F)zele1tisTm{^%H4F$Juk}b8@Apka&Ol63GYY9q;=VGl{~N=WT(% z)O#c+^SBvUYq`=`o({nJDv;u6@#1Ll;%M>24hZxNt8_Wn4zL~zVL&RhK5?`@akM^h zv^;UNJaM!rakMCLv=VW)Tcto+i8xw`I9iD~ndP-+Xci{uekhByI$Z#MJ z4%EYe1~{-44qQl^=11-N>72;nD(Wkr>tLx6j#%J`1&&zYhy{*V;D`l|Sm1~Sj#%J` z1&&zYhy{*V;E2V35x&r?q!73=4%w)sk6c2G%Q|3iB2;i!5fo6wij@P$&-dP#o%^I24NKlVbs+np&x1VCtkcn6fV*r7fh?N=g@zl50Ti zFXqi$DVR4)PkVC#Z>I6)B;K6Nn=amL9PnlqrH!MsHd3fKLl3OHHBb-yh|X1joxTVx z2BPP0;%Z1lED{lmM4X~c=s_$J5sO5`A`!7jL@W{!i$ugC4YBA!01^?4M8qNyu}DNL z5)q3;#3B)~NJK0W5eq+qD9bM>%SNc0OIa3EmW%;qxsMu;rN(2a@mOj+mKu+x#$&1R zSZX|$8jq#MW2y02YCM)2kEOSpV|5yj+Kyfn^3mxcy;>kZs2Zo;}$wR39 z#iVozDRq$2Hd1OHQ2X`Jny2eP*=cVsz~Y#K zXQ00&|6z;VisgTR-un~Y`i%bRfTw>tfpz~^dWHTm!Jowp75(~01JeJJr=Dj&)lw;W z;9Y1nYLwbU{)W;UR_kk@U&l5$KpG;qUUKVYB%DBRc+kF6Z?l3(?><@)g_SYOSbzPG zmgXqqi)6I?LdF*k_~BrD;Xo4{j4vFFFC2_79MI%ITasxZlaY{Q#uv$qFOnHwI2d0f zGrn*zzHrcXIv8I#7+*LTUpN?FI2d0z7+*LTUpN?FI2d0z7+*LTUpN?FI2d0z7+*Nh z!wb>F3(><1(Zki~;cE17HJn98EgSt z!A0O=a0$2+Tt+D`|NpqV6Y#jox_|g5la?e?Dyu#g5s+QV(jurlBKsnU$R;9XQBh^&%$YOy{r!D^+kNiij%4?^%Jbe}v^?ZS5$EOdkV{3Kx5z^t6nS1< z_T}IX(dX6jkUPpwmXDkgOd1^3GlM6}&JLatojh4~Ztyd?$lY?0yG1H<=k(dCI%zqBqQV`Bjh9_jV-A4Ss zH9r|kf5y_Ev6b^gQ60euIm!q*$_P2i2sz4La+JN~D0|6K_L8IQB}W+{M;ReU86ig* zAx9Y@M;ReU86ig*Ax9ZO%f`~Ov9xR~EgMVA#?rE}wCo02b^|TDftKAs%Whzmr5xo3 zOuvCu-oPqvpbR(AvMpKffu3*4QEs4Rr5t4}EgMVA#?rE}v}`Ob8%xW^(z3C%Y%DDs zOUuU6vaz&mEG-*bb*h-4l&9Pu++H=_;{^B({1%>oCxPu$Jq^#mv+x`|5ANz*^#V+U zNiZ3vz>8oms?0^z%kT=k3crUxz-#b2xay>88cc^7@Fx5bX2L9(4RhcvXb`EcfR(`k z@~8vkQ3uGQ4vV{Gtr5^K-t0$$(#Gk7t-5A?RQ94U?2-TC`k5o^3w^mP{R6V)hs;&pDM<>j*yf0>j@aRd>s5j>j{2_J$Gd7W>m4;qukL2G zTaMcOm!lpj&OZwN(a|pq*IGlj_P_a-Rla4_-+W7HB;NN8HO_mPBmdrcC!F`Y&U=yb zu64wkt#zc5l4qTFse)CiBQ18c#aru0-Ol;fswnrX$UYFRa>V(L7?ZQ)9d)XsE_Bp6 zj=I26mpJNTM}6ODq#ZTwsHN&upV8=Wi2z7c*3H^EqczXfiE+u&y~4t@^5fM3F|;C8r6 zrSNXoUfkm<$a~ePhIi2I2oH{3`&dI5Ba_XF% zIwz;j$*FU4>YSW9C#TNIsdIAboSZr*r_RZ#b8_mOoH{3`&gl^Ls^RupQ`M_O*sGS? zTQvlR!o70t``~_f0Q?qRu|8d~K3%asU9mo0v7D}0PFF0aE0)t0%jt^cbj5PIVmV#0 zoUT|-S1hM1meUo>>5Aoa#d5l0IbE@wu2@c2ET=1$(-q6m-+h@a3x#|H^aU1 zh5Lge#2E*PGxil{93{>;L!9wBamGpFjL(TPP7-JABhL7y3dk5S#>HZc3&a>lh%rtP zW1J$!xKxa>Pvq)gl(=G)xMGwza62(YDd!j^rWhqg7$rs+B}O<|jBv7%7%2|eR~#@( z{xORGAI1NV;{S(MCggeB^F2Gjj<6H>EZ;rK=#4abBaPljqc?Kv=#4abr7BD53cis> zZ=}&Hts5F?^hO%Jkw$N%(Hm*>M)KXG`0i1B_b9%56yH6H?;gc>kK(&W@!g~N?ooXA zD873X-#v=&9>r(>Ctp{|*H!X$m3&<#UsuW3Rq}O}d|f49SIO5^QnF?G5N3w;=S!n8 z_?Q2!s?rWyfA9aPs`T-{sVZ$lZ~t0V`e;1=_y6;k99yl+HP|$~)InH6!;4fbPQ?=R zyOcF_)9>z*|M1(E$O|qFKK~CsvC1b_|C3KdTqAC^EYI>so@JWvD0#pwU5YJNB{n;L zXDOrb9j(5@wKqPI_KD>_5%-C|tm5A4Q8GU9p-=SsgdU}Lzvuir9k-ON#;Rc zDU_lu?|gso*vqz_O{vc|-LdO^YKc$P`c#Ww+cM}a-wZnk&!)5rz16YTc~_lxHGbp_ zN?y68tjv|~Ck9KxnL#`}KBx(21ht+o-~3dN2p4tERIgkKDr`JwmudTZ)}mdz7_4>ms=v_hNrtqb=L(w=8F zzZ+zIXM1=+klWm9oQ~Byyh-oyR%@%jXl?Zut*t)MO3M?i!aB$*tkcU*@OYxflfp}^ z!n)Whtc%Nk7tSnyA-ueN;^t?|CxvC@lf$FRr*585{t~?GZ?D4Zo1eAv=~647F17OM zhgLrQX2@M0@3y+hby`C=Zhm%X@8*p|H-$4R4hxTWb^h_Lsz1KstKst%r@_}eKOMgA z`5ADg=V!s$a1ML}&V_HndH(-faK7hb-~!Jtgo`}?NjS6e2?vI?l?Qt~#N#L! z?fIdwaPzZOM_5&IfyWEs$8h!Lc~w8zytL{X&#(3Ty3L8I>pj0=^Rv-i!kN)s;nP+f z>;}8T9$tUO#kJ10!+#mhY=4|xHa9H%q{&o}`?S04i+_9b?2giGTg3q1k z`AKlH&wa(`PT5=?Jr%whmPbzucZz<^^V2>5x)l;bIg-hUj@O`)xegK!jR{XGPl7$8 z*LZ#{To>#dy*}7GdV}XTde2XTQ=_i^iryTa5FH!VMsEq1L~jjeL~jd@j*iu1HnR4WqV1IR2CJ-8UhREr zs7A9j0`L3W2j0^PZPsP3(}_-do^j)_%D!y1@X>IJRl#S|zi+^~ z;bX4(c}%|Y7z=M<;cLoWUCX-PEq~eLtMGc*!I}#!xiGi_W{r$vqugLq*uv6USXv89 zYhh_EEUky7wXn1vme#}4T3A|(JtA(jzr#(HKi6abg~z)*-Us)?171G}3q@E*SUK$q z>8cCi$8a_L1g?Q=;X1e;ZU{S~hgelU3P!`B@HwzgNR*F?ejdI6Uj(a7qOSRmehH3* zFT+uAG#mrR!f|jsoB$_+Tq$}odX z&3e+TC(U}&tS8NS(yS-VdeW>X&3e+TC(U}&tS8NS(yS-VdeW>X&3e+TC(U}&tS8NS z(yV6_>)FJ5Hbt+7pTIS6EnElJ!wqmF{1k2itI}D|Cf2iw^=yjX2EUNi{t|u#x5FJE z^JO*bS!aht-slAQ4g40KfG6Q8 zcp9F8XW=<`9)1Tez(kk?lVJ+H2vgxDco|-SS7Bz@!eU+*k1l2@ao5W)WeL?D6Ifm+ zCo5UX3OUtE&zr1DUc)+?{q22N3mF#Cu7|m0e}=!g!VA-T`LVQXe*SW07oU{klTv(A zici|WCvD)9QhZX1PujpIZQzqqd{T-}O7Tf4J}Jc~rTC;2pR|Eb+Q28J_@oq{w1H3B zz$c|xz&n*cwR6hP!*$rd4*S<(|GLUYOL}K7hWBW~Dw@zp6DH7v>{d;vqX`fDrCFNL z<=3{+gf_o;DNUF`6S}r)!XNzdb$)r8CbZFnHkvSjCbZIoHY2f?CM1omW^x$uI5V_DQp^L%?=)o$ZR7Vfm=)nwn&_)m1=s_DV-^I&!(S;RsVZ~Nm=%Nd4 zbYT@;SVb3B(S=oXVHI82Ko?fgg$;CJ16^1}7giaSYw5yuTXo^Ozte^5=)!e$p>3-! zw9$n&y3j@!+UPg;u)IN*7w`LMvTp zr3PDlPH=2Kn-so>X4Ni~V6nrvzOHg41KNOdg?n<3ti*>F`KIS7LK8)3^=ORa7-uO#iV~z)`7&1C%KI;4<;z(4GFHBf zl`muE%UJm`R=$jtFJtA)Sb2h#Cs=ucl_ywvf|Vy&d4iQESb2h#Cs=ucl_ywvf|Vy& zd4iQESb2h#Cs=ucl_ywvf|Vy&d4iQESb2h#Cs=tKD{o`vZLGYFmAA3-Hdfxo%G+3Z z8!OMS@(e4_u<{Hm&#>|gE6=d<3@gvD@(e4_u<{Hm&#>|gE6=d<3@gvD@(e4_u<{Hm z&#>|gE6=d<3@dNKirrax(^f0*XXQ<-ylIP-2W70h32S!8nzL|oS61G{%A0U>TO94f z(e0w+L=r!TUxdq9`*PO4oV71!?aNvFa@M|_wJ&Gw%USz!*1nvzFK6w`S^ILb`*PO4oV6!edy=&$S$mSTCs})vwI^A7lC>vUdy=&$S$mSTCs})vwI^A7lC>vU zdy=&$S$mSTCs})vwI^A7lC`JA&RxSE=G$)&2{elY8d-i)B(R)CY+wo9ETM-b^k9EK zTYHKHbYp)v_IGb(e*xqBv3x)@5SRHbmH94}`KDyPDVgq{cW+uIE?$Z0IV>+=c|n9w z@^7_69#gMhV_i?Lz0wW~8!HZnQ{k_XLZe8b@gtE!qe!7qq|hi*XcQ?liWC|}3XLC$ z6dFYejUR~=8u`SzB87MO#n%R-g@ltLb4iJ*=jO)oK&HY7@Qc5xr^Y7o6@5WVUSz4S6pFXQwwPA}v1GEOh! z^fFE_?(JinFUy%=7^@FIriF+7jqdHPn0;qx@EpANl6hc^AUI1l^EMj626N{Kw#Kc}q?8U@hOzg$PUQF!8#9mD7#l&7r{GY_n z8~1l^EMj626N{Kw#Ka;d7BR7iiA78-Vqy^!i z)X4r^8_QXD^aWSX{B>uMX}rNS-eA_&3jflT(W;d>6> zbNHUa_Z+_G@O?eLugCZG_`V+B*W>$od|!|6>+yX(#capZcHHX2tv=l9!>vBt>cg!* z-0H)vKHTcVtv=l9!>vBt>cg!*-0H)vKHTcVtv=l9!>vBt>cg!*-0H(EJH(jVKgdgZ z26@#a8(Je`Tg!*Hh3}Z(d0YEJc~yvYst~1>6nUecH|M3!Nfyr*s7!89iP&KNJ4>81 z_i3?qk661$tlcBl?h$MEh_!pf+C5_J9`c3|r_R|Y{g!$hT7hFLJug{F)1dxt#IaJPsid`O zzov9$P0p{F?^pc!%9@h3bkp6Q(%IWvdATvD6O$xe+f^@;ZE%D}Ioe8V>{2q?RlaeJ z{deAHO&`eTTA|I~*U9P9o@eB3a#pIIlBYePSF=v8_Jm%|y0Vk(wtA{c&S`LNFwD2c zsr@3~{3`Y?qVS6-{314VIR-Dn;6)g`h+;3I*o!FkB8t6;VlSfDizxOYioJ+pFQV8< z3{GNj5`&W%oW$TH1}8B%iNQ$>PGWEpgOeDX#NZ?bCowpQ!AT5GVsH|JlNg-D;3Nho zF*u3ANeoV6Z~=o07+k>M0tOc_xPZY03@%`B!TfJB|C`MJCiB0^{BJVO3yzsdY>GXI;*|0eUl$^36J|C`MJCiB0^{BJVb?oFO*(0Z-7x6EyJz zO*}ypPte2@H1PyYJV6sr(8Loo@dQmgK@(5V#1k~}1Wi0a6Hm~@6EyJzO{_J=T2rhw z#adIWHN{#}tTn}2Q>-<`T2rhw#adIWHN{#}tTn}2Q>-<`T2rhw#adIWHN{#}tTn}2 zOZnA72Hd#Y;k~LGOs330H>$bF8R?;}^W<9}j zQF%S4ZqeZu?|znz^k8!j9bSvk8H~88l%$~oyO=iMyD}4 zjnQe0PGfZXU)1EaGH&pr@=eLrFVv)Qb>ZBSYCfph3Mfs8msY z3j>}sYpc!L8Z(wQW2H*fGc>5wT}qp|_pzfCT_(+7Y31H>EQ$T4ntYs@Isr}ze?pHI z(4z%ruNF^gvFJXU{t!)nh(0yZr!;+f%S@)tWZF!o&1Bk4rp;v9Os36b+DxX+WZF!o z&1Bk4rp;v9Os37`zstLBq)i)X(?;5~kv46lO&e*`M%uKIHf^L$y|k&9Huch`UfR@4 zn|f(eFKz0jO}(_Kmp1j%re50AOPhLWQ!j1mrA@uGsh2kO(xzV8)JvOsX;Uw4>ZK|F zo86l{w&k%ck8OEu%VS#}+w$0!$F@AS<*_Y~ZFy|VV_P2E^4ONgwmi1wu`Q2nd2GvL zTOQl;*p{a$3kH4YhuF3T+e-b+9xN+G1RYqm2Fr?A)`eZoSk;43J=m1Qrqb%i@mNz@ zTN1~bW!O^6%I&_4!<~-ShP&O4n58n49chCjbyJxRoZXTMZOMX4dqU2kFz?9w-;wvv zq%bqLMtY@{C5wE+vcarqstE5T_-HmH6T-zjF8-^TO(#|9q$-_MrIV_3Qk71s(n(c1 zsY)kR>7**1RHc)ubW)X0s?teSI;l!0Rq3QEom8chs&rD7PO8#LRXV9kCspaBD&4r) zjf>s5*o}+bxY&)0-MH9|i`^o<4ys~LYa=#b4hlxCWbLIWzt?CLjMM<@E=Bu&EPKEl z^!>T|YeWW&!~m-tV3h-+hI3iwfYB)RX9rm30LvU;nFB0yfMpJ_%mJ1;z%mC|<^ana zFd73!W58$(7>xm=F<>+XjK+Y`7%&b|8qcLDK28_ml(HJlq14d)OXbc#Q z0i!WsGzN^ufYBH*8Uwub`8@T3JoVu`^npC|k-YQyywZKV^SQk8mw4sFc;%Da6KA*C7Ac(nBmU^FyPP#ixEF^ub@a)P_@A_*ANs_tL#CtSnXSKOE$ay`TSv zH*113jMo2@I|ZXvFj@tpRWMowqg60k1*26kS_Pw3Fj@tpRWMowqg60k1*26kS_Pw3 zFj@tpRWMowqg60k1*26kS_Pw3z@2{F>BpUZ-08=ie%$HDoqpWu#~qcz;2a~muMr(( zME5nKpEsiC7|}b7=ov=za3gxK5j~pM>Y^iEbfk-pbkUJ6I?_c)y68w39qFPYU38?2 zj&#wHE;`ahN4n@p7ai%MBVBZ)i;i^BkuEyYMMt{mNS8H@rCw+~uT$!Dlw$8KF-4cz z`Di@x!QiYMCu2PUPO+BwRM~?LE-Nq9bnDGj#w`6mi5dPqeZ~KmN0c&e(64GLN>OBKe(J?`YpC!V^HfiJ>S<3s zORA?k^>nA6?$pzrdb(3jck1a*J>99NJN0y@p6*yxrEBx==?wiVD!hgYuVE!wR+42U zSyqx|C0SOIWhGfwl4T`XR+42USyqx|C0SOIWhGfwl4T`XR+42USyqx|C0SOIWhGfw zk~ODw<|s+Uo7|0O?cn~YD|ymVXQPyrmiBvi&q&YP>QPHM^}t~DXR%MzQ@v94rL>M{ zrRc7jAO5FTPxxd(x3g5cX;J}NBeLI8x2g5XMLs#l_s$Uyz9X-H$M=`69e>XEzw7&F z`u?|R=Nxh1B5~j%M=Mo@vT8Zm;K4zT)eZWpMR-=v<`;_@O0~~E-!@n6a}&-rQs)G| z)!~qjVEbgSeKOd-=pEp?5E*Qr47N`O+b4tVlfm}MVEbgSeKOcS8El^n zwoeAzCxh*i!S><*YW!b~|EuwTHU6*0|JC@v8vj@0|7!eSjsL6he>MKE#{bp$zZ(Bn z>Uyc8(@qab`ug3q?_`e$eSL6SBS3sAlHBIVEx^y_%kBg-YwzQhK3m<#%u?HVZ zSD?(p$Hn;gHa?cFt?9yqZaf^o!!364fg`PSq%KF=z%Gi|UAn4h+1B{9v^F{Zkt3{j zgbl&31N#&No2`N#<~u(oPu`BgZSP!m@VF!F1Up+TttVb)bxhfRc>PHj!A^F8PkFv8 zd>VH1x!pbP;XJJ|EwfK^*_e`v_JBJ-gl7a?%GtQ=Tq+L zo$>_`S4&$8D?D!u!*a25xvoLE_@;avr1knU9<$I6x$y1s4v(FXhl2jUovF&ZRCL!v zxA$-Gx<`%H^&{nCp7LI`x=qmMd4HHKAMp4maQ#Sm=$<@5*gvE!TsvE1t+Fx0&| zwh41XD*P=PW`_*(HmtBzjEc~4~;;XU;a+j-mcWXadV;S!ObbZ@?5{>U}t}+GdtM}urXz>FwYk9Vx?K|%+HY#R@KtB`cG=FZE8gEK(^28X@;7nqEpt>B-s#(C`-Xns zP-YCf96jdf(;TtJ5$jcvx>=~JiTvIkN6R=`H)~nyXeBn+I$|ka$g$djBX4r#O_;pi z(Tf;V@O!(4oDlX7ImtJEO~=+M4Zl0-n@jucriR$%%I{z2_xC!3HO`>J8RQ0k!!W<$ zdEfeb-#XWCsMz`&UiiD;FsEuS_ej{=4jm8LA!^HSnBh0n`VC1}d3T35I#S$kSmz5SGD>2i7RS`yP{?%SJZsM6*W8gO>_O8pZPr- z&0&+@@|@qY#BVug$iqQJY0ce`$AWGAo-_TPE6wLB^Z7ILc>_kDXFk8|2HTj&>oLx5CeHk3Xa1HmpX|2Dy&!nY}2qj{TMR_XT)b1mVvdMU$UJ2~a{YI!@TC+-M4!On8~kE@Y? z!ubYvl_) zuMVe`*QpGw@VYT-AJILlwJ+nlH*&O&O~xV>Ql9!kGtfrn~a& za2Az(jY|HWO19!qD-N|%$yO@aO(najWH$zM<5V}5?52`MmRz8cMJidOk_9T+jc46d zvOp#2hvy5!^;EJA=Qc!N3x5}V9o}H=v%vy)%mTG6;BF3Y*W+zBrR;aLYlwM6Rf<1`iQ8e~_O8>}Kb*qaUgPge{iKy< zeS;a_V5Vb3jtjOmV(+=qbfqgzS5~+SoHPE=883^D2p2o!w+8LG%8{4h^oNeR+)=ZR zx(wGk*;bTo?d}t8!Dm=T%=a($&Q9;__0AI0Cwu2wj4a(B?r+y0zo};M7C0A7TZ?6_ z7?3sVE6w`*X1&pDPcqZ>X1U$DmS*;^Yn8tjzHJ8Ibj}55P;|asuCd*snN7ZVo%8JQ z?dyy{j+S&f+G+DFdLH+Dc#w+4{htlrSFWxr1ixuDHr~@o` zfCUe*-~mVPXTdEjILm?uSnvSL9bmZwEO&s_4v1OqWwisWc0jDMiRBKk+yQ6x8`e9( zdItur_aKiL#Bxhl2dB!8G+$rVjXlca(H=`3wX==gH@xTE@I`sUYx0KISZ_DWy^H1E z#cB(z_O9|p#&I#!!U}(D1XV6pJHToOSnU9-ZDF+otagCa4v2B?Ww`?^cYx&%h;Qy? zxhusr_lj#aiEB2o;sI7Xz=8)@@PJrm6DuBIy#uUwfc364cPm-#04p6}p#!XQfEAXm zpneU%USo+_7TC)Ids$#FtGkQU6%YY zEU23Wb+eu+tY-@AnZkOeMCa-r%vTAESuwu=7Rv~icpZoLpc-mmx&BtdBkRHK8SZ%f zCt4Yy!$Wlqw-q-GhmvN0bhiKb3_tae8Q$=b8J_Z&87|GPI-uFza^2vOX7tN???-t& z+T$s_%@%)Nn%$Sp?jOzWAIhEUqDYN*LS=?Y2 zH~fQH-0(NE_+MwQ%j~^u_Fgtyw^e<@%>1L-S}3B)*atNWMd*U{;T*Fx&n(R|OY_Xq zJhPM;oTYy}GaCkHrquoYjM=z?{q@qa(romzna4_s!;)VzlBIr2slW0fkM`#^5~X{8 zUPDWs#rY3e`)Yjbq9q&X$R?KG$@15+{L=l9>UoCJJwM0zWnbqBIw`>bCFrMn1!~Zb z8@C4svhr1|ynfKiN5~|0fjz`3pW)y4SGyTGs4qRvs*bvq&ZKlrQK>T8#>(nhRyAv? zmMyH7Ev#l$wdSLmFZ{q6=2%Uwv&{2%A2`D{XZXG|Y#y|fbl6<^IT7OfB5HSUGqx*@ z?Mh?2(%7!V^m>G?;QTh8I8;(ni~v2*fv z=C+g_>@O=HWskzcF?CDl=xOI#=UjV+e9iuD{N_i_vB^2k!S%jDueXy=m*%9`5uS5| zcO0SQac=U|VvI)~EkAOE!O<{Y}5L(w^W;2hREhYuWSaJLfY zu+}-OSMmC@(w<@rw_Kq;81Z^Xmv?jo`x(PctR%xqK4cy5`Tpgsqja6%0>6Jg4_xZz z#%OemM#qfD3yxIcP^nH^XLRS%={TK^v!DzMdXELY$8tU>-w?jXQa*5=rE{BQd}gth z4_V3w|HO_nEG5HIK4dAq=5-4%X0qRf?02D&`KSC~n+w_F!oTN9+3`Vz)xVYSG58eh z3ZDl0v@Uy*651c%{WMgzttUT zQV*J`7BpKes2KG7|3A6PA~a@^@Cd4Xds!8I+}7RQhQl5#XrJ&|%=d+$_4eg<{<)m$}PWKOkmX=QwG1Yd$u-HF82&9XZisX>aLM-4X7q zUY`kP``h{MX(6VMd>=0J{BoZu?PT+4IKBL-@QU(h!s}hZQLT5{#HU_cKF{;{9%JFv zeCxG*>k)kG5h_DJRvG#+AA3Z(tLw^>-j@qsHm@&J#u=1xhPi#YyoZNzF9GWKGIe}e zB=js^=7*dt*ZvBe8djV41I+uUhuT4B=xVP&giUgeuLirhfBJqEU-x)MaB#(W9>3-F z1s*T-`bzKlAzTGN0xO;?tah%j+PUJl-t*V{r0-Vo=li5T=f37I_;OB$POvk496ka60iT2sunXX4C4N@oXXS3N zJK$;MXJAj*3-*S6U|-k|_J_~H0WgyO{PjNVtKFyl`pQwk?XIk;t~^u@_c@P;!5OZ# zI}=LR+?@^Qz`5{EI1j!B=ZAHbW57!EN-NPTFM^BV+wdK5H|NSr;CtY1;+2=e58yJu zy~-=#O86mM1wVox!`0#Cl|O-N!bdBwh3nvYxB+ei_g|=V|Aori;Ab!ner^xaUwHf_ z{0iKQ!QIC$cK5N1|G~ZB_uG0e_={Z|aj{(XyLNP$X-AitRV%|pRSH%?6RZYTh1t<1 zQPmnwuWEyJkcJFop&fG20iBSC0u-SO)~kVSxflGsgZF~}ulIq!ckn*&AH4_sOsn)~ zh3|<8-xCwQCnkJPOn8K-{8{%fsE&%4q8-o)c_@T+(IRxgdgu=8hMf?O8s^&AVZRTr z_$T*|zhc-7|L6Yk!)DqeV-}6NmEujHcz>jHEtD=#>1I%_G{t&}T1}u<6DY|H3NnLg zJV7ZYP>Bgt;!P?sf#q(`a(7|5+q2v~Snl>LcNdnsJI9rJpD_bl{! zRq!d+_eRC)U~$Eo;OngKQ><@R#o8cV(c*Qh{j3iR?yfv2n1K0rWBzY2eFCOW!1M{2 zJ^|AwVEP11pMdETFnt0>wqRrnM&>axkCAzd%wuF8Bl8$J10!c(+c76exT3VjOWN#b&3?h`KVkMiIqbEv zJ%_y>Tr%v9aO1FPLDevK|1kScnEmbSg}S%B1om-%)4$I8^sTc##jHPW)*mm&BH&&??%=BX~&J@|xG5;ZdEW#NT!6xhtG4nwTw`m~BV5ZQ0f6 zf7iELC;N}SecNCkeU+gq+Ocq=^Dj96f>CaF&R06;kNZ^8IVYWS()qeagHQZCSgNX4 zJ$Tj7d}~q`8?C%GDWz-eGDfV{yv}#jpQso&nBRAd+;ZRW$kvWhsY3UA-}HO)n)7Wh z`?iZKe;O|KjobOgcYNbJzVV&PM_m(mLU=~`s7!HBa;Y4>xb-yb(3=W6S!xzFAf-k}m@Sj$5eaYXB1nZye z@7fty|7?HPPW!ud+TXR){;r+&ckQ&lYp4BPJMHhxnsdXG1#4&4Ypg_~fkW87kvZiU<6XW&Y^z?F9Pf^83e3BQ8d;SL$u zop6uO+=uUr!$(w_@>KglcG2Pb_iV7-_iWkYXayT-rRKF(!@cG@jaIAS+S$xfE8><0 ztFhvJuh&xh7N7aRdA35E6%8s#R>e)^0iMH>()AkER>n=kmfz~!KdW>9toSw`{K>k( zP(8d#OgcOx37_sQh9Iq2XS-0EaP)oRkEVmst!Y${cOe1`N&s6S3GjQ zO4-F8FAK^d*SdqNxr<iE-jxLzF<}B z3sxFVEPoYVhk4!?3nEq;JS!H@m#@^*Ou=feKd>)NE40BnNIPD}qw8YJOMBM1?nb9; zv7Y5(J*kQMOSlHB}~-UTs&k54AnQ<1}gk58vba=Fn>E)weKr%DxBu^>2L;|vhJM!T1H#vbj`VmSMLH<_ zcNaUt9>$&aFz&R6ai=|uJBPa7LyqCf^x%_2*V4^&_=3CQR;wz{x3XcP+#_$r=0t1v z7RW*J+u+Yw^Vr2MW#er}T91MrRC>RZg!sp;HI6QnxZ}#B|otcU+!V&PF z@Fh4Bz6?jf(QphL3&+9nZ~~kNJZZ(r@D(^UoF^B$Ma|?9QPez9)LgZbpQ)WZD2kdZ zih4>EwLuj1peX7=QPhK?sCnutx2UT;B8r+Pikhpw@-y|72SrhH^^G6aH-5O{JKp=< z@XCry;Cta!6<3CNIaOXxm6ucHPsLM>Qc)IL~if77R zs&G%}isyo7RZjErs=T}^FR#kWtMc-yyu2zu7_m+B`RP7C!{^@&URJ-ETrtxzW;w=e z&*wPKTOQx`zIVLuUGJOcee?Y-=6wsiZ=vV4!H?8&=2tY8O|Dp7_Le%%Y;~MBE8Z`g zTCuilmO9Rxs;EC!%b8Wt9zMWJJy6kMb;@vc7=A~-m6vbjC%FDO%@~ymlD=**5%eV6Kt-O3IFW<_`xAO9>eC6J-59|y3ffZ)*t-O3I zUpX@Pb>)F&H&z~0c7Nr;!JUwR^AgCUU{$Q_XVlS`^zdTAMk$zEj$5F!c*`xJOj_dbMQR;4qkwX!Jh8d{)fuRFa=(OsqhlK46nee@O$_J zyaunsG?)%E;7!-x{n6u0m<6-pop561yD$&tgZRY?>4}w#U~%|DK8%42 z;6k_vE{1Qzci_8r=D5V;_u%_*Df|E~gUjIxxDtK{SHX`!+*2j)vD$rN)iuC>TJ1j3 zYWIm&yHB*rYofa+PprC0?tQbzvCfZQbqD3e)~_sf7v;t7(OFmZOOL;T+u;tl6Yhq4 z+~-q=t?E9wA5{Bf2h;5tKi!`3)9o2Q-JbE&tJJvc8Q*Tt_;!27x7#zm-JbF7_Ka`0 zXMDRogsud?T+Bd-wyq2Cu^#Fb$@|40sd%2s2?8%!WDe7R=ubw0beHtSQm zr@Ok^?bBsPMRzMZM{W6>=pL@o`b^oe(LKw~R9`+LYESj(KEb8-1IkAC^WOcv_p{!6 zfcK8{{|9>SLEd|?=ZAzZL`T7BI21kyhr!|Sc@V?94()}g7~XYgFSrivh3Jv+WjG3s zhGXDZI1Y}76W~NR2~LKuz$xKtu4H)4l?<=BlHoO1GQ1W&9lj1{z?pEC-2~4DYXDqR z+v=LyR@c$_$ z(bW=5Ke89m(&)8bUuQkc^H zIKS!V@C%)rU&628b`bBoYN9%N7u*f^z`bxE+z$`HgYXbM43EIC;ZYcGZS(~A4g40K zfG6Q8cp9F8XW=<`9)1Tez(kk?lVJ+H2vgxDco|-SS7D~rf3xflHyh@_TQJ|+$Cy2u z7Qo_gzI9}ats`3;eGjUk2A1Po!egEPZ?yWR-EqXEYFl}=t-RV+KDr^C80~=%L44*8 z+!Nh_yE@tjI_K`dUF{Cs)x#bR7Yutfm@@1Sk&0ojMRwHB2#389#D+~Pt5o9()wl9i zdd{-abK)@m#hw1X9eiA6U|*Giebg(WyxyVeMmwoXRH`|gqvlYm4Q(sy->&RI`D;f0 znvuU| z^fspIYvko;nX+`4)z_FPC(Gz-Of+Lh%FQxzvy8sRM175`?|H{a} zGUbz9TQ)ZwC(p|0hm2DZxlcc2oD~mG>xVq8A2LlpWSV}+)AFyAQX5>H_IZ#G^)1t!ipbE=_@|dhVCaWgZCXdO= zW3uv?tUM+wkIBkoGV+y-JS8JXX%V|;#O@ifdq(V@5xZx^?isOrMr@uDn`gx48L@dr zY@QLDXT;_iadAdmoDmmi#KjqLaYkI65f^8~#TjvNMjs+0F3yOHGveZmxHuy&&WMXM z;^K_BI3q63h>J7g;*7XBBQDN}i!F3yOHGveZmxHzK^k?=VicaGc80INic=x`pF(3&-gej?*n1r&~DA%7U!ELss7*tM8E2cgX5HWc3}g z`VLurhpfIsR^K73?~v7Z$m%;}^&PVM4q1JNtiD55-yy5-kkxm{>N{lh9meT9jMH~` zUfBcwXP(d3}eg^c}9!ceqO5;VONHtL&=SqYHVJzQa}e4p-?rT&3@D zmA=DODq;&^WEE!2g)O0VH6y$1J5_FZ`>KoPoNJ#@nc=z$MmBe(;}W}5zn-U zXIjKFE#jFL@l1<&rbRr{BA#gx&$NhVTEsIg;+YolOpAD?MLg3Yo@o)!w1{U~#4|18 znHKR(i+H9*JkuhcX%Ww~=%-B6Pno8l64y_O>!-x^Q{wt5as8CIeo93>~l;<(E*dpcVR!u40 zU406*m_jAG|J#n~_pAr~KdpWGH?D7zmCK5^b|DW5#_K>%mJM&i>hDlbuH8~k4i2*l z;>%V+e9g*J@ z&Q8z&k7p;Mr@H;$%}%8?DiM|c|GTqO_y;}8s=?XWA-KYIVOLt^d!zM@H;WAHfygEn z54kRUd+5&L+g1MwUxFjy%WxDN4adN-aGcMVm1W#DDF_PX2kh{}J?9;^?SJm}r6Z3# z|EN8V`o%F*j+uK*@|c!mipOj|_Q+#TKlZX?A2@cxv2%}o|JZfM7LVKQxV?`%{kW@- zyXUyZ<2E0^|5rb8*45|#_B$_MHt)yDo9?-K$E)Yubk9!?zOnVE7yY#Lrsz$V-E_}Q z12>;~^LaO4^T^d>r`>wZFQ+_m^)F{V{PI0b4`2H5%a82%$kpRd8-Lm(4UZoA=oOES zd-Q?v+mAoaUnY&8Grnegal$swUpHar31>a=!zXTga`6+tdSdRA!IOtRdCZfKJh}ME z{4?X8s(fnQ(>p(X)-&Utp73<)naXF5dS;w|zkO!PGc%rvJ(GC;yeYxtC!fFc`RksK zKi~SoniqN}ZZkPKap#E#PyEWnb0?iNamK`}C*JmA&BTW$K0R^D#2Hh9iLr@mCiYI+ zanc@>4w&@C$qOf)H0iuamrlBF(gTy8oHTV(Y*Njn#z`%c1}1-O@~)E)oqWvX(fg92k4$-X%Bxcr zPf1Pbn9}j$HZSh+;-N1d^Wy0*UiRVxFHU)}#=oYik*T}-cfi!crk+1_+|);=zC3l- z)Y#PasRJ*4;-w>BI`^gTy>#146JDD8QsYbOUfS@=HotFrJ@v+rY0pl(0=E21&Dj2r zx6K?f`+RqGJ-qCUvNM99?5wi0%=$TH=UDB1u50zn%PuVYb}*#u`(>9}-F$7?E%v#) zv+Pc5r|&L%AozIMy0UEWsWNwkbZ^pQBgeYy*zu7QWd~o0oECgGa(d+S;NZv^ku!rs zB4BUa4@pO1Ve;-1uzOCsM7z8LvIq^Dl|L0Ump@bfOz?jB?{wzYmQO8zIapWz zYWb@{w*2+-*Ms)*8RavBT=_#Xod%gsgG{GErqdwPX^`nO$aETX>4xjl4cDbh>C&Zi z=~B9MFg)GQ-vmJv0}h?-?Y%`&298Bw#0s98qTEF)@`5jD$*nq@@IGNNV~QL~JwSw_?> zBWjirHOq*aWkk&~qGlOUvy7-&M${}LYSy7E$o+PAS21@9hs&+O{vliiKY|}S$E)Ed zaE;e?Fx0Ip>ej8&ty`sAw@SBemCUMHW|fjzrDRqqnN><=m6BPdWL7DeRZ3=+l3AsK zJNWuL;Vx?_?$)WkSBGwi@vMR6cG{@3lB~23s)~&c-7=Zh3Yk`;Oe?NKw?c=mDC0`# z(lzPM#dPOl;)X=9PA@#|dB%Nxwshv=GO-5TxE*9-2^m;}%&Sf(u2Uzjs1sMzi7V>B ztcACs-ikVJMV+@|*>2Y9@9uGr!CeAkI&Vdtx1y{quJcyZc`J%d8g$-@I&a0Y zExQE7bl!?OZcAiw@6hQ)*-e8h)j9@Os@?0_lyyFnacuVvk;yg4;=V46YhYWu%D+#Q z%{4^Mg7bsnvblz>-L{x++alezVq|PMU&pN|vrEbBQo3!mvb&1NopSiQyyu~CRpi$m zAGNmq$?#p-UbAekS+>_K+iRBXHOuyzWqZxCy=K{7vuv+fwwIFar6P8UkG$gZ_Oo@r z(lwFS!X=T{!-bJI{B4>QbJKm_jBvTTzb%XW(dTA5pIKoc;<~KJ9G`j1%7VGp%)jfs zF~?fqxvME7i)g`Ok4qpfj$7(;?}ZB@iEwqKE?gN&`g=XB2+oT%26shP2G2$8s1sT3 z`&pu3D;LtijS<%dM{>Tu!~b>q-n{n~eYVSauJ@U4j~hJpIPQnA5qiU>$UtyG zFnX8o|?!r)R<=zk&3foxIU*WL|qSo^a^Z(nr&T6p! z2cO+hHoTML?Ciatu!`b8+}q`oUXQTz#V)#lySgU&)7Jg(;acZCy$5&7_tCku8*BMF zuJibYtD?RY&M!aT)vCV>8)Vp}{d!`u?6|IGto&7Y9p?GJSg?(Zxrz5WJHBLi}lg?#q$S{v5yI%S$a4MYU_33a1oaO)BhgR1zHiW+DS}q^z`tzZ? zhqXgL6D}OOr!M1O_Jw)db!qRw{NUK3F`dY2&ud^A)WULD9X9Avep;6@Hq>sdL$kr2 zLv?F)E0emFYji7Pvj2vm8$E6c8@36;#5QGNe49vc_BQ1nhlH)$3=M0x(Q(zqEN-)p z_ox!+WX3A43>#Dm8dM4zR0DhCZJ2MsC*4Jro>DhCZJ2Ms!E2dW%2s2nt?95kpL zG^iXjs2nt?95kpLG^iXjs2nt?95kpLG^iXjs2nt?95kpLG^iXjs2nt?95kpLG^iXj z46f2S*yEp9>WudMQ1~1i23H5eb<>9HrVZCk8?Ku+TsLjFZrX6U#Z=w2;ks$Vb<>9H zrVZCk8?Ku+T-R*4uGw&1v+Z@wQo3d-U9*&~SxVO|rE8YbHB0H5rF6|wx@IX|vy`q` zO4lr2mSxVO|rE8YbHB0H5r7G!5rCm~W%~HB%DP6Oau31XgELHissQC@Mi%j!; zI?Mq3QRtkdbk0&bXDOYtl+Ia9=Pagk7SlP4>72!M&SE-eF`ctTI%kV?&KBvMEvkG^ z#i82YYdl}(u@;s?0_q?M_0Rw-z#VRM&tke~G2OG6?pbVW_bjG+7Slb8>7K=O&tke~ zG2OG6?paLtET(%F(>;sno-I?^Xja*1R@rD)*=SbTXja*1R@rD)*=SbTXja*1R@rD) z*=SbTXja*1R@rD)*=SbTXs+BGHdonyLx-%OLsrlsE9j8Ls_bJ>wJi*XkHL1ZlXZN% z1fSF~J5%LHRaImL4w(g|9yQfZC z(cM^g)lDnvrWJM5in?jVDto`{s1sH0ZYQ7h`G6|2sIv*8@) z$o6&BV!CQEUA365T1;0hrmGgyRg3AW#i}lXi{abw9oW)Ui|MMxbk$8iza)ndA8FO8GV!CQEUA365T1;0hrmGgy zRV(VM6?N5$x@tvTwW6+CQCF>~t5(!iE9$Bhb=8WxYDHbO{j2T`S5@5y_k(+X>#D8N zRa>R2wn|rRm9E+oZEDy0&YQi)2bM5R=sQYuj?m8g_TR7xc(r4p4=iAt$N zrBtF)Dp4twsFX@nN+l|#5|vVkN~uJpRH9NkYe}88q|RDWXDz9-meg5G>Z~Po){;7F zt990rI%`RtwWQ8kQfDoxvzF9ZOX{p8b=HzPYe}88q|REhs!m5T>Cv5&RJsx>U5Tnj z&sVyp*eXQTu9d1?D^)vgZJt`60%4%My>)vgZJt`60% z4%My>)vgZJt`60%4%My>-MNvvX$y7J7V4%g)JClZJ}=3Lfy25x@ik_(-!Kc zE!0h0sGGJ>H*KMA+QR5ja5NkP$HH-NJe&Y0!bxy4d<9OiYsIPXRX7d42B*W<;S6vk zuj<y3f;67x@jwP(^f<;f{WqX@E!OrTms*N z@580=1Go$>hb!Pp_@O&{Ughye?gsK>k5|J_;2O9Vu7m602DlM^3OB*cFcxlsTj4g) zMb=HL(@m?>O{>#QtBc+Vcfs9o58Mm)!Ts<6SZAu6R;Qa*r<+!%n^vcrRu_FNd{;*; zuA>&$QH$%S#dXx;I%;tpwYZL2Tt_XgqZZdui|eSxb=2ZIYH=O4xQ<#}M=h?S7S~aW z>!`(b)Z#j7aUHd|j#@lAGi=aN+d)Td2OYH?bkuf;&a*qmd{{WRr^y-}wW5w%F}f7q zgKDUOWl#(5extiq)Lm=RUE8c`*`R9KplaEmYT2M_*`T`?(_M?{uEliMV!CTF-L<6d zT2gl{sk@fcT}uvoFkCq7k>IdlzYfkD_E<1_n0rd7Y&Hy29o1E<)m4iP<9mi#bv5K0 z)_txFhQLs31uJBJmGCk6gskUN9(RRL!yd4wzwHJ4%UDLjL9&^H;Sd<@3fV*9b8r|O z4xa~m@yaac$Smi`Ea%HCXUi;S%Pebyqu^*b29AZ};CMIzPK1--WcUi40;j@P;WYRf zoDN@yGr-l`GRs<-Wv$GzR%Tf%v#ga_*2*kvWtO!v%UYRbt<17kX4x*Y{CeF5|Mxxa=}6yNt^&XUi^U%PwcjF5|MxIkL;R>@p_1jL9xzvdft4vQ~DvRCc*k zcDYn`xm0$!RCc*kcDYn`xm0$!RCc*kcDYb?xlnewPT%WvbQHvd`JF z&)Kri#j?+Zvd`JF&zZ8%(tY3Fwxd(&isl*_=*MNCOUrn1S!j(cG%gFRm4(J-p>bJg z+*;6tOmv}4G%gd3myPhgUEoum?+TxW-K^u>-Qymxr{{Zl+#B|BmHECN_k;c6vv2^6 zbi4z-?;y_)hHI_;yv}QPbu7C<1@T5Zh5S@DY>ZVC^JQb5!!0W9?pvm^xU%eSJ5SuB z2YIh^y-!xVr4Lyndz~$NU0CKi3+qHzmaUha9V`2?6REyrF;cp!+71aa+i%NkYh<>2 z$ZRi?+1AKxOIKMJWw$%XZfhc!c)n#l>1-M9oQUfMWw~)#?krhuT$a03mb=ut(mI*$ zd|B?UvfMe5ySam-)_;`F6;Bt7X0mBi3F<-tqcf$BlWtK$g4EaTm$%7kgad?{UXn>T~Zw zwG0~{Bg_0f;k|W!N78eAlnq}Y8@_cg8%`OkRld)DjI!dGtawqR**U%Mm}`Aci_d-_ z>uxm$ZN@1bd?n(}#Sv?IWy~oV^FkT(J2K{({}*@n0^itO-+5o2WSFr-lT0AomV`?o z6oztXfuZ4+P#VY*niB5KQW6OFOSuFnVWH116ll3*Xxc((2$aGUdZR7d7SK!#Baf|- z#yTU*vSSzQ8D-=%(mC>xWMhwHv)=ddIPAc}mOg#DeV*sV>xb=(EXk72|MUHQ{{Qno zn;mn)F0?&H$8)i}imo}UYtHJLkLa3po=XB5q zb&hur2Ix4EZlLjH_hXwG%b^Ye71=llI#>H`1W zdT3pA@vIAde;-}(eRbLQ^ZotZ#{+bxb}-XT=XKLZ&vLHUSr4)^!h`+$Lv-K|^?N_- z{vPJ*!+pKPe|v#{d!gU6FRBjvfDZeB4!fkoF6yweI_wc0c2ADZ;x(mAQ1G?@5y6%Ft!zG<}LFZl2c^}ew7j)h^o%e-0@2t+dpz|)A zz1==D_fR|hx1o)aF1(-%FX_Tdy6}=Nyr2s&=)w!S@T@L8s|(NS!kfDA(X&6Z5$VJi zx3dzu@q@bYtZw|9y76J%_)*>XQQi2j=*AzY8$YTWKdKu)svAG58$YTWx0`F`Lfv>) zH@;sden2NasuLg8iD$PP?{woO-FQ|vUeb*p){PJA#;?&8cQeUsYH8{@0ZK znyo9Iv95S##|xFK7+P06V_osgj+grPm#JU({k7^p`TphVH+=sJU$0Zw`~H=7On8;L zVdE&{P}=b(^=9=JWd~fwp~N_p7>5$$P+}ZPj6;cWC@~Ht#-YSGyvCVcPh=gQu%qbQ z@FUJHJDPdtjdwp~nTY%DnDzat)jL09w_O>7kti_|B}SseNR$|f5+hM!Bub3L zZbqWSNR$|f5+hM!Bub1#iIFHV5+z2W#7LAFi4r4GVkAn8M2V3oF%l(4qQpp)7>N=i zQDP)Yj6`TXLy3_HojVj-*HB_4N{mE_ktprF!j+z$tuSKemFhpL=c=pJ^VF}ZtJPaG zyO@hz%*8I|Vi$9a%Uooc zi!5`IWiGPJMV7hP&s^+hF7`7Q`__kTx6MxEOU`%F0xi|J=(h8EOU`%F0#x;mbu6>7g^>a%Uooci!5`IWiGN?=Hlp1 z-4}atl)X60UL0jFj#ZmU+D0^{~y*SEV9Az(#vKL3$i=*ttQTE~}dvTP# zXtEbg_M*vNG}((Rd(mVsn(RfBy=bx*P4?oK*o&WIFMf%+*uh*pfVsFob8(5?!M^V- zxb$qr%eKr#k-7L2=Hije#RHg&M=}>hXD{w%FYY&ZnKS8r*_w)HDc4bCFbWJtfx##+ z7zGBSz+e;@i~@sEU@!^{MuEX7Fc<{}qrhNf8H_B0k!3Kl3`Um0$TApN1|!R0WEqSs zgOO!0vJ6I+!N^)6_i*civkXR-!N@WgSq3A^U}PDLEQ66{FtQ9rmchs}7+D4*%V1;~ zj4XqZWiYY~MwY?IG8kC~BgfW2BW}WR2hr{gHd2G3JgYp z!6*#6b})-kU@;!XVvMjDBP_-Ui!s7tjIbCZEXD|nF~VYuuoxpO#t4g1WHE{?Mv=uR zvKU1cqsU_X8jDe6F^Vikk;N#o7)2JN$YK;(j3SFsWHE{?Mv=uRvKU1cqsU?uS&Sl! zQDiZSEJl&VD6$wu7Nf{w6j_WSi&11TiY!Kv#VE2EMHZvTViZ}7B8xG~VvMpFqb$ZK zi!sV#jItP`EXF8{5wIAeEXF8{G0I|$vKXT*#wd$1%3_SN7^5u4D2p-5VvMpFhgghJ z7Nf#qjItP`EXEj%QDQMlEJlgND6tqN7Nf*sl&mGLT1#9Vtf{*g51EVAsIVFpR-?jd zR9KA)t5IP!Dy&9@)u^x<6;`9dYE)Q_3ae2Wvr9MUfiJzW%&=jC!nH^d6@kuYN(< zyNf;9&z|gOPxiAX``MHI?8$!iWIubdpFP>np6q8&_OmDZ*^~Y3$$s`^KYOyDJ=xEm z>}OB*vnTu6ll|<;Fnco0o(!`m!|cg0dos+P46`T0?8z{Dl4noy>`9(I$+IVU_9V}q zo{X|5qwL8jdos$NjIt-A z?8!ISlVSE`m^~S0Plnl(VfJL0JsDw0*^^=RWSBh}W>1FMlVSE` zm^~S0Plnl(VfJL0JsDpQh)pT5DWh!4_t=yYn^Iy^N^DArO)0S{ zSvDohrexWaESr*LQ%2d8Q8s0iO&MiVM%k1sn{ox4@&-2Lf#=vcno%j9b9$$p604H# zik&;>fZO3Bt1@x+HLOa+szj{HQC6kOs#IB(sExD>-H*$E-{?^Gb_`~$~3bw&8$o_E7Q!%G_x|ztV}a2 z)6B{=vog)BOfxIf%!-*%#UnB+)6B{=vog)B#LUW7tjZ@Q(eDy&L{RjIHl6;>t3 zs^nOe9IH}cRSvN#6;|ait8$oCIn1gYW>uzHl}T1*l2w^xRVG=LNmgYt^Iz2m)Cbk? zs1LCiA68b}vntc9N|gC1d-5^g=Y4uo#U)Zj#a6!D&wq5fmJ!gs)Vdc#H!?2m4sC}!m1>!$}Fpr zuI8R$RU$?uVN_-qm5#LlRW>EZrj!QS{=2hH*_7EWn^N7fDG8gh$fmrUO{uae7qKbV zvME(IrLtvH&Sg`oTP7vPq#R;W+DuA?Njb=*RG5@WCS{UInPyUsFe&$AQVuaG9VTUZ z+g=vp7C*ZNI+JpgNttF+MwygpCS{sQnPyU^nUrZJWtvHuW>Th^lxZeqnn{^tQYM*{ z5|c8@q*R!cbPd5clagmra!kr0CS{CCIl`nAnUp+}GQPEjAl_O-kT5BeOiGDKX)`Ga zlaj6_C^0GHOiGzac{Y<$W>P9lN^aZfwFC#ZOv+IvrNE?&GbxiyN`*JmvnT zDB}!DgF!jWpi~%?!qz&3BMi#78I*$z$~c2^gh44XC%;a)>>tuqQ{@lf&#ui9NY{eZnF3Bwe3SWlzfN zNsc`^!k*;VlN@`JV^6B=$qx3U#h$d-lf+tuDtj`^p3I(gm;08E*pmu-QejWhGp{S` zNrgSBoE5oW>4-h4uqPGvB*&hV*^@GRQf5ygYZl7v$vAs5&Yo1*lM(i0ggvQj*^>%; zQejWV*^>%;a)dp(fIZ2beU_iSw(Lp7o}^dA$Zgq^3VTvzPpa%ml|8AjCzZ2*O2QK)-v3mJ(*@trrDEe_GFqp znPyL_?8yVzlN@_;h&?&Po|M>=BkW0T%bujyX3DWA)vdJ*huM>tpRtx9U{A{INrgSB zvL`L}B*&ga>`BC)MC?h#o`BC)MC?h#o`9e9sj??k_N2<5RN0d%ds1aj zs_aRXJ*l!MRraLHp1hJh`33gm@$AV(?8z?n?Y#iX>DlopfHVp3X6N{dNpF)1x3Q-WKxPuN|8w^GATtSrO2cd znUo@vQe;w!OiFRfq!gKyB9l^NQi@DUkx3~sDMcow$fOjRlp>Q-WKxP-CZ))v6q%GF zlTzF=DMcow$fOjRlp>RoV^VTVN{&g%F)2AFCC8-Xn3O|I${{A@5R-C2BRde2BrkzR2F)2AFCC8-X zn3Nool4DYGOiGSP$uTK8CZ)VH-k4@m5+-GuNttF+rkRv!CS{sQnPyU^nUrZJWtvHu zW>Th^lxZeqnn{^vQl^=dX(nZwNr{=1m`RD5l$c4$F)1;V5;G|=lM*v2F_ZE{CgtHw z%9EIsom(d5ep_om(krZ_Cgo{N$|I}+sW2&@Wl}C-Qtr#7T*9POn3P8_DHk#+k7H6Q zOiG1GsW2%OCZ)`zRG5?slTu+)Dojd+NvSX?6(*&^q*R!cGLuqaQgTd6j!DTeDLE!3 z$E4(#lpK?iV^VTVN{&g%F)2AFCC8-Xn3P8_DLE!3$E4(#lpK?iV^VTVN{&g%F)2AF zCC8-Xn3Nool4DYGOiGSP$uTK8CMCzDq!OiIM0 zL`+J=q|7iWGfc`1lQP4k%rGf4Ov((CGQ*_IFex)k$_$h8LwndWDbq~KG?OyTq)am@ z(@e@VlQPAmJdjCgGbwE*rOl+YnUpq@(q>ZHOiG(cX)`HpCZ)}!w3(DPlhS5V+DuBD zNog}FZ6>A7q>L~rBTUK&lQP1jj4&x9Ov(t8GQy;cFexKU$_SG(!laBaDI-kE2$M3x zq>L~rBTUK&lQP1jj4&x9Ov(t8GQy;cFexKUN}fr{Gbwo{CC{YfnUp+}l4nx#OiG?f z37C|CNeP&gfJq6Mlz>SIn3RA?37C|CNeP&gfJq6Mlz>SIn3RA?37C|CNeP&gfJq6M zlz>SIn3RA?37C|CNqG>H5-=&FOiI9{1WZc6qy$V#z@!9BO2DK9OiI9{1WZc6qy$V# zz@!9BO2DK9OiI9{1WZc6qy$V#z@!9BO2DK9OiI9{1WZc6qy$V#z@!9BO2DK9OiI9{ z1WZc6q@?Rm#+Z~bCS{CC8Dmn$n3ORlWsFG~V^YSLlrbh{j7b?|QpT8+F(ze9f2??L(Yb zhyAyLDyk!DT$NOyjw(A8Few!#Wt>S_Wm2k4N|i~eGAUIirOKq_n3Nool4DYGOiGSP zDKRM}CZ)url$ewflaganp2?)VmPxsYNlBQL3X_tY^G#Pl!%ZgT2$PayQVuaGGXo!F zQuZ<_dzq9MvL`n(BX=?*cQPY)G9v|Mq`-`rc~VbQPg1T1#f%(eMh-F~hnbNAGg7eU z*AzQ3ZfCp;Scn1(QD7m`bsY!UhaWy;Aa8g0g2ydyuDdwK5X>?JOU%G`GvBdxq^8@y z%kP?ZWdI5czyaO=cbysdd-mG8*W>-N(tnfii*@4(+J02X(;5w|z*L_YvQpUNL`AS9)BBQ_$gj_bf@}EJ;PDQ_$%Y zbUKBz#y4)()!d@1x#g_y`abdBPT3>2r`GJzlyL=tZRTEgD0`XcA_}^Qf-a(CdiN7Gl7o_;TQv6;iey&#qX8k_e$}5rTD#4{9Y;k z&!zZV%z^He;`d7Nd!_ijQv6;iey&#qX8k_e$}5rTD#4{9Y-3uN1#mir*{6 z@0H^BO7VN8_;GWfU!V5a^rhtPP)ECsBsxPW9seS6t)R)y))Ss)rP=BfZ zO8vF^s`?xCx9acIe^Y<2{z3ht`nvjt`liaNZ*3H$%z~6zkTMHWWMV7(a?LJ@aa>{? zml($-#&Lv_~3o)0(x=gXQaf7rNm3jx7|xhyr-4I_mdJYkr1C`$H@yN z#HUM!7f5miNv8DkmL%ITtSj6NOFa( zBv+8geySC^62N7sok#6FYUfcqkJ@?E&ZBl7wezT*N9{an=TSS4+IiH@qjny(^QfIi z?L2DdQ9F;?dDPCMb{@6!sGUdcJZjIP_AF}8qV_Cm&!YA$YR{tfENai9=`Rmi$2Mdg z8+!fQUd=V{8dsH#E}9h3q<|&`G%27-0Tqs;LID*HW}aNcD8thodVxwW!Sqn-o<$?ZaUA8ZtORLwmFjtBi>_;cuz2D zr8~llXU;vXBbJw^q=QAsv}2MM?drspY})lwBLVgU3|Ku z)cHQ`=lHaz>*9CQv}{(PVKxBA3C&L_7i?>|DmPkeG7>D}7%Z~E$_d))nh`_*|{ z<}BChJX>wg{6gkl{`WBF`agW*FYE&I7nw)$_>amw!cH)Mka@J#t$M1=?`0lr9w8oh z8b|&NWtMNiEFb@Uoclh`Z6CL*$sahsbl0{U)T_DH*ZKKPzW-2W_qGpP-R3;E?N8YF z)^^t#a{hmF$8P)WK3e^}dW?FkdYpQ^`UUliYL9xd`XzO#dWw3gdYXE=dWO18U9O&~ zepx+B{ffFmJzG6TU9VorExk%LIi%RClV98T?9S(_7pfPlm#CMjm#MdI{Kd|bKPg)Cbk?s1K~@uT@L)~-=$iYVu-5*ZXW6Oee%`fV@7l0;E%t65@D3dCsvq!| z4g1T6{bj@cvSEMOu)l2BUpDM7i~VJ>XMVslKj4`k@XQZ*<_A3U1D^Q-&-{RAejxL^ zQs+LYbDz}tR;lxyl4eKJ>`0m&NwXtqb|lS?qe(mtyjALXtCaIj3Fn>CL`RzFNE01tq9a9gq=@5E#BnL&xD;_*f;cWgbR>w5 z1ksToIub-jg6K#P9SNc%Idmk4j^xmh96IUvCOLE@hmPdXksLabLq~GxNDdvzp(8nT zq=t^vkdB3e#=-{}3-4hpyoa&xe#XB08uxy~xOXwqcaXk=^c|${AbkhvJ4oL_`VP8x z(7l819b;q%-8<;sLH7>2chJ3q?j3aRpnC`1JLuj)_YS&ukh_E29S){rd_515I*8Ok zqz)o=5UGPi$1~fv$nsuPIXdvsjc+4L-G9B(>SNdJb?vNg4@e~D*gDQ=ztVoSFK}k9 z>(Fifbcdf7{B&~jr@OCr*|LAtm9G2Dl@9Qv16NxGZD(V*J?gfT#-FnBr#$c)*X6qr z=hD^Dr>`ZI41L#lb++G*+&aA~U*Z;#YYua-{!4l_&BX67`u#<}AG>PX9{tFrc4>IZ z=C#=V!6S9tGQCz_I!pLxce!r!g|6FtfjtWb{l@TsRUZRZd<@)>dCb|L%>2yRx2QkNoHH~h zxeU6uvCPMvk^c$5u}9x`g*ECg@b`IVwm%^=xc!N4GvrnyZgsv}-N&t_-0ItIb^0BB zab~Am-qS7bIk0AwS}{tk7@?MoiHR{WF(xh|*;3|F_WE)LrhYlnFGu?2DDyZ;>G673 z*N-rgHH~CVBU#f()-;kejbu$DS<@)iG>SE?BxqYn(6*AGZ6!fFV-3BP1Z^t`+Ex;@ ztt4n?oPn2d2A-7!Z7T`dRuZ(WBxqYn(6*AGZ6!h5N`khP1Z^t`+Ex;@tt4n$Nzk^E zplu~VJM$9tQuQ+R>*`wdpVZ6kypx`%@e1Exr>MiOw{r+3k+tl0r{0{$qqwnA8`**nt?z`1*srRUx{F^iItUBms-lyKLep~%t z>c6P}sy?7TsD4L%$ZP#!^$}N9{5_wSkNWyCpZGmKPuAq7@2io&Y4+US)ajY>>aAvs z-=^Ln8F(IMz>{t7@$-N7)#I4~@0tOR^!_!ZXl}ETLI1yi7-^E|Z@blPKcoKGfB(F% zf1VErQ2FG?{>Qp}PRvn0hVNij=O%+k)A?8{}Z zJy~E%7MPL+reuLBSzt;Qn34siWPvGJU`oFq>Gvc3ex%=z^!t&1Khp0<`u#}1AL;cY zy?&(EkM#PHUO&?7M|%B8uOI34BfWm4*N^o2kzPO2>qmP1NUtC1^&>rgwAl@O-PdoZ zZ>s$p?VShI9qL=I8Srg&Q03H^%B#bwpzK(M&P{Y~qH`0So9Ns`=O#Kg(YcAvO>}Oe za}%AL=-fo-COS9KxrxqAbZ(+^6P=sr+(hRlIycd|iOx;4Mr|`jZ8Jt~Ge&JQMr|`j zZ8Jt~Ge&JQMr|`jZ8Jt~Ge&JQMr|`jZ8Jt~Ge&JQMr|`jZEm2(4b-@S8aGhm25Q_u zjT@+O13$bj_sq4p=R50lm%2dROZof`Ua0P??ynx8SoA>_eUL>TWYGs7tXTBHhbs1b zkUbw{&Ij4@LAHGGvFh>a7u6Hg6V;QH<9P5=^%V6~Wjq`-9u680?O4>dV^Q0VMd{hd zi5aNG3{+zFDKYz$n0-pjJ|$+K60=W<*{5XCXLitMcJKx2h5p7DsTZr4sF$jjsb5#u zs#mD%)b%Ru^j@WIP_I_6QLk06Q?FNVP;XRkQg2poQNN|$qof0~NQqgb#0*km1}QOv zl$b$E%pfIZkPXX?x9E6Uhp)~IXNsB6}!Yu2c1)~IXN zsB6}!Yu2c1)~IXNsB6}!Yu2c1)~IXNsB6}!Yu2c1)~IXNs5^K--LbJ~)@X6?Tk6}& zp8IBv76(VvAvLD*>aZ%PqB^3+RY?Wvs4A-oWuJbtMTE z)l`v+RZA_ZL|Gj&xU9aXR@ACGFe33a{ zls20KQwZNg_$I-J9s%ME54TH_^R`?oD)WqI(nFo9Ny|_a?eG(Y=Z8O>}RfdlTK8=-x#4Cb~D# zy@~EkbZ?@26WyEW-bD8%x;N3iiSA8wucP}(bnl^i58Zp{-b42uy7$n%hweRe@1c7S z-FxWXL-!uK_t3qE?jgE|=pLeb58Zp{-az*ry2t1qqkD|*F}nBAy@~D-x<}|9p?iex z5xPg{9-(`L?h(32=-xs14!S4S6!y_QLH7=#hlt)m^b(?%5WR=!Jwy)?y@BXGMDHPb z578q;j}X0s=ygPIAbJPUV?=KtdV=UZMDHPb2hp2|-bC~!qBjw}iRev4Zz6gV(VK|g zMDz&JBSb%m=sgtgp?DL;n<(Bx@g|BlQM`%bO%!jUc!=T+6z`yT55;>Z9-(-MrcE?$ zqG=ONn`qiZ(o<^jG{4$#wZ%2XpEvUipD4!qiBqxF^a}08lz~8qA`lbC>o<^jG{4$#wZ%2 zXpEvUipD4!qiDSI>&gmU6pc}|hoU_c?V)Ihq9KZgC>o+@h@uS?ZJ=laMH?vEK+zCI zLlg~BG(^!5MMD$~Q8Yx+5Jf{24N){i(GW#L6b(@{M9~mMLlg~BG(^!5MMD$~Q8Yx+ zCWnK`B(K?ErWY|wK>?axalkECQcKsx~esb`9*LK>aE=aHOqnhoU_c?V)H7MSCdPL(v|J_E5BkqCFJtp=b|9dnnpN(H@HSP_&1lJrwPs zXb(kuDB45O9*Xu*w1=WS6z!pC4@G+@+C$MEiuO>nhoU_c?V)H7MSCb3qG*VsA&Q15 z8lq^3q9KZgC>o+@h@v5ihA0}MXo#XAiiRi}qG*VsA&Q158lq^3q9KZgC>o+@h@v5i z_E5BkqCFJtp=b|9dnnpN(H@HSP_&1lJrs>mG)B=FMPn3=Q8Y%;7)4_gjZrj0(FjE& z6pc_cLeU6CBNUBLG(yn`MI#iAP&7i(2t^|ljZic~(FjE&6pc_cLeU6CBNUBLG(yn` zMI#iAP&7i(2t^|ljZic~(FjE&6pc_cLeU6CBNXkRXa_|*DB3~M4vKbAw1c7@6z!mB z2Sqz5+Ck9{igr-6gQ6W2?VxA}MLQ_kLD3G1c2G1y(ZqU-zV#M;>n-}$TlB5B=v!~m zx89Fv$eJK)f~*O$Cdir~Yl5r^vL?vdLDmkkc96A$tQ}OSyC~b;>Z6zS(KV#4W_-%g_9WV#MB9^S zo1krswlUhqXd9z#jJ7e_#%LR(ZH%@t+Qw+Rgtkj)yM(q&XuE{AOK7`iC zOP^$KPTQo*T+#4yb=p(SZuQqO8b@ec-F7XCN)D)8-6kaa|0?cBt15_1d9cJJf53dhJlJ9qP41y>_VA4)xlh zUOUulhkET$uN~^OL%nvW*ADgCptu& z7WIefkJP8sr|ma>tNM)kV|APQth!x&PJLc|LD>ghdN?UPoRl6;N)IQchm+F7N$KIF z^l(yoI4M1xlpan>4=1IElhVUU>EWdGa8i0WDLtH&9!^RRC#8o(dPt;)M0$v&hgf=u zrH5F0h^2>EdWfZmSbB)1hgf=urH5F0h^2>EdWfZmSbB)1hgf=urH5F0h^2>EdWfZm zSbB)1hgf=urH5F0h^2>EdWfZmSbB)1hgf=8k{*_%hb8G@NqSh49+sqsCFx;FdRUSk zmZXOz>0wEFSdt!=q=zNxVM%&ek{*_%hhx&iG3nu$^l(giI3_(DlOB#q4=w4TB|WsH zhnDovk{(*pLrZ!{q=!U$u(Ox)xt1Oh>0wcNSd<UE z9u}pCMd@KtdRUYm7Nv(p>0wcNNTi2EdPt;)M0!Z1heUcvq=!U$NTi2EdPt;)M0!Z1 zheUcUE9u}pCMd@KtdRUYm7Nv(p>0wcNSd<=O=^>ULV(B549%AVs zmL6j1A(kFu=^>ULV(B549%AVsmL6j1A(kFu=^>ULV(B549%AVsmL6j1A(kFu=^>UL zV(DQ~dRUYm7Nv(p>0wcNSd<7g$@^reTs^w5_c z`qD#Rdgx0Jed(buJ@loAzVy(S9{SQlUwY_E4}IyOFFo|7hraaCmmd1kLtlF6OAmeN zp)Wo3rH8)s(3c+i(nDW*=t~cM>7g$@^reTs^w5_c`qD!rJw(z&Bt1mZLnJ*!(nBOY zMAAbfJw(z&Bt1mZLnJ*!(nBOYMAAbfJw(z&Bt1mZLnJ*!(!-kcu%-tO_28kTur4XA zOA70f!n&leE-9=_3hR=>x}>l!DXdEhv7``73bCXROA4{15K9W_HA`YiA(j+kNgk`y9IA(9m0fsr4v=`9K1C)xB!0*EAl=nR`4NC1HZ5J&)l1Q197fdmjp z0D%M$NC1HZ5J&)l1Q197fdmjp0D%M$NC1HZ5J&)l1Q197fdmjp0D%M$NC1HZ5J&)l z1Q197fdmjp0KrxQh$MiP1kjQIS`t7@0%%D9EeW6{0kkB5mITm}09q12O9E&~04)ii zB>|ji(_0ciO9F@_fR+Sc=Tjv!>$gMwc1r>XB!H>}P?Z3x5%P#t)pd5|ZuAXmCVq?IY``VsV>9FTYhZm>TtLn#Hs zh~Gl|7UHLNJwp5z;0PS07AE14J_5s=lXdj?` zYStsPkI}w`_ARupqJ0zf{yoie3-wy4*ZK+OIYPY%^&-@ZP%lEge{1s`pk9D_0qO;) z7oc8%dI9PMs28AKfO-My1*jLGUVwT5>IJA5pkDCLP%lEg2=yY=i%>5@y$JOp)N7$$ z3-wy4*FwD(>a|d>g?cU2YoT5X^;)RcLcJF1wNS5xdM(szpa|d>g?cU2YoT5X^;)RcLcJF1 zwNS5xdM(szpQzy%ih5PltD;^N^{S{>MZGHO zRZ*{sdR5e`qFxpCs;E~*y(;QeQLl=6Rn)7ZUKRDKs8>b3D(Y2HuZntA)T^Ri74@p9 zS4F)T^^X~Qt%(HstSv~VCA{G!ay;934B90>BC?bv`;wU1HBH}0_jw0eH zB90M*F-F8_;1D7<^u!H4abv3|uIq{G zdg8jCxUMIz>xt`n;sr!pK*R+^tm}#Edg3x7mJzXxh-E}9BVrj5%ZOM;#4;k55wVPj zWkf6^Vi^(3h*(C%G9s1{v5bgiL@Xm>84=5fSVqJ$B9;-cjEH4KEF)qW5zB~JM#STK z;)NgSi4#Oj5HUf-1QC<1o;aOfzPl$rbAGw5C$4ASrcTcS0^o?VtP&F z1}ZL~;vHx7!Rhsp%cxjJ#WE_EQL&7QWmGJqVi^_7s8~kD2~?aw#f7vF-t2v!uu(z9 z3M!USv5bldDwa{PjEZGcETdu>73-+DutmjmzB%oICs47DiVeMBLoe9S3pVtE4ZUDP zFWArvHuQoGy^wY z)IX}Pt8b`psvqtJ>w3YuUa+ngtm_5qdcg%$TtLMIR9ryC1yro-1?zgjx?ZrZ7p&_A z>w3YuUa+ngtm_5qdcnG0u&x)Z>jmq2!Ma|st{1H91?zgjx?ZrZ7p&_A>w3YuUa+ng zETdu>70aktM#VBJmQk^cie*$Rqhc8q%cxjJ#WE_EQL&7QWmGJqVi^^W>jjVN1&`|m zkLv}G>jjVN1&`|m7f^8l6&Fx(0TmZeaRC(<{x`i~f{F<$Ca9R8VuFeZDki9ypkjiG z2`VP2n4n^UiU}$vsF+}0u?7vaRL=5P;mkkCs1($6(>+}0u?7vaRL=5 zP;mkkCs1($6(>+}0u?7vaRL=5P;mkkCs1($6(>+}0u?7vaRL=5P;mkkCs1($6(>+} z0u?7vaRL=5P;uhlkctOU@gOQrq2d%OPNCuyDo&x|6e>=k;sPozpyC~l1$*6&E)9#3m{>QL%}N zX`lF$OmPbpTd3GN!xaB}Q!%~nO6yuDVM5#FUCZZJ&6zDK4Yp zF;vW>;y5an&*&3J^oi5@#G*d2f{e@h#AAqf+7|!MJ~1`Jt)I{*mJxBD8EzqBdCLs9 z5OMsBKC%2SAmZJ9Vrqu(?i24s#5>O*V%jJEI3lK2xP^$R6+W|1j1jSkh)qOnB4QH} zn~2y%#3mv(5wVGgO+;)WViOUYh}cBLCL%Twv5AOHL~J5r6A_z;*hIu8A~q4RiHJ=^ zY$9S45u1qEM8qZ{p4lhmi38cePUUkSl;Rre_C^D zRl8l!`sP(nI!mHs&-K{I+%Pi7+g@$H?8ADEzj2=HKW;4kV6JRLuDLifV8#D-XXX5y zd)Tea1Uh^7KDx91fb(Gno|gHQ0q4UEJj2&#XRfg(``4|>{+Kn{ziUnQfOXhs*~$An z`%azbQSS06UF)*nZ(a5$t;@dITIv^DOa0>QBO7zd;bG2C*zL^3bpMKbdZy0c&kR|QeZIPnXZmng z085|otE~gxgG5*Oo1bq_@)y{Z>qV^Lt2a(NY!WQtwsY+gRCY9qlP0tB!QlQ@ZM@t&TdB9a_5SP<9xT9r_$|UvBtm_br>!Nl)pd?~)t( zI_bW=u(h9)?|^U8f*xz8)tbkH>&bWI0c(?QpC(4o8#$_t^q5XuXoyin6Y z*L2V|9du0xUDH9=bkH>&bWI0c(?QpC&@~-&O$S}mLDzK9H63(K2VK)a*L2V|9du0x zUDH9=bkH>&bWI06t%Lqo?}78rbkKL{pzqQ_-=%}TO9y?I4*D(~^j$jWKCj&8mHWJM zpI7el%6(qBuY>OEp!+)Lz7D#tgYN5~`#R{p4!W;{?(3lYI_SO*y03%o>!ABO=)MlR zuY>OM%6(qB&nx$N7Z*m=$a0?rh~5Opldqlnhv_AgRbeIYdYwf4!Wj;uIZp_I_QX3j(FvWSB`k) zh*ypVt=r_4BVIY;l_Op`8vLlN_A&Kw^$F!z)Iqm&&@CNwO9$Q3K~L$Rr*zO$I_N1K z^pp;IN(ViqgPzhsPwAkibkI{e=qVlaln#1I2R)^Op3*^2>7b`{&{I0-DIN5b4th!l zJ*9)5(m_w@pr>@uQ#$A=9rTnAdP)a9rGuW*K~L$Rr*zO$I_N1K^pp;IN(ViqgRb++ zbzZs7E7y7DI+?7>GO^CNuX z(%qB(F7ptpxtbn%8I^l7#Jy#RN68TPmLVP`Lp)iAxJ-t)UWWKhtBRUd6E!{ZNsoNe zBQMJjH^>jKlOJxBA1;$0F7s?oTH(^P!lh}2OVbLM=FShO531i$A5tGS@A9CH4bN`- z=DBn=>za-^EA5y^yvQRy#3Nqp-Y;)Y@nuQxtjrBM_dOez`#kLPNXdY6!8YF!YZE-*d5OADxo6|Qd6mE6RsM!EA@^*2$WI^j(?{J`d+T?do90pP;ZaZd`(9<1 z;Ez1&OJt2@pUThqt>5se{70Y4zxOQO?A*Tr@7Q+l*r0c8yJz$_1J`Z*srM%5y&3V| z+{Y*PW}nB9b+694WU($;tV2u_jrpNfv8f zxpm26U9wpB3a)zv*CmT}uj0C7u`XGxOBU;r#kyp%?v-7aEY>B9b;)8~vRIca)+LK| z$zolySeGo;C5v^*Vx1*eL;W?>U-K@kc^B4De+~85?j8xe;_Ilnj+*PJx$f0pN6mHb zz&dKKqvkqluA}C!`Von(L^!j+*PJxsICasJV`s>!`Von(L1G zbtCk;cWd1Uy>5hFH$tx)jn@V~ZUyY^R>0n#x!1;f?M1z2FX}ZbVSA4Go|Ui*&No@L z61HgUywgh9IXy>7&r#BIl=K{-cRujW2j2O>J0E!G1Mhs`oiBOkOWyhPn$m%HJza+~ z;hitb{GrSrB0wnfFUb50j=Ke!e?jJ7koiNIf8KEz%KV|sKQHso%lz{`F@aA^;1d(b z{PUT2`1cz<#yfrgF3<1X>bKN;l(pM(d??3~AL zj-S7I=H`U)ES)_Idu^r>keE z%hcuSnd+C-v(&FB`=wa@dArr0w_E*ryValXwfghDJFjr0JX<|SU8$a{u2RoazpAcQ z*5q3u+OtBmXN73b3en!qm#UYkx0(fen|k}ksuiNEJ8x9)RPR#nRyWx%^S$anTWR_} z^?vo+>I3S7>UY$K)Q8n4QUCYVEy~%eJO4<1N`2ZnCicM9)0B*%C1YsG7+Nxhmh?0w zJxxhZQ!<{G^fV=7YDrI1($kdmG$rF}$@p3_zLt!yCF5(!_*&A_l=L(uJxxhZQ_|Cv z^fVwD@qdE5oZv1eaA1PFoZv1ej7nvrQrW0fHY$~kN@b%`*{D?3i-dZSP%jed zMMAwus22(KA`5zv1-;0EUSt7B7Nmp)qu7F8WI->opch%ti!A6x7W5(udXWXa$bw#E zL7G_5i-dZSP%jedMMAwus22(KBB5R+)Qg0Akx(xZ>P14mNT?SH^&<0nk$Jtyyk2A; zr{?t{^Lmkay~w;?WL_^auNRrui_Ggq=8dX>Q8h5C21eDus2Uhm1EXqSR1J)(fl)Ou zss={Yz^ED+RRg1HU{no^s)128FscSd)xfA47*zwKYG70ijH-cAH883MdXag($h=-; z9xLbdBJ+BYdA-QIUSu9S=k+4lL(EX=^FR;KpsabI8t%VgHxHE>Rfd%JGI;gPyU1NAE+);4^|Jwl%G|PWXm2U z6*!9=SMs=$$CW&;)TMR2_4RkK(%i%+xo zRL7=SEUNKOE&geRe_G+6R`{nC{%M7OTH&8o_@@>AX@!4U!L1qGn&F=!{;7>$$2q77 z!=}9YN4)wIUi}FSo58Rd3_CWkuyG2vX0|bNz_S*>tZEBG}fZG8{BrueD|x9Yf6$E_*Os%7;@%j%Do)gLXZKU!9Qw5dopc>h0=_>Pu>$`ZM)q^%eE! zs<|MD=_rg>N)C4^;~t8dY<}Kb+vjsYy1v%qk5-$mwLCl z$r&2&RiE_z@2gwXAF4l6pHiRR$m41rSM#`<$JIQp=5aNTt9e|_<7ysP^SGMF)p=aa z<7ysP^SGMF)jY1|aW#*td0froY93efxSGe+Jg(+(HIJ)#T+QQZ9#`wQTF2FNl}l^q zqDoX-byQa^sb%#&wW3zlDb-VbwWik9_tk&rdCuoOcBu>0y_C-*zSZ&V1iqcXw-fkw z0^e%*_I-Rifo~`9?F7D^z_%0lwuWyf@a+V?oxryfy3PT7tK(Z8-|F~Q$G1AZ)$y&4 zZ*_dD<69ly>iAa2w>rMn@og60X7Ozn-)8Y`7T;#^Z5H2V@og60X7Ozn-)8Y`7IS7X zXBKm2F=rNYW-(_Lb7nDT7IS7XXBKm22fdGjpH{c3&!|6Ex2eyn+tugP=hdI6FQ`9N zUsPXG`_!MQFRQO8$2GUL!fmZ^TPxhw3b(bwZLM%yE8Nx!x3$7;t#Df_+|~-WwKDj1 z^$qn+l~w!I0dvVBHMX&0yUO*3Dqu z4A#wH-3+%Caa$3$)ixK_HW$`57uGfx);1T`HW${$!{c~(++0}1aYYzPrG$byLC^ybx(VAPkVGvdp6C)Q~bB5s;B8{ zp01vuE>oAQXR2RT&r-jlu29cb>;odsA>te&&LQF)BF-V=93svk;v6E*A>te&&LQF) zBF-V=93svk;@qYY`E_4)L5Mh~gS%P>_hb}&3F_UtX-eMY>zmbE)Ngu@Z&hzoZ};e{I% z2-(mj?lxk-$%uWG5&NqD#U_2ufBU@pf=bQO7ky3b(mr4ROnq7XB-8X&|MoZPZ`I$a ze^CFZzOKHZzNxXW)s-#k5b=1F=)!pW5()X#on(}p4{ge8R z`mRci*1WIBl)qc|vs?GGTlceD_p@8~vs?GGTlceD_p=)<=FnmeE#}Z-4lU-;Vh%0l z&|(fP=FnmeE#}Z-4lU-;Vh%0l&|(fP=2C;Ei@JK#q7C@EO{F&NY+tvldu%*e7xiRa z)RTW;*v|F+dFr1tZO_`c)rfzq5&u>r{;iwl?YX{QrJkpLRb8!qO+8<|K&58xMH{)yEiS}%Y02u-L<~HLS3h>SE;#sm9ICbSF6)sNYiW zQ8y`{d33oIU2a8}9J<_!F1Mn~t>|(qy4->;x1!6fI+|;AG^fqrCw%XC(9v9@qq#;$ zbB&JX8U$(}Py>M)2-HBJ1_Ct@sDVHY1Zp5q1A!U{)IgvH0yPk*fj|ueY9LSpff@+Z zK%fQ!H4vzQKn(M)2-HBJ1_Ct@sDVJQL7>|Z z=r#np4S{Y$pxY4WHUzp2fo?;f+cu47!PlZXqQ+H81?s3Os|hu!s><441gaxYh(I9% zg$NWPP>4Vw0;L_<-FwL_AkYE=Eg;YW0xclW0s<`{&;kN2AkYE=eGP%WfFNk+jMVx%r2xoS=wLS-OK1r zjG_~Ih?AT7|L*Lb=5{$f&2~S?MQH|-c{2C6-l1o`L(jdXws6Wlep6@k9pnEI=DTB7 zAhE`wXO`k&?)6UNU92NGZhb?~z23Qf-q&Lry&Z02jYH2Ghu)6wu|~gS7ln&Az2%Y3 zd5{mf=N~r@GVrgS2f609wlBNcZO?td^DdZW zd7yEr;aGpDS7pik!{C-#{}0Ui5VL-7R{b$vrE?vR$1^X>JTCKke?uel3SX~N*Q-}% zUXXc}xe}9Aj`bPB*-`}J@o_V|d0Do`b37KmLo|yTXJqiEZ+|?({UH!JX zt52A_`fYPpuNb&8v(Mbbr%~@csP|55U_LPL^2{F%{D!(A^W}k8XWoi-E9NHjfSK2C zdz*TXx>bE9^ZK)I%)Dy*z10&kUo@}vMSGOKVEc0B+Iu`K^ZK3p)d6)!=JkW;t6k~> zbuV>qb)mX%<^_ZIR}WARR2Qj>)q~W7)kD-n)x*^#>gUv>)z7QPs>iEebU#l}PgGA* zd(@@oC!V67s-C8vuAZSTQ|8q=!y-zTDi2(X5dx#Q5nD3p}3rJSVX%sVz%t%aYfs4Y<2j+6YYBW zB&lW(XML#^Mo&>swZG`o%$_~n*Jt>88E0_0y247NEA8(2{Ehwo%CGw?(=$ir2VU+~ z`wex2o?ZHqZqogUVyUJf)vQW2t5VIXRI@78tV%VjQq8JVvntiBN;Rv_d%Sx+>#Fp! zD!HsmE~|R`Rmo*la#@v7mL-&B31wMAS=Li7>nWG@l*@X`WeH_jLRpqjmL-&BpFr(D)kF6$|m^_0sJ%CdyAETJq*D9aMcvV^iMp)5-%%aXyW zWUwk3tV#x}lEJEEuqqj>N(QTv!K!4iDjBRw2CI_6s${S#8LUbMtCGR0WUy*<|L6BH zIqn)ZHRVixqkC+0kB#oJ(LFZ0$42+q=pGy0W21X)bZ;2l8%Fnr(Y;}GZy4PhnR^;F zzU3WD*Ns)ZTTSm!=ySg2bG~L=eULFJwyW~4p*u6@IST%Ab8pr3(|gEDxsS`rpKz|w z6U|P#>Wg=O(S7~7cR$^Gbbop)@BU%;nICvHd(?K{9o04Neb^kU@!Gq(-zw$(#=ZWK z^X5IqZ<)j1#$#Q&vFhFyJ&W{_1LNn9{+D!?`Gngnc(jT~yVE0_^av+C!jj*qISMcJ zDSS%$iOk&B$aRsC>;9WZVLG>b*zX**@^70@{iSB^Uz2%)UAZ4NaE0Ahuk<{hZzt3j zncHnU3hbifUb|k8bvsKx%+Ase^9V;WqdKgv4y&uf>guq%I;^e^tE!5s@xEic?-=hp#`})(zGJ-a81FmA`;PIxW4!Me?>ol(j`6-@yzdzAJI4Et z@xEic?-=hp#`})(zGJ-a81FmA`;PIxW4!Me?>ol(j`6-@yzdzA>#SCEP+bJ=X5OZ5 z^xWR-zkkGTD!+?NA9ajA$-DSW$LzCIdQP<64hHOW;9dNVuBK~Vs;h%JWe)0;?&Or? zxa%11JBIs?;l5+I?-=eohWn1;zGJxW816fU)16CJIJ&;$H(guScl`DpzkSDV-|^em zd31Fir*s=#iN7oHcP0L=#NUDH_ zcU<=!*L}xz-*Me{T=yNjjWg( zS&`~jB=D{T-j%?+5_nev@0wHSO5j}yyeolsCGf5U-bMVb1m2avyApU;0`E%TT?xD^ zfp;bFt_0qdz`GK7R|4-!;9Uv4D}i^7FH6$nlJvMPJ+4cS>(b-8^tdiPu1k;W#+9yd zrE6U28dti;m9BB6Yh39XSGvZPu5qP1^xe%}4!V+IS2FBMhF!_9D+QiP9lq5H&(A#1 zarZpO(Q|dmj_}O6#*2neS$baK9ma|||Mi3;@r1FW?Nc_pbrh%LMA!H*Z+w_{to>Ey ze80KqH(T!cQ3Fr5Kk{XnD+VrC&-QOuI-Z}Od9+9Sd5`v3_jH$gT5{wrr6Z1eIBdMz zW?j&w&hFo{x#HsQJ%07>k-)8MZe2@n?Kp4wjT4(=#gto&d4@se-hTgYjd_cn$%JQe z)T92D`#9ki|Kt|m@i$mO<7|;vdsH^j{k7a*%XoLn-xBy+0%P4NV_o9@Z?j|bwvBgq zMt6_G>Av0n{3x96_q_Pej(+K?l)p9te$@#0RnKz5vmAB*C0BEJoZX;bp{`TcXD*Tq zha|%R$#5w14t0}v>wo5*MTu@mq8pOvh9tTniEc=u8XhRa(kc2iQp$$oB zLlWAMgf=9h4M}K2655c2HYA}9NoYe7+R)&C%{*%GhnD6 z6FurfJ?ewbc*JXr|JP^!(+}PHfpYc5nGgGooBYO${l+^y&!?a9TOS+zSmvG{>mo_- zy3Ci{!;6089xinc?{g1ta}O_Z56^WEPdwuu{)@lrVeaJ~?&X1Y} zc!Ybn)IB`eJ-qvjdpO76e2KsLeD`qq=HLA2AG(K&GcWYpPxaeB=eN_V+T8srztpGh z`pgS{9>FJjK@p=)`z-> z2W+zR?hI|;9%g&%S^XdxkNA8Z+59Qp=epph%H~gFemdZ%Lz_RP`@-Mhr_s!xU}}V^ z5vE3%8ewXLsS&0|8EZ{3HNw;gQzJ}`Fg3!|2vZ|WjW9LB)Cf}}OpP!#!qf;;BTS7j zHNw;gQzJ}`Fg3!|2vZ|Wjqo#K855QnSaXI3zNz>8@8FgC*2XuDl+*t`VOB20@gEyA=2(;`fZFfGEg2-6}=i!d$1v$MEhL-W|ic zV|aH=j{dQ`{cL_F(?pq4Vtn(b^r{P4KjktP%E<|4%wWa{W*owdFKxZ+o43G>0%jC2 zqvn{bW5x;0h%uupBcH^LZ{x`YB8?={NFt3S(nKOnB+^78jU>{DZ(oxN)7^I>sW8gCO*yCDCw0{)bj3ZVd`_ux zMEZ-QzexH^xau_tFp&Tg32;TSYe{dB^p;3(k@OZxZ;|vCNpF$#7D;c3^p;3(iS(98 zZ;A94NpF$#7D;cB^cG2Pk@OZxZ;|vCNpF$#7D;dE6^$b4Et1|M=`E7pBIzxX-XiHO zlHMZeEt1|M=`G?}*Lc=7t5w!`)-|4WZSZWhUH$LQv~%Q3WRXM`No0{k7D;50L>5V8 zkwg|rWRXM`No0{k7D;50L>5V8kwg|rWRXM`No0{k7D;50L>5V8kwg|rWa*08bnmHE ziEP!UaK)!^#iww^r*OrmaK)!^#iww^r*OrmaK)!^g^PN(eLz;l3ouay_U!H=6^rrr~mov@20`T=A-TNXkYSZ>2Z|q*pyzuWcq*k zm-Kn0XM(jh|K)(+xx??InKM0BkNB6rAFXSt=!1psWIg zfR;rOMF9~|kxc}OECPyx>;zE2B7)Vjgr$Nk1(Z#+RS?0lwa}J?Ht9OGZ9-cJX*!wC zOlHy~O(wDPyuOnZ3h3|e|NNilIp;Z#r{~>SGBe-rz4v`T>%E`r(_!x{EM7Ytl{Z{F ztT44{f7)R0%=fwQESI|Cx56L_{t&DFKSHSpI*h_=@FTBU_OqAJ0Up&;1jm2kS z&n+o_?-Add;%ZZT?}KPlc-M!z&u_TT@$U1q;uXU&4X-%27_qv?H}Ce%yS*EZV5Zoz zYkcDv-#E7TjnKCb?__q-yS~z=uk@=Ud}eE(*|K;C|L{A@{AHOtSm5)aT%2G0b|@DI zM>SmO{OR}GFt2!}iGJk{L!W&AZ!GY^Pc{^P zy%-rN`X0F=1NZjrFZlLxzWp`t47UGG8M4LYlV$wExe{8+gO@%M|b zLZ-L+OndQnLLL=;55Kd-x8C%vaDCL!Ni*I_6@MpuC*;CB?=1Ds;J4rKZm1PDzl+z4 zBh+Dp24j;>weqRry@vhc-NCyLzxPJ*j>4J#0Y}4mS+rK(zrW%MJ??L*YtMG=dBr^l zH@LzLIB`%nASOrHvS=uMw` z#rI$Fsafy$R&gJG@jKxhf7N$h^_@`eEbyJBz7zMIaPQ;N;ys7g4B0Z@UltDC&7jt9 z@RyKrgUng$S+e-Mn|o2=jM{X^VQ+^mo?rabJXfFR>hoMZoaIHSG<5aiUWNC^Kis{r z&i6u@ePWTXo5ncYr8zjpArG5}?sQ&}$>C?-DqiVsR~nqBgP#d^NrdeT*%|g=ym+OM z!C`MN@=javN+Gw3z2&pv9)*SevaI-vFZjh5+mM9c(T$ z!oL({jO&E6CmiqD#qTfj{lRrAA^cb^KRkrU`^rp zAhB_M&|Ww-NEQy#f{X0fm?GBs)5w8NH#-Q911D5F*|FZqj#oR`@oFbK);rm;-pP(v zJK6DSCp%spIR(BAr^0vOG=D!G&hUIZoawn!03&BPF>T+%;^_WxKw)ughr-`tqhUwS zcY>W^jMuw(+!c0%-M!ue_JmKvUf$aq_JOfp`@PtHP;G_$-}J}}dSq%4uC;V7bFj$% z8~eBPN>Yz3bRuz!URkPFGC{MI5N{W54O9>cR$Ec=4v3otEoRAk*2K3$oA0glnD9Gd z(7`$q?2y9M#_C#QeXZV_?sVbRWzQ5E%Kiv{@_ZURC%UtWg}b4!T5nF(n^X1XRK2-U zZ?4pvQ}yOly}43vuGE`T_2yK)IaO~?)tgiG=2X2oRd24;n=AF^RJ}P>Z?4pvEA{5o z=t(LpU0Zl1I-$@QbzVaB=N_H)6?Nu9)VX2NJG{OV?p3YmO}WU=^BvCg_+7XZE`!U# zegG%3uCBZa><6fQFsh~2fv5M;R$#Wo`R?05AY295&i^I zVVX$YjNmQ0cRo3@s4xkeo3Qx_bNnuheifsq2FppO6@|Z==fA+}=@`AhTz?#+>o7Wj z(ep8S0!B|T?|*~UQ?PmhR$pWOugC03m_6D2UoR^DfT;KbWxp>pV)g{go{!n{F?#}L zPr&R604pb89ztek|Eldy6UR!+joNmw}vD<@&)B&?i-m6Nb?5>`&a%1Kx`2`eXIr(^wete=kc)3JU! z)=$U!=~zD<>!)M=bgZ9`_4BcQ3f51-`YBjH1?#6^{S>U9g7s6dehSu4!TKp!KLzWj zVEq)VpMv#Muzm{GPr>>rSU(x-Cu99&te=eald*m>)=$Rz$yh%b>nCIVWUQZz^^>uF zGS*MV`pH;78S5uw{ba14jP;YTelpfi#`?*z>4ip7c+pr)pM%-`Wc4zvZY?r;4Qb!b zS~-y)ak8j4kJf4dCnuO2y}r?FZe+}jF4Dfkw>wDqF7qL09(0%o9r)jY|7pDM#`6yR z?!fO3{O-W%4!rEZ$qtaIy<0yKu4#C%bU6%eZtKmu}ap^WL-NvO`gmtO^dG*HQ?|Lv#A2!m53+cm!^5u>4 z<&E@W=#7RRY-p)2<2}XgPI#N<9UQ?FIkdtEHkSMkv7<7PG`_S5ifgWR%~qqAGI}Ya zmvZg*j9x#9wT#4CW)xFKF=Z4}Mlod+Q${gm6jMeqWfW6JF=Z4}Mlod+Q${gm6jMeq zWfa#L#dSt;ol#t86xSKWbw+WWQCw#f*BQliMsb}{TxS&58O3!*ah*|IXB5{N#dSt; zol#t86xSKWbw+WWQCw#f*BQliMyTHi^&6pnBh+t%`i)S(5$ZQW{YI$Y2=yDGek0Ux zg!+w8zY*#;Lj6Xl-w5>^p?)LOZ-n}dP`?rCH$wep&9dM@Cwun=vUowiK9s2o3ZfUK zMyt|{87>1og0;C7Ut(+d>uq3L7|DwLq{r=e*P}dc4^_@B-2p!3`DoY?b~0`|dmO{s z-PQBmJl`Gm@O)2?pN74R{@xz*jF@cNsDmF35KH2=y^@OWaOz5FDfSF5J{ltOE{2nHKJ$;MAtq}A|LA*iCK z&=FBpB62pI17u5d6pVw%3Jasp!{6X#m`z_c!ZKI^=1XM^^mpZvaF*xSz)wA&0C%d4 z@uph%@38U`R$8}17IM&O)%9-*ZLw#qM^KwSrmtf!!z=JAyauxh@5E-q9H=iWiM{1< zE;K+R%!ftf@?wum3i070)5Bk7o9t3j;bht2_RwruxDm7Zjs9dKoi@^cG{YB(4u|V! z{;-+6&WH|QQ8v5qXxVa6))GBAOr+rmJ?ShXJ)736ZF=-=JsA4^S<&M0qQ&2eoNrIU zopQNv;<{>?TGekQ-z~vpoWBUq|LRVjbSDek$q#Y-E*!7M@oF5eE*ZJ;K^*@)j>mAk z8po?ksy5zNvIBg|^U<&)?6fh34 zZM+ZftBuOh_+DN9&5hr|_i7_^5WZI%otw)~^0|}Yl)}#C-}ZQO;U>1>jper%ZY`f! zxE1eX6`74Gqc$e8u5e7$302X@Hm33XYk0m_^kvUyZ%joSVHvEji@&{4QW@Krs@yH8 zs@z?6@5n-R)6-T@P>cgf!Z0aL1`?0AHn;s)E`?0AH zoBFV+6`T67sSlf;!KOZJ>LV@tF-ffr>sIXLvmUL}dbG4T^PV+l#cIW6_V|>kX<`m7 zDSOjnU7?56>?xaDc)M&KEcE=nLLWBuVN)MA^^;WPqtU7wy=b>>nH8{NxOb5=*NP7(ypJh>%)LP(yku^ z`Z1sn1Nw}9uaSSz$iHahUo`SB8u=GVwl0#bi)8B}*}6!!9!%)NfB_8X!+<^v=)-_M z4CupvRt)Gf>Rm>CfJEyTRejUCtRPrb`kS(g%l8~MX4shFsjcrH_M^yQ(HkpwAAZL0 z)bP}H_kQB&EynnF{D^(GyLS+~UO3|JT`%1F{%yWA^7&7mvE9Af%^y`hs(kdAQD53| zpHa7Mzs>fCZU3X~Q`@ITA5qm-wN2GSRc$+r-r?vS?jL=Ge`9v|$EQy5Z%X)l5PO!7 zp15cEj{Ep`&W?BNw0-z**UU~w?{u+$xB7Sgm?w9=aM#Rk(LHwBW3N5V@bAJsF4^PS zJ?8FNzUQfXHhg;5^M-x;8=r0(_xwRe9K7(5ScpSrf9}vjPdL2#$T3IO9C`ndzdL%& z(bY$P`J2yuv*DYozL`C~^!VuUTOL31_#KWPbNrsi?|b~g#~*h5@h4q>*-@uH z%s(S>ZuR#*ao(`=K6l=6=QW)FrSl&@|M4rHyI{KuCSLHu1+y<${Nwl~rI(y?$sLzQ zFFpR!3orfMWk+4U&*h)H{OHTix%`UDZ@c`t%U`*C?&Zrb&tLJmD{j5w(JP+2@`{iB z>$@HxUS+rYk_aBc&%b) za7)FkiaEi=ipGjX!K8|n74HVM6>Sx3gUJ=`6`A0^itdVh@Nh+8*s$RD!?ql@W$?#g zyAInk_|veyVST}~k+G3ug6AT~MZOa(3=Rs`v%kBnQ0%rYqBqz%=!1efD#NV+9AQn& zR^pB$MIApWrnp_9P*Np#u>kNaK*QXR-Hg5|Rt{*u#7!x@g&I!guud_N>{R`5% zgl^86o3kt5v4Z0_h38|>2HVA+gTFe{U92-E!(c8JNZa}5+|r<0t72NUjaEgpYA3DQ zNvnRRRaIK`XRUfot4g$HxYi6GYRwi}^Y~C}wi#;8wpz23)@-Xa+iJ~DS~6Tqh7Yx5 zxRwmplHpqNidIClVzgF_){4lwxVuhj1&*g9LuN^ETf*fy{&Y)40o^0+;G3P!_@u#>Uc+2fePMEYPFeUP9J67<0h z^g)6?NNDA~^g)6?NU$zC>4a%?LV^`h$AYM1IV@l~EMPIuC|g`;XDQEMMWk2}DRMtS z?kC9o1i7Ce_Y>rPg4|D#`xD9i1i7Ce_Y>s)G;)6;xqmOYe=oT|k=(z5+`oa`PmuQs z@;*V{C&>F7$om9&|0Y>KjjT_Q^$D_m8d;xUA zG#0`_7Q#Xn!u0ZqB1mcbnKOlHEaMrh;Tf#q8LZ(Mtl`i~NV5{stYKC{VH*7~jeeL$ zKTM+^rqK`6@UExQDe81Yf{vI*M@*w55_Cku2);~5+(Sp)Lr2_0N8Ce4+(REEaIl*` zNYDof`XE6cBi`!R=|#isf?@5>pda3(AEx0dUKKg|0Y4)}UT)%~ z*;V8mo_&;4MLuof(1GlW=h+ss*cO+uEly)woQ6wz+?aq5Nxym*8+siZI$WQA7JJ|a z?18h`13zF>Phk^W!X~(~57e;->evIbjQs>-J;4}H zFvdw^oTS&+(CcfAZPFdrR~%UQM#VveW9jA7^xuH~dq)2~qyL`Kf6wT@XXx1H>DcG# z*yrik=jqs4`Yoxiex)*$ItJ!&)a=M;-CO#pT?-dz;Vt~nj8l$3q{XcTVS9?ZCs>mIS{sxiqAc|+bh-_oL0B znWWwrcfS+KH(CoW!P0%rk)OE3@0bf07p>z}g*tb6xVzlR{+jSEdkYT+eb6sTSCHGP zlz|-X&PNn(bH`Ij!y3}ChBT~k_j{0rHKbvUxWXRd3VV=>HKbw-P#Z zq-hOldK+n4Lz>o*rZuE#4M|!=;k7){v|<7;--;T0??9K!Vngpfx0D4GCI< zF*lK*HKgZc65&nUo`W@KV$JwqcapP&wvUk#BT0#oSTl{L-x_27f-y6PG<}q&j}}M# zfWkBEl^9!PxEVi^b{|f=4>#LK((F-uzn4aj;`mFn`L?wAwzT=SwE1wnUXRz?;B==u zeq+cUiP7XSd~R`fY1UN146Bf>-jakJfxBB-alM!P`~ih$N!WH0b_F}5i;dC6+nQZ| zMDPh$Yal6Ckd!MT=eyFKG|-#ob5)_hr7PqU0+6$ox$(=zPs)xt!9!|GfAtN zq}5E)YUaO?@nQ5Q^pl>W`@|QuYJD;4Gw2DgHNU%xQJ=whUYLjP@ar3bYeCoZa0hD&Ej^mxV>y`A!{bLo5}5F za(huXraY#BBuy4|d9 zFV{Qe!yw|l;a-2O&~0XSo7vrFcDtF~Zf1uO!?c;5HnYPhVb<(To4ws;Y`59kZMJrs zt)a}$o2_}XHE*`2&DONpnl@Y0W^3APP2+pJ*&1r1wAq?ATieanP$RX9l&m+-4;kl& zjPpar`61){kXhU=N|F^N$&&Y3GrHZ3Za1Ub&FFSBy4|?HY(}@!0~zB#$BgbaqqAmo z+PND&GShsc($`%XcLdBJl_F6 z%%|=lK0S+1-J9_#y&0cg*o;r}@u_==PyZ-Jsb4Mhmdz0_agH}jBv&S8A&%MqFF5wf zM>zH@jj=h$x^e7TQM(s$>{%R3<5;@Lv0fHUAB0@%FU;MHZ|Nbvg;vZ0oa^3&CUYxYkWetfeK^(h_T<*NMA)-0tqiwQgMN#&CV2 z&A8T$Yu%f1Ern|@;@T`+n}ut$aBUW@&3ZrjJjl6MaPAeHoBMA#mmcEW{2|MzyJ#7G zG{*ZqOt?#2_a~&lA!4sDd?fbzQ+C0PVXRee?O%*#hH=a=h8e~$#VsS7$0j$$C0A_h z(bAG3%V>1vH5)sIVveVh@73=5`)0*)@5c={j~PCUt2Hd6i7cauX2-vZNRK1?#*uyF z+<61u9)`DD;_W!{Z=8tqLJ{eOcsq_997hh06Oqp0?KpDqI1%YCyd6gljw1&T$J=q_ z;5a=HMx@7)gX74-n22-^Z^!ACzRh~&6xPyRdL>+KbqZ_g6xPzYtfg~@BGeZRMW`>* zYuB=ru3;%%#WI@68k&gXEXCNt~gSq8*_L)jw~HVmL7xG$B0Vj zM5Pzv^|+y^^thp@^thp@^thp@bWT({7mlu|bdJUJa~4w=mHs7*>5=k@9)DGM#2naC zbUJ4aoM{f6X%3wEAvQd=apRD!97d`)id5%Bs&gXMIdkEtB12*ubMLd{$ig_0>Rgd6 zKlOY93`VL?H7AZSCyq5Ijx{HaH7AZWCyp($X_koe?80H@!(l~cy;V4i3_gSm4kOj$ z$l!5Bwk`JfL8SUBviO5YHLsy)S#8O(8qKmAjd`JE^-0q5Ut3ny?A}4^YD?DD2-ekT z*3}5s)d<$rXt9&%`xaIO3u_pBU}PzzHeBa=H=EL(gzFS=<=jHLkYeX)Ata z@w0=Te@_ca==%5EeF+}EN{5G;z*q6^RlFPY1Vwl8?8Tzp7-sy68NQ%|etwUBevf{B zk51l{#e0dYY{Z`~{K?@@0(TPRW|+x)kB)wij((4heveN6H`%(Op4pVG8?r@lVKy$z z#)a9qFdG+U7ki9HSnREpa$Bnky>#t+^lYR3g(Fx{Va|4>oxyv_nO1w0OVyHeF&7!; zA;TP`+#`Fmm<#laZNU~SwO{(iuS0u?y&0Z@7-wJpg?-t?zRa;NFJrB(syMK4R>eWM zx2o_1*Zbf6mTL|azqzez{lc|+-Q8oZH`Dc=cfIT6|H75v;i}0x*Syf3H<{PH?tX*$ zyTRSJx`*@J!+DXlg_ZhM+*Z4LuwV@atnI<#e0;Cd6D zH{o{^ZZE>^MXs}Wh~MD~*KjSx5}a;gYj)84O}N{Ht4(xz6P`BVWfLAY(brA%brTuY zL`F5y*G+7~CVD!|n&o+BSvob$-ZqIAZ@S;XRu$Kkf9yVY^{Mqn;Togxs!_PrD7UzK0<5zq9YG@(V`?Z(++Dm@zCBOEPUwg@~iKXjz@p8VE+K8eE&(L>IyZ;QHhP!9O z6~T*e^Y(B?8RHa&_hZ7~9Q>Vch1FkP^sN_tt7G$Tm34~LkNl55nG3cEKOIV2vG$^r z4W(ygf>dpXEaadw7-2U;I0{?2+b|wJ$i(yz6W95bs9zc8SB8<*!`yX~yY9oxcm3k9 zVCSLndv|F3!d+W08^800Vv6St#T2jei^cs3#_wF?cY*P{;QjH-75-#4{b^_%-__&q z>gjil-5JL2488rh-hNzfKd!eQ*V~Wl?RSmaND^T$tT>=3h332Z0{ymW2XApDzAG*? zW__f>Mm@hilnQ>i-Y?f{ODJjcK{#i6^g`a8=`m+|uwlTw>G5mx%#R*S7;s+$?rXq2 z=`l}w%#$ATq{lqzF;9BTlOFS=$2{pVPeN<2$2{pVPkPLg9_`3$M_xPf+L70eymo~7 z!5$J|(~j+9v1G6Uc5(f=d(64VR56~h#yy5CU7^LRePiiRi^G`h60Phm|7LNN)@$Kn zEnMu|Z~OKu#W@;E?!C0M)30pM(oQYy)Y32$@NcUbXnm*FcWQm7d9czvSg98}^+Km! z=+q0HdZAMdoqC~DFLdgKPQB2n7drJqr(WpP3!QqQxISNp;_G$d!M`^nv^=ZjSuM|Mc{coItq=X|totd>4!w}o z3t7F8)eBj@kkt!Wy^z%lS#qaaYqQ1N)7?eQb`Z%C&YoinwZ=c(c@gdwnQLTkHJY~= z&07K+^e}w5`%)*`{fBXi1-{KsFWLk<8|O9V<@%zn_7;76i%%{zx3~An`(>cR%vk7M zkFbwrFVWVUc^19A;H=0}#^-zedY8!329c$3O;_S09&sbjqJ?MCw3$a7=Ml$0;t_Wa zdBo`=$3zi^A}pJG#OcjE;UPM;*$Nh^F&__MO+5w%ch8nla$Pz4s)l& z-03iPI?SC89&pzBtE}i+MlK*D7m$$)$P7hcT6h30JbQy=g@=P~`%dI_f(_7X1#KVXJ?~csWx(S<>A65$u>{JX94ZRulnnD2fvEXYNuI_$ zAI{d^l#|-Zu9uN=5Y=q;e^F(k%vqPBq{%X8U6wiP5-T1qd)ebF@G6A4sTm$;!t3Cq ziDIs5PT|R7zUnRSH9(`)=kq--068W0{6N`KkN<#WKD!*O3@%&cb*GbGz9MgRBzzUV zM&2I-$H6xXkDKf575am%K46rm8Rcn4d0OQAg(Ta3AY$Er#G3zzvpyrv?~E)4dqv2F zWF!IqbOy~RCsR0`BYLpsUjTVA40)0q%fy@jV?-Y|q7TRZT6jJ7yw`sNeG$_aF@0gA zpE1(U80lw>^fNJi5Sv+8%B~-9vd(%QO@)=r!$~mJk4cFRz5JA3epfGt=ihzk#27u? zqc?lPICR+(ns>Q%hQo0D2xqz+Wewudh2>iQB)z$mHJ#K0>+LlP_hl7#YVmGo$OF9S z?!(w@mc^P2B@nyTibr?R=`M2a;IHnWCAh_3mSEHdOj?aetFdSai8L2Wda-1QZ-mjf zdE`!=h(?`=MxAdzMDB#Ep&H1YIuVUJ`JTtgoyWvPR9k*IUqpsxB5ZViSd)x=cy6(O{x1Z@jY2ir!R?2)Rj4X zsf=_dYwAQM>O>~$STJ2=O`XU@oybHTU0F-kbdfcEWK9=Yvzp#qEizFjGEpb$_BdHn zCo)k-hprZxsH074$(lN{rcP8Mv{S;BPPL+KkCQcZ7`Oxjmtf!$a;Hv|w@#F|j`pdg zeQIf*T2Y4v+NTyXH(=%x%xuEUCd_QY$|V@L1ml*FL4PBI{zeA&O5**rGv2)=2;)nTl9^nHiE@6g5$ZA_B0Npdzx&L+v(q;_r4t_`m9zmi*_3>lIY;k*y$ zdN{X>_tNAZn%qMV3+^55`?qxtSaUh|ll4pQnS1Y=d+%v;vA%&{eb=vcTB9?P?EEA- z8s<8x%(optt!!5b*LdVysaI=PX>F_4wrXvY*0y5e8Z8ce!qPaDDVdI0a6H@4#trI$Y+Ylgr@>5o)K_M6ZIY zp$4vj>kCguZ-5)&XK*w80&am@;g^M{)p{H0Ztf}V3ChG2%Aumr9ME||#2(NnRC>;0 z2!?z71Z)9YdVhq+t-Qar$8BI+YnDcO{3L8=ht(*L+d~!X0H5-m(Xb=z8=?|x!Fc2EWT!vT8jGu9e?7Oag4 z4g?lxa4;NVH}mJ<^KfY4mEa5BI}E*u`!Pns% z@J%=#z6B?My}#%lnaJA<(m~;(X3)jI<^v_RS(|I_7^Kb&^ z;iy-$JeUAC!Oy|jIDxZq0%zj{x4MU4!bCL?e&zMAjmcnL$TcNxw9Hx>Il;mYcc`RE zw+v0!A?A}Mr*f=gHDyY_Qh2TOC>2h>>hYMuJd8fL^y^+9?^L)Gg0ZD1dM?(5;g^*< z%dzxqug~>2=QoyKP?({@YaH`0EB#@izVt`lzX+V&SbCZBjt0+3no)X{6MnB%CHuPK zIZ17$+EuDu>gcQ~y~QsMn9d@8I|FIM^$r z#!jmADR>(G0MGc{Kf>Sav^K*kM#4^oc*P8RX=Z|b&K0wRtt;jflIriI)Za;|zmrmb zCsnZsR>~)>_W5_<-NKBDHlJHtc%x#SM`t7t+qIA!wp*cXSa>$mo`vPZ`dA`k#m@GH z{h%85hXdd<@L3T5i`aGTe2P_(&x7695xcJ=hk=Uj5f$B?PqE7R6sw$1u_~gXdqhR| zh>Gscr&twH(LJJ~dqhR|$hq*nLUZIi(D#uG*>^t#eIL1~FgJ2B{1`5QE8t4+Uj9KH-+fg^xF5j_g{6wV4sM85{dz_IXku(r`zA&IE=sscwo%>LMs;T!)tzlr zceYX8*+z9|8`Yg{RCl&f-PuNUXB(q`hQGkG@SIh3FL-7R-ftFdr6pe<3V_#jpgdi&b@LM)V)h1kLa^tb|pt8r}gi zE7}6Bum;*-EzkqeB&-AVXQOJ*sxOvOUn~{Pfr?h@i>1^TOQ|oGQeP~kzF10qv6T8^ zsc0VhVF3OK8^yr3Qpx;(JTuISqW}Ff!+KO299H=spBW~m{NXdh+EmzYQ(?bNh5a@a z_S>AP(pLEm_$C|=_GDF_04Ku9a7tlD<+tHf_zs)~r^6XA9?phy;9U3~oCiEm)ud*q zCN)DfsTrzC%}`BhhH6qXRFj&an$!%{q-LllHA6M28I{+;PvCmjy8&*3pTo`Y3%CVt zgq^P0*Y*Z|fPtLWAoTW-f; z()x~dkOFH?Vj1YLN-hgI=!EsqRhSX$2J668|C*ut*Nj-7-G+JShXMF!p^+7T>G0d- zMDKvV7m~y2xZ&o%%I|xqgK`3JqaET4Jg!%jslqP9*@Z{MO1dKUWk>AGjvNPH z54MVYBiJGGP0x>qZ+U%!9StXXeiEDvr+^HpY8*M$IC7EGeCBlDIm7euaHiMa^_{ak zKVMaj2fThTcslY>Fg^0H=Tkg?B=~#edC&jm`3v5EF*qvncdw^={gS`E?Dea`7Lgg= zo9VsRedZ1C&GLG-*K>U4O|P4SPetAi{u)^s)JL2|6It!`JHbnlcZ0c+7Oz`_Z6fOm z_eS>(eihv>xIenT#{+`jMo%i-7QI%@m75A1qZ5N2qQ5HHE&A({9ix+iOQW|1TSjjW zDq=eZSH)EJjO}dK#x9=k8vG)*o9BCZzPI=H@qAy;_w#;ru$57GVYrCd@V}I7KioR1 z;m-x<4;NP${(MkA{6(3na5SFyA4cOrqmldXXat}5$Y_*DZ!c{8zkM{eG#am(3-#v0 zpUs8ExVkPf6>k>?pT(KSqub%ZNgi(s&WcWC^{`moNz(3|J=D}u;m}wvGqVzA)(pS& zgkQR=WVmR|Z0mEy8H{JbcrG)$mYH44B44-D*}4p~Ynj=#Os$)a$O&+w=O=+mUuM@b zvul~zwan~V7CFt|Plq!+9}g-pL{wlfyOz1*SKR5%?(!yVe$|~u-D%vN#@%T=dT+6^ z@jS92M>gctu-%Bd{ExkaE#|sNfS#PUZZ>w2vt66WW zS#PUZZ>w2vt65pitgL2M)KXT|QdZPbR@72f)KXT|QdZPbR@72f)KYUoHB|A0xOhTb z>>w^akP{DxiwDHT1LEQUan)Sn!F=e4Fh5i&8`H)YJPM9=`p0p>m-&(L(r*M?^CJ)D zN5)G}g0l=h|1lW{4B3aA8ei?ZR~|AcYay0Elt8!OnwDauCr+bDnAzOb-t zwA`qBD3d!Y+a2~Oyjga7;SH5u;v%VWYZ)`vGG;_m<5s_SSpD81ni&_(jF%tBr`x%( zh>sT+v5c$u5+7D>&EQ4+fQ#YBa0y%rm%|nCI6MJQ!c*`x`~jYUsli#1w}O2lbA#&0 zyr3%55L9B~k0XmbUjoa6T_a6F72hDvH;D5M;(UWR-yqI6i1Q8Ne1o`(GjYrvBVroo zC&c*)aehLapAhFK#Q6zvenOm|5a%bv`3Z4;LY$uv=O@JZ32}ZxoSzWqC&c*)aehKv z1)I1EHc1t1;wsoARj^5_U=vrtCN7c}=SRfxZ(3}JV2ny7@z?^fwxq{(kb*R1?2y0D zI*XT#?;)a28BwQ|B8@VLNl|QyxddjxYvx^|{?(PkFvi!(N_S)od1~i?x7^ z6b3B_7W!K^(2lY?Ic%C&5*3B36t!prE1Yq@1G5_OzC)BEjbZ=5uoE$?5yM85ehcGH z2)==3jab%bZgiBM=Djo23P0QH^Sr*Gcz%3Fq#|3ov9PGLfLSHjQ>yw^8D^D31z8)WJs?J>6H)4s4jEC0jHp9K)FC74 zkP&srh&p6M9WtU08BvFfs6!@l6nqt&7a{795p~Frgc*`BLlS04!VF26Aqg`iVTL5k zkc1hMFhde%NWu(Bm>~%>Bw>am%#ef`k}yLOW=O&eNtlr<$jB9BL^LuY8YvNtaDRQu zY-}_e8_mW>v$4@^EY@W*8yn5WMzgWeY-}_e8_mW>v$4@^Y#f@6)n?!%f_sfP$Ms^ zMqXByGFz;z^pbi)FT*SFD$JCdUSMBql9jya(6}BBGidre8X*Q@I z2PIj2NRoAsWN(vX#}Dbstw^zB-`AC)6f?r1&LqLIw0tPJ){tClNv^ph*Bd0)GLmZ< z$+e8+T1#>*Be@z#uGdMf29j$Y$u*DUT10X!Be|B6Tn!}Ge3I)QBv%K?wTR?eMslqo zxt5V!b4ji^$u;MFy*it&RT-M(>L9r~hV*L_$<_1`{W`y>Uk4@ECLQ}8$(1F!vLsiQ zmHt1lBhF+;j3v1~Lvrm$ zat$ZBE@DUQM{?~)a_vHL?HpNQr*~7Z-+yRN?E3$ZJ&_)=C(6h zxSq7R0d9n!!34M|c$kFAk}z2kCQHI(Nti4NlOFY3B3Vs zgrC6#xCwp^H^VRB7WlP_T(?*H?F<VL;wzK;CCS z-e*AGXF%R(K;CCS-e*AGXF%R(K;EZc-lt!-dcF+({E8Xsvdn}=m=6nJAz1q;Z__UZ zIv@r*AO<=h209=HIv@r*AO<=h209=HIv@r*AO<=h209=HIv@r*AO<=h209=HIv@r* zApX`b{?;%4)-V3nFaFjq{?=cq4x0E|zxZ2!r8;QhZ~fwL{gvvVRjPwlsSaADI%t*Z zpjE1aCjQnh{?;%4)?cX(TBSN@;&1(xe+H)yiof-Xzx9j1^^3pti@)`Yzx9j1^^3pt zi@)`Yzx9j1^^3pti@)`Yf%R3kfW3cWTkFNP){AYe7u#Adwza-ki8nkyU^y-}sY$%4 z=JX&tGbL}+f>w#bmhdSU4LgE$4Z+@iVL#_RR>S_lj*;C>$nGX&cN4O^3EAC*>~2Cv zca@B8LPj@%?akQUjP1?X-i+o zj!x#g98`{#S#2-94z35+GlRO!pw?2-(kyB%y;nB&xBm73sOoA)HJee*W>m8o)oeyJ zn^DbXRI?e?Y(_PkQO#ylml@UNjEki6mfkDZZ!)Uw6(eCrq1o(eu9zh&$}%v^n$5Ci zv#i-HYc|W8D^^;eED9@Y+9qS#E@Rqm=5-D06Jfci(8I>>VdM9(@q5_zJrO65v+a8# zP9A65_pt4I*!Dea`yLvvhppbjR_|e}_psG_*y=rO^&Yl*5Bt1_ecr=9?_r!#?j}fA`2nt(T2jFB`R9 zHfp_W)Oy*d^)g9s%Ot%mlk~Ps(%UjgZ$}@7Dewq93crKj!{hJ-JPA+1)9?p)2L1?t zf~hbK{tSPCXW=<`0bYc^!*qBFoLd`JS0VZu%%p2xhc`eK5SgTetWiSNC?RW*kC9YL|5=L1MWo1gGl_@ex$;usJr$TR~ zRVkHYU>DdGR2r$=6ZQg;kIMZ(G#m@Z!PmihTp6Wy8Krg^rFI#mb{VC18Krg^rG$)9LPjYeqm+& zyNpu1j8eOdQoD>&yNpu1j8eOdQoD>&d*!d;zCssm)kRx%(N$riQA7PZM1waFH> z$riQA7PZM1waFH>$riQA7PZM1waFH>RnCV6un-o(Vu-_1P%XW38CU}*Ta=J3O2`%^ zWQ!8AMG4uW1WlQxDYKQWKDP$iU@atJ9i$))8R&rZR;gLhMx(aUsI4?=D~;MJQ`FAt z?BRR%@I8C@o;`fe@JyJ5tWZK$C?PA9kQGYE3bn}!waE&#$qKc}3JsnD5biAtSK+@^ zK6qllobt({Wa0TB`>6Br!5JLkJ74zBNh*Jwqw>d@#m}7Ro%6hNxpywHGV$2LAB+FL zRs8?C;{Sgs{{PqF|MkWH|7P{#(N@nM>kQ}cJAd+9N83GftetFoskTrp9ygqST+2VM zeG@dfW42IAo~@p76p zPLsxI(zuh2>a2-cACR=cwQwB_R%fZTYPYszD>mmy6;ihISY^k}4j?XSMPR&StoQcy z$Qogf?!%VZhdsIv`?H$;SzU63RgXu((S=7!jce<>%Jz zv9?fWtz(x}iE-L5&KIub3)k|6Yx%;peBoNYa4lcBmM>h(7p~<4-^~ZEa4jFWmJeLZ2d?D<*Ya2I=C9t(U#;b@ zp2S~0iNE@7Yhbb~w!i54f(;zN5e3|EHwIj-yC1^?kH#Lj&io{C}-=A(xOjnI!o0Vx}%(-JIWcl zqnx2T${D(&oWMHD8M>pKp*zYMx}%(-JIWclqnx2T${D(&oS{4Fzh{|?Wc>Fm^Z%Y@ z{;{*nOYY*CtmT=k<(1?EwKc>hH`s-e7uR3IOUdz4a=etB7-dTQv0nVKUi`6M{IOpA zv0nVKUi`6M{IOpAv0nVKUi`6M{IOpAv0nVKUi`6M{IOpAv0nVKUi`6M{IOpAv0nVK zUi`6M{IOpAv0nVKUi`6M{IOpAv0nVKUi`6M{IQcCCt*9;*BZs#*}#DBJsw0@y2@b z#(MF_dhy13@y2@b#(MF_dhy13@y2@b#s=}m1~JBz7-LF|v0jX^UW_q}FV>4M){8IJ zi!auTFV>4Ic8Dvc#T8THiVeJ~wY;jeysEXlsLkvm!=ceI8Vmg9xxcwsqSSdJH#&uGuWySikVtrY$zN}bZN~|v>)|V3NONsTR z#QIWVeJQcNlvrO%tS=?jmlEqsiS?z#`ch(jX|cYvSYKMKFD=%W7VArk^`*u7(qesS zvA(oeUs|j$E!LM7e@lzMrN!UU;%{m3x3u_MTKp|7{+1ShON+my#oy9Atprai!P83c zv=Y3m1TQPW%S!OF61=QL<$Z;Q%KPEB@Blmr55dDQ1s;J%;W79f{2m^MC*VnV3Z8~P zfH@^b*C0mMAV$|9M%N%l*C0mMAV$|9M%N%l*C0mMAV$|9M%N%l*C0mMAV$|9M%N%l z*C0mMAV$|9M%N)m*C9sNAx76BM%N)m*C9sNAx76BM%N)m*C9sNAx76BM%N)m*C9sN zAx76BM%N)m*C9sNAx76BM%N)m7oG*Dab%?!n1c$IRt5}*(HRbv5M7L#cHf#HCC}2 zt5}Uyti~!5hiq%+Ed0VhYY`Ge)Ukbh#{M35pp9be^(f2+6K&03W zv-LoY9=KW${6-Hvq6fyhhp~EKtR5Jv2gd4wvF_zOEj&RBE-Bu@XuEoQ?BMOO*0RHz zg_Z88L%uR6+WE2i3f4OI+L_ril)KA_B)?xfp+ZiqVl})Yx8^f;0`}Mm*kdEtks(*>i?6)X1}e5(5V>rT{St*QVT=2uT0!f&6rYW$A&w8FJO<{UO3Rof^or} zsy!ZT^}w+z4u5OoyH*N(rsQ0a-Sgml&o6)uZ9GOk^Mb-G<5Vf%d5rdMkgHr<{`10T z%YR+?e))aQyg#sTh!p_`%2OT_TUGd?D}Kd$<=ytHQ)0ibL@X)UwE=`cp`In!tR@4j=p#r{K1=wM16FS604P zR=!tOUY$hP5yrso1^dxqPdoKL4SN+HV-3H?626Z0n-`}~iqj{>>67C0Npbq5IDJx_ zJ}pk47N<{((I>^|lPu*HmU0VAxrL?N!cuNwDYvkcTUg31EaeuKatlkjg{9oWQf^@> zx3H93SjsId|BVJWw;lv`NJEiC00mU0VAxrL?N!cuOL zA4sv3^DN~&OF7R{&a;&BEaf~)InPqgvy}5J>_sZ_~vbe7+J=^02eBBE@|Dngr3VGIdUY;T;PmyMY=UL%-R(PHj z-pUGZm9t2fI<=hjJ&X07XMN{c-YqQe7M6Dl%e#f;-NN#2VR^T(yjxh_EiCUAmUk=5 zyH(C2#rn>hJu6t?c{Aq$Gv@)8cneFsg(aS6iMO!CTUg>PEb$hWcuU2~La#hWxKBFG zDi8NZ=UL@>R(Y#@N4PJ!SGK=bw!c@lzgM=uH}W_<0Z+nH@HG4Zo+#6_saJ7 z%J%ol_V>#6_saJ7%J%ol_V>#6_saJ7%J%ol_V-5dU$(zjw!c@lzgM=uSGK=bw!b&J zJL~~_!lz*`*c9!5ww+ekcJdk?<25|SYj};< z@EWh-HD1GOyoT3!4X^PQuH!9S$6L6Lw{RVA;X2;Jb-ab^cnjC@7OrEl=UMD|7JFXK zBq?W-lru@nnIz>)lJX^K`I5AJNm{-nEmxA3D@n?gB;`tyawSQ*lB8ToQm!N^SCSO< zOv;fY{DJi*> zlw3+m9wjA@l9ERW_nqc>4tbtKp68I~Iplc`d7eX_=aA<)Wqq*M>B;|UNay?0To}@faQl2NtOUd(6^1PHhFD1`Q$@5b3yp%jICC^LA^HTD>lspfl zl?T$w18L=fwDLe&c_6JkkX9Z@D-WcV2hz#|Y2|^m@<3X7Agw%*Rvt(z52Td`(#ivA z<$<*FKw5bqtvrxc9!M(>q?HHK$^&WTfwb~KT6rL?Jdjo%NGlJdl?T$w18L=fwDLe& zc_6JkkX9Z@k_VFHfh2h#Ngha&2a@E0BzYi79!Qc0lH`FTc_2w1NRkJV;(5&CdCcN@%;I^>;(5&CVdPmF@5Yja-q<=wK^iikvSExh5L1OP7FHo#4_zw# zbVCoQMIe`!LhD-rdU?ByL5h*bXx>*j_PE9cWqfAZ}GzP+iA?eg*xvOlZ@WhZI*w^S$c>vX`T znvN~@45=kk5}y3PcQ0zZ!8%E^{ZhD&a8sS6_2s9?b`RA`imWYk`Q|#OVXb%l3imVI zqt!lsWxe~G=l(M8Z=w4O*Uc7J#+JRPn$@eYTvfah6^T?yQXMR(I#_SHIp!W4-Qybf z7vn)s`#|+y4*F1>VbEfu>-g zb+wE67fb9-jI)N9vPYL$9mpGIZ@1)mR` z%3)VSQ!vl21{HbTY0903XH$2$%dETX4c;z1>MjS|Wrw@$aF^k^)Sd3`U-~Dk|K74E z+3B14C6NQw4Lb;qgRk4;tn#iE`%PBtH(9aYWyOA%75hzA>^E7l-(-~z$bWL`u6Gv|?1Mq98gt2VS~7n2kVNs91WD~Ikktb_IsvStxWcD-Ln`-QY$ zNV}I_bAADfae;g3joH28*B&bNNqDw)qkHEMvV%|dtKYWvXUNYEO5XRgKgp)v@8=V>OIwXy zo^qDipFB>3=Sc6HwP>&+{j&0jg=NK-ty0Ha^@R%SNA1FGwmY^tx*d##ed&^FkNbN( z06ydSXW^v6mC*@SG2Nsx&d)tg^mrTG4tIEcC#X_e`FZO=&-5q<<0SPpm6yTga0Ofm zSHaa#qw>T4*78}?9{UV@7OWqQSw9-Hel%wNXpB^deGWbk){(}nBaK-{8nccx_9d{6 zG-e%X%sSGTb)>N)!CKOowWKj?Nu8wL9y=T4N`GIu5au z+|McSZ8#Oa1E<01AV(7$584&euGm>{Hk8W+Q* zU}sLu&Yaj4a3x#?S3?b41J}ZJ@DuncTn{(EjlgS;@tR}2<`}Ozb}Rf6Cc>}4di2;N zu)aNZJKOU-;>*&fn_EZO+_kVfZ}!^wz_6erfB=27hPk*S1b< zv(q+b{@Y)9$u%$D=I(8>BRB4p8C||pX7Jz6$87#@%*A7#@e7;X-QcwbuTlKpCw4vH z!~e$29y5EFkG=ch&un@Xes=SJ#qVWzo4@PtivK*@{lJg@+w&KL|8{?1)3ZH)G4|B4 zr|vmzpTC5Uga7tz_|O0Cx6OXrRByG}zs}E|^4Z^f_BZ3o2mc*-bog)6t8wLnuRr+z z;L!*FB>d-G-(iu{B9{h1xknv=$AaD_Co* z*hO30siVnLvVg+WI@!xz2U{ z$@L|ZWafR}=YE#&_qm_@xt~^=ubJlCM)PeqZ(AQp(1;E6;Kuao&N|vJN&9W3{W@sB zjkI42?U$lpTPWBhZP!fOZ8e`;L*FeKI8(0tr$GDxowt?F3uotR&2QQVI|+!k+d5dx zfcak1d@pIfmo(q>-Ym-%FbBCC&G`%=fy?_mbv&N%Os=`Cig|FKND)G~Y{_?{%5) zb(!xa&G(Y#dtK&xUFLg9dN5(Wx0xmk^F_7OgsW)6cABuACTyn(SJ8y4Xu_>DVJl6z zl_uOu6KO%LKAMG z3AfOMTWG>9G~pJSa0^Yig(mEx3A<>*E}F25ChVdKyJ*5Lny`x|?4k*~Xu>X*E}F25ChVdKyJ*5Lny`x|+)NYhpb0nAgqvx?%{1X=ns75s zxS1y0OcQRV33ue)965?6+({E|rU^IGgm2M=n`y$$xlV4(wKs`2Owxu)+Av8QCTYVY zZJ4ADleA%yHcZlnN!l<;8zyPPByE_a4U@ECk~U1zhDq8mNgJkU!xU|pq775DVTv|P z(S|A7Fhv`tXu}k3n4%3+v|)-iOwooZ+Au{Mrf9=4E--GV{$n_kp2)H%w31*Gyjg2hpx37aJ`>Ji%qw7$9(qX)WhZr#@1Z#{S%k=(~UjMpY8J>haRPPJV{aB-yRajRT;2A#@ z{6dVtKUn8!mI=>rI?wr_9nJ^s;P-q??Y*h?-c)sjr0to9pLTQ8Dw4Xf3% zS~08Dv053cg^~LswTr<-HwrU*y<9_eYK&^s~rBI}GydFvxR--5%ZW zUhnbw`otKYDDL;peR|*NKBL@c#2)wA$EWu5siFNoRj3tg&FIEPt)NaTsL$xd^|a#J zj7|)FgX^?}CM}^wOIS}2>LZbIcRDbw1s|sg|L8=)`y$2ebeuaKqa_Sf^8?kqv(44; zUQdARy^0!t&q79@h7ru0Ph(j`g(V{XR8x zmo?Aw3W6THkx7Ewsm{c3G(3Jx99d8xi}#)8l%$`f!%$ zq_dsbcd=)mJ#nPphv%7(64O!$qrEPIVkn_? z#`s=pHQ*qxWqP1t!gI}AXqet}&9~Apz2};TXG6wmnDAWlu%Cu&EA7?>+O1P;w@$G= zEUi7ao%Y)9?Y#2_x~1=V=iBI(zGqR#>6UGD%T~H&E8UW$Tei_HEp$r@-O_XJ`P;#q zJ|}Rs&@18D=NoC2IIYrq3RjX=Nzy8DT4fHcvgavWae5?9i^S7CzRjNBEp$g;9kSWj z@`s>??x>+VYUqxdDBh<#;&exx?ugSJak?XJbZenE+Ubq(?DIIi5vMnL&OX04s5atl zqBoNCMhCsoL2q=>8y)mU2R#vM}nP?jM9CwN)>$JCGhtoZF+FP;G-inoxqoC(>kAgy^zFe?Wx zD1)kdVT4vQh3^d2e$iQ<#J6E|*0ms_X~6DNE)t@$Hi*h<5|y<vUS|^ffgGj3Iq=_z(REeC!<$xRy zN5GMA6gbl-=V&+vj)lo^Je&X@f)n8+I2oqEDR3&B2B*Ur;LI(19Nx6Y;Z1uS-n7Tz z&79A`zZtoeW0$l&5v%{#Be>2I#dS8&L(y~LJUAaNfD7Rw_?q$XMwkZE;U;k6yZsqE z?9bQ{z0Z4o3ird$;OFoQcraLLPsU1nGFIA?vC^K5mG)$;jQ$RO4-dh^@CZB##$0Z!_GGNICu5~O87u9{SZPnjN_#R^M*j@6;8}PM{sMo67vOI&2l}5LkPzXO z5aE>&;gt~Kl@QI9h>F6Cio%Pog4ba+RKpsmg*u4CI#>_&;9Nh^TnW)!3DH~$(OikB zoEM_G5~8^hqPY^Hxe~GW&+y+Y(yCdcRkKK|=3N{!#_LirqZMh@EYhku%{zzq?#w2U zR?Q-W(yB?MRg*}oCXrT6BCVQ4 zT5S+%wLzrS29Z`9L|SbSX|+M5)drDP8$?=d5NWkRq}2wIRvScGZ4had5NVYVX_XLZ zm57Np6={_aX_XLZl@Mu_5NVYVX_cVv5+bbRNlVEHS zY1I{b8vX>&z@K3jJPXgkf5B{c9{vKNY(!dhiL~kxY1Jjts!OC*mq@Fw*h?aw=EDMb z85Y7T@GATr7DENR21}q4s$eNBgXORSR>CS+4b`v)qpgJ+%vB3@5QlZJ9z@pI>#;GG z03HhwSFJG~3lUeXBCc9RT(ye0YK`$!h`4GMan&l~YVXljA`V4XB}7&wL{=q4RwYDM ztrJi!A7H6Fa9}y*WzO2KK z$T$9IFq`Le_P{?{C4buYXW+SDwpH;(R>c<$x-)ow&<}#=&8tT9n$ET&KGTZ$Oe^9u zt%%RGB0kf6YpE6SndV$e&AFCZ5ua&Ad?wH4Y+lXTyqdFlHD~i`&gRve&8s<^S93P6 z=4@Wg*}R&wc{S(pYR==;oX4v!tmW0L z<<+d^)vV>!tmW0L<<+d`)vV{$tmoCN=hdv|)vV{$tmoCN=hdv|)vV{$tmoCN=hdv| z)vV{$tmoCN=hdv|)vV{$tmoCN=hdv|)vV{$tmoCN=ha+qHd4x~xjy%X$k5!cnumVP z>l&z~7wLxh_~_ zwRyMvv1_vrVNtr$LP#qc-!KnJed zj_2m$xE1&@ItR`9y5-gR5O>$ZB= zt(K+ZIequhI-Fm^3Zg@ z&nnZxKC4V?d1$&bt4y_F`?8wUZ6&Fjy}I|Zl2pCNO45satR!{w$h^oCvw|n)#eOSD zJu62W-?MTwKnvTwVzh!6W(6-yH!sY_^omiqLKLnJg)2js_`Tf}yf9&_>=@h@tl@>} z=7njo8q{Jns6`#VZ561SCnm)clj4a<@x-KfV!C-^x_M%{d1AVGV!C-^y4Ck~o|v~X zD?i;lG2MMuel}?bNuHP$JTX-~F;zSuQxxcH{VIQ z9gHkH{a-S7{z;uIDx_91O`*S`IK+|z~_Q|%J;{V?~f_pZx8yu zxZ5B2epm3AxPcl9IA7erVN~z}BhEA<&NL&=G$YQ-Mx2+8IMa+c(~LMT8*yGX;!HE* zOf%w4GvZ7$;!HE*Of%w4Gvd5##Ch3>GtG!I&4}}|5$9zi&NK>p0foJQ!d^gOFQBkj zQP>M8>{S%@Dhhi6g}s2n&KEmy7?qt*W#?1b`BZj3m7Pyz=Tq7FRCYd+IMrTGwdYgq`BZy8)jol0FQ(eZQSJFu zdp^}ZoN6zj+ViRQe5!po)m~1u=Tq(ZRC_+vK7ncpO0`d=+NVpf;RQpt_eJa&Hm1>_#wNItmr&8@xsrIQ<`&6oZ zD%C!fYM)BAPo>(YQteZz_Ni3+RI2@Cu?Y24``uJ~zR~|6s{L-N{cfs#IMrTGwcjlk zK|FutT(Jl>RQs7!`wFW4HO%lAs{NGQ+k?Sk5e8H56R7tI)cXYLeFF79fqI`ny-%Rt zCs6MbsP_rf`vmI!8tVNT>U{$BK7o3lK)p|(-X~D+6R7tB>b-z^FQDEFsP_Wuy?}Zz zpxz6p_X6s@fO;>W-V3Pr0_wehdM}{f3#j)3>b-z^FQDEFsP_Wuy?}Zzpxz6p_XX7Z zoiz4haS4Y-4#f&TvRXD5GyKhp*$V7%Gj@0w(+$l!B=|VCE5vsDTRr=aemz!?q>RtP zcwfVIQEWG5(8a-h81HyYcY#szrl@^uM#!^`kmni^#~KlfjD`!Wx|JFQOR!*((eEo* zaJUsNfd(y#cCE|N#&v+{`C7TX?N z8(N;9V|ZlW43E6dx*J$G%t)SK-Bm{8=FB{!j@80F>>;Ow^Ne~=mB_3Rz3nNoBB!Xk z7czSDR&_PR)$Vtt7hLH}#{Z4R{{~mQT~4*AHK~29N$qP*YKVGUq~0pkTbp`oQ*R~e zZN7S&r`|$k6h6gjb$6Gi_)kxI&f(SqA(!ELnQ zHd=5SEx3&q+{O~aSmJS(c$_63XNkvI;UOjOQ0kv6@rg>jR*6R`@qU?BRj9;ADDBxw zTdcHUX6PCveMTu?io8KTETSD=q#e2AbMW*WJUs_b&%x7k@bnx! zJqJ(E!P9f_^c*}r2T#wz({u3j96Y@iPp`$(Yw`42JiQiAuf@}A@$_0ey%tZe#?!0u z^lCi48c(mr)2s3HYCOFfPp`()tMT+|JiQuEug24>@$_muy&6xi#?!0u^lCi48c(mr z)2s3HYCOFfPp>pP8-u4;;^|yGJseN3#M3MB^dLNa0G?iH<~9aTf6UCS5Kphf)5(l? zErzEj;^_`N-GQg)kEiG3>G^niKAxVBr|0A8`FMIho}Q1V=i}-5czQmb zo{y*Ji>K$}>A84%E}ou?r|077xp;amo}P=R=i=$PczQ0Lo{OjF;_10~ zdM=)xi>K$}>A84%E}ou?r|077xp;amo?e8fR~U=i#CvRu?1Q79!OgR9^8!1~Vz~LY zIC&-xegNmrvBNYMukMFaQ#f@YPMwWM6X`3AHtIZY#Mx}bNtso?Z2a9~TwQNmU2l{b zW@PC$vLw?Z%bk%zBg?OhES*M{wMLa!j2y=rC3YGiPBucc85#C77Vc|gI5N#QpXDF8 zC3rb~w~re0o;B9(bl1;e=%2gu6;@xjyX)_bbypkf{%Wjy-dH!)s2|&7)SqSSd&JYd z;^|(^jQaN)|L*aWKlPOBJ>7$z?mSO-M#w#(cf!cO$dkq~_k)=GK@4y`);<~wT!ytz z#{{3Us&*ufN*M!hH3r^l47}ACcq=yelyUH8Y;X-WxCk435<^e6@^zY0S7G4?F~c>+ z$XjBu;8g7J$qYNpF;4Ew8fC0;AZvU$!wjFZk~9?qpM!lTSQ+||ar5t3;&Nl>E5^?I zvBasy&tJq|3O*luE%+L?c#`#A#k}W4rkj`DoSBo&GOj*rOnumxdb=_8JI2&|ji(!p zrN1_oUSkfn+5GFL=3jp>hF)*n{DJYZ$ap!+czM}Bv$%2dcJruD8#k}%wWhK0gq;5K zq9x`))?7njBGSUHX0+JHAX&bjC|G@`K&Rr(HPlijBGSUK5L9@G)6WWBO8s4CmS2j zF(w{wOgzUpc$9H)igEB0#=nz|f9DwYjyLX|W2`&M8252w+~`#n`+y!yu)cRpbZ z`Jpl7hsKMm!{(Jc9(IF)hhfN$d>7*g!hYsm^ z)${*RPY*r5=T&j;(C7Mntr?pBn$$6LMbE2}FYo>u`cBCUqZ&(I7&dnDe*V8|->>X< z^Zv^YC_muN1DZ#Cq~wJWzZtn>)Rm(?KgzpCbrcR6J$%>KS;e`~^!$u4L8eQ%;{UW@maQ+#z<}{i^@pdw&Yw)%UCC6QvIwcynms z1Ft;r%Lm?k;F5#N4_cP_`p!Wwgs;j5l@BUg0#nMvS3e0~9~?P2Qa&a8|KR-&9)CpR zAyW>y=FqbaJLK?5hu<*%hvTb`Xq-6g$U&1%nsm}pg-2a^T?< zI`j3D<9~8|`L3U?_R~*}Uvk2r6UOfPI>#2c+7l!H%Gb$vet@q9C-3of>H|~uJN1Eo z=j*iOsed``kkgJiExE_nsi*zC?{Ctzdh_Z3%Gb=(Up%Aa-}@5Hw_o&u=&O-PbWya@ zI^ELf+Q{T+O;nz)=*C!{*-$v=nHD=lez|*Mhs6$y+#4G&zuZq^M;jj=h#f1B;LlZ)ROJfg2o{jw?mXM*(nI>7M80po2mYiKrWSYg(% z0{hK2Yglg9umTHKV!=i%xWKHT+N_}?>rD8F_`>tW@jVjMW4{Gv4J)wUZ_OH-%^I4` z8djJ!tQhzlPqCdPgX}87hzFZ3tT0=sH(RJTTc|f%s5e`v$7bzj3-uVS9iz3IE!3MW z)SE4=Fk9GYwy?r%VTIYk3bTb3W(zCK7FL)otT0eKmDojn%5LS~XUyrtYh$`)ce~joqrL`)caG8p~BBeUH&FKt)O`bW-$30rQ1=bg zeFJshK;1V`_YKs219jg(-8WG84b*)Db>BeUH&FKt)O`bW-$30rQ1=a3wie4Cie+na zZ;&74tC7K2wie6Qitm00%jRR*S}c1gmi-czJs8W@V%b_On~!Dluxt@^-%Q;%Q}@fM z`{mUAa_W9Lb-$dtUryaGr|y?i_sgmK<<$Lh%)A^kFQ@L8Q}@fM`{mUAa_W9Lwq8!% zS5x=Z)O|H|UrpUtQ}@->eRb~d;P>zl`~e<@N8nL-3?7F+!V~Z$%!H@lY4{U71ApUL zT&Las?{M}Ra*+;^i*$%wq(jmkm@oSNWw;J*gj?WlGXuM%vU)Og1oF>y$$B4^f38c` z`>2TFBk7S6dgNewAoZla7QlY%;TddpqHY@mPZlLe*9 z9X4crD)>j%)o`r{_&x2|bB7)7u%q7{!c&_*?pd$%tl#piH}e-AA_m%7s+oG+YsM9G z#%-QBon1vnrDQbB#WegqcIlt1C49=>TrK@;x##J6bG7U)f0%o6nf0gF?Ce~og~@B- zsoGegjRoHH*UkRg;I9p?y-ms6w4NPW&kj%brqaHdcP2L2^OJA*WSAkU&L`_KpWO5> zeeylIrQCD<-akp7f3VC{|6OLM{uZcLj#lMJC`Tewj^tjS=HJWt`LCUFagQ39$fr0- zYY*Gy$y$5ZHc#>W?8s!jV4Rk9h?aGUmUW5eTj7L@VS2$Zy`Uh|MqAWYi@q*;*~u1P zh47S%p1!{4Nf)L1dTFMw|7#~*e8AH!^uTae)%|8%J*BKu%BWH{DPfb64OOym@568< z8?I#Qlq^rl@|0}&drH>RzTeg!-_G>Do~!R??iS`l+pfR$=0aPpW&c^du2QcrtJlS$ z-SoFEtIqFQC)sA5i1mX9;Q0I zZK3((a`VUqN*h($^o|xK%+bag)mx)_3v)HSE#L4(W`ZX~{~8$@U2oP`6q#%$xUZSu z;d~nt%>)lN6P!T(ok#nfCAaWFatpsi^&JrVY-FH3$7jp;RFuwj)zP~HgYSES{ZyZZ zYv42RMd-s#dTmA}rjq%wR_q79X3LnXMP1Xq;ciV|E=f*(qv4@R4 z!4V}mq69~j;D{0&QGz2%a72mcza#VPr+M}%p8ZRnyT~)2>6vqJNC^%p!679$qy&eQ z;E)m=Qi4NDa7YObDZwEnIHUxJl;DsOIg}^H?v9L!Iju!`FR_QF&(phWxce{0Vg>G+ z@2>mz-c?!u-|J*wb&}-{;qJRJ?l8(73inbcS^erHM@wkcDw{lO*jrmOwf>GCQpNrv zGI-#2kIS!xztP^p{C~S@#(OK2Hrziv(O%(6R@BZ7W@_hsGkGo1u3yrwU&4`-jVjKY z$#ULI)>#z8#d70a3YSNU`d(K_cE_EaslAkGFJ;|V6vJ-cv_xQRE&aJI1_N-?Vxvq~|m6thY(s}!?J zF{>1_N^#_JmdIs^T$adXiCp>9hsvKmRQ~j#GSCl=d;z}b_g{wV;6}Iw?xwQuNn56z zWsYK*5iC>2G9y@~j8%@*UM6WTCulE|Sf`YA%2}tJbxvZPzU&)n+FaJjWu08s$z`2f z*2!g^T-G^+bq+C}4rQHO*2!g^T-M2Dom|$*Wu08s$z`2f*2#^H)SpK|ArwI|lt52E z4?q%lhGSjlIG6~NU^09NPK1--WS9b{z^QN=oX$3( zRb#9gW7Qa|##nU(tJ>iVpNB8N7ybUra2?zTx4_->;yu*CMAn-W8N;gMSam3?j$_rK ztQzibEN9h&S@mF6oxrMPtXjsZ$Fb_jJ=$E1Rb#9gW7Qa|##lARsxekQnpKZx)e)>3 zW7Qa|##lARsxelLv1*J}W2_ou)flUeVAT<cGC1QTh_4FX`Kh(svl<4!Q17#Qq1n z!!UOkQnBWfM-C?9V6taI|+WvjU_PyUB>nP*s#K`fkUhL{6uD-9U zm$-U3k_>nCeO*1r)$?7w%+(KY^#fe3%=4DfHd|?%WNbv_j97v5Da#_iwmvl@c4Q=) zTcK4A{~&Frw=KAGo2!m+)fuk(c~>0~(Z(X9wdT=U^JuMkwALKenxk5CRBMiE%~7p+ zwAMUYYaSiB5pIFIwbtX5$4*z}Jw|yCP~MPN4p82ZSB5F`Daw47GJiyw&sOGqW$xvb zOZ(QDF=DjVJX&iWtu>FL)oj4z06zm zFPE`RKOL(42P^-<{YH#DwJ_9`a$RZ9cV~NdcE5KINcXRDaaB2V z>&Cv8@Atmbw2J~gu0W3~(BlfUfdXxyKpQB~y9)HK-qG+hZD6P}4OONQp5#PrV2GzV zQ5zVd4TK}&FlF0M*^XB4N2~V{%GOUW>RAPPR)L;Xpl226Sp|Alfu2>M+$Si>3F>RRwxgfnHUhR~6`01$tG1URBVyH0rKE?>8ffH9WCvcw*P^#IE6qUBeT*h9`CnPwX0A*i~XH2C(Ku z?>)W9ocR6E_4)Tt0veLO$EA_O_2RyxS^A`;|Mp({X3@e~v~cKB)r?d<09 ze}0u={jPE;AJ64R*MH{I;E<$+qm%iLv>=KKz8r7LesA2JIOOoN$1J_cdy>-(cW$25p2APuddG3U*QFLm3M6m zJBOZ-MeLl;+wQqvW8Vt)eN*ph!U9cc@0L?B#9ky>;zjm-k$t;)D#NoCzn=k z)wCiAy~F9eh}3eA{TtbTC;Nw<^a@Y#n!7*c?tjnRJ+#^?_7Bfq*p{*XM)nVLnOC}N zCHsdyM|+L*<({nW<~HvBXMCKCi*uFfPxM&0($kxtW*?k91Sb!{$ptfJ;m|U>y|CFx9E;abpt}C3xb9}P3k14*N;`_Ny&~OTc zE57QAVSfB@L`+}7{-7=P2W_!GXiID>SYcBmJe|uT&?F^dhtRn=rk?pG%e^- zdhs}lYp6DPk(P6jIlv@(u*B?X5^X<;wx2}XUrpPGC+JP0?I&S_NxUqRX!}XD{Uq9c zlG)QFUhYY>{UlzNNwobWR$JbC%0Qpf{IbI`v7ysOJm2MJd%frUg*z7BikxhuGmjJp ze?a6^I1NsRGvG}4Fq{Qv!#Qv+d<4#e^Wg%x5H5m`!o_e2Tnd-LW_Le?A4QH(Q{&Xs zjcV$ctchx7lDY6nk*R9xXf-ueO&zVKj#g90s;QG%RNlfWJ^_J}cf;Gum3HgE*{%^-vERAORcg4R9{DQ!Gw^0uy))J`LBvXW)y_vu0EtxzX$Qt{Ih^5tf?~ zmYWfln-P|q5tf?~mYW5ZM<0yrV%nY&I46)n{vD^%?+zheY46)n{vD^%?+zheY46)n{vD^%? z+zheY46z)4oyey@mQR0wjC5ssWvs7X|7%Ja`t`%pVSD}h{buRrz3=OjSIT1Ns}5Dl zUB38ez}xeF{`g`wToRe7q_->SCzbSbN_tqIl0KuPAIMMdgxJHB@Iywo{{H$)jYA`i zLnDnt;fb*$jYC;V9s29TQuq4n_goKre_#76>2;ZZ)yF^LlA$GnUk^YoFtz4VbheI!pG$K%F~DP^r1X`C{G_cTpt>t4`s8=c`Wc5zN5b5Ns;|nCED?r$Yq}95>Io3r};{s zb{(Gcd!Va?TJ^NFZHw5ph;4lqzkQbX{&UdNMq?S`Qd(#%nCZiGC>s8r{Nl^<})nzS(@N;&||l88M_r` z>{iHbg?q7EA-ff_TOqp@vRfg$6|!3)yNzSFLZ?NCt38EmSIBmSY*)y3g=|;Ic7<$L z$aaNnH;(PbvE4YfJ2zvy>)7r-PyT(j`z71m#CGG@Zd}H8<1)4z$96ZcT_M{QvRxtD z6|!9++ZD21A=?$QT_M{QvRxtD6|!9++ZD219-EzM_3<;2tM_P+q4(%Jp5j}c;tEd@ zjxwkB+RZw#cmAZbZ@wPNmC#CA7bT4&Ms!mGPNvS$1RVStDq*R@hs*lp>gXuNRQuR@)K1$U` zsro2YAEoM}RDG1Hk5YATmy(BV_ef85rsqG+^H1&b{QIzXDSMZ)cPV?9vUe$am$G*$ zdzZ3zDSMZ)cPV?9vUe$a+p(%Y+-;qlXP@ORPoK2j+Zqd%@;{Yw&z9FO*Uf+%w6^zY zdFfX7D>;wtX$dC$0Cit{y$}^apNLKaPx5y2)uC%~prm>M&dBF4EWb z*Vp#X^tJsneJwjvui5G~doT5xt;E^tHCw%AtJiGxnyp^5^|f#%Ka8u%RKn{n~vI zwI;sE6Wrkmrg?%p_h@O?`s9)6F)PZBQFe^F%4zJF&yIGE8{0qcdygK8X6zVc$LL<{ z7-h#OJ4V?t%8pTXjIv{t9rM{S%8pTXjIv{>z@qFJWydHxM%gjSj!|~ZXUBYY%xA|h zWb8OWDZZo>Us8%Ylwt-u=Cfl@^u&1Id+ZqI6hDp~qwE-E$0$2S*)htFQFe^7W0W1E z>=u?^?_tkRvFA8XaacLiuqP4~VlIPCYYt=betZuXS9o^qn6Jl9j6<0*gC=PAQD z;SaQ$qjV=^#+Ttrc-ecnu>VR~zmdhW?3&GBgb7scr{S8&N$h-$7FVvtm1kO9d8WmU z%vfur7B_M)EpB&Iz*O)Z#|6XvlG=SxfvfpLSo?>T9pCZ-27iU&Cma5_6O>ky||DCp_bgp7E4E zwfsHTEllg;Bl>-^Byzb=o$OPG`BdK#`Qv<=yU)B0y?5cN>neV)y`Om-#%^!n>kA{6 zmt@|ZUZd@eZwNiN{7x4~KA&}IWI9jB*ZSSzpP#Cm&!4%1r)V_~a+&nO4Yzt3CZIVaoSUdm1+~`$(-{E@c zSnbRTXM2q2!ZqJCN)O;E>nYLmGWyJu(Py5gdEV1hyZ&pgzrv>ze58rAXZ){0Te@W7 z^Y8xTzw(J8o_#&v_`|%a4N4vEDeiY4<=BrO{843TQI=L^dB+~<&~v)?Plnb^dBSb) z`^mniIfQ=SH~Lt%=QM}D@7Vi!57*iYdWZ91y5vrOQ10{x?FrqiE;h-^m2mz`!uc-= z<+?^zu5MYmQnGR-)hZ98MYFG&W8)(qi~7eYmtNO z36NbYCA-$LoJqkiW!L(p>{`E+Rcno$F>BDBzC)%=}S^V_WEC#~l1v}bK=dWZHpzF?=3THO!xye2c5F1A?V-(tU7 zyH)-zR{7iPRZCjw@5uDDHmmw=R`s{op}oV({?0y`Ew)(U-!kyIV2g}a;VGwEWVCu) zDdt6Q)@N@Io>h`YC3#j!cArvwkDu>_MOF|_kd^Ez->o@{3fLklV2h}LEusRphzi&u zDqxGKfGwf|wulPo5EalNDxgDDK!>P+4p9Leq5?WZ1$2lC=nxgqAu6ClR6vKQfDTas z9ijp{Lnf+dI~7?^wINW9{~iwc9(^ zZtqyTy<_e6j>=>L&QRd zh=mRj3mqaBIz%jVh*;`Jc~yTf&^kd?x#ZPPA0(^q^b zqJ|@CIHHClYB-{XBWgIJh9hb?qJ|@CIHHClYB+K(d<4#e^Wg%x5H5m`0#1%x0++&N za5-29i(CO$!pGqg@JYA|WYd+aKNYzZZi5+cJA50y1K)-3!5#1eCBBOVeh z+QF#|(XHTAhUhlf4xO+A-h!Rb1>NvAyaWG$cV+Z(u9M?S4D99-L4g+bBooCTN5vXoby?gf`d$?dmbAJ=f|5oArQ3`+eJY z)oP{|dF_ny-nCwu*aoj~i2q4maC)jG5}wt*B)yJrZ7_X4 z`)k(SKFE_yqz-#_2K}P9 z^;NOU!qDFA66TbBCmm7I?k_L<%N&1MC|YVb{d0icJc4E(Me`QI;q5C+Nv6YV4mL8WIJY|jY zZS|zvl`lN!vPSuqXKFCi_e(s}e9si_4qNAGx0^374D)J4uF4va^@Oj~ppW%@4Y+>5 zUk3iB=PUfpLA8T^GU&NM3kK~Nv}175;KK$VKllw_OVa=UaPX|2S7l!r+?_orJ2(5v zoE^D`WWLVIy=K?fGcs)Se67yy{d#xbbM`%FRN<)ca#u_n^}|sQj(X|6Uxh0Usy(Q- z?3%K#_*zg_Teh+MBjwkZ&y+nNH+NQUbtIDehFRIz+;zF@Bja*gbN>-JH1Ev3Gb1PG z-JN%DWJ=zBc|VPumiM!~UqsHxdnRvQ|EDa_N2;l>v)2+e zwTR7r!)8xumEqpc#cJwob~AdV=jE4al`FK$rAqZxY!OB^hdWJ2V2l0L+)HY0hFW_| zOO30sKd7^VJ>u&xzCka?Pt`-3F_krbDoRU z$(8ElVYPaPR{OLT``g^rk!-DXx;f3o=C~g;r+rkJZ&BuX%KVb6+^M|lmG>UyJ;SqH zkmj}J+UHB*IHsJ#crJzq-}CqI9Iktn|2M|wx72K-cWv~pO~sKk@gMt598vxJjYhH-@*1_bk!;`QLEfB;f}5Ed8YLI{XNelLqOVdl=cN_sU7NW zMc7i)&$m00|DXGh2C&-Qo_<++FXq;3 z*~7`B@*6(JgXK-BRIa7GOv|YyIpOrk)q3GJ?6d(pZC2NRGZOvMlf1~5o3g$xzU`La z$*jABS6z9VGhlyadbE$;;Uo37O#j==jKQqen!ZiyjsEMRY>skI`eSd0Z0QX#`ji{dQzP^apZe z-j#K7^oLo;M}HK#D{6%!iHrBDdv!{rRCki%_>zlW!5F7>Ja{H&JRAW>!ci~*j)r64SU3(Q!ldBOIg@=q9!`J{!HIAZoD5Uo6gU-5 zgVW&*I1@e$XTjNU4txa8lWFICxWMZR;Ucd;3Kx5Q30w-7!R7EVxB{H+Vw|rx&Oc+E zf5tdpZ=A0;&OgJ$^k*KXKj(bL>(46N=Rhu6=Zt+_%ecu|V_%Pc)Lw~;;S#tME`yK3 z6>ued9BvM_M85%YC`P{t-wIxh-U_$D47eS>9jxPdc{Tc7_#WH=cf$AK2mbbBxEt>A z^S$sB`5vE@8Rj{d6Kr$B?=~m=Zp)nqFFC3A?w~X89tu3%kJDj%{W+d##WStO*{9`; zZ5C6P?dyI1YE&8Eec^7R$-(D+_Rl{1l+S)0M}_gY;a2K{ zJrXyC=X~xn$cdDAf1wD80otjZ*dhV`T4elA8k5^a<;6th#dwUvtj%{@Wx5Cd zO*YD(l~&_z;k(=?+8a5X^;7Sxa{k{8=l{)!90f-Q)1Cb{-PwQBBger+m;^H9MUICP z;6y*41SdNw!MvUSALWii!~BugKW5pxuJ(Y)_R+cz{> zKK-k*&h-7mzMmC*!~UUD>>oNsZC9!7Cbiv^)f`OEY6)H(aAPoifai4%;cRCR&gS=M z;`eA8@a^E`0e1%99q;jjJtP!J#R2Y47Bfk)vncpUx+Pr#Ef z)3u(W@z_mX-uva{y?<9;-ube4E&!)m@{h#%N8yj~blE;!7CZ~j!C&C7@B;h|=D-5?e;F3SE3gtH?9!<(So(FAOSP0$EUpuVE5uo;q0|8!y~zfqjuD9&#b=QoP;8^!sJ z;`~N&exo?QQJmi>&TkZtcEj874*Ub&g&_E@Y^UFiWx)U#2!miSWXp@415t=Um?wJ( z423hD0QO<9hUF~1*)pKcc9!1k*!ge)TnHDzN8w_)6fToD`*QdgTme_Y$Kez3N%%Be z1D}DL3p5U_I2shG0o7 z0UNz<6Es2-w8Ca^7AgPTI{v$L{CDeO+k%&4+o2P7z+13WF5x$1FkTm&lDj>aE-UVI z=k85+?%s6g?oH3_3SP|ZhPUAz_($+!o_?0Koub-AQEj58IwObBwlZl`Q*TpK%^0Q) z!?ak%T!>Q3M^BBWh$^t1(vD6G8I^+ z0?SljnF=gZfn_SNOa+#yz%mtBrUJ`UV3`UmQ-NhFuuKJ(slYN7Sf&EYRA8A3EK`AH zDzHoimZ`up64c~$9!uQ|~ zkS7r{B{5S4W~#+ZFJPvHm}x0i>BK5YsX_Qj5krnn<(Q=l<_9YcoSv3i89_q4R4}`H&MfzsNqf2@Fr?_6E(bv8s0<= zZ=!}bQNx?4;Z4-=CTe&SHN1%$-b4*=qJ}q7tedFRP71X%dPA@|`c?QEkJgPa4W`3Q z@O8Mw8sInKTR}5b+Dw%;Q>D$6Xfq|+Oo=vAqRo_OGuCXwnr&FK4QsYx%{HvrhBe!; zW*gRQ!TGW*gRQ!gX1{383pey~4iqcQ&K*hv1vQBVj)Pz)t7 z21?;TI0z1gv2X~Cha=!9I2yuS9LK>#m;_=-VjqGN;UqX2robt1Dx3zV!YZ4<6RUS(^-iqbiPbx?dM8%z#Oj?`y%Vc< zV)ag}-ig&av3e&~@5JhzSiKXgcVhKUtlo*$JF$8vR`0~>omjmEtG8hF@LY-(tlomv zTd;ZyR&T-TEm*w;tG8hFMy%e5)f=&TBUW$3>Wx^v5vw<1^+v2-h1ILDdKFf$!s=C6 zy$Y*WVf8AkUWL`GuzD3%ufpn8SiK6XS7G%ktX_rHtFU?%RQz|13aeLP^(w4hh1ILDdKFf$!s=C6y$Y*WVf7?dPh#~XR!?H}Bvwyi z^(0nLV)Z0ePh#~XR!?H}Bvwyi^(0nLV)Z0ePh#~XR!?H}Bvwyi^$M(Bfz@T?26=X| zdM#G3#p<I<>@Lae?Jt1rar3$gk_tiBMdFU0B#vHC)+z7(r3#p+A3 z`ckaE6ss@A>Ma<(6Qg%x^iGW4iP1YTdJ>~2F?tfCCoy^wqwm-iU-cim;;TORDw2$p z_7z@gC)(vAYr{RE^UaiAHB$W9M9!_ z3-k4V-0In5yl|)R!d)0?es>#B+{gID!z}REnaBOk9POKYE7SQ_rt^nP=MSmi52@e} zna&?Foj;_4Kcs>`WIBJybpDX({2|l%L#FeGOy>`o&L2|2A5y^|GMztUI)6w7e@F#? z$aGnYS4A`DkjcUSyd3<`%fa9GJhA8ZI8W?(IryKKga3Is_@Ce7JhA8H;NNwg*nk0M z^z$OdxrlKtVtk8?h9W42QaF_V@dz{DBjG5pr* z9t-mtuBXXrXtElbtd1tDqsi)MvO1cqjwY+4$?9mbI-0DGCaa^#>S(e$nyii{tE0*4 zXtFw*td1tDqsi)MvO1cqjwY+4$?9mbI-0DGCaa^#>S(e$nyii{tE0*4XtFw*Y%NVz zOOv(GWGysV3r*HaleN-htupYp(`Bu6Su0)ElF?-?bXm(Dx~zsStD(zkGP9ROo7N^S^>9R(;Yy(}^ zOqX@gWeK`$V^*V>ux4IEIkE?wNn4!<7sIFF23qW^aAQzIqt#_JT1!Tw#c8xSjkb|S zTgyk>L8sNxX&dRZIGt8UrzPmL7CNnkPTNSQ)zN8nbXpyqR!67R(P?#bS{qev4LKzrPo^MwHA7*%!& zPWWr`IvF%(bXyDE7N^^4a;^(@KdT`6E05Pr^)^13yQ#-za{L z4ugGRKiD6JLjjC}LeR#e+IUnOkCwm~(AJ{|!a-05i5Q914fQaquaxS}jhi z#c8!Ttrn-%;axS}jhi#c8!T ztrn-%;AEl#V&X|*`57N^zXv|5~2i_>axS}jhi#c8!Ttrn-%;zr|t8Jv!HqvSvX*H)c1RK*@tyP@MW=KLCY=P}g#O#C} z@D}WZE@uXG!`tu<{3B?j-|8a&H_q7(RozIcuAHhna91{!|G8{7*;eJ&Sb^JQy*y=A zdu!Hkkt|2z*>HXL6|deBb@sn;LeD>sJs(O#ZL~ffuFJnCI^C|4!{wq1_xFYwjKlp$ zVTQZw<#;a4J2PFLo*e=;kpVdmg)vLfC3(XmBO>D?k>H)6EtnR_Ulu$Nyc#?e+!Nd% ztPYy|{wJ_CxG|XNduvb^{4iJ>%nJTa75@wWg3Uonp00>1Xw6nZ{0kcVw$=9}B!X>0 zlJ6`1FEFF`&JKUC^IInm`rcu!g3+=b?_vt-u3C{gPDHb((|0Y|B+%3-}RZ%FWB!9KEd)}Y36T> zGT#@b?frc4OSYWd^Skh!;j7&((z`KgHwXZ{_m-Eqk`8dt?o5X_==t$#-@h9OZb!?7PeW>(W)#}nU-AdTJzKIVcSeC zXT}aczY+eW=N~I{r>%n5+@UJ`ZNP7m9(U4p9JbHix(SxKcX!y|)8*f!Rfw$U--9#P z?RKVdc&&Zlj^NVt>z@Qi1?7Hj=OqaL)*cM8-y{-zJGdmcILLQSdnCv+x{eOc3oZQM_Tip>-5uNzeol?8@b%^N^InGsZVEo* z%2SOVH#<8%68zfew;@;<_9wmI!SuBr@cQ+h{;D6%4xaM!j?DA#2!57scdcPLf_p>j zV3V1_&x5af`g^ta-#cM468z0yJA2z(PaARuZN$|cN#Enu;N^6^bp=LGzwh!%y+~_) zG;l&}`gca6%w5xcKmEI&{2W+$0%E#*}1aO2$Z%BuO&HG-VoN8e@!UWYm~4GLj@oQb|%tl7x^XNxJv{UEh6= zdoNct^XvEfpY=J{GN9wuh_1Le2e_2WJ`zka|_3Lc^ z>KAuL^LGyRw9`n!Uqhh-GnE6lfp!tHiQOq_sn{SJG=3aB3_?x-kJRlx5 zKQWJsznf*2A)d1QmMd0SK`SBFS{bWYY_v+O67jxuzIB1vXoS1493T?n>~EVXaHnx@lg6 znl@0=i1{{eKz-||?@^#XH*XQr9E-Y7qV8`4KOP!jPy-BVfB_Bov+$Yo&4uuJeH7YY zQX5QagGp^LsSOsiVZX4<1JDT@I&m2EGxJN~n8%?X7WKn~emKIkTxf|!Epe$OF15s^ zmIRn8XBjbY1b-^12x@uj)U#wjWzNgj`u{FK4UZ7Va#>UomYrEm6 z_L24x<^}d>dk_tme7zbA<34|kS)Pr8<1=R z2KBz7J`!s^#Py%+SiMFct>bR!WA(9U8@FQphqyjo9}j*4)~_@5JM}y9_K>^vyU{+U zARfB5K2@KJ^3(Kbkk8a-Vh!lu=)ZyF0jzU}wIdM6AJ>1c{~oz>v7();FT{Fwrv9Y< zq|l8)2I|fjjX3|XahGuy-ursDaX07`V+x}G?=kKXjg6_sRPgs2_lm~81XcqG`=0Tw zQmZ-no)enyW#4PyRX?5dz3+P;E9!jY`$!~w`+fVdN=1EteG&AlwFBb*hFBNR^ndC9 z5?;2d|E|OSyAJwqysw9CyO6Cq$yS|YTTPn#&_frnO%|}FCE3!FY-vfhu5;MB&SC3{ zvUNq-x}t1d23wcEO6#h{)+O1xBwJTQwyuWOL)KhT&zff~0bOb>2VH@+HR9GP>p83n z^n&#Q=sLWwGGT4BHiEulZGq%%ytOiC?XsXD);{ZF(EV8b&$SL>{XW+!w|!XO%x~Mm zhj&_rK_gg~BW|a$GKXeou}Xqw*Mjw{*$rU-Voe9EIiTTPmrX&NV+B8rZ@kp_#>=?f z7ONbD?XGz5WsvW^4C1|)mxJ$XUxoF7er(?eI@TTsI^Mn=@;mK&K<|Y`9klPWXW(5v zGx46xv+$lw%$V3K?dM^2zhG|y-E6-Bx&>?TW$d@G>R#4Yq-_azs1N$9@$=%0i++_{E5 zkg}$ZW3>1_zRh4O?ZI~*w%#eXJiAYgO3w7bxE`_W7_)3CKM!N&4>0cA z1q%mr2pE3>4aQjZGaPLzEC*UxXFLvO;W37}4ByYoAES-JJ?XeHD`PNZsX`MB~0JSr?^Sjfk5=C$7V+ACEt8dYQek1;Yl zhF>+NRW`;)&HkRl;i5W&zbLs%J+^z z?o-?w)RFh$U7&r4GT(4dx#ydt7^|bK$FEX6wm!lP=*bW4)phujr zU)}$4d}u2l#4(jVzzQn=El{to%KLalF~YweHYnyYK;OdE?=7E)H@Qw*xNdtdfG#aXb=9eI>xK`&WAQ1K6yWG1mcI)4rtYUh`Y82 zeZ$kZFBO()#hIWV=qYyco~mOkh9(?WJ%aj_PX=a~*Ym?fiC#f%0!OOIf1jn)F}}oI z#J@g?l1QE~yVR=I{6~2l!uh z<6i9pW`h{#lPD37h6pNUhrh_{c%ov@_scK#I3DK!?(!kr_v(m|j`ao5lSy|^Buk4MFDjyuM1+;I!X5o0-y7>9Ah%i=cQs~Am;=Qv^l#}RjM z95E5&h$3+(M-X>$1TopX)x1^QZGL5bC8k&bDiMkk`K;-7XS=gzs^_z2spqri;`w})mQYV-t+skHYfaUYS!``iYf)=mYOP7F#TslF{aVyoi&`6^*1FVMNv#cY^oy0+pt}xrH$>fa zsk;g4u0`Fotfw&AG^no{^;PF+Q|D+?RvB#?)LnzRYjCt_aJ1=z27d`#^f=a#_E}#+ zn=Ot!{Tz9k9C?}?dEzZ_7lFvZ_#1E+|lShRs9v@rj<0HpiNtcHf@I1Y=(Ahj&^L0cC3$ftfU-*UEv9O3IS!|Orw#hUt(iAPy6fM#eaVCovsiZ|JfisN-0;JGI zi`bGyY{??FWYJ!g#Fi{#OBS&ui`bF{Y-um{Qr2ve)@+gplSS0gLzOI|jvk&QY2`{< zxsrI2MLfx(#p}@GbX3!O}6+0|+qn^rP(f7pV=eTgD{rQpE_jKqghpE8stBqo-WPeXAMyqeb8dX-tF^p|1#=GCs z!A~B>n?23nH=OHR#{DOE{12J(mgU!0-K9K@xyz@Z6F)2OUACb7cV!1Krf*l?v%IHB zlz&xrTiKiC2CTm3SP{fIOmlA6ByR$@_&0rsfq~zse#6v{^3#A zRFv;h@vH37iHa|Kue@oc9a{cNp6^zm5Eb^VSH62OW4r|fHABoAA}iYc=Go;NI|B0_tXq zlBhO&`UhHznctc}oOA!8ro6l+ROWs2Gf??2RF6Og)LEn6(ryunciHqZ$qz*r`H|csE|&Y`0nuF^l2}nv9+97mUh*sX zl_-^8%df?y5<>*h+mMDKE;BANE)tg;y^LO>uW!3=yST!4z;{6O^L_67T>QvfY%Ui4 z%}wU(;!5))bC0;n{M!6lT`iMbJUuT4vns+JVzskn;yGuz^NiTw zJnK9wHaX8Z&x_Zcb$Gw^7H6ZgQM{?vR^z?A_6&Dc^3EE#vxjkiKST11BS@zB9LW+# zk!^pXS55On%J|iHX_@ zvbI93Et|C!L~TX!M&6hfM~&hggIEV7sU@+dM+&tVW-Z29iz(J(3bj}W@7cPj%OvYE zin=@-do@ChrdXpX)@YhFnm~;%6}J4B{FeyIWvE>rYInIX<-bwK4(fO%=ri&e;g_pW z-#*m$3*gtG)@{`K%iuRktj#N5k*|P%RlW-THE4sM+Tf!$*wBVuA|*eBPDG#+ABmXU z1I>s-Gd>30FZYY6JOC|8P)icjk|?z#N-c>}OQO`02(=_cElE>LB()?=EwQL2Hnqg2 zme|x1+xdZWnb4d*&=noJG92^&?~c>j*G68dCQp90V)yq(8c1FecttHRW(IJHXo8vLED))XHItO_o6BU$1jB!5MF zRhra-n$!xq^Cgg#uaE-Nni^Z91zJpiMhk9jy-Z<}3|wh@ocGqh_3~)zj)hUS9*orZvzSzzd)uw8YWQL5p{^ z##&?a3aZ^lw5D29NSbTS;hn8K1ze&k#Y9y!qAJBiRWzb1Nunw`Jq5zVR&;s_go&_7 zA}o>!iy{9a{{k&pBo~1$mWx4`$R(gk|60hE(7bcxYPnhjl@N486(MUcopGOb0 zR<4EQ1!!S2xn8~`8dDbwsejGnCb>yuZB5^`M0Z!G9t@fsU%as-FB5D~#8XpUKZe5j64$B%jNpqQ3k>qP5Fo@=MWB z9+$_#tNtu2PoO_@WSJ~O8P%&f20CV}Zmt_TyaQAZ=NLZ2kN2OMh6#ydI3jDfh6{No zqZ8Ke>2CB80pkY-)}=Fg8a=^ZVq79>Q`a4%)F?&C-bQcGKE~xZ!WG69pvni~Eczgv zMIVF^eGsDbK?u>rd97FmL~a^(5%Ot$%~AvDUyd zXRWmsYj(YCy$t?M>rK$NthYe-T6^KQ?${1!%1+_U0~tGmS^fH0GtaS$uxei1Ze}+F z?P7OBvJZ;{o(4V8 zdM7#X<6x`y+H(uG=T>aPP0)r{ie}C#XO(ElmfVyr*BH#zN!$0(G%zOS5^Ssw1ZNydyaE#kg z3k$*D4GVA~yd`eU@AIGh)-+~S`(sVGY9ClB2bE=3{e!V*mGLHQ!I}B|yxjB1#qn0= zbN-WGtOHWR2iG#Jx)?qQPnA#0%Mh{34`e@9xC&5>gFps`mJd~8+`lzgMa!FQUkFW5 zcobo~=>pTJKT-V!*%!{vSP z`)kP5b_tI7CfY152eoe=g*r1LmOsP)?3don71{)>>}iFL~@{)cYq&QuV`oG{}=6B4UA> zu~+`q6_Rf1w|qEhMJs`gd1t=;A&S2?^Y)??P&s^>=4%u^>d6nwH#xakfYLX6<Dg#ofK4nMC zeI8d6MJzhxMf9jI}CujZV8p z(ylRR*GSqm2G8o_S$#aKpEJiMXO1n-9NYAOc6c2wuOqFhB~}57m=zxf%h1|6_oFKi1YRhIAf3Z`5~n_OWy!iWFgwCieYF@uk{x6T0ft2 z@_3IhQhUzH1KmMt$2s{Z=j0vE$p<(m?{H4OE9c~O`mq@FOYcsvmF}FMcj%GcowM`- z`m1#3T)oA)`mUU-??R81&YZD7n=|%}Ib+|EGxq0k#=e7i5vd8SWgn3kKTw&ic(=O3 zxOx%exs z%s-%3HKWb^1L{^Y+RSySTeYcMwWwRQsav(ETLsju0_s*%>Q)2lRtxHuL*433@A`A; zq0oTd_2<$RsL+TDq=*Zohzq2M3$!IJP@lL!E8+t6i3@~@3tUKCpgwVdMr>&% z#04aAfks3GS`iVrkcfb4f$(}DB2Y?1-~u87r9=dZhzOJt5r`2HC}LY}NJO9w5rHBi z0sSB9I{>P)bCgH4%YQA_6%g0x=>2r9=eU5D|zG5y%h`C?yuqiYP!U z+W)ZrVgHxX{x7BdAEW&rqi2Uf6rcxDfF48vE+z`ljVQpyL;~9K@tQNR()ZNv{xx zm`IG6NQxdJ4n0Hy#7AQE6A92y#35D^BUTcl&xk{x5r?=*jGiM7Jx99IbEGRhM|AqC z8AMfL^dB*Zt(-+vrPRK_z5wr~R(MJ&BOtod53M`>(7Myp#KT!q#93nWI&p}$q=>e} z=z-!8b19{lT6ZEZrSw(nPG7a|^iQ$qpJLHJr3<~(I@3$7GriP0(_`gqdaN`iYSV^( zD;?>#avl+!mh@gZk2p?C`ml5$n&TsO>nC>mLt?i-BzD`2*ljOoqH`yZU4{7cB;u1K zg4@=4%6UpOA>xxI;?syIPbpEJ3yAX6A<9!ql&6#^Pivw)r9^oO={47#&*lO?n;Y=i z+=9<$htKBDM1MNDkGYTGttn5sOFc#W~)9N?F8an27;mJ6Qb$fzic|JzR<7yG|G>wkAPc+%{L zy{TfF)M^@^Lfel6kD&$i-yQLr_VSQI_y%E?DG{sxb0KZrr0(29-m8R3P>eGst z`EAhc>F`JSUiDj@t@2Z`Dg>-Y?^9`Qqm5Hq5qH0j5&3KL<-VU^V2FG0-=D^JE8;}3 zUM{#h^T(z?+S6Q};7+_t0MSw9zXd&jbv@MY@BU}C1!NaU7w+#2#H?Utrjy=fF`hrG zC|7G(fcb$3^Vd}Kufn~cJ-dLv;r(amt+(Qzoj`gNSNZ44RZD8#yHX0jBehmW6-Z*y_4_5u0D8d|tlpW``qtY)O+ z|Kh4}C9mVzyBW2J725IS-3|VeJhEMR1;}|FC0RwR1*PlWMzEgWeO=D#i9OEF@ z(b>!zUV?3`sZx2iO73(_w=(a4lS415TIKubBNgiYKKd)=oAZtSH~-D`e79Djp2cWm z@LR^UdH39<27izhDe?(#Q?_dzbIZ38(`fzueJF4i0ZTj^$VvU#^T#hhx+Hh*uEe zeARr-e8=2ozH4qb-!pfZ@0&Z#56oTWhvshcgymDV7Obl#R#RA4&8-&7y0Xd;Ki$r5 zZ(nG4ushnF?2DYIFsJzcZB6}W#LVMg3(1*n zjdR+D`v1bG?tt(!mfoZVYte$WXu;aFU>#bpHZ52O_h+Sus(XYLFT5FSWs3%V$9=~| zlrz{aZB7^W4KWwqJT~pjpt^@5gu6He@~P%j(AjvyRS5TR9(deG^|mW>E$A!eYoPC# zyFpKwCop&IvwWb+7LDQ#wE`_eq`HZFa}j2nm8B8oOs~e7UISQNePVTWiPbfL$A@2d zt4-7geisCn z&L`4l6KS)Ew55o&Swz|_B5iRZZ8niMi%8qKMB2I%Y4Z_jlSJBlMA{^gwu_0hbtcBv znTVQBM6Es%wH#5jbBLnVCyI6sqkRgArPXJ&Pa&gy3W=-LC$4r5V}9xpS1Tf}R-Z9H zg+$kih_2Hf9qWv)QLKWuMZN zeM$@VCM_5TRmcdaLLy=HiG+1v1XLkop9&fER7fN&NhHjs=ZuGkrHO}iBp%jtStIM7!Obo0p`=c;1u)4&+8Zb)ATeqV=d#E&fsJ2AH>N8@hkP%abjF>89#8e?8 zrV5FZ)n~+1AtR;=88KDJh^azGOcfGEJBujVS&Wz}G}Ssyg*PZ3eKBI0cUB5eU;YyqNcHqo_? zMAU4eXf{zao5-0>Y|JJqb}l`RS`izw=yBAF9!IT+leH&KX3_7cBk?esNLWWAVKy-^ zi|Cg{1j`_5WfHG4iBz>CQgtDbsy0Nb+7PMgK%}Yzk*ZEasxBZ>brF%O2z`@ce2TOs zUgZ$4%Fsi}rH9ga#I7u2R~oUaB(W=t*p)@>Dn;zdB6j8ZAf8XusyX!3ycQ)R?GMny6JVQ7fCzv*vuBHDR<^Ay$o=r<$!b#9oFqu`a-fXBWnfd*BQ4 zHr6-%2&12E*nSaS7B7|Kogx?)Jwy9;2S(LzW5l-gyNyV{`>0K=GDR_^BqSM(Id zibr9yU_D)UZEV8UOW)m(3ig1C2*MmN;!}2%pASEeuPW9!-39I?g*M>7ehJ?!oH36^ zdC?FRSAa7ruBNC7uS9iP-Uut3oP+Y0U@eo{@F5wa){FE$xDt2;lwYpaA{2PL7x=m5 zm#VzH9Z!Br`C$GI!dUrEjF_*$5l57F!zu~Auny=dl~?tH|G2&aH8LwurbjFDxhlr| zDi#s0Kz*wEg}@qlfiktm=F_;xf1xdU2TJ{#>r9+#OY#VLQt1JbmsI}dXYg_NbHE|` zVP%jX;i#S9)iV_9_jOSvl^xFCUx9}$<9)C$;}dF~h>ERC;SX>LugAnOuFm_EROB{9 z&I9FF5)pw16k?bjQaM#EZrn-aK&JA4=jCAykSfXYzkG^hU-j+kTfi)^imQ^L58R*kk;#{-ilLp^OQvc& z=aIh1?_a~OhP6g^!ixI}HktDOuLpansa&8e3fL2iVK1z~T=^zg0Pu{*_#IyC7>Vm@ z?5#%FYV3@$?iape7!#grooBVS+FI=}uDcbZv^z0In`+%_O|$N^rdz*Mqcn`s{-nlZ z7>%vLDC|v)yY^zF)kTe=FoL?t9%|y%}DI zBUG1TP?uxS0LP#~jzI$)g9bSU4RH(_;uti{F=&Ki&sc zyd^c&r7hl&ws?lNc$~JlkG6Q6ws>>e;_)hRD$Qw&7gNi#w8fj#7H>*hJWjoDOj|ro zTij1uJWgA@DQ)pMZE-}YoQzY6vu$Ln#Hsjci^pk;pG{l5C2jGuX^Xd{E$+}3kJA>9 z(-x1@7OxtoQj4~DE!yIZi0?I{Mc#<`UNc(ZwP|x}Y=>U7N`hElOSZ`(w#jp8bC=N0 z_Pk7NTGB0PNte*BEumf8k``?VE!q-Vv?a7?Te9^A*m_;spoO$S3u%28vJHn$Yr|%h z7?+~&5aW`h#Tll>8K=b=ro|bi#d#K6dz`Jkh^^g=bSYwM_aa^5Z0&Kj_AFa_jIBLJ zi?a?b&IYtN&!fe89xcw=v^Zxb#a#eY=3)%NOtsJBvSrM{QX7Nzt4X_ob5mC|3WnOpD+#4()63IXln+|i0EXd z&5Y=3o@Ew`Zmx8t=;Qibzqs7BU0d{Z@ex1(mR*ifXlSPg6#d@dD^-kz)bcEC!$w_%O3+mSB98`@`Jjj3yUAIm%WAk=&kG>$7wffH;db} zXSHX=c%Ywnt2uDbTf`k$0c@ODN*}*v`W;v`_bGVv-7A*s_v!bE75WT)hIm?kP=8RY zgrzL3|+q2idlN!}!m z%Uk3v;wyQ(yj`3C(mG#!E&nS2s`*qeuKDHT@^Q_S|CImKEX2ZopxLU=)6O>nMnG$0 zM2(nsfsr(lT00|cWVH51fl;7!FwQdSX&sH02Hx3jTxfLAdZJ(Ksr5qt*IWCM(bwp! z4ODX)+SO|9Uu}>t>&t3C_SN>))du?-_!?-}`L6U`sSQ=L8QS$&6>Y6H3@GFdZ3K|V zkF=4#y}te0D4>l;wJ~ZYNE@rB543UqkUyl|rf^1WJXT0+sNJso?zD-(9Iw#s1kN~C zTLj$jX>Bbq!Q;AvIUQH;0Hkk@UTQsT&DFPCf42UizmE~yzw|>`KkX^~2-Z(~PRAQv zt=ILhtv9SK(y_K$Z^?l5j`h9_!2|6>nY8v;2V@%lW`?Yd_0S4seY>7rPnMuRYbeiC zYoN(CSOcx4ya4N-wUHgwio5b+_?ulUOW|*JiR^9v&@Po&b=U4MudoN$s3nXKua;Na zgYBVmkUh*EC$Cf9WpXV1$|lKi_TBc~ay-1tekpHWcG)N*Dy^NiZgeCJuC7=7pSMi2Cw>y1mCmz|A<@+;eH z^j5xPMql7@Ul>=wbL@n1t=rY@YFzJL>0W6Ja|gNuji0*LxYroN-Rs=zj2qlx?l5D7 zdxLv}@iX^k_h#cpceFd&xXJycJHr_1-tYd_7zMxZ$BeN+@s=Co)JV^`U14^{9YE_| zGA6n&yDuA)#PvdGSj|FPc*^hmitX?6i`5>qrB%wW0Kd9oTOB)p48{L9-&3#czd455 z=kZg{pTFj+*Sij7Hl9*0e?A}|TGj6kZ0EnQU^Upt>g#T;{A$M_Q{Tf?WEFhAY<@rf zRxNi-Xk|AUgF#37_JH0-`kwzoD`gD7Y5!A&JHdL zF0&g3*SoXqCc!PiJ;C+P)Zjt8Rq(joCKL<*!#P;sbrs7Gj2XmVtX-8E1cnq&8j zl-RxPe)d2}M}^jgHZW~<9|`RWjSB9xuR-g+(HT?9lQDK$@4V_3;f`!|2RK_olLL=C z+kz$GR^e6=2X|?!vokc**%R0wS>POmKk0E-xc=~TH{ixXlT~svky>sYw<-2D2zQh_)}7!^cBcggg{Mcx z1Q)q8-C2>H?wmkRcb@x5aHYFA(#hQw-W=Y6JG|Uo6c53~t%2y_k34IT-X1$u@HLyrV{M~(!p3G~BvAil=}!-DGrHwH@r6N8Nc zqXXjt69ZEM(*ySh9tu1hm>*aeS{rygur#nDusXCMur9DMR195uJg^yh+cq*Lv>5ky zN4RTXcVK^bN8m7yR~B3uIuSI&9U?nJbxuv;(V;p)=TvD;+rdapQY8zQh0Ac16jCj; zuH&K3!Fo)Mf?g^KHVc+S`UKlnq)w4N(57y|A*ZB1!Cq*Sr%LnNgM$5;HwaXHPo~I9 z#YbibhgVJEx1qBm(Zb$7Qwoj@zm1xxp2l$7qt$b2-Wn4e6C978L!}wPsrY(nHhPf< z@KtGUZ~=5?QE-V$`Kv*TtGKe@%HW#Fmg*_EKKN>IeRWx6OL+IGlA5=%?-rz;NZW!t zLxJEP^i`)M_7keFICzpffLhlYlR2IG4&L5KT>20&I#TA5F7L}ZLg=yAq|yN1RhO{kEt zKZzWSY>R9QolvxD3QY^mjI0Tr@N&Xky}Zz@(45e`&?6@k@|hNct_?lGKHlr;H-wf~ z+saE<@ma7bluujnJlGZ5PO7+lp+ljgNckh52v3RZjO+~O6wRlw9=5`vaH6`@%MBNz zbfKcv67E5`;mOo0+(h-c6{$_QL%8d=rk>$`NWDq>g$ITQMjAyLg|AVxY6=fyx)D#< zap8&KDdFki`%g;`g&+P8)BNzM2|ew9kRA_zTf%cAyy82g)%mvi9e>w_H{zMHIa2Fn z`5ow`_gAFD;bY;lh!Jrj>XVApVycHb+ALBMX&dPj>2@;pisVzDh?n|Dyfi2>Br-fQ z5}G|eG6~P%8IcDfvm+^e3dhQB;3~^k<67 zi^vx%s%=*1()%f@{fLqm$bZfXr2V^#w|zji>xMmf<~-&r@<2CH+bNLfVb;VTx*B zkbjc&V$#bLmEC#X%gJ{p_3i-mM>b*ZjY@9RW$uNF>buA{ro1I3-c`M?c+LCo|5AL} z9~702qVT8!HA*O+r@7=4ej^A^GVs_a933?aY9Lqrzo#S zdX}R44@vo7bZUimHzmDDSr@w3`tG5ml$3W^r?%_wQ9@lZc$f64l-x@?igYCDO{618 z2Pmrjl|1WO^Xl|dC6Nu7+lcgC((ROYP*lH#lHH_(NEecRt*CC1Kb!OuMa5_2W8}G) zI7A8WiTH>-uUzaW-<aA3FHmswbi8mAgx6@R8gI+ z29u=f$Z^sra}P5&Nq!CKCQ4Y3I%`Vus$@eYmuyXv_eb)d>b<$w^W3XDd7FGIQkK-c z`xBsqJ&X||{}t)OilT2<*LgGPgOqr!@6VJhS5*50BbB7DDXQ%x@9FSW zikG}j*@N;Sq_--n`N<2?#-!(xwjlLtll3V3DT%g#@=HkBezm2PdsiML|2tAo54*4= z+pqM_!aFPrDUXnzuc+_GiW)3q@ES0?&>HsytL8(O;`)XD3;iAZUHo1B-TdACJ^VlL z_w--s|J3xEF0ATK?nSVxrvu5q3`l+}Ao=G5y>CJE{(PeMZSc;QUhsMAi`0%7KIRLM zIsnNZ0<3;0-qUe0aQg{(3&@>F1MxPF8OZ+w()D67(lGHj(occpZvxi88OZ$@%)Y*d zRTAFEJnNleFXmaNii1e^5xt*|xziS65wZFW!0Pt`OK+|>7q96p^_F6j-db-1Ed3(= zk3i8E$vd_4R%iqi2>j~iAf6=&Fje3v+HI@|mMfS`Wu zAFQxb|7eAp`hTHNQ~wx+k@{~@7^#0O@Q<76+qa@j#c#47wg*@HYVhy?E>|8^v}~lJ+Fj*O`DZ1^1)Jrz zC+|-#OgWq0l4g$ptx;(u>opf>ZIGfwA-O-~;Kc>7xa?OfJ(T+$1(E(-Uc9v^aB3aCWG3 zYD^MH4R8fm@0t0T$1|%ln=`vJWmzYJ(kL2nEkLT9riq(Hq7I(5R z)hiT;3<0*6$@NgSbaG;3Zm2l5EVdg~bn8(2+<;thsB>~*s7GW0Y~;S#mEn!K5$Q+L zkK|6|#^xsEW=02R7lj7o<`v|!>kAeZ-Qch@lt~2c2<)KxoZbEC5 zyF(iiV?&#=+p=r$ANGW{7PLuB4iBVdyDxTQ=ukMJtlHQ^VLi1ZZ@nh!q$Wj|nc$7OdaJ1)AspbhS9y?BYTWd z6_H7a9+9bu*2;n_7^iHwbZ6LY3*rYoOD?sb;KqWU1;ZjMqk}6gy3`TabhPLq#|v_) z@llaI9`#29(O5JSt%Fn)Z6946EsnN`w$AJa-#O7f+9O(;9vkf&9gvF^Ow5kQe`ywd zB$kLC&5qADN<9!A9McoUnQ_@Y(V@{1(S6ZT(Xr791%>eCrdvq6$aVUB;dLpLBtXL>JBReUU zh@ln63R9`<@L0p_?A+Q|lUS32iMXDTu~wPsu{N;|v975}@se22SnpWB_K#HJMFV$);y#~zA39Gf3o7<)XnG*cE^Q7}E#E4Dhe zF19f-Ikq|Wc5Fv%cWi&`aO_yDEVU$86gT2dJQ7b8w8`~|*NWGRH;Ok)?TMGf+r~S^ zyTyCO`^5Xl2gQfPhi6u#Qt^@TG4b(^m(n zGchYMCowPaNMdo~iDbXT^2Dmd+QbHE`+&rz#8%ZeB}XT=CmW_$C3dCiCHAF;=S1RA zW<}y?;)F^`J-H&&A!()iCPSGO$wV@jEKEM08-dh0*)TUb*(8bfm~4~mP%uB)HQ6)S zJJ~NeFnLY3Bsna3Bm2HSnckU1_IPG`a&*DM)S6RMa$IUna$;(I6?r9J$(^=emGWz_ z_bCZag2Acv$tg(F@hrJN`B3uVagScm^ry+tqTstsTkDlE;zS(Y-AWx4i9MHOGgpG+x( z(jw$mNviKZV{$5T^1o*)8Nss?pLA)eR;pgAUb++snv-gj9>p{w)htzlr)t|&C!}r_ z*Ho11MGjY!>XYi98dUI5^_1(88j0_aN~z*g!z;JHiA#;-)sIh&PmRG>UHep|8Kml0 zr3aX1=jPydw#TOyq!y*-rsih16$~W5D7!7S^0c(12FWtYl-9g@GHt;~!Al2I`LqYz z&MI4bQu(Ax97!ElDOZ|0p2kvQ=^~^6sp7n?V#@rGs}V?EuB2Ydr0bmIi_1 zx2AWcx8v)jed$B#qv;dr6B#{YRZJ4#JV*&7^n;m(7=KhtnI;7bGfgtBDy53Ay6xp; z+CbVy(W(h!Gu%JWu9=>>4Y>`O-q}WqBK70;u*|^Bu*{8_Ye5XSSy+WvTMO}YR`R8!t265|8#6nQHj};$x;wKU>2TJ_8kuAGmMQME z15xk8Fq#`(Fb*T0DM-@`?nfW`Fk0}!g2xM% z;#sx2U|qpRSnKo4t^$1wYeWFOR92Lfw576?zo~d*Cgoj~MEhD%BcLRD5lf!K+^LHC zHBwq;;#0+oPr26xir3bYzfSS;LzcXf@|zUZ7f^l?X=6(MN~&|OMdbUD-c89~(qp7= zE2?X zT>c~3N%3-@qMBEC6PSC5@~c>W9VLHOyfi3DleXtx3B_yoP!i%^eJS}T_bO+Z2NV_a zD1VhD&nAsg{xRjnipt?iB5$DNMbaSY9Lj&8sJ5DtR}`;%XXmwPe`KzAwar=P3rZek zN$QDyHF=%%r>czX%rd1O{3*+MaY}D?+nV5q{B#$lCDxzqi*ZBD_(r0%8SF4FI7~s9`(WG`%}JM zQJtEmvo+~IVQvBCKW3RS@}H6aJ*lTr^%XC8h1%DYvlVC`k>^=7){*ubO4^X#si@dX z{zg(i>1@&|q?eGgMQGG>?LH;Z&!W5zX=75}Nv%Ea;X|ZDSn^s$#c@hrBK2C(xs)Fv zWnByQFoGH=mQ&8QFCHPkQBm1MQH`xtXT4|-QNlJQ?q^A_-n&um=}9}vk5RIgv@0ds zNU3|;^^|+ZucNM0r{3z%E4jQ(QNvVJzm1f=mL%2R=l`;~*FMq*NsCC?GssTl7pr}> z@jSxcl*IUOQ9qw&bv>n!;+>61z>Tkr^@$gksGKO*nl0qTs-`=F0ia{WW@JDHU2U3&f1)s&23 z8S1=#JC8Pi@~0{9Lf%I?TeM!6=W5E_66Rh*%IlPl;x+ykZ7SvLd3643$@U_rabLDI zotiH-O85*iZc}?1K1!$+I$NCVq9l?%o3>T)+Cr8oA@B95yg&L=N@DO_273k{^~7LF zeGadR`Xi}t`Xp6e{))$0!Lxh+i+556DBqyu;vo5-lkyH|&B&)oTc|P`doZz*JddnV zAM~lJj9yIInz=K1Os_Zlit-eX^A2-&E2>8+_xj!mikGjj%nwP~pJ>l0UU)})nftaR zjgYn?)fCko?#1@2&r`fUS5Zk`mQpg2^k<~(Tl6VvUumt}fPbhc~V zYke2-j7>;cclt%#%X|8>?Ms~!_Lf?PC0Sou2g<$coJGE#qLRI|UdHSB6D8jD&*i=+ zSn`D8jT@Q!2}>4|)+P1&L$4P4t1?=Kd$Bd?qf{Ba4kcdS(ucfvXG)ptJ&$&HJahlz zQ6({4#Tzbj@1=Ys`I|hRl-H&YAkVg@?N_|^u}4*TZ9n&FNS^INW6vNPaId#m@=50I zCcmBKXOUjPGUt)9Wocepqdw@=1Z@!aVvE)eaxbrE8>)C2QdHyJ)9NW+u$>CFGA%|4 z^-~;TN#1jvJ*3835Z*uH-4OgQT63Q9fGRI9RJ?5MQA)htshN`K&6Gqxmz2GM zm0WM?@uV|Jy*|)jt~YYKLdj)JNo15f+pqQ+k9?RV8*yK@BkA=>Qc1KmEc0v9HIzI@ z+MkqdO7parnk?AcYrGF)gW5~{f%~$hh}q;mC!y2_qE8rRH zvgDVF>hnpnib~d_Y)JlG(nh3bd%W6L@2z;fH;?08XDdp&Q*xQ&wb7*PRrE#Ni#?Uj zqv@VLe?d8GR`1Cpct$s7*4^na$`9G5`S5$kKly^xc$iG9nidVHt z@p>oHj-)=))ugW}s_i6Sps1jB=~t28%-j*=`5e@|K8p82@;=BODp&U4KN_NVeF*tm z$y3t=uSah|iFa?iDqieURO7$UFJW$+^w+%d*O~h=X%k9*LwY|YwOLXsDn6j3J0)zJ zns*%5g}j{CLp_m&EYpCJ2zibw4ezQfCGq`OQA3bEqp0M4z|3+doNJUe7xTpyW7Pzs z)Iy9>OPD62)M}d<#HZC`d|G|?IYf&!ch@3XtR?nLV~*Ly+Fwzu_SIOtD*s@rNXE%n zn`{x@U-t^$UWfM^B8D-IxWt)G0iwkOqPzs6yDGmbqCWps@~S-I8-)5IuA!QI2e#E$ z9ZQv0{F(O4m&un?W%K0`1A+G;3Pb_pg&&B0F!04YL^Qk+1n(sjTCG#Q^{}nJjri5d ze`yTHTxnB9%che~CjFFD_njlOuMd+RC*7rJneMw3@&ly1Np~oUqapr5o3HlO7J;S_ zMb`tV6f^Y$Fo)k7+np)#q*z6rc`A1>=IyoeGPQ5{4;2-wNLNzw7t&dz&y#j0?W8DH zuTwODXlhMAYHR?1En*nY@i+E2^*8so^q=cL&wsxE0)IQiGG%&8<-8vv&}~4IcBk|yFS-+E!S~_ZrF{v2{+|7aGSc# z-4^b-?s@QcXydkXJGd9SJ>5y}-R@L(n)|4`$X)5Kf~Ky8RuA}(ydZ|a3qtunbff=6 zfBHXM4gZH<;k^-0B7K|BgNjwWkKPWC(%a!BcsuMv{9v;RZ-)~2IkeW#N1WhAh(LTx z|E)e(Yo`B2|EtypZxdLkwbK{ryS4WE9@$X4MP4MkXiMeAvZwZxyi{JQJtHrZ{j^oG zzZ|Hom4oCU?Ik%_4%Rlv8|01J%W|X~sl6sg$x+%S`3w0A?R7a;j@35HadN!&27D); z(6%bC3GER5B~+~66?%XAOWbH2G!E)F8D&P9K9ar@H`8}wl&_1gt3D216RY&`@S1pD zzXM(q@9UFPe4l;~eJAdv@5Ha@JMkdBCjLTyiG?bfPk&TJ^XXeuG@pJ*Mf1rL70oAy zA)4=i97}JCE3vXwz!*$#ifidjF^1k0x6+$p9K9)Sqc_E!^ro1lyeW*2u`2tQ#%C(t z&DRj|Zkv7Qsn|5%JIb@dw@rCg_zo%G3E!tGzRY(*c}@7r;5G3Qg1`||=C=^JDzpXP z@}2Q5`QNtx_nrU1w_ML`4X|FteNF|{qQF|`xdjJP3`-WEC<*r8&E(nW#8 zky_CSj2kk7PB0QT63gLLlY&>x;PlX7t!NQqdm6FCBf+VOiT8@OkI#)RN94;;72%Q)>B)#p5~0@VI`JWizA41Iq^BjOWjY|jC6+jv znTR^>g{iBVj9@|3N@B3`w?VB92zAa(Opazu%2wnf{v@$A(pE*FBsYdOMIT8G3XO=A zghoZ%N1BDks;dh3OdN%G%_E4Lo2{ZsLbDVbHzCz6Mi zPYu)B@G+Fw5ZaXK8QPjS8k+(ii+P?uO?X_gtBMnW_tQws<(8yX{K<*19^IE*2%nMJ zxEC9hk4_+$kw)nrk!GnOhWO_N#>ogAGOofF#+KN@(_pam$6pOfCD{ArRK zQE!V;Cht#!TpVpf^n~)OiEfYYNwiPTiS9}s%X`+qH=|8V&n%54;9-N#2j9c7Tp|`L zjE{*mj5SH@i?#B6YCL}$Y}1z}c4NF=Y&897M#rWkb^6g%c+w=tDPJ1QCAW?(jjc!? zj*m~4C3{03SEt4(ubK*DJb#*mA3hl?;@whxG7l$)o|;ly z5<}y?PLJqJhWuY7hAosp)&b4R7&6={s};K}6T<15mn%tEyGsqsap zqzB?N(9fSL&2P_z*N@`oR($jFMeqXxpXmTEpeiXn7JbUH%*6EAGo|>l^jP=?RZlCq z?a}HvHE*p{UPpKusk9~jD!yLYi6@itJyOZ@KY|C6O8Kink63YK34bDh`SEH=c_$@e z)n%FK>B*-`YTm}ab&!gYitz1=r{aXu5}pZ6%IhhgO5yjUYOpVSpcJpXpay@ZG=Qa) zevPP-M&Zdj7HM)tngGwKJgOmh?mP4+ymm{*bG z<*!OSL0>Fxp)7o|5}VL^knl|3o*I+bjLDcMYvm>7aix5$9#1Y!&8RrXYW^xet98kBsXg$tcsRMA^f2j0 zY-8L4x|tqT@S+0GJe8kM$zzbhvns#s{VLBY}Pp=`ZvUbZ;qqg_K7SED7TS6<6^;ikrMq9YH(h+lJ$OtazCvT|)Y@ zqT+MfBE)|*M(4;|l||l)R#-_89qXr29x& z3)P}F>lnA;p9+;L`?1V+-i<4H2NV^f5)x6w|5kyl0H*WVDU` zB9GITbf%&eQ9g`J^5Q#DgOF>pNJo-JNoSL8S68n6hSwic5--YA8^r%LQAy;z|F63% z0k5jM)@$v%&pqed0~A6C5|R)QGC)9PwGW&{1Z0STT16xz%puSuAYhb1Kud+9GSBl2 zg3Obkwbb@u0bAdDPQ2&$A!?6FZyeh(uS4fEilUXs|O_HVX+Ss z{FV5~`ls^a{6u_q%G(>oK3D9`1b->`xcJWzd!k@1!H$9-2>#Jv;BK-1RWMGlszLs5 zvFC_g-tt~!58NjHO$D3C+dqk2)?Hb81Wyp3VM5Qh4Ms@QN~=(90((+mQMYv=z`z>>Ugg++nT$Gr7ihU+N{(9I}V^{G832S4( zH|4G0CM%0wS}Due!hQ{kG%Aacg)7aUUe+`pnrW3}W{Fdf_?~a++E+g4|L1K^=bs70)=|{elbD*W9 z>&rSf61y!Z;}7;6OxrkN@G{cRH%rKt@>cqws$_h4nP8rv^zjG@Y1t#=jq-M*#6Ml^ z($l%O*!|H!xF+r+KJxA08OE*}3a0yZNnNC?l{P-5GS*`ExrHx{oli)yMamzyrPZmA zTUSHhd+3#GnG!aGG$tSl*toOeKa*(K86gfii3T^?pN zC4Enu4p|hRGom1mI`l2*J&=~?Wf$c`>RKZVUA#!KFl^kv6+<;B8Fy+mfW-H$koUd^ zGTxbx?e0l^DIfRQ7ZbG9KA3q|vXKbK@2Vgb2a?0_R1ex-n_<`UUdV($h~3g`NOup0 zJh!=z!-P|~fmIh6;Eul&FPHGFy zu-zbco(pZV1vG+2mxQ*kQ(YN*<4L$lEFHVzH$#g3F1jBYWPgEO+TMt@5WBZyNKF$|Z1(kr47;RLM8mFeJrE0T!9r~S*s?z}t&CGRCE|Z#re~ibvN0hr?lsh-l zZM76PZd%01lZ-K~F=7c4SxZaI6TS&O;o=`OnmzD7cql9$xb65TcX&R``}L9U9rHCP z%{SgVSyArQk#1K-xw}WXw@11|aba%IB{VF|jr2lCBi&xpFgL<`W24;1Bi$9cMY;Dy zx+{j~5AjvpANjsguPFBcaVxaX7@xwG+m@KqBSS*7nxULV3ywqEP4Pp;)b-7(y?irv zp>I|@7WwPy;q3+A=IRr|-W&JKNO#TK!rUlF&CyZrBT?>mqughr+$W>lerd|uZ%xzQ z{C1(}4SeHs`4siFYP#vcn9zs8v|#;UMzB$^ajhmf+8Wt%7$3j|D%$8Ll%p z%XJ!Ox=vnln#&4)8vHEycRLQJxhml#mpR*2!LDM**j4RVyPAF28S6H1Q{AS}2^)Y; zdl#zgD|uCI4Gs1Q!Sm2y-vpZLZ-pk<+o7qxz1PXh^tySEcs;yqFW2kq4e$neL%c$7 zm^adU(i;s8_7kAF{#9tK{{zaC4IU(i`dIN+Vz5fE=69S}yCZm4@ZRq|v-Zp2$8v7% zEKa4F6KUo=S`9niu4yOOiFT5G&>8L4aO2&ZLKo#cntvM2KZ{n=OT}q4a~AEN=g>NO zUA(T)V*4oc*ycdjZGUL89SmKzL%k7Ru{TQ2sZA_9pH_*qbH6*;>Eg~nnKZ_`$DJ&9 zrnECN_ApMADeylnaRzM-t)rJ{BWDZ4ztI!*6#cw@ zLBFV{>S=nCp25%Xv;1qG$iLy|^empFXY*wKEl=U+`2~KFr|O|RO%LPgdb0klbs}^m zbPVaXgtq?Gv=-WaHqa)VeA`AlXcz6JS8?OW-MDGwUfeL!9;0hV?!=wB3up3!oW)%+ z+VDfnm*DIW(*#q zQ-|^O^W!vS{QelD;=^y5+aRve*i6jk?^?uZV(9>?RR&(082z|Rtk)`!jB%7PckoRD z9hd^Bn+>4!)zHANB{QCP#J?Z!)z#7l3-c(xB(-G(d(6knb7qrMLhVvZY598>y}Ca_@Rf&9`pUZ+M2$6oh0GQ`Eb~id)-n> z1~=I~;=zgS>r|>b;K_SLJ^ij*YIVV1^}OU6a2?W9SXD^0s_8%I-|PMQuzpLwp%3Xl z>OblK)Ccsdyqs6?N?ygQc@3|_?&E9vclvexrv9@&2=0G9a+HWZ{$odUGlH3M$IMJj z&6zK=LYf=EIKHai!W`)8#x;Mm?2K5tmBfEF@fq#``70ZV6jpf>aL)U<{yQ(ly66}B zYkfk0sZZ)t`ZJ!vGkF%z<~f)r&F6)@h!^t`eOiB|&+t56a8)JqQIuC@uhr}Hdi@f3myP;my$N+3034gp5b^XMbFYpFgsQFCZ*^l+)vNd^YnbZfb;d7a&wIf^&-6( zsR^&;^HYd1h#X;k4|y4kTof>7M3R1jq@Sdh>eb-agi3me-c*`0N;M~fQla#@J`-^x&0n~1-q}3ACzo%8Ks0yB~%K}Qvt+MoWv#)~XMdqmAs2&6&+udlAzW38 zkvgf0yuU38%KdW0US-_`Hw_w@(*i2mOz`h5@;#<>5g-`4*{a}dW7^N*gK4Gt)XFRqKR z(ySI4$+4>7yQ*QGqy|=*lPDQ$Ky|R@lY(}cjuqPmSf6f)^^+#D&f6O6!H;3y*9WWA zd04w0jG0jp*0+aYg?j>Yj{ce^Lg(mn!vB|Z782ghrDcW9jAW)@TG}>9$(T6;S`|v* ze+4?1d&v`+jH!>_I!JRz0h9d#5oyGL+2)^vAMYq zH;|UyK8jzneXuN6^kVoBO3##jrC9BC_7;1qz0KZX@3eQ>yX`%Z>4f4#iJ_!Wtx#>; zA9G`Zg%7|4l;d_&ss?MUHZIYM?ME319;g7GJ(-g3v+j2 zB)d0UGqSds73s zS26>&Ii4B{ZEiw6uA`eloBebvYU?m{5UO;tKes=pN9+ss1?uitjzy26&f=(t(5a`~ zCEHJ^)!%95w4wn{rjtnno#D=K%0oSlr9nc!ABv@>8|OQoi$Fxef!MV=VSQ7Z4abJ!Y^v1V#YhzAe+;yCDV%Ag3#Y}N7h?%NZ ziJ9hnD`vWLUd#q+rI;CNg_sR7>r^P+9l+Mu)mJECJ75k@C@7S!E3l8X7uXm3_lo*i ze+CZ32?IsN)?wh2Y9VIXr*N7

!ump=_U%Ldm`W#$)AJp;TW26LE?`p+s$fwQ%}C zp)_rQwQ)K?p(H1P_0%F@igOy6s+I!NoUefC&M9C6wFH=<76ThvZvvY*{{a5nItcs^ z>kx2;>^F8t-t)kF7Gu}(Iq=tW!9}md%KUEJpnCxN3f`xq*oQn#=g@kB*o}-q`$^)u zTpul{CH5unLL2Ic74wJvRzy#OTE(FEdNF$;R^!fr?71;>)f!{+DR-watweX5F|jN0 zl9&muSz|1A6WxtsCb^r%tmVEeX0p3U%-Zf2G3&Tn#Y}Oxi<#=~5Hro)C1$$2Tg(i1 zkC+W{b_4b2&Ik5Fe=+qp2AGSJ6R0P(+SHH>M9x-#M)B?fV1kR9L!J!9lUzgVTCSmN zvTLYZ+g%2%<1PoLxGRCF?kZrKy9Suwpc>V@>NRhS^5;=+bbGr4@4Kpm)dO z{EBH+&4K-J?gaTkIE@{QQd@7>%vzhq8I)4LCWxUI<_!ubLTX^8>@UzIf&Q+01m+pO z#M|a=@HTocdz)~x;1+MIYrC%NxIwp~Tgm+yPMI)%^(ao_yn}lWK2{UJ?~HNAg5N3Q z>&@-kkZvcJUF8N`?OJYi{3^(Q0h)15VT|%FpBmmN;h;!3D8nHIaUZGwJF`=4Y`Qdc adHZ(BTZNev*8X&ls2nqVA4NVRa`gZB#}q{X literal 0 HcmV?d00001 diff --git a/docs/_static/fonts/Lato/lato-bold.eot b/docs/_static/fonts/Lato/lato-bold.eot new file mode 100644 index 0000000000000000000000000000000000000000..3361183a419c188282a8545eaa8d8e298b8ffaab GIT binary patch literal 256056 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

LiF6s4qCmqR)As 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℞{!~>f zqbzX$EM&>N511`%!0u+_BX*x{}O$V$y z#fhhza$SSB= zsYRq0Si%MY_yszCRGJrGGN?&+{XqzS1ZCkyPfUu8A60(i|6OGkRyQCI;PvbYD?{1YCWWjg0#waK9J1c6G6Xu@%3(<@68H&x`1aY9mH>W}!mO-Ox)h)o zvq*erGA^R1M~*2GzGnekIZyFNObG_f`6x`O-D}{Izdcr1j(yDf6XTzR^-f3ev1q73 z(3LvL(~9Y89u`&x#t-i5)M%_STOId7(pRWEHlhXb=cc4X2sA0aVlkur;#1k zbA69hxFzfq`@;CJx!4SoDRMY!qBq`W%ZWmLcZdpz5J40Lso}*G>dCsar1`FhABMED6Bj? z259>R?C^5y*HDh&Ua!EisEjHR;P;U~^DxQ}QGMs5?C|b=<=c}Rp!W3xorlV47My%e z?y00YbUi?Me`8_6!E_*{{udAZ`FD`EI(_mUe!tYmaChAg=7$H(@#;ThtHxS(%D*o? zOSv#(NBf^;;#xkKsJ{x~w|c`+x>s(r_kIVs0$o8H7Z8kB57~Ns2kc;Yt3gmfN*@Y~ zo|RyV*TI^f0sz9b?}lh$v_|sO$udy>a`^}#{4^yh!af?4w%vYypFtI4O2;(!AtNHI z5nn;6@p(}Y;4CF%Zw>sSx)*(KkH}SQ*xw^D_(MkZGur6qh#@Fw{x$Ycl$4~GA@pG@ z2dTh6&_A)S7cOcNhD{L%`M%Dzn*5b`4Qcs-uoQ<%ZC^*{UbM7fnRR`*%)9gtla@-; z?Z|;z@{(c%&ct))^<>NRG(R6(TA-P?FA-DPboy6TPu=?-H5jCZdOq;fSnaKMZh2uB z)5q|)EIv7xHz4pU9D{6m8TntGI^0oVw}muYEh^&Xjl74fDB5`F`~9gkAIwMzR>Yof z7RKj87^MUz;XwDPA^!az?EAlJ_l8|e-iE{@rYvxHqWm>|75ij2f_~slwiz*^M+eyQD0W-pIMGrzzSuGv)3jdSdx(5wC%Wk z4+a;UVog0&eUl>ALR;56S<*j&oRfIA+3=yi?k(jTD?_ypMuoLkQ9XsVmnJOl`osS; z+I$f}I^%uf3E-_Y=X_uI1($*&#F_LY#9qOveK2#0>uYCOBX?$Tels6!xrdu|ZuN*Z z!;>e)c8Wl1Y=!;zWv=O55{+!Rm4n4yZGSK%Xqs*!U9_K_GlaZSC>X}**&mRg2E-2z z+Pu5Jy(}45vOn>o)VRH@cmFLxL-*P}#0@=7)vp(Dd!uQ?&x|8Tjo&fcuhYXIJDWMo z56%I-^`v9>cDZ<}=Z*_s`tIyx!usg3BRfC$>*w7vE6@mZ^7b3xt!rQl8RQLPBy+3$GlB>SRl*)B3-#@}fq)l*K>>lda$d^oT0pII?%fZD=57p(RjOAsfSJA+0 z0x{qR-FDtfYF7bo4;&+451U3{j^3^EEp5;Te z9>vDp$@y%w$VvqOSQ8{As79K0|F0Hig)$02Y7k+CUQ#Ye`HWI%1t9G{S42?K1{$;f z$dS-)+S%@*mF!`*9DjX7R}j!UsD#8U^bEedDG-NMg%oNJ^inR-UHF?W76oA@5KvHT z6lyOlQc^-qam|gB7nvPB-K|3D|Fz9n)BW1}L`PO8jKD#>(pXv=OO z`~-iyzL;=KFJNT!M%w|+VeY`fQM*Gw(Qk zJm?LCUQMj;g`RrpNYt;)jN(w}<&>7T1VHqM2)4p<-ak>*B5;)zkqif7NHDR z!@dWh-kao{btywHDC9J{--zL`{#zr=Ma+jUEv*qo@k8$-%k-DRGIK-=Roxro ziM|OCo(TI@{5TZp4o~GPbbOAt6gEjgK+W3uRYLn-F1E)ssAS&4;cL3xIKC6ZIfSxA z(IO~{WHoHV`$Hp!KROWF@ad!0MnTr6VeRhzCfwAu>gF@5Knb zktUrZO8g@P)Y3!Q&0`tm3HF*eMPVaiRVLPL-PdgXSnc! z`8qd>`Iz#1%*?WAi$D9{ZkY1adj1nhAke=c5LyssX;AzaFv<`%*|?Dp{m>^m;6=b# zPmU}npwOwJk&=KFDqCH#Em&Q#0-ewDO5_=sTjd!}jUHug158DQ_TcuRR+*1+8(#`x zTN2tQyB`Lg=Ux|;u|wa!pzs?Y-8d2=pkN3)Hf@hgc~D*oDj~VQ{TJ9!i zaimb?$wn>VvC2j*DQ#hqwYXmWTxcadWBxI!{~#g^z^xs53yeK~&v9A)&10UZX{PNQgpG zyjQtMX|gKQ>@o|c762R5+T8ov$5X5<9Xu8OTX+c|r!4K_jMFWyDrjfEQy6xrioGAU z0nL=qTA89BP6(h>EeT_`On!Y`=xD+!8;MM*#l^VdCnBI;E@ybY&plofcBm(|x0d)M zXd0V_x;kSd;?EBl5d4)$$x$MQT65d{Z)D(vF(G?se7*Q%3> z09^%7w1tLB60U(S^1x|6SWOW9>%X3usJX4098Mg*>33I2W{)colvBI z*H+bO>9X~ktOWRyxUGQ#rA&)+Qe3+AvTJw;poim4nfePQ!hmIR7eE3B zttt7P7oe4I-Daf6_93CfBIpimp?`aximK-t7UZ#!7~R4itDbuDuTlL?nOV# z`(G!b2-vupUw0e&T^Q3-n&Uy<4-1Kg!qqN?r=*LZW9PkQsf}79E@CPqm{;Kws%W^% zgZ&=*Z%T)3nBGof>nVgre0=E63PYXImX480TpQytVT&*GF%c1{y&oSl&i$TBxiBKL z&}Y_)D_`rL$Ei}QW;Ww2 z_PqFWs(CAp+F3=GYWYg6)$(|1=||p3)28FBuj8!Y|MV?BFKk_kwLf^;GR0J6UNFQO z|BYm%@k*dPOzr4cbn|(bi=?{3b>?&*LMxm;D8o2JpkQ+!#At!QXq2xMh zmK!EV{N8*t*J;= z`bz*jB~xLl>F~k=7yc<-o|p?BzpgrSBf@Wpo8@JEH$P@Y6tw0f7bz^0>_2%UL6^C; zn6;j|!PO_B+jujpuk|JHSYr}>(9y1K|656+}<>5ZXP1Fp#* z^eyxw6~1l~sYJx|N1awz-TTFR=`?j>_oKy!wX3Ik^N^cnqN4@@M94oaZ}W$tcR6@X zhGjS(^rKkqY|~74pm=sHkE({!>$<<0IB@?=oJ_OQ>sny}D|@3V93k7%>ka`g(}Ouy z9M)l095yOeZ)E7y&CneDrfgmy-PPOj4J-Xmh+?J`wrbMvhBV&rD0QJ$8d-s_l7&MEo= z2R~aq%6=OboPff| zq{3gjNdJpNqSvo;tr{)fy^#4Pz}8tqQusz|4JEI2;DaJ4i@E$O5|+HUZ(DlMJvVf= z>=7w0ESIC;{Ft263WNWwTrw=$R4!*&6`M523h#xo6S2UGvu2vogl3%CH+@=U`RWmi zMGP=-Xb)y684(k3OERUi&dqh5lL)!oLL=kzILTzfhYGL>qb57Jn5uO?HOO{@Pbx(P z8M#Ain+R2l-3Vv?TEs(9EZ8FRvE&N)$kH8Uvli2C)?%V{$mnlmlbsCD^jkNe0b7($ zuU^Y^z)QHc-8(#{yu1+wug57$eU|hK_~f{M1ut!g#EM0c(EX+lp+FZeGX6)OF*I2E zP4QV7K&#_hz=TcHGjB=LYh-7@=xb}hsNA+SINLL1K3W_7xWPGpbICVYFmBF-S?nBBnngZ@jet7MNsUk&^{us$ zG7D+Ep$F<1Z=Q!6%;;sm)0|lRGizlPKxL&_4w&D*zq%45{ft-oP-49Kks~kL zVs!k|0yAx33*;%qC%{FcY{U!txLpq(e%~%6ud&}(%SlC*23#S5X8hyPzI;NlVRLI^ zm#QEH6RJUMa-_w}|63;Jr}+Z5?F9!6G~01*;uwxn9!uXJb1+ z7C3qXLfG4yNr1eD96Iok2+=W0C&ndpb)jCeU-7_-UI_8SM~$B8Dd8H1DM$yNoGkvS zEPbcs@1LPt_`QX_?C%p7O8bi%Um1RNB>Ypi@Wi#}-?+z+7~zB^0N5jlO;UPDTodt< zlWDN+Uv71}J$v%_N@-R8k4<+d<2yMb-q^0E@?nkP)q_KCl4RN>)5yg?mXRxzjLoE0 z%Cl~zlmj+p61hH8lw3YWB;3*-WUu>5`cDx|SkO2)&`T2Z4mUad%#}omp2z%Qm+kG{ zDwq-&nb6mnxW4#N-cM?p7NO!ql4w8iKwQj|1E)bNp=c8giCJ2ISpmsMB!D%&L%)5- z=ii5RD5FP`e*1|jH#@Bx(B>ZeDeYPj;X0j zRT=*fPjK8#f1TYCj$@i$c|%!_!<21>vq@9pvctGo<5iw%xzaRcX8y2CVTNNSyh2d& zpy~*d$0=uk4|cm77Xx1w+VlPKE9f+t<{|6Roqy@G_a$&AYtCd|MMU(;!0f(vMI;Oo zl{#D`!k2B(AWrO^O%#)^Eowti8l10$<)?&HS)YR)_4c-9q%!h`j?-!AE~jB1`mYX_@F9;=B|2P+kg*c6{D=9t(_ z2*edLD_3mBPx#*3*ADJxi~phtI*Tp5W}j;T%@+|~nAI@G7ZDbE1XmGZ*+&Qx5tc&c znFlelI#GyCE~@HT0*2~^k$F&Fz!S79BkN;u-=vVLUXX|#oY_Lp$9p|X=l_D=(Rvmu zMdlN1H9UL|R?W<&$*dwbToY}o9Ae3N^P^ws8Rkd(CVYcy?s3`xEUI@~ObO%~~g|?=vO=hv@@fk7JPPHhuD0>rX=TD#BC4OBD2HGI5KJt+%mF0}MndS>N}k z&Jl(w=u0D+HhC!TM&SCUJ=$)nfGPRWH_j#^!E3Lmlk_N>p1;*6^5U@C{HES0Tr-sF z#r7n?=8jUBEi%<`zBEY>i1qyKLVPBLESXR)%H%uvL;=5LWlvhiFq34+!`{IJNomUy z>R>X%GvrYmmRWyWY+&_n;c{?#4RD~3?5}Uci8N7;2(Y;%e^v8o=Eq;=qRb@TC)Qbo zrQBNDK32Ay*SN2;$?ha52goz6m@6JFRlToN#TG_(_x zS*tF0Ui&1aWu{;9OgyB1wmK%+AXjE&3-^jXgK@tc7?P%`_U&@NNH`X9ZjbQ`j;>(B z3GGgw**m6kx9uoO(pF=+wi1n%1audD!kIn$K%>u46+pyJ+%&vjtu_qF#2N@swP}{!f*A`hq z7r6!W%iDeE(=af(sku9lTbsg$@40ztS9>(RcLM}y?C`Tdv>xxxt?8%q6B0AR@$nsR zb-58jzNTB8tHwniRug^H!hrc4m|3Bls+C5qPo9HAumKH%fkMf+evsStEysVN`szFW zp@-wHUz5~R=_IHr;$pt%U(wLEZ25cQ1sc`y=5kzf2L=E;?!HrH1*wNPKHgG2h3L`8 za-yOjvqGA6T~fz=Qw>1xbl8TMtwVkQ5yZ5+cgMHqG3orlN2Xq9GgPVN| z-`vlKj#9PNVfsLjNM$vv2NEs9$PH4ekR=)KMRCFw*La$`pZEy-PmQc9`{;fG(Vd|{yXG{$z1-5pvH^v z6fs}Iv~vr$q45;vw&yZkm_Ef#Nqz%^Ve>X8aK>=s2!Fk)FVRoON2nq;e_(y}0`iR5;~ovG zWZOE!x>}0ot%hBl#k=HlToU*l9gTBKGE&u9=1Xj)B!>=fqX7NGV}->&TE(>Nl770j zZ3}y`g6g}9I25Yi2Im5>MF{#e29q&l{C5`)v$GR%_>)ir*KlYKuF~y#2Q^+#^&n)#pdO2Ntdhq(++WRIwq^PWglZ=U>sX0x0@9E;M#Np+6OVZ}2vXzS{zL zS&X8eazbM}+^HO`!lyNqR3z-yrTV?vFYQF?`?ME|fR{dm{*Sw&@cW~jxha4o@J{8J zK&syt+j&@QrBOg&xnYPQPx6Cv;DgmOdBog|ASEMof{sR#V zQpd~5P?dAnyAW)hn6tcFt+g599FJR>?i>1kW7M9?5<^$YV1#H)lfGD`lQb(GA+f>0 zAVmEvnF?tCuz1S)UHlU{bO)3;Bodxsin{o z{q-!LL&6wCCMGGA5Z~dYlzsDEm>sT&C4+6B1;gW`!Ru2W1nmWOmsl`Kq+(X2Vj9B@ z=p;_^o&IYDQ=8t?1YOI7YP*DLkLQB2lv(?ZB}cDOuq=zgC~lvGX-btS=_-_t*1$CR zo$>6<0!z*UC6vq5mEsT5&z_M1f@MZ&r<+K${ zF6HQdXFUHnSdY>XzccPBB0t`fvh6@=^P#jWQQArgMJSIv~CF*%< zh=<-lNsz|ktY|bKlQ6`_nouQfKN_%-YWGg9kMXUm_b>_%_Hp(%4qLrHNGZdjUM%Ba z@~t5ZB8{iXXC!R8W=UpB=8E6|5gM%-t%ZQDKtOQ5HLEg62_*l>pQko-w3Jdla`mRp zU_~^7T@BSNZ8f7Jg#n2C$p}L&h&hDb_`qUK6X3=HGZEHCST(nr9GO1G<#>QAjn|Aa zUV!Wn8A`yOMYToRi z6EL>ncM~49*DYXt!%J;%6~r#63yfLmqIJE?-I$^%N7CTl_`YmkEm~<%Q5&TyZSaAA zU!ff(0eQXo{O<)fU$TWn+W5zhe?5Dht2Yhu-4~LdNim&O9;dh{c;;2cr|NPG4vxN4 z*xE8qNsa0J{Fga@{QVAZ3i-w}0l}z`*l!X=MfToFkc_+ZZg_P%(;A zot$-^I4(smQCR6Yazt%n?)!f~!EsZT`g$)2b0mvpq5Bb3k(UsO!Nkg?9y`sfA5f8# zV1f68WQ#0;2D3yIH6`tn(2f^QRIxn7Up`9nH_(wc+JY)gpX=jYi3(@+iNU1~$#L8*OAk)hpfeR+9F zxw~H8W>A4uH;3!%bcdq1uYylzI>qc43#MOHyEK36#+6{FFY%ILhZW>`Bm>1K2PUwR zF(iJEd5I3!w}cKH5^FPkT^g-ZOx~9y9XFO3&XRx>x{puDC+~dKW`0^hRq!*oc*35d z;AtT7=jR-L%ZK85Q`Rt6Lb$3Kaggmw)|_&!lWlI!Z>Xdb{&mBv*?Xsk8$bzB)6SmqAZ zhCYiCtt7Z=NsCO*C)o2;HI}b%`wsO9&t}{$w?rg;74t+U%yhy^7c-|{RJqiDoy7HL zrOWXOv4v&k=_OIrlg>`4CSi#DUcQG7)i;LD{(Y^&Az+f z_>aV$G;PWQ;v$at*g<#V8TOL5J2i*#`5y)L7Mm@yh_^WXV+H{vx=*c|c4SCa_|*$# zzei&23;iJa{&V^8u-UWfDLhSYw@paBRrBP{FE*p?Z|o~?2cvcqDid{y1qIz(hzocv z>PTxUH8EdTb2=q|WF%pEde=AbnTSAsYga>>U{We)L!*kwL|*=6pc@}=ZCoyX4YxVf zMLfDmC3=7ge@F3?ZU_4sI%Zpsa3Wqq8NWe6)<-UKler)@=r(T~H|mB}-eQxmgg>Ao zYuhU+RX99+n=i&)TuzWce;c0IPTH|NJ`pCd-cnGce`~icnnxs%DwDROO?R7uS{$2cbx^5sJ@eYo z>HGV&n*5N^IHr5i-H`X8!`D)>OZbK8YodqGOdnk1SP0x!Lz#%o=dW2GoB&&zI2YJI zu${yb{qb>l)RFObxPP&@gcJ3NnOM~a5>a&=R%1ySav~k6-7yG)>E1x$y*+sU|RrPt@^f zqsw(J4#)Pn=*nBXzw9wSa~P`#a2)T*jWu9l=H;+wrheA@Wjs4>)04@{nK)JztEA0I z?+aGkI}y)=6jfnneGg=vYUVo}SAk|#HOYW?fgWmAvBf2h!8v2%(OBUuHIi*(l7VAm zd8)4yud*FnSw^G?mI9(jxMj50zx9m4_zU2Y38PP>_tu^-PiQ+vYC3c&7F!76C;*E{TqWgrPZ9Z?acw+a(DRQXrL66A5NqUIOycsyCL8&gQ< z#6K5Q06QfZtXSc{=clyLHluID%ct}e*gKu++F;TS6hH1YAP6S&-|91Fl6Gny?KQ?P z5Ru^Rdrv?>^R=tH&5xb1fW)7xCp=b6Tl{GcI}L%wDPDIBseN)+It#lkEm4rRhM!Om zJzcf0Uwt1tQ?Q-COjm5U-VG)T-9>oVT2DMJ_G+C=KAKI(_wRDLlUDi3C#RP{Ue!L1 zMyHi#>S%o$+?Q;2)RM2*zO10IyFI9^G_bLhv2xnf)r9O~X^8Zf36+JZ&Gh7W%l_rD zXoX2ctDt>p0(Cohx(lfs!?Td5N~K|0HO7~E!a>Li6Q%nZ0V7*y$`Mmq^ZMv1ZgVZW zhVJQ3UD{XP3DZx^c5OwLXEijXn0)$?hgz)$0P5qbnL|xl7?ohjZP!nuX6rRgvIoO4 zFOf~~fk8bHV#B61jO??~vT7+cd8Qe*4nTw=9(=A7gnKkG&8$N!;&X`@w5p9L1qw%I z@tfU-*nZ8bgs~$!O@f}2$y(%F9l6ck+SiLBi@lD&SV#qX^Gs=2UYw<02$+2jtR+1Y zTCe%Ik)9#oR5e)sOGs$A46iWV--B9+?&C$-i#|Sa`T1&^<8*>&9)Rj^t1pOa zKF&XpedZALTkY>rMSEN%-oM9{snTZF^Rn_LRuTK3Wo>BZ!^o?UYW^}7rzb0~Fh6np z_z6^1vgwpm4Sr48O5=fl(3F{1yc&KTF%=bY9fw_sUCMGo^6|Fge zDV{JCs{K+uGKe^S#)SS!?u>l-+ZEiefoE;Ht%as<_@*%`wjo=ki>7C=_q*59b9kf1 z5;_YFP2vH~NsXPH3|Pe)3Y011VTx9_8l)+6EKYD{xH+AG?Z5k9@DH_Vw6czai;lOs zy~kZ*7hO4VnS<%MZJB%C{#u=LVHrve#BY`yUlDKh59l{1%S_T0I$$g|&r_s>rTl?UdAB(0;m~mk_7j zr~dvbzyrTS)9*GyPaulB-D7NOOu;L04&#)cPWg=9=~@#MosmhCYy#;4m+YlL zM#}Gc>jSM#h6AfJmyR@KgFd!bn`pSHeb;xyF`HVz6=ywhc8Siu@X0aPj@$3wQ~5Ni zM)2R%G?Z$sE}X3UTDiFP1z47X1XdB~oO83s0#S0rwy+x4)abPzp>7?oRPy1qzh5R35ZgX|do?+@ZKT!GgX0%=i7BnREWX=H8vz-8p+-W|PX# z`-C<)%Q}m8<^_oza^gTcJR~9Yf!Vh&X-W0O6IyI(XrS_t&mC&cUEXMHOG;t|Y|X-# zKDGZ&1st2?H)~Wp9(*T-y+snR%b#O|O-Q8Wd@O?cJQ#v%R!FTcdLjf~DlDBcBmgp} z58(jqVku*(@272O(s>G-S#gb>y=p^D{+bDv;+~s)y(0n;7Hb5^JIU> z%{e6GVEVwAKGDTlV~>BJ&iLS0mXH5|^43!@LYf#mJmTMWUeM3wuu^brV-3{JOeHE& z(x8ytkk?L^MW4Z=T_LQDMbKgPxA%G@Zi{))zobE0+0i8I$}LP*lYUIJMbbG2U#BvP zt4`MHO`?2%&YU@7=0SFsMRRN5%UpTG{hL>X@tgo3UP%EXlNRShx`Y~5&s$#C@sTe6 z_{)A9TyLgNRymEXITxwH;;x|d-XK=T`F^ZGA=3XsPM(qoXRu4=2}lo0Q+SE7&dutZ ziQB$Zf$cKYFd&?Eb^Uy8 zFG&`tbCGq$XTeCxr|X3*G;hh>H*6+F7@0oYBCCC2>r_#;msdQoD;!T6Y_yyo*9^*3 zrJet?^PSrmlj{d)@<#2!gT36=DuPn(`Y{J{^+k`jqUOKw-btijcFdaRWzKWfg;Hsx zueM!LKnK@|HK_psApDu{xce#9P<7^WXHmUyj zU9YRrEZ}IFM61zA5sa#v?k044;k;Cg3j_0wz6E6!AfI7-nvcJ?S0zRmpAnZD9KsrF z`(L{Em&=+BB3$GrL&v@NiP%D>|E3M96BY>C5lFpji``5tmje zj7S~l8e6Bxdmzua!5e=??P9IaA_=_bTO5~4w>35Ze6yh2@Pu8lN_ZMxxW-rKv8(B^ ziB#05Q~n9p%36$Z`q51nK}Mx8FNuB6eK$rkjh%QBhaIjMb58W0&?4EJZs>NNxFg}~ z8oft=;#R^fvwSH7CdI0k4c2Ohu3L-}BeEFVa5;oE3-|ozW5CkPm2SDZ^Vwv{Z^854 zi|~{})@*$&s?7rOR6N9pe$_DBqJ_ViGu?8t+m)0>-J+8rWk|e8d?I@E(28TWRshWg z8CyEl^*Z31(H|cnf&_!4ye{x2{9Fl!eTk^R`b5eDDwbpup~UG4cs-~pN_`q9_assJ z*ALR%{@)Lf+)dxv)W5m#9bbaK;@?7eOJTU%t@jfB3y#d&7K zK7h8noB(9}!-6Rl^YUVltS7!T+W3_%?JQ6E@RYaIn`y<-wB746Wp_2}LmIl2Zx2nF zm{I9vXO_0bQ?l3{eVR(=ao?vRB86uA9SXr_cgeROpSF?_wUL;Z01TcO;81DE+{5A$ z{&nQ@oNr={HYW6uuK&gnO1cK+mwQGEJQpCdI0rSeyL;-6nx$YguboJ0Q#F{3}EQj?HRqX+W;8m?UjO?@Gq70pEaLV(yO@~Q7Pqu zuHJCs4*sT%1u$<*54*@Nm~fjzN7}kl7`EEFzS1{t7Tm}la{wXFKArGJj5_Vk-#C8H zJ+ub>)!GF5heu*=JktV^=s4G5CShaVlk#0h?f0d-FKsybBL4W5-$8=64ts3Slc>cxQEtZvf<3yrx$Nqz3Zp^>sq7?kveUofO zxyvwJPFzV>Uif)AxMTOpl0&mrNn57QHayecB;>-6;2-t%oG!PMeZ^Nu!PROf>7u;(_h;o^ zbHx=c62?-MH(%gN6t48M3oY*d`q3>9dCl5$4Trd=Ew9wY+Erp|>`Xk;+$q`{w*~%r zP;W9dp{&~iN)Q!2CI{ayMzrl(^=2{k!MYU_{y%a~bsCWvn&0S_Ypewj9|@AFVv?IA zE%HcN=kJ^W?rSRwAlB)NLtjw8XY|o?MgN4OUpl=w1GN*vEnyaU#M+EXSi7()+VKp% zW^FUGl{qrix0~TLM)-bw+_KJ=2aA3)&+7EvWx)3bk;Z=E?crEc>U!@+Qf?An2=KB? zLp+D%$p@`I&)8eh%&R>d?)I2STePV%YdwS7nrc>!z$gw^S+Y%t4^>~lv6GNK*5_Yo zfs}8`mVl;IZ#Qv~FO*PNNl)c5Q-A9_G3qMa1=qr9^qA9)mxq}%jroRN|8#TRQ;^A%k*!*US z@22|vIiCD)w|}#~ap=!U8BS>$&C}4T-$hTy%3pou*8LcceNb6J zpKL{c$n?=I=I^It*KZRaUWpuze-e7nT<=-&&A0CFKZiKC;a92Ouim^?ttddImN8Si zZ;F4~m8nsd)XrPgdP_3SJMzu(a>I13DzG7$C&BGZhAt!Z<=tU|Zpuwm zo6D2C)r|{X%m3rMy?+?m_iA2Pk+Du$a)Y$G-7|S`cxj5T*4%6j4_Hc&URHi{;zakP zZ)8V26G$SEcz>gOt-dVfuo|~Mko8jQlDv)%qxQCdLwppdCi;vGOq0Gl90* zX(!cg!QsE6fr%xeFL^GSAXA zKg^Cp_KDz!@;?jL@5&LNkfZgrX!@jpze>ul$fG_gQvezgRk=s!2uz)2Om0Brq@jK zrQ*ow3h4*QYyazI*_1D#2Z!!#48*iP3#BCSWZFtfGMjk#ekA{Eq4+_4S3O;1 zG&ncx$Kk+xGrIqh!w}-A9+j`_l*MNHVVuH<$cGGmrGfZ@4bu#%SNE=)rb!E#5Bi6c z)lw|?)f-7k^ao*a`*c5U--hw;*A{O6k%|n<+v6#b4}ll9x`o=W4`kd1g`^x`w1rIX zAbNYuNn8tqJwvrO;gN+h4_;ekNm6Hb@?@+W23I}RWK&N#o0at*1@{3Z7voaNVFbIi zA6q}`k>D{A=J1&Lh8qYQbjD-uP|B#V$D9|)8hV5_?ktWC)FCwH1K=GAN)&a2hho^Y zRx$#%kswG=!?+Fr1K2zaI0wujMhGgRoJf!e$Ug%{)j8!-i#~=Etb~n0ft1uy1?N>` zl43Wm7xR7d=}7&1+Y?Ean`(4YA95cVcT0JJ$;DvZMlEdWNR}XnFp|sP|0^QLj)bB# zV=S;KXkvMTCBP08fd?m&r!n~0?;#%oVwP|munp|Gvw(6S!F9=#AonZydduD|=Kz;mg1Sn$Q8lC}^%46>gcMhA89AkH#cH(-4 zD+g4+QPjo0Ai=y2RJ`Qr!Vm<_-jzyYfCk zhlpsoG{xxE_ON0Pc0MS_C`KATYO7lwSAL#E@B&u!m`4bz@ym#;;M36Zs`%1NLXog4GRd4H$X3YQaHjQwl@C*JAZ{858MUBwz{{QjJ|KTC9y7hyR z|A*&%JFwmYi@gJS(02aALk0cA<78K`{D+rvuVkP!dcro|5{pNRHIx8f*vo?1A-#Z>`Tz# z8NKj`MDb^u1^#+q=BCIvYCRJi_4 zR0gAneSNfoKjSxB{gfyG`Ztq+Jvy?JnNAvUjc~ESG%?17kLj@rFRs}|ALc5l0eLjvWQ=)t3`8?H} zV*s_ceYKx@JBAadvvWYCtMX5M3PQLG!`v*4phTUK%@JNr5AkpWy+b@l?eXXD1w0?% zVGEkL^!iivBIw8;JxnLlj6EjRCEpFFGx-MX@JEl~IJfhNcR||a8BJ=TpS{rQop*E@ z!5gWaADLcS>+b+c>H34aV{n)lLv4lM;3zVZB9Kfm4LG!n76BAL3=kDVofps?ukIOu z1al@AK$bzCUc%5{3!yk7|CjDC5WUuAOdlGIjsWNdc=aa%^Tn%ZNFBsUga8@=ujua1)?JZmn}~q(t^v}|Ba(04 z0`CVKwe|o+~QbH3F0u3XLY-u{{YQM1Ru>&{x zd~2823F+Q^xM083LrYH@xl+;kD5laCJx9VMRd-MvM){L14B=sC7@JgD0BK|l<)kP1 zY{Y%sK;CMQZ#=DD_AIHdzTI6tp8H?%VQ~GdvJAQ&U$5bQQ8sybm7v*o!MI*6bGdhh za{ZK32MnP#l^&bz?qF3aiuRsuWi{RH)8)W(WgfQu0J7@N!7ufx&hD=#RZ@|?V*SQx zCNoA$rE&yn9@Y#iJg3MN;*Dz7W+$_j$EE}5slUA=!139Ave4;NV-|M0fXBwE_sa)h zM@z7iu<^W@Wxm#Ir^gT{&PCx^2RP*esx|OI5A6Kfz5L3F-cjuLvys1A_A~U?wS;|2 z^s^Z!&(5OM|3i~kwrD9Z8MCVwMgw-820okRVBy%I0JF%cNsG=V7|{t9tS+}wO{A&O z7t0oaLihtTq2D-+cQ1no7!l^O)hsM-zIUTLlK7O*=>m-HonM~T{?tDcd?}AT%juAT zGb^!ZDm2%lZ((Zf<@J(085J|Nt3z9^Iv+J*_ zD*=>{0jPuVFx%sCK3e%tWPcp66w=02XRO|KTDZ`E`^MRWief3Ql5QU{a2?*hU% zOS@U_@@8-&7JONtJC4Sk!k-!E&%Sn@DlM2et3iJ!U@4=W;uP!>e~{)=V=i@Ev7;bVxLm-s66ED zs4#MSoC@w#NAGrBSFcTV1)0h_>9o#rcNm&5%|WOtuLl%PB=jb9yS28s8A1 zaD$Q2WHNedq=(S+O`4woR@3{R6|Jbq<+WSf8!l!wiL9v?y>EBL&*_SMK^E$(dN~JPizTc>=3dzrl@y`Se#CB%S^Ebalz>NQXzc@5T5L69*_OP^I_r zBe-@`b40{LY2ND#Ph8CEpGaQ~5aQxu?TTk6nJpxD5JFeWn$G^Jts!m~0_*jTDi9QQ zLg3#Ke`(f$zij@T)}|HMP7_+<2%~L-2z7Yqe?TCktVcOiwY>w@YUK;lo12e@_8_^t zQ;&W}^CiA%qW^B6*mg*}xcTVy6*!6mtJVYacHeIQu}7Ln)yO}ZBIyu`^D1pE)MR!fg8UI~dE!9mUS7X!;Wj=hKI**Jy)q5D{VQWl>PA>9WO(nEFJ8@|yBAcyu z=Ok1yNS;tJOruPqcvP}tbNU#N|JA{RC9ML}V_IoAaQ4ACjMPVbb~AS+gWZEqumMJ| zkGoK^y`pdJL@M@2M>W& z!UkaqQBLL0bB3U-n?MYF8k#vPwXhNoYjqaP9Gm@SBflaKqaK&YYun(dMyk|z&-|Or0}F8EE86x z#8smC>SfJ5BkPZ6!n~2R<)xGP_|^b6%CLKmH7w=fR#9aMMt|P@^}?@#xbNCN`;TxX zv%0l(1~Lb7;$aiQm-SRo{pt1y;d5 z&SA-)&asxv-5}%y4@|WSmZ3S5PgV@z2%fsbliCfR^s?LW33|(EXIJ8{*18v2@Q=wB zXVjBP)}w1R77%i>B&o`&D#qv1l27UqkZIjfnef6%2ZM+~&e}(PJ=gt_TLsYe>WgXY zc9jHmB|m~o15`7|Zy2ug!wMlqsAYz(z2B0}>Bj_J#b-A(x&AY+zGKf4JF(ZAq z_yIU300-PAoZ~llCbBM)Fl-!VN}}`^Dn4U{PzSxZ6Oq95Hs~EInn&;xNcRURgR4@@ z3(kJyTyyNGLfIfuq>iFfbM9?Ukw0#2c}5=``E<@g>82AD3}y9VY%X~eR0Lg+B#lYo z!B|u_0{o=<-Ds|c42PzX=&;G3WRW<(J?XBmcUV7AR%AjZ-%$L`6wv!VRvTYuI) z%Ha2tJhEGuNWT}S3)&j4-F-`5_H$lmw8#*z^&wE+4AhZ}5RaAHQyMjZ$~cFb=GHkZ z8a%lOvql-h>oTuZX<+g_F(ac-34$AbA`_CXhsM93GZbMIb2sp)wg4fL)|>NbEpW7_7fhU9e-y)Pl!=>H8z#P{vN+q2dGTADBv}?bTqtI#WD4fwp#Zwe&DPU+vJhO? z0<=TxJ-(*iqb-mVU`_4)NGgdIR%B58s`b6IQzw&Jkp*L4JOVV^Y(A;MkGP%h zDFD+awGz2>jyG2kAt(c+P|uF)p4ZIlIJMR4t4M+k#tqWqRtnM2-fZLP_ zM*|WPQ%0=<+9S@A>Lea$1x3aD?K!NhGu9(T)$aQC42ZDUP=*9G?#>fGp=afH)^Hb@ z+$i;Tq1B+*oH_D!$G>{f!ro%MAsbAbb|L?6247xek^ZeslFra<$+~n0iEu)945B!@e z`xC<3)NaYz*%PW86y-asH%vXhXr~i#%QSyJUJ!Wp<685&`rsZS%UqhH&a#p_LuLg} zGAf%)*3AxgHY?`ckh5Kh(V99kYn*c9l^k=YX}xTbLslU-PH*Bxpn&fMwjQ2Z;## za!`hcx;_vtKjWM3^YpXwf4W|7Eoe7Fa{SW`%9lSu<@s|$Mk5SNDpwsaA0^_E>Fl*% zJR0(D9|$Lt=#J`z@#rcWPgm{8&(_e%6D1l5#fKh?wmg*yCjaZ3UsRsxHxo?pU6U4W zWRQnicH39m>g$~&7H(?x+QaR+Alm5Jz9{S`X3h;ZeA-Z9W1g>L1}4uhcFOUn5<&*b z0x5*w$Ss=re_DVM+SLQ#`G0(Ge`1U;D+ZW4l=s^Q%3gcEr{V8B7NWAG@vqBP><*rW z32Uf$Tk`d^lEaD4g#|9;Ayl8Hs;tH4~{j?gGZ0eUzI= zwA23cw&PIAs($w?y^=s+l4zgj}@@*JM*YuQ=_dxSY1WI8L9f`XZ{bjC(8Q}dt4 z3QIP+{*>7m;+;KZs(k&_TYMRA8~DyQWZG3Vkk@BxsQ@Wnc!r!^bIWUObD#!lG_;+P z42eK>sdI7LoxivtAD`s{3%HZOO}b`N^X?tfwH>#~<~OdAU-7S}>+8qXsimI$W%5pb2O-V~ zLXCyRP8SIH>A#-EmW6q@Q(2F)`cE2}Fd+y=u`SNnjGxP@`gT)8=4({X2=$-O4a!yd zp3oA^vnprePF|SM%QGPsAv-7vy$%a(J0GmVD|O%hx})*slnP=}b6#=8#%}Ly&UVvS z2t{rJ;#y)G69*bqetZ>y47`t6!cVUY*OKivb8__}Cam!C4afx~h{PDOd{DzoBV2#D zv9LAiJ!o?mS~VDO432D367I8T?=l7vjzCWDk6DdRXE8;WZ z_WFaDvcIyw>|3>-e~-7{G6WgplDs9kA~8w#x**lFEG2sD9yZUJUc?)OKQ3T6Js4Ir0xZ{{>ymM_MhU2?DCL(20I>V@kdyE@a^Aov)Prn;dP3*j0AH>D= zVlyYg)P1^+iSUxz59dr|iI>0a2(x{_Car!f;th(@m1UhG!d{$Q#6me+x~(sw!}fF3 zST>SMdqIMAy*&kO_;jFQf5bKq38S_9+;d+g7Y>{up`O5Ii>Km{wjRw5YQFm9a{;sA z`pw0|GjsnT!=Ck-jm`A828jEu2b=Wq*A|auHNrRhp$;672invOygeB&{aI2S`o65m z0`*i>xna)576u?fjF)UK@{yZ>p6Sx>K9PO8d2MV3_JoAL5G1M@y*8>so4SUbW+pp% z`9$=L2*LGEhkj!XKbI{0+i53Bs#RySZI2JlJ45@A2&JS=c}6ycv@0$lk%x7gE5?Wj zN97LNW~U(9p7=FoJQcG%%Mkuh5)^fum1OgSDDbmvp=N=PmwkyLZ9&7}owJB1j61sEHTT<0U}oIQ?436;0-^BDU&Q+H zbZb8f>O{I-8}S@wREeazhf)`HgY>z$p0kvzT}|?ZEjpM$x|H30QjFSbIgN6`KpNFI zo0b3C#KirA3v^vStk3ZmF(G5`&H;;&U zbl2|iuT>_|eXb4mQJv>U8VuWbQ(|}_o%pZhyxNy~-ij?^bZgmzOSK5zq;!z`>Z1$! zfNV{2$5VS!iB8O#hi6DC;Vy}c^R8y* zozgj1aQ@j@EIswby&Tv3HZb>R6Y38pvYa@^*2&X{(w8|8Ht$s%K;_{(n-OK9?CwMHK@HpPZAP zig;14$mwwZpuk#{ca~n6Iy>MVEsvbU;To=#e)fDWkZ7ATZENPK@%{td;Z`##6p+}>xATih-y`HSb z2%;|1ODNmjF0+OHMIc6TC4vsH(7@6(&IeYD{$M<(tb+BFW-TOA@=u4H&-Ak2=I#}o z2-xLwup+^0DM??&IocbGQyFvgSWEw%(GBt45+jYf5+jWk5+h->(PvPd_Cip_O|)N0`?d60avrIl`#2J=^TYdKYrusL zk^T0I0m}RQr@nuI+;_ZeZR&t}xn;VK&5>zLPVYi)%))1|B^f?`##;BXD33;hXdB~j z2VP^aq7f=Bm$-u^7l{DuqX-e`$(Ib2A8{+LjY((4iQw$3@q*xkDtN)omyv=S7qWsI z^%o~=NB?Ti){aEmm9g+N5~;yQG1vY+@zPQTz6$?7h<#}(rOtHIneR>M%2-5MiPTK{ ziPV%!KhHX6Ix#fHNUb#w3aqxyA>$e8E?KY}mz~!vS6)Y%*1JfJ-v}?QuYWH5JP*3Z zhU?Kvj|i`;r$Gj{`49p3?g`#{G>iob$v^lcK3+Oh4K}$L`wp5@MqEbfm1&-I{*iUi z@BY*!3#EWy!+ov*Y@i0E4jRMx4pa*)5?~u3{K06lix_W)81u2ie{?xyPCn>KnIDuU zs?0Bpu1 zd}bmVU&1)f!N8hGcl_&&hGVj~; zfkaYJyCNkotSu&A%9uxH<+#41Kw~7GG~b6j-$&_FBlU*PGZ#rlShi{<%{}d0@CE${ zmPN@;E2kU>P^mmZ* zZkH}{t7=iKqq_uH7X|)oxcGssN+EBVE(yvAOhUp0wXHhlS33!$@34)d#62N91g}E) z<3i2UHb<3&z@Z^@wi!n&#vw12{pb}8mWYm{zB38+2oYG`smIy%z!y~Y>EKCVqdS8h zhd3LQc1L%de~$+qELi#0Y;z)?D?}d>VvnaJCEGB)m!%{)N~1wd3DOesU!^1<332MN zmQo&9ao?O9B+ym14_0)T;N>?ZNHUN2n-ij0dG*6~Up>1sv!6fEHe%Xgf-QG1-9u1K zXp=w2R(OhfA}MoBfNiClKqiE0Ho{%SIF3N@4oev(vN(`qAV5-rYnObh>abv&E5Q#Z zhzP-o!6uMRAb=}7F32P1cyc3!I=Cp7fAH%~;MT@Zn;w;U{b#~hT@#aD6SQOIJ0y{b z19oQngEbU35QAd=GD+TOUeHk*KV6IGv4$N0vztFYB30N2#45N@JSY;V-WK8fv)f&29Yx9`xqlc+lE!h5%M$U8 zhQh+$T5f{on>>fuZ^&4!gZRAh3j|^nMUSy)jVe+6 z-%%DGc9w$8dQJ?*jFgcn?Ue2=$lU&S({+sRMk=PP7>e16;M-?nnGd5S;{B`GCl(2C zn?F&3H#Ez<){db*-Ic~TVtDhQPw^5Ctw-;NF%hO73N|ag*nM0{0cm>?2Gd$OGs}&+ zqxs@6E6}Ttiu-3B-c-Qk&nf4-`he+%C)8laAD7PAWS4hO{v&N|X!<~v@Spwy>nrM) z{|?m7C>yZx;`}$;*ra%;yytf$?iHk$MK@+c(#AXS8{={@H9lr8Rnup`xBYiNOK`Ny zE-2FMZ|0R7);6VlT*fN+TzEmNrrE6&sQY)#A*U4sc4h}t`jdK9K19m0iYL!*(-T42 z?bzM%9rQYzO=GB%xbpt#rPk@aOU7J@|xyZJl&P4l>*25A9dyhU#1qXmTxtX zMUv}<#ZZ2YO8|$^%*zkO&9d-H`^fwEk~&^bg>odG!Jg#dtDQto629^{sKWGMoAWpDU|X zJp1B`?6M?HP9IBE0*MDN_LCo)Udsm3D;=*Qe8MnrJ|lMtQLkTf^YH}`~P zwqq4dnPjXNE)q6t^>1b!`~A)>VONf(f`4Q;7scfcS0AaWc;_>w;j)K{T*-LOqwaNw z8y;>&6kmn6H`7u>I+PRKI$INaB-e4MdU=e8inT0HpFJuj+AwJ7ilNwwp}F0N)R*W2 zzl1T}$kKyE=)tQ-+b8zXV5zyMa+ronxNBo(=^_*7A*38)xM3G=b`oha6WjdBd|oL6 z$v&k-!s*>cH>ofbB@tVa4N#0stf{9fa5lP@+^u$`dV&LHy^;e&S{KEgDp(ZeEsGwv zgJk|7ky(C!$J&#S5 zcqhj@UxxW8q&lS2FJaELiezWb>4kMi|jzzOz|mGylU^p zI`UDk$kEDFeozd7=rk`E}q(%>s<@R>k5|(Z&J@wIB&izELQ)3+T#j*hT#3#DbnO`Ihf> zzUm-;`@v%FmWJ__JtG;R&{YzB)qjOYsR;u)!uQ{ZeSQ3BpR?5OL-9GluQ(&$9o!cc4@4sLy^j{P8rTlGTcE!p<@u*1b&?<>eg<+g=($KF8vOmGrXI)8L}tuSUu+)d ze*4NXwFS2B^XFJCPhS$ZXo_9lS6<1c$71?(SE`>1Vj>);Gcjo{~8J`B|N4`>m?uS5B`Y5FjqV!Fq4xfx1r`i&8oI=dM%?Y{XoOI80Yg^Im{u)xPljn%MVEwwNwL53+-9&33IK^@Ey}1jk6q z?`B13z!YYm-x6RcItUu;{D=1NK5y-Y&+fhNJqzbsjib97#k*A9ja+=fi9=xc-qR6E z8dDIc0&zA*Pr;)%@0kgnQvI=6Lo-P(p5H@=%_3~92&Zt%l0z^fFGWx|>GtLpFHYCc z^uj2>!d)i@J7^iK<&j?RQ8$DyFY9T2Br5`m{XC5FId03voi7ra$1k#?W`1*bqtR}! zSh_KK7S2i+;sl!BPCJLx*ey-ZJ0s^ctGPT`Ok=BWTjksA{|>>owJ)97JG6wdf^EYG zCV6DXC;wEjd2&eM>R9M0lly`DtM{ptNhl)&hlkY!o`;JbyX#R-(U&~nHu%o?2z}4k zb@5ZpP|tm%a7rXakNx)^ok3}CPNf;#wyE-*a$ep7tZSU;1D@k?6t7#g@d}v`bdZ(* zx1P*1qePU}wUjIS2Y5ckAO+d+CqB<*JfSxCJVh1UE2Q#Ys=Tgn*zs7-@y}@e+PJg< zK9rvg0%nw*vW%4I4K0s37DOQ8ZXS%vO?v4;$24EltJ0>4`M8d!wm*5H+_P{#t`*Ag zn+!-XKI3{wo}hH+JZqTyx?w+wT%aZZwG#QOqNG5#<{9E-d+OE)GP5Q0oXd;ljfAl# z<|rR5mAD)1krR}rssCQax%;;udDVy3*LRinSF$2EQyV4IbXsCrem(0o?WgNCOL_uh zVMD8beprSW8dMcum&8>Z+ZCtsF2w(qM9@w zkp5+G505Mzr5Lceo$Lkrb2gJ?Sv-V62v*FF7U-gWEh4H3- zZFyVLu@&t!la&fD?by=8ay9f+iu=-Rm7@e29Y?*y1~jM?HZ#o)PtUAd=3zyOz-fPM ze^q|U!CY4*KAVW|@0VvD7dfn_4P+}-Njc2euwM4klRA>6$b8r$`na^<;F>(G>SSyE zCGI==Rqcz9>nFK^Cq$cdXD^FqxoOm2mAzV=K}&o=@$U3QYBOv&unL~jTthm-oO-Zc zfou#eQWbDZ$HPm`aPBWhw@IKdWrH6Ne^E~y!HGx!uNi&S6PrLf<&sd*o6lrA=xrOW!z3f z@}g^}lfY3y_sG4u?pMADU48wIzy(t~(ib=a@s&XyFT7W~2EQcw^ocI3J5!%Dk|$}n ze!n)ZLJk$pn4;rn%^n5;rB_aY-h(IT3Bf>FX-e)UzHZtMNZThH4e@@OS~$e)EZ;;? z152EGO~KgR>ueOD0FgW`o1!zj#y{m*0BASyoN~`p!Sw0f020#^Zx@#4O}skc7kX9Z zKu6BIdoU4lajXx>3o@vCp!-WI&l&B#c!?Y=3Jm={JKHmJW023Ifd8?gk)9zCk29KS e@1Mz(N11{`wV^2{_IvVMLe-c?q7K;qd;ULB25!v& literal 0 HcmV?d00001 diff --git a/docs/_static/fonts/Lato/lato-bold.ttf b/docs/_static/fonts/Lato/lato-bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..29f691d5ed0c2d3d224423bb0288e6bd59292511 GIT binary patch literal 600856 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

8(RS%1n6kJInt)@EwW0s*7{=S!BxlrK2Yv$^ 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%0DlAp?9S$v1aS+zA8SL`rj9s3ipCNfYQ`8n;ahbfV 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 zBEc*Y%p$=o63imOEE3Ej!7LKYBEc*Y%p$=o63imOEE3Ej!7LKYBEc*Y%p$=o63iyS zY!b{S!E6%DCc$hH%qGEX63iySY!b{S!E6%DCc$hH%qGEX63iySY!b{S!E6%DCc$hH z%qGEX63iySY!b{S!E6%DCc$hH%qGEX63iySY!b{S!E6%DCc$hH%qGEX63iySY!b{S z!E6%DCc$hH%qGEX63iySY!b{S!E6%DCc$hH%qGEX63iySY!b{S!E6%DCc$hH%qGEX z63iySY!b{S!E6%DCc$hH%qGEX63iySY!b{S!E6%DCc$hH%qGEX63iySY!b{S!E6%D zCc$hH%qGEX63iySY!b{S!E6%DCc$hH%qGEX63iySY!b{S!E6%DCc$hH%qGEX63iyS zY!b{S!E6%DCc$hH%qGEX63iySY!b{S!E6%DCc$hH%qGEX63iySY!b{S!E6%DCc$hH z%qGEX63iySY!b{S!E6%DCc$hH%qGEX63iySY!b{S!E6%DCc$hH%qGEX63iySY!b{S z!E6%DCc$hH%qGEX63iySY!b{S!E6%DCc$hH%qGEX63iySY!b{S!E6%DCc$hH%qGEX z63iySY!b{S!E6%DCc$hH%qGEX63iySY!b{S!E6%DCc$hH%qGEX63iySY!b{S!E6%D zCc$hH%qGEX63iySY!b{S!E6%DCc$hH%qGEX63iySY!b{S!5k9IA;BCH%pt)X63ijN z91_eS!5k9IA;BCH%pt)X63ijN91_eS!5k9IA;BCH%pt)X63ijN91_eS!5k9IA;BCH z%pt)X63ijN91_eS!5k9IA;BCH%pt)X63ijN91_eS!5k9IA;BCH%pt)X63ijN91_eS z!5k9IA;BCH%pt)X63ijN91_eS!5k9IA;BCH%pt)X63ijN91_eS!5k9IA;BCH%pt)X z63ijN91_eS!5k9IA;BCH%pt)X63ijN91_eS!5k9IA;BCH%pt)X63ijN91_eS!5k9I zA;BCH%pt)X63ijN91_eS!5k9IA;BCH%pt)X63ijN91_eS!5k9IA;BCH%pt)X63ijN z91_eS!5k9IA;BCH%pt)X63ijN91_eS!5k9IA;BCH%pt)X63ijN91_eS!5k9IA;BCH z%pt)X63ijN91_eS!5k9IA;BCH%pt)X63ijN91_eS!5k9IA;BCH%pt)X63ijN91_eS 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ͻgzEstkwjq)Y z1gzEstkwjq)ͻgzEstkwjq)ͻgzEstkwjq)ͻgzEstkwjq)!16XYb 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 PZr+dgQO8;Dp|bx6Kf>?& literal 0 HcmV?d00001 diff --git a/docs/_static/fonts/Lato/lato-bold.woff b/docs/_static/fonts/Lato/lato-bold.woff new file mode 100644 index 0000000000000000000000000000000000000000..c6dff51f063cc732fdb5fe786a8966de85f4ebec GIT binary patch literal 309728 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

F}woT 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"bt0}@AlIHaMn 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 literal 0 HcmV?d00001 diff --git a/docs/_static/fonts/Lato/lato-bold.woff2 b/docs/_static/fonts/Lato/lato-bold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..bb195043cfc07fa52741c6144d7378b5ba8be4c5 GIT binary patch literal 184912 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

x{o9f|7gEmo2*wv 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 z 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≶M9Zv|5`G?V+t`dH%WEMXqpk;_3Hk#c)5bow}^>GHdOg=@5pYx=49b13Ly zrJynzDRebu8rnRSaDCBo@|9g53n?-Toj%;)7@=UY|Noy}Ma{<^CTZW`I9PGat{6t2 zaDw4J3oUfqrNwG{*q4kXjQO#)d%E?I`6unq0@g?R`EPa45Y|xpiRX?D^@^QqfPjrp z`1!tA9;wNGs_VH%HtUBo8*1_;v~g)avtfdTTKYQ+w|_T@R1|@!z4MWbhw@XQ#{r8n zFBZwGL~*S&Epds65DN=S9LDmC%OD``N?Ja3mq@-KYHmwkg<5GJXlu`C1U~hF;}GUt zEV_svDDRB0pxY;h0iVB6!+t9MoPjoUN2{tnNvmp71!_;3|F6OefCDX3EgVYSHa&Y~ zU}M_~aPglu-?Am;VW9ar%IVbGkq@`{Tq5wAt!;iU^4x0?c1udN{X&%ux4V&|KJ4W8 z^-G%6%-Mk6r|NGgPt?6Gz6|&!zRxhaV4(F`GZ8rK4j__!PX?Q7^;*CQ1mh5%DvR6C z?e!IxGMT8~xw^^9NiPO6=pQ@SRODn~Fsq8jD|VmScW#=CFmzog>dWa9ISWyD>bX6* zxnZ#2TwN0;af`pj^X|5h-UR+^#wtJ!B@tKiK!pf5VjK5!fZLt zzX!?qwZ#;g@k9fI%Zc#zkaZg@VAO57d!5O3Ue&0UhOx8iALeb!OI zRvYFgz{G^aMMxIXA9Q8%Ks(ns{Ng8LwsDMRXV9_!HbeTZg#-D*^A&&kWc>8s7s|rI z=ynSoO>Z_is~m>%blt}gX#It_>e2=$ntV|mjceXzzfgYM^uWLH4|qn@T1Vx$y+(mB zr_oTl_0pJ8ZR}4L)pN;gX0*r7gHMr7oprWF%6?*dA?da-61JtJNHWwP^#36TIN#Kl zHX65H`VqI9GB?_ee-?H!Yb?FpyYadu!+UaImNKBnpF_sZf6ay)B7}^R1hodXNP?eK z4UhCNG=>^Ra(w)t-DekO(;#W^pCZ0-I00f84I3?O?7O zB%x)J$UIIl{lRxlFHDbkes}4Xh27aeZ@lufb-e26$_f|NxU&YtVUJG#2x>BxrM_VU z1LCx!(BL?8gDF{Vq$J)xNc>yL)$=)7I*g|%)(&0-;j8CsUSvGa_^S6DVMpH zb8v0T>G{!ohHICj*>1fftNM+zZtws0KCZLv(IK>C_QT1EH@fD(8$2iPv~!>Y4cV!P zSZxtr!>L43HPE+4<>ftO;-5eywKK$aj&E__@NZF$Ub2O545&GURXRcHZf+@4Q*sxY zWp376swn?@b?YH5czxG41HZOjt)n5ymnfWVn}~l0v!W9f09Qb$zl@4>j!2BD$PIWy zG%tHq1co&qIS~ddbB3;u@9Dn~xdsYnr5s8^`W*i3m@VDEnOB&F?o#)Rs5v1eUah$w>#9 z(>0sd(bH1S1!0KMO_Fm9-(30B*tAvEi!I8bj@kN6Z10~`=5`eh*Oh@TSgc~GARo=W z<9@k$y19A1xpq3jbDRG4LD38!4XW&4?>FThiiaoIiVSTRo?|YzPPb-muv!>myEIOW zt#-bt4&U((ZdDWewL`sy(~|m2`BN@QF+Q{|G9ZCrd6ta$KC*E*TQ_G)_3NXw*H*CY zbEL^@$wN>XGaLNe4bu&0*GJMUg5zS=CN)LQyqHShcMq=mcw_4h9+%ozHC=V~`$%?N z`DWW#&TppMgR}4%!g!nK9J8-_y1Mk=F&oUrC@E68`W@5@I(HpHbiw(p1ld9~Keub^ z`qq-^lE(GMES@?`16xSt_yAA?b$A0;omip zd;&xiYAZP+=TTDO@|)ZHN*1!_{_wQ@i@zy5-UG{`HCbB7dqN5AgmRL@R~5 z-KAmZe7J3gow^U;9@e_R+QBj&j{H=={FCM3!&hwmwI9#NDh>OjBmRdo%0A!wRKaXY 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 - + -
  1. - - Usage -
  2. - -
  3. - - Design - -
  4. - -
  5. - - Algorithms - -
  6. - -
  7. - - Coach Dashboard -
  8. - -
  9. - - Contributing - -
  10. - - +

-  
-
+ -
- - - - - Next » - - -
- - - - - + + + + + + + + + + + + + + + + + - - - + \ No newline at end of file diff --git a/docs/js/highlight.pack.js b/docs/js/highlight.pack.js deleted file mode 100644 index a5818df..0000000 --- a/docs/js/highlight.pack.js +++ /dev/null @@ -1,2 +0,0 @@ -!function(e){"undefined"!=typeof exports?e(exports):(window.hljs=e({}),"function"==typeof define&&define.amd&&define([],function(){return window.hljs}))}(function(e){function n(e){return e.replace(/&/gm,"&").replace(//gm,">")}function t(e){return e.nodeName.toLowerCase()}function r(e,n){var t=e&&e.exec(n);return t&&0==t.index}function a(e){var n=(e.className+" "+(e.parentNode?e.parentNode.className:"")).split(/\s+/);return n=n.map(function(e){return e.replace(/^lang(uage)?-/,"")}),n.filter(function(e){return N(e)||/no(-?)highlight|plain|text/.test(e)})[0]}function i(e,n){var t,r={};for(t in e)r[t]=e[t];if(n)for(t in n)r[t]=n[t];return r}function o(e){var n=[];return function r(e,a){for(var i=e.firstChild;i;i=i.nextSibling)3==i.nodeType?a+=i.nodeValue.length:1==i.nodeType&&(n.push({event:"start",offset:a,node:i}),a=r(i,a),t(i).match(/br|hr|img|input/)||n.push({event:"stop",offset:a,node:i}));return a}(e,0),n}function u(e,r,a){function i(){return e.length&&r.length?e[0].offset!=r[0].offset?e[0].offset"}function u(e){l+=""}function c(e){("start"==e.event?o:u)(e.node)}for(var s=0,l="",f=[];e.length||r.length;){var g=i();if(l+=n(a.substr(s,g[0].offset-s)),s=g[0].offset,g==e){f.reverse().forEach(u);do c(g.splice(0,1)[0]),g=i();while(g==e&&g.length&&g[0].offset==s);f.reverse().forEach(o)}else"start"==g[0].event?f.push(g[0].node):f.pop(),c(g.splice(0,1)[0])}return l+n(a.substr(s))}function c(e){function n(e){return e&&e.source||e}function t(t,r){return new RegExp(n(t),"m"+(e.cI?"i":"")+(r?"g":""))}function r(a,o){if(!a.compiled){if(a.compiled=!0,a.k=a.k||a.bK,a.k){var u={},c=function(n,t){e.cI&&(t=t.toLowerCase()),t.split(" ").forEach(function(e){var t=e.split("|");u[t[0]]=[n,t[1]?Number(t[1]):1]})};"string"==typeof a.k?c("keyword",a.k):Object.keys(a.k).forEach(function(e){c(e,a.k[e])}),a.k=u}a.lR=t(a.l||/\b\w+\b/,!0),o&&(a.bK&&(a.b="\\b("+a.bK.split(" ").join("|")+")\\b"),a.b||(a.b=/\B|\b/),a.bR=t(a.b),a.e||a.eW||(a.e=/\B|\b/),a.e&&(a.eR=t(a.e)),a.tE=n(a.e)||"",a.eW&&o.tE&&(a.tE+=(a.e?"|":"")+o.tE)),a.i&&(a.iR=t(a.i)),void 0===a.r&&(a.r=1),a.c||(a.c=[]);var s=[];a.c.forEach(function(e){e.v?e.v.forEach(function(n){s.push(i(e,n))}):s.push("self"==e?a:e)}),a.c=s,a.c.forEach(function(e){r(e,a)}),a.starts&&r(a.starts,o);var l=a.c.map(function(e){return e.bK?"\\.?("+e.b+")\\.?":e.b}).concat([a.tE,a.i]).map(n).filter(Boolean);a.t=l.length?t(l.join("|"),!0):{exec:function(){return null}}}}r(e)}function s(e,t,a,i){function o(e,n){for(var t=0;t";return i+=e+'">',i+n+o}function d(){if(!L.k)return n(y);var e="",t=0;L.lR.lastIndex=0;for(var r=L.lR.exec(y);r;){e+=n(y.substr(t,r.index-t));var a=g(L,r);a?(B+=a[1],e+=p(a[0],n(r[0]))):e+=n(r[0]),t=L.lR.lastIndex,r=L.lR.exec(y)}return e+n(y.substr(t))}function h(){if(L.sL&&!w[L.sL])return n(y);var e=L.sL?s(L.sL,y,!0,M[L.sL]):l(y);return L.r>0&&(B+=e.r),"continuous"==L.subLanguageMode&&(M[L.sL]=e.top),p(e.language,e.value,!1,!0)}function b(){return void 0!==L.sL?h():d()}function v(e,t){var r=e.cN?p(e.cN,"",!0):"";e.rB?(k+=r,y=""):e.eB?(k+=n(t)+r,y=""):(k+=r,y=t),L=Object.create(e,{parent:{value:L}})}function m(e,t){if(y+=e,void 0===t)return k+=b(),0;var r=o(t,L);if(r)return k+=b(),v(r,t),r.rB?0:t.length;var a=u(L,t);if(a){var i=L;i.rE||i.eE||(y+=t),k+=b();do L.cN&&(k+=""),B+=L.r,L=L.parent;while(L!=a.parent);return i.eE&&(k+=n(t)),y="",a.starts&&v(a.starts,""),i.rE?0:t.length}if(f(t,L))throw new Error('Illegal lexeme "'+t+'" for mode "'+(L.cN||"")+'"');return y+=t,t.length||1}var E=N(e);if(!E)throw new Error('Unknown language: "'+e+'"');c(E);var R,L=i||E,M={},k="";for(R=L;R!=E;R=R.parent)R.cN&&(k=p(R.cN,"",!0)+k);var y="",B=0;try{for(var C,j,I=0;;){if(L.t.lastIndex=I,C=L.t.exec(t),!C)break;j=m(t.substr(I,C.index-I),C[0]),I=C.index+j}for(m(t.substr(I)),R=L;R.parent;R=R.parent)R.cN&&(k+="");return{r:B,value:k,language:e,top:L}}catch(S){if(-1!=S.message.indexOf("Illegal"))return{r:0,value:n(t)};throw S}}function l(e,t){t=t||x.languages||Object.keys(w);var r={r:0,value:n(e)},a=r;return t.forEach(function(n){if(N(n)){var t=s(n,e,!1);t.language=n,t.r>a.r&&(a=t),t.r>r.r&&(a=r,r=t)}}),a.language&&(r.second_best=a),r}function f(e){return x.tabReplace&&(e=e.replace(/^((<[^>]+>|\t)+)/gm,function(e,n){return n.replace(/\t/g,x.tabReplace)})),x.useBR&&(e=e.replace(/\n/g,"
")),e}function g(e,n,t){var r=n?E[n]:t,a=[e.trim()];return e.match(/\bhljs\b/)||a.push("hljs"),-1===e.indexOf(r)&&a.push(r),a.join(" ").trim()}function p(e){var n=a(e);if(!/no(-?)highlight|plain|text/.test(n)){var t;x.useBR?(t=document.createElementNS("http://www.w3.org/1999/xhtml","div"),t.innerHTML=e.innerHTML.replace(/\n/g,"").replace(//g,"\n")):t=e;var r=t.textContent,i=n?s(n,r,!0):l(r),c=o(t);if(c.length){var p=document.createElementNS("http://www.w3.org/1999/xhtml","div");p.innerHTML=i.value,i.value=u(c,o(p),r)}i.value=f(i.value),e.innerHTML=i.value,e.className=g(e.className,n,i.language),e.result={language:i.language,re:i.r},i.second_best&&(e.second_best={language:i.second_best.language,re:i.second_best.r})}}function d(e){x=i(x,e)}function h(){if(!h.called){h.called=!0;var e=document.querySelectorAll("pre code");Array.prototype.forEach.call(e,p)}}function b(){addEventListener("DOMContentLoaded",h,!1),addEventListener("load",h,!1)}function v(n,t){var r=w[n]=t(e);r.aliases&&r.aliases.forEach(function(e){E[e]=n})}function m(){return Object.keys(w)}function N(e){return w[e]||w[E[e]]}var x={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0},w={},E={};return e.highlight=s,e.highlightAuto=l,e.fixMarkup=f,e.highlightBlock=p,e.configure=d,e.initHighlighting=h,e.initHighlightingOnLoad=b,e.registerLanguage=v,e.listLanguages=m,e.getLanguage=N,e.inherit=i,e.IR="[a-zA-Z]\\w*",e.UIR="[a-zA-Z_]\\w*",e.NR="\\b\\d+(\\.\\d+)?",e.CNR="\\b(0[xX][a-fA-F0-9]+|(\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",e.BNR="\\b(0b[01]+)",e.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",e.BE={b:"\\\\[\\s\\S]",r:0},e.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[e.BE]},e.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[e.BE]},e.PWM={b:/\b(a|an|the|are|I|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such)\b/},e.C=function(n,t,r){var a=e.inherit({cN:"comment",b:n,e:t,c:[]},r||{});return a.c.push(e.PWM),a},e.CLCM=e.C("//","$"),e.CBCM=e.C("/\\*","\\*/"),e.HCM=e.C("#","$"),e.NM={cN:"number",b:e.NR,r:0},e.CNM={cN:"number",b:e.CNR,r:0},e.BNM={cN:"number",b:e.BNR,r:0},e.CSSNM={cN:"number",b:e.NR+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",r:0},e.RM={cN:"regexp",b:/\//,e:/\/[gimuy]*/,i:/\n/,c:[e.BE,{b:/\[/,e:/\]/,r:0,c:[e.BE]}]},e.TM={cN:"title",b:e.IR,r:0},e.UTM={cN:"title",b:e.UIR,r:0},e});hljs.registerLanguage("objectivec",function(e){var t={cN:"built_in",b:"(AV|CA|CF|CG|CI|MK|MP|NS|UI)\\w+"},i={keyword:"int float while char export sizeof typedef const struct for union unsigned long volatile static bool mutable if do return goto void enum else break extern asm case short default double register explicit signed typename this switch continue wchar_t inline readonly assign readwrite self @synchronized id typeof nonatomic super unichar IBOutlet IBAction strong weak copy in out inout bycopy byref oneway __strong __weak __block __autoreleasing @private @protected @public @try @property @end @throw @catch @finally @autoreleasepool @synthesize @dynamic @selector @optional @required",literal:"false true FALSE TRUE nil YES NO NULL",built_in:"BOOL dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once"},o=/[a-zA-Z@][a-zA-Z0-9_]*/,n="@interface @class @protocol @implementation";return{aliases:["m","mm","objc","obj-c"],k:i,l:o,i:""}]}]},{cN:"class",b:"("+n.split(" ").join("|")+")\\b",e:"({|$)",eE:!0,k:n,l:o,c:[e.UTM]},{cN:"variable",b:"\\."+e.UIR,r:0}]}});hljs.registerLanguage("sql",function(e){var t=e.C("--","$");return{cI:!0,i:/[<>]/,c:[{cN:"operator",bK:"begin end start commit rollback savepoint lock alter create drop rename call delete do handler insert load replace select truncate update set show pragma grant merge describe use explain help declare prepare execute deallocate savepoint release unlock purge reset change stop analyze cache flush optimize repair kill install uninstall checksum restore check backup revoke",e:/;/,eW:!0,k:{keyword:"abs absolute acos action add adddate addtime aes_decrypt aes_encrypt after aggregate all allocate alter analyze and any are as asc ascii asin assertion at atan atan2 atn2 authorization authors avg backup before begin benchmark between bin binlog bit_and bit_count bit_length bit_or bit_xor both by cache call cascade cascaded case cast catalog ceil ceiling chain change changed char_length character_length charindex charset check checksum checksum_agg choose close coalesce coercibility collate collation collationproperty column columns columns_updated commit compress concat concat_ws concurrent connect connection connection_id consistent constraint constraints continue contributors conv convert convert_tz corresponding cos cot count count_big crc32 create cross cume_dist curdate current current_date current_time current_timestamp current_user cursor curtime data database databases datalength date_add date_format date_sub dateadd datediff datefromparts datename datepart datetime2fromparts datetimeoffsetfromparts day dayname dayofmonth dayofweek dayofyear deallocate declare decode default deferrable deferred degrees delayed delete des_decrypt des_encrypt des_key_file desc describe descriptor diagnostics difference disconnect distinct distinctrow div do domain double drop dumpfile each else elt enclosed encode encrypt end end-exec engine engines eomonth errors escape escaped event eventdata events except exception exec execute exists exp explain export_set extended external extract fast fetch field fields find_in_set first first_value floor flush for force foreign format found found_rows from from_base64 from_days from_unixtime full function get get_format get_lock getdate getutcdate global go goto grant grants greatest group group_concat grouping grouping_id gtid_subset gtid_subtract handler having help hex high_priority hosts hour ident_current ident_incr ident_seed identified identity if ifnull ignore iif ilike immediate in index indicator inet6_aton inet6_ntoa inet_aton inet_ntoa infile initially inner innodb input insert install instr intersect into is is_free_lock is_ipv4 is_ipv4_compat is_ipv4_mapped is_not is_not_null is_used_lock isdate isnull isolation join key kill language last last_day last_insert_id last_value lcase lead leading least leaves left len lenght level like limit lines ln load load_file local localtime localtimestamp locate lock log log10 log2 logfile logs low_priority lower lpad ltrim make_set makedate maketime master master_pos_wait match matched max md5 medium merge microsecond mid min minute mod mode module month monthname mutex name_const names national natural nchar next no no_write_to_binlog not now nullif nvarchar oct octet_length of old_password on only open optimize option optionally or ord order outer outfile output pad parse partial partition password patindex percent_rank percentile_cont percentile_disc period_add period_diff pi plugin position pow power pragma precision prepare preserve primary prior privileges procedure procedure_analyze processlist profile profiles public publishingservername purge quarter query quick quote quotename radians rand read references regexp relative relaylog release release_lock rename repair repeat replace replicate reset restore restrict return returns reverse revoke right rlike rollback rollup round row row_count rows rpad rtrim savepoint schema scroll sec_to_time second section select serializable server session session_user set sha sha1 sha2 share show sign sin size slave sleep smalldatetimefromparts snapshot some soname soundex sounds_like space sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sql_variant_property sqlstate sqrt square start starting status std stddev stddev_pop stddev_samp stdev stdevp stop str str_to_date straight_join strcmp string stuff subdate substr substring subtime subtring_index sum switchoffset sysdate sysdatetime sysdatetimeoffset system_user sysutcdatetime table tables tablespace tan temporary terminated tertiary_weights then time time_format time_to_sec timediff timefromparts timestamp timestampadd timestampdiff timezone_hour timezone_minute to to_base64 to_days to_seconds todatetimeoffset trailing transaction translation trigger trigger_nestlevel triggers trim truncate try_cast try_convert try_parse ucase uncompress uncompressed_length unhex unicode uninstall union unique unix_timestamp unknown unlock update upgrade upped upper usage use user user_resources using utc_date utc_time utc_timestamp uuid uuid_short validate_password_strength value values var var_pop var_samp variables variance varp version view warnings week weekday weekofyear weight_string when whenever where with work write xml xor year yearweek zon",literal:"true false null",built_in:"array bigint binary bit blob boolean char character date dec decimal float int integer interval number numeric real serial smallint varchar varying int8 serial8 text"},c:[{cN:"string",b:"'",e:"'",c:[e.BE,{b:"''"}]},{cN:"string",b:'"',e:'"',c:[e.BE,{b:'""'}]},{cN:"string",b:"`",e:"`",c:[e.BE]},e.CNM,e.CBCM,t]},e.CBCM,t]}});hljs.registerLanguage("javascript",function(e){return{aliases:["js"],k:{keyword:"in of if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as await",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise"},c:[{cN:"pi",r:10,v:[{b:/^\s*('|")use strict('|")/},{b:/^\s*('|")use asm('|")/}]},e.ASM,e.QSM,{cN:"string",b:"`",e:"`",c:[e.BE,{cN:"subst",b:"\\$\\{",e:"\\}"}]},e.CLCM,e.CBCM,{cN:"number",b:"\\b(0[xXbBoO][a-fA-F0-9]+|(\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",r:0},{b:"("+e.RSR+"|\\b(case|return|throw)\\b)\\s*",k:"return throw case",c:[e.CLCM,e.CBCM,e.RM,{b:/\s*[);\]]/,r:0,sL:"xml"}],r:0},{cN:"function",bK:"function",e:/\{/,eE:!0,c:[e.inherit(e.TM,{b:/[A-Za-z$_][0-9A-Za-z$_]*/}),{cN:"params",b:/\(/,e:/\)/,c:[e.CLCM,e.CBCM],i:/["'\(]/}],i:/\[|%/},{b:/\$[(.]/},{b:"\\."+e.IR,r:0},{bK:"import",e:"[;$]",k:"import from as",c:[e.ASM,e.QSM]},{cN:"class",bK:"class",e:/[{;=]/,eE:!0,i:/[:"\[\]]/,c:[{bK:"extends"},e.UTM]}]}});hljs.registerLanguage("scss",function(e){{var t="[a-zA-Z-][a-zA-Z0-9_-]*",i={cN:"variable",b:"(\\$"+t+")\\b"},r={cN:"function",b:t+"\\(",rB:!0,eE:!0,e:"\\("},o={cN:"hexcolor",b:"#[0-9A-Fa-f]+"};({cN:"attribute",b:"[A-Z\\_\\.\\-]+",e:":",eE:!0,i:"[^\\s]",starts:{cN:"value",eW:!0,eE:!0,c:[r,o,e.CSSNM,e.QSM,e.ASM,e.CBCM,{cN:"important",b:"!important"}]}})}return{cI:!0,i:"[=/|']",c:[e.CLCM,e.CBCM,r,{cN:"id",b:"\\#[A-Za-z0-9_-]+",r:0},{cN:"class",b:"\\.[A-Za-z0-9_-]+",r:0},{cN:"attr_selector",b:"\\[",e:"\\]",i:"$"},{cN:"tag",b:"\\b(a|abbr|acronym|address|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|div|dl|dt|em|embed|fieldset|figcaption|figure|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|keygen|label|legend|li|link|map|mark|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|samp|script|section|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video)\\b",r:0},{cN:"pseudo",b:":(visited|valid|root|right|required|read-write|read-only|out-range|optional|only-of-type|only-child|nth-of-type|nth-last-of-type|nth-last-child|nth-child|not|link|left|last-of-type|last-child|lang|invalid|indeterminate|in-range|hover|focus|first-of-type|first-line|first-letter|first-child|first|enabled|empty|disabled|default|checked|before|after|active)"},{cN:"pseudo",b:"::(after|before|choices|first-letter|first-line|repeat-index|repeat-item|selection|value)"},i,{cN:"attribute",b:"\\b(z-index|word-wrap|word-spacing|word-break|width|widows|white-space|visibility|vertical-align|unicode-bidi|transition-timing-function|transition-property|transition-duration|transition-delay|transition|transform-style|transform-origin|transform|top|text-underline-position|text-transform|text-shadow|text-rendering|text-overflow|text-indent|text-decoration-style|text-decoration-line|text-decoration-color|text-decoration|text-align-last|text-align|tab-size|table-layout|right|resize|quotes|position|pointer-events|perspective-origin|perspective|page-break-inside|page-break-before|page-break-after|padding-top|padding-right|padding-left|padding-bottom|padding|overflow-y|overflow-x|overflow-wrap|overflow|outline-width|outline-style|outline-offset|outline-color|outline|orphans|order|opacity|object-position|object-fit|normal|none|nav-up|nav-right|nav-left|nav-index|nav-down|min-width|min-height|max-width|max-height|mask|marks|margin-top|margin-right|margin-left|margin-bottom|margin|list-style-type|list-style-position|list-style-image|list-style|line-height|letter-spacing|left|justify-content|initial|inherit|ime-mode|image-orientation|image-resolution|image-rendering|icon|hyphens|height|font-weight|font-variant-ligatures|font-variant|font-style|font-stretch|font-size-adjust|font-size|font-language-override|font-kerning|font-feature-settings|font-family|font|float|flex-wrap|flex-shrink|flex-grow|flex-flow|flex-direction|flex-basis|flex|filter|empty-cells|display|direction|cursor|counter-reset|counter-increment|content|column-width|column-span|column-rule-width|column-rule-style|column-rule-color|column-rule|column-gap|column-fill|column-count|columns|color|clip-path|clip|clear|caption-side|break-inside|break-before|break-after|box-sizing|box-shadow|box-decoration-break|bottom|border-width|border-top-width|border-top-style|border-top-right-radius|border-top-left-radius|border-top-color|border-top|border-style|border-spacing|border-right-width|border-right-style|border-right-color|border-right|border-radius|border-left-width|border-left-style|border-left-color|border-left|border-image-width|border-image-source|border-image-slice|border-image-repeat|border-image-outset|border-image|border-color|border-collapse|border-bottom-width|border-bottom-style|border-bottom-right-radius|border-bottom-left-radius|border-bottom-color|border-bottom|border|background-size|background-repeat|background-position|background-origin|background-image|background-color|background-clip|background-attachment|background-blend-mode|background|backface-visibility|auto|animation-timing-function|animation-play-state|animation-name|animation-iteration-count|animation-fill-mode|animation-duration|animation-direction|animation-delay|animation|align-self|align-items|align-content)\\b",i:"[^\\s]"},{cN:"value",b:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{cN:"value",b:":",e:";",c:[r,i,o,e.CSSNM,e.QSM,e.ASM,{cN:"important",b:"!important"}]},{cN:"at_rule",b:"@",e:"[{;]",k:"mixin include extend for if else each while charset import debug media page content font-face namespace warn",c:[r,i,e.QSM,e.ASM,o,e.CSSNM,{cN:"preprocessor",b:"\\s[A-Za-z0-9_.-]+",r:0}]}]}});hljs.registerLanguage("mel",function(e){return{k:"int float string vector matrix if else switch case default while do for in break continue global proc return about abs addAttr addAttributeEditorNodeHelp addDynamic addNewShelfTab addPP addPanelCategory addPrefixToName advanceToNextDrivenKey affectedNet affects aimConstraint air alias aliasAttr align alignCtx alignCurve alignSurface allViewFit ambientLight angle angleBetween animCone animCurveEditor animDisplay animView annotate appendStringArray applicationName applyAttrPreset applyTake arcLenDimContext arcLengthDimension arclen arrayMapper art3dPaintCtx artAttrCtx artAttrPaintVertexCtx artAttrSkinPaintCtx artAttrTool artBuildPaintMenu artFluidAttrCtx artPuttyCtx artSelectCtx artSetPaintCtx artUserPaintCtx assignCommand assignInputDevice assignViewportFactories attachCurve attachDeviceAttr attachSurface attrColorSliderGrp attrCompatibility attrControlGrp attrEnumOptionMenu attrEnumOptionMenuGrp attrFieldGrp attrFieldSliderGrp attrNavigationControlGrp attrPresetEditWin attributeExists attributeInfo attributeMenu attributeQuery autoKeyframe autoPlace bakeClip bakeFluidShading bakePartialHistory bakeResults bakeSimulation basename basenameEx batchRender bessel bevel bevelPlus binMembership bindSkin blend2 blendShape blendShapeEditor blendShapePanel blendTwoAttr blindDataType boneLattice boundary boxDollyCtx boxZoomCtx bufferCurve buildBookmarkMenu buildKeyframeMenu button buttonManip CBG cacheFile cacheFileCombine cacheFileMerge cacheFileTrack camera cameraView canCreateManip canvas capitalizeString catch catchQuiet ceil changeSubdivComponentDisplayLevel changeSubdivRegion channelBox character characterMap characterOutlineEditor characterize chdir checkBox checkBoxGrp checkDefaultRenderGlobals choice circle circularFillet clamp clear clearCache clip clipEditor clipEditorCurrentTimeCtx clipSchedule clipSchedulerOutliner clipTrimBefore closeCurve closeSurface cluster cmdFileOutput cmdScrollFieldExecuter cmdScrollFieldReporter cmdShell coarsenSubdivSelectionList collision color colorAtPoint colorEditor colorIndex colorIndexSliderGrp colorSliderButtonGrp colorSliderGrp columnLayout commandEcho commandLine commandPort compactHairSystem componentEditor compositingInterop computePolysetVolume condition cone confirmDialog connectAttr connectControl connectDynamic connectJoint connectionInfo constrain constrainValue constructionHistory container containsMultibyte contextInfo control convertFromOldLayers convertIffToPsd convertLightmap convertSolidTx convertTessellation convertUnit copyArray copyFlexor copyKey copySkinWeights cos cpButton cpCache cpClothSet cpCollision cpConstraint cpConvClothToMesh cpForces cpGetSolverAttr cpPanel cpProperty cpRigidCollisionFilter cpSeam cpSetEdit cpSetSolverAttr cpSolver cpSolverTypes cpTool cpUpdateClothUVs createDisplayLayer createDrawCtx createEditor createLayeredPsdFile createMotionField createNewShelf createNode createRenderLayer createSubdivRegion cross crossProduct ctxAbort ctxCompletion ctxEditMode ctxTraverse currentCtx currentTime currentTimeCtx currentUnit curve curveAddPtCtx curveCVCtx curveEPCtx curveEditorCtx curveIntersect curveMoveEPCtx curveOnSurface curveSketchCtx cutKey cycleCheck cylinder dagPose date defaultLightListCheckBox defaultNavigation defineDataServer defineVirtualDevice deformer deg_to_rad delete deleteAttr deleteShadingGroupsAndMaterials deleteShelfTab deleteUI deleteUnusedBrushes delrandstr detachCurve detachDeviceAttr detachSurface deviceEditor devicePanel dgInfo dgdirty dgeval dgtimer dimWhen directKeyCtx directionalLight dirmap dirname disable disconnectAttr disconnectJoint diskCache displacementToPoly displayAffected displayColor displayCull displayLevelOfDetail displayPref displayRGBColor displaySmoothness displayStats displayString displaySurface distanceDimContext distanceDimension doBlur dolly dollyCtx dopeSheetEditor dot dotProduct doubleProfileBirailSurface drag dragAttrContext draggerContext dropoffLocator duplicate duplicateCurve duplicateSurface dynCache dynControl dynExport dynExpression dynGlobals dynPaintEditor dynParticleCtx dynPref dynRelEdPanel dynRelEditor dynamicLoad editAttrLimits editDisplayLayerGlobals editDisplayLayerMembers editRenderLayerAdjustment editRenderLayerGlobals editRenderLayerMembers editor editorTemplate effector emit emitter enableDevice encodeString endString endsWith env equivalent equivalentTol erf error eval evalDeferred evalEcho event exactWorldBoundingBox exclusiveLightCheckBox exec executeForEachObject exists exp expression expressionEditorListen extendCurve extendSurface extrude fcheck fclose feof fflush fgetline fgetword file fileBrowserDialog fileDialog fileExtension fileInfo filetest filletCurve filter filterCurve filterExpand filterStudioImport findAllIntersections findAnimCurves findKeyframe findMenuItem findRelatedSkinCluster finder firstParentOf fitBspline flexor floatEq floatField floatFieldGrp floatScrollBar floatSlider floatSlider2 floatSliderButtonGrp floatSliderGrp floor flow fluidCacheInfo fluidEmitter fluidVoxelInfo flushUndo fmod fontDialog fopen formLayout format fprint frameLayout fread freeFormFillet frewind fromNativePath fwrite gamma gauss geometryConstraint getApplicationVersionAsFloat getAttr getClassification getDefaultBrush getFileList getFluidAttr getInputDeviceRange getMayaPanelTypes getModifiers getPanel getParticleAttr getPluginResource getenv getpid glRender glRenderEditor globalStitch gmatch goal gotoBindPose grabColor gradientControl gradientControlNoAttr graphDollyCtx graphSelectContext graphTrackCtx gravity grid gridLayout group groupObjectsByName HfAddAttractorToAS HfAssignAS HfBuildEqualMap HfBuildFurFiles HfBuildFurImages HfCancelAFR HfConnectASToHF HfCreateAttractor HfDeleteAS HfEditAS HfPerformCreateAS HfRemoveAttractorFromAS HfSelectAttached HfSelectAttractors HfUnAssignAS hardenPointCurve hardware hardwareRenderPanel headsUpDisplay headsUpMessage help helpLine hermite hide hilite hitTest hotBox hotkey hotkeyCheck hsv_to_rgb hudButton hudSlider hudSliderButton hwReflectionMap hwRender hwRenderLoad hyperGraph hyperPanel hyperShade hypot iconTextButton iconTextCheckBox iconTextRadioButton iconTextRadioCollection iconTextScrollList iconTextStaticLabel ikHandle ikHandleCtx ikHandleDisplayScale ikSolver ikSplineHandleCtx ikSystem ikSystemInfo ikfkDisplayMethod illustratorCurves image imfPlugins inheritTransform insertJoint insertJointCtx insertKeyCtx insertKnotCurve insertKnotSurface instance instanceable instancer intField intFieldGrp intScrollBar intSlider intSliderGrp interToUI internalVar intersect iprEngine isAnimCurve isConnected isDirty isParentOf isSameObject isTrue isValidObjectName isValidString isValidUiName isolateSelect itemFilter itemFilterAttr itemFilterRender itemFilterType joint jointCluster jointCtx jointDisplayScale jointLattice keyTangent keyframe keyframeOutliner keyframeRegionCurrentTimeCtx keyframeRegionDirectKeyCtx keyframeRegionDollyCtx keyframeRegionInsertKeyCtx keyframeRegionMoveKeyCtx keyframeRegionScaleKeyCtx keyframeRegionSelectKeyCtx keyframeRegionSetKeyCtx keyframeRegionTrackCtx keyframeStats lassoContext lattice latticeDeformKeyCtx launch launchImageEditor layerButton layeredShaderPort layeredTexturePort layout layoutDialog lightList lightListEditor lightListPanel lightlink lineIntersection linearPrecision linstep listAnimatable listAttr listCameras listConnections listDeviceAttachments listHistory listInputDeviceAxes listInputDeviceButtons listInputDevices listMenuAnnotation listNodeTypes listPanelCategories listRelatives listSets listTransforms listUnselected listerEditor loadFluid loadNewShelf loadPlugin loadPluginLanguageResources loadPrefObjects localizedPanelLabel lockNode loft log longNameOf lookThru ls lsThroughFilter lsType lsUI Mayatomr mag makeIdentity makeLive makePaintable makeRoll makeSingleSurface makeTubeOn makebot manipMoveContext manipMoveLimitsCtx manipOptions manipRotateContext manipRotateLimitsCtx manipScaleContext manipScaleLimitsCtx marker match max memory menu menuBarLayout menuEditor menuItem menuItemToShelf menuSet menuSetPref messageLine min minimizeApp mirrorJoint modelCurrentTimeCtx modelEditor modelPanel mouse movIn movOut move moveIKtoFK moveKeyCtx moveVertexAlongDirection multiProfileBirailSurface mute nParticle nameCommand nameField namespace namespaceInfo newPanelItems newton nodeCast nodeIconButton nodeOutliner nodePreset nodeType noise nonLinear normalConstraint normalize nurbsBoolean nurbsCopyUVSet nurbsCube nurbsEditUV nurbsPlane nurbsSelect nurbsSquare nurbsToPoly nurbsToPolygonsPref nurbsToSubdiv nurbsToSubdivPref nurbsUVSet nurbsViewDirectionVector objExists objectCenter objectLayer objectType objectTypeUI obsoleteProc oceanNurbsPreviewPlane offsetCurve offsetCurveOnSurface offsetSurface openGLExtension openMayaPref optionMenu optionMenuGrp optionVar orbit orbitCtx orientConstraint outlinerEditor outlinerPanel overrideModifier paintEffectsDisplay pairBlend palettePort paneLayout panel panelConfiguration panelHistory paramDimContext paramDimension paramLocator parent parentConstraint particle particleExists particleInstancer particleRenderInfo partition pasteKey pathAnimation pause pclose percent performanceOptions pfxstrokes pickWalk picture pixelMove planarSrf plane play playbackOptions playblast plugAttr plugNode pluginInfo pluginResourceUtil pointConstraint pointCurveConstraint pointLight pointMatrixMult pointOnCurve pointOnSurface pointPosition poleVectorConstraint polyAppend polyAppendFacetCtx polyAppendVertex polyAutoProjection polyAverageNormal polyAverageVertex polyBevel polyBlendColor polyBlindData polyBoolOp polyBridgeEdge polyCacheMonitor polyCheck polyChipOff polyClipboard polyCloseBorder polyCollapseEdge polyCollapseFacet polyColorBlindData polyColorDel polyColorPerVertex polyColorSet polyCompare polyCone polyCopyUV polyCrease polyCreaseCtx polyCreateFacet polyCreateFacetCtx polyCube polyCut polyCutCtx polyCylinder polyCylindricalProjection polyDelEdge polyDelFacet polyDelVertex polyDuplicateAndConnect polyDuplicateEdge polyEditUV polyEditUVShell polyEvaluate polyExtrudeEdge polyExtrudeFacet polyExtrudeVertex polyFlipEdge polyFlipUV polyForceUV polyGeoSampler polyHelix polyInfo polyInstallAction polyLayoutUV polyListComponentConversion polyMapCut polyMapDel polyMapSew polyMapSewMove polyMergeEdge polyMergeEdgeCtx polyMergeFacet polyMergeFacetCtx polyMergeUV polyMergeVertex polyMirrorFace polyMoveEdge polyMoveFacet polyMoveFacetUV polyMoveUV polyMoveVertex polyNormal polyNormalPerVertex polyNormalizeUV polyOptUvs polyOptions polyOutput polyPipe polyPlanarProjection polyPlane polyPlatonicSolid polyPoke polyPrimitive polyPrism polyProjection polyPyramid polyQuad polyQueryBlindData polyReduce polySelect polySelectConstraint polySelectConstraintMonitor polySelectCtx polySelectEditCtx polySeparate polySetToFaceNormal polySewEdge polyShortestPathCtx polySmooth polySoftEdge polySphere polySphericalProjection polySplit polySplitCtx polySplitEdge polySplitRing polySplitVertex polyStraightenUVBorder polySubdivideEdge polySubdivideFacet polyToSubdiv polyTorus polyTransfer polyTriangulate polyUVSet polyUnite polyWedgeFace popen popupMenu pose pow preloadRefEd print progressBar progressWindow projFileViewer projectCurve projectTangent projectionContext projectionManip promptDialog propModCtx propMove psdChannelOutliner psdEditTextureFile psdExport psdTextureFile putenv pwd python querySubdiv quit rad_to_deg radial radioButton radioButtonGrp radioCollection radioMenuItemCollection rampColorPort rand randomizeFollicles randstate rangeControl readTake rebuildCurve rebuildSurface recordAttr recordDevice redo reference referenceEdit referenceQuery refineSubdivSelectionList refresh refreshAE registerPluginResource rehash reloadImage removeJoint removeMultiInstance removePanelCategory rename renameAttr renameSelectionList renameUI render renderGlobalsNode renderInfo renderLayerButton renderLayerParent renderLayerPostProcess renderLayerUnparent renderManip renderPartition renderQualityNode renderSettings renderThumbnailUpdate renderWindowEditor renderWindowSelectContext renderer reorder reorderDeformers requires reroot resampleFluid resetAE resetPfxToPolyCamera resetTool resolutionNode retarget reverseCurve reverseSurface revolve rgb_to_hsv rigidBody rigidSolver roll rollCtx rootOf rot rotate rotationInterpolation roundConstantRadius rowColumnLayout rowLayout runTimeCommand runup sampleImage saveAllShelves saveAttrPreset saveFluid saveImage saveInitialState saveMenu savePrefObjects savePrefs saveShelf saveToolSettings scale scaleBrushBrightness scaleComponents scaleConstraint scaleKey scaleKeyCtx sceneEditor sceneUIReplacement scmh scriptCtx scriptEditorInfo scriptJob scriptNode scriptTable scriptToShelf scriptedPanel scriptedPanelType scrollField scrollLayout sculpt searchPathArray seed selLoadSettings select selectContext selectCurveCV selectKey selectKeyCtx selectKeyframeRegionCtx selectMode selectPref selectPriority selectType selectedNodes selectionConnection separator setAttr setAttrEnumResource setAttrMapping setAttrNiceNameResource setConstraintRestPosition setDefaultShadingGroup setDrivenKeyframe setDynamic setEditCtx setEditor setFluidAttr setFocus setInfinity setInputDeviceMapping setKeyCtx setKeyPath setKeyframe setKeyframeBlendshapeTargetWts setMenuMode setNodeNiceNameResource setNodeTypeFlag setParent setParticleAttr setPfxToPolyCamera setPluginResource setProject setStampDensity setStartupMessage setState setToolTo setUITemplate setXformManip sets shadingConnection shadingGeometryRelCtx shadingLightRelCtx shadingNetworkCompare shadingNode shapeCompare shelfButton shelfLayout shelfTabLayout shellField shortNameOf showHelp showHidden showManipCtx showSelectionInTitle showShadingGroupAttrEditor showWindow sign simplify sin singleProfileBirailSurface size sizeBytes skinCluster skinPercent smoothCurve smoothTangentSurface smoothstep snap2to2 snapKey snapMode snapTogetherCtx snapshot soft softMod softModCtx sort sound soundControl source spaceLocator sphere sphrand spotLight spotLightPreviewPort spreadSheetEditor spring sqrt squareSurface srtContext stackTrace startString startsWith stitchAndExplodeShell stitchSurface stitchSurfacePoints strcmp stringArrayCatenate stringArrayContains stringArrayCount stringArrayInsertAtIndex stringArrayIntersector stringArrayRemove stringArrayRemoveAtIndex stringArrayRemoveDuplicates stringArrayRemoveExact stringArrayToString stringToStringArray strip stripPrefixFromName stroke subdAutoProjection subdCleanTopology subdCollapse subdDuplicateAndConnect subdEditUV subdListComponentConversion subdMapCut subdMapSewMove subdMatchTopology subdMirror subdToBlind subdToPoly subdTransferUVsToCache subdiv subdivCrease subdivDisplaySmoothness substitute substituteAllString substituteGeometry substring surface surfaceSampler surfaceShaderList swatchDisplayPort switchTable symbolButton symbolCheckBox sysFile system tabLayout tan tangentConstraint texLatticeDeformContext texManipContext texMoveContext texMoveUVShellContext texRotateContext texScaleContext texSelectContext texSelectShortestPathCtx texSmudgeUVContext texWinToolCtx text textCurves textField textFieldButtonGrp textFieldGrp textManip textScrollList textToShelf textureDisplacePlane textureHairColor texturePlacementContext textureWindow threadCount threePointArcCtx timeControl timePort timerX toNativePath toggle toggleAxis toggleWindowVisibility tokenize tokenizeList tolerance tolower toolButton toolCollection toolDropped toolHasOptions toolPropertyWindow torus toupper trace track trackCtx transferAttributes transformCompare transformLimits translator trim trunc truncateFluidCache truncateHairCache tumble tumbleCtx turbulence twoPointArcCtx uiRes uiTemplate unassignInputDevice undo undoInfo ungroup uniform unit unloadPlugin untangleUV untitledFileName untrim upAxis updateAE userCtx uvLink uvSnapshot validateShelfName vectorize view2dToolCtx viewCamera viewClipPlane viewFit viewHeadOn viewLookAt viewManip viewPlace viewSet visor volumeAxis vortex waitCursor warning webBrowser webBrowserPrefs whatIs window windowPref wire wireContext workspace wrinkle wrinkleContext writeTake xbmLangPathList xform",i:"",o={cN:"params",b:"\\([^\\(]",rB:!0,c:[{b:/\(/,e:/\)/,k:c,c:["self"].concat(r)}]};return{aliases:["coffee","cson","iced"],k:c,i:/\/\*/,c:r.concat([e.C("###","###"),e.HCM,{cN:"function",b:"^\\s*"+n+"\\s*=\\s*"+s,e:"[-=]>",rB:!0,c:[i,o]},{b:/[:\(,=]\s*/,r:0,c:[{cN:"function",b:s,e:"[-=]>",rB:!0,c:[o]}]},{cN:"class",bK:"class",e:"$",i:/[:="\[\]]/,c:[{bK:"extends",eW:!0,i:/[:="\[\]]/,c:[i]},i]},{cN:"attribute",b:n+":",e:":",rB:!0,rE:!0,r:0}])}});hljs.registerLanguage("tex",function(c){var e={cN:"command",b:"\\\\[a-zA-Zа-яА-я]+[\\*]?"},m={cN:"command",b:"\\\\[^a-zA-Zа-яА-я0-9]"},r={cN:"special",b:"[{}\\[\\]\\&#~]",r:0};return{c:[{b:"\\\\[a-zA-Zа-яА-я]+[\\*]? *= *-?\\d*\\.?\\d+(pt|pc|mm|cm|in|dd|cc|ex|em)?",rB:!0,c:[e,m,{cN:"number",b:" *=",e:"-?\\d*\\.?\\d+(pt|pc|mm|cm|in|dd|cc|ex|em)?",eB:!0}],r:10},e,m,r,{cN:"formula",b:"\\$\\$",e:"\\$\\$",c:[e,m,r],r:0},{cN:"formula",b:"\\$",e:"\\$",c:[e,m,r],r:0},c.C("%","$",{r:0})]}});hljs.registerLanguage("go",function(e){var t={keyword:"break default func interface select case map struct chan else goto package switch const fallthrough if range type continue for import return var go defer",constant:"true false iota nil",typename:"bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 uint16 uint32 uint64 int uint uintptr rune",built_in:"append cap close complex copy imag len make new panic print println real recover delete"};return{aliases:["golang"],k:t,i:"",sL:"vbscript"}]}});hljs.registerLanguage("haskell",function(e){var c=[e.C("--","$"),e.C("{-","-}",{c:["self"]})],a={cN:"pragma",b:"{-#",e:"#-}"},i={cN:"preprocessor",b:"^#",e:"$"},n={cN:"type",b:"\\b[A-Z][\\w']*",r:0},t={cN:"container",b:"\\(",e:"\\)",i:'"',c:[a,i,{cN:"type",b:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"},e.inherit(e.TM,{b:"[_a-z][\\w']*"})].concat(c)},l={cN:"container",b:"{",e:"}",c:t.c};return{aliases:["hs"],k:"let in if then else case of where do module import hiding qualified type data newtype deriving class instance as default infix infixl infixr foreign export ccall stdcall cplusplus jvm dotnet safe unsafe family forall mdo proc rec",c:[{cN:"module",b:"\\bmodule\\b",e:"where",k:"module where",c:[t].concat(c),i:"\\W\\.|;"},{cN:"import",b:"\\bimport\\b",e:"$",k:"import|0 qualified as hiding",c:[t].concat(c),i:"\\W\\.|;"},{cN:"class",b:"^(\\s*)?(class|instance)\\b",e:"where",k:"class family instance where",c:[n,t].concat(c)},{cN:"typedef",b:"\\b(data|(new)?type)\\b",e:"$",k:"data family type newtype deriving",c:[a,n,t,l].concat(c)},{cN:"default",bK:"default",e:"$",c:[n,t].concat(c)},{cN:"infix",bK:"infix infixl infixr",e:"$",c:[e.CNM].concat(c)},{cN:"foreign",b:"\\bforeign\\b",e:"$",k:"foreign import export ccall stdcall cplusplus jvm dotnet safe unsafe",c:[n,e.QSM].concat(c)},{cN:"shebang",b:"#!\\/usr\\/bin\\/env runhaskell",e:"$"},a,i,e.QSM,e.CNM,n,e.inherit(e.TM,{b:"^[_a-z][\\w']*"}),{b:"->|<-"}].concat(c)}});hljs.registerLanguage("scilab",function(e){var n=[e.CNM,{cN:"string",b:"'|\"",e:"'|\"",c:[e.BE,{b:"''"}]}];return{aliases:["sci"],k:{keyword:"abort break case clear catch continue do elseif else endfunction end for functionglobal if pause return resume select try then while%f %F %t %T %pi %eps %inf %nan %e %i %z %s",built_in:"abs and acos asin atan ceil cd chdir clearglobal cosh cos cumprod deff disp errorexec execstr exists exp eye gettext floor fprintf fread fsolve imag isdef isemptyisinfisnan isvector lasterror length load linspace list listfiles log10 log2 logmax min msprintf mclose mopen ones or pathconvert poly printf prod pwd rand realround sinh sin size gsort sprintf sqrt strcat strcmps tring sum system tanh tantype typename warning zeros matrix"},i:'("|#|/\\*|\\s+/\\w+)',c:[{cN:"function",bK:"function endfunction",e:"$",k:"function endfunction|10",c:[e.UTM,{cN:"params",b:"\\(",e:"\\)"}]},{cN:"transposed_variable",b:"[a-zA-Z_][a-zA-Z_0-9]*('+[\\.']*|[\\.']+)",e:"",r:0},{cN:"matrix",b:"\\[",e:"\\]'*[\\.']*",r:0,c:n},e.C("//","$")].concat(n)}});hljs.registerLanguage("profile",function(e){return{c:[e.CNM,{cN:"built_in",b:"{",e:"}$",eB:!0,eE:!0,c:[e.ASM,e.QSM],r:0},{cN:"filename",b:"[a-zA-Z_][\\da-zA-Z_]+\\.[\\da-zA-Z_]{1,3}",e:":",eE:!0},{cN:"header",b:"(ncalls|tottime|cumtime)",e:"$",k:"ncalls tottime|10 cumtime|10 filename",r:10},{cN:"summary",b:"function calls",e:"$",c:[e.CNM],r:10},e.ASM,e.QSM,{cN:"function",b:"\\(",e:"\\)$",c:[e.UTM],r:0}]}});hljs.registerLanguage("thrift",function(e){var t="bool byte i16 i32 i64 double string binary";return{k:{keyword:"namespace const typedef struct enum service exception void oneway set list map required optional",built_in:t,literal:"true false"},c:[e.QSM,e.NM,e.CLCM,e.CBCM,{cN:"class",bK:"struct enum service exception",e:/\{/,i:/\n/,c:[e.inherit(e.TM,{starts:{eW:!0,eE:!0}})]},{b:"\\b(set|list|map)\\s*<",e:">",k:t,c:["self"]}]}});hljs.registerLanguage("matlab",function(e){var a=[e.CNM,{cN:"string",b:"'",e:"'",c:[e.BE,{b:"''"}]}],s={r:0,c:[{cN:"operator",b:/'['\.]*/}]};return{k:{keyword:"break case catch classdef continue else elseif end enumerated events for function global if methods otherwise parfor persistent properties return spmd switch try while",built_in:"sin sind sinh asin asind asinh cos cosd cosh acos acosd acosh tan tand tanh atan atand atan2 atanh sec secd sech asec asecd asech csc cscd csch acsc acscd acsch cot cotd coth acot acotd acoth hypot exp expm1 log log1p log10 log2 pow2 realpow reallog realsqrt sqrt nthroot nextpow2 abs angle complex conj imag real unwrap isreal cplxpair fix floor ceil round mod rem sign airy besselj bessely besselh besseli besselk beta betainc betaln ellipj ellipke erf erfc erfcx erfinv expint gamma gammainc gammaln psi legendre cross dot factor isprime primes gcd lcm rat rats perms nchoosek factorial cart2sph cart2pol pol2cart sph2cart hsv2rgb rgb2hsv zeros ones eye repmat rand randn linspace logspace freqspace meshgrid accumarray size length ndims numel disp isempty isequal isequalwithequalnans cat reshape diag blkdiag tril triu fliplr flipud flipdim rot90 find sub2ind ind2sub bsxfun ndgrid permute ipermute shiftdim circshift squeeze isscalar isvector ans eps realmax realmin pi i inf nan isnan isinf isfinite j why compan gallery hadamard hankel hilb invhilb magic pascal rosser toeplitz vander wilkinson"},i:'(//|"|#|/\\*|\\s+/\\w+)',c:[{cN:"function",bK:"function",e:"$",c:[e.UTM,{cN:"params",b:"\\(",e:"\\)"},{cN:"params",b:"\\[",e:"\\]"}]},{b:/[a-zA-Z_][a-zA-Z_0-9]*'['\.]*/,rB:!0,r:0,c:[{b:/[a-zA-Z_][a-zA-Z_0-9]*/,r:0},s.c[0]]},{cN:"matrix",b:"\\[",e:"\\]",c:a,r:0,starts:s},{cN:"cell",b:"\\{",e:/}/,c:a,r:0,starts:s},{b:/\)/,r:0,starts:s},e.C("^\\s*\\%\\{\\s*$","^\\s*\\%\\}\\s*$"),e.C("\\%","$")].concat(a)}});hljs.registerLanguage("vbscript",function(e){return{aliases:["vbs"],cI:!0,k:{keyword:"call class const dim do loop erase execute executeglobal exit for each next function if then else on error option explicit new private property let get public randomize redim rem select case set stop sub while wend with end to elseif is or xor and not class_initialize class_terminate default preserve in me byval byref step resume goto",built_in:"lcase month vartype instrrev ubound setlocale getobject rgb getref string weekdayname rnd dateadd monthname now day minute isarray cbool round formatcurrency conversions csng timevalue second year space abs clng timeserial fixs len asc isempty maths dateserial atn timer isobject filter weekday datevalue ccur isdate instr datediff formatdatetime replace isnull right sgn array snumeric log cdbl hex chr lbound msgbox ucase getlocale cos cdate cbyte rtrim join hour oct typename trim strcomp int createobject loadpicture tan formatnumber mid scriptenginebuildversion scriptengine split scriptengineminorversion cint sin datepart ltrim sqr scriptenginemajorversion time derived eval date formatpercent exp inputbox left ascw chrw regexp server response request cstr err",literal:"true false null nothing empty"},i:"//",c:[e.inherit(e.QSM,{c:[{b:'""'}]}),e.C(/'/,/$/,{r:0}),e.CNM]}});hljs.registerLanguage("capnproto",function(t){return{aliases:["capnp"],k:{keyword:"struct enum interface union group import using const annotation extends in of on as with from fixed",built_in:"Void Bool Int8 Int16 Int32 Int64 UInt8 UInt16 UInt32 UInt64 Float32 Float64 Text Data AnyPointer AnyStruct Capability List",literal:"true false"},c:[t.QSM,t.NM,t.HCM,{cN:"shebang",b:/@0x[\w\d]{16};/,i:/\n/},{cN:"number",b:/@\d+\b/},{cN:"class",bK:"struct enum",e:/\{/,i:/\n/,c:[t.inherit(t.TM,{starts:{eW:!0,eE:!0}})]},{cN:"class",bK:"interface",e:/\{/,i:/\n/,c:[t.inherit(t.TM,{starts:{eW:!0,eE:!0}})]}]}});hljs.registerLanguage("xl",function(e){var t="ObjectLoader Animate MovieCredits Slides Filters Shading Materials LensFlare Mapping VLCAudioVideo StereoDecoder PointCloud NetworkAccess RemoteControl RegExp ChromaKey Snowfall NodeJS Speech Charts",o={keyword:"if then else do while until for loop import with is as where when by data constant",literal:"true false nil",type:"integer real text name boolean symbol infix prefix postfix block tree",built_in:"in mod rem and or xor not abs sign floor ceil sqrt sin cos tan asin acos atan exp expm1 log log2 log10 log1p pi at",module:t,id:"text_length text_range text_find text_replace contains page slide basic_slide title_slide title subtitle fade_in fade_out fade_at clear_color color line_color line_width texture_wrap texture_transform texture scale_?x scale_?y scale_?z? translate_?x translate_?y translate_?z? rotate_?x rotate_?y rotate_?z? rectangle circle ellipse sphere path line_to move_to quad_to curve_to theme background contents locally time mouse_?x mouse_?y mouse_buttons"},a={cN:"constant",b:"[A-Z][A-Z_0-9]+",r:0},r={cN:"variable",b:"([A-Z][a-z_0-9]+)+",r:0},i={cN:"id",b:"[a-z][a-z_0-9]+",r:0},l={cN:"string",b:'"',e:'"',i:"\\n"},n={cN:"string",b:"'",e:"'",i:"\\n"},s={cN:"string",b:"<<",e:">>"},c={cN:"number",b:"[0-9]+#[0-9A-Z_]+(\\.[0-9-A-Z_]+)?#?([Ee][+-]?[0-9]+)?",r:10},_={cN:"import",bK:"import",e:"$",k:{keyword:"import",module:t},r:0,c:[l]},d={cN:"function",b:"[a-z].*->"};return{aliases:["tao"],l:/[a-zA-Z][a-zA-Z0-9_?]*/,k:o,c:[e.CLCM,e.CBCM,l,n,s,d,_,a,r,i,c,e.NM]}});hljs.registerLanguage("scala",function(e){var t={cN:"annotation",b:"@[A-Za-z]+"},a={cN:"string",b:'u?r?"""',e:'"""',r:10},r={cN:"symbol",b:"'\\w[\\w\\d_]*(?!')"},c={cN:"type",b:"\\b[A-Z][A-Za-z0-9_]*",r:0},i={cN:"title",b:/[^0-9\n\t "'(),.`{}\[\]:;][^\n\t "'(),.`{}\[\]:;]+|[^0-9\n\t "'(),.`{}\[\]:;=]/,r:0},l={cN:"class",bK:"class object trait type",e:/[:={\[(\n;]/,c:[{cN:"keyword",bK:"extends with",r:10},i]},n={cN:"function",bK:"def val",e:/[:={\[(\n;]/,c:[i]};return{k:{literal:"true false null",keyword:"type yield lazy override def with val var sealed abstract private trait object if forSome for while throw finally protected extends import final return else break new catch super class case package default try this match continue throws implicit"},c:[e.CLCM,e.CBCM,a,e.QSM,r,c,n,l,e.CNM,t]}});hljs.registerLanguage("elixir",function(e){var n="[a-zA-Z_][a-zA-Z0-9_]*(\\!|\\?)?",r="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?",b="and false then defined module in return redo retry end for true self when next until do begin unless nil break not case cond alias while ensure or include use alias fn quote",c={cN:"subst",b:"#\\{",e:"}",l:n,k:b},a={cN:"string",c:[e.BE,c],v:[{b:/'/,e:/'/},{b:/"/,e:/"/}]},i={cN:"function",bK:"def defp defmacro",e:/\B\b/,c:[e.inherit(e.TM,{b:n,endsParent:!0})]},s=e.inherit(i,{cN:"class",bK:"defmodule defrecord",e:/\bdo\b|$|;/}),l=[a,e.HCM,s,i,{cN:"constant",b:"(\\b[A-Z_]\\w*(.)?)+",r:0},{cN:"symbol",b:":",c:[a,{b:r}],r:0},{cN:"symbol",b:n+":",r:0},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{cN:"variable",b:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{b:"->"},{b:"("+e.RSR+")\\s*",c:[e.HCM,{cN:"regexp",i:"\\n",c:[e.BE,c],v:[{b:"/",e:"/[a-z]*"},{b:"%r\\[",e:"\\][a-z]*"}]}],r:0}];return c.c=l,{l:n,k:b,c:l}});hljs.registerLanguage("sml",function(e){return{aliases:["ml"],k:{keyword:"abstype and andalso as case datatype do else end eqtype exception fn fun functor handle if in include infix infixr let local nonfix of op open orelse raise rec sharing sig signature struct structure then type val with withtype where while",built_in:"array bool char exn int list option order real ref string substring vector unit word",literal:"true false NONE SOME LESS EQUAL GREATER nil"},i:/\/\/|>>/,l:"[a-z_]\\w*!?",c:[{cN:"literal",b:"\\[(\\|\\|)?\\]|\\(\\)"},e.C("\\(\\*","\\*\\)",{c:["self"]}),{cN:"symbol",b:"'[A-Za-z_](?!')[\\w']*"},{cN:"tag",b:"`[A-Z][\\w']*"},{cN:"type",b:"\\b[A-Z][\\w']*",r:0},{b:"[a-z_]\\w*'[\\w']*"},e.inherit(e.ASM,{cN:"char",r:0}),e.inherit(e.QSM,{i:null}),{cN:"number",b:"\\b(0[xX][a-fA-F0-9_]+[Lln]?|0[oO][0-7_]+[Lln]?|0[bB][01_]+[Lln]?|[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)",r:0},{b:/[-=]>/}]}});hljs.registerLanguage("apache",function(e){var r={cN:"number",b:"[\\$%]\\d+"};return{aliases:["apacheconf"],cI:!0,c:[e.HCM,{cN:"tag",b:""},{cN:"keyword",b:/\w+/,r:0,k:{common:"order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername"},starts:{e:/$/,r:0,k:{literal:"on off all"},c:[{cN:"sqbracket",b:"\\s\\[",e:"\\]$"},{cN:"cbracket",b:"[\\$%]\\{",e:"\\}",c:["self",r]},r,e.QSM]}}],i:/\S/}});hljs.registerLanguage("dockerfile",function(n){return{aliases:["docker"],cI:!0,k:{built_ins:"from maintainer cmd expose add copy entrypoint volume user workdir onbuild run env"},c:[n.HCM,{k:{built_in:"run cmd entrypoint volume add copy workdir onbuild"},b:/^ *(onbuild +)?(run|cmd|entrypoint|volume|add|copy|workdir) +/,starts:{e:/[^\\]\n/,sL:"bash",subLanguageMode:"continuous"}},{k:{built_in:"from maintainer expose env user onbuild"},b:/^ *(onbuild +)?(from|maintainer|expose|env|user|onbuild) +/,e:/[^\\]\n/,c:[n.ASM,n.QSM,n.NM,n.HCM]}]}});hljs.registerLanguage("markdown",function(e){return{aliases:["md","mkdown","mkd"],c:[{cN:"header",v:[{b:"^#{1,6}",e:"$"},{b:"^.+?\\n[=-]{2,}$"}]},{b:"<",e:">",sL:"xml",r:0},{cN:"bullet",b:"^([*+-]|(\\d+\\.))\\s+"},{cN:"strong",b:"[*_]{2}.+?[*_]{2}"},{cN:"emphasis",v:[{b:"\\*.+?\\*"},{b:"_.+?_",r:0}]},{cN:"blockquote",b:"^>\\s+",e:"$"},{cN:"code",v:[{b:"`.+?`"},{b:"^( {4}| )",e:"$",r:0}]},{cN:"horizontal_rule",b:"^[-\\*]{3,}",e:"$"},{b:"\\[.+?\\][\\(\\[].*?[\\)\\]]",rB:!0,c:[{cN:"link_label",b:"\\[",e:"\\]",eB:!0,rE:!0,r:0},{cN:"link_url",b:"\\]\\(",e:"\\)",eB:!0,eE:!0},{cN:"link_reference",b:"\\]\\[",e:"\\]",eB:!0,eE:!0}],r:10},{b:"^\\[.+\\]:",rB:!0,c:[{cN:"link_reference",b:"\\[",e:"\\]:",eB:!0,eE:!0,starts:{cN:"link_url",e:"$"}}]}]}});hljs.registerLanguage("haml",function(s){return{cI:!0,c:[{cN:"doctype",b:"^!!!( (5|1\\.1|Strict|Frameset|Basic|Mobile|RDFa|XML\\b.*))?$",r:10},s.C("^\\s*(!=#|=#|-#|/).*$",!1,{r:0}),{b:"^\\s*(-|=|!=)(?!#)",starts:{e:"\\n",sL:"ruby"}},{cN:"tag",b:"^\\s*%",c:[{cN:"title",b:"\\w+"},{cN:"value",b:"[#\\.]\\w+"},{b:"{\\s*",e:"\\s*}",eE:!0,c:[{b:":\\w+\\s*=>",e:",\\s+",rB:!0,eW:!0,c:[{cN:"symbol",b:":\\w+"},{cN:"string",b:'"',e:'"'},{cN:"string",b:"'",e:"'"},{b:"\\w+",r:0}]}]},{b:"\\(\\s*",e:"\\s*\\)",eE:!0,c:[{b:"\\w+\\s*=",e:"\\s+",rB:!0,eW:!0,c:[{cN:"attribute",b:"\\w+",r:0},{cN:"string",b:'"',e:'"'},{cN:"string",b:"'",e:"'"},{b:"\\w+",r:0}]}]}]},{cN:"bullet",b:"^\\s*[=~]\\s*",r:0},{b:"#{",starts:{e:"}",sL:"ruby"}}]}});hljs.registerLanguage("fortran",function(e){var t={cN:"params",b:"\\(",e:"\\)"},n={constant:".False. .True.",type:"integer real character complex logical dimension allocatable|10 parameter external implicit|10 none double precision assign intent optional pointer target in out common equivalence data",keyword:"kind do while private call intrinsic where elsewhere type endtype endmodule endselect endinterface end enddo endif if forall endforall only contains default return stop then public subroutine|10 function program .and. .or. .not. .le. .eq. .ge. .gt. .lt. goto save else use module select case access blank direct exist file fmt form formatted iostat name named nextrec number opened rec recl sequential status unformatted unit continue format pause cycle exit c_null_char c_alert c_backspace c_form_feed flush wait decimal round iomsg synchronous nopass non_overridable pass protected volatile abstract extends import non_intrinsic value deferred generic final enumerator class associate bind enum c_int c_short c_long c_long_long c_signed_char c_size_t c_int8_t c_int16_t c_int32_t c_int64_t c_int_least8_t c_int_least16_t c_int_least32_t c_int_least64_t c_int_fast8_t c_int_fast16_t c_int_fast32_t c_int_fast64_t c_intmax_t C_intptr_t c_float c_double c_long_double c_float_complex c_double_complex c_long_double_complex c_bool c_char c_null_ptr c_null_funptr c_new_line c_carriage_return c_horizontal_tab c_vertical_tab iso_c_binding c_loc c_funloc c_associated c_f_pointer c_ptr c_funptr iso_fortran_env character_storage_size error_unit file_storage_size input_unit iostat_end iostat_eor numeric_storage_size output_unit c_f_procpointer ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode newunit contiguous pad position action delim readwrite eor advance nml interface procedure namelist include sequence elemental pure",built_in:"alog alog10 amax0 amax1 amin0 amin1 amod cabs ccos cexp clog csin csqrt dabs dacos dasin datan datan2 dcos dcosh ddim dexp dint dlog dlog10 dmax1 dmin1 dmod dnint dsign dsin dsinh dsqrt dtan dtanh float iabs idim idint idnint ifix isign max0 max1 min0 min1 sngl algama cdabs cdcos cdexp cdlog cdsin cdsqrt cqabs cqcos cqexp cqlog cqsin cqsqrt dcmplx dconjg derf derfc dfloat dgamma dimag dlgama iqint qabs qacos qasin qatan qatan2 qcmplx qconjg qcos qcosh qdim qerf qerfc qexp qgamma qimag qlgama qlog qlog10 qmax1 qmin1 qmod qnint qsign qsin qsinh qsqrt qtan qtanh abs acos aimag aint anint asin atan atan2 char cmplx conjg cos cosh exp ichar index int log log10 max min nint sign sin sinh sqrt tan tanh print write dim lge lgt lle llt mod nullify allocate deallocate adjustl adjustr all allocated any associated bit_size btest ceiling count cshift date_and_time digits dot_product eoshift epsilon exponent floor fraction huge iand ibclr ibits ibset ieor ior ishft ishftc lbound len_trim matmul maxexponent maxloc maxval merge minexponent minloc minval modulo mvbits nearest pack present product radix random_number random_seed range repeat reshape rrspacing scale scan selected_int_kind selected_real_kind set_exponent shape size spacing spread sum system_clock tiny transpose trim ubound unpack verify achar iachar transfer dble entry dprod cpu_time command_argument_count get_command get_command_argument get_environment_variable is_iostat_end ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode is_iostat_eor move_alloc new_line selected_char_kind same_type_as extends_type_ofacosh asinh atanh bessel_j0 bessel_j1 bessel_jn bessel_y0 bessel_y1 bessel_yn erf erfc erfc_scaled gamma log_gamma hypot norm2 atomic_define atomic_ref execute_command_line leadz trailz storage_size merge_bits bge bgt ble blt dshiftl dshiftr findloc iall iany iparity image_index lcobound ucobound maskl maskr num_images parity popcnt poppar shifta shiftl shiftr this_image"};return{cI:!0,aliases:["f90","f95"],k:n,c:[e.inherit(e.ASM,{cN:"string",r:0}),e.inherit(e.QSM,{cN:"string",r:0}),{cN:"function",bK:"subroutine function program",i:"[${=\\n]",c:[e.UTM,t]},e.C("!","$",{r:0}),{cN:"number",b:"(?=\\b|\\+|\\-|\\.)(?=\\.\\d|\\d)(?:\\d+)?(?:\\.?\\d*)(?:[de][+-]?\\d+)?\\b\\.?",r:0}]}});hljs.registerLanguage("smali",function(r){var t=["add","and","cmp","cmpg","cmpl","const","div","double","float","goto","if","int","long","move","mul","neg","new","nop","not","or","rem","return","shl","shr","sput","sub","throw","ushr","xor"],n=["aget","aput","array","check","execute","fill","filled","goto/16","goto/32","iget","instance","invoke","iput","monitor","packed","sget","sparse"],s=["transient","constructor","abstract","final","synthetic","public","private","protected","static","bridge","system"];return{aliases:["smali"],c:[{cN:"string",b:'"',e:'"',r:0},r.C("#","$",{r:0}),{cN:"keyword",b:"\\s*\\.end\\s[a-zA-Z0-9]*",r:1},{cN:"keyword",b:"^[ ]*\\.[a-zA-Z]*",r:0},{cN:"keyword",b:"\\s:[a-zA-Z_0-9]*",r:0},{cN:"keyword",b:"\\s("+s.join("|")+")",r:1},{cN:"keyword",b:"\\[",r:0},{cN:"instruction",b:"\\s("+t.join("|")+")\\s",r:1},{cN:"instruction",b:"\\s("+t.join("|")+")((\\-|/)[a-zA-Z0-9]+)+\\s",r:10},{cN:"instruction",b:"\\s("+n.join("|")+")((\\-|/)[a-zA-Z0-9]+)*\\s",r:10},{cN:"class",b:"L[^(;:\n]*;",r:0},{cN:"function",b:'( |->)[^(\n ;"]*\\(',r:0},{cN:"function",b:"\\)",r:0},{cN:"variable",b:"[vp][0-9]+",r:0}]}});hljs.registerLanguage("julia",function(r){var e={keyword:"in abstract baremodule begin bitstype break catch ccall const continue do else elseif end export finally for function global if immutable import importall let local macro module quote return try type typealias using while",literal:"true false ANY ARGS CPU_CORES C_NULL DL_LOAD_PATH DevNull ENDIAN_BOM ENV I|0 Inf Inf16 Inf32 InsertionSort JULIA_HOME LOAD_PATH MS_ASYNC MS_INVALIDATE MS_SYNC MergeSort NaN NaN16 NaN32 OS_NAME QuickSort RTLD_DEEPBIND RTLD_FIRST RTLD_GLOBAL RTLD_LAZY RTLD_LOCAL RTLD_NODELETE RTLD_NOLOAD RTLD_NOW RoundDown RoundFromZero RoundNearest RoundToZero RoundUp STDERR STDIN STDOUT VERSION WORD_SIZE catalan cglobal e eu eulergamma golden im nothing pi γ π φ",built_in:"ASCIIString AbstractArray AbstractRNG AbstractSparseArray Any ArgumentError Array Associative Base64Pipe Bidiagonal BigFloat BigInt BitArray BitMatrix BitVector Bool BoundsError Box CFILE Cchar Cdouble Cfloat Char CharString Cint Clong Clonglong ClusterManager Cmd Coff_t Colon Complex Complex128 Complex32 Complex64 Condition Cptrdiff_t Cshort Csize_t Cssize_t Cuchar Cuint Culong Culonglong Cushort Cwchar_t DArray DataType DenseArray Diagonal Dict DimensionMismatch DirectIndexString Display DivideError DomainError EOFError EachLine Enumerate ErrorException Exception Expr Factorization FileMonitor FileOffset Filter Float16 Float32 Float64 FloatRange FloatingPoint Function GetfieldNode GotoNode Hermitian IO IOBuffer IOStream IPv4 IPv6 InexactError Int Int128 Int16 Int32 Int64 Int8 IntSet Integer InterruptException IntrinsicFunction KeyError LabelNode LambdaStaticData LineNumberNode LoadError LocalProcess MIME MathConst MemoryError MersenneTwister Method MethodError MethodTable Module NTuple NewvarNode Nothing Number ObjectIdDict OrdinalRange OverflowError ParseError PollingFileWatcher ProcessExitedException ProcessGroup Ptr QuoteNode Range Range1 Ranges Rational RawFD Real Regex RegexMatch RemoteRef RepString RevString RopeString RoundingMode Set SharedArray Signed SparseMatrixCSC StackOverflowError Stat StatStruct StepRange String SubArray SubString SymTridiagonal Symbol SymbolNode Symmetric SystemError Task TextDisplay Timer TmStruct TopNode Triangular Tridiagonal Type TypeConstructor TypeError TypeName TypeVar UTF16String UTF32String UTF8String UdpSocket Uint Uint128 Uint16 Uint32 Uint64 Uint8 UndefRefError UndefVarError UniformScaling UnionType UnitRange Unsigned Vararg VersionNumber WString WeakKeyDict WeakRef Woodbury Zip"},t="[A-Za-z_\\u00A1-\\uFFFF][A-Za-z_0-9\\u00A1-\\uFFFF]*",o={l:t,k:e},n={cN:"type-annotation",b:/::/},a={cN:"subtype",b:/<:/},i={cN:"number",b:/(\b0x[\d_]*(\.[\d_]*)?|0x\.\d[\d_]*)p[-+]?\d+|\b0[box][a-fA-F0-9][a-fA-F0-9_]*|(\b\d[\d_]*(\.[\d_]*)?|\.\d[\d_]*)([eEfF][-+]?\d+)?/,r:0},l={cN:"char",b:/'(.|\\[xXuU][a-zA-Z0-9]+)'/},c={cN:"subst",b:/\$\(/,e:/\)/,k:e},u={cN:"variable",b:"\\$"+t},d={cN:"string",c:[r.BE,c,u],v:[{b:/\w*"/,e:/"\w*/},{b:/\w*"""/,e:/"""\w*/}]},g={cN:"string",c:[r.BE,c,u],b:"`",e:"`"},s={cN:"macrocall",b:"@"+t},S={cN:"comment",v:[{b:"#=",e:"=#",r:10},{b:"#",e:"$"}]};return o.c=[i,l,n,a,d,g,s,S,r.HCM],c.c=o.c,o});hljs.registerLanguage("delphi",function(e){var r="exports register file shl array record property for mod while set ally label uses raise not stored class safecall var interface or private static exit index inherited to else stdcall override shr asm far resourcestring finalization packed virtual out and protected library do xorwrite goto near function end div overload object unit begin string on inline repeat until destructor write message program with read initialization except default nil if case cdecl in downto threadvar of try pascal const external constructor type public then implementation finally published procedure",t=[e.CLCM,e.C(/\{/,/\}/,{r:0}),e.C(/\(\*/,/\*\)/,{r:10})],i={cN:"string",b:/'/,e:/'/,c:[{b:/''/}]},c={cN:"string",b:/(#\d+)+/},o={b:e.IR+"\\s*=\\s*class\\s*\\(",rB:!0,c:[e.TM]},n={cN:"function",bK:"function constructor destructor procedure",e:/[:;]/,k:"function constructor|10 destructor|10 procedure|10",c:[e.TM,{cN:"params",b:/\(/,e:/\)/,k:r,c:[i,c]}].concat(t)};return{cI:!0,k:r,i:/"|\$[G-Zg-z]|\/\*|<\/|\|/,c:[i,c,e.NM,o,n].concat(t)}});hljs.registerLanguage("brainfuck",function(r){var n={cN:"literal",b:"[\\+\\-]",r:0};return{aliases:["bf"],c:[r.C("[^\\[\\]\\.,\\+\\-<> \r\n]","[\\[\\]\\.,\\+\\-<> \r\n]",{rE:!0,r:0}),{cN:"title",b:"[\\[\\]]",r:0},{cN:"string",b:"[\\.,]",r:0},{b:/\+\+|\-\-/,rB:!0,c:[n]},n]}});hljs.registerLanguage("ini",function(e){return{cI:!0,i:/\S/,c:[e.C(";","$"),{cN:"title",b:"^\\[",e:"\\]"},{cN:"setting",b:"^[a-z0-9\\[\\]_-]+[ \\t]*=[ \\t]*",e:"$",c:[{cN:"value",eW:!0,k:"on off true false yes no",c:[e.QSM,e.NM],r:0}]}]}});hljs.registerLanguage("json",function(e){var t={literal:"true false null"},i=[e.QSM,e.CNM],l={cN:"value",e:",",eW:!0,eE:!0,c:i,k:t},c={b:"{",e:"}",c:[{cN:"attribute",b:'\\s*"',e:'"\\s*:\\s*',eB:!0,eE:!0,c:[e.BE],i:"\\n",starts:l}],i:"\\S"},n={b:"\\[",e:"\\]",c:[e.inherit(l,{cN:null})],i:"\\S"};return i.splice(i.length,0,c,n),{c:i,k:t,i:"\\S"}});hljs.registerLanguage("powershell",function(e){var t={b:"`[\\s\\S]",r:0},r={cN:"variable",v:[{b:/\$[\w\d][\w\d_:]*/}]},o={cN:"string",b:/"/,e:/"/,c:[t,r,{cN:"variable",b:/\$[A-z]/,e:/[^A-z]/}]},a={cN:"string",b:/'/,e:/'/};return{aliases:["ps"],l:/-?[A-z\.\-]+/,cI:!0,k:{keyword:"if else foreach return function do while until elseif begin for trap data dynamicparam end break throw param continue finally in switch exit filter try process catch",literal:"$null $true $false",built_in:"Add-Content Add-History Add-Member Add-PSSnapin Clear-Content Clear-Item Clear-Item Property Clear-Variable Compare-Object ConvertFrom-SecureString Convert-Path ConvertTo-Html ConvertTo-SecureString Copy-Item Copy-ItemProperty Export-Alias Export-Clixml Export-Console Export-Csv ForEach-Object Format-Custom Format-List Format-Table Format-Wide Get-Acl Get-Alias Get-AuthenticodeSignature Get-ChildItem Get-Command Get-Content Get-Credential Get-Culture Get-Date Get-EventLog Get-ExecutionPolicy Get-Help Get-History Get-Host Get-Item Get-ItemProperty Get-Location Get-Member Get-PfxCertificate Get-Process Get-PSDrive Get-PSProvider Get-PSSnapin Get-Service Get-TraceSource Get-UICulture Get-Unique Get-Variable Get-WmiObject Group-Object Import-Alias Import-Clixml Import-Csv Invoke-Expression Invoke-History Invoke-Item Join-Path Measure-Command Measure-Object Move-Item Move-ItemProperty New-Alias New-Item New-ItemProperty New-Object New-PSDrive New-Service New-TimeSpan New-Variable Out-Default Out-File Out-Host Out-Null Out-Printer Out-String Pop-Location Push-Location Read-Host Remove-Item Remove-ItemProperty Remove-PSDrive Remove-PSSnapin Remove-Variable Rename-Item Rename-ItemProperty Resolve-Path Restart-Service Resume-Service Select-Object Select-String Set-Acl Set-Alias Set-AuthenticodeSignature Set-Content Set-Date Set-ExecutionPolicy Set-Item Set-ItemProperty Set-Location Set-PSDebug Set-Service Set-TraceSource Set-Variable Sort-Object Split-Path Start-Service Start-Sleep Start-Transcript Stop-Process Stop-Service Stop-Transcript Suspend-Service Tee-Object Test-Path Trace-Command Update-FormatData Update-TypeData Where-Object Write-Debug Write-Error Write-Host Write-Output Write-Progress Write-Verbose Write-Warning",operator:"-ne -eq -lt -gt -ge -le -not -like -notlike -match -notmatch -contains -notcontains -in -notin -replace"},c:[e.HCM,e.NM,o,a,r]}});hljs.registerLanguage("gradle",function(e){return{cI:!0,k:{keyword:"task project allprojects subprojects artifacts buildscript configurations dependencies repositories sourceSets description delete from into include exclude source classpath destinationDir includes options sourceCompatibility targetCompatibility group flatDir doLast doFirst flatten todir fromdir ant def abstract break case catch continue default do else extends final finally for if implements instanceof native new private protected public return static switch synchronized throw throws transient try volatile while strictfp package import false null super this true antlrtask checkstyle codenarc copy boolean byte char class double float int interface long short void compile runTime file fileTree abs any append asList asWritable call collect compareTo count div dump each eachByte eachFile eachLine every find findAll flatten getAt getErr getIn getOut getText grep immutable inject inspect intersect invokeMethods isCase join leftShift minus multiply newInputStream newOutputStream newPrintWriter newReader newWriter next plus pop power previous print println push putAt read readBytes readLines reverse reverseEach round size sort splitEachLine step subMap times toInteger toList tokenize upto waitForOrKill withPrintWriter withReader withStream withWriter withWriterAppend write writeLine"},c:[e.CLCM,e.CBCM,e.ASM,e.QSM,e.NM,e.RM]}});hljs.registerLanguage("erb",function(e){return{sL:"xml",subLanguageMode:"continuous",c:[e.C("<%#","%>"),{b:"<%[%=-]?",e:"[%-]?%>",sL:"ruby",eB:!0,eE:!0}]}});hljs.registerLanguage("swift",function(e){var i={keyword:"class deinit enum extension func import init let protocol static struct subscript typealias var break case continue default do else fallthrough if in for return switch where while as dynamicType is new super self Self Type __COLUMN__ __FILE__ __FUNCTION__ __LINE__ associativity didSet get infix inout left mutating none nonmutating operator override postfix precedence prefix right set unowned unowned safe unsafe weak willSet",literal:"true false nil",built_in:"abs advance alignof alignofValue assert bridgeFromObjectiveC bridgeFromObjectiveCUnconditional bridgeToObjectiveC bridgeToObjectiveCUnconditional c contains count countElements countLeadingZeros debugPrint debugPrintln distance dropFirst dropLast dump encodeBitsAsWords enumerate equal false filter find getBridgedObjectiveCType getVaList indices insertionSort isBridgedToObjectiveC isBridgedVerbatimToObjectiveC isUniquelyReferenced join lexicographicalCompare map max maxElement min minElement nil numericCast partition posix print println quickSort reduce reflect reinterpretCast reverse roundUpToAlignment sizeof sizeofValue sort split startsWith strideof strideofValue swap swift toString transcode true underestimateCount unsafeReflect withExtendedLifetime withObjectAtPlusZero withUnsafePointer withUnsafePointerToObject withUnsafePointers withVaList"},t={cN:"type",b:"\\b[A-Z][\\w']*",r:0},n=e.C("/\\*","\\*/",{c:["self"]}),r={cN:"subst",b:/\\\(/,e:"\\)",k:i,c:[]},s={cN:"number",b:"\\b([\\d_]+(\\.[\\deE_]+)?|0x[a-fA-F0-9_]+(\\.[a-fA-F0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\b",r:0},o=e.inherit(e.QSM,{c:[r,e.BE]});return r.c=[s],{k:i,c:[o,e.CLCM,n,t,s,{cN:"func",bK:"func",e:"{",eE:!0,c:[e.inherit(e.TM,{b:/[A-Za-z$_][0-9A-Za-z$_]*/,i:/\(/}),{cN:"generics",b://,i:/>/},{cN:"params",b:/\(/,e:/\)/,endsParent:!0,k:i,c:["self",s,o,e.CBCM,{b:":"}],i:/["']/}],i:/\[|%/},{cN:"class",bK:"struct protocol class extension enum",k:i,e:"\\{",eE:!0,c:[e.inherit(e.TM,{b:/[A-Za-z$_][0-9A-Za-z$_]*/})]},{cN:"preprocessor",b:"(@assignment|@class_protocol|@exported|@final|@lazy|@noreturn|@NSCopying|@NSManaged|@objc|@optional|@required|@auto_closure|@noreturn|@IBAction|@IBDesignable|@IBInspectable|@IBOutlet|@infix|@prefix|@postfix)"}]}});hljs.registerLanguage("lisp",function(b){var e="[a-zA-Z_\\-\\+\\*\\/\\<\\=\\>\\&\\#][a-zA-Z0-9_\\-\\+\\*\\/\\<\\=\\>\\&\\#!]*",c="\\|[^]*?\\|",r="(\\-|\\+)?\\d+(\\.\\d+|\\/\\d+)?((d|e|f|l|s|D|E|F|L|S)(\\+|\\-)?\\d+)?",a={cN:"shebang",b:"^#!",e:"$"},i={cN:"literal",b:"\\b(t{1}|nil)\\b"},l={cN:"number",v:[{b:r,r:0},{b:"#(b|B)[0-1]+(/[0-1]+)?"},{b:"#(o|O)[0-7]+(/[0-7]+)?"},{b:"#(x|X)[0-9a-fA-F]+(/[0-9a-fA-F]+)?"},{b:"#(c|C)\\("+r+" +"+r,e:"\\)"}]},t=b.inherit(b.QSM,{i:null}),d=b.C(";","$",{r:0}),n={cN:"variable",b:"\\*",e:"\\*"},u={cN:"keyword",b:"[:&]"+e},N={b:e,r:0},o={b:c},s={b:"\\(",e:"\\)",c:["self",i,t,l,N]},v={cN:"quoted",c:[l,t,n,u,s,N],v:[{b:"['`]\\(",e:"\\)"},{b:"\\(quote ",e:"\\)",k:"quote"},{b:"'"+c}]},f={cN:"quoted",v:[{b:"'"+e},{b:"#'"+e+"(::"+e+")*"}]},g={cN:"list",b:"\\(\\s*",e:"\\)"},q={eW:!0,r:0};return g.c=[{cN:"keyword",v:[{b:e},{b:c}]},q],q.c=[v,f,g,i,l,t,d,n,u,o,N],{i:/\S/,c:[l,a,i,t,d,v,f,g,N]}});hljs.registerLanguage("rsl",function(e){return{k:{keyword:"float color point normal vector matrix while for if do return else break extern continue",built_in:"abs acos ambient area asin atan atmosphere attribute calculatenormal ceil cellnoise clamp comp concat cos degrees depth Deriv diffuse distance Du Dv environment exp faceforward filterstep floor format fresnel incident length lightsource log match max min mod noise normalize ntransform opposite option phong pnoise pow printf ptlined radians random reflect refract renderinfo round setcomp setxcomp setycomp setzcomp shadow sign sin smoothstep specular specularbrdf spline sqrt step tan texture textureinfo trace transform vtransform xcomp ycomp zcomp"},i:" > >= ` abs acos angle append apply asin assoc assq assv atan boolean? caar cadr call-with-input-file call-with-output-file call-with-values car cdddar cddddr cdr ceiling char->integer char-alphabetic? char-ci<=? char-ci=? char-ci>? char-downcase char-lower-case? char-numeric? char-ready? char-upcase char-upper-case? char-whitespace? char<=? char=? char>? char? close-input-port close-output-port complex? cons cos current-input-port current-output-port denominator display eof-object? eq? equal? eqv? eval even? exact->inexact exact? exp expt floor force gcd imag-part inexact->exact inexact? input-port? integer->char integer? interaction-environment lcm length list list->string list->vector list-ref list-tail list? load log magnitude make-polar make-rectangular make-string make-vector max member memq memv min modulo negative? newline not null-environment null? number->string number? numerator odd? open-input-file open-output-file output-port? pair? peek-char port? positive? procedure? quasiquote quote quotient rational? rationalize read read-char real-part real? remainder reverse round scheme-report-environment set! set-car! set-cdr! sin sqrt string string->list string->number string->symbol string-append string-ci<=? string-ci=? string-ci>? string-copy string-fill! string-length string-ref string-set! string<=? string=? string>? string? substring symbol->string symbol? tan transcript-off transcript-on truncate values vector vector->list vector-fill! vector-length vector-ref vector-set! with-input-from-file with-output-to-file write write-char zero?"},n={cN:"shebang",b:"^#!",e:"$"},c={cN:"literal",b:"(#t|#f|#\\\\"+t+"|#\\\\.)"},l={cN:"number",v:[{b:r,r:0},{b:i,r:0},{b:"#b[0-1]+(/[0-1]+)?"},{b:"#o[0-7]+(/[0-7]+)?"},{b:"#x[0-9a-f]+(/[0-9a-f]+)?"}]},s=e.QSM,o=[e.C(";","$",{r:0}),e.C("#\\|","\\|#")],u={b:t,r:0},p={cN:"variable",b:"'"+t},d={eW:!0,r:0},g={cN:"list",v:[{b:"\\(",e:"\\)"},{b:"\\[",e:"\\]"}],c:[{cN:"keyword",b:t,l:t,k:a},d]};return d.c=[c,l,s,u,p,g].concat(o),{i:/\S/,c:[n,l,s,p,g].concat(o)}});hljs.registerLanguage("stata",function(e){return{aliases:["do","ado"],cI:!0,k:"if else in foreach for forv forva forval forvalu forvalue forvalues by bys bysort xi quietly qui capture about ac ac_7 acprplot acprplot_7 adjust ado adopath adoupdate alpha ameans an ano anov anova anova_estat anova_terms anovadef aorder ap app appe appen append arch arch_dr arch_estat arch_p archlm areg areg_p args arima arima_dr arima_estat arima_p as asmprobit asmprobit_estat asmprobit_lf asmprobit_mfx__dlg asmprobit_p ass asse asser assert avplot avplot_7 avplots avplots_7 bcskew0 bgodfrey binreg bip0_lf biplot bipp_lf bipr_lf bipr_p biprobit bitest bitesti bitowt blogit bmemsize boot bootsamp bootstrap bootstrap_8 boxco_l boxco_p boxcox boxcox_6 boxcox_p bprobit br break brier bro brow brows browse brr brrstat bs bs_7 bsampl_w bsample bsample_7 bsqreg bstat bstat_7 bstat_8 bstrap bstrap_7 ca ca_estat ca_p cabiplot camat canon canon_8 canon_8_p canon_estat canon_p cap caprojection capt captu captur capture cat cc cchart cchart_7 cci cd censobs_table centile cf char chdir checkdlgfiles checkestimationsample checkhlpfiles checksum chelp ci cii cl class classutil clear cli clis clist clo clog clog_lf clog_p clogi clogi_sw clogit clogit_lf clogit_p clogitp clogl_sw cloglog clonevar clslistarray cluster cluster_measures cluster_stop cluster_tree cluster_tree_8 clustermat cmdlog cnr cnre cnreg cnreg_p cnreg_sw cnsreg codebook collaps4 collapse colormult_nb colormult_nw compare compress conf confi confir confirm conren cons const constr constra constrai constrain constraint continue contract copy copyright copysource cor corc corr corr2data corr_anti corr_kmo corr_smc corre correl correla correlat correlate corrgram cou coun count cox cox_p cox_sw coxbase coxhaz coxvar cprplot cprplot_7 crc cret cretu cretur creturn cross cs cscript cscript_log csi ct ct_is ctset ctst_5 ctst_st cttost cumsp cumsp_7 cumul cusum cusum_7 cutil d datasig datasign datasigna datasignat datasignatu datasignatur datasignature datetof db dbeta de dec deco decod decode deff des desc descr descri describ describe destring dfbeta dfgls dfuller di di_g dir dirstats dis discard disp disp_res disp_s displ displa display distinct do doe doed doedi doedit dotplot dotplot_7 dprobit drawnorm drop ds ds_util dstdize duplicates durbina dwstat dydx e ed edi edit egen eivreg emdef en enc enco encod encode eq erase ereg ereg_lf ereg_p ereg_sw ereghet ereghet_glf ereghet_glf_sh ereghet_gp ereghet_ilf ereghet_ilf_sh ereghet_ip eret eretu eretur ereturn err erro error est est_cfexist est_cfname est_clickable est_expand est_hold est_table est_unhold est_unholdok estat estat_default estat_summ estat_vce_only esti estimates etodow etof etomdy ex exi exit expand expandcl fac fact facto factor factor_estat factor_p factor_pca_rotated factor_rotate factormat fcast fcast_compute fcast_graph fdades fdadesc fdadescr fdadescri fdadescrib fdadescribe fdasav fdasave fdause fh_st file open file read file close file filefilter fillin find_hlp_file findfile findit findit_7 fit fl fli flis flist for5_0 form forma format fpredict frac_154 frac_adj frac_chk frac_cox frac_ddp frac_dis frac_dv frac_in frac_mun frac_pp frac_pq frac_pv frac_wgt frac_xo fracgen fracplot fracplot_7 fracpoly fracpred fron_ex fron_hn fron_p fron_tn fron_tn2 frontier ftodate ftoe ftomdy ftowdate g gamhet_glf gamhet_gp gamhet_ilf gamhet_ip gamma gamma_d2 gamma_p gamma_sw gammahet gdi_hexagon gdi_spokes ge gen gene gener genera generat generate genrank genstd genvmean gettoken gl gladder gladder_7 glim_l01 glim_l02 glim_l03 glim_l04 glim_l05 glim_l06 glim_l07 glim_l08 glim_l09 glim_l10 glim_l11 glim_l12 glim_lf glim_mu glim_nw1 glim_nw2 glim_nw3 glim_p glim_v1 glim_v2 glim_v3 glim_v4 glim_v5 glim_v6 glim_v7 glm glm_6 glm_p glm_sw glmpred glo glob globa global glogit glogit_8 glogit_p gmeans gnbre_lf gnbreg gnbreg_5 gnbreg_p gomp_lf gompe_sw gomper_p gompertz gompertzhet gomphet_glf gomphet_glf_sh gomphet_gp gomphet_ilf gomphet_ilf_sh gomphet_ip gphdot gphpen gphprint gprefs gprobi_p gprobit gprobit_8 gr gr7 gr_copy gr_current gr_db gr_describe gr_dir gr_draw gr_draw_replay gr_drop gr_edit gr_editviewopts gr_example gr_example2 gr_export gr_print gr_qscheme gr_query gr_read gr_rename gr_replay gr_save gr_set gr_setscheme gr_table gr_undo gr_use graph graph7 grebar greigen greigen_7 greigen_8 grmeanby grmeanby_7 gs_fileinfo gs_filetype gs_graphinfo gs_stat gsort gwood h hadimvo hareg hausman haver he heck_d2 heckma_p heckman heckp_lf heckpr_p heckprob hel help hereg hetpr_lf hetpr_p hetprob hettest hexdump hilite hist hist_7 histogram hlogit hlu hmeans hotel hotelling hprobit hreg hsearch icd9 icd9_ff icd9p iis impute imtest inbase include inf infi infil infile infix inp inpu input ins insheet insp inspe inspec inspect integ inten intreg intreg_7 intreg_p intrg2_ll intrg_ll intrg_ll2 ipolate iqreg ir irf irf_create irfm iri is_svy is_svysum isid istdize ivprob_1_lf ivprob_lf ivprobit ivprobit_p ivreg ivreg_footnote ivtob_1_lf ivtob_lf ivtobit ivtobit_p jackknife jacknife jknife jknife_6 jknife_8 jkstat joinby kalarma1 kap kap_3 kapmeier kappa kapwgt kdensity kdensity_7 keep ksm ksmirnov ktau kwallis l la lab labe label labelbook ladder levels levelsof leverage lfit lfit_p li lincom line linktest lis list lloghet_glf lloghet_glf_sh lloghet_gp lloghet_ilf lloghet_ilf_sh lloghet_ip llogi_sw llogis_p llogist llogistic llogistichet lnorm_lf lnorm_sw lnorma_p lnormal lnormalhet lnormhet_glf lnormhet_glf_sh lnormhet_gp lnormhet_ilf lnormhet_ilf_sh lnormhet_ip lnskew0 loadingplot loc loca local log logi logis_lf logistic logistic_p logit logit_estat logit_p loglogs logrank loneway lookfor lookup lowess lowess_7 lpredict lrecomp lroc lroc_7 lrtest ls lsens lsens_7 lsens_x lstat ltable ltable_7 ltriang lv lvr2plot lvr2plot_7 m ma mac macr macro makecns man manova manova_estat manova_p manovatest mantel mark markin markout marksample mat mat_capp mat_order mat_put_rr mat_rapp mata mata_clear mata_describe mata_drop mata_matdescribe mata_matsave mata_matuse mata_memory mata_mlib mata_mosave mata_rename mata_which matalabel matcproc matlist matname matr matri matrix matrix_input__dlg matstrik mcc mcci md0_ md1_ md1debug_ md2_ md2debug_ mds mds_estat mds_p mdsconfig mdslong mdsmat mdsshepard mdytoe mdytof me_derd mean means median memory memsize meqparse mer merg merge mfp mfx mhelp mhodds minbound mixed_ll mixed_ll_reparm mkassert mkdir mkmat mkspline ml ml_5 ml_adjs ml_bhhhs ml_c_d ml_check ml_clear ml_cnt ml_debug ml_defd ml_e0 ml_e0_bfgs ml_e0_cycle ml_e0_dfp ml_e0i ml_e1 ml_e1_bfgs ml_e1_bhhh ml_e1_cycle ml_e1_dfp ml_e2 ml_e2_cycle ml_ebfg0 ml_ebfr0 ml_ebfr1 ml_ebh0q ml_ebhh0 ml_ebhr0 ml_ebr0i ml_ecr0i ml_edfp0 ml_edfr0 ml_edfr1 ml_edr0i ml_eds ml_eer0i ml_egr0i ml_elf ml_elf_bfgs ml_elf_bhhh ml_elf_cycle ml_elf_dfp ml_elfi ml_elfs ml_enr0i ml_enrr0 ml_erdu0 ml_erdu0_bfgs ml_erdu0_bhhh ml_erdu0_bhhhq ml_erdu0_cycle ml_erdu0_dfp ml_erdu0_nrbfgs ml_exde ml_footnote ml_geqnr ml_grad0 ml_graph ml_hbhhh ml_hd0 ml_hold ml_init ml_inv ml_log ml_max ml_mlout ml_mlout_8 ml_model ml_nb0 ml_opt ml_p ml_plot ml_query ml_rdgrd ml_repor ml_s_e ml_score ml_searc ml_technique ml_unhold mleval mlf_ mlmatbysum mlmatsum mlog mlogi mlogit mlogit_footnote mlogit_p mlopts mlsum mlvecsum mnl0_ mor more mov move mprobit mprobit_lf mprobit_p mrdu0_ mrdu1_ mvdecode mvencode mvreg mvreg_estat n nbreg nbreg_al nbreg_lf nbreg_p nbreg_sw nestreg net newey newey_7 newey_p news nl nl_7 nl_9 nl_9_p nl_p nl_p_7 nlcom nlcom_p nlexp2 nlexp2_7 nlexp2a nlexp2a_7 nlexp3 nlexp3_7 nlgom3 nlgom3_7 nlgom4 nlgom4_7 nlinit nllog3 nllog3_7 nllog4 nllog4_7 nlog_rd nlogit nlogit_p nlogitgen nlogittree nlpred no nobreak noi nois noisi noisil noisily note notes notes_dlg nptrend numlabel numlist odbc old_ver olo olog ologi ologi_sw ologit ologit_p ologitp on one onew onewa oneway op_colnm op_comp op_diff op_inv op_str opr opro oprob oprob_sw oprobi oprobi_p oprobit oprobitp opts_exclusive order orthog orthpoly ou out outf outfi outfil outfile outs outsh outshe outshee outsheet ovtest pac pac_7 palette parse parse_dissim pause pca pca_8 pca_display pca_estat pca_p pca_rotate pcamat pchart pchart_7 pchi pchi_7 pcorr pctile pentium pergram pergram_7 permute permute_8 personal peto_st pkcollapse pkcross pkequiv pkexamine pkexamine_7 pkshape pksumm pksumm_7 pl plo plot plugin pnorm pnorm_7 poisgof poiss_lf poiss_sw poisso_p poisson poisson_estat post postclose postfile postutil pperron pr prais prais_e prais_e2 prais_p predict predictnl preserve print pro prob probi probit probit_estat probit_p proc_time procoverlay procrustes procrustes_estat procrustes_p profiler prog progr progra program prop proportion prtest prtesti pwcorr pwd q\\s qby qbys qchi qchi_7 qladder qladder_7 qnorm qnorm_7 qqplot qqplot_7 qreg qreg_c qreg_p qreg_sw qu quadchk quantile quantile_7 que quer query range ranksum ratio rchart rchart_7 rcof recast reclink recode reg reg3 reg3_p regdw regr regre regre_p2 regres regres_p regress regress_estat regriv_p remap ren rena renam rename renpfix repeat replace report reshape restore ret retu retur return rm rmdir robvar roccomp roccomp_7 roccomp_8 rocf_lf rocfit rocfit_8 rocgold rocplot rocplot_7 roctab roctab_7 rolling rologit rologit_p rot rota rotat rotate rotatemat rreg rreg_p ru run runtest rvfplot rvfplot_7 rvpplot rvpplot_7 sa safesum sample sampsi sav save savedresults saveold sc sca scal scala scalar scatter scm_mine sco scob_lf scob_p scobi_sw scobit scor score scoreplot scoreplot_help scree screeplot screeplot_help sdtest sdtesti se search separate seperate serrbar serrbar_7 serset set set_defaults sfrancia sh she shel shell shewhart shewhart_7 signestimationsample signrank signtest simul simul_7 simulate simulate_8 sktest sleep slogit slogit_d2 slogit_p smooth snapspan so sor sort spearman spikeplot spikeplot_7 spikeplt spline_x split sqreg sqreg_p sret sretu sretur sreturn ssc st st_ct st_hc st_hcd st_hcd_sh st_is st_issys st_note st_promo st_set st_show st_smpl st_subid stack statsby statsby_8 stbase stci stci_7 stcox stcox_estat stcox_fr stcox_fr_ll stcox_p stcox_sw stcoxkm stcoxkm_7 stcstat stcurv stcurve stcurve_7 stdes stem stepwise stereg stfill stgen stir stjoin stmc stmh stphplot stphplot_7 stphtest stphtest_7 stptime strate strate_7 streg streg_sw streset sts sts_7 stset stsplit stsum sttocc sttoct stvary stweib su suest suest_8 sum summ summa summar summari summariz summarize sunflower sureg survcurv survsum svar svar_p svmat svy svy_disp svy_dreg svy_est svy_est_7 svy_estat svy_get svy_gnbreg_p svy_head svy_header svy_heckman_p svy_heckprob_p svy_intreg_p svy_ivreg_p svy_logistic_p svy_logit_p svy_mlogit_p svy_nbreg_p svy_ologit_p svy_oprobit_p svy_poisson_p svy_probit_p svy_regress_p svy_sub svy_sub_7 svy_x svy_x_7 svy_x_p svydes svydes_8 svygen svygnbreg svyheckman svyheckprob svyintreg svyintreg_7 svyintrg svyivreg svylc svylog_p svylogit svymarkout svymarkout_8 svymean svymlog svymlogit svynbreg svyolog svyologit svyoprob svyoprobit svyopts svypois svypois_7 svypoisson svyprobit svyprobt svyprop svyprop_7 svyratio svyreg svyreg_p svyregress svyset svyset_7 svyset_8 svytab svytab_7 svytest svytotal sw sw_8 swcnreg swcox swereg swilk swlogis swlogit swologit swoprbt swpois swprobit swqreg swtobit swweib symmetry symmi symplot symplot_7 syntax sysdescribe sysdir sysuse szroeter ta tab tab1 tab2 tab_or tabd tabdi tabdis tabdisp tabi table tabodds tabodds_7 tabstat tabu tabul tabula tabulat tabulate te tempfile tempname tempvar tes test testnl testparm teststd tetrachoric time_it timer tis tob tobi tobit tobit_p tobit_sw token tokeni tokeniz tokenize tostring total translate translator transmap treat_ll treatr_p treatreg trim trnb_cons trnb_mean trpoiss_d2 trunc_ll truncr_p truncreg tsappend tset tsfill tsline tsline_ex tsreport tsrevar tsrline tsset tssmooth tsunab ttest ttesti tut_chk tut_wait tutorial tw tware_st two twoway twoway__fpfit_serset twoway__function_gen twoway__histogram_gen twoway__ipoint_serset twoway__ipoints_serset twoway__kdensity_gen twoway__lfit_serset twoway__normgen_gen twoway__pci_serset twoway__qfit_serset twoway__scatteri_serset twoway__sunflower_gen twoway_ksm_serset ty typ type typeof u unab unabbrev unabcmd update us use uselabel var var_mkcompanion var_p varbasic varfcast vargranger varirf varirf_add varirf_cgraph varirf_create varirf_ctable varirf_describe varirf_dir varirf_drop varirf_erase varirf_graph varirf_ograph varirf_rename varirf_set varirf_table varlist varlmar varnorm varsoc varstable varstable_w varstable_w2 varwle vce vec vec_fevd vec_mkphi vec_p vec_p_w vecirf_create veclmar veclmar_w vecnorm vecnorm_w vecrank vecstable verinst vers versi versio version view viewsource vif vwls wdatetof webdescribe webseek webuse weib1_lf weib2_lf weib_lf weib_lf0 weibhet_glf weibhet_glf_sh weibhet_glfa weibhet_glfa_sh weibhet_gp weibhet_ilf weibhet_ilf_sh weibhet_ilfa weibhet_ilfa_sh weibhet_ip weibu_sw weibul_p weibull weibull_c weibull_s weibullhet wh whelp whi which whil while wilc_st wilcoxon win wind windo window winexec wntestb wntestb_7 wntestq xchart xchart_7 xcorr xcorr_7 xi xi_6 xmlsav xmlsave xmluse xpose xsh xshe xshel xshell xt_iis xt_tis xtab_p xtabond xtbin_p xtclog xtcloglog xtcloglog_8 xtcloglog_d2 xtcloglog_pa_p xtcloglog_re_p xtcnt_p xtcorr xtdata xtdes xtfront_p xtfrontier xtgee xtgee_elink xtgee_estat xtgee_makeivar xtgee_p xtgee_plink xtgls xtgls_p xthaus xthausman xtht_p xthtaylor xtile xtint_p xtintreg xtintreg_8 xtintreg_d2 xtintreg_p xtivp_1 xtivp_2 xtivreg xtline xtline_ex xtlogit xtlogit_8 xtlogit_d2 xtlogit_fe_p xtlogit_pa_p xtlogit_re_p xtmixed xtmixed_estat xtmixed_p xtnb_fe xtnb_lf xtnbreg xtnbreg_pa_p xtnbreg_refe_p xtpcse xtpcse_p xtpois xtpoisson xtpoisson_d2 xtpoisson_pa_p xtpoisson_refe_p xtpred xtprobit xtprobit_8 xtprobit_d2 xtprobit_re_p xtps_fe xtps_lf xtps_ren xtps_ren_8 xtrar_p xtrc xtrc_p xtrchh xtrefe_p xtreg xtreg_be xtreg_fe xtreg_ml xtreg_pa_p xtreg_re xtregar xtrere_p xtset xtsf_ll xtsf_llti xtsum xttab xttest0 xttobit xttobit_8 xttobit_p xttrans yx yxview__barlike_draw yxview_area_draw yxview_bar_draw yxview_dot_draw yxview_dropline_draw yxview_function_draw yxview_iarrow_draw yxview_ilabels_draw yxview_normal_draw yxview_pcarrow_draw yxview_pcbarrow_draw yxview_pccapsym_draw yxview_pcscatter_draw yxview_pcspike_draw yxview_rarea_draw yxview_rbar_draw yxview_rbarm_draw yxview_rcap_draw yxview_rcapsym_draw yxview_rconnected_draw yxview_rline_draw yxview_rscatter_draw yxview_rspike_draw yxview_spike_draw yxview_sunflower_draw zap_s zinb zinb_llf zinb_plf zip zip_llf zip_p zip_plf zt_ct_5 zt_hc_5 zt_hcd_5 zt_is_5 zt_iss_5 zt_sho_5 zt_smp_5 ztbase_5 ztcox_5 ztdes_5 ztereg_5 ztfill_5 ztgen_5 ztir_5 ztjoin_5 ztnb ztnb_p ztp ztp_p zts_5 ztset_5 ztspli_5 ztsum_5 zttoct_5 ztvary_5 ztweib_5",c:[{cN:"label",v:[{b:"\\$\\{?[a-zA-Z0-9_]+\\}?"},{b:"`[a-zA-Z0-9_]+'"}]},{cN:"string",v:[{b:'`"[^\r\n]*?"\''},{b:'"[^\r\n"]*"'}]},{cN:"literal",v:[{b:"\\b(abs|acos|asin|atan|atan2|atanh|ceil|cloglog|comb|cos|digamma|exp|floor|invcloglog|invlogit|ln|lnfact|lnfactorial|lngamma|log|log10|max|min|mod|reldif|round|sign|sin|sqrt|sum|tan|tanh|trigamma|trunc|betaden|Binomial|binorm|binormal|chi2|chi2tail|dgammapda|dgammapdada|dgammapdadx|dgammapdx|dgammapdxdx|F|Fden|Ftail|gammaden|gammap|ibeta|invbinomial|invchi2|invchi2tail|invF|invFtail|invgammap|invibeta|invnchi2|invnFtail|invnibeta|invnorm|invnormal|invttail|nbetaden|nchi2|nFden|nFtail|nibeta|norm|normal|normalden|normd|npnchi2|tden|ttail|uniform|abbrev|char|index|indexnot|length|lower|ltrim|match|plural|proper|real|regexm|regexr|regexs|reverse|rtrim|string|strlen|strlower|strltrim|strmatch|strofreal|strpos|strproper|strreverse|strrtrim|strtrim|strupper|subinstr|subinword|substr|trim|upper|word|wordcount|_caller|autocode|byteorder|chop|clip|cond|e|epsdouble|epsfloat|group|inlist|inrange|irecode|matrix|maxbyte|maxdouble|maxfloat|maxint|maxlong|mi|minbyte|mindouble|minfloat|minint|minlong|missing|r|recode|replay|return|s|scalar|d|date|day|dow|doy|halfyear|mdy|month|quarter|week|year|d|daily|dofd|dofh|dofm|dofq|dofw|dofy|h|halfyearly|hofd|m|mofd|monthly|q|qofd|quarterly|tin|twithin|w|weekly|wofd|y|yearly|yh|ym|yofd|yq|yw|cholesky|colnumb|colsof|corr|det|diag|diag0cnt|el|get|hadamard|I|inv|invsym|issym|issymmetric|J|matmissing|matuniform|mreldif|nullmat|rownumb|rowsof|sweep|syminv|trace|vec|vecdiag)(?=\\(|$)"}]},e.C("^[ ]*\\*.*$",!1),e.CLCM,e.CBCM]}});hljs.registerLanguage("asciidoc",function(e){return{aliases:["adoc"],c:[e.C("^/{4,}\\n","\\n/{4,}$",{r:10}),e.C("^//","$",{r:0}),{cN:"title",b:"^\\.\\w.*$"},{b:"^[=\\*]{4,}\\n",e:"\\n^[=\\*]{4,}$",r:10},{cN:"header",b:"^(={1,5}) .+?( \\1)?$",r:10},{cN:"header",b:"^[^\\[\\]\\n]+?\\n[=\\-~\\^\\+]{2,}$",r:10},{cN:"attribute",b:"^:.+?:",e:"\\s",eE:!0,r:10},{cN:"attribute",b:"^\\[.+?\\]$",r:0},{cN:"blockquote",b:"^_{4,}\\n",e:"\\n_{4,}$",r:10},{cN:"code",b:"^[\\-\\.]{4,}\\n",e:"\\n[\\-\\.]{4,}$",r:10},{b:"^\\+{4,}\\n",e:"\\n\\+{4,}$",c:[{b:"<",e:">",sL:"xml",r:0}],r:10},{cN:"bullet",b:"^(\\*+|\\-+|\\.+|[^\\n]+?::)\\s+"},{cN:"label",b:"^(NOTE|TIP|IMPORTANT|WARNING|CAUTION):\\s+",r:10},{cN:"strong",b:"\\B\\*(?![\\*\\s])",e:"(\\n{2}|\\*)",c:[{b:"\\\\*\\w",r:0}]},{cN:"emphasis",b:"\\B'(?!['\\s])",e:"(\\n{2}|')",c:[{b:"\\\\'\\w",r:0}],r:0},{cN:"emphasis",b:"_(?![_\\s])",e:"(\\n{2}|_)",r:0},{cN:"smartquote",v:[{b:"``.+?''"},{b:"`.+?'"}]},{cN:"code",b:"(`.+?`|\\+.+?\\+)",r:0},{cN:"code",b:"^[ \\t]",e:"$",r:0},{cN:"horizontal_rule",b:"^'{3,}[ \\t]*$",r:10},{b:"(link:)?(http|https|ftp|file|irc|image:?):\\S+\\[.*?\\]",rB:!0,c:[{b:"(link|image:?):",r:0},{cN:"link_url",b:"\\w",e:"[^\\[]+",r:0},{cN:"link_label",b:"\\[",e:"\\]",eB:!0,eE:!0,r:0}],r:10}]}});hljs.registerLanguage("php",function(e){var c={cN:"variable",b:"\\$+[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*"},i={cN:"preprocessor",b:/<\?(php)?|\?>/},a={cN:"string",c:[e.BE,i],v:[{b:'b"',e:'"'},{b:"b'",e:"'"},e.inherit(e.ASM,{i:null}),e.inherit(e.QSM,{i:null})]},n={v:[e.BNM,e.CNM]};return{aliases:["php3","php4","php5","php6"],cI:!0,k:"and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception default die require __FUNCTION__ enddeclare final try switch continue endfor endif declare unset true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yield finally",c:[e.CLCM,e.HCM,e.C("/\\*","\\*/",{c:[{cN:"phpdoc",b:"\\s@[A-Za-z]+"},i]}),e.C("__halt_compiler.+?;",!1,{eW:!0,k:"__halt_compiler",l:e.UIR}),{cN:"string",b:"<<<['\"]?\\w+['\"]?$",e:"^\\w+;",c:[e.BE]},i,c,{b:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{cN:"function",bK:"function",e:/[;{]/,eE:!0,i:"\\$|\\[|%",c:[e.UTM,{cN:"params",b:"\\(",e:"\\)",c:["self",c,e.CBCM,a,n]}]},{cN:"class",bK:"class interface",e:"{",eE:!0,i:/[:\(\$"]/,c:[{bK:"extends implements"},e.UTM]},{bK:"namespace",e:";",i:/[\.']/,c:[e.UTM]},{bK:"use",e:";",c:[e.UTM]},{b:"=>"},a,n]}});hljs.registerLanguage("java",function(e){var a=e.UIR+"(<"+e.UIR+">)?",t="false synchronized int abstract float private char boolean static null if const for true while long strictfp finally protected import native final void enum else break transient catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private",c="(\\b(0b[01_]+)|\\b0[xX][a-fA-F0-9_]+|(\\b[\\d_]+(\\.[\\d_]*)?|\\.[\\d_]+)([eE][-+]?\\d+)?)[lLfF]?",r={cN:"number",b:c,r:0};return{aliases:["jsp"],k:t,i:/<\//,c:[{cN:"javadoc",b:"/\\*\\*",e:"\\*/",r:0,c:[{cN:"javadoctag",b:"(^|\\s)@[A-Za-z]+"}]},e.CLCM,e.CBCM,e.ASM,e.QSM,{cN:"class",bK:"class interface",e:/[{;=]/,eE:!0,k:"class interface",i:/[:"\[\]]/,c:[{bK:"extends implements"},e.UTM]},{bK:"new throw return",r:0},{cN:"function",b:"("+a+"\\s+)+"+e.UIR+"\\s*\\(",rB:!0,e:/[{;=]/,eE:!0,k:t,c:[{b:e.UIR+"\\s*\\(",rB:!0,r:0,c:[e.UTM]},{cN:"params",b:/\(/,e:/\)/,k:t,r:0,c:[e.ASM,e.QSM,e.CNM,e.CBCM]},e.CLCM,e.CBCM]},r,{cN:"annotation",b:"@[A-Za-z]+"}]}});hljs.registerLanguage("glsl",function(e){return{k:{keyword:"atomic_uint attribute bool break bvec2 bvec3 bvec4 case centroid coherent const continue default discard dmat2 dmat2x2 dmat2x3 dmat2x4 dmat3 dmat3x2 dmat3x3 dmat3x4 dmat4 dmat4x2 dmat4x3 dmat4x4 do double dvec2 dvec3 dvec4 else flat float for highp if iimage1D iimage1DArray iimage2D iimage2DArray iimage2DMS iimage2DMSArray iimage2DRect iimage3D iimageBuffer iimageCube iimageCubeArray image1D image1DArray image2D image2DArray image2DMS image2DMSArray image2DRect image3D imageBuffer imageCube imageCubeArray in inout int invariant isampler1D isampler1DArray isampler2D isampler2DArray isampler2DMS isampler2DMSArray isampler2DRect isampler3D isamplerBuffer isamplerCube isamplerCubeArray ivec2 ivec3 ivec4 layout lowp mat2 mat2x2 mat2x3 mat2x4 mat3 mat3x2 mat3x3 mat3x4 mat4 mat4x2 mat4x3 mat4x4 mediump noperspective out patch precision readonly restrict return sample sampler1D sampler1DArray sampler1DArrayShadow sampler1DShadow sampler2D sampler2DArray sampler2DArrayShadow sampler2DMS sampler2DMSArray sampler2DRect sampler2DRectShadow sampler2DShadow sampler3D samplerBuffer samplerCube samplerCubeArray samplerCubeArrayShadow samplerCubeShadow smooth struct subroutine switch uimage1D uimage1DArray uimage2D uimage2DArray uimage2DMS uimage2DMSArray uimage2DRect uimage3D uimageBuffer uimageCube uimageCubeArray uint uniform usampler1D usampler1DArray usampler2D usampler2DArray usampler2DMS usampler2DMSArray usampler2DRect usampler3D usamplerBuffer usamplerCube usamplerCubeArray uvec2 uvec3 uvec4 varying vec2 vec3 vec4 void volatile while writeonly",built_in:"gl_BackColor gl_BackLightModelProduct gl_BackLightProduct gl_BackMaterial gl_BackSecondaryColor gl_ClipDistance gl_ClipPlane gl_ClipVertex gl_Color gl_DepthRange gl_EyePlaneQ gl_EyePlaneR gl_EyePlaneS gl_EyePlaneT gl_Fog gl_FogCoord gl_FogFragCoord gl_FragColor gl_FragCoord gl_FragData gl_FragDepth gl_FrontColor gl_FrontFacing gl_FrontLightModelProduct gl_FrontLightProduct gl_FrontMaterial gl_FrontSecondaryColor gl_InstanceID gl_InvocationID gl_Layer gl_LightModel gl_LightSource gl_MaxAtomicCounterBindings gl_MaxAtomicCounterBufferSize gl_MaxClipDistances gl_MaxClipPlanes gl_MaxCombinedAtomicCounterBuffers gl_MaxCombinedAtomicCounters gl_MaxCombinedImageUniforms gl_MaxCombinedImageUnitsAndFragmentOutputs gl_MaxCombinedTextureImageUnits gl_MaxDrawBuffers gl_MaxFragmentAtomicCounterBuffers gl_MaxFragmentAtomicCounters gl_MaxFragmentImageUniforms gl_MaxFragmentInputComponents gl_MaxFragmentUniformComponents gl_MaxFragmentUniformVectors gl_MaxGeometryAtomicCounterBuffers gl_MaxGeometryAtomicCounters gl_MaxGeometryImageUniforms gl_MaxGeometryInputComponents gl_MaxGeometryOutputComponents gl_MaxGeometryOutputVertices gl_MaxGeometryTextureImageUnits gl_MaxGeometryTotalOutputComponents gl_MaxGeometryUniformComponents gl_MaxGeometryVaryingComponents gl_MaxImageSamples gl_MaxImageUnits gl_MaxLights gl_MaxPatchVertices gl_MaxProgramTexelOffset gl_MaxTessControlAtomicCounterBuffers gl_MaxTessControlAtomicCounters gl_MaxTessControlImageUniforms gl_MaxTessControlInputComponents gl_MaxTessControlOutputComponents gl_MaxTessControlTextureImageUnits gl_MaxTessControlTotalOutputComponents gl_MaxTessControlUniformComponents gl_MaxTessEvaluationAtomicCounterBuffers gl_MaxTessEvaluationAtomicCounters gl_MaxTessEvaluationImageUniforms gl_MaxTessEvaluationInputComponents gl_MaxTessEvaluationOutputComponents gl_MaxTessEvaluationTextureImageUnits gl_MaxTessEvaluationUniformComponents gl_MaxTessGenLevel gl_MaxTessPatchComponents gl_MaxTextureCoords gl_MaxTextureImageUnits gl_MaxTextureUnits gl_MaxVaryingComponents gl_MaxVaryingFloats gl_MaxVaryingVectors gl_MaxVertexAtomicCounterBuffers gl_MaxVertexAtomicCounters gl_MaxVertexAttribs gl_MaxVertexImageUniforms gl_MaxVertexOutputComponents gl_MaxVertexTextureImageUnits gl_MaxVertexUniformComponents gl_MaxVertexUniformVectors gl_MaxViewports gl_MinProgramTexelOffsetgl_ModelViewMatrix gl_ModelViewMatrixInverse gl_ModelViewMatrixInverseTranspose gl_ModelViewMatrixTranspose gl_ModelViewProjectionMatrix gl_ModelViewProjectionMatrixInverse gl_ModelViewProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixTranspose gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_Normal gl_NormalMatrix gl_NormalScale gl_ObjectPlaneQ gl_ObjectPlaneR gl_ObjectPlaneS gl_ObjectPlaneT gl_PatchVerticesIn gl_PerVertex gl_Point gl_PointCoord gl_PointSize gl_Position gl_PrimitiveID gl_PrimitiveIDIn gl_ProjectionMatrix gl_ProjectionMatrixInverse gl_ProjectionMatrixInverseTranspose gl_ProjectionMatrixTranspose gl_SampleID gl_SampleMask gl_SampleMaskIn gl_SamplePosition gl_SecondaryColor gl_TessCoord gl_TessLevelInner gl_TessLevelOuter gl_TexCoord gl_TextureEnvColor gl_TextureMatrixInverseTranspose gl_TextureMatrixTranspose gl_Vertex gl_VertexID gl_ViewportIndex gl_in gl_out EmitStreamVertex EmitVertex EndPrimitive EndStreamPrimitive abs acos acosh all any asin asinh atan atanh atomicCounter atomicCounterDecrement atomicCounterIncrement barrier bitCount bitfieldExtract bitfieldInsert bitfieldReverse ceil clamp cos cosh cross dFdx dFdy degrees determinant distance dot equal exp exp2 faceforward findLSB findMSB floatBitsToInt floatBitsToUint floor fma fract frexp ftransform fwidth greaterThan greaterThanEqual imageAtomicAdd imageAtomicAnd imageAtomicCompSwap imageAtomicExchange imageAtomicMax imageAtomicMin imageAtomicOr imageAtomicXor imageLoad imageStore imulExtended intBitsToFloat interpolateAtCentroid interpolateAtOffset interpolateAtSample inverse inversesqrt isinf isnan ldexp length lessThan lessThanEqual log log2 matrixCompMult max memoryBarrier min mix mod modf noise1 noise2 noise3 noise4 normalize not notEqual outerProduct packDouble2x32 packHalf2x16 packSnorm2x16 packSnorm4x8 packUnorm2x16 packUnorm4x8 pow radians reflect refract round roundEven shadow1D shadow1DLod shadow1DProj shadow1DProjLod shadow2D shadow2DLod shadow2DProj shadow2DProjLod sign sin sinh smoothstep sqrt step tan tanh texelFetch texelFetchOffset texture texture1D texture1DLod texture1DProj texture1DProjLod texture2D texture2DLod texture2DProj texture2DProjLod texture3D texture3DLod texture3DProj texture3DProjLod textureCube textureCubeLod textureGather textureGatherOffset textureGatherOffsets textureGrad textureGradOffset textureLod textureLodOffset textureOffset textureProj textureProjGrad textureProjGradOffset textureProjLod textureProjLodOffset textureProjOffset textureQueryLod textureSize transpose trunc uaddCarry uintBitsToFloat umulExtended unpackDouble2x32 unpackHalf2x16 unpackSnorm2x16 unpackSnorm4x8 unpackUnorm2x16 unpackUnorm4x8 usubBorrow gl_TextureMatrix gl_TextureMatrixInverse",literal:"true false"},i:'"',c:[e.CLCM,e.CBCM,e.CNM,{cN:"preprocessor",b:"#",e:"$"}]}});hljs.registerLanguage("lua",function(e){var t="\\[=*\\[",a="\\]=*\\]",r={b:t,e:a,c:["self"]},n=[e.C("--(?!"+t+")","$"),e.C("--"+t,a,{c:[r],r:10})];return{l:e.UIR,k:{keyword:"and break do else elseif end false for if in local nil not or repeat return then true until while",built_in:"_G _VERSION assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall coroutine debug io math os package string table"},c:n.concat([{cN:"function",bK:"function",e:"\\)",c:[e.inherit(e.TM,{b:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{cN:"params",b:"\\(",eW:!0,c:n}].concat(n)},e.CNM,e.ASM,e.QSM,{cN:"string",b:t,e:a,c:[r],r:5}])}});hljs.registerLanguage("protobuf",function(e){return{k:{keyword:"package import option optional required repeated group",built_in:"double float int32 int64 uint32 uint64 sint32 sint64 fixed32 fixed64 sfixed32 sfixed64 bool string bytes",literal:"true false"},c:[e.QSM,e.NM,e.CLCM,{cN:"class",bK:"message enum service",e:/\{/,i:/\n/,c:[e.inherit(e.TM,{starts:{eW:!0,eE:!0}})]},{cN:"function",bK:"rpc",e:/;/,eE:!0,k:"rpc returns"},{cN:"constant",b:/^\s*[A-Z_]+/,e:/\s*=/,eE:!0}]}});hljs.registerLanguage("gcode",function(e){var N="[A-Z_][A-Z0-9_.]*",i="\\%",c={literal:"",built_in:"",keyword:"IF DO WHILE ENDWHILE CALL ENDIF SUB ENDSUB GOTO REPEAT ENDREPEAT EQ LT GT NE GE LE OR XOR"},r={cN:"preprocessor",b:"([O])([0-9]+)"},l=[e.CLCM,e.CBCM,e.C(/\(/,/\)/),e.inherit(e.CNM,{b:"([-+]?([0-9]*\\.?[0-9]+\\.?))|"+e.CNR}),e.inherit(e.ASM,{i:null}),e.inherit(e.QSM,{i:null}),{cN:"keyword",b:"([G])([0-9]+\\.?[0-9]?)"},{cN:"title",b:"([M])([0-9]+\\.?[0-9]?)"},{cN:"title",b:"(VC|VS|#)",e:"(\\d+)"},{cN:"title",b:"(VZOFX|VZOFY|VZOFZ)"},{cN:"built_in",b:"(ATAN|ABS|ACOS|ASIN|SIN|COS|EXP|FIX|FUP|ROUND|LN|TAN)(\\[)",e:"([-+]?([0-9]*\\.?[0-9]+\\.?))(\\])"},{cN:"label",v:[{b:"N",e:"\\d+",i:"\\W"}]}];return{aliases:["nc"],cI:!0,l:N,k:c,c:[{cN:"preprocessor",b:i},r].concat(l)}});hljs.registerLanguage("vim",function(e){return{l:/[!#@\w]+/,k:{keyword:"N|0 P|0 X|0 a|0 ab abc abo al am an|0 ar arga argd arge argdo argg argl argu as au aug aun b|0 bN ba bad bd be bel bf bl bm bn bo bp br brea breaka breakd breakl bro bufdo buffers bun bw c|0 cN cNf ca cabc caddb cad caddf cal cat cb cc ccl cd ce cex cf cfir cgetb cgete cg changes chd che checkt cl cla clo cm cmapc cme cn cnew cnf cno cnorea cnoreme co col colo com comc comp con conf cope cp cpf cq cr cs cst cu cuna cunme cw d|0 delm deb debugg delc delf dif diffg diffo diffp diffpu diffs diffthis dig di dl dell dj dli do doautoa dp dr ds dsp e|0 ea ec echoe echoh echom echon el elsei em en endfo endf endt endw ene ex exe exi exu f|0 files filet fin fina fini fir fix fo foldc foldd folddoc foldo for fu g|0 go gr grepa gu gv ha h|0 helpf helpg helpt hi hid his i|0 ia iabc if ij il im imapc ime ino inorea inoreme int is isp iu iuna iunme j|0 ju k|0 keepa kee keepj lN lNf l|0 lad laddb laddf la lan lat lb lc lch lcl lcs le lefta let lex lf lfir lgetb lgete lg lgr lgrepa lh ll lla lli lmak lm lmapc lne lnew lnf ln loadk lo loc lockv lol lope lp lpf lr ls lt lu lua luad luaf lv lvimgrepa lw m|0 ma mak map mapc marks mat me menut mes mk mks mksp mkv mkvie mod mz mzf nbc nb nbs n|0 new nm nmapc nme nn nnoreme noa no noh norea noreme norm nu nun nunme ol o|0 om omapc ome on ono onoreme opt ou ounme ow p|0 profd prof pro promptr pc ped pe perld po popu pp pre prev ps pt ptN ptf ptj ptl ptn ptp ptr pts pu pw py3 python3 py3d py3f py pyd pyf q|0 quita qa r|0 rec red redi redr redraws reg res ret retu rew ri rightb rub rubyd rubyf rund ru rv s|0 sN san sa sal sav sb sbN sba sbf sbl sbm sbn sbp sbr scrip scripte scs se setf setg setl sf sfir sh sim sig sil sl sla sm smap smapc sme sn sni sno snor snoreme sor so spelld spe spelli spellr spellu spellw sp spr sre st sta startg startr star stopi stj sts sun sunm sunme sus sv sw sy synti sync t|0 tN tabN tabc tabdo tabe tabf tabfir tabl tabm tabnew tabn tabo tabp tabr tabs tab ta tags tc tcld tclf te tf th tj tl tm tn to tp tr try ts tu u|0 undoj undol una unh unl unlo unm unme uns up v|0 ve verb vert vim vimgrepa vi viu vie vm vmapc vme vne vn vnoreme vs vu vunme windo w|0 wN wa wh wi winc winp wn wp wq wqa ws wu wv x|0 xa xmapc xm xme xn xnoreme xu xunme y|0 z|0 ~ Next Print append abbreviate abclear aboveleft all amenu anoremenu args argadd argdelete argedit argglobal arglocal argument ascii autocmd augroup aunmenu buffer bNext ball badd bdelete behave belowright bfirst blast bmodified bnext botright bprevious brewind break breakadd breakdel breaklist browse bunload bwipeout change cNext cNfile cabbrev cabclear caddbuffer caddexpr caddfile call catch cbuffer cclose center cexpr cfile cfirst cgetbuffer cgetexpr cgetfile chdir checkpath checktime clist clast close cmap cmapclear cmenu cnext cnewer cnfile cnoremap cnoreabbrev cnoremenu copy colder colorscheme command comclear compiler continue confirm copen cprevious cpfile cquit crewind cscope cstag cunmap cunabbrev cunmenu cwindow delete delmarks debug debuggreedy delcommand delfunction diffupdate diffget diffoff diffpatch diffput diffsplit digraphs display deletel djump dlist doautocmd doautoall deletep drop dsearch dsplit edit earlier echo echoerr echohl echomsg else elseif emenu endif endfor endfunction endtry endwhile enew execute exit exusage file filetype find finally finish first fixdel fold foldclose folddoopen folddoclosed foldopen function global goto grep grepadd gui gvim hardcopy help helpfind helpgrep helptags highlight hide history insert iabbrev iabclear ijump ilist imap imapclear imenu inoremap inoreabbrev inoremenu intro isearch isplit iunmap iunabbrev iunmenu join jumps keepalt keepmarks keepjumps lNext lNfile list laddexpr laddbuffer laddfile last language later lbuffer lcd lchdir lclose lcscope left leftabove lexpr lfile lfirst lgetbuffer lgetexpr lgetfile lgrep lgrepadd lhelpgrep llast llist lmake lmap lmapclear lnext lnewer lnfile lnoremap loadkeymap loadview lockmarks lockvar lolder lopen lprevious lpfile lrewind ltag lunmap luado luafile lvimgrep lvimgrepadd lwindow move mark make mapclear match menu menutranslate messages mkexrc mksession mkspell mkvimrc mkview mode mzscheme mzfile nbclose nbkey nbsart next nmap nmapclear nmenu nnoremap nnoremenu noautocmd noremap nohlsearch noreabbrev noremenu normal number nunmap nunmenu oldfiles open omap omapclear omenu only onoremap onoremenu options ounmap ounmenu ownsyntax print profdel profile promptfind promptrepl pclose pedit perl perldo pop popup ppop preserve previous psearch ptag ptNext ptfirst ptjump ptlast ptnext ptprevious ptrewind ptselect put pwd py3do py3file python pydo pyfile quit quitall qall read recover redo redir redraw redrawstatus registers resize retab return rewind right rightbelow ruby rubydo rubyfile rundo runtime rviminfo substitute sNext sandbox sargument sall saveas sbuffer sbNext sball sbfirst sblast sbmodified sbnext sbprevious sbrewind scriptnames scriptencoding scscope set setfiletype setglobal setlocal sfind sfirst shell simalt sign silent sleep slast smagic smapclear smenu snext sniff snomagic snoremap snoremenu sort source spelldump spellgood spellinfo spellrepall spellundo spellwrong split sprevious srewind stop stag startgreplace startreplace startinsert stopinsert stjump stselect sunhide sunmap sunmenu suspend sview swapname syntax syntime syncbind tNext tabNext tabclose tabedit tabfind tabfirst tablast tabmove tabnext tabonly tabprevious tabrewind tag tcl tcldo tclfile tearoff tfirst throw tjump tlast tmenu tnext topleft tprevious trewind tselect tunmenu undo undojoin undolist unabbreviate unhide unlet unlockvar unmap unmenu unsilent update vglobal version verbose vertical vimgrep vimgrepadd visual viusage view vmap vmapclear vmenu vnew vnoremap vnoremenu vsplit vunmap vunmenu write wNext wall while winsize wincmd winpos wnext wprevious wqall wsverb wundo wviminfo xit xall xmapclear xmap xmenu xnoremap xnoremenu xunmap xunmenu yank",built_in:"abs acos add and append argc argidx argv asin atan atan2 browse browsedir bufexists buflisted bufloaded bufname bufnr bufwinnr byte2line byteidx call ceil changenr char2nr cindent clearmatches col complete complete_add complete_check confirm copy cos cosh count cscope_connection cursor deepcopy delete did_filetype diff_filler diff_hlID empty escape eval eventhandler executable exists exp expand extend feedkeys filereadable filewritable filter finddir findfile float2nr floor fmod fnameescape fnamemodify foldclosed foldclosedend foldlevel foldtext foldtextresult foreground function garbagecollect get getbufline getbufvar getchar getcharmod getcmdline getcmdpos getcmdtype getcwd getfontname getfperm getfsize getftime getftype getline getloclist getmatches getpid getpos getqflist getreg getregtype gettabvar gettabwinvar getwinposx getwinposy getwinvar glob globpath has has_key haslocaldir hasmapto histadd histdel histget histnr hlexists hlID hostname iconv indent index input inputdialog inputlist inputrestore inputsave inputsecret insert invert isdirectory islocked items join keys len libcall libcallnr line line2byte lispindent localtime log log10 luaeval map maparg mapcheck match matchadd matcharg matchdelete matchend matchlist matchstr max min mkdir mode mzeval nextnonblank nr2char or pathshorten pow prevnonblank printf pumvisible py3eval pyeval range readfile reltime reltimestr remote_expr remote_foreground remote_peek remote_read remote_send remove rename repeat resolve reverse round screenattr screenchar screencol screenrow search searchdecl searchpair searchpairpos searchpos server2client serverlist setbufvar setcmdpos setline setloclist setmatches setpos setqflist setreg settabvar settabwinvar setwinvar sha256 shellescape shiftwidth simplify sin sinh sort soundfold spellbadword spellsuggest split sqrt str2float str2nr strchars strdisplaywidth strftime stridx string strlen strpart strridx strtrans strwidth submatch substitute synconcealed synID synIDattr synIDtrans synstack system tabpagebuflist tabpagenr tabpagewinnr tagfiles taglist tan tanh tempname tolower toupper tr trunc type undofile undotree values virtcol visualmode wildmenumode winbufnr wincol winheight winline winnr winrestcmd winrestview winsaveview winwidth writefile xor"},i:/[{:]/,c:[e.NM,e.ASM,{cN:"string",b:/"((\\")|[^"\n])*("|\n)/},{cN:"variable",b:/[bwtglsav]:[\w\d_]*/},{cN:"function",bK:"function function!",e:"$",r:0,c:[e.TM,{cN:"params",b:"\\(",e:"\\)"}]}]}});hljs.registerLanguage("processing",function(e){return{k:{keyword:"BufferedReader PVector PFont PImage PGraphics HashMap boolean byte char color double float int long String Array FloatDict FloatList IntDict IntList JSONArray JSONObject Object StringDict StringList Table TableRow XML false synchronized int abstract float private char boolean static null if const for true while long throw strictfp finally protected import native final return void enum else break transient new catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private",constant:"P2D P3D HALF_PI PI QUARTER_PI TAU TWO_PI",variable:"displayHeight displayWidth mouseY mouseX mousePressed pmouseX pmouseY key keyCode pixels focused frameCount frameRate height width",title:"setup draw",built_in:"size createGraphics beginDraw createShape loadShape PShape arc ellipse line point quad rect triangle bezier bezierDetail bezierPoint bezierTangent curve curveDetail curvePoint curveTangent curveTightness shape shapeMode beginContour beginShape bezierVertex curveVertex endContour endShape quadraticVertex vertex ellipseMode noSmooth rectMode smooth strokeCap strokeJoin strokeWeight mouseClicked mouseDragged mouseMoved mousePressed mouseReleased mouseWheel keyPressed keyPressedkeyReleased keyTyped print println save saveFrame day hour millis minute month second year background clear colorMode fill noFill noStroke stroke alpha blue brightness color green hue lerpColor red saturation modelX modelY modelZ screenX screenY screenZ ambient emissive shininess specular add createImage beginCamera camera endCamera frustum ortho perspective printCamera printProjection cursor frameRate noCursor exit loop noLoop popStyle pushStyle redraw binary boolean byte char float hex int str unbinary unhex join match matchAll nf nfc nfp nfs split splitTokens trim append arrayCopy concat expand reverse shorten sort splice subset box sphere sphereDetail createInput createReader loadBytes loadJSONArray loadJSONObject loadStrings loadTable loadXML open parseXML saveTable selectFolder selectInput beginRaw beginRecord createOutput createWriter endRaw endRecord PrintWritersaveBytes saveJSONArray saveJSONObject saveStream saveStrings saveXML selectOutput popMatrix printMatrix pushMatrix resetMatrix rotate rotateX rotateY rotateZ scale shearX shearY translate ambientLight directionalLight lightFalloff lights lightSpecular noLights normal pointLight spotLight image imageMode loadImage noTint requestImage tint texture textureMode textureWrap blend copy filter get loadPixels set updatePixels blendMode loadShader PShaderresetShader shader createFont loadFont text textFont textAlign textLeading textMode textSize textWidth textAscent textDescent abs ceil constrain dist exp floor lerp log mag map max min norm pow round sq sqrt acos asin atan atan2 cos degrees radians sin tan noise noiseDetail noiseSeed random randomGaussian randomSeed"},c:[e.CLCM,e.CBCM,e.ASM,e.QSM,e.CNM]}});hljs.registerLanguage("mizar",function(e){return{k:"environ vocabularies notations constructors definitions registrations theorems schemes requirements begin end definition registration cluster existence pred func defpred deffunc theorem proof let take assume then thus hence ex for st holds consider reconsider such that and in provided of as from be being by means equals implies iff redefine define now not or attr is mode suppose per cases set thesis contradiction scheme reserve struct correctness compatibility coherence symmetry assymetry reflexivity irreflexivity connectedness uniqueness commutativity idempotence involutiveness projectivity",c:[e.C("::","$")]}});hljs.registerLanguage("vbnet",function(e){return{aliases:["vb"],cI:!0,k:{keyword:"addhandler addressof alias and andalso aggregate ansi as assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into is isfalse isnot istrue join key let lib like loop me mid mod module mustinherit mustoverride mybase myclass namespace narrowing new next not notinheritable notoverridable of off on operator option optional or order orelse overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim rem removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly xor",built_in:"boolean byte cbool cbyte cchar cdate cdec cdbl char cint clng cobj csbyte cshort csng cstr ctype date decimal directcast double gettype getxmlnamespace iif integer long object sbyte short single string trycast typeof uinteger ulong ushort",literal:"true false nothing"},i:"//|{|}|endif|gosub|variant|wend",c:[e.inherit(e.QSM,{c:[{b:'""'}]}),e.C("'","$",{rB:!0,c:[{cN:"xmlDocTag",b:"'''|",c:[e.PWM]},{cN:"xmlDocTag",b:"",c:[e.PWM]}]}),e.CNM,{cN:"preprocessor",b:"#",e:"$",k:"if else elseif end region externalsource"}]}});hljs.registerLanguage("q",function(e){var s={keyword:"do while select delete by update from",constant:"0b 1b",built_in:"neg not null string reciprocal floor ceiling signum mod xbar xlog and or each scan over prior mmu lsq inv md5 ltime gtime count first var dev med cov cor all any rand sums prds mins maxs fills deltas ratios avgs differ prev next rank reverse iasc idesc asc desc msum mcount mavg mdev xrank mmin mmax xprev rotate distinct group where flip type key til get value attr cut set upsert raze union inter except cross sv vs sublist enlist read0 read1 hopen hclose hdel hsym hcount peach system ltrim rtrim trim lower upper ssr view tables views cols xcols keys xkey xcol xasc xdesc fkeys meta lj aj aj0 ij pj asof uj ww wj wj1 fby xgroup ungroup ej save load rsave rload show csv parse eval min max avg wavg wsum sin cos tan sum",typename:"`float `double int `timestamp `timespan `datetime `time `boolean `symbol `char `byte `short `long `real `month `date `minute `second `guid"};return{aliases:["k","kdb"],k:s,l:/\b(`?)[A-Za-z0-9_]+\b/,c:[e.CLCM,e.QSM,e.CNM]}});hljs.registerLanguage("livescript",function(e){var t={keyword:"in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger case default function var with then unless until loop of by when and or is isnt not it that otherwise from to til fallthrough super case default function var void const let enum export import native __hasProp __extends __slice __bind __indexOf",literal:"true false null undefined yes no on off it that void",built_in:"npm require console print module global window document"},s="[A-Za-z$_](?:-[0-9A-Za-z$_]|[0-9A-Za-z$_])*",i=e.inherit(e.TM,{b:s}),n={cN:"subst",b:/#\{/,e:/}/,k:t},r={cN:"subst",b:/#[A-Za-z$_]/,e:/(?:\-[0-9A-Za-z$_]|[0-9A-Za-z$_])*/,k:t},c=[e.BNM,{cN:"number",b:"(\\b0[xX][a-fA-F0-9_]+)|(\\b\\d(\\d|_\\d)*(\\.(\\d(\\d|_\\d)*)?)?(_*[eE]([-+]\\d(_\\d|\\d)*)?)?[_a-z]*)",r:0,starts:{e:"(\\s*/)?",r:0}},{cN:"string",v:[{b:/'''/,e:/'''/,c:[e.BE]},{b:/'/,e:/'/,c:[e.BE]},{b:/"""/,e:/"""/,c:[e.BE,n,r]},{b:/"/,e:/"/,c:[e.BE,n,r]},{b:/\\/,e:/(\s|$)/,eE:!0}]},{cN:"pi",v:[{b:"//",e:"//[gim]*",c:[n,e.HCM]},{b:/\/(?![ *])(\\\/|.)*?\/[gim]*(?=\W|$)/}]},{cN:"property",b:"@"+s},{b:"``",e:"``",eB:!0,eE:!0,sL:"javascript"}];n.c=c;var a={cN:"params",b:"\\(",rB:!0,c:[{b:/\(/,e:/\)/,k:t,c:["self"].concat(c)}]};return{aliases:["ls"],k:t,i:/\/\*/,c:c.concat([e.C("\\/\\*","\\*\\/"),e.HCM,{cN:"function",c:[i,a],rB:!0,v:[{b:"("+s+"\\s*(?:=|:=)\\s*)?(\\(.*\\))?\\s*\\B\\->\\*?",e:"\\->\\*?"},{b:"("+s+"\\s*(?:=|:=)\\s*)?!?(\\(.*\\))?\\s*\\B[-~]{1,2}>\\*?",e:"[-~]{1,2}>\\*?"},{b:"("+s+"\\s*(?:=|:=)\\s*)?(\\(.*\\))?\\s*\\B!?[-~]{1,2}>\\*?",e:"!?[-~]{1,2}>\\*?"}]},{cN:"class",bK:"class",e:"$",i:/[:="\[\]]/,c:[{bK:"extends",eW:!0,i:/[:="\[\]]/,c:[i]},i]},{cN:"attribute",b:s+":",e:":",rB:!0,rE:!0,r:0}])}});hljs.registerLanguage("haxe",function(e){var r="([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)";return{aliases:["hx"],k:{keyword:"break callback case cast catch class continue default do dynamic else enum extends extern for function here if implements import in inline interface never new override package private public return static super switch this throw trace try typedef untyped using var while",literal:"true false null"},c:[e.ASM,e.QSM,e.CLCM,e.CBCM,e.CNM,{cN:"class",bK:"class interface",e:"{",eE:!0,c:[{bK:"extends implements"},e.TM]},{cN:"preprocessor",b:"#",e:"$",k:"if else elseif end error"},{cN:"function",bK:"function",e:"[{;]",eE:!0,i:"\\S",c:[e.TM,{cN:"params",b:"\\(",e:"\\)",c:[e.ASM,e.QSM,e.CLCM,e.CBCM]},{cN:"type",b:":",e:r,r:10}]}]}});hljs.registerLanguage("monkey",function(e){var n={cN:"number",r:0,v:[{b:"[$][a-fA-F0-9]+"},e.NM]};return{cI:!0,k:{keyword:"public private property continue exit extern new try catch eachin not abstract final select case default const local global field end if then else elseif endif while wend repeat until forever for to step next return module inline throw",built_in:"DebugLog DebugStop Error Print ACos ACosr ASin ASinr ATan ATan2 ATan2r ATanr Abs Abs Ceil Clamp Clamp Cos Cosr Exp Floor Log Max Max Min Min Pow Sgn Sgn Sin Sinr Sqrt Tan Tanr Seed PI HALFPI TWOPI",literal:"true false null and or shl shr mod"},c:[e.C("#rem","#end"),e.C("'","$",{r:0}),{cN:"function",bK:"function method",e:"[(=:]|$",i:/\n/,c:[e.UTM]},{cN:"class",bK:"class interface",e:"$",c:[{bK:"extends implements"},e.UTM]},{cN:"variable",b:"\\b(self|super)\\b"},{cN:"preprocessor",bK:"import",e:"$"},{cN:"preprocessor",b:"\\s*#",e:"$",k:"if else elseif endif end then"},{cN:"pi",b:"^\\s*strict\\b"},{bK:"alias",e:"=",c:[e.UTM]},e.QSM,n]}});hljs.registerLanguage("bash",function(e){var t={cN:"variable",v:[{b:/\$[\w\d#@][\w\d_]*/},{b:/\$\{(.*?)}/}]},s={cN:"string",b:/"/,e:/"/,c:[e.BE,t,{cN:"variable",b:/\$\(/,e:/\)/,c:[e.BE]}]},a={cN:"string",b:/'/,e:/'/};return{aliases:["sh","zsh"],l:/-?[a-z\.]+/,k:{keyword:"if then else elif fi for while in do done case esac function",literal:"true false",built_in:"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp",operator:"-ne -eq -lt -gt -f -d -e -s -l -a"},c:[{cN:"shebang",b:/^#![^\n]+sh\s*$/,r:10},{cN:"function",b:/\w[\w\d_]*\s*\(\s*\)\s*\{/,rB:!0,c:[e.inherit(e.TM,{b:/\w[\w\d_]*/})],r:0},e.HCM,e.NM,s,a,t]}});hljs.registerLanguage("erlang",function(e){var r="[a-z'][a-zA-Z0-9_']*",c="("+r+":"+r+"|"+r+")",a={keyword:"after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun if let not of orelse|10 query receive rem try when xor",literal:"false true"},n=e.C("%","$"),i={cN:"number",b:"\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)",r:0},b={b:"fun\\s+"+r+"/\\d+"},d={b:c+"\\(",e:"\\)",rB:!0,r:0,c:[{cN:"function_name",b:c,r:0},{b:"\\(",e:"\\)",eW:!0,rE:!0,r:0}]},o={cN:"tuple",b:"{",e:"}",r:0},t={cN:"variable",b:"\\b_([A-Z][A-Za-z0-9_]*)?",r:0},l={cN:"variable",b:"[A-Z][a-zA-Z0-9_]*",r:0},f={b:"#"+e.UIR,r:0,rB:!0,c:[{cN:"record_name",b:"#"+e.UIR,r:0},{b:"{",e:"}",r:0}]},s={bK:"fun receive if try case",e:"end",k:a};s.c=[n,b,e.inherit(e.ASM,{cN:""}),s,d,e.QSM,i,o,t,l,f];var u=[n,b,s,d,e.QSM,i,o,t,l,f];d.c[1].c=u,o.c=u,f.c[1].c=u;var v={cN:"params",b:"\\(",e:"\\)",c:u};return{aliases:["erl"],k:a,i:"(",rB:!0,i:"\\(|#|//|/\\*|\\\\|:|;",c:[v,e.inherit(e.TM,{b:r})],starts:{e:";|\\.",k:a,c:u}},n,{cN:"pp",b:"^-",e:"\\.",r:0,eE:!0,rB:!0,l:"-"+e.IR,k:"-module -record -undef -export -ifdef -ifndef -author -copyright -doc -vsn -import -include -include_lib -compile -define -else -endif -file -behaviour -behavior -spec",c:[v]},i,e.QSM,f,t,l,o,{b:/\.$/}]}});hljs.registerLanguage("kotlin",function(e){var a="val var get set class trait object public open private protected final enum if else do while for when break continue throw try catch finally import package is as in return fun override default companion reified inline volatile transient native";return{k:{typename:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",literal:"true false null",keyword:a},c:[e.CLCM,{cN:"javadoc",b:"/\\*\\*",e:"\\*//*",r:0,c:[{cN:"javadoctag",b:"(^|\\s)@[A-Za-z]+"}]},e.CBCM,{cN:"type",b://,rB:!0,eE:!1,r:0},{cN:"function",bK:"fun",e:"[(]|$",rB:!0,eE:!0,k:a,i:/fun\s+(<.*>)?[^\s\(]+(\s+[^\s\(]+)\s*=/,r:5,c:[{b:e.UIR+"\\s*\\(",rB:!0,r:0,c:[e.UTM]},{cN:"type",b://,k:"reified",r:0},{cN:"params",b:/\(/,e:/\)/,k:a,r:0,i:/\([^\(,\s:]+,/,c:[{cN:"typename",b:/:\s*/,e:/\s*[=\)]/,eB:!0,rE:!0,r:0}]},e.CLCM,e.CBCM]},{cN:"class",bK:"class trait",e:/[:\{(]|$/,eE:!0,i:"extends implements",c:[e.UTM,{cN:"type",b://,eB:!0,eE:!0,r:0},{cN:"typename",b:/[,:]\s*/,e:/[<\(,]|$/,eB:!0,rE:!0}]},{cN:"variable",bK:"var val",e:/\s*[=:$]/,eE:!0},e.QSM,{cN:"shebang",b:"^#!/usr/bin/env",e:"$",i:"\n"},e.CNM]}});hljs.registerLanguage("stylus",function(t){var e={cN:"variable",b:"\\$"+t.IR},o={cN:"hexcolor",b:"#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})",r:10},i=["charset","css","debug","extend","font-face","for","import","include","media","mixin","page","warn","while"],r=["after","before","first-letter","first-line","active","first-child","focus","hover","lang","link","visited"],n=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],a="[\\.\\s\\n\\[\\:,]",l=["align-content","align-items","align-self","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","auto","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","clip-path","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","font","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-variant-ligatures","font-weight","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inherit","initial","justify-content","left","letter-spacing","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","mask","max-height","max-width","min-height","min-width","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","perspective","perspective-origin","pointer-events","position","quotes","resize","right","tab-size","table-layout","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-indent","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","white-space","widows","width","word-break","word-spacing","word-wrap","z-index"],d=["\\{","\\}","\\?","(\\bReturn\\b)","(\\bEnd\\b)","(\\bend\\b)",";","#\\s","\\*\\s","===\\s","\\|","%"];return{aliases:["styl"],cI:!1,i:"("+d.join("|")+")",k:"if else for in",c:[t.QSM,t.ASM,t.CLCM,t.CBCM,o,{b:"\\.[a-zA-Z][a-zA-Z0-9_-]*"+a,rB:!0,c:[{cN:"class",b:"\\.[a-zA-Z][a-zA-Z0-9_-]*"}]},{b:"\\#[a-zA-Z][a-zA-Z0-9_-]*"+a,rB:!0,c:[{cN:"id",b:"\\#[a-zA-Z][a-zA-Z0-9_-]*"}]},{b:"\\b("+n.join("|")+")"+a,rB:!0,c:[{cN:"tag",b:"\\b[a-zA-Z][a-zA-Z0-9_-]*"}]},{cN:"pseudo",b:"&?:?:\\b("+r.join("|")+")"+a},{cN:"at_rule",b:"@("+i.join("|")+")\\b"},e,t.CSSNM,t.NM,{cN:"function",b:"\\b[a-zA-Z][a-zA-Z0-9_-]*\\(.*\\)",i:"[\\n]",rB:!0,c:[{cN:"title",b:"\\b[a-zA-Z][a-zA-Z0-9_-]*"},{cN:"params",b:/\(/,e:/\)/,c:[o,e,t.ASM,t.CSSNM,t.NM,t.QSM]}]},{cN:"attribute",b:"\\b("+l.reverse().join("|")+")\\b"}]}});hljs.registerLanguage("css",function(e){var c="[a-zA-Z-][a-zA-Z0-9_-]*",a={cN:"function",b:c+"\\(",rB:!0,eE:!0,e:"\\("},r={cN:"rule",b:/[A-Z\_\.\-]+\s*:/,rB:!0,e:";",eW:!0,c:[{cN:"attribute",b:/\S/,e:":",eE:!0,starts:{cN:"value",eW:!0,eE:!0,c:[a,e.CSSNM,e.QSM,e.ASM,e.CBCM,{cN:"hexcolor",b:"#[0-9A-Fa-f]+"},{cN:"important",b:"!important"}]}}]};return{cI:!0,i:/[=\/|']/,c:[e.CBCM,r,{cN:"id",b:/\#[A-Za-z0-9_-]+/},{cN:"class",b:/\.[A-Za-z0-9_-]+/,r:0},{cN:"attr_selector",b:/\[/,e:/\]/,i:"$"},{cN:"pseudo",b:/:(:)?[a-zA-Z0-9\_\-\+\(\)"']+/},{cN:"at_rule",b:"@(font-face|page)",l:"[a-z-]+",k:"font-face page"},{cN:"at_rule",b:"@",e:"[{;]",c:[{cN:"keyword",b:/\S+/},{b:/\s/,eW:!0,eE:!0,r:0,c:[a,e.ASM,e.QSM,e.CSSNM]}]},{cN:"tag",b:c,r:0},{cN:"rules",b:"{",e:"}",i:/\S/,r:0,c:[e.CBCM,r]}]}});hljs.registerLanguage("puppet",function(e){var s="augeas computer cron exec file filebucket host interface k5login macauthorization mailalias maillist mcx mount nagios_command nagios_contact nagios_contactgroup nagios_host nagios_hostdependency nagios_hostescalation nagios_hostextinfo nagios_hostgroup nagios_service firewall nagios_servicedependency nagios_serviceescalation nagios_serviceextinfo nagios_servicegroup nagios_timeperiod notify package resources router schedule scheduled_task selboolean selmodule service ssh_authorized_key sshkey stage tidy user vlan yumrepo zfs zone zpool",r="alias audit before loglevel noop require subscribe tag owner ensure group mode name|0 changes context force incl lens load_path onlyif provider returns root show_diff type_check en_address ip_address realname command environment hour monute month monthday special target weekday creates cwd ogoutput refresh refreshonly tries try_sleep umask backup checksum content ctime force ignore links mtime purge recurse recurselimit replace selinux_ignore_defaults selrange selrole seltype seluser source souirce_permissions sourceselect validate_cmd validate_replacement allowdupe attribute_membership auth_membership forcelocal gid ia_load_module members system host_aliases ip allowed_trunk_vlans description device_url duplex encapsulation etherchannel native_vlan speed principals allow_root auth_class auth_type authenticate_user k_of_n mechanisms rule session_owner shared options device fstype enable hasrestart directory present absent link atboot blockdevice device dump pass remounts poller_tag use message withpath adminfile allow_virtual allowcdrom category configfiles flavor install_options instance package_settings platform responsefile status uninstall_options vendor unless_system_user unless_uid binary control flags hasstatus manifest pattern restart running start stop allowdupe auths expiry gid groups home iterations key_membership keys managehome membership password password_max_age password_min_age profile_membership profiles project purge_ssh_keys role_membership roles salt shell uid baseurl cost descr enabled enablegroups exclude failovermethod gpgcheck gpgkey http_caching include includepkgs keepalive metadata_expire metalink mirrorlist priority protect proxy proxy_password proxy_username repo_gpgcheck s3_enabled skip_if_unavailable sslcacert sslclientcert sslclientkey sslverify mounted",a={keyword:"and case class default define else elsif false if in import enherits node or true undef unless main settings $string "+s,literal:r,built_in:"architecture augeasversion blockdevices boardmanufacturer boardproductname boardserialnumber cfkey dhcp_servers domain ec2_ ec2_userdata facterversion filesystems ldom fqdn gid hardwareisa hardwaremodel hostname id|0 interfaces ipaddress ipaddress_ ipaddress6 ipaddress6_ iphostnumber is_virtual kernel kernelmajversion kernelrelease kernelversion kernelrelease kernelversion lsbdistcodename lsbdistdescription lsbdistid lsbdistrelease lsbmajdistrelease lsbminordistrelease lsbrelease macaddress macaddress_ macosx_buildversion macosx_productname macosx_productversion macosx_productverson_major macosx_productversion_minor manufacturer memoryfree memorysize netmask metmask_ network_ operatingsystem operatingsystemmajrelease operatingsystemrelease osfamily partitions path physicalprocessorcount processor processorcount productname ps puppetversion rubysitedir rubyversion selinux selinux_config_mode selinux_config_policy selinux_current_mode selinux_current_mode selinux_enforced selinux_policyversion serialnumber sp_ sshdsakey sshecdsakey sshrsakey swapencrypted swapfree swapsize timezone type uniqueid uptime uptime_days uptime_hours uptime_seconds uuid virtual vlans xendomains zfs_version zonenae zones zpool_version"},i=e.C("#","$"),o={cN:"string",c:[e.BE],v:[{b:/'/,e:/'/},{b:/"/,e:/"/}]},n=[o,i,{cN:"keyword",bK:"class",e:"$|;",i:/=/,c:[e.inherit(e.TM,{b:"(::)?[A-Za-z_]\\w*(::\\w+)*"}),i,o]},{cN:"keyword",b:"([a-zA-Z_(::)]+ *\\{)",c:[o,i],r:0},{cN:"keyword",b:"(\\}|\\{)",r:0},{cN:"function",b:"[a-zA-Z_]+\\s*=>"},{cN:"constant",b:"(::)?(\\b[A-Z][a-z_]*(::)?)+",r:0},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0}];return{aliases:["pp"],k:a,c:n}});hljs.registerLanguage("nimrod",function(t){return{aliases:["nim"],k:{keyword:"addr and as asm bind block break|0 case|0 cast const|0 continue|0 converter discard distinct|10 div do elif else|0 end|0 enum|0 except export finally for from generic if|0 import|0 in include|0 interface is isnot|10 iterator|10 let|0 macro method|10 mixin mod nil not notin|10 object|0 of or out proc|10 ptr raise ref|10 return shl shr static template|10 try|0 tuple type|0 using|0 var|0 when while|0 with without xor yield",literal:"shared guarded stdin stdout stderr result|10 true false"},c:[{cN:"decorator",b:/{\./,e:/\.}/,r:10},{cN:"string",b:/[a-zA-Z]\w*"/,e:/"/,c:[{b:/""/}]},{cN:"string",b:/([a-zA-Z]\w*)?"""/,e:/"""/},t.QSM,{cN:"type",b:/\b[A-Z]\w+\b/,r:0},{cN:"type",b:/\b(int|int8|int16|int32|int64|uint|uint8|uint16|uint32|uint64|float|float32|float64|bool|char|string|cstring|pointer|expr|stmt|void|auto|any|range|array|openarray|varargs|seq|set|clong|culong|cchar|cschar|cshort|cint|csize|clonglong|cfloat|cdouble|clongdouble|cuchar|cushort|cuint|culonglong|cstringarray|semistatic)\b/},{cN:"number",b:/\b(0[xX][0-9a-fA-F][_0-9a-fA-F]*)('?[iIuU](8|16|32|64))?/,r:0},{cN:"number",b:/\b(0o[0-7][_0-7]*)('?[iIuUfF](8|16|32|64))?/,r:0},{cN:"number",b:/\b(0(b|B)[01][_01]*)('?[iIuUfF](8|16|32|64))?/,r:0},{cN:"number",b:/\b(\d[_\d]*)('?[iIuUfF](8|16|32|64))?/,r:0},t.HCM]}});hljs.registerLanguage("smalltalk",function(a){var r="[a-z][a-zA-Z0-9_]*",s={cN:"char",b:"\\$.{1}"},c={cN:"symbol",b:"#"+a.UIR};return{aliases:["st"],k:"self super nil true false thisContext",c:[a.C('"','"'),a.ASM,{cN:"class",b:"\\b[A-Z][A-Za-z0-9_]*",r:0},{cN:"method",b:r+":",r:0},a.CNM,c,s,{cN:"localvars",b:"\\|[ ]*"+r+"([ ]+"+r+")*[ ]*\\|",rB:!0,e:/\|/,i:/\S/,c:[{b:"(\\|[ ]*)?"+r}]},{cN:"array",b:"\\#\\(",e:"\\)",c:[a.ASM,s,a.CNM,c]}]}});hljs.registerLanguage("x86asm",function(s){return{cI:!0,l:"\\.?"+s.IR,k:{keyword:"lock rep repe repz repne repnz xaquire xrelease bnd nobnd aaa aad aam aas adc add and arpl bb0_reset bb1_reset bound bsf bsr bswap bt btc btr bts call cbw cdq cdqe clc cld cli clts cmc cmp cmpsb cmpsd cmpsq cmpsw cmpxchg cmpxchg486 cmpxchg8b cmpxchg16b cpuid cpu_read cpu_write cqo cwd cwde daa das dec div dmint emms enter equ f2xm1 fabs fadd faddp fbld fbstp fchs fclex fcmovb fcmovbe fcmove fcmovnb fcmovnbe fcmovne fcmovnu fcmovu fcom fcomi fcomip fcomp fcompp fcos fdecstp fdisi fdiv fdivp fdivr fdivrp femms feni ffree ffreep fiadd ficom ficomp fidiv fidivr fild fimul fincstp finit fist fistp fisttp fisub fisubr fld fld1 fldcw fldenv fldl2e fldl2t fldlg2 fldln2 fldpi fldz fmul fmulp fnclex fndisi fneni fninit fnop fnsave fnstcw fnstenv fnstsw fpatan fprem fprem1 fptan frndint frstor fsave fscale fsetpm fsin fsincos fsqrt fst fstcw fstenv fstp fstsw fsub fsubp fsubr fsubrp ftst fucom fucomi fucomip fucomp fucompp fxam fxch fxtract fyl2x fyl2xp1 hlt ibts icebp idiv imul in inc incbin insb insd insw int int01 int1 int03 int3 into invd invpcid invlpg invlpga iret iretd iretq iretw jcxz jecxz jrcxz jmp jmpe lahf lar lds lea leave les lfence lfs lgdt lgs lidt lldt lmsw loadall loadall286 lodsb lodsd lodsq lodsw loop loope loopne loopnz loopz lsl lss ltr mfence monitor mov movd movq movsb movsd movsq movsw movsx movsxd movzx mul mwait neg nop not or out outsb outsd outsw packssdw packsswb packuswb paddb paddd paddsb paddsiw paddsw paddusb paddusw paddw pand pandn pause paveb pavgusb pcmpeqb pcmpeqd pcmpeqw pcmpgtb pcmpgtd pcmpgtw pdistib pf2id pfacc pfadd pfcmpeq pfcmpge pfcmpgt pfmax pfmin pfmul pfrcp pfrcpit1 pfrcpit2 pfrsqit1 pfrsqrt pfsub pfsubr pi2fd pmachriw pmaddwd pmagw pmulhriw pmulhrwa pmulhrwc pmulhw pmullw pmvgezb pmvlzb pmvnzb pmvzb pop popa popad popaw popf popfd popfq popfw por prefetch prefetchw pslld psllq psllw psrad psraw psrld psrlq psrlw psubb psubd psubsb psubsiw psubsw psubusb psubusw psubw punpckhbw punpckhdq punpckhwd punpcklbw punpckldq punpcklwd push pusha pushad pushaw pushf pushfd pushfq pushfw pxor rcl rcr rdshr rdmsr rdpmc rdtsc rdtscp ret retf retn rol ror rdm rsdc rsldt rsm rsts sahf sal salc sar sbb scasb scasd scasq scasw sfence sgdt shl shld shr shrd sidt sldt skinit smi smint smintold smsw stc std sti stosb stosd stosq stosw str sub svdc svldt svts swapgs syscall sysenter sysexit sysret test ud0 ud1 ud2b ud2 ud2a umov verr verw fwait wbinvd wrshr wrmsr xadd xbts xchg xlatb xlat xor cmove cmovz cmovne cmovnz cmova cmovnbe cmovae cmovnb cmovb cmovnae cmovbe cmovna cmovg cmovnle cmovge cmovnl cmovl cmovnge cmovle cmovng cmovc cmovnc cmovo cmovno cmovs cmovns cmovp cmovpe cmovnp cmovpo je jz jne jnz ja jnbe jae jnb jb jnae jbe jna jg jnle jge jnl jl jnge jle jng jc jnc jo jno js jns jpo jnp jpe jp sete setz setne setnz seta setnbe setae setnb setnc setb setnae setcset setbe setna setg setnle setge setnl setl setnge setle setng sets setns seto setno setpe setp setpo setnp addps addss andnps andps cmpeqps cmpeqss cmpleps cmpless cmpltps cmpltss cmpneqps cmpneqss cmpnleps cmpnless cmpnltps cmpnltss cmpordps cmpordss cmpunordps cmpunordss cmpps cmpss comiss cvtpi2ps cvtps2pi cvtsi2ss cvtss2si cvttps2pi cvttss2si divps divss ldmxcsr maxps maxss minps minss movaps movhps movlhps movlps movhlps movmskps movntps movss movups mulps mulss orps rcpps rcpss rsqrtps rsqrtss shufps sqrtps sqrtss stmxcsr subps subss ucomiss unpckhps unpcklps xorps fxrstor fxrstor64 fxsave fxsave64 xgetbv xsetbv xsave xsave64 xsaveopt xsaveopt64 xrstor xrstor64 prefetchnta prefetcht0 prefetcht1 prefetcht2 maskmovq movntq pavgb pavgw pextrw pinsrw pmaxsw pmaxub pminsw pminub pmovmskb pmulhuw psadbw pshufw pf2iw pfnacc pfpnacc pi2fw pswapd maskmovdqu clflush movntdq movnti movntpd movdqa movdqu movdq2q movq2dq paddq pmuludq pshufd pshufhw pshuflw pslldq psrldq psubq punpckhqdq punpcklqdq addpd addsd andnpd andpd cmpeqpd cmpeqsd cmplepd cmplesd cmpltpd cmpltsd cmpneqpd cmpneqsd cmpnlepd cmpnlesd cmpnltpd cmpnltsd cmpordpd cmpordsd cmpunordpd cmpunordsd cmppd comisd cvtdq2pd cvtdq2ps cvtpd2dq cvtpd2pi cvtpd2ps cvtpi2pd cvtps2dq cvtps2pd cvtsd2si cvtsd2ss cvtsi2sd cvtss2sd cvttpd2pi cvttpd2dq cvttps2dq cvttsd2si divpd divsd maxpd maxsd minpd minsd movapd movhpd movlpd movmskpd movupd mulpd mulsd orpd shufpd sqrtpd sqrtsd subpd subsd ucomisd unpckhpd unpcklpd xorpd addsubpd addsubps haddpd haddps hsubpd hsubps lddqu movddup movshdup movsldup clgi stgi vmcall vmclear vmfunc vmlaunch vmload vmmcall vmptrld vmptrst vmread vmresume vmrun vmsave vmwrite vmxoff vmxon invept invvpid pabsb pabsw pabsd palignr phaddw phaddd phaddsw phsubw phsubd phsubsw pmaddubsw pmulhrsw pshufb psignb psignw psignd extrq insertq movntsd movntss lzcnt blendpd blendps blendvpd blendvps dppd dpps extractps insertps movntdqa mpsadbw packusdw pblendvb pblendw pcmpeqq pextrb pextrd pextrq phminposuw pinsrb pinsrd pinsrq pmaxsb pmaxsd pmaxud pmaxuw pminsb pminsd pminud pminuw pmovsxbw pmovsxbd pmovsxbq pmovsxwd pmovsxwq pmovsxdq pmovzxbw pmovzxbd pmovzxbq pmovzxwd pmovzxwq pmovzxdq pmuldq pmulld ptest roundpd roundps roundsd roundss crc32 pcmpestri pcmpestrm pcmpistri pcmpistrm pcmpgtq popcnt getsec pfrcpv pfrsqrtv movbe aesenc aesenclast aesdec aesdeclast aesimc aeskeygenassist vaesenc vaesenclast vaesdec vaesdeclast vaesimc vaeskeygenassist vaddpd vaddps vaddsd vaddss vaddsubpd vaddsubps vandpd vandps vandnpd vandnps vblendpd vblendps vblendvpd vblendvps vbroadcastss vbroadcastsd vbroadcastf128 vcmpeq_ospd vcmpeqpd vcmplt_ospd vcmpltpd vcmple_ospd vcmplepd vcmpunord_qpd vcmpunordpd vcmpneq_uqpd vcmpneqpd vcmpnlt_uspd vcmpnltpd vcmpnle_uspd vcmpnlepd vcmpord_qpd vcmpordpd vcmpeq_uqpd vcmpnge_uspd vcmpngepd vcmpngt_uspd vcmpngtpd vcmpfalse_oqpd vcmpfalsepd vcmpneq_oqpd vcmpge_ospd vcmpgepd vcmpgt_ospd vcmpgtpd vcmptrue_uqpd vcmptruepd vcmplt_oqpd vcmple_oqpd vcmpunord_spd vcmpneq_uspd vcmpnlt_uqpd vcmpnle_uqpd vcmpord_spd vcmpeq_uspd vcmpnge_uqpd vcmpngt_uqpd vcmpfalse_ospd vcmpneq_ospd vcmpge_oqpd vcmpgt_oqpd vcmptrue_uspd vcmppd vcmpeq_osps vcmpeqps vcmplt_osps vcmpltps vcmple_osps vcmpleps vcmpunord_qps vcmpunordps vcmpneq_uqps vcmpneqps vcmpnlt_usps vcmpnltps vcmpnle_usps vcmpnleps vcmpord_qps vcmpordps vcmpeq_uqps vcmpnge_usps vcmpngeps vcmpngt_usps vcmpngtps vcmpfalse_oqps vcmpfalseps vcmpneq_oqps vcmpge_osps vcmpgeps vcmpgt_osps vcmpgtps vcmptrue_uqps vcmptrueps vcmplt_oqps vcmple_oqps vcmpunord_sps vcmpneq_usps vcmpnlt_uqps vcmpnle_uqps vcmpord_sps vcmpeq_usps vcmpnge_uqps vcmpngt_uqps vcmpfalse_osps vcmpneq_osps vcmpge_oqps vcmpgt_oqps vcmptrue_usps vcmpps vcmpeq_ossd vcmpeqsd vcmplt_ossd vcmpltsd vcmple_ossd vcmplesd vcmpunord_qsd vcmpunordsd vcmpneq_uqsd vcmpneqsd vcmpnlt_ussd vcmpnltsd vcmpnle_ussd vcmpnlesd vcmpord_qsd vcmpordsd vcmpeq_uqsd vcmpnge_ussd vcmpngesd vcmpngt_ussd vcmpngtsd vcmpfalse_oqsd vcmpfalsesd vcmpneq_oqsd vcmpge_ossd vcmpgesd vcmpgt_ossd vcmpgtsd vcmptrue_uqsd vcmptruesd vcmplt_oqsd vcmple_oqsd vcmpunord_ssd vcmpneq_ussd vcmpnlt_uqsd vcmpnle_uqsd vcmpord_ssd vcmpeq_ussd vcmpnge_uqsd vcmpngt_uqsd vcmpfalse_ossd vcmpneq_ossd vcmpge_oqsd vcmpgt_oqsd vcmptrue_ussd vcmpsd vcmpeq_osss vcmpeqss vcmplt_osss vcmpltss vcmple_osss vcmpless vcmpunord_qss vcmpunordss vcmpneq_uqss vcmpneqss vcmpnlt_usss vcmpnltss vcmpnle_usss vcmpnless vcmpord_qss vcmpordss vcmpeq_uqss vcmpnge_usss vcmpngess vcmpngt_usss vcmpngtss vcmpfalse_oqss vcmpfalsess vcmpneq_oqss vcmpge_osss vcmpgess vcmpgt_osss vcmpgtss vcmptrue_uqss vcmptruess vcmplt_oqss vcmple_oqss vcmpunord_sss vcmpneq_usss vcmpnlt_uqss vcmpnle_uqss vcmpord_sss vcmpeq_usss vcmpnge_uqss vcmpngt_uqss vcmpfalse_osss vcmpneq_osss vcmpge_oqss vcmpgt_oqss vcmptrue_usss vcmpss vcomisd vcomiss vcvtdq2pd vcvtdq2ps vcvtpd2dq vcvtpd2ps vcvtps2dq vcvtps2pd vcvtsd2si vcvtsd2ss vcvtsi2sd vcvtsi2ss vcvtss2sd vcvtss2si vcvttpd2dq vcvttps2dq vcvttsd2si vcvttss2si vdivpd vdivps vdivsd vdivss vdppd vdpps vextractf128 vextractps vhaddpd vhaddps vhsubpd vhsubps vinsertf128 vinsertps vlddqu vldqqu vldmxcsr vmaskmovdqu vmaskmovps vmaskmovpd vmaxpd vmaxps vmaxsd vmaxss vminpd vminps vminsd vminss vmovapd vmovaps vmovd vmovq vmovddup vmovdqa vmovqqa vmovdqu vmovqqu vmovhlps vmovhpd vmovhps vmovlhps vmovlpd vmovlps vmovmskpd vmovmskps vmovntdq vmovntqq vmovntdqa vmovntpd vmovntps vmovsd vmovshdup vmovsldup vmovss vmovupd vmovups vmpsadbw vmulpd vmulps vmulsd vmulss vorpd vorps vpabsb vpabsw vpabsd vpacksswb vpackssdw vpackuswb vpackusdw vpaddb vpaddw vpaddd vpaddq vpaddsb vpaddsw vpaddusb vpaddusw vpalignr vpand vpandn vpavgb vpavgw vpblendvb vpblendw vpcmpestri vpcmpestrm vpcmpistri vpcmpistrm vpcmpeqb vpcmpeqw vpcmpeqd vpcmpeqq vpcmpgtb vpcmpgtw vpcmpgtd vpcmpgtq vpermilpd vpermilps vperm2f128 vpextrb vpextrw vpextrd vpextrq vphaddw vphaddd vphaddsw vphminposuw vphsubw vphsubd vphsubsw vpinsrb vpinsrw vpinsrd vpinsrq vpmaddwd vpmaddubsw vpmaxsb vpmaxsw vpmaxsd vpmaxub vpmaxuw vpmaxud vpminsb vpminsw vpminsd vpminub vpminuw vpminud vpmovmskb vpmovsxbw vpmovsxbd vpmovsxbq vpmovsxwd vpmovsxwq vpmovsxdq vpmovzxbw vpmovzxbd vpmovzxbq vpmovzxwd vpmovzxwq vpmovzxdq vpmulhuw vpmulhrsw vpmulhw vpmullw vpmulld vpmuludq vpmuldq vpor vpsadbw vpshufb vpshufd vpshufhw vpshuflw vpsignb vpsignw vpsignd vpslldq vpsrldq vpsllw vpslld vpsllq vpsraw vpsrad vpsrlw vpsrld vpsrlq vptest vpsubb vpsubw vpsubd vpsubq vpsubsb vpsubsw vpsubusb vpsubusw vpunpckhbw vpunpckhwd vpunpckhdq vpunpckhqdq vpunpcklbw vpunpcklwd vpunpckldq vpunpcklqdq vpxor vrcpps vrcpss vrsqrtps vrsqrtss vroundpd vroundps vroundsd vroundss vshufpd vshufps vsqrtpd vsqrtps vsqrtsd vsqrtss vstmxcsr vsubpd vsubps vsubsd vsubss vtestps vtestpd vucomisd vucomiss vunpckhpd vunpckhps vunpcklpd vunpcklps vxorpd vxorps vzeroall vzeroupper pclmullqlqdq pclmulhqlqdq pclmullqhqdq pclmulhqhqdq pclmulqdq vpclmullqlqdq vpclmulhqlqdq vpclmullqhqdq vpclmulhqhqdq vpclmulqdq vfmadd132ps vfmadd132pd vfmadd312ps vfmadd312pd vfmadd213ps vfmadd213pd vfmadd123ps vfmadd123pd vfmadd231ps vfmadd231pd vfmadd321ps vfmadd321pd vfmaddsub132ps vfmaddsub132pd vfmaddsub312ps vfmaddsub312pd vfmaddsub213ps vfmaddsub213pd vfmaddsub123ps vfmaddsub123pd vfmaddsub231ps vfmaddsub231pd vfmaddsub321ps vfmaddsub321pd vfmsub132ps vfmsub132pd vfmsub312ps vfmsub312pd vfmsub213ps vfmsub213pd vfmsub123ps vfmsub123pd vfmsub231ps vfmsub231pd vfmsub321ps vfmsub321pd vfmsubadd132ps vfmsubadd132pd vfmsubadd312ps vfmsubadd312pd vfmsubadd213ps vfmsubadd213pd vfmsubadd123ps vfmsubadd123pd vfmsubadd231ps vfmsubadd231pd vfmsubadd321ps vfmsubadd321pd vfnmadd132ps vfnmadd132pd vfnmadd312ps vfnmadd312pd vfnmadd213ps vfnmadd213pd vfnmadd123ps vfnmadd123pd vfnmadd231ps vfnmadd231pd vfnmadd321ps vfnmadd321pd vfnmsub132ps vfnmsub132pd vfnmsub312ps vfnmsub312pd vfnmsub213ps vfnmsub213pd vfnmsub123ps vfnmsub123pd vfnmsub231ps vfnmsub231pd vfnmsub321ps vfnmsub321pd vfmadd132ss vfmadd132sd vfmadd312ss vfmadd312sd vfmadd213ss vfmadd213sd vfmadd123ss vfmadd123sd vfmadd231ss vfmadd231sd vfmadd321ss vfmadd321sd vfmsub132ss vfmsub132sd vfmsub312ss vfmsub312sd vfmsub213ss vfmsub213sd vfmsub123ss vfmsub123sd vfmsub231ss vfmsub231sd vfmsub321ss vfmsub321sd vfnmadd132ss vfnmadd132sd vfnmadd312ss vfnmadd312sd vfnmadd213ss vfnmadd213sd vfnmadd123ss vfnmadd123sd vfnmadd231ss vfnmadd231sd vfnmadd321ss vfnmadd321sd vfnmsub132ss vfnmsub132sd vfnmsub312ss vfnmsub312sd vfnmsub213ss vfnmsub213sd vfnmsub123ss vfnmsub123sd vfnmsub231ss vfnmsub231sd vfnmsub321ss vfnmsub321sd rdfsbase rdgsbase rdrand wrfsbase wrgsbase vcvtph2ps vcvtps2ph adcx adox rdseed clac stac xstore xcryptecb xcryptcbc xcryptctr xcryptcfb xcryptofb montmul xsha1 xsha256 llwpcb slwpcb lwpval lwpins vfmaddpd vfmaddps vfmaddsd vfmaddss vfmaddsubpd vfmaddsubps vfmsubaddpd vfmsubaddps vfmsubpd vfmsubps vfmsubsd vfmsubss vfnmaddpd vfnmaddps vfnmaddsd vfnmaddss vfnmsubpd vfnmsubps vfnmsubsd vfnmsubss vfrczpd vfrczps vfrczsd vfrczss vpcmov vpcomb vpcomd vpcomq vpcomub vpcomud vpcomuq vpcomuw vpcomw vphaddbd vphaddbq vphaddbw vphadddq vphaddubd vphaddubq vphaddubw vphaddudq vphadduwd vphadduwq vphaddwd vphaddwq vphsubbw vphsubdq vphsubwd vpmacsdd vpmacsdqh vpmacsdql vpmacssdd vpmacssdqh vpmacssdql vpmacsswd vpmacssww vpmacswd vpmacsww vpmadcsswd vpmadcswd vpperm vprotb vprotd vprotq vprotw vpshab vpshad vpshaq vpshaw vpshlb vpshld vpshlq vpshlw vbroadcasti128 vpblendd vpbroadcastb vpbroadcastw vpbroadcastd vpbroadcastq vpermd vpermpd vpermps vpermq vperm2i128 vextracti128 vinserti128 vpmaskmovd vpmaskmovq vpsllvd vpsllvq vpsravd vpsrlvd vpsrlvq vgatherdpd vgatherqpd vgatherdps vgatherqps vpgatherdd vpgatherqd vpgatherdq vpgatherqq xabort xbegin xend xtest andn bextr blci blcic blsi blsic blcfill blsfill blcmsk blsmsk blsr blcs bzhi mulx pdep pext rorx sarx shlx shrx tzcnt tzmsk t1mskc valignd valignq vblendmpd vblendmps vbroadcastf32x4 vbroadcastf64x4 vbroadcasti32x4 vbroadcasti64x4 vcompresspd vcompressps vcvtpd2udq vcvtps2udq vcvtsd2usi vcvtss2usi vcvttpd2udq vcvttps2udq vcvttsd2usi vcvttss2usi vcvtudq2pd vcvtudq2ps vcvtusi2sd vcvtusi2ss vexpandpd vexpandps vextractf32x4 vextractf64x4 vextracti32x4 vextracti64x4 vfixupimmpd vfixupimmps vfixupimmsd vfixupimmss vgetexppd vgetexpps vgetexpsd vgetexpss vgetmantpd vgetmantps vgetmantsd vgetmantss vinsertf32x4 vinsertf64x4 vinserti32x4 vinserti64x4 vmovdqa32 vmovdqa64 vmovdqu32 vmovdqu64 vpabsq vpandd vpandnd vpandnq vpandq vpblendmd vpblendmq vpcmpltd vpcmpled vpcmpneqd vpcmpnltd vpcmpnled vpcmpd vpcmpltq vpcmpleq vpcmpneqq vpcmpnltq vpcmpnleq vpcmpq vpcmpequd vpcmpltud vpcmpleud vpcmpnequd vpcmpnltud vpcmpnleud vpcmpud vpcmpequq vpcmpltuq vpcmpleuq vpcmpnequq vpcmpnltuq vpcmpnleuq vpcmpuq vpcompressd vpcompressq vpermi2d vpermi2pd vpermi2ps vpermi2q vpermt2d vpermt2pd vpermt2ps vpermt2q vpexpandd vpexpandq vpmaxsq vpmaxuq vpminsq vpminuq vpmovdb vpmovdw vpmovqb vpmovqd vpmovqw vpmovsdb vpmovsdw vpmovsqb vpmovsqd vpmovsqw vpmovusdb vpmovusdw vpmovusqb vpmovusqd vpmovusqw vpord vporq vprold vprolq vprolvd vprolvq vprord vprorq vprorvd vprorvq vpscatterdd vpscatterdq vpscatterqd vpscatterqq vpsraq vpsravq vpternlogd vpternlogq vptestmd vptestmq vptestnmd vptestnmq vpxord vpxorq vrcp14pd vrcp14ps vrcp14sd vrcp14ss vrndscalepd vrndscaleps vrndscalesd vrndscaless vrsqrt14pd vrsqrt14ps vrsqrt14sd vrsqrt14ss vscalefpd vscalefps vscalefsd vscalefss vscatterdpd vscatterdps vscatterqpd vscatterqps vshuff32x4 vshuff64x2 vshufi32x4 vshufi64x2 kandnw kandw kmovw knotw kortestw korw kshiftlw kshiftrw kunpckbw kxnorw kxorw vpbroadcastmb2q vpbroadcastmw2d vpconflictd vpconflictq vplzcntd vplzcntq vexp2pd vexp2ps vrcp28pd vrcp28ps vrcp28sd vrcp28ss vrsqrt28pd vrsqrt28ps vrsqrt28sd vrsqrt28ss vgatherpf0dpd vgatherpf0dps vgatherpf0qpd vgatherpf0qps vgatherpf1dpd vgatherpf1dps vgatherpf1qpd vgatherpf1qps vscatterpf0dpd vscatterpf0dps vscatterpf0qpd vscatterpf0qps vscatterpf1dpd vscatterpf1dps vscatterpf1qpd vscatterpf1qps prefetchwt1 bndmk bndcl bndcu bndcn bndmov bndldx bndstx sha1rnds4 sha1nexte sha1msg1 sha1msg2 sha256rnds2 sha256msg1 sha256msg2 hint_nop0 hint_nop1 hint_nop2 hint_nop3 hint_nop4 hint_nop5 hint_nop6 hint_nop7 hint_nop8 hint_nop9 hint_nop10 hint_nop11 hint_nop12 hint_nop13 hint_nop14 hint_nop15 hint_nop16 hint_nop17 hint_nop18 hint_nop19 hint_nop20 hint_nop21 hint_nop22 hint_nop23 hint_nop24 hint_nop25 hint_nop26 hint_nop27 hint_nop28 hint_nop29 hint_nop30 hint_nop31 hint_nop32 hint_nop33 hint_nop34 hint_nop35 hint_nop36 hint_nop37 hint_nop38 hint_nop39 hint_nop40 hint_nop41 hint_nop42 hint_nop43 hint_nop44 hint_nop45 hint_nop46 hint_nop47 hint_nop48 hint_nop49 hint_nop50 hint_nop51 hint_nop52 hint_nop53 hint_nop54 hint_nop55 hint_nop56 hint_nop57 hint_nop58 hint_nop59 hint_nop60 hint_nop61 hint_nop62 hint_nop63",literal:"ip eip rip al ah bl bh cl ch dl dh sil dil bpl spl r8b r9b r10b r11b r12b r13b r14b r15b ax bx cx dx si di bp sp r8w r9w r10w r11w r12w r13w r14w r15w eax ebx ecx edx esi edi ebp esp eip r8d r9d r10d r11d r12d r13d r14d r15d rax rbx rcx rdx rsi rdi rbp rsp r8 r9 r10 r11 r12 r13 r14 r15 cs ds es fs gs ss st st0 st1 st2 st3 st4 st5 st6 st7 mm0 mm1 mm2 mm3 mm4 mm5 mm6 mm7 xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14 xmm15 xmm16 xmm17 xmm18 xmm19 xmm20 xmm21 xmm22 xmm23 xmm24 xmm25 xmm26 xmm27 xmm28 xmm29 xmm30 xmm31 ymm0 ymm1 ymm2 ymm3 ymm4 ymm5 ymm6 ymm7 ymm8 ymm9 ymm10 ymm11 ymm12 ymm13 ymm14 ymm15 ymm16 ymm17 ymm18 ymm19 ymm20 ymm21 ymm22 ymm23 ymm24 ymm25 ymm26 ymm27 ymm28 ymm29 ymm30 ymm31 zmm0 zmm1 zmm2 zmm3 zmm4 zmm5 zmm6 zmm7 zmm8 zmm9 zmm10 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm17 zmm18 zmm19 zmm20 zmm21 zmm22 zmm23 zmm24 zmm25 zmm26 zmm27 zmm28 zmm29 zmm30 zmm31 k0 k1 k2 k3 k4 k5 k6 k7 bnd0 bnd1 bnd2 bnd3 cr0 cr1 cr2 cr3 cr4 cr8 dr0 dr1 dr2 dr3 dr8 tr3 tr4 tr5 tr6 tr7 r0 r1 r2 r3 r4 r5 r6 r7 r0b r1b r2b r3b r4b r5b r6b r7b r0w r1w r2w r3w r4w r5w r6w r7w r0d r1d r2d r3d r4d r5d r6d r7d r0h r1h r2h r3h r0l r1l r2l r3l r4l r5l r6l r7l r8l r9l r10l r11l r12l r13l r14l r15l",pseudo:"db dw dd dq dt ddq do dy dz resb resw resd resq rest resdq reso resy resz incbin equ times",preprocessor:"%define %xdefine %+ %undef %defstr %deftok %assign %strcat %strlen %substr %rotate %elif %else %endif %ifmacro %ifctx %ifidn %ifidni %ifid %ifnum %ifstr %iftoken %ifempty %ifenv %error %warning %fatal %rep %endrep %include %push %pop %repl %pathsearch %depend %use %arg %stacksize %local %line %comment %endcomment .nolist byte word dword qword nosplit rel abs seg wrt strict near far a32 ptr __FILE__ __LINE__ __SECT__ __BITS__ __OUTPUT_FORMAT__ __DATE__ __TIME__ __DATE_NUM__ __TIME_NUM__ __UTC_DATE__ __UTC_TIME__ __UTC_DATE_NUM__ __UTC_TIME_NUM__ __PASS__ struc endstruc istruc at iend align alignb sectalign daz nodaz up down zero default option assume public ",built_in:"bits use16 use32 use64 default section segment absolute extern global common cpu float __utf16__ __utf16le__ __utf16be__ __utf32__ __utf32le__ __utf32be__ __float8__ __float16__ __float32__ __float64__ __float80m__ __float80e__ __float128l__ __float128h__ __Infinity__ __QNaN__ __SNaN__ Inf NaN QNaN SNaN float8 float16 float32 float64 float80m float80e float128l float128h __FLOAT_DAZ__ __FLOAT_ROUND__ __FLOAT__"},c:[s.C(";","$",{r:0}),{cN:"number",b:"\\b(?:([0-9][0-9_]*)?\\.[0-9_]*(?:[eE][+-]?[0-9_]+)?|(0[Xx])?[0-9][0-9_]*\\.?[0-9_]*(?:[pP](?:[+-]?[0-9_]+)?)?)\\b",r:0},{cN:"number",b:"\\$[0-9][0-9A-Fa-f]*",r:0},{cN:"number",b:"\\b(?:[0-9A-Fa-f][0-9A-Fa-f_]*[HhXx]|[0-9][0-9_]*[DdTt]?|[0-7][0-7_]*[QqOo]|[0-1][0-1_]*[BbYy])\\b"},{cN:"number",b:"\\b(?:0[HhXx][0-9A-Fa-f_]+|0[DdTt][0-9_]+|0[QqOo][0-7_]+|0[BbYy][0-1_]+)\\b"},s.QSM,{cN:"string",b:"'",e:"[^\\\\]'",r:0},{cN:"string",b:"`",e:"[^\\\\]`",r:0},{cN:"string",b:"\\.[A-Za-z0-9]+",r:0},{cN:"label",b:"^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)",r:0},{cN:"label",b:"^\\s*%%[A-Za-z0-9_$#@~.?]*:",r:0},{cN:"argument",b:"%[0-9]+",r:0},{cN:"built_in",b:"%!S+",r:0}]}});hljs.registerLanguage("roboconf",function(e){var n="[a-zA-Z-_][^\n{\r\n]+\\{";return{aliases:["graph","instances"],cI:!0,k:"import",c:[{cN:"facet",b:"^facet "+n,e:"}",k:"facet installer exports children extends",c:[e.HCM]},{cN:"instance-of",b:"^instance of "+n,e:"}",k:"name count channels instance-data instance-state instance of",c:[{cN:"keyword",b:"[a-zA-Z-_]+( | )*:"},e.HCM]},{cN:"component",b:"^"+n,e:"}",l:"\\(?[a-zA-Z]+\\)?",k:"installer exports children extends imports facets alias (optional)",c:[{cN:"string",b:"\\.[a-zA-Z-_]+",e:"\\s|,|;",eE:!0},e.HCM]},e.HCM]}});hljs.registerLanguage("ruby",function(e){var c="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?",r="and false then defined module in return redo if BEGIN retry end for true self when next until do begin unless END rescue nil else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor",b={cN:"yardoctag",b:"@[A-Za-z]+"},a={cN:"value",b:"#<",e:">"},n=[e.C("#","$",{c:[b]}),e.C("^\\=begin","^\\=end",{c:[b],r:10}),e.C("^__END__","\\n$")],s={cN:"subst",b:"#\\{",e:"}",k:r},t={cN:"string",c:[e.BE,s],v:[{b:/'/,e:/'/},{b:/"/,e:/"/},{b:/`/,e:/`/},{b:"%[qQwWx]?\\(",e:"\\)"},{b:"%[qQwWx]?\\[",e:"\\]"},{b:"%[qQwWx]?{",e:"}"},{b:"%[qQwWx]?<",e:">"},{b:"%[qQwWx]?/",e:"/"},{b:"%[qQwWx]?%",e:"%"},{b:"%[qQwWx]?-",e:"-"},{b:"%[qQwWx]?\\|",e:"\\|"},{b:/\B\?(\\\d{1,3}|\\x[A-Fa-f0-9]{1,2}|\\u[A-Fa-f0-9]{4}|\\?\S)\b/}]},i={cN:"params",b:"\\(",e:"\\)",k:r},d=[t,a,{cN:"class",bK:"class module",e:"$|;",i:/=/,c:[e.inherit(e.TM,{b:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"}),{cN:"inheritance",b:"<\\s*",c:[{cN:"parent",b:"("+e.IR+"::)?"+e.IR}]}].concat(n)},{cN:"function",bK:"def",e:" |$|;",r:0,c:[e.inherit(e.TM,{b:c}),i].concat(n)},{cN:"constant",b:"(::)?(\\b[A-Z]\\w*(::)?)+",r:0},{cN:"symbol",b:e.UIR+"(\\!|\\?)?:",r:0},{cN:"symbol",b:":",c:[t,{b:c}],r:0},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{cN:"variable",b:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{b:"("+e.RSR+")\\s*",c:[a,{cN:"regexp",c:[e.BE,s],i:/\n/,v:[{b:"/",e:"/[a-z]*"},{b:"%r{",e:"}[a-z]*"},{b:"%r\\(",e:"\\)[a-z]*"},{b:"%r!",e:"![a-z]*"},{b:"%r\\[",e:"\\][a-z]*"}]}].concat(n),r:0}].concat(n);s.c=d,i.c=d;var o="[>?]>",l="[\\w#]+\\(\\w+\\):\\d+:\\d+>",u="(\\w+-)?\\d+\\.\\d+\\.\\d(p\\d+)?[^>]+>",N=[{b:/^\s*=>/,cN:"status",starts:{e:"$",c:d}},{cN:"prompt",b:"^("+o+"|"+l+"|"+u+")",starts:{e:"$",c:d}}];return{aliases:["rb","gemspec","podspec","thor","irb"],k:r,c:n.concat(N).concat(d)}});hljs.registerLanguage("typescript",function(e){return{aliases:["ts"],k:{keyword:"in if for while finally var new function|0 do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const class public private get set super interface extendsstatic constructor implements enum export import declare type protected",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document any number boolean string void"},c:[{cN:"pi",b:/^\s*('|")use strict('|")/,r:0},e.ASM,e.QSM,e.CLCM,e.CBCM,e.CNM,{b:"("+e.RSR+"|\\b(case|return|throw)\\b)\\s*",k:"return throw case",c:[e.CLCM,e.CBCM,e.RM,{b:/;/,r:0,sL:"xml"}],r:0},{cN:"function",bK:"function",e:/\{/,eE:!0,c:[e.inherit(e.TM,{b:/[A-Za-z$_][0-9A-Za-z$_]*/}),{cN:"params",b:/\(/,e:/\)/,c:[e.CLCM,e.CBCM],i:/["'\(]/}],i:/\[|%/,r:0},{cN:"constructor",bK:"constructor",e:/\{/,eE:!0,r:10},{cN:"module",bK:"module",e:/\{/,eE:!0},{cN:"interface",bK:"interface",e:/\{/,eE:!0},{b:/\$[(.]/},{b:"\\."+e.IR,r:0}]}});hljs.registerLanguage("handlebars",function(e){var a="each in with if else unless bindattr action collection debugger log outlet template unbound view yield";return{aliases:["hbs","html.hbs","html.handlebars"],cI:!0,sL:"xml",subLanguageMode:"continuous",c:[{cN:"expression",b:"{{",e:"}}",c:[{cN:"begin-block",b:"#[a-zA-Z- .]+",k:a},{cN:"string",b:'"',e:'"'},{cN:"end-block",b:"\\/[a-zA-Z- .]+",k:a},{cN:"variable",b:"[a-zA-Z-.]+",k:a}]}]}});hljs.registerLanguage("mercury",function(e){var i={keyword:"module use_module import_module include_module end_module initialise mutable initialize finalize finalise interface implementation pred mode func type inst solver any_pred any_func is semidet det nondet multi erroneous failure cc_nondet cc_multi typeclass instance where pragma promise external trace atomic or_else require_complete_switch require_det require_semidet require_multi require_nondet require_cc_multi require_cc_nondet require_erroneous require_failure",pragma:"inline no_inline type_spec source_file fact_table obsolete memo loop_check minimal_model terminates does_not_terminate check_termination promise_equivalent_clauses",preprocessor:"foreign_proc foreign_decl foreign_code foreign_type foreign_import_module foreign_export_enum foreign_export foreign_enum may_call_mercury will_not_call_mercury thread_safe not_thread_safe maybe_thread_safe promise_pure promise_semipure tabled_for_io local untrailed trailed attach_to_io_state can_pass_as_mercury_type stable will_not_throw_exception may_modify_trail will_not_modify_trail may_duplicate may_not_duplicate affects_liveness does_not_affect_liveness doesnt_affect_liveness no_sharing unknown_sharing sharing",built_in:"some all not if then else true fail false try catch catch_any semidet_true semidet_false semidet_fail impure_true impure semipure"},r={cN:"label",b:"XXX",e:"$",eW:!0,r:0},t=e.inherit(e.CLCM,{b:"%"}),_=e.inherit(e.CBCM,{r:0});t.c.push(r),_.c.push(r);var n={cN:"number",b:"0'.\\|0[box][0-9a-fA-F]*"},a=e.inherit(e.ASM,{r:0}),o=e.inherit(e.QSM,{r:0}),l={cN:"constant",b:"\\\\[abfnrtv]\\|\\\\x[0-9a-fA-F]*\\\\\\|%[-+# *.0-9]*[dioxXucsfeEgGp]",r:0};o.c.push(l);var s={cN:"built_in",v:[{b:"<=>"},{b:"<=",r:0},{b:"=>",r:0},{b:"/\\\\"},{b:"\\\\/"}]},c={cN:"built_in",v:[{b:":-\\|-->"},{b:"=",r:0}]};return{aliases:["m","moo"],k:i,c:[s,c,t,_,n,e.NM,a,o,{b:/:-/}]}});hljs.registerLanguage("fix",function(u){return{c:[{b:/[^\u2401\u0001]+/,e:/[\u2401\u0001]/,eE:!0,rB:!0,rE:!1,c:[{b:/([^\u2401\u0001=]+)/,e:/=([^\u2401\u0001=]+)/,rE:!0,rB:!1,cN:"attribute"},{b:/=/,e:/([\u2401\u0001])/,eE:!0,eB:!0,cN:"string"}]}],cI:!0}});hljs.registerLanguage("clojure",function(e){var t={built_in:"def cond apply if-not if-let if not not= = < > <= >= == + / * - rem quot neg? pos? delay? symbol? keyword? true? false? integer? empty? coll? list? set? ifn? fn? associative? sequential? sorted? counted? reversible? number? decimal? class? distinct? isa? float? rational? reduced? ratio? odd? even? char? seq? vector? string? map? nil? contains? zero? instance? not-every? not-any? libspec? -> ->> .. . inc compare do dotimes mapcat take remove take-while drop letfn drop-last take-last drop-while while intern condp case reduced cycle split-at split-with repeat replicate iterate range merge zipmap declare line-seq sort comparator sort-by dorun doall nthnext nthrest partition eval doseq await await-for let agent atom send send-off release-pending-sends add-watch mapv filterv remove-watch agent-error restart-agent set-error-handler error-handler set-error-mode! error-mode shutdown-agents quote var fn loop recur throw try monitor-enter monitor-exit defmacro defn defn- macroexpand macroexpand-1 for dosync and or when when-not when-let comp juxt partial sequence memoize constantly complement identity assert peek pop doto proxy defstruct first rest cons defprotocol cast coll deftype defrecord last butlast sigs reify second ffirst fnext nfirst nnext defmulti defmethod meta with-meta ns in-ns create-ns import refer keys select-keys vals key val rseq name namespace promise into transient persistent! conj! assoc! dissoc! pop! disj! use class type num float double short byte boolean bigint biginteger bigdec print-method print-dup throw-if printf format load compile get-in update-in pr pr-on newline flush read slurp read-line subvec with-open memfn time re-find re-groups rand-int rand mod locking assert-valid-fdecl alias resolve ref deref refset swap! reset! set-validator! compare-and-set! alter-meta! reset-meta! commute get-validator alter ref-set ref-history-count ref-min-history ref-max-history ensure sync io! new next conj set! to-array future future-call into-array aset gen-class reduce map filter find empty hash-map hash-set sorted-map sorted-map-by sorted-set sorted-set-by vec vector seq flatten reverse assoc dissoc list disj get union difference intersection extend extend-type extend-protocol int nth delay count concat chunk chunk-buffer chunk-append chunk-first chunk-rest max min dec unchecked-inc-int unchecked-inc unchecked-dec-inc unchecked-dec unchecked-negate unchecked-add-int unchecked-add unchecked-subtract-int unchecked-subtract chunk-next chunk-cons chunked-seq? prn vary-meta lazy-seq spread list* str find-keyword keyword symbol gensym force rationalize"},r="a-zA-Z_\\-!.?+*=<>&#'",n="["+r+"]["+r+"0-9/;:]*",a="[-+]?\\d+(\\.\\d+)?",o={b:n,r:0},s={cN:"number",b:a,r:0},i=e.inherit(e.QSM,{i:null}),c=e.C(";","$",{r:0}),d={cN:"literal",b:/\b(true|false|nil)\b/},l={cN:"collection",b:"[\\[\\{]",e:"[\\]\\}]"},m={cN:"comment",b:"\\^"+n},p=e.C("\\^\\{","\\}"),u={cN:"attribute",b:"[:]"+n},f={cN:"list",b:"\\(",e:"\\)"},h={eW:!0,r:0},y={k:t,l:n,cN:"keyword",b:n,starts:h},b=[f,i,m,p,c,u,l,s,d,o];return f.c=[e.C("comment",""),y,h],h.c=b,l.c=b,{aliases:["clj"],i:/\S/,c:[f,i,m,p,c,u,l,s,d]}});hljs.registerLanguage("perl",function(e){var t="getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qqfileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent shutdown dump chomp connect getsockname die socketpair close flock exists index shmgetsub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedirioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when",r={cN:"subst",b:"[$@]\\{",e:"\\}",k:t},s={b:"->{",e:"}"},n={cN:"variable",v:[{b:/\$\d/},{b:/[\$%@](\^\w\b|#\w+(::\w+)*|{\w+}|\w+(::\w*)*)/},{b:/[\$%@][^\s\w{]/,r:0}]},i=e.C("^(__END__|__DATA__)","\\n$",{r:5}),o=[e.BE,r,n],a=[n,e.HCM,i,e.C("^\\=\\w","\\=cut",{eW:!0}),s,{cN:"string",c:o,v:[{b:"q[qwxr]?\\s*\\(",e:"\\)",r:5},{b:"q[qwxr]?\\s*\\[",e:"\\]",r:5},{b:"q[qwxr]?\\s*\\{",e:"\\}",r:5},{b:"q[qwxr]?\\s*\\|",e:"\\|",r:5},{b:"q[qwxr]?\\s*\\<",e:"\\>",r:5},{b:"qw\\s+q",e:"q",r:5},{b:"'",e:"'",c:[e.BE]},{b:'"',e:'"'},{b:"`",e:"`",c:[e.BE]},{b:"{\\w+}",c:[],r:0},{b:"-?\\w+\\s*\\=\\>",c:[],r:0}]},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{b:"(\\/\\/|"+e.RSR+"|\\b(split|return|print|reverse|grep)\\b)\\s*",k:"split return print reverse grep",r:0,c:[e.HCM,i,{cN:"regexp",b:"(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*",r:10},{cN:"regexp",b:"(m|qr)?/",e:"/[a-z]*",c:[e.BE],r:0}]},{cN:"sub",bK:"sub",e:"(\\s*\\(.*?\\))?[;{]",r:5},{cN:"operator",b:"-\\w\\b",r:0}];return r.c=a,s.c=a,{aliases:["pl"],k:t,c:a}});hljs.registerLanguage("twig",function(e){var t={cN:"params",b:"\\(",e:"\\)"},a="attribute block constant cycle date dump include max min parent random range source template_from_string",r={cN:"function",bK:a,r:0,c:[t]},c={cN:"filter",b:/\|[A-Za-z_]+:?/,k:"abs batch capitalize convert_encoding date date_modify default escape first format join json_encode keys last length lower merge nl2br number_format raw replace reverse round slice sort split striptags title trim upper url_encode",c:[r]},n="autoescape block do embed extends filter flush for if import include macro sandbox set spaceless use verbatim";return n=n+" "+n.split(" ").map(function(e){return"end"+e}).join(" "),{aliases:["craftcms"],cI:!0,sL:"xml",subLanguageMode:"continuous",c:[e.C(/\{#/,/#}/),{cN:"template_tag",b:/\{%/,e:/%}/,k:n,c:[c,r]},{cN:"variable",b:/\{\{/,e:/}}/,c:[c,r]}]}});hljs.registerLanguage("livecodeserver",function(e){var r={cN:"variable",b:"\\b[gtps][A-Z]+[A-Za-z0-9_\\-]*\\b|\\$_[A-Z]+",r:0},t=[e.CBCM,e.HCM,e.C("--","$"),e.C("[^:]//","$")],a=e.inherit(e.TM,{v:[{b:"\\b_*rig[A-Z]+[A-Za-z0-9_\\-]*"},{b:"\\b_[a-z0-9\\-]+"}]}),o=e.inherit(e.TM,{b:"\\b([A-Za-z0-9_\\-]+)\\b"});return{cI:!1,k:{keyword:"$_COOKIE $_FILES $_GET $_GET_BINARY $_GET_RAW $_POST $_POST_BINARY $_POST_RAW $_SESSION $_SERVER codepoint codepoints segment segments codeunit codeunits sentence sentences trueWord trueWords paragraph after byte bytes english the until http forever descending using line real8 with seventh for stdout finally element word words fourth before black ninth sixth characters chars stderr uInt1 uInt1s uInt2 uInt2s stdin string lines relative rel any fifth items from middle mid at else of catch then third it file milliseconds seconds second secs sec int1 int1s int4 int4s internet int2 int2s normal text item last long detailed effective uInt4 uInt4s repeat end repeat URL in try into switch to words https token binfile each tenth as ticks tick system real4 by dateItems without char character ascending eighth whole dateTime numeric short first ftp integer abbreviated abbr abbrev private case while if",constant:"SIX TEN FORMFEED NINE ZERO NONE SPACE FOUR FALSE COLON CRLF PI COMMA ENDOFFILE EOF EIGHT FIVE QUOTE EMPTY ONE TRUE RETURN CR LINEFEED RIGHT BACKSLASH NULL SEVEN TAB THREE TWO six ten formfeed nine zero none space four false colon crlf pi comma endoffile eof eight five quote empty one true return cr linefeed right backslash null seven tab three two RIVERSION RISTATE FILE_READ_MODE FILE_WRITE_MODE FILE_WRITE_MODE DIR_WRITE_MODE FILE_READ_UMASK FILE_WRITE_UMASK DIR_READ_UMASK DIR_WRITE_UMASK",operator:"div mod wrap and or bitAnd bitNot bitOr bitXor among not in a an within contains ends with begins the keys of keys",built_in:"put abs acos aliasReference annuity arrayDecode arrayEncode asin atan atan2 average avg avgDev base64Decode base64Encode baseConvert binaryDecode binaryEncode byteOffset byteToNum cachedURL cachedURLs charToNum cipherNames codepointOffset codepointProperty codepointToNum codeunitOffset commandNames compound compress constantNames cos date dateFormat decompress directories diskSpace DNSServers exp exp1 exp2 exp10 extents files flushEvents folders format functionNames geometricMean global globals hasMemory harmonicMean hostAddress hostAddressToName hostName hostNameToAddress isNumber ISOToMac itemOffset keys len length libURLErrorData libUrlFormData libURLftpCommand libURLLastHTTPHeaders libURLLastRHHeaders libUrlMultipartFormAddPart libUrlMultipartFormData libURLVersion lineOffset ln ln1 localNames log log2 log10 longFilePath lower macToISO matchChunk matchText matrixMultiply max md5Digest median merge millisec millisecs millisecond milliseconds min monthNames nativeCharToNum normalizeText num number numToByte numToChar numToCodepoint numToNativeChar offset open openfiles openProcesses openProcessIDs openSockets paragraphOffset paramCount param params peerAddress pendingMessages platform popStdDev populationStandardDeviation populationVariance popVariance processID random randomBytes replaceText result revCreateXMLTree revCreateXMLTreeFromFile revCurrentRecord revCurrentRecordIsFirst revCurrentRecordIsLast revDatabaseColumnCount revDatabaseColumnIsNull revDatabaseColumnLengths revDatabaseColumnNames revDatabaseColumnNamed revDatabaseColumnNumbered revDatabaseColumnTypes revDatabaseConnectResult revDatabaseCursors revDatabaseID revDatabaseTableNames revDatabaseType revDataFromQuery revdb_closeCursor revdb_columnbynumber revdb_columncount revdb_columnisnull revdb_columnlengths revdb_columnnames revdb_columntypes revdb_commit revdb_connect revdb_connections revdb_connectionerr revdb_currentrecord revdb_cursorconnection revdb_cursorerr revdb_cursors revdb_dbtype revdb_disconnect revdb_execute revdb_iseof revdb_isbof revdb_movefirst revdb_movelast revdb_movenext revdb_moveprev revdb_query revdb_querylist revdb_recordcount revdb_rollback revdb_tablenames revGetDatabaseDriverPath revNumberOfRecords revOpenDatabase revOpenDatabases revQueryDatabase revQueryDatabaseBlob revQueryResult revQueryIsAtStart revQueryIsAtEnd revUnixFromMacPath revXMLAttribute revXMLAttributes revXMLAttributeValues revXMLChildContents revXMLChildNames revXMLCreateTreeFromFileWithNamespaces revXMLCreateTreeWithNamespaces revXMLDataFromXPathQuery revXMLEvaluateXPath revXMLFirstChild revXMLMatchingNode revXMLNextSibling revXMLNodeContents revXMLNumberOfChildren revXMLParent revXMLPreviousSibling revXMLRootNode revXMLRPC_CreateRequest revXMLRPC_Documents revXMLRPC_Error revXMLRPC_GetHost revXMLRPC_GetMethod revXMLRPC_GetParam revXMLText revXMLRPC_Execute revXMLRPC_GetParamCount revXMLRPC_GetParamNode revXMLRPC_GetParamType revXMLRPC_GetPath revXMLRPC_GetPort revXMLRPC_GetProtocol revXMLRPC_GetRequest revXMLRPC_GetResponse revXMLRPC_GetSocket revXMLTree revXMLTrees revXMLValidateDTD revZipDescribeItem revZipEnumerateItems revZipOpenArchives round sampVariance sec secs seconds sentenceOffset sha1Digest shell shortFilePath sin specialFolderPath sqrt standardDeviation statRound stdDev sum sysError systemVersion tan tempName textDecode textEncode tick ticks time to tokenOffset toLower toUpper transpose truewordOffset trunc uniDecode uniEncode upper URLDecode URLEncode URLStatus uuid value variableNames variance version waitDepth weekdayNames wordOffset xsltApplyStylesheet xsltApplyStylesheetFromFile xsltLoadStylesheet xsltLoadStylesheetFromFile add breakpoint cancel clear local variable file word line folder directory URL close socket process combine constant convert create new alias folder directory decrypt delete variable word line folder directory URL dispatch divide do encrypt filter get include intersect kill libURLDownloadToFile libURLFollowHttpRedirects libURLftpUpload libURLftpUploadFile libURLresetAll libUrlSetAuthCallback libURLSetCustomHTTPHeaders libUrlSetExpect100 libURLSetFTPListCommand libURLSetFTPMode libURLSetFTPStopTime libURLSetStatusCallback load multiply socket prepare process post seek rel relative read from process rename replace require resetAll resolve revAddXMLNode revAppendXML revCloseCursor revCloseDatabase revCommitDatabase revCopyFile revCopyFolder revCopyXMLNode revDeleteFolder revDeleteXMLNode revDeleteAllXMLTrees revDeleteXMLTree revExecuteSQL revGoURL revInsertXMLNode revMoveFolder revMoveToFirstRecord revMoveToLastRecord revMoveToNextRecord revMoveToPreviousRecord revMoveToRecord revMoveXMLNode revPutIntoXMLNode revRollBackDatabase revSetDatabaseDriverPath revSetXMLAttribute revXMLRPC_AddParam revXMLRPC_DeleteAllDocuments revXMLAddDTD revXMLRPC_Free revXMLRPC_FreeAll revXMLRPC_DeleteDocument revXMLRPC_DeleteParam revXMLRPC_SetHost revXMLRPC_SetMethod revXMLRPC_SetPort revXMLRPC_SetProtocol revXMLRPC_SetSocket revZipAddItemWithData revZipAddItemWithFile revZipAddUncompressedItemWithData revZipAddUncompressedItemWithFile revZipCancel revZipCloseArchive revZipDeleteItem revZipExtractItemToFile revZipExtractItemToVariable revZipSetProgressCallback revZipRenameItem revZipReplaceItemWithData revZipReplaceItemWithFile revZipOpenArchive send set sort split start stop subtract union unload wait write"},c:[r,{cN:"keyword",b:"\\bend\\sif\\b"},{cN:"function",bK:"function",e:"$",c:[r,o,e.ASM,e.QSM,e.BNM,e.CNM,a]},{cN:"function",bK:"end",e:"$",c:[o,a]},{cN:"command",bK:"command on",e:"$",c:[r,o,e.ASM,e.QSM,e.BNM,e.CNM,a]},{cN:"command",bK:"end",e:"$",c:[o,a]},{cN:"preprocessor",b:"<\\?rev|<\\?lc|<\\?livecode",r:10},{cN:"preprocessor",b:"<\\?"},{cN:"preprocessor",b:"\\?>"},e.ASM,e.QSM,e.BNM,e.CNM,a].concat(t),i:";$|^\\[|^="}});hljs.registerLanguage("step21",function(e){var r="[A-Z_][A-Z0-9_.]*",i="END-ISO-10303-21;",l={literal:"",built_in:"",keyword:"HEADER ENDSEC DATA"},s={cN:"preprocessor",b:"ISO-10303-21;",r:10},t=[e.CLCM,e.CBCM,e.C("/\\*\\*!","\\*/"),e.CNM,e.inherit(e.ASM,{i:null}),e.inherit(e.QSM,{i:null}),{cN:"string",b:"'",e:"'"},{cN:"label",v:[{b:"#",e:"\\d+",i:"\\W"}]}];return{aliases:["p21","step","stp"],cI:!0,l:r,k:l,c:[{cN:"preprocessor",b:i,r:10},s].concat(t)}});hljs.registerLanguage("cpp",function(t){var i={keyword:"false int float while private char catch export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const struct for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using true class asm case typeid short reinterpret_cast|10 default double register explicit signed typename try this switch continue wchar_t inline delete alignof char16_t char32_t constexpr decltype noexcept nullptr static_assert thread_local restrict _Bool complex _Complex _Imaginary intmax_t uintmax_t int8_t uint8_t int16_t uint16_t int32_t uint32_t int64_t uint64_t int_least8_t uint_least8_t int_least16_t uint_least16_t int_least32_t uint_least32_t int_least64_t uint_least64_t int_fast8_t uint_fast8_t int_fast16_t uint_fast16_t int_fast32_t uint_fast32_t int_fast64_t uint_fast64_t intptr_t uintptr_t atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong atomic_wchar_t atomic_char16_t atomic_char32_t atomic_intmax_t atomic_uintmax_t atomic_intptr_t atomic_uintptr_t atomic_size_t atomic_ptrdiff_t atomic_int_least8_t atomic_int_least16_t atomic_int_least32_t atomic_int_least64_t atomic_uint_least8_t atomic_uint_least16_t atomic_uint_least32_t atomic_uint_least64_t atomic_int_fast8_t atomic_int_fast16_t atomic_int_fast32_t atomic_int_fast64_t atomic_uint_fast8_t atomic_uint_fast16_t atomic_uint_fast32_t atomic_uint_fast64_t",built_in:"std string cin cout cerr clog stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap array shared_ptr abort abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf"};return{aliases:["c","cc","h","c++","h++","hpp"],k:i,i:""]',k:"include",i:"\\n"},t.CLCM]},{b:"\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<",e:">",k:i,c:["self"]},{b:t.IR+"::",k:i},{bK:"new throw return else",r:0},{cN:"function",b:"("+t.IR+"\\s+)+"+t.IR+"\\s*\\(",rB:!0,e:/[{;=]/,eE:!0,k:i,c:[{b:t.IR+"\\s*\\(",rB:!0,c:[t.TM],r:0},{cN:"params",b:/\(/,e:/\)/,k:i,r:0,c:[t.CBCM]},t.CLCM,t.CBCM]}]}});hljs.registerLanguage("vala",function(e){return{k:{keyword:"char uchar unichar int uint long ulong short ushort int8 int16 int32 int64 uint8 uint16 uint32 uint64 float double bool struct enum string void weak unowned owned async signal static abstract interface override while do for foreach else switch case break default return try catch public private protected internal using new this get set const stdout stdin stderr var",built_in:"DBus GLib CCode Gee Object",literal:"false true null"},c:[{cN:"class",bK:"class interface delegate namespace",e:"{",eE:!0,i:"[^,:\\n\\s\\.]",c:[e.UTM]},e.CLCM,e.CBCM,{cN:"string",b:'"""',e:'"""',r:5},e.ASM,e.QSM,e.CNM,{cN:"preprocessor",b:"^#",e:"$",r:2},{cN:"constant",b:" [A-Z_]+ ",r:0}]}});hljs.registerLanguage("http",function(t){return{aliases:["https"],i:"\\S",c:[{cN:"status",b:"^HTTP/[0-9\\.]+",e:"$",c:[{cN:"number",b:"\\b\\d{3}\\b"}]},{cN:"request",b:"^[A-Z]+ (.*?) HTTP/[0-9\\.]+$",rB:!0,e:"$",c:[{cN:"string",b:" ",e:" ",eB:!0,eE:!0}]},{cN:"attribute",b:"^\\w",e:": ",eE:!0,i:"\\n|\\s|=",starts:{cN:"string",e:"$"}},{b:"\\n\\n",starts:{sL:"",eW:!0}}]}});hljs.registerLanguage("avrasm",function(r){return{cI:!0,l:"\\.?"+r.IR,k:{keyword:"adc add adiw and andi asr bclr bld brbc brbs brcc brcs break breq brge brhc brhs brid brie brlo brlt brmi brne brpl brsh brtc brts brvc brvs bset bst call cbi cbr clc clh cli cln clr cls clt clv clz com cp cpc cpi cpse dec eicall eijmp elpm eor fmul fmuls fmulsu icall ijmp in inc jmp ld ldd ldi lds lpm lsl lsr mov movw mul muls mulsu neg nop or ori out pop push rcall ret reti rjmp rol ror sbc sbr sbrc sbrs sec seh sbi sbci sbic sbis sbiw sei sen ser ses set sev sez sleep spm st std sts sub subi swap tst wdr",built_in:"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r20 r21 r22 r23 r24 r25 r26 r27 r28 r29 r30 r31 x|0 xh xl y|0 yh yl z|0 zh zl ucsr1c udr1 ucsr1a ucsr1b ubrr1l ubrr1h ucsr0c ubrr0h tccr3c tccr3a tccr3b tcnt3h tcnt3l ocr3ah ocr3al ocr3bh ocr3bl ocr3ch ocr3cl icr3h icr3l etimsk etifr tccr1c ocr1ch ocr1cl twcr twdr twar twsr twbr osccal xmcra xmcrb eicra spmcsr spmcr portg ddrg ping portf ddrf sreg sph spl xdiv rampz eicrb eimsk gimsk gicr eifr gifr timsk tifr mcucr mcucsr tccr0 tcnt0 ocr0 assr tccr1a tccr1b tcnt1h tcnt1l ocr1ah ocr1al ocr1bh ocr1bl icr1h icr1l tccr2 tcnt2 ocr2 ocdr wdtcr sfior eearh eearl eedr eecr porta ddra pina portb ddrb pinb portc ddrc pinc portd ddrd pind spdr spsr spcr udr0 ucsr0a ucsr0b ubrr0l acsr admux adcsr adch adcl porte ddre pine pinf",preprocessor:".byte .cseg .db .def .device .dseg .dw .endmacro .equ .eseg .exit .include .list .listmac .macro .nolist .org .set"},c:[r.CBCM,r.C(";","$",{r:0}),r.CNM,r.BNM,{cN:"number",b:"\\b(\\$[a-zA-Z0-9]+|0o[0-7]+)"},r.QSM,{cN:"string",b:"'",e:"[^\\\\]'",i:"[^\\\\][^']"},{cN:"label",b:"^[A-Za-z0-9_.$]+:"},{cN:"preprocessor",b:"#",e:"$"},{cN:"localvars",b:"@[0-9]+"}]}});hljs.registerLanguage("aspectj",function(e){var t="false synchronized int abstract float private char boolean static null if const for true while long throw strictfp finally protected import native final return void enum else extends implements break transient new catch instanceof byte super volatile case assert short package default double public try this switch continue throws privileged aspectOf adviceexecution proceed cflowbelow cflow initialization preinitialization staticinitialization withincode target within execution getWithinTypeName handler thisJoinPoint thisJoinPointStaticPart thisEnclosingJoinPointStaticPart declare parents warning error soft precedence thisAspectInstance",i="get set args call";return{k:t,i:/<\//,c:[{cN:"javadoc",b:"/\\*\\*",e:"\\*/",r:0,c:[{cN:"javadoctag",b:"(^|\\s)@[A-Za-z]+"}]},e.CLCM,e.CBCM,e.ASM,e.QSM,{cN:"aspect",bK:"aspect",e:/[{;=]/,eE:!0,i:/[:;"\[\]]/,c:[{bK:"extends implements pertypewithin perthis pertarget percflowbelow percflow issingleton"},e.UTM,{b:/\([^\)]*/,e:/[)]+/,k:t+" "+i,eE:!1}]},{cN:"class",bK:"class interface",e:/[{;=]/,eE:!0,r:0,k:"class interface",i:/[:"\[\]]/,c:[{bK:"extends implements"},e.UTM]},{bK:"pointcut after before around throwing returning",e:/[)]/,eE:!1,i:/["\[\]]/,c:[{b:e.UIR+"\\s*\\(",rB:!0,c:[e.UTM]}]},{b:/[:]/,rB:!0,e:/[{;]/,r:0,eE:!1,k:t,i:/["\[\]]/,c:[{b:e.UIR+"\\s*\\(",k:t+" "+i},e.QSM]},{bK:"new throw",r:0},{cN:"function",b:/\w+ +\w+(\.)?\w+\s*\([^\)]*\)\s*((throws)[\w\s,]+)?[\{;]/,rB:!0,e:/[{;=]/,k:t,eE:!0,c:[{b:e.UIR+"\\s*\\(",rB:!0,r:0,c:[e.UTM]},{cN:"params",b:/\(/,e:/\)/,r:0,k:t,c:[e.ASM,e.QSM,e.CNM,e.CBCM]},e.CLCM,e.CBCM]},e.CNM,{cN:"annotation",b:"@[A-Za-z]+"}]}});hljs.registerLanguage("rib",function(e){return{k:"ArchiveRecord AreaLightSource Atmosphere Attribute AttributeBegin AttributeEnd Basis Begin Blobby Bound Clipping ClippingPlane Color ColorSamples ConcatTransform Cone CoordinateSystem CoordSysTransform CropWindow Curves Cylinder DepthOfField Detail DetailRange Disk Displacement Display End ErrorHandler Exposure Exterior Format FrameAspectRatio FrameBegin FrameEnd GeneralPolygon GeometricApproximation Geometry Hider Hyperboloid Identity Illuminate Imager Interior LightSource MakeCubeFaceEnvironment MakeLatLongEnvironment MakeShadow MakeTexture Matte MotionBegin MotionEnd NuPatch ObjectBegin ObjectEnd ObjectInstance Opacity Option Orientation Paraboloid Patch PatchMesh Perspective PixelFilter PixelSamples PixelVariance Points PointsGeneralPolygons PointsPolygons Polygon Procedural Projection Quantize ReadArchive RelativeDetail ReverseOrientation Rotate Scale ScreenWindow ShadingInterpolation ShadingRate Shutter Sides Skew SolidBegin SolidEnd Sphere SubdivisionMesh Surface TextureCoordinates Torus Transform TransformBegin TransformEnd TransformPoints Translate TrimCurve WorldBegin WorldEnd",i:">>|\.\.\.) /},b={cN:"string",c:[e.BE],v:[{b:/(u|b)?r?'''/,e:/'''/,c:[r],r:10},{b:/(u|b)?r?"""/,e:/"""/,c:[r],r:10},{b:/(u|r|ur)'/,e:/'/,r:10},{b:/(u|r|ur)"/,e:/"/,r:10},{b:/(b|br)'/,e:/'/},{b:/(b|br)"/,e:/"/},e.ASM,e.QSM]},l={cN:"number",r:0,v:[{b:e.BNR+"[lLjJ]?"},{b:"\\b(0o[0-7]+)[lLjJ]?"},{b:e.CNR+"[lLjJ]?"}]},c={cN:"params",b:/\(/,e:/\)/,c:["self",r,l,b]};return{aliases:["py","gyp"],k:{keyword:"and elif is global as in if from raise for except finally print import pass return exec else break not with class assert yield try while continue del or def lambda nonlocal|10 None True False",built_in:"Ellipsis NotImplemented"},i:/(<\/|->|\?)/,c:[r,l,b,e.HCM,{v:[{cN:"function",bK:"def",r:10},{cN:"class",bK:"class"}],e:/:/,i:/[${=;\n,]/,c:[e.UTM,c]},{cN:"decorator",b:/@/,e:/$/},{b:/\b(print|exec)\(/}]}});hljs.registerLanguage("axapta",function(e){return{k:"false int abstract private char boolean static null if for true while long throw finally protected final return void enum else break new catch byte super case short default double public try this switch continue reverse firstfast firstonly forupdate nofetch sum avg minof maxof count order group by asc desc index hint like dispaly edit client server ttsbegin ttscommit str real date container anytype common div mod",c:[e.CLCM,e.CBCM,e.ASM,e.QSM,e.CNM,{cN:"preprocessor",b:"#",e:"$"},{cN:"class",bK:"class interface",e:"{",eE:!0,i:":",c:[{bK:"extends implements"},e.UTM]}]}});hljs.registerLanguage("nix",function(e){var t={keyword:"rec with let in inherit assert if else then",constant:"true false or and null",built_in:"import abort baseNameOf dirOf isNull builtins map removeAttrs throw toString derivation"},i={cN:"subst",b:/\$\{/,e:/}/,k:t},r={cN:"variable",b:/[a-zA-Z0-9-_]+(\s*=)/},n={cN:"string",b:"''",e:"''",c:[i]},s={cN:"string",b:'"',e:'"',c:[i]},a=[e.NM,e.HCM,e.CBCM,n,s,r];return i.c=a,{aliases:["nixos"],k:t,c:a}});hljs.registerLanguage("diff",function(e){return{aliases:["patch"],c:[{cN:"chunk",r:10,v:[{b:/^@@ +\-\d+,\d+ +\+\d+,\d+ +@@$/},{b:/^\*\*\* +\d+,\d+ +\*\*\*\*$/},{b:/^\-\-\- +\d+,\d+ +\-\-\-\-$/}]},{cN:"header",v:[{b:/Index: /,e:/$/},{b:/=====/,e:/=====$/},{b:/^\-\-\-/,e:/$/},{b:/^\*{3} /,e:/$/},{b:/^\+\+\+/,e:/$/},{b:/\*{5}/,e:/\*{5}$/}]},{cN:"addition",b:"^\\+",e:"$"},{cN:"deletion",b:"^\\-",e:"$"},{cN:"change",b:"^\\!",e:"$"}]}});hljs.registerLanguage("parser3",function(r){var e=r.C("{","}",{c:["self"]});return{sL:"xml",r:0,c:[r.C("^#","$"),r.C("\\^rem{","}",{r:10,c:[e]}),{cN:"preprocessor",b:"^@(?:BASE|USE|CLASS|OPTIONS)$",r:10},{cN:"title",b:"@[\\w\\-]+\\[[\\w^;\\-]*\\](?:\\[[\\w^;\\-]*\\])?(?:.*)$"},{cN:"variable",b:"\\$\\{?[\\w\\-\\.\\:]+\\}?"},{cN:"keyword",b:"\\^[\\w\\-\\.\\:]+"},{cN:"number",b:"\\^#[0-9a-fA-F]+"},r.CNM]}});hljs.registerLanguage("django",function(e){var t={cN:"filter",b:/\|[A-Za-z]+:?/,k:"truncatewords removetags linebreaksbr yesno get_digit timesince random striptags filesizeformat escape linebreaks length_is ljust rjust cut urlize fix_ampersands title floatformat capfirst pprint divisibleby add make_list unordered_list urlencode timeuntil urlizetrunc wordcount stringformat linenumbers slice date dictsort dictsortreversed default_if_none pluralize lower join center default truncatewords_html upper length phone2numeric wordwrap time addslashes slugify first escapejs force_escape iriencode last safe safeseq truncatechars localize unlocalize localtime utc timezone",c:[{cN:"argument",b:/"/,e:/"/},{cN:"argument",b:/'/,e:/'/}]};return{aliases:["jinja"],cI:!0,sL:"xml",subLanguageMode:"continuous",c:[e.C(/\{%\s*comment\s*%}/,/\{%\s*endcomment\s*%}/),e.C(/\{#/,/#}/),{cN:"template_tag",b:/\{%/,e:/%}/,k:"comment endcomment load templatetag ifchanged endifchanged if endif firstof for endfor in ifnotequal endifnotequal widthratio extends include spaceless endspaceless regroup by as ifequal endifequal ssi now with cycle url filter endfilter debug block endblock else autoescape endautoescape csrf_token empty elif endwith static trans blocktrans endblocktrans get_static_prefix get_media_prefix plural get_current_language language get_available_languages get_current_language_bidi get_language_info get_language_info_list localize endlocalize localtime endlocaltime timezone endtimezone get_current_timezone verbatim",c:[t]},{cN:"variable",b:/\{\{/,e:/}}/,c:[t]}]}});hljs.registerLanguage("rust",function(e){var t=e.inherit(e.CBCM);return t.c.push("self"),{aliases:["rs"],k:{keyword:"alignof as be box break const continue crate do else enum extern false fn for if impl in let loop match mod mut offsetof once priv proc pub pure ref return self sizeof static struct super trait true type typeof unsafe unsized use virtual while yield int i8 i16 i32 i64 uint u8 u32 u64 float f32 f64 str char bool",built_in:"assert! assert_eq! bitflags! bytes! cfg! col! concat! concat_idents! debug_assert! debug_assert_eq! env! panic! file! format! format_args! include_bin! include_str! line! local_data_key! module_path! option_env! print! println! select! stringify! try! unimplemented! unreachable! vec! write! writeln!"},l:e.IR+"!?",i:""}]}});hljs.registerLanguage("vhdl",function(e){var t="\\d(_|\\d)*",r="[eE][-+]?"+t,n=t+"(\\."+t+")?("+r+")?",o="\\w+",i=t+"#"+o+"(\\."+o+")?#("+r+")?",a="\\b("+i+"|"+n+")";return{cI:!0,k:{keyword:"abs access after alias all and architecture array assert attribute begin block body buffer bus case component configuration constant context cover disconnect downto default else elsif end entity exit fairness file for force function generate generic group guarded if impure in inertial inout is label library linkage literal loop map mod nand new next nor not null of on open or others out package port postponed procedure process property protected pure range record register reject release rem report restrict restrict_guarantee return rol ror select sequence severity shared signal sla sll sra srl strong subtype then to transport type unaffected units until use variable vmode vprop vunit wait when while with xnor xor",typename:"boolean bit character severity_level integer time delay_length natural positive string bit_vector file_open_kind file_open_status std_ulogic std_ulogic_vector std_logic std_logic_vector unsigned signed boolean_vector integer_vector real_vector time_vector"},i:"{",c:[e.CBCM,e.C("--","$"),e.QSM,{cN:"number",b:a,r:0},{cN:"literal",b:"'(U|X|0|1|Z|W|L|H|-)'",c:[e.BE]},{cN:"attribute",b:"'[A-Za-z](_?[A-Za-z0-9])*",c:[e.BE]}]}});hljs.registerLanguage("ocaml",function(e){return{aliases:["ml"],k:{keyword:"and as assert asr begin class constraint do done downto else end exception external for fun function functor if in include inherit! inherit initializer land lazy let lor lsl lsr lxor match method!|10 method mod module mutable new object of open! open or private rec sig struct then to try type val! val virtual when while with parser value",built_in:"array bool bytes char exn|5 float int int32 int64 list lazy_t|5 nativeint|5 string unit in_channel out_channel ref",literal:"true false"},i:/\/\/|>>/,l:"[a-z_]\\w*!?",c:[{cN:"literal",b:"\\[(\\|\\|)?\\]|\\(\\)"},e.C("\\(\\*","\\*\\)",{c:["self"]}),{cN:"symbol",b:"'[A-Za-z_](?!')[\\w']*"},{cN:"tag",b:"`[A-Z][\\w']*"},{cN:"type",b:"\\b[A-Z][\\w']*",r:0},{b:"[a-z_]\\w*'[\\w']*"},e.inherit(e.ASM,{cN:"char",r:0}),e.inherit(e.QSM,{i:null}),{cN:"number",b:"\\b(0[xX][a-fA-F0-9_]+[Lln]?|0[oO][0-7_]+[Lln]?|0[bB][01_]+[Lln]?|[0-9][0-9_]*([Lln]|(\\.[0-9_]*)?([eE][-+]?[0-9_]+)?)?)",r:0},{b:/[-=]>/}]}});hljs.registerLanguage("cmake",function(e){return{aliases:["cmake.in"],cI:!0,k:{keyword:"add_custom_command add_custom_target add_definitions add_dependencies add_executable add_library add_subdirectory add_test aux_source_directory break build_command cmake_minimum_required cmake_policy configure_file create_test_sourcelist define_property else elseif enable_language enable_testing endforeach endfunction endif endmacro endwhile execute_process export find_file find_library find_package find_path find_program fltk_wrap_ui foreach function get_cmake_property get_directory_property get_filename_component get_property get_source_file_property get_target_property get_test_property if include include_directories include_external_msproject include_regular_expression install link_directories load_cache load_command macro mark_as_advanced message option output_required_files project qt_wrap_cpp qt_wrap_ui remove_definitions return separate_arguments set set_directory_properties set_property set_source_files_properties set_target_properties set_tests_properties site_name source_group string target_link_libraries try_compile try_run unset variable_watch while build_name exec_program export_library_dependencies install_files install_programs install_targets link_libraries make_directory remove subdir_depends subdirs use_mangled_mesa utility_source variable_requires write_file qt5_use_modules qt5_use_package qt5_wrap_cpp on off true false and or",operator:"equal less greater strless strgreater strequal matches"},c:[{cN:"envvar",b:"\\${",e:"}"},e.HCM,e.QSM,e.NM]}});hljs.registerLanguage("1c",function(c){var e="[a-zA-Zа-яА-Я][a-zA-Z0-9_а-яА-Я]*",r="возврат дата для если и или иначе иначеесли исключение конецесли конецпопытки конецпроцедуры конецфункции конеццикла константа не перейти перем перечисление по пока попытка прервать продолжить процедура строка тогда фс функция цикл число экспорт",t="ansitooem oemtoansi ввестивидсубконто ввестидату ввестизначение ввестиперечисление ввестипериод ввестиплансчетов ввестистроку ввестичисло вопрос восстановитьзначение врег выбранныйплансчетов вызватьисключение датагод датамесяц датачисло добавитьмесяц завершитьработусистемы заголовоксистемы записьжурналарегистрации запуститьприложение зафиксироватьтранзакцию значениевстроку значениевстрокувнутр значениевфайл значениеизстроки значениеизстрокивнутр значениеизфайла имякомпьютера имяпользователя каталогвременныхфайлов каталогиб каталогпользователя каталогпрограммы кодсимв командасистемы конгода конецпериодаби конецрассчитанногопериодаби конецстандартногоинтервала конквартала конмесяца коннедели лев лог лог10 макс максимальноеколичествосубконто мин монопольныйрежим названиеинтерфейса названиенабораправ назначитьвид назначитьсчет найти найтипомеченныенаудаление найтиссылки началопериодаби началостандартногоинтервала начатьтранзакцию начгода начквартала начмесяца начнедели номерднягода номерднянедели номернеделигода нрег обработкаожидания окр описаниеошибки основнойжурналрасчетов основнойплансчетов основнойязык открытьформу открытьформумодально отменитьтранзакцию очиститьокносообщений периодстр полноеимяпользователя получитьвремята получитьдатута получитьдокументта получитьзначенияотбора получитьпозициюта получитьпустоезначение получитьта прав праводоступа предупреждение префиксавтонумерации пустаястрока пустоезначение рабочаядаттьпустоезначение рабочаядата разделительстраниц разделительстрок разм разобратьпозициюдокумента рассчитатьрегистрына рассчитатьрегистрыпо сигнал симв символтабуляции создатьобъект сокрл сокрлп сокрп сообщить состояние сохранитьзначение сред статусвозврата стрдлина стрзаменить стрколичествострок стрполучитьстроку стрчисловхождений сформироватьпозициюдокумента счетпокоду текущаядата текущеевремя типзначения типзначениястр удалитьобъекты установитьтана установитьтапо фиксшаблон формат цел шаблон",i={cN:"dquote",b:'""'},n={cN:"string",b:'"',e:'"|$',c:[i]},a={cN:"string",b:"\\|",e:'"|$',c:[i]};return{cI:!0,l:e,k:{keyword:r,built_in:t},c:[c.CLCM,c.NM,n,a,{cN:"function",b:"(процедура|функция)",e:"$",l:e,k:"процедура функция",c:[c.inherit(c.TM,{b:e}),{cN:"tail",eW:!0,c:[{cN:"params",b:"\\(",e:"\\)",l:e,k:"знач",c:[n,a]},{cN:"export",b:"экспорт",eW:!0,l:e,k:"экспорт",c:[c.CLCM]}]},c.CLCM]},{cN:"preprocessor",b:"#",e:"$"},{cN:"date",b:"'\\d{2}\\.\\d{2}\\.(\\d{2}|\\d{4})'"}]}});hljs.registerLanguage("tcl",function(e){return{aliases:["tk"],k:"after append apply array auto_execok auto_import auto_load auto_mkindex auto_mkindex_old auto_qualify auto_reset bgerror binary break catch cd chan clock close concat continue dde dict encoding eof error eval exec exit expr fblocked fconfigure fcopy file fileevent filename flush for foreach format gets glob global history http if incr info interp join lappend|10 lassign|10 lindex|10 linsert|10 list llength|10 load lrange|10 lrepeat|10 lreplace|10 lreverse|10 lsearch|10 lset|10 lsort|10 mathfunc mathop memory msgcat namespace open package parray pid pkg::create pkg_mkIndex platform platform::shell proc puts pwd read refchan regexp registry regsub|10 rename return safe scan seek set socket source split string subst switch tcl_endOfWord tcl_findLibrary tcl_startOfNextWord tcl_startOfPreviousWord tcl_wordBreakAfter tcl_wordBreakBefore tcltest tclvars tell time tm trace unknown unload unset update uplevel upvar variable vwait while",c:[e.C(";[ \\t]*#","$"),e.C("^[ \\t]*#","$"),{bK:"proc",e:"[\\{]",eE:!0,c:[{cN:"symbol",b:"[ \\t\\n\\r]+(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*",e:"[ \\t\\n\\r]",eW:!0,eE:!0}]},{cN:"variable",eE:!0,v:[{b:"\\$(\\{)?(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*\\(([a-zA-Z0-9_])*\\)",e:"[^a-zA-Z0-9_\\}\\$]"},{b:"\\$(\\{)?(::)?[a-zA-Z_]((::)?[a-zA-Z0-9_])*",e:"(\\))?[^a-zA-Z0-9_\\}\\$]"}]},{cN:"string",c:[e.BE],v:[e.inherit(e.ASM,{i:null}),e.inherit(e.QSM,{i:null})]},{cN:"number",v:[e.BNM,e.CNM]}]}});hljs.registerLanguage("groovy",function(e){return{k:{typename:"byte short char int long boolean float double void",literal:"true false null",keyword:"def as in assert trait super this abstract static volatile transient public private protected synchronized final class interface enum if else for while switch case break default continue throw throws try catch finally implements extends new import package return instanceof"},c:[e.CLCM,{cN:"javadoc",b:"/\\*\\*",e:"\\*//*",r:0,c:[{cN:"javadoctag",b:"(^|\\s)@[A-Za-z]+"}]},e.CBCM,{cN:"string",b:'"""',e:'"""'},{cN:"string",b:"'''",e:"'''"},{cN:"string",b:"\\$/",e:"/\\$",r:10},e.ASM,{cN:"regexp",b:/~?\/[^\/\n]+\//,c:[e.BE]},e.QSM,{cN:"shebang",b:"^#!/usr/bin/env",e:"$",i:"\n"},e.BNM,{cN:"class",bK:"class interface trait enum",e:"{",i:":",c:[{bK:"extends implements"},e.UTM]},e.CNM,{cN:"annotation",b:"@[A-Za-z]+"},{cN:"string",b:/[^\?]{0}[A-Za-z0-9_$]+ *:/},{b:/\?/,e:/\:/},{cN:"label",b:"^\\s*[A-Za-z0-9_$]+:",r:0}]}});hljs.registerLanguage("erlang-repl",function(r){return{k:{special_functions:"spawn spawn_link self",reserved:"after and andalso|10 band begin bnot bor bsl bsr bxor case catch cond div end fun if let not of or orelse|10 query receive rem try when xor"},c:[{cN:"prompt",b:"^[0-9]+> ",r:10},r.C("%","$"),{cN:"number",b:"\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)",r:0},r.ASM,r.QSM,{cN:"constant",b:"\\?(::)?([A-Z]\\w*(::)?)+"},{cN:"arrow",b:"->"},{cN:"ok",b:"ok"},{cN:"exclamation_mark",b:"!"},{cN:"function_or_atom",b:"(\\b[a-z'][a-zA-Z0-9_']*:[a-z'][a-zA-Z0-9_']*)|(\\b[a-z'][a-zA-Z0-9_']*)",r:0},{cN:"variable",b:"[A-Z][a-zA-Z0-9_']*",r:0}]}});hljs.registerLanguage("nginx",function(e){var r={cN:"variable",v:[{b:/\$\d+/},{b:/\$\{/,e:/}/},{b:"[\\$\\@]"+e.UIR}]},b={eW:!0,l:"[a-z/_]+",k:{built_in:"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll"},r:0,i:"=>",c:[e.HCM,{cN:"string",c:[e.BE,r],v:[{b:/"/,e:/"/},{b:/'/,e:/'/}]},{cN:"url",b:"([a-z]+):/",e:"\\s",eW:!0,eE:!0,c:[r]},{cN:"regexp",c:[e.BE,r],v:[{b:"\\s\\^",e:"\\s|{|;",rE:!0},{b:"~\\*?\\s+",e:"\\s|{|;",rE:!0},{b:"\\*(\\.[a-z\\-]+)+"},{b:"([a-z\\-]+\\.)+\\*"}]},{cN:"number",b:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{cN:"number",b:"\\b\\d+[kKmMgGdshdwy]*\\b",r:0},r]};return{aliases:["nginxconf"],c:[e.HCM,{b:e.UIR+"\\s",e:";|{",rB:!0,c:[{cN:"title",b:e.UIR,starts:b}],r:0}],i:"[^\\s\\}]"}});hljs.registerLanguage("mathematica",function(e){return{aliases:["mma"],l:"(\\$|\\b)"+e.IR+"\\b",k:"AbelianGroup Abort AbortKernels AbortProtect Above Abs Absolute AbsoluteCorrelation AbsoluteCorrelationFunction AbsoluteCurrentValue AbsoluteDashing AbsoluteFileName AbsoluteOptions AbsolutePointSize AbsoluteThickness AbsoluteTime AbsoluteTiming AccountingForm Accumulate Accuracy AccuracyGoal ActionDelay ActionMenu ActionMenuBox ActionMenuBoxOptions Active ActiveItem ActiveStyle AcyclicGraphQ AddOnHelpPath AddTo AdjacencyGraph AdjacencyList AdjacencyMatrix AdjustmentBox AdjustmentBoxOptions AdjustTimeSeriesForecast AffineTransform After AiryAi AiryAiPrime AiryAiZero AiryBi AiryBiPrime AiryBiZero AlgebraicIntegerQ AlgebraicNumber AlgebraicNumberDenominator AlgebraicNumberNorm AlgebraicNumberPolynomial AlgebraicNumberTrace AlgebraicRules AlgebraicRulesData Algebraics AlgebraicUnitQ Alignment AlignmentMarker AlignmentPoint All AllowedDimensions AllowGroupClose AllowInlineCells AllowKernelInitialization AllowReverseGroupClose AllowScriptLevelChange AlphaChannel AlternatingGroup AlternativeHypothesis Alternatives AmbientLight Analytic AnchoredSearch And AndersonDarlingTest AngerJ AngleBracket AngularGauge Animate AnimationCycleOffset AnimationCycleRepetitions AnimationDirection AnimationDisplayTime AnimationRate AnimationRepetitions AnimationRunning Animator AnimatorBox AnimatorBoxOptions AnimatorElements Annotation Annuity AnnuityDue Antialiasing Antisymmetric Apart ApartSquareFree Appearance AppearanceElements AppellF1 Append AppendTo Apply ArcCos ArcCosh ArcCot ArcCoth ArcCsc ArcCsch ArcSec ArcSech ArcSin ArcSinDistribution ArcSinh ArcTan ArcTanh Arg ArgMax ArgMin ArgumentCountQ ARIMAProcess ArithmeticGeometricMean ARMAProcess ARProcess Array ArrayComponents ArrayDepth ArrayFlatten ArrayPad ArrayPlot ArrayQ ArrayReshape ArrayRules Arrays Arrow Arrow3DBox ArrowBox Arrowheads AspectRatio AspectRatioFixed Assert Assuming Assumptions AstronomicalData Asynchronous AsynchronousTaskObject AsynchronousTasks AtomQ Attributes AugmentedSymmetricPolynomial AutoAction AutoDelete AutoEvaluateEvents AutoGeneratedPackage AutoIndent AutoIndentSpacings AutoItalicWords AutoloadPath AutoMatch Automatic AutomaticImageSize AutoMultiplicationSymbol AutoNumberFormatting AutoOpenNotebooks AutoOpenPalettes AutorunSequencing AutoScaling AutoScroll AutoSpacing AutoStyleOptions AutoStyleWords Axes AxesEdge AxesLabel AxesOrigin AxesStyle Axis BabyMonsterGroupB Back Background BackgroundTasksSettings Backslash Backsubstitution Backward Band BandpassFilter BandstopFilter BarabasiAlbertGraphDistribution BarChart BarChart3D BarLegend BarlowProschanImportance BarnesG BarOrigin BarSpacing BartlettHannWindow BartlettWindow BaseForm Baseline BaselinePosition BaseStyle BatesDistribution BattleLemarieWavelet Because BeckmannDistribution Beep Before Begin BeginDialogPacket BeginFrontEndInteractionPacket BeginPackage BellB BellY Below BenfordDistribution BeniniDistribution BenktanderGibratDistribution BenktanderWeibullDistribution BernoulliB BernoulliDistribution BernoulliGraphDistribution BernoulliProcess BernsteinBasis BesselFilterModel BesselI BesselJ BesselJZero BesselK BesselY BesselYZero Beta BetaBinomialDistribution BetaDistribution BetaNegativeBinomialDistribution BetaPrimeDistribution BetaRegularized BetweennessCentrality BezierCurve BezierCurve3DBox BezierCurve3DBoxOptions BezierCurveBox BezierCurveBoxOptions BezierFunction BilateralFilter Binarize BinaryFormat BinaryImageQ BinaryRead BinaryReadList BinaryWrite BinCounts BinLists Binomial BinomialDistribution BinomialProcess BinormalDistribution BiorthogonalSplineWavelet BipartiteGraphQ BirnbaumImportance BirnbaumSaundersDistribution BitAnd BitClear BitGet BitLength BitNot BitOr BitSet BitShiftLeft BitShiftRight BitXor Black BlackmanHarrisWindow BlackmanNuttallWindow BlackmanWindow Blank BlankForm BlankNullSequence BlankSequence Blend Block BlockRandom BlomqvistBeta BlomqvistBetaTest Blue Blur BodePlot BohmanWindow Bold Bookmarks Boole BooleanConsecutiveFunction BooleanConvert BooleanCountingFunction BooleanFunction BooleanGraph BooleanMaxterms BooleanMinimize BooleanMinterms Booleans BooleanTable BooleanVariables BorderDimensions BorelTannerDistribution Bottom BottomHatTransform BoundaryStyle Bounds Box BoxBaselineShift BoxData BoxDimensions Boxed Boxes BoxForm BoxFormFormatTypes BoxFrame BoxID BoxMargins BoxMatrix BoxRatios BoxRotation BoxRotationPoint BoxStyle BoxWhiskerChart Bra BracketingBar BraKet BrayCurtisDistance BreadthFirstScan Break Brown BrownForsytheTest BrownianBridgeProcess BrowserCategory BSplineBasis BSplineCurve BSplineCurve3DBox BSplineCurveBox BSplineCurveBoxOptions BSplineFunction BSplineSurface BSplineSurface3DBox BubbleChart BubbleChart3D BubbleScale BubbleSizes BulletGauge BusinessDayQ ButterflyGraph ButterworthFilterModel Button ButtonBar ButtonBox ButtonBoxOptions ButtonCell ButtonContents ButtonData ButtonEvaluator ButtonExpandable ButtonFrame ButtonFunction ButtonMargins ButtonMinHeight ButtonNote ButtonNotebook ButtonSource ButtonStyle ButtonStyleMenuListing Byte ByteCount ByteOrdering C CachedValue CacheGraphics CalendarData CalendarType CallPacket CanberraDistance Cancel CancelButton CandlestickChart Cap CapForm CapitalDifferentialD CardinalBSplineBasis CarmichaelLambda Cases Cashflow Casoratian Catalan CatalanNumber Catch CauchyDistribution CauchyWindow CayleyGraph CDF CDFDeploy CDFInformation CDFWavelet Ceiling Cell CellAutoOverwrite CellBaseline CellBoundingBox CellBracketOptions CellChangeTimes CellContents CellContext CellDingbat CellDynamicExpression CellEditDuplicate CellElementsBoundingBox CellElementSpacings CellEpilog CellEvaluationDuplicate CellEvaluationFunction CellEventActions CellFrame CellFrameColor CellFrameLabelMargins CellFrameLabels CellFrameMargins CellGroup CellGroupData CellGrouping CellGroupingRules CellHorizontalScrolling CellID CellLabel CellLabelAutoDelete CellLabelMargins CellLabelPositioning CellMargins CellObject CellOpen CellPrint CellProlog Cells CellSize CellStyle CellTags CellularAutomaton CensoredDistribution Censoring Center CenterDot CentralMoment CentralMomentGeneratingFunction CForm ChampernowneNumber ChanVeseBinarize Character CharacterEncoding CharacterEncodingsPath CharacteristicFunction CharacteristicPolynomial CharacterRange Characters ChartBaseStyle ChartElementData ChartElementDataFunction ChartElementFunction ChartElements ChartLabels ChartLayout ChartLegends ChartStyle Chebyshev1FilterModel Chebyshev2FilterModel ChebyshevDistance ChebyshevT ChebyshevU Check CheckAbort CheckAll Checkbox CheckboxBar CheckboxBox CheckboxBoxOptions ChemicalData ChessboardDistance ChiDistribution ChineseRemainder ChiSquareDistribution ChoiceButtons ChoiceDialog CholeskyDecomposition Chop Circle CircleBox CircleDot CircleMinus CirclePlus CircleTimes CirculantGraph CityData Clear ClearAll ClearAttributes ClearSystemCache ClebschGordan ClickPane Clip ClipboardNotebook ClipFill ClippingStyle ClipPlanes ClipRange Clock ClockGauge ClockwiseContourIntegral Close Closed CloseKernels ClosenessCentrality Closing ClosingAutoSave ClosingEvent ClusteringComponents CMYKColor Coarse Coefficient CoefficientArrays CoefficientDomain CoefficientList CoefficientRules CoifletWavelet Collect Colon ColonForm ColorCombine ColorConvert ColorData ColorDataFunction ColorFunction ColorFunctionScaling Colorize ColorNegate ColorOutput ColorProfileData ColorQuantize ColorReplace ColorRules ColorSelectorSettings ColorSeparate ColorSetter ColorSetterBox ColorSetterBoxOptions ColorSlider ColorSpace Column ColumnAlignments ColumnBackgrounds ColumnForm ColumnLines ColumnsEqual ColumnSpacings ColumnWidths CommonDefaultFormatTypes Commonest CommonestFilter CommonUnits CommunityBoundaryStyle CommunityGraphPlot CommunityLabels CommunityRegionStyle CompatibleUnitQ CompilationOptions CompilationTarget Compile Compiled CompiledFunction Complement CompleteGraph CompleteGraphQ CompleteKaryTree CompletionsListPacket Complex Complexes ComplexExpand ComplexInfinity ComplexityFunction ComponentMeasurements ComponentwiseContextMenu Compose ComposeList ComposeSeries Composition CompoundExpression CompoundPoissonDistribution CompoundPoissonProcess CompoundRenewalProcess Compress CompressedData Condition ConditionalExpression Conditioned Cone ConeBox ConfidenceLevel ConfidenceRange ConfidenceTransform ConfigurationPath Congruent Conjugate ConjugateTranspose Conjunction Connect ConnectedComponents ConnectedGraphQ ConnesWindow ConoverTest ConsoleMessage ConsoleMessagePacket ConsolePrint Constant ConstantArray Constants ConstrainedMax ConstrainedMin ContentPadding ContentsBoundingBox ContentSelectable ContentSize Context ContextMenu Contexts ContextToFilename ContextToFileName Continuation Continue ContinuedFraction ContinuedFractionK ContinuousAction ContinuousMarkovProcess ContinuousTimeModelQ ContinuousWaveletData ContinuousWaveletTransform ContourDetect ContourGraphics ContourIntegral ContourLabels ContourLines ContourPlot ContourPlot3D Contours ContourShading ContourSmoothing ContourStyle ContraharmonicMean Control ControlActive ControlAlignment ControllabilityGramian ControllabilityMatrix ControllableDecomposition ControllableModelQ ControllerDuration ControllerInformation ControllerInformationData ControllerLinking ControllerManipulate ControllerMethod ControllerPath ControllerState ControlPlacement ControlsRendering ControlType Convergents ConversionOptions ConversionRules ConvertToBitmapPacket ConvertToPostScript ConvertToPostScriptPacket Convolve ConwayGroupCo1 ConwayGroupCo2 ConwayGroupCo3 CoordinateChartData CoordinatesToolOptions CoordinateTransform CoordinateTransformData CoprimeQ Coproduct CopulaDistribution Copyable CopyDirectory CopyFile CopyTag CopyToClipboard CornerFilter CornerNeighbors Correlation CorrelationDistance CorrelationFunction CorrelationTest Cos Cosh CoshIntegral CosineDistance CosineWindow CosIntegral Cot Coth Count CounterAssignments CounterBox CounterBoxOptions CounterClockwiseContourIntegral CounterEvaluator CounterFunction CounterIncrements CounterStyle CounterStyleMenuListing CountRoots CountryData Covariance CovarianceEstimatorFunction CovarianceFunction CoxianDistribution CoxIngersollRossProcess CoxModel CoxModelFit CramerVonMisesTest CreateArchive CreateDialog CreateDirectory CreateDocument CreateIntermediateDirectories CreatePalette CreatePalettePacket CreateScheduledTask CreateTemporary CreateWindow CriticalityFailureImportance CriticalitySuccessImportance CriticalSection Cross CrossingDetect CrossMatrix Csc Csch CubeRoot Cubics Cuboid CuboidBox Cumulant CumulantGeneratingFunction Cup CupCap Curl CurlyDoubleQuote CurlyQuote CurrentImage CurrentlySpeakingPacket CurrentValue CurvatureFlowFilter CurveClosed Cyan CycleGraph CycleIndexPolynomial Cycles CyclicGroup Cyclotomic Cylinder CylinderBox CylindricalDecomposition D DagumDistribution DamerauLevenshteinDistance DampingFactor Darker Dashed Dashing DataCompression DataDistribution DataRange DataReversed Date DateDelimiters DateDifference DateFunction DateList DateListLogPlot DateListPlot DatePattern DatePlus DateRange DateString DateTicksFormat DaubechiesWavelet DavisDistribution DawsonF DayCount DayCountConvention DayMatchQ DayName DayPlus DayRange DayRound DeBruijnGraph Debug DebugTag Decimal DeclareKnownSymbols DeclarePackage Decompose Decrement DedekindEta Default DefaultAxesStyle DefaultBaseStyle DefaultBoxStyle DefaultButton DefaultColor DefaultControlPlacement DefaultDuplicateCellStyle DefaultDuration DefaultElement DefaultFaceGridsStyle DefaultFieldHintStyle DefaultFont DefaultFontProperties DefaultFormatType DefaultFormatTypeForStyle DefaultFrameStyle DefaultFrameTicksStyle DefaultGridLinesStyle DefaultInlineFormatType DefaultInputFormatType DefaultLabelStyle DefaultMenuStyle DefaultNaturalLanguage DefaultNewCellStyle DefaultNewInlineCellStyle DefaultNotebook DefaultOptions DefaultOutputFormatType DefaultStyle DefaultStyleDefinitions DefaultTextFormatType DefaultTextInlineFormatType DefaultTicksStyle DefaultTooltipStyle DefaultValues Defer DefineExternal DefineInputStreamMethod DefineOutputStreamMethod Definition Degree DegreeCentrality DegreeGraphDistribution DegreeLexicographic DegreeReverseLexicographic Deinitialization Del Deletable Delete DeleteBorderComponents DeleteCases DeleteContents DeleteDirectory DeleteDuplicates DeleteFile DeleteSmallComponents DeleteWithContents DeletionWarning Delimiter DelimiterFlashTime DelimiterMatching Delimiters Denominator DensityGraphics DensityHistogram DensityPlot DependentVariables Deploy Deployed Depth DepthFirstScan Derivative DerivativeFilter DescriptorStateSpace DesignMatrix Det DGaussianWavelet DiacriticalPositioning Diagonal DiagonalMatrix Dialog DialogIndent DialogInput DialogLevel DialogNotebook DialogProlog DialogReturn DialogSymbols Diamond DiamondMatrix DiceDissimilarity DictionaryLookup DifferenceDelta DifferenceOrder DifferenceRoot DifferenceRootReduce Differences DifferentialD DifferentialRoot DifferentialRootReduce DifferentiatorFilter DigitBlock DigitBlockMinimum DigitCharacter DigitCount DigitQ DihedralGroup Dilation Dimensions DiracComb DiracDelta DirectedEdge DirectedEdges DirectedGraph DirectedGraphQ DirectedInfinity Direction Directive Directory DirectoryName DirectoryQ DirectoryStack DirichletCharacter DirichletConvolve DirichletDistribution DirichletL DirichletTransform DirichletWindow DisableConsolePrintPacket DiscreteChirpZTransform DiscreteConvolve DiscreteDelta DiscreteHadamardTransform DiscreteIndicator DiscreteLQEstimatorGains DiscreteLQRegulatorGains DiscreteLyapunovSolve DiscreteMarkovProcess DiscretePlot DiscretePlot3D DiscreteRatio DiscreteRiccatiSolve DiscreteShift DiscreteTimeModelQ DiscreteUniformDistribution DiscreteVariables DiscreteWaveletData DiscreteWaveletPacketTransform DiscreteWaveletTransform Discriminant Disjunction Disk DiskBox DiskMatrix Dispatch DispersionEstimatorFunction Display DisplayAllSteps DisplayEndPacket DisplayFlushImagePacket DisplayForm DisplayFunction DisplayPacket DisplayRules DisplaySetSizePacket DisplayString DisplayTemporary DisplayWith DisplayWithRef DisplayWithVariable DistanceFunction DistanceTransform Distribute Distributed DistributedContexts DistributeDefinitions DistributionChart DistributionDomain DistributionFitTest DistributionParameterAssumptions DistributionParameterQ Dithering Div Divergence Divide DivideBy Dividers Divisible Divisors DivisorSigma DivisorSum DMSList DMSString Do DockedCells DocumentNotebook DominantColors DOSTextFormat Dot DotDashed DotEqual Dotted DoubleBracketingBar DoubleContourIntegral DoubleDownArrow DoubleLeftArrow DoubleLeftRightArrow DoubleLeftTee DoubleLongLeftArrow DoubleLongLeftRightArrow DoubleLongRightArrow DoubleRightArrow DoubleRightTee DoubleUpArrow DoubleUpDownArrow DoubleVerticalBar DoublyInfinite Down DownArrow DownArrowBar DownArrowUpArrow DownLeftRightVector DownLeftTeeVector DownLeftVector DownLeftVectorBar DownRightTeeVector DownRightVector DownRightVectorBar Downsample DownTee DownTeeArrow DownValues DragAndDrop DrawEdges DrawFrontFaces DrawHighlighted Drop DSolve Dt DualLinearProgramming DualSystemsModel DumpGet DumpSave DuplicateFreeQ Dynamic DynamicBox DynamicBoxOptions DynamicEvaluationTimeout DynamicLocation DynamicModule DynamicModuleBox DynamicModuleBoxOptions DynamicModuleParent DynamicModuleValues DynamicName DynamicNamespace DynamicReference DynamicSetting DynamicUpdating DynamicWrapper DynamicWrapperBox DynamicWrapperBoxOptions E EccentricityCentrality EdgeAdd EdgeBetweennessCentrality EdgeCapacity EdgeCapForm EdgeColor EdgeConnectivity EdgeCost EdgeCount EdgeCoverQ EdgeDashing EdgeDelete EdgeDetect EdgeForm EdgeIndex EdgeJoinForm EdgeLabeling EdgeLabels EdgeLabelStyle EdgeList EdgeOpacity EdgeQ EdgeRenderingFunction EdgeRules EdgeShapeFunction EdgeStyle EdgeThickness EdgeWeight Editable EditButtonSettings EditCellTagsSettings EditDistance EffectiveInterest Eigensystem Eigenvalues EigenvectorCentrality Eigenvectors Element ElementData Eliminate EliminationOrder EllipticE EllipticExp EllipticExpPrime EllipticF EllipticFilterModel EllipticK EllipticLog EllipticNomeQ EllipticPi EllipticReducedHalfPeriods EllipticTheta EllipticThetaPrime EmitSound EmphasizeSyntaxErrors EmpiricalDistribution Empty EmptyGraphQ EnableConsolePrintPacket Enabled Encode End EndAdd EndDialogPacket EndFrontEndInteractionPacket EndOfFile EndOfLine EndOfString EndPackage EngineeringForm Enter EnterExpressionPacket EnterTextPacket Entropy EntropyFilter Environment Epilog Equal EqualColumns EqualRows EqualTilde EquatedTo Equilibrium EquirippleFilterKernel Equivalent Erf Erfc Erfi ErlangB ErlangC ErlangDistribution Erosion ErrorBox ErrorBoxOptions ErrorNorm ErrorPacket ErrorsDialogSettings EstimatedDistribution EstimatedProcess EstimatorGains EstimatorRegulator EuclideanDistance EulerE EulerGamma EulerianGraphQ EulerPhi Evaluatable Evaluate Evaluated EvaluatePacket EvaluationCell EvaluationCompletionAction EvaluationElements EvaluationMode EvaluationMonitor EvaluationNotebook EvaluationObject EvaluationOrder Evaluator EvaluatorNames EvenQ EventData EventEvaluator EventHandler EventHandlerTag EventLabels ExactBlackmanWindow ExactNumberQ ExactRootIsolation ExampleData Except ExcludedForms ExcludePods Exclusions ExclusionsStyle Exists Exit ExitDialog Exp Expand ExpandAll ExpandDenominator ExpandFileName ExpandNumerator Expectation ExpectationE ExpectedValue ExpGammaDistribution ExpIntegralE ExpIntegralEi Exponent ExponentFunction ExponentialDistribution ExponentialFamily ExponentialGeneratingFunction ExponentialMovingAverage ExponentialPowerDistribution ExponentPosition ExponentStep Export ExportAutoReplacements ExportPacket ExportString Expression ExpressionCell ExpressionPacket ExpToTrig ExtendedGCD Extension ExtentElementFunction ExtentMarkers ExtentSize ExternalCall ExternalDataCharacterEncoding Extract ExtractArchive ExtremeValueDistribution FaceForm FaceGrids FaceGridsStyle Factor FactorComplete Factorial Factorial2 FactorialMoment FactorialMomentGeneratingFunction FactorialPower FactorInteger FactorList FactorSquareFree FactorSquareFreeList FactorTerms FactorTermsList Fail FailureDistribution False FARIMAProcess FEDisableConsolePrintPacket FeedbackSector FeedbackSectorStyle FeedbackType FEEnableConsolePrintPacket Fibonacci FieldHint FieldHintStyle FieldMasked FieldSize File FileBaseName FileByteCount FileDate FileExistsQ FileExtension FileFormat FileHash FileInformation FileName FileNameDepth FileNameDialogSettings FileNameDrop FileNameJoin FileNames FileNameSetter FileNameSplit FileNameTake FilePrint FileType FilledCurve FilledCurveBox Filling FillingStyle FillingTransform FilterRules FinancialBond FinancialData FinancialDerivative FinancialIndicator Find FindArgMax FindArgMin FindClique FindClusters FindCurvePath FindDistributionParameters FindDivisions FindEdgeCover FindEdgeCut FindEulerianCycle FindFaces FindFile FindFit FindGeneratingFunction FindGeoLocation FindGeometricTransform FindGraphCommunities FindGraphIsomorphism FindGraphPartition FindHamiltonianCycle FindIndependentEdgeSet FindIndependentVertexSet FindInstance FindIntegerNullVector FindKClan FindKClique FindKClub FindKPlex FindLibrary FindLinearRecurrence FindList FindMaximum FindMaximumFlow FindMaxValue FindMinimum FindMinimumCostFlow FindMinimumCut FindMinValue FindPermutation FindPostmanTour FindProcessParameters FindRoot FindSequenceFunction FindSettings FindShortestPath FindShortestTour FindThreshold FindVertexCover FindVertexCut Fine FinishDynamic FiniteAbelianGroupCount FiniteGroupCount FiniteGroupData First FirstPassageTimeDistribution FischerGroupFi22 FischerGroupFi23 FischerGroupFi24Prime FisherHypergeometricDistribution FisherRatioTest FisherZDistribution Fit FitAll FittedModel FixedPoint FixedPointList FlashSelection Flat Flatten FlattenAt FlatTopWindow FlipView Floor FlushPrintOutputPacket Fold FoldList Font FontColor FontFamily FontForm FontName FontOpacity FontPostScriptName FontProperties FontReencoding FontSize FontSlant FontSubstitutions FontTracking FontVariations FontWeight For ForAll Format FormatRules FormatType FormatTypeAutoConvert FormatValues FormBox FormBoxOptions FortranForm Forward ForwardBackward Fourier FourierCoefficient FourierCosCoefficient FourierCosSeries FourierCosTransform FourierDCT FourierDCTFilter FourierDCTMatrix FourierDST FourierDSTMatrix FourierMatrix FourierParameters FourierSequenceTransform FourierSeries FourierSinCoefficient FourierSinSeries FourierSinTransform FourierTransform FourierTrigSeries FractionalBrownianMotionProcess FractionalPart FractionBox FractionBoxOptions FractionLine Frame FrameBox FrameBoxOptions Framed FrameInset FrameLabel Frameless FrameMargins FrameStyle FrameTicks FrameTicksStyle FRatioDistribution FrechetDistribution FreeQ FrequencySamplingFilterKernel FresnelC FresnelS Friday FrobeniusNumber FrobeniusSolve FromCharacterCode FromCoefficientRules FromContinuedFraction FromDate FromDigits FromDMS Front FrontEndDynamicExpression FrontEndEventActions FrontEndExecute FrontEndObject FrontEndResource FrontEndResourceString FrontEndStackSize FrontEndToken FrontEndTokenExecute FrontEndValueCache FrontEndVersion FrontFaceColor FrontFaceOpacity Full FullAxes FullDefinition FullForm FullGraphics FullOptions FullSimplify Function FunctionExpand FunctionInterpolation FunctionSpace FussellVeselyImportance GaborFilter GaborMatrix GaborWavelet GainMargins GainPhaseMargins Gamma GammaDistribution GammaRegularized GapPenalty Gather GatherBy GaugeFaceElementFunction GaugeFaceStyle GaugeFrameElementFunction GaugeFrameSize GaugeFrameStyle GaugeLabels GaugeMarkers GaugeStyle GaussianFilter GaussianIntegers GaussianMatrix GaussianWindow GCD GegenbauerC General GeneralizedLinearModelFit GenerateConditions GeneratedCell GeneratedParameters GeneratingFunction Generic GenericCylindricalDecomposition GenomeData GenomeLookup GeodesicClosing GeodesicDilation GeodesicErosion GeodesicOpening GeoDestination GeodesyData GeoDirection GeoDistance GeoGridPosition GeometricBrownianMotionProcess GeometricDistribution GeometricMean GeometricMeanFilter GeometricTransformation GeometricTransformation3DBox GeometricTransformation3DBoxOptions GeometricTransformationBox GeometricTransformationBoxOptions GeoPosition GeoPositionENU GeoPositionXYZ GeoProjectionData GestureHandler GestureHandlerTag Get GetBoundingBoxSizePacket GetContext GetEnvironment GetFileName GetFrontEndOptionsDataPacket GetLinebreakInformationPacket GetMenusPacket GetPageBreakInformationPacket Glaisher GlobalClusteringCoefficient GlobalPreferences GlobalSession Glow GoldenRatio GompertzMakehamDistribution GoodmanKruskalGamma GoodmanKruskalGammaTest Goto Grad Gradient GradientFilter GradientOrientationFilter Graph GraphAssortativity GraphCenter GraphComplement GraphData GraphDensity GraphDiameter GraphDifference GraphDisjointUnion GraphDistance GraphDistanceMatrix GraphElementData GraphEmbedding GraphHighlight GraphHighlightStyle GraphHub Graphics Graphics3D Graphics3DBox Graphics3DBoxOptions GraphicsArray GraphicsBaseline GraphicsBox GraphicsBoxOptions GraphicsColor GraphicsColumn GraphicsComplex GraphicsComplex3DBox GraphicsComplex3DBoxOptions GraphicsComplexBox GraphicsComplexBoxOptions GraphicsContents GraphicsData GraphicsGrid GraphicsGridBox GraphicsGroup GraphicsGroup3DBox GraphicsGroup3DBoxOptions GraphicsGroupBox GraphicsGroupBoxOptions GraphicsGrouping GraphicsHighlightColor GraphicsRow GraphicsSpacing GraphicsStyle GraphIntersection GraphLayout GraphLinkEfficiency GraphPeriphery GraphPlot GraphPlot3D GraphPower GraphPropertyDistribution GraphQ GraphRadius GraphReciprocity GraphRoot GraphStyle GraphUnion Gray GrayLevel GreatCircleDistance Greater GreaterEqual GreaterEqualLess GreaterFullEqual GreaterGreater GreaterLess GreaterSlantEqual GreaterTilde Green Grid GridBaseline GridBox GridBoxAlignment GridBoxBackground GridBoxDividers GridBoxFrame GridBoxItemSize GridBoxItemStyle GridBoxOptions GridBoxSpacings GridCreationSettings GridDefaultElement GridElementStyleOptions GridFrame GridFrameMargins GridGraph GridLines GridLinesStyle GroebnerBasis GroupActionBase GroupCentralizer GroupElementFromWord GroupElementPosition GroupElementQ GroupElements GroupElementToWord GroupGenerators GroupMultiplicationTable GroupOrbits GroupOrder GroupPageBreakWithin GroupSetwiseStabilizer GroupStabilizer GroupStabilizerChain Gudermannian GumbelDistribution HaarWavelet HadamardMatrix HalfNormalDistribution HamiltonianGraphQ HammingDistance HammingWindow HankelH1 HankelH2 HankelMatrix HannPoissonWindow HannWindow HaradaNortonGroupHN HararyGraph HarmonicMean HarmonicMeanFilter HarmonicNumber Hash HashTable Haversine HazardFunction Head HeadCompose Heads HeavisideLambda HeavisidePi HeavisideTheta HeldGroupHe HeldPart HelpBrowserLookup HelpBrowserNotebook HelpBrowserSettings HermiteDecomposition HermiteH HermitianMatrixQ HessenbergDecomposition Hessian HexadecimalCharacter Hexahedron HexahedronBox HexahedronBoxOptions HiddenSurface HighlightGraph HighlightImage HighpassFilter HigmanSimsGroupHS HilbertFilter HilbertMatrix Histogram Histogram3D HistogramDistribution HistogramList HistogramTransform HistogramTransformInterpolation HitMissTransform HITSCentrality HodgeDual HoeffdingD HoeffdingDTest Hold HoldAll HoldAllComplete HoldComplete HoldFirst HoldForm HoldPattern HoldRest HolidayCalendar HomeDirectory HomePage Horizontal HorizontalForm HorizontalGauge HorizontalScrollPosition HornerForm HotellingTSquareDistribution HoytDistribution HTMLSave Hue HumpDownHump HumpEqual HurwitzLerchPhi HurwitzZeta HyperbolicDistribution HypercubeGraph HyperexponentialDistribution Hyperfactorial Hypergeometric0F1 Hypergeometric0F1Regularized Hypergeometric1F1 Hypergeometric1F1Regularized Hypergeometric2F1 Hypergeometric2F1Regularized HypergeometricDistribution HypergeometricPFQ HypergeometricPFQRegularized HypergeometricU Hyperlink HyperlinkCreationSettings Hyphenation HyphenationOptions HypoexponentialDistribution HypothesisTestData I Identity IdentityMatrix If IgnoreCase Im Image Image3D Image3DSlices ImageAccumulate ImageAdd ImageAdjust ImageAlign ImageApply ImageAspectRatio ImageAssemble ImageCache ImageCacheValid ImageCapture ImageChannels ImageClip ImageColorSpace ImageCompose ImageConvolve ImageCooccurrence ImageCorners ImageCorrelate ImageCorrespondingPoints ImageCrop ImageData ImageDataPacket ImageDeconvolve ImageDemosaic ImageDifference ImageDimensions ImageDistance ImageEffect ImageFeatureTrack ImageFileApply ImageFileFilter ImageFileScan ImageFilter ImageForestingComponents ImageForwardTransformation ImageHistogram ImageKeypoints ImageLevels ImageLines ImageMargins ImageMarkers ImageMeasurements ImageMultiply ImageOffset ImagePad ImagePadding ImagePartition ImagePeriodogram ImagePerspectiveTransformation ImageQ ImageRangeCache ImageReflect ImageRegion ImageResize ImageResolution ImageRotate ImageRotated ImageScaled ImageScan ImageSize ImageSizeAction ImageSizeCache ImageSizeMultipliers ImageSizeRaw ImageSubtract ImageTake ImageTransformation ImageTrim ImageType ImageValue ImageValuePositions Implies Import ImportAutoReplacements ImportString ImprovementImportance In IncidenceGraph IncidenceList IncidenceMatrix IncludeConstantBasis IncludeFileExtension IncludePods IncludeSingularTerm Increment Indent IndentingNewlineSpacings IndentMaxFraction IndependenceTest IndependentEdgeSetQ IndependentUnit IndependentVertexSetQ Indeterminate IndexCreationOptions Indexed IndexGraph IndexTag Inequality InexactNumberQ InexactNumbers Infinity Infix Information Inherited InheritScope Initialization InitializationCell InitializationCellEvaluation InitializationCellWarning InlineCounterAssignments InlineCounterIncrements InlineRules Inner Inpaint Input InputAliases InputAssumptions InputAutoReplacements InputField InputFieldBox InputFieldBoxOptions InputForm InputGrouping InputNamePacket InputNotebook InputPacket InputSettings InputStream InputString InputStringPacket InputToBoxFormPacket Insert InsertionPointObject InsertResults Inset Inset3DBox Inset3DBoxOptions InsetBox InsetBoxOptions Install InstallService InString Integer IntegerDigits IntegerExponent IntegerLength IntegerPart IntegerPartitions IntegerQ Integers IntegerString Integral Integrate Interactive InteractiveTradingChart Interlaced Interleaving InternallyBalancedDecomposition InterpolatingFunction InterpolatingPolynomial Interpolation InterpolationOrder InterpolationPoints InterpolationPrecision Interpretation InterpretationBox InterpretationBoxOptions InterpretationFunction InterpretTemplate InterquartileRange Interrupt InterruptSettings Intersection Interval IntervalIntersection IntervalMemberQ IntervalUnion Inverse InverseBetaRegularized InverseCDF InverseChiSquareDistribution InverseContinuousWaveletTransform InverseDistanceTransform InverseEllipticNomeQ InverseErf InverseErfc InverseFourier InverseFourierCosTransform InverseFourierSequenceTransform InverseFourierSinTransform InverseFourierTransform InverseFunction InverseFunctions InverseGammaDistribution InverseGammaRegularized InverseGaussianDistribution InverseGudermannian InverseHaversine InverseJacobiCD InverseJacobiCN InverseJacobiCS InverseJacobiDC InverseJacobiDN InverseJacobiDS InverseJacobiNC InverseJacobiND InverseJacobiNS InverseJacobiSC InverseJacobiSD InverseJacobiSN InverseLaplaceTransform InversePermutation InverseRadon InverseSeries InverseSurvivalFunction InverseWaveletTransform InverseWeierstrassP InverseZTransform Invisible InvisibleApplication InvisibleTimes IrreduciblePolynomialQ IsolatingInterval IsomorphicGraphQ IsotopeData Italic Item ItemBox ItemBoxOptions ItemSize ItemStyle ItoProcess JaccardDissimilarity JacobiAmplitude Jacobian JacobiCD JacobiCN JacobiCS JacobiDC JacobiDN JacobiDS JacobiNC JacobiND JacobiNS JacobiP JacobiSC JacobiSD JacobiSN JacobiSymbol JacobiZeta JankoGroupJ1 JankoGroupJ2 JankoGroupJ3 JankoGroupJ4 JarqueBeraALMTest JohnsonDistribution Join Joined JoinedCurve JoinedCurveBox JoinForm JordanDecomposition JordanModelDecomposition K KagiChart KaiserBesselWindow KaiserWindow KalmanEstimator KalmanFilter KarhunenLoeveDecomposition KaryTree KatzCentrality KCoreComponents KDistribution KelvinBei KelvinBer KelvinKei KelvinKer KendallTau KendallTauTest KernelExecute KernelMixtureDistribution KernelObject Kernels Ket Khinchin KirchhoffGraph KirchhoffMatrix KleinInvariantJ KnightTourGraph KnotData KnownUnitQ KolmogorovSmirnovTest KroneckerDelta KroneckerModelDecomposition KroneckerProduct KroneckerSymbol KuiperTest KumaraswamyDistribution Kurtosis KuwaharaFilter Label Labeled LabeledSlider LabelingFunction LabelStyle LaguerreL LambdaComponents LambertW LanczosWindow LandauDistribution Language LanguageCategory LaplaceDistribution LaplaceTransform Laplacian LaplacianFilter LaplacianGaussianFilter Large Larger Last Latitude LatitudeLongitude LatticeData LatticeReduce Launch LaunchKernels LayeredGraphPlot LayerSizeFunction LayoutInformation LCM LeafCount LeapYearQ LeastSquares LeastSquaresFilterKernel Left LeftArrow LeftArrowBar LeftArrowRightArrow LeftDownTeeVector LeftDownVector LeftDownVectorBar LeftRightArrow LeftRightVector LeftTee LeftTeeArrow LeftTeeVector LeftTriangle LeftTriangleBar LeftTriangleEqual LeftUpDownVector LeftUpTeeVector LeftUpVector LeftUpVectorBar LeftVector LeftVectorBar LegendAppearance Legended LegendFunction LegendLabel LegendLayout LegendMargins LegendMarkers LegendMarkerSize LegendreP LegendreQ LegendreType Length LengthWhile LerchPhi Less LessEqual LessEqualGreater LessFullEqual LessGreater LessLess LessSlantEqual LessTilde LetterCharacter LetterQ Level LeveneTest LeviCivitaTensor LevyDistribution Lexicographic LibraryFunction LibraryFunctionError LibraryFunctionInformation LibraryFunctionLoad LibraryFunctionUnload LibraryLoad LibraryUnload LicenseID LiftingFilterData LiftingWaveletTransform LightBlue LightBrown LightCyan Lighter LightGray LightGreen Lighting LightingAngle LightMagenta LightOrange LightPink LightPurple LightRed LightSources LightYellow Likelihood Limit LimitsPositioning LimitsPositioningTokens LindleyDistribution Line Line3DBox LinearFilter LinearFractionalTransform LinearModelFit LinearOffsetFunction LinearProgramming LinearRecurrence LinearSolve LinearSolveFunction LineBox LineBreak LinebreakAdjustments LineBreakChart LineBreakWithin LineColor LineForm LineGraph LineIndent LineIndentMaxFraction LineIntegralConvolutionPlot LineIntegralConvolutionScale LineLegend LineOpacity LineSpacing LineWrapParts LinkActivate LinkClose LinkConnect LinkConnectedQ LinkCreate LinkError LinkFlush LinkFunction LinkHost LinkInterrupt LinkLaunch LinkMode LinkObject LinkOpen LinkOptions LinkPatterns LinkProtocol LinkRead LinkReadHeld LinkReadyQ Links LinkWrite LinkWriteHeld LiouvilleLambda List Listable ListAnimate ListContourPlot ListContourPlot3D ListConvolve ListCorrelate ListCurvePathPlot ListDeconvolve ListDensityPlot Listen ListFourierSequenceTransform ListInterpolation ListLineIntegralConvolutionPlot ListLinePlot ListLogLinearPlot ListLogLogPlot ListLogPlot ListPicker ListPickerBox ListPickerBoxBackground ListPickerBoxOptions ListPlay ListPlot ListPlot3D ListPointPlot3D ListPolarPlot ListQ ListStreamDensityPlot ListStreamPlot ListSurfacePlot3D ListVectorDensityPlot ListVectorPlot ListVectorPlot3D ListZTransform Literal LiteralSearch LocalClusteringCoefficient LocalizeVariables LocationEquivalenceTest LocationTest Locator LocatorAutoCreate LocatorBox LocatorBoxOptions LocatorCentering LocatorPane LocatorPaneBox LocatorPaneBoxOptions LocatorRegion Locked Log Log10 Log2 LogBarnesG LogGamma LogGammaDistribution LogicalExpand LogIntegral LogisticDistribution LogitModelFit LogLikelihood LogLinearPlot LogLogisticDistribution LogLogPlot LogMultinormalDistribution LogNormalDistribution LogPlot LogRankTest LogSeriesDistribution LongEqual Longest LongestAscendingSequence LongestCommonSequence LongestCommonSequencePositions LongestCommonSubsequence LongestCommonSubsequencePositions LongestMatch LongForm Longitude LongLeftArrow LongLeftRightArrow LongRightArrow Loopback LoopFreeGraphQ LowerCaseQ LowerLeftArrow LowerRightArrow LowerTriangularize LowpassFilter LQEstimatorGains LQGRegulator LQOutputRegulatorGains LQRegulatorGains LUBackSubstitution LucasL LuccioSamiComponents LUDecomposition LyapunovSolve LyonsGroupLy MachineID MachineName MachineNumberQ MachinePrecision MacintoshSystemPageSetup Magenta Magnification Magnify MainSolve MaintainDynamicCaches Majority MakeBoxes MakeExpression MakeRules MangoldtLambda ManhattanDistance Manipulate Manipulator MannWhitneyTest MantissaExponent Manual Map MapAll MapAt MapIndexed MAProcess MapThread MarcumQ MardiaCombinedTest MardiaKurtosisTest MardiaSkewnessTest MarginalDistribution MarkovProcessProperties Masking MatchingDissimilarity MatchLocalNameQ MatchLocalNames MatchQ Material MathematicaNotation MathieuC MathieuCharacteristicA MathieuCharacteristicB MathieuCharacteristicExponent MathieuCPrime MathieuGroupM11 MathieuGroupM12 MathieuGroupM22 MathieuGroupM23 MathieuGroupM24 MathieuS MathieuSPrime MathMLForm MathMLText Matrices MatrixExp MatrixForm MatrixFunction MatrixLog MatrixPlot MatrixPower MatrixQ MatrixRank Max MaxBend MaxDetect MaxExtraBandwidths MaxExtraConditions MaxFeatures MaxFilter Maximize MaxIterations MaxMemoryUsed MaxMixtureKernels MaxPlotPoints MaxPoints MaxRecursion MaxStableDistribution MaxStepFraction MaxSteps MaxStepSize MaxValue MaxwellDistribution McLaughlinGroupMcL Mean MeanClusteringCoefficient MeanDegreeConnectivity MeanDeviation MeanFilter MeanGraphDistance MeanNeighborDegree MeanShift MeanShiftFilter Median MedianDeviation MedianFilter Medium MeijerG MeixnerDistribution MemberQ MemoryConstrained MemoryInUse Menu MenuAppearance MenuCommandKey MenuEvaluator MenuItem MenuPacket MenuSortingValue MenuStyle MenuView MergeDifferences Mesh MeshFunctions MeshRange MeshShading MeshStyle Message MessageDialog MessageList MessageName MessageOptions MessagePacket Messages MessagesNotebook MetaCharacters MetaInformation Method MethodOptions MexicanHatWavelet MeyerWavelet Min MinDetect MinFilter MinimalPolynomial MinimalStateSpaceModel Minimize Minors MinRecursion MinSize MinStableDistribution Minus MinusPlus MinValue Missing MissingDataMethod MittagLefflerE MixedRadix MixedRadixQuantity MixtureDistribution Mod Modal Mode Modular ModularLambda Module Modulus MoebiusMu Moment Momentary MomentConvert MomentEvaluate MomentGeneratingFunction Monday Monitor MonomialList MonomialOrder MonsterGroupM MorletWavelet MorphologicalBinarize MorphologicalBranchPoints MorphologicalComponents MorphologicalEulerNumber MorphologicalGraph MorphologicalPerimeter MorphologicalTransform Most MouseAnnotation MouseAppearance MouseAppearanceTag MouseButtons Mouseover MousePointerNote MousePosition MovingAverage MovingMedian MoyalDistribution MultiedgeStyle MultilaunchWarning MultiLetterItalics MultiLetterStyle MultilineFunction Multinomial MultinomialDistribution MultinormalDistribution MultiplicativeOrder Multiplicity Multiselection MultivariateHypergeometricDistribution MultivariatePoissonDistribution MultivariateTDistribution N NakagamiDistribution NameQ Names NamespaceBox Nand NArgMax NArgMin NBernoulliB NCache NDSolve NDSolveValue Nearest NearestFunction NeedCurrentFrontEndPackagePacket NeedCurrentFrontEndSymbolsPacket NeedlemanWunschSimilarity Needs Negative NegativeBinomialDistribution NegativeMultinomialDistribution NeighborhoodGraph Nest NestedGreaterGreater NestedLessLess NestedScriptRules NestList NestWhile NestWhileList NevilleThetaC NevilleThetaD NevilleThetaN NevilleThetaS NewPrimitiveStyle NExpectation Next NextPrime NHoldAll NHoldFirst NHoldRest NicholsGridLines NicholsPlot NIntegrate NMaximize NMaxValue NMinimize NMinValue NominalVariables NonAssociative NoncentralBetaDistribution NoncentralChiSquareDistribution NoncentralFRatioDistribution NoncentralStudentTDistribution NonCommutativeMultiply NonConstants None NonlinearModelFit NonlocalMeansFilter NonNegative NonPositive Nor NorlundB Norm Normal NormalDistribution NormalGrouping Normalize NormalizedSquaredEuclideanDistance NormalsFunction NormFunction Not NotCongruent NotCupCap NotDoubleVerticalBar Notebook NotebookApply NotebookAutoSave NotebookClose NotebookConvertSettings NotebookCreate NotebookCreateReturnObject NotebookDefault NotebookDelete NotebookDirectory NotebookDynamicExpression NotebookEvaluate NotebookEventActions NotebookFileName NotebookFind NotebookFindReturnObject NotebookGet NotebookGetLayoutInformationPacket NotebookGetMisspellingsPacket NotebookInformation NotebookInterfaceObject NotebookLocate NotebookObject NotebookOpen NotebookOpenReturnObject NotebookPath NotebookPrint NotebookPut NotebookPutReturnObject NotebookRead NotebookResetGeneratedCells Notebooks NotebookSave NotebookSaveAs NotebookSelection NotebookSetupLayoutInformationPacket NotebooksMenu NotebookWrite NotElement NotEqualTilde NotExists NotGreater NotGreaterEqual NotGreaterFullEqual NotGreaterGreater NotGreaterLess NotGreaterSlantEqual NotGreaterTilde NotHumpDownHump NotHumpEqual NotLeftTriangle NotLeftTriangleBar NotLeftTriangleEqual NotLess NotLessEqual NotLessFullEqual NotLessGreater NotLessLess NotLessSlantEqual NotLessTilde NotNestedGreaterGreater NotNestedLessLess NotPrecedes NotPrecedesEqual NotPrecedesSlantEqual NotPrecedesTilde NotReverseElement NotRightTriangle NotRightTriangleBar NotRightTriangleEqual NotSquareSubset NotSquareSubsetEqual NotSquareSuperset NotSquareSupersetEqual NotSubset NotSubsetEqual NotSucceeds NotSucceedsEqual NotSucceedsSlantEqual NotSucceedsTilde NotSuperset NotSupersetEqual NotTilde NotTildeEqual NotTildeFullEqual NotTildeTilde NotVerticalBar NProbability NProduct NProductFactors NRoots NSolve NSum NSumTerms Null NullRecords NullSpace NullWords Number NumberFieldClassNumber NumberFieldDiscriminant NumberFieldFundamentalUnits NumberFieldIntegralBasis NumberFieldNormRepresentatives NumberFieldRegulator NumberFieldRootsOfUnity NumberFieldSignature NumberForm NumberFormat NumberMarks NumberMultiplier NumberPadding NumberPoint NumberQ NumberSeparator NumberSigns NumberString Numerator NumericFunction NumericQ NuttallWindow NValues NyquistGridLines NyquistPlot O ObservabilityGramian ObservabilityMatrix ObservableDecomposition ObservableModelQ OddQ Off Offset OLEData On ONanGroupON OneIdentity Opacity Open OpenAppend Opener OpenerBox OpenerBoxOptions OpenerView OpenFunctionInspectorPacket Opening OpenRead OpenSpecialOptions OpenTemporary OpenWrite Operate OperatingSystem OptimumFlowData Optional OptionInspectorSettings OptionQ Options OptionsPacket OptionsPattern OptionValue OptionValueBox OptionValueBoxOptions Or Orange Order OrderDistribution OrderedQ Ordering Orderless OrnsteinUhlenbeckProcess Orthogonalize Out Outer OutputAutoOverwrite OutputControllabilityMatrix OutputControllableModelQ OutputForm OutputFormData OutputGrouping OutputMathEditExpression OutputNamePacket OutputResponse OutputSizeLimit OutputStream Over OverBar OverDot Overflow OverHat Overlaps Overlay OverlayBox OverlayBoxOptions Overscript OverscriptBox OverscriptBoxOptions OverTilde OverVector OwenT OwnValues PackingMethod PaddedForm Padding PadeApproximant PadLeft PadRight PageBreakAbove PageBreakBelow PageBreakWithin PageFooterLines PageFooters PageHeaderLines PageHeaders PageHeight PageRankCentrality PageWidth PairedBarChart PairedHistogram PairedSmoothHistogram PairedTTest PairedZTest PaletteNotebook PalettePath Pane PaneBox PaneBoxOptions Panel PanelBox PanelBoxOptions Paneled PaneSelector PaneSelectorBox PaneSelectorBoxOptions PaperWidth ParabolicCylinderD ParagraphIndent ParagraphSpacing ParallelArray ParallelCombine ParallelDo ParallelEvaluate Parallelization Parallelize ParallelMap ParallelNeeds ParallelProduct ParallelSubmit ParallelSum ParallelTable ParallelTry Parameter ParameterEstimator ParameterMixtureDistribution ParameterVariables ParametricFunction ParametricNDSolve ParametricNDSolveValue ParametricPlot ParametricPlot3D ParentConnect ParentDirectory ParentForm Parenthesize ParentList ParetoDistribution Part PartialCorrelationFunction PartialD ParticleData Partition PartitionsP PartitionsQ ParzenWindow PascalDistribution PassEventsDown PassEventsUp Paste PasteBoxFormInlineCells PasteButton Path PathGraph PathGraphQ Pattern PatternSequence PatternTest PauliMatrix PaulWavelet Pause PausedTime PDF PearsonChiSquareTest PearsonCorrelationTest PearsonDistribution PerformanceGoal PeriodicInterpolation Periodogram PeriodogramArray PermutationCycles PermutationCyclesQ PermutationGroup PermutationLength PermutationList PermutationListQ PermutationMax PermutationMin PermutationOrder PermutationPower PermutationProduct PermutationReplace Permutations PermutationSupport Permute PeronaMalikFilter Perpendicular PERTDistribution PetersenGraph PhaseMargins Pi Pick PIDData PIDDerivativeFilter PIDFeedforward PIDTune Piecewise PiecewiseExpand PieChart PieChart3D PillaiTrace PillaiTraceTest Pink Pivoting PixelConstrained PixelValue PixelValuePositions Placed Placeholder PlaceholderReplace Plain PlanarGraphQ Play PlayRange Plot Plot3D Plot3Matrix PlotDivision PlotJoined PlotLabel PlotLayout PlotLegends PlotMarkers PlotPoints PlotRange PlotRangeClipping PlotRangePadding PlotRegion PlotStyle Plus PlusMinus Pochhammer PodStates PodWidth Point Point3DBox PointBox PointFigureChart PointForm PointLegend PointSize PoissonConsulDistribution PoissonDistribution PoissonProcess PoissonWindow PolarAxes PolarAxesOrigin PolarGridLines PolarPlot PolarTicks PoleZeroMarkers PolyaAeppliDistribution PolyGamma Polygon Polygon3DBox Polygon3DBoxOptions PolygonBox PolygonBoxOptions PolygonHoleScale PolygonIntersections PolygonScale PolyhedronData PolyLog PolynomialExtendedGCD PolynomialForm PolynomialGCD PolynomialLCM PolynomialMod PolynomialQ PolynomialQuotient PolynomialQuotientRemainder PolynomialReduce PolynomialRemainder Polynomials PopupMenu PopupMenuBox PopupMenuBoxOptions PopupView PopupWindow Position Positive PositiveDefiniteMatrixQ PossibleZeroQ Postfix PostScript Power PowerDistribution PowerExpand PowerMod PowerModList PowerSpectralDensity PowersRepresentations PowerSymmetricPolynomial Precedence PrecedenceForm Precedes PrecedesEqual PrecedesSlantEqual PrecedesTilde Precision PrecisionGoal PreDecrement PredictionRoot PreemptProtect PreferencesPath Prefix PreIncrement Prepend PrependTo PreserveImageOptions Previous PriceGraphDistribution PrimaryPlaceholder Prime PrimeNu PrimeOmega PrimePi PrimePowerQ PrimeQ Primes PrimeZetaP PrimitiveRoot PrincipalComponents PrincipalValue Print PrintAction PrintForm PrintingCopies PrintingOptions PrintingPageRange PrintingStartingPageNumber PrintingStyleEnvironment PrintPrecision PrintTemporary Prism PrismBox PrismBoxOptions PrivateCellOptions PrivateEvaluationOptions PrivateFontOptions PrivateFrontEndOptions PrivateNotebookOptions PrivatePaths Probability ProbabilityDistribution ProbabilityPlot ProbabilityPr ProbabilityScalePlot ProbitModelFit ProcessEstimator ProcessParameterAssumptions ProcessParameterQ ProcessStateDomain ProcessTimeDomain Product ProductDistribution ProductLog ProgressIndicator ProgressIndicatorBox ProgressIndicatorBoxOptions Projection Prolog PromptForm Properties Property PropertyList PropertyValue Proportion Proportional Protect Protected ProteinData Pruning PseudoInverse Purple Put PutAppend Pyramid PyramidBox PyramidBoxOptions QBinomial QFactorial QGamma QHypergeometricPFQ QPochhammer QPolyGamma QRDecomposition QuadraticIrrationalQ Quantile QuantilePlot Quantity QuantityForm QuantityMagnitude QuantityQ QuantityUnit Quartics QuartileDeviation Quartiles QuartileSkewness QueueingNetworkProcess QueueingProcess QueueProperties Quiet Quit Quotient QuotientRemainder RadialityCentrality RadicalBox RadicalBoxOptions RadioButton RadioButtonBar RadioButtonBox RadioButtonBoxOptions Radon RamanujanTau RamanujanTauL RamanujanTauTheta RamanujanTauZ Random RandomChoice RandomComplex RandomFunction RandomGraph RandomImage RandomInteger RandomPermutation RandomPrime RandomReal RandomSample RandomSeed RandomVariate RandomWalkProcess Range RangeFilter RangeSpecification RankedMax RankedMin Raster Raster3D Raster3DBox Raster3DBoxOptions RasterArray RasterBox RasterBoxOptions Rasterize RasterSize Rational RationalFunctions Rationalize Rationals Ratios Raw RawArray RawBoxes RawData RawMedium RayleighDistribution Re Read ReadList ReadProtected Real RealBlockDiagonalForm RealDigits RealExponent Reals Reap Record RecordLists RecordSeparators Rectangle RectangleBox RectangleBoxOptions RectangleChart RectangleChart3D RecurrenceFilter RecurrenceTable RecurringDigitsForm Red Reduce RefBox ReferenceLineStyle ReferenceMarkers ReferenceMarkerStyle Refine ReflectionMatrix ReflectionTransform Refresh RefreshRate RegionBinarize RegionFunction RegionPlot RegionPlot3D RegularExpression Regularization Reinstall Release ReleaseHold ReliabilityDistribution ReliefImage ReliefPlot Remove RemoveAlphaChannel RemoveAsynchronousTask Removed RemoveInputStreamMethod RemoveOutputStreamMethod RemoveProperty RemoveScheduledTask RenameDirectory RenameFile RenderAll RenderingOptions RenewalProcess RenkoChart Repeated RepeatedNull RepeatedString Replace ReplaceAll ReplaceHeldPart ReplaceImageValue ReplaceList ReplacePart ReplacePixelValue ReplaceRepeated Resampling Rescale RescalingTransform ResetDirectory ResetMenusPacket ResetScheduledTask Residue Resolve Rest Resultant ResumePacket Return ReturnExpressionPacket ReturnInputFormPacket ReturnPacket ReturnTextPacket Reverse ReverseBiorthogonalSplineWavelet ReverseElement ReverseEquilibrium ReverseGraph ReverseUpEquilibrium RevolutionAxis RevolutionPlot3D RGBColor RiccatiSolve RiceDistribution RidgeFilter RiemannR RiemannSiegelTheta RiemannSiegelZ Riffle Right RightArrow RightArrowBar RightArrowLeftArrow RightCosetRepresentative RightDownTeeVector RightDownVector RightDownVectorBar RightTee RightTeeArrow RightTeeVector RightTriangle RightTriangleBar RightTriangleEqual RightUpDownVector RightUpTeeVector RightUpVector RightUpVectorBar RightVector RightVectorBar RiskAchievementImportance RiskReductionImportance RogersTanimotoDissimilarity Root RootApproximant RootIntervals RootLocusPlot RootMeanSquare RootOfUnityQ RootReduce Roots RootSum Rotate RotateLabel RotateLeft RotateRight RotationAction RotationBox RotationBoxOptions RotationMatrix RotationTransform Round RoundImplies RoundingRadius Row RowAlignments RowBackgrounds RowBox RowHeights RowLines RowMinHeight RowReduce RowsEqual RowSpacings RSolve RudvalisGroupRu Rule RuleCondition RuleDelayed RuleForm RulerUnits Run RunScheduledTask RunThrough RuntimeAttributes RuntimeOptions RussellRaoDissimilarity SameQ SameTest SampleDepth SampledSoundFunction SampledSoundList SampleRate SamplingPeriod SARIMAProcess SARMAProcess SatisfiabilityCount SatisfiabilityInstances SatisfiableQ Saturday Save Saveable SaveAutoDelete SaveDefinitions SawtoothWave Scale Scaled ScaleDivisions ScaledMousePosition ScaleOrigin ScalePadding ScaleRanges ScaleRangeStyle ScalingFunctions ScalingMatrix ScalingTransform Scan ScheduledTaskActiveQ ScheduledTaskData ScheduledTaskObject ScheduledTasks SchurDecomposition ScientificForm ScreenRectangle ScreenStyleEnvironment ScriptBaselineShifts ScriptLevel ScriptMinSize ScriptRules ScriptSizeMultipliers Scrollbars ScrollingOptions ScrollPosition Sec Sech SechDistribution SectionGrouping SectorChart SectorChart3D SectorOrigin SectorSpacing SeedRandom Select Selectable SelectComponents SelectedCells SelectedNotebook Selection SelectionAnimate SelectionCell SelectionCellCreateCell SelectionCellDefaultStyle SelectionCellParentStyle SelectionCreateCell SelectionDebuggerTag SelectionDuplicateCell SelectionEvaluate SelectionEvaluateCreateCell SelectionMove SelectionPlaceholder SelectionSetStyle SelectWithContents SelfLoops SelfLoopStyle SemialgebraicComponentInstances SendMail Sequence SequenceAlignment SequenceForm SequenceHold SequenceLimit Series SeriesCoefficient SeriesData SessionTime Set SetAccuracy SetAlphaChannel SetAttributes Setbacks SetBoxFormNamesPacket SetDelayed SetDirectory SetEnvironment SetEvaluationNotebook SetFileDate SetFileLoadingContext SetNotebookStatusLine SetOptions SetOptionsPacket SetPrecision SetProperty SetSelectedNotebook SetSharedFunction SetSharedVariable SetSpeechParametersPacket SetStreamPosition SetSystemOptions Setter SetterBar SetterBox SetterBoxOptions Setting SetValue Shading Shallow ShannonWavelet ShapiroWilkTest Share Sharpen ShearingMatrix ShearingTransform ShenCastanMatrix Short ShortDownArrow Shortest ShortestMatch ShortestPathFunction ShortLeftArrow ShortRightArrow ShortUpArrow Show ShowAutoStyles ShowCellBracket ShowCellLabel ShowCellTags ShowClosedCellArea ShowContents ShowControls ShowCursorTracker ShowGroupOpenCloseIcon ShowGroupOpener ShowInvisibleCharacters ShowPageBreaks ShowPredictiveInterface ShowSelection ShowShortBoxForm ShowSpecialCharacters ShowStringCharacters ShowSyntaxStyles ShrinkingDelay ShrinkWrapBoundingBox SiegelTheta SiegelTukeyTest Sign Signature SignedRankTest SignificanceLevel SignPadding SignTest SimilarityRules SimpleGraph SimpleGraphQ Simplify Sin Sinc SinghMaddalaDistribution SingleEvaluation SingleLetterItalics SingleLetterStyle SingularValueDecomposition SingularValueList SingularValuePlot SingularValues Sinh SinhIntegral SinIntegral SixJSymbol Skeleton SkeletonTransform SkellamDistribution Skewness SkewNormalDistribution Skip SliceDistribution Slider Slider2D Slider2DBox Slider2DBoxOptions SliderBox SliderBoxOptions SlideView Slot SlotSequence Small SmallCircle Smaller SmithDelayCompensator SmithWatermanSimilarity SmoothDensityHistogram SmoothHistogram SmoothHistogram3D SmoothKernelDistribution SocialMediaData Socket SokalSneathDissimilarity Solve SolveAlways SolveDelayed Sort SortBy Sound SoundAndGraphics SoundNote SoundVolume Sow Space SpaceForm Spacer Spacings Span SpanAdjustments SpanCharacterRounding SpanFromAbove SpanFromBoth SpanFromLeft SpanLineThickness SpanMaxSize SpanMinSize SpanningCharacters SpanSymmetric SparseArray SpatialGraphDistribution Speak SpeakTextPacket SpearmanRankTest SpearmanRho Spectrogram SpectrogramArray Specularity SpellingCorrection SpellingDictionaries SpellingDictionariesPath SpellingOptions SpellingSuggestionsPacket Sphere SphereBox SphericalBesselJ SphericalBesselY SphericalHankelH1 SphericalHankelH2 SphericalHarmonicY SphericalPlot3D SphericalRegion SpheroidalEigenvalue SpheroidalJoiningFactor SpheroidalPS SpheroidalPSPrime SpheroidalQS SpheroidalQSPrime SpheroidalRadialFactor SpheroidalS1 SpheroidalS1Prime SpheroidalS2 SpheroidalS2Prime Splice SplicedDistribution SplineClosed SplineDegree SplineKnots SplineWeights Split SplitBy SpokenString Sqrt SqrtBox SqrtBoxOptions Square SquaredEuclideanDistance SquareFreeQ SquareIntersection SquaresR SquareSubset SquareSubsetEqual SquareSuperset SquareSupersetEqual SquareUnion SquareWave StabilityMargins StabilityMarginsStyle StableDistribution Stack StackBegin StackComplete StackInhibit StandardDeviation StandardDeviationFilter StandardForm Standardize StandbyDistribution Star StarGraph StartAsynchronousTask StartingStepSize StartOfLine StartOfString StartScheduledTask StartupSound StateDimensions StateFeedbackGains StateOutputEstimator StateResponse StateSpaceModel StateSpaceRealization StateSpaceTransform StationaryDistribution StationaryWaveletPacketTransform StationaryWaveletTransform StatusArea StatusCentrality StepMonitor StieltjesGamma StirlingS1 StirlingS2 StopAsynchronousTask StopScheduledTask StrataVariables StratonovichProcess StreamColorFunction StreamColorFunctionScaling StreamDensityPlot StreamPlot StreamPoints StreamPosition Streams StreamScale StreamStyle String StringBreak StringByteCount StringCases StringCount StringDrop StringExpression StringForm StringFormat StringFreeQ StringInsert StringJoin StringLength StringMatchQ StringPosition StringQ StringReplace StringReplaceList StringReplacePart StringReverse StringRotateLeft StringRotateRight StringSkeleton StringSplit StringTake StringToStream StringTrim StripBoxes StripOnInput StripWrapperBoxes StrokeForm StructuralImportance StructuredArray StructuredSelection StruveH StruveL Stub StudentTDistribution Style StyleBox StyleBoxAutoDelete StyleBoxOptions StyleData StyleDefinitions StyleForm StyleKeyMapping StyleMenuListing StyleNameDialogSettings StyleNames StylePrint StyleSheetPath Subfactorial Subgraph SubMinus SubPlus SubresultantPolynomialRemainders SubresultantPolynomials Subresultants Subscript SubscriptBox SubscriptBoxOptions Subscripted Subset SubsetEqual Subsets SubStar Subsuperscript SubsuperscriptBox SubsuperscriptBoxOptions Subtract SubtractFrom SubValues Succeeds SucceedsEqual SucceedsSlantEqual SucceedsTilde SuchThat Sum SumConvergence Sunday SuperDagger SuperMinus SuperPlus Superscript SuperscriptBox SuperscriptBoxOptions Superset SupersetEqual SuperStar Surd SurdForm SurfaceColor SurfaceGraphics SurvivalDistribution SurvivalFunction SurvivalModel SurvivalModelFit SuspendPacket SuzukiDistribution SuzukiGroupSuz SwatchLegend Switch Symbol SymbolName SymletWavelet Symmetric SymmetricGroup SymmetricMatrixQ SymmetricPolynomial SymmetricReduction Symmetrize SymmetrizedArray SymmetrizedArrayRules SymmetrizedDependentComponents SymmetrizedIndependentComponents SymmetrizedReplacePart SynchronousInitialization SynchronousUpdating Syntax SyntaxForm SyntaxInformation SyntaxLength SyntaxPacket SyntaxQ SystemDialogInput SystemException SystemHelpPath SystemInformation SystemInformationData SystemOpen SystemOptions SystemsModelDelay SystemsModelDelayApproximate SystemsModelDelete SystemsModelDimensions SystemsModelExtract SystemsModelFeedbackConnect SystemsModelLabels SystemsModelOrder SystemsModelParallelConnect SystemsModelSeriesConnect SystemsModelStateFeedbackConnect SystemStub Tab TabFilling Table TableAlignments TableDepth TableDirections TableForm TableHeadings TableSpacing TableView TableViewBox TabSpacings TabView TabViewBox TabViewBoxOptions TagBox TagBoxNote TagBoxOptions TaggingRules TagSet TagSetDelayed TagStyle TagUnset Take TakeWhile Tally Tan Tanh TargetFunctions TargetUnits TautologyQ TelegraphProcess TemplateBox TemplateBoxOptions TemplateSlotSequence TemporalData Temporary TemporaryVariable TensorContract TensorDimensions TensorExpand TensorProduct TensorQ TensorRank TensorReduce TensorSymmetry TensorTranspose TensorWedge Tetrahedron TetrahedronBox TetrahedronBoxOptions TeXForm TeXSave Text Text3DBox Text3DBoxOptions TextAlignment TextBand TextBoundingBox TextBox TextCell TextClipboardType TextData TextForm TextJustification TextLine TextPacket TextParagraph TextRecognize TextRendering TextStyle Texture TextureCoordinateFunction TextureCoordinateScaling Therefore ThermometerGauge Thick Thickness Thin Thinning ThisLink ThompsonGroupTh Thread ThreeJSymbol Threshold Through Throw Thumbnail Thursday Ticks TicksStyle Tilde TildeEqual TildeFullEqual TildeTilde TimeConstrained TimeConstraint Times TimesBy TimeSeriesForecast TimeSeriesInvertibility TimeUsed TimeValue TimeZone Timing Tiny TitleGrouping TitsGroupT ToBoxes ToCharacterCode ToColor ToContinuousTimeModel ToDate ToDiscreteTimeModel ToeplitzMatrix ToExpression ToFileName Together Toggle ToggleFalse Toggler TogglerBar TogglerBox TogglerBoxOptions ToHeldExpression ToInvertibleTimeSeries TokenWords Tolerance ToLowerCase ToNumberField TooBig Tooltip TooltipBox TooltipBoxOptions TooltipDelay TooltipStyle Top TopHatTransform TopologicalSort ToRadicals ToRules ToString Total TotalHeight TotalVariationFilter TotalWidth TouchscreenAutoZoom TouchscreenControlPlacement ToUpperCase Tr Trace TraceAbove TraceAction TraceBackward TraceDepth TraceDialog TraceForward TraceInternal TraceLevel TraceOff TraceOn TraceOriginal TracePrint TraceScan TrackedSymbols TradingChart TraditionalForm TraditionalFunctionNotation TraditionalNotation TraditionalOrder TransferFunctionCancel TransferFunctionExpand TransferFunctionFactor TransferFunctionModel TransferFunctionPoles TransferFunctionTransform TransferFunctionZeros TransformationFunction TransformationFunctions TransformationMatrix TransformedDistribution TransformedField Translate TranslationTransform TransparentColor Transpose TreeForm TreeGraph TreeGraphQ TreePlot TrendStyle TriangleWave TriangularDistribution Trig TrigExpand TrigFactor TrigFactorList Trigger TrigReduce TrigToExp TrimmedMean True TrueQ TruncatedDistribution TsallisQExponentialDistribution TsallisQGaussianDistribution TTest Tube TubeBezierCurveBox TubeBezierCurveBoxOptions TubeBox TubeBSplineCurveBox TubeBSplineCurveBoxOptions Tuesday TukeyLambdaDistribution TukeyWindow Tuples TuranGraph TuringMachine Transparent UnateQ Uncompress Undefined UnderBar Underflow Underlined Underoverscript UnderoverscriptBox UnderoverscriptBoxOptions Underscript UnderscriptBox UnderscriptBoxOptions UndirectedEdge UndirectedGraph UndirectedGraphQ UndocumentedTestFEParserPacket UndocumentedTestGetSelectionPacket Unequal Unevaluated UniformDistribution UniformGraphDistribution UniformSumDistribution Uninstall Union UnionPlus Unique UnitBox UnitConvert UnitDimensions Unitize UnitRootTest UnitSimplify UnitStep UnitTriangle UnitVector Unprotect UnsameQ UnsavedVariables Unset UnsetShared UntrackedVariables Up UpArrow UpArrowBar UpArrowDownArrow Update UpdateDynamicObjects UpdateDynamicObjectsSynchronous UpdateInterval UpDownArrow UpEquilibrium UpperCaseQ UpperLeftArrow UpperRightArrow UpperTriangularize Upsample UpSet UpSetDelayed UpTee UpTeeArrow UpValues URL URLFetch URLFetchAsynchronous URLSave URLSaveAsynchronous UseGraphicsRange Using UsingFrontEnd V2Get ValidationLength Value ValueBox ValueBoxOptions ValueForm ValueQ ValuesData Variables Variance VarianceEquivalenceTest VarianceEstimatorFunction VarianceGammaDistribution VarianceTest VectorAngle VectorColorFunction VectorColorFunctionScaling VectorDensityPlot VectorGlyphData VectorPlot VectorPlot3D VectorPoints VectorQ Vectors VectorScale VectorStyle Vee Verbatim Verbose VerboseConvertToPostScriptPacket VerifyConvergence VerifySolutions VerifyTestAssumptions Version VersionNumber VertexAdd VertexCapacity VertexColors VertexComponent VertexConnectivity VertexCoordinateRules VertexCoordinates VertexCorrelationSimilarity VertexCosineSimilarity VertexCount VertexCoverQ VertexDataCoordinates VertexDegree VertexDelete VertexDiceSimilarity VertexEccentricity VertexInComponent VertexInDegree VertexIndex VertexJaccardSimilarity VertexLabeling VertexLabels VertexLabelStyle VertexList VertexNormals VertexOutComponent VertexOutDegree VertexQ VertexRenderingFunction VertexReplace VertexShape VertexShapeFunction VertexSize VertexStyle VertexTextureCoordinates VertexWeight Vertical VerticalBar VerticalForm VerticalGauge VerticalSeparator VerticalSlider VerticalTilde ViewAngle ViewCenter ViewMatrix ViewPoint ViewPointSelectorSettings ViewPort ViewRange ViewVector ViewVertical VirtualGroupData Visible VisibleCell VoigtDistribution VonMisesDistribution WaitAll WaitAsynchronousTask WaitNext WaitUntil WakebyDistribution WalleniusHypergeometricDistribution WaringYuleDistribution WatershedComponents WatsonUSquareTest WattsStrogatzGraphDistribution WaveletBestBasis WaveletFilterCoefficients WaveletImagePlot WaveletListPlot WaveletMapIndexed WaveletMatrixPlot WaveletPhi WaveletPsi WaveletScale WaveletScalogram WaveletThreshold WeaklyConnectedComponents WeaklyConnectedGraphQ WeakStationarity WeatherData WeberE Wedge Wednesday WeibullDistribution WeierstrassHalfPeriods WeierstrassInvariants WeierstrassP WeierstrassPPrime WeierstrassSigma WeierstrassZeta WeightedAdjacencyGraph WeightedAdjacencyMatrix WeightedData WeightedGraphQ Weights WelchWindow WheelGraph WhenEvent Which While White Whitespace WhitespaceCharacter WhittakerM WhittakerW WienerFilter WienerProcess WignerD WignerSemicircleDistribution WilksW WilksWTest WindowClickSelect WindowElements WindowFloating WindowFrame WindowFrameElements WindowMargins WindowMovable WindowOpacity WindowSelected WindowSize WindowStatusArea WindowTitle WindowToolbars WindowWidth With WolframAlpha WolframAlphaDate WolframAlphaQuantity WolframAlphaResult Word WordBoundary WordCharacter WordData WordSearch WordSeparators WorkingPrecision Write WriteString Wronskian XMLElement XMLObject Xnor Xor Yellow YuleDissimilarity ZernikeR ZeroSymmetric ZeroTest ZeroWidthTimes Zeta ZetaZero ZipfDistribution ZTest ZTransform $Aborted $ActivationGroupID $ActivationKey $ActivationUserRegistered $AddOnsDirectory $AssertFunction $Assumptions $AsynchronousTask $BaseDirectory $BatchInput $BatchOutput $BoxForms $ByteOrdering $Canceled $CharacterEncoding $CharacterEncodings $CommandLine $CompilationTarget $ConditionHold $ConfiguredKernels $Context $ContextPath $ControlActiveSetting $CreationDate $CurrentLink $DateStringFormat $DefaultFont $DefaultFrontEnd $DefaultImagingDevice $DefaultPath $Display $DisplayFunction $DistributedContexts $DynamicEvaluation $Echo $Epilog $ExportFormats $Failed $FinancialDataSource $FormatType $FrontEnd $FrontEndSession $GeoLocation $HistoryLength $HomeDirectory $HTTPCookies $IgnoreEOF $ImagingDevices $ImportFormats $InitialDirectory $Input $InputFileName $InputStreamMethods $Inspector $InstallationDate $InstallationDirectory $InterfaceEnvironment $IterationLimit $KernelCount $KernelID $Language $LaunchDirectory $LibraryPath $LicenseExpirationDate $LicenseID $LicenseProcesses $LicenseServer $LicenseSubprocesses $LicenseType $Line $Linked $LinkSupported $LoadedFiles $MachineAddresses $MachineDomain $MachineDomains $MachineEpsilon $MachineID $MachineName $MachinePrecision $MachineType $MaxExtraPrecision $MaxLicenseProcesses $MaxLicenseSubprocesses $MaxMachineNumber $MaxNumber $MaxPiecewiseCases $MaxPrecision $MaxRootDegree $MessageGroups $MessageList $MessagePrePrint $Messages $MinMachineNumber $MinNumber $MinorReleaseNumber $MinPrecision $ModuleNumber $NetworkLicense $NewMessage $NewSymbol $Notebooks $NumberMarks $Off $OperatingSystem $Output $OutputForms $OutputSizeLimit $OutputStreamMethods $Packages $ParentLink $ParentProcessID $PasswordFile $PatchLevelID $Path $PathnameSeparator $PerformanceGoal $PipeSupported $Post $Pre $PreferencesDirectory $PrePrint $PreRead $PrintForms $PrintLiteral $ProcessID $ProcessorCount $ProcessorType $ProductInformation $ProgramName $RandomState $RecursionLimit $ReleaseNumber $RootDirectory $ScheduledTask $ScriptCommandLine $SessionID $SetParentLink $SharedFunctions $SharedVariables $SoundDisplay $SoundDisplayFunction $SuppressInputFormHeads $SynchronousEvaluation $SyntaxHandler $System $SystemCharacterEncoding $SystemID $SystemWordLength $TemporaryDirectory $TemporaryPrefix $TextStyle $TimedOut $TimeUnit $TimeZone $TopDirectory $TraceOff $TraceOn $TracePattern $TracePostAction $TracePreAction $Urgent $UserAddOnsDirectory $UserBaseDirectory $UserDocumentsDirectory $UserName $Version $VersionNumber", -c:[{cN:"comment",b:/\(\*/,e:/\*\)/},e.ASM,e.QSM,e.CNM,{cN:"list",b:/\{/,e:/\}/,i:/:/}]}});hljs.registerLanguage("fsharp",function(e){var t={b:"<",e:">",c:[e.inherit(e.TM,{b:/'[a-zA-Z0-9_]+/})]};return{aliases:["fs"],k:"yield! return! let! do!abstract and as assert base begin class default delegate do done downcast downto elif else end exception extern false finally for fun function global if in inherit inline interface internal lazy let match member module mutable namespace new null of open or override private public rec return sig static struct then to true try type upcast use val void when while with yield",c:[{cN:"string",b:'@"',e:'"',c:[{b:'""'}]},{cN:"string",b:'"""',e:'"""'},e.C("\\(\\*","\\*\\)"),{cN:"class",bK:"type",e:"\\(|=|$",eE:!0,c:[e.UTM,t]},{cN:"annotation",b:"\\[<",e:">\\]",r:10},{cN:"attribute",b:"\\B('[A-Za-z])\\b",c:[e.BE]},e.CLCM,e.inherit(e.QSM,{i:null}),e.CNM]}});hljs.registerLanguage("verilog",function(e){return{aliases:["v"],cI:!0,k:{keyword:"always and assign begin buf bufif0 bufif1 case casex casez cmos deassign default defparam disable edge else end endcase endfunction endmodule endprimitive endspecify endtable endtask event for force forever fork function if ifnone initial inout input join macromodule module nand negedge nmos nor not notif0 notif1 or output parameter pmos posedge primitive pulldown pullup rcmos release repeat rnmos rpmos rtran rtranif0 rtranif1 specify specparam table task timescale tran tranif0 tranif1 wait while xnor xor",typename:"highz0 highz1 integer large medium pull0 pull1 real realtime reg scalared signed small strong0 strong1 supply0 supply0 supply1 supply1 time tri tri0 tri1 triand trior trireg vectored wand weak0 weak1 wire wor"},c:[e.CBCM,e.CLCM,e.QSM,{cN:"number",b:"\\b(\\d+'(b|h|o|d|B|H|O|D))?[0-9xzXZ]+",c:[e.BE],r:0},{cN:"typename",b:"\\.\\w+",r:0},{cN:"value",b:"#\\((?!parameter).+\\)"},{cN:"keyword",b:"\\+|-|\\*|/|%|<|>|=|#|`|\\!|&|\\||@|:|\\^|~|\\{|\\}",r:0}]}});hljs.registerLanguage("dos",function(e){var r=e.C(/@?rem\b/,/$/,{r:10}),t={cN:"label",b:"^\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\s+label)",r:0};return{aliases:["bat","cmd"],cI:!0,k:{flow:"if else goto for in do call exit not exist errorlevel defined",operator:"equ neq lss leq gtr geq",keyword:"shift cd dir echo setlocal endlocal set pause copy",stream:"prn nul lpt3 lpt2 lpt1 con com4 com3 com2 com1 aux",winutils:"ping net ipconfig taskkill xcopy ren del",built_in:"append assoc at attrib break cacls cd chcp chdir chkdsk chkntfs cls cmd color comp compact convert date dir diskcomp diskcopy doskey erase fs find findstr format ftype graftabl help keyb label md mkdir mode more move path pause print popd pushd promt rd recover rem rename replace restore rmdir shiftsort start subst time title tree type ver verify vol"},c:[{cN:"envvar",b:/%%[^ ]|%[^ ]+?%|![^ ]+?!/},{cN:"function",b:t.b,e:"goto:eof",c:[e.inherit(e.TM,{b:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),r]},{cN:"number",b:"\\b\\d+",r:0},r]}});hljs.registerLanguage("gherkin",function(e){return{aliases:["feature"],k:"Feature Background Ability Business Need Scenario Scenarios Scenario Outline Scenario Template Examples Given And Then But When",c:[{cN:"keyword",b:"\\*"},e.C("@[^@\r\n ]+","$"),{cN:"string",b:"\\|",e:"\\$"},{cN:"variable",b:"<",e:">"},e.HCM,{cN:"string",b:'"""',e:'"""'},e.QSM]}});hljs.registerLanguage("xml",function(t){var e="[A-Za-z0-9\\._:-]+",s={b:/<\?(php)?(?!\w)/,e:/\?>/,sL:"php",subLanguageMode:"continuous"},c={eW:!0,i:/]+/}]}]}]};return{aliases:["html","xhtml","rss","atom","xsl","plist"],cI:!0,c:[{cN:"doctype",b:"",r:10,c:[{b:"\\[",e:"\\]"}]},t.C("",{r:10}),{cN:"cdata",b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{cN:"tag",b:"|$)",e:">",k:{title:"style"},c:[c],starts:{e:"",rE:!0,sL:"css"}},{cN:"tag",b:"|$)",e:">",k:{title:"script"},c:[c],starts:{e:"",rE:!0,sL:""}},s,{cN:"pi",b:/<\?\w+/,e:/\?>/,r:10},{cN:"tag",b:"",c:[{cN:"title",b:/[^ \/><\n\t]+/,r:0},c]}]}});hljs.registerLanguage("autohotkey",function(e){var r={cN:"escape",b:"`[\\s\\S]"},c=e.C(";","$",{r:0}),n=[{cN:"built_in",b:"A_[a-zA-Z0-9]+"},{cN:"built_in",bK:"ComSpec Clipboard ClipboardAll ErrorLevel"}];return{cI:!0,k:{keyword:"Break Continue Else Gosub If Loop Return While",literal:"A true false NOT AND OR"},c:n.concat([r,e.inherit(e.QSM,{c:[r]}),c,{cN:"number",b:e.NR,r:0},{cN:"var_expand",b:"%",e:"%",i:"\\n",c:[r]},{cN:"label",c:[r],v:[{b:'^[^\\n";]+::(?!=)'},{b:'^[^\\n";]+:(?!=)',r:0}]},{b:",\\s*,",r:10}])}});hljs.registerLanguage("r",function(e){var r="([a-zA-Z]|\\.[a-zA-Z.])[a-zA-Z0-9._]*";return{c:[e.HCM,{b:r,l:r,k:{keyword:"function if in break next repeat else for return switch while try tryCatch stop warning require library attach detach source setMethod setGeneric setGroupGeneric setClass ...",literal:"NULL NA TRUE FALSE T F Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10"},r:0},{cN:"number",b:"0[xX][0-9a-fA-F]+[Li]?\\b",r:0},{cN:"number",b:"\\d+(?:[eE][+\\-]?\\d*)?L\\b",r:0},{cN:"number",b:"\\d+\\.(?!\\d)(?:i\\b)?",r:0},{cN:"number",b:"\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d*)?i?\\b",r:0},{cN:"number",b:"\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\b",r:0},{b:"`",e:"`",r:0},{cN:"string",c:[e.BE],v:[{b:'"',e:'"'},{b:"'",e:"'"}]}]}});hljs.registerLanguage("cs",function(e){var r="abstract as base bool break byte case catch char checked const continue decimal dynamic default delegate do double else enum event explicit extern false finally fixed float for foreach goto if implicit in int interface internal is lock long null when object operator out override params private protected public readonly ref sbyte sealed short sizeof stackalloc static string struct switch this true try typeof uint ulong unchecked unsafe ushort using virtual volatile void while async protected public private internal ascending descending from get group into join let orderby partial select set value var where yield",t=e.IR+"(<"+e.IR+">)?";return{aliases:["csharp"],k:r,i:/::/,c:[e.C("///","$",{rB:!0,c:[{cN:"xmlDocTag",v:[{b:"///",r:0},{b:""},{b:""}]}]}),e.CLCM,e.CBCM,{cN:"preprocessor",b:"#",e:"$",k:"if else elif endif define undef warning error line region endregion pragma checksum"},{cN:"string",b:'@"',e:'"',c:[{b:'""'}]},e.ASM,e.QSM,e.CNM,{bK:"class namespace interface",e:/[{;=]/,i:/[^\s:]/,c:[e.TM,e.CLCM,e.CBCM]},{bK:"new return throw await",r:0},{cN:"function",b:"("+t+"\\s+)+"+e.IR+"\\s*\\(",rB:!0,e:/[{;=]/,eE:!0,k:r,c:[{b:e.IR+"\\s*\\(",rB:!0,c:[e.TM],r:0},{cN:"params",b:/\(/,e:/\)/,k:r,r:0,c:[e.ASM,e.QSM,e.CNM,e.CBCM]},e.CLCM,e.CBCM]}]}});hljs.registerLanguage("nsis",function(e){var t={cN:"symbol",b:"\\$(ADMINTOOLS|APPDATA|CDBURN_AREA|CMDLINE|COMMONFILES32|COMMONFILES64|COMMONFILES|COOKIES|DESKTOP|DOCUMENTS|EXEDIR|EXEFILE|EXEPATH|FAVORITES|FONTS|HISTORY|HWNDPARENT|INSTDIR|INTERNET_CACHE|LANGUAGE|LOCALAPPDATA|MUSIC|NETHOOD|OUTDIR|PICTURES|PLUGINSDIR|PRINTHOOD|PROFILE|PROGRAMFILES32|PROGRAMFILES64|PROGRAMFILES|QUICKLAUNCH|RECENT|RESOURCES_LOCALIZED|RESOURCES|SENDTO|SMPROGRAMS|SMSTARTUP|STARTMENU|SYSDIR|TEMP|TEMPLATES|VIDEOS|WINDIR)"},n={cN:"constant",b:"\\$+{[a-zA-Z0-9_]+}"},i={cN:"variable",b:"\\$+[a-zA-Z0-9_]+",i:"\\(\\){}"},r={cN:"constant",b:"\\$+\\([a-zA-Z0-9_]+\\)"},o={cN:"params",b:"(ARCHIVE|FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_NORMAL|FILE_ATTRIBUTE_OFFLINE|FILE_ATTRIBUTE_READONLY|FILE_ATTRIBUTE_SYSTEM|FILE_ATTRIBUTE_TEMPORARY|HKCR|HKCU|HKDD|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_DYN_DATA|HKEY_LOCAL_MACHINE|HKEY_PERFORMANCE_DATA|HKEY_USERS|HKLM|HKPD|HKU|IDABORT|IDCANCEL|IDIGNORE|IDNO|IDOK|IDRETRY|IDYES|MB_ABORTRETRYIGNORE|MB_DEFBUTTON1|MB_DEFBUTTON2|MB_DEFBUTTON3|MB_DEFBUTTON4|MB_ICONEXCLAMATION|MB_ICONINFORMATION|MB_ICONQUESTION|MB_ICONSTOP|MB_OK|MB_OKCANCEL|MB_RETRYCANCEL|MB_RIGHT|MB_RTLREADING|MB_SETFOREGROUND|MB_TOPMOST|MB_USERICON|MB_YESNO|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SYSTEM|TEMPORARY)"},l={cN:"constant",b:"\\!(addincludedir|addplugindir|appendfile|cd|define|delfile|echo|else|endif|error|execute|finalize|getdllversionsystem|ifdef|ifmacrodef|ifmacrondef|ifndef|if|include|insertmacro|macroend|macro|makensis|packhdr|searchparse|searchreplace|tempfile|undef|verbose|warning)"};return{cI:!1,k:{keyword:"Abort AddBrandingImage AddSize AllowRootDirInstall AllowSkipFiles AutoCloseWindow BGFont BGGradient BrandingText BringToFront Call CallInstDLL Caption ChangeUI CheckBitmap ClearErrors CompletedText ComponentText CopyFiles CRCCheck CreateDirectory CreateFont CreateShortCut Delete DeleteINISec DeleteINIStr DeleteRegKey DeleteRegValue DetailPrint DetailsButtonText DirText DirVar DirVerify EnableWindow EnumRegKey EnumRegValue Exch Exec ExecShell ExecWait ExpandEnvStrings File FileBufSize FileClose FileErrorText FileOpen FileRead FileReadByte FileReadUTF16LE FileReadWord FileSeek FileWrite FileWriteByte FileWriteUTF16LE FileWriteWord FindClose FindFirst FindNext FindWindow FlushINI FunctionEnd GetCurInstType GetCurrentAddress GetDlgItem GetDLLVersion GetDLLVersionLocal GetErrorLevel GetFileTime GetFileTimeLocal GetFullPathName GetFunctionAddress GetInstDirError GetLabelAddress GetTempFileName Goto HideWindow Icon IfAbort IfErrors IfFileExists IfRebootFlag IfSilent InitPluginsDir InstallButtonText InstallColors InstallDir InstallDirRegKey InstProgressFlags InstType InstTypeGetText InstTypeSetText IntCmp IntCmpU IntFmt IntOp IsWindow LangString LicenseBkColor LicenseData LicenseForceSelection LicenseLangString LicenseText LoadLanguageFile LockWindow LogSet LogText ManifestDPIAware ManifestSupportedOS MessageBox MiscButtonText Name Nop OutFile Page PageCallbacks PageExEnd Pop Push Quit ReadEnvStr ReadINIStr ReadRegDWORD ReadRegStr Reboot RegDLL Rename RequestExecutionLevel ReserveFile Return RMDir SearchPath SectionEnd SectionGetFlags SectionGetInstTypes SectionGetSize SectionGetText SectionGroupEnd SectionIn SectionSetFlags SectionSetInstTypes SectionSetSize SectionSetText SendMessage SetAutoClose SetBrandingImage SetCompress SetCompressor SetCompressorDictSize SetCtlColors SetCurInstType SetDatablockOptimize SetDateSave SetDetailsPrint SetDetailsView SetErrorLevel SetErrors SetFileAttributes SetFont SetOutPath SetOverwrite SetPluginUnload SetRebootFlag SetRegView SetShellVarContext SetSilent ShowInstDetails ShowUninstDetails ShowWindow SilentInstall SilentUnInstall Sleep SpaceTexts StrCmp StrCmpS StrCpy StrLen SubCaption SubSectionEnd Unicode UninstallButtonText UninstallCaption UninstallIcon UninstallSubCaption UninstallText UninstPage UnRegDLL Var VIAddVersionKey VIFileVersion VIProductVersion WindowIcon WriteINIStr WriteRegBin WriteRegDWORD WriteRegExpandStr WriteRegStr WriteUninstaller XPStyle",literal:"admin all auto both colored current false force hide highest lastused leave listonly none normal notset off on open print show silent silentlog smooth textonly true user "},c:[e.HCM,e.CBCM,{cN:"string",b:'"',e:'"',i:"\\n",c:[{cN:"symbol",b:"\\$(\\\\(n|r|t)|\\$)"},t,n,i,r]},e.C(";","$",{r:0}),{cN:"function",bK:"Function PageEx Section SectionGroup SubSection",e:"$"},l,n,i,r,o,e.NM,{cN:"literal",b:e.IR+"::"+e.IR}]}});hljs.registerLanguage("less",function(e){var r="[\\w-]+",t="("+r+"|@{"+r+"})",a=[],c=[],n=function(e){return{cN:"string",b:"~?"+e+".*?"+e}},i=function(e,r,t){return{cN:e,b:r,r:t}},s=function(r,t,a){return e.inherit({cN:r,b:t+"\\(",e:"\\(",rB:!0,eE:!0,r:0},a)},b={b:"\\(",e:"\\)",c:c,r:0};c.push(e.CLCM,e.CBCM,n("'"),n('"'),e.CSSNM,i("hexcolor","#[0-9A-Fa-f]+\\b"),s("function","(url|data-uri)",{starts:{cN:"string",e:"[\\)\\n]",eE:!0}}),s("function",r),b,i("variable","@@?"+r,10),i("variable","@{"+r+"}"),i("built_in","~?`[^`]*?`"),{cN:"attribute",b:r+"\\s*:",e:":",rB:!0,eE:!0});var o=c.concat({b:"{",e:"}",c:a}),u={bK:"when",eW:!0,c:[{bK:"and not"}].concat(c)},C={cN:"attribute",b:t,e:":",eE:!0,c:[e.CLCM,e.CBCM],i:/\S/,starts:{e:"[;}]",rE:!0,c:c,i:"[<=$]"}},l={cN:"at_rule",b:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",starts:{e:"[;{}]",rE:!0,c:c,r:0}},d={cN:"variable",v:[{b:"@"+r+"\\s*:",r:15},{b:"@"+r}],starts:{e:"[;}]",rE:!0,c:o}},p={v:[{b:"[\\.#:&\\[]",e:"[;{}]"},{b:t+"[^;]*{",e:"{"}],rB:!0,rE:!0,i:"[<='$\"]",c:[e.CLCM,e.CBCM,u,i("keyword","all\\b"),i("variable","@{"+r+"}"),i("tag",t+"%?",0),i("id","#"+t),i("class","\\."+t,0),i("keyword","&",0),s("pseudo",":not"),s("keyword",":extend"),i("pseudo","::?"+t),{cN:"attr_selector",b:"\\[",e:"\\]"},{b:"\\(",e:"\\)",c:o},{b:"!important"}]};return a.push(e.CLCM,e.CBCM,l,d,p,C),{cI:!0,i:"[=>'/<($\"]",c:a}});hljs.registerLanguage("pf",function(t){var o={cN:"variable",b:/\$[\w\d#@][\w\d_]*/},e={cN:"variable",b://};return{aliases:["pf.conf"],l:/[a-z0-9_<>-]+/,k:{built_in:"block match pass load anchor|5 antispoof|10 set table",keyword:"in out log quick on rdomain inet inet6 proto from port os to routeallow-opts divert-packet divert-reply divert-to flags group icmp-typeicmp6-type label once probability recieved-on rtable prio queuetos tag tagged user keep fragment for os dropaf-to|10 binat-to|10 nat-to|10 rdr-to|10 bitmask least-stats random round-robinsource-hash static-portdup-to reply-to route-toparent bandwidth default min max qlimitblock-policy debug fingerprints hostid limit loginterface optimizationreassemble ruleset-optimization basic none profile skip state-defaultsstate-policy timeoutconst counters persistno modulate synproxy state|5 floating if-bound no-sync pflow|10 sloppysource-track global rule max-src-nodes max-src-states max-src-connmax-src-conn-rate overload flushscrub|5 max-mss min-ttl no-df|10 random-id",literal:"all any no-route self urpf-failed egress|5 unknown"},c:[t.HCM,t.NM,t.QSM,o,e]}});hljs.registerLanguage("lasso",function(e){var r="[a-zA-Z_][a-zA-Z0-9_.]*",a="<\\?(lasso(script)?|=)",t="\\]|\\?>",s={literal:"true false none minimal full all void and or not bw nbw ew new cn ncn lt lte gt gte eq neq rx nrx ft",built_in:"array date decimal duration integer map pair string tag xml null boolean bytes keyword list locale queue set stack staticarray local var variable global data self inherited",keyword:"error_code error_msg error_pop error_push error_reset cache database_names database_schemanames database_tablenames define_tag define_type email_batch encode_set html_comment handle handle_error header if inline iterate ljax_target link link_currentaction link_currentgroup link_currentrecord link_detail link_firstgroup link_firstrecord link_lastgroup link_lastrecord link_nextgroup link_nextrecord link_prevgroup link_prevrecord log loop namespace_using output_none portal private protect records referer referrer repeating resultset rows search_args search_arguments select sort_args sort_arguments thread_atomic value_list while abort case else if_empty if_false if_null if_true loop_abort loop_continue loop_count params params_up return return_value run_children soap_definetag soap_lastrequest soap_lastresponse tag_name ascending average by define descending do equals frozen group handle_failure import in into join let match max min on order parent protected provide public require returnhome skip split_thread sum take thread to trait type where with yield yieldhome"},n=e.C("",{r:0}),o={cN:"preprocessor",b:"\\[noprocess\\]",starts:{cN:"markup",e:"\\[/noprocess\\]",rE:!0,c:[n]}},i={cN:"preprocessor",b:"\\[/noprocess|"+a},l={cN:"variable",b:"'"+r+"'"},c=[e.CLCM,{cN:"javadoc",b:"/\\*\\*!",e:"\\*/",c:[e.PWM]},e.CBCM,e.inherit(e.CNM,{b:e.CNR+"|(-?infinity|nan)\\b"}),e.inherit(e.ASM,{i:null}),e.inherit(e.QSM,{i:null}),{cN:"string",b:"`",e:"`"},{cN:"variable",v:[{b:"[#$]"+r},{b:"#",e:"\\d+",i:"\\W"}]},{cN:"tag",b:"::\\s*",e:r,i:"\\W"},{cN:"attribute",v:[{b:"-"+e.UIR,r:0},{b:"(\\.\\.\\.)"}]},{cN:"subst",v:[{b:"->\\s*",c:[l]},{b:":=|/(?!\\w)=?|[-+*%=<>&|!?\\\\]+",r:0}]},{cN:"built_in",b:"\\.\\.?\\s*",r:0,c:[l]},{cN:"class",bK:"define",rE:!0,e:"\\(|=>",c:[e.inherit(e.TM,{b:e.UIR+"(=(?!>))?"})]}];return{aliases:["ls","lassoscript"],cI:!0,l:r+"|&[lg]t;",k:s,c:[{cN:"preprocessor",b:t,r:0,starts:{cN:"markup",e:"\\[|"+a,rE:!0,r:0,c:[n]}},o,i,{cN:"preprocessor",b:"\\[no_square_brackets",starts:{e:"\\[/no_square_brackets\\]",l:r+"|&[lg]t;",k:s,c:[{cN:"preprocessor",b:t,r:0,starts:{cN:"markup",e:"\\[noprocess\\]|"+a,rE:!0,c:[n]}},o,i].concat(c)}},{cN:"preprocessor",b:"\\[",r:0},{cN:"shebang",b:"^#!.+lasso9\\b",r:10}].concat(c)}});hljs.registerLanguage("prolog",function(c){var r={cN:"atom",b:/[a-z][A-Za-z0-9_]*/,r:0},b={cN:"name",v:[{b:/[A-Z][a-zA-Z0-9_]*/},{b:/_[A-Za-z0-9_]*/}],r:0},a={b:/\(/,e:/\)/,r:0},e={b:/\[/,e:/\]/},n={cN:"comment",b:/%/,e:/$/,c:[c.PWM]},t={cN:"string",b:/`/,e:/`/,c:[c.BE]},g={cN:"string",b:/0\'(\\\'|.)/},N={cN:"string",b:/0\'\\s/},o={b:/:-/},s=[r,b,a,o,e,n,c.CBCM,c.QSM,c.ASM,t,g,N,c.CNM];return a.c=s,e.c=s,{c:s.concat([{b:/\.$/}])}});hljs.registerLanguage("oxygene",function(e){var r="abstract add and array as asc aspect assembly async begin break block by case class concat const copy constructor continue create default delegate desc distinct div do downto dynamic each else empty end ensure enum equals event except exit extension external false final finalize finalizer finally flags for forward from function future global group has if implementation implements implies in index inherited inline interface into invariants is iterator join locked locking loop matching method mod module namespace nested new nil not notify nullable of old on operator or order out override parallel params partial pinned private procedure property protected public queryable raise read readonly record reintroduce remove repeat require result reverse sealed select self sequence set shl shr skip static step soft take then to true try tuple type union unit unsafe until uses using var virtual raises volatile where while with write xor yield await mapped deprecated stdcall cdecl pascal register safecall overload library platform reference packed strict published autoreleasepool selector strong weak unretained",t=e.C("{","}",{r:0}),a=e.C("\\(\\*","\\*\\)",{r:10}),n={cN:"string",b:"'",e:"'",c:[{b:"''"}]},o={cN:"string",b:"(#\\d+)+"},i={cN:"function",bK:"function constructor destructor procedure method",e:"[:;]",k:"function constructor|10 destructor|10 procedure|10 method|10",c:[e.TM,{cN:"params",b:"\\(",e:"\\)",k:r,c:[n,o]},t,a]};return{cI:!0,k:r,i:'("|\\$[G-Zg-z]|\\/\\*||->)',c:[t,a,e.CLCM,n,o,e.NM,i,{cN:"class",b:"=\\bclass\\b",e:"end;",k:r,c:[n,o,t,a,e.CLCM,i]}]}});hljs.registerLanguage("applescript",function(e){var t=e.inherit(e.QSM,{i:""}),r={cN:"params",b:"\\(",e:"\\)",c:["self",e.CNM,t]},o=e.C("--","$"),n=e.C("\\(\\*","\\*\\)",{c:["self",o]}),a=[o,n,e.HCM];return{aliases:["osascript"],k:{keyword:"about above after against and around as at back before beginning behind below beneath beside between but by considering contain contains continue copy div does eighth else end equal equals error every exit fifth first for fourth from front get given global if ignoring in into is it its last local me middle mod my ninth not of on onto or over prop property put ref reference repeat returning script second set seventh since sixth some tell tenth that the|0 then third through thru timeout times to transaction try until where while whose with without",constant:"AppleScript false linefeed return pi quote result space tab true",type:"alias application boolean class constant date file integer list number real record string text",command:"activate beep count delay launch log offset read round run say summarize write",property:"character characters contents day frontmost id item length month name paragraph paragraphs rest reverse running time version weekday word words year"},c:[t,e.CNM,{cN:"type",b:"\\bPOSIX file\\b"},{cN:"command",b:"\\b(clipboard info|the clipboard|info for|list (disks|folder)|mount volume|path to|(close|open for) access|(get|set) eof|current date|do shell script|get volume settings|random number|set volume|system attribute|system info|time to GMT|(load|run|store) script|scripting components|ASCII (character|number)|localized string|choose (application|color|file|file name|folder|from list|remote application|URL)|display (alert|dialog))\\b|^\\s*return\\b"},{cN:"constant",b:"\\b(text item delimiters|current application|missing value)\\b"},{cN:"keyword",b:"\\b(apart from|aside from|instead of|out of|greater than|isn't|(doesn't|does not) (equal|come before|come after|contain)|(greater|less) than( or equal)?|(starts?|ends|begins?) with|contained by|comes (before|after)|a (ref|reference))\\b"},{cN:"property",b:"\\b(POSIX path|(date|time) string|quoted form)\\b"},{cN:"function_start",bK:"on",i:"[${=;\\n]",c:[e.UTM,r]}].concat(a),i:"//|->|=>"}});hljs.registerLanguage("makefile",function(e){var a={cN:"variable",b:/\$\(/,e:/\)/,c:[e.BE]};return{aliases:["mk","mak"],c:[e.HCM,{b:/^\w+\s*\W*=/,rB:!0,r:0,starts:{cN:"constant",e:/\s*\W*=/,eE:!0,starts:{e:/$/,r:0,c:[a]}}},{cN:"title",b:/^[\w]+:\s*$/},{cN:"phony",b:/^\.PHONY:/,e:/$/,k:".PHONY",l:/[\.\w]+/},{b:/^\t+/,e:/$/,r:0,c:[e.QSM,a]}]}});hljs.registerLanguage("dust",function(e){var a="if eq ne lt lte gt gte select default math sep";return{aliases:["dst"],cI:!0,sL:"xml",subLanguageMode:"continuous",c:[{cN:"expression",b:"{",e:"}",r:0,c:[{cN:"begin-block",b:"#[a-zA-Z- .]+",k:a},{cN:"string",b:'"',e:'"'},{cN:"end-block",b:"\\/[a-zA-Z- .]+",k:a},{cN:"variable",b:"[a-zA-Z-.]+",k:a,r:0}]}]}});hljs.registerLanguage("clojure-repl",function(e){return{c:[{cN:"prompt",b:/^([\w.-]+|\s*#_)=>/,starts:{e:/$/,sL:"clojure",subLanguageMode:"continuous"}}]}});hljs.registerLanguage("dart",function(e){var t={cN:"subst",b:"\\$\\{",e:"}",k:"true false null this is new super"},r={cN:"string",v:[{b:"r'''",e:"'''"},{b:'r"""',e:'"""'},{b:"r'",e:"'",i:"\\n"},{b:'r"',e:'"',i:"\\n"},{b:"'''",e:"'''",c:[e.BE,t]},{b:'"""',e:'"""',c:[e.BE,t]},{b:"'",e:"'",i:"\\n",c:[e.BE,t]},{b:'"',e:'"',i:"\\n",c:[e.BE,t]}]};t.c=[e.CNM,r];var n={keyword:"assert break case catch class const continue default do else enum extends false final finally for if in is new null rethrow return super switch this throw true try var void while with",literal:"abstract as dynamic export external factory get implements import library operator part set static typedef",built_in:"print Comparable DateTime Duration Function Iterable Iterator List Map Match Null Object Pattern RegExp Set Stopwatch String StringBuffer StringSink Symbol Type Uri bool double int num document window querySelector querySelectorAll Element ElementList"};return{k:n,c:[r,{cN:"dartdoc",b:"/\\*\\*",e:"\\*/",sL:"markdown",subLanguageMode:"continuous"},{cN:"dartdoc",b:"///",e:"$",sL:"markdown",subLanguageMode:"continuous"},e.CLCM,e.CBCM,{cN:"class",bK:"class interface",e:"{",eE:!0,c:[{bK:"extends implements"},e.UTM]},e.CNM,{cN:"annotation",b:"@[A-Za-z]+"},{b:"=>"}]}}); \ No newline at end of file diff --git a/docs/js/jquery-2.1.1.min.js b/docs/js/jquery-2.1.1.min.js deleted file mode 100644 index e5ace11..0000000 --- a/docs/js/jquery-2.1.1.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! jQuery v2.1.1 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */ -!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l=a.document,m="2.1.1",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return!n.isArray(a)&&a-parseFloat(a)>=0},isPlainObject:function(a){return"object"!==n.type(a)||a.nodeType||n.isWindow(a)?!1:a.constructor&&!j.call(a.constructor.prototype,"isPrototypeOf")?!1:!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf("use strict")?(b=l.createElement("script"),b.text=a,l.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=s(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:g.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=s(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(c=a[b],b=a,a=c),n.isFunction(a)?(e=d.call(arguments,2),f=function(){return a.apply(b||this,e.concat(d.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:k}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+-new Date,v=a.document,w=0,x=0,y=gb(),z=gb(),A=gb(),B=function(a,b){return a===b&&(l=!0),0},C="undefined",D=1<<31,E={}.hasOwnProperty,F=[],G=F.pop,H=F.push,I=F.push,J=F.slice,K=F.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},L="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",N="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=N.replace("w","w#"),P="\\["+M+"*("+N+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+O+"))|)"+M+"*\\]",Q=":("+N+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+P+")*)|.*)\\)|)",R=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),S=new RegExp("^"+M+"*,"+M+"*"),T=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),V=new RegExp(Q),W=new RegExp("^"+O+"$"),X={ID:new RegExp("^#("+N+")"),CLASS:new RegExp("^\\.("+N+")"),TAG:new RegExp("^("+N.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+Q),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+L+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{I.apply(F=J.call(v.childNodes),v.childNodes),F[v.childNodes.length].nodeType}catch(eb){I={apply:F.length?function(a,b){H.apply(a,J.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],!a||"string"!=typeof a)return d;if(1!==(k=b.nodeType)&&9!==k)return[];if(p&&!e){if(f=_.exec(a))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return I.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return I.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=9===k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+qb(o[l]);w=ab.test(a)&&ob(b.parentNode)||b,x=o.join(",")}if(x)try{return I.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function gb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function hb(a){return a[u]=!0,a}function ib(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function jb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function kb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||D)-(~a.sourceIndex||D);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function lb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function nb(a){return hb(function(b){return b=+b,hb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function ob(a){return a&&typeof a.getElementsByTagName!==C&&a}c=fb.support={},f=fb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fb.setDocument=function(a){var b,e=a?a.ownerDocument||a:v,g=e.defaultView;return e!==n&&9===e.nodeType&&e.documentElement?(n=e,o=e.documentElement,p=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){m()},!1):g.attachEvent&&g.attachEvent("onunload",function(){m()})),c.attributes=ib(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ib(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(e.getElementsByClassName)&&ib(function(a){return a.innerHTML="
",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=ib(function(a){return o.appendChild(a).id=u,!e.getElementsByName||!e.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==C&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c=typeof a.getAttributeNode!==C&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==C?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==C&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(e.querySelectorAll))&&(ib(function(a){a.innerHTML="",a.querySelectorAll("[msallowclip^='']").length&&q.push("[*^$]="+M+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+M+"*(?:value|"+L+")"),a.querySelectorAll(":checked").length||q.push(":checked")}),ib(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+M+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ib(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",Q)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===v&&t(v,a)?-1:b===e||b.ownerDocument===v&&t(v,b)?1:k?K.call(k,a)-K.call(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],i=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:k?K.call(k,a)-K.call(k,b):0;if(f===g)return kb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?kb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},e):n},fb.matches=function(a,b){return fb(a,null,null,b)},fb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fb(b,n,null,[a]).length>0},fb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&E.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fb.selectors={cacheLength:50,createPseudo:hb,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+M+")"+a+"("+M+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==C&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?hb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=K.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:hb(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?hb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:hb(function(a){return function(b){return fb(a,b).length>0}}),contains:hb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:hb(function(a){return W.test(a||"")||fb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:nb(function(){return[0]}),last:nb(function(a,b){return[b-1]}),eq:nb(function(a,b,c){return[0>c?c+b:c]}),even:nb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:nb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:nb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:nb(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function rb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function sb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function tb(a,b,c){for(var d=0,e=b.length;e>d;d++)fb(a,b[d],c);return c}function ub(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function vb(a,b,c,d,e,f){return d&&!d[u]&&(d=vb(d)),e&&!e[u]&&(e=vb(e,f)),hb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||tb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ub(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ub(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?K.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ub(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):I.apply(g,r)})}function wb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=rb(function(a){return a===b},h,!0),l=rb(function(a){return K.call(b,a)>-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>i;i++)if(c=d.relative[a[i].type])m=[rb(sb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return vb(i>1&&sb(m),i>1&&qb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&wb(a.slice(i,e)),f>e&&wb(a=a.slice(e)),f>e&&qb(a))}m.push(c)}return sb(m)}function xb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=G.call(i));s=ub(s)}I.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&fb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?hb(f):f}return h=fb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xb(e,d)),f.selector=a}return f},i=fb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&ob(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qb(j),!a)return I.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&ob(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ib(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ib(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||jb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ib(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||jb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ib(function(a){return null==a.getAttribute("disabled")})||jb(L,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fb}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return g.call(b,a)>=0!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;c>b;b++)if(n.contains(e[b],this))return!0}));for(b=0;c>b;b++)n.find(a,e[b],d);return d=this.pushStack(c>1?n.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,"string"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:l,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}return d=l.getElementById(c[2]),d&&d.parentNode&&(this.length=1,this[0]=d),this.context=l,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};A.prototype=n.fn,y=n(l);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.unique(f):f)},index:function(a){return a?"string"==typeof a?g.call(n(a),this[0]):g.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){while((a=a[b])&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return n.dir(a,"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return n.dir(a,"nextSibling")},prevAll:function(a){return n.dir(a,"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(C[a]||n.unique(e),B.test(a)&&e.reverse()),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return n.each(a.match(E)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(b=a.memory&&l,c=!0,g=e||0,e=0,f=h.length,d=!0;h&&f>g;g++)if(h[g].apply(l[0],l[1])===!1&&a.stopOnFalse){b=!1;break}d=!1,h&&(i?i.length&&j(i.shift()):b?h=[]:k.disable())},k={add:function(){if(h){var c=h.length;!function g(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&g(c)})}(arguments),d?f=h.length:b&&(e=c,j(b))}return this},remove:function(){return h&&n.each(arguments,function(a,b){var c;while((c=n.inArray(b,h,c))>-1)h.splice(c,1),d&&(f>=c&&f--,g>=c&&g--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],f=0,this},disable:function(){return h=i=b=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,b||k.disable(),this},locked:function(){return!i},fireWith:function(a,b){return!h||c&&!i||(b=b||[],b=[a,b.slice?b.slice():b],d?i.push(b):j(b)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!c}};return k},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&n.isFunction(a.promise)?e:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(H.resolveWith(l,[n]),n.fn.triggerHandler&&(n(l).triggerHandler("ready"),n(l).off("ready"))))}});function I(){l.removeEventListener("DOMContentLoaded",I,!1),a.removeEventListener("load",I,!1),n.ready()}n.ready.promise=function(b){return H||(H=n.Deferred(),"complete"===l.readyState?setTimeout(n.ready):(l.addEventListener("DOMContentLoaded",I,!1),a.addEventListener("load",I,!1))),H.promise(b)},n.ready.promise();var J=n.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)n.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f};n.acceptData=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function K(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=n.expando+Math.random()}K.uid=1,K.accepts=n.acceptData,K.prototype={key:function(a){if(!K.accepts(a))return 0;var b={},c=a[this.expando];if(!c){c=K.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,n.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if("string"==typeof b)f[b]=c;else if(n.isEmptyObject(f))n.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,b){var c=this.cache[this.key(a)];return void 0===b?c:c[b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=this.key(a),g=this.cache[f];if(void 0===b)this.cache[f]={};else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in g?d=[b,e]:(d=e,d=d in g?[d]:d.match(E)||[])),c=d.length;while(c--)delete g[d[c]]}},hasData:function(a){return!n.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}};var L=new K,M=new K,N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(O,"-$1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}M.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return M.hasData(a)||L.hasData(a)},data:function(a,b,c){return M.access(a,b,c)},removeData:function(a,b){M.remove(a,b) -},_data:function(a,b,c){return L.access(a,b,c)},_removeData:function(a,b){L.remove(a,b)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=M.get(f),1===f.nodeType&&!L.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));L.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){M.set(this,a)}):J(this,function(b){var c,d=n.camelCase(a);if(f&&void 0===b){if(c=M.get(f,a),void 0!==c)return c;if(c=M.get(f,d),void 0!==c)return c;if(c=P(f,d,void 0),void 0!==c)return c}else this.each(function(){var c=M.get(this,d);M.set(this,d,b),-1!==a.indexOf("-")&&void 0!==c&&M.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){M.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=L.get(a,b),c&&(!d||n.isArray(c)?d=L.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return L.get(a,c)||L.access(a,c,{empty:n.Callbacks("once memory").add(function(){L.remove(a,[b+"queue",c])})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthx",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var U="undefined";k.focusinBubbles="onfocusin"in a;var V=/^key/,W=/^(?:mouse|pointer|contextmenu)|click/,X=/^(?:focusinfocus|focusoutblur)$/,Y=/^([^.]*)(?:\.(.+)|)$/;function Z(){return!0}function $(){return!1}function _(){try{return l.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return typeof n!==U&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(E)||[""],j=b.length;while(j--)h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g,!1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.hasData(a)&&L.get(a);if(r&&(i=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&(delete r.handle,L.remove(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,m,o,p=[d||l],q=j.call(b,"type")?b.type:b,r=j.call(b,"namespace")?b.namespace.split("."):[];if(g=h=d=d||l,3!==d.nodeType&&8!==d.nodeType&&!X.test(q+n.event.triggered)&&(q.indexOf(".")>=0&&(r=q.split("."),q=r.shift(),r.sort()),k=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=r.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),o=n.event.special[q]||{},e||!o.trigger||o.trigger.apply(d,c)!==!1)){if(!e&&!o.noBubble&&!n.isWindow(d)){for(i=o.delegateType||q,X.test(i+q)||(g=g.parentNode);g;g=g.parentNode)p.push(g),h=g;h===(d.ownerDocument||l)&&p.push(h.defaultView||h.parentWindow||a)}f=0;while((g=p[f++])&&!b.isPropagationStopped())b.type=f>1?i:o.bindType||q,m=(L.get(g,"events")||{})[b.type]&&L.get(g,"handle"),m&&m.apply(g,c),m=k&&g[k],m&&m.apply&&n.acceptData(g)&&(b.result=m.apply(g,c),b.result===!1&&b.preventDefault());return b.type=q,e||b.isDefaultPrevented()||o._default&&o._default.apply(p.pop(),c)!==!1||!n.acceptData(d)||k&&n.isFunction(d[q])&&!n.isWindow(d)&&(h=d[k],h&&(d[k]=null),n.event.triggered=q,d[q](),n.event.triggered=void 0,h&&(d[k]=h)),b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(L.get(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(g.namespace))&&(a.handleObj=g,a.data=g.data,e=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(a.result=e)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!==this;i=i.parentNode||this)if(i.disabled!==!0||"click"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>=0:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h]*)\/>/gi,bb=/<([\w:]+)/,cb=/<|&#?\w+;/,db=/<(?:script|style|link)/i,eb=/checked\s*(?:[^=]|=\s*.checked.)/i,fb=/^$|\/(?:java|ecma)script/i,gb=/^true\/(.*)/,hb=/^\s*\s*$/g,ib={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ib.optgroup=ib.option,ib.tbody=ib.tfoot=ib.colgroup=ib.caption=ib.thead,ib.th=ib.td;function jb(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function kb(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function lb(a){var b=gb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function mb(a,b){for(var c=0,d=a.length;d>c;c++)L.set(a[c],"globalEval",!b||L.get(b[c],"globalEval"))}function nb(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(L.hasData(a)&&(f=L.access(a),g=L.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}M.hasData(a)&&(h=M.access(a),i=n.extend({},h),M.set(b,i))}}function ob(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function pb(a,b){var c=b.nodeName.toLowerCase();"input"===c&&T.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}n.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=ob(h),f=ob(a),d=0,e=f.length;e>d;d++)pb(f[d],g[d]);if(b)if(c)for(f=f||ob(a),g=g||ob(h),d=0,e=f.length;e>d;d++)nb(f[d],g[d]);else nb(a,h);return g=ob(h,"script"),g.length>0&&mb(g,!i&&ob(a,"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,o=a.length;o>m;m++)if(e=a[m],e||0===e)if("object"===n.type(e))n.merge(l,e.nodeType?[e]:e);else if(cb.test(e)){f=f||k.appendChild(b.createElement("div")),g=(bb.exec(e)||["",""])[1].toLowerCase(),h=ib[g]||ib._default,f.innerHTML=h[1]+e.replace(ab,"<$1>")+h[2],j=h[0];while(j--)f=f.lastChild;n.merge(l,f.childNodes),f=k.firstChild,f.textContent=""}else l.push(b.createTextNode(e));k.textContent="",m=0;while(e=l[m++])if((!d||-1===n.inArray(e,d))&&(i=n.contains(e.ownerDocument,e),f=ob(k.appendChild(e),"script"),i&&mb(f),c)){j=0;while(e=f[j++])fb.test(e.type||"")&&c.push(e)}return k},cleanData:function(a){for(var b,c,d,e,f=n.event.special,g=0;void 0!==(c=a[g]);g++){if(n.acceptData(c)&&(e=c[L.expando],e&&(b=L.cache[e]))){if(b.events)for(d in b.events)f[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);L.cache[e]&&delete L.cache[e]}delete M.cache[c[M.expando]]}}}),n.fn.extend({text:function(a){return J(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=a)})},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=jb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=jb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(ob(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&mb(ob(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(ob(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return J(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!db.test(a)&&!ib[(bb.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(ab,"<$1>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(ob(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(ob(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,m=this,o=l-1,p=a[0],q=n.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&eb.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(c=n.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(f=n.map(ob(c,"script"),kb),g=f.length;l>j;j++)h=c,j!==o&&(h=n.clone(h,!0,!0),g&&n.merge(f,ob(h,"script"))),b.call(this[j],h,j);if(g)for(i=f[f.length-1].ownerDocument,n.map(f,lb),j=0;g>j;j++)h=f[j],fb.test(h.type||"")&&!L.access(h,"globalEval")&&n.contains(i,h)&&(h.src?n._evalUrl&&n._evalUrl(h.src):n.globalEval(h.textContent.replace(hb,"")))}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),g=e.length-1,h=0;g>=h;h++)c=h===g?this:this.clone(!0),n(e[h])[b](c),f.apply(d,c.get());return this.pushStack(d)}});var qb,rb={};function sb(b,c){var d,e=n(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:n.css(e[0],"display");return e.detach(),f}function tb(a){var b=l,c=rb[a];return c||(c=sb(a,b),"none"!==c&&c||(qb=(qb||n("

9u(nG434x1@V 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�_4Mf0HC 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 ~*S<;kg4l%98s zXvLMtLyI7L2MqY-fvpW0&z?T8wTf;6A}z*uf>&6$2hp+O##55}LFoOjw}HZ$muvHC zW_d#Rh-ofmzsxU`UKxnhEHs5uYj{?#&o>fJB|pqfYfXDvL$sssk3iq_-ORPjJ9z^9 zlcx(0L8 z%dnf2$z%;cESJq>>sO0AZSgp%lb{D2IutbTwF=mZfHYNz{$x}!(8p|ckhr0<~}v({)*cpS2ll-+-{6k{r&NzMCdbnq)B+#8x1N_`(M48 z-&3Vm&xh;Wb)lQB-tshw^;C-xb90I~I}>u$-9J{Mf*mBf&h2Z{}u4 zPT5bbNwkFXoWb%$TD+;@oq;5Y-V*Dq-oE51D0g=>V$d?T@=d851Y_D9qlpm(h58q` zwon^2If1P0>12o8ljTaKwgYifsLF*<6~zhE51}2GEt32-f)hZh{qVqN3Ha3v(0yfL ziBDzqKd!IO%zyzl*H#t4tqcmM-}$|n=`GEjZv}mg@}g#tnKgyO6r9Pga(Zg>8))}9 zpCPWGDTBLZf^Oh_P&TVQSZbXWaYA##DYEk16gS^Hz93g~fr_jsbfy;u1d9@_Kx5h3 zU!W8CYxHEWiXX`_PtkPzv?KE`d%AqEqzDiEU6H6rrm*M=&r8BIIm=9pqE1Wu}6P)C`pJ3z0aeyjfHcKInd&UXBbkBh|itPo(1H#42Un*_-%e8L8AbAcG?J#L~FjW&GuJ6p3WYJsnKt(O= zdU!a=6(Q!i7u;3vF2BU)w}R&T7end7!k}@5=A@W%Tj4(Ug>SLn0x)qsl_($a8Qk}v zR1xu7Q{2Y4*JQ!8a!Jv+J4^_BX9yQ;j?$rttLgT@?ONu~Wm(iIa6S*YabY4^UXQsC z__DIgH^>M&uBus|@%(M57FHF8h`i1bvku5kb3kIVHv3Rb0j`Y2ifhQ41G2ybnP1No z-7Dm{O(I~d#BwM2%be=2?=vmP9T-ogeA5gFu|T8_yo9yXwSb~FDw#pI) z7+1sP0fUfDc6LWD5uaIeww3U?2-XToC^D%sqkl?avcoLiqoiO|F85 za9OHLn2Pyx0iOT0+QAt6X7FalA+tM1%%9vU**(@i(daL}H-{SHv+vyT7HfM;{zquN%^n1QmpZx!@E>A`nuio&JI0|0zlR}iaN!x?b}!ZU_N-Y zN$FUEo16nVhnE@mF20kHh%~2=))Hxy6Z;M2*lQgtVP72-7&wNWt#9tHa9Vkb?6FoS zF&Y=(kBs;jG7m*30`Pbl>w0;d!7|yGTg?^`3O`AvSm?ew-(J`c*zeOHAIlMJ#-dH) zBpu05W#W=0hqzLNi z{^DEd^B^b`l97GJisGxIeH*bND>J=_)xz;vHADw;@b&rI!d{ANm?wC|pL^2z^fzUW z`%Km8ERTA`O7&qEAx{fW#@J>*3gC{t?$SlWtrt`3W;FmWMF}s9&E8fUPT>5-^V7`( z%=y7@ryGk-i<5ZeQgdmA!u2YJi3vk_eqbBn1$2C-qfl>;?P!Cr!&o*qXrjMzhD=`m zaKLxvR3PiQ^`N*b1f`8w?|T>f60?@LeB!GkFZl`@FI8|7A4>qN(^Fj#a>X&2JAgU@ zR14HV$*5WigyF-keK+S3J^BDWgcLbw8o(Z$Cp(S--HLFr#nx+ZiH^zPw4qPb3UsPV z4jBIAM_+eg00tv=HZ~X>RXiw8fW8VJ5D7y#-L&S; z_=JZ@;!&IoLZ45XFG`SwW;9etrM>XufdEQnf=5-3AB)Dp7Y=QF)Gd5NZ8aTma9j$ldO^BL8BJOdvhCUL-Q zT9cqHD#k66Lp}RTzb)I|t!oUhCrr&){c%D&4j>p7LrZX-vVuJM9sUBGzGe_N@XGqE z;Jc2i6nhugj(2$z7)#)lq`7%gM&Zz~FdC-xy|GF{G9L>aPkLmrQ)%tCZaOp!92|<~ zhQqnES=p7--|ijFa}Q|dgR96vm|-=OUGwFO9M%V{mL|Kl%0AbF-UF!OcVGa>O&j<) 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 literal 0 HcmV?d00001 diff --git a/docs/img/improve.png b/docs/_images/improve.png similarity index 100% rename from docs/img/improve.png rename to docs/_images/improve.png diff --git a/docs/_images/linear_box_to_box_map.png b/docs/_images/linear_box_to_box_map.png new file mode 100644 index 0000000000000000000000000000000000000000..f30cbf6e3ec939f843f6d41f0dceed55052365ee GIT binary patch literal 12532 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 R;D0kfR1`Gjt7R?2{{tmh{-^)| literal 0 HcmV?d00001 diff --git a/docs/algorithms/design_imgs/naf.png b/docs/_images/naf.png similarity index 100% rename from docs/algorithms/design_imgs/naf.png rename to docs/_images/naf.png diff --git a/docs/algorithms/design_imgs/nec.png b/docs/_images/nec.png similarity index 100% rename from docs/algorithms/design_imgs/nec.png rename to docs/_images/nec.png diff --git a/docs/img/network.png b/docs/_images/network.png similarity index 100% rename from docs/img/network.png rename to docs/_images/network.png diff --git a/docs/img/observe.png b/docs/_images/observe.png similarity index 100% rename from docs/img/observe.png rename to docs/_images/observe.png diff --git a/docs/_images/partial_discrete_action_space_map.png b/docs/_images/partial_discrete_action_space_map.png new file mode 100644 index 0000000000000000000000000000000000000000..6cad5bbcb2e3dd5f0e09eca968b0f864690b3d98 GIT binary patch literal 8562 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 Hmf`;c+GI_+ literal 0 HcmV?d00001 diff --git a/docs/algorithms/design_imgs/pg.png b/docs/_images/pg.png similarity index 100% rename from docs/algorithms/design_imgs/pg.png rename to docs/_images/pg.png diff --git a/docs/algorithms/design_imgs/ppo.png b/docs/_images/ppo.png similarity index 100% rename from docs/algorithms/design_imgs/ppo.png rename to docs/_images/ppo.png diff --git a/docs/_images/qr_dqn.png b/docs/_images/qr_dqn.png new file mode 100644 index 0000000000000000000000000000000000000000..a74d72fc33cfd8144295618b62298e0165f97341 GIT binary patch literal 26793 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 H7s3AngS2Zn literal 0 HcmV?d00001 diff --git a/docs/_images/rainbow.png b/docs/_images/rainbow.png new file mode 100644 index 0000000000000000000000000000000000000000..b3e266d753e08534a25b6d148b89de03085bbc74 GIT binary patch literal 38143 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