From 623c28fb1dc8d29484271975e163cdf8d1d278f5 Mon Sep 17 00:00:00 2001 From: "Documenter.jl" Date: Wed, 18 Oct 2023 07:48:49 +0000 Subject: [PATCH] build based on b046bf8 --- previews/PR3545/.documenter-siteinfo.json | 1 + previews/PR3545/JuMP.pdf | Bin 0 -> 4688919 bytes .../PR3545/api/JuMP.Containers/index.html | 192 ++ previews/PR3545/api/JuMP/index.html | 2074 ++++++++++++++ previews/PR3545/assets/case9mod.png | Bin 0 -> 234660 bytes previews/PR3545/assets/documenter.js | 883 ++++++ previews/PR3545/assets/extra_styles.css | 4 + previews/PR3545/assets/full_sudoku.png | Bin 0 -> 119423 bytes .../assets/logo-dark-with-text-background.svg | 48 + .../PR3545/assets/logo-dark-with-text.svg | 47 + .../PR3545/assets/logo-dark-without-text.svg | 46 + previews/PR3545/assets/logo-dark.svg | 47 + .../assets/logo-with-text-background.svg | 48 + previews/PR3545/assets/logo-with-text.pdf | Bin 0 -> 2157 bytes previews/PR3545/assets/logo-with-text.svg | 47 + previews/PR3545/assets/logo-without-text.svg | 46 + previews/PR3545/assets/logo.svg | 47 + previews/PR3545/assets/logo_constructor.jl | 395 +++ previews/PR3545/assets/n_queens4.png | Bin 0 -> 8151 bytes previews/PR3545/assets/numfocus-logo.png | Bin 0 -> 4883 bytes previews/PR3545/assets/partial_sudoku.png | Bin 0 -> 71711 bytes previews/PR3545/assets/power_systems.png | Bin 0 -> 23020 bytes previews/PR3545/assets/space_shuttle.png | Bin 0 -> 292247 bytes .../PR3545/assets/themes/documenter-dark.css | 7 + .../PR3545/assets/themes/documenter-light.css | 9 + previews/PR3545/assets/themeswap.js | 84 + previews/PR3545/assets/warner.js | 52 + .../algebraic_modeling_languages/index.html | 129 + previews/PR3545/changelog/index.html | 15 + .../PR3545/developers/checklists/index.html | 65 + .../PR3545/developers/contributing/index.html | 28 + .../custom_solver_binaries/index.html | 93 + .../PR3545/developers/extensions/index.html | 304 ++ previews/PR3545/developers/roadmap/index.html | 6 + previews/PR3545/developers/style/index.html | 185 ++ .../extensions/DimensionalData/index.html | 42 + .../PR3545/extensions/introduction/index.html | 6 + previews/PR3545/index.html | 13 + previews/PR3545/installation/index.html | 24 + previews/PR3545/manual/callbacks/index.html | 87 + previews/PR3545/manual/complex/index.html | 151 + previews/PR3545/manual/constraints/index.html | 766 ++++++ previews/PR3545/manual/containers/index.html | 227 ++ previews/PR3545/manual/expressions/index.html | 230 ++ previews/PR3545/manual/models/index.html | 237 ++ previews/PR3545/manual/nlp/index.html | 347 +++ previews/PR3545/manual/nonlinear/index.html | 199 ++ previews/PR3545/manual/objective/index.html | 168 ++ previews/PR3545/manual/solutions/index.html | 374 +++ previews/PR3545/manual/variables/index.html | 637 +++++ previews/PR3545/moi/assets/latency.png | Bin 0 -> 25175 bytes .../PR3545/moi/background/duality/index.html | 84 + .../infeasibility_certificates/index.html | 32 + .../moi/background/motivation/index.html | 6 + .../background/naming_conventions/index.html | 6 + previews/PR3545/moi/changelog/index.html | 34 + .../moi/developer/checklists/index.html | 116 + previews/PR3545/moi/index.html | 13 + .../PR3545/moi/manual/constraints/index.html | 26 + previews/PR3545/moi/manual/models/index.html | 6 + .../PR3545/moi/manual/modification/index.html | 129 + .../PR3545/moi/manual/solutions/index.html | 39 + .../moi/manual/standard_form/index.html | 10 + .../PR3545/moi/manual/variables/index.html | 17 + .../PR3545/moi/reference/callbacks/index.html | 36 + .../moi/reference/constraints/index.html | 16 + .../PR3545/moi/reference/errors/index.html | 52 + .../PR3545/moi/reference/models/index.html | 136 + .../moi/reference/modification/index.html | 31 + .../PR3545/moi/reference/nonlinear/index.html | 82 + .../moi/reference/standard_form/index.html | 993 +++++++ .../PR3545/moi/reference/variables/index.html | 28 + previews/PR3545/moi/release_notes/index.html | 34 + .../submodules/Benchmarks/overview/index.html | 24 + .../Benchmarks/reference/index.html | 21 + .../Bridges/list_of_bridges/index.html | 114 + .../submodules/Bridges/overview/index.html | 57 + .../submodules/Bridges/reference/index.html | 199 ++ .../FileFormats/overview/index.html | 141 + .../FileFormats/reference/index.html | 22 + .../submodules/Nonlinear/overview/index.html | 187 ++ .../submodules/Nonlinear/reference/index.html | 151 + .../moi/submodules/Test/overview/index.html | 170 ++ .../moi/submodules/Test/reference/index.html | 54 + .../submodules/Utilities/overview/index.html | 254 ++ .../submodules/Utilities/reference/index.html | 268 ++ .../tutorials/bridging_constraint/index.html | 106 + .../PR3545/moi/tutorials/example/index.html | 49 + .../moi/tutorials/implementing/index.html | 118 + .../PR3545/moi/tutorials/latency/index.html | 133 + .../manipulating_expressions/index.html | 26 + .../moi/tutorials/mathprogbase/index.html | 58 + previews/PR3545/packages/Alpine/index.html | 49 + .../PR3545/packages/AmplNLWriter/index.html | 15 + previews/PR3545/packages/BARON/index.html | 9 + .../PR3545/packages/BilevelJuMP/index.html | 37 + previews/PR3545/packages/CDCS/index.html | 30 + previews/PR3545/packages/CDDLib/index.html | 9 + previews/PR3545/packages/COPT/index.html | 42 + previews/PR3545/packages/COSMO/index.html | 37 + previews/PR3545/packages/CPLEX/index.html | 164 ++ previews/PR3545/packages/CSDP/index.html | 13 + previews/PR3545/packages/Cbc/index.html | 12 + previews/PR3545/packages/Clarabel/index.html | 26 + previews/PR3545/packages/Clp/index.html | 10 + previews/PR3545/packages/DAQP/index.html | 8 + previews/PR3545/packages/DiffOpt/index.html | 23 + .../PR3545/packages/Dualization/index.html | 13 + previews/PR3545/packages/ECOS/index.html | 9 + previews/PR3545/packages/GAMS/index.html | 25 + previews/PR3545/packages/GLPK/index.html | 39 + previews/PR3545/packages/Gurobi/index.html | 97 + previews/PR3545/packages/HiGHS/index.html | 10 + previews/PR3545/packages/Hypatia/index.html | 45 + .../PR3545/packages/InfiniteOpt/index.html | 15 + previews/PR3545/packages/Ipopt/index.html | 118 + previews/PR3545/packages/Juniper/index.html | 36 + previews/PR3545/packages/KNITRO/index.html | 13 + previews/PR3545/packages/Loraine/index.html | 32 + previews/PR3545/packages/MadNLP/index.html | 48 + previews/PR3545/packages/MiniZinc/index.html | 57 + .../PR3545/packages/MosekTools/index.html | 10 + .../MultiObjectiveAlgorithms/index.html | 12 + .../PR3545/packages/NEOSServer/index.html | 31 + previews/PR3545/packages/NLopt/index.html | 9 + previews/PR3545/packages/OSQP/index.html | 9 + .../PR3545/packages/PATHSolver/index.html | 168 ++ previews/PR3545/packages/Pajarito/index.html | 30 + .../ParametricOptInterface/index.html | 16 + previews/PR3545/packages/Pavito/index.html | 16 + previews/PR3545/packages/Plasmo/index.html | 49 + previews/PR3545/packages/PolyJuMP/index.html | 7 + previews/PR3545/packages/ProxSDP/index.html | 59 + previews/PR3545/packages/SCIP/index.html | 13 + previews/PR3545/packages/SCS/index.html | 71 + previews/PR3545/packages/SDDP/index.html | 6 + previews/PR3545/packages/SDPA/index.html | 15 + previews/PR3545/packages/SDPNAL/index.html | 21 + previews/PR3545/packages/SDPT3/index.html | 32 + previews/PR3545/packages/SeDuMi/index.html | 20 + .../PR3545/packages/SumOfSquares/index.html | 7 + previews/PR3545/packages/Tulip/index.html | 31 + previews/PR3545/packages/Xpress/index.html | 11 + previews/PR3545/packages/solvers/index.html | 6 + previews/PR3545/release_notes/index.html | 15 + previews/PR3545/search_index.js | 3 + previews/PR3545/should_i_use/index.html | 6 + previews/PR3545/siteinfo.js | 1 + .../algorithms/benders_decomposition.jl | 376 +++ .../benders_decomposition/index.html | 178 ++ .../cutting_stock_column_generation.jl | 386 +++ .../4f0b6308.svg | 350 +++ .../7ac4d9b9.svg | 516 ++++ .../index.html | 290 ++ .../algorithms/parallelism/index.html | 129 + .../algorithms/tsp_lazy_constraints.jl | 277 ++ .../tsp_lazy_constraints/37093ec2.svg | 122 + .../tsp_lazy_constraints/cfa6e41c.svg | 122 + .../tsp_lazy_constraints/index.html | 94 + .../applications/optimal_power_flow.jl | 470 ++++ .../optimal_power_flow/index.html | 232 ++ .../tutorials/applications/power_systems.jl | 559 ++++ .../applications/power_systems/159ca9b2.svg | 78 + .../applications/power_systems/861ddd6d.svg | 43 + .../applications/power_systems/d606e15d.svg | 80 + .../applications/power_systems/index.html | 394 +++ .../applications/two_stage_stochastic.jl | 239 ++ .../two_stage_stochastic/4d0448a3.svg | 105 + .../two_stage_stochastic/7a045a4d.svg | 84 + .../two_stage_stochastic/d2971e30.svg | 110 + .../two_stage_stochastic/d72f24ca.svg | 80 + .../two_stage_stochastic/index.html | 140 + .../PR3545/tutorials/applications/web_app.jl | 165 ++ .../tutorials/applications/web_app/index.html | 91 + .../tutorials/conic/arbitrary_precision.jl | 156 ++ .../conic/arbitrary_precision/index.html | 80 + .../PR3545/tutorials/conic/dualization.jl | 255 ++ .../tutorials/conic/dualization/index.html | 213 ++ .../PR3545/tutorials/conic/ellipse_approx.jl | 262 ++ .../conic/ellipse_approx/720b38f8.svg | 2451 +++++++++++++++++ .../conic/ellipse_approx/f911a23c.svg | 2450 ++++++++++++++++ .../tutorials/conic/ellipse_approx/index.html | 341 +++ .../tutorials/conic/experiment_design.jl | 218 ++ .../conic/experiment_design/index.html | 98 + .../tutorials/conic/introduction/index.html | 9 + .../tutorials/conic/logistic_regression.jl | 275 ++ .../conic/logistic_regression/index.html | 107 + .../PR3545/tutorials/conic/min_ellipse.jl | 151 + .../tutorials/conic/min_ellipse/422b8643.svg | 53 + .../tutorials/conic/min_ellipse/f357ac60.svg | 50 + .../tutorials/conic/min_ellipse/index.html | 95 + .../tutorials/conic/quantum_discrimination.jl | 147 + .../conic/quantum_discrimination/index.html | 73 + .../PR3545/tutorials/conic/simple_examples.jl | 422 +++ .../conic/simple_examples/9da12647.svg | 49 + .../conic/simple_examples/index.html | 242 ++ .../PR3545/tutorials/conic/start_values.jl | 88 + .../tutorials/conic/start_values/index.html | 83 + .../PR3545/tutorials/conic/tips_and_tricks.jl | 418 +++ .../conic/tips_and_tricks/index.html | 162 ++ .../tutorials/getting_started/data/Cereal.txt | 24 + .../getting_started/data/SalesData.xlsx | Bin 0 -> 7463 bytes .../tutorials/getting_started/data/Soccer.txt | 21 + .../getting_started/data/StarWars.csv | 21 + .../data/passport-index-matrix.csv | 200 ++ .../tutorials/getting_started/debugging.jl | 355 +++ .../getting_started/debugging/index.html | 23 + .../design_patterns_for_larger_models.jl | 688 +++++ .../index.html | 517 ++++ .../getting_started_with_JuMP.jl | 509 ++++ .../getting_started_with_JuMP/index.html | 224 ++ .../getting_started_with_data_and_plotting.jl | 389 +++ .../75b002ac.svg | 73 + .../e80dc9fb.svg | 62 + .../f2f35c9c.svg | 59 + .../index.html | 238 ++ .../getting_started_with_julia.jl | 722 +++++ .../getting_started_with_julia/index.html | 183 ++ .../getting_started_with_sets_and_indexing.jl | 293 ++ .../index.html | 222 ++ .../getting_started/introduction/index.html | 6 + .../getting_started/performance_tips.jl | 193 ++ .../performance_tips/index.html | 40 + previews/PR3545/tutorials/linear/callbacks.jl | 185 ++ .../tutorials/linear/callbacks/index.html | 152 + previews/PR3545/tutorials/linear/cannery.jl | 130 + .../tutorials/linear/cannery/index.html | 89 + .../PR3545/tutorials/linear/commodity_nz.db | Bin 0 -> 45056 bytes .../linear/constraint_programming.jl | 190 ++ .../linear/constraint_programming/index.html | 92 + previews/PR3545/tutorials/linear/diet.jl | 194 ++ .../PR3545/tutorials/linear/diet/index.html | 144 + .../tutorials/linear/facility_location.jl | 300 ++ .../linear/facility_location/2af2c5c8.svg | 69 + .../linear/facility_location/33ed350c.svg | 69 + .../linear/facility_location/79368a14.svg | 61 + .../linear/facility_location/d976198e.svg | 57 + .../linear/facility_location/index.html | 170 ++ .../tutorials/linear/factory_schedule.jl | 327 +++ .../linear/factory_schedule/067425ca.svg | 74 + .../linear/factory_schedule/5aa318a5.svg | 162 ++ .../linear/factory_schedule/a9e32e1f.svg | 160 ++ .../linear/factory_schedule/index.html | 165 ++ .../linear/factory_schedule_demand.txt | 13 + .../linear/factory_schedule_factories.txt | 25 + previews/PR3545/tutorials/linear/finance.jl | 146 + .../tutorials/linear/finance/index.html | 54 + .../tutorials/linear/geographic_clustering.jl | 176 ++ .../linear/geographic_clustering/index.html | 137 + .../tutorials/linear/introduction/index.html | 10 + previews/PR3545/tutorials/linear/knapsack.jl | 154 ++ .../tutorials/linear/knapsack/index.html | 86 + .../PR3545/tutorials/linear/lp_sensitivity.jl | 155 ++ .../linear/lp_sensitivity/index.html | 73 + .../PR3545/tutorials/linear/mip_duality.jl | 124 + .../tutorials/linear/mip_duality/index.html | 112 + previews/PR3545/tutorials/linear/multi.jl | 193 ++ previews/PR3545/tutorials/linear/multi.sqlite | Bin 0 -> 45056 bytes .../PR3545/tutorials/linear/multi/index.html | 171 ++ .../linear/multi_commodity_network.jl | 218 ++ .../linear/multi_commodity_network/index.html | 96 + .../linear/multi_objective_examples.jl | 120 + .../multi_objective_examples/index.html | 142 + .../linear/multi_objective_knapsack.jl | 185 ++ .../multi_objective_knapsack/3d6b8e22.svg | 53 + .../multi_objective_knapsack/894e719c.svg | 55 + .../multi_objective_knapsack/index.html | 94 + previews/PR3545/tutorials/linear/n-queens.jl | 72 + .../tutorials/linear/n-queens/index.html | 25 + .../PR3545/tutorials/linear/network_flows.jl | 168 ++ .../tutorials/linear/network_flows/index.html | 91 + previews/PR3545/tutorials/linear/sudoku.jl | 212 ++ .../PR3545/tutorials/linear/sudoku/index.html | 94 + .../tutorials/linear/tips_and_tricks.jl | 330 +++ .../linear/tips_and_tricks/index.html | 67 + previews/PR3545/tutorials/linear/transp.jl | 142 + previews/PR3545/tutorials/linear/transp.txt | 5 + .../PR3545/tutorials/linear/transp/index.html | 76 + .../tutorials/nonlinear/complementarity.jl | 208 ++ .../nonlinear/complementarity/index.html | 140 + .../nonlinear/introduction/index.html | 10 + .../tutorials/nonlinear/nested_problems.jl | 235 ++ .../nonlinear/nested_problems/index.html | 130 + .../PR3545/tutorials/nonlinear/portfolio.jl | 255 ++ .../nonlinear/portfolio/bc5240e5.svg | 581 ++++ .../tutorials/nonlinear/portfolio/index.html | 136 + .../tutorials/nonlinear/querying_hessians.jl | 257 ++ .../nonlinear/querying_hessians/index.html | 139 + .../tutorials/nonlinear/rocket_control.jl | 155 ++ .../nonlinear/rocket_control/e71e1f8a.svg | 130 + .../nonlinear/rocket_control/index.html | 67 + .../tutorials/nonlinear/simple_examples.jl | 168 ++ .../nonlinear/simple_examples/index.html | 183 ++ .../space_shuttle_reentry_trajectory.jl | 402 +++ .../70da313b.svg | 48 + .../a8e8c9e9.svg | 97 + .../e6ea528d.svg | 182 ++ .../index.html | 270 ++ .../tutorials/nonlinear/tips_and_tricks.jl | 129 + .../nonlinear/tips_and_tricks/index.html | 70 + .../nonlinear/user_defined_hessians.jl | 75 + .../user_defined_hessians/index.html | 42 + 302 files changed, 44696 insertions(+) create mode 100644 previews/PR3545/.documenter-siteinfo.json create mode 100644 previews/PR3545/JuMP.pdf create mode 100644 previews/PR3545/api/JuMP.Containers/index.html create mode 100644 previews/PR3545/api/JuMP/index.html create mode 100644 previews/PR3545/assets/case9mod.png create mode 100644 previews/PR3545/assets/documenter.js create mode 100644 previews/PR3545/assets/extra_styles.css create mode 100644 previews/PR3545/assets/full_sudoku.png create mode 100644 previews/PR3545/assets/logo-dark-with-text-background.svg create mode 100644 previews/PR3545/assets/logo-dark-with-text.svg create mode 100644 previews/PR3545/assets/logo-dark-without-text.svg create mode 100644 previews/PR3545/assets/logo-dark.svg create mode 100644 previews/PR3545/assets/logo-with-text-background.svg create mode 100644 previews/PR3545/assets/logo-with-text.pdf create mode 100644 previews/PR3545/assets/logo-with-text.svg create mode 100644 previews/PR3545/assets/logo-without-text.svg create mode 100644 previews/PR3545/assets/logo.svg create mode 100644 previews/PR3545/assets/logo_constructor.jl create mode 100644 previews/PR3545/assets/n_queens4.png create mode 100644 previews/PR3545/assets/numfocus-logo.png create mode 100644 previews/PR3545/assets/partial_sudoku.png create mode 100644 previews/PR3545/assets/power_systems.png create mode 100644 previews/PR3545/assets/space_shuttle.png create mode 100644 previews/PR3545/assets/themes/documenter-dark.css create mode 100644 previews/PR3545/assets/themes/documenter-light.css create mode 100644 previews/PR3545/assets/themeswap.js create mode 100644 previews/PR3545/assets/warner.js create mode 100644 previews/PR3545/background/algebraic_modeling_languages/index.html create mode 100644 previews/PR3545/changelog/index.html create mode 100644 previews/PR3545/developers/checklists/index.html create mode 100644 previews/PR3545/developers/contributing/index.html create mode 100644 previews/PR3545/developers/custom_solver_binaries/index.html create mode 100644 previews/PR3545/developers/extensions/index.html create mode 100644 previews/PR3545/developers/roadmap/index.html create mode 100644 previews/PR3545/developers/style/index.html create mode 100644 previews/PR3545/extensions/DimensionalData/index.html create mode 100644 previews/PR3545/extensions/introduction/index.html create mode 100644 previews/PR3545/index.html create mode 100644 previews/PR3545/installation/index.html create mode 100644 previews/PR3545/manual/callbacks/index.html create mode 100644 previews/PR3545/manual/complex/index.html create mode 100644 previews/PR3545/manual/constraints/index.html create mode 100644 previews/PR3545/manual/containers/index.html create mode 100644 previews/PR3545/manual/expressions/index.html create mode 100644 previews/PR3545/manual/models/index.html create mode 100644 previews/PR3545/manual/nlp/index.html create mode 100644 previews/PR3545/manual/nonlinear/index.html create mode 100644 previews/PR3545/manual/objective/index.html create mode 100644 previews/PR3545/manual/solutions/index.html create mode 100644 previews/PR3545/manual/variables/index.html create mode 100755 previews/PR3545/moi/assets/latency.png create mode 100644 previews/PR3545/moi/background/duality/index.html create mode 100644 previews/PR3545/moi/background/infeasibility_certificates/index.html create mode 100644 previews/PR3545/moi/background/motivation/index.html create mode 100644 previews/PR3545/moi/background/naming_conventions/index.html create mode 100644 previews/PR3545/moi/changelog/index.html create mode 100644 previews/PR3545/moi/developer/checklists/index.html create mode 100644 previews/PR3545/moi/index.html create mode 100644 previews/PR3545/moi/manual/constraints/index.html create mode 100644 previews/PR3545/moi/manual/models/index.html create mode 100644 previews/PR3545/moi/manual/modification/index.html create mode 100644 previews/PR3545/moi/manual/solutions/index.html create mode 100644 previews/PR3545/moi/manual/standard_form/index.html create mode 100644 previews/PR3545/moi/manual/variables/index.html create mode 100644 previews/PR3545/moi/reference/callbacks/index.html create mode 100644 previews/PR3545/moi/reference/constraints/index.html create mode 100644 previews/PR3545/moi/reference/errors/index.html create mode 100644 previews/PR3545/moi/reference/models/index.html create mode 100644 previews/PR3545/moi/reference/modification/index.html create mode 100644 previews/PR3545/moi/reference/nonlinear/index.html create mode 100644 previews/PR3545/moi/reference/standard_form/index.html create mode 100644 previews/PR3545/moi/reference/variables/index.html create mode 100644 previews/PR3545/moi/release_notes/index.html create mode 100644 previews/PR3545/moi/submodules/Benchmarks/overview/index.html create mode 100644 previews/PR3545/moi/submodules/Benchmarks/reference/index.html create mode 100644 previews/PR3545/moi/submodules/Bridges/list_of_bridges/index.html create mode 100644 previews/PR3545/moi/submodules/Bridges/overview/index.html create mode 100644 previews/PR3545/moi/submodules/Bridges/reference/index.html create mode 100644 previews/PR3545/moi/submodules/FileFormats/overview/index.html create mode 100644 previews/PR3545/moi/submodules/FileFormats/reference/index.html create mode 100644 previews/PR3545/moi/submodules/Nonlinear/overview/index.html create mode 100644 previews/PR3545/moi/submodules/Nonlinear/reference/index.html create mode 100644 previews/PR3545/moi/submodules/Test/overview/index.html create mode 100644 previews/PR3545/moi/submodules/Test/reference/index.html create mode 100644 previews/PR3545/moi/submodules/Utilities/overview/index.html create mode 100644 previews/PR3545/moi/submodules/Utilities/reference/index.html create mode 100644 previews/PR3545/moi/tutorials/bridging_constraint/index.html create mode 100644 previews/PR3545/moi/tutorials/example/index.html create mode 100644 previews/PR3545/moi/tutorials/implementing/index.html create mode 100644 previews/PR3545/moi/tutorials/latency/index.html create mode 100644 previews/PR3545/moi/tutorials/manipulating_expressions/index.html create mode 100644 previews/PR3545/moi/tutorials/mathprogbase/index.html create mode 100644 previews/PR3545/packages/Alpine/index.html create mode 100644 previews/PR3545/packages/AmplNLWriter/index.html create mode 100644 previews/PR3545/packages/BARON/index.html create mode 100644 previews/PR3545/packages/BilevelJuMP/index.html create mode 100644 previews/PR3545/packages/CDCS/index.html create mode 100644 previews/PR3545/packages/CDDLib/index.html create mode 100644 previews/PR3545/packages/COPT/index.html create mode 100644 previews/PR3545/packages/COSMO/index.html create mode 100644 previews/PR3545/packages/CPLEX/index.html create mode 100644 previews/PR3545/packages/CSDP/index.html create mode 100644 previews/PR3545/packages/Cbc/index.html create mode 100644 previews/PR3545/packages/Clarabel/index.html create mode 100644 previews/PR3545/packages/Clp/index.html create mode 100644 previews/PR3545/packages/DAQP/index.html create mode 100644 previews/PR3545/packages/DiffOpt/index.html create mode 100644 previews/PR3545/packages/Dualization/index.html create mode 100644 previews/PR3545/packages/ECOS/index.html create mode 100644 previews/PR3545/packages/GAMS/index.html create mode 100644 previews/PR3545/packages/GLPK/index.html create mode 100644 previews/PR3545/packages/Gurobi/index.html create mode 100644 previews/PR3545/packages/HiGHS/index.html create mode 100644 previews/PR3545/packages/Hypatia/index.html create mode 100644 previews/PR3545/packages/InfiniteOpt/index.html create mode 100644 previews/PR3545/packages/Ipopt/index.html create mode 100644 previews/PR3545/packages/Juniper/index.html create mode 100644 previews/PR3545/packages/KNITRO/index.html create mode 100644 previews/PR3545/packages/Loraine/index.html create mode 100644 previews/PR3545/packages/MadNLP/index.html create mode 100644 previews/PR3545/packages/MiniZinc/index.html create mode 100644 previews/PR3545/packages/MosekTools/index.html create mode 100644 previews/PR3545/packages/MultiObjectiveAlgorithms/index.html create mode 100644 previews/PR3545/packages/NEOSServer/index.html create mode 100644 previews/PR3545/packages/NLopt/index.html create mode 100644 previews/PR3545/packages/OSQP/index.html create mode 100644 previews/PR3545/packages/PATHSolver/index.html create mode 100644 previews/PR3545/packages/Pajarito/index.html create mode 100644 previews/PR3545/packages/ParametricOptInterface/index.html create mode 100644 previews/PR3545/packages/Pavito/index.html create mode 100644 previews/PR3545/packages/Plasmo/index.html create mode 100644 previews/PR3545/packages/PolyJuMP/index.html create mode 100644 previews/PR3545/packages/ProxSDP/index.html create mode 100644 previews/PR3545/packages/SCIP/index.html create mode 100644 previews/PR3545/packages/SCS/index.html create mode 100644 previews/PR3545/packages/SDDP/index.html create mode 100644 previews/PR3545/packages/SDPA/index.html create mode 100644 previews/PR3545/packages/SDPNAL/index.html create mode 100644 previews/PR3545/packages/SDPT3/index.html create mode 100644 previews/PR3545/packages/SeDuMi/index.html create mode 100644 previews/PR3545/packages/SumOfSquares/index.html create mode 100644 previews/PR3545/packages/Tulip/index.html create mode 100644 previews/PR3545/packages/Xpress/index.html create mode 100644 previews/PR3545/packages/solvers/index.html create mode 100644 previews/PR3545/release_notes/index.html create mode 100644 previews/PR3545/search_index.js create mode 100644 previews/PR3545/should_i_use/index.html create mode 100644 previews/PR3545/siteinfo.js create mode 100644 previews/PR3545/tutorials/algorithms/benders_decomposition.jl create mode 100644 previews/PR3545/tutorials/algorithms/benders_decomposition/index.html create mode 100644 previews/PR3545/tutorials/algorithms/cutting_stock_column_generation.jl create mode 100644 previews/PR3545/tutorials/algorithms/cutting_stock_column_generation/4f0b6308.svg create mode 100644 previews/PR3545/tutorials/algorithms/cutting_stock_column_generation/7ac4d9b9.svg create mode 100644 previews/PR3545/tutorials/algorithms/cutting_stock_column_generation/index.html create mode 100644 previews/PR3545/tutorials/algorithms/parallelism/index.html create mode 100644 previews/PR3545/tutorials/algorithms/tsp_lazy_constraints.jl create mode 100644 previews/PR3545/tutorials/algorithms/tsp_lazy_constraints/37093ec2.svg create mode 100644 previews/PR3545/tutorials/algorithms/tsp_lazy_constraints/cfa6e41c.svg create mode 100644 previews/PR3545/tutorials/algorithms/tsp_lazy_constraints/index.html create mode 100644 previews/PR3545/tutorials/applications/optimal_power_flow.jl create mode 100644 previews/PR3545/tutorials/applications/optimal_power_flow/index.html create mode 100644 previews/PR3545/tutorials/applications/power_systems.jl create mode 100644 previews/PR3545/tutorials/applications/power_systems/159ca9b2.svg create mode 100644 previews/PR3545/tutorials/applications/power_systems/861ddd6d.svg create mode 100644 previews/PR3545/tutorials/applications/power_systems/d606e15d.svg create mode 100644 previews/PR3545/tutorials/applications/power_systems/index.html create mode 100644 previews/PR3545/tutorials/applications/two_stage_stochastic.jl create mode 100644 previews/PR3545/tutorials/applications/two_stage_stochastic/4d0448a3.svg create mode 100644 previews/PR3545/tutorials/applications/two_stage_stochastic/7a045a4d.svg create mode 100644 previews/PR3545/tutorials/applications/two_stage_stochastic/d2971e30.svg create mode 100644 previews/PR3545/tutorials/applications/two_stage_stochastic/d72f24ca.svg create mode 100644 previews/PR3545/tutorials/applications/two_stage_stochastic/index.html create mode 100644 previews/PR3545/tutorials/applications/web_app.jl create mode 100644 previews/PR3545/tutorials/applications/web_app/index.html create mode 100644 previews/PR3545/tutorials/conic/arbitrary_precision.jl create mode 100644 previews/PR3545/tutorials/conic/arbitrary_precision/index.html create mode 100644 previews/PR3545/tutorials/conic/dualization.jl create mode 100644 previews/PR3545/tutorials/conic/dualization/index.html create mode 100644 previews/PR3545/tutorials/conic/ellipse_approx.jl create mode 100644 previews/PR3545/tutorials/conic/ellipse_approx/720b38f8.svg create mode 100644 previews/PR3545/tutorials/conic/ellipse_approx/f911a23c.svg create mode 100644 previews/PR3545/tutorials/conic/ellipse_approx/index.html create mode 100644 previews/PR3545/tutorials/conic/experiment_design.jl create mode 100644 previews/PR3545/tutorials/conic/experiment_design/index.html create mode 100644 previews/PR3545/tutorials/conic/introduction/index.html create mode 100644 previews/PR3545/tutorials/conic/logistic_regression.jl create mode 100644 previews/PR3545/tutorials/conic/logistic_regression/index.html create mode 100644 previews/PR3545/tutorials/conic/min_ellipse.jl create mode 100644 previews/PR3545/tutorials/conic/min_ellipse/422b8643.svg create mode 100644 previews/PR3545/tutorials/conic/min_ellipse/f357ac60.svg create mode 100644 previews/PR3545/tutorials/conic/min_ellipse/index.html create mode 100644 previews/PR3545/tutorials/conic/quantum_discrimination.jl create mode 100644 previews/PR3545/tutorials/conic/quantum_discrimination/index.html create mode 100644 previews/PR3545/tutorials/conic/simple_examples.jl create mode 100644 previews/PR3545/tutorials/conic/simple_examples/9da12647.svg create mode 100644 previews/PR3545/tutorials/conic/simple_examples/index.html create mode 100644 previews/PR3545/tutorials/conic/start_values.jl create mode 100644 previews/PR3545/tutorials/conic/start_values/index.html create mode 100644 previews/PR3545/tutorials/conic/tips_and_tricks.jl create mode 100644 previews/PR3545/tutorials/conic/tips_and_tricks/index.html create mode 100644 previews/PR3545/tutorials/getting_started/data/Cereal.txt create mode 100644 previews/PR3545/tutorials/getting_started/data/SalesData.xlsx create mode 100644 previews/PR3545/tutorials/getting_started/data/Soccer.txt create mode 100644 previews/PR3545/tutorials/getting_started/data/StarWars.csv create mode 100644 previews/PR3545/tutorials/getting_started/data/passport-index-matrix.csv create mode 100644 previews/PR3545/tutorials/getting_started/debugging.jl create mode 100644 previews/PR3545/tutorials/getting_started/debugging/index.html create mode 100644 previews/PR3545/tutorials/getting_started/design_patterns_for_larger_models.jl create mode 100644 previews/PR3545/tutorials/getting_started/design_patterns_for_larger_models/index.html create mode 100644 previews/PR3545/tutorials/getting_started/getting_started_with_JuMP.jl create mode 100644 previews/PR3545/tutorials/getting_started/getting_started_with_JuMP/index.html create mode 100644 previews/PR3545/tutorials/getting_started/getting_started_with_data_and_plotting.jl create mode 100644 previews/PR3545/tutorials/getting_started/getting_started_with_data_and_plotting/75b002ac.svg create mode 100644 previews/PR3545/tutorials/getting_started/getting_started_with_data_and_plotting/e80dc9fb.svg create mode 100644 previews/PR3545/tutorials/getting_started/getting_started_with_data_and_plotting/f2f35c9c.svg create mode 100644 previews/PR3545/tutorials/getting_started/getting_started_with_data_and_plotting/index.html create mode 100644 previews/PR3545/tutorials/getting_started/getting_started_with_julia.jl create mode 100644 previews/PR3545/tutorials/getting_started/getting_started_with_julia/index.html create mode 100644 previews/PR3545/tutorials/getting_started/getting_started_with_sets_and_indexing.jl create mode 100644 previews/PR3545/tutorials/getting_started/getting_started_with_sets_and_indexing/index.html create mode 100644 previews/PR3545/tutorials/getting_started/introduction/index.html create mode 100644 previews/PR3545/tutorials/getting_started/performance_tips.jl create mode 100644 previews/PR3545/tutorials/getting_started/performance_tips/index.html create mode 100644 previews/PR3545/tutorials/linear/callbacks.jl create mode 100644 previews/PR3545/tutorials/linear/callbacks/index.html create mode 100644 previews/PR3545/tutorials/linear/cannery.jl create mode 100644 previews/PR3545/tutorials/linear/cannery/index.html create mode 100644 previews/PR3545/tutorials/linear/commodity_nz.db create mode 100644 previews/PR3545/tutorials/linear/constraint_programming.jl create mode 100644 previews/PR3545/tutorials/linear/constraint_programming/index.html create mode 100644 previews/PR3545/tutorials/linear/diet.jl create mode 100644 previews/PR3545/tutorials/linear/diet/index.html create mode 100644 previews/PR3545/tutorials/linear/facility_location.jl create mode 100644 previews/PR3545/tutorials/linear/facility_location/2af2c5c8.svg create mode 100644 previews/PR3545/tutorials/linear/facility_location/33ed350c.svg create mode 100644 previews/PR3545/tutorials/linear/facility_location/79368a14.svg create mode 100644 previews/PR3545/tutorials/linear/facility_location/d976198e.svg create mode 100644 previews/PR3545/tutorials/linear/facility_location/index.html create mode 100644 previews/PR3545/tutorials/linear/factory_schedule.jl create mode 100644 previews/PR3545/tutorials/linear/factory_schedule/067425ca.svg create mode 100644 previews/PR3545/tutorials/linear/factory_schedule/5aa318a5.svg create mode 100644 previews/PR3545/tutorials/linear/factory_schedule/a9e32e1f.svg create mode 100644 previews/PR3545/tutorials/linear/factory_schedule/index.html create mode 100644 previews/PR3545/tutorials/linear/factory_schedule_demand.txt create mode 100644 previews/PR3545/tutorials/linear/factory_schedule_factories.txt create mode 100644 previews/PR3545/tutorials/linear/finance.jl create mode 100644 previews/PR3545/tutorials/linear/finance/index.html create mode 100644 previews/PR3545/tutorials/linear/geographic_clustering.jl create mode 100644 previews/PR3545/tutorials/linear/geographic_clustering/index.html create mode 100644 previews/PR3545/tutorials/linear/introduction/index.html create mode 100644 previews/PR3545/tutorials/linear/knapsack.jl create mode 100644 previews/PR3545/tutorials/linear/knapsack/index.html create mode 100644 previews/PR3545/tutorials/linear/lp_sensitivity.jl create mode 100644 previews/PR3545/tutorials/linear/lp_sensitivity/index.html create mode 100644 previews/PR3545/tutorials/linear/mip_duality.jl create mode 100644 previews/PR3545/tutorials/linear/mip_duality/index.html create mode 100644 previews/PR3545/tutorials/linear/multi.jl create mode 100644 previews/PR3545/tutorials/linear/multi.sqlite create mode 100644 previews/PR3545/tutorials/linear/multi/index.html create mode 100644 previews/PR3545/tutorials/linear/multi_commodity_network.jl create mode 100644 previews/PR3545/tutorials/linear/multi_commodity_network/index.html create mode 100644 previews/PR3545/tutorials/linear/multi_objective_examples.jl create mode 100644 previews/PR3545/tutorials/linear/multi_objective_examples/index.html create mode 100644 previews/PR3545/tutorials/linear/multi_objective_knapsack.jl create mode 100644 previews/PR3545/tutorials/linear/multi_objective_knapsack/3d6b8e22.svg create mode 100644 previews/PR3545/tutorials/linear/multi_objective_knapsack/894e719c.svg create mode 100644 previews/PR3545/tutorials/linear/multi_objective_knapsack/index.html create mode 100644 previews/PR3545/tutorials/linear/n-queens.jl create mode 100644 previews/PR3545/tutorials/linear/n-queens/index.html create mode 100644 previews/PR3545/tutorials/linear/network_flows.jl create mode 100644 previews/PR3545/tutorials/linear/network_flows/index.html create mode 100644 previews/PR3545/tutorials/linear/sudoku.jl create mode 100644 previews/PR3545/tutorials/linear/sudoku/index.html create mode 100644 previews/PR3545/tutorials/linear/tips_and_tricks.jl create mode 100644 previews/PR3545/tutorials/linear/tips_and_tricks/index.html create mode 100644 previews/PR3545/tutorials/linear/transp.jl create mode 100644 previews/PR3545/tutorials/linear/transp.txt create mode 100644 previews/PR3545/tutorials/linear/transp/index.html create mode 100644 previews/PR3545/tutorials/nonlinear/complementarity.jl create mode 100644 previews/PR3545/tutorials/nonlinear/complementarity/index.html create mode 100644 previews/PR3545/tutorials/nonlinear/introduction/index.html create mode 100644 previews/PR3545/tutorials/nonlinear/nested_problems.jl create mode 100644 previews/PR3545/tutorials/nonlinear/nested_problems/index.html create mode 100644 previews/PR3545/tutorials/nonlinear/portfolio.jl create mode 100644 previews/PR3545/tutorials/nonlinear/portfolio/bc5240e5.svg create mode 100644 previews/PR3545/tutorials/nonlinear/portfolio/index.html create mode 100644 previews/PR3545/tutorials/nonlinear/querying_hessians.jl create mode 100644 previews/PR3545/tutorials/nonlinear/querying_hessians/index.html create mode 100644 previews/PR3545/tutorials/nonlinear/rocket_control.jl create mode 100644 previews/PR3545/tutorials/nonlinear/rocket_control/e71e1f8a.svg create mode 100644 previews/PR3545/tutorials/nonlinear/rocket_control/index.html create mode 100644 previews/PR3545/tutorials/nonlinear/simple_examples.jl create mode 100644 previews/PR3545/tutorials/nonlinear/simple_examples/index.html create mode 100644 previews/PR3545/tutorials/nonlinear/space_shuttle_reentry_trajectory.jl create mode 100644 previews/PR3545/tutorials/nonlinear/space_shuttle_reentry_trajectory/70da313b.svg create mode 100644 previews/PR3545/tutorials/nonlinear/space_shuttle_reentry_trajectory/a8e8c9e9.svg create mode 100644 previews/PR3545/tutorials/nonlinear/space_shuttle_reentry_trajectory/e6ea528d.svg create mode 100644 previews/PR3545/tutorials/nonlinear/space_shuttle_reentry_trajectory/index.html create mode 100644 previews/PR3545/tutorials/nonlinear/tips_and_tricks.jl create mode 100644 previews/PR3545/tutorials/nonlinear/tips_and_tricks/index.html create mode 100644 previews/PR3545/tutorials/nonlinear/user_defined_hessians.jl create mode 100644 previews/PR3545/tutorials/nonlinear/user_defined_hessians/index.html diff --git a/previews/PR3545/.documenter-siteinfo.json b/previews/PR3545/.documenter-siteinfo.json new file mode 100644 index 00000000000..a2e2a8998fd --- /dev/null +++ b/previews/PR3545/.documenter-siteinfo.json @@ -0,0 +1 @@ +{"documenter":{"julia_version":"1.9.3","generation_timestamp":"2023-10-18T07:28:17","documenter_version":"1.1.0"}} \ No newline at end of file diff --git a/previews/PR3545/JuMP.pdf b/previews/PR3545/JuMP.pdf new file mode 100644 index 0000000000000000000000000000000000000000..465b7fdbe8574e86962a4d00890b1cce7a4dee77 GIT binary patch literal 4688919 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 z%0A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%0ARrn;OpGHhYO;tnxn@QqNv=eGd67`s< z4i(04a2FPC>D5c{ObPY33M8$HoTVoNWrM_eGm-p;6Bd;-qNI18)s4BwUm;r#1@pY4 zC!Sv0h{Xwv;2VttIBBdCgN}AXucd#~EDuhy^;|0|Y+Ov9js+opYtw*ED)u))jmE^! z@zv`hKqZ@IV=L$jGrj{H4QUYwZ^FHE>~9c6E99P}IG~k;PyD*nVE1e$zxtT#EGpRl zgfM<9<^TU-eheHO|81Dx{}JTc+R)6-h3A)o(?igYNkKg>>s$Yo{kyS%+y3(-cW$Qc zj7^4X2rpx78BzH9DfSoc2hRTW=&(6olf{*N1F$@Ku`Rm1nVr$JG5Kb0y z?^Cna=a<`=1sk5Zaf$o*M*;iS=bPEBHy(>6$>s82Vjy2Rw$hvj{QxvrRJ`I{T4LYp zoJpq=XNps9_G(V;7=WFB7X?H1n*M;!1Uy2Er6*$1LD`b;J`8JaR9!LIu>443igRx% zGTpFdHz*#trcuu+pKvC`geZUxwqyXzBJ)X7RTEpFE`>q6eJ7b8Uy|Mj0#J8k8Red8*k9I4gLL8&5cRKJ<~6&mG*T{etog%yrsG}iW{P^)3LHp( z>J(S>h&jq1=`lSXImjyfEAx0I206*yRP0CAkPCEn66}F3gQbrmIiLVRkJGk)5Kl`W z2TlA}CW+hdVjOKCU$Yilk`fTjNvVrTy(xlq1<&niXt5D}ve^MUkI2`s-d9=lAUjO2 zet{0hbA5bA?QE|li_Ty_$aw#p4>M}xi27D6cXC3apx)2fH-n;9nb2EaG`8a2TNT`m z*owNRT1Ock>%dYJa#({&`XEK*F=Eo>$>s(qWvJN27eXoW@zSSO#Vkey*VUD(<-*~57SA& zHfM4GJLghx3MflF;sfQ33XkU5p_TLh+#KnpGJXWXpl?eLJIXVVmehvlCxFbwg8rNM z{89m@HWK9+imGzxsG#qMZWOeO?C3Y{Bzt(##DTxw&Wr1(RKAK;w4>*GOFJy`oggU_ zsvEs-7f1VJeO63n#&Quq1egr4VBX!8Y}xjLD#P3Uan*Va(u>n{0g(Dkq7DNajtg!( zGSd=Hyq)IJs9db|qG2Rq6`(BBQJLQw@LXJcJ74UXublX|PyR=@!cogbqo|;{kFrzJ zv#0Aw5uaJJ-~haRVTJ}d%;8}Ys$t&;`tL80bignn>8jq9D#*%m^M}cvsMt>7e;KxG z79>LM)88;Ix$TLZXJa*n>L0M1&G=$f-X3VE?_R_m_~B5;Pp+7WPV1qWd15^qcjuGY zW&DB#p!&sZ&VZfKh$G{c3QbdqcGzR0*}M+5Te&`NBEh3<82K-pR8j6`Ei$T2F`IQo(coqWB-C77*1oZn}p9#MPP9+{Z z5Z6@WgiFB+?ZCNP0n<)wJqOxiKc9mgqku1hCTGu=*Adk;l6ieLSM#{Q*}5)E^boH~ zjQkNPyhckc%tfpp{Og(KIoz7L=ewYfbEHfTG}z38{p;nGX95OqJUxVX1FxrsarjjT4X zamwNv;oQqrosn4+TsXsHTmYPAHpPQA<*Ekcw92fe5hOPW8eY?`79#hIaXU1I2-*u& zo^mF*0q53$tjH^A1y3{^I2xZMzXmV@feA1MnPS8x(#Ol}NXh&jJ#b#ypa*SYQtY9T zjEiAwZ;{k-9f=Wp-^!tjMwQ1DU`}|9<{^>`EnLgqxnU)tL^eDN?})N-DDTJkSh&uE z!-od*b|mROL@zOGUfreAJXn^k<1g>??6Toeh7>B38YppU&7|nZ9eIcX5a77(bAVo& z2C=~5k|DD!|7ep&9%MrxkSfWA@FE|mU}=LMgUX00_;g@E9K#}poR!P?Gk_L~K5pT; zgGZ`1RV2=6gcWsKS=aB8&1%A|PzaLaJ!4`>>?Xc8Z%67UyX1U6d=a})IA>&5+&q?9 zU7V~Xhn*hGNJ=n%PK)Kk;Q*<-YH5YO(9)ECQSP^Vk0&jN^Yx#hiE~2( zapb%->^}n&Hf)}kok*4+a3K2?y#E9W82P9dRgRFs-gsZQzPz0s zeVuh=C}ruP_Jv-5t-zW3F6it!DjJvoq$baH{mgxRAe{&ewBjBWR$S>mhg~V0;xd=@(4jL^{vXEPDM)l^ zTf=SJt8Lr1ZQHhO+qP}nz1p^|)wXqepL^@Roc(ZKQk7(8R+6e@jydK(zQ4LufoV@& z6ZVdKGuydO`p5-;n->CAhoKn1IemZu(stzJTbSj1$%9TApQZ z0Xj+tvpcMJNhlp+$5+z1D}6K!;6BKdaUry#nN>iDm~IF1uuD!>WhP>zZUt z!~1TpiLmwLoPL(iIuyU;?OU>2ylslt7Y4mK0Zd8Ue0+%kmXR^5=!~LZFC0Rr@DZQS zt+dQDPbre2$WKZJ5nH!A>MunOoTVNOPZdxTb;W~65k6zn2Mi?$2C>>2_FA;Mn=gL?hTM^w z5E-H7IjC1G}jgZM`~i2`q#$M579b6OF^sDOJc=klSbfP&l`H& zrFe`HL7G#6v!vU^5FXr%OSs>r(a%YL+|nk7Q7`Cs7>KX(81-78_TJ0t$ecFk&O|iMFGmdFcv3`$c@FVU$S&9&i9lH$2k&eS-GV3~Ux~iVadAXIx{<DWzDwi`o%)ALDA#1qTnZBWX>4({$it zM}DA|eM9&HzDl0poShhoDG^K*v6L+g9Yd8n*Pd82F-ND`rn!_&u{oOmop#<=!W6{- zRBK^Yk~}q0aO~ZypKm-VO5aj{W|D)S7GZAM*(4Igk75%r{r>MQ+af0O?6eRMT7jev zO{Q#RlCg210Zc`G-2H<#qM0CwuTY>wX%fWRN}dUPhpoJb>)1g8)?#{?0YVkT-YcC*asng*WUqlcoi7gC`nIgDQh6Y zbhUgC#eKy}2w65mu)Jaikf?PCK9$1C5^j0ZhoxD5dS@P(1R!7a@(Q4EFP%WLg^($9 zInu$r6}qk~AlUP8A3q&I>qirdt47B9qH27n?G;jiNQ7m!SkAg*Oz9&2^g}`kKj#L} zL$-mDtUh}q6#4v|1A_u?{K*_1JSRx=J%-E|Ri*V? z`+S7edv2-BHQ};_jRY78OR-RLT$TO`H!)#c+u3_>Al_m4iFmBNuoIDS$4`(cSbOt+ zt2;fcy3BHDW)BxS0R!l3u z`9zz|`-@hwRFk7V5@f6QR2F5RR%yp4m@+R&Ifz(Iuwt3!2S+mWmC_Rk%{O0niz4T~ zWWH^)F%GsmrXNY#eB#5dCSX-Yt2%Kqru@Tzulpb3I9;!H*mni5*C!PEvFN!naUov7 z`*z`_2@D(Aq_Nz&d4F{9sTTS@8WBN;K%kpG_$El|<~M~9ny!-Xp3Kjg*w!4PmhV)Y$@P4WkMqWtx7>KxZ&`pso z%|bQlIn|-#Hep|*DIF?px?{=aXr*UPKz>n;>qR#x|CKjg1pBEBXQ z2cZFqj2vHS-gU8Y)GR6;OE(V{6L12^RG}uKmK%HTbAw|o; zDKPI|Ey1>bRj4khFlO0E`tcM3-ugh0Y2Z0Z=>j} z7t3URyhhjoQLwu^i`S<+i-!kOY%m)QbM8Dp>jUT-adLGjT)AA|w~I%Y2alsnmSn-g z$zV?oVl&iSJ(gB52`ET2_f^%%o2B-a7$%cI>~)979rhdGSKijORD@WyP{D(mLMk0SjhEE2cNA0@L0-vL{3z+Q&6K#y!SZ$2NyP=ueNi0PK9~{ym3-P z+`YbD2~kHn+G6W;&r9x>owx{kacAS|1Rkh{)n=d6ynG%~8oCK3Y%n%LEMB*kygS(Jbah zU}PEM&_W7YaZT-wtjEFHjG z$?=*o$Mlt+@F#W(a8}&wA#Eesy5}tNWvA|h*GK)`Aa0%=qw!^SK7h|KC%6K60+%MQ zMS|g3EUQ6y(lI>|0_x{Fndp3S=C2l#H3R&hcBOtY5z+BOcxxP0IO-54)ot^U(;t4` zAMYQhd_?$Vc0bWF3|)KdP`>XBKg^=;XWr?(r@OlG4cI~K`K%Es_54Q#0%z)wvx}le zv5Abm1-@}h{^fI1GN;UCIGCz{uoeFhI8-eYUV2DSYfur#ODjb`Q96!#@5tWMbnnbQ zoBMtd{_mU3Z=5!~W_6fWi^0#i3~Gm$&zf}}DD0AOCiaKxf{L;rXw5XbkZ@8XfRElI_P?Zy_%CxRB2w8XcR*iaSRV()-_Fs*@#LC9A8{Crf_5DdZ;UT)8~ z_g`;f*DtU=yezXBvosBYXGUdO$xHNEM0LUIBXzW+9Uc}sskMQLPPp2|)zh^BfPZ~* zF%E8X+=VNWtY^CDkq z!IfHOkq$D-|P-3B^mzKD?x3i7EIDph(6D==n2g*1(3sa(1PHIkH zS$j2ST+w%!6xn2=q&Nw3t}0E`CB-r(v9iP}_1$F?J8jmrOk~*?zL-sFMbokrWAvb~ z%`Iv*xf2uyOBijxew8RJu0TY2TcESN*%zz*-D^+^nbVjaH5s6YwE(XkJiW|ET(YKc za7yh)GaZ4_k*j~UFTn}$xV~r&J<-8!d)qd0!`{Yak&hkl06BU0;Xs8qAwHc1hW$o% zau!IT99>B~|AOlkk~G7RFzZ?XCCY~SlY~Z~jP<9_{4i{5^Ip@gg!&wF`N{XiJE^OD zoUluww~9MOlop5Bn6vE~=2vwjxchY-Zo#`8qLbFQ)yz;HA1-C4pa(9n@Uo)SR2wcd{O_IC zFWFjG6|Yl&_`+*EtEp9~TGXKOg%+(}5_-n2AxDt>-d$q4&b~{3&mF`u@pOIl; zLDY&&*!8yGbK-n0jeU1n;KT_|Y-E-{yKL}4&`sFwU!iok?EX(E0(~an03IxnR@Eh) ztLJma42QuX51XauhZt-t2Q!5iYw^4v#cBOwNj($a4Gjm1l7V$6F3(3MX%cOTY2FC#~21Te!r` z`d`+v*g5`BaG7Pzj@U<5q?uESqbcaiTeAceZhrybMJMX|jF@p$ER0qn@aGS3t!@g* zbE(D#xTQq$N?YIR%G7M%oTJCOvWL~hHo2IjU#I2Dvx_vy*MK9vcy4p^Mu0){^j_br z?+3zPeQWj`KSj&Q(0$7xQ%)`mdoCb1kiBOsgu#E7vgCf3vOd{(h1^kh{$H((_ODi^ z@x4Uh|I^Cw<$ZrV-H>H0#}8)NW5^zEkFGA>$Vrt1-`l>QwUyDwVg|cfGA=+uyS^Wu zo~4!HiB_hdomG5&-d!+9f2L2L`%hEG5M*Yc5N~3V8FkO?D=<>k19rnt}GN&Q{5W;PsJ6l25}@C4({2!<4Q$D4B0St3P)jQ3?c3N{Ui(suU*BXMZ=K9nLW zV%zdfH3zlal%9WWcdfvheDF=(fM~95Eau4bKI7Uh(spW1v?#?(jJUE6UibZYyf;Ju zfU0aAaeF2Q=kg`B1HYk4XV{LWOzsx9AQnF}2@oj0|3i`!^9UwL2Ou_{oGqb1mV^=t z%bi!vcYSKf?`{Duc-uL%j1DLYn{<5orA-56WN>7;(($VtDFklsM7Syn2{Tb9^8(X5 z740*1+d_HeI4DLHt;BW32ati};#KOE15nx@JJlc+N|daBBpX8XAo;bDjdu?(geDz^ zb>kDBmoz}JX}^ca#&;f+@WPjmMxGuLXOQm%LK(WmQD=}p*giv2hiP)lA0B&Q)W+^- z`%NmoFzR2PPF`sF>uqGHzTLA@#G|gP2PhYFs0_7=Z2q_vD~ht8vK`zJM0!8Ji{~4X zc|d3JyYPuTk`tH5?6CvA&ruTaYyJ#vYMT-9>4uF4R2>*+d(VtkIEYdX zxFdpqS>9(?)PPV_BCqV@+CaPM_H%R#!QKK`QywIm5lj$D-Vlgi4u%AwQk~&O>Z;#E zN4nxTNJH@SKp=SZS)>C|wAgb}yEb)|b0T?DH_u;eu+yc^)9&Ji${pDtHFKcyJ`J-V zOgw+q^1-NPbOUIyB_n@T;0tx+bv_FQXvvoul~avc&Cr!+8I=d2cnWOR&h5kvZYW*G zf3}cw+ryG$7bza6v*@^iIE4`p-&10q3R~uP!pETS`u~MI5#`un(~mV8Yj`1a$!uN* zk{LehRSPp90lVhhexWd13PKtskC8B%2Uj>(+B&F%&=p4&kkYc(i59+xlMrNL-7$I= z6#bk_k9qJR)*yzeqsRjw*fASFd^iY=Vk0WlYws8+iJ(0HxGfS5~%&hDT zUQqE^ocGtCGEM81(#K2(-G2G`6mw6}8+cM0Q*aZRtd*H(w_@hkP?3Tr`qn$_Tg3Zq`m>C^y zq+fCyaf+gf;;wsWSk!4_AyLS(Lt!dTa_3PqD%=S(<|hR_EgfS}z}}X3m2AMq;mbhE zl|Ap@t{3!&;y?D{V$NI#-)&WzUej@Fody!CaSUm(ZPJLrMezhAvMDq68*2L|90^GH z)}Q-)&d(Yv!EVwwO$P*RTy2_N%`vl_injgMZ7W)>#W72_j6S{cElc(+)$-yC$r>q9 zqxOuiRsn=u%T|QmzxmoT@~ui!I$xUIGsECVji?TDgf(evk6ohC zv^o|7Y6{(MtSX~x$_$g|;xI%_S2tr!)nk{pYD3~e%-EenLy@d)XBum*Qwr7*A|Fs;Tj}fO5^ezqglQP(04_f6|YF&Esio!(Rhhxy1$PFslxb==9PpJ~b3gJ2uE(iKkb&)a)|>kA;wRoYr=vvk2Z%d z6{Ci>*ZwpBxETNxVAIxXU|?4KTr-c}Fx#@{X@^I19o4iwamV3}q=;b4vL2c!)E?}x z&8tK>7*hZY?atoq=n|W<0FGMg6u7#{(!r|p>QR#`qjPEXl`(puVFjv@{gvcxrCbxU zSR&Up`Op6Q)$<*XAVu@P*1WL%@0u5;|EqwuMN7ht>NkV(YYvd^=8k<0t&bjWd_mwe zd9)4YB*`e?-z{{K`1y&PMi?a}MYGO3M&pt+yz#m`$jbNm&=0?xEBgz1>m>KFpTgQd z+W)u#2ZU$;M8USzbh7^suX+C?Zm4cHTM9bwk2mwF9xq(DdRVc8e-ls2klOaMR3&aACrfJC8r`lRtztjlx2um?x$f}0#o<>W zeN9PQHAeL^j5$FJ#<08hdlcI4`U(Sr!+SB{D6rhKvBFqG46R%MuaV>%dZ8}P1ND<( zGBVCO#a4GV1w?i(?j#gw9jEj5@Pi%36qZC1SYrm2gCh9`^W4AS_e4$94#G#`dUN;^ zs4}M(OY!7tN}}>SM=0J2ou|1>?)jeqOurLJ`<8&oAw2!TrzE{zo`PUS=#vl}l4P{P zJ5ag#v3Hhnk?j&imjH*~5M{6X=490hH8}fKBnL0bl=jVSp{J@-tm~~(LF4Y@-o}fL?Ub`=k!-z4A!uZeHo@gH#Jx!jrrc<`{yV{) za5fK44oOBhO87(Zrn6PB@wTGYQ8bs$o%_!v0_?E!SbtWD8kO+G65*BqNBIs9D~!eG zzj>)eb#0x)ol&b|YRcg`dS+e}?<+t>Ml^0u{)I3B_zRyLe2X1ubDep4tgHDqX*u8* zl}#laLNuCOU1i*qn^FFX+9Nts+9RxFwa?10j_-6q3Xz&=K4v z^XGzh9Jtfe z=?9#0Z>wol?MB!^UP)%mUr5x{UFVdmx{OzXvn-7Oxb4{o88~HQbZTmlxQ5X;WuI@A z`Jq&#F6f}!fs+14C0gP0d+}Sk4tbx=wlI1C6EO5{)y^=G%JVEc=YI;{1yPcMIJ-!J zQ7kW#4*K8Hyr+$bmZ(&I$3mtB)J2a)^XpbK)IBjYyHAo>ogOBCw+&hp$wTs>4Mm=A z6}Bku-d5u9e`)?Q2XD(xsZYiraM_u1~?gRdoS{OgUQCV&EQ|{Ru^C+n} zr47fJaT59gmNA(Ec}6c1ixz29NNV~_MzUZ@G)tmpK44~c0a{bU?4;i3E1TbIk4#8S z8;)q_pGdo4rDgNm8}dZ#sXbt8)vO&nHO!~+_=q_6wq;ut?~b z5zSoVsxk`6ogzY4xfiui&U;sjl(Hbh(N=!xC{04#B0Q{*#){g6AVbk{=_4XJOaMtu zx)zb1qC`Zf4N#DVEg|t->RMU@QJ&S@Y6IKcYH}TzlX5y&sx9yUK~N&aPJD6El&dB` zI?wUPl1A)G?-=CEa)`tpwHTXY|73(3y=IAB%3$vR6pWVnwL(D%i$I4q3Z*h6OL1I3 zW7Q3+q}^DcYn)t3rB&!|pEL>qPI2@^7PltIP$;^ISSB9j48qxa7VNeQrrv(2YB?tC zXl92Z{kfqz^Xs-7CqBdoh}+E?vDBwF4@iv9R2aZF}8Yk zj_1{tK@WPHTS!gPXgn%A+YE!*#?|%HTv~M_y#X;XZ*D}o|1T*QM2{0sEenM?^`e(i zhMpFdrH}y*4F;+@BUwnI^*ob>eot*784YFqS1C`aK~`=#kF{ihg=P95UAA*(JN95W zYlVmlbt~$i33u&~UGrk0&hvafg^!k?IO_5HJt8!jVv8Q?KcO4m8O;EC@$J#x%cS1* z4uaj@SiU_ze($rFs-*PL055HLa(4l$@kjx(AOIx&7kEGHpWlyZ36}feOfyCcs6YK} z#q-xQbjSVF_V&28HD{Wdg8mDz>~SnpVX9?z*`Z5CRZB&A6%^3XQ3)H81yTkJ3F&5} z>{Y5}BAT3}S|+937P06+eWskp=K{vF9myxT9(XHO$KvZNRyv9Y+M5jS=Nk*5N`b6# zr<%U!nXT{L{q$fki%)nUHq*(wYpf5(saNmq>CpQ9`6}9*>RMkb6{mt714$tTew!~a z)a&u5%j!U{puP3OErlKDPSRvFoA&T3Ad6QJs?&}!X52n>d@Kx7Wu-Skt9v~Lhdc#n za?_>PBcf(IbJudu*|_CxoDMo_zMMr97G3T>Fz?A=C{k>KdH0a1wSszqEwK2M^`+Jz zsthErW(%!d%Hsa$$O3@SU~e$?QtdfnWlTUX2C&tYaSEfH@hu@;33z}+rI#KiIc$;(`9(g z?>|;F!L+LQFeF74COD0YyM&JJHM89m6ykndPt3_ z)B;b%x&#BGj$0zMtEwap)t?lhm|NatVU8jtMEa#^_p8KTAZ3>TpboT*bSDQD6bm|w zBGHgMS@6K`qWQyX)SM73d_J-HzH)JYa=2mv;{IfXewSa|4)wwN#oYP@)q|781fwMF z6{|r!1Q`Qr6DQdaM?=9dhJHv~9z{!$)^y9FdQ+t*TrVS#~zqsla{g>h!ZhL)|;TRIX3cexhtS= z(x%;I9U@yChchLbrp^gc3*xiRxIj%K=q1SKT{~D{8cR0590L>3o9(oOP>Qq^goqbZ(g7>O(_l|TjQI2KZlpA zs5Ruw?HkVR+oKUQ=W`FJYSksZe!1CJhrHg_jJvoA)xk%LxH#u~%BjyX%-o@l6=ZjJKpH8&yrA#lo z7IwNME+-#}G+c5nRZIC&k-5H)h4^v%H>pA%yfn7~)vh!R2ZVPdb9Rx7MnjI(GqFW# zc9t=ABl@0AyFf@l%ICo$DaW$yo~upH=wOlGdCe~l=iz=GXC-*(Ir`Y&VtaF!r6qV& zVjc7VA$r^D$ne`IP)p;kXz+Dnxs$YCPb9{6`5M2}-t~Bhgp3G#xq?O+7Ls>>dLAa* zu7Wc3)#og=^P9G6nJ_4fmF?uh@~&@QCFrT!b+~PlWv?%}cS@8V4}3xKr%K$jD_f-3 zBJ2RYp;atrp9u2&iFMlPCA>Yf-Qt1C3tU~L@D_CX2F1>5%P2oxdQxZ~$gj8_Q9t}e z`PR03qzu8`f^pQm>u~3jJS)e+>;54U=*NHKcm`t&gElo`eZ~JgQF$l-JSh)5oPN`w z^N4@JeL=z^U(L|I3%y^cy^?=DDJvz--K_57Kbfq5q5TJr?UiH2LCIfA@mcfGj$D2E zc*;9ZP!R~zt7m_4lz;gi&=niBkm1L^EUqIr#md%v2+Bn2JqRc%_xk=O!T01yQ!PQgBT(( zdj&uRb4_v&*xI|~cm_COnDra&L%0rMVU5mY9}2w?&wx|qi(N`N&R8+b2l&K$+<&+j18!_yQP^Aym9?ep`3V3QA;lfAQ{kU!i1$Qw!v)1!BFkui#~ zp8(6u=RaplXO32T2BD6pd)_2 zkgz_QA~)DFsl*Q{OSOJv0l&0bKrhUwYlx#*kj@G=J6K=!=Lwi5O6UPtHzU_>dWrxa zKVnGvCYl{S+>c3^zp!RnB3sHQ9kx+RUhNFcI}k z`t&i$`k-h_q+>pCyHb~dK++&)gTfp!q}WoB+EynS1BaUm$;?!UT8*L1tSF5=izA?> z^w}eI9I((4Sr4P5+uKXurOIxYdIFm4sb^X+kT@)LMetp-P3Q#LfDtxf+ID^VH1cyV zSZGVaw*>nleRWUrATK#)5ucWhWN?+FOb9M2g z&D{|Afbelp5}V3WK%ydG>I#8`8|B=(wDThrOGNq)p?NchHsn)sVjQVBygBg>` zth#ufX~v;;Z8ZCi=Jeje1SKnHs9a-MyHsU9FRcn0YRF-$dZERl_fz_)G^EP#Lpp^k ztZhY^PO=*P!;|9CbNu!BWOplew&2t?z4nkAv=bCxJ`^sZo()U z;JPZ4jJcFrjX8GhW5j5olfJIi6AX^=Id@ybSTzT$ zx6o1Xw(V*An$34T1REP=vJRlMR6esL1~2&62{SAYMc|%G+O2CScEFFIl1FhnGfTQ z!hDhQ1AHQjch~Xwq?!w=yfiE@;XjGfuwR2M$gKAz66&xYdp0oDL3*Z>Ac4>T@D81= z;GngFcTN2tojm2f<7&(kDtyT^TvkhB+HsWJ#i+5vq6?z)T^ibmIL-F?Zb&%Q0FX78 zr)}e`=Y?6PC_3UOe-3#&mqZ)Jcg4lnJI^Bx8tj}+@{_m>dT zyo4=u;X$J!qjA+{y$C~78l!}~h(S{VWVL|!a3uVG07Pb@(2cHm-TBc5JqLb&=pLnd z3l$Ux{Wr@Dw?i zxB)0GD#&33(9xxJnLEL?>S(r4$Bh^j46S*rY2VsQkU&8SZ`X#50Duaw*>um$-SNZ) zO_Nb~8O8Y-Un9`;GC9uq^;{&dCvC>zCOC#oa@y{B!zjwA(guCdoT6=PnJ5wC-0hWd zkA4vc8zXDWqdYv2DUp(EWd4SO4>r7=OQ^D$o)qU$E!vc$6iseN_CW`(&63eqOgbrl zKBWyC)E-=tJ|K`hWJo1E2){U58r#VSKLEWxq^*-sXm{pc)){UHWv-s0Q-x@73qHN7 z9;ia+&Ev)n95Uu2H;<|n3j;{sUgfOI)tY}PX;0nw5g)-+FTc#X-_gINXG1GF;p9b+ zU6j@Fzm31Y^7H>ysK(Ag|9@KC8`d01++>C6xl#KEK8QrjAJ4?a)pTL(M%vcuHF>ne z+QA%lvam}>o{%g&SxBO_7(}f_D6p3Rf~$Xi?N!#*7MAuBrl(8eTFniZb^WCUelIvl zX72H?+z8;9+WCgBlP*pZi)=MYyS$~vvBCSrv8)UpwYwR>1L*cK0MYQ{^f5QDpQrSh ztV75f?Ze*t{2dj$?iRo5Ew7{j zw)dmW?wyErm2wQg&#f=Yn+J3!2%s*9C=-y*Gtm?gH#w#bY)^u}Ew5QLATnATi258b zG$N5{aU86KVJqKk$d{007rrsCTij9VxyXA|=^Zz3JQ07*f7G@I%RQf(G{FxBcMOV# z?tnlm)II2{>&be}t|kxweBCZb@VVv7cu{k$5zqBvy?z(nq?%*Qm&gsm>|r*DZ_W6} zmIv!uNFMB}Q@bc|)(}m3ld`Zx!}VK%yEbAPP(Us4B7RN|he-?ir6ms?=-gx zL+2AMrEE%)cqoJHa}w$Vor50orn!e?1<%vfVRCCBvjln*f0`&WGAU81UYeLRjc1#n z9O;O|~AI5xVc8Rl)|{C}BX7b{Y^`$+V<~;jWp6mTYXVn=NdP^iT6Cl8Lm1 z32svEy|fsPM%kTb&4)Z=5_hbxBu|4VNlc2@(@GiQ6ME!Ht8f2k+PvP&TPdC#X}vp6>t!iDWwrNBwcTFof`9$ zDl@aHGwvz#1<#^^w#i$>Tl%VIBZit==v{uGL(A2B$2@e(vwNuePDoD_?+r?`BaB%O zxdHe%&&P5D4f}Bm2cDODjEBk-lHU7M1N$l}N(U0@Xp7RJMmVsvSxYqkP_2|rLv@W5 zy8qr)u&&zS&^vX2+kx|yMqM05JmgQ5td6bSa-B$Q93YALdgdXP2Nt>0r{p;cqWU1z zcp*She;kZ(8OiKAEOCiKXG&b&ZrAy^on6rmYbJb)aZ%MHX$$HGsY9Km_3TnSIOE}a z@)F`f9m*P9vh4X(uJrPFsHOZ!GK#tNy)ygVUb^d(mB#AnIha9)*+QXhb8*wFSy_R6 z)|Eb(MnIqxi*5>)ZIU=81V#mk?-q@MHR{Q@8IlL0K#>B0!1gZ{(9F$(MlS`v2trO` zjvCKYWK8Q}pLoF|>+m;|TOGLW@1M;qu>oDyMl`iz}gas~Igtljl z;}NVennj3q-a=Ot7DuYCs3qC9nA+ADg)8uUKUz)Wb$&9^JVlrp17DRA!3ze098>e)pTp7FJ^6JBw=G$mCh$Mc!gQx3X#uYsouD z#Z)TW1Lwih_{epJg>-vc>~Lu03n?UgYKy{3Mun7hV_MNJM>n;zzBC+kV?1F^`o0yQG#GSPJMN- z(8HBXFW?6IF-dkTP=NaYgSIHPx&v4a8veB)VQ2EkxlFE;x5;T7J{VTy^&+ad=- zm9RcsbVl*NeLGj0fPw$%Z149_5MUEy zT99C;9_)WwA+!^?{_eqW2n2F7vfi1A1CH-8T%>cff zC{VQZ=CA2U;?a|;&BB|Xid`Ljc%v+t3(eJ?$c;z)Cl=j-U`t!PHh5QCtoG;*_THEY zcw1rMb+in+rC$R?kJeeMZq8}BLF2Ucrm^b>n97vS_rH$U|9ig7$iV!6L)Tns^(1bw z!d%}_D363#1QPQ*IyN!6opQ~#OF8BoQbuh571<(=!@HHEvLI17s5MnAZeOMq0onsc z0D#QB>~(GYuzz{=e7P3Mnt=+_S9y6a0rn+$`$NozU^wDf0O;<|q0~ zubKTN&dG82Ebq00+e7!C)vzGE^BuiBgE;4X@ZJ3x?4lnDRgL7ae#NCY96$eHaxv*B zYax{f_=a_V|9robJ+T1bGr0Bk?fJN{ z3N|SVcH>RrN#ef>VfN*Vh)GO9I$Eg+M8+*ME~??s*Gdu&C(<&)QYz12g_`}_R0F65 zloi2j4H{|#HsrR#>qw+%t8~`3-+OZWm}=b2$#r&?sIzZ`EAqxx+DDHm^ue^5J=@3d z6q7vkk|r!>YR_`cJjjG{v?6OQ(`u%O;D;3EJ&+=LA|R~p9I z!&bP_V*-Ud203*}AZiqypdoAl`GGQCM2Kk}M(h@25m*AFyxQOJfhc5cfvYxoE~>Gi zvb)f=mJqjhdn}8fx?I!)4)}egQXl|ZOWcaU2Tv#nZDBUe)apnSCex%wA3&Df2yT#{ z0#I|>@HRQEd?!GlsTu`F(Ado#0jyhj;9Ldf67IL9&L{v6WMA&Gc0fR~V1UN(o&y)y zRii4sJp~E}2(WXm4lAvpej?gV^#5FL9XT_qug?K|+Z;Inm$yc11qvLg@PrOA23507 z2+}@F!WyM10HAcs2?j)5P@@;3A0}p<))E*XF>rwn0|Qm0O0af_kR?*XpRaWJ+r}oC zK>e@3E9YNR4J!0<)qQIP>WLEB{^ut1IlzFL2Qk~A2H@iU=Shk*wu+|u+p1=8rrg`!qT zEhVWgr*+neUrfxUy0<`s>;8Bx5km=I)UpvYpu@hwANqmm{5z_Vw}!BJAicwvoYvMrywef#hG@MG0>;r=14 z={3}-C~r>9(XpstEhLuLZ%c#EtW=fBWehLjtlVTQ*-1%|hX8pAySw_Y$91X+cqW|Z z`fLu%u}2*H5KdZ$7sAoj)0Tz}P@mx(i7sm#=nf=q5DFn5n?pdcU@?7W8pC$G8(NmwZkEA`a7K}OP%~0usb)dTgZ^tan(qe`4EU|lJ?9e$>;)mPKnVJ znPie-G8KNutDX(m>OZ?q1h$W}$d(V2aFac(JKpcG*;XFulR9~fmu5xlvr~wR9S?Pr zX@fw`{_aOEiZFjavtgv{$5>w>TlqxwWc?K#Z#Dtu{l|)GrV{x1!-kP%%h+mFTIe7$ zxb?Y4r(>c#;iL(?s%t`RF~Gru*ULj@I1m@T!wvUv_KuDoTL8xU(AaU+IMB+VeAx5^ z)1dQ)Qgk41YwH*L>z3Z$p3!ryTJ}S?`_Fo`t`N-vq%sJqk1|-Mo!ob}4lZ3oA*-g< z1NGvc|0>W~ej>elWX38Ir#qGNhM9uED8;Y8;ilgn`{7f2INUZ&&WVQdTm$|Xwz4Gn zP}}4bQNg!iiC1K1BC=9ShoEe{O63zGLY;8wdKF~ z`W7kp3$2ph&;1GxcwG|K(~8CMD%mfzLAiP}ipUrL8PWL((GOs!6GN{1XHU^WV6PO} z>h$8R-p2AR=9WWkm4z8{&UTz5{wNqv_x^6FAFdFvHAF-nO zAQD5-h1+}1Pv^-F`gUAW|H;pisePjBb2=pY8`5(Ya2OUb`$7on#mGHEX%yL^5oeO zWlK;`f};uxPF2L&rV~nZ41K>-{&j7c4dvzZDNd7RkWjoz2;b@nLS+RRY%Ju0CQlh9 zJ7pci7^Z@pKfq>CX-S%JeTEFDHGOuIR0FLowyoWV>r8DftZ5t?tmq^RMcE3)Wm83L z2K?T7O{1hsZQWFFvFzLm4Oa{_=q$tMb-BOuY=llT%@R+zp z40RKM8FJS%nxoe#0x1o3o1cb}H_WJ(ENl)jFPO2g%`$Xm`yJ(IZcEeLLl-e|1ye=g z-x#zS$KWcPE;>&RLZdbn%pq1%#R57=e-CacfU4vO{4vLwJE5wg|5D>If(Dt-r}sZ-l8K zU!-+WL8(~;C0eqEIHoI{Kg28JgSXw+XSJQg1d0;3($cHt1$1)w;|IZ4o}I~HK_nvz zquf9r<=|yD7X(#I4T26qUoOqZawfr^pnvfeVt^oFqW&iQciV1l@1Tii1F<8 z_64;L7w=>42&bdPP@wr$(CZ5w-R+qP|Uk8Rub%$fK5larJD@5Og+*VE~Ao{L_U zuBuh3dqqLR73M3Ly`iG71xkWV@pHa5r>bGG855rYx>i$(K6q@ZG3U_ndlSO$kjnR~ zw_$fC%I?rBukFsmWxdd)wS#9)%Vn$sBNd2pLEZhmB+-b7A<4|kmKKQh>mfcWsu5y{ z3uc<5_boO5*b8?JS8p}*0_B0n8&%S!CdIGkfi;5#Eh?&9uFM{1$0JgX#iYG3jq#Bm zNKCFsVOn?ebRXI*UF8Kft-4 zYhu7lKDndRB^$Pw_jqqq!Ce=%XJLaM11yTb9i<%3O|;U>BSqK0$&jR(cnEXTXawxwxQp*xMg?^oyb z3TJ0%HBty1junWuvk zMpCMqmnP#8nIfcA-xu^(DNIvSzAW2lZf&fK=Vk!vy&oN;2qgOFI=_1s&r z{6!K+1)n90GBy?%*_c%n&5nPeq3N{>`ya)D3(6g35lrLX5ZgslJY>6-L3`gBnoc#w zD-=8BY*G5HQb?bEeNeK*C*vQG($qq@@qOzALRhgVksq1EY=u5C;2O%2x+9v-PSq2w z3J0jm^bI|w$kLh+PFfM}Cdn0|xLPQk7bnM@nr^Izen(~v|3q^g2!#Go^fG(SbS&#l zwMg>|*F%0}Z49W;ke)ME-HbXDqkr95s0f1KLV!0MFa#k!sZUZAGSw^6XQ#-fP84GS zh)U%hwr3x{GCZJ1>lE6aFt%toMTjLHh_US(BUg`@dEae)T}H*WJ|wz^rCUGK2A^J1 zxGeqi$SF2nG%US!Yq6AWWsZYYw()I5_#Vtp88odbq_H}ax>eoPj1^g(rvjdeQ9Lm9 z?W&XtxU6p(OF$aApnq<)7^tzh>9KTSQNSvKEJrKSk?Cc{R-Pt~Oh0$<=GP?@;ZY0T zDciU+c*;rgaZB_zwl#ZV{u?o*g2yDM^D;003cayXE}VZYE0_5$ZvbUy#_IHlts_LvX<*m5wpuTZo0AiUCI$$V2X*=p}%_8Bu;BG%kmPfDDw z_{ck|8|d#AbOXhTwzhBZ-Es&k&)-E6sx4_~wocshls&qQRE?ttlqgj+6YvilR6wmo`VZRs?=;Tu;qNaK}FpP?2c+2go);~ygy5UI_{Tvf6s8$ET5}Rm{EO3w_eUH01M)xbQJTgNh3wQo`ZKWj3{ovui^{E{=nQvkSlGy)$dhYaK8BVgfu&e~i<_NY!+mfMJr3xE<0?*V{O}zKg0uY)jnZ|0sDifefL&kw z0IFU>ef}FnWoP)mNH9j${~v>y{xcBZLhTXnKL|CTAD?K=NZ-!&xMfvncWAmF$(Swl z^Gmt@?Yh*Hm^c)DwrPko^2r#5Z{GWr;dbxg?9=o8mT*ZweL;Wt_TA@?cmExoy*0CE z-JgHr=(;;0dUzaYpnPVZ2+UV*}pj@6C z^N3<41P`?jT+&lwa%^x%-Rgp-2y)*Xwp?%bx8uIT|G}sA;bsLj_DKV!sIUF)D2m5) z;wnfplBu|mCo8Wyp$Y~$aCESyF2*!W>oZfO@jav!sq8yWMa;D}{V)fDk4a4guy00( zl6(;J6pl~$$$n9bS7TmjG9ntfBQ1paDe=FY7fR1PbY+8N4LXYp_PyrF(0KZ~+EH=@ z(_=!;`k2A6!soK1_92ueEb5dIrfyE4+nLh?>jGQ`mzYnAhcbMHrA@o$++oHyv$?5$ z0pA-$sV8pvEE0{VGAXVN@PVvxHD9dL2m)M)kTr~Nww8#ci&J&K>|;vpIwZFz2jtS- zAG}d?<868L`2(kyi-n7`mvVANMk9mQXV(HWNx(#L6zGR}XunUJSKs$}rD%s~2mF=* zY<~ydPXU~alv)P~DAL^#^DS^d>|&*{05je8uA+Q_W;p`Zi~^XVw_#BaP)ot+T(K8| zR%rkM<%o1<8o%6v`zq`;IKM!CnaLGP-dL!5r^L5qpt=)HaQ%tb9LR{tHpx>XHNwofi+pUH>Y zy^~ur#~hdeSe?J%RMOU#(e!x057S}|!9k)&4o9{BgIg&CA2~IYn^$o5w%YeRD0&K@6S^lNkK$hjSM<-Z2xT?dLM9N`CTMrjy#6i=1}`?GGmdt1!~Z{d{6Iu`m>gpAnb10It!15+(8H?5iWRCp^@7uCiJVE6C|!(P}8(tA-31+FfU*m z4e6^KOV@PL750L4Up|cve%g#hyM!pYA!XRK#Ih`w3v61!pxRGm9-BuqCEa5&Lsbdi?4PLEyJQfJBO@M+=AO79E zaQPP$@+;!J%tin~KV`&>6M!<+(M-xDzhL}f^o7so0}3^0FxF2&jhe;$Z+KUCG#|^i zE9Tk{hM&^B68bb6Py%1&^Ru2qW1qZ+4c!HLnVkMc#!Eq-vEN0yzgN!^2 z32vC7t<1w$6&8}3Nd&%<>0e)jWcC!_{a5A)-}%z-?2i4iUbxbm!857F3RY6&#c7Cg zA(yMVq3k)z8Zdnakuv7Yj3NU`Ef5K+?S0RtS0l4g{)r4&1RMgl5W*{tW_-T^OL5j{Q|Hb_y z{Jq;*?gW0S7GfTPlk>hIb@B*Dsx1$Ap;^SjfEjwCnPv?%;tcE5WnoroJ!JU7#Rp4I zhloFA*$?`EtPkWZrnx0Ct6%U6tt^}qkV`+A~MAcM;n7Q4Oh;r9ch%E5rZaqEG zI>Gwp~)Qmj{5OTZK&i85xpX9TS4Xsj>nSt73g>Lv$fWS!d^U1X3$|{jM(vO9IA}mWD$?|%B z`wa!)))b+8qGnA&+1W(ZB?YKGpbW?u)$74xHKZGq*E!yfz#IeJV^9H)?3_fE{}+vi za~n`95*5HZ;MijppMkjU5QI5pC}W8xkCmLKMA*nvj<6YH8{E0+IXA@%Yg1~I&yBaO z!*JIKec$N?If!59P-*T7!CE;EhSHV__fTf06!)sg2e|Bqk`oXv@ais>756{Aic)Nn zqBan?Hm0I4kD0-iTuADt>YP==l*ewizbDX@^DU6Ecyna+gI0!YlL=&_Pc;`lV~L|_ zr{pZ_N)OyaELB+TMLZW6sMgWXsED`9neEWsw$a0=^k4s^FlFYQy=5WS+!Z_2N26~_ zF_^Gll8Q9&s%+_^oFg<2ZZ4+XBAMj=k`&4NcnG-hR`a+XLPRV>dVCPcL1T>s`@*ez z|L5+Lpq&5b6Jz)11z53?)R4{#)=2+=UQ`*29QwL0LeJ^cQTrUm2C{!P{o3giP>`s2 zX~IG2`hOY^D40trRmC63$}WrJ6cQ`jiT`OR9A>+p*@q=x?ahsj8`+L{$96ilClLN^ zk&C+YFt)0v54`!YjIFc{#Y|sZI+HGaP0x)a9ou9N2G^|Lm2oDB*T&{mJ|zs*FQbnJ z+oUW4FQ0H&TgW8;6|?@|L#!BBIsSLT>0!jh$>5QMf{~hvYo{7 z@jXSjPdMBiNpG$#d=PmYQDD+3HnAe{syp1|MezJqtE?LyT-N!_Cu^njb+C(v$~G~HUo;Xyssd( z=8JXL-%~PpWcZj9nE@f2TC`5AtGYu~MYCsQ2U1&QK@!NCPsU?f*p0LfX;FbeDFi4m zK%1WARWsKIQJY0sr`TrVG>Ge9)I5xZ2xkVWxrhJUc>^*nt=IQi?VCpnwgVcb^JUa(whx|=#HRXEr05FnK*3xI`EE?Y7m$uVgZ&hpzpY@ck6-UU_(^LkhLPN_15H5wDLRhyQD z*_N3qt7;tvz62J>U^~$3+b&Ek*xcW9y+92b^0iqo%J}inR}6^PAj3x zQCG`sKeemSeYUH(3UyuBg&PTsRG^jvAC#M8=hFICrzRUSOUcYT`5i53_LF(7=w9#B zk#1YwVi}D1ZQbLCJWx(Ps47h2UM%OO=_d`JB{CESaAPjX16ey1?Ufinb+trouL>x7-&yg{rBw4Z6`O%shvP1~|Cb6+&QmdLYro@5AU~ ztnPx}Jo-2AgWtvD!m~uKTpgNbf-x)1U)sk$*RaloQHv8|zuX0oVip^P|K=yG`u>=1 zsXqp9+|k^%VDt6sFf}X-ZxA9kUbn2N+PO=Cm~oQoS3mz00%IZ)vr`2;+Cx-%YS9HG z2jtQPz;p09J;x)Ov!f=~J>4OWW!S5w8x;qLD&IQ>>XW@Crjn7y2&Fo-7ia*o8FfwJ z5P}Un*97S|hqs83oA&R^NrLxDl&H4UV^|XLiVc=ldP=~4gmO_p;_X|rRn$~LeFdy4 zg-E?wA=+iWtl1q?!q3@sRvirmDy}WfK*`+&n&8yroKtC2{J7&L3p#c~=g>;X8QMs> z?lqtvOKMoUV4A`Em?Et+X6DbFgm@1h%}Hv^w5hu9F)9UkwJV>CvNTp=L+l{G&HGY5 zxJ*0iU|m}Il13jC&vP8I+yzoR8HENad+5Hir~crzU#T>c)0GKb$Um%p^o@}#V-y3eXmO~62uFlb zJm$~$eCU;_aBTpac?=n4CAr&NQMx!jHp=nE#Fl3q^H+z8XS_>=YMAhHr3O)4RZE+x z&^(Sp=rLIA8>!HMDEakTX`7Exz8VnO9T#wz)>y2n5{_pRl-e_3rW*)i6tgnzOM8C8 zJM68X*xAs&Iy0Xt2pX~TT0T=OA29@$(8=h32kMmk(&1_?A{rxVY9scH3NcYtG(R)+ zX*|NZMn1;&MJZl?g{X=sCMan!7F%A@j6R>yQ@Q7|E<$; z{D0!n|KA97#{V6G*sRr=aKQ?F^+NRslu7{MADfOdvzqyoEs<*6DP7T(u}Nrg{{f(f zNF!A;)C^f`5&;|_1P{z#h5e0rc>8p8e|NuyVqZ59-{ATB>LmXuc&|s&J~ykMj0n1T zduQ`{q#|ka>a+(Z3DJi)ITO=+_6U-6fE%He#OYICCivszYbQ6+b^LAjS^a zx7ZX5;{zAMI$GBjG@y_XepG(%PY0oB>BI7$)fG1{v8jH#$ANL82HiNmAJ2%o_~Zbx za1r9>M{-aNo@Xdk{l_ANrDKG% z0Q^4|A&nJeE5OQd;blPM?EKq*m2#Wnq^)O!5Ew;5qj@clYO@%-&2w&Fmz>FSZo4P$JDFn&-%A*tJhg@L$gm?-(&Yq(ot${u(n#RGSaIT@6+-e-{8o1C7IiY>xsH7iHp1xAb-(=SFyT zOF*dIPRABJYl^7X9x=C1)2GYh=70dl0Rr5hfMvk|-Jv{2 zj!cHr-=e^+8a7T4fSrno0m@(N8djs(sS6|MF|0kj56j#>e#vJ-2b90wQP#tGxxa!+ zS`PJ4eg5gj@e&p2OdDa$e@|ZfUT!M)drM?tb*sUF%cu&W-E-f9BU*pn?4X zqcw;1OMkZivwzHR(%{S?rfcGAiY|eT2lP{s+ObC#OginMP%5dOtkL~NIq<1-M0-Vo zO&(&^J4FRJM-Y5KQ59-C;=k0*v~S+#5OjEa+7C*#91}9G6UiLBn0<8-a+Bl2u_*5J ztTTC~f5?h(;l1#!Meb(S3`#M^ z1nw+_Ekg=)NJCN@NTI|J^2AjVwxE@N%o7IhNCMp!<$qNA#Ng#P3#*O@)gub6w=)~3 z?MFe`f`&%4Oh?so)cW&QB_u94n-(vT1z^ArO5Jhqzcr%E)mEPb_i&o~uxReMOJpM; zV7c&nq905xepBQIatWtoprjtQekazLEJ}uweVo9&hd;~u9A=B&6ij$! z#GbU%*HK3)jKlv!)ldbbx%!rILt1~Bv%S6{Rkxlh^;p>gzSp#{pXtryzskgYGjcPa z3y$`ta0`;ky^kwXxtb4!s%*om%wBODho^&Q-DILB>#=!e%$u<6DaC4WG#yD>DDgJ# z_?7;pA{sejjX+mqmPIYEU3Dg%>LraBHl|RycN|_sZ zUZI^csQ2;4HMm2o@A}{zRTc4RnY$26eH2^f9Sua&;{>HRT`HW4G?fUSp*FdesQl-H z$smRatl*@kKv<-?48;n0ipWW&C>)v zwM<%H{X=$xTI!Q5Ci>R+%@56$b~{un5qeG=J_^f&1Wrj@k6mtI0@W`IX@ee*{p^J|r9+f~vCH!BCS-vTztEY>`+x zrBL#AmaBu!ZmG2J$oi#v#EI~0N`s$F&}Sh&a>E_Zq}uH5D0_+{sXLV~VARk|!I#>=}Kl< z>XFbq980*j>^McNY<1mv5XLPc+S%7Y0@gl>sH(h|s(LIUUwhnPaEB0rfkeI@b?YJ8 zA0fg@dG&x&^{TmpzywnB1gtoM)eTivSM^jvwyrP$Pd;yL-+;ZXC3&uzANOqT0Jru% zn=Go7jht~A;Blc$gmi*@V3ZoN{ikb<=;A70*Q#GEDO02TI236VRBDoR9J3neJU`?( zZu*vEnK$%5xyzqv)b(Rp$6nd&&rP`j!PyVsfq+@&SARsc+YQW5`U0W2`VeC)XOsj6 zD1Kv*Nh9Uha$vrar`(if(7^J6q;-dCB1PDyXvynyNAfw@Uy{_{RVmL_?E4y?r7QrJ zQUj^}kO1EOfE)3rN6d>}Qg$BH2(Lga77Hjytv##ZcpByG%N9LQ2W@PLGNqObS`UZ{ zkzn3>4fU-|UbVm^x^%EEIOVmi#fRstRjJ&wmiGmBdyYo?Umz9({eL0AIM|r~R~oHh zZK=e=7MR~;lGB3@#X*vOHxsK0Pu-e(n(<9-UXpscH6d>aU*A6wMdA@O;WRSdX;-!q zzyWgje|+Oo^n5#SCu8Ae@Zj`ziaXSgo9gV}UY`hWfk*v7M*oWHRl)xgcX)gCeS5zx;asD62{ zgkK(P$Mj79PSOfR0{&G?JJMOXuu~>orxz(98AC?Pn>UCO{RWHyv1HWV zwmLd{GlozgC;q&BwMsc1*78lenvWN`{a$-i>i0{c^fNYI&E8nKE9j)qO$kBPwxj;S zm1*^c1ao3yj4x8pr){&zi!KwDBTOq4)p5dU-SpwAw>$u9bh(<31J`Go5I z1e*B@T2ajSkZZg5$_du{c6q}xIfZG5bz&X|(JrqeP1B>#;KCc8CTx0)qT-`9EH(B2 zCOzs<*B;bubyTZ_@8>W4>u(AujN#}rRv{M~qGS;wVP7F~8?{_7+CMMbD?@_0MD9#` zWT<_h-6cAjK2@bB7oll-i10sh6I?lAtxNhJVf`HHsxxUIa=n|HD3gvR>1)c^?V#6Ic`*}4e~RC23N z)Uh8cE#t5~e0;0JPT!D5)$jV!To?pDa9^0b>mA|)l>cGHr*G4y50yT{;FddqKSbnG zDjm~J&Q|BLI&1Ct7)RM(HBciRji-w*c*<*aaNR!AR`Snu8+} zL{1KK9g=pD27?>s8+UBcW2V@Gc*Y(}jI8j$+p{S%$1BE#Aon``IX)pJnOMv;JQrPd9tJ1-*hT$(qN6sH&myS}-J28Wi zGOx5NpZDs2QM6k+-#O|P?rv&ZGnk~QnARLL%O{w|T$JWXW^f%kM&T?PfVVb+ZVluF zls&}`Ekn}(+CX-cm8kan3`lLC{KGhrHF=ib3s<&54Hgw?D#vvF~nl{-nxAka@I z94NQ+ps6G!LnF{oXkJCI;}WT8Mrw3eJFDx*6D3f864hi7zNZDKKsmhh2Q7BJ_{e>6=K>6*beNQl@)JA)cZ(c6_f9_sVxD;!gGsWU16U= zhfe{x-gUzS3Zyvj8Zn-BED|a}7guLbQGb2s(Meb?z`_BOao!xjTANX0Hhi@#%F5G&WUM~ahL865Q~GIIztD)O>RHvYA$i78 zHJ^-1xmt2~8XhaqjV%n{fRyunY&S1acg4-1NVyVZ8f`$GI(Q}FJJ~Z1&%OUpjTnF? zeG(inb<1s-aF#hkcmZL)PCF`D0x;l0o>iQ!F5U(=ug8wtrl&res7u5ICs^X$Vg2YC zLe?ovXS2WEcYVyB*WfyhMh>LZEa76UQI`gr!jAlK=)EZ+^<)xS{|uE$+&CI6x7Zfv zB>GJ(C2`=QT$J`ILR^I{oIB>QKtVcn*Gg!;n69P)M*UG|RW>CKSrg<@hnDEjTW=DKsf~Hm z7od7wJd}YN;)m)F*v!UdF$eCc;kA(0^Y+9kY7?aSIw35#pAmH4un?!5sMCKTDCajq zAoUdQL9Xu@jrI0veGc4k1`>TTSA}p2`7uoTG%!SmaRvhjI#y&k?R5a>=^yDzww(i5 zYPy{R#*rAOBb*}a6e6ZKap5_fxoF&NnWj*H3t%pS^G8g3RkoST^>qjKrvr~s2OHSm zLZSx_5`h~Kv;hVWeS>Jm0{~pfQiR!b!~u^jhnL0!2Qftf2e;v70R+yoOzA|xKZTGu z5Vil~*(1$jUa5k8x+ekE6Ztm*i+*>2c^=OXH z#BwXR-?Inu?@%7#dQ2aFIrfSnFsKBaiPCrn9;l}{LKc<-SjVE)+^|3f3^p@Q??H(D zEUEc&w*s3zeHz|Ib5Foufu?r60e~-MuQobv@tbta0Re|i8ug`>x>z7mzfFDUBPbI3 zSE$p`yr*k&T7J?di_XIQ9ivEJi7g}=NEaP$V>Rdfmq%d>i**l6m8S6t($t&{VK2?1 z7R&gKis56#+&#le<$u-9XW~}w1V@^u#QUXoE>&1XZ~agTEVPZhEr3k9p*6z0!*->Rv7(Oje%B9)Oj;f&Arl~DA=vx@B7=a$4aO&uAPa@H;Y_3hK% zf|Zr=UB6Y@?;usQWV}DmMXG8#>XjGVMv9eIr3~>dSLjZ8 zOG})~9Mv_;1xu=G7tvs<5TMxPIWnBnLoA4IPBlF%SOy zUfvWb33A1?h-w@E9Elq|&~S}xNop2)rE?WbpSYaE{~li89q+61E8jcb#7%jTQM7Ar>jFQ3!S8tMAtR}&C3ibL~Qgk6h)|r4Hlp6C|{4Wj4v~$K=6FY$6~N zhI`4Whhbm)A|nQGEZJob{H{=F+gfdu-AfR#jOv@J{ZmAhQ@H~89M_8cb7FDyB+>c) zl{5We%oL5aShu!UX3Q**4ORFWV-J~rOV1N9jALS z7Q);~3(Xj#D{LIGZ8o&;L^+5mR{6s#yk}$Q?0-)}uGRagd^^9zQ%<&HdC218_U`@R z{)$(LI$`l&u|CKDC3a(GU}61VVf`g-4Ljmi1mBg~Q!$8;HtqV~0GIHcTd?al5^_opKLhJO|Y zM~~NE#J3=$JAp>|bBQQ{7$hZbxurL{PP8z-*SA1fRKa+WJ2>A*|y&`60zO0S!I%=TFi)npGAw@E`#*``5=GZadny%+S+a z`L&OwexBZLcatJ~f+fPnDFCWey}n=cE+jiW>2Jv5{be}`hf{S@HsOVWXD-cq5PaY%qGbTX zc?i<{a}J+>0AXLsFL{>+8GZ3QS25yUr3s+J8%82D4XLoS1{PkylLf{^saq4NEC3{>TA=O!BV{z`Ex1D2iq;atZ|R2$;FQ)LmdSY$_3L zKO)Y^v8{wGSkI{o@hI{Q`V-2Kc5Pt*+?Y;)i;PmU@rVG7Dj_G3D#_g%AP7@XCknna zkK6zA?;m8BpJ1>z1A&Bo_^#r&=r7uaOj?$9QU{deMwGvInQ#4IA0I3VHAer({Z@F~ z{7XB)300XpQndorvtz=Gfc|j}B3&dTj5x;2c&TB9eIwrRF9f{6+`vzyaTjk~`$x*M z8qM=8K-FYaQ`%;WH?|M5Zh{zR{a0GY8Y}9)^Jr~WiL`okBokrW#*(6~2{YqV-FWI>M`hx#%z67n4s#~K?&*AdecULW zx$ZD>pP0Xtpynra`GJb?w>&m1s>nF%vvImp4gm{j)1p%2vRfp?zf{D-8K^r#%J@=% znn@lWciJ+(66&R3JSn^Z?3ifshkv)}uPe2lj*b)s9ZcCEJ32BZ=PeQYE;U*MRuX&E zUzVssdNKRDHh7|$Nb{S10GRMU-C;nK;q2hRoJi0w)I|K^5W+DE0)xnRGoSk6ck&)PFLj3AeQENaixcJx^uO`8L zGDiaF$eJkSSK!bQ*y=PXB+bx&5!K0$z@Z`C{N~#cfbxq(IrrIp`gn*q*@aRPRDr9P z#)jlY!LV2XgX){Eu=@J}YlbI75Emh#S7rE$VGI9YPsInvKLNJEp<4d|fe&krlahRS zwIyrH2QWb8&yUt4)z;XNHt-lmLF19-`QivRWW3oOKSMEZx4=<-74jV(uJrS9|4BW; zn}y2Z{S;Ms17?>4UT>N?Q((N#dRZuagg!K(y3gWK1E;(Woz3otY&W2A&!PQOoh`qv zQk+|s)CZPD?sNd3T(8XFCXZr*8@8{V@&2KVhFT+u<^Z1#<4H(aPQzpPu^EATro?wr zv3h>seCONYo+-a1s#&q`PJ9XTO`T7P{``NEO@rtDVboi z0kH|Lc0l5^741y^wHIN!(F$s&3(`_nxg2@fpN>S3JdA+(Xs_cjX2lg15awecgG{l<=2|(tGb7*=!E6nxYJRQ#zJG#$fgd9uNO#nZpiRClo+;#87oqv5HWcG~uxWzW zX)|Qknczts#>ByXQ__?ZjYMk|gxdqO60JGHkOwmFyJ(09*#h1wR#&kc5fSrnrK}mXG7(%gP#w(2h)&`y_a~B${GtJ=GmhRh4 zRK;x*(Wv?juYzNHX<)FO=8G#q%e43H(BCUSh1TB)=LAl6XW%)W8PuLse)bURgVve> z>CE#k>66yr%2(%1Aiw^1VozmF+0E;Hgz`ORNRrCI;*AI|aYv5`_IT^0)btdpt}PRf z6h!i_S62FLz=ZVDGPQPFmQqt-EM!ZcmX@pVnR^=K>xqq$QW{m3eI(cbJFmAkP@vAD z4Ukq7n7R}TU0BflsH$w})`KML*=Eabn^zPV-U{7fXG|Nnvb3G+Ip~P*RQ$@bOIqa_ z#8_p~Rgu{18&dwvz^Eh|eM$!il3IU5} zS(UUL_O@|y^_{So6n31vdEm^P-#7%mE3#A0;Q;21bRt*Uf(P0GHL?hxyMn#r=1U7= z9FHdnPTrUn;0vwngA(U=W*l#~9VZr-Rpt88UMdlNE9$M-=MO25!9TJ zYdX%!2Fu9^&Q>cr=W`($a8IHobInLa$M#fmcL{}~xidU7yx$9QXbOxI1M{o){dn`D z6oY3QZ^vu?F1HzP@Jv?j?0X}C!}$D>Ir}+SP$tEBUsy@e%l!-UyzDJ)b#rfFhXs18 z@M2APM-^IlPlBd`ez3ha^UBMiRw&{Roi}ffL_MFTkatICGxASPXQ6`Se#OO3!F58- z_yZvlx1rz<5{x(Agj|WU6HLl&4v1JBOs9BN@*)VHTZufUII|>p!A&>|%d~WLuO3l% z?W{qG6EAI-OVRN>Eavw!&Bo2$h`if-%w3yw7A>?SV@_ICMU|{(9nJK^1etR-k4i%knB>@y9(=_Ze)ES%+1{iZg{bP`!kqajwCbBQw8Q%Qw;JX03eqMl{8D@XSMNw)4ei@?7<>%+Y_DN_tjNU z+vCMdL1`=Q3&zz2w}to@xXHjUT6RT$X+CyIdr6v}QC)`zGXr_K3fkpMunN+#A)9Tx z*4hV63+&33Mu36Lqc0y5a!9{8?^SXTa010YMdF0$nx_j?6YLSGKMnD87gxo9RY3Pj zC@+Oq>yT5kBvz9#;Lr`-EBTDgI^f4FZFOrUxJOc`+HykJF!5&eto?OtD>R>4 z1a&@rsSB4@n^P)o6EnaD_Tog$W^LH9>fK=ze{jx$SaBilk*d@5)723@f1)m!8V z`6DL{9lyy0V)hTp0wRZsM)-rsvDjaN#4F_akRU)}ldWb&yE8P!rO{83@HxfkhL|RNy@HpZ(9C zPp)%|>oB@f8F14e8%+dAIJVFSrc+AvCZDbEyU$pv&24SpjtoLXizFY9>VT;m@m~U5?=#j(wQu@BzixWD$8haw2w-3HvY-2&lP}>Dx z(&u7&@ho6Zu_CI}mtxWQ3{|%t&Cb$jmUPSo_VPJPXsfKnl<>aoFz#6n(}I<@gQNUY z&JG+C!MU@)K?qk$oAein%hp)2g2E`k+}o=n^4-4N|K|V`b)xq}bj_@pOz? zKBBAi_Sh^l6V2B0(I=;hgi{fj)InQjAgH68T31`BNww~tGWI-DlGs(7gwHYX=xo_( zRc~Z^s-(tPedoIpBIJZd_A^I9lG*jFJ?AJ(`ACV;K%5XF6=o*cCaP7GSmAg zXho}$R%8DeBGgt7x;)d7zen9)OHo)Nw!*;MK!|Hu1mNA{2*;ICPFRV*s+I6u9pb<`G-EQ(V|&rG1n-)|Ur|XSPfg+SzmPlFl70csneq zFOOMj@E1o~59KP!ctEmcTpTCfB$f?RkW$JO+EEp{sXGZAS~GSO4kcvPCKs1c@&^>z zq%Q6JUt{?la(cEUnUo1jx5x#x}fL{`0fHb< zPew?7I-UOmLBB^EMrGJ7?PV!(rg5 zQX0jy$tFRmnzpidn@0u2Qlhf@x_JZpk4OK zgACu=Gq}iqW`Di~Kj?{n6a6p%x)-G}JZ?-+U9$*us>C+_K{!0Db_BOgQAbo{K5{cD znB}B!0dtgAg>A92VLTsoji@~Pp0N(fZd)bxZkueov^$?3gzv*7b0L%PalT_F&zsKZ z^F(^*JZvP6O^PHxzVNl1e6s$xmk7rH!aA}uv;D7LBDygrZL!<$YHCmM|yl98cY_#zUl~4p5kGnmFv)D_-xdHFSTs_x3OtS{X82 zy)9mvGNXqUP6zy*3J6xMk(E@r-Y1y0w!SW z-GjJ#B= z4q*qFYJmAs>!|xaO56cEK>h>`JT*ut{Qx|I2%L20&mpSz#kv#j_yr_$AtiFA0U7uS zV=0~lqx*O#K?nH}XY8{qwq=@x<`sKakjQCSQ~GxsCiQ5Jxlg_uimawXJ`Q%jH|;Gx zvh3{}1e@B)>Z5KsSs)DXnV^-)FvdM^n^)4i=tQ2{g-tvoV{dgEGX|L^tCz9YZveX{ zif3923GJ?(0}ZS3gr=TY+u?+4P0y1|sd>2LiMwY~c&y8H@H26Fk;dNPKK0>f(&R+d^l3CrJc+r=UJ02Vy<+e-C!|J; zhlpow`V)q!T!Mk;*$UDTv*Jsu%pj7CT0s{-*U64Vh9-QB%7sCk>PXyVrvX2s#Y4jM z${Z}<8V8R>g8t@FbKj-2;2RKB;Z}>by>xH>-~F&!VY4H;K~|~i2M35{ZL}g?om&w! zNVo@Gkb#)xo21>8aen{U=`$xO3iBy;cF{!&2WN~Y8XVa3ZJJ{6`DBjUenU# z(VX!kMd!-aV_TS)%9_Scr^dpn?#;^06zwC|R?2A|We zI5Mq>)$@pI!kdc=auK=e!LoxVA1o4#l6Iq{!ne@)ltaxI$xrc%h%GXS(w9CT9u4C_ z)^I`KzgpVC0MxRFTWp-^V(Qpr(CvD2SXYxyZETWGp1nELU*t%PfQ^;-Viu7P(JHPg z@FObGJvckeOH8#Z@=A3v;cI=Ott2~_EvBIKE=(k8rTCCM?;;{&+KTI#s`8Sn8kQE& zRe4tP@kkeGe~kJBz7<_zMAXFi=FFOB_jRMs#J;5f4d3X(5B?E0;$60<1gNWsp3Ac_4-u3 zm-E-?uEz_ym|*AbA_qg$h12RDDVNb!4TK_4QY_K!T>xB(+uYJ{^C6juZ!d*PvCXjC znBlMGQOA=1t%}IKb1b1-C)yIQJG*XcF15j@Z*^|aqj_qi)aXlE!QVPh+Sz*&O(dye zwUzSjyd~c`@5rKqwLOw=t;~LA_?l;w-``CZflQ>jjuNPRFn@W7Q94*VQtg>-DAc@2 zlR2Jm*U;zfx@wGO==xskxRtp~)w$d$_sCOEu~~zAp!hl$l53%I0(W)cv`;rn6VmlN zg;3#F_YHC(3Y1)w$iHl}OlWm!KUX~-ZCDkBpWf1jnPxHDmrB0V%|8M7bdN69y_d>V zxK51HGg-YoroU&2UW@d0#C$sxcxLhhjds^47VQe*9hi}?!Z8)zn;}b^-z~>-7N>?5 z9GhnPf7pBLs64)i}xo9^weUAT{NV=ACd z1)$8LpQsG%qk7eaeZLC{qk&5gU!$>H95EvOpfWj7=@=P%N6QXD&7V z=?x7+)Wo5>bJ_BEm0!h|o|}%Cf{(0-g=^uWfP%Z`!xfWTv#ZwEHnp*WWHBMX5uWY` z%PfDNU?Ee4epIoZSjhX%jWioZ&YidCD2UE+FV+8n9=Ne(Ju?(xgC~_@K*w`L#T!BP zyM%Y|6?0RY&v#kuTwz05q&+kbM>GcMw^sBXb4S!%`ZG+*=V2~-G$E2ZD1j>PUQ)?- zXCCCX1w+$b+&VbM4b+WQ>RupQor-l()_#ZkWZowZ!%G$c+yHO~^mYlu3odZ((UV@S z@s68Nszc*mrsIaGpXarhvhBEtN~wz9YQ@$`s#RSd?h@Jz9Gge4$biY9e-x$-!~1fI z=h#*TtEgaT*dnkJ#j;ZsZwZR0*B1TAsx9iUK`ETwR5l)w=Qm;R;Z$epG1 zY1H=NQ#%@o6Fg&KvsrOC47xIWQlRR#sVu&8N-9nYRL>A@FAix#+U-6{Ae8DF2Mf1f z3rIB5*d;DGmg~cPQf}gO#!L$zOatqP)s<97Vi7pvcg<)!#gowStc)EokK%?q2NKoQ zwMrBxtxO=4c-x4Lp{?FY?ivpnyI61EWG!y|2Lrexqs@3>LH+WaX5o%Ga=tVf{|zi42f| zRw=Q8k7NYUJi!y6N7=*NI5PRe~b!ipWN4Ips8qytEq5-z$^i_uncZ?4`l%kzF z@bI5>xT()T_UgB$?bsm+*}&ak25GWEBga!GVe(2+(Uk~p>YeS%@#Wy4lZh49QL zE;bdNz4&I89rtE6*Bf)b&P|EowLzi|FY5(?6F0+UJ;^90*grn;_qE*-i>2=;?QE&CfmM?OwdX^Vm#2gL-ngkcsoOSPbEOn z*j~_T<)Z;xKf|Bv8f5lUv$Xk+kxW-D-;78-?)_RB{Sze1*Z4wc*B}2mzM8^~o zw_>1sy|AGux23`go3_xC3$@i4p)37Pl|Q1S$3XpQ**rt1wP+Kr)q2fE%aorN>Yxw@ zso*LR`;Mq|9(GfFC#Ky=Y536fVE$)q`N1%_2*!fZE4ssd8r{mf`L=bYN&*^3r9c>t zPqi`mo03f_${BHYwRt#r$!J$J8NKsc?w3Z6lvH5bh{qeLiWtpbcOKzuT4~k)lWfzn zu>9M`vCqbB*Ox^q<$J9=XI zacw5>Qpp&UE>cPMWL^7j>f)+?9$J>jyse-?iMW7X?h?wdl|n+1>s0KBV~wG~9+0T| zhO>pPd8)fH8kvbbbBj9=nlS|B)fgN}EEtc4) zYBsIQl<>Wy#IBJi6+lt`juH)En;3k)<*DL6ssCC`e%hskf(p)0ig z3Md`csq%an?v|;_ac8NL3QYO>Caf*Wk|Ta-?H(fuJcy(p^7$m*7$Jb+@sC7)Yl$t9 zIo7BIo;T2p61?aBsigTGljn6>=gs=vQNG-kFCUM3bK&F3kQo z<{(LnPr)fB2tPFoOFjR!{UPK#3y~LE7!W=DB~nbsbiVm7MShTpi;3qm1#IpXm=5JL z6|2e}?TQ~5Y8^c~De<=KVLA@YIWB%6+Ccu2Uwu(ltE4>9_aUKYd}()QVBKePtQMA+ zwxaRp9ZZAY2CK^yF~yFBR@sY)SJyGNaChH~Oynm)PIu7W3#A*uQPr?)vzn!5v`;l1 zp|Nays)Ji!5I>vhw46y2e^Q&LR*cOnufHk`d~~FL%E`lx@2F5kUfE2)6}hmwSYxsA zsJ@VK3NAF9Mzax!5q|L#ay>0H(EC1MH_QFJd^dYjMXFJ9iRxtV3;k0D&C|-cb)Ue> zq5!GJT_XCe1#)0C;RSQHjVe?El(}SYe3*GN7>(`fE{(9QJM0@w@MaQJEwXWI*jUnw zpB3S(uSK!$3M-rm?`>;jleH#ExxtxLX7|=O5+{j*9GSjFluZQ2KRGL)9Kf;EpAs4( zL!O|E&$=p>JObakT89qbG_NDBv40!e$l-m5AK@_up~b0ojbjPdD$e@0D*u=Q{4lC@ zNT$C~{oS7aAzOS%?^E#PO>@PhX3?kuS1p1(mi5mn4?QX$7_3IIZB*V8R`f#|_vMjp z$aAIOkr)z{vMMds%Rju(CYyBHKbCy6!Xy3{zHLhC zCnFw9Z47E&0*6;oJBjk}X1o4<0>FbnoGK4JE{%)00nH3O`#9XMl2t&Q_4(#yA%q=?Q zh_mA0;8a}3#%0X4#;LeCUM=5^dUt1aQ|rOvy;&RIvEQSPH#56KEF5G`oIH%{lq0J! z>+FeRm7Pg>OL8o(=R=$duP*lRJdZ1ZIfv7|g93Sn(oVSv*BrI(^MI=_XQg$wG__s>YN82Co8`K6 zDzbOy@04JGEzLdItY5po^_G)ALcho~#r5_=D2(k53uf@F%wgNw03 zs_l8*ZSnqGTqUuQU+S9b;Otnt(aLqvV7c!V8OMz##clF;0$iznty$!=Ww|W2+3f0_ zMEB^s{tK@ltzEM_ZMJU__}{uOXHK`| z=X9saO{&^V>U+FcOf5C8g4X?*P!!?~Gn-(Y(?vQ~)C4wyDyB^Z!H}VJTnX{2&=0}! z6-~~b`k0{T9@fLo5J7}URoJmj-@q*}PuHbIXM5}xu`8Wh#DuWcpjbl#F%U}YmGc=x z*u`4ezex>Ro_;;C5HmM87Z{qxa@pi<`<^g3V%`hC@;Sd)am|vdP?{6naSrxMj5h(P zjVZYCgwf^t#AYlyxU%Zt74^v179*w^IZo#ou}I%3PbDPRFP;pDQ=c7sgCd;4hEBQA z^07#U6rdv9+~mZJ_@?Bodfi7_`v2a$Vg{6f zceOFUecs6xS0AKMunMk^Zp60max;2n9?}Y3n`wr(Y`Xv5=8@S6S$MQ|?V2{@H?4s5 zYf{&X2@mPMoiW1fYWVCcc&U}jA3rK&d5#!5KIzjmL9EyRkj~Xv>fdHX{A-b@y2RtJiIp^U}LWhu(`J;Cal(<3PA9;>nT~JLBh9 zwha_|Y{XA$>T^3hZnv2oxw(cqU`pB}xq26$?A|=IP5D?zcIv+`OyG2O0AAZhk%lAM z`?`4Gyo)P41pcT~)<`WJ7ZLe!P0h_Y-aA~aOukXOR9MTGwUoT4jQ`ztG}d`xO+M5& zLXRbaZ?4l-7=Tl=O(ox^cfV)oULXqScyaZrjyzGCtZN<@Nw z?|ZP&wdYo(7hpJGAK|-D zs?#)gQpw1*UQ{0d;t%G62$a2KPs>-rQ>ewg`i>2XMPyue)yCSoc2-oP z$uUaO{3CKT%&wQhrK3LSC}?5zMB|%yRloZZ=3gD?7d2|zREgke0m(2l{DuPMDX(#Y zB_>>VG0S(3oGLQ?lq0&hTO*btMmjVcZ)hk?ViM9fk8*)<<>tzV`leR=etd3|t@14A z6AU3e2WFv{uC}?-*Nh&jw>m|thI$WUqR#f@tlj5cMccKxa`LV!hI=g#VAu?(c!tIp zXW>Plww0FVg!mpJGLAt_$7-bt<2Syv<|-9B@-g^CM_wmY{?;9rkt`5%yb@$ozA)ou zHI&M}6ywo_!)xX8N-afElETDMpP_Zbv}!?~LO$o~^OquqxGC`Qw`^7cwYZteT$6rl zLDEYX1#_yWR=|!Is7aQkA_I`T0j%-8XWTopo9xgLTRDc*A1)&K)BK%{8&3n)%E~qT zFJ@fVETRoQ#3@6l+hqSPXPFQ#EvLHO&>Z!>6qtJE28MMJh3IisR-v86G$$#?V^S@MA{hY@uoWFn=@ zx5`R}a%547r-G`W5R`?&%!qbON=b_B+9mF4d9XsPvQG>_lGI-ZM6vt~A2}{2%B)VN z?a`F1m7Ed5Tix@m=QR7HE7!`HzT#^@PO+=-AS=pM2D1M4}# zwtwtBoEjD$$L?3WckV`q-iy0nDl}-rDCJ6F>5*kJLv%~1lRn2eWf$!b@L|9DxLrNa zo!f0>^V)HN+3r9y!)ps84##M+l&_-N%2t6qTcYn{<>uD%7mph&k|6FuU4_9ijXFoB z;5Hu%2U9qTF*{EYRk22&{@?^s!>c3bJy z)l}hlG+3KxubYLtN)NRe8z)_F5ETf5aZ2~53>8!v&;p0+(5qDv&n9)#%l2rtj$iP7#)vI(jJ?f0V#+H6}Sia@`g&I0Ifq2A;O&7YozJ-@(42jLaGM=`w)zpruw3e0^qW?#LUG9x#d$iCA$nPw*Cn)Od;G^275N+li_O9>@oVH#V_OOv zgIJxp6tNT=c#L=t?uKWF^*>EFeA~0u4V2i_6uio!|H8U%`^dvOw(ccmFTjeWXl%U! z9mI0kP>I*tVk3JztRhCgv^t_XU5(Y+qt0iOo7arQ0Y)eW7x@f&DdtBpD7h5=6>o zM|W!+4I9%e@(=s_s1toeTX>_Z8x9D~LH=PL#Dy1l_vD6$@Zep|gnRPaLT2G1w*$!oF zQ^IV0O&*wGWm?*EvSuzvUJPoXL3LLb-ydGeX2@sUU`&*m=}&4bhk_}{u`u!mmTnd| z_w3+0A8nBxE{VEz#;fs|@Kfz=Z|xiv48{1x>yj!7DR(w$3|eUhL&%s(Bka9NikP*HCkhuC)27(Gd`1FOpCOv$U3qdegd6JhG|4q zKSHI>s;z=|;wMh+hCHFqzV^v}k5BH436h9~uNHF=&=rG0xZ)C$n7O3$pbj#OMEV|` z){UO!5rWV`&GMkiLQ`Qd=b@+m;aLdqPSwQe+e3j1OjPD@L3Z-DU&#Tv%A00 zO!y?F>PP16l(G_!a(n0$gqNR#d}A1Q5!eT2W-9dF8ahm&^72|P_U$J!Qr`JSR?9Kt zrDiJ(7+%)Cz-v{yvuw|VJxa7k+Wr)K+48Q1hsE!0=EUMCY1_K_`j-Sc|TIg>rWxT$oFPVW2cU3S_qA)Yg*V4U27;TAY$BB#-8+0#;^41L_sAjy+(0@r%xB5BXHY+9Jb(O`+G;!zmh8~(n4eNGWzCpI^ zUeljKYe6He#EBAu0$NY6#3$Uk5Jf69`&jV|%$3Hq$7b5WNYQYNNS)1_z^QUOWc(U3 z=!!e%7=HE;Q11C(f?_qRCtSe!W~?zi;$L@I>mi|@K=2DHG4Z3~RJdm&xYX5;L?C&Z z?yG72c!?Si&aGhO8<&xwOJB1o&O=7u10rS>cyxil9m*qK%4tESAAgHgD&&S^|B)}? z;|Hf1i(*>s#U3c!LM?0}D)bWLCDB?J1F%YKipQ`=SI z)6L%Os}QNkVc78HGC6~c?6~0{YWX)v^D$-`2W^aIENiqI8h?HbH*rE1ywTo(Ud>IG zOc;aWUkR_IuM1LHg9x_Lq$PTX_cmOl4fBlrrNNg!&EBsX{QTw_<%diCwZ!f)> ze4QMmyJr;5rJAIWi#ns8k2~A;1sJD%L0+4{N9j8Aphc~meF``f%+ zW$lSi_-`MbaEZ(Wu=4?i$X%y2wzwRLmx6i=S4Zv@ zG4DH;YSJkk>&Lz`atzc=pufvvaNq(ZZ*K75n0#6Y9#ToG+!gM&QDhLPf|VRft7{^f zSM-9a+0J0fo-pKOdWRWGVV&_Im_y}LH|xu@Ty2}hZxYPiT8DfL*q!uaunRsxi8(%W zM1CF&+-4h)q}FSF*BHpeTm`Fn?P%6C?RgK6oS4uuxhf=sVv*uWBaXz%E-g zB$nI9y|gbKIPB2P{%)(c`%`YA6T8Sv;#+P1_{)xCd#8=4B~=F(t`Jq_`(&rqeb!}Ldnk9qDB+;NddBcfpgs*glj6A{Dbuw)xqrs^~1defCB>j#^#7QM?dZw7*wdguHRbc3|C9ZvRD6a&W*5vNJo0>%}Fv<9^b z;o7;te6q~DpcUdxe)_uK1n)G~S5xkQkM612kwFy&;dl*ASXtj*)S&bBSED9M*{UHI ztba=V3?kRt3i8qAp1CQR%H@>?r(YgT}nW>m{|pQLsdjlZJadIL8kJY)8ct zt;?DQzj*SV>3)}Y<9qJdA?~m?f-~LCju@&a&2nO%SiI=`FBV2}E}dy&iE((!&-j0^ zgen)%kx%ceCf=rQ-^wDeeWD>w?!8MT)AJ9aK=m(Wc>p`(F2xL#hJ+!DtEki;C2iKz zH8H{xTnJU@`vl!p=h!*Z-J(d1{%}PnPAZ|v_02M}NaBlksJJY)(u9VOpARu>-iy|_`?lxfgW6Kua=*@WS+Xq zR;VoYrkU_W6Nr8Nb4vVNciY=HS?4%*&awKlk1Nv<-XCzxsm+MG=&KcbaZG78@p3IZ zRJ>t2a*Q=Q#n0g9_EZ1hNRgTs2jBGPlCnkTRw#Ec=TKi-^`i13C?xi6NIT@v57M~xR;LVKmRaD>B$u}9+Jv0=@s&@ zf3^-WVKB&<2^ag5boOwXd;AQP-WQ{70LQRHvsp7zAf;+QA+ON@S7bA1x$Aul#nQRl zt1IJ|-|G2VYcg~e{6zk{#heq`5$a>fK+w_WNUprjmz5b=ND>tftubI^_6k0b>nFXu zc#$~CacYN!Zu^@JNARrHZmkfrXBnm^LxR%#@f%#UWmRvVz{SEhxBg4L;Xj{LqW$>a z-S|nqCwPt-q45sb_-UY|oBYE!jnsn*k2odwCb-RyvFqdL){jp#GRlNuW&4+-P>OVX zoRduw@Xe4M&U5=}OlrZXP{m;1ncDV-US4}_stvR6=pVo6Re0WzySYjct4nJLys|3V zXY1;x_$-IQ>jp4;NcF3AMC}Kwn?t+hDxHV#DR@iTAu$Ruvi1(*-4$oHY-w0S6paGh z-@3u=+?pS2N4($)(<9^@&Yx6OnT`^Y$+A7@Ui!E#GM>JqBE^C|%VRIUy<1w@+H?wG zMN@cz8fP1vgNUIYO#m9?)7g+hjq`mIq8PE#0vp!XPO)wRbS%|)nao%=>d%Ja z`(`+ULZZY29$(*7_~NH91k@0wfN~?mgT%i1^D~Y5;QLFJ7ICt8Um}jTr@m& z>YV3{t0t*Fkg&wGuV?VKFM`YUW^DkZ_7p*?6z!r`av?qB7>{%LJy3^v-ys&vYY41g zL;TctQP(HtTOwF0g!_J3{xsoBbVuU{XALy+HLYeNe!ed-JUt>wQQsO~LneMD`vm7K z;<_6+KydP^Bakp4zD})-+NaKOGED+u(jZ*rz(86DbMv&okEm9W(pkN1`=)o*cPB8G zOk2vO>}7S_(F{uk{m!|>Bo%KIYx;xR$Ow^+lEOymJRmHddVc;Ej!EQ5Nx|5_96T^e{Mdc+ffGa0^U9=QcK)IKuA7>LrikK98kU6)`R>)~V8K_(J$wwDw z55xZ`n^r+nfyl-!Z&ZsI8`6neb7^vF z7Ut9twWD>mN;)+AEe&P(4ON4&Z1c$sfuv14ZJ3)7!I_Qt|9FvbW|r2cHeM5Fqw zFPyjL1O3uZwqGyAA=l=UDYIs?K_2*K6z%rg*PS9iETYJw7VX)lCU>egV10Vy`FdaT z*V@~43fjrtJKrxT_&Bc|7AU#2Ent`vmWOffbmsCln*$s8Hk}^AGRIqlT`DA2Y{xJg z$f-HlL1GII-{m3}!|7dY&eiIN9o3=rPVo8ExKdX*St{~;-{uAL9Mf℘D8AL+q;5 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%0D<39U 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 C|mm^XfUj;~}XH29=A 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

*bXlsWVMVb2=_gSx?4^BgS*7JT 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.lyVe)KO{qe9mMxvuQKH*BmiOTuBFVPQ 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

a*hlp=gw+5sVj5ho?OtI~);sr@F&WA!$4 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

-CEXewHa9$9W(S#Hpk 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�|Mr*rRnPkW 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

{L1f;Fl^gcI-Z- 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 <5+HSe2s;cU#QJ{tO>*@wT1ZaiNp56av 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

8$(20_t>@c)0y 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 sBh(h%7P;a{LRJ(v9)J~f@8NDiMMVas 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

iI16~|(8<;> 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 ~oGEIZao6zUTSX3E6k?v0qIa5q*}o09 zQwOOV4VX?zj*Qetzkhg!BEe!0ZA~aL;6+BceUDL2PJt~rUMmL}7)zv@W>4vlA90Fq z9-4-(Is9DYo_{txbihVKK^RTPZZ7!5*kZqZtqL;3R{ADtYmm6tic~T^>X@MJR<#$% z5eqrEXRKd4OAN6W)QGPi1Il0K1)3Qw)4#PDn6)!cV3n%jGb7ab9yD23_d(9g(NSo@ zC$oVul+~4tt=hU#97#Ykd`jQsvXWEVt*ZZ&gNJRLP;=g{4(=62R00!?@4q)tO^8_) zVx#x7#txTjrr9TMF8tZB*BCA--iMm-N}fWD*0)dHI@q)N2m?3DpkmXJE#AF|a(NQX z=DbZA^E9)qQERcJu40%FJf6(q?5rBzLi{o>0HaQyiP0t9Tu4el984t_FL_(gzcKkY zuJ_zV!rAPr?L_$IT7JX*T63Le)3prIf;m53tX$WTRbZqV13I)dRi?NvIN*$%Veo{Y z0HIN<d6f4aaj#-NOXq;HgZYhELK{xTPRC@ zYHz(S;LJKz_#s^#6YxM`q|POUZ65`+lZ-9Bh9$=T+>2i0O?tz5XYh}TzcGhD(A3f! zj5EYG!nu^uUsBSh_NmJf82Hoh%-2vTMCY8)f2{vpw=jS{d3En?9S=8i!Rt~16mOOL zj%VyGY+m;Z)vi1ENBLhh%%O_PF;qTh;0*GjDjV)`OYc%S^`on&Oxx<Sv_ZD5cW{Rge&8&#it~xcCP~dv8aeMkW8lKVa!)5Sh%sH`U0ZV;`JaA%@uf zQ}bQCYy zMhn*Nt!Gk}MZO~7m8Sjn55<8^Gs!IUo_fcUf5=PsO-PMjXXmz6g0{MQp{gKL6p6#W zIvkky868(5{Kx zISk^vAVrB5d%1OeBf>*Wx5b;r@!#bjYMcA`r)Go;ozw~ZnRA$LZsU2z$Bh!6iWDE}7^BoETLmC$`-lr!mdtxYHbS`LB& z9BR++R=_vyFr2MYqSC7t2DT>bO|+HXvOuC(@POP6ARkH_I4^lkNW62KVU7O%9m$4m zLSXIrsglD)C?Kd8$l0zk0pl2!)mEDL@2LR^|LgM|t*^*z8S(#IOVxRCRL_~1w&xR# z*B{DA%{g9iYg7mV>!}?Eud9#VR{F5Pw+1c5r#{koPwl(y5$ueS%)CE`f4W+?QCy<3xK;)I7UQfJiI*CmrM&zrAuH3!V7>TsH_n{X$J3WwAEQN zG9lP4X$?>FFimN%bnDl!Tb-p4q$Ezcp1#_8L1UpWrKiM%Pa~(Uugd!$oqEBdnt~Qo zj8M9=05FCntmG7^eq9R+Vbz$Ec?r23CL9Qm`Hgou`PmpuO1WC_NY#Y|O>B4oPv zRRLfAO#m?qTNP5q_*t6R=VhwDGnEmvo@;)`RWsRXNx3;Hj^k{8_xYCERTwKJZPpi*T2|yapr@xY;TV++Y(zt>0l8trbn;qPT@7>sk%VxO8zKHv z%YUu4rg+@`LhuEp!yn+3n%PY|V>>#Hd7~kpNSkp7zaoeRwNShD40lr#_xGd>4W%$v zV1zT}eOaLD=kytxOQhSG65#{M`a3>43k8#9DXEbyUOd^kF0LBQfbndEiYn^WB>obv zYvt9&XZ_$a9aoPS&#dwJYvR_h`r^#A0(0$b8WfYDS>_R+I4$lxnZ%UHy{TH;>9Q9a zE(pNS!5T)wMQ3S;+7hd=dUpnA$5`KD(B=x5tFN?<)1S;lRPJRyirp?^-l9!RP4yr8 zJm=D{g|0G9yWL{VKSOq%FJ43|i@sv#!osaIPl98}8px`NCJ8PG5g8+9YhQh<$JxTf$^-Wp&v9-SscVL7}LLGmvWw)kYndYFxh*A#eE z;SJl|>srTZV8y}7_p?%^S4Agei&^Q>ISyl{H%HV$qVVPa_eHpSd@&v)T&aqcuXm!; zM@Few4@ze2=2J1_k#d_08zmvpE%+PeJ3RQ&ND@kvJYHXPa>PJ`ppE9O}(50o|jz$MZakzO^R!Cp#J zqPkzQz5&GcBi@^}oJTF783K(Y71zpKc4sRLM$NCri!bq^tVkphPFb9qOd@DD`@0>G zs1Gc-o0F?`wv3Kgc&{?6Az;yoqu^9q>;(m1?U{eGXsKjCF*?9a*+2y)hS>%K>RGkD z)xW{Bi*kLm{TS%;Z8N2|A9w2oQoOBjp27LadTU4svc6>o)~>K6LNTm&A01^MJyT)G zl1$q#**Q}1IYSX;vSw-%ZnZIkp}}7jPXu|C>%?+kRo?DFkY3j)LAKuy_(&#(&2X{K z*xo3$#bH%8<_RcJqGvvK8AS7n@P5b+34nXG^TOKdAJF+Jivmjel#RjQGJ#@kmB_i= zthCWdxxvER11`DDOA8e3N#drFR-Z5%d?8f-yo-wr6y$%Tg>Idf8hQ%;ur(jUBcVVx z0H>1H#I;epVeq%&gKZ`=jxW+wP&?YWvy6x1dS&{vq;UfYB41{2)$b9A6U{ zKCl>!%01AOQ!sWR(Hbi%K@Xd`(M1l+UL^+Q@qk@;z<;UBT1o51+SW-K_olJ zqh#-)JYUCJPcbneqlUvAJ~7|IjtWFB7Y>I z)qyOZ^lsr=vK}Cd>Ug?Tl7M5YzliA7Ueyt%+3CT4PL*1TP}ZqWJ*p| zBHlG5qOs(^uN-g`Hn&w1Yi>-|0|IidJ8`Q-Uh9|xg`8_jY{|q|D7+--gA;-SnuCAu z3okAt)TM6OcyZj0LaSc&_a~g{PPY)Z=y#=(5@{6_gn$~^H?nhyF{7cJSg9k5uU3yX zZ!5V=ML1w)K{>MPHh{3gxq}l#i(L5T!X_4bkTgY-=H44}M zlcNwcU1;_N8Qo(5{Q&v;Eai!l@aNNY=+p3Ft89kQD<@P)&_^@m^_6(!`~@X(o!L7| zj%h`nTgMcITXTvD)XK)JC~1dZEVD=@p;IicjeX!Y@N!Qw0H6ya5O8sS3kjl87(`QK zGP7l(VINPF8?WhJxYSe3Y0Wh+ZI*+Mea=dMou%!O_-5C52_rah|AXA^#-SyVYb?wx z7Bw|eqNb|yIudga-jIL-Hg|t_b;4E5k3A$Tdz3!MZEJTbpjgeH^-+~1rY`%SaC^Ze zRqa>}u+B^J1r!*IN{L&|Z#%Hy%Z@V#>WY`FFGx1*NNe2@WCA&vaed`q0{yI(a0q55 zamXmmHbyS(odb!DxoWkD}jqVck@5LHT*+z&!S6q zinPdWXss&NF$_VKefvaqj?4A)Os6Fc$V}9W_8<6b4*;d&MtN4yT6{3fXA2E**GmSn zR$E9Xd@}i}EWWSj(wVr{C+NL-V>-J(?YfS3JIy)_6s~_O2!#?~Z#kmycW0F{YbBdS7hV&9}2cC_QkyA|G5sqHF`1FT{ne3Kv)78UAN>#ejXEYw3=-`IWxjgu;8$JjbwI2`e_(;1nY7Zny378H~h zi^qne{7UqPd9JjyhWT4ZGa63@wFivS;!-EJxKNwhQo(Ybg#bE`Ihy@BOJnz6;xczZ zg^@xsVi`5}Nt>T^7g2#A|I5hjX}DY&4`0xI%dq_iq<@&y6=ltv2&QiTcyFO{k!opsfnwnPrwf@JyP=|e9D*A!;7_&TAh1<`4 z;}!OK=CQ)a0~i?-N*lk#5q<7x%qcdM#UG;8SjCe=PxG}y$zX-}YKtDjWbBVFT!K9Z zpBdG2wOX7lGPbUKPS!JY+nsfL4NzwsG1l71)a}-fTD8fmTOtRXGz0DRA0#~P*6CJ6 zq>cL&*Qx0VGKLIceD?qOcP0ibpczIifbJ$5Xe{3(EI9P&ob?3U2a?QF0amVedwPCE--3QIPCx`SP&yLU&Ul zd0IO!pJboBxQR|DFtu8Ai6CQbpF249)&HX zG~IHY4YI1zvZKR_w?$#;Rn;+p@8>r$h$^p~Z)U4fQXmI$py;r>yPF&9!F4Evca${o zEOS)+i(V~0N?*ED!q|wbUTIwYyp*wE7@Kts$PU~bY%H~kS-0=9f6`HU$ zQ=5=A(L(U0)BoN9wU>yW-+cnTX7^YYwyn|1v|UC+JfkOy+|_BmPuZF7#!~%*t3si) z=fABgz_k}@0`()zCnrH6qaR7RJZcQ*(n>g#s>RHJ*cM7eec^4R^_2G9ze>80aGZvi}p~ z5R;76qt}K`%_l~2)vI$@z8{hVY0Bl5Ps5Cs)xe`w>bIx>MSyD+!sjF-!}4xJB|d^* zmx44~w19=nY|HPQQpZE8`@2Tz(^qw3ve(R^tMN@ZGo8A1J`a$nBFtkppu>8>5plKc zAv4e=^Xu~Km=Z^+bJJ~?R*$TxJ?_1*kdzg+UVn(*$L?fm0#$Q@)SWcdwuvcH)@9q* z&l-mbXIsL11KrR59k3vsOgic=TVhtlIAljTK-TOJh5YdwXDl+W)U?O=#ksKl=l6=p zAI78eIs7}AT_mbxja_oXXO+@=TUbl^)u?{lPxnZoxO1miD5~!AZfw1Mmf(=M8-7Eq z@Svh$Wsl&eiCWXZ^J{b;rHG!Sf?~%__hZ_m}E(t@3p*m9F@?w4&U5`BCij$qc z+<#}lCHzW*!-T~Im+p@d+EfkP4Dz`XC$e_f3#j20US4(NU+9g&A3xS{L02YXfug^X zvU2w=dGStGikoh#Z0k8yHdwS(-m0sQ1MSdItp1M=ceH91B7(N9aQHYbID!HKY{W_# zK|IkYL8b4vbayl~*7Vw*ui56!aYu%RniUll#pZUqPGqxHK-M;ctsnUJbH<};Qb-@o zjWJp3N9O5tY=x}{EGG0>$I@H_u%}btRk}M0ZM~&xX8d_RSI_*D} z7llf}_Ui5!X6~eQ#W=_cT#*+ifg%OAZ^d)*blPuF58v&$RbHCQzQqfAEL##$^|lij zVQp3lg(S+FF^kZNZt01v1}HW;`8`qw1_US+r-9Y-xLR-&4u!noz6Dh)+YF)LzJY-^ zSM{a93j4Ci_u?V5JOQSM7IrXo^2boCXMYU*{nK`Y`yOlf zd^p+A=yTK@#Hf1sCR$amZSnv_pby|)4Sa9~R*+BRvXgxjY##d%*U}YW@BxUs{PS5tgTn<~v9Xj0L=a ziV8+*$b6Z8|BPV@wI_#OR}fjU6W>G2DQG3V1Vvg!(f3vC{vE8KgWaQ9yJ>gJ*UMD+ zKqy!eMNb!vCB3!=fVtAwcx6?->1AbdfpFzzWiD5T)auKn-4NG{31!!)9z@y(s~P>+ z=%^^)dTF~gjd91=hV+50Gd7;6xvI&4TQ%Lz)~~E!MLwpk^0KQ#K7VaN;kj=KG2TjY zT>S9{r-E~Hf2LeG1UD`&E>9QNANP%d%_s2dQ=^jsT?vq`4vTTt0Dzd^#=2dv_+7vPa3$K! zT3I$ht0ct1Y%zl<{08+S9bhgr9^Ct@Q)tHXJ6iV^s+Jp2eib5cE>bNQ0%!LoupEU8 zLv8@%*8m;hBR+=Tz6D{?t*(XgD6y^2V)N&h?4;=lTSwQAIFVORNTMV)w#cKh{475g$f)E3f@0`Y+0)mSbn7O*?NnKt5MG1N4d>DcYLhWy>XkU9WSn#;;uamw?Cor4e zU!Q1|u*|zlh(=a1c8_k#YPkEF8gC_9^dOrRVR4e0?U2)emDlC#UIDKc{DEl~IK|3g z25r>bsMp@IxhhwHX`iaU8E=Y_s#bsfr zu9g*GZK(Wsz~%BIIy$<7ED6=>AZ!6^q*FIg$Qqd3`^53_aYFtdpET+>N_o_xk3f7-+ zY1?jJN!;g$hdTAv2Mq(LWKsY-M|xs~>4{$b^1*#yKD==LN3pH9e&j28H5X>!z=wZ- z-Pb;KzB5MKaNLHe?Pd*@w4~|Q3bi$!qy|NEs!?phL#PbAE>AJN`bz z>m?@BNhAoT(?Xp+Wpu{bng&v~=-!?=nlbd@y=W$(V@6lDe^sy^*1zBT$-@be1|K|% zrB-*iK3+Ll>ux^j!fCzQnJAb#-RPGm-nM9UoUXQ90)c}2cAE%Yl9k$@7z;0>rVm#f zCnly_K>AA+jyWsc&pr!~qJQ!{K3+9TCv(OvJRa5`i5Rx}e>zQ_J5cgWTwPrq$q*K1 ziJD_o6S6MaHb>h@n=XwMnfb+QZf*{meA?ZMELlK|@4!dlz6Ld_1yboGt2X#ny!alU z>Lri6Owq{gWXi}xfW|C9JA>GOu7yZ4lP6tXM-FR6cnbDg>j#C+KQ?d^KGn%R5>5c$CS0*D<{(C zmGGxkk$*LTnD_RgwuUPit7GF|g!yE%-V;8@C##|&@+7{2V=TptHsQ0ev9SWl&(7X_ zdT4%9mXS$q>YOPzRDaiJZYV0!Efm_lc6FD;8D{Ef+9{F%*)=UPVt6NM42p+8d9>V4 zI>}PpA{Mxm0oW&2x~;{d-{jbK@F zE7xxJAg(bjX{;(Mi+DILu0M2ndboO(*Ddh$_yAg6=Yh6DRa~Pxl*~1YUz?h`+=fUy z4(T(u-N~W*+p&^S^F7bjdSg*2dq}L(6K!gKp(h)L!sjJW9bZ0p!%3qmLh!deFOr7t z+?qgJ$m57Gz9L)hZ28+3k&vu0A#470S2SfdQZwVRc9r?ycT8L_p}edj+>cw~JRkP7 z3lha~f^21J`6YTwD;T2GS*YKKCu9AIVsK4PLxpXx+!q3wwq%D845JjVf<6%@m-Fq_ zRb6z=_{z5}>A3wM%gW++2HQzYr=$2VIA)x7czHK#KzY^vO<=K{{-aaxaDV_7C~f|7 zU4@-(P;e0ix;<2u;z3uJ1vU|jT$~30+dA;Q5}XuZiFxult4AN8-oAUD$yjdn0lSxH zBL&WZ&CFd_Q3DpLYb>v=P21hTT8?9b23#<(^L*!4>btwTjLb23?*;2_JomfH#*G;D zMF5BH@7?ZYVW2*4fLlE)Y9N0oAaiqVhJlG4(o5!m*WFc0QQf}1K7b%2r_8qAGR;-7 z;b8_c(9^>rVOasFqwTyA&Hn=_j@f)RU$Nk`DH_z*x7Bl87V|YZDIV;JZG3}YLtR?z z{{$x4!c)xuwvq^1Rhw0lUFuu~LK%s8j6@v0AF&fiz2KzXzY_jKcCVm1FzjUNfcG5L ztRbUE|G|9^;40kP1xDjwy|xg94W*gjO{xBI>(bwcLS+d|rWny4K5!_cSK$Z`9z2g~ z&`=n>-(A7?iMvAZa1xCu{o@oA6(=Sq*>5=K(^)Yuh#CNjwU(GJ&8UGUf`WC-XaY-w ztzKy|QDHm=i;OD*3vj7{nwpvjg*;naczCJRN*mBGtU{GEH13Oi`^Jr+pk(M>FZUUS zI3tlif$Uygh3 z{lKxPS^kcgtKfEbP|d%XmYNF2VW6Kbw4W}3emEKoLEV9d^5QjIBTKRyP384TcG;y! z8Nw{H30ecsA2HKGx1zEGpR13iy!4A#QZiWMHW*hloP%?!Vre9$q>z)Tp9WZ#kZ_py!61=5+aVi| ze@7JKjtIz3YRa>m0R=EF6DtlGA*e7ey$ZLDU|XiNJ>65d-AN_m1+r4aY)c`sC(8gM z@ZnoJxPnvw(hnUnB4~F4BJDHE$A7x+J{#hB@_gL#{C*Ucl;nQ9lf!enodGf%E{B8J zvDwY{@87}9(AV4Z9k9J2XrN87YC~oAbATysRZDBnbJ(Vi_5kCJ=O8x-1%D7sp`v_{ zh+{8UZ3WchXt6P2VX@v3^qaX`e}f|6O=bUy+Z_UBQC+WGqSd-JC!ZtbezOrfb93Vh zkID_UV!8X|#;y5wq9j`)E}fo!^WG0?R@j=KnX3YBt6C{DXY0bncu2rb*XsIMhw{Oq z@nX{B;dZ3C+;GT%t5ZUt(+36)SwdV~uX=233=Rp)%LfJup3lUD65Z#tnq}Uqo#*Lh z$mF ziluFTLb!H7Typ2Z{1+umC@!0Bd-{K)o{x&NvO5ux z+V3gdt~f5aJMQM?lyOAG#)e|i>F$o_0qp&G;WIrB9MoI&VQB9V@zZL%pJ0&8qQ%|i zV%Pq7nb+YiBb2-D;c~8$bN`v}&}tXU3I7I+4*}qbTNYBj+Jl+kTXt<+(2)nS3Flf6 zgA~U>1xOEI@j)cI1I;W66bRGTLcscr)tXS;>jl1BEcbx1!7n5zN$>HwT%s%@e{X;7 z6w2NHLPqv}$$2a3sOgTT-W^0m|N6G~P~5Y%Ymi+hCMG`M#|_q%)T{>NB)f=hkQdQ{Ut`=3EhoSe0zS5SbPJzPuy(_3tCE*IM{a=RYc&GrYL3Xorc zr9@3#UHmHz`5iJijlF`r=T!u#O75{rI)%G+OK`mvc=tAVwFeMLag(`ULP4>o%0B=o z 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 z


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 z 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
ma1Iw+v&{X@L?OU-`O8;E#m~4cGI1ixS~+~ zJL&!e`Yr1tR{jmP`cHEDzr{1w|7(b6`dWe7bgR7JeFtk7#-rjbzTg zS4gg^j`E-~ZQ|iu>mokgiP5D*x7^$@`>h$+dfZH$ND}g%;h7`5@Ax5dAtlTGA?Q}% zbpBv9!OJ!vJ0M{`0(-gj0T2kX{Wot8FYBF&W4q^&x}uU*w}-b5JudIIB?LP#J!E>f zVDK(m{OSd$UB7g#wF2&)I`DQ&4c(H5{`5i07CZTF6YQOz?q1jU@QesDm&~{k*;*CR z^O{CnqcN;WCk@+>av!)vG++;efl5X^WTZU6ba%{1N2pCI>c~4A?fs^i_M(WzyJecQ zinG2KXPRGo7$|RBN_u6VZe#3^W}bQDK01R+I90KgV~%{-H+4rEYg5xhd4q)W#Bn3Z zm%5O&$ysSWUhb!3BGteSa@2o$yN|`ifE9!Yiixsigz5frcyWH2=uHNR6WmL`jY;aS z*@j@fD-zd8BsZJmu;7va3EMLPH))LBIl-A6u3JyB8#Zf(;*@x~LDECak0Y;77Md{0 zo|=u}W}*vHC7qSjNfABDMBYIOsXV9)%s1kM_iW0Z^#dWdLvn$f4k~U|e zcU&MscX*i@M#qHgiKbK&sC>3C=}Oj-!=QjWZe596%!g^iHpiKe&(8{;hwx2|WICb5 zlgUshXdOjL>nbsAa&+o$+|CguBCM5fdWVz&p}YDm&-jmcK2^aWvU zp6r8|ii~b2a&zoCXBZtSP080KD|XvU%ABcAjo?~@ACH;6agwbg&BzUE7`HR>G+v$& zhhqZb{D_k&U}d(I6W{MXJ`#>7Nn z7Oqzsc+%O0oT`BDg_(qYshaXF?@@i`3Tsl5$vt%J0VRN|!i%%!-=`!4D!iMtGcQ#D z&HDnFSlw$ty=7!?zn(AiqKOd$Tqe{a;mM!ao~U@{vNj~)A7EE9KPGn&?CHHlKEFbbY zC5OZNy8m3)?fL>qa(?;RW=18_oRA?1-aURn{S(00V*MiD1)(q0AnqTkKxF*@Mrv;B zr2prI69=YPJ=e-q)TeMZv^KeyTu&o&-z)~1${!GFDvoeYzWY84hop=g-ccec`j(uV z*mz1+U7~zy;oi7yMp^x~Z2Q8B!;4<6QR117bnu(K?Eo6R1**?i%+8u!Gi1iqbb)72 z@`2pgqF~bdTu*W>KrNk-^*1pW*{=lv}z@4wDH@g#X>A;kV# z;b2KZsGxSDkdkR#pJbBD7L+D%w7&(v(J#xSy6r4FBSEGuDn)28NuJo z4sl-6w~Mv%rlQi@6-IY%ZZXFbr1ygWpO*1x@?>*fH?yE*Ld;}OGA0?r&sRV$y8qtn9XTp5C!yo!FwveST_QHNpvyra`4wtky9uvtW}Lq@a)DzMyZv)lZ?nKr>e=RW%hsi6tXA{0 zJhRp55WBmc=MXE@(e-m_$jA!Nf_l2fQ6l{f=2311F_Z1{4wDMzznfS^QTEuU@3|z` z#UG4M@;%4IpDR^~-XtU3eBuuv{jK2}W3hs#O2Mz(mztW8bzmfiDKDFg+R;dJR(qwi zqyKli(Z=`sm&#zOB)cV8gk(+WNg@q1*$XaJDT!AZCQ9it0i%x=rGQan7j6= zxIS-MIQB70TtyOlMe2sxvyD3CR8Y~^fn=4(w*rH(^il8DN-}*V*D4bDBdDf*$IpWn z^ySh<@;_7w9G6Ct%zP`&KEU==vMpn?6(rx>xg{iMl1;UDGs(4~l$OCqm5=t|zbj)Y z_tI;u6nZV22d28!#bE8(TLn(E*VnAsJB4&vj6jP@tW}C3?3E87s9_(F3en*3*;c?3 z4meXia`#fDelQ?IwqSd5Es5sgS1E!y!;I{5|C6Cl>#EWcI*i<9itdL*{TVGOjsBfg zD=GSz<9xIc85%2Csi7*&9toEkow=6x>}lkT`I2A^P|VyH>2l_5IJwOy*EsH}EL;i1 zTlH7)Ed27P!oR>~o*6dx{Z+tuvGeZ$%s=b$wtTP70`x@oT;PBS&Z$To=5(epW^DBv z%-&E_rFGnLE4Q-SKUTn5;prN(;^pu0b~Lo7qXvgkW|S%k3TK@2vOy(U3ucm+L`$Gj z!(Hlm8r{ctmXCy<8z4zpbNW#&evK&7j?GgP-{{y~1*= zZ>P-lVhwT1-dDM&my|b-pnndX;S66}ia~5*D52xBIIGghn0imjPGY7~2lwqY#EqM< zyw*x{<6@4MosH*Z)E(zCrMt}6Mbjj@(-jz~QzG6$B!KV@McPZ~N2*#(yx5HT)H(Ud?;(4F3>=k&3i-Gv27VI&HhvqLr==$)W+32$8GNv} z`}fggym+3c4(B!84kjY0!k0M0G8?D+*4fG7|FEyFR#%29@DEzuUKbE_Og~7X1jwSu z6sG>(-!;A->R33tKDkyd4ei{%;NDQcy95IR5Vm4>@vi(y4#mMma#z9eoN;))0LxZ=W}U-O0!va=9R>w(=j zPCQ!2n=ILsYn-VJPaKNhoo=3%VYzb{qDP=#m7)VWu@8-G#j47SAG3`ZEQ+$aUcPFeEh#i!n&T8L@_ zgjg2i$#DNDJ7B1rj$f4I_!H2E%nP5*7AklbHEP2;SD!#4rGj}}z{x<;C>^sxz!|f) zH3kPqrt#p#;s>>e8dX@e8-AxCz{f2JU5|^O6@k}Ormg1NbrIwynR|rv(tdu}E@w%v znl!Hls(+U>mSUs{6FVr)hG?i_hdH5S<1f|;#-~X%9!sGpa6@3NA3!&qR?gWvbjsA9 zpg9ZdrnMFY<;-KwYYQF@&u=2+r;E|e-ihYR^G*Ruw0MMZ4qsfiMYKG66c+}qxkU{Io+EDrIUGx&gTSp&;w-4?YuB2wwme_&SZj6?gNv zR2O5FhsJ3i=PrulYK7j(Rlg z#@+&I|5e8B$n>daQhVQfEz%3tn;DX;^w6H(-bX~tl;S_5Mm)4BqgnIM(Nsw`Q;r|; zrU3IXuU0p^V#MV`PQyOWOuwFHTzNKk8(h6-x0g)9T(^_+HmkF}7(FN{*UQ>A!ak91 za<*w5L?EX>R*80?uwN(3UAc~Mi2R;auw8V3OXwV2^eZ0)l$mV1cp>l{{;}$B4I|m* zw0aq0%aOEbd#zN>2I&DqbtAnD#g6GNO=(C+aZ^-oR`mBAry45IL~X5ArL01CFN$}b z;9+iDG1(A_>(#D&)V8+}M!n^}7aZKlbkMCPq22by2=hgpc0xIc$X_aqI2plhr0Kx@ zoN;D(bpc@3=}Koh)_GqX98z>^o}xz`G^VCllQO}`)q*r?_fPMkVnx(WQ&rocONr%y zUooB5;eSFMXVMs?SbI%LRjKY}QI@SAZyFV&ELz%+UdiL?Ed*o@jzG1gJ(l%aO|qBM zonU55_PwgM)jI0h`;PXw)3U?x$>n~^vrp)B5GvX+3ere1fQ4-&sX;$&Y*E6`qQwwd z5x6yb`}1$Bte-Ys^NCyjGkw^92pXptCp zSHjeWhpS2GWkb5ZZTI;)%mwjpnp1{C<+5v$s911<)5An$ZYOj z@sjiQV5;|Fh91sY&5?iZuO+W<8br;UA-%8leG^#)Mni2bM6%4OaQw0E!;0Ja+J6mi zkSDnf?~o^P3t%q?Y=?3X24o=d+IYB>HRz1UE6wR-aY#xG3%iLNg*M19y=!_DEx4Dd zN}7qel4utqdPP__dHsfM;^c2f;hCAb7lmrQIL zgjMj$3w{G#heFZ*x9=I-f8*EC|8HfG#h+m@Y&L`+X~)ISZ$&VU{YxAau)!ehj3)H9 ze`Yvm%E1iq&*zNmLn~gYidZUnw%@!++kV6i2W}gAw8REE$Gg?dwd?hUc+n_TL|@O{ zI}NmR=YfKqXMr7)AT`;*{fohC)fO(j8lny5SYgiiq`ipC`nu?!lHd%spJUi%r##_e z9Dho#)G()#PMb^vNc+PS-?GuL`PDh(8x8L)NwaQ_Pv>sgd?v?b_nYST`R(gbO~%#_ z%Mqlan9qCT1zi$~lqS|>BG%C7o1=5%V@Z?7DlhXWrn_5aGhrJ!R0Sba%VGdrxEE5L z#q2Wmp@uLN2zRQLaA!fW!|*NY0eJF>R}f#DvglK>?YC%Q{!8js*^B1oo=Z@@NLU$d zQo)&)=at@%9^nFlv3Ij@mQmst312L*0Phfi>WAm~5B+hnj}xxap&W}ZR_uHdx$bLs z^mdT}$cS9aTE?pw?cSA`S-`Q%T<9n$Gth>-VT~KI>M9IW#F*r%%3sl*V%xo*}zK+4zWkUyh_2*N|&(md{V-q4VvL-cX1CaPa(S6ly6Kwcxb9 zhtqY@wE>=uJ{{B09h$cZ1VB3JcTp5ZQ9O|rXyKZDBr6JPmr<`s0U&bqJgzzTqVUTU zlp+r{PByAEdEi;PMW+VL-oOsAF%#ZKfhCQL>k!<;b|l`iC7z7p4qGA+Qsog3l$nAr z4EaXSKDcoga7^uz{GO4GrubDYW`T$`8c5SKMJ3ZVe%UEkkM*5x$0IcP160iU?A4sIot5X=MVlIDWKL-g#K9C(6y*_$aQZZby-v5xh`JFB&uZ+g z1dyOf)Wde3Ml~c~jk^4AE(E21);yqDqSQ3k*EStVA_@w%_+dWZ{{33J+`peP_cYJC zqGyu_!{I&NTp=5CQK?H*HKB&Bm^optNx4hj@K>|$681d*!9XL6LlTdksRr-+msfW? z`qh)k+rrUP&Le4*ae2-6qcsg>5h@J-lRSlitnNT{B8-d>ffsiWv%z_!qJb36-fq-h z$3T&c)nVx;bLeaf&MytZm`sYc$_c5yz0(OWv=c;h!Bxi$-OL)|OjTgI5L$dKpjVyU z7+s(SHB3zXHYqpFg+wkjE^_bQ=>|pO7@=VjPMD9ez`<4VUa2?dtD`U-cr8$p$vN~D zgKEo=F63BJ{rlKSn*NlCU?iO})M;mW1((KsDXklLDzdR+!bfJcBmOc1Xx#_Cc-mN+ z9~CMjmA5K=sj=tJ=z|2&uha43BcNhAPYBa!W@V^(_~sO+C)ovRU|7gQ;T5M$IIcBhv6gD64D{x8I%&?N_YOHg+Qcu`M}4xE-@MM@ZV5b z5oKXa$FdYGN(e_$D1oHz{pf1cXicA8e~Pg98RwhrASZX0*$Us^&A{>AHO`>TgQxbu zScFVoeE}zux)My{4HH_Q(+|~)Oh1d4+ROoo>FTuAQHJYhLCiuXkLBrk!?%u;GwSTT zja`ytz6DC>XsM{-6vM(iWf8ciswbd+KcN11_s-8!+P97isGMmH1jh93=O3`+Xpt)hB#W`IoTUTN&3Lz|t zyF6`c`tJNKocehntn@?Ls5WLwht?ab#XL3OJ=~mCW)E*OJR%N&(Y{)><_{=)gkoT; z?5}bnT+jzv1!QNLzuZAx5pw>THPxR{*`Nd@&UnR@#XnGqj_R^S6vuy>MfxVI3p26n zT@B@or$lMscCqf?*9LCV?b;3TIy5ZV_zQJ2T{c4jRvQ|rxhy?F7w zX%rVZe~Y5^cv#XTKNSM_W=3`X7PD6#BeSo@o9!#AQ^N^RmG(aaThwSqIrBa-<~k6; zC@f-M`t5u9+kIBDvx(Sx4N{eEEl;cn{n6XN9OxJUhDY|;A_+O^mn;hxP-aIts4aDK z4P6UWl}c~&nO+n987i$ul5ENp@1dRqTJ%uCWkmM-oKd7BnZOfXvj`I5f6E|0vr7Mm zB+bP1zh#i07E1Ja6WrFc;tN=GG;w$xC@7GuXFTv`W2*M-;-HnP_D0ut{zA>;F?%+Q z{ojosvM`!B6bbolGPjq99y1L9E`FYHS8)Z$iP;aonrXE@dc}op=s}}cX{Ax}txzV011ZsH~X-k4r zU5>C6tdsDPsYZFJeTZQHhO+qTtZb=kJMzOrp~*;Tv#ea?=3vDS&RA~G`bF7x7zH%HDn<};`{ z%D5<#gH03b!j*8ur5)>00%IdEKJ?T)C##>BA<>8GwUb znnu{Ab5fdYXck^vzPT*vNY_{CO{QATQYg#MSI37Ky0A=CnvAAB8Y=a9DDnmOn zm3tKZ+`m`Z72=e$V{9rnC{Tt^j7z07kYU$U#p3`Dr=Vq-itGx8J`lXc>_fUp#5b`26M%H+RmqWL^EJDSVoSqAEP-gs4z^w^Fs zV2`^1-Enz=pM0Ad1CXH(85KLdO<*72nuKl3d&-zeSu>zSTs2@lm;0mK&r~0lNXJ2>aeK3i{!ub^|s(uCVsNm zptoh@xZQirsMl5@9I^OcAS3oX?cfTr^{H&OU7M7q1RlgG?tX}Y8@Se@9$>8Yu2-#eU$Kt5CT~XB zKipiD*&W%OuYP`1mdj4KV9Tz$Xw`42#^hv{Q)x>=0-jvK&7NQ;BU>4|Bb*#YVDC0Ius<^5iC>jS7E3D&p>hBTZe}(xVzP?D%7g(TVTJMs6GU z_5?y&YDs3KVa&^rq)2|T{O7_~ z;?h0^s*~WK3E6tSr1uyF$zRWZ+pjLLy+Y_^h`V^=RajhAivD5aMdY6gIhgpr4~jcM zu>n<=ZSGKir3jE?vhHjy!*B=@PmH!95_kB&#Eq@G9Syo*Jf}w+_frTy3vf!UCS3jI zq`y?On^D}?aOEf`59xXk8`{~l5OVH8PQirdr-fG@St$A zevb(tKqhmWub=`j_xi;zD1J`oGERmUV+WiKNsNO*3c*O3;A_<11%i<{!AN+)NT0+= z&H+3~fveTZIU7OT4v>>&{M<7e;$}1I$5_AtrXGmxM$+Tn9u8v&4!1>dK=k4~Tr!RK zL)9c-fA!7ujwX>1S3k*Nb_CoF%FrW8B-LKmY7-rn?}Hk*a>fR)@uM5UlZA`7>P|BhLxO z=2eMD>&X3-+~P!(xz*aEvr`hIDKO%gSZS@%O-|VW)5aWXfTjmW^{P5$UF=0TA%}(V z(GejIPinGNWfx`t)+%uk!JvJ}D!hw3JKT|XgLY37+73*V{2wk!=00@O(U7g39o?Of zXhTz;ptv1ATR5_DWDR2f8QAmW6(Z+`>8UgQKV2bQCfxA#lBMrJxfrSZqUT?hylB@F zsL+#oe%FNvZW}IRK7wFsKbBT>NDT9>i%-g4%t11th#PPw;j&#apdC9PO?yP3559lf zl9$9!dt2N^Y{)Ka(&@f%&s5vq7!3OVE6kKtl9;!(j;~Q)Y54+${5v`ERDr2`gJ)G(tiFmK%e1PF(zs@pQUky;^!nx zJpTRY9RBOb|7I1g#1$4m>qo>Ffj^tyh;PQc@h_I6oiH=RpPhAYXrUP<)Rjf+-2Cyl z=tadfDBLdG)B@U9S(iULsK}wkohg57W)BjVLf0602zF<|0^QWSg*MTuXf)@61|6ij z|AUz&A$7YM5wR*_@{0hI6qBNJ-LR@WJzIWPy7=aw-ahVH)_MjBw?(_fpA>{`MsZo7 za-Qmf6NCCjG2c=$xUoSMRcyBMOWFpe)vV>UV_CPz+K$ds0U1-+=lKR&gI?78ZV)IjU|4?>k2WkE=z3Ex0`n^3j`h)i*P-6#6q3Weu@bxUzGQI3yaWHWhvoh)JEY` zwk7ovaN%bp&K7QM?PPOeNdW&gV3Dfx-=Umv;b9)36kU{b90rRdPQ90mDr`h3J3W(^ z1nzsLFv^5yiOsJx0+i9LF=_laub)C=mDmHaIaQ@NB&l>-L_EQ{%=CVC)iC64ZIudz zh_Y-j^gpMv&_$KUVqzn13+N~m%*U7LY)LjJ>EU?a5w(>>T~*b>=zePs^w!pRk)82<9q8Sc~&;wp3Y5P|8DQ-kdZq&91Vp= zI?>hZTcEMu>z>|$CrN^Gyt#R``FaLD{*BwY_4#~Wo!&nItR0*@Aq3SK-+pbQli%7R zMN>0x&iDMghS@i-Z=XvM7b_RfsKTNP1}lBtKdGuqWB1A7z(y+<;M;wpIgF+S;-8LQ zUToy&ZrWe-ul-dou|aA&MKi(E!Qqa#QjJXW=OYmT_WNfH4)otC>H_+D-+y`uU{Yh2 z3e*GiKV9V)hVCCPX1JEJ4`O4?@vss{nGp*CwlfUs0;JPl#*g<)Q`Ji;4?HL#mFS#( zAmyR(>R<0oO?g`#2`GVWc=8Qu!jaC1W%87_1UKCsogX6hhlmEbI#b9jI6eps4x?+{ zf+;71z75<&L7TNeGBB8&3KWjOjA|EJT>B8IgC;lFe?1CC?(5`Lfp}!k2LTwX zP{}X53fzVOylr1;Xs7GT?M@Qy=H)E=R8MDq5Xa2tov*J1sEiI!F}Oni*S)Ka7}OHD z64PA4z_BY5WF+P%V~ay$#YRx5zTjwlq*vt%N3KAalXt<92VNnuf}oF;6B#AbT_$)uC^<0XYbjVHSo}#dN@&nOBvN`gLqaw(|6xV38NMf04ddQy~(0R`kIVrIDbYBqEzIu%W(l5BOI|-TGIoOQFBz<575M9l!SYRY8Jsl{N-b=_Y$fIhXc3{}577=Q4&hcxyly}wf?=rjLx4j)^vY8S9`2pcT2MF@n>Nz1K4A8 z`6gxQXs-;d%pJCCoP}hCP{!0ScQMiD(Qu)A>vXb_qxe*TTL~cCL-9+WQ35)Wsu+^E zjd4p?w7~bcQG!vaH%;Tko;G7&?r%*z`Y(-ODC#dgu%K5alp5b)dfPSTIj=I|5tTl& z3AA}v{kmPfZRTXEH^*dNe=j4m^-WM*;DuP{g{=kI==AGV6A|yC9YNF^)l1qQXwCbd z)&d0iS_bT*JBI3O8I0-+4U%$g-Jn9)5>rsQFR?B`zSfcANi!3cYg8uCG#3Y^k@G_Z z+B)e1HD{8RA-}~4`cZGvD4jWr^CvliX-O-<>E*-6;R+3Hr4~7-i$uOR5gz#ZSKk11 zPF@a+t?hf9pu=Sw63gm=b?y;KoI@3VeK#}%V3Y}lL0$^eal)Q_c4bO%efR8wNTuI( zjDjYqA|P4H)RDcdt;g-x9D8GZ&n2a!Z0${-VCFFCl#yUC$B(JaUL>oOgwUlOvy`}N zak!3+fI>%H@r*P~-yFfUD;Al^S{dPAQst%C$IQ?p-FcE{qS{Ah1ciRw<@l{Px|iw3wcR-u#lvj&zj!VkS z3z#_lA=ak|?31z`L@{yu^16;pj%dgJ6=9uLx^3KIer3>fgLT||0su1|cRO5c^urR-$HOKYBF^*-;hg6$tQteAEW?IUBh4M>EMb<(m+w=Ls}Nr6*xV ztD})CZz6sYWQA+-kDP%1c%YP`$J9Xv#JKhcRFC2>k1KU=I;HwYF!uysX@8%YttQ&d0^<$L&570>NPoVvv2hwvPz8{8JYwRv< zD({XiB**8dqiqDM!^;jk0l|36u@k?N@xxQtNQ z)8w!Zc8E{4ry`A~zY%}v*k>Z&{*~2kjeJkjxnPdw;^~qkm zTp}cKR8k1@Z`lFXIl~qe0QtmquFa;{gzfnt(0{0@{ORG@A;53f3h=-CfeBwL7i|$c zgx<)_C~(6MpDQ5_640{ROwgTYiw|Q0<%Ea^KE+|^<;1rI`wN6ODl2z7fTDv^k-8S; zIE0`SV<*5m)0u-9{=UU5`Wf8L>94i<3m|Un7GeY4eC#Au2nHzorp;Azk;b}dlW@Ue)4tk514Pl-qqb4|wPcp#rTf<^n?bd)!~Z_(D~jIr{G1V^*fiSjKU)6CpzBZ*~v{ z{vLgB`YePMVMJY%?z*5sF}m9~Qd~*!pd@4yLIjN~aFO%=c(a2s!Ztf*!w`(jc|pwgD>ZgYtev&ueB2iu zRQ|X8acFm7!zm|n{=c@DD6nur#|~GWuni6c5L%JNA=1Ss(#26yd&JyRR+T}2$KA{J zZK{BaifiaX4X`<^OmFDj*6CkidGXZaGkCQb9_cpd)-yRb@Y@N?A*32`uaD9R*~tCy z`e6j_{c`f?UBkJOskY~TP&^K0Liv0Ssi0M*6bZb(_?5;OR8Hlyu zSk>uofVxi_ukYL3dqSV@H{|R3!!duo?|Xfig(&rSBzP1#yt zS(B_E4F5r+3t0IQ90j~pf8})nDgxvX1%5}=OI1r>AXQW56fquxW{BwmsD(%wQLJZ< z$>nk_XsW)%yyt!j_x;)3Uui%FsBSWJug?aA%MjyIJj@^T{8e<$YLS?u%{N64#N zQ;AFGUs1ZIn4@{3hLvtr?7hA}8(3}f#Jwr|iE|%1CKmw~NRF%zQPvk=xRU7tQyn zM7GLr_|~Q+VU@vl=-M%@=>BP_7V6?)}+Lz@h=b7aw9kC&(irA`Ih{4 zdyndxzpO(+VjK}6UMJa~Vw^<~&s}a`k@I%QEu4!flDQ5)p{pdO>x!$MU`}07hgofrwOs1$ zux^_T_2qOy2gPc0Gu6qeFE5KDDWWuUJWO&&NT#YO8LKRuAL!ow%)ivu%xQR%37DPS zS=XcI=+RTvuVaEFm{u$Gys0jAjTFZm&)Mc+oyT=NX92xf*o1h~pRb$;hMd62?e#Y8yCNx4jV|l10|HF08qJ7R1#`R@`tz_gX^Zl( zJ4BoBZz`|SnUlw;$<~}~>E{9Tq444|#ZY`3(#pK#HiKMXkZQRcLkyN9f1`p{goojh zTzS5NRHpX?=@?8h=UkM#;@s(*xo12+2F2EbgH)N9B5C8a1cfSaZ5zFvg?SjXJBS|B zU6mCzNlX`IIB?&{6{M&l+DhY3TE#!H=Rl^=nv;Lo<_mV|h$@UP>&HUeYxXQq(A;dG zBuXlk=yQ-!;@*H4&7%l1*OjO8@kr+(J|=hA5}vaK(RN{)F|MbcPkw>+ap~jn!J(!` zm*64{<(lGbMdXG_^&7rE^T1tDP97j4193xePTO6*$Y6uSI`6)Fk5uL`m}TYz;4P2@ ztr&s{D63{dx_h6|lQk#$d8WyCM9}aV?XJMLnwpZvu*VfbSjX$;*kKLDN9Y#BOmGr=iz>Qyxy+wN+CoQrqd%$;YNej zxec9+Mjxniq{8sa%Hf91x`WTVP}_kOG`8otv>6(aT56R3JSIRgQ0T5APK~L84HJ7- zvqGT0lStBW=;Nz8lbHtMGl$D0R(ku|7JXa>UNH*O(B;1-6SOX5axv28E51uhAxJp3!UQj6DU?ZUT%QmU4x=ZI~(4u6HXuEw2fa3{dIh5ZBC zS>_#0R%{LZ7ir-{Y!DJ}bJ6tq??JE5{UodRkXt;3d2CX=4Tm2S)eT)_MJ;ODsLr%~ zU3wAqbO8ij%WF-s9VV)ai1E6>;m{5pv;gy**lIiNv9ij&Bqv)gO^bYsm5ezf1vFP< zD&s-1qpCE+l_J@#nrzDqW}vv*1(a&!mxh4)&9cvgH>8eY_5`+i>3xvyZ){hzPeTa| zcuC3JKcDfv2?A`9fFK zUUH?@CW_HOIc1K6o3oEKE6>|T&l~ilKrEBGmBvy?;jk^-ZBsn==Dl;!rR@WW7$S?h zIyGDDtq^HrMDqmuYG**SU6G}=?cSMxyu`UYEh4Y0sNs1}pr|4;qr4CY9gDNyY}E$R zE5=F6yrO8zW|Z;b9?pwx4_`O0>7xLQDMuzz!fi3CEtnPEIZ{1d-AbHCd9S*2+!#JF z?v2YE@oy&$yW4Xo5;h2jMAb@?$hmHyN1)d_eR_-;lj?f1cuq`3@TjiUIeOws<8Co1 z#-$5qhS3+W6=BVAlmM-a)@@v~_x^Wl(|NRR=s)hLs19~sJcP25-Q88kiOl6h`wTt9IK227vCw;X2Ye)zf(caXajMQ=L#_Pi;5cQdkev}jvZy)En2 zdj|4n_&z(zs{Ju5 zCa7E(8fufy+ooA1ar1_L=)K6@{s0 zkXilBo}eP5tvb6;ILqLm8UUQg64H_V^27Ulda#qPui%|gd=SNct5~RBsOk<8Borge z*(rL(+GfUYPqlE`M8S73^HrGtKF{NSdbl_dFfcXJjy61)dl~tDfAM{t`>{4c%M)du z83c3>L*k?fBBnqZ4LzLnmG9{L?~86ILzKVH74#|C9-agjX@nLvFJ}UakU?wmY2kv6 zN?;E~%0u10KV*AI3rfpLVy!n8m1iR{h5mUhv?$`GIk;_$@2h{18b5K6yNA-P^f$G{ zcQ86$fg&3+jl+}_MDtJL97v$m@|xMv&eunm)b+6i97JUOmA7=wk^%X^?BoO9fU|Bn@}XZM2ziEs4}qIPU{nhxm=mg$ioCJ7F8= z@ie5BG(4IXe-Wouvhx=M2g!dJ69%V16F}|$JA!JE%*>j*vDG*s5EB7wBX!B<{W?)# zOw8?T+%xW^0w73YdOs~ zVtEM{b@T+BQ;&NxJc@CF@p>f$}J(l>f^`wD?MbM^kIt-5wj^*)Z$g0MW%_# z64k?0i;?ZfSAECS@2ln>&v5y%n@*G-lM}W0sAGdkb}awu>=@*jyFL&F-;CT6?tIKTrwQz~<^nvs@q^4mfR@GT#*0UyW_@eI&Y6=&J!F^Ih0!^QT}ZK|fVBNZDm-Xmw*5lb&AOxXgVtYm!r)gt$xJAQfQ&dE8Ez6c{&Xp|Fg|f~_-$r(QorGm2a#<|O z=(ls?SwKyh+E0_Zuo-D};{rzBN=Z7-dUqhCP$a}!s6$n&D`^fFM#KBo9L4)cOpnK; z8gIr#3Lgsu*H`@muh#k|tUkaCmd_2*8+1>nAJ+h{0ryA~?t6+8Tg2*qOAy|{fvBwR znTSof7rg3rrbdB=bB5au?I*&=_Ozpva>Um5oFrc#*!9H5*inX%^189z2MB|d*j0#G zz>ieYoZcSlDeXp4=I)cRgwmrpIo#-0EuMryiA5Y9Tledg@s{jaPK?BvK-$8R<3$iI zIfjD}?qj{UfuELEzlf{iPQi$ykyMHsd%bJOx3r%5hbv zY-X4ZJh&tiP_{(D+T_=2e?>*2#KL&Y)mb&WbX`@ir?pcyZiDWLKY;xG#kn-@Hvt<(i^cmU!V!}WurlNN)MAu+ z-TiuUZPq6l(mQ!nIFkoml7;w$-#ROqWhrUDMBLe&Q(cBJ3sN!fndY(s404ZH9B3DG zhHkI#`wUicVWHqxI9xw9shPa+IR3sEPvRO3UU$mqBVTWGy%K_!mCN!H(JiZT@l9{Aa9DN?Y?yT`e}cLRoHnKqPpy zFC7xq)nAQngnuoiM{?C+qrLqo#7CNHobHek2vr=;!gAg*I@G!WwTU9I0Tnjth)kU{ zMod0Yn5W9y`*&en`7{@dCtFUmPtkj$=QJ(t1x}p8Lp}GFYhPyL(lQtj7h0M#7uE!; z&bC#eG-26S;+;pa-BWj$n;|;+`G^)D5_U$;QHS`eb>?eNTQNVOTaaA&D5JEL_J=d6 zrb_r{n3f2yw$)h;^!d~OF##0TZW2q!R8fuyer2` zI(QlS)=OmO6dNkmwN5LKn%T1xE*^wGc08yCDB?${Zu>0yZe#xOjEo|PE;tTDdNB|K zo24<)m344`&m)vsz9w~(Y>e$z+&xn4=G?pV-XgNIxvf1V_a9;k-;pf;bnZHr&b?NK z_r>pkCbzz~bD24OPj&DMp-!>l`xzqlR*j^an*-H)$1J~@>3PgKb0uX;(i4GwXH)o! zz?uPPRyhx$V)d)H&TbM`&q;;xW=llyRj&0Yj0ta4H_AwF0C)jF>=avz=t0d;wa zHP^kOBd!ILhRzfSWMWrZa32hu04XhDKXezW-KQ z{WmOMHrD@{wCd5Bh-cwI=zadNMr!v_{=iAYgIc@riQ1sw*vF|d4^xK@KM{+TlPjFP zKHnATb=3CB?@+}ioS#?Zul>Eae0x4Pt(sg0NjO{H-&`Pnv=xPDdcl~pOgLv8z@9XLy zqcOV2xZ3mto8~b;a@Z)_`6^e9djc*!XBQqJCxe?X$n`8LBVnIXuT55}A@_Tmdw07^ z;@Y6d)9P;P=g&c@nl%o2@=RJKq9-ObS(g1?Qq|F+#FglI(hVb?TQn~lK`MS!$343) z)=xk@YN2sokbzH~tKlCnJzBDxOTwiM_1QKpz*P3(yvvug!MnaXJMlLmHiu{fGWY%! z=F`Rf#nE?)P*jQH==ImjI~hMCPUvr@kizjgcXi+><7`a-R3>h^`9ecMF{&C8giv-QFS1b)SSEU878kOx zTJc%6v+8}vL9^(-LUL>9TT=om6^XOdza$CCQ5aQ(QeQx(iZ|&A!ycArFYLpGK8fyo zxS+;Sf3Ulr>$#=?Ms{_D7frl8xSvchG=672nZk10jxhw3g5mh#M8Qra?MVt9mxyA!13e2f7?sIiP8WS zO2i^1qth_EW_eHDB4A^yW()|8+q75^2Nv;E&C2NuNj0$(?g;7P0t ze?`qpsC4{2or|5*L(@az4rNIX5YNTFQ$EWz%rD+l@ccnLHpE&x4-`lcqamKgt_f zCbinjw2)#uNi1veSy-7@HXAhhoX+yUwnivAVFc*;1;0uyOjTPi7|kZ6Rcf}$J)(0I z%Ma2_X9e6{D@&23{PwAzDp}cgscpYI5bZ|`RidVMJ=ShXqAWE?{H<0z z#rM}#p~kpj`A>uP@YKlEXEi%VdVT9;v>K~iM~Sv!8eD#ijy+{(miG2~>P`5awjWRS z+M;RD;Xi5!3O)T5qAYDpC|xRB$e`v>b8WGcC~}Tb2Iy)LYlQNq!5uTGNTY zopLRzhoC8PI!ppxDs*V+cVCLevt`R=FP&=g%UF~<5VP?7+5p#|on9p>+uInr5<}RW z5}{U{`lNSY0BtwTDDM-;e7+TbD-ZK8Ls!R% zhQxK}1>Sw3*iFl@QR)|~AvO6t(~)W0o!Jkfruc|EcDmrqP!`BM$y816_!}5@ zyK!QFy!bJBNCQ1!YdF*p~FgPF2tTeu}T*oODGWi-82A+o=YaHY^36pLZTV zmEXRo1+nP;hGDZ`J7CU&Ll1}KK#X48wZh-V7u(?HM`9zc6Wfn)e})N=+O1C?B7Pe@ zNACo6FRv3n#OzRkr;#V{Ms(Ohn8sMER**AIu1;(46@ypKE0csMyYkIqPwMVe_E8I> zmsyiaFFhZtH6FKPTaXaP2`*bAc}kPO2x3E6O`&b0mPlw}7>if?owP1pslz8EO<1nG zL6~nZ!ieXC4|`SF6aOYrovjvU>+#?WpvEtaf2%4^(`S{&8GV=FY5r^opZzP^p&EF# zPlZK3Q6x#XQW_t@1Iw&u2K%_YB#+-zLl{5JUs|*Tk|75^<0`n(Ty3Q1wDbpv7ScB6 z@F?>wd37bEzs!tGOYc$*fyH2*er-DiNX*0Iw>0lH7iEBnuS&vsb)|ky=ft*}x8`kI z3u)%VRYoNbY0M+cR$7&Rk(Zg80YFxa2HhUitD~x(@~lXr=A^93KYe5OPo;xwxx_-2 z1(sO#vwfXF%d)#Bci%kW@GM%;>oVQJsww*x{YodBlF>AvT`svfqA6nU063`7)x*Ed zo1@iVB_GDyrw{&Mf>EBk?hcOf3o)#a0WJ#Rcsb=V%Y4R4;Ca1U&vi6&mgcNu(Oin> zD6#5bGyj{xalpw6UL0tk9Zp`=CCJ2HxwT51$Luf95#ee zNw?cc2C+ez6UybrO+fN(kBf`p`$UooIR~rlC4fHV3w+_rh|NLNBT0!wET8_xf77vB zx^4b>D*9V{2k{IK_rw|RD`1eMPzUAtq$&N%yNVzrfsR{$&jdp5 zZ3Bj|ji*hs7CAdz**7AM0OBJZUL6tSHtW5bWPrlHK0cJ;vM!#X-mXv{H>FzK+yiGQ z0GOJnWdFYtkWBw|wub%xm^z96e-fN~G-m8K7~y(Ps2)Jfq@qemiJ%(lW&*d=57{qS zYxo`;dcTcQk2qUWSzXc}1-}(h1a1!!%v|RXwlbEs?A^NHFMp91oo-!EB*7QzLCaO{ z|3bDTYV&d0S&7t_yOzab0!y)+o4Eed0i9|Ku?7_dZD;>$p`F|lm3h8%^f;os&i&)W zspfR)l62%x{AC`0R_RQ_)(U!jj`+AX!BnlE&uXoIy*8#Oc4o@^>mO=RJSgG2cu7Il z&J}}etH)Y4o}i-IN=%{Ww@aLvgK=YV6J#|pb6OOfmP=KZP-a!FLmyG5WltO9Z5N{; z90ofZC^S6u8eq@gOuHL)#U&NCE+Neo+xui4#Zh>PTBCW>Uimd6U~3-BfB*Dj6l

qEQ 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�Qm#|kGdQdTC;k+ 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%0AhqnJIyjFbMWE1fP!bp!hA{w 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Ξ{_gu! zwQkqKi0+PaG&wZv*Ts6^HUZmnsS{hHwnL3T_N61bTfOrHbnWod@8#ccI=h~>%jzFa zdJ;>UsvxcIIxGGZ**%%A!xnG}Yg@9@pCDYLBCN#66>#8{XJ{(9u zHb7GCaLBC#(pmir9x`)xv=~^Uu7q1=XIPmczY|E0@)C@ghPtQwKm!Q?@~J;+I}R(< z{lfFkxj>lVDtYUn7z|Vt`-5C@G1SHXv|ob54X@dw zv;TNr4bTS9gUUS$rGFym5clGM=({1aFb6p|V z(O7$foiQT0gUQ{i(TbR-W9SegTUb-7#^Xf{yTWd~PlUh!c7NUHB9&RK+cu`&pLIW2 zYi&MN!S~&AZDQQd!kLao9%lu)K_m3rfdVt`5pnn!!C=q*Q}YJ7o3{O>8ZteKD!skN z=NsVA0d@CZPA2A`2G0N5Qqa@?cO><}pIXijU$ygDa=^$7XM zgc)4wH*Y};ZJfIH!NCkQs}P!n_h8=ZgTdbX{pp=sTeo-yOuaZpigve*pSJBAS_W8S zS_Fcm1bydM#uu9dTpADh8^N*s-0;kHQr6k7G?WBmKpuQ2>fY{D&W(j>R6vXJS&Q%- zRmv&($?M6mS?7M5JCvZz44%H%%l%_BvdqMm4sQ2gDa%NR(-DdpI+3_bq)ehWGU?cN z(k=2Epw6sVN|l!kU!2Dv6k!_b1mYI#~$# zJ_*1Ph;;W?R#&zceksX()bvg=|M3r3BXjB>wR^#j+Wq)HYWKVAr0 zE05BqLQW1ICi3=2vBNRZ`0Ci+8#f8y{;=(4{5nWt1CY(Z}ftvao-o$OX#C2sBaB7}} ziE_4NP{n$zUfhy+0D}n)`*6Ln^yb&VsAp6`_|3d;2(`4GjKXOoh zg*a_u{KMFoAb5j^`i{ISE(H_SO|ELduA_H3EwN>E9DPF9(t(>rKMZlRfYqbWN{$=76;A5?9G zZq;rv8-umZ9n9zcqX8BI9<(ZY+b^1I>0uToId=F+IkFzvP@8(F5adhU%8=|nM)Prr zU?o0Sz#?MqkmEAps*s_Q;O_I{x1)|r?kRKQ?L-XsSDhT(_OB;mhi$Q=B~eic4iS~? znt8S&Zg9i*TDnG|{gAoT7|>=CjgT9v3>UDCyA)h#LSMjDhPCv9r9;+pTbErF42yd3 zYNv5<0Wf#)ruJ}fYS{5Lb63;bOBz{WY z+xH-JP~UZikR@S+&8CPp(MA;^*F0yMNqU0vl4bk_N|tE`GCZZWPQm}-bO)Mpp6hm~ z#w~+3Q5U6S=tF^U>^4)DRVopKnmr>7<7zb$Tz2Ga=jgt{%jU)cP|r``7meZBv=BPt z_Rv5oSo>ph@_Zl9#(P7^PA!2$Y+?Fc?-?AeDk)w*uO$MNjcx5qDwChc(qxbC97i1{ zLnRh8w#`sx{+C&efdT=!Tl144C-%4&9Z?Ec++i0FqY~Q6CvRS=#J5mCKM` zXYu)DEKT9$ZrHF#a;i9Y8{C&JdpR5;l=#o4x{w7{@vMZZSrSG$f!wRl z*us{)dU&&09YoR(jH}X}A1_lNUVw1ZA6dfNU#A{76iXMj*QGAmPKaulD65{_TS9tF zotVnWAtgNNbk3QYEB`L7q4D6Uu^x|g$X73qXb9wRw~4HhHg1a)AtEJAvEWN(h`v;g zsJ7!l@OdO(9saH7460rOFDrLZjkVF7kQCibqiXrvRWl}frO=tDH)kiK+qDNnXT!cS zG%ZpSnt%w`nS5myqh{H>&`1LN(%gA1b!4AYhdsH7iZX1AKhv(w2n0hU>_Sb!s?ClJ zar~EMSfXe%ixFY+E8|1GTGj+4zQu+@Tzf&GhQ~frmB<0aVf@^wGeFpJXybaglaKg| z<2@{UQbMCerzy#M(G-M9qxHaCV5HOU)_YrwI;=YbtGg*hVW8gge9an6kJ%% zuR&Xg9NcMC^mJ{-rQsNza}NCKzrSPmlCwaXdL`AY3Ofr|G?G+Kf2yX?-z0vSmGamw zM3tlweb3?v(@i;`USGsBayA!ZM#NATW?CY;LkZea)T_*R#r zOt}GQ_F7tKFMpoVHF>F0d!@;o@TZKd>9tpE{WT##OPTHD{;If$TG*u4ACzfpAO~ z#&S4W@GG7@(+-0k@t>xF_8>w_Vas(#BGH8C+p|~bUGt?>jj6QbB4z@mrNneRi~00T zVwn_1=K#|mnXl>WhF221fVQRQo=>Fv7M#&$+*`oWiOF^>ST^QxFM zM!AY5ZE%wP!gxk4rH{_Y)aIP^;z?U~Vd-uLL#qJd5EfrLOq3l_^^wxNMKWoAXe3tS z+#o0MB7SH`ab5rso|%h}AwtUef#Mb6amC4ELj8nkw9%4nm?Kw7AQy8XS&e=wed#I5 zNg%pSQeY34C5~pN%%RU3Mrj+ac3OLzFC$H33%ciG35zlBK{OZU!QT!D#-ERqdzA&6 zqw%cNob6z8)~ai$aQfU8#nYdw72A%?L=8<#TD=ELYqv4|> zwTM*Xylx39U@uCeI%0RI;9Kj~$ablYDuvPz-bQa~Dpsq5yA^p_wRuXdxpLX8a@o>` z2FzT+s#ln8YM<{WNNR%vwif(70OF%3+z7rcM{UP4puA$$uF0y@*>8AW(`FmYxQ@Ms zV6hI@2j02WUe9Ln@8a@!w&epG+x29_jA3{rrVrUFB6`AcFA28Mv@Id0w~aKJMl@;^ z%rCuJ7jgfZ?Zu~R4jMK-pStr4>N-ME+1sHs{ij+4q@GYtzm@OjcLE*K7oY+*k+#p5 z^N)|yqX~h8LtM}j4RPkB-MObaQbl;RmBeUtt1h~=M}7HeiiM!4g9XL3?%ylDd^uBM z3y$LVao-=D@5csiyg06wUqhK=?x9@UCi)_@Su=MKatY!0AD~Z2?uB1_M-yLHE>50| z8F)|j`n_j6as1OYDc;}jL%)(fSp(q@)+~5CU1l@lp6y(?+B0%u=}$P1^?f+r9Na#Z z4i5}nvWC)@PJexto<{7>vg>|Z@#aiIHoQJCz~fYP9K)&A;!LF$;;?D8)_hwre==sY zVC^e@*M4n$S$q3iiqD?9xP>z!gsbPFZSUbpQl=ZLH6TXeb)O>C$eHo)eyzRueO6}f z$(x%eIr`0hpKP^$eMjY*H%3kPJ$%ZWH|EyL4V)dWe5Faju9w%kBxK#)N=6s^z9huHPn=o$abxLEmyDQeNWtE;`cQYY z<`#b9O*mLj5m?#;{-GIgU}VP%v+-Do2A8sI{g0m9Fw2>xj7rY{EiwbYa$(Fi8u9|Ra;b%>cX1nCm${)H9nM6%F8pe;k0aYv{m ziIqN5F{9ofNllD&5l~b`Y;0E6yV>1*qThwEF&#+$k~IN>oe%=zB~WaBPw74B10$JH z#zfCI4MZ-ED!Z&Z=}_o!S*cr0D6e)13?1W>Jlr)cTvGz9na(l&?Ub6p!2u5F&?;F0 z(h6MX`mUItdEaJtzVp4;JrXx^h>VPs3NFg^$;?fwDo}JnT?&*6AU5K{;N68qS~XsA(w&0zi{$sigWjtRL z-15J{o5_MRo!yg(0u~zJ%eaX@8ZF}`B1~Yo`<{jVX?Hy72qyk!rU-x)D4&2Ax(3Z# z0>Wa7d}#_vk%%;XUPr4z++v_KXz%=oOH1z+-0ujzM?lR>b%UqNSxkYb6|d#+hIST{ zs>x8X>F;ESHjWoBL`xhw!A6RL*;_;McdF17Pe?Z4Oxa{oTk;O!Yypodfsf4R zj=9*}Q|j$dJ2@xpVGM`)bw2$)a4e`zLN+(|R`-Ly^hPIpU?LPXhqlNiYJdb=dYs4D zbZw(I8*~fcLB~Epvsy*?h*(WBMwMR0VkU*zc*C8DWQ;99k-bI9Ig}cxe6AeWI7`fF z`b!S0tr~Vy4Z@BFv^6DQLrN2AEKb%_HRyGW^kz-IBnwqlAbTc!Gzd zFdQz@-w7JHbNv(;ApD$wSy0T)e6Iq8*=}u+sDoK(zY|wdMYxi;mHzV%Z+OKV7kEW` zLsu+^Hds!bP?pe!HLM_YzttttTeuS-!mCX~EyvL2x1zoJAvxfG1NqE^7{B)8Ua>z+ z1$3!CIKTbY+g;%LYQQrenaQp;6P=~J-eoMK!VgkhCA~qplG%Vp2oSi2@OQI2b#2a^ z>Wk&6Tbk$@3*d{Y;SCfa>&iei7P(nnEMVnzUGjoDG^@!Y`Hng`n^+lfzAoi;eR*{mm2 z?nXMS%-Ej2d>Gjk5{uW{4wZ}iZdymmlE$O#rZwnVIc&024N)l|i$O9~YQSuDl91NR zb=0x|9zGT4dbSKW|EC0z6qn+(oNfXW5+Lww)H6o}lW5wb9|pD^UXWKH64X{PTun(- z$GbzhhXIzwwNv_g?$=xDje36_*80s)7QcVeRtOVSWXPfwq)TmMLwu(5a}H6GHu{#(E9ge1D0Yf z(WDja$Uj@y(Ylq4d8^$Qg5j*axGB)6^#y7+)|775gKXhjy=W%UWhC?}A%73dPH6C} zlI?Q$KzaYb{*&3??onNn8Z#ymJuEjNdJp0gZH98WMIKe-TaA)HK3)O&Bv%PN;b>^0 ziev1(hfu;+zKO~a`7)Uy@F+o)_Q)yZ6EnO@Q>=9ryh3Vl{_ExP!b&6b#W=(;N6lFn zdl-bB$#uB@vF+0&Wb}{r0|!jkK}l*A~;$jbAbB&mWVioyq@p zz5ZO;8(BfKvoZaL%Afz%&9L;7(%xW)?ExsCf~OJ*1`4oX%~WN(nt58A*=Of)%gS@H z0{kc?5|Y6rTTHw%4-FPSd7g;?jrdo<@en5Gt zLk;}wq_2E&h|*G3Sj9ZF;4tGWgU<88{KbF0i`jWToj=PSmmt_<>fnBjQ_SIBD;=#I z# z&%K?s^1ad(2e!Frv(rejXbzE-F0rkA?#gI&t}F^n`mXr6xa>Uksy8ahBJGP|T{Y(T zJm?qN$D2J3OB5vf5CGw2CaJky<+oqj4L(it5grl>VszXl01)1J5op<2zHFhKK`moOp~h1WHtbd zexOc)J(|BzT}SsaCbBDW-6gGcqRKK2 zb^;Hhgh5QSG~?wxETXve0XQl!8HfXUMibB9(_#!mn0MnNgr@G3=(gnh{=BYtra^>E zSynV5mUZqGd8y^q<-yxbqc4A@(l~}PWW>bvrm&iu)@IWUnU;$TN0hgxV0kaY4#%F~ z%-J6{MJxUERN_mW+w%X;)f4WN)X=c8mRw7_VPZn7J(tlRZ(0;;rqVWNPzwum>5cl%q*!z%MT`X+;G^PT3UQCutBb)} zMl9Y$rdzk`lQqUS%|FE6=@-{XZ6 zX{(VtpnRr{wr2X#y-N!^1w_o@FDnvzsxWGDGbzjWwQ=u+kX;YdIE_%pYu4-~p7j&YxwRWGf^UfyZN7CdVpUqG?P#u&FOGQ> z&*F+UVx_H!R6?ciqfg%LsC#~eaxwiHPzihe&_kuWI=ny$w6Pj*(bXCbnBW8&s?4Nj zk~asTO_UILGS^Zq1hvL|WH@%Y%aUl|Yt@-k(4qk*LY?TC5`fLVNfjnKQ z<2L*flhj1HK|_4=thjG}b2`T69L9h1@ad1V8F3k=Wi$cumNH6*1my2Iq9X0FnAFTz zoJ@ky;c0%CET5~IRb(Z3QH_oByc25rW;r{$%SxWB>O=)+)L6#K#Ax-@q{i<;Ddu5H zFwYZaNvHNsIb^V%dIe@6=t4ijW9UePe>y_1(8p3!zE+bd6?_oR;7h>H1PbZ5N;Ii@ zcN*5D+VD`rqidPajmEha+X>W&dkmSIa#5|@SLy15SI=F-%b)-OeBq4*jj8KB` zZbeg_6u{4r?yPExd5{q9LiIhy_Wck0Q91KpoHdY3pFWsPSsGyRfm^d-mZ-lK!tKOv zA=Ze~__CVl#@xDVm3Df^O63s-{lE@8z7t*;DEYVf#<$xG?Nu`Ig%{B-g-06qW$Gtl z3KJSPw~v`JP_0a{<;6A;7S=HZPnz3fa_V2T8lhr%1mW|r(yRa)vwV_QW}lj`2l+K#aNz6xot7p0>9c0ay4`R8@#U94 z>=nb(0pfc8*5Kd7{ zt%Rk7(_>*T-w0IKQAMeqe>u4x$Py;niOI8|`$P48%d~sj>(Q%d!IE`3S_W1g|N~6e0r^^a3k?NGhF%hYB5HqKi2M_S2 z;+7wKxZ63?A?>gjhduzj=rex~Bj=MIAu5?E3lxhu zRZ~d@Fo=$^o=junQOxXS8!GQ=^%6VJaD^Q#s{%_KW@noDbZxG0G*jEJ{`eBu*J()~t&Gcy(FMvTPomz021C ztRCjj*$#i~s?aP-XFZbX1g%O!bVprt=>&Pq+OW!%wC*|ua#D2R)~k%~5Wp+IswK2o zvrXBP%u7HrxNKok*aNGiJK&dBV!XMl9lB!roA~whW7gXWqZk3;GsO0FRJ5S=^mzwr zIm=gKA4Ik(JganZOr{Z{OwN^6vnt{&TnS`ugt|)2*<`60Ou1c@C6~yA^bz?D z=8E|Xx~F1DZJ;Dfgrj`rx8^9yWx!v{J&tjIx+*#=^!yQMF1??c;f8b;wJG6<4rFvH)G$|C0){$zfcQj|m_Cd4EnP?H` zN%Uv3d{A$-T5sX51T2L0Y%J-6AbT5A|-)FbQ9|g@&i&B9efma*}Cd*SAkLeaHgxP~%s6`o2cmbo~7&3%_K9q~|j9w}Q^ zlajf91&JVc+zUx(rJO#mZxR{kVI@iZESHq#W7k*|*@%kKroQeL&sld31_{RsD9lPH zB>{Avm_fOdMEhHFuA{#{s6@Pu0^92$FkF0b`mJK;p^LohFJn-|+P%3`zQgWu#m|nW z$9|6rj$qoh%UsNI9j~TF=FU`+C#DEbKB;+W8KqceDjf*2>9(1+J=tQBP2JZF|A|}a zJ~F)gW}3YhE$K1dZXhNgdwxRi%9CRnIG|s}e@V{=i7HtZ`qOb7q+J931MrJH^8D~m zdM6GsAyJzu@nl7RSNkHAnJ3*>Mds}HyIo^1KF$EDQVt~hRut24l*n{uRuW#eBm;V` z&pK5}e9kx}2iVCRR{B;b!T&<=C~Z^kH$uNJiQo8B$e0#MSCr0c?^but-=!9d0bGvO zVkq?SRaaBivH=ZCh?(lB=H;6>a>byjNPar0I(OA$AW+v^fq({WA{4v&*RE^QMN2BF zi074ZuF3~64xb<=1UC1B+t)Kdd+hF@agnmJv7RyBM3Y`tgH`sYcUQ_W?-ybEZF0?3 zbJ#pi@U>J-ve?2A=`Yk6*{$P?>X|s{b=kw;MFo5|W>Y_+(4Ht-OA-n`x!-mxv&$ZzdDnG`H z@3(^tCk=I4>bZ>4J?CR8^DQO2+>0jmapr;TS*4wS&2E!Mcuja7u@4zs=yzZDDI>gH zH((^z=C71&+N(tZ;^i9DVFGf0-?@Gd>fGmsqTxP(4*$z8J9_Qg5<{!!SK#IZ1|ot2 zo*D+)a83lI0IE!7)8+TW?EON*Bx;C+a3xMjn1R{y^ z2It)733V5HLOgCXxyMS>bx-6NeJ84!c+IPhMGeN!A}&72t?k`9Bd$^#w!RBeGpTC5 zYY{rQ`Q20F_xeV>?xC>+FNuW%aiI~xtI9(%kCmV@YDt3J@G>-E%dnIc|= zx@IaBQL!3z@J^+aT?KfV+!D;uhqdhn1ic2s(C%;P! zaA0+zYzefXA?bQmaTkmXFyTS7Vb%BUcIoBo-Tw4i=^O$p#J#^+dG34(=%>6G@Gk?o zxj6vrZEOMfmaxgTctYHnD_WM*JrFfaqY0|Siv0$R?|4%mN4i#$!&PZ<*9EAA&1sPT z%7*ui8!>?K4w<97KLS}P5fbqTAUcOvQdm9YH2e_uoJJ9*i_qZYtnsbtdysIJWZA>n ztJx*s4ERyMIy9(@V5yms_DLlFO!kiG(iJEj3RaU?0*v|a)YAj-+s{|keDc}efa;|T z?^%XTk`D8$$mu)V!}=@oWNYbW?Y`p8!1q_KQPZFY`7Z`UJI*^P<&)b?r$<(JjTM;w z(pYUjzD9`!kZPy(5{8m?=JsM7RuUnC?_yBcPz-@%ZDg-XYwlkn9#`#zmC!+2D*ET9 zw3IB6osAhc8oXPU%Mh|HylsQn7c+x}0KX}J2dSVhk2ih_z6=aQZ)O&&xo*7@2M-*g zMdIxUQ}Qjv#HVPHmDLr#Nm2%r*%xd0B10SEfjNY@E~Jf{iWe)TuyCz&>gW$;DWm6| zbSMuI6DIEh;CDqxm2LD_dVNBcS7ytZmH4kVS z&2HkM>MCYOk!BQ@FKf3t^W>DtlXS#AZO>?5W1~Q4%S0m6$a{*=^phx{FId7ZhaeHl z$#6!hDU^mLjLf@l0u9fQL9-yUB69MF^U!$9wf`$Iv|HS6|75Z}j`UcX#7Z`5)TFl% z2ksDF>=ijizWUIrdT@8|4C-EbdB8ox7IhhHozE2zI`)Un=W6l1d60C5J;PRf>D2@I z3qdyHRwuOaH!NHYH`S`jqwXI_M&l%zW@EjKL#j7pXxzgfLQH7Ap@k+nFyNZI+j_ z00+zypyGXC$K_RsA+om_V`dMV{I)|c)r}tmJ-L$Ob?#-c7>NS%NU`tgWc}|%G6Msv zFo7YgYGhe^fM+i5CRu7SZ6J4Sm9H20VpqOgnX|g$Ub)7l%(d_^CmoKZdK&;PxsOU9 zQ|k&9ZOeL?B6=ym#fXytexmgqaKI8MPjVpUS)>(Gtj-sM*FcmQ2!W|CbVYXGnx$fJ zd368Wtc15$N3u?hVCly=sLa=qQogOrxFpTQcN?in=#2TWNQHt7F+G-!ES1)?%)%PRrYD zw&ad~acdlp+M84RyTx3WpkZXmD@(C$2-S)O6Yic>CuO=UPCwxgk%3;h>%U9e5t<=y z-h3GjpMB@JL1ex`n?(|%{?nny_Wu&Xn0`zg|CMMkq&*e8@e_dn{IFLC zj&5@O4GpehFixxcxBquU@mav-N7Ls_HW^FI4m!|4K8f3bJt=JaxH;%UAYeF|Nn5E@ zft<*Kpn=cbLGb6`{DQ${!1k#Fnv~%5{^I>`J=DSc$hs}$OhXnx{|4M>=k`cAyntDJ z?CSb2U{n%D_nQ};4ofY>B)lZI?Q-lsYq!N7@Nw`;2zvNG_ho&3eH?^P80**O%xGFw z8By|RS13e@NkZEys(<8xV>eei|B)?x92bSFRflX$Y&H{nWO4_P7W!j?`lqau6JPs7 z9fY^ET8G1~=B?y5@w$1s%tqX?ovUKf&~;d2K4P*Q%l^`Sc_ZxY@$LC|R!W8*Yr2I5 zg{MOf^YiTq#(|!NxIhqQL^!{>*cp6I6DVI~Wq9BTq=rbwc_?;L#4KU!pkxKzTb4x= zd*{VcnMSRk{Qh`zBvkM5dEoaNingfof4(UvOcVb_k44xt8XgZO^@lwqVwU?g-gknD zfWGnyO^os26WfbUIHL3FDK?{s6s@G)MO zZNoqajp5{I)`>Y1)p*)TMgm(y=v_h9;k%%60*CEbb;6N)__f!GW9&`e#M`TD2vn|- zFedgv3b^>53>QgRvO-&PbO?{Z5p%TZ!w>~r&BXF920}d>saYewyTLX){-vTA%U6}D zSSE5NEW%KzSrW^^j@R};&38x!;m+o^J|<2Q zoeZ#$_~bbhVrVkD5f81<$UO-K_o`y7T8+-lz(_T?_;7-6aT1PEzO-ha{yUtd{P6m*0 z#S;6?6@OylSH;s(K_4T_bRuOd<=efpQeZ@z-Wc0brf1Z8d7`}tPFEh=-GfJ8?BV1> z)nCdG8sF2;D2nIPRP{t+|nU(A#pKUKlE>pcNDQB zNlW)t4O0VUa1$SeZa(R_RDQlE0yh_p2$w}nG2+cSvJXPrG>=tQBp48Yoge)Kq6gYJ zxxH9`QXU#-+-G^Ls#zr^lqEN}bRVn3%&1;qdEzkw#AJ!K)L^>JRPKY4TZ^}n6QvmG z!mNEi9dIh^YC4^%0+p;fiE+dQyu?h1NP3kbRsu&s>)n z+m;Y1zGkGZ(46W>R;iM_$EEs%@F)x6ksD>@4U zo#rY@u*}V&Xlsl{b#mHN3|DslR&-I4h}m_IorTi5+yL$m4VA*GVwCq58g)Rg?Kt3R z)=wWUi?ye-`IhIqtt$*zPyEgF%hn=qO58SenC0JMH~XKmiG(m8;#vo{>@=7K3Cob+ zHp!!nBTvLFFLtEj5pw;ftvi32n$=ND4kj@w3sHk>^50KXCKADqV!V;Ck~CPJ4Rv0B z;g44%8R}Jk5}9D(7Cwl;#9D5If+G8|VBr$m5kN@gC}0v+2J-?zKuEF(=WpSuQ@R8( zGtQm-<%}8Hnfz3|gCOnA!I!^12Y75u%VeF4C|s3I{>c?Vrh%7)xI=tc%fCoSeZ_PNYKtGHm%%{uqyv`i;mz3m1sdHsZ#r@JMKvG079>fH zi=?D7fNwvO;6UXs)_`5eZ~$n#!sP3a>F&SYnTYG9%Pnzj6>G5v*zj0wZFENZPIpgq z9oX)4izomsAZG+=bGGW)lLrcOo5j3NK{kh@!N6PnkS@0IkkOMye_0KQ%%RFL+vnGN z*gEb|9DA5Y4dar#wV*odER?DzPeV8Yw{L#g{aaF_71H6`hmv+K*%Y})9iLASv^q(h zEHm;AJaC&$sM`V3{d_on#I|+N;qHp|iDs!sI4WrLewc2JJ4546F~0%fDToA*@_wnu zCDL&o$AUeE>eWm*a4JLIX$gW5fE=Xb|AZZ9YP-0(rzRPGN9yMQc6 z$c}&zTtB?HXvJGP92MU!PNVPNf-CZ>(p zH@4i^E|MZ)#Z^!^KgEDz`+S-|v!OOkK(!obI8{N1IgZ!=eK==PibXg~tyvz+>c<_R zqx_)Ln&lu{s=jl-wtI6zAB6bt;Bpsf^cHRBK$rB|7^*hLSNm>>eF%yuk-xZ?=U5M zP2Xq=o=p5MIg_aUOoFq7g`K3V9zNae9R6O5tSW~hS{Zvk*+>G3uS!w|?2Ia<0SmV7 zPnJ)&L}XZfj2;E4>eq%3`;kA~e)HqEIFT>=rBc}fnkt3}y@fsqLgxSmC1e4jpBm?Q zXGX~YZ!THSx9P>S%Gwn62|yCDGlB|McIh3{xX9vOl`rTs)Q4S7qh%d0|BSHX*7mqk^8Yiy z#phJe6Ku_93B(ip#CZLy95PBM5=B4B@gY#YTcY&3pxKU0%>Tz+hu4$2+z6#f^o zQSu*YtVUJhpL(F0G$Yi5xG`16%u{Ez)!m=7${=YbIheH(`J0jhk@( zAW^-UUJ_9}wM2Sp1f0gyDos&az<#Gg^>Jv*g%X=2L<9SZASWAuWMPFLLZA~W#G`pV z`hjE9zB3y_PTH*q*=Ku_#<6^pj{NwhR`r_b-Q~T^d4S8rlv4l8v;)62aQHO-^8llS~;99l{7b@5=(MS8-ue`NVs zcyZ)$N^=q%6D5P)2W(8`@q-2=wPJ>9!t_ZO;C!=@5`oVJuXG)dn@|$5vmVT0N;9N3 zbefWzw{9+pRA^Esw&=tbp2fgu9Yjt*)Wd|dNeGG=;v3eWUs(81PeYYg2QzyxOULr~ zntkv-E(FCv8vYhg8I)XC@|tnpY`VETOai%?H?aGtD`1uJ%?KuC2>FM|3PFR<`Z4^v z1CI3sdw{gb*sgHH;f!-Q*D4bqPtTL%2VlBp%)}F`F63sbJ&(A;V)PwQelx#^VD3Z@ zREN)@9;-4cA>j9g7|&TuemJFB&miXD)S}fO0AZW_9gEG3I!MVew|mpvxz~{mgGw?> zv42W2M<~T@QDT2yzjDqxp%=wtlYv^PiMEfB&yXgl#xiANBrOy$-uPD{6L1p1Cr|mL zuox$ee-bN;c(rn%fP(?O*$Z|amMb8-AG<`1!iX~x%ZM9hbJK0 zdO4>moI(pCQJ`a9tisrA(ny)e-B8K%g>Qf)hi(7GZ^ekPdB)S5TR42t)B@6l-DyF*F>*CCSxq8`%b49+$|U zn>=nxV<(ChY&G$?H@*k^J0Ouj(zZ*>ou}Z*y|T~_?bt=eZ$ks3!8eSmuL(pxy*NGRVpar~iGW=@ z>KSJJj-IR}wf7{5#!o3gwI)cc;f^n+r?HNMjnOF9p+Kwgz;-M+pJVJI1g-Fknz4PsGXA3x54 zMc@S>xIUg-JiXqWmdzXnNI2QLd&I*vX5|Unf`Bwmxr?ACW+g&T#^LAN+SZ+1 zQWzT1y4#hP^KZ|etwJa_1miJSRt z1*%V(XECl{S@y&lvEmWUm$g&L9`0i&p=T=~EW{Np*c7o@&IxH7W-;IDhb8ZDk4xDZ=t5t~2xv1Lj;1Ft zd39f-L!LG{7+lwtlIEg#NI4^7k<~ON*mJCUPpc+0U^2Ic?+&aHO7C;fng^@G;3=6@ zYXW@bsgFXMOHO7@t2-&JDEiL8hwjPwQPEQJYosY75G{54mG z^BL9Xyjxf*kb(;z8jVv=DSf@RQz&!I-d7l|CNSw7&^Kp8-S`Kp%{H=B!3!*^Dd z9xCalvA6-z{+G`!{iGt9m-E_`ie0FIm;3B z39vWHXWAvcp*RHL-wGse0E>EyiYL~pIZqsE(>&YX$K6k+)HxHj%4Y-n^o5r1vJVKY||hI9>K zZ=a#kgEhxjf3@}4#uW2_EkM0E#coJDC@wmP_!!6oMJb6Wd%$AeKDTVId*%bbEo%=2 z8`rpOZ}GUU;RFoVmHH;{z5@G?w$wgNGgat!o=x4UTz?p^t!g1rR`HnbT6@2xvL|nr z#A~m+9V&?(hn5@^43Ob&ZrRv!$$&O1wjK6tOIZa*HO$WFt#hZEdQNEI80N|*xW)Qk z+TV!jB01MO!))nc^7R2g7(44Nu~&#|%!Xq~Dv;eWDvIVSGaHZ|Bwha+lQbJ5O5jP0 z+YVM_GAHmw>mx>xN#f|FT= ztWPHV45ax{eCE3aZ?0lem+DmTok@f^Xn5t@3H^Kb^}rW5-T4+PrB-qhaUGO;rc{q* zDUj&WqjYT4EhSOS>Lm?!)|QcA|B#VvjAfbh>A5~Sg%mFn8qyj4M~56X?S9Mv@K zJ56J%)nnBgjXCYhz5@<3DAQsG1^Jx=AE}0-OtkLGVigiwb=c;ar)b~S`}{}Q4 zDE2}dhl)T$0xR4(LaBD)B$@K8_Oas4qMBFX!EG7rdWlvveEzEyq&YjwL92ttb~8UB zec@2Q#=r7Q_u00jc~smZnFeG)<)=z`nR}wA8jbPrE#%R<*`kI&<0Qi=OW{f^MWi{! zBx~uxas0Nq)KT_n{Epr&4vv0HrtzIl1wKtLZe4{&6mH?FZhynzpmW--!K9jtN=`ii zhUhx6G-`f6s13irb;8eCuEa23h7T?F`9Q-e-G=vsfX6J4u92-n!1Py!*kI` zs`((_P~36ky*u_U<-ObPiDC;7;PgHCsW$)AciO68naWaX`FTb|Gw zZ{K@aP>xgV>qK;R;5!={*`-Hp-Q8cDD#6+N(BHE*bn!%gk(4-*Rlct)H%_MCiT9>4 zt;nE9Jp-l3prBQgS_Ju3JV+hrTbtm$6<&cGc0b1HCf9ugACWQg4Ft~V691o$b1wG( zcgN1k`ri?kx;4k_4mkg(ZuSAxP-BRiUeJJ0Y9IKRUC1to3$EjRG3@MHK*ljeL{ksB z6@j@qzPY|d{9TEfo?nuPR{g;N<2xY1!fk z`-r$YCShW%J1yZE0itUXC{?-#Y5BhWF`TdJUUl}_FU8y z<0ol1y1iNE&I6-b!hK35BOPug-H3abQ|Zn*UayPLJ5VR~Kryt&A|RKfUe-1^V6f-#9|&d1j8n2_FQLp1R1emLWp;(bWx;4#{~BW8W` zB1v$_i@cmpS>|Ksa>EbP98?L*KG%+dznv}XFHRLH8AUhi?jE+Qo-~DUiRBHfBRyTM z4qB~o&5#EnLB$y{WV#M+^mn@cCGk5p5@Y^06+2eU%S!@^JIReo;0b9NZ1tpxnBnzP z;BA2mV!y9Q4}WpX&4jJK1V-@==1lRXEPovrufi%RXDd&pRM-6s(&(pJh9YSG(=G#B z=^fiKxLOU7x9P)Ct!0Oc4z9V-(;{h?Tm#l!u}>9*t~7S;tsvG0!f>-nLd1G&my-87 z$`?B6Oa8_sn=UaO(xhyZO&Qebk*AjD3C^>ZDC3bSM4hru2~6$!LI&cvjlN@Ro&0=h zDWdY&7Z?R%pGDWUzUSxnDCtPb+{_)L_|_(ln<>MmXlqcq=x`|J+r|}6C|mM()UV5rK`>13k75*$gIH*AvQ08ZA!FkLYTe5Zs<%3=iL z%P;n|xw^?eG;5jvi?MSI&gI{?e3Bj8wr$(ov2EM7ZQIF?ZQHhOW5=1Cdv8t6)cMcU z>FVm2{XDO}`1Sg%)tNdbA+VeAo$bH~5t<`Vfvp;G(Rp~EtS&{)jY}+*Bd$TdG3Ad& zz@1W*@Ayj_sTlaM^beXvO#rO-lS5vXe@E6q9t`CRR(}*pA4^7SH)2YAGjXTA-Y)@8 z4zVpGN9ctpHa=W|i0cql^dCbQvco>;e+`?FY&U4=USlXzYwIqXKWC2BPOHK}p%^|L zZ_qNe>5ptwV^0>EH3gJy6zCg@SF_99Gri+(EiT{~{xx!L?fH*zC`||gQZd~ci z2O%ikooLTMWK+NTVd~IoZCDElqZ2H8)770uc{-s+N0ipABCw)GZtD z-IL+Wt)slMenP@0N`H#}BS1>*CJ4K?9q=8-nW3H6^6DK1QP(YX4}K3_opuh~`Z>A4 zq5o!J>cWn#FZWsH7 z12M+<0^wOg@z6JKEWTP?WJ(;Lf1)nx;A#<9*o>iU^Fir3V$G2RmH`~sbI3`$R_b@h zeB|eE(Z${3s4U_PZp4)nMJ_szVD*}bRaDPJ%|xsx$$CADJtNaLO3pWKpCq@O;lT7O zN6TSTioa}$KaT1QOr&$8ICm`RfXMsG zi?mPfIO!RhkIY~gnP(CU_^2rtVXd`>XgtgNEQ7{dK|0+UM->7f{-h>PGgn05hsY6s zEe`qbyj43X;{+oUzyE4d89y#juAWvO%%mQlKWr@cX4?;nHe)b-JRDGL|EtZyXLs4H zLGyj%bn|?!MNDA@sA%M1^r*q{^}tC_taJ{5(4bmarl+E63>k2Pt?iAJC^&03z*Tr9I&cxKAP z#)sRZ^q*8NIE&Zpn+H0eU-v3bWJS8s{~Gk4FN;j6VbklzMwzl2IpK6@aPd48SHH9p zzi@`>YH}uLPtW%uu|%bLaHmPDQ=MKS+3t1hEkdWV#EvC?RUpj0A!{NzG9IuXwvJyP z6YXura`i6Ej!$P<Q<=55%${y1a18wBBsd3ns@-DNz}Jwf~%@vMf*K25Cy>Sur(I z^aT=G%?EJ$3$9$i?uJpB{Bi~uE&#G{2ee5U8E4FNJ^DU6E~3Jl)>ca1(NRe39ub=| zCmS7S@qRa9M`mtGPz^hyv!fnMB4>vc!l-UFiUP|pP7i(g+g zs2P`iNtr1KC>Hijkf?kp9Q{y2Qx9LO9GYERJB&%bBwbcMij-}8{Y+=kMODjq^u=S&bP<5WKL(0X_6ccLMJYF7y~YCKxAWrCAf?N{ zAkx-wh)$5Lx9eMsB^g2L$1~&!pA;b2zuq>QC2dih0@m9l{3S_;)LVElZbB_6o>T>z zu!oSlQk^dEUF z&BUDhYQ~OyLX>T(zuD0_AQXcz#*~OGEGfyGYA!+C#D0icryD;iGC5%x|zidZD_oO+l}x8cC$$I!@WXI~C~fwpnC>xbR36mAI-+rUzjf2`%4u zA{O%hHK4?7Pa=(IXr+)Q+xlC!RFLWfp~jFq8b}5k_9mqC2FKlUtG2*pcLzBcXaswz zNuDD9zCWd~a2}lnftNl|6Xf=N05shisdmYXBupa&R@&FA{L7LvjVo5s$YtVDO7mvL zcQVCRRku;T&lQwdV}ylR zUXVUQQ^oVJw@VnvaP76KHY$-DbG3K3+jIvBnc8v)3KVEXTbvbe9 zQfs-z#$Vjul_2kQEN4#wz>pKTS*|wDuJ5)>z_MDjFH_>LNFJqH2?ki(IPB@OW}d&t zhHE!-KEHbU8{VWVk|Vy$IniR=pQ&2m>`-TQ*`|_cttpr+aCuVI$*j}lux?jyGOt#~ z%kIPOXLLMqyja)b3}J`8(yfVBrEsXSoj7L42VGuFK{NGlfF`O#T!%I7RX+Mtp>DS~ zbT23nrL4mqW9iO3XaG_AUTnBaUz4|;eQ&1AApFB1!ov7}c=7+g%!?T4>6!kwdl3uU ze>SBoX=vJNjv)B_tx?OPI}3cioSxJv0S98Y&n}Sz7;x}!4uKbE#FuWePC^Bj=OmYAoIwU-KrX@%4M8%LwX%1*r3y4M(wZtNc zvcMv-M}D6>3~SSa8ILJig=Oa)&%aZaGblK~qZ~R!;;v|lMipBp)^mY&k47Bnw@x`^ zH$6DGY&9Fg)WW7>JF7@cTOxPvUpIl3QSek9lrZl|0+t-oH@H=9W+4s?SWYMxW?rYB zEisFcRT#fi055U1;sjxU&;v~yA(o~GOlGxE+7OeZeR7e&P^$kV{hiy$QvvH}fZv}- zfwlprra+L`s282_`%i%U)Ri`L&^)=7|0IS2Ya|<0qcsZ^x}z=8XqG3IfIi7$6pMpH zaAviGi%14(U2sBUm%KK`XIZ<#26?k`W3<5=X5Ls?T;6ki(xHV_2ldadvE&V6=6jZ> z)g(0HfXGd0Q*nVCr!F8PB!Kxv{g&|Q0~FDOntf*(pMP%3J==SGQT!iPvEnM zzqTMHv2r<4>RFiCSswg=bZrVHWvEypvMm~-G?WI{(P_-WPQzCV@G~)~uWMhes6dH| zrRhWs5V)IGCU+d0dm%CMgG!Bz%mWDJfP`5PYXmF}jGzQpzc*|F7@Qh{WS96ONv(c=a(cVIU(Jo;bGo79)4J@!@IL?Yd3}KT{;K5S#lmwP5xBqGfaFRB??ku9 z=M5*eN*fRx0etg)NQr5WO-$UI;=3Br`1?$8pPLW=(N;f3MX1wru=;)KnpIz8Cj?vr zrln{wgSwvV6;?Z{7`g`6jyF;>yv6hvW>*R!5I~&f7PGYsqOKU)4rvFzDwV+TE<#P0 zOem<`Zz4*(QB5!ixl1%`stQNyJ}M7;636mU`Js@3tr5l%ZQZ|3Vt1^Meif=7cosJX z#*an1hLRIm0Fr{f2{<@J+^qW4w8k-aN7v>1W2Fa2uLfUyhHhpWw#K;EsJs6Uf|Ta) zrk~;;u@LQjr{0u?yTjf6Q=`MyU`~8PP8{iJoF~5TH}|)LzDF}ohdSR|Y_lMioQ8ay zW{V1LFq6#XcRc=H_JM?J4hJlJY0t(po!`S`V1;KF*Fy~_TNQIBXL|`>zHlzsD!no1 z+PyL6ur4ZNlkm}Cf+oN)Ld?)}UgR*s-JoE$PzV~__rQ#fk3c*GT`$m1li)~6##AA#-8ItHD44=s6*WH&DJL1VMvf?0}FZA^2+jrY!k!vIcF1idHdeWwu_TB20SC zVp;6{JSDOK+xd?^Wq)> zPMZY17$mTE|DtpK^0Jzhe4~Om^y&41*r~z)w(j#`-CV#UA()Qy?#;|(uJLSgb zgbSN?$3LDF!uYwV^*hedj{NQm-h$794-Oz`M4u*#wa_#&Z4tA}Of?o?PHnwOyic`p zyS(2gP9KJf=spw#_fnlYvL!`Q47B-;X>tzp+1_?03fUsFhqL}Z8$xvWO<;F5z0+5t zHNFV%&t;@P3C4wtV^nA=j`x9VmnWuZ)|nIw zxL;#jk2Z@v24rzeC)H-jO4sKbEga}~$Y{!Flyiu9ou`<1J)u#hxuRY56WcyIlCUaP z;9Ik0v<%Q!rqg~?R97b&G6DjmSoD(B+tZ+IyT8km)!7^o!E*aa4K%jIb(^xgt>u%A zipwOOQVS^03d#_-{-8%-UR~PSvj^F*uYk$s;_cvQN15RN0Z8>&+C$or)2?xt^1|>= zE_m7SL#k@^c56*%!c;R}4`M2;h&to-dK{;iX;0a0hSfA1(wAE8)mJQ6#c8JIu)>6` zQ_MnecS|^t4Qa^bc7k+2MZTYg%pThJtS_mhgJFsl65# z-31dQu!PY1;{dUNvq9L{<-M6sMpPs^_qJ-06#!W}oSpRxKWg?8aKoFQKC|C>d5j;8 z3R1Q>PkLyFI(aUj;S?4&_tK7cZDnNlN|W^RjL7&Wm=3S&7@MEOJX#(Eo}XOX2#rk7 z8zITy5z|-)ge0Q-(Cgbc&g?!IRe}KIzU&3B6TUqy$A|rM$Lt=e)0WvCYBFmnHwsyP z-$jHK>VuA&b?Vr6Z_Xw|q4v1#dcOkVL+T2Nd@?2ljn1GUs``D7&!`4RD4kh4&IkSe%*?^V$%{23_k)=0wYs&NiO4}L- zn6_jv(=K62>Lb*gk-4TdZ5&5y(gur0%gPMo{C18%lvL=yZ+9-=-)m^&S6hI28buty z)(H02=HY3NNt~sdC(U9YTcx(`hhQmvFUPt5wd&|=ZI7|)NbU;w{3T=j%cY}njen!s zY8o6Pj2YgYi+kkT`OKqeEun!opoS(AE&}m>yIafmdmnWt*})9u`lCaE)(ilT+mDXa z%sI7(`iwS13znC;l&(AO3TMhj7z3j6P)k)2bTbC152M1a2@2O3?L_L7mzZNH!+QYp(D0sZ^9&b0!&aNI` zt?a=mIg#|--dWK-^3FEQFduEehskZH{&fcS5V^d2_8^S6xUTUA+#c)X43}FO&OE^W zHmhie%L~H%0XtPEx82m;X=skhy|6U<6hCtIS=40$DLgaF^zeAQvT;MEoxVir-hCAL z@$}~M_LsR1R)r%M^tb%$VMvc})(aqJsh4Y&B8U4v4PIq2oeCzbwbB&2K(# z$1Gj&QlHeEPcP|xjm=evq&i|a8+7!;kPM0xoogcm?ptD6$1UWWA>Il^#0ZA&yvv^Z z`o(eKGMfRd&9Csox@|Fa6!2U*dW#aC3^)#g5@6w-Yj1=(*gNy$A~nQ!0d7P7H!#0`&VL3wzFuD6fK zdEdiu9K(uU)bggj0^|-f)Lv#B!>w(ykXp132;K({apV#Or{8Br@|6K;)L2Zw=J>u8aS22#0N-&{^G2-S=1l_JMM)=JxXrqjO6Au?@EHZFFk(G`^Ha_GQ zb32c5w8AN^7%fPE9tNlb3Kmo?Q!mp?O(am$d)&Gk%@tdW(t%))PiYO;&dE#DN7DMn z-G|H+yKVUiCJO*1sLf3Sp$ky* z@Bw)acxhX%z+_7fAE9Csy0{($zpSlpswZ#;p~!Mv?!g1;;KKG|MRbahM~4K8y{MK5 ztrKmJ$Rt?)FT75BS)rir9w5^`)VM3q3F`Vttra;q#!91#ro4|USsf`nRsf^TwnUa7 z_YHOkT|=Ql$sf<~16HWeY^|?JS$6W`JG6af9VT5LqUb+vw<$1r7mk{N={0ZS#YeS#W!Mrue z+{gX~NovvidLAou$2pp=L}0N9t3;(y1f%K&M&8;>}OU8T%t5KhjToU3i{CY+o4kcUEmys(Tt1Kk!)~! z)9iAvnN1)Oc9IAkS-{(T4AIanV7JqY3q7s0Je>ij;8VRnATJ8{Q$Ynb%`J!p+I zA`7QohZ=$#Do^z69l@^^oxn8Y8XAmdq7{mwt;oCnRLkWdCx!$zF(b=Vp<6>=FLR)S z=zk1GosaBgfW|Y=gr*(Efly#`_@byz%_}@v>ZyM;`n0O+v+1yp%ZH?)0s@Y?j93tm@k3?@p- zEwSLY3szYco(LU#Ar9jO!?Gol3~<-l2OJYo?Qw;+ercR&nBf2B&XFhnlKm!r=a!JV{@U0CY^RMy{l4evD=D2HJQx zNqU9kGM3XjTB@e&_)=L*cSq(MaQ1eH^q(3f^S{H0j7*IGp*jF_%m$0&xw@tdkAC3D z{ugvU4GANC3vf5gF+Dixnb7>{HOJ)5jOXEjLM3GzG8G_oY9!%K_kzP4=h)e+od-u} z2YOm3xQaVZmsdKn55ZkaLhI?}VKU-$+1b(iZz&HiI*MIr z{Y#&1GAFN_oD=9@^z0eT)EV^6;+Yqv7q0?mZoJ||V8Fd{ChwSUkJk|a#=09?d7Z*V zcX;p)IY@96_yiFvzf~G<=pG^`Vtl@x2j0xTfQLM1h7Y*Cr7&U!q&RTlwXUgo)rdw_ zcC*5NbAIIEjFB?sEr{w684DcnZPmIk8g5mfgt@duU`OGbZjHzBdkE##L{cX#i}v$z zVKGUbo>M`xT#gQ^3uNFrf&`}?1IKr=(%G- ziMT~VIwl^oGHO_)r2_0;+gtPrA190>4W-11lEC;AxX}U_dj{0P@Q8xYUXZlZ61|2` zD?7TS`bP_nftUQiw?sxyIlN3W@h?2MslY-T(9X^GgPC~`$pJttPOa9BQ`4oO&}c6uk=3W!q-43s3Rs}dre4cBx)3#JPg%Ksk8s~% zUhR#xMbWJ#b1~JAvVP%bUK|t8dFN+5LLbAaB_OkA0G@WijEUqI;l_Q`;z;Pjk7K8O z_Ez@zj~nDM^%gZ8o>VVjHKv(uYUPF(mTG62K?x24?r2(fs9k8~YL;04eD$Lm;iB$Q z_h`OeB5txd!fvxx>JQBjIC7`iQUbI^W+XY0D^RS)%;5pzZvGudF347d2pS!isAsS7 zyF_bybu^&$km)M(FerwPGm`QSDq8gxWty6LaS5YaSis*!|L15@tXy5u2P58i@}(7PQFlNp%-3{d4rN`-CS}x!#Kwl9C9MD~6=04-Yk6y~A`(jE zf#gn?pYc{IANE483XRZ^tWVP85y?)#4W%sR%d%hmg}c};3}IfF`RH5PT%BB`O#zb5 zFi#8|lROZ6`}6f_!Z!E23OMJD?rKm28>y(@dgpEXM`!zC>KgOIH9$x~bA-Z??ec;@A1TQ(C-p&jkU{lIIR|ec(4eCB#Y6IyBy)@+ zlOg45wd$=`H#0l0tE$|On>pE-ZkDSH`YvHR1%K4jGft zjxwAWh7|Z7-k-Cen_kG+JC(nrVcFy&y!mzneydOBra*?Td_!UM1el5 z32Ci-9ALT#VzBo=+8j)+>|gFbSlUyu1G*Rk#DAhfNi*+t89ikIOotDeV;eP1bVwP( z-sLgb5-6rh=Fp>2CDSlwXW!}M6ynv6zkqpQy~0sZ`*mG*GK;%vU6;vmYrjU$xd!9Ig&+)W!fk(XMKr7r%VG%$@-R3Se)pEmX5pUc+!S8}Bg>Qi&AGURBlV`T}&w!9747PJLj)AaraY@{KU z%BcEj{h7yBt-14VaEeP%y?tb9C)(U4uJWesZ~ekJGq7J@eF1-&m&X++=ZK29rcspg z0C}U(6KG|uQIo9>!zav`WMw@~iAfD4;8oquZo(fPZ)_BiO6kjkL0l_v$A$!T8U7^a zxDOaIaJjX`8CK<9>z>W?P2sn>Ryrm78?|T}FBUfhc5Bx=hWqa*15*8gDC{W*>P`-T zkxEiSNUSzN{wNqn=fRBn774ZoaN=<55Ny+l;giEVv2c|cO}ev^7vk0 zJ52-Mw4dB;;l(a1^gbb=X%HCa_FC;_8R1f!pEZ&HVv#>Bs)Sr-gRTdRrF6>cE&f$6|w1!W$arceOWVH zD4acSlB$_I`5;#E+PvL@lHMb|lDOaYF&EE2c`hGwbdVKFKy+TFuRa`d<=d@YSSYQD z1ZQj*a}U^665BLa8PLz8&Y$G)i(Jv#q+loABk7ZqIk|;IiFCTFqSPm!zYGaZw6cnK zn9Mb)&BK^^QaGBV>kk^m+{Z{v@ zpQKOcx;P=l_#5dkg6_%33Hvnlx`2p@a9Y~Qsme?uBRUbaloumjDhqkL3KoF;?iY@r z2u&!VLYuepx3{~`i)#X;@F088q3#ae_%9a&!AUci-@>LpW=+={12-8KOKX^svNC)I zvdb9R+)K2?n&jp}{5TjC7#>FfznID4r`U5X3wW1_VT{KpYCRogDS(V_8cJ4$M1&et z%UVa*d_3;N$YcY%iQBpj6_UoLT^ZIe@zi^+$Q*V7jvHs^y~`P^gxW(&jaYLIK)Gpt z!`@H3R@0xi#mM9=GpK5frHYoe|IuRqEAr}QgIO|K2f;j-pGWL?nja3{{Fr}l-yl6E z7I~(E&yNiPvuFD)`gRXN3a?FTWvuOO6qzO zDTur6;7~q{E{1_dK<5cOo&So3E7b5d@j$h=z}I-R)V>hhQb1w*ZwX^#VQO0M24E=d zSdkqob&1A8TYS<;h zZJSw4p_58ayV!|vS1HLtBcSm##6@q~6)(<;a%FD;<(Lu$JV39ytR4+|jc;ECDmccW zECSS#3ln{GmIWWE5QZ+*OSEC&a}RxcVV&|SYhYX&n0YgE`X?%BPx!JxTN(IlSu=9& z;ziIi`ZpEWLmjX>S+l3W;j{-g8STFGcv*Cum$cD-ze`8;{*T62w@IB?eJrHQbGNf9 z1Gnjn_mu$y$zz;}d^D#h{kmUg6z`mrRk4niN3)(zk8`$^p_(MEIxWv&tZA>QrBpY=ZvSL0mXr&^r9X91Llw!N|Rg!RrD{Y~C)sNO#Q-X4PIX|0dL z%pIug#^d$+`z%mbKm_Cg(R@|9vmd6ltM<9oty}uJ)$Es68_lvkg}BbS)lak0o82Bi zZ}@z)cy}7wTj%vQ#o6H1mbmTr=5!aua$WIm9~h;2HoaaL>wDeLd3O@AAMtK4=&YAj zwe6YX?XrVI+;;nU@ph}M>f&{~tZL_`eX4hR$=lE0UG_Ac0f&&!c8Ow^zFVF@rw^oH`a7CuFRYTD-Y-ZkK7b-I&GO5{wER(=F zy5hSl>V^HMV$aU-@2AeJ%>St!uvF{@JM@2%b5WFc`C#zCY3ZyW&&`o-G|!Dc0KfkG zH=NX10$xJ)YGRQH94=Xma6H~vY!Y|-`|{cK!`{)=?OxO($I%-5>2|k^sL$;EikZ7v z+mBU!WQphd_NVtEW~COLL;P}>1IO#-(RArgys;>Hij)t_@#9atF$W`Per{xQZXhG1 z&XLXG7k2K%$B(HUVt^KUan_gn`$1kq{g2?DZ&>s5YGGrqXCRL=&j5>aLI%US-M0sC zAI?Zk9gPzJ1=^Xf+esJBcUfUVV~GdwC>o%+$~XrQM1|pfT0`kn3orth7!h3!nv@|& z=sSD*ULAmF=exu>OD|u2IPM~Mp^Z%|o|@s~^{%QS=i|w}kt42t)=Zyw*b>w*9S}2F zKy@Z;TD(2o3++f8TV&2YI*0Ic;cV>u^q84ZbLdsorGp0W2E}hnFI;8csLCk`a8oLq z2caBqT7b?SCO}z+u&4Q}sipIjr_xFLyXl2LaGZge>THV&8j&QRF9Vc7g5wA=Cx&-wLfpk}0(XiAY|6 z77!FBfpL)M)O5y0v9bz{>(~<~S(#na?jLDg#@uuGP$QLL=^Lg`1)EV~m=F+=gx^hG z7fdI>$E|5Rvf%pYx{NnQR#{ID28f&n1Kzm_jrj?6@HD_A}2 zl#7(+6{w4DJ2SWQ1myihZ-#EKq^OS;4SU4*Em{5XfrnS9jQK1`_Gcr9N0&F0445B( z=xT>CG!j%TIr3(d%n}brTd{*!rD2s0W)r1DeMz4&JUK#lVT!6_Qe@N-9^L8GddT{D z19J*}JkM-HO?XcMLmM@Bl5HTWKWIL@8wt$tGFfJYPSnjNo8d&R&9TIHyTu5v99Kk^ z2_{dVaI{Sc@0m55$SUib9j_6dko8ZL3^DUL_}dpRx}tEsKjO?3iEbnwj1+)r{Oca4n*D9(TetsQ{$}gXo|FlICbonBN?l6qbCJ8E<5qGjnazCne>~ zyyi|xfr=RA&wocJiQm$FY1x=6ljCuVnrm{p=6l7d4mI%{1oE4(PfklkD_2^kYFM%% zs$PoJog{ke*9R-3Y!`j>^bvCXA z2PN-i|4^HC5!%nrlvAIIb2#>acpr&_-hTyxQSFg_8aIsx2Z9+2?VnqKt|F|e2N#;- zK9h-+JHjG~?#S;s46RnvT%F*s{$i* z1tqPi0&C9KxHeSpOr_k#xn5I|1hT4cPnMo72!Ng}l?Klr0|6AKSXBhL)Tu#8meq+` zCg@cJM;Kl#PJ4Aloe(2OdV|D{uI9>&j*OM(c$&c=h$ON2h{3E)<-$ifSex2djsJ=K zX!EBdaH9xti>BkaJdtdMWLTuqI+Rq%(c(GSC$QdLgPSoiWo&sMgIL|ZtR;9*W!Xc0 zniIyb+xU`tU+kua*djhFjXm5C!Tok@c1_EE)m3P z(UzY(JRla~(6sK>rmUjg_i?v|@xXC+MqO|y!37s~_bUTCnXTN^oww6w!-b1fuOKJJ zADTA*I2@{a7}km?Y@?o=XQH;;1nJADE77iTUp%G47WbR&!OAW|a~mHd16firXN$b_$soLBw=Sj5Kd%e}L6+RYEX(~w>8f9hHs{|*c= zFfsgRL4s52Qnm;G)3uaPC=}rGz-OIEf4Y{4Z6ptk$uV+Wl-~Q%AKtrzKhM)BdcdXT;R=_m;#NX5?oR&1*tdS0GMG44QF5e5 z_nUo{@bZ&mjYYy6pQw>bLZYm}j%e?<)^;#fxE1xyM^gDtE>Wd|F>4O!XV0k2(n|B& zugzZbzWF{ZR9HiqSkoqO;G^`IOI(fa^y=GvxfeYyvgPS!#<7YvC%5YD?rz*Kp2y#F z7|-Q*@X<(69}f?CeDGn=1T0~sfGj=TEIU6vP$`n{oB>RcwdAQ_LRjYLC)xF|zVg|Dh1<`0XkTdA{8y+#g)&t@)sf^CL*`$DhJECtt*xgCD6jjE2n z_V##8WMRu02WWrjSFLm>a%EIkqSqdpCq+3-G&N3&9lty@i`P+jj5gMC;#%qnN-C-0 z5aW;2hFwlbT4lmT=j)usTP%vb=eD#*oUNnr_ZRRVU8|4+CcJySaXwmKoDaZ>aotYo%`;HB( zPaDN6mDfQglta}JO5E_OeJ zn=NkxdNJ_XEH{+4WxXToKs4CHXZiJ+8rAme7t17a;&FW@j}rBQ5A?`GWCKv9xsX0Y zS2}SNUX1t)YWAB!DFovJV4h-jfE3uFLloEH6qJB>04OLS+4v(e{<4ZQ4BP-I$U%Yh zW4(N%imm>roxRJYT)i*IXLVjfJ55RDFMt{vXTOm5%?34J-7jc>%@w2 z^UcSvb~gfrwHXFPAjyd~Dlfl@AS@s#glq}R^$LSC*47V~gjc*H9-nfw6Q(@ocia%0 zsA%wueG&T&cURP%D1*M~LR36LBA&pTm>2}`n;fkG0EvpF+#reg00F4nC<&_So53QKrsy;$Q?7!%=GGH!32A#NtS{cfaQFm6jznU~F6c?_I8q#EREZd>t<2M6j6DVoIBjLKl9?h93+&9hmox*k7E!eVWJ0N%*t zw%cF%Eiv)jJG_n=<;j02w`>gmz~eIhY!3f*(TSQ{IT<_9iCXD984DX5+8P=2@8XKbF0T!xA*ohSBGT~q>R8;yxna0zG`iO$pSOd0QB1e4|ff(50Oo$M;`H! zmCiEN_&4%7US1CH#-O!Y_jJ8?6!3>Ej3fFT%dalciRv$uvT-MlxT#NL9+@P>ZNjWC z2fBDYcvf4LEMq4tAG1B(-q=6YQB%xxwRG5#UN8Uk{e<9Kpm#WQ5kCWX@#C%Z)#pV> z>dL9y6p%6iz_`ma2OxNxeq`9wR0|wOj(E5ZT}o|dNDg&CqPO7Wc?>83g`T4+1QRj- z^J*nlG`h0~hBZWw+iw|C_kqQ~O7}-Kun1MV0ST=+zEONhcK2(}?DsZBPwsl#TIf)g z)1*yv%~Avj|4fMb2^BPGpYuk79pRfo3vrqK+Ik%@y3m~BCqwF}+GQ3bwO}iXa2+Ij zLovRl;5;HEkh!+=q{_o@SB(|4!gxywyc0!0g71VDXhuUA624WXk9*FSIKh@blfBnQ zs5?VnD{Fb&C6y2wX{IstV|tgLhZp;+wn^&%6j+0p2%`)JG5T!u?XNj1FJ{=4_`#O;;O#iY#sL0fU7t8~WI6CfePOTu_g{uC&HpTUrZ zR@3K4!z^pEqT7~B5-wHewJ${Mmx;qG8T&Fqo%7^#x`ET2mgWnA$eteX+miShQE zF3o;SV^6Q4^Nr&awwM06B+M=|LOdv~JkoT#ErHGgup`~a6ydRvFbUnjW>r(%Lb`AA z>6CTGj<)dL(>M~)=FW7V4a-E%#uQB0yPEIEPfwW=9-iCMr+J8ZYmf8aTY(lF1Bo>#axO;!z{UUT;@0L zHo>*ETiOAK1m$ywq)0*;dHrr_tL7qPOZpIGO}=Mw(XdR_sDtCd$-ccJ)zcI5iG+DI za>0Oaa{)MrPtFRHw~+En-_kmO4vn#7iPhR)ky#ZZZR)tQB)J9ksUp_ut7*DUmHzM$ z*wKDvakj-uSi(FQCY}lU#yVPlV>61jY-=g%1!t1_TU15v2+#<+1#UeSX1v`B5(Rbi z2%QTe0WAo9V_G^f1iU{v&9#BTv}au9Oe8-OzUVzf)>TMM$zgq$_2Yl_hb-RbNoc92Di2ur{p|BB6k}wkEg0tGN8#OaK~mfmEmSmtPJE+FoFT|NPsSRbG+xr-f@rU|LYfIjM(g4Le82*bT*GKo=3d^x(M?JR-R$1N>*S zqcDE$$24peY)a6Q2KET@_M+^V*QZlB6)Rz!3+5RW1`Q>ID_#P5Y6deTl%Yc?Nld!5 zq|v(2>}N!biJYo3>j#@b!n)?`|85oyiqNu(CdXL=MlX(WP!6`QLhcwYkLRIA zI+@z0Vg)C1Lyrio?Oi5PYjwxbo z+bj426N8O7J*!Rl+2js7Sh9(!WSn4$Od&OtX{K$$ytP7m`K?l+v|B^kur&W#8l%wa zB!8X)#Hzw_TkF(5xJm}w2sgq}O(^v;=REweI%bFt|ft|pA?vZOHD1b z>~;5|=DnpyTl(!};mm5Tr;S5%wWcug%(vq!bM0fx$mbFe_^aq!^V|FT${yXPGbf8K zh9Xi?SY?cs@VDXkbO68~j@Ao_@6Lfs+qWANThq_T>k57nw^$ z;?+5V!3((HUkD?6V4FxMYRT@;mA)*w**)phG4HB$I?uLbc&Jj*7k%BFpY}k(C6QxJ z_SUNu&Jin#7i&`=UJg8dRoZX*_t*Q6nQNgQyPywkvk*DC2NJ?|xX(H`M;?C9?H_&i zBCZ>vB7cwY8wIxR$F#*ZE;Uz`&{Dcl!mss5tq;|gD>R!%{C$ndK&V0LHkIrwme$uyZ*!Vgf_;jC5QyUt- zCLK9FYjWVR7?LC&k!PlM!>-|FXSf3{w>&woYEDi*FD>lvCWgLAAHKDEs~`TdoBe() zB{E7JDAWS#eABxE$3@YM*8)Bkk&v;N9-r3ZE;$U?j;#Vla_=Xg5MxQ3IbvOA6W6vi(ew(XC>FC4?+J+nB=d$3xSoi`gyCYO;1|O{n-yYxnGXk{pRIX z)amjPfNj>1O)WW1wBXq61QJpPf?zU+ia>hTtqP@vCZ1_ZdMgCa|NI_`3WQ1tdz`sDn^bw*VKcW(q~UB9j?|nVG=BlTe?``KL49*V1 zZ(8#b0|*#XYX%70e8G>HYY`;$bxS^qev2!d%_bW93qXFL=N!_^Le3?a4ZmVP3fblY z=HwT;5@sJ5i{4x^;vl=vL5gNl-u@ndPOlw?haY@w9x%xbB%-z=P^lq=ZzLp#rh|X( z{w6vDFl0w6*g6L}xaUJ}+~80`Pa{~)Ovy^*E5+uG$1S%kNcD+fd!}{@{WpMNHxWy% z3i9viKQ}nUj&|v0U=nU24IWSW5&+o`^^reDoKc0Bgc$i`3Nv^lT_x{lEIgE5$4!rz zj#5eMpfr09Qmvba)s5U#G&7PD4GHUc(&W~H=13*1`jGEr#>Z-RGo3VQ4x-ZPm8n2s z_t>mOLb-(n*!Z>Df^)D+=z#F4WzY-k7Z3;z%qzzULap1XKz$cda`69)v3CltG+v`O z!;aOl-LY-k&W>%{wvCQ$yJOq7Z9AEqxtN-o|Cy>&wQu(QSL^p`Jxj-=&?ty37AQFWLTw8=#tuPpzKp~B@UWj%d znG+BQxy2JTo*k5QFsrif;aeBy-y^La2APt z7KMVE2S5Mwk>O|9Yz3QN3&j(VAOfe|bl4N%=hb68FAYtp*(sg9U*PHN(S0D%uEZXp zdtFKJ+2`E9LGzfyyR7u|w*Cbw2#omGq`OH6gB<9&8FoM!aq!9p+Jo2!FE3MK!Lb~Z_@}o1a#NdE4xH_Wl2*y2 znvqFhULtTxjOE* zx7}`Tyx7=yxu(4tq3EGzLab}zN0a~X{oF>+GdtoWRKf)_5&F4BUA<$IsgYk9+soB8_$yusANGgVlxdyiO-|Ch3YJ zcX7dI3BShPt>^zS*Kf57rQ`J}S!M`ZId>Z0rDgq29Jhq90Hk+)_-{SxOdZ}pG8=VQ zg&1YsHkqgoIe+fC`+B&mutDi~gmoKr%TPu{bv(&Jv4|d()Qdp&8h(mt^FFpayI&FyAOFL`o0qlxaa|<>v70{6o$heD$mtw7@&7S9l5{RWV(Fh-Cld zaIFfpplTs$twfZU?~hpU5)WC<7XnXSRk^+G6b8)AW5p)CW9Dz6%SAte=o9=og4j2U zs-s_t>N+7;*$k}^1v@Bh$jp%st4o{P(^8YD-g(dK#85Bg)Bmn&rUeM9Y?pOxe%UINPw^rJJ%m60h{1m@Y z^_!qn)z?NLU)VNMD0+flY|=jJiV>c;Fd14E9hkJGw1@ISzXUOWPI*VD!_+enC%n3e zZQ+etjvA~Jf9qvdn^yk8|CiXTw(gU4!p29vZ6HY^LADe6=uXxgZ34T_aJv;`AGi>VD5buLFoFLX**0BBfh#-2C^YlHZd~duc zdeOzkGQ&v7CvnIAmi1QlW1vC8uNs120E@syP#?gn9^0tlDbe;Kw_;=StzHWX@=4Ymo~ z$V6BX*M6LXEP?3YQ-$0!t>2({tueL#r5o zQY3GM(FNJ@mRXS)8qgrVdyLsCB{NEHYl_E2g^%=m;SlILT$I2iCm_Z;6 zZa%cZ+_Z1IZ9AW483+6&52=ENxb!!>n6y+b!8bN#;ry#)Nx(U%M_uWVdW zB<=5yk1ZBr-E9cnP8Gi@2e;^Dl7_P&0^7ZbjkFwP1H|i0nI>;q>B%Jj`Q6AxhI^#} zhr)!0%x&n5ECE|(yV_oC*iy5ri4l@1sN{)!9Q2c6X%-cqZfn+MdP;kDlPmLCErDO7 z$?1VeW?|DSe|>Xc{J7`d+^Xp*lc6zB(k0kh?M!*`8?kA{M|!k)_$ofB}Z zKvKsD3mnkp2BifpNQ%FrFR8qruuPliqyw4WIgg4K#vxWdCLln*6Gls3+KIFlVvp11 z&k0QtnENPovAv zhovbf&Wy{dj^p(xZuKm6lv=jdNYZn!hg*%1wUij`TSV1nP|~vCd)xEBu@2Q5gG`1l zY4X_BOpUyxrrzXQpb7wl>2P>h^kWP*cQ*kD`&+jhIB0jL+#5)tB_OuFyJbN%>>DRK z+5^rVBJw96(tDscPXWo;c4&c!Q?Ha(0{~V@;zmWhu!ex6u|!{znFLZ)uyK6QMv`?{ z=A&mI>w*vHTx*k`o_yV%+2horv6qoqR^oA*IuNOa5AK2(kWO{PxXRn(Gu6TuoNlC^ zK)8Xxgze9!XF{wGYSPSf`Hxp$*I|;{2aHxH>T4f^3bQO}wcJKT@f>AMb%fX-r7&s& zZOG%aXBdn^JX2|eJl-K7Wk-LBU*;sH-%Y#rQHXF~-W^sA7kbl3A|ME6R)_$~&o=5+ z#8gbQKp1!3XRuPsuRRABb2Y@R{yEa&!hZC&Tmm{GOZW$z_i5)Rj!E0xV5e6R1ywcB z^hAc!lW1vLS!Y-I^e9$~!__i6^R&c=Nzo6rxkcy_sugq+1_%WV0*rR5vg{c#o6@C6rQ2s zd;z*5*;=lGy&9FaI${1u4U)bzCcs|8)@<6F^4X>lD|a!|x_lv2AK`YiDws{Tmd@zZ zJ1#_u1W>G7hdUrXW%^VZ?Q?Wb)IHzWy*%K%gy4>RD0t4;@C!orxYs%rlQZ4`STA04 z27G2xwzrV(@cNEO%o)UD&!>bHc~#ckfHIaS8R`-xFA*uz%xg?E>486+2{Mi%1exFL z=HY--_2hu_W3;x1xe>KK63T8LExvXs6o_=pcT8P#xT#sGWgSG91 zn2#v+tg_eSU~T8&tCXEu07w&D*@Q;B`1A6`hy;wl5(j^f|8U*r{q1;0b_w!#jf+)V7~m^92))X^CrIW6}3neESy``%?}91Y2pX>3>PcJ zBoX+2@pSNTck_915W&g1v%-fwUkApcYkXnRAkZL8VHnTCUh{?W!D|F2p95&;uoP&? zzCGLSU&4l@VEP?KH4TTv#Qr?RvqHAft!+RQp>~XHj(k$^rhW-%;?jV%4K&~G=UjL5 zoa|ks8qRoT|2zR!YI3I)OVrt;{C@|r!XZ$`m@tzEkkRDCJM_q>3HbI?=g2&74o@bp zMkdDQf)p?Tuq07YZHpNUeXVw8p0hn*Mc&sl^9%u&T23@kQK6su#=E~SC|AO~Iy#-Z zb++-p+|9^=D1R_xLsTfaUvIC7x^YPOS{Oje^voY`o-bcFp0-WY*1mG~>GaF0NA*28 zl?G3N;EJkOIsew?UfZOzjar|Mmt*rh?=Gt*@kyZR`LE+&v1&xXEJ^9jiwfX&tekHT zG$Zd8I|O!MKQUTk7AZ8FZ$YEZ>-u7K8(91$&Qot^&rlo^(jPM8^<@o5u+CS`nRZ{SMH9=D&@$D|6(-@KdKp}rKz2Uk8g?CghLK&$1Clv6}v8;$E^=zgfWe% z8lWH^kA%}W1~s;%HUPEeB5LtrJH3~k1y`lL>Aa~QPjCxr1v0~^5v31*R1+#Oq#ZRG z<-9Qi@;-|7aTqvMD;ug3J}QzOG_I^In)#28VNhi1CVQ58Qgfg148}$d;~5}6&rVxf z=1D9C>X@=%D5eRg4}Y2Pp_lO|&_HhPL=zedKQKZVom)$qz`2KH*gly6{7vN1iW{lj z9N>)Gci(&fMugI)#r1BPq;idK+@Oee&i82qbt~>iay9XA`^Fm4|973yUJ02}I}> zK4O=WD>|ly=X@5+1&WS}vPbhR(Jm{mj-ESe!?0P(OBd5LMVDC@mnm>4qCuMK*R@gN zJ0M9k^4MW6mD}{FE?naW2~u8v>&*wrjKZbr(}O2GP{V(%z2Qjdd*H?+IL_pAmuanN zC{Vnk!Lx9oOU-$OW0x@}Ork|?Q7?fB_}|{!Wu(4PM-J)1la2F?79$wpGe}?>_7jRB zV$4?{GYvX8bvC9^Ak)`kKD+Pvwbm}I)lkP}dCb){Rs3UU+FrI;qN3C2%-A`eHO|^q z?@d>j8Kr;7jVpDv2q+#JfCaN4xR7DfFru$GRb95u3+F6K<&GZT9hvWdjOV~HB`os~ z6KH(oWXgDuNlF2?xvv5%&N`oOlID%>H3&pJ!VV}3hQrEvSNss?JuOb8LRw3Bw<*g< zN25g|&8gux{$UIQp2MM0(otWFKxo)WHcHh)4x4FqE$I|9!ib{#+?(7lOUVM5%npIt z6|PCB1Q`4FJB>&!D!>k6X|xHEDY-$Q=bQ+$oxkn+!-4vyqDJM+d$dnLUAz3Q`{#Tha#(H?0gg*^g7G<}#6Q}MIo8uwbZ=UifvhZ}cKsNwG{CkY<;6v{9{Ekc zE$X-;__+}B`L?g~$5`y#f>1j<0e$`RZ;?+9X`ZuIqfPSKz zvl-fD6kW?mzCI#Lz=vkOyH}|hS`Y!E`s~P9hm#C*{~MI9XvBTh+t$r}Gxf&p?Yyj^ zAeN0wydGlF-_}*WUITNU&S_$Pv*zkkJM2OihDEggzjaEi|K~HwNYC=WU29JMLdJ;s9Yt<~;P7e$(1#A^N;=LKa*Px##9#M3x8GzQdzu^N?!5Nd@qIi#yhl$= zs7|3kTYnf(LlvvA8^VXZ$WBBbp*ppm3mr%>(V3~ZN$p~X*v5J>K&%Db9+sK#j)v;` zs}=>id%f5!88XBcz0((0@64z51j7*nk?|r<2c`3;VMOz2Q5x3#&gMK9IOo1f%UOS*#h~hz z)a=J2xE|&&U$t#8d6c$n{_~a(P;Ay?Z`*HR-J6OmUdlGr-{Ve4lsidPD6kFdqP{KJ z{1YRBEDSQTEc5#WU1nq}lBD}j2UIo9MwfIqFW=@5#-cGr1EcHvbN^2V!A{Q7y(MuY z)!(ZRO&ot(Q^esoxor==pYkPRHaeumK{_Q z6?(TzD^JUaHArDTC95GNYBEC+|LHrVRs3wP%e}xrBN}33(w2ho)Q)s>yl5)k1beBJ z-@K;Tv_c+Ga+jU-dM-N@fMaPqJO5gFEoZm8N5-T1a>|wNX_xZ#u|hFVZ9=iW(qz~I zn3c8fH=h<+R4$9!);%0mk4=%}jvF(Ra=(l_%E@+5a2-b@Nj6_MYoTC zbZ$B{tA4V0^cJQ?rlUIpVoWul&PfD+f~LJ=(jmZvna1<2^U!E7t$aq=Tr=|!WQ|(A z?mB!E+EOp-=C`yxbO+(LxcO7I7Re#5#Z+0dV$#%34CWuvI&a~$5HjyVidwr3*YYFM zo(eF0dGb{5KrQ21qdVSM%KTE2n6J$8LX}H}Y*$8S=iY}ukl3_tX;F5eLFB=pO=iL| zW$X(iNsD`$#mGz)JU1j#fBx3b#et`KNjZ-imWwlrjJ;OFq@%}rTCL5u`BY-kk|+zx zV#-HoOrG0+VyFXU=#fMFz`;sF(UpY)Pyd=yJ`qKIujqG3-ENCf#p4r1(PxjIb0!2q z%zpR=CGs-64xCsq{-Of3%pFN#@~!rI6UKZjd{Vb3EF8SW7!)yZG=|C1p-u+dR$5M} zNF}pP(v2?OcxT?6Q9yKE!Q(>_JhL>`Xb0Rip4%dpM#D>H;Qk{zT`nTxRkAqr$eUXn zw*H(=U1o_nR6D(~nug?UyHNz4NIQOl+;OKF_)1x5BXiLRO)j>y73)AAK4a9-T=X>) zW!L3lLbZ{aF1u(Oh(xFWo08D4?%bbpY~r=ike!t`A4X*(BlF^**3o-(D($YEv2sN= z4TD%{(R?RXyU_F`8I_msQJinDYgf%~rM~wzJ6Rs399AnqjajKEjs%$&$-vp$BJ)Lq5N;M!Kdui3H`;nlicw@h7n z>e@8g?wU={Qc&4~vevx7+{?WDyD_SN8RJa$8TBOSaFMp8hV3b6eGzJ+k~q#ii>`Lj zGCEPQxHNixs37T>eSL&#VXl9-wROz&!|#mVA^!+*$O98-6|6SSvL!;-AdS1BIjmPD zsE#{-$5G*Z{==A{5Rf>Y9%!1KTPuVVLW`fyw=BnNO0E!&{&)^aQEFceWXK-VT4IA8> zBGv017mK%0!<3m7P7?ddU4+Ok%V=^C>vk||v0KFI&V`6nP?hJs)W5~G{11(N3Y6mj zEE&j!j0W~+t7WR zaLAlYM8WfTpN=fK>UD#$Kz-jofLr6cnhE}R`Zw%Ycv9dBYn6@`yR%uHw5xOYdd?$; zONdryv@mcp2R#YSs<~Yqbr#ckc})T~%BJx-%o~hCjc72gYDp%2Cbir~cHO^BpeSU! zVV6Fc5-jRld3b_o>hDmDZ>zM3>&y=2{z=~0&PcQ^jjiWIs@ej-?yo1p>D)_9tH@s= znB87(qE4At7r(wicNQ87|64urL$9PKur;uN=H~u?jt!U?*#D!2~h(hOcuCz7>B;4gTMlZumf_PuO}CgaN9Iv;={8IH&%oB9xQ;i{ zuVVn?=-vEe1&bxHxW7&;Y;h$rz6*>Rjt| z1eV&8utGvY48>R_PPmF0sx!@WZbg)9qG5#nZ(}w)nWGdy{Q)cRkY}rS-s%4A&Y_&c z0r%Ta%eqo&WBPm2626fc9pIZtJ@;!Vg{!ee@ZTtIkBNt2&e}vJ zgObwYY*mB1k<>Z@{bMojUXgdymt2^1u#QV z?}KDVSjOa&f)fO)#H2&`ci}G4^CJY=kJD#Qywn!2CI>c42KgmPu2H9oH4oW%%YHF7 zaph_{=fUK_rWg{ETb69Bia%9eO~;~6v?D9S2H^;~rTM~!tMldJqf{LhM{jFF&?{qf z3%=3Z?uGIZ^!j3U^)eciPfCU`wXwnnePol0_QI+0mY9=fTN7-Uc=@S4gRetRXn4$X zB9@)yrv51;yHW)Z{pWp6q09fef>l?C#h5ISd**%GBheXW7WpF3H!qw!Zt5TDgzU#m znMSV1E`(Zl1tYO_&^AVr;P*tsJfbZ=3u^O<(EXt+6pA%fo*=DA44rG^Cz<<1S#*No zT%?izEprQvs+7`$xdNXxFBYjgIi<7#g&5M7F;naHerr(7iNl~>5vUt=A%q$ps__?K z0)XMV*8P5+)B6qOrqgb0{Oh8!>p{8d0aofjfH0iZ$APX$5$vHyt)@}PSUfPOUgKTP zPd}`%TwCZu-F#2rUY+c5R8m#TI1uD^Jh>>*=o$qzcKlbDq@^_+(l0*!s1FiNlCEP8 z3q3e?`_&9s;;v<3W$ve?Hn#>B=kp+Kk*kAR6GMy?lwhj9s%OyTZ%N?+$`BTHt07l4E}Z_jnmno`Bt`D4_UF|{{*TO>hb7tA z``v=u968R4EVA0ojx4vie$rp^B*uxLy4rE#){7Y2E(c9pFQtP+RIbtvr(&An0F$DQ z@>yf_4X~1sjiblr)n}L|T36%1hN9Zdxrb_!s*tji?feCz2gRf0_Ku8_3p<|YyPB*0 z1Z#l353aGi!nq1UnTL@b_A!*Dm>!HRJe8=fs>c5yYCzT0-|lufrNcAtdV){Oz6b z%k$Um!?2NR5jC)6>&NkPiJK4=aV1QUysWx>D&M!~>*J{|G2lwJFs|{BFJ^jd{J;1b zuOv(obMh*d;^i4=p)t#~K|SE!mOuKfH9=jW8W@GTFx!lGO{bZ#r=j{rcWVPTOQ%YL z9RLg4-~fL-JG$QpT>G|-7t!y({#oJ{fN`?xWy_34Qg}pQhvq4skQ=>9*1Hl{#dk`E z&Vd@ooljcj@$A!_97LGRH^+`coCGq(!9Y){|w zfaOJV%s=xC20Vv&o~_|;t^K8X@2z}2e&p6JLN?);@`n6XNqh%QSKi0ZcJ~PE`Je@S zjb~LQ*7&C}(`lt~?G_gFrcZ;%LEfQuBtA3uOjU-F>hlssY6}*{HbWdp6o!SPS1UGS zIG~o0yXOs2#WbjyUO}6$02Dn)De;X(1Xd@dW}pSzd^br61XMefxYQsOwEeoXkQk%5 z_ASG)+7$Zb=JX}gC3{T|2lC1Y_gR!Y^^Gt^wktEPFNsQU&hfA$Wmjnc1Tq{L>t<N?{cci1i&kG;(2*ymuf^#U0d z=m&9(H;a9(?_@DVVlr2J@##`B{=_)_gD-x8JbKZ zp9fHLSlNcPx|UkqLpRhL4hS3F#r8V*P4g0h2SfGx4PWm!!;Yku`agZxRG`PEg(nqRI88?VYa%D*m!8+{S$l%0t=AN=#B z^tz44?d4Atgb#@B$qCkPRpn$3r3RgTrmf_LUBIQ`sIiyivn1Yk!n=%h;##Hsti>%I zSY77Vc_(MrIY98^+4nb~Bdzr=3pmc?*^}Ly_I*58;pFAbRMIol zYiycr49rVyoOjsM;If=CoLNyxI<<0+Rlnr5HBAp^qrUzv3*oc$dDX{%1aLbN=o$QK z(OYRuXGom=dj~SD2OtOr zi+MZiG)$8J@jG8E^Z*x3pxeOrOqNRB%6DLA&lb$CEaY7!q>hYA$`^)YWOUe(N2v}T z;^jZU*W|u7Gt%ul^g1csO^A&%*F4p@OYkbU_EqelG4gXBOCu*W$xP6XXwTi;^alkw zz>yReJ4JYS>FwO ze_NfFDM-!T)IVi3?3G0zmVPOyAvijfmzoGn9#hH?gR(N|xgD3Pxc3PK%dY6(k>nH; zx<%eUB{QY-x5Mg6u5~507ELkmYcP3B=3W9_1a(sQn((m!hM6LK1FS85-7ZuaKN-UJ z`jx2OH4CTaD5Uc6Cb0!SI&&^haZxjvzJr|=mHbon8{~JWm7M_fe8u4-d-C$Z;z0`X zlQOzn97*yNak@)e$6W;G=zQunouOviE!P>t6%r*=66%XqKWSF|OtUE=BkxL5s2~x| zu&9{G)Rr^dF%u1M0u=Ye6?f|g@3Oj6+PeeAElqmPZAnX2SBnL^T_U2ltA%-3TI>A6 z+~K$#LqkX2hygV|%ZhH{2vOs!ga}%lR6kK<+(zMu11|Du;lV5I0Y%6dO9?Nrm4+Du z{}>Usx*3w94RvFfN;eD*eXkJ*-4u#uetjmlgr_!DGy5UOg^X$wP4kPQm3=I_CVl-e z?5@T`Y#TVeL%t1P!$v^np_xS*Z8SJ5b#oNBZdp?lnXh~qI2;B4 z$Bts;%44r$WZV-)5gM5CN=lO8-rdh%5;M0*9%BwsN#?=2tU|i`YHwcmy=7=J1jREN z7p=@S2`79vY)3sidxIJ=onbunxge!CYrG#z2~tC<9y0r-kgM@_JBdT>L#DU5l^JjJ zEDl{C*eHa~Qz@ndr+cTxWm&zcTd$9N6V!^L$xCe9FJ3|MkAsNBnPP=W2}$pcGZGS= zGA@aVrb=#qm@zv=7A5z;re~qc#eO(^XSt-N!2^d)6!afEQ7Z>7zRHu7F?1JjB2=@E zieG%1UQHElolkc%dHUE)$)8U`&Dp9`Fq$ORHHwQ_#pPb2X6^pLM{5;O8uhV=^$5r;bRM<`v1-OX5D7>m0ZY&ew|8~`kIMZp1X(OG`2Rw zNpSek(I#I-*x$HskdhC^H;9zQ=j&$6KYVe?hlE1OOBL;3et38aRh=j_A-jWELu*=g z;J(ZQW)W8q**~DhDEXjqIc7h_h>E}?spqx&c>p@{u8v7K4*^5V9A(5&&CsK;OV4v{ zOx@PUXDGYn?@B=p?Mp3Xv0JgH9|HryVHyKALh>k+qaj3{<=E{x@RTShSV`m}0QBP{ zZJ7%U21+T6bNJ~k8A>>o6jx2)i5S|DoV5(-M4gyv?+TyNn5s?(OB3JqwLCdAeH{Qo zH+^geiuBkH8HT0CAgo5LEqXdL4m{AW%!&Dd)-xgseEpq@Q*mi5)EwV_h2x7itnfq& z%8IWI*DN-wg7kg|!JBEbLP{jBTtLmMwhTj&BUgG&$zC2iX1jH3Kt@kqJr4idA8Ky; z_xMQAz6GDAQXChCf)}1?pDBYh*PjyyXu&vBe2f}$Ev}EXm25sMsK1>lh8&2)1wK58 z?oa@G6?0O7(TcSes=@Vq9`%x_@ZSvgK_X?CuUBaZzz&S0aSE|l+_HqpwgPgQuGb*PR(+VnG z{8QBH4KEHIxsQ3y@5TLz8=tAp6p6NSJpG7KN2Cg+I3GkYV>IfYH#!VmeX9rTgR0`t z8rd41rm>pZj{*&pQ=3*XQ~vXG3mu8N^y8NDQX+h9J&GKhaH{LboUe>s5zB2`a-<3+ zmmh;6|Kl30{#~SdZp&{FPi2MJ)mVku?CEyC5xK^Nq}7Jr_P#g}l-S=jS}QM=X-~-M zZ+^U=>?w&LC$}yCM(g~UF~=DGn{qyx&`o<&2QOl=noiZo$4;dUTKMmDbWG(RuEdPn zg(!4W5H`mT1lsLE7BtJDu5?L%sdBTA*QZL?3J;&w-gF;VT8l9CzJ9HR!+t$R)Xuys z18TY-xv#h)iu%g^7nx=}_%D)Qr|8Nd3mJ3q;O);Hz7Xlpio?8G!}C9KPhHswnS^ag zXRvU+1_R5UUK0uPm|99rW<006d`4I4!26Ro!CUv0;DR^*UIvb#-w#Sfe-b#hdud2X z?-%dr`ks!8aS$asA5o@&Z#VcRh5sV?TD1Ktu!zoF2z1-Kh|X}{cNWS2o^%ESLaC*e z1Y+;=C_(^*xwR(;$cqmv7OrfVApX9TyyM7@&SE6(O228NQ?R|={{*DNMVQf})3ic3 z4!GLy)R402BSbOJB>CW))+{&)Uvq3EVShe!I6CN!!fB8AzIH%@{z2c^Q(#J5(9Ty^ z$S(Kz$8{D6E#H&PxcM!r8ioXNyG$+!RiH*GB(ZQ9Oz!VighHCtZo&YqB_HBg6CW_% znv1Vf4dUQs9mrBdgLs@;(NlXx;I(loj-%p|6p>ae+H$cqWR)Hegr+zYp}H~G)K)V^9Jim2b*F+Y7Q;a=?Z;Of7M6txB8yuJ)i=A=wA;508WcOGK>-bTD zD~n`+vN!wN=X+m5%`m4%!S+YxDN{Bz$Do<(RE?}L>I;u8=`((ZCH3pq)wxtm9WJ6|GcaKYZ}$QzuG=up2|@){sZtjMj3UR4{N4hAZ8LlXMrl} zZPXvX#xB2N=$v=Oi8T58_*@T+EVt-e(oz-(STN)$#)l^8r8 z{dO@SL(oc@$`v^rJ6#UUMO5+AVJU&yD=U9|JUPuo4wc5o;DFT8^fL!XQUApi#MhfZ z6Z1FP$6FJ@{utGqcoMKul_mC4)foURLLPj+++P`r(v1}y5JZJ3RH`RGgx)=E(C8JV zqv6FfWpMC8?EZntA|%33-Zf?DOt$j`z=y*x&eGf-MmQ+tw4h7bRREzGMlGiAd742$X z$jb4&?k_`I7juZz0|ui~81P}CckD|otH24hX~eC!7{=akhopz+;5b$s{tRRD9i&(k ztRD*wVGh@Fh&VSehk9$rVL~N0ELDrl=EE?{*6?~>V(hWMTTEp~Y+yc=o%#pa(N zOHQkB7TOYb!c{T2%5=`%v)+Z}rfU~M5a9r(%p0oueWS!+F!QM?oTWaw)tj?@Mt6v_ zV-_=K;%tXho9Ki~J3#WaM>%pX14K;CvNUXLYUyonaj&jyc^FUg`Na(($;H_ADiECt z*+e0pIPb{#&cy^dF5#R;B`Wzofo-LMBbqLhCTv-2ptX{E8M&|aZ{f7sR74elsp8$t zSRfdicW2tfMDLyr8?lEuDa!~Y=OxDcL2w|eojc74+G%CwNsuyH1nHm!8ifF80kJs9^o*c4%f zF-WVq>5tOW%L_C)Hqpv7)V@5$C9{PmZB**hyXR1Nv4rXNnVrB@*v|a}S+ul3*;b2Cn6oKKZMi@8}bs&$` z93Ze$;J}VTds!+xinMMIv`{y}Y&HmNc=Sng)#K9Iifun`GI3Nw{)aS_zKdWbSqFsh-Sw-q}qrsmizWlE1DNQ0akk$15> zlJK$vi}b)^a5uJwU2z$b8VcFRv{!$XK2UJi)+z>c=tK6X^@ttlU3%LpMh=HX%jk)D zNFWjVC~xScc&Vwl)#R;3@EpQ<@cvxwUcfdfTFy3X!;q}yVd(X13M+)dZNZ$q_#Gi=Yyg+m90sFBJG08I^!1x6TCg8|7310y zYWjx?350^WJyUctoPf2$rX;X$VYV^dLrfY}4(tEVEX~2e{{O5mSs4DebEr)XYg_DL zq^~R8I{vOg@Wz(=W;zi)0y^ivJ-|`y;A>cd{G(3!%19~^jG4aMrYW2X&=gW=>EhwA zQjV?-?Mz&B(-#|uf+&h3!R&FR$iLau$Ruk?WEb=#WgGRHwtjj$1SF?>`#|skuHdR4c|H@Qu(Thxf;n}pquiyiqL_0J2y;GKhs4IJ5a6gO5+xkL^IE!QNd;;6X? z-SAQ<$eZtCDTJwcrdi8Tc5MXAL}T2`^SdPCou91@#;B~uUw`Sb)Ge;PuuAveBo$cs zW&mo&ykz%qp1dw7Hcb0`0;cDD4%P-$TeJnt&P}HUl=7{_F7wOwDmWTjz{w3E7nzSkZiJiv^PtwG8;-M8l_LRo)t9BEBxZYm6bOy=%SVfMq~JcC)gNi zRTR<@m(K1qjZ$h+(9sk^d5CJ&bZALcuPap=6xu)^DxrAzyCXt>A+5onkJ8x1IlqKe zLWMk(e)3rYuzj%o0SQQ?*{I(L(d}mqMkHe4-9e&U$h8kg7JN>2<^)>*_wk!gA%}(AdxZjmMCMAkCr38gW!{_e2->ELV z?o?L>oNiETIO;omuO4bpJf_M*jM>D21MyL=b^rXqx%hUsmxt zcYXCgGlP8tIB*I87RG>}C_|w;2L^{NUk91!-TCoR1az?m{O?xv%un~1XDf)zN~Mrf6pFoE-!B%8R)kq`@1`CF7!AglMuE$!`b0wGNg4l26Chs zankULV~3B}*|4Vf{kxY&KFl2K+1dIpV$+10tNpfyW^YDiXXrKbu>x(jp}wE*d{^>y zL?JNER|g+2Zr{JEL8`Oc4FvynWhwm?oerj&qW9wE%AVBCmW3}7@Z!hNkw%L={UEuy zySu(d)9uodMw{m!$DTGJ`*CecZ*0bcdnKEWpjLm~^=-5v>3@Rsiigbf4bGSJN4{R% z96H@vxZMsm?6#k_4}PHho# za*iE=6eFqij><7Cbfj6nnsRI&=FEH+L<$?EkW zMuqkh55je@dvRdJkb|S2+AdYTg6GqeEVLyCu#U{+jB!d|U=Y=lW-yKap&%2h~SCb{}O5lQka7Xo|Oaolwe(MOj{Q6JAT=gvGYPo-DYq+X4I=}rp}92 zhNJ0-2RL6%??q@pSu+d$q60pCQ$2{%Axy5;SR;3_HX?C{#g<>*bChgmbUuDS9R#}H z8Tg+X5i%k)7IIM(<%=~&w-#twrpjq5oR)}>?^cH&N73wRv-F!H&!sjcC5u?*7M{lJ zJcmWH@nh6l`h7~zA4toWFX$EOa^7k!DsblrL2HxS?Gp54+mOi& zrzT=CYwkF84n22O;!$+~?LbADq5+}?LG|2%0K7cvb$CSBbQIICTz=Z2-;gjtCh!p} zmCajN92rk~AC{Fo%+2f-^nJ%;n93sg++9rM5+FYDcIzSx*Do8AJ0`Q!uM>W@k2Y!g za$_D02$)I*e-#yrQWA_dyRe7Ee{CgnC*`}3%ttFKgDgOo{Dp?`OS3|!;m9ObrZbKM zIX|Do-tAN-(fAO;38Oq~!yS=#KnXe|4>AeAZur$vf_7ib+Z${*Xk3AqdtseQWm?gv zfDh2D{R8CFsj=pEHuad&uc9-38POmv=>j2ZPVvoMc?G!l-e|ZT<2hGHTdbolHv}jT*O$f^D{Kk?NUX%EzlPTIfPs{R01M<8xq@s- zB1xq$>AY;H6{EVR$(O(uRh@o7cfUk!>5R0+&a^tTN`KWrXtWfs55@z#yi1Ki8%hbaiOORe|6O{tfloOq2UL`YT8AvUnmUFIzvjRsN+p;@ z`#L5H86Qz?>WCOWtjHb(MPv?EmrQEdP)JnMZ#a-|545?Ee@`M5FDu?bnCO3F?5hD* z_}E@;hZ4| znLbV%=+R?GO?;QAz4Y(0gD=@yUhoN^h-dU}oH}{V@Z~qR@H(d+yQDkf?-5eM)0Y?- zn%<2Jba0nH_G=@lHN^}j+LM01&;T((Q9-djQKHxZcBVz`4!rT%1Yex634kV$!#gnI zD|T1!`6E@mhQYT>Vgu1KSv;=O-#0G#i}@nN^14^oST@Mn^8R$lY*a81DM>CwK^U~d zWW?wK5Gvc>eUdg%;W?4r6Sj)1E}DF;$45D#2U3K>4oMyj9FVUQalc8FM0k7XH)(4C zx3Lh_UM|XSY_JHKE3~3M4>;^U<1%3vAcL(&<(|tLi0Xn*N8TBU}P=s!~-+yW{x;Q1tUj zLPB=@NkHOr6XK7#P|AH;VnF`ee+y=+CJ<#REt>JO_#CFLjI? zj|N~5%i5Ow5~5Rz(4$X;!w-q2k(A5FwMl`LqE}+R1bm6r-JD){UDj#ajBOoUxGk_> zvHk1Mz)n49bn4y|+-^X`@F6Yu{W)?=`6rK+=z#M~9i4B8&ikjtz+5K3$2kSROES5* zr4yV`#xnI`~oIw zd&H+-)UdwaD}}%ytb6-@W<)bL_v<&__hQ|aTovu6xgg~7szL6*P$Kl<1H+i6-hU;X znF5mks3gp3CmVoAsOT#quB6s6lXW&gQ=S_?i<}l1WHGDGV|0cG71X&r!t!L?t&WQ8 zh=u)ayD1teYE}+xZUH!``0I>~5!t6y?$yQt(_mtIAicEFa?-M|=>;mlHaHlV2OmvRO=K$Pe4dw`DFykUCn-@9CksM~ajb5L~zwNhpQlD%9iY9Ph)pMOMvRt{IQQCY9NRZu<)M* zt#(Q}Do1I$$ej_xYM4$Wbw_Qq>xn zw*DA`ViYe|f#5{6B|!m6B1E*uv#co78HEo>gbDtdNmEn2N^YoqUNS)Eg>3P?Z-xt1 zqLYUByFr$ZXf*NPLtCS4zcD2UF8j^zY4||0@`g^?Xj6SunqF!wfO^O=Ru{PMIq4bnC1xZ9zX(pk(-KVLn>* zx%ffVwA|H-x=Mzvx+Ahpb@JFwuiM2Tj(IV<^ca6;GON;ImT05E%YUb6At4(IFB9q> zx-cTdNcG-V09V3JFnrgd3&kX?-%byj{;b=2&T)?D+I5RF#IcIZ+Wun#TQ4y4{J#BDk8Cu z0{=4=7Zo9*H&F894<(PGhp2K5r{QdTB=@a0*bA~=52s8r{=B#Ju9pln+ll(BN4Q~U zuHBrTh1;UQ?>yBX=nKRV{X5m&{IO$A&^H?!0b6OuZFz$4k7zlg1<+<%}POk{y& zJ6!|`uFP>CNP=_QOuk>h#j?{<|8%S})BgJ)oQdT>J65~?CwZ4ZJ|CMG4p)lg|0eIA z8I9f**ez!T>dEc z>b{GSUi3x{DC^t%eV?$QUfva?;5Y`!PQ-q;_3x}m2*#YHm;uEjtOG9l zM8rDO+-_cEYPHd%BuMtmk!yEBZcgH}$+K^^=m`w`X!l}flGs7B<_u9r^x`J0k5)eF z4!XbuYgNrjOG}WzGt<48!3)K~(!3$t=EW8X{WxN1_ymnuSQDHzj|O5HdnXR!Xs7~A zm0yZlIQ)P0c!Ow4M2UXP;u?S^mADWLUWV0F%YTl_vKhtZ@H>pjg2lnxQ$D=)qn5xr zy`-;Xn(AqUjpC5?w-r#v67D)2ggs?timO*Z$eW@|UtatC3=>cXM#tevVi9BGOLx9GO36sk zh(ZTM2ugn-NSNuDgf~J8^|b`GimU8GF8vVYn-=4jeUN%2}gpE2^?${W53;B{f zs~e+8MBxCIG$O5C9Rly#t856UsIW|AbbrXXMqXmqyyO_7W;nP$vXt{n?a7OPfH9^O1WhE+~Y3oJ5?vN@40 zzLwBlOhaRIDo0i;#9c^*151rdNKObNlcy3-G^BEb1S5AUaUGWXG^%@B_)vMUep1+~G+%S4vgNLt@PN$x_%qtU(j~1R4_hZPgkTTCd zqvt5(jQdaJO73mSPe-C1jh#OXB5NI8#Z)x$yEwSb!W9L32H>(D$R{29N;5D0XfR~CA8l}(to&2(0+Y{{y5`T6Y+9KI$ zB9h#YC(01Y!@#q)*Ju_*PnmGE2#sJ#pxVv{ZdOkN1#EpvG^XRv8;TTH2k%97$aPg9 zeUk^GVRC0$CJxf#$+)@J^wPH&HcrPf(yAxNvPA*2krJ>aRa_Iv>gcTP zZPTgLb@!~o4obj(rA4`NP@5>c2q{@j6eP|A{iKLmkPfz@d!2x|>(B(uKq#DbS-_-+ zs*bn%(;euoUW*qSI+vRby1UU!+B($fcCLoZSqqUg6kC3 zeAHUc5=guc;dH@12;yN8&&s$+yZ+9&sGYYZlEaPPR8%1k8&Ex-5n+|v?+EYdUsqnD=L*Zd%`Oi{62Y=$RH-3~h z&nhqA`J#wTfI&d*l=C(`LGzq&F*svkVa8#pSK?e9^FT%WROO} zA&dBU~`>tX>vf52x|YX+i43**o)5Z18bj?&1I<&t6I zub{@cx*2VEcXNHdFK_~>qhf&VLu*~$OxKjW0F(Fc^y^mH8ozvcz1%*Kps3?d)sSf= zycZEEus;VN4ZZa7Ctl&?fUI7QE+UR8*b6B{8E}K|lWe-GHOrdsR;oAOfSni8 z@;Q`2Es61k5e7xl_ZpUMX4zD6Pbdt4wX<6m{b3|O1ss{Y<1?nFoVTOH_3LY*7Wa1VJy zbv>Tk;%HNu|JiRJan$ zrAT8@XA({^srcT7HS%exJa&xhu3o39NDDiC;$?#D^7YLFWq-e<&<^`Jd=n>$OY(Eu z;LMN=zXeH9^NZP6CyPud=alwJ?cWQJ}aV;2P6B6Ha zth~Ikin3>3usxn=1}j+{T(h1vf1yZFuo^N;JMU=)mlZ@g^j2}ZR0i$k)u2vySG7ZB zyAJNJ0+Gt*z=|g(4(EcbjagZ-XT(YhvjKD37B+l$eZd&rP!(bXQA9rdlJ5XfTyk?M zY&Hl&?lXUPRw%)Ei)tLu33xd5V)szd<>y>?$vc?xVP#E;$Ax7hC^O?)12gEsAWNT3 zeO;25S;LyQLIt4W+z>iOsZ}E=<#{SxvRlnGLr8c_f(Ae_J{OY#^xXQwMvYJ*$@PWe zWb;jWbpS#SAcSUqn?JlO5W`)5?B-;gbwl zXV1E@-6G~{PP~$Ccu_J zdJM&79In15|gp<;tVP0)FJ?A>d~@G~^|O{{*St41Xy7+eIdzya$3An7({Zhqw_{lt zdekp|&rQZ}2)D)$P3j9lr|0``I-+nfx@9I#e~L8* zrABi=vzomvVkvQb1nn5KWY<&OR!YJ*YpQQV(jtC2x6C}$&qN))n3}$1?3}_qX79N{ zK_oyizn69Y9XoT>q-U-35d-q8PUPgSU7zr2-XPW<`}>b}7#~RL>biDHV!M||)HD;9 zW%EMB#5^FHKjr~PJZbD-Cob+-K{9d(KpT8Hv3;_lRqWuxP-pae+F-`{Zs$GeI=g7I zZ``+n(38LD&vXwWfN8EKgek33#eFU_8TMm~`|Eow54lYv$Qyrcu1??ipkO=JxycO& zvF|aK))aFhVot+eC@%yF^8V3536*N=$b3!6EnD5T`2*V3JnIfGNB%vnhwN> zN}K4_D6*IY4zids7%wYVAF3&WNB!mkZxKl*Gdmj!l%*;ykkJyV)gCUcA0@iju?aXb zbAUfBk6zZqfnzr&mcem<1M>*ZLlV)PRdTM%wRXaeMlecsYadm!V-|V2-E6_ zx*x&{MQ^V>hC6C#j$=|xaa`%W=fxfaS903-<q(XMd|hb64|BvRSSFA_?D6=YnXpq6vpwqq?Q>PzklV$(4gR}Kh#kgLC0$G9u$Hm> z?OFBpez<>lox*43Cuz29Ryz@|>GS1!OG6k7J>Js`7k!*phCp-t)%dOM{wb zF;_%eKO;%DZkC4%u+dYcv_phYd9n z9aJl1AYtb?GF}}A;(k(LyY}QN!6|IzKhm@Z&e00Bg5PBy`|0kbadMQEZN!0{kBB|X zoRx@?8XT^6HcOqruJlekxsDFm{+e`o>x@DC;8qEboJ3#+H%0OX6xp368%ErchZ{nE z2End}gQ5`n!Nn?yyhbNMmZE0CC+6V{Q|=Z!U{H8zRised86&ceMy7^b?#yaz?}Gll zHxluu?P4{n3hev{Yrmfg7yAFW^}=u#q*_Ymbn3LY4JyUfj}fJo$2t7ELTF`9PLPZc z4xuN>`l;@29`516fNWRl_NGfep_iwr0$K{7nKEukhBK%%<%bN2dBQObERrLq?6;PQ zh?3W!Vtf~1k(y5|_*FPo7bY5Y2WOM68YAh$xFY)2=H)Fb4(1|Bk}PX~ySG%xaFPXg(*y&yJA$huqZApB)Q4a6meJ{db!Ljx4)V({lI zPtMyx*gi9+SmR<5TfwyhKbX7$oLZV05~{P+_xywQlGA@eBm{4BAS!y2q8Bc zMa5+~`kkIR50gLusw(DbVbM`1n!rRwl|Of=m(Xl5Pzrv>?~GE~e1IxfvHX917a^tvW4$uX-ptMX#+o$TzTZ_&yIowkADKLZim-J=AquJt}y^H4g=k@D? zj!t3;Ym4h=f(Y9WKsFzY0nFOhScG&%(WIChdZ-v(;~%vcZEg_v-B`1VRkMdFJeqP;>#7eq~jRi=~lpSxS0(^tY3j6;cYk8fmKrYxIUu57TDoFRz}D!U|}3 zJ<|I&qQe%XeS^U!Kw+FhN?`IhxtMMEcVLvcx}Xk>)R`th@Jm_>;lsXo?$IJ zxS?a2VpTcD>rC9`hw*t#2xQs7)XdiMiA;&OM&fn;|_pFgR!nL?oP z*x0RYXh^Q^e6=6cd(Y%&D^2RS6$T|;Yf$Dn6Ami=kYq&RsiN`XKI8_Cg%u)l;jC0a zbm^3llk2w6$w&Vzd`AR8yp`o?Q;@UkYEaUa^EmMeSHJVRQuz7Dt`!!}o?KF-?9cO+ zt-JXeS1P3^_td++0M9`bZZ6(=h~~4pwv(=4O zylzc?ad8OekhOs?hJ9D1&rpNnIVP*ArIz{4AKRQ9Agk0tUe3OmBatdq6&or`@IKNM zsec3TVvIrj!<~bTmg(O|(Tptr8N8xPZS-FT%O7Us8MrzenK>{tu$9X*fI~*EO#s{P z_)PoMk8eHFuyUb8^^MCHS?Y}V*88w{r{{wCO`MSX_ucV~yr~M^K7;44E@14L4~X=z zDd&ILZZ_YiudWN0PF~pV1%BL>F~`?_+fNUMxHr(XA2+1Er=tjkOq|2IY8IMm2Cm53 zFTX#$r5*p}t_%}EgxP(Ve$N4?8Z$@IdP~>7tXX~@@Cng&`Y-2W0h0N}*Qc8(Fo-f6 z4o5h-@97V@rW@zWyzQyJ@-#R`ho?RGPAL<`H>)J8!Fi9#wz7s;Jh&D!Y-SC7U`aCYyFTYv^CV zM$(6etN=5sxI{wZb{c~>%_TL?B2HZ51XA#t5|R>zCVJ?BJ;ITpentiqg^_SGzC<`b zw{D7ucJH42L9X!l<#Q33p}_vW(rS9TQr@Z(S)GXLBwv`>s>Gxdc$AzxHA+#<~kWQp!xl+3Ib=0gs#E?O?11*f#H4R4a67}8m zWq`*vc4;CFdEKLei(8@AhHTaqW3u;q8@FZj@$CUpHI;-K#eU9jWT~ofJ2!JK!VE-q z0ox%x-)Zs;q;)k)i3~7x#T^Z!oNf5l02%Y)1g7D<6){62w0!bk+MAHi$o_W+8m%IV zaSDc5R~gSRrY)vO*Z$8kiSQv(f>;BmlK{cYr1N(oY|HtzE8(KPWV9D+szwgue2$pBJ&K=XEO>)iOy~B&Sq#Xc3G@&tRqf9O zV&|-B9q421_rX*mjN|8I-90LHaJ(9LM=lW6*&n7 zqfY;sUt{s_@$A0mP#>!L-KQGN5QDSw$J+1vGQ9F8$4V0v>;QRVNAey65ETKFzLQbY zn*aa#|Y>@d8HiRy>Khh=5aHr97)va0|A7Up%j!O|$@fI^y@fpU(T#Zn|1FV=A+%p_p zaBIcD)QMR_gAJRmURPos)#{|hy*o^5)%}A;zUvn;E#BTqr6d+0fkGN*rx>=C2s#lg zj{5`Qoa@SBl@hCzQ~G&ac-SFe_}je?+87$sA*Vt*59(^W+t=jMOaUVkGzEE+;gH!rhU3cH)OMNRiFD;4ify zjER5;WaR`;zgRYLB$V<_=ZhvUjGSPMf*PbNsJq}Ed8=IP`&xnP+M0bO^g zPwV%ptpbeeTE`0l-{9?6o}YA!mQ{zz#9r+?)mSd?N41}@iLauM|5Oux*hT;5(_y3i z&-&0o^l|Hb=9}!A8Q8>eG#DLTU0mlqPXz!IA@uP-5Gx@0*J|?g^8MlXXEo`H=@y$Pep~yo zd8>fqt+3+?YKr}VymOO5^vlCFs=rYstx@Ebobwjp=(DdO~{Yp!zVUv zMI4PhFDfUJsP6}$F9`_86IM1G$rn<>Ett*-a&}?hE-+kMJ|n??O}A^6UnxN`qP((Ft)U-&t>it>$$%?1L6WtO6qkK0h>&L7bglbZ&muQ>gJArrcf>r3 zH!rHVoQB3Pz!!@t+~&i^q1pfqM6*EpskGJ4;DC>oz*+n{VpL42n^F>Kvk5<%aPwi_ zJMx6&OjXH`0VuEH@d#c79svh+4E^O7h}&&blu&+S+NKQfvaOMOCG|h-E2t3_F*-Kv4Sv?4!2Gu!%Og|yeH5U zg9_3vRNAcgMc^Td9i!}FH)U*=VA@A8MDA(%Z+k8ES?oqSIFUH@$y{^0Bx(w0PP%9! zfn9JpeNYMXAhNh8R9L-|lIh~v2o-I)QfpSB)0V(}xSDyAzK#!4d%#rmxiSFZj4nn= z%>=E?Aa?slGu*z}RCdr)ypN)Hvx8dsEW0##Xc0fN5t(Yl*w3uMDs#8w7QO^W^H*h$ z+h_ZE{u)MJExVNDGf~tzCI2!Krp}bMb&{}T7q0DcL^AkQ@W-UB0<8rie1-fi8=oQB za6a@-!2;%v9j+-CKHf6WToedbR>h<(*v#w|4gCh`W(Mx-%?ta7yPL<0jo#V;FRSp^ z^K;0JKQEMl+N`=N?0k$*u??(Gq-=xvunA>g!9)?A`ty@P;F9&+FHP^4cXJLzp{{lK zdtCH4xYb9rNX=vAA!I6I*b7P*a0t%wJSP$hjOJ^vK6d01>N*!uO#?)OL2{g?04W)l zPdhZWGcDrd?>8HigHH8EI&v%)^J4HgMu%=rSV;Gv@Y})=j4=>7un4prgh^(>7yJ@< zb;g@G%H`(m6p8)~3Q=M0>q+M8L9I^}RiV;wLKmd!I?8w%;i!_09QgDF=4QXv2#vh} z0w^b5csX&7M1NhEpWg9TT}<{k@;shE&$e%1@Zj%fYTWE=j1cI_$vFAV6syNpgO!7d8!lNT)+3&IOu>&~{Pbp*&RQBP|E{byiw+cyx zqzN)+gIq{PvZ60e?)chQx7qGzc+s1AQ|w{ zoXpP>C9jlBWgO|$$&alr_4NbWTV4DJ@y)fC%KE2M%wtITAHn$b704_I#j1>|OHSx#@ zopY9|HGdOU$}JR~2SV04_AXV+J1c=_?p$jUOuZP3hw);WF$d`qj_n&bT-dBvG{6O0 z7}-mySanph&)2#q|3N2<4rQ8xKEnB(h)#L5)&S*pH3fa)ingV5&td|{sH3O!d{V<% z$`v5GeDP$yRx`I739ddtK|*r*8kbh!?SMa*lX@}ddbX(e|_=RR}ssUKE8IQ_wWEQp(x54+sv!y!z#>~j-W(rYopDD`(d zKuDXWPjBhaue!x{=EJVAw?3Tc+3O{P;Z769yjrB^r%~4sW@3tk=Pr z0SO`pgIb0fVYMaG1L!0-HJvvxhe+KAH+Q}=vkkl#q)8y^L|v`FzupW=BI;t^OP48~ zv=I%TlhsWTP2*TJYh`m+`5SmEetfy;0oTaeRb@l6Zpl}#ZW+i1R&H6^PGHW2qA{VmdXohe$T6E0Dg&>1Tox)+|Eqw)0J%ujAPd-|UA9L>o&OI|^#$Dw5>@-uUn z1#gdEP46}=uA!=GC>SRG@Ru1r-j{PwbhUlM!J$Vv*tf$L-=F$UIV;==-uJ}(E(eCMbEF;*?hR~- zL6v7S+})0-vy;&GZS~?Y=S7JH@w3T`-&agT)HUjDn=iee}bdYr- z#IMM{6`@V2KKNz)K!5kjS*6L34Xq zDVxB6pdmx6rNysV%M`Qf;zHYZC`q6T8XqOe5Ky$w&I#=IX|CT4%QnAvd!lgaCUAjF z7k-+)lJ$po!uVopL)}w%bG3H@&Xi9D@JI*>Sym+?T%8>1DzH8B;AvO8bbM-;$cLwp zsnB?#3sI@=NHwGR2Z(1WBxAe*s4z;PS{nMhIsco`{xLFh(X7D-u-c-KFZFGF!l1pm zS33Ko1O_}r_uSrx!d1(NWm;vy$aN}F_2J#s+nI(trJF@ipLwMr%>tj!nI3YRCB=%f z)^^UD7(U^C-iaKQ<#a$P};(Em_cYqi7g$iyPJsW4^w|UMzZTyrF8?c;B z8xc&{s?>`m6?H!f3o*h}v>GeG05@%E6Wx_9vg*0U(8O5PK1CH! zJ-(|=XWLBjl)517aFRg`ze5w_<)LF%XSAMkzVgJk!i6ObSCLgMQNhqo^vwvnVx}b2 zk5-%0SV&-NcjbC$7ARr=fmRZ=St=JTZC;sjES)n?-vDVmBw>{0Seo_0vKY1@XoLPJ zsQzU^d17=uTsJ+op5eCr%ydz6HH~*}DeEn&k*$SW{mi5i5cd#PU^nVDrMfDQ6)G%q z5+k!m6e-Q=ew~bd{))7L21K;ghlE-f_iB3QSe4^kSjp1#`~E~F8a&41k_?>YDT|mK z$U`aJx>ba>tco+!OiM2&7KTQ+HG8_Plva(?Q3GSjkW=?T_h3$Vhf)Zt?PT_M1R6zq z?RJg3?ZeAA@HmEr?LQpWtPKBS>G%J%X0kH=A8RJV&&2M(p8ro|_@er@4MrQB_p=UP zF3mEy1DgO$hyo_`0rli#IOZQhvY91XnC5~FHYZ8}Wq-{dR(Qjly7Ivg#yD36Y_f6L z?guU#!?vv!#&Imakwl(tX_SQNU=PtB6%zB@wal5`#7t8^&`x#IS~do?5j9?3LAf^qKl4)5lJV201X ztdXp#W#~}!d6^=`>?QI_Mepf;1yx)X@n<0ARIrJfSO110W^2PC=ffQuCWk(20mYe% zpSC?xbjPB#qFWwBcsBSW^V!TqiAvJaxEqisC5l1<&Yu3p%rNwq?6S)Lg`ax>SG->1 z8bc?d#%sXf@^wP$+=`C0#!2Nd!lt>#+1t3W-dr>ar(||76QV&jpua+Yj>jNvpD4D3--Jo$KUseoX zcE2dxh1WUS$gAJqWmy$+G;lY)Zs!#S@l3btb(@ZokY9^|JKn3GpE%!tTZfj0Qw0ZtH9c8* zc-UEA;7g81=z|psg@%eFcPQDI(Fqb9q7+5!=!Fhq;W87|DV-v-k_)QBpf{iA?@uol z4{uKiUB^7p+EIq@e?qb0TyI~FW$tmbCu5Eicq9Bw<|Eh?IR{<|WkjkE(4;x=1W{mF zcMp!+eQqv}j)7po!8apTA08GBe`cz#Zj6y7O%0M%GNhe z6rST}{7ixMB=R3DTpg|SXzDy3cMY#(rl+aDklL?{8(0$5Y{b~lzUDqxynI9>LQ)du zU-6W}_s9SCh$4L zVnxXU|3|)-P?&29NsKh9D!BtOEPFKgkosk6(AlDGF-5~h>!*9L-&4hsq2f9;j8nx~ zpPxS+T=aDI42GWLppbvc0mimGu0*~#YpVE-r)0X!c?d1z*QA{7jzsEN0J(7D3*Eba zuU75Ym_P1Q3d2x zgtTEE*t4u`=sOx{ecq!U*NE6_FTjvN3G9Wq1>Iah7IGhu(S}4gdADLMO>=B=J^jU%_6hAm($FGm6EP+eIVPi_@&#|D^gE3- zd6*`oqH0p=Ime^|_Rl1noS|d>kzPPK$i)73pdP^KB<-H@PZvC^DQ|sZ%wUBiOb&)q(U9?_1^gGxBq!09*EjUhog3})^nBZ~@RhrM7 z(tyIZ) zkd2Z9{T<@+rkErVf$q!>53jyH!^;_{2!29vBy*0#Ad9E85d#CB5fWh`e(+lkV;+q= zKq{bWUK#EhqkhS*2O?%_m)K$4K<5>nQBlo1w=iN-id&vvl)O)q<96~ z2+TQ@VhH=hiOJ685PgLCWGPRXJn-LTa3QRK*ig6b7^PgM*VmtSskio-VuR|sx@Ec z2Gtk~L)tsrLuKBd^!{?9`7P}PtaiPlmLMiisTBr|CVSjyTa#h9kC|M-3KE8S+xI}< z7Ir~NzcuwZfm9ghoiz1WY=tnc_N@R=g<);!Xnwm&&k|ZZw5UZkk_XKY?(c+K9xd{d zDKx1I783U`E`gWkdGp0AqE?O|c}VKi^3S;asvs7x1p+&DUJd@VZ>UmtdODvp?nt)z zb%XJk*j8zRIqvd+!Gd}v%G_dyzZ!b;Jx;+Oap(5(YO!7e%j0wFiRIl4&Es?5Nob1e z$}s|idS0_#BcTNkFqT!}1d zKv81vv*^h}BFnHAO1CDVR~ST>89iN?M3-r*{HgzCE&ZT+(ll&3TrK#vz0&~R{!C|% z0qTF|1qm|m6TF47~-;|5MK%`KgLt@fOAOa%pqi+o;w z!6bv#u3;S?*CSp02*Uqn)aaC;m&Cz(6y?&^V!wp!SLZYRvI=QMWn2Y{aPH+#R+EnP zJ=`KhYlj_**QpAYZ;fKoi`QTA3<-o8-+D1ak$F~Qo7fzv;fpUx!2*>VD!*FCs?c$Z zf5!ttQ~6K&DmKRdan<_YZbo`qMwb8RI@P54bAvRx$5Pa1Jbqg zK*P#p&V+`SDop3~k^04I50ma~@+LL~cWQF7HK&x-om;ygK>9YTfhVmKiRcae$QNoL zH%uqmwZpH%x6HCFy^poLpGR3@f+9~^9F+l(ieUft`uy;D;~~Rze^w1hO7V-dx=EfPmzSaFqL7K6kr=p0R8I&% ztX*7QFK%ql8SdtAM-Q}vs;)sS^CmVo zOd5p`f!IeQhHjLf$Y;Lmk!D~nMNgif5kO3D4&Ov(qv*c>=wVYv`b(V<8r%(#D8W4T z8MJki|5uxSsnhiAd}%vKpyZHb7ZIangxpLMAHj%vEu;Z8+98 zPnQVVu%CIhCN$(#KB$^&aLJ*O%N^Ku!T{d8L2U`*Fo>-Mu%|CSP!FDNkLU(kZj84} zT{QL+v8;y((@mKAu2j^6OelG-aEoz`BVk5^rFF0gU`#!C5ckwXZueoHCMxf7y{3gK zy3^O$xLU?hNNvn^k|DRCB7CGMt#!fMt+|sT@+3!4vFcHmB`Piuz_E+=fUf`|!9`8u zAd}&$9P$S`0WTwcqE7r^O+$`k1px0(Lmq3`q+y+ChmP=#7}LOL@tUkzv2RhWgf?DC zU9D6slt9vF0hurG7Tlnmj)%7?2hHjxVpZQDrYc5b@&&awtuFe(zZzbveL&uY zRWix{)MXb-z|JA99{x-?&s><{3J)pX&T(_Vcr2*BL&#as>$G%d1%BjE?W+-e1!f;_ zhU$1jT1ND6r13YxuF$F?EJ|B1#UcFNKU5hfNwM_pAeqT4(`ae0ca!kgI%KuA2t3vW zwQ=XUh8O_y*9$M%P}0MI&^o}KSpN>ii^QFMq5iZ^)xAn%dJ+1|@t^4C!Z(zcX?1m* zc&fod~BT4@+aJE-GkpSubifQl)Pyb5oPAme3_ zwxgISSs*sc@dbVyWSrGXDB}7KF6935@(Ukopje8AGIN|fMP<5xZkFP|C7!%}Yz6ID zMmHcxyWezhnmaBAd5dbhe)#%k0Lf-l9@MqkY-@*mjniFPGOutg#vs7f-!_Di2EwV? zP|55o+*Mez{hX?c9tLFjTP9F)lbY$`E5>K+HA~5|JJbzidf3)W!d|pvRhLeX^ePTFnMVBA@(ON!DCfbV z@4>r9!&FIs-|xt%1$#55RqY38ROiB$(=ud8&e-B@T37V{3| ze<3C8l%>OWN`ZPBVR(A_WN$NH5j{_j<8p&Si3i!vCVyM8hlctYjZ;nCNA??OgVA7| zGpPzVEYO}O;m2xM90mmCpC6%<&B2DC2>B?mtat>lLQ1C<+g8<(NZ|19mn`kxxXFXNGxb5L062f+6^e$-tadc!pu zN7MIegVarM3)yL1Qw<|wDP0$-qaJg_@#PQ)E2`>80i@4QFiZ86JmiSaVf~;J8;#{g zK+?TI(vP9wR&hrcipq$-I_Xk7Bv=Rb@K9&s)K<$)X;D&PFo0K;3a+3B|gI}1t?=CaE@de238w&X4;J!6U%mHH4VqB()cWYWilon*8^T5O%%)akgJ<|?S)0X?ZutY{^p}@T< z$4et;pQO6pg{t2w7$VEf?9=BS|I|h8K0yMniZ@Ci>P^knq31Wv3%$x`e4mIp+xt zPe6MFd-#-})!HrmpT{drn-z^243Xuh=Vpo@kbK!=nrhLia z3uoodJ!Hy$56}1Q5JO$2+mDeK_U-)b^=Z3Byj@We!)IoS)@Wjv$EQ081DBCu38zyZ z>|?iP8>Xk{Gof1jdGAH^t>AUHh6l#*z{EKFc!bkBatZjpP*1%hfG)etmVyqp+o3v6 z&2|6^7S>giELgz1gRQPLf2e^}MkUcrC=n!_pz1H~jOv%*TnHRtSG74(wed;0eqq^U z^TaPc6AQ#DVIY9h8TKskbxv&W@h1*%7B}kX+xr1V30}JPFvwdjO+h_bi29L2=?WME z9-m5aS#w=|;})5VrP3zdIXHjZeYtCdLdR$^wz|x1Y?DBiiTv9ybz#!#G!P*dK8+~< z;B~DM;bq?psgkAT5Sgk%!#T=OA2}l>TEVWl;LOPY%vZCP@OFd%7!WF2B{^y z`7{Wb>{}>fKOjDEJd*BG-KkxNIN_aeJD%H;JL7Grt9IT4Akuen6xM1~t(=M3zg*Wq z!%EMZJFFTgY2}_q%P5By>@6-+B~Pm^BNrlucVugr0=$ite%2pYMqD$n?tDrB<_wal&rdiRArt zx~;OPiXIls!DXk?*@m_KJEpp1=rNyACn7O0IZN~v%&JfJ^W$@8hJ6`_bW8nuqug`rRaLU3)lPyb58YjlOQ^rEV#Vrf9Bv=i#7 z%3l!q5i`Cf%XgyZFbF@>Gto&zq07O)Q>7!ECSuGCyUeLaD6+k+DZWNynfhDO(3Rwc zi+P`6?=S>Vw|pLsVyKG|{@DX+2jDL7cP$-}nmP(+NJtvZ&m@e~RsAT91X(3F=0+{iCPsz_5<7-Z zZwW$VG^tGS_RfK>qwYBYnr_cV9$+M?&B<5V_*??}3NTr~{X!=Ckb&5=Y;8pxKmWo1 zV(cA*JBi!w&)Aq`VmtZ8wryi#+qP}nw(W^0wr$(qJoVq*+N%56s{2*<`>yUj-*cVo zb8;Fj;+&+%fkj2vq|zs-NyHdHYL^UH5c3CkmEE`w?X{_tE1izD{{qj^q)0`n^G;uN z?OAr4@U!u5N-Id6#%g$5ar~2wLqrQ_;ONggHIM%T7&Npf6_@5U6mSE-J@A8qI)gts zCT)X2`N@F+k9$Y}*2d`KSaPNiy@6(62`Ii*rQ(hRxowW%2`=o8zQfswMc%tGk3)MP zP?DXstynU>+!0Fi5DInYy`f9oW_Df)1FCtFfRW7lNr|D9#H6dAhPj|Si~hx{;;Eew zi}g$^8HLNSjV5)L;?W$)=^9$58_!SF$?_uV4N@~Ks90zZgB@!{51inbqNkaQF3)EF z)}X##3Y2clmepRvDuqxz=XkK|km}Sd$M(4y*Hxr*}6FHLm{ ze|6wS55+}{e&tqk8VP$w-Xat)8R$P%o5eV}u@L;#Fj^a}_thFB$jS4slaKKB!>F&B ziSz6sFTXG((6V=a=*)v}#Q0sn%3?gCB&19tBCW`LeNM_(`K@q{{~0e%clT(pQ|7Xd zzLI3dd$D0#Yd&m;cvc`@gfqB}8pa-|pi^QR#Lc?K%t=TNM($YoHbs-P0;*Bb+k8|+ zDN_eWVW9xCA1FFsN?}lMhkg8)X{OpA7;JfEOZIB3F3@MGzADCq+Zy|4XZp${{h37w zhc3rS|70BfPHB%bhV^@8j!$jh2sRqyF(M!8drbB zyNI%;iZiLO@Y-3RaEXM%<{&Kn&+Y+ELvB@<|EwgFANMVV z8mqJrpO4Hu1M$k~NOQ<<*jOYS#A0Di6?O5_l@%??c$AZ=4JJfTZ?gM4RjH|lyv`c; z?zKHasnPJWFIP%+4+(>84%N#6qIhPcMaRjBadm}RM!vK5r%MuZDquHO=Ma;3!eF0wjoKF$k$Pky4g*QM*)pK<6p;*MjsIFMU zPT$LwLKSoyV#!Ha&~QJWmBe$vOb5iyTxObK&*moa7N0PfPk2P#ks}J@%n~w`)(DXd zT=-GA-gP>Eo}_AQG+sR|9yt*iiJZb1>`Hus09B1oIR-I~$45)y8l28KU`vtDjx-#F zwX1So zoszdvm0JeK89)$*(VOJ5EIm+VP{5OYx=IwvZMr7{h$%7%ND5KDVFU-28AmX8A5p{$ z+mzbAR^E(1&4sI>T)8nZiwc51`yJN^@2nz` znU$*(L+`WeJCS3(qVmySm)})lP6_iWvc5~)dg@!oo;-wo2zp`2P*U&~; z1}&~=bl>&mNwz$)eSWdrRZ(H36UKO#@^4%rJ_3h#59K;TOH zVajC5Ue}Du%kOI5vQ6zX`9eG!=K*7Huw)YDC+BpVUp?dEn+1C28H|sx8t?z6z6nX0 zy{ZZjE%&4h9M-GoL6OsJq9eO%P8_PDSI(84)ZyXQ^zjU!Wfn&?&*c8?Km9&t{wb#|@=bqHG&hu>z2swHmBi-a$MR*WB+tf(Fx&m? z5V2-1mst+H?#o{)xn22Cw+T?to?ju;L%5`wuL~{n7+gQs4s8GSNC3Y(QqhUB>}0uTi8oSug8xIbvFK}}G?kWlA4dn* zm)Y|jv`m0?Rc;ePN6j%iN^x@Q@BR6ap*L)Q+xpA?5Wy$=3X;0eBAljSyGYA_ zNk!0C#k*kEXq0-sWdP{Lb#Odwgi4A{~j%Y8OC&ZvR-} z8LzC28X0iC{RnA?Mvk?8$cfo9k65EZ1xTqy%vU{2$eXjgZiGGLx@^tn{4l2`tmC}M zG+K2G1=vOWj8iv@Zsj4{R?p*dK3=-5|MqZ=f*k*-Msz5Rp6&ZcH-(k^dUw0Gqe8R8 zKnbb=s|KyR`>H zfwSK1(V=k1MSP~WkE%|3{2s)n-R|_=-pc)Ag0(P;y1@(e{qp#~p+RB&>Nq~%mM^al zrgALjwY|eTc)`@sgci|*P(*BT`!~fOBPtnL1hA?wlj94uX2X-&_=$Q~+RXDYiNE-F ztr(A6q~;S=0~OcpII!F#q1?Q7AXo&A?0%$-npx)MkmgV5l?+U@VkUa=A}H zfN3=M5Y;x_cNTPVk102!kFF@Ax5X!a`A0_0F=t5KmfVQB0}J{2bXBZ=4(9322Dr5L zzJ3;xz-`yNSrs&~P>^KjI3umqpbTj{k{aqsKY1kGu%--A-G!N3B|Ln(H z*!h%c`D+dT&rUI6p|(IO|6szg#Zl$^@|P`^I&2K{bd(8>6bil+3J=Hww~clacfeT| zmq-Zu(!^7-!(b$S@~-C;QO8XvkMeqx0=%qWC>L@T#;Lku)ifX!oGVwq@@em0WZ+27&rjiIU=!> z5`FUM^z_FFN?#saj@m@kQ4<6O0JrQv`YP|4&0O@9(AlpHai7df;Zzfpq|Z;1G!vnT zp0qFN)+_(i|ycXjOPT&l4#ZZ&u_i6P@JWU}}U$449HP zp%Ux<=5bI>`*AP}X4|3rCAlY`s!VAXgCQz4EQpR9+LJ~jFBhseEzg4+JC41UhBuIu z>R`1gFDp!nSL-Wp7(t?qHi~OEUIM4HPzPc3DOW~HiY*JT5cz^BT&cWfTfg5GdD$+;%6cXa`O3+H06RP8FTCB3l%{JZ%f;>{4 zq)xBKn$|>}s|C*C??@WJp42n{D!bm7Uh0KK<>(IZ?*T_;h$yY0PIFUnhfzm%KvwNe z-)myF5p}KAl@nbKd}tnx?Ymbn(f>a7LCATWJ_zPJsPWOi;65Vryh{zjbO??=D?o{;4g79yaWT zo&9YV36gb$Q}~V+tdxJSc_m-u!S16#tCh*c=df(hu1Kp5D{|^o2iDyhZhox90j@oy zr5e^d96X+Vx{IMC_VBZDD0Z4`BV zAX`x-#La*utla5j$9GXP#7Ltc&X;JR#NMIJ5S5)d?%SM~I~*=m1WKBP&)|7NO!ieldG??`bHgjS!Qb0iPZ^J%Mjd1F9ZEGE;Qr;nBF6 zJu&&4q82iW-%c?W4@^4b9RHDRkCdMk_06hlq4rL{YXRv)xC<;Vc$n!{QS4T_)(WtF zKj!j~p_T)rg5r=q4Bet>PpTA*-qzf}^c5o-8hf5|3+B(I@JQ3Qk6VI6jxAHXzpx%^ zr!l?^N?+}p-AMcbWco@o4L;?PM+*gs!9=Sg#{@_9$bm z71g*%tz$SE;KdU62h3qh;DrX3CCNizF=j%pekMD9_yQ~QNBI743XJ_f3&|OnIQ~1L z|B(8q&B0Ip_xZ<~3^AeE021=+G+pDjVeo==fMNVU`Ck-(B5bpBC(D!oO(t^WkXkKX zWRlI7xzoJ|XK!v!&0w_Bmfyh9rzhwg|2UnQc~gl!&=@lFHD3l_PO~W0vO4WjhBz&` zuV;Ja6RdwK+uwhra=>eJF@#U?u27vlMxDGQw!0!%1kb4}w4Z@3oElI=lJCdww&dB_ zi(_s-6t;+{N7XA;gDfY)jhfNY^3WbH_D?XB*Z^orhK=1 zr&teYIw{>CIMkw+jC`Q8iY-{{PR~)=%TvqDV->waoDheivoC9}l>XwgKres8sBWJ{ zgXLpi9HQ+(&_@ue^N*uYo&Kboy(f744f+RV!?50IOki(0Nr2FF@fpNr^5Ii|f~j=S3l%l>Zr^ zS1=x#CNjZK*$Ww<=QFj^o*-?F3<(;{8%}wgq@&J`2Bnb`MeH#8oceXTF}Fv}_8YER zMU}ZQLn`JH3*>|!Y3kRBxo?*qrU~gFhiomJu;3$v`HpbMIblqq78GcQ{SEg?j+cb3 z$VBGdV;Lk>{9IMQ(O95d0#i#-)A9dY1meB93)DBKo+~rWl2WbGI2#CUC?4|sR6_rt z)zvz^%!!2bo2jN=w2!V{b>0z~i<=pO-^Fz?#0Ti%r?hhDi`|jM(2k{R!s)+*=bY1D z{mWF<$*Vp}2<*&YUV;KqejYQYACNGMZb28AXe+`@L#u~!*QgoWP`v4Hal@cO4XeJq zenCiZBs3XlQj;`YH`G2OU49?n*_OdW& zgL8IgwcOMomzL+0=lOsqqL)lReXH+>?^_h&k@M!UA`81i;Ai1S@1<6MN9r&qn*tDj zygC28`nY+u5cDnwG`w9mmy-!NWBqEsi4&hsDbpJW{SSoG0yB%A-0hg!bCO$YLw+_I z6rL~{bSqhq{{fynBa7zjQ6>4v=wuU9TD$B@6wRD>izt|p7X_QOvWwCWSs?O3JdFWp zQo{KyZ4KZ*C&2uMC=bVF`ED61E=-!nAlubaZ*kXK5;Wac1ny!47X!R9e|C8+=eau< z(4%>U_>d&^8Z_0oL{4l|M{(3yWRC{5daStyhT&JnwAPE}8v- zIbQ3gaHX0&#)_~ZnJ2l9*lz(Txt4CfU8c)L99)sO#rOJo2f&~Sq+1Fi7 zG1kG!vY}%0Cq}8^#S1K}2Ij4JCCpTjaRK-*_=syA!EV!1%kW;jA>(y&a1Th~DnRuE zHV4vz3{R)yp73AhKV?jH^y;M?v`lmGm7v(eN4C!vp#k^R4m{5E5a z{}B4FbaZ#|%|wc}_zUY*7Egg3rDj@(@X-3mJjKztm_lDa^YIqOU5YE_%>Q0CP%C;R z7Eq_wMr!fm$kv9s(n-?Ex`863F4Muzz)E}z%;m8}g8owNyL0 zv0k3d$@xGKIi|leBDTOecv&G(LXIdVe~g);3e??7xMn^vMxc4csfa`5>(WYnyT4rG zg8%fW!6YMXoepu*K$+&>kcgFWYGUViXPS^}FyHw{<7*uIpcGoJ>ZAUoG!ed9;)>m&0%l{j$vOnZbc1*p zTf=38m}BclSm2*l++_=h4j!A&^_u`ITKOD?SLXC`m|VO4Bb3BCN-63Sptpsw+%44- zOP#mdcl2YTa;odF#3BsPsqLfZ}R^9TC-6Vny3+Q z+Dk48`|VMkkso<%{ksvlgQ2uk%3N+^ys~KJ3h-Zz#tNgHt(O;V4J;Q`J6hCKTe>jh zL&Pf@JMMF>x0!2K%c`=#eYgN#mb(okXA<$OAb*BRvv|)jOF{qb=%ny84~v$8WzqH zTZUv?C<^uq&?Ql1Gu@l9i6Dt2yrc6V9swkEj{kICctCM%D&F}C$+>t2#K42!n)-dK z`$tci9J!vt29x1o525qx(cl<%O9x9hIc22K0Q#rG=`<1*RjCV(9acbHCB)xB^6)zx zwG!hB@rv;Nfczk%&Y%U76!?{_N?O{Pt>WEgVWIdpslG7MN3^Sl+lG83HZ1$2Gc=(> zqJhF}29k^dlibJ)_4RW*PIAq{z#GZUbStqF>Qto^eHX7hq@-H_sf5yYY~{rt;Q6wq zIy<^>o*RfCkO^DfFNzHhU%GJ62ejxLG-gQ{#icE&eIOZTMi!ZY8Suk2_JZC?N94~h zvX16wq7zRVr=S>1bjl3r=Tp4H8eN;h^>SsOO^Iiq?w0UGuJ0lqGfG(Jwq+Bs6Zp)- zswYQg3(}cQ%SPgd4AIy((^Db3qS@y;Hh!sltxMWrlCs04_jAYg7pl-P4qk*8(OlEcj7XP_Nymt zZ~pk-FpTRk^1Pq%7F(TB<$|7C9dC_v*sU^&|+8Dgdlz`wvGas~=R=u{H& zxU}G=*Q0S(E_pvedBMtoD~LSvbh$|q^xnF2_B&8ry-wbk`0H1mP;quo8JD5lh~q}tJE zDqsy3_B)s|Nm+o{3rl zCkRsi?Sj$agR!w8TTQ}n}q@}4zhGT%5#}&4Uvq z?7G7qM+fki`Q20gbMeQ{_ZG`33lF3>q`d12cTC}M>v-2SR)+{K0-~=j5S+AJw!>W? z)ak^Os+vpuP_F8Ku9g%%M-T#+*X(t5BO&d{GpPddvVN{L^OZJt2+07@`ojgFR=f8_ zzf97<7Ge?PU`QT^&_0j z$LZBvcW5k@wtrJhDM6tI`AZ#dcEeVrWc-h}{9k6>;M)QZLiFs?Li4?<*~(M)F%vMW zxh%c}gbnB7CO{;dlT=M(8iVexxEgh;BH5{dL&+f*K5`6Nu17BY^EtTcb|67Ip-LH? z^72b#kACoMRilE}><{QFPy5pD=6A2p>&UThAb}qrF&HWYiYNsN-S&MUDF}nfo$c$Y z1aN%{B$C;+;DZ>JVU%7Q=Z!nZ45uI!Op^73CXR|StknFZ%wpJb8RZwNB0wCb3pxsX+=1z6io%je1A`<2BUm>sD5!bd{jLAC+ zju4PLgDyM0LLNaRb2Q8M&sR_2cS(Ny4o}g0pa=_^{s$oCDhzlewF*vGEJ9<>>7xY~ zFU1lmCV)XSByAVt$jw$KS&?x6NHH-({o9P&r(3m~xWsT8)gY5;4Ot35U_veb!ubs5 za|bL$YLf7>BMWQH$aR`yuzrFUvy0`0Ug-rGDc6cuQ^rMu!qj;;=FVKF&EnP>R`Kfu#p0$k27+vdlW1AP7IUa9x zM>)Ep$B`r`(b}T(VY;F-hU&8({e)% z(Vpl(8z7c3L*JUi>cv_fW{-2lS&Am}K4SXTruw~xt7w0hAR`91WllUR%UqRy5HXBKYSvD>^p=I zYpwIV-y22^;6qvBlC*m099}jW%l=i*mf4~zN~@Y1m?a8%4ai%fT1e&-M`yE zE+r(5Pwyr1lN2rA*x#;B&2#Ws+|GbQcps?#-WLjm8J5MWx>vQhN0sQD3CrajOIelP z3TR*gf&_Y3VFNSSCSB;`L9c6k;COk+@k>a zsJY>LH6>YScmvYVyu5q`gW|t)@snY1u_a81oD;AleupsomomcI)h@hYjSOAaFY+C> zvXgle!DoA7X_g!AI%*ma5npH+XupKbk?9cG(uE>hVg}7oh5zogcREZbC4{dC3nDp& zz2A7|*Dc;YDjj2&obZssl63Kecuz7_<|bB1uw59}T-wJz&oU?1(HV;hFZIt|QG3!V zpt?tmRJIwVBuIQx6>pRjul=LB_(V9rxRb*fE;OW*BF2a(I(VRP3lCcRSEsaCg!O}Y za)D#Oh*15s2Su_ppi`|R?NRx(mw7yjyNVidl<9%WsX1pBhQH032eFVTm$ml1>a^t! z1G{{B7BKX?asdtGz3k1nWbo?ELlAmC@ z9aTlhY~oX+NZxDrCwD*WzUl(&tV@wSl)o2B)rnR(tZ{IYN0Eb?k-Ubu<@kh`jz9b% zD9fJ49OKxF%qIm+6ntdLtvWi_ zTU_Mv@4n*_A4wJt;ReC0i#t{S$m}R<6seM``dF4!&EP7M*F>(RRRzCafctP8OqH_s zR4AkQ0y;eNnT%A6-Lg4GvA2bnYOTNa$ECv*qu8kBWVq&^BMV4vUjP#P;g|`XcFXRO zyGKo(@Q0v%1%xCOO7;5&pF!1QY!8Fu-`RF?1I;f@N95M@YOMa~!sa2~>Z%x8IvMo? z4qf5q_yU#|0UBdu@+T5vpSzCpGoXv^kD!fg=g~IEJET0@p-=iZ>h0&hpX`Q%-7YiB zobnGj=K%=MXF$*H3l$9$O=QZ-v8}&n!-XmiYZoW$WkwIX@y;Mgq0ZQ*ITw!CKZwNp zb9&i&8FF&=IoS2}ssYP)$Wvgm)fLyMX!|iyw}A(CU2kx&@)5i9|2&t4NwPthrWFfr zaL8xp=N~c=SECnyjUKu)fQGU-5a&dg0^)deu)9A5q}(>&*82)dKsMwlIU4L}Q?dsH z&N3TubxPdQBNfqp`hAGG?k;WaD5c69Rp-H6AG+%u;?{mst^Kh*H4juypPkh8dG8ty zWa$q$x0I=2n!jinPGhyKyS4P1u+81V_tBNfH!P5-czwGk{PN>x>Zo%Qk*4weaD08b zF(zBPjwL&kv@C>q@0w0f{0t}q=XmQZ0KD!;mFy)%7Mj!glQ^0P$ViZ%!LrgpGdP%k zlm3RM={C3e#ZM%&;3%IdEr69o;wxxU!r4UP1kqm3fBf%;e!3t==^%QiyP#?>g=H<> zL0z2+S8*q~r-V$6eX!E$j3)Tmy}`4RIj?SPy0J{3{EQPdCaJ=)L(oo@Nkm`%NKL{< zdCxIJ1QLM)T>>6$l&~{B;&sqdL=lBKW#Kkx0S#b2|ec~%@&zhMA zE0|???6;bTb7{(FNo?=mhl>8_HVg%XZ7>3eH!!xI}i zpFKFxoj)|wkLMd%k1I=>&Nd`>-!hCktcaaNBqE4y;UXcXVe(sWI~co(%qr`k7v^uD zpeX&PCQ*p+LpA@-*F(m9P6K#sJ9J8&f+?6u&wrObFLFBKd&(jNc*1q?RO;eN|H$07 zEr}kMc4w$Xk#Z&9Fl9vQ4ZE3n>y3Mmv875#J|D+Oi>)gR#t$aak~vlJJ;y!QL8~li zBazzl+bEF^yv_GEfyJ%)XPZcJbxWq!wWiDZA$d$-Jd;%y>XHDov9oB8QyUc|MR&M+ z;nvFYhB-+2IKFIC+&zAXNK2EQ!{I~1T;eVH;0wyY#jB{9w}^rw60*)^3KR(cvoDro zdAlpgA!#!hiVEYl4h;K!jK_O3(<}>!utD)j z(=b?aJjafJO93|)SS^ENYjBu9G+o$@*y>BGx4Z90`r4Q0YmbmlBdKgtI08(EkKoy> z=uV+Rn&@D|ktCX-dSao#n}<2`l-r%$RfCMAZhYsTFxzt4LFCwSC@@C<45!JSGQ5Ig zuHK%5?QY#Ab_lvob|&w7Nm+%YJ*tZ11Sg>mG@-f?@xSgr*L8co0u3haK6~xK+~3`p zQ9tgOdNmB>!s?D{qJb^bQKiP)No=e;dN6XGsN;#E6$&YTNK@H=bXHi z!fwU?nZ8vQJH$abP{}&!W+*O?Jz&URLk7bf^_urIM>-vyEfLNH#PwhmJ-y2^ZanKB8MrQDvLJe zB*tZgBLH^4`Hr7(Pss%udB2DE$e=>-BND-2a8tc!seB*W3%qNb|6GnIfO1q*- zc)*1$f4ic{QvAC!YSkCGPiVjtKx-~wDzUnoR|1+GTDaT|N^ zr8dtcF{Isa$+YXTiW#JjcH$hu3tD&xvn&n-hpNwNCmg!nGXPL5DMA~WPq}@T zcyTHl8lpjX;p)=yY^&)kwf3vJMVC|$YR9(8XD9!&X`Dv$QW5&LIa*7WChZC&QWc1G zUCcDvhokX+%~M#Gbjqr1I^#l zMS>R=X0eDi)w4FyIqF+c+q~!1*m;ltg9$f~?e+fn=>OgLs?DAhp&kfn9fveIxEow) zvnZzq8+n&+U^ZEoL3|rd603NM^o2{YwU87)QGgBTE1joucwoMLpp3fD6=yswPh1es zkS~JvlIrBoK^3L*$^O0&yJYw}Tn-wUkFzhC3+5!_O(i8`l%7T&9}G?X$)LD%)k;#g z8w$!IL;8H4^*g2nF;jGrf^kfzAG<)T5q&c9i45!PRkh~j+u4xMjI#s5~VYEYQ0v4<-^}t0*KnLJ< z2Ni8}|ES#MH#d1GyZSY;NE)2_`1cqT#*9l5YDzQu{PF<{4hY$_B|{H?Y$;k0gh`gq z0%h~etYS-lde$HKt`X^kM#-eWrPrTb>@6T1Au6ldQrB#_`J$YASrE;C?1YtGEBTC^)Ti1zJx`2bd72)$ELca zYDIOjA=uXl)M9DRj8AHb~O$yL~vQ^aN4jAJ*{lGad7iey0t*a6L=Y{a_J03j?n4zM&_0!G1%dmycA zHE|!}2L3F0@h?J)86PNLT*lZD`T6_Vi`m*L{KiBinl3dAnfFhg7pRF%o=&K%6EKFy zlkp^(sNA{}uW!KtHF_o6<9M@-KtCQPpKOyGS6R@>XIF+XM@d*pH1+hXz4x|=!O62Q zHivIHJR1)EfilWT$*f#fIREM?1Kf_yt@ zx%1hqP#EC+&KuTt>E|Q)OIFfB(#Ren5nfDvDB%wX8|v>yJmINZk0zXL^)M3Y&n?KG zG0_@J*m4Hz!=lK_ZM@{us9*qSDfqqBz64_S-Bgt zu8>)?&XmgRpj{1&$hVPpX}WSWw!(NOktD|<;1s+dGRp{={wAIP_}M0=;ao!4 zLQr--2GAv24-3Y$)NH*Cg>1=?#6#|o@^cvUf@sQ93W*Orew~1hiL`N?zhI`n+w{lx z@zzP2$v6tL4<+x{{4oQ|aSo&vjmu7}aToXe=Z9>2ymG7rIVpFHX*L;_svDDyRwuI>NZbR7OmMFm(w%7yokQtzFi+Y>kwigcQ^04bUru& z4Ay2zKyie=FZ(x-hpF)=ah1caZPsw51I?-xkbg1&0f7k?xNldlN5AEaA4#~)bi08_ zrjJA4bZ?q$if-xkp}OuQ^3oI_`N)hNhuy>I<1N_kirqGgSoOKl81`umx})3upvcCM zNs>hkiYBC3vFR%8Xw9x?(M2dh-aSHl#$ci+99U{@j>*}k)Zx0Ghul(-V}#D@!b4oe zLz19z{`y)$n?d!-jHvjp*9eJOV*cT9-}MZFeW+EDfrU|O4ey12EQi~XedEkbZ74s7 zDaBJR0ytudnu#))dfD>|L;D&p&b@z);Ljmz>FmL3pQL&{3)Maq6SSzn!0f}fY!w_= zbkoqYF(wF>h;p)RTI{ny#Z(0;eu`JO9F)X7i)y@;*mx!FO`VfLi_^QH2>i1h%TrVc zY9gM!<;5BEZj;Rg$#JrV=Gah_e!f4?CL7D7$DLk6A`u&Z4&aWBIH7EpOvABPA(n)R zKuH8fPqX8z=rZ3~RY~d{Nt6>#4_E+1tp-7tj2=#2R(Pxnn$+j4gi?U7R`*u;f+<`X z*kRvoRaC<}B0xfXlfRtMjnkwr`{4)Y8HGLXj^MV40cy_d56WZ@{?POb}?!K5h|8de#00$Ncg&c9p=1cF4a2hpt z*qiYx@baJ59xDga|A%Pz{|`yx_?3?uLD(5=C3W0;Ij*Qo=#d2!sn@CFp_`F)lp|ILFIDDP?Kai zKxVJ9VjR6V^eYmcEUqDXcywrm)6_YBVT&=Nbf)NpsMJEyrCxjxNJ}e8FObOt$p%@# z!g|)cYH~OM2b}TU(T`;H=TruPjlP6b#R~0Ve4B!6{wpfJlDHAOJI~tMR>}!5_!LDT zK$aB0JHv5Hz#lIz(iF0PnaPq7hcw zo+ASuF>b1*i53Osrj`>q$IZYXQxhx_XRJ{Om__rkC0)3i>opJm(sfRufcwg|w%M#6 zo&lo;R?O+0@9KF!jLIAMD1SSF9Tm^Yu$Y;Lih2J?<>9}K`rDT@TJ0I+f|6)F zk;`bjU2e5xv>BRi`kl``-#wnM??Y{#EGPH#1yo{v|1qvyBpSG8)rIB%_{o1?1_MO@HYvRh{S8$&4P z?D`I+@$AW223Xm8Y6p+lSk9@9^EMuLXsWVXv9lkDkO{ds;-CBTrJgUX472c5wmHsP zUg{Ga!V?+(%xBh!VFBb;zDBo{e=NTb$mRzhGE_$ zzEKm_ao$po9Mqy4Vt4ed4Rmt3E}@O5r?YNf6E!8(bat>o^xCeC2@336x1Jp&Uy8&I zJnM_dAyHn)Oza?Gl==Ous!jm%eO<5T#|M$OR?N9mXiCMbDiVnN0phEHe>BYxF$Y=e z-^{Xv2Ms-2+2#Kl*nwoqQb?d!g^j_dxrh-bFfiQQY(d4WIwr42@p}iwL8edVJ*xJG zUD$wHaN7!`0v)QNqS}&zGBPyWrhsFT8c`PS(U~p~>N!xs!j(0^5sG7LNJSWw8)v$0 z6k!I$YCxE+rI0P~gEG^UDSaeR>w~Ia!<010U>@is37oOePf86^Q{_JdJOn%mYQrGA z1S}^sqN}HZ6vvUr*CKM=k9Lmwjx_qp)txl5-2{jz5U8Spd52L>m}pV={mm7@A=IH( zH;%&wcueo~f|ggjEOd~mGzZM^Ed@hn0KFmA-V)Z~qe?{0Ib;!BV8gA?qUo`nr-Jy- z7}}EKmInjz)-%jb{o}u2w!P+?VO97gn4+re7<_ic`qM2|_EX6r|JxY9jF7ycFSXv^ z%pR`3AzySl*p`K;|I<+-LWYn_Ix=`b6gfd|)@HS2J~;kcIm9d>T?Nvt0V20QZWhy1 zHl3F%eOp|V>i|Ew`lIlb_q9}q_5DZVgHS<-(~F2?>T_MC+0$JW(Fu4M^3@s_;pb@a`sYaAm^5djUZ9LAxM94Co zSYA5xvT!w%nPWgI#H`>!urDLjtba58=RO7m39AS&OLfndkWUg+mz-a*#Us?r^`p`& zx+Zv=YvU|*328DeT_!B*0jRdr(&($Gty$4S#VM z{)8c5{Q6tBYHvg)UPrkmuB;f})`z@Uwq=+rAAdK!Wb~iuk%;QL`4Ooo*Glxp@0%sf z;^*cyX`XxT2qod+uSIvr6l#~zfnNr9pctG4L$;-zj9RAd8YlLWH~*-_}W-5wITzZk0ziV|VV+A^=NH^(s57LU8+yd~DKYL*ndpL&_# zO>?Zi;doWNGaWd7!p@d!n2c>oS%F0nPY5+@aC={!Zw;7JZjsM;nWvy3yd{$??Gim* zF?6_KNcWH~S%F=EJq50rRsda%g-lmS0ijT;-a?>fH&j!;mMFiFreik#+e@A8dpHABU15!9ZWX?p|@D~J5=wSA+6{qtPTi>=G#aAzP>-d#3vLB12LR*e_B?;6 z0u)@$3MTDD%_6--nWH=O`@_yjod3-Yf9g+RBHJU}eou~>Es7qZ2sr$qJPczCU`&NM zGgV)iavbf zom;}ZfQDJVqjhjKFSMo;aJL+bin&+s_-IOPzR8>v&Kxid0`u-7vLY{|&iS%hx76p3 z7Koc{yIi0lA9}jtWNexT!6C<+%?(>!0+K+I|w5;I#t@bkXYR$ z3FO&ID=VR(X9D*ZN%q(j z_sR%R>8eKVI5i%|Qj;P{&T@JLAE!-5(Y$Qxx!_`%#pU&-^JrUdW@7M0d2GYt<7yy~ zfv*kS;JYdAWZ9t%=wzc{6bnPuj!3W$RGb;Y#4FFc&62n)vzhZxrE3`xa5U}FKHiqW z81dKQmUjJCArz%He2q#2R&~|=olDX-xq|yz^v&mpCQ)n2S{H{FSAg@=M!U7hOM5B) zif2B8`KRlY2rlV+c5<%tIoA_QQob!Yp$sG$#SQXsaeE{Y(HJbe;g@U;IqodAoVq}dFuX`Z21)zaG%;Vz3FINqFG}Aw)^UEBp9$`o+Mm*#|-G7d_7c@(vDD6slK!V z%*=eezkpXp*uMa43(-O(IwN{HUzC8spk zGUY zD|G^2pW!WSmYBA|`XTR^q|;u?F5zyxhy1y*S8q~Be`>>UQ2~u=1X(f{_1WX74%ImA zySm*?zk>f?)$Op)%u@i-;ZufExJqY3xf6G?VwGLxv`Pq8#au)SPd8FlXMA%Wiw~3b zfwCpWL=t7LxiF2NRNTa)ENx3p9l!SXg35CX%3S)?aVVqnrd0BDvya$e1+Q`OC5RLZ zg|XQSx1xAqbMm~Db}6q+7yordg8&b@lt`lHyRf?$7e0E1_7QjHVs{e=jU7z=u~h9=Bcy%;&CMFKnI;>> zv!8h83omiUA{)J76RU~I<*>KX$ty?h(y_BN@GG~Kr>C&hAgQu6$pw)u#v%FV7o}H8 z^ZV!TGdMRm{)GR}}Knp}Z+}bW|k0!|E;c?)3Z!&Vbq&#_W3l_{7B* zTT;jAgB_^wq0Hr^eMjX{s;nQ+i6WE^Z%3uF)D|1Q4k zbM8-{?*2Wku3N@3X)nP$ovG*rg15wRlCG=TXPH_pwKK9Gb0T+aonbobL#?X zW)vuuSx+Z${cnR2qdtfLEh42;3|vUNsiCk-kMeMHG#Yi$)G!SKiekJy>DR`*0XS7J zj}cV>KyunV{gh_Xt*|(9W~+7KWZrEbIopXPQf6*7_eq1<{dLFoa<40H%v zLUEc?yj9lvi@>J(nR$c5zVOjo4uPHR%!$YP#v)ZNNWcCE#D1+IL`~({siD5Fo+P!W z#M;O&G?^HuUGFU8Eg!d){pafaV%RE+i?xA@N>r2mi%c_kHhAXGlm~hxj>w&JyjD@a z$&kpkb-4B88F0e6t@EW=1;p@&b0g!DthRf=YV1Fr5K4~g%vv1hRD6opLZM8##|^5q z4-grrZaD3XA+m4uxR^S*>no8thPK~kE1~|X>J;v}?&o4ra_h_t_y=!pqh3PgPBr|8 zJ=M4zOXTAy{%=PMg%MI)Ldm*SX0tBPi=T|B{%BK^b`=?QtDVe)xEYwH&| zBL__9`GlXz`!2PT|cYbRF;QCLGL%3SQHV;Z_r$>OpBLYWkzw`k=2_;anq z`5lWE2ux0@D<_R8St*9Y#>@-Wt5%6y3*;hy7M^@~Ni{M?{L^w8HG|3du4i6b&U)va zwyum9*rqx0TZsI1)$5?OfX7O2_vn^@#}2$JgTW8a$z;zu3E28G2)dpf+%JWcb&#U$ z$z@flrS=n{tckwMXDdx@oB%_x9fRVxtij8##)wyVy4yYvD8-zNe`CZ<{CH;8)N%rt zM<_|RqWzUcQ2aD*NY!xXV((Y^Nssy>tb~5(VYRq~?=&Rsj$&*L*++b@y0YH|h=^zz zNC9V(Q;nck&aSh1G2zKjN-(|-?o2v}laQ#5F^2G49|=tcGMk=iKxrLAdm|@4%C`sU zdq9%*N;81si3XP$^^{H%fMUeh_IhV}6>~U!H>OB5B%=Gf@xm_mnERWib~Er=Xic{0 zrd=n5;|V?axA*n3Paf2plywHfST*l0&9RSVqT0rGqHKvz#@!G&2)~$u%BSDEM8q8) zyYotf$rX7bW_Jua1*VhOO?9hHU&)r;cEF_TUKezJgZFj-yw^?_v^cRg!}tC>ndPFM z<90yhUHEnS&7$tl)5@C-PZUwh{VwR$@$%h{{Bg9YO|~c2VcQ2b!iXAo(kaS`-<^#5LJL5e5$I}4N%CR2%AeTT!9 z=Hd%UG<7@?1**BAa$d6+ws&)Fe%{%?xxU)hu7IOuLeF@5T*GzFJS>}PK2*UDQP{{l z-^x9|3s~GdaLpn%HYIuae&L;-MpZ8fuj%7{o>VdpFZ+;X=klPx)h|7p&|La4^T6|L z-~GvyTRVp%VoY%S*xz5qm>fVz@Ku>Ao`O^cv&eyqu0CPrEx3=m;dEi~{knGaiYGc& zxybcu6|Ns?b{P|c-dKf;Lda(3a6|TY%_Vp^VR*8bdUlU_PU3lmtG$@|{E}YE4q0Sq`BD5{-(wV88g7W;1S|rgqTcg zLmdlSE;*>*KNzOp^S&ma|7H`kM^a(ReZS96{s4i06%a>-ges5PjP7o`rtg-hxk%GA z`!oM-*Y`<1~^>kMzo4^Uq91eXkNGp7t*eD@L zV-M2g1CnYKm^$@V9K)ye$`;Byiy8vLbaJSk*iZ+2XuUoo09zm>qn+kbblN6fJ*E_& z#c&Z*OqPk_YQPo$3$3C)(T07*BMQwvLMq=xWr9>#_M$NscNLF?+mN!A^z?F>B&OFr z8ri>gmG~4R(9oHGC__jZ^tH~Md?!!P@h*Vt@_5WWF{2asnXZJWl)qO%aL~v)Plb}@ zBR)#EGpL^=YoF%%GB>1;dNtps;?fJ>>Ir*a6Mq%|<9D^;ZCJtl&6~QMGl@6+sc)~tSk_ql->}XD5;xbSQ3A~@NT92S=WRN0iWZC5SiX@B(rj3s zvbPeT^DPg?3nS)sl8QOWX2zimX{>K#v-PZ%Y+0BYb#Fxomd4MEsUObiYPB(!MYG1f zpcZs9G~*A}6V#DT_AsP-&EeIb5C!@5!IjolCz#I5FT!<_BuEPTN_J^*x|Fwr^$GXu zx?xDDXl&0GwzPT|^kL%bY`z5}9#$XD90GX~_TKo)a0;}tV;bGsb4tKHb|z4dUeX)S zs64GBA*T?$b;nCc2vM-Fr(>er)d2aQ*VpblNteur4&$W$y$SzHHlX}VOte9>HE=~l zPRH3-rdJ;wn^_7bWLAZ2_KLh+8{ruU-h&nP3mV-cL6Bu!A zX%_T@Q?p?6g(XIl3lhQtYYqjeg%aWg`J#y+U&+wAg=x8O8)Hjr(3Xr!wp|jGmI9S9 za%j#udEyG-3nJmnOEwf9xI|ehTJ38VcL-*qOKo+7#}F-mx8)x=P6D**KT3>( z#TLmWcJ(H)HboH?c>TRs08JXQc z`HT@1{)ULz*ix3Ee#PwB~)Ziaf4)a^#swDX5n&KKPh>@6~8Q zyFqJi(_k}uUYD@%q`a5V2^-~9mD^Wyt`^c;!3=E;H>IN#&3dj@*@;Q;)p=ZUuGU>M zyW_Ti#e-zGBY_$zXb4T?r`eYM5g-(fYd z{x3NaE=k8R99Pl0by*?-w(=49ML-t*5W4G~%py(iX6#0lM`%M*TVR&j`r+S_+!0*-3*-=2Ss?2ICJQ9T&(<`(syW+Oc6LTy3knmptDrn2N zccN$IF6Vm#nWb{};%GU{3c|5EaIyJf)H~d3Lo0E|;#cBPDoGCf)On#nzXh<5{hz~( z5soGDehqBVr*RTKcV$~RtMon@ZT7g^py9$fJbi-6AEIcrrXMP%@Uf)YKv*ZFtFA;R zi$C_2D=Xi{<;nf_eQ=%6O!rXidPf9U0-C8L-!Rn5_ueAsw_Xh!~c({5w}jf7$P)YZFyLxdq2TzzDT7xv^MK5fm z$b}CLdIipKOw+O+Tooj&TB$1CoXQ_&0#T-Az2kT*QYXV+kGfYMOMNfmC5udHe7wS5 zNaKkF)`ySKoR2M8>g-XcOqeG|3sW{yviH`W`3=!rleA8N(Qz|IGo&&|3|6)tAOQo4 z0Fc_vTbQRmAwSpi`lzAQdnB_Jl-P;&sYD*Zt};*gR0unn%RXi7>g>Sx(&eB5BaV2U zFSZGO=%qrM+8Vmdi#Y5UaWroJ5J40)9ZT1tFB4!qgY4Kw;Qd?CEB0MQhdg zLLb$5Oj^%IJr&Zu`#A4GFFu^jZ$M`dgSr=tU|k*i_xyt;QCPk+sIQxa7#fJpca!ZF zcrKBnG~CP0wY}7=8_d^MNvZ#>&KDJzAB!*AO8Z`<(SadbI!Iy9Qw09N%j0}x8)K=E z`RhB0GGNrn;BQON!R~;7;>eBR;rYI(zSCodS_G5aX2Bu5qA5aNSk{FZB`M8;biH z*qnqZ1p|Ck(!e;C+~=wbR4`Z&fT`s+5~O86fSjZ%=mC*QC7CzUu*O3MrWj^$DHl~c z;{MPveg*T%2Bw>WZEmKwmJ&Hla*XEElZzi~C2iAyLJzxa{u)VRkX-^=O;e$`RbtIr zG%l17UZ%2*e|*C*$oMJOg92p@euysZ(G!L28!=!!4=r(_`7TMtE@YvQv~$vy%mmk@ zgw~9k};c zI~fVCV&D()>vGNKR$hJ9xxevu;U6L99dh>SE{Iwq4VQ+xIy%bEzc5%b`ZWo&iiL1@ z_W@Fm{Rzv|bowZa#h+}2#w2|a=L~dz>s6?VZX8^nyXmvPZ%@fdV|JE>eW9U*DEiJ$ zwE%-{LJ-%V4~bj;HDtM7q`&_Wr$6D;F!UlwtK;y>K;lBR8(3y*br-1;d&JBLP6{1xsxZ!J?FlxVqMfEvbr$KpPwB*-@y+kvJHDttV!?k& ztqw~y7s=wHmeVelC8SFuQMo1IbF~TORl$oFtgQ- z-9XT`C3%;yI~_eZ@TOu1=*J>Ss#EXV`&lHbO{0LnaIoGT0`QMRy*kv`O^L35Tm&o> zk9?FGj*3djRq-)y;9$YCl`E_R+k0id3W#1>$E}T0)EKOA4R(#(f`@N}d=dtRh)R9BgY|2o~>0N7fw_ z=g%@}Q5-`iE3`-0Mr0Qwi<@j)tQp`?tK;OMQ)JM@2msrE6Lnc~V0zfZ@B?5A&Omz= zf$8_4s<)YLQcHUZi(jBKb*v`YEtw%sv5#?FBeC>TNF?@5c8&3JSfW){egkSN!F&L$ z$v`*TrPm^yZ!09Hog71yI-sI&*dueXnA%X#y6GYY$*_wn*3-pZx7IdnQtdc((I@b# zXG8qd&^Qc4w)Rwudx>E&RAU<3$pF+#6lZ(Z3>u8E{MS=XOxAbJe%ZxN%m=#RXU5)l+R-uQ#t<220=FTOj{n^M|oU zV9z6|zuX@oV5s?8)NFLFJEpze!9Ue?}8W|16u@wA_LtThP|nWiP2l zQ~euV$hm9T_DVHB{aMRgf2U2n%d5>%Ka+J(-UXuh_=jar$1&80548AuT33cziR zDb_2t(0W)_-8<@#W_$8(!}GNGE@n$(d4uwZHPHyNtQb<}7e7ps66VBKxj;4A$Iv-I ztc?_kJZ{6Ao@}qL4fou7*$H-rN|jnWl`C(2ki$=^9!Pzq%r5g}oBmUaY`?;? z5{}fvrh@cmC3b9N>l}q?L}5I6uWMc1=ig>pwIDAzXWl(3N%xrw^mU8d`{0`~_j;9U zl;6zGFRDSYh}src$bK42^*21?U+Ze%MYqyjK+hct^NSN(qQ2JI+DjoF-oSFlN`(UK z>@*=F1weersr=7$>F@a4b{jg7cE2`BXeOMA{B2LqPLQON3Fvb!zHp&xbD$eGI0$Xk z4Y9j!Vqb3*cMfw-t{*n%ueosryFPon>J%vOwr>9N*)83BnRZU}CbKwp4}_s?I@wki zpb4CB#=nb+uKUcYw-s2$cr|pNXybn(WxUl-AD-UDu&a}En^FkE=xkrN2n0rjsp!!6 zY&mha*)O78WHBMuo4M5AS?Wsi&{lhRMQN06G^}xj<7b-=Yy)>*8&3Zx1>4p6g-81&(8_ke;&OXZBjXV z>$Dr*z!pS5-3{5bK2HwnE9P?;z73MW3-DtJ9>%0`h@^Iai|&iP?s;}_o4U_;{!@u$ zlsJAmy}X^(K(WpulwT3gNZua$x{dc^{R6^tY9nZ9hy7f1CrJzDp zE%)?u!ynYrn?mi;syDZ{1IIe&r5Hm3imsSg%ia9gCLGQ&x+dZP1`74--|KZ6Y+9_B z)D7gy7l|a~-4mBO&TFD+5`5>!x;ZViUUN=p#0ZH9>Q3zkCdHBTa?5=ydeSsbS946(Bii*9cnrn$Ed@pvgq4+=*G96KG|+PL(Bxy0 zphr3^x6@qbGaOP4h9#+S%9Z&|R;+T?p$Z~P3=P1Z;-t4n%rm446;$sMXG-GcTchgp zGLh7M8wOvb*$gB`NoY4wSYy_kMDG;+$E1iJDk|xPbtOsxY9k^$rDqLMqnt$Ut>%vE zw@Efg&*v-gZ&wwf_6nG8H%ir6)24hroq1;BR#;3()T zOvGY+dxO&5>KN*q1%YCPHtosW9u#^ z(0wKUUb3^KQ)+1PLYn*5kc9`E%)xcpskNdE7j5~5U8`~V=?{Gj2syx4W&yFxq>~#x3=U;#fnCo26SbeNc1+T|@S6(sL zt>(iT+#7^IL{4nx5ki&7dW6VAEn*B zOuJb_+ZTb)8bKvvN~_WrE$Do#kOMR_B!j;duIdyLA-yeHsgJeFKGR6CmW#Cl(>hMa z_LPgp((K%{OpjV%1$}Fy-9Bw{l6CqJ1w?|9y$0>N?g3_6&Mdy&8L!C7 z-Js&`Za9dN{gO7J4T;_G1g!pMt*nxK!qsoIA7B&UE>@$&ANLnBJcOp~8kaNvJ6O#n z%TNJ;%VYx^Ecw|MFK6C>zot5^P4y0u;r1V+V!?T(nNRCz4vH5G2nY{&8EzA4#%+U? z{9AvwB0Crhn@64Aah9HKG`I28^$-BV_&cL;&DQgvO($?qE#VlPCb*k>;N3TUL6B_u zXq-*8gAcJTw!>U;%{W`Xz@#deo})IW@vKmXn#Mgsta!&Yaq&$sYa?_j?R&V|S0;-= zrLndvh3`46xY+9<2G;0Won~eLtB9M|{LJU1_-7Zjn@nqyf2S?cm!53rZ%3!f?lu5U z<5O*>v^<+S0nT%#y`v!Dv+f^H)8lT(82BTM>PL4kQIPfx3a=sM1{v9wYTr}C?Ccr` z@Kxr>EkNwEn~q4`VrRP90k3c}^kZxey_ zbXM!?rUX4?P6YJbz07dZo~`R+*Q^7yV`nN04an}P9%w)&2Y>CJYGaDBXc}h|`@#`q z@`cz5F#7H|OX~v$?yYCXpP2tV)H{dZ&?KjM!K^U6r?AVeO-s?Xi^V!+4fx|VhlRl- zLPIx32euj@8DkK)`6g1@qNi?6mn$wb0)5fi4kcRanBX#SOXDiT4u zOQ?-(DVEDysMZ?7yEd4`&;um4cx3*WDH?K58JBLah}B`_&xHp@al1i_UFIXj^Ou44HDMV2M@_)nkUpQMO^(B_{x3^(`xYjiU)|91rG zO)aVDpPja@>FOH-%*r1V2NO)Zjv3tT{I9i$oQR8@`^ne05T!-}=~~piZ81OMs202WFEwd~LjQ2|?lT5uWB)WX zpQ@z6&HnAR&$g{A8`TaB_)BlQBwkjhiWy=RquYkXM$7OHmFJL6;P$X1-m}=LVIC4} z;{9%Pv|hI1FV+8JgoJ;)eY(EAmxfhE0%1UgNMfD`^LcX@;;8!C@*)sH9e>>1SMRRR z+hkDP{@Y%a7s$;mZ~)58Z9oCix1EC8=fQ%J2M!OaEy)lO0Y-!5)0KKYprlqSRZm#$ z-{FTX7cBIH1(q=xmwjhT6IS0){eFG*{HwO*ol3z)4Wj9*psF`t%xt^4tAJwb5u7^e zhq0B^SR<*fme?cn*BS$Nb^I?@EqH5TPk)ji88WtL-XC;YINjp0CwOHKt;~c3PI}B>V`CWZMFy^RCT`HxY{d zwWMNW|AQFUjYI~vXtM|w>v>iVR5W~*opj8qh7<|{c2OW9ChjA&jjierV~vGZ7cRw8 zNT1}!zEzJ{VY<=KWV#2;XP|#ha}CPWYcEucn!}?rK+VF|wHZB27*SLRy_7X5z|LeS zD0Nmygq)D%9pmSqhBqM-QG%XplBbENViH>J7-ftzJ7m{>ZglISkpt8BCb@n59{; zOn_<1G_J7W-&fr|4mtNk3FVzKSc;TuF7Wwv7*Ek!)p%t3i2;AW0TyP+A9=7W5}Idr z^Z@v*O3_b52#OtMhQTM?Dbj7z*SQy=R;g3CUrDO+13}JmI12kJ+~th^nUcyKiDTh$ zt@OqARmhxsoxV7tFHqX!k&@S|60E9hFUfRo$54oodX>V-&3#gnoU&}SsHIi0`TQQW zvDn0=A25+kP~Sy8-cdjgPBO)4;Rs!{;J*jy6E^tMmN=@))rVB#7ANw%SCDF*uYtbC z8ZIJYplI-Xb0(e5MZ-m>*<`EKm6W@X$rlqeoj;Jt*jQhPbg{@j&o*%8i9iA?Q0J7H(# z5Q;d`W4cw2s828q`%O-1JAsY*hb(HIak9 zB+VtDZg%=BCU}6zs2Izob7^Fy0~pu*g?$XRRiKccrJAgJ{xAsO@A2zr_1UbGWL}zj znTX2yp|Tizjht$=TH1n1xX$)kA}Ivjh!bmqmcNX>$Q=u6(7dBG+IpX&ODoUB;;%}$ zSVRX0#PZD{78lF@QjBbDhqgOivJUF{pgHp6n}MRxjXeti5kboZWj)SvN+m*3yJ$0; z)NqC|OT}IjQOn1@g69M>P^T=%NQvePvpEvoH=GN~+lkl?CjT;&q^q&_rb(>jfIhUM zzk3@2V|9l!c#qP-hNS9Q@fiF*O3eDe%+lY6R&CUmt#OlchLsY_#f8ud2E`zR9jmjW zSiR~Mj&1uAqNp(E<5@d{kXZYeb=xt2ths^zL=*eM^3<0mUR!9o*C$}__DEJWxve{W zNPzMdt#+VnWuR&XaPMOhk=v-@faDP{2vYwvrGoh_R`$5G1>G%K4<^hOC*!w636n&u zj|_UCwtls!OSo01rRB9~zyyg*Ov@0qo({=}Xg{s6L>3pF6}($moddpE@>r8#oTs_x zls3G2+S0GuWjIicBT*z)h1lyqe#bvvnJl_lw zMp1}{Jco-(L+hN)kC5**29q3e4WKWNlm1+*9g3$SUd5MZWLcEi-<6}YZ2K$3t&Kdx zzvW3u&`U35+&K@%mr0mEx+7NX+UB*H{$zcVI{tkItaFoX5a~T*9+JyBcvq&PkkRCV zqISboz6x6>*ehppXV?wUf~@>+oVNolyeq5>=F3j-M~}`k4EV2@Q_;RdRtyCJi(aC) z=b)%W(Q+Jvhq)xZgwG(a@@j>R7@9KI()?H^ae9+kK#Lpb@3@-T!JSF&7IEf2mCb3BoZ ziXmRkcNUp;3w={j_Xrr1Mw%&{o!ZV}4{@Q94qea1%7^XAVwbnxTi5^4QQf10xZJ)4 zs@HF~PaNGhqg|ew4fJR4b*Mpx;&Qdt8_sw_ALn?)a-KUqDSf)Q;x93+RcT+iC zF3b~UZP3r;s`{{&@!B;-U$3g3IGpOA7tVQMs=1Smtww}K`lbY%kT)qMoE*rYwS%I; zC7Rsb9C1;C9+1;u>GFA!REbAuHUZr?^6d?uwcm264{Sh0lOH0QU!QNc4~QbP$|?U* z3H?u!GZXuN8D}kON!S?v#98lZ3qLqe*hb(WV6{d(!e*8?wv>6oQOe-aZ$7v}F{=eF z^K*zJ`KEK8&;p9P{ofi{Uw=mDtLcw_+8iF(9DrXHcW)1$)A4;6$lg?;h?zWq!T{#8 zhtKQzZr#EK1U{1wpM;^E;r(r3@AYPSQE=Q`8n2s5MH@Zt5*El|%+3i`>r?~VgsvT% z!0zpNhYW(k_)x(C#3-es%k6D%_gIn&)Y(G5dHS!*{r7Qiy|R-vsPny12=WMr;_r{o zI9;E*zE{^UQI3#e?=Oze*E_D_HEJ>nQRtjmiMv9?5KOi*V7R;VN z4Q-#t@%jhZtowgdX#7~6Je)WI0!x7~2n{7vIjJ|TCHz3L<$PbS=L1>@CQ{CMgo=9yhIBFgG9()#bL$Qjw^By8)^JNgyt&Fsb6E?MQf8gtL0Q z`P!R*!Xfm3AIDkF>7pO{7m9czXtPHWm0XZU>?Nf|pzH`?C8BA)kTENSuO68E@$A-# z6v>L6uYbfWWWeW0K9~l;cR2)FeyN@QXrY8m!|l1kroJ+DC#-9>*4UY7rqWv&&mJ;;IHQYE~?er4CeXr&0?o04Hd(6FUWCN)Ip zkI#HONeJ>ue9>G-ZpofJvJNlY#w=7xutreqeQ00(<$axmS}ao0tK1+cSDr znZgF#ab<*HqsKC!=4L-d{gG!SSzgD}_Gc>9P@rzW!e}aOgLL*O5CNA9+007Qze(3s z8hjOdm+3kssJWT zB#Ty8mFTVWL~T)byi?!NkTzkVSL}lh#O1X zOL8~vdER-0{oDuAHRLxA*EJ8ZIX0=7WKq)Jf3CC++BeQf`tfKcg7l0z66^hC!?XHX^1??;CBj<6>d+-;t<>58~v zImR{axS2a0;vQpA`OBPzB^Er-5Sh_8PI(7=p3~_1nCYI_$BJwC(bdW4_g<%43DR&W zC=Jdt@~p%H=b^11&hSkgIIFStXpV2`++gP@s@}ja*s1#+ zy^lS_KuI1IoE6GRQ?&1~WVGrMS1;~J^a0U#BDFr)1Od?9q8M{i4o6F`GsvpQOfTS= z!tZJ!wI9tm-fK1-ghAk5fb|JY@4y{1qq#DVusmXgGS%MWyhIS=pL2O+yz7~{%WN>N z-w};W)u7KcLLxOGHNQ4AN**lQ(LR3kXybtQlwChmieHRk#nIqajp{l$P553*lB3=z z3~arM~W|&+$3^3%En-Q1@l@bKnlZ@Q>n|{_RS{ISOt6moRij+L7tbs)Z8*jR0%ATrsgE zAUWQ+H9wA5N<7j(DYq)3hbq{0v4A|7&KFe-XHQ}IIBotY_4*wgxQLeb?eP(rq&t~x z*4`Q@Q)ww6y(?Y(R2ERZjq0>~IUF~>m)<%qBAUu%c{*esnXr?F6e<}8f9Q|KlM4{} z+4y|}Uxjsflwb+!ppj_oZr%F3iP{=)SAQe{dh8eUvP7Ll58%mNzk5h~Ymldjl0Q-@Kac?Cd`d_ zVsq}LjML|;g@qxiGINdC_RaR(5V~L-r+bY(ToH6V?diX?Xd@0iqTJG0yG!x;uhM{- zFSNM)K<3mBT}5gkB{{H)R{1E%<8@yc?8dX8oloj_QSek**n3Q-oX$r6WtIV)C*76V zL5pHSP&X{Vdj+RiqdW^23~^!v-+n9wLkGih#``)>R#r)?wbhTL-_S9@Ay4ycUTCwR};$U5%BI-xCEFWk0`^s#`=r&|&5R(y34@MIU(p?( zpqpNX|FZ3~FE>lTdZ-9hSk)Tu(h5Jn9%&mdS zIjk3_{SIi{&)i=pI~|xj@3Bdz2oH^2cwd$|!L7gzYK*VFJHXMASmn6L_op(jPi{yV zTvpvkz|61arYclAkKJLWE1s!65KqZOxkI_KyE$u2xStcw?ccCi0F+2!-86Rzq#{4# zj8Z!&KDs)%-d(~3Mr$jfHL3d%6OFvw| zz8P(}E3ENc0}rqtm|A8dFu}!N0v)2?=OCqOvC(XW2dUXGOkmsj(b0DEH?uD45KGm9 zOxJ?aVlE?j{|C|G(Gi7Lhl?yYd&X%7Wwk3@A2vr8Qiz{uDdNKmqK+3ifZul|E5rd6N5mMjAiM_y2Zsmm?Loq zi)d&w+>-ZAZzu9^VeT!pg-MaS%eE`^ax;@L0@-p$P6VXLcclt{i&$tBBn7U94ixar z;VR)6&berVmRIXRp?}f(%%cRp&x3Isx=cLFEBwc4kBzC>GP(lZAacfT&Y=hxx2jGNTnpPFUqbbpBU$rer|oo7 z2WH|bBFO!V^hkmy%<+7S;$B$W5H)+H@NWX*8mi@k+?f)E)hx{A^ixsnxxXij=w%yk z;A;y{ko?ogOD(3oma-y9LpFt%r_b*;LwS_JN1@MYin zYE~>eBo(yvIao`VrTP4--#kY`=^OSHm{`}vWC46~X zK1ETJqTEqd90%sF&z5N|8McStnC#aGTmv`6|1c-r@>^I_mIV!QU6g2^aOTUtfwgi> zL;iyjW@Pveo**;he;3PbYDq*>|KDPlTb{5Lf4*;%p1V)0%uKU@tU#O+!u{8`en}(A z(q5%;%)w3*trW?l9hwSl@isZ<=lSGM#PEF+1+2Szr$-3!EpG7*uO6C&ky;&ej&0X@tl6z~JH%0TlK0_j`80t>MN1S!~6%rOxdv3$9e<%8*d>Y%@!K6hZB z)^jtvl0s*HW2QE9N6aL3>-cSK(jzymHGXmNaQ zl9T{u8E6rP6jAJ?3?Vu1!y>Y8GDLfH7aZRRNU|5;u+7MSov4xlE9_9lVJmL8o1cRU ze1q6ngPG~W8dMWD`}sdaoO+hZE401B7jQ%Zn=T_fh8Pud9yogF3QZyG(37?a)Q-Kk zFUd8tN8ZOcs*qtUFx5^@hl9#D5I;z$kS)cBY7+C+lYoLgEx!Tlj+)EuZy*R!Pi z-=hFcfYMRanE}dR9=&L-CioJMnlg;nujLoj=a9hmjtxC7ih|fcFdQ>6O8SaHa1es% zTT!Hv4ZmkMVR>;U*4`20X+X1hZ1*JVVynyM@k5lZD?o423@;XvN8o-_|DYJh(%=C5 zIT3+5InO(u^wgrlkh%0~4a#2jB!}Y=ubk?u!YCIWc4L2SUI>t@3Xo2V3@GhD@9h=D zurKMsk1tsA*N$^?UtofQ^HPa(Fmb^d=A~~e)|Z42r$evFM&~uH)ukR-$-_ zx2lWSDpi~7xH^T*l;R!`a=$}Y) zn6)1BkanVEMmfMXIJFp|xF2)$(aY z>TAgw3SzB;xa-nr^;s=&*NRtp5Fw7KwD~~Fb@IL<3Ok0i*_XHUbwq4YSdK9JW{~* zPD2(AWobupHZ$gevxUTFRfcZCrBJLCye;qnhjl)wp`>Jth)Xwq31KA)y+McEa_k&_ z5!{QYdNX+%C9S2#*VQKAR6SnFsvmxQN@v;D)J^MleorgO5Z1v!j9jPG5m(`m!?`MD zh^wMNq@r0vBD-kc>*{gMm}i$yGn9WgQDKVL#p(?y4{Ais`17b}&Yr#T+|s0d`W|s5 zbO{xUlBxQlV4Nbo%jnYa3vV=I-TO{=zuM6)morZx9+R2u+7#QsvY9Vd4cB$N0fc(N> zLXoh&@#;?a~alis{#*I)?*j`MK0Jya(6+${JgeAx>}3G zrjwurw?Dm_JL3fol@h8#p#XB$ia&xZoO9k@9eolN5!)j2m9R5m`(juCcNE3KQsF7&fSrB*F>&A1ARN#$Po2l;<@<&Gh+Bx#$}nJ=E9}iVOG4 zbK1>TWy;gSXa=!#lp?`_@!6H@u|Uhqf)doc8GpU``HE8PsaXuz(dD3uO5 zjn}6=CPi9qh98++Zw^20p-x_8SV6W|6Pcj=pn}SCgt66}19Di&@wN5UN ze9SVSfDL(lf92~h+f*p3d4A7H0xRA^Lh7nAg^4+?NaZIgY_;T9cm82>Z*2D(OJ=+Q ztdJ6dkv@1#-g&oy8EWqX=Pc$LA8oXb{jqN~7%tK2eqk=Ix_A7{^#wOB(AyL_o8MKt z8_hq8+X13JMiuHj@YwmHfFiUpL5;prQ#@(}${0^nJU?Rdf}c&u<3x%$Y|3Yo9toiAqP=r8wPDw4cN6WEN`anR#Ni(YCHX z>YMg&?s44pMbF)2IgoK*egy&+WRQdvL8qVDr_J#RV{=Zqu!Re0 zbYkD`ZRz*r5dUXzNDg?a8o_sY2Dfrf(`p`DrhXyuivO7%zxYu=bCe6Ljpo|%>+`dl zo{5=Sq~?Qudq{74Tkq>xQA14=6NfCEu&3`~n2-Jg=zrrE3V0;K=exaSy*odct~AXg zG~>Q7IX~Z@St35t5-~_9*(UD#v~(;;$n+kb0g!ONP1|>XmjMhEe|s5XJsTB`jL+z+9l1aN1N!)##>UZh zc2F>mAdT)osByMZ>;73j&?04TFBHQgowkZP=VB)~PK&ft4+T17wPjZGb zT?msOs6rjra6~PXO>giqmfZ4Ro%l!>&E)!j0OK0;0%Zlci{$l1Nx!NC;N=DVs_BfG z^;Qejx%@@z2H6ctZdEDrF=XAPmad#+lE)AxryUC#MjdkhzV2FXMo=!Xh?)5yDsGOz z3&0dV@IPJ-G2-IRBbwyPX_zn&N)|Huu(soiIptH9q2vUYR3$*!qAmuzN9^EO$7e2@ zg0QDVr&^C=;YYhG#!pxuKy+CR>&dR04x?q5*J2g|y`{kwEN3`Rzq0Kr(2xp%X~vo< zh5ERTIqKMzIM86jp~0>(IOd7c&kmXnWb^AW{Z%h6XlMGFJI#2iP%tSo41ZHj>b$c# zI!r5ZqLUZ>2g4zBNOzm*B35y4S$|y_F|@f@g<>JI+xw=VSMG7o6KodB)%(yytt3n=H-Phu*f)jOnbn}r`zchjPc%`QTcUp89h7tInwRnSF3 zwgAR<={AC~FG6h$Fi4>U4yC!lo<$xDNt*nSqLL49T5Mdcca=zK>@~nu)DpH40b>;g z1<>N!jzzYB^6l|Po^;Gjw2NvrESRtA%qcfWnaZbSy|ED6pN*NywBC2{Ozg@cd3#}t z76(AM{=*h6NQts$PSUggz^|D8MKq-|6ydJOtVjw6fiF3UXlHNyH{CN>&BqXkkKtYd zOA9gwM8Q*WXsH)k>^PxVqg8md;Fv)A;1!9Lp*4AgwcLzoshG^(Dp9^`?&_(#2n-KU z^Nyf@B7QQ_vMvf}7>yU(E!4W0D_X5ATZFoSeVfCrxa$if<)PwRzr3~vO>j5{!xii|XHr6)w)w9syB>N$PyeU_*O7RcG<{v! zH)k(nEHY0~VnAKbXGuk4mCvTU3Um$XI_8X8E;d)06T@uDB>&gRCWBTPd?!^g!9u9L zYncYuaus)(Y-f4W8^__9qp+$jqN?=6vy-M-8kq~5ibj%tZ!9k>+OSrclsPS!16u5| zo{~=DvVZ||c3D*kR(nzRMN^>Mw&`56?2?_6nGx3vznTI%tWr@;o$z0SkRvh9Mt#K+V^SS%pkeP65y)Q@I&=j6GIH8 zUN$;KN8IDCM7&yfO0zDjD0ekp3WOx5$oN-LoTi!V*3}IgaIHhAL?iVb=>sv+0_J%CzfXBfATUcGPy>uHdVdVTJT{B`e0MT7hk3; z?8Y$No<8f)KDjTwxJ%&&8@oJ$R4!PLos9X}c(IzWq!pJrs_02b1a!8xtcnG*8EpF= ztPN!x=sA;1w6y{I{C5#|4QHsH>kp>bNE!~+5G&h`u_YwTmP&HkO4w{ws^@`v?A_d9 ze@tUf|BT`<%LB@9KPzg@M~^_F)9KufnrIcv$)u#Evf83_gv4(fyLBZ85>m9_wx_*C z4qegr?$sSKwr$Lvn|4Hrf|dwWr&o8taq#?xD@`5fUhSMg z?m77PDi)341wU~5o3pvkct?6o;T0d4SE%ib_~YdnY9Lm@a|PVBcDMViwjuGtNz1y_yt@#7vR+^ zXYsz4v!bH*Hjqp1w2*@cHV{kj$x6lXL?E1_77`sQd-o1;&Mg1)dAEG(PC$@Ne%LLb zzy$aWR6`ffXEq<NWU(m1vZp+K}MS~WDP&tD6l1wTzeHHtOJy<%P>B6 zSrXs3rEi)M{C(u!Habl8iPzA_Yzso%8i#_U7}#IjwD_#nR;O@AEe-H8=7mNO(`` zq%s>?fyc-$Ju9kzwt|*7IStHoy}&YybZ*t+t@t+0XV2h?wbs{{3bvgcDj1GQ54B`S z4g{6Eb0o@7C9~$Dm#*&Z{S2EbXg&#)q1UrSrwvx0$z!}TJJJcn=bx%Pjp{BywGmBy z2u=TxuZ&VqPtT~Bq@I{HqT$eA-CVcNN`0<>47xRhp7SZy=Kf<%IzH_zmhBv;nz~# zpW(!%)NIJDu2Xip_;*~?B8kR-Ie6eL8+HZ~*e#;B!4YlSI_wBR7s|213bQmx_46Kg zG&xXE35nLA(Ga%G6R;`4nYMM|+4|Kvu61G7X*( zEnEab21u%`rTVl?TdU`v+mH2%3Bgcv@mBU!+DlvCr@rKQx;kDU#ZD2r&8)_aWSiL# zY!rOkS>E$ExIO$c-t4$2X}RBENmA>P%P%3a$Sf_>ez5F6EOVg~3_+lg8XpW=6P3j+ zdXT42ADj)|3M-Q^=THu#$HT~Pt4wIxe+uB)Y4XRqO$lRbig{~XE>ddixMl9^>Domj z*0%t^pyc!JvHw&-1?a+=0K<(~&1+4NxgyQcyJD7E?u3LO+aXfVCL;#oSP(l|uh@>F zcSvslxwJTFYLG;9+kv_#otyd6;NHP}$}e_Bi|u(Cd;)lOf7E*LqE}s@W|=3^wbW|Y z4GxI2j~SfusjS*55v!YA=Xe#VJ)zL>r}O=kW$n4My1i@&xW;CSIj^Gf+npZRONtYW zvPDPQ-G;Eq_N^H@<|xEhqCMQB?kd$4{NtmPjPLm5M0${1D-KV`NJ)lm7NIg@{sJEK zbgG+Lc&plt<##*(>>Wpy8z>9-I_k{3*x{6z-Q^z!)#9`$3FCg{DtAuteV9TJWhw#vKgXs3%5D=T<0779ymuEr%WYC84v+)ZV%ipOG%}pF$6W#>CxXvR&fJ&cX*o&*xGhXs+wAEuk}5aZYZ*;B&IGi^nJ&oHNAC}z zD3#hN$*XBL3HpLjF21*w>x-?-ogpu`8H=<&eoeISppZEy!IIR8=3#N`lIvVe+Ai-` z`!9dsMO|+eu>N&r*Ql}!`cUra2?{#-n&ppawqNLa!tew1gBQ~wV#g?% zL!@07Lnj!oTWqSa&@ngjPi&{6M}F=_g2t&0grpNfM^q~S*^}W4nCWu7;#{0XHnDA0 zNoEYx!BxFh@3>$2O3+Qar7ZO9)Ce}+z*mi=8hYz!FZ?X;?EWs{nK}k;-kbJlX7g(D z{l>!#oz7L>97%^CvQ^$5%uYW@q0(r{9#ZgxmPW~X(Y)-zQl&l`uz3^C)D>LZ zZ?o3$T7C8Hhd(q+shS*8d++H090Gu3FcQAy77=gZWPhcK%;gL82gK8uyvUchX`WxP zWuujPYq&mx`9v#>_vLOz7I#(?7Jw-!8hH76Z$A<)8+-T&;cm>`5YpOQ*9Eqk#$+zT z_hut(k)ehcMEqmu>WX&QpnofbM7%m+2EecZn;-XY*|c6Mm0r90Lh8cfJe29PRQkW-+Ew!t8=j5MOz7kL=+l&R6RYWw{AB7dzFeaQ%Z za_vz!3n_Ey&_;;PKZ1@Q`lpRlB+bf{j9B2`S=!kr^3K4ve~OH;b~}=;1dW|NmE-b- ze_MyB^G3Db&u6dFxWQ;tbu0aJN}r0ipmyCfC#8WmMO8pNnK|*W6^_bER&2BC(Ws^4 z>NhTl#Z7YY_ESbmCH>2utrd1^|jIB=;Xo~%)6$~B$qY7nEQ*mUB( z_>iEoQ1aFcOBwy~?lN-Cby6Es+gv_~cVq)*PX{YET>kT|NeGEw2-GX+N$KMTUi%Gd zyzc1tU#%j`|Bc{g;`-?y|Cd1dDQ&KrO?ITKof^eGQj$x37v^TN75c5NxdhyhM z^xFP>`zH{IS&N;oE=kMlUJjw1fx;+;!Y>kAMwuC>|gmIVh1`k{TTp;hlQ$1#x zE!$jx#<5SgyWRbLX0fX}a}LF{aYz^_cDj7-&a#0S6o4jVzQ8%VT)>=Sc};460DS@@ zqbe`7xrDiKPP)gCc5X#Thh#H>JfE*m8^P24-Tr0*G*s9_?5@iRzt)3`h|!{oNb8|k zrikgf#wVUt)oK$QKVDWpxO@0M?q?Ij4bePTJ|7>6zJz+m+h-G+V6ZwI{5^6B{2a#2 z=bGl3OZ`o@eBbBUNOJ2Lg3#fcnkJjV)axi6u#!=7v_!m-t9+Kv+g4EX>(@d>-rS9J z#Y1j;L#vp{Wm`jXV53SUJNv6ohA~I55xvq=1mf#C69kl^lZU=T)@1IastMw}t#0%D zE_NTm@-h^fh@o$kzFP4ZIH)=@&OL7y zJwrqSqsgKDsCkN3xwJ5~pLjro?#SY?AcdWIpWFgmkc#3H`?!!{)dx}rqNP+EmwVzJl1Xn)}vngm8y-y&pQ-KBD> zk>siynuhh+N(Bz?PBGRG`cA@mz3ue>LeGu#OBcd zO0is<#nQEbO;_wotu~zN9ZEs#Yt#M(&|Qv_gVLcn_-9lbPz#IeP}J6Dg#>DJ8bsd7sr1Xy8o@qo~K!BoUAeo1k(XzL|!>uJ< zGf78)TMgR>0Mp2=dX+^NG5(?FH~~1xit+Ji4hm8q()VOFdyEpcupWHqFaEZu< zt|d>FQ41GfF3&cij!N=X4}lN2jrgK<6qeAndP0)182}oS+VWrc(y!o?liDczb<_ga}8!?zJ8*x+#{b9q0l3NZTQsJVS)Hb2iAk7&^3^nBQ$=lhh;-D1i0jus7#*aL$?cc80xN8RXbkmV>4$1br85@KvpD@ya?S)1&S>2qoiubp zNB78lBaEhIRZeE;eaqBA@I2Qr_MTSRmDzTT4C=ney7}H#QWbI~ZBObnREZPWmj@^S%~ z8{Yr52d*aYhfsz4^7|fg=8NhFTV@F-VOWgN`}ri~F!j;jOPmq(6?%tAHoSOq4eRy5 zv*ei_33GRM-H$L;%wwgd{xz2>rSi)p$u_2ql7EO*4W>t&vLOjZsVptsD3wN?a$XOr+{m02@1b zaPg3a`$$gP-u3ZZCn6q(0Mhi(-{E65g=#tH!GuS_>BU7Uh_Dr$3sSf`G@~g{(?Ib8 zAqRY6hGTADPSTT<>bCFmBD;w9^?Nt-B1xd#h}}@Tph?D*ejOxTQkK3oay}h0Nj$_# z*?#?53Ae2mbFWmTa?2`KhE_EX$6_jQ#7ht=&ZNdCUy~lU4nd zS^VGnyR&=Z;&4Xm-$_3yJ=UZEX?o|f=URw5>G;T~a(4#E%BU8u+LAg$Ig^m=I(72} z+-&duWI`daB(4gTyY#Hy0!^fjG{HbF^nZDp5*;T(Wm1ZxR+P=hVp-B|p#N&>)=>+r zU`mww{v^vz1hpiusZ8pWvz4=?6RaMVapQWy9h{4R7Z@?cIU=Ub*$U#94{J*7f@j!; z@JSZ)553<-E9kNB45?h#a~UyvO!f`9N_%2Y%KX`VDG4Wq$PM9U4`kLsHVMh__$85+ zv=%BUn8MB8zAxh2(9WEM9~LU&Sy)dK)C!`8Ym1o=38~Q-JLH@e!ZA>d34063@gQp$ ziw>Y6TYtatKDC{Y)&!1MLrI5YFN-vWh&SekPY^oxc>uHk7FY%yMWcHxzdv)owN=@% z_{V?Y49Cws4h_AIjX5|$>_G9Jxy!%HL5*&3!Ez|t#LPAA#4!vfrKNQVodn%>Jb5{A z1IS568YX)DbG~kz*E8K?%{g*nBvfQ?E43jI?2~v!c6*DA+yf~oSd6*?Kohylx&lPv zfp*L>j4{UO<>l8;l5Tg+IQVRG1$>vg&-oQj$~)hV>Vsvkx&LryxEG$K^kv45v0#X7IE$O6uFeQT(>M`b z+Vi0j$6N01yix$1yK=s*HSNSuIJ8S;Pv^FLTl(Af2o$ajMcFg*p-jhkCDgMbUqDMZ zuxdR>4*W_l5|L{ZfIc^ylN!Y7j%)KlU=RmbmwdXp4X{ zc}yqhL9Khqg4bj0$s({jo#WT)_G840l|VZE!JRdJ?{wzMGt_)7H(!S>JgA~RrYJB#Y9xGtU|rqfD^7-xay`pIrkPAYToOpa%}w=D5#2@x zqADS$JZIg}92;a}ZCiB<#A?1pjK@%l7f)`bgj3X!Y6Jehq85>q6Pm+OwucEZiUcxA zPQ`jgae&UJO2brDqJpt@7Iu095~l1!CJcEKSGr}&6jNLx-x-W=2?6rUmyKn_U6y0S zp1(?g34*%&rbY{qgm<1Y`Mvw%%>BXn(UjSVPkc$?5Gb+)YVr^;n*KZiBU`MbPZh(v zAecC!?#=(p3B8}`>#~e2f_?d#*2SRl-G@_KIwX}XdF4(o*~~BKlB1}dEldmqC4?3x zOpjB^N(!3CF$~D&HJcN<$vs|zCjUBvzsa^(LGD>9*Q!c!Sxj72AIV5)H0aN7GMN|% zH7m8Iav?Q-T>n_goy6hK0`%H#DC$@89zwZj2m2fE`++RWW5uQYSBV4LkAMz(X0{lOYLmF;OMqGfsy zNO@H~Gtdjf4&d<(9lTe49XzfYqL%_-X&K`==wdO71&zQhG>i}2-=c>Sjhmm00Wo3V_%o9&Ni`LanX=uyt^>fKO%%C7zM;ywX*iL`2j(a{rIvHF zZY&yUekt8HUA-`Hy`SPWfDwktYyC^dyrq180_dWKU&g$k&kA{h3eL`vbpEFN9X2pD8&s8>G@)o(#kHLV-qedB zYR=S*WOF7G^QZgH>JDP2#Sdm+DI4tJh#j$1RvXa!SMs&yke}R%xQ)=G4nu)>rQ3W6 zmw()`AkBI>|AZ8w@0Yt1H4>kWB9Nlax)Gv|n_n1(FZu5)5*jpr?(%0cyWe!*fbw|P zxOHTAUaPgBoVPaBXDgG0gU0;*ytUeXE>euI#S&^%R93c5^nZv+bNU7?!u88YIUA(Z zy~l{n_3wz(w$RLmH>b?>*qh9kBD(6OV&ZtJnnlPm=AnCi{xcQhxCy1o+MsHgs+Uvd z8zkE9v3SSsecv^ksi9N$#56%`ZH3%j1WQc!r<3q0*jvf-X9-bg|KMu41&Xqy0Q>>^ zVBBJ*@CSh8v) z!oR*78YW)>5d!z?>u`i=-<|Z&I46Ix%bMibB@L~ONHS78n!jYJ`z=C1^dO_X!ChC_ z_i#EQ6?}VY&3y(hao@SmIql^1Yz8s!4N0HJ`tm*#=n?ddvmDszCc@T+$M>CZK0 zI|}*b1u?`}6tNP?$PdYc2@1qH8J2-=!pRA>Yv*5s9mVlRie_(ln&d>+A879pfwrXAzPxPEu1RsB? zgAboYc?y^Wh8)PfhxZKzg?8o&HPfXJ$p4|CXaOLR{ zV6AG&foFkm2ZbK#f-ZfKTKz^BQI;-E@+&Jxdg`PvYVW#9hPvofHzSj-X*1p(uPjY< z<2AZeo?Fhp4+aS;TKdKxFJCK!;@y5&VuOt|%Tn~aD(xZ5nkd?5qM&7p*)fbuacTcn zOvM&qEQu<#_PVN@i`iK91340Z`O+_DbsK=1qKQf&Jw|6c)r+8eGx1;*b{|rZZ#YF# z)&juHR>{w0effPIu~8;$E1#O|Db2ud1ZG3VP(u}M(3{WPr`(azuyMJHlbUAS)bwOy z_WymAKasITcFz28S<5pyHNMFe`l!I9NVPcUpc|Bb@w`3sDH}6yyx1tkkV(5R48c-* zMK~0$8SHb0mkTGgkisyi>2gdvxY{X@{no?|%$aXw53RR> z-D9fxbrG3{ANR}t{e;cyA}OupRvJ92dP1epy#n>AcqowE!8>Q#?g3wJ5zXDQZN9{> zcpHW%R+b{7`dMKrTY>2ecezOhIi;={GOp7PlTFi2Mr}B3FuI<|P?)hhh)5;gj_K`j zqM3vxAOUhrM1O7tw#7%1@S#1aFqT>~nMPI5r<0LfKal25T`Rplq-g56tX(`(2IK51 z`VdYTm%kJ4sJD}Nr)KyL`|J*KDUTWFRr}!68_pIu5GpwrBH*f_NWDT2NBgektp@csHFcnVnNJV*d z7ekCwHRfX#$Y(`*Qgia&fI5*nZVS5&w7h_dqsA&fJq#H24M-L?X~{A^c=tZ6D=Y3EnBN2s zmWm~aj4uWHpldrGjfo5FD^J8x-;NGizU8u}1aLnl(GCiUgyYVPl6{BE1I}`N2uprE z+8o7_6k9a>XY89nqt<8GaDaCfgLG(X&oJl1Yk)$WLsLN-vH`C$jbiMn=pdL{nLwZ5 zA=?!JG#QK|x>0R=qY$?$9gU~tb-$79B^DTj^yqJ8M$KA0|K0;JgkoVmzKvv6B z=MndOT4-uOTn_^du&9Sp7Frdrw7WS&O}%6)=14R@LO@NKQV^q?cjn@*ENR(T)2!Nn zDwLvK{RVm&mWPC~5mc9R@5qgHl2N=f#6TeKbql_v%9V&TpEr5OCGlR3>4te(k7)8o zqW>yu--K(l-Q@;)i8rX193o7Z6Cn`14+o0YyayEI`k<7k_VC0P*^|NnE$~SF^90H^ zNCW+bf~0nL-xDkq7B{#z=sXaL_LUDJ5PXRS%C=J_dIc6tpMkS(ETeb8RV0G?mXTVxhXCE)%*!2fT~8kGv;^TU^;mI<0Ov z1+I%czZaCoo{hq@m{P;1E&9pG}z9e@H?<4Qqx6G4GM$tsCot${swxp>sv z_zUC0VWGma5`&)OaPR)x4<7p>1@VgrI^-C*R*UX zF*-w;>IHnBrqDr&8{YLRyJ=i&atl;m*WkR{<%KOr#k#clZbMa)KJQ(CxPBo5bC`b^|i* z=D)Q+YZ8H2a(LaJ>FhM~TPcgq*4PiquG$KgdaAVXS=ss`r`!qQ;8RM-h*0Lfckx|8 z#p;PeYHb-@P9RLa$^AkC^BSa?QI2mrU73xD0_@wBz9ZZaKsRk+SN}{#c|;a_61yQs z|EphM`@ho=m^gp7HUGxAY5R81^m5flof$V$b~UB#6neaY}jZ)<4t z+W?MCrk++{pLad4qT_jM;^gYJvaX>YS#!zv>omYY@(XMX1Ktf? z5EFjuq~@xoD|!6pwjc7x0Y;G8!^6L@Cl!1^5%99x0TfOVg*1G_qWx&nbT(q?C!PHQ z=ffX%!MiO(G60u@h%z1CBk;XCR&;s4Ho+zrBi83)As0bLXd}*xQa?P(op4n{WFx}w zd-6Vrt<);6w12m0-z5ihmCS#Q>?a)16!UPvrHNoWJ3t_L{aX(z ztnD`WIQ%rlQe{t$(T1~&qi37n;~OxZn1XKVW6=verT%)dLcb|!h*x=?{0qPK{nO#u zBpA(@w0rmt2dT0NUFg|ClL_ zDPVl$I#gxtO7CF7xuuz(405$SWNq15 zrNddC(rg{;==H|blyzi$-C>W{Si+3&D$)-7b%l>-D>yr;jj1V0-% zYUIO5`;kjV_hwF+@!%hAv@_rw-9igWdK*dx1qY1|g`B2CR->i%_sB+rW~uEgXu9uO zkxa#6&fauiz1|V|-zXxZF>K4q8_qf_nD!Y9h+FLGRT5K}$>6nm5>w~l*8-7o)1rdk z_qHquL{iBAtZXQkwL|SD!WW9(0laN*x7}F;V=fTG>h7!YuF@6pOT%OF?7mmgG*#8% zOK}`7a64R2x~pB0m4u5`%uW<Io>n}vmZ z0~tEE68XqW4*z*~zW^B&sDIs+BOX@bTM& z8EQ&nqshs!aR6h^SW}F3CuIeJStDU_l)qhz6ZM`TR{Z7>8&fdOeG#zh#`!e*7K_bP z3Mx)SBXkR@BkIGXouVSns%lbA@|wzoo84fvocrfTkthb3sAQ^Zqs_&EB0-apbwLp_ zFQ8Rr!D9UFGd2={AX7#r4om*}@Y6eg%*QgYgk(jqrK(CjY-Y1LCk?PVFsJI@A7Pg0 zGI#zpqP&QKJ^U+_(MI@pfWeGjTPBKrYq3@^qTl{X!xp{0SFj6J{j6@*!CJ+Vd{=U3 zv3OSfUfAJ5=Ujd?!)D0(>O7ADi*LPoy>fAhy76JQkz|o64dQHb@TD%tV|g({g%rz8 zPfm|zLX}6@TfOA1oj^lltNWuI%l3eTxv+h!bp0(^*yEhD=#FLv16q0xej$3y*_9fN zMx5@=dTE*a>291OiRMjrNkbW5tsoTM7_Ip!Zgp{qKluP#a=#=4Hn54QI=k!gctpYk zK8J?zyVtUk_ZsFVNe@7?lMz{;VYCweGdZGCriHG0D2ex}IxMc0C1Q;Q_gB$W&nUw@ z*!#U-FC0BIGKJq6Q50l?U8KE-X#W{BqItui+{iH1D+kbr$bUl71JziJz;Sk*soF6? zXkSZij{`7Ma2xuz(&?bpnhIsMW0*XR7|r z-x5{mnhp#y1GeRnMwnV(av$g9Iuymo<*RPVGL-~)7XUB`qU?%q5+#IqyxY9&p4CvO z$WOTK*vhy|F|)fft+U=?di<>Rp=mYpy$$z)QQS$Qv2Uvj;@jFQY(%7g0geYjCHrl( z<#=19_2qa?`gW2%bv=2EDCpQsbBgeDJb)BEm0Ngj0@;KJc5!0VZ9tyn-#?bngsdc@ zSG>Ev^r2lf{>}VI(#c`}{6qNW<=nbyPqZSGlY_dyTbP(y4oK5io5obC>NmA4Ou^SH zQ=b+APqc1;7H(62nCj@(LGlLW*>^1CDrUv5Y(@3)9Le86u1J3n*`VX73~#UcUXWsK z@F!GL;L0jN+_PgHALw|0~C$aykxg7tYn`LDF-+&rh+GF;l9B^IlH0O}w zBoT`cU=WwhzXLXnU(gRxO`S7D?!Lq0sh5b$%R4HnWFfd7N)jpQ<4~!Z@xO2%ZjSa| zKlkpj9HFSWQ7&)3+!!AO7dqxxPq&bwmGCETzU*EeDXOYUS6I3fZGgPN-|){C`20Xn ztiqfg3QC80{a`FT;irIks=)=Sfiuh$9;{C9BSx%z=k-}aMHwT0m|INK zQl2dAf>IZ-ISnT#a5@EYK?~e+V0#_UMQ}(YCwLC9_{J@v>?1Bbz&hbSAFZ`j9^-8m zLLRH6oiN6dxHuYffB5bPJ)6kiO{8GiZwk0zHYDfH%-OE>4gX_gpI=sm4YiXAlBXt5 zM!l2%?c~6mQO`=M(X8FsDi9>iElnMQsK2DS zRT!w3p%-+5qDlcXB-tRddy3vL=Og1}*C<XDR)DZsJ^f+mJ0OC zenp4jG#v_NPNtjGeK(RGU{xoz47i`d1QoBIjm#F2$9RUyIZn4>UdOTXE3Fi)e^Xx| zll0~9Xtm0P=2)h&Ii5AY?;av=$3;5fQnXItZ5SXh7_3=&4)4L%EbySt;QaUk1QO&q zjfb;h78L?Z9r?o<5cnmSM)hi2X|r^5@nw`^d(l`4&XeXpZMSI)*Wf~5vr*Ond_Fpp z9e?X1S;Wk`Hhah<5TgqwqH++A|D!SGFKwChW4mjXhASAOipsNnbjMC;3<_{&XZ4u{ zT2p30Fo0E9QS+9|jrDv)Mm$wXnu_QQ?7I>7TCqL^v`-IJqgM~@;Z5b=H75i%9X2;g zAg|iUgXt}s%n^x&9?{9D#8d*f&uA^tE}fV8U_V`JVZ2lq_kQaXZ>Ll_Z$P(L;mLTi zC!0f;uT%veSa~g8(2}S0PJBkAcykNRIqAB@fH7>`DIdy%VKV&|9!c;GRynmJ8EcCm z3je1J;$T-nu$fA(CH;&uC$P&Zc!I8!MF?2iOvUp2+tYT2LuL1Y9-NbF?9WjMN-H$d zP(5lfJWfG{o;I!`&Qv#9I)B*!JlvYJ z!_2WXnvr>Uh7}2)ey9GY_t&3#`CQL_@)g|^E+DCgMZlyew@2gI-(aXn56}}YJPCoI zU#u{8@jie)Fe*e+;Gs*KB|!`O+IAPs`~D|5UG>(H*qj7?U?3#=k@ZI(g$~N+1I2`%iphIp%Ckvf5yep{hShiOihQrouPo_^1?}BhMmq@h zf_7S&d=-3g$*W*eYn_LS;)kbJkr=A{(Ohrdhst2k@nunZdAc;_HKUkabl%D1Qq~7Q z%l}+@8m8)p3lHo0`;mRIv5ev;_kA(OkoGW#?aXWTdVm5M{>{k*F{o;by~#n|kfMC^ zGNbXSlPxWgSU+^4Qat@u7(wu_Hs05&ymcIDeku_s(MxBJ8@}jQ79db(C)0VN6=f@4Olx#noDMciJeoxh@ z>z7;6jykROo1Gcp`LrcrlZZXhw{Z`BOixic1-^w(p|xp`eOjMmGZLLcIRGze9Tknw-rt&-?urm z_p4o0S|;AXuJ!I2|KG7Pk2gcQJ$IlO7udU@sXa%$NOT?pl2E`}3Q{u;TIK z&eKd~q0hVGx9ytHOm?WXX?Aa_4s_du)!fc%(-xEm&zaf7xTe%>YEobn+809i23icb z>Y1X*;nmmsReBANXkVkAXI#rdHC@IFz4?l4OBC4msZi)h~OtLWCdm6)LWszN>1L=XKP{UQ(we%|$tB9e8XC>S40V5c;U z>oy2s!?9wE$_Akx`ff?f1;y^$DJf zWm5SCV~H)8$j^84@OR}SeQm}kp&5M`7VZrblBda&&zx~Gf|6y?=Qe7fonv;}C!6pa zxn#hae--rC=;unt0?p@&_uXgPW9n+5=S1jhK4|=+J(Wz=>%}42sQ=3{WkhZ}=eVmQ zOfM>Y6+K5azJ=vKI1l)=Pam-00@8n_Nk6~XQ{p4Ei^QL!q9A;jpXXot;Vbs*8rewZ z5?z`%Hj7Flh1WeK)(xiJJrjILe)eq64gdR{>}3PC;()Cu{R1>qO<44g5c4Wcwe@J1 zl~k9CA)EXV{NFXZmnC^Q5)X|xMng>>3)+W z@{XY+C^4eSKE6e$8y}Xo_ii4ZTYNe38HU6nj#C%U5QmU7xrS!5E+|0J5|;Y@?Ed^( z7oEJ2UZdKgUO_%_cgLTg!pT^@ccV2x@8N>+E2FrsTiOp>*vVQ~ln(LFF8FDWW8Rrm zq+X`@xKI9FU)>F2t0OA)Hi>V7;+7gxT9omU!~HQKJW9`9z9Br&9*G<)T(1C~*tk-t zimdb>dmx1YH+4a*It7r!A-@B1zA+)#(C2G18zj+0!c(+DXvwHx_bj^pWjj-ybcITi zkGhSYubO{X=hfHNqmH}fYH8S92GG=wfQMI>peR&XLN<2n=Eqy|iJev--SH_fqQdCChD9DIRfn^FrRkl8RQ?eh+=2duUsrXwiKY9D;(u zmuzB~6~^g!(U9pkGvfm+7PUv8W~*fUX?47%ha+WCS9?~&G8oB7RT0yA#p|k_O|eQC zh+0Fa9i|)QymT)2Qpz|vrLP&x*1C<0R(}u?E|O&$rFb(R>)V)sUnHnIbY_*7b#yj-l~@g748=$Y;50 z^W-{ zf3&Quea?J98d#yN9l-gA_oCPpQUU;pv56VuLv!>9qL}hPKQ^)(zg_mgzy>&u;Z_V# z<7(W27hg}-3>(A*QCuD#k-@ijTFCy^v1)YyjD|oReiuS zWUlG+PBJ=JzA^Q^|6X&cIqUV_6qEWATq8@4bH6W4a5+#+96U|2O^w2>M(Xae#)~9E z=iwg8Th#DCK@0GZm&r!VtfzL405Mwbn5}mT@$P83fG?&(xIBI^kD@~ysvco^zs+=w zXp=BmRZmOLM9;(06Xx&l_u?Bj#R=N}(pd*RBc!05%e8D8FZ>la;zad#qP96ZtXhil zNKdhNHD>oRT`q4-NW--a=L5=C9HR&!z+>2a>S$`U5~`bo{X{c1T8I3UX$ZbfOQ}0x z%K8b?uwma5IJ3!zAZ|+j?L9;%sG-2qfrjttFGBXUnE4nda-$(eUYh}+OUjtI>&+db z8mO9554f40O9Vydk+3chL(+kEvgIL&Y3MrvBO1J;aCWvSsl+qff|S8Isl>I+wRTJ~ z1Jj}DXX`A3UI<6>yA1g*q0%kewV|gH@1JUb$APHrCsgUH&f=dU@??rWV9@4KU&ZqCh$UH}{dM^NmOUIPAlY@+~5)i;!&#um}i+ELhD zW%SI7<(8HWFOOKx&Z#vg7rG!Z9e?TLf{*-g6#PRuHD}3*@05BI-NI>(36(*qeg>JztaJXP@>5z?u1 zFqKRhdy*cR-mi1N1y(lk(3uRwM}GrmOcfB9>*u52KrS>6U%`Cb-`2B>CAnQ-EXPHRPF5m zHe~>S357`IVd{A?Ar}}8PCWk_&}$2l4BY(&^0lg%`mgH9^?%21FtM<3{BPA!^T&T9 zfi(4sb`QF-p|-RHSxZ|?q;OxntWD^tt2b?+40%1BZ&Y-FFun7iq0G%-rcRYh(GdFQh9@mg6nM3F=;dOr- zK{yU==w*tr`+|yl$m1MV+a=T8CE^UDa0lVlbL`fZTiNngI8kD{@9bse=)O(-UPh8r7K)Aju=>R|5q^Yj#Px(Ud8UV&2NVNSuaGIHGkm(REz`B<6H-!g)xN&^) zEMDbPwk)GwY0+hoqsef;yXu(>cT~0PeHGk9yXXc;l3f3=6T1J-FD0&wgHDodTG>W{|OVYvk>re?Se+4#GpOTSB& zsI+4GdCL_&d-gc8>41Z{26Da$&{mHN9p4aAb$=G45TG^CWpVzqu%UQp=L#FD$FJwQVPzCkRW1TA|er zG7!D09N|fRuQc#ZXZA@)ajQY=+T$)t&@X$ARS}AS20Tl9=lX~q8;UDQ+jfv{4|L};5L_B%; z+1#xj=idkGjVo0HsJ7slXCwGTDabf|MrUk0MBT;TBH9B;61Za`HSH-WbZ^aQ&Wn=t z!QcMPPPUmN<9X$Fe}B9O7jvjb(+N|Z4JrzG_A(cr2Z*llgkB;V7dC*}VZq?s1L!R$OoEQgg7UaX>JbL0yG(!mkQ+6f=d4Z(hq8FfQ;q=km zw0G^>#=o#|lvFD8L^k4$e-Q*!BbsEwTQ;2&>17u>#=}r66d^q7R#oRC%&kREM}8xu z8&)t9bMVL~37y@SkQAo%UGF;=PYw_qVn)$x^r63Gd|0=$XwJ1b)VBV0#}e=iqvT zA>hk)OpcG5Q+bdv6z2pjXK=vzL8>ERWK!lLMh*xY2$d;{Kzn)W{H-5Jxg<_u*4ZNQ zP%BGNfq3f7gn&}4w;DHOPSdPu%EWf073nr84Wu{_3K!JqyS~KLSx2g`t7kP+559Y) zP4TD_HDumKF#5I8Coh!_M`$I9`t)5jc8GtkbMj6p#|Plv(LnXcx~3V&x%YK@6T0_} zS0I1?K@aY~O}};*Jn0<26WW0}j?}7xIZ&r}z_|pD1%yM!z6AE}R+IRN-P(J$U#An; zGB;kN8>sl`x|%wE2xLB30C}wB8T1q{e8T?CGZp%eW0;xg|3@4C|GA{FvHowUnW>-g z<^dP3u4RneBj}mphQxMS!_((m@GZGl9g;(zb3MH zd1^+Sqb9ucdEg+l)oC2ZakcZ?QV`$r6`U?=nH51$E9m%B<9LN#{G3! z87Yah!acnmzwHQqwCX149-S^fQV@ALXH zR~cOt1se@on^yL#Cld1NAz*5mAt(db`1soT;Cxq=oBS-lpm>dsZA8!l6BjCvyp9l2 zmkxf>qSlJdWyB?$=r8_!ey=N0+t#Xf2dZu>(m;Aet`cz9UfV|it#H*PB0{O>YMzMg zS{@rjYvLC8Ty7eLyTX;G$-X;y)M3Rcf~{2%08*OT1qWz^|1>YegJqm60k&c_Rh z1A)*iX&F3|lb==DO0I@#rm9ok=ImR9 zx*+47=0r7e@`YFKPh9g{uc8kS5K$51YaUurwjHpPLYHeDBe`$p@E*E)iW`Ya?ok#B zi9}%N(_97N9tYV?5ss}x_4o!#zK0*Y;a!l#s29rQ7$MFu3U;O-S{(|NlH%1p>r>jM zP~VNu2kd)9wG*b23t2nGs_f|4u7V;b!6`kALWT`Mx=|^3VSKS!09Y8Wt^6CZ^*jqS zOCr>D6q}#LjA&hL67CLAo;pT;B7#-u6G_=rhes4_^QyoTfntbxvg3%M6)u0w-KYL- zC^62`9`5gmo;=|!VWE6BU5e@j5S!#3V51TPrtxCB_j8OxaEN3sBNjOcn>3*lqzi1Vv>jB z;mYZ<8+0u02~ba_d4(OIaH2^<<8|5OkMabAW(b#`>)1GJo;v?XWU@Ex&&2oZcpbS& zHAU>MB#tP~M?l5t`X;ypCNrXQS!c<^)amVMU!p-LH_>om*@)d;Gi@r$v$mS@lS*UB zObuDY+*+vKjN@KP=S6Kc5-p+hvMUrLHt(WcdRC4_&@UKB2s5l~I%OsC794Rs8P$Bv zu;g+}I^+M4lqg-cXqe;JCI1N*?Ah*WCm3C;iPjgn7^{1xQ zWyT|tmLT?-cMEfp!x-RPZQ9exph z>~-%^*yUETUoi{anMGlIpT2F3e6u9#9^=W;J)Z*%Fd=UXOXI3(EySiv@k2qi}! zy$fMgao=dy1mqKEXT!+@%7>rMznRDXN5ekTAJb08f^muKIh}t8nn%Tou6n3}^+h1| zan{ACQ8pNlI5^fa##I0wgxW_7l!tnzu=N*x4j+=SNpu)SJRmmm!*S^Ma8zaydW`@B zrI*P8bGjKViKyIjtIGR^?Taf@+D(bIh@N}BoMT0CyyoM406CNpqi=c8uH&z>mJf%G z(#C+6;`JP0CIs4Zo=8qTFpnW0kqTYsDG9wm)Zq9rx(FGg`44e&`SwF1>zQ*AL<#IO z=Rvf-)>IWShsG8Kxp#wqk*SFiwF@V0I?oE;`d%M3B*?YKJbOckYzfp0|MVgR{OwX9 zeV^1fVR&EBR2MvwV+uDpeP6!LBx?iSS9+7Auj8ffyI<{GQ|6TC&TLbG!jfxFlTY4!3yB z+vDs|=?y#`KKu@?U!uMWBynjheqtVa);E+)w1%_@M2UbDK3^$c4tr`w4!TF2BY+2t zck5%hOf12lCxi$*59*<_`Mg`hGWaoeG$$P3CCQvK#krG4+tRxj%WFz@kEl|I_lJX4 z@SHT7EO9-FPH}9bztoP$l*IN0Q71#(Z?;SK`?dflqc70#)nMi9?e4)Ijg3$>HP4`@dSD%l9PVW2X1hr@^H0=vs`wUpo#gD9&!LL?4+9tcSbQg+H~ zHT}&CvsxIGT8C`3P^gOVy*S19n{!y21%1onAugF_f*!JcdHB`PTl|&Z%MOS7F!Vg+ zdjIVqK{rT$^*U0uGG4asoI!GLgj$?`^b-{HS=lXb8Dej0_kn=o~N70T3e{ku9A}uGo2~v)&nOTntc= zGnsiw{PvEdd|fzMMaPqEMRw=S`U9*8<}sbM%#$|izH~~GbNyTV-Cup&Y;S!a}Vwq!z}_qzJkn+HNcl z(4QqU0&R`>mW8aCv^nB-(N| zp0Dj?MdzUtQ0C3)mqN(Z4O|apVqE|b3}oQHxyvTity$jlBu_b+2;M0F?!C1bJ5@bY z(0t%-Wl1~Ux_{+aSJ`rMV(x=4EUJQ;_h;HUOO@~X@<7aTvqJW^l-uA=u@1^6_TY0T zo!vkb<0u0^Gt>aZP8L129Bb6C+EFRzC8}z?xa9WnqIan<8|QIZi7i9!soPc*K5;WU zVc}#9YxP*#O7YmAdBT?_iEODZz3eG4aSNqYQPPDcl z)ZiQ?D-mYodO(4b3OeU@dLv@)LzJC}DO zs3-jaJDh)~92}{j%b^;smvcd6saJWW9RRPTGe%>5pu_$)XzhI;)i9)xrKC$j$x_-F z!e>)n6dpPbvTRf=5wQUy)>aj*TUzM#ct#NqHq_3w!`L?y#d18O)VwAv1aglc8yzo7 z8wvsX(>+6Cd@KgmmZwgN#4gsjO{V%Wg7TyN0Ry_!OU+mwQ2G4K_qmeXgPb)>k(Z1o z9TP_V_%+q5t03|_fOjlZ)XBn!VNEPN$;lh2grJEJ+X&|l$hxkW#;%1k@F!S;*}ln0 z^;)Zxn+mn*7G*I}4_UIYgu(Xh#VLO?imCKJs(j@CAyat3JfET;&CwUE<-cetQ?J*{ z!I?T$6lCg^JHN5iT69$uUcUE@tSW|RXf|o%Di!Fe?&wsvUKTsMl{fCjh(k-d>SKHD zr9g4%hclJFr?aMzar7Uz0Xj3JY-t^wxN4**088sv;TUw?9z_!QN940uo5D4X`ze&$ zL~fo(lql|LGUj^Cr6kj&(i{}i5OzJ;5=}PKv_DVsDhtm!=j))U%8jMBo&(6$aBUDz zZ|-28t9{ zZ4+=D?K|4;=ON53QmO^iq0QI{c34w>oz@2ZxPhsScu&T;p#9jPwX=W(L zA|h!%mWYGgTG=+jyj>h0dB($NzL=Nt#Rhcr#Q*`6=~flHSIBDUQ2uCeDy*^)6p>M5 zef}vCtqDEh9izUofpyYcWPBN55E{^2!X9unga5CZ*P@J2+)j{nKI` zsR$ponFMrGej^z~sURftbF=0CjK$!6+#@2qX9uMCU3lMKT0buB*m z_W%IYMOY&w-nr!)&V9?x1aA4O;GPN&6@rC!S%COuiJ=8$!EZW6h5cw`Eu~;Ix+d+T+Imky$7GJP+W<#(D?KN ziwwKOC+yCp)XPI_NCG}93ZH7f3%GD;Fj%81aezb9w^%gB7{$p-K0vJHU%;4c)*c4k zth3!<+ht!&N~YX23c2P|W9jE#FRZ_U7K+t#Cg2X*B7KIrOnp1El)X8&l;mrJnm{2? ze$n<{;LAbw0#lLTRg@X?TJeRU=D3>F02ss?FQRsxGnBoeh+wUd2N0hq46SY8F4bKM zE$WAeK4?&SeQNwYrQONt;|YaergN<#A<$&;OQnb{ZEnoS0GvYFoFpWFE#q#titBng z4KaL5LQGNNFvd|XsT+#O=Nm#2z5q(~zqK#L7QNsgNrtnwC;_X(Bm$6v>~>Gc79@(- zGzD5FOO8b~j34V|CTsG!|9(?4KCf3LJgJK;n>%1u*nCLvU&bmKZOtb-4PX!05S)Ht zxiPYo+Xm(mPWHnKv-O4Ag}918d~G)X}r~UAp*_}zEVy^4-3u6G7KOuM0Xedql^9q2Iq=G z5~;+d7-ZrGZkVmX%C)R?RNc=>1w$<^H{r(UfvjQJLu?k_%g}S>AYtH5BffkhTMYM5BhxM#!iA4}4(zy*w9A0HDOcTH zYS8J~7XQzr0-_xJV2Y}1t5V!M~$I!Oo4%F?b7sE3)NXLwP-PD=%0bIJr8zCX9+{dyH%0ekN z#}oJ|3SofG%qv~_ozTHeHw=bfBH-Sjj0YYk2KeVVw8fx~QFz9B=FuNq^q{dKps)k) z8CE^DTue|yS+EkOmCo|63k%(KS>dxIqrMr1$;8-eYF$jfVt169`c0e?O4!P2+1xJ~ z*zVC|Ma5_TrPIwwNt4bs=O!+>qd5;d@>bIAbn_*mUPKGx1 z_TY#5L^dtnh1n)kgG|oDWL;j$_-6{2k0+EC?dkbNd>br!y$& z)voM--nFRu%NFcR{U}lvF#4}-IQ6I>m zM9MD@Q2XE84PvI^EE)-dhb}$TR3zG?VfdzLCi3J&R zSM6liR`us5t&P|P8(5%s-KGu`KpF1VC15#Lo~>ZqO(Ny{1~QX`QjSd*;~X`?Q<57^ zat8%hAc!%kXE%N+%}QGf5xrPwiWoEF&99ona#)G6FsQ+eTKjoO-pOiB6-}No3~VClbTO$e`7li2W%-NS zM%RUkJK! zYEB|UKp6;_he!jIysSy`$sC~R<&!TDNKcJpVMB;3Mq1$Dnuoy@p_ZZU1J@hL-?7qo zypIhtf5G(xObdiiIjdsQNiJ-ir?%_(d1cn&x0m;`xurY3>3FiD{w8d2Bj}5!v+sed@D2!UAHYR~_nkAe zdSL&I8lgdm>WkKci6i=&)`MS#?;=lTKU5R%&NAm8wSUf!1b$o|-8~*ZIsRPke4jXg zWcpzBFGZf68h9L~%|%`4#@39iCN9c%qHb2>i{8w}^y2#ZoTNg*6Qjl4euBtyN=(DJ z+uJkbz!o*0y==4CJ%F;>WkRz;SR0G7JvW_vu&t6S_HuG}zPg_F;>vEvl38!NE&UY# zxXDrrW){`>w>`il>GR7y8P>f*;xvht63LP z(NdA|_4@W2r<@L3e%J>E!8$e`=>jNM;tB=jS5-xn6L%<0iFvlEF7&l$`aFBI@&XL} zetrl4d6^zPd%QoF_5N90e>`{+cjf$E`tkZYbNKl>P5rK2X@9Qt|)SxT;ccKmRt#0yK?7a#}e;SmJoY&UKu-@T3DIhX#P{T zHn2>$)9i55e)r=0xd>R4xyKtEdGYX2$f5zNf!Qq73Bta{pV$`JQPs`_(hKJrp41kWYFLJ3p?towp4uD+qB$(6lQT2pxp#a&q3>d=u=??;> zws10T13!K59I^zE5R%d+;5Nx}OaWJkn3)n8oVsl>hmFLc{5rdK)X5REiy49VgK z+?GUrA{{-h6F3<+E8SSSQq$a-Z?25bi{FjUH$NQPm|2pK*YZj&U-%?pLefz`Kx1ks zjfvRqQ`ynd#JfLz{CnrTK8^oGHmcah)XY%FXenXl%2VQp&5@@C!$h|Ek>B9hw~bu( z){;BI$;zZkg<0ngC9;R4ndg7;8uk-{chWvx@0| zE3j!w(QjroKZ#v7>N1R8Jl2(t6HzOds+MCROfM{4*8zPW``scr5^b4ssmWc8OgC~1 z19ksH4(9D3B(fLmGTe%oFbdc=Pl>SQ{blAeq;Zhj-Ulz$wS2*LVRm*k2<6>DhYths z_s`-Lk$TTkj92!G{+7&$cf2?6D`NvTAIN$&ZCp3Ztv1*zEwEQ=erR2ODE-D(Nic;6 znj2*wzg!+AGsA^$v)&Y4ERXaZ5E4%Xz5tpktgJv zM0a*Ladow%$ww(59dkwLEr~YrN7X^ydL==y@-X}8x9Fi5b`I!hyyor5)rJL@f0`9oh zHTKnowQ8(==)e3nM!Xa^KhwICsrig^p*bOp5v&l7X~OaAZjPA?-`Swta53LzPNjl` zz%EnDD#g-9B5WuM;Q6IRn20)0g+Uq@2B1JPUZ1e2VZ75_|LP57#r-6?`uXXlrag{? z9G*~_cf%g;0HmSlC+V^_wjmQUs^r*2A@H5&?JyF>qne$Z;ODuJir@W`AvAIyO@X$nOo6ka2-2Tf%ZLvX?QPdOP9!|93SXaFxoqotA`uWYU z3_M{J5y>ddti+2KMfM>cipZI#?DcQ%<1d3gAZE3n z+(y6sWS`hq5Mco}!gWLypKZQcaD*Si2f8nZ>83PC05p{jav1)*4P}qvVvlT4AfD9_ z4}C`ooc9b+q2*J@>sp<&y$=U)71j$pOR=_-Kd@Y2XJswM{D@t<@8J;jjA|aaM8r8l z;WCbYw!J%BlselfxQ*p>Yb^{rx-+tLuyyOZKe@NtZpk-R(y^VRuABxA-Ya%yk{N{gMuH>az5AJ^IN4$2o#KHO06l_Ky07>HpLUK^^nd6^ z8JYjX$cKZ2>Aw@2+buCA`y2NSg%1}O{AVzrH<4fCB7;2I!s(juOY%bO9(@p zC&S5e;iv;{4w`Q7opx3Tqe};uA}7edmt<*7xb1K9{x{uc7u83%fH{1h@mfrR!em7b zMhU{^=Fj!OVYb|{7j0)}2YN68zv5_nK^23dGb-cchn!Im+ZrMA;lPCh2KAT=G-2gg z+EAJj=HKz$hYE?>@QP+63g=0A9Sp67(5Z(c^93fbLYcWtp_Dv~MarlSMvrkzBbwQ= zhN1;axu_BwIkC`OKTru5*B$$)2Cz{-igwx=JW8;03+C(l5-K?)|E>r9~hdr;yU4*iWD{U>JfRCc5f}Ar%#GE zFJ}SP=!^kU`3TlB?=@+G46@Lb(FU8skJUy|E?TZKqmT@y9+DXWoMI92Sj_3Xr%5r6 zTdtDXsKNSuB*Y;r$fPf$LtV{4hdNcEt zrDLLg3O&UbPod)lib+#yX9T8i$iunOUCNYxfoWOHN%FMhFgj4i&Rm+#4z~cCA&1%n zmMLefMXk3arojw$;5iA-Glv4O2pGaOjq$CUX>3~Z))EpPhfVZrSA=Y z!wg5_mgv92JJX|=JZRF?iL0_^Iu!$F;WP+ostRXUCbBH&CUC~r?w#Xr zk;6)M#D^ZXx9U(KZah#@n`=lQmn_0tQ=FFyE|C&_lj5nr`^%AMPhC`wDq0J8cc6l= zq8Q2G_u$-m@bP43#htOi)IvlxbCw@MC#LlXDLGC6&JwUEKB5&Gxg=z2QRN}hM)F~9bA1Jjwmy2d<+&VN7kzr5`}nbQczt=i#F5VH=Jtm7wZ!m z-p>a#?5zH#&_cR@s*(K2Odm?n0(3?6pIfjot?t_wY zPx5%2!r;VieM_Sh3_B#J#;Jc%#@21v}t#v?n zn5PueYp{!Z`spRh<#F{~b3)BPtQ(@s=`Cg&%#3=Ad(wU8yo84AqAcP?Cv3PAmS!AJ zQ;1W`FMQP&9NuTgI~U@>Q!~y4C9ODaXUqM@6_B=94pT{wr7~%X_E7k)7oOE%uNSCT z&S44dn>~jW%LgbbgK4fy?)}M5!DnAW+hb-;KN8QxPb5iy00@Rh`W#w<`PE@Mgg+;pt7qOKZzPnuoT;u+Dv0s-5$rUcljP&ysYqv~a- zt*p{K@7IEBni@4cW9G!t6TcHe22=XkpM$l2V-a4}mfb2y+>+GF%peF5KUaPE=-eG% z;MUAYlbl@9yl-o*TDekoD7efSORH2ZFQD9PqjFN=jHg|uVR#wP)O;Y-SdL3hrD-`D z_AS@`T`Z@);9B2nQA)jh_}NlHLU*|l&9!FsfXv%GE!(x$K%GU7=g|07qY3OsfMdDt zB}l=kw9%Z@p#~YesC1S?b*r98``GtbFU~?RN8b*f=pDU*nOCL}0S%AoFx zt60ad93WZslS1Bct;(o$sWeGSesIAnJwRopdgUsH3UZ*&LN^oa;|6zGX)V=*(~j3M zvreW=)9k0k5S=b?U92NWSG7uguFYt8c*y6KnqHWpPZeK{XMx2*u#qBSWgRU&h(c6r z8W_T)k*x;H3nH- ze$=^fFAiH^@+?Gyk3hk-MAT^E_MIanhil{SZa0dFJ3%^bd&oo8E- zzvlw@jb^!_LqVlNUq$6)f7{tJCD1j}Gl$+Wf@?Wrw@xk5ckS(1u*L~W^dxh3yM76J z1v1zZ@0Mmb7TvR7Eg$AeujiSMsw@C1AKv9pnIHs`&+-UE?(uMrw5IvC5|^_`+nH}U z>#|HMqmK9s59HRZcb&+F5-msnH+sr8q3C~V3s@QcgA&B}-+4Zle?6c7em$Qrs;A&n zcIEp(7_e=)u72&&dz*SPf#Nb8Qr|!H!^%XI%_N#F@qr%sVk^&TnM0xY!1z7cv~;C( zs-S`TXu~uurj#;i+Lmc5dBR^gOjs+wVpG@B^QF|b~Py4AwHV#BM;d~DJBp_ zk=Ic6Jxm0jSQ&*zT9r;(g=Q&UMYaMv@IF~9Ts7@G{qx43&fgzLvBsGJUrfJ9{5zvo5Prm2Yqn4FM>_%_3DO zq%1;Bfh!S|h7ARAAfO5`2?YED#M=CVgRAUtoLj`Cd69-$D3Xf%T8YQng-93(?e}*V zqjOQ*zSQ@UjM)wiM`B)2s>KTp0ZIoOZ`(sThEiDtCwL+=%A=I9TC=Vhk>#I6Kif3m zh&qhH(z8bxTh@CG?OqXB&}J*~YNYni1twep3=S|Z-%GOmi# zK>47H+P2U+#Tmf&`*$;@f3e7dsj@s|X!|vsvZi60Q&#=LEO|fuEyJjx8VC&v#fR?((*Cdl(cKvaaNKL~qmS<|ky*W`m4PoR%+jv4Siu!$!aXAcszVtMQVEPGW+NX;oxF^(dX*yHNo zR2j#;bwi>)Z+f-D&?JdFVJM>yhQlbDUMxmte92Jp0fdK9zkiHgw}trT%%K|~NKU>{1t zW*OR4vszhz!_*zysESxt&=0Nl_P>syEOB1M!2W=;bOy>Y3XDL30eK3EBzQ_&V^+qM zyUxB#LA$@>LFVb+ZRc9xVy+^&VOtfT4$4hzIh4>zI%DuuOQ`N1NjCsVhy>Z!v6WZz zi~v@_ZOWUL(>U&PCc(BHM&ErhI6XSmmux{{Jg6;XJ#v?EV&$?^tch*OP+EN zQs$?U+n0`Y=OSw#CEShcCCYsI#a7ZED3egm{_2s(>2U>$I{Bg?$w>N_X51te{tuaZ z0^)jk&ZWUmi_L41bNuC&rK?Jp+lRvh$YvYKTz9=g=wd>ht_ie{0!c(g(XghujX|#o zPST|Za77sf#4JDw-6~i}&DjRyJ1%)6G10l|oci=zgdS;*LzL6A)`?*viNyZc_DW@8 z;xCsJ+^U>uAx%h$v9o(&YNsuDse|I=;n<#Dy#$5?L1rkK_pIiAkT1OMntJpMOp%M3 z?HP%Gy$b8ddzMWor*79HW!go&1y%#O-sU3XN zfGYJX2p^(8Dc&h8i%9Y#B}GM3-r5EgW!%BaRiJxurl`E}fk?5S9$7GzP#GXslQdNW1OxmnqNI-Da;T@Q8ywI_Bm3I<&xl~Or06WuP{ob1R-lOT3$tDGH z+xB9es*gjTfi>e=KXD%Bq})rQybDR#+v~TrChC#M)i|#+pmrqWA=Te}uj*{<1C9PM zkp+wAxTH*lNA24|b4dzO)t}O8^6Ve?!X5%MYvhdSu}I^;P`^iwB92BPxY4Ve;&gb z85sXNY}=8>_%G)5|J$*cj;q=S!vNdB>-7J(aH<)n7?-|?!}#MXW{)at;kXHjbVwjs zGGtI)TS0NRx7iokI{0>Qy9jGXKSiZ~czfrJ;1sx6yUSd*tQVw*HFSID{rWW4zT}j3 z#yNxxXC^+X$lg@=aa#U z=W{_}+LGlYkAhlEUdytWEFvL;(iptj-=9HUJ_1BoA&N*KE=bjh05bX)hR*S+v4Mpy?+)L%nujxIljU8NQK8)k~ z?&#jg_A(HUFT_*F$*7e|50vbdES7Y*fa?5W7k z4kN3R2bm@lu~Oy9tikX2aza2g2l5p`+i2fQazr$8O3(CDz8YCM-B{SP1r+|mWk%Rd za$@3fH4C&KH+2Ymi_ZwB(deiViEoTOWZ$T&BV8wixDHfQsdZ_2sQvG@&} z`*nHf=~2*tjWhgVw0Y4hT`OJHEnR!V=$l*D|3NZ8u`2#sc_pkPL)~3ej*Lgwz^&As zLknma^L-X7WFI|?KMuV&u`cq3Cx-?`9&D=y!6`P}q5=MlRfU?;1OpTIk2s)&rnKo* zTNLBW_Bvr{LquOs%-b#uhx$2YJ&rE*aFPSe6IR$CvP2kylgF&yo{;}N3XfFyKEaA? z?)i%-cn(tAE6M?RtDKh3R)r#V-U`c9%a&Uh6iRd^0~M2b%aBOfIw>Z+{g?I@J~@7f z^5EHBWTx0~94S^Q7Rh{wg}Vkdw)|g~%&XUx80g>@H`lMCv`jYpn+V2w0=PmnKR)Ie zJ~!jmN4ZSM9Lb+@*ASO`!UNbvE;m2tHoy}84Uk$7VG~uKar?|r6%SNooVH`&iVksP zogX$Kw}EcbDZEs0>D(0C~I}fs3}Kz{O5AH*j2Z3LmiN4*3bdA zS^LgEPqk_zfjvU_g;Rgl@;+k8Wtds}d`wwd0oOYCx>)^ugX!~MU=V}kw!vL_JGY1x zU2vfU(P>)3Lp+exyjO}sW*p50o?W7cPNiTcRi(gbkC>JM0@y!>>;RKD-6Qm7J&os> z#0Vevs_3kC#fEd91Kcq}b`!O%KCoocSz1rTczceOK>lo$-KI z1nq6Yw4kjsVG=$l*=+@CH1lPDH%NNaufv41@|>4oMlc#2Xl~W6W7hhF$r9z6WF93f zXb@`3 z7Hd&gCK(mIXAP)PsQtp{O5D{C?9#u=_ff-uOiK4Goza~$3f&YZP8cnEk2OU6tv#v7 z0$ax=Bb>Hww?WseX2Qamu5M}*P41J}NaLs5_s$E|TyeqL^HJFRW!L;yL(yl8^rXo6L9JQBP-I<=%vGkQ;c;_TmLpVaDfB)?4ga!b0APY|Ut{`2 zUZHSq4^3JvWY1>4vY?YoKGIA6|ZOfS4gavJTpkU zwF-(HbQk|NvjN-D43l>qAgTmqXNEK!KIk8@1LFrRmYROtHohzaRK}NDC)=DUa^?Yn z+{~Sb@oGg^9>;4Si;rGW#kO_@bdcv(VNLXVq_U*BdBKC>=KI;G>TCwdrw~@SfK`!C z9qoVCtQrBO$u}IdG*LX%PAOM8 zPPlkzEwq#zOQiWa-?_TN$fXaGwluJ~b%C#R$!T}H(^S;-r}MiC#M?$_bD<*lS0V=6aLJXd!N$YW!7chw7i8Uk>Pp!E!-fv) ze+jl*)|8CJZb$67P<_Nl2pwhv)Q`hl$0A_Ec7%3N!>D(x3%opz>&>M~7&d9dx0p6V zgQ#mLp={9kR8y`xPyXKm0bS_H>foSoW`Cq!f92lO2f%CKkgvdgUSl9Qg3RFUyXEVq zxWv)zLli!7@yhGnt81U_huac@9hlnZZY@BpsIA}1E>88m#??JmbmJ0cFJN!38P2Nc z8Hs$@>)qqm>&t2{o)O~n9@0@t(G0eKle$7=7L0^Re1gDr3U3EDu_+3HuP@bu)&8>` zWZmzU>E4tXyq2}NZ~7JBE!+$>7h*L%&p|0PCJc8t0)92GF~gq*wi^B7dkh;9#^03b zDsf%9t;OG0xCxz5G}qV0`LnS^^kCZy_ZSG6)IZwKv3GSl$`^7IO2;$bp!ww*put$} zR5tNf;3%kB-);gTbjNm^AID9`LuCSNnO_{&Y|o%7$+*PCOUImcm=i2@+4uXE!HHN` zS7c%)OwUUelXu<}XtQI$GQavl72y^3Mr%HxsX%*)iNk)kp(fHFLQA);&Hxn!u~N(HxZlpj^o+s@Dnq?UxUh<|h?n+)w5{jOwic-Tt97ro;WgNSd2OCd%)MCk7l*&4X6lq&1 zcET*Gl;yi-6!u7G`gc|B4S*(p2%~3tN&&3D1ok-V<0FXF{2g*&fK|Hb4a8#?t9iG% zVsY1;!1SS3jJ9QqJX%oDoMQgr)L-WbNX+ppvv}B#yQq1o-6XwCmWC53 zdB;*k!^y;uSVHtQrz+cNz||tXdh|PxOy?&^M@_lIcTOa+6Bz*}GB2jbJhFAFX3eh( zoOPN7EV&|~a;-$Hh-|Ya;AZ!jmSrkgD((4VswbqFLhCkLIIb>M$`x1zC0e2zT>otH znwR<_f+O7o#|}zXhJ0W_&zLPoJ6V- z-bG#Bq1F6;CgN=OFEb01BZ;tosR(&-lx|O~>%IyxGJ-QvcXZAc+!MipPsiqrR1tY6 zo%>inX;+RmpN3DzQLY)n=18Gp&(>D*t`@foB&zPonBEgGG`wLH(wVuxRqGtCvcNVT zRE9JhfLAdQH|l^Ten#^7M^j9E9Oia>?6u~?A!0xl`Hj6s$!g{Rdsf12eIx=%A9m`G zgJwbDT?^3mi;{{LpAB*e)ssx2WYT^n;x;C50lKZ@E9Azx7kFlL3|n_Q8yiMop6Svm zv)e~SBX6ouzvFx5hC~WEmEP{V(bci_VT(s5D)z`+V z@qhuyc^&~u`eX%4IEB3|sFBG(3V$H`f4yvT*7e-r` z!~6OjQmY%=+Lvc{TtS{2juLm)#=AcF3)O{7vXX-HN@zCgI50p17@LveJ@txBHMayw zS?Lz2hiqd=$@EMEbwnag1BRccCKuVyB>$8gw*cADgi?CRt;j(5U|3#$(;)v2UFuUY zXaUX|-RDRT3h5;LZV4<{qJthoX1lponOfd3G|b#Kcwx4MpgP3&J2kONE>jrBaqiZM zP-Eup6#m)=z;Xcnf@6HdBN1|tU(%Ob8&boD7`a}M7V;+JY zCqr4efT3Q!(Ro(F3OZ0JZ6e9rX8NiV#AMPbtu54sI#T`{N@NctGGv-WH&S8U6ezV$ zb7P!7D;sU4@4ob-Drh6vw?Y(CehT?2`mk~Fp z%&h{(PN%5*2<^7Ju+4NQe2;9k4wqI}8}{aW0$p5Y)s$Qt=fMkJc5%SPh-Pj&w^bn5 z=<$50OrJL|&@O@k6`o>;uG{OmMyI9SFem$0Z~oOUMv|XsTHIec)9X!K2q-`?*lD{_ zQD-^40A@r=XsGYc>vyVcuYaHNPky@FTb~nv-A3)F8BI=!p5Ci^P9T4m2U}hqgbR~i z4TwlaM@()nEI2Shl!`^xVh z0)>?Y;+hlXN3q=J^wRwbU%1el!97Wavf<6{(vVn|B;jB)ei}>^^@C_Yjl%mlxU>Ve z6+m+K3ZOr*GD$RsP|hx3uz(Unr-(qw%FC&uSlR9n;tZg8`!_yb!(iD3?2HC#MKy_G zyO3#eFqzR@-(Od%>d(OF-OM}bQ;5vRqhe#x1da1nl*yCGgC8Z^7s@UR5gvA$J zI&&X_h8C6I!}Li$w4di$YB}x5+M*k2vBvL$&`MXilhJ~Q-y}dsp1Oq-F~+`2`90=| zCA2*KABz}C#z#zV51fw2WfDbSo3-L}fz+0qJrI4Wn)9vmkyBR01zvN+_i;ylartiv zwMA-|vt-&PU9ha~U3qvm>@wT<=3}j7MQ2NFcBvsl&s^7Y&}A4{B%z3#u2;^D`e{xIe5sjPY5JJ>VQ*qQe}~LDG(+Hzz7~#9758Yt4`x@~B!<>s`7o zE$+{YfNNW~`}%ihH10S8L=!LLf=Ab_y9Fu2ktFU$#(MvtG!*14D;NC#mawtHx(~D{2`}(|i zj5O7&Fjk~D6g0^)%~B>Jn_Qg{O5lnz7te}K!}~Jq(%JsvA&q%%Jdi%P8!x}Mvrmun z?Fe%DtKJ-&GRZzSuHOg;F>jU8j-8TMK$9%{yum$F>_JR16@d}+2+5c|tfn+NwKfOJy2}z2OOB5OVMFsR37EmwJG+V;!VXb@=3WIfjS|TBf~X_+xc-~_nuCnC=4_H zlZkOb0gy(GBvGQuiJ+rXM+mib9iQC~T)%VccNj3HUjsbE_{tW}08>o5;6}%LbB1Wf}z)q3$ zDT)Opm{Y=dQ^-|PlNO0h-ogMfB0bRwoCcAIvI6Q?M@Fb@in5J0OHxRPT}cF*p%dx_ zi=^CUvc#eS_4VmorN|B9x_j9l4o`xU98lv&(2v|1u#}p8PAu0iq{8UlA@Fg}_yy$UJL_vhTFd*&Q-lOZ)-t zM0JT;kRrgDCz;gaaVTB|)!YuP8HOdrMPL??emY@PWzoSMpm%1jV56dK?Vf@I=vo<ikO*RR&AkbnlS+mqEFm z^0w*&7VhQ6fQ961cfZBBh|Hl~`%k!(XHyYv`J8yX<FGR4WW*k6K!1 zYaw+p+7PC7eOGjUt8Mf*$Pxd!uW*vd%$Sq7%mf`3yj33#z7KZv>+HPd}? z5YZzb5ESw#!FZ5UK4^LNKkv|a=2?7cl>p25Th~@?T{93Y<=wwqgylgNXw3hl!NDw# zb{JYOG8U6}cNBt>s^g?Wl8qlTKj}}3mt98)~)6% zpb`y~reIMrCm7;_myU+Y4FB%o<2_l)y`A4W%^kfAA#6t6(gi@W>*%2qN3HnC4g!fNnwXvaqfVvr_G$I7{*^5jLq6>$)=f%@P(I%G;}#m`bjkMaENv zBq@jKxJ5lj^ZtIytmURAavt3DTCsHs7&jBYaVe&gQ}NoLjoTrp)>&o_RjP$))>>$t zhXHLb?shFueGS{hFDn#Zn)~HCnooc478|>Na}fkkJNSAIzIJ!GokQqbTI;}+T~}ao z>vC-no`Qtp z-~+!(MRoS|BuZNWgb+Efv9?|8{EmUc!ebsp>uC_#vrXnVQU_Wgai?@2CP5JfUM5M* za_z_$QA5L?Id|f*rTU^;4}$k+1ajlpcYyqh1eGuz4rVNH+j!nmrTEh6mOfjq+1E+| z=v-l`1UXTvhL!}a{{ljq148C#AFd$L;fLT6{jtZ%5d1UOtRVTTTD$X$N^pg`HyyRD z9Q75<&rE+3OdPDd)rsp&ybp`5x1Y)TTsJRD3vMned6Qth`gIw6g&CwoMr;tpvl%Mw zV~(TJFL$JCvlzf8wps`sdH0r;k@FT($&nZ8l#Xu~gLlAMyvLSkJ)4d&*J=M~Giy;- z+16Sc4=fJD2~ewM}89*-3MNk zZBbT&8!TudRTj19SRQzICoe|D32fiyv^*4@sKiXGU$;@fT|XC-5fxsGqa6 zHTaI=AAEwhiVy}(yX&Wqt7Ohg`_keu{Kc^tage)~KBR!9!lmI@fvJH&D9sL(qR1Fqjzr1Cg1P{=b9L3~5N& z9sZAR@h1-(PMBDT$4}p9>Pp6M2k-b(f$sEL7kd82m*k<|xHB4#$im~6HI69e`9 zUOpuE3}EUwZ*X=#c2I|y$v=};W5+DSO}B(UIOa5V+KZr8PDQA@QCxT4@7Jdd2@C`L zIsrQg%Nzy4uC(NkB;+x5a;&{+!W!g`^a-uFo_9vPlaP-s?ISzem?fRs4&J6ui6(l?!*Zrs-%2Dx+qDc>1xG zrzu(ba2pMYHIBwOcWm*XQk3Cx(ikKu8@kBYX*kEtoi!N=v7jR5p+QcY9y9q9Ya>-JBdYPF5>x?XUmx6~8OC%L zLf+>(5_x}xDaK}H<{=%&U$ivz&e8=J5Yr|(u{>x}_$$9vsemDrJ?U!|{Yzp}pyFoz zyA?IX(+OeV{{^F_E~Y}=(8Bf!Ric#zE6^>2DS}fumS#vZQ8*?Pnnc~!h&$sOD;O?O5Y`fYEmAh&f-K8VIPcuHv;$i8iVqo zdO?aYeJBPvrU43|6U%L+_Hx_nb`;7XP`|A+fa%mK{*>A=fj%)-{vmNk;EQ-PHok=G zuIR{@M|6Q_F?I20Xi_?T?Hiqy_x8J`GnK#>nhjSrhrBvEApL+8Pjwm(5SOLEbMl@L zJ7Q>mH)3g2piinZ?85b&)vQpd(D~UA_(L?aTl*8S(3iaMZ7_nz)47A*v~UW7{h=Ee zT;53c4;=1yJDX5_-CALpjJzzaNJhZsL2)ez-mq0dh9ChLE$!RP9lEf;Pc$6oqN4^7 zYj)Lvw+z`Fag&O`Y3|s+7jL6*D(d>F+DX8elx)eW)Tm&;R}CqSFe_TOBrr>K9Ic~e z*%X&Vo)W?TVRqCGEBJFbt>3{%>c^GjQwbRZIiO7_yQ3;j_#kG@hQjr((OVeDS0a=w zrqmos*)Dy&v^`^8i{p|&+fi-I_fS1P>98|qB2h3a8`+ESNp@f2h(J`{Ay0msSgx&E z5mRLa8`iv?eCnBDm^{ZMV^>w(7UZlEdk@MTNX4>C zA1D(Bd&N7CZHSPo(4+jwj#~i;+_*;*gzKGg-dAD= zQ02^~Z6s)kWE!E6iQB1ZqOg zsI9?{TT#j@lgui;lQF&C6`z5iorT2r(ROX66GJy7?-yI1`G2V5T4BIzO!M3x7ZVs1xV(Ru@!ZwICormn-68W5;*z?(7vu z50HvCbzg6=mctP$Q|2@6Y0jVRkup`5IetZp>vZfAA2cP{XZZ3ro1i-2Et!Y>it~Tk z6miUMt+~U9C(d(dJR*5p3<57i@x*`32FYjcCzDyXOxdS;H~4hlXEG3}0r3lbetytw z$+MH{e9!}bnHTWCGkv{YaY{O!m&k$GL@!i<2AW-y5)vs+(m=q%(%~Ie`LplaJasOl zZVg?g;?5q-=fIV`E5C(dnbmx2a$$GV86p`edqRwsRs=LjtBdV|!y^hKyq7b2k#u?@ zSMRe4>4qcX3;`QQQG2(Xu8Y4wBtu+N@BID$(Ewbgjc!RQr&3PqbL-Z$EcMMfIwPrJ zI!s5V{ z>3Pr-j)+=_CHmJB_oZz{=*&`e8>z?~H5Zc4X9d=svrnoW=(*4qVzdaW4s425Z&b5o zjz4Q_d}0>x^f_44!OEfCxABj7xu&rubZVMDIzft9rS-A#ORv;A^;n_$bt5zxfnpR} zW5sMH>xW9v6V+(HMYz%?k?CNPGUR;+VaEsu9$WO6DI`hKI;Qb!%uu2X8%q9?t8kO7 zj#xWV({oXXM4TD`*)Y<^!w_c1YAR|oSjkFsLgPN$??$5;gDIIV&nPmpo$NOF&KAxh zzw!eAqRc^Dwm@Gog+8uF5uzSq8q5-a(OZ1$hvFsC#4c@ATUFz7pauthm`J6mb<RxmZYk^fL%cAoHOAMcyt~n-IPaLo7Rpmyr zam)LVGHJrJk($6Z#-15@a4xI4mvZu}`{Nj*xLx2kSFEA8b{*f1JyxtdIQli_fV zCGJ;envC}Q82H2#=!-@nyj%q0iYFo}V5&V%#(iRFWg~m7Pp?@U71sp418Kfxt)DE5 z)q-KSx=d;J3T&1`P|ty5(U(^uwmIX&W{$ijR)=;tIeYlahXZj3 zT5aa(h`XMwYV%@ZouR~2#tweHE1zLz%+BZW99DS z$FA)`>P>c%?}HOtRv$EkDjsnd+hF3QV=->mwysiMyv=;OP$Jh&tKKrepbV8pVPuFcQM$Yp2l}WPKa#4MaVzQ1G@1N|z$=}}XREaQ5 zZ^3E#(P{vzbi`aIv2m+O1~dmk(tlOyBWJ5Y!`x)=_n2EZ?tH1C2DCu1T+@Y8S`wy# z&_3|0m4U(x48z=B$&(rHlCo1Q^ix{vh68!)qaCgsURgLuKexZ2M@XqNDdxN2SITv* zX2NARwG!C$cbUm6osD&(8wg^dMqkX{OWO+>h5+t5qu?en_cPdFPAT0u8Y>Z)hbgK| zxVdKkw@*vv^Jvu{EC@n@V(bg5mWI9HPqkOi1ic74lt#$Y`}fMC3xwO){Sg?#}! zklu3FLt3Wa6+wadvZO&N#viSUSy$bAnu!CaFWDK|3jrOpRILcE`UIvu=9K3SCVRjl7%uzPWh(%J$}{k!gc-1xx+ zm_95G3jDKG=bj#>V`WS0iVWS2KmN1lWRMJl0B-!aD^k0lu;xjnq;@lv-wL=XuQATr z=aL%Q?D-nQDS{`ha1jB7Z14BI%gCn((L2W`g0CJU(;?V_;3qymO$Uc%stv)Cx&1F; z8er59B%mW^*BburJuYB!18yN~vpJ<3ci2Ev zo|T-u1Jx*J&R_;PFL^9z33THMXfF1{u!MOd+Y)0bw#Tt;Ks}bUh~M(iPMX_dTBA)v zH(18cJMR^!G?m@#zKp}A{PhX8`%$Q9KFsq) zo~gd5fhJghV85J!V3{KFdHMI205UCMf6`KnT#m($n4QS zGao(=j(SUiE;;_gT*Sys|NqTJ|9=z}4i0*{{|8w9Lm~R_e2hz)J9fAu@V+a04E%cY zkTVElSO^+m5ZT4DO6>l~W&Bz~K0u}lMd zwoi`=5b4u6nZ0$YO2NtP%X1S`(P?G>Lvkuq_q zf=8S%i5(64APf5f!O1z`q z3=Yfh6)K4ub9pcr(~<(*76q&H(&>2q{3qRJJpX=VD9OQSbzM#Q22^QqR6H##zafyH zP!!&oX>W3UD(p;E`~h)SiH zM)D52$nsl8Y^yyUP{hiK7}yk&vS^(s!|8*cFzEK$;_`4}76<9XY&awOYbDWH_OQ*S#T>;@78()8YQJ>V^{lnee zmzU3jLF+GWt{=ep#r0{zkOa`y+mm5%a$|;cYR$l+5sogT zH=~<__d}vRGWk~|I_bbW_~A4;Xfv94F}AkmtzDjS^aM#aQjR@>SwtB=@OVw+hRvIm z*PEFW2b(sqXE&fWaN^zvK=?B{wok%vf^JZxaNRCxnLSWs$wdBqtM3kYa!0=4;o^C} zxi#*78{2pGW&Ml!1(;F;JdYtp4P{03!VNr^Md5Gbog}@=4aC{`dETEcU7qaS*!|oQ z`FZo;_U7Uvj+C4O+*FY|pnEul2IG_DTUprwa}3^9y>GE`p;7lqd&a)54eWfJAs`KX zdATl+Vl$o3dE2?)>8;qS3vVBhGB`YaQdmkqed< z{s}%Jb0Yf?T1TnrF)dt~%1wmLT_V#p_Ftl{tjDLU@o=G}NKP$o?A;O@ykZQb-P@fE zV4VH387}@UfXOi$;1O&Pc+0z2y#zujeY^aJc`B+K>&n4h$Cok7rKbTKA2K4 zPx*`yIOyb$T!(cF8DD2|DkL>Env6r}?3AAh@<9$0en@K)1=R-Cpy}j4=MsLEobh55 zmh%dTi@$p~S;KVp$HU_(qJ564_ZQLlxGVRkTKfq2jg~T0WaiD%v%S@6AV||lR?7@z z?lKj?HbxH0`60W^Q_{BH1aTTf&tIzm`)~R(*4H%$4ri50iU~4d9&C zb$D@|_Nr-<;<2PAO!teSSaG!|KC0_Bf1vJmug z$zzaMwCU*I@r&>|{Ux1?fk@2I;M3+X;)Y>hG>QH_uyrQ1I9?go4QUjx7l}i|lok#Q z?nkeR4d~g4<@F~7%u{@=wW^Hp$(Vferi+4(8|CWJO^K-tv&Sw>K`btIr%J72a_+H=2Dj@edA=}gf-`SNO(&yZ|T7OTy5A@M*M?c-U&1XU^xP8KCuJFGm<}`)iQOwPhu4+81x-q~A=r)&{Z-CcosgbN=TQKOoV!g@4#l!8g z6p`dvB8?9U5lGNac$mB83-wo8kPPKz&e&iZ>|moYh_B|sev^n+AufS*6)}=^AbfAS z2KcSCtL7s>$m87fYXE;of0LWk$@{RW4NeSk9l~@{dmX5pVSXLRoJE@dD)===)=%31 z98U!Ve*n(W&wrgNuV-2Wbd;;Y`rZ%!NJvRI_reJT5Prui1Wz(r=u9oZ=|kBe2Mq}L zF|7!Os77Eow#IpjOz5NuidS*yhVGCHyCn&taq;B;>`(=N`V6wy;Z8rAzJATPw!jc%g+CuuQ&iv|& z%{pbwTxAq;-W)Y_uBbat|1X9k?p#MaIgYrp>=C8u1Bw#>p3`>E@<*}Unz zlQCEAuyqZCV_vHlIG#wk+s#E^5pe1z-Z~_byb@Tpk1|ObIT7bp8nzux59`}4_J}6b z)z2Rk9z8GpHIKP+!!75Ft+AqI@BW8h-y9o^!t9KTMZQEdS>gh>?l@zx8rT z*b%oO{D5#D@G)bA6>#*K^|{V~9lbzz@EkqG9moH?euv4wt7^4PB)OTVNs%ZNxBD2Q z^?o?)rP;~V{V-ANQ0PK6NZ_=${d%E1`_BIFKGx7r0U9;!nUC(<=NOmyQ}-+^TS|gY z=v%9^@&bc`dI~Ah_dz-Q0wbuuu7Cq&U$f!>TcT+rIkax-rgO59u8M=;mc4{iA?(9;xl|l; zM8^l5TUU4I77I`cB3aK+%zF3XQ(bSr7gd6>xJO?fO@|Um`v~D<_aR(=Wl=WNDjO5f zQ_U|kL&_Mlad!;5yTsiH)bv$-7~N)og)3ZYs97|bJRv;|;foo4n6Jv8h#z$KGlaR|L> zR2&}J-R*fiyth3jvBpkM#Ad@MwgL@SewoCOW0=g!@}08(`ChrvDd)4vuLwyBtQKr$b2^VO$!uQw=yQI zDstnkC~2#cf1Ykj2x!^NH`^EoiGNWGL2)fU2;vSaQeYq|wdgm85_G$wTfBH z!htqO2R>8l5{@0GV;j0v@d2qxq^9giC0XuqJmG{JrDQIi<+%ywI}3Ui&K*9glH#Pn zxy0Jj*HzmDEJFzD^(`g+Vw@vjX*vjA_ceaq85n}w+YdNG$T`%$`F?df>@q>@iWZhN zOVRx-pd4dqkIwpbKto{b34zZVHJeV}Sg6(nM0je*a^{6lJP(h>Ocf&Z#|xJ(fX%cw zSTKB@MZ%D>8q%0ZbECR?HuQkvl$8Maog2*Ihq>`LntQ-~o z*6Q4k?CZ%1omvF_;nw+Aiz}A>A=6d69ZxR%I!ek$x+} z-~4)q!`tODkh5kM7cK>>=FF*R#drXX;dNh?rrVOKV#@MDXa! zji$`9mQaAdhz2y00sI`)39@_ohoo1jK%svVDwbAg^t1*o1@nK?|L41 zPwzTLs{0&d@r!)RO$y~AafcO%nxy02J-k!(om#Nm=HPo6rJvvkT!=>X$BJ&FTdBI| zT9fVkudj9G-Xj(tkAm61=(h(SSLU#OBm(RWvD&~CvFcmCxk*VL=WA8AkXmz|JZKxs zDkr@eV6;$9GJmK4a${qnY;!&h&uJL0N>4i5`GcfSZT!7Xc1^`KLa`lcXdCC0R3cJ} zYVA_0lKP$ovoB21%WP(O^6icQNk{+H!eUiCU@sZhv+`HKlA!8@RIHq78_hz0JUk)H zZ)_Zu1m=&J>B|*&8KHxZ1xMsNd+55)92&ONLTp|*KlI=)-8nKsc}4@$72tB2-5wen zg5e+k?G^lWfNTN0lfPTQv=@gu17GZ<11|fE0J)O5qi|$BAA|{v1VDQc;jFWuSY^fIDBfiJm=aBfzuMu);uAx+I-jU ztQoodC-+~UfhgnLS(=Y3eXR2yy+1_XH7z zhC5>p?;-JEuzTeWXF~Cy>E)BL2d3b6v-!$L@CyDh2D8De?0_~3;E@n<$D{+M0gUFV^2rdvX7OT2erU&{f#-l zlj%f3c!l&hl1=(g(-iA}5D2o-|9AIsLqFwq95$rx8MOz*bkl~)b|6q-rbaY^Hq4(M z8H{zFclh^rJSFQIte1k6Drs0M^QGz41l7~(wU=4fPOk1wF0XEU=l?j)w>H`k4ntGq z>KjixV1b5-obC8J`SNO9bZgZ*ejMi=fgiDVQ)P%y3b{b3Qr95aykH<(L^Jsp&xJS7 z`P@g-ckp+gg%^!{8g?myiByy+3wn0Fd~1Z&EMpgPpO)WmA5RZ63k01)1H3Mi=H#W< zH~4a%LH;p_61H9g({6mdt~mya!w7#DHatx&k>Ivl=CC$YdYYoy`P&3iDvu!!)@*>W>mMm{@Ze+f^>i zyN!?vVkz8;yO*SUVbj}JWf}&uV|keQ{_2Js5CYK;#8@5%9i&T=OGf`^OP2@~)9e7) zhWXnvCrNQ(p!{rH_Q*+q5-eB+cCZjlEe1h_x7j*d`6P5-erUPhl1avLP>?wwGp0RH_owWSGmL($`yP(Ntdhu>_pKdwx&vGhjUYhKLH4DO z*~4q0D!+a1-`6_5#&AE!+!WS)7V%4y!jtb}WT0GPm_!K5eY--HA$8xk^|j!?il+i6 zH6Z{yOs8GXe2~B$jhZ^&hrJ>l2Fh3Dw=s8X0&6>OKc6fqKjuj$1$ybi*>9ZM z8|Kmgj0mvI-kEfWz!K~JckLB2$XDoOm!k~#c}q^BUiPgcVm4_nYU(Bdv#H>7O=bCdTR$b^|rqk@Ou%W>oF-qtV9KZPVJn zp(`BB8}eR@ue2Q`^xz5aA)6;(dcgF9coPJ1%PC9R-)+;y{WLD>H)rWl&>Nn3^Q4>Q z+RH#;%R7WZ2+n5`^pl5=2=HI#pxh!E8W>^J-7rEIS#7KH+s*KD*!!jj+2kEKNc$*| z4anvtu685EyTlO>qD3jkD$SKw*dvns2K$F;0!D4{4Ez5onHsjL&#haJ%gYf<$-0>_ z{KyX}`vyG8?Z?v{rgN!?tFLblb~?IVG&XT98$b?-nmzHjjd0-zyzCrd&lRwY14h z*;vVGjpaK2NO28tz@Xv}6PU2^QAMFLzYgBbaXCJ?M)xlE?mS<-7uePJpsKNT{owlW ziN9eJx!~c^`7z-KE`B&_Makp0PJ56gi<$Tneq6R^4-!EK$owC-YW@pkQAo$Pm^H&4 z>(Nfkaf)iT0UJ)IC$GBLSj6tW+VReB?~ido(&NXi=H(LXQ9%vl>ZbFzgc}+r%!&MF zU2_T;#$L04Hh-8)`li$1>q|bvfD!wB&Xe+q?$A7A%KbOe*390`xH+-Mc<=c<}l-L&|X zqHq2QTk-{`jv}|>$EkMDd2++b+`B<{eb8KoZ(8(QCS_w=wUbc{MWYptw5C+cwm|0L zs8&5loJJIbWkF5P3vm#33@rug-VL3=-Px~0I1W0ojA9@a$DHY;eo=u(EQ_%=$csr}- zpq4!fWuCy6`{t6;&i+g{kK|>pib_H;Q_~UAvx!B$lmOZ0AUmX_&QIz{7NJQdB~6DE zPBNJBoJLi~{z{US^73BHf0BNk*T{bV1M#2G z>+GQ0vKS_q?ceW$*Y$2651tRV)9&cpU0oZ#Y&1lmEA45iFt{vKC0`kw65ZyoRminMrU~ks- zmmmuc>#Ma_v0DrBE~YMC3%>yrm~|UJGR!R^c7B?Y6GvYabe7Xd`zozH+}fG+FD$fc z{4B1V%7YWT4SbiuPk*6Ydweb3E{-~W(2#2h)FwH%CP zzqDkm)gsB&(Dp4kv4(yXO_n$tXVdUUGWKnw<9_m#$l7bqS&@`R7Dd!(%7GZzq|9a` z%>WzNvc`E{qaE>d{z)19 z5u_{GAJ?|Z&!i|Jm&NhTu+@jm6m+gualVaB@5r;Z48LT;UYgF@hE?zG1@!t=(BnLj z=||8Ndf|xZm5LqdBVK$hczLYp0qrPPV!kcgKCTX|gw>JZ(1!7-P(ec$ga#o>g``t< zn#8Vd!7CQzi2_M=1;*a%7nrOhck%q};JDu@d)Cd7G2v7v(>qR-EggFw<_Y~{xRTAj z%$6Uwz7@&Xi>c4P?bbmodgAiXkU(AT>Yq6Ir8qUwTJhI6*d-~ zdexe=^|h7XJN53JTzrN{`8P%Bd%%7`%u@h0SS&0eI9DSQ=8zY{O~B+vFF7&2<_E)v zvhR0*j-(*}6#iBbT+3Ft!XDQp0Po2W_h-*zHJG#tON{>#kUOXgM4lb?`O7MLMu@=! zzo`VKipkv0R7ypoZJcN_RlO{!o~nrfvys6xh;BSO9wFPgTW7|U6*ADZtVQz_G<#Wk zBWbqv-aK7d6taP85Teo<{9m)6vVH*z`Kn34`kMU@uU2mtDNY4voUWgO#XSJBE-DRI4gL1? ze@nnBE-L?+L?#OhYun#C`)LiQeb|;F6Jc_uvFwAI$Intov0N9;A?)x7JvnRsMR1J`uRv96kseG1m^zFUwy3(?Z1`WzpO}$NsfSN9KQVIbTGyv&C?r9N&jdsHYo=t{E2OP z9lMbE`{XfsACPV3G}{G%1;C*AcH82ZxZJd7a#r|#3VbefqfRhgNw=%YeNEt9fU~xW z;3(kSiHb zFk2XlsLzGnNb7o05i5eKyEmYKmBLeFy?il8ebR0M!%bG4rO;dCCBJO}bs^}lJ#hmy z%51VI0E$!KDw7tTj2!b@O|zhz98O8J)gXbmaZH%_$T#dD>*C+g`>Z~Os}rQYg-N=> zeSq{T(&$snlgwf|{awqRQ)x7_rVLTd)$OI%7lm&AeY>cB17WI?#UMgRe}ngo$_6Yn zdQwatW99D8`Un7Vr!B8Ccqcm89)aniS7Wvna)TZRi>=X2Avcwe+9rdg!NY4H!ju|n zv$sK9eyQ^=dJ(pN-lj)){#9x+DIe1K$taq(bRx|RCY?2m0-ifilBm{x&foP=cB+uXva(+ zwdkRjLaD6<{Q?wVKCB2tO}|gPQNlmD%we+fkt4>d=uw~D@8m&{VxpXg_RG)ejbUsE zTswJKz`{_`RvQ4E!$60i$B00M7+gB}6g|Dm?$vOQrU_9%7@j^I^-#@SVyeGIbhK9Y zk`6-aDzl6oASwGOcd6V=RAYJ93Vw8&xx3A%q<77G^agv*9Zr)zc+j;p)WL{QN+f8l$rHv`0CMdI z_uwPPPY9Dso8O5Z6IYF+dU#zN#!Uym?s7+&G_@gZ9(%QjIOBU`ggYkrv^L zH_hDFjN;g=^JtTL4T3G%+$;&UeKmr~h*@HGpRpfm*M)M;LKt-6_L*$B!CPCnjyybq zVcU6vs1TUkFJybvf8uw zGuR@$&%qDUnGaeuJ+Cz!XK22XUL4?I-ZCI`<=Qx3-5FhALBStMDAn4-@z?t|AHbfk z{KBuwQT@W7%3JLnT7uZr8(spcztYZ4HzT!P!i0sWx5hj@(R>nbVSu3~8*}K%-z0uL zAu0N1Gy)yIRmgC$M_S{qwA3&WM*TT92UT6cZF?he0*~ya+G3)V=;stzcfCTL;W?l; zzPIq0eZP73TVWQQ2IJ0g6xI3cp$e(PrfZ_u*<75&F!qR}E^(5kh95Exqj(Y^EAYf; z_}>1XEF#SG|7S~uftBgM`_BDoP5!^)*x)_5oxXnml`h&@t)Ol+9<(1?IP>@SES4j= z!s3AI-z_|22~>`o5iw1~9Y~%JS9f17?;cDpFtp!bxZ6GO{P@hDfu#aBp+Nb61NN>) zZcmbyPtQC{CoFB?bOLgTwzdFC0pd)3b0T`cv3Y^uxV~a@?Wh(?NN_m)v_4?tz1VNU0 zOM*kxM2GF2tnO{@#pPa($u4Hz9X#CLzt6>Zqg+tPtt{^FaWxTo9_iwDM@=9bHRSrt zZzPyKiC|gUkITcbF$fuuRx7*c<0N6CkEIq&6Xo{0@HLh>J0pL&$N8=X8OKfv3;-_uF?Qfp2iPUs+S#H5)|BR461EZrNXb zDoacB6@YR%)oMtXCWR+9Bwir$D0+aGPM`2ci@rRt^S6%L52`GH3KRED%a(!kXT2tX zVixX5U=?>JK1w&idVG+#D|kYO?YtUK!abrDEiPt85`eOz8`pqu^(&UFiYKAwwtgz1 z(xKV7y3@LY{SDg044bX$+&w{tRk|yTZK9(%@Od&?WG};5>aay_iT$pXGum2d^ueiQ zQ;ztYyaR4|<2n4wR#hpEBfg0HzLs;gwL2AQ$-zMhn`g~=*UK`#I50vk@vzuk7gV%n zYosA0O0(^U9oY*KR`&?n?@JSP*as=F!0p>kJ+>^s@pJwVIe?tQVvU};H_E4ynbi2AZ)i^dENIc0fC2`Zt+$iL5>#64Dgvee!jdh9aUx35_wPwf# z*(iTs&J?Eug&OOFp-M=E0(H)DS={^Stc}NdYExo! z1T}i|OtNoRM7s>Vnltn1$gV=IWgS=j>oq&Dw?W!YI@E5vFM*sK ziDC_hktuTAxI15M!*gS}`ja6_k&|ZbPKu**Ixo_Sd~)104C-1mf~)jUyebAmDJ86x zqxkDB*5lbtFMhO2%l|xzHz-D1le+{b->&}p`CGuZa8=gdgj-1FZ85vynwCaSn?1Oy z2BBcMcVn$wI&B4VLTISW{tc=}P;PI47J}N$2Z!9l(tV1333WA{e@MLC&&rn_@Es1@ z$0Ki>>uDb4QUztLR?;Z8 zYVLl=v&IpUSgq4QJ5vzVER**VRs-dpeA4jiT;g{U%f4yXWr z^U@jfgR1k=jw+)#yT+`Y-OoIyu}=QEZXB$bEferok9eH&>}rA@8>Ks5s8VE^3bNB_X%BGa7Zx@g7E3Z;Xd z;VP7#gJ{bJM$+Ewwa3w(;0wX1DXYGi2*IdA6)Cs>F(^rmF6$+}KfD2*X!a^Fg^XnL zc=D$pQkgY3CX-txmocIGxj*p0M0}Ir7GUZ}W&a5WIIz6hd*8kG0xLA1pC*sw& z8fi!Ntwz4ny+MZ#YPW-egSJw_#_K?RX9z)NWFN=B{u7PV;mT5N!FehS=7m$0b%Ta2UOfLe3`yX>Ussv z2EL7yiL9KmD-EdHDQtWGTH>iW;_}Rn>|sMm0b@DuiGOZobk$xt&{xN!9ms;r_Hq>N zb#$H_^i8)uD3@AZt3wKX$Gz#;cMgg%CJ)Bv9#qJ2%zHm+)o&eUV8_b&2Z*Z}aRtN$ z%%^dqofz?{GTO%=Jz}A>kmi3XLEu8#rt}_BHp+!CV~Y}*hrsFJo0TA(pHyioblcEG zNX;AzOEH*^h%8gtv9{c!HvERQ$fvxiej~<>$n;ug~8_GQuOn+ zele-rymY6bCqDZcD#WS@hWFUZj($`Z$746^nCV$hsyW9L#<|iEj96xJB0had%{M(5 z<$n10dH42kV&rik1uw3JMOjZ9pX2)_;N$lOEZYdQLH(&?J*5reNN^D1 zsYtoySV6ir^jfIBvUo>T;lgoW1FD4dW2Y-=&pJ}e+=wgO2>+Rn)cqt~c?5N|aDj%N zwU~#|@icjL0Y3o^V1hGK;lL(UvC>c-SjJTb<`&=sH|pGcCX`7ScN*WZ-}U7GmMq z)7()X1=+WiFQXR;KH=mqNQ4%0pm!ddyy!ruAb*|fFZB(!6288PMp2&I9l3|l0z=}J ztU%(5nD*f{yn_wuN}w`R6#ib^`ki<91S#`R$7(U>A83V~+df|@CzN7C0iJT!Y+3#@ ztml)uhrSa++pcRQ6vy)srF65JYSnaPjjIq~C8-8WD^-19wVSVi>PY0tcFV-(9*YSw zkURDU$5U_`6nU^;u>`Ut`7$;y#@Co~JXl(>ah4oKEgsB*E9r8Sj&;)gpWN=KHeU;O zK2%9M9D1X7Cl89)!-V!V&bHJqGKfHk61!15Qr_Fwk>I2j2wOkfp6_tybRz86Y$sGd zUe3;1 zF572B!B*Is^AZ7>r;1v}f6T@gc(q7G&qDuv@7&3twh9<~5r+ck6KXgA77&N7&?-%2 zby4auXz>yUfo{Y~#aj4ac`i4&Q7oo=(aJ3L$MkzNCGFFg>f}`8MNFE-l-9tauJh62 zJt9lzv$&M#Gnvnh&<5w8<}g^pC=5IBd3ltQ%eisUI8lXPFf!n6Cj&)y+kRfH11a7n3$4Y^KwfubZ zCkN?HA~%F2upMPIC@8%MkpXy6yadGn$7I(0?hACDwdlf{1s{Tli6lj;4)KVBUVjSP zfo+?&LtdOrwXWbZwFLpOweOB{i`Wc_2=rR5bL@OdJ2PK7`7VjMB6&sqpspmD4gBvt ze?bkOdPdqy6aSRq5Zyb62y9m%9#cKBId9VJPvPoPkFB!F!Y&q2He203X;E8k84tCM zr2B)RQv#sx$}~_ZX1aZ6!^_LER%p6ptZ}uVxNHuPS#+ySpRNXWv@qp$urtP8+zjE_ z$<^lF`(0=@-|C~)@-BL69U?qvT_P1X=WQ~nM%koYXfFP~Z+F$Xq7{JAGxs5D^{mV8 z{~GhTS*uB59>ZWE=*N^lFfSLPjDKlzM#xU!H#rj(1A9Ed>U4j!{DA6=M%DfY4%L;L z^Iw`E8{7Yp?EL?4pJV@j?Q`s0|J!A5S^Jwo&V}kbTSq*Xwjx4)tgTI_Rn$sp>Hc5Vr)-LY**Dw zq^)heI3-1akc!omRs6ueD%)*WN2{EaqpF}AK;~}OzDI*`=PxyBg8@IXQFclQLYTP( zP;yA=(yxmjT>{kbVxo$Ea#CnWsBWOa(up)taVI7-Lr3@ban^(v6;6*`mZK6H%gVP1 z&|xc(@ys~HHsjDLDos0(W2K3(x&;$+oUjE7&wuoR&~OknNp*bUqJ(qmjG(31bZ6@- zHz+X^hFSF-opUQY7NV0JxhfE-z%$Yw8=?;2I|NACCI_1HtmB6>$uyQ@@Y5}mYVC^H zwk98vvkSrU6RJCZgC6v#{KuyT`?s7@&rB}vW&M@g+8 z{X9ltbhb#KZ^tUq%14pOyZiycV%%Yi7(#xvde~SV1J=fB$2*QvbhvOGF-ZXsrpa8g zncsEd(6LEq(iUMEP!(yK2!#z{3Ck3ow^5(uiQvzgjEF7P zU=mN8h#%Lm--{dX*^Wh`HWZ1nFO8zkvQ_sZ6ia4vVt!;0NzI1H&{l66hM@Sca>R^{ z4*?TA6jHinds04QN)Wz;bc_y9+S;P1Tt$u(HaePQP2K2F72eV=C_Vfm&gvf|oWM1p z4Pw%f{5K2AWLy^|teG%oW^K6O>)XZkD@rT1QC9D{@5i&BgV4LxA~D10Di+o#G_;!) zhK11)-~s2NK`W`nUFJ5W^r9z6SGKf{Nnu8uaUHzY%Y!v5rqo#CezMmu+vnNSl@+gp zyZ0}EHPYg|OJWBRTT7uPY5N9qTYxfFUDM>b@=1}h^r@8TV`HV^;+AeBNV-po9E5;>W=P^!7!Q<`}YG~fm9hL z%~Aj_j_N+ZMesAJC^XE>V{kAeA1>fMkNXMiQRE!*8uBb;3$6s~Eun)*>n))q#=G04 zBV!HNBbc+ky!ZOjTl;Rt>cf}GxjNwZ9C!VGy;;QF>(0TOMKG)kG&DDn@4@D-@|oP|i?7i;E>dtVP-A+TXoLzHP6GewjU_0t1z~6%T2&yK&1I(4~LxP0odx1CM z53$wZfJTGAft!KcW8|Y!T=#{Fkq0l20w769P=BgF2CUeE6oU;}nFaCrS4(ydhIW;S zVRpSptg77Mv`3eF=0i`x2&xPEI!(r0uRFaot-qSU2Yo%Bd%Zs&y{}*1ombVqzj{A? zy)EU*3A*&^`n7w%xjtAw&t4GezZo!gE=G-8y1_2-`DlQHMyf0+!6whx#F>KjE1) zd#duEw;qtcWUT<=^hPE^l&Mpcju#l6;xiKdnwkcy8#KIMvyld(GLuTSfJG#PYfY-- zfUN8yTw(t3Z@gA19+meWPBOqJCCMX{-n9JYE{E*00F^lG=cLpHm04U*ifYAhaYJY@S6)3wtm$(0oz_3;#!z@5lb3k~tZ zG14d0e?W7dvzM*0urIfa!4D`?NIA5JD_(TkxJZnM3XhrSLB#H|uUm*wF=-6D z#2q~5bvZ5&Ws%!+Jkj8T`g#AEkSLxj(O~$%N!OwLE%_lXN5N1*lUc^6d5sW4F*&?n z_B+)pjdHDt!y}7hK01&Oe&O&G$9CRqI^6S@X}lR^HJH8-8QzV4K9Q(jIa0wfT&Pb{ zrnxT+2a}Q5wDWAD^K9>bPG=C8ADGJE2ty<7l0S2t>sN!({c6(L>-gF5X=MP##$s8R z+8Ja0M=)%ExojtCiNm6~kBc&IPrHqLqJN@dP(cmNk5jjn&@8Z1K`Z9Idd;esOkFsi zT0sk?w7JOq-F)IAy|{g=N1kf7IaGi&N_@7o^!MU7AapP!e<7!=Eb_xjDz^E^j=rqb{;>T z)0&SKv?-FsTsR?9z& z1Z5306Lk}BX*!d*&oIi;pK@J?ldup6t&w#MSq@B>@->_IrJ`NpqFn-MKtP+L;pymC z5Z}84fJBk0SbtYPUVjXz=vnYIun)7i2_z5G~ z?-~Io4fl1d>$JTMmzUkxHXBS0i5*}azxDG%96b?C6;;2uqI?B+ zzXu4GKh}r2PeAwqv#yjzf4~sl`@Q@zx+z#;`KRkqmmQ3>{c^SIAUz2fF~-NU8TXW1 z;)4S{d({ODl%#qWL`*p0)2}9#4VMqlhmF1_NvY2o{4^x`WT-}la-aNEUrV#z9l&?u zaK<*;yte5jxBrt{gZPZWXKNp)tp!Ido3B^>?=G9bd*rLpQDf6%Ey86~stfadjg{1# zI}Jp<2R!|IGcLZY1Z8|IWygLnfALF!$AZeiImftRP;72%whvY9S2b6^JbPeia2NUxzeceMRfGq_V8ckL3Z~4 zCbNG-K>zQLN!-%L#ng#O+{Vbo^p~lzy@{!yAgr^Clc|v{tosJ=|BO9UN0$=tH}scH zq?yx++KSALyv}`^`}`NCtgzWA5EtWyNJ!QAONr=DGGPyb=gXDD8@D$P8G^hAlzC`e z9rzeD!}pWO+}$onvKY2t50amNwQV&&m4~GDFOTextE1^rDhMVv|D%LDkWnfLWo;W|h58t^Et(w3XzY&dpf8Iy;dPR-5^8t8J zuGNxVdwDluF9H7FNxbsn6IMbWFK#cMFGW|?y%1lj|OCmV*8csjsU#>JAQ5#2|Xha(W+kSW? zfYsBI#4|ANWe8v!8bu*1!MK+9w>(g1jKAEpXGXyx^R=_f`2Kfl|2{Rf- zCcNT1?($u6o2t-zCQ!nCYcZsrVE-y!oDwf(DF8r`7c@iSt@hu06gVI^k$BfDcIp)= zj+tR=p`x~;ag;@+hf3JN;oKlh=U zNh!#ML=lTuEG57x_fuo+hNv!lqi;;%C)yzgSOg?#b}zPTao4GN+!Rm@)i9}1ITObp z-<=a`$FcFacF{8I_|^g-jVt=o9T-^_oeX zbh4eBYq_E3tY;fm*oEqThCHsyJj&r=_=W3-inRdcSah;T?^>9O-gQ=7T9^wh$mKBF z?+i%lqqtS^N6b>FC&jKtDu>ck!uI(a$8GM^DlEuiU7}Mcu*pvXw9vDXxhgeX0n%$q zzC5E=Xu4Zu_&8D>gNi7b@e`J#^pgem3>`rRITiWngM^vf8>Mr zG6bR~417WYA~LrTZ(AkpH(_Nak}focMDji?sEsqJ!FtlsP4Q%vm}I+mab2=16-xr0 zaM|wIBc_(~#a?CDiacZZ_j5rND2=t8!8|LR?Wc%okJ2%MTT?e)Fz_Q;8Ra4MwFFYj ze{35oJ9^-$xSG^P=2?W%aB0!TkZHI_C);E}Ps6Qv^js>l&`|x^SFt`4P=E^$?y>h) z60~-e7MoG7^+0=6CXD0QXAo!V5JZ%QzI^6FyTInCcJ{%0J1o&m*lI6Yi>x7VPkm81 zeE$x#HaTAT21IcEW&BZxuKNM!!8OMEhrvDX&RX170ri>A$UMl8DhSt?;@=K6))eQz zw!b*V!EQ?`G_8M+=xDStdln zDH@GJokj1&Ud`id(@oE>Z$Y<+qX1zG|HRc4cj*bO@0^xz&+Tx3y67~Y=rR?18j!KI zQSw#li8|T{B?dyed(lA*#d+-rJfJf{6_WNWmPM*BsR!h;=QnEC1V;)Wv*{1*f5wLY zM(0Ypqmkyz9>g`>${kHd`*?KXf`?;tUVF-GNXH@ z7SDA#w^ijt>3gbyC7C^zZ8hxJ0X+$X)IxH)zZ1=v_icG%Sq= z`yv?n?+e?JQED&47BV-c!=HM(XgB*})8D%zqa12&lMk7Z(oA*IyV^oJ&|*dbZ)Lp5 z`NI*>ZM16-rxvIao1rhkSE>2GDehpRe+xVQ%u0y~R-J`o(wL>|4LH2 znB+&M=(;Mm(HwWhpqAcq6sB-P^sFv-VPIeJm3gbu>X*UmSO|!CBK8=cCdfOBTnQT2 zmGz{mpwi>z=qRKssO=c{EJQack0s~T{S8W|p`ur)6gI}8TNz5>t?tFK?=Zw$*0I`* zp}vNfQp*{<6DK(H=3U8ELf7>sK8&9KXXK*IiKKn|*G~#>w^7|Hi+$S>i-0RedzpI*Um4FKf<5<` zaKR<`X+80h(hx1j&8>)iRq^|f176mxnu59PU!Sc2zfxK6rQAD?X1*$f*Q-BHC+Oa_;)e>FF&z)*V9AebSiro? zQ-5vr0i;f*D%6vTlX6#)rPN1)aR7-)*S5)~kO?z)R0%@W-LAPOYLP$COc>felj%3O z)7`Q#2%3L(CJ&W(8fDf-Jyi13*cq{xW*yN;oj~Ykh>89BaZ!Kg88jtPotZv7=Urkb z|K+MR97@T9tX}6Ht~|hSriU1(J|Y<<6-zG~33a8gZ>D+nsBJiDH>MZ)8-J|`ojCw{-=?D$9H$#-|nBfFh`X>73VZY0)L@{iCK z9sq)wPydoNLQBIVVv)l+)gC=7L7mWZm~GFi6xc=Fp)Evdo z=t=VnRL{@N%4W?L*pk{G^KF~Bz$h|Jue4-dcRZj`w}_bdpih|)Sb##;f2Flu+$1v1 zxVx(Sx3iye9CERAq8qZH;aio*DshCyhL(OlJ!&?({`TC`e4ygF2>7(s&+3+C`% zTUg@uxAVp5o^!COGRl1v6-k_bm4QhcKi9KMTS5c|o&YYCL|V7xz&ApgBGA62j~6Tj zw|i9J7h}r>XhK(^Px6hvS@&?)n-PBXNF&fGtM2S31&>8uC!lKp+>05Je!zO!4MDBN8myn zPG_`Nlr?fvujYpZdZ!%1?!75Z40E}VN-Eiq!Wa?J)oM#Yb-8-?bgRA_UqQCk{PuJ5 z^W?faMc>CJ!EW&545CBe)8f0+fn?Ln*HF)vzryTn)7Ovve^iOstj_QpLp0gJ9Rder z8!=_3K`WaU{=!xxZI8!57Ml#7iT?13@5p?s7QCW^;-PINpeuDf9ig{Irl`!8Vq_#E zMe9?_Xaip}maJrfh{ll>XBzhg8)aEnSN%X!EkCoFCsKM!HJIXg)+d~ zLENn{yj@#FJ6j@?;%t8T9A()zTgB-} z2_EK@I30Ip&RSomMeRxX3buJ54MGY|)*`hIi@4Y-r@EzW2rg=9Xe`CfXg=F2{CmdV z=B6W_0^5RYtbq*wl18zEa5{)VVt`v$TU7a1n#168SlcwJ7b|MbuQOmh!BX2-{;ZY8 z51cahr{aSzkcW6n@*j*~1x2vsg&xenQNF&SYld4aT#xJ0&z!vr_J798Yhy4rv#1Tj zEOTz0tonUEFGIE0-Q1SY=uQh{t9cG?VjY##$>pnYF{?O*sR>2A3EO8CWmK1Igs0UR zBg5WZw|k(sHP)=t1J=+X_nwuR;q@(c{1Rw|#nYe2VD&k0K8Y2a=IwX99y#&G@{2S5 z!l8-TU>*(Xr)tH~p(?MkKe18xL)hoT{U?Z11F2BzL}mu+d3U1y)?g zx~EMrN(a>WE^huInO6aRN%wIoTm1NUmh<&%Fa>b*1{B1Ab%lIfp)O}{0WKF!nGw_{ z`ut6rd&S!!_p@>U{Ov(=(Spb>u9vi6cLLh2f6(XfKWm-_Gp3<% zv?^r*CgWhfj!W7=v<7#(ricFq^M)_AjY0C_2H}z?8_1pufxHJYr#g#whL> z05EQV8*FOlQ2aOBU>pf|+CfSXz)a{&M?`@t_B_Jw(xH)z%EBdVq%P+kNH5Mh~-JG>aRh-=8rpxm6~`QX?&sb;xSqw_i#VUXqkkn_*t3rUN)42cG#zr`FQa zClH5a=<)+vua0x1s^zYD=awk2`Rwe!4Gf(BWnf_A`5$!~+zvZB3D#AODWvjkH6QRm zkOWWfKC}1yDF>5kE~omhe}+{z)}f-(gV22Wp_ga1weRQ#UtPCH?~7*#XK7LKQAX+k z{YM9Jkf)Gky?vHSRl^|642G{S&aaOl&PxwG^Ab*s5I*oeZ4at-vtaaBAYw$GaJO$Z z7Pia z38ekOW+^~^paBz0E{ncRG5fdc;SZB9R?S5t+9%_`NfqMX+MvBuB8bc;!DuUTUV^o$ z_l(%6Yv?+g%AxvM%33;m9EYo?I8*jGE1?=+GqrpFAhtE{Ad6N-C9dF90Xb z1X?R9^7!q>9`d->4p5fWUXfKdd)ru=x3+%%Gc4`3_BehDv}(5D@z_Bpm5_4EwDH|u zjj(w8Zz)1eV=NBO_MuO}uUT^?W;@d>p#9%pyzl$|c&P>v8o7BBvA#u@tlJshn>@L3 z?vim5iPqhlvAm$eDtZf9^9!ay0oIl%f{fo>Sm+XZ~$%&;opFVN+P(&S;mi*hyK39Y}0|E9%w1qOKT z*`TE4y20q; zV@N8B^?%)0Y7?7JOziJ8O>_)o9UklF%^yCH(D}ZoO1SCC(Kn%veCLBvg_5i;%4rdX zBs!eX)KOZ=dgC3P>HTJJ_)W3a(Js zp8_b7=%7MW5QwI;Q(rjkYmgamw7anDp;EEsZC`p*)*Pi;y5y{=cVV2D zET%s079`34G*cX|fVnQ~~7U@A*N{IyUVK+y3nu#Mhs+R|MJxCr4fj--nm^OtdA|S;l)M=E* zstlza*fkWceYk|QwH<^NpCp?{bAeUwhoPnyZ#fOwuU^fI)Q*hltqOs**_9mWr8c2X z{j5leuQZunr6rvBe|;>BTr$4`2_i-i#vWwzaf7n7gAjz@VnGa7HctxMLp3jA+1nTx~dv z)hgN)RExQ^MRkqJ#fo&9Mp=?on_vI6&QppMAfi+OxAb=6b(Z3jqJ2j1Y`CFaqUvf_ zNNUdSU1&IXzl8$&+}*{V$#a7Ea1B0`3BGf)Od|{~4GtBKr_Z+JD6Q~(bDaI`<^0Dv zJzQN&%Yb(Eo?il zYTpiRkg7W@Ie9-KMUwwL2;mPQP_UN#-4Wy07v*RzS{;So28lHZYwpba%AdqH1z?!= zQO=~VY=P%`c*H|CLB|G}e1L@T#7%$^jXGXqE5$f7#oH^Ly zY$knm*uL)GeuEWi#jg5}csQy{)w}m~85(vyXr8ocyqBAlG)F9j4ajk9Q0Ya}s>^3H z@(^r_R-=`y5bg}-c$Qj`4iU8s{iPS2Ql7NwMjh_K@Rk~^)XG&#Uq(pB&GevJ7HCu0 zq{1lk6nxf%g&2C^iuO$0LJh^IwkVabyW&OY`^K-hZk}2r3@%K$SEQcv`SdgvZ~&uE0Qaq1rY5P3ul<5DTOQzl@glb>%!o(xk53M5HgnVq8(G4#%&On#f$%=LCbw(w%; zG7XL*PUDW2gnm!A%Xsm@-uce$H)&?UJE!MW(C%??ogzBbibjn%U1+|DbYo{)}GmytXL7#89%Sy5pSGk>ni~S~N z$RC{qnuv;Jft6-hA!8_CgRX{KVnXIyY~pKp{*iYguG@BmI__KS*N-@CcYn%- zy)hU*5m^-3(#|KefiV=Cc06Km#VM5Slm*n3FI8uI~xZ2xA@3pUB-fH5H z%7joCeN7ROuVkAY5|!IizbahDS0~0lgIO-`5#ts9H!aXU@H$S*<-TJ@HXk7m#3Wtq{?SIl)rnRPH z55DnICo~^mMJQ5ALO+oWvop|7Yl1qyof2LD!ApH2mC%pJn)1oB<~BnQx6=PLIFyj! z62jg7Xtfq{ouy)pQOWH$y8jCV^(Z*PYL?Zu!}o85m>!)yo&~O0m^QOUul!=o-ty|W z+l%O%gf+yu!`!_+gdY-U3}wEe$a;#e9w^cku4Qu6e}cCCU5so3Bgakn^-TgPYpU0V z#Irvr@%4OP`)s-plTfx19o(U9Y<+z{VeDbUTr&mzmChanw6PMeHiR~ zeJrXl+iCh6h8m!Ay%7=9t7iSm2vGsmF9s4KhkNUNJ*BcMQYps@yhow&Oh zUnfR~up|VleenWQ2l^UB?sT^ea;E3f6K=<6o?_Iq`; znvV)skt%MpC>dP(yljW5bS!-RxdC<9>%4}!#kKBTCY7zna*{sX+1iCqfkv56dTv-v z%P7+PeS1me#3myxd5LOcR)fLlmwstPO&d!Nl%s9q^i~#0zx;(CO`((aTFz>geDyvy z-+09MZ8U-7VmmAc?dbUbBQ=~382<-#7$#{hbpgf2k#LY<$MA|8u zKzaD_2ptrmeM|^HeTMxCtO$ayv}1oqha}dqy4j6mNLUqg3U;WXmLOYeEdBKZd)(e+ z+NXAM-MW>VXkUpgy+j5!`(}{fk%LwU1ylbZy)G0gSyDdl1QGm=Sy^0!sXo>5H>(w=ZD zOG8&^JxgP$_H23*O&!O@`T{qSsV#aXa^LD{>d8WAc_@jPs(Vo~x+DP2fFM zobfqO+ztz>(Nk?`@O@$V&>F@gn^wzmhBmDwg4~oemtFgR=w|kVFb#qgswFP z{QfJGUBg4qUJp`UOn}V+>n$n13l3m`Dq~7q&mWbKRB94(N|^MYOw;R0$DS2J8;c#P zAdpsNe+sM)yzRU7Td|H?KM0v}aPA`b=YJU4pSn%^vpNGK2!*;`mr0$&@K3-^-C|#2 zqheTJjGBGRQ7i?t6+`W1`_YnAWlzaoZDcC?u-~@?rs@9Q%J+ArW+t`=Si$o1|39md zENmSAqjx}S{JVVr$2;%4_o9q{?jqr7vb={jMjfMu0sii6#VEO$TD;93tOHIe@X<-|Zbv zYem>#08S}jqcb6OP-SVPW){%J_%0+^{aQ(nxyE;jCEXH*XD_YX{v(t7aWP)TLyn^{ z=x5dqmrlm(4<%)jx^V4QP#lx)>>3sp7XNO&yMmoM(H71=if>_w%Z!Mk@P*`2#>5o- zmHdM5S$2R`W&C;T{FcI!+|3vcie+C)hldS@BesjV6aGlAHg;Xf4?$^)8GlJ&W;k4E zI@)+fE?!oGfs%al!yoKRMR0VkbhntDv4;imK;q7}m6f6DJc{H@yhdLSGkfc=Ua2oW zH)1~hUToiQ)S_mHR0iS>H~;paJb5~3ucu}G{ZG_j9%^%)P{lL)`LyUeOt@AxM3qUKgt?km6qB4MMs971JZj3mt3L(o!d4pk zQv*TYzrazO#sg)YMxJh@TjgRR8XYiWSoU~^ZjN(M_~l@d?T*VL^QI4*N;xgX<7}60 z7alCn|FDSQ4;#t|&$Z2iz)E+dl&IP+2l;dZw~af#&0py+zGu6tW2}GRnCe0jTW9i4 zwQJd2m+I8GSsTsDbP~9<;7cK3RUEBWYAT?f;%gG5eM7^fucDV?$qV|fs{xQ7wm+WV zbxuffuGE(c4P#TVS3}B2iPJSdMT7)n)#mMB$HM2^@)Tnis@U4APsT|!>SJ2Y`839iL z_js6ccJPamNl+U1de}}AO(zXzpm^#r9T{O>bw&dvXRdtVfZq#kUe9!y#q3RMP<;Sa zpXImfb_DFO(GmAn1gw$>u~>)SE!&~1P;0U#b{Mc<$3`kJ+x?G#qed$PG;BEw2jlLx zMK{}+c{9uGmFGWPExRNs<_jQS58>u*Z|il(55A}3sGOYa#x3JHS4P2WlKSqbyMe*k zd&z~L(dQVxq-rIJVp|E7`yjHQX4|m$^U^q!&XM*is~qemV6+66Vz`}R2hv`*)gq@H zI}wKalmThavG2&y4R@(zPWFgeMzOco47>98P%2BdyVntNrE6QP(|$jSH{gj(kjaW* zVs&`NBnn3x;En;j$B6cvYbF6+#>uAVjMx-h@9T8^p*M6kq>n|}1b?)nj>h#pZ~_Wh zbdD!lmxJf?#S68rBV(Gda)#=dO-Hz++Z!Ks+XhHQ=v<}cr1LsbAD@i*5f|X?p!nr#l!y4$huN~ETwY*I zz()kZ% zL=yjj?lcpi{g>j*!NT(YDbB1c-vjsmvcq(x&1X-}1%LfXcZ`%RpDZchKMdA7ix|%c z?Iv7F?6!>2@y{UGb4D_Av=*4fPBYR~l~M3=EHUBqCOCeU7FO04Hd}{FMTZ}twz%2$ z<0bU4m)K)|&IB}go*DR=?kgl!0dJt-U68DOZ~EGGpup?5u>10ZxaWnj?=?vb=H`}7 zyTq+U>c+xXTHv1Q_QY88yb)jlL6Hw^#J<@$TvNS=3a|Qg}o` zoVNg9-tWsDh6`B|`$CJ}wt^|6DZj;G*1rc-_1J9TbB2jlBQ8^Jl(#T= zC22zDr5=E{%R^|@(g;uf$)z#{iUE&_kXCMcr&ex(-nb!YS`}u49;u?ZPPrG;D3Lmu zWA{U-C-fYG(`IkBSOLx%T5j#oM2QTU&VcnjPeZ}KD-1jrG`8Kiy}2|Z zZvp8r_CFl8FzXNOm2eJw|JwfMY2ow)Teoev*q1{pBqJcd4%om*T6f;zI?Iihd2sY( zI76&oI9ERo1Ok6%BAZcU(M)hybTlUYNj8Qrn#vELJz8G(o@8n!FHl6{1NQ1$%nc;s zvIkeSnmvrc;*i(yxJ+Mh6}A6LW*I1|qz;)0FSGH{Sy<&6PzSV6#N|103k}Qm(~+DS z@64tME}f%OJzl39y~r0=0J0BHZb|F5<-8&n9p>byR)wSOETx=d9L15AnD5gnMh(&mt5%iNRNjHpyo&avYhWH}6HO3q&nOZQ!9vpR`I^VurU0A6Di}(k(-C!Sd(~IFg>bx|c}=JrAr0{29{P zYnl%qmha`Z{#CJPGYjts8*@pcI zKt7GrTyy)3Bbj860x{7ZWD%ly;h`L=LPrvVQZA_2oV#U!kp<9?3wewQ(VT1M}5T;RQ+SWu3pB@g zYLYShwFBSoZUt=%w%Oeetwl?tHjBR&#%vdSA-?TZjJ4Bn@I|48Xc{Z0Lpj9nwi`8u zu`gAm61~)*XYvvGZ*(`UaVXs&=P6E>KH`A2-lw}M35I#=M%4=rUE}Cyixh3jWN^G0SQcS0k~l>9|&UmK-j<@G!O8&BEiY0^*(Pwn7sZM zI8x)C!xuzZ+@9=NFiY*~&vZKj+M~ahy!cR#8l$~|a)&anP?V3`msHY!Ls;`}OvhqE zz9j4)DH7p}YG4;fqN%1F%Nj-E#=gLqQ{z=v+b-xp7(dMkMoOk9tY*6PT?Z~>q`%M9 zwy&Rf{BYAb?OloKQu#MC_LuR4s9bNMoZCb;zwJ|8?}F$zkh$iX^O8p2Bb*0K-ROY7LmGs9Etk-(khRQB;^x(_jVw1iD?rPKl8L&d+0n86+9hmEx#;j6LA-P z`C@(}CxbM z4+n7G|KhKY+#;aK~o_dZ?Uz>`V8t+QFSP zpjoQ`+a+~RD^EVqY8KuIsv?mDc_&|IVs>O0sW;4v1u(F&&gEh&WtissXQ>LiZbf#y z-)zj-9^|>6)4$sjspWSpq`#q0BlF%ZU5W@bZ_|*ep&t@|6(*)QY3ran1M}Tdq;yiVzvoDVH(T*ZBh_bUFQeoFgLyF_uTC`i481Nh+Xe*|GQf@ zcjbt;m@6!o1b%e+VNm2F-OZHJ@tM!i7^nR#sXMAeKuXwhOM9Ms*Tx?tJsU=dOKUcS zA=FNezUCw`CFne@BJ{N^VGA-y+A5cPH()_$zq_Qaor#uPo@Cu=9qsrqwsH5>2UVs; zYRuOHaKtR91>Hj9C z#VP_R`sxltw?LSGRMG0iccm~9km`JZi*_Td9?rqpz5jza(B%%mq~uFS2XTLb%~5H*|S+ zv=%@ndAA`d5XY_aYom5{m)ZTz)bZpmfX{M)c{1_*mxE(xrA8}Ltjr{fO{-%Bsbj&& z*at40Ol0a=DtCt%bsaBVv7vCl*|YPA^)FJTX~mR!#mZRx_<8$s%DSxueTp!C-l7sw zQVg1e>$F4REeHUWIH`jpLkecceQNRH>U_|VHX<6wPz;A68CWNkC~6Yy1CQa!6qV?E zXdx@^MoAmpO=BK!-r*8QX*aBccWn4Fl3Ysqn9CD)eMJyWhaWCrT8W9|^6Z{JeFbR9 z*_i@%lLkfrLGggo;sQa?0G=lBz7sM;H%xNmEWJ)&2-(- zwNx;0d)DS3Elrg8c2q;vd+-d+=5X*b@ajFe6W2X!;pPLB>!G#OK5l1Jl~-(wJ>~m7 ztIgiGe~Yrt+Tg}&IdC7QAc6wE#Afdh$WUM}W+o~c{Gs&$EbDCZZGb6)iSJ*N1G~1q z;*!vef-udyQJnsb&e`?5sO&uJurP*asRh>XIEd``yRu^b*V*vR@%7sD-GwB|Ws^g@ zCpOnQ)1&^Sv4d{CrkEh z@CpBRS>RqnB9VPa8@8;f0jD3b)pJdkIOgxdESG zY3g*ugMKkdoUTE`-|`N*U zkdZe})EC>?oJe8bcr~r8i$yH;{ox+SRK~=PB-`L0j!mk<+EQlQB`{ z(MX!*m)mxT)>^{telAAJ{jnRRNtkn>otDg4c8P6FZ|(Rub@MOK9dp71e%T0o4a|L$ z5irpdB|SjdM=0Y)vUjpmxSi5zv!sm0UC>%n?+DVd=7-~Uge?phSM+9NO7Wik_i3bC zTj#YhgG({o&99%p+drOR|9#8+-}r0xA6D3ZdWIdc!gM{WzJO~Ghv%c^%JI9(t^l-= zo@mA@#-=UcFn;?&G`YuhDko7V;A}1>(}sH$it%pLzb}tnO)Q*`ER;Z>O+$(5DL>yf z0e2I;{u0AuUQ`FrM`(|^-nu5IOxin0f~O@V!cYEo{g6C11sQP#xb0H~oSsn;N*#F4 zm2jLZd&~beJPvS=F9%_Ia5}p7=4+> zK$&m9nz@$U3jjkJeuIm=F>A;7b=J-CsVa*0x9{y0GYlo`r63N)k$eUkC<1}0>rbCr zM*qqIobwu8d629bL&#JA{e3*rQjPU`IiVLA7r?z-(R*wsrH5(a2B@&a1k^jYi%hch zp!u~!>Kzsj9Og_abu4e15bfrh=?m8#^nBkCcc!#;Qor|PA(SMvM|(l91oc#g!Z<3I zSSTZ+c2*LR;wYo21G)7gWlR&k{wcU|_DdLC;#Z@sYP@RAtR%o9NqFk}R zVz=?gBH{CD#twF>={D0G`ML~@65N42Q4d)mvIS_}x0mC^I*eM_NZazn=3^zszfJhkoKO!JXCV?Z zE@sH+P$7&)C&EGZadhpc2tDoH>se9@PNG)y4rAH#)ulbCi>wWVu`p{+8pZI zEW>~}8fGrZCK)P3pE8u$0s!*>EX&@Ejr2RNmp{r#AQXz@PMG2si7|QHeEtLo#b6yl zVA+K)pD?ETpx+RR5-Ov+-35`1XNwdYok%9_LhWWkohHDC1W{J876{#C11j1}_)7%8 z^7Qq%bBQW#T9K*`Vsy%729`h@^S9n`g+)IKGfodujX3jYFnJnJ>7m{&C#)hocpsW87zn!Xu3t+8Rs6Wp|tGDb!mybf% z@}Sjo)nw%Fo0pUb!J9|0vdN^(N^^D{^>ylA_I#NL_{pBncnp)^K~}+wTXN>hdGpls zBEfW3W(u|ueqTIONtJ4QAZbV|umysK-WWx&HPC+bcwXCN{-$(%QZ-~SQClo-+k7;H zGVg|DeABMPteLCXNsj0Aaz)7$m^y17X3f(2&lD5{ReidE+K9tnC&9QOgvJp;2>3wS zYR%!vf|Qn{C315nxosVK@tdu=l9ZfxkuM2Og_AoLUWJ;cwvWFg?P!1)8|Lt97Q;<0 z&>u`K`aLYDc79hNs8-{MUr|d zVqc^$=;mWsp6A>`1|ri0i%?WSa9Ru?%KqD0f&!FcBfnk%5;?BYgon{ka)L`(JFd>r zLfxyWA`_`oa#_JFGNiU=`)=VhYL_k^7HR;e$|_|>oCrGfR}^5imbJbjJDll3`H~Ku zcOj)O8Fv-wWZXz~rA_#G>~L{=S*+%xhjWFmt5Qd7!{v$c2;EJ8b60n}I!vB=jhmCR z;mQzyT6I9xeM`A|SptjT^~wr;7|<+hvTn3DGH!RtENr)$;6t;rmq!RIQ=OM<;^V2!}8f!8g(y-b71(#!%Lo91kWm!D@S4eS(#~g zY4de5H4}3iS}D`uK00pqLhqopd)_!WtG@s!_YS>w*pVgU;1$;;+aDg<_3A2O02VU~ zT^|u$&Fdb>Hb-Q4iZwnYKZEChlBzeLix-y%_AWu~P8XK(4%WIaPgLiu;)|xK$-sdP zZR1B^@yCk5-xd2TZGjvdnX>FOi!xc_Hn8$}bxaK|lWhS?1YNy=*t7f$8$9w?(_;<& zPh-uqLv{0*9d3bH5FMTFL$ja3q>@|fe5nv(gfA_!U0nI=+@ZXczs(8~=i{g&walZ> zbY;-L0UUJK*Z<*i$ozxW{J(R^{~x}Efu5e}-$P19HirN7)U~$79zp!N(zWOBF2wI_ zVQTor6s+GHcFr6OgwYJ$$P&aKfBL(OrW^&8{qxb=WDL11yq@yjY7GDP)Yj$Y^z`(^ z{e`u(l=g*%#9|x@y2MBrA%rth1@xxz7@e4EczY~oRF(9V)orO0iln9XoV*nLY=Tqb z`a&YXp0vJT2hP;Bu~=HWkx{JFht5T5BioIi1!>BxjODpH7o$ai`UrzEeu0bBI$7>) zhSvDJ{cvn763G#rGR$=FMi)fcixjkTXR3$*R|IcEP&O?aEL3q#IDBV)klbQ0Jz%-;0GIQ_(s9}m_QdQvVVYse$>{K5G z`wk_kzVvBj&eR!}U~$HXX9d)F*CIOc1_2gbrp{t|E42H^(z1!NsycmP$H%mS3a#?z zlEtI-hrm9G$ZeUr-Nf~-MO66~Xdj8ESlo9g1$TK*uUW4o3r zZI1@An?7nu)03AW$^uHiEr2T`enb!Y;r(h)7kdbGC_XJ7AnMqo8(1ywgsc#Ads&3+ zp*%8-o3Lzax`s|7OI>tK9VaqrJUC;k8$`)r#2bO4G3{UPr(;e}cNe>6^N{^t!Yh1y zsWapa3(@E)zV3YAdq*F7yr*XN2Wt;bUnlb4Fsua-zj~*>Fuj7=$M%6HBze1B{2}Z~ zKlg7BzFw_79vm2bxA=VDDt%ep`F4CiFgzY=zSuML4t2@oPMml-vT{66SWw^46Yfuk zF3cRdN5Os0OU5z|0EHc9kH$tJ~6j{SFHXy&&kY|LB~xRx`EeeA^E#tCT>MJ zN>C^;8Yl;r*Iw&eW^vwr-jgxCEoCAd(Yo{9^j-Ijhh96x+sK>VL-se8M^F*&@G6c2 zBNN!14yEcH{w)PP#PQnh`sHEgGhyN?=I_YD!k6*)GdkbfPD{`9vFWkz)w^!=agPqp zpMuklua*c`Q}`VzpX+az+lBj^4RK#LMxG0JL#hzlxIqb0!VEDZj=LhtQD6tVQ2J`y z?K=TqUaqs5o!u_mr_$mOPoq0>H8X3Db(|WCR`>qKRy8Sh%TNe;hL7jL8mxHJEVaP$ z%V$|mr|Hd%8pwj`#8NCO8pi@8HO9bXu}TwCG8GwOio78CmBv~u-rOMZhrYZ&=mbV^W7tls z+t+Cdaz^`o*YeDPa^03a-=BIeUUqJb9J;N1kOSY8D~LdTlweAvBt>#^n*jVkk^cSY zL67NO^44*?aqp5SRCYa`8uukN*kJd+pJIH!DjZJ&X?#8G9qN1P0AJISBiE+^bB!bZ z80Fb4AuSOhSj>)S0;TTp)imK$4QiE9sh&;2k&@~DVt7rEkeaq66$vTVmn2;J@pL*L zHlMEZ#MPLU2K?(AZa-zoH_~EvKG-{s#7@?@yssNQX<>ErxIUZhoyGYO= z5d)R$kfDWIkHzFR!n6Hj210XF`~EXPX;o7gA; zY##c>ojb~1=+A8wYDIh)Xe^az)mKJG01_#iYhag}Sj{13f2L0SA_HRlcbpsOFA~@~ zpa7r)1Zpj2BCKBlwU&^|)^4E))b#{_HqdnhX%b?h9~UwX$_1+*w;m`^JpL@4Q^iA3 zqMj&#U#|@$J^anrE{^&pib_q12#^jviz2<7%bmQdDiILz;PcCIZXhbj5Ls2di2KyP=n1dqBlABSZq?2kYcq3)4!dIAa zl2!x`sdu5#;C8U{Fg+E32xwzaerz^kxuvb$4diRj47+(vhlnb;R!Bomvw)!6Exfji zea}A~Mc9?mKgpC)d+wl!$6Tq6z50uI?PRfr?6h@pVjJQuS&Z}HY`qxS! zNM%A{i+R7#KN6wGehY-;)v%!o(!_gNYpk0GRcpp2sniP$1Aj!&&<{ zVYKpaCxI;RqzkTwI{-~+Ps3d;ApxRYt?y3PK3=wNeaRbgVh{lvS|G-PZzDFk$3u&c zr33`%FhbjnX!;CFt~n=wKw^=`G zvzEq&2f^2X80+cn>I=&Qy%tm~F24|GTv)=YcpgXpaf?VEYdKfg$}d9ki>tySdZDu0 z9noZjD!k^fony3^eOa>F9QgWKWL>Zhwp0>qdIz&P4;QlZ(io@>YM2F{gge9{KBnmL*7slbtzojGm*MtLrJR`zZ+HOa`lX4M0; zN4>{N^=~q4vrQ0ARE}Z60v)F5%8c)A7%xgmxc)`@S#KkgDc`qHl#yVRcysr{Jed;! z=H{$mRd%@Vwyl5x#l0lZYQ@A4j+ZOMCGvhs0Ib!2^;FvZ^P#dlN@dhmO8QtE7 z);GAJ@rDlogHGEgwA_*OGn?w*u=Gk7L53L;SDASk+39tZGzMXrQz{3&R|&rTXkQ`}9#%%sXsjqA7Y+z?8h)B->X~0&~wqXAcc3%3wu=8?f#*+1>-0;^f z{&?Kkal+wmF9_l>INk6LFAgofZSNnI4|>7Gwd|c<*naq8Um#||i~Ap7@_XGX`fZU{5YFD<1c#}l{Vs4r!+U}A@`X5%x-N?I z51dKa`h30H$eQerj?Y6f`p~OHo2(EUMlzdnotj6e;op<#pg_K*LQ$oEJ}ui0Nz)(P z9&ry%Q+b~Z9Lc>g^st5k1%-lP5`E(s=@ka2^WrPK=JfKlG2tmJ3G+#WXRN9`9!AWl z=})@jwa&zxefzl36VC~+oHg@UY;QseF^-U1hORPg1t-C%NU-#z9GzK)YmZq3?Gj2p z-YdlEgx>SeL4?&M7IRCZ%Lnn8lYui{q$6f+kO~y!#4*-f(z-*7I^%U0Rcl(+{e40x z2~a@Ff7@bJp-06v%}IF=&3cQTCUvlIb%2#9?~Z56l3JurYZLVwl&i-kq>|@{{WVAG zQku1kOP9|r!R&6dyn~TrvYjNyEh{Qc=MaI|V5VycctK8T00#GNF0B9?z|arr0te@? z_f+)$_~7t7Gui7G$VeaR``HQ&&m2p?3?D?mE(6Q=jn}>Px!o|OuLL#5d>VN8zv=u_ z#{nswlIAe-9g@VMfb^YcbpcRsF_0Cl4Ht$G(jU`k498+36i1%Xh!qINOm9{hkkq(` zH2Cr#CWn^J3hbe#Y9p9OcWwRh66#wsDoh-1evg#yDL0A68X-=wvUfTd^ys^k>c^9K zivaq0trkpo&baqBKjhju2TTrHnCT}3xqQ+G_Hhi%1DQbvLotg~-hG?&IE@-mrsJSJ z&$?9akQp!y29Z_Ts7_-yEX!_s(LABI?cwTxn`#_n+)+rCig@wC7zjZog}(5^7rzpj z;aastWZE-4T8Km*g%*k=F*Wd-GNmGRn$i}RCYL2m?W&{ZD~t4TM2@uO{ya}{H(`}F zQ_?4{1Y8$%H9dx68&_(wlf)Y|6D77)g8UnWo?=)D-sG$`#`;E_9dk4DU~aZ%CnfPZ zIsfd;dTez$8g$oy^Epm7=p?gF`mMdXRw?e+`)orvx6+0ddgvJd&ci};lN8bvrrL5` zrV%=!se*R~U|jolFu>~lLd=E*xfoGMr)s;La-7!4w$SkVTi?A_krBR>_Lj9K`eQR4%;kjsBEW##2CI@%z1b3@@C|LuDITd9h^MC0TG!(s-`Moz%9O zYgwXq)B!UwMOj`F)zL&v2yr+#z%UoBDbl`X{<4S(pp>~1!G|>|6ui-S;$H+R5hS26 zdDuTb>zIfgn}Dg`_o)_GCaE!t{TV}Az&Nb$z>tOs&Lw_jvBOnE(-~%l-@f7$_%G(- zH}%*K)QpQ1m1~LpeK$1LlHEwFi}7>_xadfuecr` z6K}mbYrx?IKupg+tB=(Q?spXOkiN@{&D1JtzF<-{7n{~9Vk~e}Efd$dc2gLJru$4k z7+ZRsNBa!e4}X#CVs%E9bu7&4wnoeyg%orXG9Bh-5wUE_Y^!2^4`-U`40iz8(LGdV z0Xx<(ke=7rCqpZ(A_$BEeH#Y4L~-R;fkol#2B4}!NN50{F`ajamOTPxN+cVm;k2Hc zP!#Jwq1{1p!XaO1`#?=qW>9j$G38l*{BrqLs5*Aj=EIId&%H*0}f0@aqC znJ#^>a^#4_JN2L%%Uhp0Y|YE6;)gyMUJruH=-~I8#_Gs}cEZ^)|%u(;VW20wy03@jjHyW>9koZEgd-s7bJ(l&&Qq9Z%FwprO6qv zkW|x*zFySUAe?bdiM9}8@k5L^lVth%F3Yeq2v;)mO7jZZ2`$8t=4EZE@Y!NCb`t^4 zw_jj=Th5|vU$|^cKhnrh2xL=Cc`kG^NuSP-p00vsKyg?gqFjb=Z^5E7p*T|Qxee;p zp=%~5p$?^0pwU1Ba+ar+!z-vzIhMN0pu%e6BtH$xu}T^xRDpiG5o&)W;;id1!Teek ztsdyD<&&L0PFJmCV}Sr7;%bg>EY|z{DfAI+_(Lw z8i3`0`c)a}nHc}00aMq%8967we``mn===zJlWBq5hHhv_DMu&G;nKeG6^5!h)*>{U zheK2(wJdhj5_vz^PX;Eo4mP%0B8CE0{d+S8HlBfRg8s_Ra-W>+0wy-txxKr;oR>D) ze{kOgYG_Wx9AEqIIJLJRxPc<@aYNg+KSR`qtf(bCYot7@=@?Icfcfx^vR}unoBJb7 zAj|mneA<^l*X_{B+sdDDQ~lAVB>m$j1kS*DK}g`7;>9D9gtB$70bO*=L!EK!gzlugSN`w`5GFwFaZ@sOTgLHLJ{geQ--B z4DPKAf@o#?@GfOfqImVNU<3PeI#tyo)au?_SjPKg_Q3jILNZsGyZUtweO@*lW*-yW zs2H?FP0nh$FCxLzPNy_o+?-LS)~@XS2|O{x>$!FeP?UF?cK`t(_|u4?BlYX(-Dw4K zZBD2@0k7=Eh8r^*4L$n9dgw&-M!Ui^OYy3sV?in+R_c2OEzL_Yg%%S6-3FFxtkW zc85jdlkN89fMRV0Tp?yNbgrWM%{*VQ(OR$s)UT6sLlRvCo3791LZhaI@y*8a)gang z6XNOL02z6u;)B)>S1d}1m}ccUR#wPra9&8vocMhV>-n)!>e6jeXj-}D^@hc}PuF6i z5rv8GcyLLlt3Fl}xM)OiZ0(p_y-@DMdwwgd5`X0@8L&_x*UgY_Q`a0!IffmD2j|3C z*5U$T8zm}@_7fkrvWJ0c>$^JtwI7|EdyZw>r*aD;tKK2BPS9{`F`VJ3n43Pa;?Nr= z>_OB_TA3)qV;Qg8wXjh?fXf}JAF{UFkK6(~ZwJT>zy)^KF$te($LLQj(~yJN`v5MF zfMOSOo@G;3UCp@?llg^PcMlGQ9-XR1^~~JM_@(gIsY1HMsDUEKiKwI9ieJv`L*~t5 zWLM}xTUHZ=hRMhyj(IsQoN!ytIe8(Hyg`vU^FdMb@?6Q3l+k=$5}ylLl}7R*%&V}E zx?Up6Aji<=4Nn4iRqD71lO}0XBatz;^vKJL&h&O2(d`9cU@C{a7x1hBDTmZ#2Ji%7FN((^K3I z0Z=Vur;fGfD~4eSf7?u+$jbfs(n3h`g6d-n@ahL+=tcUoi6mmxYzFuuWqGa^R#!gY z;IPF@sWTJhGfV~TN64`Pc&)G?;W5QxY%|3-j4q-B8=_BPYT+4SFRnk@1!?=m(CL(Q zvhj0@X>~`@4nwLh>=o8l^2?FVNu{gY7y7#j-eAVWx>amI1&m1MTw?6WzYjKLIySSk zG&=UeO&}s7;bZj4VyKC`8kq*P@N7Ip<)}S1tbIr_?THCeiiOvY%5!LfEq9und<;wa z{p9gZ{$xRkt&Lwi@fhUE@u9jsCK<-Z@Yrw5h!T>^GHt6 zW{S0Q>(dwmxLl9jPwTN?WGKb?9Gze+Eute?W7w9WB`HyB@6fn~;;}O3ljGMdIj3K6 zUgI#~-VN*|H1Vm%0-LUu=_4f@j{f@^x~V#!@T^$ux6K}0ePvWZX!0`bbBpy9Z#MdE zW5@F4pBg1yld$Iu;kYD+AIBV;=b%Eb(Xu(#L&!t2>BycB!twCXTkf#On0Ang;y~_T zyQ7j0b7%_9{@Na0hFs(LX`Z##SX*NI@vG4(yG1%CRNp9OVvgSHNh*#VYkQJvYkTO0 zw&LLXVuI}9t1W%jPW6yF2VF?EWLp6_1~nxmWrxssB!jZAr zbjz>o*`BuM7kn!}6V!jI9{y<=n}y*&1Lph-dixWx?0#20f&Z7aj$g0WWf{=poTw$g zB)_AC$Lae!PbgeS9;IltE-R2IBF6nb15*T!51ga(GWxpXxM4mJdE0Mb?{frzneg#zhW_n+D(?ymZi2J`PxW_$qn!D`l6> z0yEU?6W9mdLHqR|!d{%;ah68$i(89^D$18L)W(37_Frh?# zcs}1;AFH2h3RB%yJCq0saYdwirXnKLk+*@uv@~7U*E*EUbyU7S-#F=U*S5m0Bq_*>E`C#cdDX;~wkhNAN1_P}wRz zC*v}L;kyG(&AKa9=w?T5H30I_tOs4Q0@`H2BOTKP_NewV2uaH+z`X_O1S5LkPJvj z5OT1;97ho+lBM!xo2OKMNlaaM%BW;kXl6jZ8d+fpU{VXxS0VoGt1C)%(9tu~P9YjL zEm=LaA}jMFUBSV`=%EokI<#pR3A&y;lJXyp9Z7Xa*Hyr&QZHR%x1VHnG}ea7^HIY3 zRmsf4ODI2-t3zfnrbQPmf;kRhG&VzebszpzcqGqaK7}WBo%RW3t3GYqj67pkI7yT0 zt&o2_SaB4$@Pmsm^v~~GUiVh$w^H7=Z0N=u!t}hWG@@3)@YOoNuCge{z@X(i#_Ul_ zAvcZhin8Q?`mCna_vEPbB9r0pLXIpZFjbm&JTNJBQrDY#M2DG;Cz@~ zc;@V#e<=HN&VT~_@&0+TYq*`z_XpXsNI$BdxCRe|G4l4S{~d^ASxJ1Le-|?BCwwQE zF8rB0zwmnya|@w@rj|0SNCLBNtFYFHpbhn=FyM;w$_bUElG#RXm@|7Ko0iQpbky4JC~RB=`ZIy_L5Ggx_=`bd#p zuq6_I3DNAbbosM9njf2#dHbw>M!5hhlb@?Xgc!?o^|h8&yGC$BN^>b|gmM%aB56%Q zHnC~zZf+*m9x@|Jmyhe^A`^avl4`08JEEy z2L^y&(LFZTu_KE4Z4iPek57Z=WDskKB-*Sf`pa}!%xODp{oGJ0p@nuTzKE3+7A{5I z4XS)0j3?&vYwrb8B`ea$NQ(?PL$7Op4d~3BT5GYJ70DSCOR36a(8lbVTn$D zgyL-?ipmFs)ON4C?CP@HI&w#Xe99i|szj^^H=MjF!NP4V=b|E1I&2#<;sC%Vge1>C z1;Wp;u~mDxJUC9zHsbSptNTO9NmSm>uK4Bgedw$Y$MQ zZjmDJY9g_adkvhRKWL#2auM~nrlf(?ew9~Rhw;)o=MhOcJXgBPdz^`ED$|b`hrQkO z2eo8y?Z9rFE zaqFP7MRZycx^`F8Q5qg@3z)>rm?W;q?ynGY#PntlCp znXjtgSY~tl^x{9xzG?X2(?8SI5^mG#%q(6v+`dm;_?!=7TWm9+R<94d9x)on{%mb0 z3CRUK6G6klPyG!9RWganQRs~f_5~j`f-CV)X9marym2xxar~#C^f8-5k$*)RPr$Y4 z>cg7=M1Y&QtqEE{{+m8-biJ`@v0n5turgVRiq|Hlu(HFKYpW|uXInM~-H@vW$baPO z(-ZuI|6X_2YeD`PFp+7t>-*%(YaR<1|Cg6qRn*?V{dKP?Cm#kxCr~K750stH4cZ~D zjv;-IrIydg4b{afjF(UH`-jh>%miE=&dhPowlCKy(9X>iqdExqAJK`rMNfmxYx~UNPmAV z!kEp72SeJxfwN$+JC&Od?o?+SA;4?LL;W&4+{U{vj0Od>^oSUPaZA>}tMz?k!@?`y zMS^&8j+`lodhN-l z^C+-U;=z-W8eDUQ%lZejO>SB0MzM!+h@SD<_D#}PUouh;Ibusj>FrtFFxk9PRP>h! zjOX}wBrSS5sbaJw*x?rSx5>rj8P;E%U{rne6(1hc3^Huf&z4pM1}Z1VSjorcvPjCw z-&z+6c_gBEDR^2GqjdDLQqEEu7{E|GlcX$gf32AP5wRWmZr6mP)N?9iS)DBU1pVFD zSfJaH*7HvGs`Ym0DvadZ-JL*CkNb0oh_0yWKvdEMa<~%J_VPeWljx0!!Fw@FJ(ac2 zyMU_CbrtQc>Bj|I6EgTzy{jIfgg(R`h5g`_b~@i~&L-sZFL6F`PlB;6gj;J9l(dlr z?}$>-HJ#DCi^k7V(t@?%miKt-ixeqRE1r=NpE;nMb}FNUYVW(@ZW(QlQRr}Pb?xO~gT8w|bOT^adMCJAFc5lI)H>0@99b*$MQ zu*(Fwvgrbk1Kf{&mvd5vr^`YaWxE00Q$XKsIytk?TAM~EXJ*@IkPh%R_Y{GG$dVY_ z(spqyu6);ix%t>-Rys!uPLK7WNNw+t2S`0my(}JYOmo*tUWm5ey)h>#yoTKqv5K^d zGQGRi%IT!km4COatNp7}gZd(px})l96YLYh}N-P z7f#p$#O}4gnHx!XpPdJ}rG2U4qD+41h_hRzQbG$!UFk!>)-r#^~0%l=?qx?rY1i6DSeW<%<7Qv8aE#{J%a?!UpGJV23@ar-= z9oFzt5HRn;D)gt#@~3xPQI;-c8COJcI3b)D$8cF2#iU9(8qFnlZsdCILiDJ?zJ4UX zalyL{p5*%?ZWEn@8oWMVenl}rs`W4sAJV4;jjn&~R9!t&J^)P|z;Jv3 z!T?+Dy!knCSfLj}Ig}|JZugAF5>bYs7@J=f##+x2aeVJg$~nAP#tyWkOpHvVWXuPm zM)&UD+!_LW3Eh$Zq|uqx0Q6B{@O|NXvI>6>tOWm}EmH7O|GIq1n681s;R75*|Aw~n zX~OEq@e$c$S532z-Y>Zs-|5}4)z3WkG&fS~D>--g`aDQMPYeB59G%H)$@Lol*LNq% zygVeM54{nn7{=GjJLyNBe^8wdKMLNDmwIMzWTNJ=+`Zfj#v4l#{VqT`wIokw)x}I6?5<;ppI4SBT~Ab7L^)C~I_)tAE9g z_P2@&d+2zjxfiy17;}5vFnM8n;Nq5N^gDgEL4SbaTu)l zxnh0@Y%r1bv6%))->B7#s;MJ%BT_VXthgh^T*jd+E8i3~VJ6wQX!T5JNg9dNOO|W+ zxqjM=>s$OcUvp2_`@<`$OxPbQ4qN&9u_r9ddbT=Je%b*eMV>KgLs0dtNvcc{3G=?A za+VyzH`g1ds554ffLt2S^g*mO*qDrZCwg+--{ETj6DBS=QBVv=9AYzQ#&?nSB|pMJ z$i!2~3${OGT{njjd1*#qHjL$Sod=w$QdnagFm$6SiiIL8Rw6yV=TwlR(5K2>zQt;W zs-2FiSCq)cp)=Jw+S}P8d=kVktarpr9H#}`u}Im#kG`Y89DCfX+^u7%IfD^U6u?ou z@zOqR3<_2tLU$CsGG^!T&fr*T1ck)_li77hPS*uQ;^Z{#Sg5oR6ZAb%;euey;rNOC z77TYhgheTuVq;1W=j5UV-Q7NT?Qzq(f%auFPH4YWP_C|B5lz% z*$4EZi)ZFbvkV5^Ms#~Tb56R2u195S`8YVSB}Pg2ce!8?*hAXr#5=B|UTxIneq5Ry zLZS}ofszA4lab4Xu3SA>kd!Aeu4=}bGs$#Fp8g)iO?0Z8S(G{^X=ouGr^I(n7-^ag ze*KEq9S{zrY6*Wa$TvLApotZq6jqtaDmcc5<>oXfE~qKY z>$dpKp{VE_9u4sZ8W-WTPTSh+>a-+fp+ce126+4snQ#RmL2oFOP1&6x&Ua}!1={n^ zFIAA3jc51?A>mCh7)DS*xFXrY8)vO9QMWOOX?VII78D#UBxh7zQ0y_1Q;Z$TlsDzv zhiY{l%)53xqVwVr{T@v;gLR>5mLhv?$E&eKaG>Zip^14Q4GhZFM(s_I%v88+90t@g z6(1vWk5F!~ZP=?AwwEj@k8*OLwqLUD1>RBM7#?I=d&^7J_UJ)IVI;*MV~>fk`GZGW zrD1Cq|pY*{qg78UB>LHf*F zT^{qBMha7r!|f`H%a79ileQfi2wr2U$0j^)`VR00PD$ybRk-@At{Il=cZ7I=6+bKm z729{fedLMi`b0-yiO(MT?m;~ z?!qGz@He=zzJyqQ1|O-nQM=Zs#%-}28tZX(`Nb0yP;jrGaW#vbE4N(^@th`7yx)jd zn6V&q)A_UBZ%Me?n8AHD`ku}ls?}AR9w7XzM9WoKR25Iia?S3-s*8z#%%kkhRv=;< zM5efq8*_M;)f`2Z$IZM+Yc7d0;-s(iD`vM+lXI(zOxopkkY#78V_cIu@z~xfSEixD zY&ij6d`P}>Ztsi4HmLfN`3$DSGfnBXF`F~;?`G|sNJ(8q>$C#tR0ctE+3?liy3n|7P9Pgcupfr8Ud^fO(wgFI#&QuxY8)@Pw; z!a}QR?hb_2GhdQCbKU5A*(p71y8Gyxs5(9EdboOPUpIx@9cL{Dp)`_SVZ|tYF@Q-? z4WhHcykg2OIsJ4(nDQQP?w2Fio%I_=t2-W6X^UssNEIxnIS@GkK=I$gaU>-22AaJE z9P_&Xqb@=l{2Pk`P>1s7OcafSHA;S)>v3aZ$2%?R+*tmA3bd>ayZmx{%+uD;B4OFq zgA-=f=DW4ePJoavOx`I+WevVRU)*p&s%-JV2El>r(BNnKI54yVhZZMcqPltA4(&Q^ zt`9?FNbbsfTYPU451V{`7VJ$Vvt^?2nX7D>&5ssb@R@kI+0V+Q$BX9&L+YPUa!qG= zbi8vzBzqZI+ZAL}{*Q9^Vhuzm7DHYl-St~rtJpgNlTOqJlw>*mlJZ1=r#a57@qs0WOahwo zEN%NU?B%!=33U{Prdxij9r5;qwI1ixbglx$9Wv-futx$&Da=z991G`k_o}00(ZjqF z{8n-)cjasQEOqY1UK^~0#R3lb8gqA@`*&(o8d{yUq`hnHWv7=9;+d%1vTi=o;&BW| zv|Z{4Bqf5wli2XXho!s8Fo#0P3jApP`pKV=~OA}!>gFT@~o+4+{ZK)abr%||#? zr4`NPmC@n@g(Xg^G}mX+{WXaTEh_3yL1l9moik*>p>LAl^sh>j(1Cs>#Gf~mJxsZO z_bjF-8vav>#P~k}m5lT(Z2!?jwdu!>Zpj9-bxeH)|2v7o0w@5W85#Yg8h#B`8`ax( zN%;LcLIId%tIuWr#~$8}G?W(788;ClOvlHU#h2~VZlRTVBf_D^+x;sXPwcIXgjS=0 zy(nnO;`PPy^-@@(_JLyoyl638?=-^KDkKNGAuk{Kq?DHfq{5Wy*XR z0PRiv#yj+1-jO&#ikyk_Yy2MWvHnVwzG2;im5-J8k%b-EBT1v7{m^SVNX-I7)gIkZ)N2{7gpCr6^E zTMe}Q4(C-A%Mn}SrlY^DCYfAZ()^Ip5zSVLgeOzPRq6ihyatqu%IL1qXcsY&a~|KQDQ7P|RS5|#KeAp5*`IMl- zI~==EEZ#C;r`}2%%__byHw~A&(-_ZZ_?3AFt7bq-Ik8hw`h$+D@O;!jZ9Ojcg!w|3 zpsTh4l5<#Cir`RgBW9Odk_Ktsg)szT0x=507q6!XlYMXnMEq$BVr*7)&Xg+ezbdz# z5SSKkIqfKTe`LrOk{{mi6FYI+l$`(14)*FUH=nNt9si((c{1ZQC|>+qP}n?%r+Nwr$(CZClgNM9jQz#GDVO zqM{;yLFT%%)>;=&m?te^3lE7sadK`sMVZJM)4~&*a!`m|o=(P-NilCC8pQ=g4AT<2 zjv3&}ZlpFThdGFn{l|Vh6b#k0Q~aCkQn@~B_QRj_X9Ad|MnCa zVI-L|{HN=X+gybslb+K7-Th)oZRzx&tv{ccC+6HANSHOk{J$hqPHrni2r0JWR0Ioh znUgiavXgVFE-Gl1+)3+6Mx_;wv}T`Cgl;AG#LOyux)y< zlzoh5V=rzPE*0+Ok`h`vtqY5(Ec>BuC#MWY)332sAXDjLCTt^=#SMv^7s4HV)_DP) zEZa!svb*6EgM9K2Q!d%Y3*LK5&xML|r+W34<699+8JQ_aqC~1?Cvq`imT@dw(KG6R zUpSf9yXDlHemRhYJwc_-XXT2bU?7b?rRT=Q2vTj$k!fS91lUjW$M(&wABjY zx+&OjRpoVwiq1UFZv}?}(G#+#?rfeYet`hMIZ8Y2a1I;iiZCxF*#@qWWq~NWAq=E~ z?I9!%*(>cA;!9VN6Kw47E}`fjiY?bpM2mr3vkO%vmcnf5>3j(RwNTd<^o+ZFI7UN z#+jEbvs1A%4xjA`ZCvR%8vXt%{j5pDQPUU(O&+m0;I(o)`l>GTY#i83Lo&Z8_u1O~X>CYLmL`i>7N!2P<;g#Q;Apk? znqDa%p)xlwlX!l1$t@SBr*aggW`@lbei!ges?$OT%uk?A4F=Gi$8Aq3F{CKMy)fYH zGUCGG$SUt0+cURDWl?EvN8K+>dZh_NA@Qn7agUxS>@|`9$ilrvV-4=!&s>?1j<)PA zv!`S_p2B0e(GrP^JZ{KbLn*t;WTjgIefe{gRI%e!J>;Er*eks{1WyjC;En@}IqtdC z#^9Tbnj2R{rcUT&c?EtEH9BWE4nI%?(1d0k^FxA74R1nO#|k1ge2m2xsvdmCcya<} zSjPw)1&@U@PEZ%J-6K1GM@cX%(ViR8V}ae*EtKs3B445Idc~_REYfHVg=|EH^Xyfo%)uYp#9F5E zGo@3K-zkamwi((E-8U}QYl5|;29hVFOeui%Cs-ox1WoC%d1tlhlJBb?%DKqFo*!gU z%M`6C-3wwmArd*N+LQEumfo~wOXl?pp#={d&VCqS;!PYJaEDxheta@bLZ3@qb2~H= zu$e0azGt28cEdy|ztm#S(p%DE>`Mc3tWbYe7$k1{0l4Xf(|RCUexP(%TDSg_tYH5C z1s4C0S(}OZzsn?csZH1%u)}x$PjRaL>eMk5IP~B&d+#>usC8Y*&~)Z;?ZZzfjY1-| zJlsSy4_GiPN&L|H^*O2YL&4nC$MtQSCohJ1CuA}=Th0zvKU7pt;oOd|n`EQ!{aG_!^zG`(hb3ei`#bz5xi zODBrCOG}l?GSi)%`ptuZHtq!NKmqO(wWugfO5i%OVFLGbVLLqPeQ=)CP@z`QQpMr4 zcWLP_=RLML9X~E#yldna1_$KiK$PEaZIX0BwWTpI4dKL7HNF`)9efw+5q;;Zo|-1g zTz+_U<1*@4m?Qbv>vS9NUppGM3nj^MDfdi?r~_HFnc#AdzCK@O<=HVW*{H1M2S~X= z7-!ap)nDL$3|F1IngCadY2NFj7FEA@cJUu7=|G(rN?`=VnN6{?HlX8(Rc+#&^s_wX z(ZV!1UI?X*w?r(w&|FE>`xpMAOMs(_7*dz9l>w%fn-AZPz2@qi-amuI--)hUH@P@4eW zWmyIZT^63YvN74IyecJHs(0AzupQBMf!e@y2K3ghp)uHAP^vK}B@ahB>dn2^9-|xs z(cG^$w3)N1$TRPh?y&uvuw(*kwieF0=!Z*kL?|DZsxdCSyX@skfp(L`U>KSvk5+PK zGi)oIv-MQ2!`$BAS$vL4N!g5B=Z@E`*G&V3QK;*pd0PxHVpr7=+td*4!TZjir8bXV z5sOFaNj**?td^j;E_3##wDODu5lc2BA0hy7q*fad|WnkdqCO6K~(gL4&^K5A;5LYKceUPGmP(IGAbm|cG|0MA^3Qt-im%*^-VPuJ^5G@(2U=tHSvX;< zI1ZZ-+C#=M6w$FnL8JBIEl)MVAG9#{+{r)m{VIf0voQ~gZ+;KzoyeP44SVatpJt?t z0993i#r0t^wBeGgeRB!B#!;IW*5nG#5e^0VxiG)Z6&V`U4ey1?f!dQ>iw1HMx1^|* z64J7P&W%zgWmq`@4lw6nJDv7u?u~X&D{ZS92w9(?u}2h)oD*3Sje72w-_!d}6jldK zx@%nGcOgpFY8-Xp41c0;r@lwKBb#Q<*e%^MZ$tc8qHg#?s6F{Xi~C$IK~j149)G#4+4Qkhx>o8GzI6AF zW3aa$DvSe~LW_0)R)<}dt(J2Qnk7G1tfeA|*MFqWw&eswo)3I72ezM53S8!n@WYxp zt>@%LEQ3b>Fc|NR+KFguG_-%QCZWci6PvX>s753J%+y8|m$sqH#=Dw=y7uC`J)HFX zA2wr_-+lMLNsrV2-}E>$EBk*n08VNArpMV3zq54(a&l(tWDJQ6Gg0%rl zcO@kUD%1!JaiOl{D#=Yb4^u;45dei(7@sgfYIxrK&67IxB2CrVB5a6VdUs{%)uo-n zBzHDPiAc`)$W`#$uEtB89P;9!G-0?$NX1QmB68>@$J2LHT@qy;HKU)9sQ2s9@sv~3 zE3qKg+JdE)m4DVHs876P#0)lAGJW0^{~B*COVqX*0G{7i-c03n@S=csrG>Fbl_jyO zQ$E|#e}`P+->XAdE+C#<(fWvI=6^d>0tLC+%LOcdCgMl<+miYtQIrzmnu%Yp7gzDf zSQ=bDKcgzJbjf&I-C6@#1OPHg0okOIBC-l8^woh_`}*YtTK@d7G#jK1M6H7q1HJ=F z(*Xg(RVe^(WCvLERfDW?j^?c~P#V|&`IPAyw9!3N=ukK^on<8#{W zEqD>Cx{$DhMTxx9*EdHL&LKR!Z{S~`!gHPtCiT<);d8f;|3T{|ZbG4d(xeoNN3T)- zb!7S3Q8ly`Q1=4_6Od+z_f{k{m95O)KR}QDgU0FMG7)?I_Vh?r(J+LK`Sq{__x*D8 zv2^~qU!(nUZT0kh&z?=q>(ry=!_LQ^<#YLM|8_9(I#J1$O%vU5PV+C+j4FV{#f9jx$qUta0P>*bz^g>{`l35-&u@K$yE zcBNMq`!Cb!P#;tMbK9F;(hq=g|I>JAqs0f{&#&+lTGMl_LyJaMQ&PdUHF2Zk#3#*H z6>TFlJ~7ro;gnia{IC>Eq;yf@#?qyxMJrp3W;uIaisx-TS=j?ZPcMb7`v_rb}}+{Z{@(9p`&FCB+P1dVw4{RSbdV3-zyFX=pSY zjJH9cp#lxppCH0G^9EN)NFtuMWe)X8I+cmBwa@Xj@};gU+ml@@L%V*OYUe6i79g@w zbeV$F5^UeeFk*Bb?dVr>^s&M1?*l=ZArAmdGaRqbLpdx?t@HCjANu!qep%7j@#Wo=Xn?|7U(jW8;d;VW4Q({UrN38-SwLq9&J01@d{_+3v9lwzIJNN|y?!o(^k4YDDbbTbP6 zq73+V%TNqqj&2h8E!CgQ0fm{RJ}a5BLA_69TB8wTY0;%4dK49>*GfY_s;u$LBAB88 za@H`jnvhQkxUgJA8S?TdMRK+>ZX;*crU;Q_3xM?!@~k_HoA|}mUCK)l`l#9ZHcFk? zJO^*bsL`+_A52tRmtcm4w!kQD-aie?*p!H)}uXbj%^F8`> z<@VVsy3AchK4*Yp0uc>vAB9ixpy8uXBtcvfLuTY=IcES8KIk_#lc``W)eVCeWuh-s z&gVlISTC8y%57O8)#BlfV(e^A=nC0r|FBbfihnB+rS`JRxRdMoo+m4c55fcTsJOdq={ z;iJrOn_)={e}%bBl-iNj?nV`SoLkGSF_{&w&2p6UjE^;&J=U}Z;eZf1=9)iO21%t{ z!rGC>X4i2Cl!7G=9Jjf!BZk&2{aoqVGHRWS13vaF4Q!1;m=UyiO!2*7-gIMxwM6rN zaaDjB5qHPMxsCF1AL1SRyR8b4c{b!Ug3*8TNDBxD)O7jq?rNPo*$1$9WoAj6B)oOB zs&!u!KU@j0j8%51eQ{>sc6M-cWx1F>ES#0R`aJ1B4?V<0G%Nt2IobI%XJ&qS z@N?-55F{p?!EDAfPuy>7XBfUY&Irl1Fs^wg zq!d>jk~|TNNnVh;kHvNxiRmyB)5ZDE`i}z1gXWJEiT(f`pDVs7PR>_8`CrSD`cWNc__WX#J8>FDHOtZxnJw%(;7ZcE(;^J{}%vlYL zo%P#t0UM>jctt&ghh_}KK91!$Itf*frxb5`G?0Z|vQ|wJ3!fMft}4+bDd5$$dj&-f?od2N*|?!t0Ut{i$Z*?ACc>)IhpBdb{b}d480Fe}$?2 zpCt7{16%C!EmzQkhQkBqe#`CTuQh`1jJGCc{Y;49{wcmR^ZV{Dg^Z@(0!90s$vf(& z%a{A>q%1tTureZHK|r5=VWx+t2n@8+f%iT-@dW1UyXGvVq$f&=if&5s7_OpZ$2Tj4 zi!bax-{i>rr1B~;^mno*J;~31G*iiTUs$iNpA4qk?$l=?aLV{}fv6Rq;}k{~4X+fo zR&NSXwqQI;OJ@|HzK!X)i67!LM9_F||tT6C(O$BVX9#L?ACJcz_4h8S%;c2MLH;(-iW_L61kbF9v`xh#3(sm zFHK;|G@v~PMP$(8SnPlpBL`0t=Rj*V?0{paPTwFrU+#UO4d}Mb7|g zKjn#(VJ~8iswZZ(Oo>-R(!9q-R+se;p06n#*&xRu-sBVV8B(w9&3xW6dic}V`6je+ zX5~Xmz$iD7Tq;SZLT<`I4rogJB5*pZ8%ui4R;k{)224-qwi&|PXjMk&020}{>3s|{ z@kdlwx=8_+g$R>%39cdvk<6A1Nj|UQ&RC+izn`Wi#44;q68I(w2)(U$qZ$;S9fX~h zoptAVxRsMYdm;2GV!=q%>BTlAkPMwqfp#gmOMkY)8iF!6=TBF9fMiZ0>l(cZ1=7ok%C*r( zXMgtbi?egLEgBkWbpv)WbNy*@fHAfH7N(7^Uh@W=@0Wb??s5ERQA%?bhtI32djC>h zc=lMcWTc1;33hAHxMpU`=SM7*qZ~s}_JnUtTVXcirJa7^);^#P!OA603g0i@ybRps zD?Z1UTjC&uKW$eOESdZ3s^8x6@Htjuw9bJV#5*7uP<3VhUnS(G5yF7!P==~?3*_39 zf#Cyg`%v3;8v)g&1aiQ>jyLhUiwCRN2CWZN!xc{LG0I9e5Ys_475zk8^04)cz)rv@ z{*m@Cw!z9UgdFrC^Z9ZB^+Lro;p(tMo5{WylC+wfgv(zC|E4xJ8k(LVlG$d)WyEB^ z^ZLM|rfg#l?b~P7k*d`YNjMh)-F#5u6$i>!=tl{KS$UP^w3Dp^d7v=c^yLrQh zxcF2CXJo$X9i4@Q2F;EwjA|n5dZavC1x9N0+y*vGicuX%6LmdWe)F12`-_79)itXW z=orsH6fL!|;hAk~N;X;RRaSus87K-MjMQv6ryWM>4g>6#Bb3loE@!zNi>-I3vmo?% zo4oN>A;~85g;0npnjU^3U6&{_-AOt-JT1^Bsd_WbT9iEgG*btxr1ZKlXjqmg|nvJNs&s+$<@2& zy@I)Hhlz7Bno3$;cbC5r;7UbTZ7~pa+of02{vQK5F*2sF@fpKyduhl~Z%y>JbOqDD z&*mD`ac9Gzphd9L%G6O`v6U+&CmJ=hZHn3H4cyKXICV?zYb~$Gj^5uYZmP6~PtdLL zptkd7-VHc)uL>KPoH3fO87dnatgO+NT(t$w4JmtqHpxY8*|*x-uNu% zhN||^;k7PFT>!Q6!KXKn0CHNN(NsUT0K54K{;s>c;X ztrLI^gMXgAcITTcb&HG#G-P@J+7`%~+Qci8+4Dcg4_*kz{lfp;M3OhsS9dnlZ{kP5U(B5llzr~9&9C9v-LLQ8L#KmW(sSxXu7c%m@#B7;&de4DeHHfvqQr-R;p3V zcqtpZC$gayp(RM5@<4luMsoNlEgAxd#6|pNL&SpJ8Grfp8~gyQpJPP)hs!utw*NO! zz{vbt{{P>oum98Y|386(^nt2YfRH~MOt|9h8V&6$B(W)2ya1t@fZh!KoKYb7$nIpcoVi@(?xw3 zktxSo6rI%HH@9ffH4^OD1ORkiRD*X*76{#a3=+k*N#Z-?*d%nXRJSk4*#|G#Sh(bF zoihIOcP}lvI_wOZ>mv|Vt9 z2S4G}w>%Euqh-S<>&bLp`FS;GP*>wv*ib2t-Vcw7t>6bwO*mNY!3EG-LvJFu2kU9T zCx`uM!xI#86MX-M-_KfV$i>M_;+6X8;Y$kbL3EF{vLgvmwJtkr@#ME@OM`-A`%x!$Yvf*lEL3p^ymh`*Gus zM+J?83T!B9rXSA;?Hk_okL zn-UH)1|z{Oz8$@mXK^S6CA<(&TQyFjb_5vRC6=)NNIdv45mZn#$4kG9-beV%may&f z&xaB1Q%XleE|D1Vz-ov(Ff2_J&kecm0Abj|{%*7?k3bNEXXzqm4%WIYl!=-(81!nbaWX4X6!|XfF(wU^rD<++`7_hfXpq zWUt!;PJ;D1=8OBf9%~^r;6iW=^RGXAc)jLORH+fk!JM+Gid4MplD4u)IJ`eP(Vk*%<{sXM@#kgfFgw~03Uxob zln7{u_hpQMqzZ(zUZ5vwIfS?AJIwMTyOA?-#Q?@}yGNI*`OuYGJp?A;ba%C0Pe`7_ ztFo6J2_-^OWB76^>Q){*9F<&M+iyyrk#0&V{vY}06fo{A8HBaVA5sgs>G8M`VWV7+ zS@cCeuiN4De?V6ZJr&Cf?hlD3U)YNB4vO8!eM%A|{4Z8n)udpw#teg}f;Dr0JL&k% zu2Pe1py4GLOm9H`?XiId!ZZ*c%!0;-cyw1PqC$=N)XGq0QyPOHk6aDJ5qPfp+uw0$ z1wwoW;ekyB;gLZUksl^PJ8(Y4e&CXa5O3PKmx6<$1&YrW)RMzWSv>XClIP6=973YW z5>A=7QKLG;p+Un)t)tA#f)A-}=<%x&AX--Ej-_~i>c7UD8384gPNonbkVXKSeckBhd88G1Ir3*1epZyikg>LH)+9!Xuw^U05GeHaXKp6&Wp4rRfz>&fa4bH z%GyR7T zt=Xa+VzVSqKe$VBv9ur{T5mXFYhtbtvRU{PKMQ=on2%OIXO)dgDI*r%(Blu+NT7v1)WIodH)^|j zqI_uicUk*M_Yud$mNrYx4( zf2HiId9M#UFg%tOnO-V=2vebJ2r1z#c6yyhJ1PFFdSvdh9dao7TYNHazc`DNSv8^} z1f0W(V@#u{y|hKk`sSvv6J^1L1US=(bYoAE7Jyn;)EZsF79~^ghR){0BT|!ivpKog ztetH-UG*Aql~qZ+lqN6@pw)0DGPO1BTJ!0G+hiyiT`D+PnZ9g4#kZ-y?MG-{T|1&{ zdB~ko7X>v_b+IWDI6l=Rudz|hVN=iD+8jTjWf8sDj>Z&4)O(Up*MUzsXywRvl~*^I5!Q;RP}P{vZ!BoCZxHN2ZG+xplv~{Eq=>r z{WFAfE_r`!kA9^!@)IV6P4&w*jyILPAsTyy+$Vh@+VDkeKrU52CvHC8GH zdRnZ0Ok~Xzx^R3xrvxvCs>ds@*pmAFaGzQFJhx7h#xoywaZ)kFHh-lVK4mnQfu^6P z*MGR1_$snZqN^{kjKc&g~Qvw>@G#jpIeWO);Xi(fOyU$!&0 zV=E&B?udaYIBad=DPnko;OG$O%HLd%MTlJU8YK{MZk?ToLnxY78jARd6l4-ZGonrE zy5#K3;n(Fe99TKq%Okh5ayt-UAvQdX73Ep^jHiL*rHzQX-o|EO7P<=PFM9hApSBE) zlznJC{zHR2;xJngo?aTud{&#j{?t*MeG|!;xUV z1BmRDTN$;bJG3dZfnRBNOCKi%5`{eaY~q=uXvgtJhA3vtQqm-H3YsCE9mAG6CdR7fZ`ZPb zikNAPQ+Gp*MSaf}mNeU`D3@nsgx^L)C)N zJyUaf03DF0PK}Btgg~Ex8>{$9-!d55I|^mh`{z>Y^FdK7!-y{4Bry;!9k(gnXh{{% z(s1HzCn2+Ylc#6L+x0Jx`W|>?`gV_WFQ3>qRJ<)_I<+4?_`(O>!Va7QK#WQA-g0gF6ezJJWs^x=rRMJa!)dS50S|Fqs-LTdq+8JwW`Spycy#oi?dATPHO zqJ#8hN63j5!S4OAA2f$6_+gPjngA!`>L9&EJiaHAZNN{&)po*!uH|q40qUR%j~`VU zETSF}B?_d3rt%$UyB98&nz)4+ZMb}lH^aDQ@Fi@#H&%5y$^-y8IKM=nCwJ%w0WhJJ zPvU3@l!~XZL71G(B{ob8Dao!&Ey9Y-kAWv?vs{ z_cdO6mF$%|zOW>b_fara-`7?gL2KUdFjYM8-avvF;)A(IVE)Rh;9k zyEW++aEDKCQDaY)h^dMjx$3s@u%%koW->)1T-&0-Dut{v@@_Dp7G!?5;Fi~jQ8G4^Gy+y{{?~> zujVaFSe0i_!N@eR$|7Iv5H4V>!=%p)Q(S?^24Q&3yRF zV_N7X0NJ zhV#80b%3+pz>OhJaWce4bdr91yesz+IssRo^Q5+@+w6y^Lo>=mKgeM4kbVkV56F3s zzM~v!fH3&-@AMuy883oUTGwjXnEW&_n-ZYZ0crH-mE5ZQvmOFdQ4tA*gch|r*4k65 z*~|kEgvH_@?gV+W92Qa{DsWcj%MR{5xTUHn{zBg)(Rbf(1q^MV2EGE{`OBAcBQo@l z0fC#F((?9?u`f?Owgwo*&&PuAvuY!LqWwy_iMZczg_5H_+ZxK!J^8dvaLZ{aUJ;0D z1b4WiN{UNwm&fW1yth~q7%D4-NOa$AdKZ8ywEo7!(Zuc5)z|e(u;`(MBD>r|OwVR8 z9&<_Ju*dXl*KB8~&&SH+)%Az{x`H~ynBhEL{MeS0YxnW{nxu*}rr_cYJ<-1wMvxl8 z20pi`J!Vrv{T)hlZmCDz35+p%(J%Icd3DoDr`TU8>%OaNH>+_@pxOl-6IGiIu?I!0 z$821?fLb}NrjCav?&E=S$PAk-dab+np=n|g2!7ls*k$8F$ zB74)PIqqZkC(8nt@4<(dwlg#!2pw1smZ^70o9CvSBUO8687y52V@|0VIvdetXS_ql zYV;RR=V-xxfyLzn_>aw?5-|iO=mfIfBnc1|yGZEh*FBM+&nrHdLJbQw8XW#A-P+c+{6IH4hfy zQ`UOC!=pBAE(i4bALbCO<$z_uDIT%AXG#;Na>WW}yN%N3elbhnkdd=C)CjHVEx6N4 z-~%iwKv;2P2^`GEFwbor6Cn0Ee979`6GyA>_C;RRS0A$3G!#rNxq&GIb#uNJT}Dos z2Si71N0=p}Ao+(`41RGkqRTi1%~}fU_Cb_5BcO$)Hs8Dstk}FRH0auG>^Xi6RMZW+ zj^#FG7e#L|MUZPmuuLIpZF$z>v>^zd!z#+%me5&*d*xMZFkJwY*w_3pU_~_8Xvt5p zM?`H)^bfdt9N92L^es}(M2ct46kLI5We>~P)RobaVBo9_6!&{Yd}f=V)i4_;&01Ts zB!bCJW>?o*vFubbWYlZdc+mZLy*cDS9TFM3bKVlWG!;X*K#+m1BvWG!wxUap0R;KKD1ALvo1oS6+?y?_4Lj)zKa{`QY9fxbPC0wo zA5_e004MWq!7nPT0EU(QSS^5Ro%>qL=PYKwN4CD{#a&L#L~I@RCN~=%+!Io^ z{j&-dg6ZY}et##fx`mlAhxVR42bzsw84(%CKE3 z(@(AU#TjF9tdVZ8XE?0KAa#W#ocdd3)Vr~sun!!at@=2RhLN?~-^c2eIXS&4!4?H3 zz0wL#^x(vW3*VSR#iLe)3|w!USDDFFu5TpO8hgH1rz zbWJ2BHm6Wjwb{gB)4c~jFRXZv@jQ(GGFyEl(JmF1O z6K+a7S{h-bUnmD0W?E{B8$ZkfSx$qLO$f4hC2gm!-O-ghuv%=D+({QV%Q|vpS#)-` zZ@$5%CxC_jgP3BY|9>+`3~cNy|J9XP*Z&21lWN2MGnOZO0*C~;Ycy)RDba=9>VRu3TZ$sPefbF8C{{$S1 zhz5emP50kE8@@isTOPc6978oVC)3T$_}?^kw7|E5!Rvma>bc$^%%fi$N@G}RWBhh` ztv%qpekZQGdo9Y4LB!G70QG!aT)lA7jPqjW^A?pol&ZNbB$D7;ir~9uBe;t=89y(E z*gsZ3J0GQ?mBg(Guv*^Pf!jH_5FXWToCS-9CmNCY#aJ{-7Hg3=b-NF%q4Z8BdTn!h*l~KZ~oSMYvLLXbPuDW!vbQ_UPNbo;vdM#P7Y&OewBQ_bt zM;3SAQMy$8SM`$Lk7NtRdF`*vkey~EAUwB7WQ{HyC!Z3^cpmFrFfI^xdC}S^#aNV- zImyqc^N6oIf^;QS-@jZ$=kLj8Ih2vXWS|p+?3Tz zX|7VP^+FDNFeZ%)2k#80d!(#=rIID>=U%-Xz>ZVO?mOmru%SIB0$Oi<;HF6gR{CzW z-v*8?Ve60_2z!+suMdyRf927UZ|Qq2=W5m(cQZ{(+7gvU`QdT2e>W58Sws#a#FE(G za?y9B%T1fsoJ~2TOW~7X9fNIzOHaH0TJwd;#pO)|UtHS|&d1kAwjsOkKa+926$WQ@ zkkM=Wso+|IQ8?_B@@j#p9b=Ce`WFCooUntn_2j(8*?l7H?Ub>FQgoEkyDC^9{r#TAx^H*c|`P}gQK5}uF? zZtAfGDM90I%#u^3%3$110MX5L_uexfE+Zly+@RUjU4(3rv}*1m4FB*@#A7 zN~4zZ?m(iZnzDH;?oh{W=3j2Nc#8Q^Y)SD7L9l`1hwysIn zzd3=|nkSTl>Di0)&p7p-crR~_HDJe3bTyJ7DE3y9SW!$Mxz~Dc+bTiyi+OtDyd)jA z(Kfqe-IGPWCC85as-7j)A14JQ14>9l>)LNa!Y`}BB@B_=@?M!Xj@Q(6& ztR6a300Vg{QD9}EhZOewR!-)`hbog`x#w`=A?&G4s^9_01Z?}NQxs~K!w_P#roEIE zYJBLEhV6qUJ%$4m8DFB}JtpaU~4Hnd~QRK+KRdy3@8>iBgQ| zU>nIL`YHliF7`{5!Pap#5-aqa@6j5jBGtUu+EVLt^R&-)@*}gj2RpqV?j!U*a$ApY z)I)5T;OHwSq~>9Lu@iD1+z@WE9xj|BY<#9Yfqrq%(R*$C3(9zG~NyZCn)#yz~i(0DAaG4WnkLB!A zl+)I}?8*M@p+Fpb=|t14Mz4fxzF%=E2+C{KwerMh}aoum7mYh>H z8N<%388G&S8PKp%?g3BUl-K(|Vc2n2pKU@Kd=7tMO)pSUH?JS0upr~A&9PGWNpu!i zr_02i6*k=DMCgcwVhm%5H$5(wl9B36Tj%dy3heUMr|uK8E0`-9Fg|kP zD`GT<&D7$Cg+Lags+}X(UJ(R^%R6S&4Z2JO zKJEC?#e{FxWKD>VaAc%zFKl%sFoRlogD#lC76^L0*3LUcAtuj1bs@^gnVNlt3$7cI zN}lS+t!5o1X8(>Z0$!+JJi(D+Q(D>$tPOrnhrRubiMq)Ar(=|Xxl#r*HK6IF6;*inbK)IA`2=+%x3p!uU(?O4juqISZUp9tt3WRkV`DoG?gV{-}z zlUMs}oUD{~f1SKpzp$;(#1wiqT!LV<3csAxcSYo_zW*{7r$N9X-D|n6`t;*JM zggEok)y_Gy7?7C6;8pSPH!^e_?Zax3GM7^L1Ix~IT9vXaR;_s`a^S@XyipN&8c6^klenAgQDw^A_ zO1TqiUtA24*Q21jON9#CKZJm`aXP2Q5FoHEu3CgU6&gEtqB_Z&pc*OZ@V}kptM=}qOoa%*~C%FCv zqr7#wInMI&2I2}Lxf7I11Fkjc3CnajXx_1hqnYWWw95UU^+tCbl@~=4c7i`7@p-8b zPga(NP#sf(nxuV`Qw2*8wWJuf9pP;GgZxPUYZ z*b$pLPz_mkhc0w%-tKvznVaPn1=bP#OIP?eN*(pjZHI8QcaY37C@kzpb<85C1M!nV z{TtqUe;x3j61`jH9@o{piFD{?4EN#gOBD)|=_o>iy!04C@P(=Si%)IBr}a(7C<{*; zO$jLTOvX3XQw@40mQnmA`yo3s-^l*)SrFVo8B_fwos&=YB33=SVpjxx-?ktGW101E zNH21eW!wsRM9to1E|BZNm8lsQ(k>Nn=Fr5rdxqY5p9ITCrA!exwX`I+PtFF?0y$l>%v z{@E0ma$C-)pI?x?ykRVB5Epk+@#=7`)ysjkT@`E8GxKGkB8jPBC1(baJv6bsZjkQ&7N3JIn_T%I+~%mHmyYCLRYdzg zuN}VeYs!a<&y6NtILThhRA-SxYs@*&+swTQ_^o6r4if23Wop4Q zXYSG}6V;(KPj(kE6TEWw#}t0nPfH1j79FTmre^kASvvRn*UJU&C9)o=Z2}=O)%(#O zjw?!^M)N z!+XsDocrB|o3YEa7XP?{qN4TCSeC8zp67@}qV7V3B5~J`&LpHZD6A)%;t~DBbT;3> z>#F;uNX}DtdGd_&=Ho&r?P=B}$h`h~ZFLVNr&vhI|9h(-=mZLtSRj z!gCZ+R#{_tvUyWssOn3?0K$547??Kv{*13YQNdW6wl&6J!JJQ$_e@k=6KNuiQgQY) ziwP2~ZX8tM3S^zRft$9VCM5E3Y--!dd|Ah`utMVVGL0@`b$wD4`jpv_#Ibw;>0=tZ zciz<^tECnpZu=WgV#UL;)1%?NboDDk|8N2f(_BMtjp{|ny=++7)+QZpv10A4bj9*J z9Jq*8I9pz|;@mHkC~xPh=Qe4r6Y%wF7IF(x4vCHDbKYo5Mz}y(YHHVd5Yt8_W<1jAi94N9cuB>c;G|B+NZoP)afX`cdP@u*$q zY7|s?&owb#b}$cp#Ois$217K#K9Cia!kfz>X$F%wfMNv`AU?lV^!CDA9w{y@zjypd zMrHqD!@yC2b&yGDym0*0Jw!IEXddnWy4;G?YP~&Aq zK6)GhBXFZ)8M1or7+E6n)B|oP)Z2m_e^@fa(4%$_9xIjCW=n}hiTo49IdF=zN( z&#z8poDnUuWXpJVE3a{MiEE+L>UCJkWug3G(sd3OYXn0Z%AqTngJQWYKOs70P+>7F zm@v>{`MP`$J2KqAaBgS_71}_UesoBbmRfK04%xJn_wSg|7|+qR8e50b5`0u>>r7y4 zmF3v1_Kdy)K6hqt30n>k&uUT0COUnu7gv}=FZMSY79{m8u^z9#N)LYIq zfUc$6s?#zvhw;3(AHh&$VfjM~yyi=MFdF0V%onb?ffoTdUDuJ6t&)ViK8l%LJGVDh zKd;$)C=FH`I9Pslpn-{)y_&9Nvm=giK@BXTm;_fkDm+|hH;zBlF*wGEqYvmS13PrSmrlR90lfoDt@WPn&dc9w;`ur9X8qbr zWHa>dx4H;Ca5Z%_P$3k*kenab9T(qbIWn!Obl@Wa;G!yH9dO7hgXh2|5sZ`Y+#n9r zW3^Ng1bCiks)tdpbtI7{@C2rUaA2diw>NJym+YQtZq5>F{sglc+nQ*%Pe$uP4VaYP6Q!mC*5 zNP_hA2wii=b}?GR|vhAdPu@DFt`q64r&ZxU#%9Wp5h+~g1Wl996y@7JxR zg;20nQ_Op552^Sm)YUOLFA0ngm5{aaWn$Y(#mmwTWp?Sr`+y1M4BjBIhSvYZ*gFO1 z7O-2ov9V&?PF8H&wr$(CZQFLTV%xTDCnw#fs&`lI|D4)4^WwXk7vCJOo-w=zSI6ozI>d7ZaJ-BntI>Btn?QvB{8Vn%eAH_gasz4;z175DW*MCLc}RYiGy(Q9=wt zSQyVu6S1y%{rjwLN4E`~0v%1bqApt>w110wDA9PdETRG3+s#ANrb*g&X0lS{WuTVOgnYYZ*I3r%aut`qy>?3(J|LA zaj7tjSs_GZam+$}VM9u*J&{H1K)251#UUpH?K}D`cbZf`3w5N_yyQB`!h9^w8mG1- zj}PRD?GTGP3JRJX^&pXiCN>m+W(bEGF-u@_>)=K56bn`W#&~+8#wJ#gT(p+SjESlL zJKImRmZlp|Qa|hdNWj_&O@Ra~nW_iO1EWoJfbTd`5-4iM` zf%6}of-a?SNyWNLN%m9Qx+g;TVm6%uuQEw~F3xD1`uiM8f=flW)3mhk@{mG)9pT7>R~d7&n1?NeGJ>+&}!$0x)m zv>COp5S4i~IY-{Wc_PC0uZ9JQz1bLVfp3l{C#4%w@1~=qoOFp>E3U1_;M6Rb=;XY8 zECF-jYS7h)z(EHX%^FdDmF}fQnxi~oXPGGiWQr(UNEcpH#W&5K^$ON1n;bH?1n^@i z-Ml27bypG#VZh+XdmmReha$^6-L1!WswM5a7%Tx?=3Lgs~&>F-yffAzKo_^FRfB2RQ}J9-Y8i zyu4$Ps{Gw~0A{zN?lZG(qk#9}I|@Q7ynb6wo~uWl9;fwQ>#+4XFYaow>|$~|stHR& zB{CHFjOXQXHw5RZ#M@T%V1Y1Lx}OGhv%p?t(*?dqsVcFL?x9U44W^Evwj(Y1_pd*7 z2j+&jT`1HyVSUUz6~3+4ZdzVC~GON87j=YuzMbS4k)YI&hO88TYsT@ ze9;ZEfJ`~Y^A|3(<%+MM6iisFAa$%d+F1S62?XuI-DX$X3La{@QW z+1U``UpD-+BA zXw19yOB!RhB7E2UFVc7(e*Kp;W~2@Pa4%m#hSFQ5on8I|CC)=8gOW{|4Ro^elD@UE zP|mSNc7}+7f^Y6JMiP2B`HLDiQL-NyDU-*WL1YbvuqIg05|}yQY$q*Rl_?_0KgUrc zQ1Q>3>5(hT6s>xe7OvJf{Zz;Gu;s8FhRL6Iphy&6*k%JCxp@w+m}I$BW=*vMR?GJmY_UgYM|1ACcxhiiyue0 z&f_b`@^C?dMJY5AmqCnCgu_+uYWnvO>@}hT5ic^rS5r!C$Z1$ANQsK2Add$fiYNbl zFQYM^OG6_sUlK4aEaG{d5Z_RvEI+JAUKkvpbPEXrEt5XThJUi4?63EUR-BVKE!@+V zVv%4@R^$&Rf)Mx(q2kQDc2kDi`tGR!Bx&Z_T0~n4`nJ`@%;NtG?cY-)@Jw z$%_+Yp5(}wVZahGgOWrqF6$o%!{ktioaa(*i5kgA8TjilyvUz$xVVl>94Oo{$Qc@B z9$L;UX8j7J;NKT9(BBpHb$p1T`)^tvGcv$6i7SJWU4sRuC%9U3z=Ln%5H`dpWJV)K z9y6u>Xm%T-=ARjqg0!^6X+L{&J!{D#r9^$hD+>(V4f=H82uD&z%IN?;>{YPk(0+O_ z-jS97e@MJ3l;>Y+Vq;va&<&&Fd{H;a;q?#*va#cV4b*M%JJe}ukdcj#&xh}&+LOlb ziN?ma0$+FMuCUTTSJNMvFV%-g*2c&cf8e*eAITr>pC?O9Je^4y)Y`oaZ48*<4$?iN z_5*s##u_E=%U&t7-=ycO&!w&(Qg0FAy91af%t(*nh|fFd&&@>x#}PTUxkUy>j*xCN zasWAsP3EXZd)v|WkGeG)yy{(Dk+ynnhr&YF06vhiL<)GzKdLq7)O%BKK89Dux#b|J>*?5CHuyN(LK z@Ar#-j!yTt=I+ie5p#d`0757}?pQ-QUT*6xh7T3gVO1Qj^bBRWR} zYnr}*t7EY!HLtlYUD%cI4Z!Wb7DFV0oM|#cJal=XI;|1t%NrrwVZT8>{UvZ__gnA? zdeHq+F#WpHlaHJFVz0|V2mWc)P|>JKmLgc)%mXzpwz8?)0pM&bGM#7GESMnN1dv(DCt9LOT^ukE?PaAE(pY4; zAawBRBtm2BRYvF+8hf9X|9JRt^t!qGIQ^AG#4GxKn=@eOWRv9L`F{J_-$;!t9HO3k z-Cz5(^5@AB4^p=K-9KQA!l2ZJ?E&5~%jtXZ4U+Bir_=SE=ITz$>P(~7ew^%ZUFc42 z)4{Do-Mr1gGm<;CqyaJoEFI;Cqcu*vEe(xP>m=7l-k92M<9IXs@}e7)%tj7}zJ3Gg z20&b}J@=*2iDqy*^}cxEcQ8cxpU{HlfTRcIfA0kXTjSGb=n8A3PDA?|#HVcfkLvZr zLh}OA-PHvj>4A!nD&%<7iQ4XbTRwk(8em(}qEj~G2;tGQuw@F3FBz|i~C_qXzo}{tPz_2(|kA zdJTjRhnU2o*g}cK{-{xMC6GD*k)j#O z-AHNZDL`yR@I%?2K`MOF;BUDCl`4|~yv|MPKH*|SDDlHiXzp-ofiRsG&CqmuR5(Ml z=zJ~<9*&^6mZbW634vQDI906WF7zBCr7|2KFO%3<9{CH_Bz(;P_XfBA$I2u({f}fM ze^dx(;sQj`aflEWEn1VqtXBG$erg{Q|fG|{w?5LrlQ-Yf3 z!*yHj1|VbAgDMxZRRugqe;Yo>Pr6q3J6}Vdr@Cim3=TAWfiWG`MBRY-x6>V&IYc@z zc|aVYx6g{POOYASBf#WBgvf#nkOk}^^_jihQ5zUjO#tB99pgdlCO~(p7{LRy@A6M` zGOa2AaULj@PNX5-{-XTla*X~w{|vhQcmA^901fz|?!xj#2k?Qx<-%K;sLsRPGBb&*fopb5OBs>bN@59Agj!QXN^e|v zxM;#q8eW%4gV{wu&Q0oI`=@U`fn(X9cI3nM7B?nhHaf53xCO)iSZ?~xt14<+Q>tO~ z!?)sM0Mw6Vn+Us8#(Y#LhEidx$Y>}s>a!DPN2J~zpSvEnFdnk_V$$N7y}Qj=qE_>R zrMO>pf50#lW;>X~=C3`J#4;4w5`|_D)QN0{=!SS`?-@zbwz5v41DcV+^<_TuR$EB0 z@a?}!1b+h}ew@);VPYhZyZlTsdiV`Ubwxh600FtzQcN)LKnwR09B*`Xr3T^y)DI3G zhv|tgg;jXZEg%m@U5f)FYIS&jNb3A%l6I=#^aG&M6B%AJy4COc2Oy3XKt7J+kmZme z*yhBJP&yM+l4Zr9#r?wNBOGjHzd24<(^MAkuGBn6Z-x~}PK)48kE20nZvfmL%TnXI z%6h>B(ALa2GXiF!**Zgsbe3+T#Kg*3ZmWRQ^TH}KendrJ^V7Y;vF%%ZGX^kGn`f~2 zZ%b&9qD5;z#hPG0g>L9V8!l6b1ZAQeUapUQ5gKNwBShZbBYr+d&J@ZK`1?1o%y|2( z1h_xSaByR15bu9O_CSj>&y;#LajEe)s2G1Q{g!G;of?6G)C9aDPMFCMrTOuoKDv<$j zH9i$P1^n~sVtX}kJ%a-}p0JRCK;++xY~;kAMlXy~Utad9iDK-DpLq?j{&5~{eB|Ys z!!l-b6JZVvmtF2pV=7Fp3aC-+*@vFnkU-SY)|61goge3BXlbKY6FfCBh5y`%!7@${kFR=6j2WzbkQ)# zT)d^X*gsxBSNMr_bgFc=;uckiQk;_G{o+$vD2|HM`5ht_bgJO2qO%dcW-4JN@#K|sHac!d&v-gJ9lqY)yq}KbT5&-v zKJ>dFcc?$_&JcLW^okeYLVNtMKi}M+Y@geT(ooksbDRY&Mf!VWo&rQoE`j_cFukhI z)4-QBkIvZenG1WGt7TF*t@bs?fGEoiPsto$Bl0F$xT)vzy#I=lxO^D?PRoU-OGi2r zI*A*W3T+ZwQ>OHOzP+5xMtl9JAV*9?3N6?oZ1*$TOHruZD2(y}KZ!a2z3*nbk%~W! zuDfK#L0dFmQQNF^=%|>^v|7fv_EmYpBm;!N+v^XU_`a`%mMwg6M)mZNLJg9mS>d#@lqTAzN>@5(z zEmuwF)1q;JU1!0Og8Z!*g#gznb+(y5|4J8?o|%7E$YDCP0skE)U#t3ffY@me)}Leu z<`qa5nL;C4!9+A|N4HF_j+e$bqE7?+V4Gvgd$DNDM6_?_1hq19$7&_C*dh|!OD%&a2a#&+K)VKZSlWj)y+_H2Tq6bM z5(}Ng`*iUX6nB||v=oJaU4H!3?i5L^%7_c?M2SOc=}bOx=|K(oDNCL7J<^JR`9#2- zWk+`T1#yJfz=TlDG&ph{oGs-z{aK66@16h^;hFI?g~bW!7;Y3MwlJFH7zb7Bl(ifr)tsd% z9ZQO;a~ILz893M!j~IZ+`+T7M+3CZLIPUS)R=1q1H-LhYG>?F*Qe>iA{eD;8sQ|<8 zM86Uxa7mW&Uq9xOC)v##qoSwOF5V`seq^^qkFj-qFGv8M67_P7eI6|55-A=y4kV9! zb}X}y5{p;qV{;!-+AR27*m3Su_={2^F=@(#z!Zgue1|353_lq_KlU^BAud7_(hh4# zVs`0`OzfXvYmc%VQ+VM1GSeJDoFTH`#}TI~AFJmTOxTPu@3o=WuBjIKs)zT}YA^oE zU#28<7twa9VP?&JTs_&LYiG^93R|@kIW=cTK+J-v_EkRN-df>z zZYB4kg5QQ^;>fkJK`gT63583cr2UlwATPy*CHsv|r4mDd6fmNPLdXpCL(7l#%8m6g z)!d>@9Yog7WUarvS{w(x9#2*TfG$^j7yyBF4> zUGEyNP0uC)tO^^f3T*5Q@GbOMFaLesTp;KlFnu?#-=Zi%0i);HD?TagH&SNfPWz?> zBF5D3IC2N*vLyw-YLC5axY=x&d9-oS|K{Jz1^x8JFYqCE>ve~I>DtTt-4QRoN|-K? zAB`79($~~rL=A|r6J9(w$sgLeEu78-a%SZwc}FpiBEeY-MiE9AiW!dIakn^v0nP(${&kk)Hk4jvQz=vcq~vt zEZ5o~oZ}BMc?9`9eh-3`K*RD7Ukqh1nEbavw-K^ag?#7E7}cKH_}w*r{L1h~?Y6%T zI!A|v7i{_7C#<4jV3w2nlQl>mVw+)Dt%nHkb+>CO)whTH=l&5KLg&_2jR4#rG{AL0 z(nDxZ-I~`+c18pr3l02FPGKCFgMc`hwz?WvP6#X`VvvOLLQkkX@^U?B@&_^h$&x%B_ht@TD1{*+tCR zdO0mAswVt@prjclBvi*Si`Lqy&Xg3rDB|ih;wPA?U4Rv_A}8jw-95!Fw5|>6HQKcZ z9?aCe#hmZym(JK+65T~G^@n?K^J`jMgSl(34!JdF1Zu=^l`IEZOtZ@_D5A-c>CQM~ z02-Gh{W(B~1oC9$S;5YC2E0@($Tli+u_xL#y^X3cNSXqOR>Lt9Kb#bFOH9R%^XKPP z0$J^6V=6zA=1C+HMoP`@C@RcD%#z0AjU+zDnJ(m(GlY^$+-eCOQ7wy1ZzQgzxHUiE zkg)$&IH)3}M)bx@>;QI5);3I?P(VhpgI6!61c|9o?#~Bma?12rEK=7Dk|b}J2?dfpDwBjO5LxFy z@+L~pO`u3c?=zzRN3=-Lim~rjK0M$4dW?QJ!%*UGI4DNwNjQ;B!U%mdH({trGvyX8 zwPq14&7X%J;m{ORO({$9&zQB2(zb*ar;tJWe4RRbIN`@6hRQkSBJ+i2%XB-a;iCNng}!a>Y4c8fqG zUcYkLu@=jQCF-L3BrKi1dxQ6?MWlZNXLO5GulSP+?8NHuA}AA?6Q#XydI->F%8oIz z{m%@b-xvg-&@+X5IW|AS=!IZ^b-@;Kbtne%747HQE&s z>y_VF6n21$Ui7%zt!ADwmFP^I3B!2#<0fEQjn# zvS!Uil~s$}A5v3SFfZK+zT$S-$8Lj z5Eqqlncb3w*uouDWHjif4EsA4XFPYUG62?Mn{sB)a~9?KUxT2dYV4OOMAg!Mdd@C! zZC&M%E&wq5sJ-^W7Jl!Z!}&`@Cv7pEKd$66W=PZFoJn*28m^F={zN9R1c$QySozsR zoUaeJU?~R=2SeaAHy7myw+d{6fTpGI#98_OAW!H3xC*PWK5E3g{iOg!g7hvi7(u08 zrCv!nmBCNRaFqcm^5c23041|j>vC2CG=@_nF7ry7b5Yg-h}rIWP8(kMO~HYbVY3)V z?udP!;la+IZfEnq^#q?fI0!0af(5O51y|fa25tern2NpL=EI{Z6*VLtpe6y3bFdDj zE}`C>M((~Ccy@UR_aF4_2Kw?(5lgV8!^mL67Cf;gU1+Nabws9PJwS|kbU=@+>(JC@OQ4$UjWtpH1 z)*J;5H#w=Y6G^4NZDrW5AWV;-GwG^_!0BbkeIm&t8&n@pM_;!$`PSKOd9c~a_)!<% zZ}wpaU}2@u#DNfc9l5%lwxPW2a|Q}NvTjlyDJe#HXX@(yr{U>H)2r|e4agy@&9S*V zoGkax>n*hfrg6klg!mM@#zC9g)FEadJ%sNGeT0cre~0VuGYu);<-Agkwa$4?tX8;8 z`$i%G8S-u^AMcgYU`QemjlwHROUWv}`U@rgJSi`T7W2HU%eaT2Ta)|lpCPuATK0>52`j8-7Mra<29nvk&J3AAb*m!iI=M%4 z9N7GQf9^mJP9n91re8~?MR-;)>YRgCu`2}HTQ!@m9)e#ldnRrcxuDsyj-$LWe;!Nr zX7*GkNve%XSgjyOj%0k59s~OAMfy|d5f#;7lb3`Wp_yJZB@rQX+`?l?!;Qri63qIk z)!<>yb{O?}DB00%%Y5j2$vM;bm|U7DF+#M4gQ`{#`=YjTsFINR2xE@|Q^hO7X!$FP zr2z4faH6}Itz?t(lF*hhhlPUk4@qih-afiqP~3B2{Si`94-%6pF0(zdF3Sr8jAE#;vEtdnE2JycO}?)<3eFQBKAEpLPghlj6TV2-mf)LyECd8 z<4V=c_;_t+4hywd#?Fs9?!nr5*|Vwf9aIG=nBk1fN1T~~`$()Uu|VYLO^{J3K@CSI zXBA?7uH9kJ0c~=-Vmk&-8gANt7Hrt@1d?X$Az!LUSIz-M0l{ff@f~9N@|C!2EG}8H zVrEY)66loiie$n})}xxboyx0=-whfPSJPFRT0!im5p6HHLc-mptA(=1?Pr43fyx9Z zhbLnIvMI*-adT&7BvRzb=*dw%Kwcq%Hf12vMpQJA-lz8KGIED;lM_Cc+>it!5T&NL zT8d9Keh(EM-~it%4}*;p6``eZ2o4&I959f)FIJlH^6Gf$+BD(}DoQc(Vfm4>Q2Q<* zgB=;*4VWGMgD9*;n57oQg^gt>M@o&HR8>pyQ4z*H7FDWrR^|9|&c&%pV-y za(L>RpbFz#=ijH$o|~T*&_|W3TUkitm5qkHD>l|~_^6uTvi1XVtQwjIKPX>LR0 z?P6-*UcFQ5alOGcuL$Cqh+d~-K@1lf?TP^#fwXdlMto5M7V%f(;uWvE*DqAmw7X=) zncu09#s-+r81JYK{;dcBa^K!kP6qbhzC5iojNkzq5yeiCaI2tb&+_!N5_gZ9D5TZg z?q;ZXd9`9sKe`|Lz$tShUZLXIO^}IeChgRAn=mVTzW-;+8nn6Bo^n}j7u9*5da+&k zow{AwZ8v{)*8OWw5jo9u+Q*LdSKakRkBZNp6rR&gDmm&{`#ST1JXMA#>!(ej9{c!o z1WDiH>!y_NbxT`toW|;Bong2=Jme*mh7Ag$%@k*Zg75==<{2|aUW-GH zycs>SJJDR6B7L8-%0=kpfA=dX2!M86Fc02#(_=1yX22Z z-cgm^5%mbP>|B(*7JQG!^DyS8DxhcMQ3F+O7B>(&3J8pjuR~_e@QH-yx(Y}BGmI3G z2a)s^UPcHLS_Qd^MNA5pUYcI;`A-70O@2ToZ_@UUtkp6^^<)Td{oP0E%YZL!B5VDB z&}}w)rvI+n%>P4g(<}8Uo5SDP`i$Z$Xh9hA6F3O45otO=H}mN4spILjIsDcOZ&DJ; zTFTX%EEKY*-C;dR0%3VgoYIS))aBi5wAsboEJLU_PJu^bLO+lukxpKIL^d z!e;^cNQ{KH@^ovC73H7L&uwPe?Va=OctIP&mSq4<0J=n{ zYN}Pqf0`C5qkx1gqaE8h21G|Y)`(+$@vi36`InXyc28|p*q7McSjO0EiVj9r@oKZ0 zN-?e;flsMh22;`tKg0JMM+oB{@iIy)IZ=Aq?i?}lRioit8|AJM^ic#>R;~$Y#M0J} zC+4&)DLARxTqmn}uz)17uTaAoJiR8eJ3A`+U~^Oej2oe2x9)5c(-cWHyQ1_~Qsfbu1%LITf^_!+0*zq` z>(A10xN!f;gKk_+DHZ26wxebtQQPKGqMyuLsg2W?uj&QkehCaK8{M-KxN{&^CG6)ew zAMLBV@L0ry_sWYo;z0cEt|R-`u58FrA=%&xv%3DU&E^qu9t8a1!{7qMmVlm-@U<$@ zO(eU)kV3q!4Gd?|BC&Qh;^_!h9~D8!NYe2qyGYujToseD>CcJ~zaP4k-y|R@ijVS$ zXNP*klD)EGY%Js>ARDl3Ict)XeOsuj{__R;eOPg$&c%rGM_BygaO}f8msKP90NG92 z3*Qp;m`i3Q{X~pC>x#e2D79+@;K+&Nk!zq!=UZ7XE#H0N9N6O1(O)P8RDd_})ge%b zC*kr_r9k`JBEPJ_zL9#iFkynk{B@!6-(8~pc52qW*7D>(s$%85P&VSz#RZ`Cks+g3 zT7XqxI^Ej0EeoH=>X4?C6G+Rnx7z@3blM@mY=q@=Dzg{$g;s8{9op;wKNG4=T8Q2O zhLdP9BYT<;Y-l{>-nlyLPS6jv@ zTQia^xhFqf2n+yC|7UV;3sc?tcyuKQ6VfqlT`R}Ty5zP1-Fd@Ob+JRGt@zn|QyPv< zMrW+>=l8{I36A8Bg|*hAYbC_0*)ge&%(eFjc)x_k=xw*8;TE4BM;-bl$Gb?#e@bWB z=RZoPXZOCK%P9^!Wg6yRng;iqlhs)VK*ezC|0d1rJmh9K7U3)eENuq!P8LOHuYb?71fsaJVc9kx^w5mrmZxpL@mpoDpkJG$-r7v)zMx$4T z&f%(GM*ku2|CBv!Tb-&Me05cEwchb4e^%c3nCx)7(V9G-S-Z~oars@A*LXU{V32)- zD)Q2%{U>$#wQ2lsT_Fqe|Ll-{O8vh!w^1rdV%&cGe&Qwyd9Ad^DvwH+|4UweSGP}1 zBpcxmY3A@TIO?PnJiPJ_uMDGmty_EEFGof8b^Qox%w4{Ce!61cpksj{V9@wcA$wmZ zwM^ltm^j8Ru1ZwHOoUHo)+-+Zqr&n2T8efn)f9+d?fEDy)o>U8CjN@U_W45Zh_6+5*J-#fVi1bHPeKr~p&y3E(IGk7t4tak??=+@ zax-G4FhhMiI@F6N#K>>Hp=dxQskew%j)-?CAf+Ew_bGUtf{4_mXygdU=Ny+{aadZ@ zfwHd8tu}SI1;~`Ur`)5Na8fTudkR;{Yf(K_Z20xdJ_Q6S9BsyU>)=13Q5}jT$!$Z3 z&Wdj!wh?wDkIJYfFbhve2Pu_-f!iK<;}ggjc_)jz%J_}M+E6H2{~n^Kq>6X<-k8##IV=E_wh|j zRPE3EKBT{C3!#rKQC_Z^405EyTsa!E`hX8%FtWGGM z@fUe2DgK!C7uut#Dhw=8c~d#(HNE~^%>VslcsUHwQyOo7b7uLl?&+~Q-u{4!gsU0B z*3cLv9ic*o7P)Xup3S8HvDK-tYAI$l1ewm1E;ck|mrSegl<%*lUYK-QVUMqBsr?g= zY%GFx;K73hPSAc@SsX>X_g`Uut_4$q>p0K9$4x& zQNk{wp|2y8zW~NUK5*?%fBKeYBwmvkcsFj6>7qj~b?RX)0SWJxzp}h#sB2B4cv82L zV?efBucD1=+svg*|iwAo2OV}pS@q>}k1 z4J53iDZ0^zyg;(RwOAQ@2XmS)LD2))0tqgn}?m8re`%j zRL>%GiF}4?*!bu01~#>cQDt5Z!mqx-uaH`Q;|i>&@; zXqahvTK-TG*La=a$T6^F#-4A^tFFeyOxNX8siNCb$9%^;BEYV!Wv)zH`XNb}v-scVwr3_O< zO3DW9wh8jF;dHJsF2nA_*9kdHxvg#P${5j2E+$a#f)rtG^hW*%n)HzAlNcE~B^6}0 zO&p9#>Pa1wGj5_JYAFA4C9bXT)6lOo-oAyFYQ-9CT= zdg%~t>eIxtfOKOr)QX1dz6aLxY8G@SrOg`8pW2^^`w2mJHGEpZ>M}QiM!-8Dwh|(b zkIl`w_aA0p|NB3q#J4osV~AN{raq|7!9`Fh&Vj&SrDp2=80knEu`zT+vD|)m>77%G zD$Xq}RzzpD7bwGvMnxlvL}Ywr9NwMSy77EG6q(fbnAEbid!_!-5&H%n@)wf*idewe z*Tv&SVUpRa<37B2IkGSH&(&*rEIbtU48Rng544?E9f&^cjC|TMW#Teynn#S422xW_w)AyzlnbFE$Jr)?m_L!%YbeuB?o1GbZ%4&5V2IRFLw|chz9xv znb4kpiLI}cE?jSv5_Ihz2Fj5i3Q6=_haxg&esgA&ynwnUGD@=H{PDmrGZo*1$yl*; zb;A~u$Qpu%f1U}hXfYn6^)Y{yob|(ks1E#i`p9R>)SyPJEybimo{Vrs!{3^^t^kkp z2Qzd6QUSVfoh;*v4L*NZ(Z!e$c6*TXuxqmpb)IuG^UGp(9uPLr@TM_FrvjX#+%v^u z#AEq=1mjsz7$(fAQ9|1iRPt<=qSGUlR3=+GGhCy={{C?oB_knYs@P`&l&qr5G~}iX zy3_q9I1HUZywawO9?&`(5nf-)HXVa$w!TDgeYvMuHC7=e--}MoelUq-l zV@4Gh>vB0kCx8B06kb=Qd3pB^(LSbROQ2#cG50ucSPd1Vr>bk-v9?@m8F(w9`4$(bwj$V0Mr|Pp@CNaKNj+7nPWbU+p z7l_v`xT^~FyYK%S61vnimjulPE-N!~=<-Jzw;3jPj`DWZ>eD?$z<0gG$#4pJ4(7T` zFaWU(HM5K%n_{9hPe4&-Z&^8zAvXep@%4`g{$9&PNULk-)uegf5hVnHmS6CbfIBtE zT0m;RHFh+`e)FFO8M9JRnIDiKRP#aO(?1X+b9R4vg5h$F!ht%+(u-uV{urGDVxy)O zN*>SJV~i!E-yvCNPPc}cJrzDhbT@F1&A3&g`ko8gYD`$-dyG^}Rt2Rtd%Ze1#DZb` z()2lrs5ifKJRNbZxUNRYWEs|57LpI$49RDgDJ`)HxSM%_Cmb_`AZnAmfEiKJJ<(7Z zr4_(Oin1{O^gYVZjfmQ(#2SCqKG--pXZyJoU3*ZzeT&9u{5>EB_AT@Os-;pN#d%g^ zY-UT1G8x@z!|>@Nv^wKwQk{A1VBf4^uov+#8M>xyS{AV(10%TytIVZ6z0A-d*J#*w z#5fLv9KItu&qOpjQM1{}+EQx5*kRw-`Y4AX06K}rMI)RzD_|igk7w)E@(Odk;dOt{Gt$H?0Ud+uhFCp+=s6ep{1POTQa(EB_p`#E z2PI|YcHmQEW=Wcy5|=K%O3onwVR1bqsZAeu#bkG6YaznOXZvuG8-sxPJ)i3^Om3n@ z#^;0TFbpLQ8G%PoppG2u7Cf8%qN`_IR8p! z2y+9%O!P6gBpSBjvK!Okvj)fAw?lJ)MIsu*Sw|g~>wb9g#dEQ(dHlvN+zWEP@(Omr z>XVRT^z+(63feu|1{>MYRdm3iQ+46WqjZ-quhk(%&1elbV{E$l>r<%GB5_$?a^Dj; zubN-#iMVXq)d}0TWo^ZlM(^$Y5@LcCqsRN28Yh;a)|U9>uuTg;@^lxN<>F|(B#be! z3_f|B<|Uk85J0G8a`L9MQQL}Q8TTsY&Dz$bc_!iI(%PwRzuv_EsLZL;tZ#KASDRj& zh|=MZFE^gBcPehAacX<-4+Wl&co>=~v28UATcX`0y=%_JTAe#CrNw_l9G*ZYtO}QV z*C9LD*aT-^1ma9oZ@5rVpOI&&N9y^`aGQ#;V!p`9ie8OZ<8+inv&1f9@jV)jP)6&) zZL?S|A90Qg(Xqa_s;s1Ro2x3jjU6{Y-qV=KmT!jD%(|L#cD+qI7EX9(KW4gSH6BZC zoxyVNr|Vu`ky>ba@48%T@M6e2gmrvn^g-5+4861lt$gC|`-Y~__*;zX5Wre5*hreh~n(cxCy= zk@=UD#rCaW^e9toYmu=ma#7fSOH6a-4}<`xLrO_j*XhZ|T$Y2jYi!qvI_xrp%$F-y zrD((l@;LBPEZR6xpEuNz|9QFqJ4L`3duF75(xA;Ri~J{g528#YhE>39B2B`=zi9c{ zQPjNl-(AY280_+d2TC5K2VfEDL>pn2)mbzF^P^HXPXl9n!0i6$|?T=obYB!)ZzTS8iHrK_SEhF33SA!udSqLQZ$Zv5; zCCdqdP|c`N?R7{baT!R=V&gJuarNb(?puu3~$4U?J zpw;M@NiBRzpi0erL+@63Zdqv66538(4}1K3+Kj`Lb!`cav8C+Dh&TDjP^>F~DRND( z@5zF9qH>55jWXtX-hP68_9*{tg0_4Zkzgs;QAm?9~^LB)^Ip=CT}` zk1iB$DKE`BbenQXy}VUVJpl2gk-)fw500n+xfKebM0xOGekM=dz;mx$zWh*UZT_na zg&Y0VtL^o=t>V@e#H7w^tU$y*Y-v9Jmk4hdO6`|rzBj9s*}@J|n!=^B7tluK)I9#p zq<2oI!gyD1As18#*xfI#M1@n|zW7+#~_2v7NpoEVSHT zd)h^selfwyBnI#h+btcKg61CTK=*;u4r=tFypDYivuaCVMHZ)L6*i&q0}UjxaUNX+ zvN7<0V@FB@@LX>euCJ9NgV+6igLd2;t?a6=v%R$;-htaAhbOOkkCff7Gqcx&+pF89 zMlK#MovfN%dC9pgNH}y*FmSpWqz0IyEw(x-qJz zBV;F$si)s#f_m3`g80zO?)0>e7p8uQee<~Rz8@dFKz!g>NVGN6GqEjy50wh}E2*)$ z0Va13u|Y{+U1TmrtpH*$vcwAnk7!KMdo*(BRAp&nWzq88Lg~3UbZXHmBl!*v@N}ws z-5Ypx=mcJHGXi9kOJ9P0{hp7^oTH%!^M4|^+0YYf>v<2Xdy9Qx=5hPFb*lrn7{g=TC(6zKW2qvF<~75`ahn(?dybb3yQDv zGngHSsXk?beq;UeE$saZ!v3-ORw;PuQ1i8}IydOVXckiXWS~b1hjlqR9 zp9%34!<((|GZT>yjgdol7Pn`^p`Q#58?Dn9vB9t3IB=JV~El`%6a_O{5KitmPl<6)mlc zZ?5PiMlyebF(R}3#EVygZBGW>v|}0B6vM?zP3;t_H>QbN>?!5sE?}mkibiMZP3#Cw z>z*&zW6j)&j+&qUAI9D>Hn(nV8?J44)wXThwr$&9wQYCRwr$%sR_*rf{ou=!?ENMC z%J^|5Gnv0;#)(6`6m|<6Nh>9XOaJ$r3$NnJl5_jBJpH5)<*BhCVaAfr?7eC2Yg+UI z0h22uhRAc7#$_0FD|%=IXbgA1xLhSJ!4{*02+qosZD|Um2r^|J+eQtc?FC>qyqUKyKa^7y^V2pD!6R z@cJF+8lgthZ`vHD9Knsm(h*<4jt$78O9kpIUk6REDQg+n`QCyHIpqXr)P)DBmEol6 z6nha}%Cf<36%i9`ck)0a0}{uPRXjM{laYuj^|50xe6z64Gr9W09h%N662pp9)_4Jo z+5^-xI~Bc(oR>Q(?nwDPGQ z2t_Ouy7m-5flSH&gk>)==T_ZIq;&s&6-?fZ*^OD(yqHnmZ-}VixLt=Y9R*9%0%{P7 z9nIHRqKBPZonqwh`!pP)+9P({mW9-Ut=$!6acUn6Fp!2wFRVS^EX}z?frWnD?tDjG zVbjE&DcJT%_^XODOsRSX!OWgeMcO4ME9b&EW8nAvKu^$XQy!yD0b>_BSQ+tp%2T&p>*PrnO^aGQi&GJTED_YAAGz5B5Pq>Y;?7fdB4w z-+>tV65R}&cAD_#`P?opB_V~wn%LXKTu-Q_`1cauhdBeHu{e$6masJ;pt+GLKP1v$ zsKxDE7>J4BEd7LlUt;dZDKA+fj{BkKmHD&+oj;FkeQ`PB7+=Ihe4`a7nkn;$Z>^AR zlOUC4ZCYlBSW+CdJQDBs)723Ru*qpxO{XpwXASHx0T3w=b6rNWL=^| zFb5?@_^~pZxdvWKr89B$AEgNO+hoZQZgCNPv;w=-Mf2-C_yDn#Zt(N?$~0Y6F+7Ab z12KtRwWbz6QfWtM$?EU+gd40FlMhan=kvFxil)3}FyHZwi<{;An{Jbx<=;@?S((}X zBWhfi##qb-J3`kx)dR4B`Vb{8{{a6+IMAd`U^nbBbJ}6jz~MK%k~WEg?qTse{zAzp z<+9P$@{f28e#bSeW$R>ab~nk)p1t!EgJ0MD6@(@+1spuDGGOm&KiTeeQ~jI-J`?B`D=(3CPe`d?)zhX$OA}qIRsFox_98lFAT4P&#NFhIfdpm z=<)CS$?TLj-6|-}s)bcL`f9$)q;D-NIkKL~*6!mF>y}p1tbfEFQSLg@rG?Ur1gItE&ySs#i7xB<*UOdcN3`(j;8@^AJ z9B-!~lQbS=)lgJkQ($NpW1t73Ff#=XrDLIxDmv>cTXPWF9(yi6qyh-o==o?`umn5y zL<)Oo=cKZ?bKj&4kP7!YZ!Sx7La<ec@w50yU8yla+5PMIz0$#LNn=Moe){q6z z!wC7s0tHoqoFY}aGE40O1^Ht-rY&~WkQ^xnE;EHEcTV0MKA(i8L$V9yLbqez%soY& z?9(*PACi9=Vg(l(c;x9ZsZOyC1a^Uw%bDzR?ww6bIxJ~UoXe7cnfC=BvPAaBQ1Fmy%Vc&Lo(t3_6aFBD);B6pKfQD zXmTLo!gM%^yNDbPhjMI3_yQ)~2{9VPlay?Y(Si*T+Z2ibr)`vUwsRE~yxn98h~} zA`(PI5QNJTCR-kAeJXx2>ezvd44`U5Y7`MWYUj;NW)iFulzmXYju1FanZEUmO%4w# z%{%wFj&A>oX1o()LhCzyHqF^3yU@94b~3dFKNHKw)8 zlaWBgKE;I?=ZB$bj-sbHoRtK|Sv%Z`3iZ$$zyYkj zq`HG3?j%6G!hU<&Yd7Fu5;f+;+;lQd3PcRGJ~JR$XE-%R;u;qy9*HMwSwA?Zk5+!x zJvB4h-LPQ_d(#j-S^E}pJjve@Xgx)>Q*=9(@fh-RP?Wogy@s{p;koAlK9${sV`li$ z8pHWY6(h-OFL|>(4Xsz?B_CNQA?Khj9e5N6MMxnO!poAuCDO^|=}}6@<32ua;AUeR zFmkeG!P_pN+tL(f2X6N)NWTF|$|1JSc8BF+&Wg%84}Su_7;?#kXN2G(0>F?_vT_*R-$`EOgRjJhE3zUQF1xLLKQX!kIRo}Ip`7hk%sbrd)*sRw2y(*)D zp{n%7aVRn@j4qLq3D2~j4@|#SxLAs7fE#p2E=1l_>l|LtljS)@2GkgdCu&#?hud2PQs5|w|isL0Hxa$MWzX{0}Fw7^ZS zl!xE?&*TxBBL(eTRLMecCWV}As#Qs-5hr8`UNK$h!HY?3wCZb4NH(3pGbQzJqj5bs z9$%Ox5RB>pae_R;yJRxzZI>|Ch>HOsuM~HCGLuL{G5&TX-B2e71BhOy*pnctIZEQd8x_lo;YJPeK(6}}9Xh={#Pt`ul}3fMpcC>mdax6p7_ z!#C4#T4JrE9b4E$;`VH8py7l(+h{pYRyWdk>f>2y`LjlBF5)oD*=fC`JqMG$g_87j zlmpx&n95pPfvs{a-@V4#`mCH zD6xeOtdkp%I&~9twVOS#RV;@g?fF;cGlmBg{2k<7TjWJOpLs=LFn;POK+EUF=W{ge zuqCSX$1lENJ-eGsKej1n<_McKc6O7v(jGtCeb|5M*H~dfX3tl8x7`;;2&;;w>mgrd zsUBa6!I4%Ut$ClU*2Jbkm@32jSiPDk2>K7l@t^XgKzo}FLK563b|DO$23b&D)T)Iz zq!)uLYiUvu1zD(?MD8%Uo@O>RIE1vLFyOoPH?bX!_|V@TFE?8bwx<-;&FNGM`0N@mzIPESI(ZiYMc zx5$wCH3jMxz!dL2ni6Mo_bx!I>3Qhr}-zlyG2<>!8}kQ z<`nnoBM!AxD4MgVuB&CgVO6D|LLBM*+d$1of#W?(9!)ZW3_;R4n4}72D8JxKqHVK^ z+7vcQjJQ5X$6gzr-UWD^pRW563wLixFc9y8kaYi-`!(SPIW~&^DrvvNYFYoj)B`Cyi`#h=19?yf=A{(6t-I+DYkKSafe~qBJ(v zoF`FI;6s4P{Ik+Gd>%jGt7ZX$kQ~TONpUC4oG`Fu(+ST~0Dpw(kTrgq5^6cjuwS-6 z-aOgeSFUd;-`d=}U*{-=G%Uhc?OBCWI>{^y9XU)g#Kq4V;|ygXASF{AUV9^ctlhG( zx!bdXm9L@xmY!{XU#w}p=noDAQ(yn= z)J=-#aG!XIBV#R9_KV4$d0O301iAP`7kGPKzT9twfI3_NN=#Ol>nI_2(6pBpPy|dj({4&^E1A zA(Fj&z>h)bW4X&1e$kiP@F~Pz3S2Ft1g)&_JQ}^g=G*Dx?}W+eokdC^`Mk3f+1EJ4 zRJn|7#1_`+{B((i4|s4ieT9E_!?XV%3%dWg;Tc(&nf|l!M2jnyxCL?gSxwp7<`zIAUi=_*_AU*8<-?x#y6|?E$l9LeJLu`LsAwMn8iUVW_ zDW2ehux=;^Z$|PDjB{Yd7*L!MfX4(gPiW8oaYE+{DhxA+@cKBp*uix-Okpbh%>82d zdi#3&yA#&m4pP#{W&V?5xBs_>5BCEcCBotWPLYx9@86Ri_#U1QpDdPzU)uums&RR( z%aSgE2^kb7@S4EDM)i3gK=B}j=6w;{?)fd@K!5E9UsV6ZqQ?*t%4;2k=V<^CuGPEp(2>IrAAsoT-1A1y;8L^iv@_N z-%B;H{;5oEWG@;C3>?Vy{S&#Y=R2LCSE+6}RvF?jgqtEM(tW1Vs-5Z$UPrSAWFTtK zq6ozVS{ zDkbE7v8&PwFjUzWBp8Ug5*~?O4Yu+5RYf4r&}f>6!u|W1mORnzHfPulF|%`lqd8!; zi6@vzSR`86{1GoU9j!s-nl+=!UvuZ#8-<*zl@%4BH(2#qo?k3n3jI?O0@4|!RapVD zn}-}M!7yP0yg>?c9vsh8;5KHwce&7@z8ASB&D+c>wE9dY4kyJOzRM-a@HF``O$B52I@1dePfM>! zb~JH6clXK!qT~kLsDr@tuWP`z7{%xpzByy@zF-uhBd?4oZ2Okm(b9DII~5eEQLfYa zQfHmilcE`?@t1mwIS!-AFOIZW`Y8^d;VkuQB@Pqaq~vHA&txTS<}&UkY2_SG>oRWN zDN30ulT&4FMt3TK7 zU5U>HIjqw>zzd3tg!{{z9=q`75T{Pq2r?Mu!G4Jja~Fu^lf|-@6E;P?h<}>uF3EP4 zUv-w#1hiJYlTG7@j>3_D);xAKL-CD2&z{QGwG?=XrGzGpk++JaEGuP*y|WoGh`win zJ^55`T8zUij(Y#zrly_+S91WPaHM0U&7)lF#TML z+2;++uXN5yj{52Tb0~jFu;gE|h*!&v5FF#{7DpV0PsiTKS;0tM16{W_QSm zNvwJm`9NR7BCm1jVL4`^Y<`KZN4a-4SXzDozlpHo2ufwEI$%KR$OwQ)a|&RP-K}MB zztbZqBO?c#XR!P!ak+XJ$0`#N`v?;aeN!(|g57Cwh5ik=(1yZ7DINq2ipvPOTYdH9 zs`~04RVsaSRP48Kk#3~$Az@-H4OX4Y8|TLF_-R#PLYWT41G*mqt}rprO&UejJ+H7r z1wdmUrbdfg0ab&Vyo|{h-Zh1JTZ|cu8m#Ch43scdFx4u&`yc=5c`+7)2-( z7@Ph2Jd&(dtLUy>KrKynE9X}42;7lc;=fTmHVePjlrq5fS_~L8m*Jt>VOa`r(|ydw z9yDipvTC&HtWtyac?6z^X@X50o-7}TFKv?BDE|5rUtKFyUQrAU$isKvJociSr9wFBvO~?1ogcfldMo<^B+dW{fB8(Hg*bbmUCNUBW=q7XJinPH^Tax9bM& zAhTeOEJ3ro%Rb|>UXzcW@QPn~w87DjKX3AsL*wK_kR{rNlJI$8RoV`qRQ=F}PSf4J z;Eqk>B-fM_H(*pLyeOD!dMO`&88pQo>GUktgQeBC!wl2n!O+motgY^>ONChWTH^QO zIH|m8Fir`W_*Gc9O|jYb!{QQFa%gU_`c|Q zF)r4ikC>@Z72oA6yBX1+mpxOY*}|eZk9#UW85eBh3#IUmI6HF7$T2Y`6)0(I7ChQH zSOnL{l|$X?g2jUV!HIr8<@(kT~ld&6NHxs15uX{PLGEVz9(UWNi9 z^b85W9&r-lz2lmxjA2}l3+K;iNGnLY_HYunsv5&-dQV|iUwJ#&5F*0Cf7Le!1C4pz zvMirkBUCbnUG@~#P@cK))Tf(0u|rBf?OrxA+0D1CUDY)e?|GQmoQ&z55@i#i ze^P$oYce!QHunbAD=t)Z=%O*F$*2)M7s{1|w-sSu=bUwB;;URqtprl*pxnI#Sv{xu z<`O>L%I=ii<4lfF%+ldFiTa^RMleHN7;bu)qE7H#Qat=s4u}b|=JYPYJ4~Qi4aab3 z#Qq@U`*Gu7dH(_V8KEdEMKx(GcolfqG$7uW z6kkESK_#!RRTlZfYJ|Owl_H`aFQ_Rrwct0#JHGSUD_cSahu9|<#e2ec8PhE z^kW0Ex7%X3lNON`RE3_rXexW=I5PK`+Q?$G3{A3wnY`-!rshwes!0}*7F$l)j(;G=s?;y^)vcUgL z6b?2T2{?Z0UrIT-$RJ-|r+AIiu6v3L1LKK73_ zn{WmAA8>jM{PZc5)2hhLh@6P)oTu5(?=VFq5~+F~*8~eVWG~}zLO$NX8BC7Pw8Mvu zf%}Vr)QW&H$k_3-v&Z+M(}1EL$@#pYF$$7Og@ucmvzf%C_4$)@Ui@N)2M6byvxpP1 zLhdPfaXioR#n-uj2rKiLIghG3kLY}jH$gR#l~Q)ui=akENr(rJn3a3InjSuJRn-Xn z1DnpM9bH|#FQ2k}yyFO0GgWjbY_wv#y8<}=tj>rUigOdnasxA#`2cgouhd;dQ0QlQs6G*+ zGWyc*k7p2On(|9v*%H542~4j8%Bn%U|4A?fuOZKidb2Kd&h%X*%dQ2cb-;59XYQBO z(b>PgMk*?5#^qfj8>pV6&}WJf55ct&rR9LAC$-qD;uJ%cj6gDpYrny{@5hxSYA=$% zznT(JcB@PfY}xgA_@j*kPbqz376e0YL#F0i)65x1hnBmQmKFDXqt434G@0wwaEXZ z?N)cgshrRxBNu)GUKw>>l${4}Ob4y3iF%jI(W5PB3o}hSsmBA>gqsxrHNlK^q`+Db${4)qSUfMEGs zu#GEj>%tWn0%{~zp_^jSoH*_$VncF9lF7_vJku=G%%ur1C&AC!cGH@t-B%Co8y;+CKZ>ykZ7L zq7Z}B)GBez!Uhk@T(JH~ET9N=$L14$7oVyWp%f&jPVBE?r*a2fVBECFg*REQ zpt?S3M`UPn9IK~q6mR0LE%Pwoq;AyxT?joG;1-->vscPQlc&s?>T4>o)F7U&|Hf-a=W+#P=`dEyrxSs8()12$ zH_Ch-?Qpo-RfCO`CuOYWsou-&P~&zL9i&wc!adpw!JhI}D&2C;(zGWW^Hm1PY_4J5 zekS7r!>O8cGv*p52h3B$GT|0>i((9P<&}2(i?DT8{1xj=)=lep7(A2DwQl9<4t@Q6 zivvsU{WsH_48Lc$W6Wiqx?#NrMw_hn*NVgix;B}*Z&!S)Y)-?FOL=h21u>-0Nfgb> zScPbHqN+-DoEr8Xrw6Gr$h_g2Z+Pmy0%I zcGG%QG$Nq%ee>;{JNu$lN_y3dyUl=W+#^$W787@=5!Zz@SWJCf{Ce7x%ST((mQd*)i5mhF>s;7c_j$u`qV=PLwjIJ`#KI7WVlAO;d&t?k8lIcGbX59PZd z&i69}+k&w73fg)rt?|E(Q^oD_Lm!)TibMNs6$U;cE+AMYnO4dSa*a}DBfmB_iML8Z zO?;(#2Cz=`ygjh9@ILSSW_xfv6@dn|@*BU5-%2ad$HTbh`9KFNbj&@3&ejxfgOB_^ zU45-<#n20BwljI!UkqqiPdi}F)ZDtzHXiPbHWLDa-v;CgQUs8#PK|C? z{xWnyrhEf*p~?^ayN=>VS@AEDL3ZZ<6mZ~(-4I2&epah(gpM`a?rcLa0=)7x!Pkkp zN>CQaBD6;&67luz<`~0NOlnjkP{6+1dQQyx$~b&DI=;R=K2W$n3}zdjdw8)?bjQD~ zB8IC<&rx9M+f0b) zym&ESl|ljP>&k1+c^A!!WY6reP|&rt1eFf;ZUQ#b%n|HLYv&};R4Fy&*&oe3hjZ7a z8g!7){F_yBJ=5`J#fa0`ho+b%~f2jv|GrUBBQ~+;& z-Hr`lk^`Y*#mp_bM;F$RfTJk|QCPQ+$`+)zsS`JmPmNbaqeN&LhNDr~p>G@Ax#mjp zJ4pn>GZ34FBMHOyT{^Bg*q42xG+A{GErCg_d9dd8226+MlOldFLSZ>5rQK&Qcyoib zsSQzAqoGwd88XeJ-gh|G%$P+7ZoS}(v-x_JMn!l64I!rwV9#~5u<4Vf z!xXvHzz{Q|K{?)0*nZeda-)qTZ&oEY%SBO0mFJri$rmO^Y0P=E5<$OMW$9F~uX7FT z^vXH2|B5p>Vqj~zbH{@I{d5GetBU4Qn{`}sIJPxb5Q~4;uZf$k+*`(L#|j=C6R9u@ z20?jQT~NKLw~Hk=K|~!-F;~gVtGTUiZ zFx6&ysN)6QXMOUk+X|}v%b|G;73W~gT};a)>zBu=ak0}pEXSp=HI=gTs&n2$#H-o{ zewO#xM@4!_b7TEt!M1&R6EdipwcXw2)^-~;xRqdy!OY3-iM>4~d;>%RIGipOypn%z zw+3N}f7o!whMKLlVdp+B_2Zos9c`DkZq%ay2$D`WJ z==Oe4F7}n|3cA!NoUMzT8VMEO!bgQ=vjWQq^}6L2)Mmj#WO!IGr_85WT;7>fzC69u z?^=F(K@T&Pzg(P6>+QB++WVgI`1uG2mEo^Uq^#XWe|D5{(_Ka%xxC{r@}#4pj#zyy zsfj#WMUlBrt8S9d58-Nh=&Fm?WqEEYMBZR2q=pHFX-~&sA?lHxIu-BhBB;Um`O4aD zpd^cNJO%3DI$v-Qj0{&^j)gajHlf40yu?CtPF6xEb!wTKBP@v_f@5~`<(n%YkHRWY zx!cP#Y9}uiAjnkyz9aPc?3>DV1!{1L2_exogZtk2`!sKn*Y3B#FXz7t@9^X6 zPS~13NS4({vw)JY*htJ}PvHj3OEGe3<8rDXrCnzNKpBIhxv2HjjN5a($^O;&v*bv( z)nF`~%p~CPUp_tP$eIFYiqQ;p>S;Gf!Cbcp3emgG#+rpQ%Tzri4OY}saFmw;hu!+( z?3y(oR!rl`Q~L6d8?(@q+R-j%83NM&O0SG2`&Y8vDPRmNuVh%lpsDKA$Zd^VRU`pJ z;;=>o;VBF15XhoYF7F!|nFmY29e0$`5WuDh8-A<#eKGmWomFbyy8y2m!%&a%?wmFA z4R6j6#_fXHX@9Y6sd)Z~lOg`RTsQA7hWxBTbXCKyER9i- z($UU3Imfbb+~ocKsw;01|5~*2q^b}vB4i$t=Hn}ahZGFdlu1#|adsUQV{USzc0OU> z=8UEtsda|@v%%O=fc;2Uk+f!x>kq1E15Kh>kc8_|wxb5Vw8P`t&Ba*E&dBye{vQm6 zotm!%-lG9cu!rM{QI9us7W7^-pA9|M=UT#=?B6kJr59Ebm?Rlik6_9xY>Jw~YBX1@W25Hi;P zT@_~fS5Sz7iTyu|9=g(yvipJkyWiC&@qQCV6yfsg<4+F*dR`E=6qFWhEa0|(f6Je< z6vkgU49jNG)`rztM++z1`IoxeYO>A(1&=L6`#kT-#aET$DjAAf*(5`cXn8Y$}9M(6Wf%-76n z(YfQLzBpJ(EtBRw)&Lq44B4B!9((gUN^w`a^wR+^9vEHivbmR7j~!~n+TU6TNC6bf zA!D_hP~e9Qht??=uvc@F`4Y&V)J~642sHcm;AU^*_*vI-t*l!{Hw9ry zH7b|DvhpWdkEN)xQSB-l2CXLF=gcdLv3U-VV|>l-rjixjgkBb+xJ7P6{uj=T@Nbl| zRWA`hF}J*Sf;r-KR44XKxOQqXOIH?i@3AC9D`A2L-R`-y()!RpN{}WrNuZh)w|pzOKzc8SbNh%9Ui`n z1UACf&j;$XcKZ;PVlzcD^%odw)N{o%GWNqeb8?9_ywR@ujsS_;&6CnqRDY?>$Rz$q zMjlM(XM_nU)+QOx);St`5+t=`ZPtVKk+Uw!@J6+WK#L>6x9W-lIe}P4M7v)6@xR(| zu%V6O=vC*_lizAyo)}2NOn~v)BwM4ZXlr87LcJ>E(2q)~4-7i3#_UB;EsH<7=yaWK z%&1$LMzqc58_RNpF*D;b>FbP&K8Qe0$h4+r@a##A>PkYFkeW)nGi-EZyHe5|=^nGE zqC%0F@(%(6)uar6GNVkIXC(8holbXNzHd^la^7dxXj0c!@y9Mal$ydJnK#J?Yaetk zfU8&eouBFs;TsT9ko`!M&Ub-$FE)ldpI)43{V-YmN7y_h=55Y>5Yn(}sm_=iJ#$*f z6HX3Fb!>0{%3kyv>C7Kk_-6>MJh|`~J&}Y>`CE!Ds^U-%6y1QkOR8)3hAR9!W=M`V zvWU6Is_!6h1w{8s17IdE(L0>So#Lu<>=_0Wb=DP#mM^f%RRKgfM#cizIZ~^dH^R-oVQ8H#bd%pB|mt3sojEExVu@OhI7R?%)P!WYRGL; zE_=}1Fde-uQPvMs(HiBPLR88_mcepD)3WmV!h;&MgQEc5oK#+X6HG)fjw$0&8za&g z@>KhnZkfvWSU^xf^P%}R+S}vy)-k?@VKs-!?G+;TY2c{v1EcH+Ux=h4z6yPSb##Hp zLMH3}UR$QUQ3^|m-x&~6&)vL6XI8sG)Hnv+Y%V~zJ-$jGpMu9+$)4-U^lV&d8jAdN z4P!x#qqdtsIfA8hpOnpcXb`qRvheRHC;H^4kr8nBT>if~U^ z5Su(Wjw-q%cvq6kp#a-E<5M2`onH}rRF-8YagW|ZU%2=0BA~X|0(gAH&4=`lfOyN_ z3w~5L_PjU5-9&z~61)R=&V_b^c*0lCPC)q!o+LrD5*-vFvj;6XLZ`%)Tn<$|{Z`>p zezm~*u{(P#R6^htoxz;s!6G#)bc|?S+ZU_A_5z6a;Pv3Wvd%qZ9cvPuh+Y81Rrk5Q zxB!we0rpN$0Q)_Eas_dz2cI?idz&?2KgjAq&vqm_0;x~6IP5>bwQD>79hlGY9 z(-X_jlJ>uTbfOm4&L)m@qSgk^Cc-90cE%>WyiiWgjwS{+Q10tpKlk>*|JZOUqlzfP z=RwRC$pmy=<+TjupfP!63{3x*4X5>pETfE)C-&QbCv>I8Wyl+)c*_^87z+ zW7D6g41Z_yS5TVhf7r&<{eQolUM?i8jE*=*MKp=Vj}F%+vY+80bVUIsNV)*t!Nm}I z;u*~ETFmd+$O|VGuJNBwR%v&@ZCsKN4v}!|H@`o>Mr6@zV@vZ|;xxr1jn#@2kRch- zV6k&WusR&!54iA{GMH6O2LqEho=C1@$>1|J)02zibJ1TJ@A8@W0PsZWV^LV?Pohoy zQGQaZJ$OYF`$QNwano|@W5~JA5uizYRchn+-Muoqy1H+^Hkv4~l&uH!`>0SHH${-H9TC`Q7bJRkap>)U{S1nV22j&NWqs$M^{TzI%w^vRn}Z&N|B zj|g^;GBfu6mQR=sbso&JyvBA@=yE~b;w)|VHUdti}6 zR2`#R5@Owz+yT3OD3N=$mf>E!I@Z!m8G$UF=ac>$XRVu&hF;`5J?*lI{w`}rN&3{g z*i|hFr=cHXLU_TI7eym%(DZyb^h$AF|JG)}nZe?Nb=GZKnrzVgZs>|%MX9UNXlJXH1|*_M+tWbhjs7%k5TvcWIcj4+JR;PSNP0p#c7A}=Yq7J$y?jY`kz;=rGTd5(N?&%2)AQhpHVcsi_3hi zgiSCbTj6X3^yP&P{FM>Y#1q@crzs(HR#8=i46&SN#&}4I6e8e}r)CaSyx|Xi{fZ_l zVKrk=w;M=_oQI2_>lqqXRKqGK@qz9Au%$S70mIE{=Fjg#uhFmhiMDa4yVJH4yqtoTBVM#H0Apb&{OS}M9BDCCR!+FXDD~%uj?1S3+`kvRDXStE!!y- zIQcG)z%M$G<~he~i0ZjH80}u;C5+`a|7GUdG_kVK;J7$3hlzRZno0eW!<`Me+C&5) zkcU2hv7Vut$AIY4fW1T76n-_iV40M$uJ{R+nN0FxYeMle0cI6Vhfbtc=GYv~s7@A# zw)NlUE$8fyXnpOggD$`vI>Cw0x;V@%tS|37whGdZ?;5ro@pA-2?@_K9lk-(JK+9@& zCnLy8_^<@S7E&YI$jQ=em1|!b>L0sMNd#00!Z?M8lP+9A%Z5-!uwTdp@>w9h$kc}= zU6>_A=j>V*22rQP92YtS6q+L6hO7jhF&3l03d^5v!FrD;TnlsWBB1}SbeX@qf|@SX zw3{R%aw@9Sm?T&#I$2FL963+=a{&2pG3Cla&P5XDTl>usr)Q-5 zUw#-H<9{{^Ed2`t+T0()?@m|yDv;dI*3`%I)=(kt}- z<{hRuSuP&?CVNqxMc>Png*a@$!^5<-t+svFQDR9Xu1(xAX>>cTP%}!Oj98Sobbk9c zRWahZVcu}IPSiZX$*x8T4jCLlnh*RPiI-Vbv+2`it?UV@ zUJ1*z@#^-$=Sq4K1O#N-L_aLWz@WfY@>jL%TG!(P`oodgB(q2p%fVbQ*2^v%LF((= zVWeaE1337H1mk!|^zTKiQNgWm@NE+tMXdwYsS&A-H7gJ;4ZSLxLw^35!T>Q1SYlN4 zEkm$h!*ujR$g9{;gQ^v*$q#`+H$;ap^qQ{MoaY&6MKemL$^c2rUykytsAa^V4nR5k zv-B!jhCq_Lg77pV!j!K;kKU zGz13MK?FeN7;FBq=Z<67IGu1eC}b62o#$@IfDcKM0knisybR8uv)stwFdDTvIo4tT z@qIW9zv#}=n?W~YOPu&) z*vsg?#zS?y7p?|x2+bdK1*nP+3LX+xD%XJ?`Fgb0=(pDOa<1|G`Jm(X^+0iW+WmcG z8j-p81RZk{Kb%M`x%`nZTaHy6g9!wBS5S$Rpp*y~I>a?BiI8tpvM2kDi&F`xFx_b~< z*&fb-?mabr6#7z}^3^yD|8T0c2rV{|-ET2_OZVZYoK>v#bj+|V=sl_3Yq%|ces;_S zUnBwF7H9v4B3wQs1evPQT`1C`rR_MPih3Wor;g1f0{KStY;%IJiPXBg+OgB-seIB} z8c5QiJlu1HXzwF(CZGn5t##k_xu*ZrcuswNzQ3k=#*9MJglFmdAR0Jk;g8URX3(9H z?gMw<%rhe$dcPZc10(*x*W>kBNnL+ zp_v9dBrfXre`t!|uSkWxRo{FW;rljmSit%T`OSbYi0gP-pCK_99#rD6<1 zcHk$4i+56F={f4g9*eeeBYXo7{`x-bQk>mdZ6K^o$6-72D1CF#4%4R7vXnKm5vAh*lI z`9t+jgdaRgZ6`PkcU82aC>k&&k98qK{76A&RlmLuWbTJF-3ePyrK5{*dACy~0rKe{Q?HN_dm9ik8H}!cxp!6~z*>D2Vq)V9_OLaMMITX5 z%pQnm9ny!}r1rCnYVkF3MFL(z<$1Poa@aZ%e3KaNyxRYFs;vrw1AYTDD6^QPwZSl@ z8XOmR)$jNO`eg8u z3sJM=-$m3B(jZF6p4np>N^ZZQOLQ$AAtvMC({}3eL}dD)$~8MxXtJ9`au1Fm2L`o} zLWHQx`6O*9Imu$2ZRhXzpXC#F2yWPt!gaCQe8v91tH01EZIpoY8H#xjsbyQ$uOd)*(gb*#HI3}orkJi<`< zkQAZ@WdHS)5fBiUqYg~GL!%u}XP*&KHrI%p6pPNCHZ<_UTKc2C4t^G{l{Q3+w6~3( z){Mmv1)Q;WK7{b!vBgM>sEL14{%cxpcm`6flvF$zLP3!3L%1UoQl?fzX)5P!&0;+HR` zmjqRJ>IXP1+7#Adw%p%P?d2t353a-ao9B=PYZ_92AJDvdID0urhhYvtAv6)@UOTawsjF)Lq(v! z#~G7^H!V`ucW`;=A>PH40(iK)v>>6N>4AyF$IyV|MmX^=c@xQ z!ES{Tz!tKL6hbF!tIw~FJw@a(ezPMuyPw4s% z*LZVA7*?E|<=s~IDs8^|1mW~;FzHFto?4cr#H5gx+vf+`hd*tkakDf zHWWG#z#H>G;hK=eaOO|(6@b4GgskySx3Vat!m~F zwW?^=YP56}*y#~{hhoRPx1Rt&?i52V+;(lX2g(zO@>gG7|TDP*Lo89uB{2AEw zjl~kUmQ??Jcm?^qUK~ZB@@(gp;UPv<6o;zmpPb?L(36>!WwMf}4A%?@VCopxQ&EH< zDweF076Pi1arsUPH%Z~!OOQG>=m>r%KSk+_dd-LUfU7Bv7bN7}!HDsRuUthC%H_PMlC@r7;)SK?2;M~{*Mz;^8&gA}y& zJ9qRX3#DLh^6>=o8}v&~@82bkaFQqjH=M;fR%i4m-#&I zq00H7-0q1L#>uDdFHCaxufN#4w=*?6ImV{VjwSMOw?TE9^i};Dd6nr*Q)b9cB{)h+ z5oW(VL$eJ`@=h3aILliNi)iknU>iO%UrSoX#(1~) zk1q4b%uE_*WvA?rW#Jkdr?@LV-jiky83G-2Isp$8-+qY*^9G=i-Dcz8OV$J!?&89| z>LN^6B{00oo)9PYO6(DyY6bBTe~QXPDc)5bMs_lth*0rF`-d}DW2ZYV2$R`kSn%(0 z<*?@99oE%i6$TrJpS-I{u>OiN3dpf-RR3yf(ZbSbh+wbKyZ=pB8iuKzY_~Pycc%Pp zQ=M!Vty20}U3cWzF8i*9DeTEjH)Bw$wF!Si*x)YN+}fHLLn;r(;W+r-hg)AWEY8SL zqkdx5z0me%u698TS~hoHS2_J~AfYogSjPI8(B5rc)DTMN7@>=3l%|h12djvWY4&2# zsXQPTWBr*vV^@J#xDAmEP_ywHQO;FEw8WD?Jde(duEnq`UX;9a3PVDQsaAW$6eI6(JSMI)_miJM;m^EdB-sZ2>{auwW8N_XQ7YEOwHJ-@v?_V=7UO~ z7NreI)|(^FmN3Chkg&_jA@)BQM_YVuIDrw9k?0<+(q{%QaS}t74O=}kstBc?-?P$ebI(_k}9*Lj{XD#MDJ`Q9a_uLcNZeB88u zrRk3U&OSs&vV_0wfSLs7nOrmaZFtyV2FK733+N%NHs(z^=iqLD&!rIs%_F|5Yw$YC zbrs>Lk}VHyGlg=0NMxDDwF|J9>w0c@_yCk9Bh$s88yUY)rDx7ce_cL)N|XFHS2yh_^&k3z7m34R?y)e`SNK1Qu@IQDzN& z$aZE&fn^v%#_7MCUkH-`*=x9FtTVftRbPf<*E}w%Lio&C3xhG z+8XWNSti{Mp`>&zFX>-~A{kQSl3`ApzV*jc$zKR3#3+h-1C@@+7#I%?Fi?^omY9;40!kp!gEIV+P^SA|R&bh+xrYSf}_q#S1 zb!#_4H`Dgl>O4G;bb}v*qL(?vx24gmP6@Ts819Yc0@)qa9FwK5u6GJ`hR%fA*@_S>J^cR$g$C3T-vjIXTN^S;Q;PcZP0=XhWo9qHit{E+C?e}ywLNe}AU z@TkU(1Y&fHjd(y_=`XU9TYd{3OkVZ8jlEyIp=*N`+-cN6ENua4qkaC`w_iV1ed5@5vBHc!ZWH(1C_M|igkK46JqvU8JkEK$+4w6m1 z{ciirca%c=gO*Aich0g$MxMF&B37L@f{kE4pVx&cuPO-(QaoG^B{7BoqWC4AlOtU) z--YJoS=U8A8-xY3s(0}U8dt+W-t{wZ$X}W++#RD+#3FY0Mfb!yA1AbvZ@hA-&mrvp zB3MCdZj>4>YB$?e&sJ{wlr(IdkVm8FoS$!Eae-3PtPoaTkoh~S*k;L@YZKBe*Q?K* zi1{mPr!rO7i19zEOa3{}Qi#`mQWGmRs3ywWx{9AY1v}kpYMZk~nwVR+vB%PItT<49 z=v`9Q*w=1+=cAhO$ndG79_raJ{Kq>HT0afzCG9)orEg|UyM@HEFhu0v-fPIfzx194In3nJ zn~$5F;&DcQsg@7G`-f^+eq+wc+ym8_UqYV>r_=$pwwwm#-M4RX8L8=9@x4V(j%)&< za$DkJHAq!}vZ*xxd5O!pRtN;N^wO7#AqFRQsg#ZsQLh9jnorlItza@kn2=YY3`T~r zl8-dln6<*J2t>RV^#}#V37rKYfNu$hooG+o8D0^2gikem9?;WOD-s`2T`+7;QV3ID zcY@Q-)D&PAw%0OaeFheso>>pic%g)bre3ioe3B-c5mp=82Q*zj5Kd}<(Jv{EUDJL5 zB)qIv8ooGxi`{@C_ee}ZFDoAxy-e|D)7x(!Zy(&G_&7giAt>vU1L2uvA489n5jJC+ zDFK0Jk0&NP7f%_)+;WtsOL~8vRFG`Tc5s2hy)tk^PWiQ5E_p&Fg~ksia$al*{4-Z$ zyV^TucBb#E^BK>Uk_(JF69q#%5~*VKZzNd37JCr2xr8C#%SP~S*z5oqNLVwlrSKJ8 zcI#Ju?)|g?2hOD6r7lT@5;mY24l*R`sAlxk@}jIMVdtGGS!xR}aQ{+GlKxg&yVKy| zTPGQmMoE=z34{xn<@^9HE2BuNBQqO(ea#kS!F_)>PFX=@KZaKj2ZQ)&#zc9f_WV() zcaDs~-@p^(pPl(sMPW3?nb=!S(anvBI9{@5&3@uSh%VDt@j#7sO=#VRMJf~IO0X|)Se7yo-YkRuZF z^Aru8jkBz&9lndGPc7@#xSjxSkJJ3=Q^nTwdH>v!ztsU`4D(fYL<=GTb8fd%cQ!M} zWdoMlszwj{18bdCih%D7gNlqg#or7=O6rCVUP1c|;!_8@dC;zz(fxU&1(fuZAdv7l zLU4*1&cbxqPCJBC-u~HMHzEmS@MRZwW-xdQe3g>J;gwQ?9HxwG^h#ET)C!qJErxS)Pr?#(n ziOf}#i~>8Qq{q;;UxvQVkRDXYVkRHtN-nOB$3F7B4Pg;(Gpr)zK>$t`zpY6c?j_>F zhN_2TjRF3G#z&e0L~3A}6`T~m#Z72lzA1MreL@)t6A>i%2wlz8V^;2Ub8s5)EPXi9 zfa=@7$y@_)3Cd6=K_oGpiF!C;LAN1Jn9TWm+%OCKcaT6{*;cA$P9|j}Y4X9NDMWE~ z%jQ&a>qTR7-)9d8nu_;1aVNX48&$P|`3w>H1o|!+6~jz+V$X-t?mCo|^C%e!=~2Z^ z(W306(@1;HN(0*}{Sl*d|2lN%xVNbdRobT*ao^35n?C<&pnjXbcVl$E=)rgRYSb766aTw7Z2b{ikW2=|2QASpUmu{r`(EG(8pvw58_HjS{e;S-N_CB3oJ(t*2_aG`Ux4Yqc z;fZ|w4}}B*KoNuoZl8Y*MPx+`o>_1FN6t2l$K)@~%kT!5aU=FWl=9Fw!#P8-@?A z1b`gi<%Qn^1cEg9%1ylW9jNgMxe4L@P=Kzw#{IwL7X;~K;uw5~UUw)o@7Cu{yK*T@ny7WCQD`!M@cA9j!x<@(`Ij2U53!L z%VH&zYDKNI^j7VOq)yD82H{8J6!NaD4`rk5C`|n+3xx^A#uYU?;iOZoD!V}?>@T!w zBBorS?1Kp6sjd;)i2`xcYRzV^m1mM}%UyEZOSxsIDSb9GVm`Su6c@Ycr*UCS%S7|* z5XV)#Sh??Sm@1f6x7qJmbJhq}wPGu=vJPo~wbqL*$VwxW{dNy zH{9@A_bQ5x@@k3}!(5gUF2H6$PMqM=SftLIN|IG4>~j+XaPuk_o5x9qj!ec--#Lko z;e^8zEH7FM*W_J_71;{LKwUH;+=@X(6P~mck~vv2>522z6-|~lpYFOT+Zuz8C+9QP zeFbn;Wb{>6{lT8@q8Zx}%@bB#uo=%|WlVVLf2&(IYFIre?Vab7gMB(>>qa4JQ&$R{ z+Hb3;Ok?liq?j}kKdH>EY-HAk1;L}jRaysRb(gt6NF2ynMg?#qP!m$PpVOjqAvPb= zn}7H3xIBkyyo9hfcx@CGae#X%C%mtj&Pb8^(SBG~N@ALb?VQFM_4L zFPL7lTzEz~+YAv69TajxwPgRxtJB71P3$GuXX_9zC7wAtx!-gg6rv6Y=aFXzMnMfR zLFU$hg21r2`O4RZETgRL;DPYbvGfdp0s*3Am7q~WrdnMJ#i3Qhgl!nO+|5g0F5aZv z)01F}urYXTNUZXUVs>$~xxm0HYlzchxn+KE)F^6sEbBr$y@T_zcd&VL4F*Sm5Gqed zTG`;ZDJ@6f%jlX5KbA#jP9S*pkyx+T&7OV<@UQ|^-CFR!n5=fm3WsrTO3Mm|6!g`` z#kR#|@-7}S@d$46AFdlj`dh_$x3~Sh={S-(I}!sTw2{O@5urH@0Ze$z1zxkOJfW7> zQ}^9sY~%FwW}7-kIKcHK$W=)U)$hJf4U+HdIOpVxw!_JX8@arO`#kG_Rt$#&ox3%- zc%#q5z;WV3`ao&*3tl^`HR$d;TF>?cdc-U-j{&v|0<>M<0U1Pz19$+;MuN2qxxW!F z4FvL>@fe-A5Kx^4`*rDUI z`j3BR5bSKIYVyoUqTVRgx*#+5$H*0ZQEl*K19dU&4xW01AMl93=+eWNw8WqAj_>HF zB;B=UgXu~f9q)cN&SO_NVTSX=VYG= zQ6;qN_}&nnCDj~z%hMgA_M zu?mSP{n6H~T-{qCb*-@Pcw?@r|KTQxjgFc1e;aC9eqa7KyQ*LHv&Lrszx>0>&_89M zrcATfg}{?mK>wqDL=OK){qmOO%a)xt*b^tJf-*)$lIS# z1#U_0_gJr9kO!SR5`@5@Gw?Hh>_1=cBMFoJ%43PYorStoP{m3_0>z?KkZTW&;#k6} zP>p8(!2wJj8+bI}MTl?+gmt5eT-tB%q|AmLYBS&WT+beIp^QC~lAkyXpKRx~;NcJn3y zkxKP(=gVgn=wQ9|9Rnt*>a*?gBDGR2%`fkZsfEQzh!s0)oyxR#Xga^k|xWcT?hq!EWzsc<~J+&^`x(^-oXg)E!K*B$UEtD3*CZ1$_3`k**|3 zF5XHNkAX-v@>Pxz07VEh+;RNiI2GrHbcw31)1jlIo%5ZM$AWmf0rT_e355hf6!{b& z-wzDe(+$s?{e4+>9B{T%M;D%)IE)}Avjg#WWK&ho^FZzHf%u5sO#)QTvm-T*Ac4_- z3~ni@c`i)Vim4r!seWuMyZ8cC4Fku`#{Hd7c)n3YsY#}yHc&U0c{g)Z^Pmm;B^+33@@1ydt zUP&8MBI)n>`o30EeAZ~4an@0MkQijVfuF*-zXW8HXjfSMDC?e?XkPa>hw%k5#w?{? zRt*7tvYnN7Ym_WxPD2Q#FvJi|^e3AX2jGLHBXnY$AwF~jL+UVXgRwg=^tDjBytL{$ zhPQ4vpF}?U-pB%MJ{snu90YWi`eEuv8^V$ltv%6Kt}#0Bhv+*y(a?C97@o&k88Ti{ zbfc2x77rFdJ!OTvdmk}TXo&go9VZ*_qJhv9x&r7f0U z?oA8=h<)DLm8{yfT3M>k&3Q@(0a%xAbh=4QMgKHKC3mh^sP#6rQDB3hBg1`F@Y$s$ zb3LIM_ri8jp}!PH=bS~gyL9gKYf%@cYZC* ziGe1NHM@Iwie#PsLFFIutPN%r$1}8L3Vr7_#g$7<&DbnOstv0sW458)!K_CdQ=yL1 zB+A+ptq;(<=j#qtfCxrDo?6V=aFF(wOP-{c{%Dmhm)z61#Tsmgs;sV^w;>wS*Fztfm9kK?(sieD31Hpoy3Dqbbb^8$iIc}*%hE(cm^|&)s=;gtKkcj+ ziA$TCOyIxstE(Y3IEaka2PuK`Q;LliA56Ua>FTYqS-KnNQLA9y($*W!*9+n%+vEE7 zW4TaS-_g@Fn}6-Un~DN9y7p@qu3v!p5V&M0zM}C*2e7@K$soX@&!aC)vTAY&Yzl%Z zV(Nl71{Cq9bb(`Z&zpfv*r?BJLx3oiz+390C;H2P@IdDPgk8aVAoGD$gz$Fx&giZ= zeLHkBGyhE+W&vr?S^HIFrH#k*y#mi(xlXqin~0_!2`?WtV6K2(O{MU>idis{wRze@ zWFa)#13Dd6SQ)jV3Q7aWj@(Aqj0oMtN9@!dfist>0$Ti8%{r9yB=2 z;QMPyrC38cv>Iu)3W5bf;&J$GFz-ir%Y%lO>aiKleC*Qec|aL3qI7Fidf z%e@7wp(bnK?=$qSeC`?MD*w|Vj`cqr;@DZ}{yP~{AG0Q8{T~MXJNTrYk{u`vU_3VX zD7BvrpEO_m0ye{skEoqhd{-&)274p1lS9STQib`%S&o=AFR#{iPIp&adZjHUmGq5| z%h^^9? z5$E-*P2`aAyMzdpR&aza<0=PzOFozq0-*KR%_U8#AdHrHsFM;LJluXo(ejjc4h~)9 zhgTWDL99dSYaA-M@hi$`E(NWdS}x>SDM{^*$-f3E>(40kr{l1 z<`h`MJ;|=?i(?IOw{O|OxS#_TKJ&1n|7-$}BpE}8Mif#!$;S09(M96v{-^|iVY%GL zsFm*O^h_j&bs`%svAy#Ebn0wD1@d!Vw-?zCtwk%0(s6K%aVUC4B_PDsV!~&qlY@|| zG}JbWRpZUvv#5RpNW;$W3FlUNWE-=xhBsGMTI=h!yJ$Q#A|ATVz-eg;K3)kNP)bdW z5?A4%G#i~G2nHUUnwqD8wksE4?-^tmR-(rTY_ci2%s)tTm^>5^Q9T4yp{VFqwV#Lk zr36FgIGlgl4;-Q647MQ_6x?p8eiIxVAy2>mK{csYGhMZglAUUmJ4odB3j=Kvr}8H$ z5KyfaOT^LF&ah{lPnK9@+p(h+sV$x6K3R>j5X7i&pq36BG=ia##z^BSrhwX|*Q6M% z#2-Q=`_csx3%M%bis-Q>8mcSiqmFdE5~9>($Rtn9#=Ip?%D5AQgleW_e}<3NHhEoe zoo1LLP|0E9%U?qr+jWf|hIBtp(}G@e6_hB*%0|@pHNg%&wwK}`&+R@Oxj54fX2=@; z`s+xU48X=4)k#q$2tHEUD|VnBGp)pdJ9d)ZvmVxtdeavxnV+ z{LFVYXVJHEBBpbVZD8c&?MG-{CGkUrAU}Syryqb zR9QhoG9%-P)2LGxwXMM2a((ws0lEpcj zXz{2TVErHFb5Z#zR^nF0R%n6Z@dL%T=IM-!)_@~9UC{B2Z^@3>(MbV+T;lVLR@Pl9 zJB*8W6t;zZ7)r$bc(8oz5);?6hM!5t^U?COyeo~zAdEmAjjp8c6A|pKN zMGDne?ar;m>SarOt-W~mt$yKpYzucal4}!{d;htbtd3ta0Au@H`1wL6bVY?vrp8E;%(g5#y7V?^G9GT5rg!6_GSV@$1GJMD?@!llVUw9ZhcnnC93)X!jN z8WVJ4%=#%kZdB=-zw!11^4JgsyforG!)eth-(+U`*$3*fu*U5^@V;qpJT@K=nmZUp++0}Vv)zxuuc zbB}&HCqBZV&=~@~2;b!VQ(GTOx~uAL19nYO)T7=Y{pgKv`)e=U=o)Vx8d#bZ`e=*t+7Cx1@r9x zw!+P$a4e%xJ1%ue>lT+AO^h@gQtGzO^5bfBL{bMZa*K_v_mI4fKR`i0Hzj4~)&c%Q zv62I1QYdOIuQbuh9z7iH#i?Dly=R_3X7e4z`B-VhEZNy+!*tGE^#@=t2+zpl>SoIS z#yLU=#XkK3OwD5=_}{9}%Fgm%9yYrF?qK^H>#@Q9jrCOP)csG-;ownc zEHaPx`t8w2(<*8@yj zk@=Orig`FrSZgeY*fIZg;XbX}rQ&+RJh``FU&Y|1Or?YxXO*y4^jgj$O~sX=j1Bn*S&`#pU3*|l?By^#(X*si)( zfTmtN3&SyjG!L#at-M#%a4jyY7{}O{N2;^@WEAkyY~|BvmhclhU0Zt?0mh|dmCcpn zMz}7Y)D$MVw#1_wr2*EUh+q481bMZ3{;E6CrBnk73$566YC$qhULNlQ?7?!2bJ?MB zz$)>8?D8Z=n^@UIBs;#5XpvfJ@9JW99jBi}dG}VQ0U}%?QnD^$!bzqlavxc@y{M|U zr5C6ke9mdo*vRfI# z=ayS+gFB`CnqS6*rd?IF-+s>Kv8_pIrYFv(-tMzx`}h>is&H%FOx&hZ!^>1%0JtlY zuHmJf$MK(LPUvUYkHdyMJEs>pR*=3y#Dvy_k=4pwZCt`<_<(^a!mt;L@5GF-DWNed zW*+}$tG;N2;5+Lzp@h?XC&6z3{UFgL=kB*+pO2jgv7g6JPmY@%O`NH(mF=^)o{sO0 zvr9vUjTm2F*V&&opE;ivnFzcZ(vb(RaZGW&R~}H~m{v>>0wQ`aiKASfb-h>Cua||E zg>SVN=KOzk7*uuWpUn^_yj*=b8{(GPXaI|IbhHklxEB}?`dzlEvKSE)#K_#MZB3Ei zXXcLwZ)cC#@1IXk&_5qfA8()g_c2~S2WOvOOLA=4-s*PgZAth)T~VRF zTH=M0sLo$}-~7Cm*vQabssdtX>SSf%c;+kdQ4WR`?cQ|?P4MTPvltX73JAwq&dKZ9 zxW1ie0QLA6T0JJp?^14@ikbKAIYcDq^I4a#J?%)%6gRMa?E3|s-iu`u>XH+HH{$g=?0gKx9MTVE6YKoOqMTs<7J8rJsNy`s8r{NP0&V+#gzaJXgaXXJrwFh$ ziBbh#=BFzGVn+;2H@1*)`X({Sedhq>%;{!fmKJ3($=OP)OvL@I#GoJ&Yas)`h}75C z=4>DVqrDMWiQ=$emCO7pizcYmg<%6Bemo_Db`)zfsMSeg{jEq$guxoDF#A($Cv5y) zTJXP7Uw5!>`oNyhTz5+Ev+lZ42q`3iulll zoAnH_ejkS%k(wcK7j*VG!qo$#PUvlLge(8&B^qH%y#e`bu%VMmqC&2k)n;fervz9k zp`98?Mft_tNHX@uzl}Ix@%Z?0u*8m%Ke<}_va;uYGmZmWMJ>dM7KQZ{|D7&POd?;n zasU`X78g_G`K}rb8kaR%L-5;8f(Xf)d*DF9(P#gO4Dwi#()C}G7>>2#K0tuF1u;3Pb%|KoJG~*)9zv01>QF%3p#$$N~VeAK&?xRtdIL-eCNIJdQZ`S)?}r z(>GK+7FL5Vh>?W=Ef(Y!m<)Mj0pPV1Lz4;+r#A@2wk@vUkW3I#Ny3pslwn`m)f)Vf zwvVqbA$1vW93l0%Nmn^6c$gzwAe_EjOxv$e5iW7ri7e6YfU0+tV&9c}TUwMR*YZdm zJds$A^*RU;uMH?eA53eK@I03uAG8ukq0v8QEgfzbD~OUV97!MPAC4IpjwleKW9XmH zSmo9v=nHf;xi=$Sfhmx0n9}1pM*steI7eGCJJj*^Vj#k}x_-ScbcVOMdsmG<(7>S? zz?AD=d^+Nb;7m0fv{ z2=(6jydjnB2gVbZlK|}a_x@eOki|_>Gi1Zrj#*N^_fxsH=jld|uFA*GR_VI~USUar z?f?ybHDToEBvvtkCwAOomIp$`Ca}v!mjvi-vCj5sC9viKLtvk)5g?!uSrbWO&{B~N zz$K~BKsEx+=)gnwIxtLy1%0KHLB*WFsiMapHbIH**IDYqWs^D>B7k3NN)^I$0-ESL zblU+j0LujAP@5?G#x_de_jn0BgKCLp_{Ji7LTSU!r!zV~@m1#lIv*0y zW%46o@4obWz0EA`jrEY=(Hd6(3m(%?n<0&gP~)V+hQ^{rcsu&-thwmnoHr^9G=+CU z)1*#5+zjNwVY9yOO^HJaY}d(90y>WOde*{UvXQ0v{f*8A4R3T7=w9RpXgXeb&zbjc zEl;mC1~Ze7BE&ux1q%lx03$}e)p@8Pmy_cp;%hP|!)PMop8N`;EKlgP_bFsatUP*g z{(%o^SQsd1Fybhk?C?-}b7qkJT57n^fK^tBWd<$0uu{jISBRrl&({?=Znjbv-r0H| z%4903Pd1ltmnm18BT1&xqVU zy?(_NfvdJ`{NoswWNmVl*h0Q%-PGRgJY8qGz)-Br@7Z1So}#nXY*vOk&tbPZD?bX% zZ8JA715{yMK$;dj+9@@$-#CQp0I0DHy;?5>c#*=~qBg`|2U;;I(54=2&s-CjXFUbH zM>bGoivcmRk5%rm0F7`D5X?{;Q8*7b+g&)BiS9Q3X%V_gfe`2-ORlqs*(lE0i>*6% zv!!?$cf|28y8#;Opo5YwP?m%IQpGErKai;ji*(&~Lg+V&`2_caMw{OhX%||#k3uwl zf*$`N^=Jd|IZ=adI-vG`REWXd>d`dz1OCXPiT=L_Y&JUf|A1Rz`EPSV>SNJZA~0PS zziYK(O~be*0ARodQ9%0$`WE~W{O7Td*B^Mjs;X*b3#*B{ypkeyQPh@^d|`N<-T;Jq%n(3@z|zU~*5c(d_*$Kq51przh68=Q3s$SIvFw^6==vVM7Y5O%9B! z8X#57B#>neHs2h<@XlT+#Ff6UhZxZEZ66k6%r|gsu~*DZ7vMl&JRYn<@aeBi?(|6Z#!1VjZTR5 zp@W?EY(AG2^~0~*9HjxT5_WvBtdh%pC0$6ZF+~JUG@m4JjDYuw8@p&!83V~ZJYQ%k zU;R&#e12vbdAR*Duh{2UXy^`E1V?@z=XfcpebW*jAm9hP(Z);ez@g_>zbj4#O z&lowwHI$b*eOoLz<3Gd1R%u}#o!kdiY)k8#XzW z(R%~+{g>6vl$a&GY1w$PB{`I2f5`Y*3tqj!g&@V`yk+8I%n`^-buTBO9UmL=@mL04 zN$;{FvERL($PG}~dGC`&Vw^*5Xm->{R+TzZWtG?1(y7tE{9KHz=XmYkB|MC>EORby z!yVA8xOR2pPy|fV2;8KkhYD{>;E33rgfn9hdUz+kApA=~!Uj`hP{O-jnyqLG_gGt!R4Hj_uT~S#d!p*+xA_8vsn0M0sAQ ztvtHHjjMI&m(9uvws$kt7IL*=6a~%qVvs{x_Pm3g0-Yp+o|10?YVB6VQ!OJMCNN9) zyaxw}f}VG!$92I}8QGbRkys?|{#lreF=F>AFHjJ9-KC(g64WL0;M zIF%&o=8;e}xwNS7$PTIGT)hS-G?~_%Bz^JIXzuNi@#wXqhRTFykKAI}TMb;2SG*k9 z)03ahtV4xRrmFkB&?%&A!yr3Wj_TW}cf)@(m+k6ed{?MHRReVzUf-8d3SE4@j;Rdj zPIrFsaBRBt_GwKLd`A8?%s{?(E*D@({?Nvv9f;rWjG{+jLS4Ylz$mcXMk%jCq3kW* zK#8;nT`E{zV{Rpi7~(-fq`(`NaGr$ws2nV9U1$AE^+m*6EoRV^f^5%A@l;}oJF;rA zP8y_#YJTUcgr2w&jhmrO>_n_5**xh5WUOb*fD7T;Nr^`LL?BDLJHg{T)0_0InR6MB zglZBHZ&!0wgmHr`zauW72zV+N1=#eMZq*KD6y9bElRpF`tmF1D&T_Q!-#7_ zDs>7MKPe5|Y)hmViumgpIYXNbku|E%sW#Y@17o-JWKqYlb^@d-7o1WDn9QWDTyISY z&!BLh=~V`90eVD{a?F{y@!M}8PtIaKB>V#xM{Dbm?2DtAQ3lcbb?FN+csjwf?aTWRWFTaoou z@{FdRSB=+ogq6fYGE_UJS^iI44Ism55`YiS7CL@vue|+Ks)`U6{Z!}`k=-!HF9*DK zi%w>j)H5YbPFhX|E{K;v5T~abdM}lR2rDf< zRgDd`nD$)OkQU-cv_Wv$l z^P66^*gtR*qmx0^&9_AB<&sFI6tMU+kkbd(j zuAmCmC9U$U*`1ZrNlUmoEs3cd(xow{cNYp4)=mKPZ3?ag{kGUNrt$J>Hky3;bBiMo zM`4C^ML>@J+3%>doULXRIZj^#ERcqwz`C;LYSyAvHwYp+Zh9%DJ2P2N1BPZ0P<5~b zX{e2xG4a8ray&$(d{22nNyxdcI>E9^r=PuAj4rfLV*bDt{|F%o60J0%`lMx&f1I`k z?}tjMiyVOy?t?SI_}W_0ou=iO!XpnC7uHs!oTIppIO#Pgt$x zC9U|hD>y;9QV@;JhOO|QXGy8m7zNsn<^)x~i^O<3>gcK(rGo&PyujiL15b^t^a3?s zR!$Mrq>*%*54V@1IC^Bbgqa(Kr3pU``4wl_O(6{GjB5{xHy0~jgV!Sb65*G1b7UfN zx;0)%$w^Ac4-23_Ha^wEjt=fT8@l2lAt{|PP;t$VWDedpI%^de)=ita$&~ru!6ubh zei)<-ZJ~=BU4d!`clB>09jz$Oa|(xDDoc_5V{+2Nh$60f>C51)kE9VNtIpCbEdU~C z#$2v79Uxf#C1EhnKInT^jWO)Ras5#C0>!nBB3AmzKYoo>-vF*KX4sL}k?iN@$MU*Ay@ z=TOU37MQ5x4z;uub1(0Yf87dLUgBBO#5ql^D3z0THapvym)9GpL29TvGpvRjBmptL zuK9?}%mU6!HQ<05ygi5)SAA>?W8I#f>IeLWPm!*A_uOAVvO7rEW&f1kbr0>B75L|I zlCWRM4PApwq#)BGFy?5E(Hm8kK|&o)p5b1IDYud%sy{+Gc~T>Kqk(&9(bi_t+1>)L zYg;(MRpBkXtUIec7N!PSVc(z;%9qe!J+N zMt#x3GyaKik&x#Ei^=s>`1nWt(u**Ri*9}GH!(@mWq4BhWk&f>2Ec#01#GT1c_HTu zK00QnP2FXKF$C@9>^AT(h(eZ}E+3PitaiM8{$I8C zQ?;npzIwS=xXiH|AYNFLW^`lZA!9#y#boj7WD?dLM&MqtfU@40v4FRFiO6M=Y}_n8fNvjX#2WlL3{SL7y0x7B)=3) z-NX16fDqCVgbh)g{>5ZVa{+m18F~N2nY*?|`1SKufmn&{zK6Y=mKx5izTfKL&M2X; zo0yg@pAKA(cm@`xWj0XEbRX~QeQ2pNyLh-V5!Bs`5+hBR=e+DrVz- zvc_@r9aV|&%nKZpcmocRH73=`fMFJR9u9u-Va*ZJkirip*CG91TFO&FS+=JK&M;2r zeYQE#?Vp-3N(tyhe1+b2A(-U2UCh1_e;M5pd3SwW?wBVA?dP*?#}|wb_7$2x)q=2D z{JGmPbGU-`ZC=gkRgPqAUnhpl3UvGXvp*3}(S(Yoog=5*ZCn`Q+F9IR&+7U-Bbb@> zx)zlhZ&&^$fh6HLOUobGp7m5nbkEIf!TUBi$nQ~R9S~XxP>O5F_Q$u;{7U{M4s2SO z_$^0Lp7UK{15I9Dqt{MeT?WqH=r0r8Rqp+vO=yuD^!Q{?j$G17p1gn*Wr_++}&o9=@|pJ8=$GQ-|fjXSnpg-*X6+ z403|b(fWgKl6a7IgasN*J-BOGH%kSwG!c2QK3iU%3f%vliTA;xR}QizK6his8NA9T zF?>GTv`=+fQb~C=$Z-^!IbF%JVFAuaxfWnkiUXq!2ooW_Hlow!(p&FB#~#CW#3Kz( zRtA=We4r&Sz?bTKA^$*7i&M+K4O$D`Fp*290P9>V8A7^hQzLCCH^$`_%Mtf9K8F(; z4^e;lVKE3p4(AQ#Ol_qvOT}1jez&n0X$Ugx1;<=b%Og8QF~M4n;dg2HdKamUon<>G zW=uDPG6WAuc_-ity`N%16{>Sy7pn7}GREQ#PRZ{&uJ1a|o%5bdjK)G-2E?K7t!;0T z6P+{~a`_>;w#K&7KPownS-FWa)R!tZKMi^8hFU#5V0w8URpxiuz-&lw12Mf7rCS#x zSbqUQvf&I`-zj5v)@;F)fy3Z_A=R^T8XzwU#3-)6hB)=P)3cRYyCPRD;%CrqXFPy> z2Kxy9|1kE=F|xMbmTlX1pSF$Dwr$(yY1_7K+qP}n-KXvD>F?f|$xY^)=y1SrD$!b{4dl-L zXpC&7H(bdG$)SIR#E=qR38Mvo2Q8~E<0T4@KFEv3j1%oI&z))tI4`9oC$T84s;O&o zEjrjsLOVk{5UbA-%d5Qr)pkx@skFeGg6kcu-JXoXQC7M-9TgSw$2;E10k<=l1FShm z%k;9Pe#&@`EB6e9p|>&LfXh3)>tpxM2&)APb1yTurzFp>Gq(k;jpnIw^=Wb7=^H=!Es|!WEMcsWtJlqH zBL3w;>{fnm;Q1e0_fPx#k%qbe#q8cayAM`h&)GZtMrKA>IKDc+y%)om`+((9hpVG{ z4Q%3+1XDWKbso&W^T1-XuTZsK4ru!rXNL4KESV!1XF=d?0h_LM+QZ;eoYM%0@wT-) zU(O$$bD)(feg}q~kG46{KY8x3oLIs*V82TE2L3+BNPp=0p>)s_lmocDyw3c!zAwsY zT0g%IBZn7AH2IZ|5L6lZ(QB1xUyZ1Yj?Ty*Mn8Rpf&QJjL1W@TM0mEAVz0FR$?A}r z4z+U1NH-4U|8#TmoM-v^Hc!sqIFIxv_Ai4Da`FZQvUxfU)!Q@_7?RsvNfmVnNJi38 z9Mw(g#=e81=BtQ3&Ix;{SEZz6LpSwFCNbJT!y87H0DaV>8I%EeJ3N^kGZ<2zL%jwN zD?j8F&C^DV9HDzmoLpNcVM17TlebqHBI6H8|9I$Je3ni!wY zCmq%xSFz^zz=*L$Lt+d2*nTCcvyP?QP!b@YjuTmWZsz<6!ENW=(4cHy@IFLL;NF6s zvUHfsi?)!8>P&d{zL0;0jau%h&@~o|)?ToSbZZ*QfYfZ%bfeM~qDotJ8v_kqZP?^6 zn@rokOp#p6XS^^<0JECB3zfIvuxj55=q5Q55>by~yHZjl>5OE!cCaW#gQcLUs7B*8 z`G~tDEUE)@i`LjkfTHfEn`<&_w+Y}=eM#fD;LF9LZ0;e=GBu4K_&@~%Be03 z$Sc?q2!ASYwiNx16v=H*Ua1eG(j+1Tzw8N<(AyKyS%|V##p9%kDz(XkS2T1et;E*0 z{{q9YlvzE;C=|H4G<;~>XctKc8*)yhC{c)Ia&5%84JiFdpcHN!`pctKHt_bYTn6k^ zKnWPfC{;5pJRw{za#Ejq!cS#Kd|jX<1N?%WSD{jWlKH^ zfDf^H#+1EW7VZdFg+d{gIjRP^P;xlM+hPGKGXtxKKan#Jf$$BUTyeDS-vEz|_5ZCx zng7E$sU`KPAK~jykOjptXnr`-BRB|{l__p+3$4S?D5TwEUGVu6zKG=9)F|eF{lE&? zh>;0P{6k3LgIq&qhm7O5?Gs(bPBa!7Stnpgaf&VSEV%eLzd`{^0x*Kgz)wKd+r7Mm z@!9%9kb;GDN`a}YYlGM9ZW%a6`zclLQy<|V!=h*fx5@^$h$5YHF4wFV`i8k@tjaJZ zkamch_4l7wFJjC}l)m8+H|(A6&YvN@(y0Wr;eb&TGJ*cv`^YbEKKg&+DM^8LAMSI` zHjZQLmx(M}$%NergvBkR(kLXmjt*}QHLT5gh`Fd3~eID`I1l-P~CQ2N1@Tg z6jywBdt?PCR!*8#Y(Y!q*|~=-i@P`pa%;~)Yy$m^L)c*8)(5Ijjvhi^N^t>=Qv zqI%NUr%m36c~Xz}i!v9k^Jh>8$_N^*dC-se9_XG|W7F`2g)9=3p85lc7h6_sck&d5 zJy4UxQ&vPwNpl*#y=YB%hp;kh^+YQ#&g`*UWNOA$6H9;q2`hnfLBQM`(wdDkt?ku^ zKypE>4^TVZ=T>c@vxBNWy(F)i(`ND_&MDqaQyAD1LrkDD1}dMg;Bw)ISqnA$nV@>P4kJoN z96DdN^-wpL|K_|v^=CcqEYMw)L$|mQOEpWZ1ydoBQgSk?i|UWQI#gPyUUkvKrzR_n z{bYG9KU$o$^YKA-&wuDw_lV=(3HoJyhnX8R1?xv{4Z?gdpGmb9AltMcT=&b@1*h&BlQE&+qcy3N-|UDNv;|Jh=XVR7ug#%~^ey$v z`(Q(n(x#%6OTpn_gG}_u_@V=904D|peS_V8$)#LJwDdw}nxzND*yo)l1NlsROtPmh zbL0qmTUeFyNuzYIL9msrv)3gL7oO=m=7j{w37{z6-mo%?bYXz4h#}XcCxFa`Ne;E+ zKCm9BdT0Hi&8&^S6wjOgwkyZ5xsIP&j?RMi#2+OamM^FG(Sys-p3upLC~582Oa~++ zUMd6>Nj**6XI0DUyy+tj#|^d!(}^t>Xa%QvjV6oS&_F^hY$gTaw0nE){b6TNU}L#f z--(0u;p11*+8B;6E<}AK`yq==Xh;;X?o#skTbQ zjDCJyo;XZ^t<+IpK|=kcRHrr^9(0riG-hux&DlVz1+;5-Os2X)cd7u)qW_B447iO~`9#ac-~r0U}|Ui0>>VR?dWvBgR0 z;ZhPli-zx{dyN2d$X?RR>%&RVJ;aGbp*fZ{@78)MXzna$6ByOvZze-Yv}x)xZ&2kG z^CcGU3zu)nhv(I0Fa+}TT1+W``&yt^T4b+s$OBn)eFx=6K_U<}v|sJ^_D?~zg5FhE z^slgOqp|p%#b)q{e;WJKtm=R~c0%92=3M~0kp!|zoP=h6&0u490Q6?q?)XDY<8)=w zC0^-WzBhuvj zK-QqY#qNHoSXjcEqqcr`@7OsvR!Bre8&_4)>fKD^!G>h+X>}9IN|OemSWu#>_kp`4f{Iu2*c}Awyk?>F)X~E_7z$THU)0-r622iLuexdK|z{-nd zNMed57P-{NO3+G`Z>uP!tU0+yy(EW;e)Yi=8jzEVIm&WtD-b3o^oGqKQCg%D+AXv} zz?Qnu!S*VXl98s#+H=9CL7(dJy(}lVa#({Y(3If%pqk0hohcAv##SjVxgMLu zpoYC3^ZV%Q6ghf5!#Qf*lRJ!3w;UcHAu~q`YoHV=Cj#844qa3nV(t*fb2aeimY$pR z1gp|wd{vW-P#yIq!kGfb^X$$PV02R36OqCnf3ILkT)EsvNnDQ}W=!rIGHLNmvW(09 za`m}2?k!Fw7W7Tx0fMGn6y=i`K@hb3WT=a6x}UwXGbt7F6y?0 z2o-_d;|B|uOfkqaKUa`2TV@HlZ&BEk%>&|Y!^Wrbr;&d&U@baNs7a3W;{_PKYdd$Ic}(SJEI zx_#Ow$D7%K@6qY}{(Cre*|JxI&f68)(~TXyJrxsNQ0VgDC=HW>V8J9#Jz}R&NBtvP zq)>OiXTpa&F&!DW{dn-ScX4xQXAkk^y~LVJ&^~w=DUo&kdy_rxKq-#^Q&2C)TvzX9 zZ9KDs=bcLPC{*uOFWGY8ZXMS`B|U+!ZH^XDZ&#zXm#L*#xt3KVH1(?IhDP9N`=bB# zhld+}Co%FPfJ9SB31uyhak*Bj|K7{UJ?K<*VCVZ*Hjs2buK#SP!xg-R@dXFfyCx~0 zNP)~wBPtu?<`_jL4p9i1T`_u88kxP!ymHhAnLQ8jt9BSO_~zv1*wh0bF2-$LFi{Mc>xGH5F8Y$BltkTQ3?t)GjgMh?=ew$b@{^CwH^Gf!c=;{BAK4 zUp5DhZsvHzqhaXl@7-&}-s9!LzTT9q4&E2zfWHhn6G$|Ad(mIjhWpo{wcATib z*#YFwHubLrBl++_)_9I+OT5-UEEDJ zxg`l|RsC||x|4^dfrrn%+ci(jV)9#A7lvKH{={@)CDbuA%%tewI)L?q%ur`h?83%D zTYd5nLo!80%9-0#-(*5~vHi+lWJ9iB>&@LbXOMBIn25fIdsbJva1?aXQ(`FM>%-Ep z7>Kwg(Zygep~-kHWxwHB)h7aixy@RRzAd#<)PED#0O3mSE}}SQ^+S%r8zxg^jxGV! zy0MYb8y#{B{|Xyaxsp8omX&&49sHJg-KO6pKDyT!x1C6O_CAZBjTiNt`eM5$#L&7Y;?NMNAbH6Bq$`3LQ3Hf7l=J3BG<@@Q%V%AL?+Qn;*ftqI z1_W&>H8wVghtXQVAP!=aB0H0?Pu`)845^-W`e2&F!*k5_@nO7yc>;R_AfeQr5M`vsFZ*INccztF zc+g+rTL8!@H>jROsip3qzpMrkSPdYs83Lm)`bA*me;&hHn+~_}VfY zqaC6Q^874ueG>|^iaRS>SQp6e<7gzdk7?jv)M>c9@T~4RKYld-Sw({11_6v2*k}QK z@LQ6t{j)H(3m8d^vF#1h!>bV?Q)Ak-szKD%=?%|0{)Wsyi%Ib3Owsp|Y$kU36sO;w zrp+GqjC%7Ff|IA{y`4wHGy&ujHnI8<-&R+p8RNY+>M6Box&#i>sz-niC#kX3s@`HoN#^{Qy$h)T6O~k@h|CdzJu_Q_*?a@A#IOW zv{Q6K7;O+GY|U29k9~5Fsx)CdB04zu9KrbClNjYcy}55*I0(`pc-~(uo|>P_k~D3n zBQS+HVi$`sX&$B5;utvLh!N<;BUma7R|h{MxsLls=aUpejS%F{K^@E8mH*YPnGj_+DSpDr4wh z9qi4z=G*s!l!*xR!m>4d0)|S@*WO;*+c;i05rq#P*WO8zir*Kd*qUg@h#?-i;4luGT=o&zCZCEU2L3HXw zutzDe{(4H5X31L`-S&lq>yc^0)_EkFB0gyRp-3bkKJf&!OYOdNL!F}MjoW_IYHLds zG|z<4aC*#3H)0#YgL{e`0Xi29`w;C@_A^qt<*`yvB-AV2$=JH|+2;|Of?MTZSxWtv zi`=iIrG*WTta+2dOhJxVx&{Lugw#3OEf!h-# zR=!KFg}9Klk!{4F+PxY}o4m<-V4#b>6K{oPWx(z4CZouE8OgS0%yRGYs|XG!;lP@T zui+5DIS#dhkC0dMt)V+Y#klx+Tdv?Lfh89DZnM7v&e_b|`8xf!BzM1=d7YcLiA+jb$0BY!OI{^xfWk!(c<{O- zu1}j`8cjzTIFZ$fx$&T!G?7mpm{=u3!eTD8Xhj31^J=YkAfy45sZz40IOJw5CKmNB zP69O_r7|j@j?xM}hnn9hd1 zv{U569(zfTdTOK*8z^R4zsOwB9{=FZYD;&KePUQ|J03ytCc|}{1zDer;7O-!e}X8x zK9oItz~f+z7XJ&8F-bCI6umMs8kFzJLnCQOdySA?U@~fFGKL zZ6bctH2;3A{rn0k%C0-&-js?z!@(J;7y1-dcoSd#hf=7inDTx!H#M^xXJW^B+5!77 zo>wyOs1K0bQg8Je^)yL~(Hsy_HG4(K;8}qBbmesXpgHOG;?d0FIU+ zOiiw+!w+>oI}B^SEh{ajJWR7XZ!)r-M_gB|Y{4uOc)}|E%c&n&!mOJ&SvEu#h5Z~G=(?Ifw3?w~3O^PGw z7WLPYnxrb~HwbA_GH65Jdj2{grwN0Ggf*Mx!g%^oYV71tIThLk({Up0vLMCYa`R)# z0%yx4Rz!E*^?;k?dP=i#xzM{fcGB%|EefeQj4+|?3g647gDBN)$}J-{jHd08O~5d> zYIHXTo32E+J%Dj(6@%7YPKD!ToIAn;M}3{Ku*sZ%R<;*m8XXDME5;bw#`HZ)(cMtu zZ-z_Ccn}V!-kTF{qddcYx?as7vbdH^%Vh~GZL$wz(+f^5)oMda`;Q%mQ*`qg#?9Q((ziX1OSO(|*nYk=+{?w?4u3Z^ga(o`JO|B~VK#!ICBs(%_2KJlu zO)}B(N}wk!;z>u!NPQh3FRh)2XpOP_>i)OLq3MV1VO zo#^+6h&dls4dl4^%vQoG$WEYC>ee$U_30dnk@H^)EmMa`gXsjjy%C|>n;T)qlN0J= zZ`CcB=qs`eAvRMY#G+hjbnpfRbvhi5(xu*@W_kgc*L62nFtfcwOPD5aA`6Vwan{dV zItb&zM<3x?&kDAnSq!DCUNE!H8aJook{=1?#zK~4rxIV71jc9OO~*o3Sucs49ck)> zL#0?~uvDdUNVeynq-O(s(XN)v|{dQQ)n? zip-|^tL2|YH%nR8#9K3jN~TA~;P$(zMP$brwqu9t6~tH#d3ooDWqQJf>Q^aThE5WD*p)r@wBk_k@;x5h;F>7C*TwNaorz-z&E)T#yVLmkf`!IX;{{ z2cm6Vh;K-c#l5QWlQ z|3w*93z~Ii-&50H^}ngY)eO}B1_l#Hx%xNE{GWk)|2tEUf#E;2<5)_aviXT=9l3Fb z>fvL_7g9iy12J0=|H)}3_^+H+$Df?m_a7d%k%rAC-JWS9pkOt5utzMMcjM0s&*`4~ zv)j5Crv^^u9mq6Hi7oIbEKN`D5z)df0E#At3~zAHbrUP~NC8f1QrGM7XBH^k zZ{Ne%4uE&A5QGsie9Jqv3HQh(onrzTv3G=;iI-gU5zIpzt4#Cn=d+lse?SxGd$^eQ z-E;l3!*V`Kc~D=^0gCy@j%alV8=`RapDa~?kR06*+Ya7$^@^%$>F7Ix==n(@CQ(ck zA#c6raZXiSRCF}-sA6hP&Ry~Z#Qe%l$46H?miZ3KigD%>{gf_!6Cz7^QglqRo+z*CRdfGM2AE5s<@0-H6#I7 z>*vn|StSn|mE|8oyfV8YeK+46^R210BL)!v;Pj;eLZC+hkx{jNQCdt|8UCCuZd)=_+d=dQ^LgV3J~G%WXo_#O5Xe8 znMApXGulYbBENDnR5@XY5~v^882iK;GfOqUT~E1;GUIaKX{g)~?t zT(+VR%-5()TcA!@LN8IYd`ETezhUB*v4pP;3F;T#-VxUz+mYhX2wRap1!q%Eo##fv1N3-h2T6>?UW$OCoL{3^yL2iZMw) zzJk`1K6n6eL$oNW5I9_s>#*3H6wwEab+v4 zEBN#vpJWV@aegw)A0SabKN%ZNS&LZb{N7H2)5{X*AjJjXi&Li)t@Fad_dRbpMWJK* z4vvj}`RlY6p&2`Fxeb>P0b1nMFzaM86B_e7wXGP_`^nYL2h*RE8p7oZ_%CMa+`pk3 z>%XKXG5*-c{zsLd`j5DT^~YrBzjWu5f05NNR;QMsAC~oOg=K}~72&47d7Z@I%)@oY zq7AsT^_mjNK@_jp zF6hE*6dYWH(G{>D>So^nr?`Ck5!gZ3dfsaKeuCQ)Jnpdu7SXlMhqR)4A0oASNX5SWrW|JJ+Ex_bb#TCtD}>db^*aI@b0*r1p!uM#vtd1 z>lNSRl+bnXj>uP3g6{&E>DLFlvKhdI2Mk+ODLt=5tBDb`?|8NIT(cl|e^xYwzvhf$F9b4kmM*{kho0ru2n-UHxb~9rYaw_} zQ^X1*@9{3Oh_;PoWsEE1t&Oo@arm&#=$9>GH%9PM$|)*P6TOrRK~Sa-J5j^$@W4gm z3Zzs_Q7hT9EyWNhYlzg=L#o)K{#)^@k`ye+614(VxXsYVKit;~7UyN$f_THFp>=S+ zj2N+f&N^l0jYH-?x{^}*P4aH^5&)cpKA2&S$f3u>XM9E~*`*~8g4Ixc;A8pHCV>X_ zt#d4}HeI5Pre1)v15N206sqSuH-XlL@Ug;Pet~7sk)jAJNrelhykQ zNuvqTs}$xnRujf)%C||Z*PulvVUaaL9}VT70g0|lo{lNHT=Ikvri8NSuLb8O5S=Ls z6EuH8!2hO2(t0wCAq1ZSqU1Uli}XKvcSp@bq2@^U&0c?DvWeV1o!yqBj$#OZMp8wQ z1m*|KoaqeF|308YlH7khvd>VXRo6nFXdB`RBjr%){7IirKJ>q9Tr$=ibf|UnQ;Wv< zHZ>3r9DjQzOa@-orAr3RjWQ6|OJvHppKe#12JhMaG51j$Pf4EL1eLJa+0JlrMW9*= z^M2j9%p@4+7DAX%qzgq4yo~RG@!LP-lzVHoRroCTiF6$IzyRYS8_Y_%CTqgLEblH} z%wHKFX>jMt!35(Fgb6zS(bPrj^f)h8>ae{`N2PdijVLZ!wXsl<9VIH*a` zH#|})_}9NdCHucDjCnK0Ap#9rZ~2lY1{1ynk6MNuCg9K z;kJ3ZH6#)a1|wsv;KGPL00*4XiXU z@Z8n@zaKw3JRQq{JMPf{4Na<;gzv6Sb05>b2?zrBLUcW!6NG&nOhf5xOOBa3#&Mh@ z*gKv)`nFDB28&pFAe_I6i?L~#3mgm@g|wM2Ko4a&=H=cSE&x@b2O``YS_W6&e} ziI=@~JArr6Uac`alit%`a^&e7IXOEa)khbKjzMuOA=}I^NI7Y?8*Twagq1X4Lt;n) zV%u)JE5=A#!}3gM)nx*OBOfBtRlAh{cbxqN zY~N(+&?}!QQthhYxa8nBHEOVH?$`V)y^F|@a}EPdhx(!-w>mqbB9dg+83*+iA!g5j zP8V1@p4bGI#cI7Xwvk)AF}pc>S$)>8MS_0Yl02HrQj=anrmw#_hL;U6@oH+8EX<8P z#*Ne^{{l`Clg;t`3+}qYa07?Krq+HlJTmGa*@Fse0-d$ZB{9onG4yu}ifKC9li}Lm zIg=hD>@owMD#kZwKvvm)FI=Q+qZ~AOLN0SmOvY=9q2h24Njt!6L72-dQj_N1idh@E zL&h4q+f4poxi-CyF#H&2Di^csD=|IU_XYruo5%Tj07*PoxLx%xwBCkA4wc%mEufdp zW2nC@h17iKmGObipdU-2?7t*H%ebYpbixiSG0%rmWeVluE8G3!zvT4i;|He}a&u>r zD2@E>^b;^h9RRnZj5OPBq&aUz=Q zRgkcyYe<(RmX#^3BTt5vWU>W~tM(@u8H+ua)7}v=%oC?%tK7n=vDE1~c2t*38S4)@ zv*Ch!JpyQv4t+BQ@L3+JeOX{}|K$t^{Yh;1psg@4Rw6(pOGM-*fTRA0q zCTAf^Nu*pJlIJ0N2Jg6#s$eT4UD!x8)O#5HN_J%kc#fFuSU|axShcsWm5r#{Vxj2d zua?@`fc%nouQ#Qh!E38fJL$a<*1|o6syq7NbVOP!dmqMU?y6n}si(Ry#W#JeqEhBV zCrb!6rk8bPn}0rLe3ib+_9h9A^{sX6pH9`p)8+MS8^wu=Q`RVM$rklxj`k^H%B|xX z`mn$BNkY(ErlhuUS%uQ;_a8#_30-9>MR#ly<@9(f&cV0mj|9IMo3^5kjI=k$LR_d4 zBR*K}qMlK+MV}t;BR0y>=ha4nD?`RhEufd7p{S{NTp*X{yN9-!)ko5dc!R4c+RdEQ62f83}ZqgP)y)E^8&!cp z1S@lH?&3Q%DrkATyYZ>SZAR@NDIRShtG@w-=^1qX<+j7X{y)@^|6g4U`~NirV_;|e z&u&Rq8hti6Y)C(h6~rZ}2SkQZUHOj-)NX6bP{aH_0C;>qg3NRV0AzzZ5nd+y3M>CLufJW>8Wx;}>V$L#Hl&Jw5L|O&r zX@_tRh+|rTy(bMKPwLO6+{~y(s;M5h1JxhSQKAeI$0y$WL^Qgm4C_*82O^21%$T3w zj-&BF(JnPCDZrQJKt-%plw_RZSpS4Hz*w!o*c|Xko`-s@Qm_iqh=n1aXT>A;^PaP2 zDu!$folAQ1aq8=D$v7ispS`1uYo1~lc+(c%VYnCN!R)j~pS|#q2A=?R27-Y2saR>1 zHow$Zp^-unY<|zcRMdeP1XZ|Cm$SxTky!K_%Fqt7P7K3bHEyT zGmx@?Q5iZ|@S|k_g;!?`!9_J@M=aEr=gCy46>6<72Ec;_YD}>1rBHgQV5V0qk1ML&b!fb0%AnNr>9{R zWApsYn?nb;jhi!#qYlc}$*n_c8UdZ667%iW^Kq=_-kI6fO6kVXqt-tHU73#&%QiI; zk*vW~g+~p(jx{{+_4U_*f%kVR4SYz-j4n)#=}pQ7f$sN{4VbB|Y3QB-M~9luy64jJ zV8zGC$ER2%g55kr+#k%0lvAkXlW0hw5ovmtGA0iLrXBVI@_~H2#v1h zA&qWLR6DE1smP_sIhb?7)xd`sfbKBQC2+&okQa@KV7itN>vW+%rQE|=}t{|(|68i zqgHpvhXKZRHjPg^=WWToZg5VGxBK&J##+rlPj$D?nGX-X%=8J_fcU7xogw5XL28O~ z@S$u8D^noF{H-`dzOA>^$iUHl+PvUJR#BoRh=4!Hp#^8ljqkz_K&9umOS2k;kvgP@!BV zYp^Pv5OptJDMm51v`~f7$~io8T(K?%GR0@DcVLiYUZuKS7$Ah`)43CaF$AtwxN5?P zNN-;!FDnIzi8Z!6mlKDTH0E&{B&U$XXlJjoY?{Ce0U=<{k>lqtQ}Qn$OQ?N+HzSE||x5HhlSOO8v<;9x@PDnEn#+62qODev;K4HK@U4c%^yZuTMwP2K0f zXh}IKiA-D83&5j1KSMAMItuY97swEXgO*$*fui`+upN{__>3{s9o)~Wo*(`OTieq7 z^7A14aVq!BXZiQe9m%mBjtDC)?RS>h(p8F>zu=-D@zwWYoXLG5y*%e4z0&&z+8pEnHzQIPBL zz5RJBEWzxF`#P^cIrNV&_f4aZ!mb-Qg6;>3-nS7;psQO<|3fw78SYTW-$B>icf!j1 z_n(|`lE1ckYr9WA-QUd#YpW;Q6PC$X6`&Ke$&@KYISaqla^cQ8hOPW2&~9<=x$_1m?>4&? z)6-GYv7=eGwsrM;*kVuzi)RGHgV}%78LX*x-WDGa@*dEXg4wbfpSRn2YJ9^o2>NAWCnhB=)lf|(^(%P#KPre)O{$cQS^lo+{tUCq=a(-FRXYO z`gd{mWg=naIj#01D%m5ZPR6q#17W(GM0LW4+;4n~CV;i1a_4fhTtG!rhJ>6)+cs)lxX!esWplZyy^8jb%S^>195T%!RiB4mq6a?h~CT6$6ZP;>ng&bZ04f<0%-z zX0bYYoQwkYK67G`>`TK`V%;56VBmFM%<=NmtZTb%=Xcd6E$y|$bybIo{Tv%k*z=lh zloy~Ui@0tMwtDK^O!y$e@)t%&SFFcTDoQP@CV(8#T%GKKmEw-4uq@}ub|e!3FR%yo zajjZ@Bc{1lPjFUk?Kf($M#%l?m#$ zB~a1}K?@ce{X+&XVpq3r#+m0spXr27R8#9D+ioPH0h+@bO8db3Rq`)>ZW$61VbLse zKHC+!f$Bo5NQ|kJyIE}Y0Ys~21fo(3i2Xjb8Hc{#vvwqFoD6KPCr;%t{T$&E` z1eN|Fk&eD3i6yWbsUrKq2U^6h!|W@U-m~oBn}|WY_}ng;mW|$anU;m0WCu7MnPwB_ zHk5z6`#rzEUt32M@UV;c?!ONw3YMH2I(cOgILuxiE*g)0XjnCTx>Z|nnyEy>oU70h zj(YAG5^Vkr#u@%cPxXJeTt?RajP4$%hwv4CSL z;V}C8jwKRSppodZJOml#ud<Zr-O_Fn7qzRdR6pQfYg;2iY2Fxqi-R6rq}_;I3qe!QWF0VUH8MZxF*W`Xn<$YWxQ|)k#cKM?L>Z=_NI^U}+o=u1EGxcINo%x- zhV_>gfZO6}UvJtLdZZ2*QzPOaR)+3dD90{iIjM4N!ik9FzUyeng9-@JP0|Vzh=39x zEuq}KjF}@4_8kQSNy2oEE)xYRTdyQf^s$}OX^JPe`*Y%7bGge4LcVQYLJ~~@9xZyD zYNM~bL;C9QU3&ZRq`B6X^_>yV70d+FeS0siWQRQ|0x)A=4G-{C2{r!21v~w4gc-v?WL@Z95?ypOkNQT-J6X zb-QMUFBI#${tmnAOV6{YH>mktDm4JqGk1>wn)Iu_oCB2k9&NhGXB>A%rYl-vAgQKo~kwZ}uSe&FblLCX%WgVo0 zI8oXOe{rCC`gzNs+Ya*d4S(znUpCCW5xiR!dO^K|{5qOUzifzWop$y8FkcpUw zn~D5A1W>8WZ`Z2s1%E#(^(@hqcGmporUZ|#RBJWdK?0iQ%1^hUwHS$wqWaz3MEq&- zRB|l4+M8gF|9YXIyM2DLZs>i}C%8Vp0PcZt!fMB1>Kho{HlE<$;FFR4-{gb;X%#$S zL&XNO^-gsRo*!CR3T~%Q;KBshZn>*Hr#!c@r2X*qou4RzrFl2`5*HQ#q#bE&NfORo zD3&ec>f_q(v2h8Pagr@{l4xqTireiU{awtW;qG#WQ5AM* zf44O;xU|Tu ztFX*jBJ`ybSw=s75pflG{i#LQ+r?9dI3n-8Ve zp5x=Z!`9QJz_fgo3PcK6Qnf0d7NWxNKAkVGGOYdr$`6T?Ec(1bR$*vX8|b?&o5sfJ z1-58K>`^0?JEv{(9*97iLC;R>Zw6KR4&lC^pXVy>V@cH?}vvbyP)O zrOTSlcCiq1C0-Q^$GDuYAS4rU3|aBDDNK9A+H;G#ZaM**Smwg;wj@7$3@9X5VVeQJ zfRT@us$7Km14t0(qx1-nM@gh()h`Zx?q>(wlv0~DeP)my z6a3lu|Harl1@{v6-=49(lkC{GjU6Yy*tTtJ$F^msZ%pG=bftermL%O zx-Yu=d3t@<`Yf`>o>-s6WZnVD^FE=)NlzJxGNQ?15;hs|fg!;J&=w8?jqra!ya@*@ zRQdk^QXKl7Osh%W!{frd6JiQI>Bx^_V|WUi<|GBx4_K;@RikMxtXZdwB$~7;{gz9o zOohL16XnZa;oU55+d@+YA#Zb?ELiV-z>glw#8cv@;2cm~-Ash2Bot3@B^StdC|rT` zrfMs}WKy;iFFC2b7P=>C%yo&H_$J{YNnk&mH6Uv`OGIO@_$vtkh+@E+Ub5xxfgfhF;e0}4yo4*p3jiMJKA zOTHsnYU_Z5J#+Yx=4y*em#CbQh@4OY`uV}7^;E`y;mY}ij35ZVy3eUJ4e0Gi`i>4@Nq0HNMb>oP6TH@ zWoT3Z9~+#q@P0=V8W~sP;Z7-;NvfXlm_Yw<) z-7(~eyG7yMw>x!)$br)-A8fUGsK0o~+RhVg2)I@=4v$HYLh=zrze0%WK7BeGU1O>M zlLo=78Kn=Xz2hwhk47{crY1PgpFjg#Ag)%_zINXT-se1HGjRU{#;>b&KG zRHqKlWIxWxqbczv=k)e=^YDIosI;%|kE>_s^2tH%iTzNOz++)iFAAKs@c3l>bdE=X z)0OqgOVqeGer?(3o{G`n%+3p?_o-O;Fq02rpH502 z6)8>LDc_#2TY`pKWu|}rkvWkfeU0Tt9Q^(;AO9pJXnrwT8~F@=#JVE~)-k}!xF@m- z!1YX+sbP!WaB3T!VUOFU68V^yAqjKx^Kv&CO90V}pUUfaq~k}y-IX8TP%Cs80oM6| z=LGYxDJ66eHB2!Jj+F7aOlh@ec{N5KH1ad>_giV1_u3`v6!IW)etEkfc=p_lvJnF; ziHxZdHL*nz<(f(}lA@A#BuCg|hX>M~XniDSBC7S9sT!=8GLA3;%v~1I6>*>mj`iX} zULDdO9ukNxdEf4wms3sz++3zHJdX`_y?(d>l>HG9vqUMzI&~T=0#RsdrP~qU4l21# z1tgv43Se>T8;i!*vB&_0B>wxDyHOIc=m;ZDTYrw-Cug^}ySJNd3(NSUSh3Wv*IOi= zTq6C-<4pg4arVy-HgDe-N0JP*WWl@ihY%wNdG@>b`{b0$JeJ_n<$q8Hhfzx)S@c*2 z(Hnbyxs;`SbF;^m;a1dDpW=*b(EZtC-Conp{RF13zlN?wb<(AdlqTyyjbqo{XC(7z zqZ=Lp2zYwBfF%X*F(%xMhkx0Tps4<*Q%{K(j$|`wvf!d|mh5+T5E;)}0{F%mxD)mp zeSi=>(zW_6$FWH#U+(z(exxl%I>>Ow<-ku^&WJTW{Gmv^*vt4M8g(vHtQ&mG>vlBKegs!3F(IA$Wy!&M(FZ#EMEz8_E8?YV+J3ddIIFTfo4&H>2+Jx+* z^&w6dl$UO53HD@#V)TR)wU0*teT6vHr?Flm$mIONN`D5(6&ujMGO!Wt#XDLMV$1Dv zc1Etp^@PEYA^w90hL4=u@1zQFQPQYCbEb-lzrlf`o*jQxEq|*1mYx{o`1wQlNL8u? z_7psWd+FwmVJ?o+q5GguFVvWUe`mrV0*ZI>CJM5ovkfs=VXVB{E|_io*?95C%Yt$mM( z^@^Xl>u0fT<6MVdLr(W=GBk>j${GjzGS)Tfr8v)#w2&;`zttF_QhcbQ)AH5*Fe@Ew z1MRt&5k^(GPm4mP8Zz*>73pxZt6YMHzU2ARu5%=5lq^lQs1`q{x9`}12J4bnk{Pnv z2u>8aa>7czrg`WjLYzb!mbpi4w36VKhb6Hj@G_F1duH6TwDvNSKU(GnIr5Zw#mcqq zle3>ylD+uTHQ?JDK-a}CDu|N=Ha%)g1D)=&0h!O zN;z(> zwKNG1^mUiPyigc{+R&3Ow?7N94PBBR_f_QTV@XDtC7%x~E2ri(MUFm2gcifWRBY3& zJ0lT`BAR>T_Q^#AtX2Ga+GDEglb)23{KHb?#rCwAU(fp2y==B(sE$lw-AY3V$+ zFfTM0-S~7F0*4L0eM{A(@>f*j7Y%@X$kz8PAfpNrC z=M}sKevfY94c>d$P-`)1tbuVDW%q)N2MKK(eHkmLuhdYLh$3UFiahb9e7jAw^;VYr zD|O_uyN%yy+7%+;8yK&84fQ`Qhphjn{KE9#$}e3%6v!X>W$Kvv0aUUQCW7MHX3o8Rs>UOZeuvWpjCAw(FhLT8iY@L`$cr`V?kUzT56URH$zq@p;6 zpZx!p(4~bEz>y&I-(Ec59@PQHFCK@Il3}AMhuhITr+46ew@?J#FO>2*=veDb9|1bG6tUaDal%(AnjFoj}AR_-$UHR*bSUMYi+)4H=xApuD4pQmSf zfyHwGGgHrOP$pz>0EK9vRWZv_L_HvOC>zCjZi0Xp{R(JqGxyhn0Qn%s`La`rJAM3# z`WtdO=!S_EA+ZTFfR4Xn7Lcfol_s};ouUree3SS9Cq<=6)ze0OB_vv?h4?$Vs+uCnA54%nEB0@l#S{qyo$S6cmacZ$id zNV|G{3yeE=GkZM9fnY#Hg@wsq<6Ki38{O0vGW5If=<# zo{U}?-+ilWDD51qkjKy?{6!HTx@9OB<-8)I3Xb6ktG1j2SDSv2Qmir!_8VsjBwR$a zaWu&?X4aHPg=Di8s z#zH!DoX9himBQ-3Xl9Vda6lP%Jq!6+bfmTbsR76Q?7d@-ecpvO*SmgIM--J%{GR~o zHeJ`lg-rgaqNL1rqb$}KO$9L>NfEtg_a+^rDz~UaN!Eks*C!dX0uLC*`*>Qm4!iA> zs%0Jh2xjBy@ahW{SI^*c{kCLef_Yg4%WTmpOiqSuHq#v z)2r#Pv`r2sRo1BN^Rx(s8RbQTJ6mSMqK3tTGtC~F#$Wl>Q-qondCMRiT+er%CQj%+ zu9p;p(xxhJIv2jn(X*o5c%(KCtf$Z3ojHh}oy3NP;kyxyKc*Srz}!Z{`kp)%MD(CfyyPOj&#%W=#;IH{dR!_r^RjLHnGx?43R@1m125rt*Q|1 zWDziD!ss$GjE~*HYF|-uNqlQVX@koDe9#|#7p1jw&)AEyJu?DQt*XLQp904^6@-HX zj~wUvUbUq1*D)uRvymtd&jN+EZ@uV*^I8(KGs|fHRYA}kl7E~n@z?N4^h>fm0i=Un zOYJK#H!v;IPTsAzR$_y5Zib+%UaR$PdY@#HI}Y!v`WBTm$l8)2z-lrgp)BZJiec^H z$OShZrF=~%2cOH$sP)XZ(QdXz@X-@gE1ao-@r-vIxUugqo zGNNi+RkD!oGlzZ6NIg^LBL_3*JV^QjRwJ}uIcb`(@hRnY6eeIr-luI^+U-y777j(~ z=DH~re1H9{vv=_!gv1-RwaGKC=6DoTN)~*PK^ptyxtI7nO+ZmLRWHY`z2MGS0X9$b zk&8a1Yyr=)>UBD}h;z0%47O5xNit36HM7^4c(_B3{PyaEd~iYdh)?oC#z=hpEeHpk zGwOkJB)qD*kNTjGaFbc<{r<|5Jl+mVk3OUDzpp6n{AoGC;R1y(2D=SHBZxM_ZffEY z$iG)Xq%>Rd=!HzR`#>(Lz-xUY0XMG-egz3fjlQAWMVv02tq~pfnXh(41v!>l(sdqg zvA&seNOEclBYFaMIE<6uB`k2+)TaclJmT^AcE4+(AvHl{Zd>K}^ceS#S_+UE<(n3q zt{0!!4}&Zndm5S-gpy^KS4ou!CYEzyd;J};@{`ja{APl$|2Z#847 z+x8y;gbstr_M)C`LV*gPnvV}JAfTAIJVUxIHxqci-<|4);+iccL z9(gM=9)R|(%5?b=8|L!WIm?#2_5tt=7eT9%3twJ5^2>$#taets5kx|?>igXaX=-N4 zM_nW}1f>Nwvz&D|zGvu|Yf--@~1y#x$y_*pzY zXuh==u{mh^yoBpt+#1#LP3o+TR5Zk=A?%HCS+yQ!d2YT!>++knW*vRc<_>iaq^!C} z#308V>_IAa{LS%39SxL=p3lRpSC=7FWOQ0%?QfND4%z3TL`KD&a!p_wmM>Ofu(6u+ zb#gK(He@K}{lo9z&fXv-#S2a*w|Asi0X_1Af3%`6)HqUvkeh0)mT2Rq!N=Jl|9%6d z=+BS+r)|>DK#GCD*1!UWhv$D&uYTNp|J{`8P-DUdn;muYocaaS#O;+#52`6?^p7h- zCv`hTB$@W0NCMs4JFgc)NP3!hbQX<)9uF3RyF31IHwE-l9JEVIhxbYsC)E_rb8w~+ zB0k1$P_HivMq@B1kqug12>H``6VlvX`%qDk98Ai9X-vneF6CXS0L1Stl*^jT;#LU9 z#7WDfDN9t7G0>~PcWIoFH-gGgR2vxZrti<)VF;6~qufQu;<|CUw%P*w zIO>oVtao!=_XXo>zGPSwv*j&3qM)aP@zB)?3h8u9&ozQ97fELCc%Iv-sNdtveMxm& zdo}^F7qEruKKEY;OE-;XQB)0enSo_Y*qR3qaXmySIp&vBjG?se8l)WH+LZl;t12NB zkbGj}BA^nAAy=!W2z#9ro(BZ>phOx=Gw-F1?Ih(?o7>5U_CR*|EwABn;`=OJvYM-t z8Y=hQtH3y6Lh-K3j>ON%mPenk%@0z*m=4*1MVzn1)-H8CSH@|1jP$EwI2Rpjvmb3B|`)h;3 z5i;tj_4QlrpMT9;i9rRr27|oxRWjGUpmUi93(J9Uu8tmo*PPFq&$mn1L!H)M>(x(4wkwMZk2?U-BqRn zcmIxjH&+e3r3*!&j{u&G-a{ssFF0(}3}Q@tv(*2n3d71?m_bpl)%=Nh1i?`wzw1~g zC9rUbUc$7T{Bv)9e;Pg?<;39oxPJt2B!6O;5al?ULq)wQ`mne?4O>2y@o3s475Dx% z$*UBd33gf67t~&Xz+0tTf+>u=7Udt3e+gTzGqs4=#U1b9sI&P8uZ%}D#HR85zJRDw zT}&G<6&3Y@T9(*!i+p}w{(@2S)h07k-m`KAy1x0l3X57hb5Dc}hvqA}FDR1f>cavzEqyX156loXw63Yh-+?4JLFG=LaERrUv$lhek>X> zd?5rQ)HxjaF_CbY8M~$1+sBL2lJ{VF$5r;J)=+BYEP;;1d0U|GUzKtkUg6ox{IgC2cJ zM*k>^l60cF0dykUEak}5irb4vhm+eXNg%}{riw&%-cLe&u2Iu8)$AUeMEep^$b4P+ z2}z78q!obTBL5HYKU*@vT}(~!5xS_QgUvP4#c#GV0LIhB}2BnhzQiJZU&D5B{#2f1BK!leXzNuRccF<`yz&1yXL{JSz&+ zyrcA-yEL;pi)uG)SY)bjwR122xzXG#TkS)=0_JnyTra$|n7Hsr=Ct>m#|_$$sXAFb zh7-vvRc^H^fukId6lHs?SucUp8sxB0V4$UausZPObQcdXDj`P<%tY{t70Wo*ST`IG zlZl{W7kce+h|Z(ID2ZD`8l~eKVW3KOBVKHBgxharJqrxE|FPe5e_9BT;E5ziqVC9w zS%Mp}aCoH3U`^%?_AkLr;*RUeG9A2P+blH23@-;i4CzZENE3XD?-1Fnmg&}n;82E- zVwKH+)`-sMPKw`V^l9#Jl(a+WU{~0?_77MFEOVnuTezIC^Ou>woFOvC$7>FgIb*AL zY9oH`152dvnYwM*D3CIknCZQ~@>(8_foAmqZcKY+4D;Xvb@^fpD|EcUIX0|L53= z>VeGA9M{#14ri}4E!3;*c^SKC5#0VMs;|t&w>`3_*0O2BkGl z2|zg|vLZX5k#eT6hq8Rw&W(BC){R#~#AWORnpk`!uoZjo@GB8sU^NwSQp9c;Ejf*K z*Vnxln_)x@FR3X;2EXnSffQd|*gQAUD%AReIN{d;&9d2jPBJSq=Fodx%hQ1ak&aKf zYWF|Dn)MAb)FD=6O{ovs4r#>)?H3c1U4vGdDU0qfXdJ z?ALwPye>q3*{*5IrwBOizyJowdEhLDZ@i;{AwK3NBig_5mdfi6mqS6kZZ^0FbOJS5 z5^9e+AK-@PCD{?rsEF?ih@1>8?xe#*pIzz2IHZK5mnwkBUIvrdjhpA z?-;>jG+Awe_W_x!?XYG1q&+WvoSssmTaKKyndp+7y`m^)x-V%sy8DIgEb@UB4#c&} z!rka@WV2hbZ@EEgoHF1AI+JcYO+=<=88zh;wzA`>fX1~DQwRGpT&f9|MBN96hM_|B zyt1g$^q>qd5XuoX*n>j{Fb#o{D%&lFC?K6uLSUD779-;D97{hNcdUcMV$8Y6LZA%> z%GEz7rd#eh&3)r|rfMtJ1_M*+xRfA{MJD8w1JfXo&v>os9Vt#*YtB%cWO7tRunlb@ z*|Q`PJ0NSp8Kk#qSUBy0yu~Ijp&I1G`?abdEFS7O7#~C--E^}<49h|emZi{HKrTWz ziAdDk#5B(JWZC*0g<=%E!piO?vwSz`o-*F-@m1kjf3?*buscmj1^|#VC=TL#^Bf!1 z9#v}4CUftdh20BMqWj`tUq0N1^itRt2Vo+a@1`A_`H|fFRZI#SQQSvbokz}<)cx`` z+|48Jtr-#IV&E3S>M2NW2*!C4TLGYR<=|FQ6XP7*<8Fw5>qOGP)8YHGgc&fzf^}Le z0(Glb>Cmi#WsP>%66Fa<{wAB0rx3FN+#ns8 zH$5Cj*&q^GP0K?a7dvT)nwV&e|B?*!+L}+EC0BR$WR+-0x)L&i_r-LyV{pT?=!Xm& zuQpG>!%29OPpCZ8tGL&nUrwM&k&b1P_H-!GNvRy{3l>VC-g1Cr@>g#@DL4<0oT?t_ z=AOxMNmHLxWVZ*G6So8;5+_3j_qw4`vKugaY~|UZZJt~N$13$J=Al9$9K0FRX7+~W z19$|bZ%FC#aO)`cSbp3iB*;A?=bE-Nmc8&E@qp#L%>%1-1+b!0_@#Td@C zG8QaEr{#e!8HM>sswSVdSf(NpaU%BZZ%u}$=ynga+~lz2x3FOs{hv&1&p@ zmc{_?z^@9r-*ZU$sjPpm#H=+>G4if=e0IsXvnyyGFhfQOWu;rpR@DAcK;cq_#Z{Qm z*jnw!Jecm%34C1g1}@EbbMectTB3G7rt4Yi%3@~_h|iw!=1xQFm*Yl+_bdfnfYG}u zF!q_u6&B$Zin$UcS^a_l(WFPRzQ%a52s@-5wdC3Z$w|hJfIpA!`nBbM-+)ZoafRfEXPV3*sD<%N?2t8ur6@aB{g3$-<5$&y~okV$Ny zgAff{1yNYBdeTt%l z?y&>9)N0@1Lb-d=M49vXrMd|f^y85RkPvOJBYE?CUFI$r9%|}S{=sK2_&M4fuDvF7 zC%sik|FS$cyAh-r_0V~06^m^NzCgQ~(+jiSpL!3gtFQpTUK^fAfGPu$<%e%ua|;|u zEFk@&gns$YQSnXg`r zqXjGDKq)6v7E2!$6%}g>mDnp?S;0UdLDK|kQ2G!DFP2L(uw~R`Er5yGM_LaBqFkp* z#9{8c3Pr||xU>!`oZZ?}_m7GlwLkJ_4aKc&LPo`P%FuCPbVz_HT%getU!>_p&lhh1 zA}&k?C!r%_gT*jxn)-dqR>2uQHiWXKIjLaCM#+_T#0!^zVTE2TqrlRIL15g>IvS?n zX)@QJ3|6-4e<_(<8)9lfzHH*Bluqm4646DPioMY3R~I(=6da^i&l};k6wONnrGOwk zPDe|F*4Jk_#7DweWI`F-SK2HZY;+7O%VFGHr$Bh9r;n1A9&rn|`-_&ypr1xziYm3Z zj187Sh14J_v~Ja(vVTY;gBB_YXV66Af(c=|@WMf(lQvc_){L>N(G)GuTxPPC{@ft2 zHFInaK$v8N-aD$5pdL$9XmH-V5IV&NmtYdnM(606OuJMtWhK9zFF~kJ=NSw-G|*+> zQ)NYHW2&Y3vMUDP2SK1h?a)`~ABpVfNG3iOIdf(KgO0^1)UR2+;w@doJ3w=Dy0xt9 zdhOeV=L(rH=Cp;onLT|uzaBB>tMxqP^rX+j-Q0;tzPa6g-C-MJe!IK*V&x;H%*!T5 z!?$*^`a2LoTLHXIkP~A+p|W}C$=8vN>&tId{+Z)tcHh(X9J(X^?d-RP zQ|0H0%f-j9kXzr5p6xHY6W_KA8TyivO>-n(UV1-P(3dj|3G|uT<5K7`J}!8H`w&Mw zXZD5$pM#t&6qcu3W(X?>+q#M6k-uG`-d*QkuQk5hILgDTGB)(|vTRgxf5jH-!@WR= z;Qk$4aKg_<2IY+jv9P{t1h0&7q=naF=VFG>=qt}VZ~xr1q2PRWb)^Zonj2^8cz<>9 zc5h#of4YY|J?6+zECSNDIDvD?4HPOL=%qz@OU=7~mxd1re{>ETU#IKGEIQv%aQo5v z6XPiMAEwGV$Q%#@?oZ3FLj#|JXHnn0hdTl?SIe z94E)%9}uUOjPRpPw?#LuqU~|rpvw4>yVtW~J@Xy}S$7X8nV6F0I; zzpbn2B^Ek-xg(gvvOrf+opH?D*9~EBaz*+0%HRTWbtT* zs(FEjkVx|`J8j5>w_>_;kCBG4nuAaMkhApD(}=Ihbq8f(20jlqD@GS^4hFA@$cRw81wX+M3(#??^K-2QgW z(l|$&Ldme@s|v&BvC|vP{6nex*I5@v!BJhvVrhiHIr3S2ikHqYW&+1kpxN{vZ-r#( zJ(c;`S)`z(x6ckrbnDDk1J^DLRgYpN9Z2gR!R%PUf-{emIw!Wt+w`*r?hF#oxpy6q zBC|j3lGAj#|F8}So$T@Yb@0tT2|YIp%`cMN{}%7uP>cahh2l^dhmz$vV9sLajzQth z(nI{ZE>;^7&KuD)(9o~(TGpv8zR0Te%I}KJLBOHqAW1at-kXjQ$~B!)HH=xR(0=+2 z6)5HsWZme)rOxFJ>aVT&v`0{JgSwufb zrQz*-hKD=F#wa5n56c01P4eyo#=28{Kc{+$itT0@S$g>MFxH`Qm0r z^7`&$&*5YL)yai5eY*+0cJ%|>C3_CZC7W&IS{X@_N0=GB=6o{SER*+!5MeXe<;_!9JShXU1OMe!G4wyQb$luHTl)2+SEmX-nidgy3LW%YvuwTO6y7T{-oyzj)Lk!+)17SXsgb7ao9DL&CSEtUdq;X~*tDat z%D^A;9;vA6!Ke>3LhIHUEL8<}xw+TE*yrDwq>JYNVIRZH@qd~LnOOhJlFlJb30rD* zl>b!~ovI&4L-&`kH@OIM(i+bT_J~E?VVv;(8&Q!YVpGdQegekfU&4?{LX%HZtZeod z$Jl&KN=!|PuFYCz<_(lgR<{p7FmLPwy*O5*n*&h41&8;i``e@RPe0PV06uZi(u4g& zONlK{kHrlOXe{3Y>dwa*+@Pyjw92dYkH06~qzu*@)VpWI-h*G9dLQPx6D0fl{;}rw z*dV}9$HF&Wu;4Md+dB5_f#0M3ace3B?z*9WW|q6VG%NYO9{oca#xm6=lsxaa*T0 zg2onQyXE)H9xl#T$5K)%4Yd(B9hdeBfzf9q2vXVYOaq6korT6W6ups3F&*%Gmo=JJ>1%f&6AH&#XRiCsi+1CBqtkI~fe3zk% zPb8=kv5FdjC3DMn?g&SR)qi~PvMF^G*8Bqn&s5UwYN9UI8Uuz|&Erm;C3 zb?SxR>qghFCFmA#s5Qzg-X<&qA^Wvmpg2Jwg)!;x1jrc}p94S}f7=+FNBO^K?QQ5; z&O!6PJi|a;04R_Y5{T){>zQnmmkw-#GuL;ayM9f--zDoyO{}=6b?ZS>`Cq99&6JG) zwnF-IvwVp{Z0O_`{1Zun+*0s5{T-gKsEVFd0Y^I<%%qqmZX?<(PIq!tc|#?&_k_cx zMV?8@unF5^CLV}7OlG$dNtoM7@cVK*yxUeSmckU~SG~^BP72(!=z z*DGcBeTV&K%qgxeP{sOKk(@*WQUA!NRH}-Dv-mpP8CC2r4Oa0XYk-KPh{?%Y3koDY z>0nM0;6YXiEp5Z1ddwRJG1*WREzbZhW7~#vl6%o1{lMR9?}4Re!~Bmx-emCJG~Po< zx?&;+`n<#gr9azy-tDFV59THRuk{D*`Gei`<4gDO` z59H{uNfocCe6(y)dy2Rm?RG5Clj+Bbu zB3rX;6A*k}W11^1-vj?HXUz~*F<`_P@+t1B@%!$ln$jG{QH%Eg6!Y<4cG^V+s#7T6 zbg)($ld;W`FQq|c#gbfCV^RnK-=LW7&u7~D)bMODV^aBo8n4qjQ{8r(wcN)A5K%gx}Tg&#LPV_C|b-mXxTZYade9o`Y*T1<|o z40}FXfDmB(#N;9s7JYZhau9OeF;OfDCQyaYItq zgNX08;Xp~#2Bz}*nps{kp`|S-<*RLTrpgTR8{XoIeUdq%=n0UyQDq(NhduCWkt zl)@vH)N+|=F;Dq#ghU4;E4jR5A!KoARe@alMH%8ONFaj+0r)l95MK=HX<2SCZru(9 ztw~Vwr<5)I)O_LrfwJC=a=}yp$Fbvm{W^G%9(Tnu^tEWWcPXHn;Xy}P02dE z9x1s4NamHPZv_)Q{G8;xin9ReS?MCb&2&AIn)ZRi|ET(mEEd~ zs=CieD>O+as=5ZIIG_N3w!;+}FER|DyG9FfrhvWuPsfFs@9wL)^=IE3GteA+h9RYP zDu_43%ihzc8S#S)vqjZ&m}&~GF%>;Dj_yxpLNtv>$|$R<qZLZ<9 zJTD_*233uUvCa{e-~HjPQ$LIhPKH%p1sP-EUKeL%*iC9Smz`d|eK7Ll(>Elx9f~TS zM3u+f}nW5E3_fM!09q=2R-Q zD(WD7Tpfuowks1g-B6k7z1%HUwIb)m1qX%NPye?5hiBK(@}{g#L>C;qtC6v)ETf(>Uq7wK~V*Ji;0ST@dqqcnpMAKt^kTJ z^}^~wbB*d>l=v+RT@%QQMbSm5>EoTLsNt~3v!xRvLr5k4k_@P%^5rBh@45tv;v8ZEdJ3AdidK6aCq9^?gle$y@LCvv^JyAr;kbXvA;C7QK$#|FntZ z{69e!OiV2QUDwH_=7h}#2m0pnPXc-}HYJ6=mtn1X1;Qkyx1)~+tB<5B6gw+>=;I4V zfrM0Ep{<<6)MFMxiAw&!`<4$uz44;kx!#kHrxS;d$NVbuMwIhRr`rXFo`f$+xPUcF z5ujGpp0a$E)1nYR^!PWTXaOr_z%{0$tz&k)AcU#)My0F+dxR=l0AKo3&H9}YtLr4R zqyLky+3=@mQxxVo&A;n?d4eB-3HJTPp|n2^eK>eJ9$CiW`S9_kKxpKc?vYPCFM$20 z0)Bx86%!!~RfW>j9udoTGw0-GH^x@i_w}v<1>-4aMcIXBv~;Iq`D?Z|c9Nm@`NK*e zLl1)#r0{6kO@L6N6s{6pw;goAqcTi%vwK8^HZ#R!AtecUiTTv8ue5A5mLhqn|N6bP zPMoz?oJ*N;Pq8q5WLPYczF^O=b9knRTJ&=Xx7#H|cC~ysK0=!)MVwOYgH|1_GYK2> z#Mx|42JH9B6CgKWsFIFNrg6#|tcZ31C0rP4I;gt793~|>ZmtNr5GH6&>B{;&92rYw zR)Kc`3N$ZDZd&A7X|=w~IpkVb=f2h!@Q_(Hp58EDn%J`v+NLJtO(JeLo+MJ{7vt;%E?4smgNVAAT~8&l6)w^WX~Nxr|wy z`hnCil5+8`Lh?71O%r&l=6S|>d2(mHdjBvD%B@&jOyq_Qgm~Ff?&%bB^|V3`=;6qP z`d>w!Lq;`l9d#8LTx9^~u8Yzl8+4sj_rxSNpy3QiaKpyl}2TA@PwzqeQSMZiJ8jRjo~?N$6h zpjh8Y0-vF9?b$+lVDo~4ss)-XOG0zzZScdQY3Fu_c?}%EMzr)mshkc2;?Km8>Z-gK zzWkW_0Y$)z)rVfe$L-Swk3b$ib7-MIa%w+?lvi9V2n=Z{tf;{I{r2YaKuNMyGZK>n zVB&UQ)F+voHitP74h0Kfsh<@Vj1Cb&09n-E$~DGF{VJ~$NK=>|CT+u9g3%X;Kr7-g zZ*74dv?Tv@7pIio=!I8~0K<2dW7EcJ1EzM$pd?aDz&s=|5o!RVd1-QY9--Z%a1i>T zB*|Ee{F&PSp-?rJPZZb|WnAzGj+%u+V(OFY1}Z{~0lcN~(duV_Br|1FtnLqYDhZlD zT@^iNXbfn@r*G!=`UBQeve^VjIsDwv5nTb(P_h}9jzs(<)d4yS`Z{wFEjQMz+M@c} zX+k2&8{zcYN)tp_IbudxGuDrNX!|1GNlv>@qgY>Ph@6742%-=iOB44v$D|qrq8*Lt z$@?UE8qcYO6T}TQX?g_G#xmaOpR58qCxi@6q(st|Q~0)MeGFPLC;rKJ`L<|lIsh;$ zr!JtpePdZ=&ZU~@Z^)4Ej<_E69%(ymR;@7h9);1{P)HJxa}JiN>v!E>$W?ym{n;~uC9UPrj8 zNb=?Wu%IYb-av;k5n*7SGOc@Z@i7Bdl)P=NRE7|$QqkOj2dBnKwtPP=EJ7Z9lgfg@ zuqe=HcKV}j@2FTs09naA7E~0QXvdZ$c8UBTzN`|=8{h+&<)BpyjOJiS; z9;lYwOyWd{OUtjHMsF)Fx%N#FpEx$$PR^b(t2u5(NIg)bmu|1vt*^IZc`l&s4C%8R zUJr7wU>F*!RbKJk1{om|b}rs;)&Cv5ZMfB_5yzyGO6ae8K81#29yD4^O~T|Use}`0 zAccStH1V;3=?I#56sDb8!Sf49=9?dAn&~R(wgc1-_q>YnI=Z*XwIA|*9=Wv{BEqHT z#|TW(&5U5tdigg%<0nCw8@z|GE>{(~-jb)moj$cLM>}-+KZp6Bi;K@IKS`e}aQ7xI z>+SzJGsZsS=}56IWh=O7f?u3IKD90l>TK4>24EADe8Nvx`wOOHE*fxiFn9PdSM4JP zW%R9*^6QH3ki=vNXu&a=)gce2^+1Kr1E3FIKl{+;*yCPLcfvD&Yh1lz>k8dw^(hZn zL)tBl_uy)=qPha9{ybKnvgOES&utTGOF%{Pp1IwkhBu;JQ_d!A>;F8N)}`q)NcD7s zC$OsZ^@zo@CEMwncT4io{NxjDtH!A1x_-7}|H^7+RUeOSkduu>JUl~8<*#&Vv&a#L zd5Hx7(P~jES7;ukf6Z{@C|WoB1GFW7b-@X#58FciHo^eQUxlB)_z6;e9k#9&6CqAU zdi<$#dTkfMO1KBQfSEK@KWBi~HLdtZ-C7_8=VtELrfzK0!n{o5#xc~`yIJkvy52T2 zAY)P9!KwI++e$4cbqjrU-u`~MQG`O43hnAi_KXfmhYuoDc;?otNo+o}f6t~TFgwxw za5Pxg<3TYMt-XkJ>~k5dKMZBqh~cE|2{8?{(Q5knsn$ zD)#L*2~ml)!lpEOgJGYFOlbV?o3S#jXW3?)$3i>P2WvKu-IHSKH-CS6UPq{d1KJib z1o`EFJ$4x!wr8hyJL9ZaYIPu(<9o!|r`EKAL+T(eE&YD_s=4)keIa#jeZr+0v|-v3 z6~))qzCg$z#RjLP^l%1neSmYI;RrX$VWtONIAg{jY!|(b;Q?Bo=UN598*~g9T{NcF z%l$=yZ)WyCiNAwnZuX4*6Br&`F?S?eSx<*N$L_j^nH!9Y9YbZtA=OtOD;xW*sQc8r zp=RIsOhT&?|6w=uKLoG;uhW)^{lCR}X>!L9v!hHOtDZ1nb2yF}+=A0UV3>eZlm;!a{KjnXqL;NLQ(Uw<~og^?vuRYh_9(xiiM3~~mjojt|k!I4Qif5QS zVkBX)6cqc{VfBLFsGnJPuHCc}g~Ap>*0(6W@7;jIZ1q9 zcxGagLaDB!CWJYr*!t@top>*uB}Yt=WR7SBjP1KjG3>8ft{rnJ4`m$*mm`~lPGMsm zAIdn)T3$3C(lVAOCf$6}Cvj5_A%oS~%|bSMQimzCPEgj#h43!zyC~|-bwTcPemAw( zBN9Eap+-d^*_LvA7`|YFcO3%(Dq)CXlTgV> z42C<$rxlE#Q;Da-2iZ^t#V>1KZ)dA%;TY@J?UOp7-pamgK&-&;GU4&x$}(9Ef9j8m zJOC%}>0cGRxhu}I6Ky2wR`d~8^$6PA2F>$c#OSP!9=S(`i~!U}Egxww-WN~IuIGlE z82sb)g?bnO_U02E-*-Ki0oYI^bHEe(J#*APj`7p}tXAc)x(#?3TTkV??~@gDBDqsk zI*D@X`DAX|K^KMw)F&qZC7-8xx?pcC**&oTb=*z=6&UtlM`jRB1tmQn3&J$$@+QETxHn=q8*Gg--hXjWPN>jon^a8 zXbw4|5-qEgxD}>QDFrykOR7CyEz^~&S$+SSG028z#1To*7oAh~^TmXE2-ACh!3bGo zd!-T3nWi<>ACnEz@PUpS_?s;HG;$kq4L%lyoiC%*wTQ!uGA=NPPeIbA;3fb2eIjtj z?Z!O?N176i;+t_u-DdFDVVd7!>y2O?g@Ak;mD^g9AX>fpZ3(jl3_BxTVl6F}FP154 z{N5-0@50PF9)+ukT@kr{kFU6qQ*qKNC&>bfbhrR8O1XtG77G719jv?vXJGfg`}){* zGxk=RnB9MW=?gDRMv+wHYSBU=&SH-OT_OCHa2LU+ps(S~-j)#OGVL-YKuo%5?$duE zq!kB=EpwS&F{Rza!A)f{CPsCDSvyUfm-v2Vw(ofT7Sa}8Kg8#kH73>`SNw!2u+H{U zm$-2s&kc%UsE^KeJoZOda7gR~2}5x>21B7|)rQ)haQi2|ynL*ASP2U=T}gnb9PLMu z&`cms^4E|>u8no%m7vI|Cf(o@`qsfR<~}Z1evZxyYwvK$*{fN;kBo$Xg9tjB2MMJS zl^+YGapV7D>>Xo73D>U8?%lTS-L`Gpwr$(oZQHhO+qP{R(`WK!W|H?z^8T$ql~k%K z>$%suuhopt&$^BW3c*q4$`>GW4-}hQ)CdA0^7HBwtCwO8MP#PQ3yZkPbMlw}lO7S+ zWzG{yc%%}m>+8uU95St!;5)_6zkbp8b|VPFWaX0sF8*l_JBleT2Ze(nZ+in!g1R`qDMI#_Ll$v z)xg>#V&1R37;~Iv*rQC>z-(~P&wU(Ar5q;j4UI)46)vNYToo}dU1d!ERqQ)uvxm}q zq4(NBRL}Q7zey11(I_<5=e0;i)e1|ZIWuNpQqRA5I@B{PcF$x6?}Lpg#A~=3BO1s9 zXZh;JBu2?n{PZFkNCr+gTY1aIv?~9p$Fyp{!58>t=8KGZS+p$@*md|)&=)-qikW#A za}xskvc^)-SN*gD0P}obF<|zK0K|rQMqZiIyWw0yioW`jmo(|WVQycT3U7GHYlbEU zF&4R6hE5Fa=mA|mq0bez*;De)i`xn1EiTH=k2?~0uJ0zN@ss~Vhii2}W#O}ZL#Q$V z>juCo0o3Tj8IHBI1I#KxovQe{=O#ljovGNe*9NxF0TFF)h#Pjn5snvm!C`~dT8(!V z)9>81xY1gj^68_sBER12%=mq`Ww*t%VWPFtM8k0EwMt`>Yc<1J8M;aL&nEQACLb~r zg8qHb-pij~dg44YNFUIr7!ZOrP%|BO7Wy2N=jXS78;##jQ^{$gP`Z`Z8j>*WcP*;Nz)PR` zfquzll#Qik$APDJ!h0=qAG+MdDC_2522G5wEETyW zq_PT`f^2kZ8KGsA9eM!`>#=_=(-V<8S4C5^5joPvpW4U>G&QYGx5;F#Efq+N=Hvxa z(cQAY(iwDVKsBNQ+r^UcoqYT{@I;Fn`ks5R*UN!GYJ1hFZ5IcdFbuU0!5un>HqnkN zi4g!;*A}F%o|zqg($|#-v~Lc#Z6RlHDUFb+=I0H^TT~X5Ibp?{+k7qlsBsBH2rxzo zA7`E_{Rv}RgQSp*tTj`w{JaITqw2MmjBEv;-f-pdkqumvAejgzfA|ul&{0bSm@DfNIaID@A zqbCG@`Ym}WXIxhG2~X}(m>Etc4__|Dejw2sqzoKJxm$f)UgI~ql*{IFcHosruF^G* zB&11?GG+BrY1NLP^<&7`r^-4txKW6o7zHaOgE#doKfWExm2Dw*%Pr}+1sOZG8@u}H zDhF%B_oc{Xsq!7jdK=TbNz0C8ho<9ya@D-N8!@+?IvYkf+}Mq02yq<@e`8 z+$j>N=H3(WO<0)iHf!&Yn2YV$3bg6HPa32re*`X!bjGYD3seFde2SaKvM3q5sHLO>&RYcW^F9Y%7pE<`haG~ z3OM7i87zrSW)DAaRz%>?J5sahnBKUNFSr^NtDDwbXkRO>UZ}dUbR2tKRCA6YLS+&( zJRGiDKo@3(zS1R1l)f0+M7J}tJ!3~pixe1vAWn)tq2E(FAI>^p ztA6@ADbyY)Q{%LU&w1(aeM;imn-c%KqWI)BcJJh>FT0-@Z?2oN;{<(Fa)KTUSgeJa zT7Q|Fj&b_WnO5gMDLKd&Fx7xN?!QS}`v2Kl!obY%ze~0a{ifPC*KGkUdw2^gQ;0W|ud63ncB?7W^IzvhB@#2cWgXs~+I`u* z-Bdgr`myZTy1X*{bj04_;xVhzu>EQwi&Iw4a`1|TBxks}H6)5o?H{)mO4_>Qcgw)g zJx-~6uc8)u4NGJC-7D)K(1p8h{dxR(Zd$X3!OV#jTP2Y{uX=QR*vAH~_MnsKSfrNC z`5Pfkg``8-_6Hh5mD7;HXN&R5#Brq=%+eJ*-a6?2&4;*9K^l1E3UQ$)17rVqba&~$ z5nkD0ZA4Pqx}%E6?5lW~ReDWp941eu_;VFEAN!=~;+TBH`1(#iyjq{#Z=@Y?SH+zP z(albjXO9ZRFunUUqdwRWPiSgL+X&kPzcW>p)nIC_Wjm}uYMAE{KWE0B+?AH3%o!IN zQ!K2kEZ8EkFPD&etcXLRbf$f08Z-bfaY!ks0hpdKlD%j6ltklwzkF@*c7H<#gnadB z9~FXNg8O)6`C?KdQ-f#v6z-^~nI>iN0pB}tW6-XOsevYk)GUZESS&!+ojnI?CfQ|M zZ9sz(R<4wu14}C&6DUkpxp(7P8y=U-AQ)3v-O?7v58umT=7`?O`mFD?QAWMbIK8uE z@sL(wMnreqQc01ky=yK|OubqTg(IJg7>x2 zC6$HuwiO|8up*R65wIT3bbAXzWaTa@a4muhN@4lKuW}QZyDZy$eLpe7e8>dyFy}C) zVaf3W$hX&pz>m|Hf!`agD)VJ}mQ2IMW2Vv%>1j#2XGacQt!vEZLh#DM@XA+bP^_Lv zI`gB_i|FP?@bEBk0LZ@Tg(I@mazW*SgIYy7dGIEiNooo3N(2Wrv*dAP#}H3L^p9sF z#&Ds{a8-F%f#Kp0{Yi7Pcbqgn+%+4x)aeBfXb417#2PVpJk!RDXe92DtS3Zb@YJ$V9CR>_A+GL;v$ha zhMHn>U~xDr02AbwVDu{Fp*@{`TTmFQ58ZEP*A~A|3ytRp5<)2N7+Iq$p^6X^p^Zn( z_)uPp_*k8nyx}Y>Xbl9qxxbzylRzZ{a4v{un?*Gzj*`0+3q@C8kYlP3gs2a{r&v%P zO6rNnINt8IuRO#g$6Ft`hD@Z~)sAxmz4?)u&>?SYH?ObgN=;~2MC5}%fZBX#N0{tg z0z@f+n&kEMI`@g=>wziDCNZHZ;j1C_L14s%eYMd!==t${cX{7TkjBj4MI?m&VRRTS z5}rtDbcT#4N?gWlNQ@N#BDGwG45%=e9cdpfKoD2ZN+$vQ5{rxHDiV;TKZnSW=Idvz zKT`S;enz8)$qWc>ow^_^(Ax0;na3rz*S2N8<%cnn6j$h1+&}A-m^oKe)VcVzwG>|M zgmBsD6U>)?ZwKYnor!`W`d~7#n3h4@R?SXL1% zXYK41TzH$6PZr^klML~7?zpJr_0=W3@x#B*N>61fpfPWL9omHad?jXNNk$){h_~Q* zeFNOu-tL+;bpvFtS6eYDyPgj$N*|JQ5<2Tk#UWNbd-HawnRTP!0fi)b7^MzNPDQm91Ljusq0{KazlGSGa+nE_Vg{gW7SyMVG_%Y%{Z>j9;>XhRB`#q^d3byvJQ~ySdROCxzM; z-iYk;Hbi_`%Y+Maw9omgHYmG95{~}3yOZg4lx?k%JwztmCMHSsFa^%Krb@k*9WGZ$ zEx^)r!)JntzHsQDGhvD+g5VKGz!RV)897&M7jd9xhMq#usMTmbD!Os#gKBhQrpK{Y`F{To?|e(sz?oVotCRpqC#WFYiUmZ z8|t%=cb4`FiYpD5g^X%J~^e;aq6Z+)4tdoZAU){IJ#<%W;qEx{)+8jYGIMXAu(xXY_Ovg60Ja@qM*;oqEg^ zWW7i(w^LVGGDWG4p1$Yq%_I!rz`7RUa1(d0242FSsFzW3Slt>q42sZY?o&H{x%74E zl3a4x_H^pO(amJxC%G%0k|Vc7t9J-PZe^Gyc~wYFN9nkWJb;xY0FOc3Kg4g73i!%qi=ZjKTz$?=tARMo!8Oq*kKMHr76$|j+`S=|xJ zCI^88iIl;=q%X{)gUFL8SV!s37Y!Mk9uiHV%#BG?BILLkR4PlATBIdohIITx-5c2; zAPlMH{F&z z{MDxy9%aNo8mAN%vdYqtB3A6B@9RCCr_eiBSdZ~-RK)j<%ZR%}Fi_XDAce1Giy*jl zChDin)i)!wSKtztWM!7kp(`LY^(0K-MS`C8XV@l5g-7pWwDTpPouh`X-#UAdgCo0w%&#eA(6&KVu83`F3tmafJ z=`rS!%TeGw(4U=o0qGWFU!M*~kPLYFC5W9dxHwD1%lus?q0pEltJ-W;Sc&T3b9)>D|}cCTtpeA*g7(E|&Mu z`VMpp{+TBJH=X$3n6B)7|xsKbS@M4gMQ8Yt!0dGOFGdCpQ`3B%qaD9Sl9k9 zl4wKk|2V;{X#%TX?~e~6Ci+F-EZ-QmR|^9R#~&u}+U9*MPLmqwcQ-z+Dp1pl&13#>DZ1}?)6tkr^*AD1SV>SrY$w6aMa;?g=_@Qbtb2O{OlcqML?etYAVAv=cLSHU9iW_D9Ck z;ISO5IJM>Qd@R^nmKYcRz`-qA1y7ITJ(ODx@AW7y?#QfCQc0)?;?kv}RwrXT=>Kq| z9uKaME@x%k`FiU#R3^&CGBYW3+(c8BCu3zj)PGs33}UiqE*EDhI;RLZ)K7J0WqTu! z>Yt+l{I??EJVuk3r}k-@Lz^=~p{sH8mxA}8^!q;HnFFH?$zmG|Ecmb(?5D*W8l6|7 z|E=u?O=2|xuA`nLe{xJ&)6{MFTPh zaR#?+GlL^-P{t)uU+TO-g|~l(fCd?FZzSblgrAM`EYzUK_ixXU2v*16^mi$4_12`EY-W#X|~7mRvwpJ{AIY^Q;q=^|`pU=G8vkSC?Z} zyPT=q^{kPr#1l7}#9y^V2iRFGMBi%2kpgfIcqN|?4~YkYBjrbEFQu;7fru#IgyM6G z$3Vcr9!r1ZokKHL#C}*se-Q8_U&v4noT-IOekgks8}Q#0H(-C#VCF&|{i(IN(^Nv{ zL8=3iSKh^e`zKIo1wv-2)|%#gB0g5`<&E~Dn&;d{+i6Q$x zU>l9k0H_v^9OQyx+p4{Zm9I&;UEZ`@ia9_tjShaa??!IT#Kcop`R!cQ^G3lbUcjnV z;KQU)&*}isQ$Tz_Aa|-efd!CURAjxEt#esOaY5hU}Le?zL2G(z@UKwLsR&glC@h&q|r)=Y4L(qHaQx%S`S zwLWX0f|qI+7!g*=L0oV5Y5&A8H8&KGz<_a=m?5i78!7*GvjM6 zm^X{(vct#NxQv<<&o1uIG&M%LDXO{h+*WWYn|Az3NG7#PzLxkVZr%sIHT&{1t1nPV zN>-}!V)sPimvt|LX36-b+i)f!aP%x#&ucor3kiAAL37hguuY#O+Et$Zojr1z-sN7} z21jFI75sIk7;$k~Za|hRc%T7ZM91;w`&yGWJt}X(nb^)7j5YNnG;$WoeBc*~>)h2l z+O0TatV{XHOpx)qgpU$NXtos-8*xw8zS4nDhOFly8Uoq%i$%|^v?wxb^cy@d5^LiWdpJ~yN zp2rUhxd*{nP5h$S)L|kb>eA!4FNZJ8 zxx59S47J??*E&jcIC2oK5VaUXwnw&R8RNNVl2H-8+%UZDeU!%=8Hv;O z{YWOI_A!;W-f*2kjxp{pO`GdQobkg(xOq;~EDeN!8@cf>thrEn)ahAgKGm0`pz2DC zafn=#Lffh)>^-u!L;+$9kELdI**1Y7xo=< zX`yJ%HI&)Q7XE#a$oVBp>gSj8G-pBg_>ui_pqD3qh~7Na?CNgU>)*i-m+HPOh&^MW zY7#W!wfPTroDKlJ4p5BMt&8s8hip9@A%F^$38TEm*mf;5Z(faz!*?0J!#NW7 z8J-kbW^yzQZ&uT}l4m^Fd!lR`^?NScLajXIqz-f+r07}7*0bIJ^&DO}Bzi~^s#=5d z^=9^z_B!TZ5FDsB0n4FdksxJ)%UR>9cOPa&pvjvPdqSVo$pZinR86`5(d%|k_W zmK&qEp7VaMn%e+6NRIz6O2jt1e{ z+a4KbG#EKb9>&8F;Z^cC#7NJNuXQsmf{$#+e6XO7cymCrH+L_7!^AVM=w;F9Fr7EB z*mZE9mlo&~XxEjq={6^sMGT3Wb{&ioHXMyV^k3)W=ngN-6~}B-sqh@#kguy$wwHFy zic4~WAf2x#b{=Z|l^L5sT#+M8(*NDHsTlLWEzLe*%7s!n8Rlkq4Hiu~}Lk+E_@V8c6d+&~u)J=h+o{DKDR<*y= zyq~gRB{go4yv{rk=`S2Z2_i1W5*M})FBFk^Ti@8cM)riv;!goy)^!bvZgqvSARhy; zYN2-5o}MxpoGg3Iw0f&w&MP)9YJ&M-Y*NmSi2mrynld?9wF-xlG6(A*b>UO+yG!hs z$U8fT`+Uj?x~hMgU|C03T?s|NTaBv~BG2a(T2gDsPy}T&4crN7Pz|N5!%CcGh{V`N z%$_)xE0td^(Qa{+vHA!Ftk|~^jzYQ;2UeWxXVLuALx}^3F?zQ#6sf;SVYGATzMvrB zrWrPh1;@#D%PdXBBF!PR!4?qwJUDd=qrIP`aiS$XO$|9wvnN~osOLp`z?s~hufRe z3%3k5SY%B_e8EG^GU`luMq&BlpI4*vm!$~Sz+J3*92GEr2;W;?8{r1&3}MNeEJIE8 zkt9-B7YgL?*u2S&p>7y)MB$tQ30TTM7i!&dV`@Ms4Yk_?s*8=FrqiBWaQt8fsMtwL zAUoa~01l8?|NBnswGljy`ajrZYU%~|25ntvVJ@b)jthv2;j%i;nR|1Vm&y(b15}j6 z$(E~SyXG6AghkYwqpkKB>=pLbk@YI4>@noT&;=(3L#ZW=#U0lBtTi%AE!hQNHL&<$ ze2by#wXeHvL7kEvQK%Mu_k@u%Zh21z?zL-o7S%iFE#8$L$bDsT2GUW!{;CSH0GtZH zy<+m1fS95ZmeT=*aG2|#lNnUo=~ZCOmh3d;+vF=>J~FqxO_~CBt?sa~mb7g>dmL`p zJ89C6J_h9vHQdfw_N(v@lWErl^|rN_#h%d5>2D}OaSGNYn_}F{YEI?5%a{{wdZC&9 z#g2$FhDd)H1+>`rx;a%Ul0%LJ`&1B^Q3hWGij-2Y0~Xz>K#lJ&&U09tQAAI zR6Uu^f*EV;|9GDFk|ps$X+!EcP}As>eJqT2J?Zht0zzulo5Zwampm4@nuHQpYL(9x zbN5mUYlMU3E{@K+!Cz;eXpF|*Bn2wdT-+~6sIw}bxs_4~p z=dR|$yg%ie=WU~kOj+nNIohyDR_R5>>Q_^+EaAbj0Qjm8DFKpK;kmyag_EPF+{eo| zFNK@yCb>xsDb0PJHXpuAQWlH3)BJv{DKYv4Huh6pXu9unXp}KS%9~DN77$Z()Aj1Y zSL5F+Os%;3F{0HEbFOBUBz*V?_Q5#eTjzjE6f0iNwb=O>kK=;eM z>&~D}b&YKKWk4XXWzK7Dv?oAeX>fBY{07_2Ygml-{v|(rF<5C5K~g@6Q4ZN~>v|kq zJ~(`;{9Of6Ri$C@bLvlBI@9*GB>0x0TH?OBqT--!Y)cca8R8Hy!wO`CGekPTh+m+z z;?eIt*@N5<8DoQ38~v9sbKW^F>EKt-dhcGWlYTgEtdo5=@pq3e|cI^!tO zw8zIj)Y(B3)sS#k*m5d-8WF0#T}b>SU^iapO+E8fv{IP^(v&QgoYE+R$9dcvxY_CX zy1M8|%mw_3B0LoGbS^Oa?U2Q5k^^6t;(h%^NYBqz{vAD4XhJ(R6mI@cB)$YlnuzHS z)0WSm3i7n%!lU$wU3N3T!>=Q?M<8EW#kCXDT<4%%A||EE@*9coH#{JW`cEYOv+*|) z{~t%{l?8`Kl?!OTM-9$pzPb-%X)e!#fLfX_q@r(qlKVHn9$OKWm0D!ji6KadJD>qh zQw1ukOiWE3)mZdT3mI7$iHJjD6?>xmTZ|F)xc z(k2u7Tlt|M2XbQzn}sNGT5XUITRqRTC6-95wNKv^j`t;evfB#btNdYv{sqq{4j3Rl znI}Iz=(w51We(unMv_|tLB%cw!~?m}R%$C)pAQ*NBzM^k8BA7g{6Nej1AylEzKv%g zA*Z8uZu(!|KD)ybieby|IKKx3sc;NkoERj^$~26Kz#@X9lX|vlFtU?74;C= z=$I*V@&}HbM%bkRtxeMbmRjBFKVv-u_D}S~+l_^{ud@jhJG);w|9JcDE%zueUlQMF zHnsaJ=NE6k9bX?R64&P)i@}P3b4TWOvb(3wFcM2}#%Bd>lQ_6JmF}Rg0JCNSrcC`@ z&Y-+0-+lgFIPr*45(cIG+4Fk8_&H`fB=l?%UPH`}LtDzJebK1H?g@={T^% zo3jt4B%+1}O3iO}J5b{rawF^es7J{lZh9XYH&BBo*m7TGM=Q3U-ME|z@zRJg{MxsU zkKaAMIiN}oV-HpHIC~XmQ>N@HIUM_K5#}BYuSzux={IXguuL*4*2(fXa0(GZt6GC< z{!Ag>S;8&^{uXxvjo_^_(rWWydvL#V@8QwRFwVVKf^&Kg>n`r33DR88OGM>WcIUKTpMgC7B0t+Hip&+MKm7r4kFo1@Q zeK50#Ul#MOyM-S=q#c`D?Vl`OJ->+AMg);yVKbxyt^olYJ5_0GULeYxe0B$S$5M&{CWE?ioR9sAeq3IApudo>GRYOh}&N3VxH@l8HX z@#C#x1c}6OP2hFm1dT*@1eqqPQ|@)aJ%-GF@NGXvzb<{W$T$x%=`wk(&A=3%d9_g z9otfXkGZgI!0g?h`7+oQWexVCoX6sLpXED2$)B`ZIn_EXrU*CNX#~gPu^~%GTy%1Ylc9< zs)t;+tLk$Wu8*y*ml#{NfP!d3lsM=fr`XWT(WA|gwlVkOO0xupNLpReWQuk-*sL^phpMT=w zG4T&u!Q!DaH>C(P-|NZV0xqqags@-V_Xhi>99vIyIT>G9iIr6$E}x1DkF(d2%8-^k zR>ODX1ByT$c^L3ga+LF_5k1b$#h(17{X9J_B`@L_|lh|;4OyYww3&I ztovhQ%9?Oo4^8$a2?F^=-^y;})xc7;_mp?B8{nLB0wM zc{5^l?#>KnD#OtxtE(@lc@)jj0U;xQKh1>I$z+DIkq=c?BH%pgb-zwB3|g+5br+k+ zRSCVRqNULnwqYM04pul=7w9{QU;~ChwB*>3;bovvL@md_)v*yC#FIz?0-1Q~5hiS+ zTWut&>B3h`BFb=RPjGCqILeJ1UV#c?b~!)+x@S1?=KJ~sL(HGM!ARQ940KN5Bd|-= zS257YVoc^3ZR2X?RD9x~Hy(F_iZi&nkv+BO!UrM>v3059DwXQiJtx>{*sm1w!7bFl zzInsG!_ivgi|2VOddLUTsCW(Jfd26(ll&{rU$OQP)>L%^m+g+XbrPcM2We7>C z&$i5&zA;)dMWvXOrVSwqtdxSWpBxcMG4CS0S#k89ajgsYyQfx%1q$d32eq&%cfBoT zj~a*}0J<|}azo^$>8F@!m$#iS_V0gF4lJzyV;)G)!1lk}5}i^Ti{AV{J-Hz!b>*!9 zB0ybISfkV;I{}#itE71QKfJAEafw1@OY@Ojqx@LH%kOGX&JSI4Qz-*)KCe!K7Mb_Z z(@Zb6Fr#qPuCokgZT0};f0m$If4YC{XT{a30-|c}OZ)95w)C(BI? zlY2?V^1HObnm=)hA`nMzRG{9LPYU_d93xk&N`&j*UA*erzc}dxjTFGO-tDPxZqudi zu$5&Agk=!gVPen6T5P#jxEO#%L)3?eji4%lEJ3GIC0OoyeOAnJ@~lydyo|64>l}Tv~~Da_}s>B94c2Lr?_C(mx`{AR!{9eJ$Ce zM7n8SnGWE@0xo8Y=#^f^&9CDHz0N00o{?PkH7cf%d^)jsVMXeJqF?VUd>qRT^#i8V z!$s{Z^pO(?T4x}n5cqgXR?z*{a|=TYuEe5Suoj3gYW~R16OATReZ+E&g(+C=+QM2e zr?h}HrH{jAtO{ycNR!pT>cWeuADEI;9d?Ehdu?SG&5_rMOu?A($Rd$3*!<0q*|P`x zFrGm#2qzHbE~)JFtJAQFiWKl0Wmaw+)N?{b5TZP{V!4Up|HLx+Zv?4gXO{ZgkrD7zC>YsC_A5`SM_rfTlj4hjL{1#qqG31KdR1Wo8E?>W3(|(!C z?`4Uxw&bh6F@^Hx@-0_l~+xeiv17J--YmnZW*DG-1)6fdUOygdg7ZkHcDGN`$HO)*UL!*zfM1gp73 zs#Rw{=AuS8QZgb^_CKbKuYs%W5;%7AaS{~@b33$u@gkO5h((bi=i~V(`q*$x(X=uZ z;N!L@GSDv%?^B`r$4&*_Q0lG-A$mA;d)kg=hykueVsq@$CA zvA#8=+q!a09c(`xw9t!BurI($bk=H|9C4`z(Xmw+3dy(cP_Rjl||1N`E z&IwDTrHfvl)+A&jn4J~bwi2aEP44jM{;ZB2C*nV;vOy){adx8x{>5hLtm~_Fe~^TV zb-Y-NE(S9SG9?$iaoyD9Sws$JJ4pAife-9EYHrt(=fUJcoe_iStrOX_uYv;#$dK%{ zd0Wzd`AWcre@WLU?Uip%IESvmn1y7`g*+XGYIyl4a-Bhj(3+}mz&C&CG!e$L+#PbGU@r`l*THAvYg}y6A5F zsf)0RVc*%=W@)Bz`E}KHVu>l~j+sNvd?&jobV7A8z#O|{^(mXF?o74t`{nbk!XrTy z7L8|#UN|v>-izB=y31veJ9QhQoT7i9QzY-aBxIJhl5#W@H*C`t_`%$=oQ`UlN;LCu z)B=X34%*B0Yh& zsfsQuKj7lPnOBw~ zT0hR;u~-`CYyMK5VA!WK7ME~^U^Mk&FdbC88e1=wfC0%-hP$0B-q--OZB`668EoA2)EuRECxwZc)~*X^y%Zd+Sgi z*7Rzp^xaur$8y54yU)^ppu|0mWO~7SNwnJcc$MNTzcHRD4D2q7n zSh|Q|0tX=8#azXVqV8=hyCZeP*pYMvws{2{3MSWTradkzSkMly-}+D0C~8DwoDSE zkZ10Xd0MB-|g+TyhQ~GpHw_)BU0fB!;?*(c)DAC)XfEcBoZyR;gO*nu)jq;X`PBE8nn#>Y&i$XBsBB%3c^|G6pR47oZH(bSqHGL z2%{Xhe1(d;v(rturJDOrmhGJdW{5K=q=jn*oaa<#DR1cl*SG7GE`2gCy#;+OtHl;v zd%(w_upxOphvEtUyzn>iOvN4D$awsoZ2RWW%5M@?CGKXoO!ReQK87uR5v<`n+QD@c z23KwCQ>IeD+$irVSG?OVE+cFdsA?V#zh`e%oethDHv3~bQVohy#ZLI`OLw$j9HVW zoq}lYD9wVqkorpC1oHp`Fu9@T!=@*0~ z{sEZDP>sw%0r}{n)l!(qC~RL(-X<}LVv6B!e>>_4BpqEH8#)>oXF4yF)P5Z%1M+Br zKXGdatoiM!QDpmw5eVn;CMDPfl1=MbhxM_F^3H8S9fH-hToiTj6=OszM)4WB0Kd^g z19%1qW{!9v5r|TfrgFk07dYF}u_OSB4J^dl#@cmw3?(U-7#y%LFcci5y%Yz)V0ZtT zfIp51p72YBc6L-{+#or_&o&O3bTD#j_EG490`~NU1~0jAu*0H#!k>)cT8ot;4xTAEiAIKYE^0~KQTzB~+s2^E(hQ=cf1~;po2U^~NN4lq zm&B*8wsx6-Gq^$L@rThcl*rM67L+Y229GK9Q=kets5T45`fwFI(LN~GUh#DlX=^y9 zteN`Io6ayc5~OBwS0@P#p`p_zt@w;ntlr$vUJA{%^q4TMidPeXMdVgr6N|*la?8b+ zcOAl5cuR>C>oLeWCYP4;=8Th`nL0AlSsGh6FK~g5Hklw6Cfd@CNEoFTav)2eL(&ZK z6AUDY>zjzR6f{M{yVe5wce|`pAr38UiJ+C%xsf!|Nv2{g7Vu~+%`7MODeMc76W{(M ztFY6B^hPVAdIGKo6){t^TRaRe0GDIPOyB0~XxTHf5{8T{hbyCWDp#DLLY6jh2R@Sr zso{CQXuq7tycApy?M{_?GGNSz9IO?&>jZW5T5TcGM#2R za@t8-@kL2fN9~@|Q@N?2QG2%m`0v23p#pE|juS+;?v~Cb4{@?$eipd9lX)_;WQVux zUtUsp*M4k$Gp4q6znd<$GiQ7{IGzT^I=)gv$%i*?br7Y+#Z0~w;rR%uJiXKeN9l)KW#FQ-b;laO5 zA&By@?HBs`Q`|NjjAKx$S{)gjMHYoV`l+2aJEJ^wEAmy0t%SAsm0GTi$NMVYY4N7j>BujupK4 zUnS(d`u`%3cMWY4?WgI##^4O%xz3Q(kZdWwRN*%Y`MH2I6S5H-`%7P4ON62G+{1*+ z!KTJ=;p=*^qRWs@1;)yy!WAi#mNyy|L8zqLJQSi-Zzqe7X*RC;F`~xkJ+M#ujJ4i8 z`%_Qp{HelKJ<-05IW+ue`1A(*IH)!9 zEeh49uzS5HM7-GLT&5o;0H^_Lh;2TrB{u8zdqa zYFWH(ZvCf0?AZMKC8X%Nr+!fTJ6@bhXYZOni03i@7H@Gw2>%-kyF@9D&K#)tQ!E5%?k`uNQNJS1|CV9COyWn69jQ%>WMshfsBMjA$~@$` zl-2hQSq};tgO1VnL)`&y`-50o1wH%s&k)Rgs&X}tjS#x7$apJYN$QMM{}|wq(YldS zIfOFV&rbewbKSoQ4Xbp~PHIEN#EVsj z(UgX{wVs)}p1`$2SB9d%0;!ihV{(rR7lLR{D}abJeC zx~snbTHpFDEUKmbB71~Vqb&)FY+_Qo5fY@gW}h(e=GGWQ@_m6?12>7wQ=xg-^o&s zM2ToyA~30GMGOQ&P4?s)O(0Hz(DG3le!A}x2DfhT2_aOs{{{{qXC(JKI=4aMKqZTY z{h;!%6lzV6EB7TL)G=%oWlz-|bwQRrht7?9XC_yB0^aHbF2Q{Ps3pV}cY@bQxcM)8 z&!aR?BYMKhMD}xy>FQ%yJ)r{m!WG*yMBVkC+bDbFKkumg1Jwn?LB2(8iUAEM>+3*y z)>!T;4~kf|jELAHQpoMf2rs2hi6Q1FH~UJbx(Wj#H+bBjD3Xba0R69bhlH6kDLrfW;crYy8q-9cAT+m#S+ z{LoYjbmtQ$;LjE9}4%2Clzx*1vX66iOxKvlCl-Any-rXcrAKCX3og=+{;m#cr z#L%2cvqOJI_PEroKdgN3dyLH2?fujeNS@H3@ci+ydcXgE;-r~@e#mnabyv@_2x356 zVM!x{9?#o$aX&0(D3VtQL%VWW%oeVk!Dj`dmd(%R;x_K%qX@pd)N*mw0sQ2YE{Q^s zWN5!4e!fIP*6#Y}tkmVr%HV-i`Ljgu?V#u`wD*_PVP8C?VheK%( zwqOo=P=qf>ZfyY!K>Hy(znhstXbO(Lw563L+!5z~{I~OaS5}p_(_7Uwf{63duY#Y8 z+}?l8AK5)t8K~7K_?O2Ih{@ZPT}0R};Igy;Nw@#N8imPt@4beeN(AE$1~_F_+~3i9}s(@2?kUK9}WXz3DZ?2ug!&vTqX6RQ7&^Gv;F zWEh@HqzP$u4-lJ1aso~hjnc@c9T(?vX>XwbDN!%uxF)b~pUFtQCe+~ubjq#=%Noq4 z*3*|6EaZAVCcXF3K&kH-NdsjkgQN^vRjT%z-@};LOj_Jvxc(l}sf)A&(UZ2kw-oEM z(Ywel6R{|%+d|>JELVJO70Ck4RUP@OixvYcy`{w6nMlOYGZ!7yk5_{1`@I)5W&f@7 zc6V5zqnA@=Y`mWq=Yn!$Ljyh|`JOx4T>g$g|fG^h}jSsnl2hNubU_j6U z#v%S!V4&LzF5H*Q_fR=%Yj;A~Kn8MfouX$xj(NIwT>GFHjdoq1uy-VpJS#yxJ$SD&Lm zneyR$>wrOVHH#$447z{WrE?~4H&*Ep%HQc%ys~cB<*HTlyfRSrG&s0l(T(MxJF}|V z4a|jg&a-|V6_%u);bn&0fM+hbp@qZV9e5B^jo==vmS!_7gZE-W?MT(!JhC-IZxMvZ zu03%lMQUs55-=ZKQgjuS4v~TTYXm*2P4Ys|@$PX>@*>7%b+)X^@LxK-RY_6~*dayk zS+WgfC?i-4hGV~wdLG+^d-}tvw0!%~A_>ObkdezSE}8AFHVuOHLz>axDS`&ECv{eIWI@fT}lwrBrm&KRGw89=a1>USkSa zBI55g0Yw^24!sT+vOrX*4zib!fWT0ej8kt#kIj2ijk8+a;oRnxj81DMgZlav9h%b0 zjy0Ki@Xj(WImHac*Wzu7KR3mv6BC}}Z}l!Uc^6$vqgpYn8O{gh4f7~s@0^eGmV)ec zQTDl7!OG0)GM?ga23vY>%_{U;bWbUtM01tQAmvB(YDupt^@7cHHE*4o7KLT~f2vX~ zP-jiD_|WAhey;$40n+C6y6?JLvs1cRm#a_f<_(>jiLXY8evYMYXRoz(~nz=Kvf{7ld+e543F?GZic372PD%V|4QA@dS6zS03s88Nd|}bnWDXj#?c|D7jIV}3 zWJj)X6iV-B^ox=&EH&sRYM)l};Jtp@a$Cha{5f|Sux+dSdxB%NXyRmSU7b$)^e99+ zQ#2Votf7)duZ;#+jH! z+WOOTBp96>#*LAAT5v<_Kd^e1jfhh9Lh2ce=s{sJ@=hS8ZA3LgVLGgoxoCgY7r^$W z!Y2s4W8G!jgpTi|$ea>P0l$sl(m_cwBsgG{cJb}mr?Lcz2D*}X!H1R%OKo2Ng-{)e zC&``VqP=#i?hlP>)W%yeeG0uK&?jwg7 zm23ZS22{A>je0G`9APys#ccyrxd8hsXSxNM0qJEF&q5xB8Id*P`D%4d5*0(Jp~9s; zpl3+gT)jc6cjK=*9jhsAojl%#Ha6#i;_0=}3xzDDD-$M8wheCMrX#xEOA@%g52nVtJ2tb}g!<{E| z4Oo!HRJEd>H8MU~Dwo1c%y`{b;^IQ%Z>*3k@b{5B}_TbV;1cjNZ#6 z%?AVbW4Z9YgCg67>jKkK@k_QI$sKnXnpoI~)LIoBjp}ak14(YaFl#$%u8x)0EubU3 z_xJ8GmR%N0bSxxQ5Oe-4&apZPtq|2J8e(|7``DFD8@G3W*IO!C)oTNr`U7>SQ0+1( z+7pTMo8;a$MLIXlHTS%AE?DSl`&CiDp`sq5nVF{}ji8R?36)bw%R*!}v3H~Pa99HE z`!M+WOK0|TJJ4Y?c;6`_5#PTk`6ji)HoDBiHA^xA%}VOht53`&-Aqjuo!J2zcBrsa z?FtBm!-w4hAnWo-AeLXCVJ8^An4An_+rR&v>AbQ7F7(B674QFsL;y+_ zTZ?PMld8MS%_cB+{KY`Emk(M~3mHQOUJoO<*KTK%AG6PVv(;sctC_0KmY!@-H7My( z>z<<5>N+VRYYw@MHnu<_`pqzV*2{&cQLylg#vz#{pGx~xW1_Gpc$q4hJmAz_yQ6T? zRYgWM{?MvnblrGxMkB7uj9xLn&5ik z=ByGk>H7bQor^fF9#8e49k`Nw>UAl+CH5I|(a|C19Eu|oBcEQh-GHrVvF>nWvYF6f z8`@kBX6h-m4DqmfcwrH9^`DpaZ27hCE^b%dO5x%;WOz8Wt&V07H2^DR5oO%&O;a-! zKlNCRj<$lRd+g2t;K7OlLQT;wQ!PWPap89AenwbE>RGdR9UN6iS+R-|iAY{|I?U7L zPOU0C!mYFJR_L)4d7r|*)52VN5xbr!O;8nuI^O$0EVEKEMBmr$@ST zH+`2_$f#kY=q1uIL^AZ8dfa3^SG{D@6ZI=XEm4jeVmy?CPM&^6_t4x!*QJ{rLZQ<{ zaQeA9?zL9dR5yYcaU;P5|CZty#aM6)k2=(WiU&zylX}u*wU z19)4Zf-2*f*m|E*^6`U-BO1n z>c-NpOcZo=r4o7(+V$S*^m$~xxet8tSn&m z@sZ!vP7qQjiy~n3G2)D^{5IxJwBnTF#w_5|zW<6l=;dUic{$3Dd&bf%z12kw9ff}5 zyzI85%-5vgqk};V&_EL-^!V~YdiI^_^_}Jo2Om}7P3+lgx{rER~v@uEOZ#etv;Rc_;`a~~>kk*(f7b9%m>`V-LZ+>mt4kHoRpfQW$`PJRW* zUrsOyNthmC4vtqWWb2SL5ki5Hz;eEkO(AYKrTC>D^Zz3H1SacJI_>Zg{aY}G(g1w0 z%6D5X%oigK5;yW%@`bLy*ZZO}-|(Sj7Qz45!^wkppuPQWE*7@Y8q2{_Ey4)UPUchZ zJYs7dS5=u^_<#jnL3a$cDGT}0jR;2C@)thP#KliA?A&*cl{ntf40y02>bo?qP= z^YKd!1pRc(!A`c8M|mrb4Xf_fWA7G~gicLB91XBPJ)U%<;~6P7S%jHV4u;>q7R2Ck z4c%aun{&NC=9HXG!YKmiOr|ClR0h|`{l~phFhkvw`*c*L5Hnj?pL5&t75>YLMpIo~yTHh!1s4Vz*Lk*KAf;*Ju_a z{J!~592+TtK$OFz`AqC!s)XL;n-O(Ziy6B9(C4$@;<*A+QG6{cDI-gDT0aeRsu~4# z-p|Cd|9sf5x!p;{w8N&5g9*&iFliRSL_!6+Y4M>7H$~y!I9oJRpE+4;)&U?RgG$ok zAbbvW%R4(&2SA$?D#7XoPc+L zX5fU%huzCs==#iQQghz|quOLMqvw!8nj@Eo;A8XxcPxmjVD@vSB1Nmw> zua#+!KD2m}ZdEiEfv-_(D}}78C3&*kn25VRWsH$uobJb7wnoN8?>(%-7m-u~xEdzl z0z5e$snHYZMJAi4v0o8WJ9VPkS;r zS^Bl6B$!{nGTd<=Cw@Jb`my47U+1_D+ROYMet9`E6pve=OOX#Ts&&3*pTTVS5Z93DRz8I=vUCHFr0v;~yY;bak5?a`K<6>)7jmHYI zB!*wu58%S}`DFcg`*^(D9t%*MHKlso)%)A|f}RVibWjyfO;%?5alakh2))Vh(Tq`);&*uYx+L=dAx#B4t*o ztHNH}1h~QHBE7>pZoM|b z$`Q-wQQb)?G{{DFD$%V)>ut0vm1r|ZP~sP7hCp#{mFR8ZYnvD|l^3%?gJZ<1=To|f z;SNjUH&n!Vc4LGT9g}>#w~x7jpG82PfwNaKreiQD?MEWX`p%YQgylNXTinJLZL~_1 zy=!47X*9C57FUdFol8Gm8ZhJSPvwrC)du8ItCmX|ziQa& zbaBB$MI~dEV4j({avpp>sO58Ell+k|GWUKUhc*iV69jRcjIEULYnP4>uWgqt2QY}` zrT_zWEBQ;^E?hdt+U#2&;layiey$Ptra3s{5I{#b+L+>yB1SXP$Xt%8fJv%fM#DtV ztAFc6;WB|5JEoAzpSQqVOX3*ov8ccjNc59?|9WTCb1%HJr&d&=g-;%X;>yeC)FHdQ ztC#~C;9kY61j)Oj-uMRt0@=+fM>R8oh}VLA__%k#m#Ov;Ns=lAd_*N3WLHaDP$9zK zb`N#R?R-=TQCpVx*8PC;+Qg9L1(b=BRl~2N0 zRMrt5NLx&a$>4%LT@SB%ec0vJa*^jOrbXkP_$QTRbs$*e`Y76*V_8l=6Hr7V74Eex z_xhoU?PjM*IhM*z&~m}{IvPGy8X6V-9>yY)QM@MP$_DXbuaNqz_MnJ)_~uykfXwG3 zMRvkp_qDiqrY+)WF`;tn z=~`Dl-HFzwOhx|ll7?GZc&~n3){sY(;ryZUZ2WUrir5T z#-%gXXI(s#WhN?TGz*d@t9E4JBoBLR(fAf|N`mY`^!KNr%=azfRM%&ZULxi`Plj+? zXV0YAU8hLl+j|6}SI%=&_@@u1?L^iRh@DfgTBRG#6~yfjY4li6AH#y<`JL1m);XGj z8VTS`yEeyBI~dTG5Du>6<=0RT?oO!R2fruI41u3N-wIPsjg zdn1f1_$9nTZ_fA}ebm|O`+J` zS=R}=v72%8@%IllGv$9B$Jzf=FlYTAyQCJiq!RX7;k%!I5VIKYdOHP{co8tkETnSQI> z4y3Ak-wD^8#n=;h+^uDh?Q?4%lIce-hjf_g5r!`K9m*8h-QznOf&r_yYem#jlO~fk zL11*rb3(F~Bz#}<{r2)I5|36GM%N`n|1tkQGOkCjO-?49SJ?6KKArLq%p#eZOV7C% zYux$qnKS;QX4yA40Rjb+q>h2Gk^<4;Cx+T6q~9#%IXdCypd*d= z;1DJHV$LCEf?yB(i-mdr#b*{SYN3C$?S1#C{;u{@^f-h7_A2c7f~}ou|E~2@nL+S% zlmoXmCn7A7&^`v@qJ${S+>G;l1)+&T`5_Zaxj5Tm#?v4gzigw{fY3&p$NI)Pg*qDK z=YqI{mBap~1s2`9z$CX<-ooEjri1iuwFl79uUG+VI$8e8SPh6qUJAVmup0=-B~WX+ zvG89!<7_ZT%r&%2u4LlcF~-t6(0(|AqY|IZscbPVT*`pz2cI^Rn~yWlM4#}k|H?bk z7F9J+hk|Pe|7e6*mrxzL&Ufy6b4{+qQFjgAW0$U8_h>Du^nZt-* z20{TQl)>|2bXPl@&k>^pIR9oOUQ244dZ?Qs%wlZunyr zDSKYxAjFx)eQ7B>4*jc-rYQ_N(j7NQ{&7V+fA^_H1 zLBk=_LKLe;^RD`{r}sE!FlI+Ktxnk?w;nbyo@qpT3w$b-mjocQnnF`kbEFF9gH@9- z>8kCESkhXqim;}WO|mleaZmtTs@A13%T1GmgtTi8IQ@BK&)?&$xh}N{z@DV0&$*Q6 z9<$aGDhTkpj3QpVaD>LMfBR9`j1hG?r`q=AHBXiIjR#4ac!XS3q0M#-v-&3-sG-Iw zFCNIJ7osYSv)uzC{pbQ?Vs3WMu`rZRy|((432J9N9ULbvF0WPE?I0JBqp>?*yWAbO z)R!$e^2%G<8RMc=W{cn-!5eAp{}#=5dW=(KCmwoffc>*e$dStKl+su=V^YP`_@k~zEBvF}q(a-QX@JF)Hffl>f_L;;o{)(o4ZpBhIaj#*ZPwnZiTDLrOQF?wUc zW%3)SachHBX7pxauk80o5e1`zdUA;52|0zoS-R(F>B`J6W$Sp(p9!;^1Md!b5G_C_y6#2nQw!xBMOGcsbNrWW z(JT~Lmym^}DM|ZLrVKUbjy1;Vx!**}c2ogzinW%MDv2ycC>mW|guISdNE}K_W`){@ zpEpq!g)p)>{2qgSr3selM9$fwytw$k!DX%>DMZAsKauS$<#hfS_vM={WyEPs`c5s+ ztUM>-?CBYU&PN9`Yl*W8?H^;KV>tLd%(%}76x8v zY#KCVXI#e>kUx&NgzaA8XDzUpR0qo;?j*1b8!C@u-kDK_7yeB3emJTcX*`Z&$>@ne zWC5QoY-><&OS3f3J(rc|E*Cq4ZpQyxQWb}*9DJWxq#m}|KSM3Rlj9QsCM;u1f!5aZ zypO>wGUuu2kY#O+S;}uLnrNwwQixhdj4q&uP0tuy+^P+X2 zscel~NOgKaM&rv@8n0`3nN89>YqwdcvdvZqk{!*B-lDXjOtH6VD}TaUi?^ry!8_=Y zz)Fh$Sw==JIFC48G7)Uo9btF*AhLm1af!|DSsY`x;fE>U-HTPWGsW@x64&o7HT$fM z#xCZl-F{dvhp`up)&-+fUL5eMP64!K65#jUM%`cFY#S|Ce=OjdG~l#_N#ZI`)h*lM z^5-bHy;T832DAQbb{MoCZo=Jq;MN3tVZl6u%9-OT{;^-qj~;HEV$k%-O8+UfPai(w z85{wV4xh1}i(W?~(-`4=Dkz#VaUg;e^ztc2Z^CKWC@uQpdn#BoF>?J4vtiJf!NE#Q zy`q*`lf~~=b9ohDnE>?H^ow!rggx@Hzf_5^%mTjXep*z`NM#T8elAdf%*Fw~d}BpDN*e5Rr;Dxsd%J&l@A$t2j3S6a<`6uwZ62S!*9?VhSBe9%tR4>eYmb`l zd8aWimf}yc#BEz7Tkq{zXy7E#d1xV7yE*s*q9DhJ?wlTr0iZj%2h5fM4u8r}%wLsR zLbwVY43=LX(=~rPC5{46`i5(63%-|+m)HMpd1ez}0rO^lJsxX)07v~EK2Mla&228} z`SN+YeX>GmHfd8EbhMz|3p<1layc`$K_vT1)X>Fr99M_Qy?mV3`_@74(7)mJLrMggRDjhC9#Ek0F9JYYc7k{#V`mS zLSc8`L11{UE6`GaYT^|p<&54P>qeXv9Rw=s8Qv^z`1UdS5f^6>d+tEr+6n(GnTNte z6nYzLoGC^fbpPxX*RUqvYFG($OszUPmpeam{C7XKTI7>zjUnU(H0P8yFW{Vz?nXlj z(XV_PE=6$m>plrtbGP8winKSx_c zLo#te;Y7SYk(Gq6`l+2mb)L(&h(Ym6WV>&#s)vnb^X#uQe=^a1L$E{YZtqtHX&^3O zT7eng2(P&D6VU`-!E7&v{kdyN8?@&jwTD4Yq7liwDP|4U&E&WvVqb})8U^8RnKAuv zJ}8FXiQaoVR_w^+knXXV>~Qba$B^sU6dFY-vkNa3eJ)~HK(@r!q;YbsXDu>Er@0X@ z1MQb=SH`^aYE@G6SOZqnbmYbWK9v7{vsuY10V)n+tTzMUj$QU^^QWtZRL5cvr!~7; zW*C^iusu?64S-q5DX3{=jK6t#5JXW&%pa498u}Q~kk{T7mEih9 zlxarpI5L5^61rwADI2x$n);;dhL3-7ty}R}@FLosGO?3y4)v+Br^JSI9F>PxueZF0MTNP!dKoy+*000qLZSM)+y#p2P4jSz5`6Bdk+| zQ=!kJ=s@@M(7=pqA+;HDwf7R6CxHZ>(YpMv?sjF3+?9W5O$hXd{dj-0`Su zurZjn8jpGH{c}E%`P9JncF0l^^o4Fd$m2k>1O{E+D$39A3&I3y1FN%(Gxs|{{H?WMr|`dfU*1QL3lJk|8zEe*UL}|<8Dm6bTBxb zM{SMg;eEb~3puUEvv-DR9G-GMq$=fir`WyArJc~flZiHNnnO23Rv=(nXZ=qv_qeL%C2_v$ozLVQiPWIrXtaq9aK-b0w%{-Yl zZE!YJH63@y*ozu zOuWU#fr)^Qq&a$tZ&p4wCHn?hc0OrIW`|sUIx>Lg1FTr%L-_P&83cPi3$)nUxocv|IghY*lbW7OLM-w>8RvBCk9t&mZB!9Z+wQp*mRvK7FCclJo zuYu;CXDi2|z?!+NONY|#Uu8NX0l?ccsY>13hHvB+C#O5q&-&2`E&IZTSQ7`f#yQ?+csdFZSnIia6kz?4XN zg)OJZU{lGFwmAMBXw0kkkMR25SRAT2hFJVw`pErt*M8G~+XugcyetA?Iwr}CMO??I zt|mD4Qbddt)v$5(@L1O#&+qD;VAJvdNzR^eVXuL2Nlm$RpLuh@6Sd~SsW&v?X!!S; z@EID7*}x;W+Iff*4=1NY3FRvc|J&`}Iij4;a9A$2LMGj+v6^i#;Uv|{Ic~ni*!Qnqv-uESAc1zzITXsU(Q3kTh7sVl)X?A>} ztfEoY0gp~Q6ZV?bZP;TG2q{gT{>)ciHgsW^bZ`t9FBelsVs!N^u7}CsR|W=W_XTs@ zls2i*hF?5cne;h1dUoGn=0S$O|7~z&`p>jFE93td*Dq2Tk6CAc?L4Ob0J)7op&aAa z?`7Qs^PH+WY2tbOt|27_C>WZt@gqclMWkbPqbz@(YCn6V+m*yFDxtp*BGz?$Uh%_c zegq&J?a=*t=o4~#U;pf64;5IViOjs$RZaAXr;jy5kl^;S>2r?(P1%dAs4ROSGW*N7 z&>-UQ=!+8R#~EwLc;KzX%}pU_(&xfmz~<*jqUTb=IH1f#--|(9AekY(#_-kt$<8s} z?=(uNNbkQG$08gbM+r5TyHc18_5o|@65}BZ$9%nrhS#|&dw?cqqQ~735zEr206b%m z1DUfJHz*bVyIj2T!&EOyYfemUp2#&h(~$xHQ#bmx^?|(=@7ZHiJOZO<;gU3x_sV6u z*pABU>u(mXV~*lS45e9x$r5LfChnG6N`@p^8B=*mcJWe9IZL-nQncJ!M%@EqE6#TH z_pc|qT{OA&kvJBah@^KLn{uLw%&1xAM2gKJCM%ut3+~ivbz(O(Y$K6l<3({&w9RvQ zfpIRQnHI3j zEH5Q=X{e>l+05X-)ZmeR2Qu#KXw?|8Rf*f6hb~^e;xlpm(nb zAK-n{zsPYQsB*Qk|LKRTpa;8PF|)NtXM zgtP#6$pqLM_7#NiQ5ualr~=Eueaw)TBGM^0-8Q=|T@eFq`SBwA+!xjJE z{`Jq1?myV&3_r+?|79ttN^`t=gB5o3nED7JUvdE(1D0Xm_?NSWv6}OGb^GZzJym3( z@K|~qe0=bqI@*6I_@M}TKCj35^xM1^Z$94N59{+Kk#&GjjDf@VZFHrrle?N(g`ypL zfx!Cq&bQ~gV-+h%%?`1)%%!bl>g4Z|yK}poDk+oT+e7GTsGC@V7v((s3FgDk0dPNk<8%p8@w`sm;x@5nPEi-gP z4E}09i)iaT7j+}Z&8rq+&$;L7P?Ik&Mn9ZI`14&qyWNHRyLGKEH@kG8xMcm4leK8c zsP z_cA=w8^7@%l~>3Icc8o@OI_{$fhdsg%DZ1sS!|3^m1kB-u-@CmFqv>5E+A})F0ydD z1ig~Y%wT3iuBL$+@64%5cekpq<5gTNRu$=D)oHBfEtK~aTC#tw;a`56#NXzv8;&G^ zZcJn0ZG#!}s^yj(NUm|iSI-7cdgV${sb{#S&wgE9)(>%YbhkBTy z4m?gP?X+Nz?3@|#G{+^#%~DvgK?-6Kr(LVIyd1Nd|DBi*=_%GIH(WWXX~DCG9Awwd z{5A`_lTH`F_h48LT0PMi-zSz6VT~OPJQAs}5z=a_x$G)Xm$MexgX5vChYd38wWv@)Jsg@qUBM6Fey(U#)xCa<*t7+AQ?w-I zC2E3B%g(IVyT1=S+O0YwkFMhlpkNSO9G}~p`dNcXt!#sL7n6HmRF!zs9l{snkL3W< z=dXz|v#Nl)_}7NaF+*AL4Eox5XVadF)R0UiYtC;fQ@E>H=6LO(0yC9WZ^y(qmp~@( z>05!1l4C`wAC9$tM2eA%pV$SuEG%c)J7kDHN z@rbgaOE`@jCfvC~pI%9nfkR^}U8b%$4jcNymsKFuP*T~%mszl{KENv1

    ;n3?s>E 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�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

    BOpKY|?J-qR8=aQz(u>X;~JW_Bh}7| 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∾(4X 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

    ;k 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

    5uD!J3NHPstBk^9m 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

    YMHmeC&Xzx?@ZqGvuF14liL!&t}cK@DnoNBuAP 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

    Uw2kM>JE`0r;WRyb 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ƎF6G#veWhHh6>{3upkbR? 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 z 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Ð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�$Co#SnybV)pBvU{c%W1#yul1_*t)gU&iuf5?sl~ zyHTiVH37~9t97CdrpA#TBUD4Ad861?H(QmZ&6ySOuR5Pxh(>nvU%8EFc^HVd#qEXG zhOwW!BWX9PTuG*Bh<`*~zVNE&`hxh|Pu)X8*N#)jGa<*>1-g1bb-K3q$(Zmcy@U~2*N4%uC zvqX{!R1d=mw)pp!L2`{OS9(jms0>zV_Rt!Z5IFU%>9K& zX&sPr2^6~JGoHM#RNVAY>zF~nQte4$%-7~t!nP6}ji`hk2S1^W|6OKBrL!%m)1Wp9 zzTIl9n&Aty$w@5{_kf~`_iNd2EeZSfO61i2GaK}ACeENzFsu|z z7g%MYcf>$J{c$9NxaE(m=x;ZzZi{wI2?sG)ROTfV#zy2RTb*nCMZ4MHNJF7mizb&7 z>=BP*F9g4iwx4%EPO9YQSn!~w1b0zu(XNRts7T97%iNn*%Z+&yi(lGQP;fBU5tu~s z;Xo@!sI;5*Qf11NdNz`ABPyp#1-7IgLKTFllX79M`SHj~B5IZ_TuJ7;o?^dm4E>-yp0yYO*$#DX2_KqjxRlfa?4s;Jmi|{$un_{vJgOdWB2XYV z@Z;Z>&ClQSd%VdHG6?t!ONcTz&x}gIrChP^6M^Yq}|3S)nMLGr=_Q|1kEB zO`?QLn{L~-ZQHhO+qP}nwr#GqR@?4gZQGij6LC(QnRkEK5fxGO2dbW|%sa13xgcpQ zOdLnPc+mK@Wp)Ww{L9+&wU5V#?*7rjfGUJ)YC4Oz61#I{ ztub?RZj2k40x0knY~&=JNp(L(3(Kw&QW6o=s_3TCH~1rPo+Q2`CF=~q4}%GbMad+Q ztZ`*`*YC)X-(jx&m^;xE=B!mfDt?l3%NNr^w5C6i`1pD$JLl|7^Q_#as4EbJ(aBsq z@mCbGfwd-pl78!HnTDb1ThrsmM}@aVV!aG_7n9h92wi}}fJxS91ETd$z#B%q^?fG@ z<8cjO1bU1-mDl9kl|u@ll+ERWY+9CFzf>JPN19q*PmiZoJl(LSShY?xJ*+ zvLBvLGcS2|<{?4ey_N-zWT}8A$eL9uFP|>vo~A3@PlY&FIW4_FZCPYgEr{001MQen z)INZa&Al@wEZ8{P%J0+R@ogX!5z zyauA8SzTU>jr72Jqs6-(i49Z?X8>Qv88_o(5U~U#1|ObP3&CKEGA4mf}_Mm#_j`Ow1lu`5JAt`X%aW^15{9?8;Z!d}N+GBJ$;f%8zpD2W$i! z`1EtB#q&f7b?5OAZJ;8P&Aw;Oq4T*%X@A1XmbAHPwfy?jvRO!DQZPGjexJ{qR|fG9 zy2N@wy-x923`ZLaddWR2y$|ph3HtSR2z9~Np;vQ5yS*@4!ngztAf82WU!@QiK!5|o z1Dx86!4H5qk<DWgh_E%ZmYIaSFC%nnS}_E+LR`Lj5qI~gi-lAM|i!xK10^qYP+}CfLkzhA}DfYxx(rawCU+FVD?vGiLHX*By zaNOu|H&Vd(iSA~)?3CjqX$tMUsTF6oLLC)_CkXy%Dp2tYhiUHm2duXgU); zX>y}|d^MNw$~s{Cq~X1nDf7^2Fq;aoha4&Sdd@`q-Ri$1zUzyI`Maib0ZPK&LC`Ju zb;24z;?cLAa=Q|1)$D283R)ctq+|_ZKgZ)pxR_`w0A9r)q&DT-Cy4-uK0PIh=mXo_ z5jJ#7p=b}RbL+!=EBh$N!?am$%mu2Bjj39wl0pIJfud{zl_;8A)I%uU{R!J}fh+2( zSR7y1r{rmUS0rZ!0VwpEQQ4PH>KO zP1F``Bj(pe@AY%&kmYLTKfM6xHKtewId2t~79z9-8$}u{?#m$Dy7seyy>e&K18d(^ z8;Z&n*RQN};wzhg*rEv`YjvDNGZ;5H+a996Wk!RLNOQe|?QSbd=X;iC;o9hpzRK zhB1$`prBiDHc{`=6CTc+-yS)H?rzsaH#r@BPuQ6nxw`t!ocD0(wkgIq`x}3@Q&4+Z zJ2qM10O~5tftwdajwbhTHSY2>6VNp|S=;jq`=fn;wK+mCZ~GJJO<89g5@}ZnHf(6B zDrxka+(#Ixv)WGFF?cn=KJVFTbx`XmJ`v=zfRQ6u!ZX?AXh5FfUS2BI9LPM()T2Y~ zsLDd2$cYLsPba^AUKJw8igkb#>Z{MHxe+=DSx&Pyz6yyJIDdqol|FCiXcQnN-?diDx z$NfY32xQ1{cnePfQ{%o0=yhRaFDfsZqzpIxfzMSUF@YmVy=MNS1Eex*B6{-;txcK{X4`cstcn4RgoJ4u|O@23hIDf~Q zA(Q0nqkqh0pa0cbYWn2>!9?(amN6AP6?M#AZmZy_NA(K70+#II?)<8t|Od*8dqynYoLk{%@{*2@q8|i*Rug^D z0xX58mu@*VT|W9%X$GPNnZ6>yT!FW(2%N$oB{`d+tP~N7HC>95hV-bHL|k<=s0ZUI8G#{-5mj|%(wwV zvGKf#_y=E$8Cco<9R{_>R0K6KOh_7{Invb?Vm)cCXb;{t!N1l&tr5)4n#1$Y^DGF^ z`ubo>kBsPIr}eVL`9yg^{$E^0J!k_1!zmp_!aB?AR(-lmo$4U`k!?O%u1RTv1{np@ zIZ3McH6gx;iyIKBwHLg#4{B9u>-y3$3Uc3ztLBCi7h3<6P$_VgdA;OOAt-8or4WrU9{as{&HfTc zr;1dc$9J(nyF}P2z=elu)8T!go^`%2WrEP=OJcniA3_Rw!~EAy3!e$mC!FYuV;vWm zyqOB_Sl)Fd{ZyGg`%iP|8aRdaTgzpI_aJB*fETJrt;J|Q|Ek-m!Ij1?h7K#aRp5l* z%y`*qaAb<+jlElXIN)p*?bGMCU&+^1bvyrF8-*tiR$AFBn91ZHeJE>1N!xAs3DUn( z*XnGAj={)_C;t234WP_uRp!Y$X@7?FZHJeKky2l)D!pBr!$1yccKefr*N}3RGB1f4JllE^e?>o%k^kE48&GxXoiAL7=b1sGDX`pZF; zNH028N6yTUD?+~A@Cp4Iwm$SJ?{RztAs4A}h9*U1ba7o&6}lB@x}AQx1b)ztv>2dd z4!4ZnT*_2%ZsiIkCv@$XN7Y8V+qd*CD$(L`0Je9!5i@pI)i!gP_1-1b9W%yC(0}cR z_9+lUMT*aJkP6?lM(=7}STqp=$Uh=oT8pDX@u;1GK#Y;FXI5mMp><}(*mKJ=|DbfI zPx|q7dllfTv(HPgw&hor_au938{Ti z##X;ht?E|Uy0Sjnc+W(dA-JFYX`A}f)&lCxkkn7D*t!69r%CGOmYJV_Sh~EjkA-&! zdEEJbpY%fOj=fk5t6y$zA#g|K=QVju#8nlv+$gsXX~3xYY?E!f*5UW>Q}UJzFC&THTLlQd?U*_T=|xP>Uce ze#mD}7>X)=pT5yaXHh8#x9g{KsUd*?b|Bs1=pZ0y&tS>!!ktfSzEQ7pV*PfvIF;KF z-DgU!_htsX3R!+{mKDz~nQoj*l49_ZsV8~e4@?^DzL~vq7w=6a8H1dMpYn~*51Z+q zY&=I)t^}x&Oe%@W@ykolos9&#Y8Zb-Yw{~+54?ySagYi(qz?e0Vp#Vi+^`RH=SpMT__uC@;zteimjQ?d?uUC62?sv;_`$c`LG`4`# zy~KQWCci2a=8kb9EZB^R+T zut%!2{|<p3CPUqaX4?G~=I(T$(HduT{a-2dbPwDl&cSM7eyGmO3Gd`Rwnw;fhenSyPW77sI09@h9i)BHzV6 z={@g4Z)F!vm%FKKiIm_j?^wazIAx5wZ93w>Lub!nW?AWPH9gn`!x*R+e1HJ9Vk#i#B})l)-Ft8W7t4@alKDUr zBW;EYTcttE!Yr4VfypXt3YTb%LG#<)7-*`_6iunLBldw(`5k&9UQAWpGWKlDno_BK z`F4FUZTnWdKO+6y+R?CEpMxkHBF12+rV*ZH+_qifA;Zi#x;7v)$0L@oLQx?M^DLc| zPgY53iD6kzAxQjM94mU_53m>DgUEbIvX^9x7sCV-3=)Z|St?z>KOSCsE~(La?RStf zy$N}d3ta3G7Fpt3jJ}5w>yG+)djHZjKHUk9c9c8SAUDfbj^T(Rogisz|6oNJLF1R1 zMJq0SXs*DYRDp+^)ba@P8WY(r4YDTdsI}Vs2_gz?AXHUtO(AfR0@NWRC0q-iTZst) zpqv(sEUuvlWC~+j{flIprblww&?r&ZsO^dEE^;|8FnjEj?;&{i?pL# zor!ZB%xRko62UC*#sm57(I7?ic;={@R6K~qDwUpmSjAS%LdlqmR=)Q>tW`t4skJYs z*&MiH>|Dj@xFWLZG(C~jzf^JxwKsWhFF?MUlSLWIX7E016474{Q9P+AWSMu-^P4O_Y*&f0_ z)pbsUVmhu|UJpmMT0n>GT_6sU@Y3HvV)pKsmMD;i@2WrB<|VYvBG6(*3=7rOF-CyG zZq*k4_G)4W*J+<;S9!LQ;*Hn%Hr3qh8_PU$nUaL`^F9B-I8^j1JV`l_?}?_tb#4NL z(zE)(DSRKgef^k%*8J}1yUoi2{!9-Ry$0$u2y-^Px#q({Vg36?T2uf-jdMuP2x|)A zpb}e*;LP}FBu&buXT`6#7k1XDU@DfoDfN5s&WUUUPqIdmQ1)74IMZdGV*>dafO)OE z)xt8t*FyBGbuI|pPyN*t15_zICEs{sQ?`}OpPIIPsQAVQPhONbQ)GB%Ixd ze4BySMVE(4-CRWDt|l(1Q}f2Mp3b~&HF7`|_wMX`w&247g7-9kA-$qqh3g$;u9)e# zq8uQKD-O9u`>mfG0A%w#Nk0!ogJ>LzJxcp+pZsGbD$tQ2e*VgUCJUZ@6r0>tWzmPr zU{|HUQ-&7{@$DDf=+iFVlY~>jWemzC#>d|CRgH0^dp3{u*v0~>Bqjwa0 zB@&nlydF?%2`SWWhCr-z+NsvHa!8D_RNYMCuJc2S5Fw2abq+3umg)Ww%u^zqhe!F# zr(e4-ZKtz5?jP+W0zl)~x5t!5{J7vkC<9!mn)+QqLwK49E-~*ssqkc0>qlv55&n} zk;!sjKd|PbL18nK7PF!jAOaU<~FCvrb<-{x5amUcL^wB=Zg9)8AQVC4!GANTyir83Xj6$E! z8{oq=UiF)!_ix1@90!uhYR~^Pv?#Qahud#>wNzkk20$L-*2ytJ{q07 zJu`9Y)tJ&DdMoA8>3K^}!?Uh1^VQ+Mx%X7j+-pacY5reMOWWU0j|^HxHi}I~jkgrS zv1nJa0oHS{1=hEaJ-zsRy#8Guo`xcWz>^ts9xw-YW=LQXP?8gaz29uVau^1s-(*7# zy1oCPe-^p=r5N9_xd2ai!WM=KXl?@72ojItpz{^Xa$eTV5hbK_@rTH+p3)N8)@&RK z`^I?&^0Vf5^yZBiADev0A41_>s{$FHuQ$XcV5H`-b?2DQ41UK*rN40~;n$Bm*o<&T z`{VtN7aQgD`P#@`2KrQ6Ceh9>pb>bgtq1f+Y@{0Z4Tj&a( z94X7drL_7D6toQ18NQ+P5at;LiF;uas_Hl>l}(-NJ`cwyDEcUyd`qp7u=0${ySKxn zCCm%kx5MI5$IIk=3S1m_hR;vrdoPO+YT~_^-kM#id zm=QUopq~MnjOQQh0d^D`2ARh_x{^d^tYTo#m^`22`};+g@DbK zkD@OcI?1UW7r&JoEMAlyi5!k%;@SRB7VG+l8sMX^;)DwbLO>Q*y7g+?kQl=U=ALe{ zA~snOQDn-8S4?V`_J5>gN2Qc{zPD10^C6$XLXne&>D`6y)aB0^Ueo+}&Z&<-oPv~? zk)4Ju3XW^kk#ZwW!Xv9EkVrv^{igH$N{^@qIrp+%U4S!?wIagNU-pBn;p0?e>-~}@ zoqg$tIK)f`X7yL3rVwljv|wLY_OS9})BPpqc)sqzg>~&NjH+SySpcKl$gIPZ4|*SF zH%UD%83)Y<4|y^V3B7fzalL(P8~@(agZJmPZ@51Tv!K3H2IERhXkEU6i@V#SLpci? z7K~!MCv~P|p;?zUvDdyQz7V(hRmLs>{PNzZ46Vg!B``#^tW15pD%qQt_#$Yf z;$x1#3x}xd3Wt=-OUAAujPt^|zI@XT-{RThunihMBgxA^uc}5Ifpod3IWC>oOKe1V zVt+_?%8lX&9pewA^}D`(6n-DKO8Ta!_zHpx!E-^}3i4dBnZJXsK86hvPe+a7+Mwj^ zuPf)gBzQBXjuee(fb4i=RlFQMP}U2HE-?v933mQ{}Ot>Rx-i zgHAxHjWk9K6f@K&PV={T<^sIURGT(8e=Yb~mXkN@MnhoFM6ccQU!9~^|Ht2u{{&d( zWM%)alE2g1oblA`NHZtD!fl=`aa4E%0s}ETOb0XLrV%md&BWlRANV#8lx%VL>e6!d zH34UrB?|1B_K&+ErLvJ5FgjLM^O{XQ0$M;4ZciJh0|C-r6dx|(dZ&a}7e zO9w~E#d!s zx?<&heoqZDJBAL#s4UOkEmj(4B8DV+4WRZIix>eh)D@qfmI1-C~Qeb)H zsLO7Sg-8-RZWa{H9%1-vL4_tS*XXpe##H;jqalPq5et5f`%zQQ9@UO$`%J-%LOJwh5wcXpYhP(C zO<#KM_`TS76NEZ4)V*HXqW9eH#8ival6(`l)D2lh(oFUUXw`ZzOcvA%Jd#%{5}f6? z9%I&cfA?p(5Qn7_1n@xwOmdD?p_niHM&3j&R?V1GS{dtg0hpEB)j%xC&f6TTS52`; zYx5iC{t=4(NnlL)rf-nFdEx|HV3+RG}C z#8iYNzOUSE?m#mfQ)mE!I;S0TRnQa$IpG;&YYtF9%!}pJ`do-5$ubBNL5!sa!h;QVA)V)>Cwc4M}FYRju}yW2f0DZ%j?b^Fxr@3NvKU z?C>&R$88$}RNoxDs``NYh0{U*+l|~ z?BQ)jC2c@ib&9OFY%5bWI`=*M7Pd~gzZdro>5Mz55^$r4 z;oP!3Z#RV4G(qLYC1iz{K6KSh7$4DZt?k#ey9cHPy4oIJ0UU&u;#psLAlWGjTIPgO zc`e(5s&FO7I>qtvQB-y>K}!9oV!lb*z-@75Xx}ZcK%#-c>9>?yqds81GeRADOQshn zgR@mKDNSvm9-y1fn}Y;_X#|8g1D19eeeBBJtrUG`*KS{!QB|R&_Yx?%6*O;cl_Q;0 zvr$3ym7}06NUf+~IbRBN6T9+JP&|q4uAVbO$K*cWjkWXKB~z*147!TU=AsjXiZQUz zJqc;pQe3ICeVeTX!b@c$;<}yQ$n9YH!ODIPU&W0Qvs6vsh8X6%EA|RpghC=GnPRV8 zf=NJHs0Hb!9jR)+!Fl;aX0uqKfjfp$*CX$p=M#^0akL?A=+TRcM>oQ4)6zEaqhT*^ z5Zlo99J;U`pp_3uAz^<2^PtwneVMsq@8Vi?B}SBM^f=FB+<(X@6~aJAQjfj7zWFaB zD%oUubA+-rEoY~C^hX~I9dq^Fv&pj^dPBu$Lef#}*lv4sf1)jQu~5r(b=ixyCzs`2 zKq^EEQdZ7;IB!Fo>ZsN3%>BT&zzz9&v@*7KBT(Xe(>df{pP#V@%yj1;Q%Za5n4E^* zkkgN$csRWPJWm;fv6;$(jUbLm)`)|po{59F79E8rOYKZ<)SIb}HjjE^_I)VB8Uzz$ z`uY(tXb5tZjMIPyc)SmVfPmnB-)CV z&#-d1b9{hK)t@!xuHp&>Ee=)-_bZt@$<%TwS_O;;=h&ulG#NI^sQtOldI(2PK6AsY zJgd31=AQY(^KP<>kz)A09yYYW_x{WM>FiA$4Hru0T33^Ibnhc0q`B*H<`tiRVU_gi z4;n;m?Q$H4a@E6z&9|5Be^0L8btB?)&lBgf2tVv(2WR8nXU zkd1SYc+j`9vO$Ju=UAxaZn6YvgNFTTJfdI*t(oudL}77>4{UoRp&|3cQrpnjY-!UX z+Z9uLT{)g4t0rU*qCOfGwi@kcTOX~(OIv(7gQe=L{H}0 zPbDdfRoL4M@fZor*bDC|YI4**f2igtULzQ)Ne3uh`JTL;QOBB^%6#4e|{i=edRIH2U7Z^9I8DSMW5xzRdsvF2+wf~D!p zzvgpmmwLS}Iw+O73bbTR!E7s8`JCt0W={zdQv7mq1xkN|PYvqz2mTYr{w+$avWH^O z$h4hO)!aPKK9@0lcPpg|7^gcN?oqi!@WnOo&+)`1u_KZ!7GnhQ zwT!Z?^As12lo)Jhb;DDJG%iiBwI!newof^V5>Id)+cYOz+W=ZXRXbyN)^(FLgY|f; zU2H2NW$A6^&C@~}H#S-GplH~Q2AxXuEp(*ZF)vS_0OH$T3wB_-9F*b4wm>f96VBS~ zSqGpckJbyegS(+nA_|tyZN3O*jiZ^jV{zlplG21WkB7M*2*px`5VN2+&W9?vsy}Ntde$0Qoar@l` z@a^XgyFV8fcj3p^Y9C+w^5KkTS#=Nb5^Ll-pqx~27od-Z)GLa$&kS8#%GDY=1l52I z4&qV38==}?QHRrL$%{7P?xXInc1%`Qquy%>dG?0E8bc+2q27v2B# z3Gi-9#aEm6WVGwdd4+M+*j#`8D7d;%^WM#9iA~LJ!v%On?3$LSERDq5FGCpk!c3KzQP2EMsr8`~p@Dr^> zuMNK$$tziw5qhAp63jysFOdcR1LO1hc>jENKPCFlAVYQV&+VNl!eh{4{oYc=vO$P} zR@DB%#qC(2^PEfXd}xleWP0IG+V%M>RcI+*kQam%>c3Yj1%>DmG)Z59`P@a&$K8@P zX{>t7o}&mquq)w}^U_6?jJ#O;>`-$@WoDg8#)MgcY8?x9jqkY5dhrp^h7_s2TU`U%Adn==D==Et zUL4bxc!rf(}D!_I_na1!1i?w%+Q=*lTMm#TSQ zuJXutHzLPOhUaF92=UWeh>0lbAw>itNeM)Ywa66?2wig*V7R&0eM5qGpsawmP=*5m9Ok zd+(SED%9Kb61?IRRC+t$p(`?6FEA8Usn6u>87?zwiX5Tq;DJaooE~5x%Tgb;gePR> zUw8uZeU0asTT=ngj9>zen}qY^!^Gp|mTMkB#pnx3<4Ts*XLY#Y6?2!_v!Z@U z3#^ZrVED!erRAu=ju(vX*=&FA-arsCj_eXvn9NNxhmTMet8tfHGoPV3&Rv`lKUEA8 z#Tb+k9mh45yUtz+!5K(4fyiA16qH1|)J%R7C$8uN%cO;=>C6)FmJm3ZbRO}F(+OqUk^ zHcb(tAG(BbUaCbbv8JgDjXH$%7zd$G?2t|rLF3~=Gh0Nd)f7+4MDMS!P*=<+|Ethh zP^8?3PoH?XyP|02MX?s-e5p{TiM`g7QbBwb*%BxKp$|O6SDFth_J)0s;==+^qtN!40J$9J0bvU4jv|uvl_DFv(zdvj+Dr++unk2F zff2n&AhK@d3ymX%O*8^mtbF`^r!2hQj(^PHR|e=(30My{FxG3 z6X^#RFqb3||K4Zz0Y6iI?;f<3T$Hj(mCq}$!YP<`Y_&?;L!J&g7xO0%O3hb0G?vVW zf~&UP`>G3()cOT5AU8@@v(Du74MA;LFcT8W9DZM~xx2)6W}dNH+ml-}O+Lr^8~&7^ zW!){*CC#Nnlk52CZ+H{Tx*tDc*e@5H{G61nBa$3KR#2B$@F&s6%-Z$ti9uZAq|*0q z$nK`??9(#AvCXjRwBy;hS0Zb~{n@b1e24#G;Gup}wHe`$D869XtUKd#Pqtz)h|#@T z>%H^V@>j=1%RKp$+)EWNRRgLPljWs5NE=Y1hWuB-pEl|{Iv+`h8>J_l!fyfpF1!mQ zt(=(Bl_$x@x`LS5`7h4KI)rcKB05+j?mpTMzUSD@4$2NH<6VX7HANSKC^6VtEo)J5 z>P+S$+`9yb6{xbP90&dB!n{L3(r~Z9{EmMOUR|8|b1nuE)a0n;xJp+AEkY-0T{3B;WLAIXM;;lBf^Eog;9uCGL$XO|8Mp%zC*YPUUTB2XqFDNW;mx$x9Z9THrCoX?4ws?qV8Vs-@Z@w3 zYqmt=?zg)}W~WplAIyk2rx)*2vt2mhElH(Qcb6zc2CH-n$xbe$W@U%uliUSHN72V@ zv}4FhW@~UU#T*-5RcP4?kI*5Ok|Dt)83t{Y)&!H5N@Hz8R3Vspz>HeU@?{GRaJZ{N z0B5vfvba{3m<7Qri0aU6IR2GwSz|0^qoFZP6O_S~w!8=v*09e0TXHaXn5=nC@?Jz> zMXr)fmxq9x}Ast(Tymb4NJV%09)#! zR0A8vS$fWZ(MBoeFH`K28Il!2E8R)krl@GqaA-twASCB3BFZuVn7ZG14wiG*bjvqelV*ShFFNr~+my zsNup4N1G!hF_C3Pk&uinRMHFzwn3j~nX5+>7qi>YR<2qL?-A58k64P4IuSfDg^{{6 zaxFDZ_Ed$7Xosd8#5E5E36B{g+dMEYtg=bOc^WiP%_v&VhDaqJHd|NOfDVSLX9fr6 z@W75rS5`7BB2?C9hlCi3D04WY25!!f26S6T=4b=e!kz&;n-N<6oHF&G>~}9V8lr&g zm?`eonV84{TbaEW4eb^RgFxeoS&TV(QlsX9Cm4RaIWI`0c3$-u>cA_wzVGtS>&JS_ z&-wr6mGFg~B25 zuLpN=X#AVI%g5F43&+QU5gWe^{u_U<=ir}@`)MObx4YH8AI~a z++Uu4ZNCYpFGk+*cl3C}zrvpl{XAZe0RHwJQZ1yMZXWWlgkeV;}SH) z>!oF^hE>YParw$f*2u~7a0ofBmM>T=sqxX@o!b5t(&LfS!sC-CSCjg`3?}v)rOv+l ze|_+ex6L5zmEXw8!LeHtv;~QyFkwhHb`On)rQx!lb!g!n=GeP5`y# zxmmuxw!cLGws^^+DRXxEI5P6-7$yXx?Fp)8od8hW$X~<7Qe%C&-aMl$_Y)RJM5%FyFlNipAKXvI7Ne(}{_XN+_GQWTW%k>D>^4-D3CB3Z znd`~`&|;USAUvpYNu>gW?-I{dMwyP{rbCV*TJ;R7MIw=`d~~(r90-5T$wv2? z-I>A9-4=QVR07z;ro;&s>*AoO#3K6{=YQ05$9(tv_w-}_v}sbs zbaWml(-M|ezZ!AuEciyzS5jDIzU*6-CI})TNlFj|E3rUy$Vgp#^}6aK`{a_w_sKDW ziyZLYyNb~zk8V3@a*}jKQPd8cK7cH3zTMU1*USN^eFADL=uzHA0o7wu4zacdf)~_7 zq_!!!hB*K0548%S;%c;2fh3gKTiL9@Y6I6fcH@-x-;3Fae3gZWS#||7c4G!ob_xBn zCLt6fMj49~zaZgaL&8lL6HWJ4B| z6$ce&V7}*B)oCJUU{^%V02QF}J_ZShQCY#H`f{!VDk;t|Z~YPjePuqR`iXfzJ9u;< zCUP?`2M3|^@@y0ZcnKR$^#Jxwic@q6D>!r|$qzC$*4IMJTB*%4fuBgDQroj=xBcF> zpWD0D`}ff=IZ2=ydum4-gPEe7(*x94zigG!Ck%VdVtT5TNqb3ZRD=;SD?fKjr?K*` zs+&+I-v4D}8ptf+EO^lJXm;ZgHMVh@4kCY2yOQYkOT!gf)v0E*S#;Y$6Ija@0~$*0xWm5HUN!Mzs?BTfmFCb&im!7z|aQ zP10w21E;Xecwq01vlqlJi=c3Fw% z;J-fI{Fo(HV;xLDcUh5qs#WdKrMjg1Twr~?nhXl|$ZOJ48Q`n>OVFY5tDCb5tF}o z;MZ&w=@OiI=GfB-;+^}oHs=joMakjDzw^L6w1v*~x2#IU!(BVGM;4hIxJr^*ol32| z1nZ@c0dRY7bIL^dpAy+@CH12jkhQ}9fCk4&)pxRCPc4H9nvx3hQ}=zaw}-hhjP~L5 zJ2`yWinX52gB{16TG2z)k}uvVgWtU4=e@NhA@Vd_;{C=~y3#=`luMtzvX`C~(ge1w zSya;gS~ScLKYMk`Fx$qq;)KPC zFEofm`;%6)J4PTIO`xbT@1XRz7UP;yD%ZOp7)MqCHga{Ackh!5Mk|CxRe13Jn@N=F z!xSF@_>lU2YEcf>7WnO++F5~3L`-$6DgGh96jnl6EQj9K;W~B2JxFQ)d>sldLKYDG zh<5`(>azZed?Gd>`mGh$o&l%>G%hLHn^4^5FJA08qXedug)A~?*QDx;gS?v7G5po{VO)S@$OvwS(n>tI*{ID~Z96tK~;+4Y}r-sVS zW0R400+bi0+96LvOLhq?=dvaMA*v0%-Wb2$NJ^U?b4~>*Tg%4gck}qB_Z5T7F$I_d z!~o&q;R3~2VlA?YVSJ^$P`<7_E;CoPwSJwsTY=ADS-;wt&;9!JT|5%z&$IO*wDy%k zf;_19M63n7u!?<3Wj3y#`k6<_&o~Z-Vcaktd|N!=ah) zmNum|45RXBtqEY!wROsPUtEoIRQ=Ly&^9p^?apn9`P12Hy!d#vH7memNand28jfhX zX4U0APfDu~*~0+H?3WCQSv<|piHEiQet!8~iTr(Pz!tV3p(^!AuQ>T+0OwFymMz!n z76$YN;q^^;t2{+u%b*Yxc7(OJd@2wH1P=1GjWSQOQtRjf8L{IRCd~YniN^ng9Kr?s zAb9a>P1}m40uyE)xk+{vvRhKY0>$84*l`NFrSHSm6=ZkFoylq#oBkIVb2&bw22K@ zCd%v!QC8mlSo7F9fmwvW7we5^8@Hp>l3PabFOe#%(_V}PCK7r|P9DNA=9Dn%#U<0{ zGX!66GaQi2rwXf?mAG{8dStJGp+I@hA`UMIv`4v{b9vDeQg)08CU`)aMP7x|i=oP#U|u7*#Z=lBfVn<(a0N$to}ofiO9wz}TXz zs=C7cfV`J*sIzz121KAl4XZFBE*!8D+DIh~o#Llk_i0d(Mz>_G9X&fKwxuJq5(*@> zm3vGGg(*1)sB2pwx8bBlZoIJA1pq^+X{da`74vt@<41`Z(s5SLqF;$~@}d7woY8m! zi*pK(^705u69+X1v(3oJ>JB});u)kmAbCl(?vX7gs+P=+dP(QANu(ZW`Zg0PKM_&E z238#z;g4b~bD?otH&G)>%bNg52ESH&6*W`$t0d7BC@td!?cQAQxBkpBgL5}|b(0UrvmH=!wQrw)#&Q9r1-P`HclDf0E^H3M>p{=5 z6fa6ftrKBBx}>!b8@~p}s?FdICD|{;W;>muVr~_oKH5sP7_sJV`S*mYb$1G-)u@G} zK3jkp4Gc2I^+HdogK%LCQ5wA zZJl*x-|9nx1u0Yf;E*)w%#EiWYv!au@^RJ?O7sxmRpm2YocO0}gCi`5HC5>*PYe(J zt*qXPXxC*H+Iy~Y#UmwbIYoW2vzwLZeUg)#_a zOOM6VgzZSAyAQguTs48I-nr8x29>I540ESR0zF7}0NFQG|61=C7GZ@`tl-=sLfvMyJ)~j%aFlV|RM=0L5ARZr-ke zzMT9+2BnxKe0O*)MMR*E6!l*&+$Dh!d7e@9qCfU3eH(@hVMlU_yXmJ3jz@ zH#tVNb;ZqytdKr0QgUzYT-77cVGLbx>A?9;#6R9VSgtFkV-i8*=@k=HDxP%ejcvu5 z8(iGxy)sP|;#t;-5Go3Xq*#k9v_$8*_sKIx!FNFUy|H-x^yXH__RYukegOI1xlu~a z>BCgVys;s;-CeW_7J?tu_bhrC9o#fL<#AvKl@}KjJ;rvxT?+0`XnWxU(B;00cEr=W z=~n#(iO?y|rqDQcEy^4{1Ija}?!Tfkfd8o<{9|ghC5si1rD-Xm_aeH2GgweO%+$PX zM(mymLE7`DTtYqhk4HD>|J)2=VrBeqBUux_3R2|Xqx&87Z^QUMFbp6YPAr0UkUmgO zP=BY%{n-zEC7tXVy``ih891y78@I;ica6jGvsp>G-Mk&XJiiW$-#`{vP8Q#HMgX3~ zJ30xh7BeS+A*&3&zifY>L?w;y&S|icl`Ot^Kd*20Vl$XLbATB@EKp7!E>Nrm);xzO24SSbYCcZ~jLJwAWl_s`Orx)ugD z*+GoJS=sK7R}?%#Oaonl3q{T2;_grOx5s;Ca&2_uO$jZ039V%geml27!xD zN~TdD_4AZyDetAX^p}N zvv0rY)QJ1P_BTfD8IUZWiT=ABR@w8cWB>1OXCvZ%A8V-+R8()J?DwEChV9R(L;)|agQSWLB@rVKIi9QT~69u!)V(U`w9WPag^ zdeCB!kyaDF;7?n74HZ2s(Rfhu&w6Rz6yLhf5u)LW^9^u`eYG;xto7nh zRN~Ya^(_9?*93K|*gaD@$Y}udLG{#oEIU#MwgaJ%PsX$$q~w6KW)Ho&8Ab%H=FC;m zyof_2^jqM*QaOjC!G+yKLLGZQHhO+qP}n*k#*x)h^pz z-5=tO=yP#a%!s^LKOkq0nPWV&+Kp?3d3R&s$MdwwP0r&)DK1G@fgv$v%iOKW7gUmK zLXR?mF**_v7**Fie5KxOokLpQglU$)VH53JwQ*#t}ENbMJva|)n;u8NlC2pf_%&|jFoAont9OTmQ zZv~x$mJv;G1$b%T_f*==zS-Vv8h;$*ZLTcSddxX^cbwCq20y1N5hwptH~XHyJ`Ufc z-02Scm&L7$n(gXEf8X0^LEU@F=hnS(P|qBA>1c|?k7*36#i}mvFjY~C<5qaqN$V!$ z`ui%0Fr`f?J)VEcW=56ZPba4~+hmZ1DQKJ-Ce%FOi9$B*rm76ZU$!>OQKCXXN7-Ga zs(f{+6CFpa4fyxqJX3%!T$6h3(o_{8^%ichmW^SmmMuwIoC}|p`h$%xCy54B=nc*L zPa{j2qe^mMBm(n0MR1S|^h?N`r}6#<%87v%*VJf;`}&1j$=putQ4ag)G8=%J@c1#c zmPse*sI-}%|C7(Ry^Guv!N(p_jRuUA7_Cf>GK|2j$c~DcC4tFjp<)#pP`HPVT87jA z&Fzr^K@hb$>-0QG{|0wf{lbNq-R~ZjrVn+_7kYY6MAw289G^794e0n=a-uF_aBPuG z591VdQh1*T$N7`XQBG5$PN-vZxV~?J=9j@K7iqGzbgw9BkE>(ZlSF@)aQdc;)Z@!4 z<(<1P$uwWLsB_WqR%dcY`_Yc~j0c@1c^^aXt}z)eGI>#QLdK?LhK3;j_WVaOwi#_s z=84tndE>#D#6qe9RU5c^B9!+!?YO_S12*o`>R9LYegjE zDXQ4^bJ&jM_)IoXx3(LdO|YvI*2K=WE>Vb=jY3p)1qFhv4^R4~fk!oCxNP6Y$X1Fp z29S-PKhsycxeCGuzDm}$s|_5;wd+3-8I0_AbB&4y&Rb_?HJg#{X7A!E+Ya zX3B(}XB{51^1Do);-U$5tiQXq@d<<5sE|0c<9E4B#htxrc9iRFktiS}>_%-}_4%MJ zdB)aGiIs*_ag8b$2-Upnmx##b1w92c129?ts5PLpxn4-y2PPnUT4md9%QgiPAQTr| zMdNrvcd8hiYmZl@oh{8xhb3QHSRAc!*0zRY0`H|qR;8LUOCN0vhb(PxT~0dh8vR!^ z@iSs{P~{~-`Zuqkur2aSKR`Zslxu_x3#h_3CwhOZo3Y{Rm(_P4<%f9Nsxb=0ntOTY z<5hqCnN9L1L|6-%f%9X-6i2!@A}zf#TNx>&X&9O&)d`*E!7eeaZ{+$`C@a}kT|41G z7u|5mE6e{V^=st3I5dF0ZRvH_k1Y;`ZzC^n9n$n2sr)J||b1I1SQX1Z!uu}Eq;GU}~$Ym|jD1|l8cVH)J*5V`= z)AAICV~X@v_^Vu|MhhV)1WmT#l_Nzkh7u zlCtSUhdaIRUe>}M;yk`JoW!lKp5JmAP>O7+a@+89a^Yc$J(_?NnjCMDj{CZZG?4lk zfY}cJ4h;IoiFE2QX|shAx%M)>nDv!VgW>75%soV5cJS4cbY}nP3j1ayR#98(*=N1< zIPGUr7r~@@NH;{j$3NF3=Z{SP8!g_8Cf)(fzO&(lZt_X#4}=g5@<9iPEH7G~|MLJ4 za_0e%U(fbU1Q6ozB=3*d3{bMds-z_Wo5GvC#7NwLX%|GiLtu0PKp3&gHJV0=KfZMj z6fWuFUo772#+Ym7oNp`#t;QdLVqX=#5wAf~pLXw;nD~`(@3A-I_GP!Y+iby9KM_W! zHR?oV2GHoAc3sW44JPk1OIC6@2ikX4vBc5^H!GA0GF)>=!+H6gV>-9|98k*N7I~-4 zKVi#`4;iDK8n!JW)u{agulEsqo_rfUME4gPHAK}N_-Joendb+v_|6OBKiv`882)ce zJp;#onL2o-$z_MdfpGmr^$efBAJ60s5DF*}0i*2}&^4qICRK@?_M^9T+n}BJF*lKV zg-oHk;Mg(bG0Rqbbn6p8w77lucD<-^s2@U9Z|VNc3cwft37H5E3yaE+4mfYV<|M5OPY2Fk+H%}Uze0Og@WC_8bq_Nxy zu?L@CUmoz>7=PuRf5(Jvl8|Iy`qWS-7DuT3l1IxCYQ*0%`)qa5={Gj$QB>ZXTx$zK z1Vk|936AkZijYgO5~K^~x;dm5V~u|%V|b_Gw}Kn`HRAbZ_TSunVJe~cCgY`G#0X|2 z!o>->)zlzbt@UXX{D)=hhd6$($@DFL#M8S+h%(Gbc88tTN9MTuGWGJWo)_1>+`C_H zZ0i!xjMii%At~&i4~Mke{P+gdcx#ck_OEX@w^!G*xt6X0-(2tZ%{k1W%({T#y^PFR23v#fF8rDWsRaT zSv~S1HtFOFN$H=>6&rQjyb0A-#U&sZ*8q63liOGM&N5@jyPoq6c3aBB_Gw8D-Sq%cQ5`$^h;s$ za)BwhDpMo2SzKlzBAtM4AhO~&Xjk1w;{hwwnb@N?6>{_K1_tAGSeZ*aJIe;Y50bJW z1_BuxxG}DliaXJn845)xVo@`3O84XgsVk${BO-4q?0JLLCH!$s|IEd;$`S^pH1t%s zu`Sn&vPZdxN>t`hHOe!p(A>GzvNNDC+7o19LWETI;<9Q*79jQ}mN8ODl@TC)WM2^3 zdaB&R9R@SUyBJ%}$|xaA5?9SY=pzUBj&K|AtETeI6w=y|V76v9K{=+}i4inES~BC` zI^~fN!L3B6Kj+CSywb7x(Aj33bnul&rk09?Xq1ZPMbq=Lvs&s?O&n*64|fC}sH56Fe)%)v$ipj-F|n*IGq zj2Qi$nMhZ%C9OtMJWrHkif)w2S&t38{TQfNWegg- zgrTI{Cq`pMZkSkiG!LE9n7J%Zlt;ljS249~aw%9 z?P0LqrhjZcsv@U!%S{oTM!EcVm<-Fsftocu^s>m--(3_x0Z9qrbL!_oRq4#rTBUZ! zqv{;UUTcR|g1GLCSVJq3L5%A17shKb+dy`n&Da=T0t+$l*K!#Cy=8Pvr?jUtK7S3dNPP66%i8-Ak!WqHnY1 zI#rx^>ch`hXj&4TBxRxP3d)#qHfsngsA5m}p`|RtWZ#Fnb$K74kjoH?c574kMZ6^Q z8L`M`mdR=7hwggZ-6n?32R}EY8@Dn=0VTqdbrb~D2S4LEb2q6D$ zwRA0g*&YIz$<18@3% z2&XRFwa1JbezAI4SMsU)Zl%@{^356Z=zyF-l(81g%|@if9d`#WDxN8;6q)9>;UST? z?@!Q{2V@Th+DXhrbzBve!S$O2XBNa;X&wIXj`3?rd(Toedp4`NjXc=$a~glcn^Tti z^B+6=hopZR4>hDo~Qb+pRf{Z zjn*@>M2SxDII>2PySs=_at$^<%<73^vglqzfL<_Kuk2{w?hpGJ^=+BcQquxqWxmlNH$`ei8Y;ilWE0Y?zR!Cf&ebAE zf9A{#Crb2{m;@t|%kM5m(r)H8Tkk#2eG@bErFer^-u;vWR1yikZ{EzPaq6R;1yoMH zqW<6~ZkrO{Fa;IE4SQ>8BPj%l?#y`qUJ~@-JZA4^{HRM1Hfk5EtFDzRicX_-fClq4A0PZVV1UZZXlM^oK&IYq=1myiart`7{f=SNQS?s z#v~=-<*t{-ruDy(q`$yzIZc&+gVOl=e3=W6FE{gTh>zu`;PVz$3RI|ABUCwK{9Cb_ zEZ;N{c;^4KDD;cho`_dX_qv`H;j4~x*C4b2*;d*-m1w0%_wT5?`21>h+`S|*u~EW3DVfp3kUl&f)*8`d0NIsf;Gl+Tp)Az5%=NbWy=cu z?L8{<`3HFpiHfK9Pb(C(j)nj}o2(aSCr)yc{Bud{ZL+}xsN5e>i=NNTUec>URMC`h zv*yY*W|IK3Y}d5;dp(xPpw``*fayfti~|Zi*0N{jdCjyAQA;xpdoz2CeR`m6nrQA+ z5^c3Gcb1217TGay(U*{o+@os!4#Ea_)xYS!k+#M%hbm=2b)&<;f6JO( zbD&xW@^`u8?5!%7V2YgZ@Rx}Xwm-B+n5k+rnLFYMG+>IrUFckF!f`ioMAs^juv$grH1o#hhs)obwC5 zf{QpCP67`97N8>Y{)NT?R5u()&@|;f%HJ6fK`@rWJhXdnusF2Z|+38Sze z`cg7srd;Sv85Elhih-Fn>!Q)PH(rBMk+fuv6Obj^9bs_s@|}@j_gZx&r*^ofp?r=b z!poi#vn}=mhn+3eh%^I!@U3GvhrGqI3wZg^6+>f{0IKF7!BxmIw}u;6@h_^I;yaDB zhP-d3Q`@fmIaee1G5yws>P-cWnUQE#uB4i%&g|c4N~G?8J@VjL$|td^quSWNOui{m)C^j1PB0UF;-CYHInAv3nLpOTLa z_(r#ilos5Jb+Y6R_#Zmy$BnSxVr+XZR#ntEZ;I$h60a-Vx=`vYD8%yuvz}ODt%eT z-t}W7Xg&dY9Ws!Po1QWKY)5$0G1?=@+ae@Dr^Seqzkx{euFNA3#}CCSj6|imN|xtWT?0mA1^T}@vMyUw1#X2tk((O1_Z-2+Ne>9u4#{Z>IKpE^@m zjrE*%PTKu{Gaf(y3i^Y}+4Zwn@rM2`^1#_^wyj%_w5NteWw_ni&kq^DnZsnveaYsr zJU1%o9vvV4`Ipb)E$sNOPrdzst1-9Tw#o^K=R`#g$xg>%YxzO#{N>%KF$a%yd#tk1 zAV;6CA`p@a08)eN`x%TX6d(!&#@3Whz5$J#OM%^hMt(eak!N(-+Q{SFoeZ|k!G45c z%7TbfprJg&ntA`h{(8-1ae***)~jT-^I@WKr3LQ=Va0X?qYtiVx}g?;DlFEEHBil? z<5V*iO@n8AMU5*rO^<*6Ja#-Ax@~fX@i<3m*{=oLeEmOmdZz!dn!(Ec-@&$~HGVri z>+fpDujM}Y|IF^tz^z!|XEjkhC_E?fijMCL zk6*#6RHUL7}A3_|c)~$ES~{Ny!tpE=SNMOPO?&yEuLe z-$`JjO#Ws7aX|n0G(d3YxeGmF3BQwnQJuCAYaD!buO4K7fDLm1RDE50XElp;^IdlOv#sIsq`IT7|2F1N}@?>j8X5id{Zc_CWJ7oSD!P zq#ZK2AitERJqz@)jc~vd>B=O^0N{&eH+uvusFcOKW!o}EA-na!W1pxKw(!9Bo9ZX! zXP&O7_Wb8K$KSL+7>vsh#dC%*m8MEkGPxM`E!{03TBq0@XGB{^HV7Md_od!d-((Qk zs!IJ^IH~U}shGQ|Prqv{grcEED+p{>tl=Hsfe7OUFELQItnWWOn3UDnNTQ`7Y^ zt}ygDeKZ#k2S}>3$ECu>^Yu%TVDXpYF&TC0*2o2g1}_GvQt<1&nvJZOG0Y6#RhJRAEQiEHo#JnWS7=-dJEpQVIHuibLPe6CD{>qnPE#><_ChDS2h#)_1q0hUD zvUtmG^2qzYc2r)I+5Z)fxkUgl<-g=RY{os9P$0QO&LRbqCeoO_hMv{ ztD~w-`Qs)e(u_a0$(B!u2x0OhR#1qor6T=`eX^$5a60Jm;FUolLB{a0UfPce#A^`Kvt! zPIAZa%$KBu3%=6O?z=Yt?kTs+rl^QT4dGdH$;K%1rJ#a>Eh%Y3d^>Th-IPlUtr!6lXLPtPK+xR814$fDnBZC}oY;|vtaWzIL;ihcCslE*v_f?wfnAB>2H&$(xfW`whO|m5ZdFcn-!B zAlXXCYjn6|D*x*oR;*)!p1yP9Z5e=<=eB(qt`aaeOn^npf+LA@`kKs6Emwd7aHvo% z|Ll~>?2ZJy=pYMab}(xseQgadWJhft0U*twxXQe25G!vI^eZ0-&RYKCr_(>J>SWcz zsm<(^eyYJJy`t7coy#&NK z*i_FMk&PdOeQ5mBx0O=0y>+i?AVlQEjp-rRaFcV?f$=?Ig@&Zpblb6&bJm7e`$gRt z)+#iv*_`5zB`URvC{|yzOk1k6`?6~gQ|PY#`d6bPab4*?PH}$fcMQ2&=(!H}uZVA5 zle+p!QGkO0Wkl*NJ?;gs15;PN#OdB(ntsH4?j`IC7*RD2-MdnXA-|7Z#n7Y@*r1l_ zeXg%9>ezDr0p+nWO8k#aj^+Qx;xMo?|99TgY0YulBi8>1Mm=SK;?{58e}w@$MgzPX zm>oEkeG>onBNU13MnkiHK@6@z6ImJ4!i_o|b_0y(+p)DnnumpsBZx_2a~Vhf0>lPPZTH$GA$tD zCX2RUhcr6!+EaQ%leVCQzrl~Re{!?Rx8vJ$OHOYl`;qs(!sp}B_31NyP^2%}B|tUg zKXiK<7v)DFz+kiGKZZTFf2udsHfhJR{I{x)NtQVM-tTO6_C|>9o&|HsfsuSwvtlH_ z{MYU`r%7)h%~(!sLV_WhkbsOKQo)Xz%XNGM9p7OwUd_zY*1w-Z%UIV8`y^KsBGOS~ z>d!;a7b>892sym#>iO)upNAqlJ3;DFdQ+U`9SGu2oaFaq;z%}4){*{bS;8l*(I_Y|M5*(^A=7|4EttsLzIi<9?=>|P0#uFAb&+tq?KZedl&rY}2U)hXf+!VmHDe&#!kV z?VOIC+)C{pKTs-}zT12B2j^Ht3Oe&jreiQsWn5P9|F}j+$0MWcTB$Qurr1fbO?{kO z{#iEat08z2=O-6MAKzC#NS-Z z=WlLQLL*2QT{(MWxMdQ?*4m94CDTQ%Xmps?9>Ul^bihu)RpJ;>ahkxy8bmNT?ioh7D zladz_xs5<;tOKowhZ%_zS-hbj4H7sxNmD8>71s=Uab=Q zAQ3_~6OmTpj{wLdcNDwHJVx;-@iSIVN+$Sxr?n|2tu+7W$`58&s7T%As^a`;QYowy zgJE(tBgPs|t|7HtknhY_p6+^N^f#LJfH6=(NS0x4)fPTMfKVDEk#QlMS>ncpE4xoL z9-+9Yu-ZJ2xT{LUCyH)KhoZ8o0G{OxNIso2`lRVn2l)(V~j|7QeQgTcPYn=BO*&vlig z8N%Zi&5O+BfW+RA8$NLgbkK;mMV+4?StGI?122H7P}OKshM#k_A?0vXyJb-tm;Tfo ze?ILzWoNBoVT5Hvx~$6j{D#wh)*`D4oAKPzJV!RA+e#E*x6u~2`Qay)y%nuwL9F@_ z+ra!-%rpyHCg~*4S3%vhGWEE*uhHJas?}+#ckhvuM!FYR$6JpVvIVByf(MID%g6sg zZ)2k8%g;pi==!#;4=Dx*?Avke$jdY5kbB{FpK z;Y6xM71%pJBzxWxjizM>&UtF^UlmC*L(?$p1U(E*?Z*4efG$>nn|!F@UXopz0Jo=( z5JnO!%LF;7i3d3li2anx>jNOfoZ_*9>53nILH0X6fO9fy_G=zMziK)TK>gPq2*8>|JuJZK z79Iq^%O)vM|ARFW;2!NJF~FMaPR=zdThD`OeaPHib1!%fSDDvO1PQzAgmT5M2bV2s zrLZsb3RFW2eX~MpW7<0rw2}WjTyvWK$5LBPcbD(XKbN|foo$MyFJMt2v#kHrfmzx9 z#}l!#hrJ1%oS~(XvkjdrJ_9{Hov4MQlQTZU@Av;ZY*`rpJGFURQ_D_^4bgYD4!@pm zJM1>zi6AVBke@EgHUJrmn5MofK!H7Wqw`WTlp1{9uW$EuOw6$uU-GC~(0~jVXPSUx z)h^Wdq!3wg?Dc<#YDxm3T_%IcbSRN5-EAfcR(-_;+9@KEfx;&)$s&%eV1U46yan{d z-8fzWE5|QoCV}Zn@@wYtwxy8}ADmJJu^)U?MOpLi)?#~__kktS4uwD(OdWo0? z+RDt>j34o#WG-~y{zxjY_TDZN1Q7!RdK6gzHt!IeDiB%MCMX7kV$hn&AlTw??rvF2 zNKdRznIe0Vf20Z^A>c9GFW@qaFK`(N2-aGeLtRj;%%vd|p!#9WfsBEXKU?Ub+!DBC zYikZi%kU1I+li8$Ca}R?3##5MC4fG_?1re+Y!A&IIv3o9EL}h#tIaCCWO-TlHc6p?H~qFCX*zNl zQB!9gU7j$C!xA$vpO(}drJ}Pc(WR~8Eq&#%3e1v%>#p+ULE~d^aj13G%r2MYAPqmm zthxS0V}tJd8;0Wez?eJjhvnPzc6G5|wSKwZwRlYT z)2-?2)sao(%gK{9tVb7`hW3y)bcszd%&ko~6N;C5igr5ru>N$rdG6@&eKPtc$Co=z zSCuT77Kgj{5?k$t+NpKR?TZd-hq_HJLr~`a9tjqtkZ7(d z8%hTx>c{KN^yACxjl)}28IveLA_x&4EZ$EDryWH9D_f{pRf~@q(y$T_TeG01)`&pd zV>L24;%TdMhfl_e{Ihc=9yx31YV@E*wVEC^b(*N>XwhNa)ms`&h(E9up`jt1#>pzy z*y^&OIbWs2?t>lV!TSES#^DQr%O$3ToPtgSs8m^7KY)G0v1S^9_Z zs5^}-BowSv8@yWjGU##l1;zq>KpVJwb_TD|0>|L}e4D;aKOCPsqTavm-F-SnNZ`IS z$5{58dHjQbiN@x0-&kHc^?NjT?@Z6*$)nMOk?Zs2_U7|y;$FAUC@bTetp{6!#JnjP zYyW4~bon-YVC~vNDfhYV)}(e?rZ=gk~gi zJc$QgsTD~kNh+Dc$w3|wF9Fg|5x82#9U4}phP`Y^xH&<=la6JttXB=G( z8T`aZ)@g#ie?pRzimbFKmphhBLK-%r;$8(Xog7Qkn}M)P7-qtV8q>qAJAMI%#?z@y ziqdGwBdvg44?2=DFJhj&;$ZeqFrg z)=0QinA$@+x>!!`635}dwj;YmXBlj?Q$rAR;d%eDyioPUz~yI3A{N8ZN>(dgYqWqD-O&fn1-9b~mDPvn zDRlx#1ZfzF1gQi`g|reEu6J-ei_E`9WEVhnVqQM1&?+*!HE28&0wCRrCcI)vk(W9Z z1b_D)(>p+3A=a*M(A%tZ*=tOPzd?LBD+4S53*>~{7d4RDkZb9x>rgOb8X#EJvNLYF zeg1?RnFnKQW9x%z=5yR;CK#7svvbdIr2A^jS{AYgj-)GYp-NFY1t@}w^QAOr#QS1eUfvI0#HPXgSE&Eg!7nh8uj1h;_%z~WYl_#RA+E@ z)9{)KIiEKn$updn`=CY4El@N^yo~ju5%Q}yGM!kQ}$x9GI)sxZ^ zK9~vve*%)0;_^jjo>+NCCp71F}bEyfKr5l zu!VAB9@G_kAma)Y4nAK#bPeTGzl;(xQ|tV*g#t3$sOyo~)<+RA7eB~T&JnN+(Z^cD zxFl$!Bd4?~U$Me^KeE1bV$l$?Lzg92bJOYCY_A=cS5VH=**{H)#+662f!V6z&*ka$ z1(BXy8Ac#3g~7g%oX1{LucSkt`i`h4ocfNSD)3p~~PMWszCYPS_< zvFgJh_1`~FTr_x~4TV?;Qb^$oAcfp4pa1iCmj^BsBf-C87(?JMg^hn9)%JJpic)6_Pf?SSgOM9&VK$1`gm;P=T%s)-wkJtcL#DIbk zTT=K+oi(Ov?PzUFtZq0PzY&lhw#&K$40}I>{kp9W)TUB)2I*2>o*J;Qt)zh#WWsO# zR8#TW{?k>GjqU$-q%hI5{dX@G!&<+9u#R8GaorgoJ#&;DP+)w5>j=NC?i9@!0lnd= zKKS}HfghhpZqUU{*{)Jx4%MjIABDZMh&+6C8?a0YYrFYgPD6shpNI~H)=*0_a zpy76PgbDo)#&y1rU*aws)&9o(+0!}9pTHG2U6rp!6)dbRi93(+^ZG?G8<`4PFa3tM zy?qE_vgwCBILrZNFb?JYVE=MN4}`rgGv3l>G`Nm;A*~#4kTvBjHYmIZmo6kO5T@%o z<0NX$lxLvV8Ch~!7gQ)l_S@oGvEH34!FMqocvb)%kDNUH3x^X98xo?LO0 z2NKv10aI7i1lY||SMm%MxW#!-XHBGgv+;6*J@37F2-=*mQ|R}>=Hj{j2z3*gV>aKa z;()+@)x|ruT7=FxDyAPHtQB6 zsY+zRRaHi$5jvX19dSKjynB+yF8Y($?(iDd7;-o+&YGk^n}LDS9FA+6uH3}O@}g46 zQdClcGBJhFI(xHdP!jBDk6@AmLpIfHJzGJyKl!LONiGdzep6&WuzTp7XdHbIYwZ0c zURrG#N2zG(2=A3hRx|YTAf<|t+P$o6Z$yC*hq(ya%Z#fJ<5|_G**qubJHvqP9r*Zd5KG~v$bsT;nOJ=q{9aKm8Q6Te zUwrqmLO{zAFuUjido#B$)rMkr^P0TWNJ!asEiv|2JYG_;;zYSHSKf=Z@@B?;${wxQ zFwPiZVdPWdq)!M*HW2`XuZWBtoTO(vw@BML;BH+8DLOBIE5sLD6R>TpnM-w-re)u> z_0m9QO<(V9rpUT90IF@~0$I%Bp7)pvY>O!$`AU4onX@eEME*1A)`HWfo~l`wz% z<~N%H5Sg)PKClHykhDsKuXbzH%q>5@!7kH|90__H>YVq<&dubrBLLl`03l~ag_ou( z(6+Q-&kt`h+@1Lj;Po3*+ktp5++o~EtXBw+dZ_;v{J}dCmP`&oH)2o^v&>px2=iQt zO{ZSQDiIT@3X$i7xy}6!Ila!;LOs%Xe~v_jnpbb4g!TS((rpcwml0^30J+L@(L20? zrfxLa`Fjt$`|bi$|3A%uGm5&lW!CWrDs9A4rvyTGSxsN`MQs>#arfn$z34;Y(A_!* zsmBdPA(t@wEf!~%6ayFoED5o5(mFY!M64@=AH;Mj{)Oi*i~mFu_NYB=XU}b++mdEH zj+m#&CmK4Fs^mfzzbERr?B0S)0{N-Wt>2BSx&sv5HWN1>KpRHWa~eut3r3R1#2_d! z=)6It^&%CrVr+#QF^x>r<12NQTu-V($&5m7!e6Fz6OkQeT`^2TVnUe~!(2gk{&`isxe-u{{&_bXb;VMVZ-?F%5A66yPP%M4Jx!+C}k|66o{CDfw zpPMzQdD$6WWevZD8Bnb*ivlW2k}bi=gzk5LrO4ayjO_i*fd3RHqziPnz_7OOCxjUa z66<8nXO9l+DZR$y{W|+gd3yVVM_}LYvj7{Z4JX5IxjC*9`ngdYyp8E4vfC@f;}`x5 z2nrC;$gxe@8ZbKqOiLU+5^sd}*$8qs6D*ftfbO z$ilkNCLD57TF2fuBdNDo^`nb7tnq`1+Y1AqhncHz=tp7xv_LZu5f!*PC$te-ILE7R zn%gl7u027B3hu>VAzjc+D`ticDi)U^TC_=ALzL6(0wJLSaT&EqOSP)Bo<}E&tnte1Ol_)wC#J!N6GCPdbq&DHO^s)ufF3A(g-K0y(kAJ@ z@2$3cZiQdVVs<>(GZ;?2G(nufBKCzfofFm|d^RG>ND0gQBeFC0gkzFLz+|es0c`dx zwglCTraPlnxYumIWqII<`Kdg#3tkQy@_i6iTuZKtrNR}^17BG_RAjh5-}5Zqh#ha& z5_#r8^w^7K?O@f>RNr$bs%3VW(?Qfq*teSE`X`FCD;Q^GP?28V(vRMTbC zWkOcXq}sY(pP37|MW0y=T0Q!t@1f6*!aOdS0@D+FsGuRW74w3!D&+A!)RV2QxKvR& zzOOQIgF0IGOui@9*p0dn>JJg*aPXVNvQjvD@4#$jE+u4oVleL}514)fu4%z8sTQ7x zZI0VJEUZSwaAbq)O(unk={n_0d4?g3arANW&1#(ZwC=}iJ)9`(zRvNYBEqjvJ4H@v z6eX-v_gU|}=|=iJWy)JE3LUVRa$5%5i-tKj?=ZilQB|G^Si$#EQAa+_jIr{>870S6ll|Y6n;5sLC0kG!KluSN`+tiOER;`B@Zr+M_Q5k z8fH{j7gh7e#q9M)K7W8+&a#W>X){YMPDMXZGD!Q~YV+#S_KWYlQ6Vy6?ZYb}IgXsx zd!@gX^^&9u{6w^?Ns`V8bH}XqklX3}x^7C8H>yu`r_bP`=Qs7tVo+|g zj8=MAA43uOT-23)~%gNQiceC$v7R>oJYU&U#fyk5?luomeT{CRtSM-Gg>#kM?Mm{ zNZiQu&`pVY(|*_5{iZ4ow6+vmE`Cn@Jl#(FIIZXX!-vK3wC<3@b+M{5TCF!Nmudu7 zh+)WY4&wFSd+Sd9B8_c|>b|Q(A#C0lvYwTx@C!!AEY#&707#~-PR!+*@s;!w|A*{B z;WY0$A?))OU%{W7w${&%q7X{}$AI|pLV zCDlFnUsHQBeF&opNw5=D*j+FubL39$uu4(7uZMK)%%CVv1KaL;LDDMGJ6>qJy8f+42jJ+ z1dZDKj8+ZZ6lS>D!UlftAC3+xpniG@&!^N&CG z>}ZYbfy~kxYM%FtSAv5II1#xEsmX{lWaW4SabZ3Cgy|Q5!1zqlppgy+v+4#UV>eEuMe6vku#Y@R`5GYb>H~7KszK zEU$Mn*jUlKh4<@hpayyM}Yue;M!h=+UB$(ASyNO$h=) zQh^P5D*rs7Gr*U5w)gAfS zcP+qsC=Oy$13_G6LnQf6O04l@I;?b}q-GnBROnV`Vmf)Z@3A~6uV{F!lMZNAv*J7? zbFntX*Mr43q;Wdw9G@VQYCmo{x13V4;R&|>>)1{&J-Fy1Bp_HQSjf1CGKoGJ00l^Y zW=O@g%2h|w@-*CvVvFdZpbTYz-P^%%_ChgL6O}|zfL~?jS`a4RDU8axc&wEWMG@bz z13Yr6kPn$t7x7tw;+I_w$HRF63*QzJ6Uc?EqrEU^q?FgFtG27I^6rhyt&MA=n6?ht zdP25KxekFQP;*LAQga4!V+#UkW)P}9#UPtu14Bq#l>(zrYgQh+pO`Am7ufbPk&eFG zPowe7ySLmt*`fd&x;$lQnq_R+3cf^#k-1)r@dpd%cIBcs7hKa?{>Lo+bb)-6eqrtCa zj&?#d8Pw5r>~f9t%;{=E(lHrUJZ<2(%Tm#KZjq?p^-Y|d7AHIv!kDgw2c{P5giq%n zz0*I?zBxqbmWw+8h_7lT6OVC#9j6xIkPsaTo@HTuVQbOsWh&$qFbS|;$hrr5W2s$v zzJ71db#;9J_;7T7A+_Xo2?CHMvvH5*C`s`;FuM;-jHRiH@PE1Ef$H0Y)-5mVKVMze z3>*ov5n3i+=14PKv{!u_(p@FT66_b1-Nh_RTI}CJusrE9n0cP7g2 zFlry#orX(4q1$Z+FCcT;#5lm2gh|Q#;7F!U6%K_q zwn*|DOjMf@w3D+AfH;dJzNHyjcwDocnx_g{eTqnR10tqoDMUaY^EgwboB(Y}Fu5Td za2>2=m;{>h>bhe=L4O^k*JjhEt%?}~6HxBS+~bYOgq8-IGZH#63D{;nhnx!UclE zvuw?4!M_BYWZC;>_0cMOwA3s}l;@)7oZ}tbdcqxfBRd+($|U3w+=fJ&6WEGGIu@A` zeB^NdvzA*Do62&s&QWNwC2v5dR~8<;P26{#D@HwQiy|xVl3QlmE-LspdE2#5q^^)5 zw+4tljODc|p1`#}I28z~jQ>nm420H+V?DojyMAd&=DCah;qPa(3-Z~O&%%wLG%;%D zZ0FW~swmJOnlhhB6GxSA_ZZD(*DXDx6sJ&&^efqZ8G|5Qs9Xo`ZD{6uh=>c3&rC}% z1sgAc8sVDM{dyrto1VU4Eur7CUiRvPsK_B2)dXtH{?Yz+et8PS-Q4bE4E7dg5z>z2 z4&SPVEZM+61NY`6GW;Ad%oTbOa)Ob$r;6ZiuEQD-RA8ykyZ+0L@1bKMtx|L9Zm4>f-_P)D0k2DrBh5D!l@uZLJwj8Vb6Q6T`qoFlYy8$P_vwH;Y_`Nno<7Mw(V5<8By#PH zlRf2W>pbC6>BjXfy#@CzEtwklZhx>UCsp^H8}rwZjpi+O9n;Kv-w7%=pFSg`6p(Au z7P|l>UGZVKud6iP@dRX$nNvk?;2pIRjhz8*+Yw~3&Q8-2e_0l8LkgLR zB!CD4kW>+rHs6}?{nO-B3ZPQHX!^k2r@7W;n&0Uh0iDe__vWaa{`V{g2|0JQ7?B?w zl*ody9(@E(9}$oap^c@7=63=xL+;Fa&_+E<9>I-v4Jv-thz)Cln?9oU$#)qyJ%iWd zejmFGgbz_#zwJG@F1;=b7?2LClTY}CEbb5eq6uC%W_|SU@BJmtq7z^tpSmT z4*h^iEklO=r`*cP_`gTt%$%J6Wp34-uqWk0`2F!Ow@T9`Ekj^J^1h2{=E!z{-!i38J5UncA)r%i=_eZY)q^E_j;Uea&zXuV$_9 zEo(|YhJ^v2+fEqS3ZA4HIOjOpCHJebg6NhDShCUA>h+Ghl%ydoUr4l+)owyy&OC41 z)@5t1)hgkuIO14~FbpHRsPgP)Zb;sIOg62L^dc*x?r2ZAyd8VPs?~ou`Q0Z zmy!o0x+O9X4H@D&{jt*_bR0TJrb1nrDis&_DnBw54YHb^Dy*EY1#Ff+7^c_89UpJ7 z^7Baf3Znxf)|(4TLW+I08Lh7tS`UL=S;%YbFjy*fpPmFJ0>=&{IUl&?DLhb#R<@p8 zc{*Kh`f{(H4#jT9gX+VOI29IibAsK-63|27OelzHr!~~pvNXu33yrec%(Nn{HP)}= zmbVYXSfQ>WTy8lzs0Rsx#%QyKh2SpQy+jEScbLOdZ=bSN(#D*>iz&=2Q(6x9!+vv? z1)XICa-He6@OG%gI0eUEkL@&}nYCeJO%4s5E#_XcQ@luP&OUBqX2wyT!e#2B89765 zx$f$*fkbeF&d+U#oy(m*4Ejzp4*3%bR&mKArY8BUnW?40`!grSIyJ+V8n|iZ)n7?d z?1flT|JsIX*L1~Tx0Ck_?~luHe9vK;d&m>;uf1f!p$eX7^-^Jb6-{T4fXR6lA+J(WW;dIKzc0iLhV`$gX7SE1}yjtv6% z!f;CeM%0~tlJ*u)?f&$AzCZa0ST8F5;NAPQf?CC{*5TdJ#xk&(tOiC@vpVb7YgMW= zE@h(2^Qyg5Xxq3PC#+Wr7AwNpaoaDy-dRmEYI3GbF+!YKEuToY`Y~jz!WF3#EzN;^ zQ1Q<7k;@UPBkx{_=OYPB2LV!LStEQGAx)JjV}I$JC@5K1Z+hX^VyMS?D@{G}pza_j z2cm9=1BkzN(gUhe)8+ixp3NMLdvD!dYl)RP01FeW)6bV7)0AX-} z`1~fVqQ$XuKb8xx8yjYXVQZc|=L3Ewy?x2TF1zzv6&i9)*`*iOi_`XW_$YSJ3&9iK z5Y0~qrHfeikH;II5<}DEP*!{4@Dh2szN+K#WIi&$9o>FZHiffV7Hl&S^3k6Zi`Pq@ zrkVn_2z7DCEUQDf=!A30tv|3p`(RcR1vXE1sD}dyORfr>3^OTbr)u8<%&H9z>M{#m zprtdr21hMLE}yZhlkyywVMxPgR~0XouW6wo_12eti}u!|l>k2j=~LWx5(2b5_15S> zrH8vhnW&ECdQ2L$2O9qw506a)2mfjWIUiW>R)ZAALo;;gIkIrWKcP~5TasN*;~1)V zu^Y?qjgT0!paJtC(io;(XRACj_Gb-hxE`sRgSLUo-kckn9THWx%6XT~H3aX2cA*5D zMnT_xLc%boHmDB^2{{X&98CCj5)ueqhf?AS&cwKveSO0J^7#|&3L$hL1O{CQ2K4f& zD&L;}E)wp@XSQO!oy$?^(|~@uviay-*gR@Gom18kEL1H`#K*OO-ks}iD~df zQv@x1)FxNUQ6{AgoNaoMlb9t0UxYu(`#^6tLi8IW{fhAbcr8hvvkYPqv>vqRm{&2~ z`8ZZIFn7L`Uy*nZ*Ps+FDt1c^d@gwNs7KDE$Ddn3$lPAwPk+F*&VpP`7WRhiI!bB3 zTw)jK`-DBkY0a1k;cqSgu#O=)IJj<$A?)V9EX^DgtoNh>*am4=psPjVixp#3dJRPU z0$!$SIE`!zJUL>Zgezg-9!21o{R!w^Q^_09-QUMXc>Ird4Q8a(StU0{x0UPR>XJ8I z6Dd!Dbhw7%z`IaGmZuNSL1RXmGDH}3C1F6THZ{_z(gODy)lI}3R2;FK>Nn+kcs zsq=G^_aqV>*R}Klk@;kys%E}pCCdpcB`@7v4@hn1ZpXoP_0yR}9w5333YJz`*W1AK zY1lxlR&OM2e2#%(Mim#^H9mn~X4TkcMg;{DYdIgC&=}p%S?Y(?0$E?LZ&N{ z??I}aZgbz{YBrqMMk2NpmQI^R}?F(rB#TfZF>S=exKMXSvJ zX_TCh;pM=Gkq&c3m6!KvJio8;}1XsJ?4hl?`}>F z*5zMT^fnKJr}Z`yP)x&b#=x?A+6m~!B?{dF)Ah4{a_a5I=A!EDB)pn!dRT9p>aPL4 z0u45sHf<5Bx6Pd`dYkc41v_ovN4ZAJ+H2^s+)Hine3MSoVrgZcN#NPruiY-0p(XU4 z{^2F&aipoELH&?-{+ts)ovjCaYbTBtk^l2aUU!W`?YjveP~YM~jPFJfvw{$*|E>%;}f%T?|hnz3FLQye{G{9)F%W{jRszRd~+%mo_NZ5y2-~ zLb|ZEq4(6N49r;V?R!1qRgwc-5su~+a-r8)$LVomXS<~(LLMayW7+VdNoejv#lwAv zih{(9LpVkM<7>_2Y4Sz{6{~I=gxXW?a=+eahiHXhc#jjGO7ew?DdmP zn?^JLiThj?-Q`7V^w8r1c zKi{k*V-<8P3AcYIr6?sqVnFKJ>rWO)lna}cFuLi!H|a;b2F|#;*1aH|LkqtLf|UKM zfsj-9>$%gd9#HUl*CF1dEg^E~e0)w7lWNe{8ltXz^)2<6Xsd^QF8+z^!>pT^UCRXG z1oB(PAJ@ZHZTK&E#U^MMvdC{K<(rI7*u-O`zgm1l8bS?*_1|k{Sgt4$EK+kr5=H2V zlAZL>T&5h|K<$4G`_Mr8Wkt(nCJ;}{x=LiV+pSpVmw5TLHvTr-GB=KnQRh~8HL$4E z<*|*Dc^-Uz`$1#m7yjD1-D3D*2(r>+;pyvLV;QaRa~W@kf1Lz&>M1askVbLH6REd%27t`lEVHvY8-kUI0+sV|!PyFqZ zXT#t<+#c3I2~ff-dXNNbf@OY5IP`{X5jg9kE`qT$8>%03b$-}f`%BX1f` zW?$}&V+&A`vDOoCOZ_1Y%k0l64r{f2_nOdi2ND$8KXNK|YLs{&YOrI8NA(d^F1dm(V#i0x?;A!N8KPh=Pdxv_8+mMW% zh6=>;6{LUk3k`-Z0!pjc7`jJY>GweKs<4cn

    b3>8;#%dXa;C5Yafzrb?t!qDh!* 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�*I~1mY;R(d4xTHFD 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

    $w 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 literal 0 HcmV?d00001 diff --git a/previews/PR3545/api/JuMP.Containers/index.html b/previews/PR3545/api/JuMP.Containers/index.html new file mode 100644 index 00000000000..e7bfa081e83 --- /dev/null +++ b/previews/PR3545/api/JuMP.Containers/index.html @@ -0,0 +1,192 @@ + +JuMP.Containers · JuMP

    diff --git a/previews/PR3545/api/JuMP/index.html b/previews/PR3545/api/JuMP/index.html new file mode 100644 index 00000000000..d762411acbb --- /dev/null +++ b/previews/PR3545/api/JuMP/index.html @@ -0,0 +1,2074 @@ + +JuMP · JuMP

    JuMP

    This page lists the public API of JuMP.

    Info

    This page is an unstructured list of the JuMP API. For a more structured overview, read the Manual or Tutorial parts of this documentation.

    Load all of the public the API into the current scope with:

    using JuMP

    Alternatively, load only the module with:

    import JuMP

    and then prefix all calls with JuMP. to create JuMP.<NAME>.

    @NLconstraint

    JuMP.@NLconstraintMacro
    @NLconstraint(model::GenericModel, expr)

    Add a constraint described by the nonlinear expression expr. See also @constraint. For example:

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> @NLconstraint(model, sin(x) <= 1)
    +sin(x) - 1.0 ≤ 0
    +
    +julia> @NLconstraint(model, [i = 1:3], sin(i * x) <= 1 / i)
    +3-element Vector{NonlinearConstraintRef{ScalarShape}}:
    + (sin(1.0 * x) - 1.0 / 1.0) - 0.0 ≤ 0
    + (sin(2.0 * x) - 1.0 / 2.0) - 0.0 ≤ 0
    + (sin(3.0 * x) - 1.0 / 3.0) - 0.0 ≤ 0
    source

    @NLconstraints

    JuMP.@NLconstraintsMacro
    @NLconstraints(model, args...)

    Adds multiple nonlinear constraints to model at once, in the same fashion as the @NLconstraint macro.

    The model must be the first argument, and multiple constraints can be added on multiple lines wrapped in a begin ... end block.

    The macro returns a tuple containing the constraints that were defined.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> @variable(model, y);
    +
    +julia> @variable(model, t);
    +
    +julia> @variable(model, z[1:2]);
    +
    +julia> a = [4, 5];
    +
    +julia> @NLconstraints(model, begin
    +           t >= sqrt(x^2 + y^2)
    +           [i = 1:2], z[i] <= log(a[i])
    +       end)
    +((t - sqrt(x ^ 2.0 + y ^ 2.0)) - 0.0 ≥ 0, NonlinearConstraintRef{ScalarShape}[(z[1] - log(4.0)) - 0.0 ≤ 0, (z[2] - log(5.0)) - 0.0 ≤ 0])
    source

    @NLexpression

    JuMP.@NLexpressionMacro
    @NLexpression(args...)

    Efficiently build a nonlinear expression which can then be inserted in other nonlinear constraints and the objective. See also [@expression]. For example:

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> @variable(model, y)
    +y
    +
    +julia> @NLexpression(model, my_expr, sin(x)^2 + cos(x^2))
    +subexpression[1]: sin(x) ^ 2.0 + cos(x ^ 2.0)
    +
    +julia> @NLconstraint(model, my_expr + y >= 5)
    +(subexpression[1] + y) - 5.0 ≥ 0
    +
    +julia> @NLobjective(model, Min, my_expr)

    Indexing over sets and anonymous expressions are also supported:

    julia> @NLexpression(model, my_expr_1[i=1:3], sin(i * x))
    +3-element Vector{NonlinearExpression}:
    + subexpression[2]: sin(1.0 * x)
    + subexpression[3]: sin(2.0 * x)
    + subexpression[4]: sin(3.0 * x)
    +
    +julia> my_expr_2 = @NLexpression(model, log(1 + sum(exp(my_expr_1[i]) for i in 1:2)))
    +subexpression[5]: log(1.0 + (exp(subexpression[2]) + exp(subexpression[3])))
    source

    @NLexpressions

    JuMP.@NLexpressionsMacro
    @NLexpressions(model, args...)

    Adds multiple nonlinear expressions to model at once, in the same fashion as the @NLexpression macro.

    The model must be the first argument, and multiple expressions can be added on multiple lines wrapped in a begin ... end block.

    The macro returns a tuple containing the expressions that were defined.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> @variable(model, y);
    +
    +julia> @variable(model, z[1:2]);
    +
    +julia> a = [4, 5];
    +
    +julia> @NLexpressions(model, begin
    +           my_expr, sqrt(x^2 + y^2)
    +           my_expr_1[i = 1:2], log(a[i]) - z[i]
    +       end)
    +(subexpression[1]: sqrt(x ^ 2.0 + y ^ 2.0), NonlinearExpression[subexpression[2]: log(4.0) - z[1], subexpression[3]: log(5.0) - z[2]])
    source

    @NLobjective

    JuMP.@NLobjectiveMacro
    @NLobjective(model, sense, expression)

    Add a nonlinear objective to model with optimization sense sense. sense must be Max or Min.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> @NLobjective(model, Max, 2x + 1 + sin(x))
    +
    +julia> print(model)
    +Max 2.0 * x + 1.0 + sin(x)
    +Subject to
    source

    @NLparameter

    JuMP.@NLparameterMacro
    @NLparameter(model, param == value)

    Create and return a nonlinear parameter param attached to the model model with initial value set to value. Nonlinear parameters may be used only in nonlinear expressions.

    Example

    julia> model = Model();
    +
    +julia> @NLparameter(model, x == 10)
    +x == 10.0
    +
    +julia> value(x)
    +10.0
    @NLparameter(model, value = param_value)

    Create and return an anonymous nonlinear parameter param attached to the model model with initial value set to param_value. Nonlinear parameters may be used only in nonlinear expressions.

    Example

    julia> model = Model();
    +
    +julia> x = @NLparameter(model, value = 10)
    +parameter[1] == 10.0
    +
    +julia> value(x)
    +10.0
    @NLparameter(model, param_collection[...] == value_expr)

    Create and return a collection of nonlinear parameters param_collection attached to the model model with initial value set to value_expr (may depend on index sets). Uses the same syntax for specifying index sets as @variable.

    Example

    julia> model = Model();
    +
    +julia> @NLparameter(model, y[i = 1:3] == 2 * i)
    +3-element Vector{NonlinearParameter}:
    + parameter[1] == 2.0
    + parameter[2] == 4.0
    + parameter[3] == 6.0
    +
    +julia> value(y[2])
    +4.0
    @NLparameter(model, [...] == value_expr)

    Create and return an anonymous collection of nonlinear parameters attached to the model model with initial value set to value_expr (may depend on index sets). Uses the same syntax for specifying index sets as @variable.

    Example

    julia> model = Model();
    +
    +julia> y = @NLparameter(model, [i = 1:3] == 2 * i)
    +3-element Vector{NonlinearParameter}:
    + parameter[1] == 2.0
    + parameter[2] == 4.0
    + parameter[3] == 6.0
    +
    +julia> value(y[2])
    +4.0
    source

    @NLparameters

    JuMP.@NLparametersMacro
     @NLparameters(model, args...)

    Create and return multiple nonlinear parameters attached to model model, in the same fashion as @NLparameter macro.

    The model must be the first argument, and multiple parameters can be added on multiple lines wrapped in a begin ... end block. Distinct parameters need to be placed on separate lines as in the following example.

    The macro returns a tuple containing the parameters that were defined.

    Example

    julia> model = Model();
    +
    +julia> @NLparameters(model, begin
    +           x == 10
    +           b == 156
    +       end);
    +
    +julia> value(x)
    +10.0
    source

    @build_constraint

    JuMP.@build_constraintMacro
    @build_constraint(constraint_expr)

    Constructs a ScalarConstraint or VectorConstraint using the same machinery as @constraint but without adding the constraint to a model.

    Constraints using broadcast operators like x .<= 1 are also supported and will create arrays of ScalarConstraint or VectorConstraint.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> @build_constraint(2x >= 1)
    +ScalarConstraint{AffExpr, MathOptInterface.GreaterThan{Float64}}(2 x, MathOptInterface.GreaterThan{Float64}(1.0))
    source

    @constraint

    JuMP.@constraintMacro
    @constraint(m::GenericModel, expr, kw_args...)

    Add a constraint described by the expression expr.

    @constraint(m::GenericModel, ref[i=..., j=..., ...], expr, kw_args...)

    Add a group of constraints described by the expression expr parametrized by i, j, ...

    The expression expr can either be

    • of the form func in set constraining the function func to belong to the set set which is either a MOI.AbstractSet or one of the JuMP shortcuts SecondOrderCone, RotatedSecondOrderCone and PSDCone, e.g. @constraint(model, [1, x-1, y-2] in SecondOrderCone()) constrains the norm of [x-1, y-2] be less than 1;
    • of the form a sign b, where sign is one of ==, , >=, and <= building the single constraint enforcing the comparison to hold for the expression a and b, e.g. @constraint(m, x^2 + y^2 == 1) constrains x and y to lie on the unit circle;
    • of the form a ≤ b ≤ c or a ≥ b ≥ c (where and <= (resp. and >=) can be used interchangeably) constraining the paired the expression b to lie between a and c;
    • of the forms @constraint(m, a .sign b) or @constraint(m, a .sign b .sign c) which broadcast the constraint creation to each element of the vectors.

    The recognized keyword arguments in kw_args are the following:

    • base_name: Sets the name prefix used to generate constraint names. It corresponds to the constraint name for scalar constraints, otherwise, the constraint names are set to base_name[...] for each index ... of the axes axes.
    • container: Specify the container type.
    • set_string_name::Bool = true: control whether to set the MOI.ConstraintName attribute. Passing set_string_name = false can improve performance.

    Note for extending the constraint macro

    Each constraint will be created using add_constraint(m, build_constraint(_error, func, set)) where

    • _error is an error function showing the constraint call in addition to the error message given as argument,
    • func is the expression that is constrained
    • and set is the set in which it is constrained to belong.

    For expr of the first type (i.e. @constraint(m, func in set)), func and set are passed unchanged to build_constraint but for the other types, they are determined from the expressions and signs. For instance, @constraint(m, x^2 + y^2 == 1) is transformed into add_constraint(m, build_constraint(_error, x^2 + y^2, MOI.EqualTo(1.0))).

    To extend JuMP to accept new constraints of this form, it is necessary to add the corresponding methods to build_constraint. Note that this will likely mean that either func or set will be some custom type, rather than e.g. a Symbol, since we will likely want to dispatch on the type of the function or set appearing in the constraint.

    For extensions that need to create constraints with more information than just func and set, an additional positional argument can be specified to @constraint that will then be passed on build_constraint. Hence, we can enable this syntax by defining extensions of build_constraint(_error, func, set, my_arg; kw_args...). This produces the user syntax: @constraint(model, ref[...], expr, my_arg, kw_args...).

    source

    @constraints

    JuMP.@constraintsMacro
    @constraints(model, args...)

    Adds groups of constraints at once, in the same fashion as the @constraint macro.

    The model must be the first argument, and multiple constraints can be added on multiple lines wrapped in a begin ... end block.

    The macro returns a tuple containing the constraints that were defined.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, w);
    +
    +julia> @variable(model, x);
    +
    +julia> @variable(model, y);
    +
    +julia> @variable(model, z[1:3]);
    +
    +julia> @constraints(model, begin
    +           x >= 1
    +           y - w <= 2
    +           sum_to_one[i=1:3], z[i] + y == 1
    +       end);
    +
    +julia> print(model)
    +Feasibility
    +Subject to
    + sum_to_one[1] : y + z[1] = 1
    + sum_to_one[2] : y + z[2] = 1
    + sum_to_one[3] : y + z[3] = 1
    + x ≥ 1
    + -w + y ≤ 2
    source

    @expression

    JuMP.@expressionMacro
    @expression(args...)

    Efficiently builds a linear or quadratic expression but does not add to model immediately. Instead, returns the expression which can then be inserted in other constraints.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, x[1:5]);
    +
    +julia> @variable(model, y);
    +
    +julia> @variable(model, z);
    +
    +julia> @expression(model, shared, sum(i * x[i] for i in 1:5))
    +x[1] + 2 x[2] + 3 x[3] + 4 x[4] + 5 x[5]
    +
    +julia> @constraint(model, shared + y >= 5)
    +x[1] + 2 x[2] + 3 x[3] + 4 x[4] + 5 x[5] + y ≥ 5
    +
    +julia> @constraint(model, shared + z <= 10)
    +x[1] + 2 x[2] + 3 x[3] + 4 x[4] + 5 x[5] + z ≤ 10

    The ref accepts index sets in the same way as @variable, and those indices can be used in the construction of the expressions:

    julia> @expression(model, expr[i = 1:3], i * sum(x[j] for j in 1:3))
    +3-element Vector{AffExpr}:
    + x[1] + x[2] + x[3]
    + 2 x[1] + 2 x[2] + 2 x[3]
    + 3 x[1] + 3 x[2] + 3 x[3]

    Anonymous syntax is also supported:

    julia> expr = @expression(model, [i in 1:3], i * sum(x[j] for j in 1:3))
    +3-element Vector{AffExpr}:
    + x[1] + x[2] + x[3]
    + 2 x[1] + 2 x[2] + 2 x[3]
    + 3 x[1] + 3 x[2] + 3 x[3]
    source

    @expressions

    JuMP.@expressionsMacro
    @expressions(model, args...)

    Adds multiple expressions to model at once, in the same fashion as the @expression macro.

    The model must be the first argument, and multiple expressions can be added on multiple lines wrapped in a begin ... end block.

    The macro returns a tuple containing the expressions that were defined.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> @variable(model, y);
    +
    +julia> @variable(model, z[1:2]);
    +
    +julia> a = [4, 5];
    +
    +julia> @expressions(model, begin
    +           my_expr, x^2 + y^2
    +           my_expr_1[i = 1:2], a[i] - z[i]
    +       end)
    +(x² + y², AffExpr[-z[1] + 4, -z[2] + 5])
    source

    @objective

    JuMP.@objectiveMacro
    @objective(model::GenericModel, sense, func)

    Set the objective sense to sense and objective function to func. The objective sense can be either Min, Max, MOI.MIN_SENSE, MOI.MAX_SENSE or MOI.FEASIBILITY_SENSE; see MOI.ObjectiveSense.

    In order to set the sense programmatically, i.e., when sense is a Julia variable whose value is the sense, one of the three MOI.ObjectiveSense values should be used.

    Example

    To minimize the value of the variable x, do as follows:

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> @objective(model, Min, x)
    +x

    To maximize the value of the affine expression 2x - 1, do as follows:

    julia> @objective(model, Max, 2x - 1)
    +2 x - 1

    To set a quadratic objective and set the objective sense programmatically, do as follows:

    julia> sense = MIN_SENSE
    +MIN_SENSE::OptimizationSense = 0
    +
    +julia> @objective(model, sense, x^2 - 2x + 1)
    +x² - 2 x + 1
    source

    @operator

    JuMP.@operatorMacro
    @operator(model, operator, dim, f[, ∇f[, ∇²f]])

    Add the nonlinear operator operator in model with dim arguments, and create a new NonlinearOperator object called operator in the current scope.

    The function f evaluates the operator and must return a scalar.

    The optional function ∇f evaluates the first derivative, and the optional function ∇²f evaluates the second derivative.

    ∇²f may be provided only if ∇f is also provided.

    Univariate syntax

    If dim == 1, then the method signatures of each function must be:

    • f(::T)::T where {T<:Real}
    • ∇f(::T)::T where {T<:Real}
    • ∇²f(::T)::T where {T<:Real}

    Multivariate syntax

    If dim > 1, then the method signatures of each function must be:

    • f(x::T...)::T where {T<:Real}
    • ∇f(g::AbstractVector{T}, x::T...)::Nothing where {T<:Real}
    • ∇²f(H::AbstractMatrix{T}, x::T...)::Nothing where {T<:Real}

    Where the gradient vector g and Hessian matrix H are filled in-place. For the Hessian, you must fill in the non-zero lower-triangular entries only. Setting an off-diagonal upper-triangular element may error.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> f(x::Float64) = x^2
    +f (generic function with 1 method)
    +
    +julia> ∇f(x::Float64) = 2 * x
    +∇f (generic function with 1 method)
    +
    +julia> ∇²f(x::Float64) = 2.0
    +∇²f (generic function with 1 method)
    +
    +julia> @operator(model, op_f, 1, f, ∇f, ∇²f)
    +NonlinearOperator(f, :op_f)
    +
    +julia> @objective(model, Min, op_f(x))
    +op_f(x)
    +
    +julia> op_f(2.0)
    +4.0
    +
    +julia> model[:op_f]
    +NonlinearOperator(f, :op_f)
    +
    +julia> model[:op_f](x)
    +op_f(x)

    Non-macro version

    This macro is provided as helpful syntax that matches the style of the rest of the JuMP macros. However, you may also add operators outside the macro using add_nonlinear_operator. For example:

    julia> model = Model();
    +
    +julia> f(x) = x^2
    +f (generic function with 1 method)
    +
    +julia> @operator(model, op_f, 1, f)
    +NonlinearOperator(f, :op_f)

    is equivalent to

    julia> model = Model();
    +
    +julia> f(x) = x^2
    +f (generic function with 1 method)
    +
    +julia> op_f = model[:op_f] = add_nonlinear_operator(model, 1, f; name = :op_f)
    +NonlinearOperator(f, :op_f)
    source

    @variable

    JuMP.@variableMacro
    @variable(model, expr, args..., kw_args...)

    Add a variable to the model model described by the expression expr, the positional arguments args and the keyword arguments kw_args.

    Anonymous and named variables

    expr must be one of the forms:

    • Omitted, like @variable(model), which creates an anonymous variable
    • A single symbol like @variable(model, x)
    • A container expression like @variable(model, x[i=1:3])
    • An anoymous container expression like @variable(model, [i=1:3])

    Bounds

    In addition, the expression can have bounds, such as:

    • @variable(model, x >= 0)
    • @variable(model, x <= 0)
    • @variable(model, x == 0)
    • @variable(model, 0 <= x <= 1)

    and bounds can depend on the indices of the container expressions:

    • @variable(model, -i <= x[i=1:3] <= i)

    Sets

    You can explicitly specify the set to which the variable belongs:

    • @variable(model, x in MOI.Interval(0.0, 1.0))

    For more information on this syntax, read Variables constrained on creation.

    Positional arguments

    The recognized positional arguments in args are the following:

    • Bin: restricts the variable to the MOI.ZeroOne set, that is, {0, 1}. For example, @variable(model, x, Bin). Note: you cannot use @variable(model, Bin), use the binary keyword instead.
    • Int: restricts the variable to the set of integers, that is, ..., -2, -1, 0, 1, 2, ... For example, @variable(model, x, Int). Note: you cannot use @variable(model, Int), use the integer keyword instead.
    • Symmetric: Only available when creating a square matrix of variables, i.e., when expr is of the form varname[1:n,1:n] or varname[i=1:n,j=1:n], it creates a symmetric matrix of variables.
    • PSD: A restrictive extension to Symmetric which constraints a square matrix of variables to Symmetric and constrains to be positive semidefinite.

    Keyword arguments

    Four keyword arguments are useful in all cases:

    • base_name: Sets the name prefix used to generate variable names. It corresponds to the variable name for scalar variable, otherwise, the variable names are set to base_name[...] for each index ... of the axes axes.
    • start::Float64: specify the value passed to set_start_value for each variable
    • container: specify the container type. See Forcing the container type for more information.
    • set_string_name::Bool = true: control whether to set the MOI.VariableName attribute. Passing set_string_name = false can improve performance.

    Other keyword arguments are needed to disambiguate sitations with anonymous variables:

    • lower_bound::Float64: an alternative to x >= lb, sets the value of the variable lower bound.
    • upper_bound::Float64: an alternative to x <= ub, sets the value of the variable upper bound.
    • binary::Bool: an alternative to passing Bin, sets whether the variable is binary or not.
    • integer::Bool: an alternative to passing Int, sets whether the variable is integer or not.
    • set::MOI.AbstractSet: an alternative to using x in set
    • variable_type: used by JuMP extensions. See Extend @variable for more information.

    Example

    The following are equivalent ways of creating a variable x of name x with lower bound 0:

    julia> model = Model();
    +
    +julia> @variable(model, x >= 0)
    +x
    julia> model = Model();
    +
    +julia> @variable(model, x, lower_bound = 0)
    +x
    julia> model = Model();
    +
    +julia> x = @variable(model, base_name = "x", lower_bound = 0)
    +x

    Other examples:

    julia> model = Model();
    +
    +julia> @variable(model, x[i=1:3] <= i, Int, start = sqrt(i), lower_bound = -i)
    +3-element Vector{VariableRef}:
    + x[1]
    + x[2]
    + x[3]
    +
    +julia> @variable(model, y[i=1:3], container = DenseAxisArray, set = MOI.ZeroOne())
    +1-dimensional DenseAxisArray{VariableRef,1,...} with index sets:
    +    Dimension 1, Base.OneTo(3)
    +And data, a 3-element Vector{VariableRef}:
    + y[1]
    + y[2]
    + y[3]
    +
    +julia> @variable(model, z[i=1:3], set_string_name = false)
    +3-element Vector{VariableRef}:
    + _[7]
    + _[8]
    + _[9]
    source

    @variables

    JuMP.@variablesMacro
    @variables(model, args...)

    Adds multiple variables to model at once, in the same fashion as the @variable macro.

    The model must be the first argument, and multiple variables can be added on multiple lines wrapped in a begin ... end block.

    The macro returns a tuple containing the variables that were defined.

    Example

    julia> model = Model();
    +
    +julia> @variables(model, begin
    +           x
    +           y[i = 1:2] >= 0, (start = i)
    +           z, Bin, (start = 0, base_name = "Z")
    +       end)
    +(x, VariableRef[y[1], y[2]], Z)
    Note

    Keyword arguments must be contained within parentheses (refer to the example above).

    source

    add_bridge

    JuMP.add_bridgeFunction
    add_bridge(
    +    model::GenericModel{T},
    +    BT::Type{<:MOI.Bridges.AbstractBridge};
    +    coefficient_type::Type{S} = T,
    +) where {T,S}

    Add BT{T} to the list of bridges that can be used to transform unsupported constraints into an equivalent formulation using only constraints supported by the optimizer.

    See also: remove_bridge.

    Example

    julia> model = Model();
    +
    +julia> add_bridge(model, MOI.Bridges.Constraint.SOCtoNonConvexQuadBridge)
    +
    +julia> add_bridge(
    +           model,
    +           MOI.Bridges.Constraint.NumberConversionBridge;
    +           coefficient_type = Complex{Float64}
    +       )
    source

    add_constraint

    JuMP.add_constraintFunction
    add_constraint(model::GenericModel, con::AbstractConstraint, name::String="")

    Add a constraint con to Model model and sets its name.

    source

    add_nonlinear_constraint

    JuMP.add_nonlinear_constraintFunction
    add_nonlinear_constraint(model::Model, expr::Expr)

    Add a nonlinear constraint described by the Julia expression ex to model.

    This function is most useful if the expression ex is generated programmatically, and you cannot use @NLconstraint.

    Notes

    • You must interpolate the variables directly into the expression expr.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> add_nonlinear_constraint(model, :($(x) + $(x)^2 <= 1))
    +(x + x ^ 2.0) - 1.0 ≤ 0
    source

    add_nonlinear_expression

    JuMP.add_nonlinear_expressionFunction
    add_nonlinear_expression(model::Model, expr::Expr)

    Add a nonlinear expression expr to model.

    This function is most useful if the expression expr is generated programmatically, and you cannot use @NLexpression.

    Notes

    • You must interpolate the variables directly into the expression expr.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> add_nonlinear_expression(model, :($(x) + $(x)^2))
    +subexpression[1]: x + x ^ 2.0
    source

    add_nonlinear_operator

    JuMP.add_nonlinear_operatorFunction
    add_nonlinear_operator(
    +    model::Model,
    +    dim::Int,
    +    f::Function,
    +    [∇f::Function,]
    +    [∇²f::Function];
    +    [name::Symbol = Symbol(f),]
    +)

    Add a new nonlinear operator with dim input arguments to model and associate it with the name name.

    The function f evaluates the operator and must return a scalar.

    The optional function ∇f evaluates the first derivative, and the optional function ∇²f evaluates the second derivative.

    ∇²f may be provided only if ∇f is also provided.

    Univariate syntax

    If dim == 1, then the method signatures of each function must be:

    • f(::T)::T where {T<:Real}
    • ∇f(::T)::T where {T<:Real}
    • ∇²f(::T)::T where {T<:Real}

    Multivariate syntax

    If dim > 1, then the method signatures of each function must be:

    • f(x::T...)::T where {T<:Real}
    • ∇f(g::AbstractVector{T}, x::T...)::Nothing where {T<:Real}
    • ∇²f(H::AbstractMatrix{T}, x::T...)::Nothing where {T<:Real}

    Where the gradient vector g and Hessian matrix H are filled in-place. For the Hessian, you must fill in the non-zero lower-triangular entries only. Setting an off-diagonal upper-triangular element may error.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> f(x::Float64) = x^2
    +f (generic function with 1 method)
    +
    +julia> ∇f(x::Float64) = 2 * x
    +∇f (generic function with 1 method)
    +
    +julia> ∇²f(x::Float64) = 2.0
    +∇²f (generic function with 1 method)
    +
    +julia> op_f = add_nonlinear_operator(model, 1, f, ∇f, ∇²f)
    +NonlinearOperator(f, :f)
    +
    +julia> @objective(model, Min, op_f(x))
    +f(x)
    +
    +julia> op_f(2.0)
    +4.0
    source

    add_nonlinear_parameter

    add_to_expression!

    JuMP.add_to_expression!Function
    add_to_expression!(expression, terms...)

    Updates expression in place to expression + (*)(terms...). This is typically much more efficient than expression += (*)(terms...). For example, add_to_expression!(expression, a, b) produces the same result as expression += a*b, and add_to_expression!(expression, a) produces the same result as expression += a.

    Only a few methods are defined, mostly for internal use, and only for the cases when (1) they can be implemented efficiently and (2) expression is capable of storing the result. For example, add_to_expression!(::AffExpr, ::GenericVariableRef, ::GenericVariableRef) is not defined because a GenericAffExpr cannot store the product of two variables.

    source

    add_to_function_constant

    JuMP.add_to_function_constantFunction
    add_to_function_constant(constraint::ConstraintRef, value)

    Add value to the function constant term.

    Note that for scalar constraints, JuMP will aggregate all constant terms onto the right-hand side of the constraint so instead of modifying the function, the set will be translated by -value. For example, given a constraint 2x <= 3, add_to_function_constant(c, 4) will modify it to 2x <= -1.

    Example

    For scalar constraints, the set is translated by -value:

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> @constraint(model, con, 0 <= 2x - 1 <= 2)
    +con : 2 x ∈ [1, 3]
    +
    +julia> add_to_function_constant(con, 4)
    +
    +julia> con
    +con : 2 x ∈ [-3, -1]

    For vector constraints, the constant is added to the function:

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> @variable(model, y);
    +
    +julia> @constraint(model, con, [x + y, x, y] in SecondOrderCone())
    +con : [x + y, x, y] ∈ MathOptInterface.SecondOrderCone(3)
    +
    +julia> add_to_function_constant(con, [1, 2, 2])
    +
    +julia> con
    +con : [x + y + 1, x + 2, y + 2] ∈ MathOptInterface.SecondOrderCone(3)
    source

    add_variable

    JuMP.add_variableFunction
    add_variable(m::GenericModel, v::AbstractVariable, name::String="")

    Add a variable v to Model m and sets its name.

    source

    all_constraints

    JuMP.all_constraintsFunction
    all_constraints(model::GenericModel, function_type, set_type)::Vector{<:ConstraintRef}

    Return a list of all constraints currently in the model where the function has type function_type and the set has type set_type. The constraints are ordered by creation time.

    See also list_of_constraint_types and num_constraints.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, x >= 0, Bin);
    +
    +julia> @constraint(model, 2x <= 1);
    +
    +julia> all_constraints(model, VariableRef, MOI.GreaterThan{Float64})
    +1-element Vector{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.GreaterThan{Float64}}, ScalarShape}}:
    + x ≥ 0
    +
    +julia> all_constraints(model, VariableRef, MOI.ZeroOne)
    +1-element Vector{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.ZeroOne}, ScalarShape}}:
    + x binary
    +
    +julia> all_constraints(model, AffExpr, MOI.LessThan{Float64})
    +1-element Vector{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.LessThan{Float64}}, ScalarShape}}:
    + 2 x ≤ 1
    source
    all_constraints(
    +    model::GenericModel;
    +    include_variable_in_set_constraints::Bool,
    +)::Vector{ConstraintRef}

    Return a list of all constraints in model.

    If include_variable_in_set_constraints == true, then VariableRef constraints such as VariableRef-in-Integer are included. To return only the structural constraints (e.g., the rows in the constraint matrix of a linear program), pass include_variable_in_set_constraints = false.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, x >= 0, Int);
    +
    +julia> @constraint(model, 2x <= 1);
    +
    +julia> @NLconstraint(model, x^2 <= 1);
    +
    +julia> all_constraints(model; include_variable_in_set_constraints = true)
    +4-element Vector{ConstraintRef}:
    + 2 x ≤ 1
    + x ≥ 0
    + x integer
    + x ^ 2.0 - 1.0 ≤ 0
    +
    +julia> all_constraints(model; include_variable_in_set_constraints = false)
    +2-element Vector{ConstraintRef}:
    + 2 x ≤ 1
    + x ^ 2.0 - 1.0 ≤ 0

    Performance considerations

    Note that this function is type-unstable because it returns an abstractly typed vector. If performance is a problem, consider using list_of_constraint_types and a function barrier. See the Performance tips for extensions section of the documentation for more details.

    source

    all_nonlinear_constraints

    JuMP.all_nonlinear_constraintsFunction
    all_nonlinear_constraints(model::GenericModel)

    Return a vector of all nonlinear constraint references in the model in the order they were added to the model.

    source

    all_variables

    JuMP.all_variablesFunction
    all_variables(model::GenericModel{T})::Vector{GenericVariableRef{T}} where {T}

    Returns a list of all variables currently in the model. The variables are ordered by creation time.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> @variable(model, y);
    +
    +julia> all_variables(model)
    +2-element Vector{VariableRef}:
    + x
    + y
    source

    anonymous_name

    JuMP.anonymous_nameFunction
    anonymous_name(::MIME, x::AbstractVariableRef)

    The name to use for an anonymous variable x when printing.

    source

    backend

    JuMP.backendFunction
    backend(model::GenericModel)

    Return the lower-level MathOptInterface model that sits underneath JuMP. This model depends on which operating mode JuMP is in (see mode).

    • If JuMP is in DIRECT mode (i.e., the model was created using direct_model), the backend will be the optimizer passed to direct_model.
    • If JuMP is in MANUAL or AUTOMATIC mode, the backend is a MOI.Utilities.CachingOptimizer.

    This function should only be used by advanced users looking to access low-level MathOptInterface or solver-specific functionality.

    Notes

    If JuMP is not in DIRECT mode, the type returned by backend may change between any JuMP releases. Therefore, only use the public API exposed by MathOptInterface, and do not access internal fields. If you require access to the innermost optimizer, see unsafe_backend. Alternatively, use direct_model to create a JuMP model in DIRECT mode.

    See also: unsafe_backend.

    source

    barrier_iterations

    JuMP.barrier_iterationsFunction
    barrier_iterations(model::GenericModel)

    Gets the cumulative number of barrier iterations during the most recent optimization.

    Solvers must implement MOI.BarrierIterations() to use this function.

    source

    bridge_constraints

    JuMP.bridge_constraintsFunction
    bridge_constraints(model::GenericModel)

    When in direct mode, return false.

    When in manual or automatic mode, return a Bool indicating whether the optimizer is set and unsupported constraints are automatically bridged to equivalent supported constraints when an appropriate transformation is available.

    source

    build_constraint

    JuMP.build_constraintFunction
    build_constraint(
    +    _error::Function,
    +    Q::LinearAlgebra.Symmetric{V, M},
    +    ::PSDCone,
    +) where {V<:AbstractJuMPScalar,M<:AbstractMatrix{V}}

    Return a VectorConstraint of shape SymmetricMatrixShape constraining the matrix Q to be positive semidefinite.

    This function is used by the @constraint macros as follows:

    julia> import LinearAlgebra
    +
    +julia> model = Model();
    +
    +julia> @variable(model, Q[1:2, 1:2]);
    +
    +julia> @constraint(model, LinearAlgebra.Symmetric(Q) in PSDCone())
    +[Q[1,1]  Q[1,2];
    + Q[1,2]  Q[2,2]] ∈ PSDCone()

    The form above is usually used when the entries of Q are affine or quadratic expressions, but it can also be used when the entries are variables to get the reference of the semidefinite constraint, e.g.,

    julia> model = Model();
    +
    +julia> @variable(model, Q[1:2, 1:2], Symmetric)
    +2×2 LinearAlgebra.Symmetric{VariableRef, Matrix{VariableRef}}:
    + Q[1,1]  Q[1,2]
    + Q[1,2]  Q[2,2]
    +
    +julia> @constraint(model, Q in PSDCone())
    +[Q[1,1]  Q[1,2];
    + Q[1,2]  Q[2,2]] ∈ PSDCone()
    source
    build_constraint(
    +    _error::Function,
    +    Q::AbstractMatrix{<:AbstractJuMPScalar},
    +    ::PSDCone,
    +)

    Return a VectorConstraint of shape SquareMatrixShape constraining the matrix Q to be symmetric and positive semidefinite.

    This function is used by the @constraint macro as follows:

    julia> model = Model();
    +
    +julia> @variable(model, Q[1:2, 1:2]);
    +
    +julia> @constraint(model, Q in PSDCone())
    +[Q[1,1]  Q[1,2];
    + Q[2,1]  Q[2,2]] ∈ PSDCone()
    source
    build_constraint(
    +    _error::Function,
    +    Q::LinearAlgebra.Hermitian{V,M},
    +    ::HermitianPSDCone,
    +) where {V<:AbstractJuMPScalar,M<:AbstractMatrix{V}}

    Return a VectorConstraint of shape HermitianMatrixShape constraining the matrix Q to be Hermitian positive semidefinite.

    This function is used by the @constraint macros as follows:

    julia> import LinearAlgebra
    +
    +julia> model = Model();
    +
    +julia> @variable(model, Q[1:2, 1:2]);
    +
    +julia> @constraint(model, LinearAlgebra.Hermitian(Q) in HermitianPSDCone())
    +[Q[1,1]  Q[1,2];
    + Q[1,2]  Q[2,2]] ∈ HermitianPSDCone()
    source
    build_constraint(
    +    _error::Function,
    +    f::AbstractVector{<:AbstractJuMPScalar},
    +    ::Nonnegatives,
    +    extra::Union{MOI.AbstractVectorSet,AbstractVectorSet},
    +)

    A helper method that re-writes

    @constraint(model, X >= Y, extra)

    into

    @constraint(model, X - Y in extra)
    source
    build_constraint(
    +    _error::Function,
    +    f::AbstractVector{<:AbstractJuMPScalar},
    +    ::Nonpositives,
    +    extra::Union{MOI.AbstractVectorSet,AbstractVectorSet},
    +)

    A helper method that re-writes

    @constraint(model, Y <= X, extra)

    into

    @constraint(model, X - Y in extra)
    source

    build_variable

    JuMP.build_variableFunction
    build_variable(
    +    _error::Function,
    +    info::VariableInfo,
    +    args...;
    +    kwargs...,
    +)

    Return a new AbstractVariable object.

    This method should only be implemented by developers creating JuMP extensions. It should never be called by users of JuMP.

    Arguments

    • _error: a function to call instead of error. _error annotates the error message with additional information for the user.
    • info: an instance of VariableInfo. This has a variety of fields relating to the variable such as info.lower_bound and info.binary.
    • args: optional additional positional arguments for extending the @variable macro.
    • kwargs: optional keyword arguments for extending the @variable macro.

    See also: @variable

    Warning

    Extensions should define a method with ONE positional argument to dispatch the call to a different method. Creating an extension that relies on multiple positional arguments leads to MethodErrors if the user passes the arguments in the wrong order.

    Example

    @variable(model, x, Foo)

    will call

    build_variable(_error::Function, info::VariableInfo, ::Type{Foo})

    Passing special-case positional arguments such as Bin, Int, and PSD is okay, along with keyword arguments:

    @variable(model, x, Int, Foo(), mykwarg = true)
    +# or
    +@variable(model, x, Foo(), Int, mykwarg = true)

    will call

    build_variable(_error::Function, info::VariableInfo, ::Foo; mykwarg)

    and info.integer will be true.

    Note that the order of the positional arguments does not matter.

    source
    build_variable(_error::Function, variables, ::SymmetricMatrixSpace)

    Return a VariablesConstrainedOnCreation of shape SymmetricMatrixShape creating variables in MOI.Reals, i.e. "free" variables unless they are constrained after their creation.

    This function is used by the @variable macro as follows:

    julia> model = Model();
    +
    +julia> @variable(model, Q[1:2, 1:2], Symmetric)
    +2×2 LinearAlgebra.Symmetric{VariableRef, Matrix{VariableRef}}:
    + Q[1,1]  Q[1,2]
    + Q[1,2]  Q[2,2]
    source
    build_variable(_error::Function, variables, ::SkewSymmetricMatrixSpace)

    Return a VariablesConstrainedOnCreation of shape SkewSymmetricMatrixShape creating variables in MOI.Reals, i.e. "free" variables unless they are constrained after their creation.

    This function is used by the @variable macro as follows:

    julia> model = Model();
    +
    +julia> @variable(model, Q[1:2, 1:2] in SkewSymmetricMatrixSpace())
    +2×2 Matrix{AffExpr}:
    + 0        Q[1,2]
    + -Q[1,2]  0
    source
    build_variable(_error::Function, variables, ::HermitianMatrixSpace)

    Return a VariablesConstrainedOnCreation of shape HermitianMatrixShape creating variables in MOI.Reals, i.e. "free" variables unless they are constrained after their creation.

    This function is used by the @variable macro as follows:

    julia> model = Model();
    +
    +julia> @variable(model, Q[1:2, 1:2] in HermitianMatrixSpace())
    +2×2 LinearAlgebra.Hermitian{GenericAffExpr{ComplexF64, VariableRef}, Matrix{GenericAffExpr{ComplexF64, VariableRef}}}:
    + real(Q[1,1])                    real(Q[1,2]) + imag(Q[1,2]) im
    + real(Q[1,2]) - imag(Q[1,2]) im  real(Q[2,2])
    source
    build_variable(_error::Function, variables, ::PSDCone)

    Return a VariablesConstrainedOnCreation of shape SymmetricMatrixShape constraining the variables to be positive semidefinite.

    This function is used by the @variable macro as follows:

    julia> model = Model();
    +
    +julia> @variable(model, Q[1:2, 1:2], PSD)
    +2×2 LinearAlgebra.Symmetric{VariableRef, Matrix{VariableRef}}:
    + Q[1,1]  Q[1,2]
    + Q[1,2]  Q[2,2]
    source

    callback_node_status

    callback_value

    JuMP.callback_valueFunction
    callback_value(cb_data, x::GenericVariableRef)

    Return the primal solution of a variable inside a callback.

    cb_data is the argument to the callback function, and the type is dependent on the solver.

    source
    callback_value(cb_data, expr::Union{GenericAffExpr, GenericQuadExpr})

    Return the primal solution of an affine or quadratic expression inside a callback by getting the value for each variable appearing in the expression.

    cb_data is the argument to the callback function, and the type is dependent on the solver.

    source

    check_belongs_to_model

    coefficient

    JuMP.coefficientFunction
    coefficient(v1::GenericVariableRef{T}, v2::GenericVariableRef{T}) where {T}

    Return one(T) if v1 == v2, and zero(T) otherwise.

    This is a fallback for other coefficient methods to simplify code in which the expression may be a single variable.

    source
    coefficient(a::GenericAffExpr{C,V}, v::V) where {C,V}

    Return the coefficient associated with variable v in the affine expression a.

    source
    coefficient(a::GenericAffExpr{C,V}, v1::V, v2::V) where {C,V}

    Return the coefficient associated with the term v1 * v2 in the quadratic expression a.

    Note that coefficient(a, v1, v2) is the same as coefficient(a, v2, v1).

    source
    coefficient(a::GenericQuadExpr{C,V}, v::V) where {C,V}

    Return the coefficient associated with variable v in the affine component of a.

    source

    compute_conflict!

    JuMP.compute_conflict!Function
    compute_conflict!(model::GenericModel)

    Compute a conflict if the model is infeasible. If an optimizer has not been set yet (see set_optimizer), a NoOptimizer error is thrown.

    The status of the conflict can be checked with the MOI.ConflictStatus model attribute. Then, the status for each constraint can be queried with the MOI.ConstraintConflictStatus attribute.

    source

    constant

    JuMP.constantFunction
    constant(aff::GenericAffExpr{C, V})::C

    Return the constant of the affine expression.

    source
    constant(aff::GenericQuadExpr{C, V})::C

    Return the constant of the quadratic expression.

    source

    constraint_by_name

    JuMP.constraint_by_nameFunction
    constraint_by_name(model::AbstractModel,
    +                   name::String)::Union{ConstraintRef, Nothing}

    Return the reference of the constraint with name attribute name or Nothing if no constraint has this name attribute. Throws an error if several constraints have name as their name attribute.

    constraint_by_name(model::AbstractModel,
    +                   name::String,
    +                   F::Type{<:Union{AbstractJuMPScalar,
    +                                   Vector{<:AbstractJuMPScalar},
    +                                   MOI.AbstactFunction}},
    +                   S::Type{<:MOI.AbstractSet})::Union{ConstraintRef, Nothing}

    Similar to the method above, except that it throws an error if the constraint is not an F-in-S contraint where F is either the JuMP or MOI type of the function, and S is the MOI type of the set. This method is recommended if you know the type of the function and set since its returned type can be inferred while for the method above (i.e. without F and S), the exact return type of the constraint index cannot be inferred.

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> @constraint(model, con, x^2 == 1)
    +con : x² = 1
    +
    +julia> constraint_by_name(model, "kon")
    +
    +julia> constraint_by_name(model, "con")
    +con : x² = 1
    +
    +julia> constraint_by_name(model, "con", AffExpr, MOI.EqualTo{Float64})
    +
    +julia> constraint_by_name(model, "con", QuadExpr, MOI.EqualTo{Float64})
    +con : x² = 1
    source

    constraint_object

    JuMP.constraint_objectFunction
    constraint_object(con_ref::ConstraintRef)

    Return the underlying constraint data for the constraint referenced by ref.

    source

    constraint_ref_with_index

    constraint_string

    JuMP.constraint_stringFunction
    constraint_string(
    +    mode::MIME,
    +    ref::ConstraintRef;
    +    in_math_mode::Bool = false)

    Return a string representation of the constraint ref, given the mode.

    source

    constraints_string

    JuMP.constraints_stringFunction
    constraints_string(mode, model::AbstractModel)::Vector{String}

    Return a list of Strings describing each constraint of the model.

    source

    copy_conflict

    JuMP.copy_conflictFunction
    copy_conflict(model::GenericModel)

    Return a copy of the current conflict for the model model and a GenericReferenceMap that can be used to obtain the variable and constraint reference of the new model corresponding to a given model's reference.

    This is a convenience function that provides a filtering function for copy_model.

    Note

    Model copy is not supported in DIRECT mode, i.e. when a model is constructed using the direct_model constructor instead of the Model constructor. Moreover, independently on whether an optimizer was provided at model construction, the new model will have no optimizer, i.e., an optimizer will have to be provided to the new model in the optimize! call.

    Example

    In the following example, a model model is constructed with a variable x and two constraints c1 and c2. This model has no solution, as the two constraints are mutually exclusive. The solver is asked to compute a conflict with compute_conflict!. The parts of model participating in the conflict are then copied into a model iis_model.

    julia> using JuMP
    +
    +julia> import Gurobi
    +
    +julia> model = Model(Gurobi.Optimizer);
    +
    +julia> set_silent(model)
    +
    +julia> @variable(model, x >= 0)
    +x
    +
    +julia> @constraint(model, c1, x >= 2)
    +c1 : x ≥ 2
    +
    +julia> @constraint(model, c2, x <= 1)
    +c2 : x ≤ 1
    +
    +julia> optimize!(model)
    +
    +julia> compute_conflict!(model)
    +
    +julia> if get_attribute(model, MOI.ConflictStatus()) == MOI.CONFLICT_FOUND
    +           iis_model, reference_map = copy_conflict(model)
    +           print(iis_model)
    +       end
    +Feasibility
    +Subject to
    + c1 : x ≥ 2
    + c2 : x ≤ 1
    source

    copy_extension_data

    JuMP.copy_extension_dataFunction
    copy_extension_data(data, new_model::AbstractModel, model::AbstractModel)

    Return a copy of the extension data data of the model model to the extension data of the new model new_model.

    A method should be added for any JuMP extension storing data in the ext field.

    Warning

    Do not engage in type piracy by implementing this method for types of data that you did not define! JuMP extensions should store types that they define in model.ext, rather than regular Julia types.

    source

    copy_model

    JuMP.copy_modelFunction
    copy_model(model::GenericModel; filter_constraints::Union{Nothing, Function}=nothing)

    Return a copy of the model model and a GenericReferenceMap that can be used to obtain the variable and constraint reference of the new model corresponding to a given model's reference. A Base.copy(::AbstractModel) method has also been implemented, it is similar to copy_model but does not return the reference map.

    If the filter_constraints argument is given, only the constraints for which this function returns true will be copied. This function is given a constraint reference as argument.

    Note

    Model copy is not supported in DIRECT mode, i.e. when a model is constructed using the direct_model constructor instead of the Model constructor. Moreover, independently on whether an optimizer was provided at model construction, the new model will have no optimizer, i.e., an optimizer will have to be provided to the new model in the optimize! call.

    Example

    In the following example, a model model is constructed with a variable x and a constraint cref. It is then copied into a model new_model with the new references assigned to x_new and cref_new.

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> @constraint(model, cref, x == 2)
    +cref : x = 2
    +
    +julia> new_model, reference_map = copy_model(model);
    +
    +julia> x_new = reference_map[x]
    +x
    +
    +julia> cref_new = reference_map[cref]
    +cref : x = 2
    source

    delete

    JuMP.deleteFunction
    delete(model::GenericModel, con_ref::ConstraintRef)

    Delete the constraint associated with constraint_ref from the model model.

    Note that delete does not unregister the name from the model, so adding a new constraint of the same name will throw an error. Use unregister to unregister the name after deletion.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> @constraint(model, c, 2x <= 1)
    +c : 2 x ≤ 1
    +
    +julia> delete(model, c)
    +
    +julia> unregister(model, :c)
    +
    +julia> print(model)
    +Feasibility
    +Subject to
    +
    +julia> model[:c]
    +ERROR: KeyError: key :c not found
    +Stacktrace:
    +[...]
    source
    delete(model::GenericModel, con_refs::Vector{<:ConstraintRef})

    Delete the constraints associated with con_refs from the model model. Solvers may implement specialized methods for deleting multiple constraints of the same concrete type, i.e., when isconcretetype(eltype(con_refs)). These may be more efficient than repeatedly calling the single constraint delete method.

    See also: unregister

    source
    delete(model::GenericModel, variable_ref::GenericVariableRef)

    Delete the variable associated with variable_ref from the model model.

    Note that delete does not unregister the name from the model, so adding a new variable of the same name will throw an error. Use unregister to unregister the name after deletion.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> delete(model, x)
    +
    +julia> unregister(model, :x)
    +
    +julia> print(model)
    +Feasibility
    +Subject to
    +
    +julia> model[:x]
    +ERROR: KeyError: key :x not found
    +Stacktrace:
    +[...]
    source
    delete(model::GenericModel, variable_refs::Vector{<:GenericVariableRef})

    Delete the variables associated with variable_refs from the model model. Solvers may implement methods for deleting multiple variables that are more efficient than repeatedly calling the single variable delete method.

    See also: unregister

    source
    delete(model::Model, c::NonlinearConstraintRef)

    Delete the nonlinear constraint c from model.

    source

    delete_lower_bound

    delete_upper_bound

    direct_generic_model

    JuMP.direct_generic_modelFunction
    direct_generic_model(
    +    value_type::Type{T},
    +    backend::MOI.ModelLike;
    +) where {T<:Real}

    Return a new JuMP model using backend to store the model and solve it.

    As opposed to the Model constructor, no cache of the model is stored outside of backend and no bridges are automatically applied to backend.

    Notes

    The absence of a cache reduces the memory footprint but, it is important to bear in mind the following implications of creating models using this direct mode:

    • When backend does not support an operation, such as modifying constraints or adding variables/constraints after solving, an error is thrown. For models created using the Model constructor, such situations can be dealt with by storing the modifications in a cache and loading them into the optimizer when optimize! is called.
    • No constraint bridging is supported by default.
    • The optimizer used cannot be changed the model is constructed.
    • The model created cannot be copied.
    source
    direct_generic_model(::Type{T}, factory::MOI.OptimizerWithAttributes)

    Create a direct_generic_model using factory, a MOI.OptimizerWithAttributes object created by optimizer_with_attributes.

    Example

    julia> import HiGHS
    +
    +julia> optimizer = optimizer_with_attributes(
    +           HiGHS.Optimizer,
    +           "presolve" => "off",
    +           MOI.Silent() => true,
    +       );
    +
    +julia> model = direct_generic_model(Float64, optimizer)
    +A JuMP Model
    +Feasibility problem with:
    +Variables: 0
    +Model mode: DIRECT
    +Solver name: HiGHS

    is equivalent to:

    julia> import HiGHS
    +
    +julia> model = direct_generic_model(Float64, HiGHS.Optimizer())
    +A JuMP Model
    +Feasibility problem with:
    +Variables: 0
    +Model mode: DIRECT
    +Solver name: HiGHS
    +
    +julia> set_attribute(model, "presolve", "off")
    +
    +julia> set_attribute(model, MOI.Silent(), true)
    source

    direct_model

    JuMP.direct_modelFunction
    direct_model(backend::MOI.ModelLike)

    Return a new JuMP model using backend to store the model and solve it.

    As opposed to the Model constructor, no cache of the model is stored outside of backend and no bridges are automatically applied to backend.

    Notes

    The absence of a cache reduces the memory footprint but, it is important to bear in mind the following implications of creating models using this direct mode:

    • When backend does not support an operation, such as modifying constraints or adding variables/constraints after solving, an error is thrown. For models created using the Model constructor, such situations can be dealt with by storing the modifications in a cache and loading them into the optimizer when optimize! is called.
    • No constraint bridging is supported by default.
    • The optimizer used cannot be changed the model is constructed.
    • The model created cannot be copied.
    source
    direct_model(factory::MOI.OptimizerWithAttributes)

    Create a direct_model using factory, a MOI.OptimizerWithAttributes object created by optimizer_with_attributes.

    Example

    julia> import HiGHS
    +
    +julia> optimizer = optimizer_with_attributes(
    +           HiGHS.Optimizer,
    +           "presolve" => "off",
    +           MOI.Silent() => true,
    +       );
    +
    +julia> model = direct_model(optimizer)
    +A JuMP Model
    +Feasibility problem with:
    +Variables: 0
    +Model mode: DIRECT
    +Solver name: HiGHS

    is equivalent to:

    julia> import HiGHS
    +
    +julia> model = direct_model(HiGHS.Optimizer())
    +A JuMP Model
    +Feasibility problem with:
    +Variables: 0
    +Model mode: DIRECT
    +Solver name: HiGHS
    +
    +julia> set_attribute(model, "presolve", "off")
    +
    +julia> set_attribute(model, MOI.Silent(), true)
    source

    drop_zeros!

    JuMP.drop_zeros!Function
    drop_zeros!(expr::GenericAffExpr)

    Remove terms in the affine expression with 0 coefficients.

    source
    drop_zeros!(expr::GenericQuadExpr)

    Remove terms in the quadratic expression with 0 coefficients.

    source

    dual

    JuMP.dualFunction
    dual(con_ref::ConstraintRef; result::Int = 1)

    Return the dual value of constraint con_ref associated with result index result of the most-recent solution returned by the solver.

    Use has_dual to check if a result exists before asking for values.

    See also: result_count, shadow_price.

    source
    dual(c::NonlinearConstraintRef)

    Return the dual of the nonlinear constraint c.

    source

    dual_objective_value

    JuMP.dual_objective_valueFunction
    dual_objective_value(model::GenericModel; result::Int = 1)

    Return the value of the objective of the dual problem associated with result index result of the most-recent solution returned by the solver.

    Throws MOI.UnsupportedAttribute{MOI.DualObjectiveValue} if the solver does not support this attribute.

    See also: result_count.

    source

    dual_shape

    JuMP.dual_shapeFunction
    dual_shape(shape::AbstractShape)::AbstractShape

    Returns the shape of the dual space of the space of objects of shape shape. By default, the dual_shape of a shape is itself. See the examples section below for an example for which this is not the case.

    Example

    Consider polynomial constraints for which the dual is moment constraints and moment constraints for which the dual is polynomial constraints. Shapes for polynomials can be defined as follows:

    struct Polynomial
    +    coefficients::Vector{Float64}
    +    monomials::Vector{Monomial}
    +end
    +struct PolynomialShape <: AbstractShape
    +    monomials::Vector{Monomial}
    +end
    +JuMP.reshape_vector(x::Vector, shape::PolynomialShape) = Polynomial(x, shape.monomials)

    and a shape for moments can be defined as follows:

    struct Moments
    +    coefficients::Vector{Float64}
    +    monomials::Vector{Monomial}
    +end
    +struct MomentsShape <: AbstractShape
    +    monomials::Vector{Monomial}
    +end
    +JuMP.reshape_vector(x::Vector, shape::MomentsShape) = Moments(x, shape.monomials)

    Then dual_shape allows the definition of the shape of the dual of polynomial and moment constraints:

    dual_shape(shape::PolynomialShape) = MomentsShape(shape.monomials)
    +dual_shape(shape::MomentsShape) = PolynomialShape(shape.monomials)
    source

    dual_start_value

    JuMP.dual_start_valueFunction
    dual_start_value(con_ref::ConstraintRef)

    Return the dual start value (MOI attribute ConstraintDualStart) of the constraint con_ref.

    Note: If no dual start value has been set, dual_start_value will return nothing.

    See also set_dual_start_value.

    source

    dual_status

    error_if_direct_mode

    JuMP.error_if_direct_modeFunction
    error_if_direct_mode(model::GenericModel, func::Symbol)

    Errors if model is in direct mode during a call from the function named func.

    Used internally within JuMP, or by JuMP extensions who do not want to support models in direct mode.

    source

    fix

    JuMP.fixFunction
    fix(v::GenericVariableRef, value::Number; force::Bool = false)

    Fix a variable to a value. Update the fixing constraint if one exists, otherwise create a new one.

    If the variable already has variable bounds and force=false, calling fix will throw an error. If force=true, existing variable bounds will be deleted, and the fixing constraint will be added. Note a variable will have no bounds after a call to unfix.

    See also FixRef, is_fixed, fix_value, unfix.

    Examples

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> is_fixed(x)
    +false
    +
    +julia> fix(x, 1.0)
    +
    +julia> is_fixed(x)
    +true
    julia> model = Model();
    +
    +julia> @variable(model, 0 <= x <= 1);
    +
    +julia> is_fixed(x)
    +false
    +
    +julia> fix(x, 1.0; force = true)
    +
    +julia> is_fixed(x)
    +true
    source

    fix_discrete_variables

    JuMP.fix_discrete_variablesFunction
    fix_discrete_variables([var_value::Function = value,] model::GenericModel)

    Modifies model to convert all binary and integer variables to continuous variables with fixed bounds of var_value(x).

    Return

    Returns a function that can be called without any arguments to restore the original model. The behavior of this function is undefined if additional changes are made to the affected variables in the meantime.

    Notes

    • An error is thrown if semi-continuous or semi-integer constraints are present (support may be added for these in the future).
    • All other constraints are ignored (left in place). This includes discrete constraints like SOS and indicator constraints.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, x, Bin, start = 1);
    +
    +julia> @variable(model, 1 <= y <= 10, Int, start = 2);
    +
    +julia> @objective(model, Min, x + y);
    +
    +julia> undo_relax = fix_discrete_variables(start_value, model);
    +
    +julia> print(model)
    +Min x + y
    +Subject to
    + x = 1
    + y = 2
    +
    +julia> undo_relax()
    +
    +julia> print(model)
    +Min x + y
    +Subject to
    + y ≥ 1
    + y ≤ 10
    + y integer
    + x binary
    source

    fix_value

    JuMP.fix_valueFunction
    fix_value(v::GenericVariableRef)

    Return the value to which a variable is fixed.

    Error if one does not exist.

    See also FixRef, is_fixed, fix, unfix.

    Examples

    julia> model = Model();
    +
    +julia> @variable(model, x == 1);
    +
    +julia> fix_value(x)
    +1.0
    source

    flatten!

    JuMP.flatten!Function
    flatten!(expr::GenericNonlinearExpr)

    Flatten a nonlinear expression in-place by lifting nested + and * nodes into a single n-ary operation.

    Motivation

    Nonlinear expressions created using operator overloading can be deeply nested and unbalanced. For example, prod(x for i in 1:4) creates *(x, *(x, *(x, x))) instead of the more preferable *(x, x, x, x).

    Example

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> y = prod(x for i in 1:4)
    +((x²) * x) * x
    +
    +julia> flatten!(y)
    +(x²) * x * x
    +
    +julia> flatten!(sin(prod(x for i in 1:4)))
    +sin((x²) * x * x)
    source

    function_string

    JuMP.function_stringFunction
    function_string(
    +    mode::MIME,
    +    func::Union{JuMP.AbstractJuMPScalar,Vector{<:JuMP.AbstractJuMPScalar}},
    +)

    Return a String representing the function func using print mode mode.

    source

    get_attribute

    JuMP.get_attributeFunction
    get_attribute(model::GenericModel, attr::MOI.AbstractModelAttribute)
    +get_attribute(x::GenericVariableRef, attr::MOI.AbstractVariableAttribute)
    +get_attribute(cr::ConstraintRef, attr::MOI.AbstractConstraintAttribute)

    Get the value of a solver-specifc attribute attr.

    This is equivalent to calling MOI.get with the associated MOI model and, for variables and constraints, with the associated MOI.VariableIndex or MOI.ConstraintIndex.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> @constraint(model, c, 2 * x <= 1)
    +c : 2 x ≤ 1
    +
    +julia> get_attribute(model, MOI.Name())
    +""
    +
    +julia> get_attribute(x, MOI.VariableName())
    +"x"
    +
    +julia> get_attribute(c, MOI.ConstraintName())
    +"c"
    source
    get_attribute(
    +    model::Union{GenericModel,MOI.OptimizerWithAttributes},
    +    attr::Union{AbstractString,MOI.AbstractOptimizerAttribute},
    +)

    Get the value of a solver-specifc attribute attr.

    This is equivalent to calling MOI.get with the associated MOI model.

    If attr is an AbstractString, it is converted to MOI.RawOptimizerAttribute.

    Example

    julia> import HiGHS
    +
    +julia> opt = optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => true);
    +
    +julia> model = Model(opt);
    +
    +julia> get_attribute(model, "output_flag")
    +true
    +
    +julia> get_attribute(model, MOI.RawOptimizerAttribute("output_flag"))
    +true
    +
    +julia> get_attribute(opt, "output_flag")
    +true
    +
    +julia> get_attribute(opt, MOI.RawOptimizerAttribute("output_flag"))
    +true
    source

    get_optimizer_attribute

    JuMP.get_optimizer_attributeFunction
    get_optimizer_attribute(
    +    model::Union{GenericModel,MOI.OptimizerWithAttributes},
    +    attr::Union{AbstractString,MOI.AbstractOptimizerAttribute},
    +)

    Return the value associated with the solver-specific attribute attr.

    If attr is an AbstractString, this is equivalent to get_optimizer_attribute(model, MOI.RawOptimizerAttribute(name)).

    Compat

    This method will remain in all v1.X releases of JuMP, but it may be removed in a future v2.0 release. We recommend using get_attribute instead.

    See also: set_optimizer_attribute, set_optimizer_attributes.

    Example

    julia> import Ipopt
    +
    +julia> model = Model(Ipopt.Optimizer);
    +
    +julia> get_optimizer_attribute(model, MOI.Silent())
    +false
    source

    has_duals

    has_lower_bound

    has_start_value

    has_upper_bound

    has_values

    JuMP.has_valuesFunction
    has_values(model::GenericModel; result::Int = 1)

    Return true if the solver has a primal solution in result index result available to query, otherwise return false.

    See also value and result_count.

    source

    in_set_string

    JuMP.in_set_stringFunction
    in_set_string(mode::MIME, set)

    Return a String representing the membership to the set set using print mode mode.

    source

    index

    JuMP.indexFunction
    index(cr::ConstraintRef)::MOI.ConstraintIndex

    Return the index of the constraint that corresponds to cr in the MOI backend.

    source
    index(v::GenericVariableRef)::MOI.VariableIndex

    Return the index of the variable that corresponds to v in the MOI backend.

    source
    index(p::NonlinearParameter)::MOI.Nonlinear.ParameterIndex

    Return the index of the nonlinear parameter associated with p.

    source
    index(ex::NonlinearExpression)::MOI.Nonlinear.ExpressionIndex

    Return the index of the nonlinear expression associated with ex.

    source

    is_binary

    is_fixed

    JuMP.is_fixedFunction
    is_fixed(v::GenericVariableRef)

    Return true if v is a fixed variable. If true, the fixed value can be queried with fix_value.

    See also FixRef, fix_value, fix, unfix.

    Examples

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> is_fixed(x)
    +false
    +
    +julia> fix(x, 1.0)
    +
    +julia> is_fixed(x)
    +true
    source

    is_integer

    JuMP.is_integerFunction
    is_integer(v::GenericVariableRef)

    Return true if v is constrained to be integer.

    See also IntegerRef, set_integer, unset_integer.

    Examples

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> is_integer(x)
    +false
    +
    +julia> set_integer(x)
    +
    +julia> is_integer(x)
    +true
    source

    is_parameter

    JuMP.is_parameterFunction
    is_parameter(x::GenericVariableRef)::Bool

    Return true if x is constrained to be a parameter.

    See also ParameterRef, set_parameter_value, parameter_value.

    Examples

    julia> model = Model();
    +
    +julia> @variable(model, p in Parameter(2))
    +p
    +
    +julia> is_parameter(p)
    +true
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> is_parameter(x)
    +false
    source

    is_valid

    JuMP.is_validFunction
    is_valid(model::GenericModel, con_ref::ConstraintRef{<:AbstractModel})

    Return true if constraint_ref refers to a valid constraint in model.

    source
    is_valid(model::GenericModel, variable_ref::GenericVariableRef)

    Return true if variable refers to a valid variable in model.

    source
    is_valid(model::Model, c::NonlinearConstraintRef)

    Return true if c refers to a valid nonlinear constraint in model.

    source

    isequal_canonical

    JuMP.isequal_canonicalFunction
    isequal_canonical(
    +    aff::GenericAffExpr{C,V},
    +    other::GenericAffExpr{C,V}
    +) where {C,V}

    Return true if aff is equal to other after dropping zeros and disregarding the order. Mainly useful for testing.

    source

    jump_function

    jump_function_type

    latex_formulation

    JuMP.latex_formulationFunction
    latex_formulation(model::AbstractModel)

    Wrap model in a type so that it can be pretty-printed as text/latex in a notebook like IJulia, or in Documenter.

    To render the model, end the cell with latex_formulation(model), or call display(latex_formulation(model)) in to force the display of the model from inside a function.

    source

    linear_terms

    JuMP.linear_termsFunction
    linear_terms(aff::GenericAffExpr{C, V})

    Provides an iterator over coefficient-variable tuples (a_i::C, x_i::V) in the linear part of the affine expression.

    source
    linear_terms(quad::GenericQuadExpr{C, V})

    Provides an iterator over tuples (coefficient::C, variable::V) in the linear part of the quadratic expression.

    source

    list_of_constraint_types

    JuMP.list_of_constraint_typesFunction
    list_of_constraint_types(model::GenericModel)::Vector{Tuple{Type,Type}}

    Return a list of tuples of the form (F, S) where F is a JuMP function type and S is an MOI set type such that all_constraints(model, F, S) returns a nonempty list.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, x >= 0, Bin);
    +
    +julia> @constraint(model, 2x <= 1);
    +
    +julia> list_of_constraint_types(model)
    +3-element Vector{Tuple{Type, Type}}:
    + (AffExpr, MathOptInterface.LessThan{Float64})
    + (VariableRef, MathOptInterface.GreaterThan{Float64})
    + (VariableRef, MathOptInterface.ZeroOne)

    Performance considerations

    Iterating over the list of function and set types is a type-unstable operation. Consider using a function barrier. See the Performance tips for extensions section of the documentation for more details.

    source

    lower_bound

    lp_sensitivity_report

    JuMP.lp_sensitivity_reportFunction
    lp_sensitivity_report(model::GenericModel{T}; atol::T = Base.rtoldefault(T))::SensitivityReport{T} where {T}

    Given a linear program model with a current optimal basis, return a SensitivityReport object, which maps:

    • Every variable reference to a tuple (d_lo, d_hi)::Tuple{T,T}, explaining how much the objective coefficient of the corresponding variable can change by, such that the original basis remains optimal.
    • Every constraint reference to a tuple (d_lo, d_hi)::Tuple{T,T}, explaining how much the right-hand side of the corresponding constraint can change by, such that the basis remains optimal.

    Both tuples are relative, rather than absolute. So given a objective coefficient of 1.0 and a tuple (-0.5, 0.5), the objective coefficient can range between 1.0 - 0.5 an 1.0 + 0.5.

    atol is the primal/dual optimality tolerance, and should match the tolerance of the solver used to compute the basis.

    Note: interval constraints are NOT supported.

    Example

    julia> import HiGHS
    +
    +julia> model = Model(HiGHS.Optimizer);
    +
    +julia> set_silent(model)
    +
    +julia> @variable(model, -1 <= x <= 2)
    +x
    +
    +julia> @objective(model, Min, x)
    +x
    +
    +julia> optimize!(model)
    +
    +julia> report = lp_sensitivity_report(model; atol = 1e-7);
    +
    +julia> dx_lo, dx_hi = report[x]
    +(-1.0, Inf)
    +
    +julia> println(
    +           "The objective coefficient of `x` can decrease by $dx_lo or " *
    +           "increase by $dx_hi."
    +       )
    +The objective coefficient of `x` can decrease by -1.0 or increase by Inf.
    +
    +julia> dRHS_lo, dRHS_hi = report[LowerBoundRef(x)]
    +(-Inf, 3.0)
    +
    +julia> println(
    +           "The lower bound of `x` can decrease by $dRHS_lo or increase " *
    +           "by $dRHS_hi."
    +       )
    +The lower bound of `x` can decrease by -Inf or increase by 3.0.
    source

    map_coefficients

    JuMP.map_coefficientsFunction
    map_coefficients(f::Function, a::GenericAffExpr)

    Apply f to the coefficients and constant term of an GenericAffExpr a and return a new expression.

    See also: map_coefficients_inplace!

    Example

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> a = GenericAffExpr(1.0, x => 1.0)
    +x + 1
    +
    +julia> map_coefficients(c -> 2 * c, a)
    +2 x + 2
    +
    +julia> a
    +x + 1
    source
    map_coefficients(f::Function, a::GenericQuadExpr)

    Apply f to the coefficients and constant term of an GenericQuadExpr a and return a new expression.

    See also: map_coefficients_inplace!

    Example

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> a = @expression(model, x^2 + x + 1)
    +x² + x + 1
    +
    +julia> map_coefficients(c -> 2 * c, a)
    +2 x² + 2 x + 2
    +
    +julia> a
    +x² + x + 1
    source

    map_coefficients_inplace!

    JuMP.map_coefficients_inplace!Function
    map_coefficients_inplace!(f::Function, a::GenericAffExpr)

    Apply f to the coefficients and constant term of an GenericAffExpr a and update them in-place.

    See also: map_coefficients

    Example

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> a = GenericAffExpr(1.0, x => 1.0)
    +x + 1
    +
    +julia> map_coefficients_inplace!(c -> 2 * c, a)
    +2 x + 2
    +
    +julia> a
    +2 x + 2
    source
    map_coefficients_inplace!(f::Function, a::GenericQuadExpr)

    Apply f to the coefficients and constant term of an GenericQuadExpr a and update them in-place.

    See also: map_coefficients

    Example

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> a = @expression(model, x^2 + x + 1)
    +x² + x + 1
    +
    +julia> map_coefficients_inplace!(c -> 2 * c, a)
    +2 x² + 2 x + 2
    +
    +julia> a
    +2 x² + 2 x + 2
    source

    mode

    model_convert

    JuMP.model_convertFunction
    model_convert(
    +    model::AbstractModel,
    +    rhs::Union{
    +        AbstractConstraint,
    +        Number,
    +        AbstractJuMPScalar,
    +        MOI.AbstractSet,
    +    },
    +)

    Convert the coefficients and constants of functions and sets in the rhs to the coefficient type value_type(typeof(model)).

    Purpose

    Creating and adding a constraint is a two-step process. The first step calls build_constraint, and the result of that is passed to add_constraint.

    However, because build_constraint does not take the model as an argument, the coefficients and constants of the function or set might be different than value_type(typeof(model)).

    Therefore, the result of build_constraint is converted in a call to model_convert before the result is passed to add_constraint.

    source

    model_string

    JuMP.model_stringFunction
    model_string(mode::MIME, model::AbstractModel)

    Return a String representation of model given the mode.

    source

    moi_function

    moi_function_type

    moi_set

    JuMP.moi_setFunction
    moi_set(constraint::AbstractConstraint)

    Return the set of the constraint constraint in the function-in-set form as a MathOptInterface.AbstractSet.

    moi_set(s::AbstractVectorSet, dim::Int)

    Returns the MOI set of dimension dim corresponding to the JuMP set s.

    moi_set(s::AbstractScalarSet)

    Returns the MOI set corresponding to the JuMP set s.

    source

    name

    JuMP.nameFunction
    name(con_ref::ConstraintRef)

    Get a constraint's name attribute.

    source
    name(v::GenericVariableRef)::String

    Get a variable's name attribute.

    source
    name(model::AbstractModel)

    Return the MOI.Name attribute of model's backend, or a default if empty.

    source

    node_count

    JuMP.node_countFunction
    node_count(model::GenericModel)

    Gets the total number of branch-and-bound nodes explored during the most recent optimization in a Mixed Integer Program.

    Solvers must implement MOI.NodeCount() to use this function.

    source

    nonlinear_constraint_string

    JuMP.nonlinear_constraint_stringFunction
    nonlinear_constraint_string(
    +    model::GenericModel,
    +    mode::MIME,
    +    c::_NonlinearConstraint,
    +)

    Return a string representation of the nonlinear constraint c belonging to model, given the mode.

    source

    nonlinear_dual_start_value

    nonlinear_expr_string

    JuMP.nonlinear_expr_stringFunction
    nonlinear_expr_string(
    +    model::GenericModel,
    +    mode::MIME,
    +    c::MOI.Nonlinear.Expression,
    +)

    Return a string representation of the nonlinear expression c belonging to model, given the mode.

    source

    nonlinear_model

    JuMP.nonlinear_modelFunction
    nonlinear_model(
    +    model::GenericModel;
    +    force::Bool = false,
    +)::Union{MOI.Nonlinear.Model,Nothing}

    If model has nonlinear components, return a MOI.Nonlinear.Model, otherwise return nothing.

    If force, always return a MOI.Nonlinear.Model, and if one does not exist for the model, create an empty one.

    source

    normalized_coefficient

    normalized_rhs

    num_constraints

    JuMP.num_constraintsFunction
    num_constraints(model::GenericModel, function_type, set_type)::Int64

    Return the number of constraints currently in the model where the function has type function_type and the set has type set_type.

    See also list_of_constraint_types and all_constraints.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, x >= 0, Bin);
    +
    +julia> @variable(model, y);
    +
    +julia> @constraint(model, y in MOI.GreaterThan(1.0));
    +
    +julia> @constraint(model, y <= 1.0);
    +
    +julia> @constraint(model, 2x <= 1);
    +
    +julia> num_constraints(model, VariableRef, MOI.GreaterThan{Float64})
    +2
    +
    +julia> num_constraints(model, VariableRef, MOI.ZeroOne)
    +1
    +
    +julia> num_constraints(model, AffExpr, MOI.LessThan{Float64})
    +2
    source
    num_constraints(model::GenericModel; count_variable_in_set_constraints::Bool)

    Return the number of constraints in model.

    If count_variable_in_set_constraints == true, then VariableRef constraints such as VariableRef-in-Integer are included. To count only the number of structural constraints (e.g., the rows in the constraint matrix of a linear program), pass count_variable_in_set_constraints = false.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, x >= 0, Int);
    +
    +julia> @constraint(model, 2x <= 1);
    +
    +julia> num_constraints(model; count_variable_in_set_constraints = true)
    +3
    +
    +julia> num_constraints(model; count_variable_in_set_constraints = false)
    +1
    source

    num_nonlinear_constraints

    num_variables

    object_dictionary

    JuMP.object_dictionaryFunction
    object_dictionary(model::GenericModel)

    Return the dictionary that maps the symbol name of a variable, constraint, or expression to the corresponding object.

    Objects are registered to a specific symbol in the macros. For example, @variable(model, x[1:2, 1:2]) registers the array of variables x to the symbol :x.

    This method should be defined for any subtype of AbstractModel.

    source

    objective_bound

    JuMP.objective_boundFunction
    objective_bound(model::GenericModel)

    Return the best known bound on the optimal objective value after a call to optimize!(model).

    For scalar-valued objectives, this function returns a Float64. For vector-valued objectives, it returns a Vector{Float64}.

    In the case of a vector-valued objective, this returns the ideal point, that is, the point obtained if each objective was optimized independently.

    source

    objective_function

    JuMP.objective_functionFunction
    objective_function(
    +    model::GenericModel,
    +    T::Type = objective_function_type(model),
    +)

    Return an object of type T representing the objective function.

    Error if the objective is not convertible to type T.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> @objective(model, Min, 2x + 1)
    +2 x + 1
    +
    +julia> objective_function(model, AffExpr)
    +2 x + 1
    +
    +julia> objective_function(model, QuadExpr)
    +2 x + 1
    +
    +julia> typeof(objective_function(model, QuadExpr))
    +QuadExpr (alias for GenericQuadExpr{Float64, GenericVariableRef{Float64}})

    We see with the last two commands that even if the objective function is affine, as it is convertible to a quadratic function, it can be queried as a quadratic function and the result is quadratic.

    However, it is not convertible to a variable.

    julia> objective_function(model, VariableRef)
    +ERROR: InexactError: convert(MathOptInterface.VariableIndex, 1.0 + 2.0 MOI.VariableIndex(1))
    +[...]
    source

    objective_function_string

    objective_function_type

    objective_sense

    objective_value

    JuMP.objective_valueFunction
    objective_value(model::GenericModel; result::Int = 1)

    Return the objective value associated with result index result of the most-recent solution returned by the solver.

    For scalar-valued objectives, this function returns a Float64. For vector-valued objectives, it returns a Vector{Float64}.

    See also: result_count.

    source

    op_ifelse

    JuMP.op_ifelseFunction
    op_ifelse(a, x, y)

    A function that falls back to ifelse(a, x, y), but when called with a JuMP variables or expression in the first argument, returns a GenericNonlinearExpr.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> op_ifelse(true, 1.0, 2.0)
    +1.0
    +
    +julia> op_ifelse(x, 1.0, 2.0)
    +ifelse(x, 1.0, 2.0)
    +
    +julia> op_ifelse(true, x, 2.0)
    +x
    source

    operator_to_set

    JuMP.operator_to_setFunction
    operator_to_set(_error::Function, ::Val{sense_symbol})

    Converts a sense symbol to a set set such that @constraint(model, func sense_symbol 0) is equivalent to @constraint(model, func in set) for any func::AbstractJuMPScalar.

    Example

    Once a custom set is defined you can directly create a JuMP constraint with it:

    julia> struct CustomSet{T} <: MOI.AbstractScalarSet
    +           value::T
    +       end
    +
    +julia> Base.copy(x::CustomSet) = CustomSet(x.value)
    +
    +julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> cref = @constraint(model, x in CustomSet(1.0))
    +x ∈ CustomSet{Float64}(1.0)

    However, there might be an appropriate sign that could be used in order to provide a more convenient syntax:

    julia> JuMP.operator_to_set(::Function, ::Val{:⊰}) = CustomSet(0.0)
    +
    +julia> MOIU.supports_shift_constant(::Type{<:CustomSet}) = true
    +
    +julia> MOIU.shift_constant(set::CustomSet, value) = CustomSet(set.value + value)
    +
    +julia> cref = @constraint(model, x ⊰ 1)
    +x ∈ CustomSet{Float64}(1.0)

    Note that the whole function is first moved to the right-hand side, then the sign is transformed into a set with zero constant and finally the constant is moved to the set with MOIU.shift_constant.

    source

    operator_warn

    JuMP.operator_warnFunction
    operator_warn(model::AbstractModel)
    +operator_warn(model::GenericModel)

    This function is called on the model whenever two affine expressions are added together without using destructive_add!, and at least one of the two expressions has more than 50 terms.

    For the case of Model, if this function is called more than 20,000 times then a warning is generated once.

    source

    optimize!

    JuMP.optimize!Function
    optimize!(
    +    model::GenericModel;
    +    ignore_optimize_hook = (model.optimize_hook === nothing),
    +    _differentiation_backend::MOI.Nonlinear.AbstractAutomaticDifferentiation =
    +        MOI.Nonlinear.SparseReverseMode(),
    +    kwargs...,
    +)

    Optimize the model.

    If an optimizer has not been set yet (see set_optimizer), a NoOptimizer error is thrown.

    If ignore_optimize_hook == true, the optimize hook is ignored and the model is solved as if the hook was not set. Keyword arguments kwargs are passed to the optimize_hook. An error is thrown if optimize_hook is nothing and keyword arguments are provided.

    Experimental features

    These features may change or be removed in any future version of JuMP.

    Pass _differentiation_backend to set the MOI.Nonlinear.AbstractAutomaticDifferentiation backend used to compute derivatives of nonlinear programs.

    If you require only :ExprGraph, it is more efficient to pass _differentiation_backend = MOI.Nonlinear.ExprGraphOnly().

    source

    optimizer_index

    JuMP.optimizer_indexFunction
    optimizer_index(x::GenericVariableRef)::MOI.VariableIndex
    +optimizer_index(x::ConstraintRef{<:GenericModel})::MOI.ConstraintIndex

    Return the index that corresponds to x in the optimizer model.

    Throws NoOptimizer if no optimizer is set, and throws an ErrorException if the optimizer is set but is not attached.

    source

    optimizer_with_attributes

    JuMP.optimizer_with_attributesFunction
    optimizer_with_attributes(optimizer_constructor, attrs::Pair...)

    Groups an optimizer constructor with the list of attributes attrs. Note that it is equivalent to MOI.OptimizerWithAttributes.

    When provided to the Model constructor or to set_optimizer, it creates an optimizer by calling optimizer_constructor(), and then sets the attributes using set_attribute.

    See also: set_attribute, get_attribute.

    Note

    The string names of the attributes are specific to each solver. One should consult the solver's documentation to find the attributes of interest.

    Example

    julia> import HiGHS
    +
    +julia> optimizer = optimizer_with_attributes(
    +           HiGHS.Optimizer, "presolve" => "off", MOI.Silent() => true,
    +       );
    +
    +julia> model = Model(optimizer);

    is equivalent to:

    julia> import HiGHS
    +
    +julia> model = Model(HiGHS.Optimizer);
    +
    +julia> set_attribute(model, "presolve", "off")
    +
    +julia> set_attribute(model, MOI.Silent(), true)
    source

    owner_model

    parameter_value

    JuMP.parameter_valueFunction
    parameter_value(x::GenericVariableRef)

    Return the value of the parameter x.

    Errors if x is not a parameter.

    See also ParameterRef, is_parameter, set_parameter_value.

    Examples

    julia> model = Model();
    +
    +julia> @variable(model, p in Parameter(2))
    +p
    +
    +julia> parameter_value(p)
    +2.0
    +
    +julia> set_parameter_value(p, 2.5)
    +
    +julia> parameter_value(p)
    +2.5
    source

    parse_constraint

    JuMP.parse_constraintFunction
    parse_constraint(_error::Function, expr::Expr)

    The entry-point for all constraint-related parsing.

    Arguments

    • The _error function is passed everywhere to provide better error messages
    • expr comes from the @constraint macro. There are two possibilities:
      • @constraint(model, expr)
      • @constraint(model, name[args], expr)
      In both cases, expr is the main component of the constraint.

    Supported syntax

    JuMP currently supports the following expr objects:

    • lhs <= rhs
    • lhs == rhs
    • lhs >= rhs
    • l <= body <= u
    • u >= body >= l
    • lhs ⟂ rhs
    • lhs in rhs
    • lhs ∈ rhs
    • z => {constraint}
    • !z => {constraint}

    as well as all broadcasted variants.

    Extensions

    The infrastructure behind parse_constraint is extendable. See parse_constraint_head and parse_constraint_call for details.

    source

    parse_constraint_call

    JuMP.parse_constraint_callFunction
    parse_constraint_call(
    +    _error::Function,
    +    is_vectorized::Bool,
    +    ::Val{op},
    +    args...,
    +)

    Implement this method to intercept the parsing of a :call expression with operator op.

    Warning

    Extending the constraint macro at parse time is an advanced operation and has the potential to interfere with existing JuMP syntax. Please discuss with the developer chatroom before publishing any code that implements these methods.

    Arguments

    • _error: a function that accepts a String and throws the string as an error, along with some descriptive information of the macro from which it was thrown.
    • is_vectorized: a boolean to indicate if op should be broadcast or not
    • op: the first element of the .args field of the Expr to intercept
    • args...: the .args field of the Expr.

    Returns

    This function must return:

    • parse_code::Expr: an expression containing any setup or rewriting code that needs to be called before build_constraint
    • build_code::Expr: an expression that calls build_constraint( or build_constraint.( depending on is_vectorized.

    See also: parse_constraint_head, build_constraint

    source
    parse_constraint_call(
    +    _error::Function,
    +    vectorized::Bool,
    +    ::Val{op},
    +    lhs,
    +    rhs,
    +) where {op}

    Fallback handler for binary operators. These might be infix operators like @constraint(model, lhs op rhs), or normal operators like @constraint(model, op(lhs, rhs)).

    In both cases, we rewrite as lhs - rhs in operator_to_set(_error, op).

    See operator_to_set for details.

    source

    parse_constraint_head

    JuMP.parse_constraint_headFunction
    parse_constraint_head(_error::Function, ::Val{head}, args...)

    Implement this method to intercept the parsing of an expression with head head.

    Warning

    Extending the constraint macro at parse time is an advanced operation and has the potential to interfere with existing JuMP syntax. Please discuss with the developer chatroom before publishing any code that implements these methods.

    Arguments

    • _error: a function that accepts a String and throws the string as an error, along with some descriptive information of the macro from which it was thrown.
    • head: the .head field of the Expr to intercept
    • args...: the .args field of the Expr.

    Returns

    This function must return:

    • is_vectorized::Bool: whether the expression represents a broadcasted expression like x .<= 1
    • parse_code::Expr: an expression containing any setup or rewriting code that needs to be called before build_constraint
    • build_code::Expr: an expression that calls build_constraint( or build_constraint.( depending on is_vectorized.

    Existing implementations

    JuMP currently implements:

    • ::Val{:call}, which forwards calls to parse_constraint_call
    • ::Val{:comparison}, which handles the special case of l <= body <= u.

    See also: parse_constraint_call, build_constraint

    source

    parse_one_operator_variable

    JuMP.parse_one_operator_variableFunction
    parse_one_operator_variable(_error::Function, infoexpr::_VariableInfoExpr, sense::Val{S}, value) where S

    Update infoexr for a variable expression in the @variable macro of the form variable name S value.

    source

    parse_ternary_variable

    JuMP.parse_ternary_variableFunction
    parse_ternary_variable(_error, variable_info, lhs_sense, lhs, rhs_sense, rhs)

    A hook for JuMP extensiosn to intercept the parsing of a :comparison expression, which has the form lhs lhs_sense variable rhs_sense rhs.

    source

    parse_variable

    JuMP.parse_variableFunction
    parse_variable(_error::Function, ::_VariableInfoExpr, args...)

    A hook for extensions to intercept the parsing of inequality constraints in the @variable macro.

    source

    primal_feasibility_report

    JuMP.primal_feasibility_reportFunction
    primal_feasibility_report(
    +    model::GenericModel{T},
    +    point::AbstractDict{GenericVariableRef{T},T} = _last_primal_solution(model),
    +    atol::T = zero(T),
    +    skip_missing::Bool = false,
    +)::Dict{Any,T}

    Given a dictionary point, which maps variables to primal values, return a dictionary whose keys are the constraints with an infeasibility greater than the supplied tolerance atol. The value corresponding to each key is the respective infeasibility. Infeasibility is defined as the distance between the primal value of the constraint (see MOI.ConstraintPrimal) and the nearest point by Euclidean distance in the corresponding set.

    Notes

    • If skip_missing = true, constraints containing variables that are not in point will be ignored.
    • If skip_missing = false and a partial primal solution is provided, an error will be thrown.
    • If no point is provided, the primal solution from the last time the model was solved is used.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, 0.5 <= x <= 1);
    +
    +julia> primal_feasibility_report(model, Dict(x => 0.2))
    +Dict{Any, Float64} with 1 entry:
    +  x ≥ 0.5 => 0.3
    source
    primal_feasibility_report(
    +    point::Function,
    +    model::GenericModel{T};
    +    atol::T = zero(T),
    +    skip_missing::Bool = false,
    +) where {T}

    A form of primal_feasibility_report where a function is passed as the first argument instead of a dictionary as the second argument.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, 0.5 <= x <= 1, start = 1.3);
    +
    +julia> primal_feasibility_report(model) do v
    +           return start_value(v)
    +       end
    +Dict{Any, Float64} with 1 entry:
    +  x ≤ 1 => 0.3
    source

    primal_status

    JuMP.print_active_bridgesFunction
    print_active_bridges([io::IO = stdout,] model::GenericModel)

    Print a list of the variable, constraint, and objective bridges that are currently used in the model.

    source
    print_active_bridges([io::IO = stdout,] model::GenericModel, ::Type{F}) where {F}

    Print a list of bridges required for an objective function of type F.

    source
    print_active_bridges(
    +    [io::IO = stdout,]
    +    model::GenericModel,
    +    F::Type,
    +    S::Type{<:MOI.AbstractSet},
    +)

    Print a list of bridges required for a constraint of type F-in-S.

    source
    print_active_bridges(
    +    [io::IO = stdout,]
    +    model::GenericModel,
    +    S::Type{<:MOI.AbstractSet},
    +)

    Print a list of bridges required to add a variable constrained to the set S.

    source
    JuMP.print_bridge_graphFunction
     print_bridge_graph([io::IO,] model::GenericModel)

    Print the hyper-graph containing all variable, constraint, and objective types that could be obtained by bridging the variables, constraints, and objectives that are present in the model.

    Warning

    This function is intended for advanced users. If you want to see only the bridges that are currently used, use print_active_bridges instead.

    Explanation of output

    Each node in the hyper-graph corresponds to a variable, constraint, or objective type.

    • Variable nodes are indicated by [ ]
    • Constraint nodes are indicated by ( )
    • Objective nodes are indicated by | |

    The number inside each pair of brackets is an index of the node in the hyper-graph.

    Note that this hyper-graph is the full list of possible transformations. When the bridged model is created, we select the shortest hyper-path(s) from this graph, so many nodes may be un-used.

    For more information, see Legat, B., Dowson, O., Garcia, J., and Lubin, M. (2020). "MathOptInterface: a data structure for mathematical optimization problems." URL: https://arxiv.org/abs/2002.03447

    source

    quad_terms

    JuMP.quad_termsFunction
    quad_terms(quad::GenericQuadExpr{C, V})

    Provides an iterator over tuples (coefficient::C, var_1::V, var_2::V) in the quadratic part of the quadratic expression.

    source

    raw_status

    JuMP.raw_statusFunction
    raw_status(model::GenericModel)

    Return the reason why the solver stopped in its own words (i.e., the MathOptInterface model attribute RawStatusString).

    source

    read_from_file

    JuMP.read_from_fileFunction
    read_from_file(
    +    filename::String;
    +    format::MOI.FileFormats.FileFormat = MOI.FileFormats.FORMAT_AUTOMATIC,
    +    kwargs...,
    +)

    Return a JuMP model read from filename in the format format.

    If the filename ends in .gz, it will be uncompressed using Gzip. If the filename ends in .bz2, it will be uncompressed using BZip2.

    Other kwargs are passed to the Model constructor of the chosen format.

    source

    reduced_cost

    JuMP.reduced_costFunction
    reduced_cost(x::GenericVariableRef{T})::T where {T}

    Return the reduced cost associated with variable x.

    Equivalent to querying the shadow price of the active variable bound (if one exists and is active).

    See also: shadow_price.

    source

    register

    JuMP.registerFunction
    register(
    +    model::Model,
    +    op::Symbol,
    +    dimension::Integer,
    +    f::Function;
    +    autodiff:Bool = false,
    +)

    Register the user-defined function f that takes dimension arguments in model as the symbol op.

    The function f must support all subtypes of Real as arguments. Do not assume that the inputs are Float64.

    Notes

    • For this method, you must explicitly set autodiff = true, because no user-provided gradient function ∇f is given.
    • Second-derivative information is only computed if dimension == 1.
    • op does not have to be the same symbol as f, but it is generally more readable if it is.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> f(x::T) where {T<:Real} = x^2
    +f (generic function with 1 method)
    +
    +julia> register(model, :foo, 1, f; autodiff = true)
    +
    +julia> @NLobjective(model, Min, foo(x))
    julia> model = Model();
    +
    +julia> @variable(model, x[1:2])
    +2-element Vector{VariableRef}:
    + x[1]
    + x[2]
    +
    +julia> g(x::T, y::T) where {T<:Real} = x * y
    +g (generic function with 1 method)
    +
    +julia> register(model, :g, 2, g; autodiff = true)
    +
    +julia> @NLobjective(model, Min, g(x[1], x[2]))
    source
    register(
    +    model::Model,
    +    s::Symbol,
    +    dimension::Integer,
    +    f::Function,
    +    ∇f::Function;
    +    autodiff:Bool = false,
    +)

    Register the user-defined function f that takes dimension arguments in model as the symbol s. In addition, provide a gradient function ∇f.

    The functions fand ∇f must support all subtypes of Real as arguments. Do not assume that the inputs are Float64.

    Notes

    • If the function f is univariate (i.e., dimension == 1), ∇f must return a number which represents the first-order derivative of the function f.
    • If the function f is multi-variate, ∇f must have a signature matching ∇f(g::AbstractVector{T}, args::T...) where {T<:Real}, where the first argument is a vector g that is modified in-place with the gradient.
    • If autodiff = true and dimension == 1, use automatic differentiation to compute the second-order derivative information. If autodiff = false, only first-order derivative information will be used.
    • s does not have to be the same symbol as f, but it is generally more readable if it is.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> f(x::T) where {T<:Real} = x^2
    +f (generic function with 1 method)
    +
    +julia> ∇f(x::T) where {T<:Real} = 2 * x
    +∇f (generic function with 1 method)
    +
    +julia> register(model, :foo, 1, f, ∇f; autodiff = true)
    +
    +julia> @NLobjective(model, Min, foo(x))
    julia> model = Model();
    +
    +julia> @variable(model, x[1:2])
    +2-element Vector{VariableRef}:
    + x[1]
    + x[2]
    +
    +julia> g(x::T, y::T) where {T<:Real} = x * y
    +g (generic function with 1 method)
    +
    +julia> function ∇g(g::AbstractVector{T}, x::T, y::T) where {T<:Real}
    +           g[1] = y
    +           g[2] = x
    +           return
    +       end
    +∇g (generic function with 1 method)
    +
    +julia> register(model, :g, 2, g, ∇g)
    +
    +julia> @NLobjective(model, Min, g(x[1], x[2]))
    source
    register(
    +    model::Model,
    +    s::Symbol,
    +    dimension::Integer,
    +    f::Function,
    +    ∇f::Function,
    +    ∇²f::Function,
    +)

    Register the user-defined function f that takes dimension arguments in model as the symbol s. In addition, provide a gradient function ∇f and a hessian function ∇²f.

    ∇f and ∇²f must return numbers corresponding to the first- and second-order derivatives of the function f respectively.

    Notes

    • Because automatic differentiation is not used, you can assume the inputs are all Float64.
    • This method will throw an error if dimension > 1.
    • s does not have to be the same symbol as f, but it is generally more readable if it is.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> f(x::Float64) = x^2
    +f (generic function with 1 method)
    +
    +julia> ∇f(x::Float64) = 2 * x
    +∇f (generic function with 1 method)
    +
    +julia> ∇²f(x::Float64) = 2.0
    +∇²f (generic function with 1 method)
    +
    +julia> register(model, :foo, 1, f, ∇f, ∇²f)
    +
    +julia> @NLobjective(model, Min, foo(x))
    +
    source

    relative_gap

    JuMP.relative_gapFunction
    relative_gap(model::GenericModel)

    Return the final relative optimality gap after a call to optimize!(model). Exact value depends upon implementation of MathOptInterface.RelativeGap() by the particular solver used for optimization.

    source

    relax_integrality

    JuMP.relax_integralityFunction
    relax_integrality(model::GenericModel)

    Modifies model to "relax" all binary and integrality constraints on variables. Specifically,

    • Binary constraints are deleted, and variable bounds are tightened if necessary to ensure the variable is constrained to the interval $[0, 1]$.
    • Integrality constraints are deleted without modifying variable bounds.
    • An error is thrown if semi-continuous or semi-integer constraints are present (support may be added for these in the future).
    • All other constraints are ignored (left in place). This includes discrete constraints like SOS and indicator constraints.

    Returns a function that can be called without any arguments to restore the original model. The behavior of this function is undefined if additional changes are made to the affected variables in the meantime.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, x, Bin);
    +
    +julia> @variable(model, 1 <= y <= 10, Int);
    +
    +julia> @objective(model, Min, x + y);
    +
    +julia> undo_relax = relax_integrality(model);
    +
    +julia> print(model)
    +Min x + y
    +Subject to
    + x ≥ 0
    + y ≥ 1
    + x ≤ 1
    + y ≤ 10
    +
    +julia> undo_relax()
    +
    +julia> print(model)
    +Min x + y
    +Subject to
    + y ≥ 1
    + y ≤ 10
    + y integer
    + x binary
    source

    relax_with_penalty!

    JuMP.relax_with_penalty!Function
    relax_with_penalty!(
    +    model::GenericModel{T},
    +    [penalties::Dict{ConstraintRef,T}];
    +    [default::Union{Nothing,Real} = nothing,]
    +) where {T}

    Destructively modify the model in-place to create a penalized relaxation of the constraints.

    Warning

    This is a destructive routine that modifies the model in-place. If you don't want to modify the original model, use copy_model to create a copy before calling relax_with_penalty!.

    Reformulation

    See MOI.Utilities.ScalarPenaltyRelaxation for details of the reformulation.

    For each constraint ci, the penalty passed to MOI.Utilities.ScalarPenaltyRelaxation is get(penalties, ci, default). If the value is nothing, because ci does not exist in penalties and default = nothing, then the constraint is skipped.

    Return value

    This function returns a Dict{ConstraintRef,AffExpr} that maps each constraint index to the corresponding y + z as an AffExpr. In an optimal solution, query the value of these functions to compute the violation of each constraint.

    Relax a subset of constraints

    To relax a subset of constraints, pass a penalties dictionary and set default = nothing.

    Example

    julia> function new_model()
    +           model = Model()
    +           @variable(model, x)
    +           @objective(model, Max, 2x + 1)
    +           @constraint(model, c1, 2x - 1 <= -2)
    +           @constraint(model, c2, 3x >= 0)
    +           return model
    +       end
    +new_model (generic function with 1 method)
    +
    +julia> model_1 = new_model();
    +
    +julia> penalty_map = relax_with_penalty!(model_1; default = 2.0);
    +
    +julia> penalty_map[model_1[:c1]]
    +_[3]
    +
    +julia> penalty_map[model_1[:c2]]
    +_[2]
    +
    +julia> print(model_1)
    +Max 2 x - 2 _[2] - 2 _[3] + 1
    +Subject to
    + c2 : 3 x + _[2] ≥ 0
    + c1 : 2 x - _[3] ≤ -1
    + _[2] ≥ 0
    + _[3] ≥ 0
    +
    +julia> model_2 = new_model();
    +
    +julia> relax_with_penalty!(model_2, Dict(model_2[:c2] => 3.0))
    +Dict{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.GreaterThan{Float64}}, ScalarShape}, AffExpr} with 1 entry:
    +  c2 : 3 x + _[2] ≥ 0 => _[2]
    +
    +julia> print(model_2)
    +Max 2 x - 3 _[2] + 1
    +Subject to
    + c2 : 3 x + _[2] ≥ 0
    + c1 : 2 x ≤ -1
    + _[2] ≥ 0
    source

    remove_bridge

    JuMP.remove_bridgeFunction
    remove_bridge(
    +    model::GenericModel{S},
    +    BT::Type{<:MOI.Bridges.AbstractBridge};
    +    coefficient_type::Type{T} = S,
    +) where {S,T}

    Remove BT{T} from the list of bridges that can be used to transform unsupported constraints into an equivalent formulation using only constraints supported by the optimizer.

    See also: add_bridge.

    Example

    julia> model = Model();
    +
    +julia> add_bridge(model, MOI.Bridges.Constraint.SOCtoNonConvexQuadBridge)
    +
    +julia> remove_bridge(model, MOI.Bridges.Constraint.SOCtoNonConvexQuadBridge)
    +
    +julia> add_bridge(
    +           model,
    +           MOI.Bridges.Constraint.NumberConversionBridge;
    +           coefficient_type = Complex{Float64},
    +       )
    +
    +julia> remove_bridge(
    +           model,
    +           MOI.Bridges.Constraint.NumberConversionBridge;
    +           coefficient_type = Complex{Float64},
    +       )
    source

    reshape_set

    JuMP.reshape_setFunction
    reshape_set(vectorized_set::MOI.AbstractSet, shape::AbstractShape)

    Return a set in its original shape shape given its vectorized form vectorized_form.

    Example

    Given a SymmetricMatrixShape of vectorized form [1, 2, 3] in MOI.PositiveSemidefinieConeTriangle(2), the following code returns the set of the original constraint Symmetric(Matrix[1 2; 2 3]) in PSDCone():

    julia> reshape_set(MOI.PositiveSemidefiniteConeTriangle(2), SymmetricMatrixShape(2))
    +PSDCone()
    source

    reshape_vector

    JuMP.reshape_vectorFunction
    reshape_vector(vectorized_form::Vector, shape::AbstractShape)

    Return an object in its original shape shape given its vectorized form vectorized_form.

    Example

    Given a SymmetricMatrixShape of vectorized form [1, 2, 3], the following code returns the matrix Symmetric(Matrix[1 2; 2 3]):

    julia> reshape_vector([1, 2, 3], SymmetricMatrixShape(2))
    +2×2 LinearAlgebra.Symmetric{Int64, Matrix{Int64}}:
    + 1  2
    + 2  3
    source

    result_count

    reverse_sense

    JuMP.reverse_senseFunction
    reverse_sense(::Val{T}) where {T}

    Given an (in)equality symbol T, return a new Val object with the opposite (in)equality symbol.

    source

    set_attribute

    JuMP.set_attributeFunction
    set_attribute(model::GenericModel, attr::MOI.AbstractModelAttribute, value)
    +set_attribute(x::GenericVariableRef, attr::MOI.AbstractVariableAttribute, value)
    +set_attribute(cr::ConstraintRef, attr::MOI.AbstractConstraintAttribute, value)

    Set the value of a solver-specifc attribute attr to value.

    This is equivalent to calling MOI.set with the associated MOI model and, for variables and constraints, with the associated MOI.VariableIndex or MOI.ConstraintIndex.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> @constraint(model, c, 2 * x <= 1)
    +c : 2 x ≤ 1
    +
    +julia> set_attribute(model, MOI.Name(), "model_new")
    +
    +julia> set_attribute(x, MOI.VariableName(), "x_new")
    +
    +julia> set_attribute(c, MOI.ConstraintName(), "c_new")
    source
    set_attribute(
    +    model::Union{GenericModel,MOI.OptimizerWithAttributes},
    +    attr::Union{AbstractString,MOI.AbstractOptimizerAttribute},
    +    value,
    +)

    Set the value of a solver-specifc attribute attr to value.

    This is equivalent to calling MOI.set with the associated MOI model.

    If attr is an AbstractString, it is converted to MOI.RawOptimizerAttribute.

    Example

    julia> import HiGHS
    +
    +julia> opt = optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false);
    +
    +julia> model = Model(opt);
    +
    +julia> set_attribute(model, "output_flag", false)
    +
    +julia> set_attribute(model, MOI.RawOptimizerAttribute("output_flag"), true)
    +
    +julia> set_attribute(opt, "output_flag", true)
    +
    +julia> set_attribute(opt, MOI.RawOptimizerAttribute("output_flag"), false)
    source

    set_attributes

    JuMP.set_attributesFunction
    set_attributes(
    +    destination::Union{
    +        GenericModel,
    +        MOI.OptimizerWithAttributes,
    +        GenericVariableRef,
    +        ConstraintRef,
    +    },
    +    pairs::Pair...,
    +)

    Given a list of attribute => value pairs, calls set_attribute(destination, attribute, value) for each pair.

    See also: set_attribute, get_attribute.

    Example

    julia> import Ipopt
    +
    +julia> model = Model(Ipopt.Optimizer);
    +
    +julia> set_attributes(model, "tol" => 1e-4, "max_iter" => 100)

    is equivalent to:

    julia> import Ipopt
    +
    +julia> model = Model(Ipopt.Optimizer);
    +
    +julia> set_attribute(model, "tol", 1e-4)
    +
    +julia> set_attribute(model, "max_iter", 100)
    source

    set_binary

    JuMP.set_binaryFunction
    set_binary(v::GenericVariableRef)

    Add a constraint on the variable v that it must take values in the set $\{0,1\}$.

    See also BinaryRef, is_binary, unset_binary.

    Examples

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> is_binary(x)
    +false
    +
    +julia> set_binary(x)
    +
    +julia> is_binary(x)
    +true
    source

    set_dual_start_value

    JuMP.set_dual_start_valueFunction
    set_dual_start_value(con_ref::ConstraintRef, value)

    Set the dual start value (MOI attribute ConstraintDualStart) of the constraint con_ref to value. To remove a dual start value set it to nothing.

    See also dual_start_value.

    source

    set_integer

    JuMP.set_integerFunction
    set_integer(variable_ref::GenericVariableRef)

    Add an integrality constraint on the variable variable_ref.

    See also IntegerRef, is_integer, unset_integer.

    Examples

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> is_integer(x)
    +false
    +
    +julia> set_integer(x)
    +
    +julia> is_integer(x)
    +true
    source

    set_lower_bound

    JuMP.set_lower_boundFunction
    set_lower_bound(v::GenericVariableRef, lower::Number)

    Set the lower bound of a variable. If one does not exist, create a new lower bound constraint.

    See also LowerBoundRef, has_lower_bound, lower_bound, delete_lower_bound.

    Examples

    julia> model = Model();
    +
    +julia> @variable(model, x >= 1.0);
    +
    +julia> lower_bound(x)
    +1.0
    +
    +julia> set_lower_bound(x, 2.0)
    +
    +julia> lower_bound(x)
    +2.0
    source

    set_name

    JuMP.set_nameFunction
    set_name(con_ref::ConstraintRef, s::AbstractString)

    Set a constraint's name attribute.

    source
    set_name(v::GenericVariableRef, s::AbstractString)

    Set a variable's name attribute.

    source

    set_nonlinear_dual_start_value

    JuMP.set_nonlinear_dual_start_valueFunction
    set_nonlinear_dual_start_value(
    +    model::Model,
    +    start::Union{Nothing,Vector{Float64}},
    +)

    Set the value of the MOI attribute MOI.NLPBlockDualStart.

    The start vector corresponds to the Lagrangian duals of the nonlinear constraints, in the order given by all_nonlinear_constraints. That is, you must pass a single start vector corresponding to all of the nonlinear constraints in a single function call; you cannot set the dual start value of nonlinear constraints one-by-one. The example below demonstrates how to use all_nonlinear_constraints to create a mapping between the nonlinear constraint references and the start vector.

    Pass nothing to unset a previous start.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, x[1:2]);
    +
    +julia> nl1 = @NLconstraint(model, x[1] <= sqrt(x[2]));
    +
    +julia> nl2 = @NLconstraint(model, x[1] >= exp(x[2]));
    +
    +julia> start = Dict(nl1 => -1.0, nl2 => 1.0);
    +
    +julia> start_vector = [start[con] for con in all_nonlinear_constraints(model)]
    +2-element Vector{Float64}:
    + -1.0
    +  1.0
    +
    +julia> set_nonlinear_dual_start_value(model, start_vector)
    +
    +julia> nonlinear_dual_start_value(model)
    +2-element Vector{Float64}:
    + -1.0
    +  1.0
    source

    set_nonlinear_objective

    JuMP.set_nonlinear_objectiveFunction
    set_nonlinear_objective(
    +    model::Model,
    +    sense::MOI.OptimizationSense,
    +    expr::Expr,
    +)

    Set the nonlinear objective of model to the expression expr, with the optimization sense sense.

    This function is most useful if the expression expr is generated programmatically, and you cannot use @NLobjective.

    Notes

    • You must interpolate the variables directly into the expression expr.
    • You must use MIN_SENSE or MAX_SENSE instead of Min and Max.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> set_nonlinear_objective(model, MIN_SENSE, :($(x) + $(x)^2))
    source

    set_normalized_coefficient

    JuMP.set_normalized_coefficientFunction
    set_normalized_coefficient(con_ref::ConstraintRef, variable::GenericVariableRef, value)

    Set the coefficient of variable in the constraint constraint to value.

    Note that prior to this step, JuMP will aggregate multiple terms containing the same variable. For example, given a constraint 2x + 3x <= 2, set_normalized_coefficient(con, x, 4) will create the constraint 4x <= 2.

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> @constraint(model, con, 2x + 3x <= 2)
    +con : 5 x ≤ 2
    +
    +julia> set_normalized_coefficient(con, x, 4)
    +
    +julia> con
    +con : 4 x ≤ 2
    source

    set_normalized_coefficients

    JuMP.set_normalized_coefficientsFunction
    set_normalized_coefficients(
    +    con_ref::ConstraintRef,
    +    variable,
    +    new_coefficients::Vector{Tuple{Int64,T}},
    +)

    Set the coefficients of variable in the constraint con_ref to new_coefficients, where each element in new_coefficients is a tuple which maps the row to a new coefficient.

    Note that prior to this step, during constraint creation, JuMP will aggregate multiple terms containing the same variable.

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> @constraint(model, con, [2x + 3x, 4x] in MOI.Nonnegatives(2))
    +con : [5 x, 4 x] ∈ MathOptInterface.Nonnegatives(2)
    +
    +julia> set_normalized_coefficients(con, x, [(1, 2.0), (2, 5.0)])
    +
    +julia> con
    +con : [2 x, 5 x] ∈ MathOptInterface.Nonnegatives(2)
    source

    set_normalized_rhs

    JuMP.set_normalized_rhsFunction
    set_normalized_rhs(con_ref::ConstraintRef, value)

    Set the right-hand side term of constraint to value.

    Note that prior to this step, JuMP will aggregate all constant terms onto the right-hand side of the constraint. For example, given a constraint 2x + 1 <= 2, set_normalized_rhs(con, 4) will create the constraint 2x <= 4, not 2x + 1 <= 4.

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> @constraint(model, con, 2x + 1 <= 2)
    +con : 2 x ≤ 1
    +
    +julia> set_normalized_rhs(con, 4)
    +
    +julia> con
    +con : 2 x ≤ 4
    source

    set_objective

    JuMP.set_objectiveFunction
    set_objective(model::AbstractModel, sense::MOI.OptimizationSense, func)

    The functional equivalent of the @objective macro.

    Sets the objective sense and objective function simultaneously, and is equivalent to calling set_objective_sense and set_objective_function separately.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> set_objective(model, MIN_SENSE, x)
    source

    set_objective_coefficient

    JuMP.set_objective_coefficientFunction
    set_objective_coefficient(model::GenericModel, variable::GenericVariableRef, coefficient::Real)

    Set the linear objective coefficient associated with Variable to coefficient.

    Note: this function will throw an error if a nonlinear objective is set.

    source

    set_objective_function

    JuMP.set_objective_functionFunction
    set_objective_function(model::GenericModel, func::MOI.AbstractFunction)
    +set_objective_function(model::GenericModel, func::AbstractJuMPScalar)
    +set_objective_function(model::GenericModel, func::Real)
    +set_objective_function(model::GenericModel, func::Vector{<:AbstractJuMPScalar})

    Sets the objective function of the model to the given function. See set_objective_sense to set the objective sense. These are low-level functions; the recommended way to set the objective is with the @objective macro.

    source

    set_objective_sense

    JuMP.set_objective_senseFunction
    set_objective_sense(model::GenericModel, sense::MOI.OptimizationSense)

    Sets the objective sense of the model to the given sense. See set_objective_function to set the objective function. These are low-level functions; the recommended way to set the objective is with the @objective macro.

    source

    set_optimize_hook

    JuMP.set_optimize_hookFunction
    set_optimize_hook(model::GenericModel, f::Union{Function,Nothing})

    Set the function f as the optimize hook for model.

    f should have a signature f(model::GenericModel; kwargs...), where the kwargs are those passed to optimize!.

    Notes

    • The optimize hook should generally modify the model, or some external state in some way, and then call optimize!(model; ignore_optimize_hook = true) to optimize the problem, bypassing the hook.
    • Use set_optimize_hook(model, nothing) to unset an optimize hook.

    Example

    julia> model = Model();
    +
    +julia> function my_hook(model::Model; kwargs...)
    +           println(kwargs)
    +           println("Calling with `ignore_optimize_hook = true`")
    +           optimize!(model; ignore_optimize_hook = true)
    +           return
    +       end
    +my_hook (generic function with 1 method)
    +
    +julia> set_optimize_hook(model, my_hook)
    +my_hook (generic function with 1 method)
    +
    +julia> optimize!(model; test_arg = true)
    +Base.Pairs{Symbol, Bool, Tuple{Symbol}, NamedTuple{(:test_arg,), Tuple{Bool}}}(:test_arg => 1)
    +Calling with `ignore_optimize_hook = true`
    +ERROR: NoOptimizer()
    +[...]
    source

    set_optimizer

    JuMP.set_optimizerFunction
    set_optimizer(
    +    model::GenericModel,
    +    optimizer_factory;
    +    add_bridges::Bool = true,
    +)

    Creates an empty MathOptInterface.AbstractOptimizer instance by calling optimizer_factory() and sets it as the optimizer of model. Specifically, optimizer_factory must be callable with zero arguments and return an empty MathOptInterface.AbstractOptimizer.

    If add_bridges is true, constraints and objectives that are not supported by the optimizer are automatically bridged to equivalent supported formulation. Passing add_bridges = false can improve performance if the solver natively supports all of the elements in model.

    See set_attribute for setting solver-specific parameters of the optimizer.

    Example

    julia> import HiGHS
    +
    +julia> model = Model();
    +
    +julia> set_optimizer(model, () -> HiGHS.Optimizer())
    +
    +julia> set_optimizer(model, HiGHS.Optimizer; add_bridges = false)
    source

    set_optimizer_attribute

    JuMP.set_optimizer_attributeFunction
    set_optimizer_attribute(
    +    model::Union{GenericModel,MOI.OptimizerWithAttributes},
    +    attr::Union{AbstractString,MOI.AbstractOptimizerAttribute},
    +    value,
    +)

    Set the solver-specific attribute attr in model to value.

    If attr is an AbstractString, this is equivalent to set_optimizer_attribute(model, MOI.RawOptimizerAttribute(name), value).

    Compat

    This method will remain in all v1.X releases of JuMP, but it may be removed in a future v2.0 release. We recommend using set_attribute instead.

    See also: set_optimizer_attributes, get_optimizer_attribute.

    Example

    julia> model = Model();
    +
    +julia> set_optimizer_attribute(model, MOI.Silent(), true)
    source

    set_optimizer_attributes

    JuMP.set_optimizer_attributesFunction
    set_optimizer_attributes(
    +    model::Union{GenericModel,MOI.OptimizerWithAttributes},
    +    pairs::Pair...,
    +)

    Given a list of attribute => value pairs, calls set_optimizer_attribute(model, attribute, value) for each pair.

    Compat

    This method will remain in all v1.X releases of JuMP, but it may be removed in a future v2.0 release. We recommend using set_attributes instead.

    See also: set_optimizer_attribute, get_optimizer_attribute.

    Example

    julia> import Ipopt
    +
    +julia> model = Model(Ipopt.Optimizer);
    +
    +julia> set_optimizer_attributes(model, "tol" => 1e-4, "max_iter" => 100)

    is equivalent to:

    julia> import Ipopt
    +
    +julia> model = Model(Ipopt.Optimizer);
    +
    +julia> set_optimizer_attribute(model, "tol", 1e-4)
    +
    +julia> set_optimizer_attribute(model, "max_iter", 100)
    source

    set_parameter_value

    JuMP.set_parameter_valueFunction
    set_parameter_value(x::GenericVariableRef, value)

    Update the parameter constraint on the variable x to value.

    Errors if x is not a parameter.

    See also ParameterRef, is_parameter, parameter_value.

    Examples

    julia> model = Model();
    +
    +julia> @variable(model, p in Parameter(2))
    +p
    +
    +julia> parameter_value(p)
    +2.0
    +
    +julia> set_parameter_value(p, 2.5)
    +
    +julia> parameter_value(p)
    +2.5
    source

    set_silent

    JuMP.set_silentFunction
    set_silent(model::GenericModel)

    Takes precedence over any other attribute controlling verbosity and requires the solver to produce no output.

    See also: unset_silent.

    source

    set_start_value

    JuMP.set_start_valueFunction
    set_start_value(con_ref::ConstraintRef, value)

    Set the primal start value (MOI.ConstraintPrimalStart) of the constraint con_ref to value. To remove a primal start value set it to nothing.

    See also start_value.

    source
    set_start_value(variable::GenericVariableRef, value::Union{Real,Nothing})

    Set the start value (MOI attribute VariablePrimalStart) of the variable to value.

    Pass nothing to unset the start value.

    Note: VariablePrimalStarts are sometimes called "MIP-starts" or "warmstarts".

    See also start_value.

    source

    set_start_values

    JuMP.set_start_valuesFunction
    set_start_values(
    +    model::GenericModel;
    +    variable_primal_start::Union{Nothing,Function} = value,
    +    constraint_primal_start::Union{Nothing,Function} = value,
    +    constraint_dual_start::Union{Nothing,Function} = dual,
    +    nonlinear_dual_start::Union{Nothing,Function} = nonlinear_dual_start_value,
    +)

    Set the primal and dual starting values in model using the functions provided.

    If any keyword argument is nothing, the corresponding start value is skipped.

    If the optimizer does not support setting the starting value, the value will be skipped.

    variable_primal_start

    This function controls the primal starting solution for the variables. It is equivalent to calling set_start_value for each variable, or setting the MOI.VariablePrimalStart attribute.

    If it is a function, it must have the form variable_primal_start(x::VariableRef) that maps each variable x to the starting primal value.

    The default is value.

    constraint_primal_start

    This function controls the primal starting solution for the constraints. It is equivalent to calling set_start_value for each constraint, or setting the MOI.ConstraintPrimalStart attribute.

    If it is a function, it must have the form constraint_primal_start(ci::ConstraintRef) that maps each constraint ci to the starting primal value.

    The default is value.

    constraint_dual_start

    This function controls the dual starting solution for the constraints. It is equivalent to calling set_dual_start_value for each constraint, or setting the MOI.ConstraintDualStart attribute.

    If it is a function, it must have the form constraint_dual_start(ci::ConstraintRef) that maps each constraint ci to the starting dual value.

    The default is dual.

    nonlinear_dual_start

    This function controls the dual starting solution for the nonlinear constraints It is equivalent to calling set_nonlinear_dual_start_value.

    If it is a function, it must have the form nonlinear_dual_start(model::GenericModel) that returns a vector corresponding to the dual start of the constraints.

    The default is nonlinear_dual_start_value.

    source

    set_string_names_on_creation

    JuMP.set_string_names_on_creationFunction
    set_string_names_on_creation(model::GenericModel, value::Bool)

    Set the default argument of the set_string_name keyword in the @variable and @constraint macros to value. This is used to determine whether to assign String names to all variables and constraints in model.

    By default, value is true. However, for larger models calling set_string_names_on_creation(model, false) can improve performance at the cost of reducing the readability of printing and solver log messages.

    source

    set_time_limit_sec

    set_upper_bound

    JuMP.set_upper_boundFunction
    set_upper_bound(v::GenericVariableRef, upper::Number)

    Set the upper bound of a variable. If one does not exist, create an upper bound constraint.

    See also UpperBoundRef, has_upper_bound, upper_bound, delete_upper_bound.

    Examples

    julia> model = Model();
    +
    +julia> @variable(model, x <= 1.0);
    +
    +julia> upper_bound(x)
    +1.0
    +
    +julia> set_upper_bound(x, 2.0)
    +
    +julia> upper_bound(x)
    +2.0
    source

    set_value

    JuMP.set_valueFunction
    set_value(p::NonlinearParameter, v::Number)

    Store the value v in the nonlinear parameter p.

    Example

    julia> model = Model();
    +
    +julia> @NLparameter(model, p == 0)
    +p == 0.0
    +
    +julia> set_value(p, 5)
    +5
    +
    +julia> value(p)
    +5.0
    source

    shadow_price

    JuMP.shadow_priceFunction
    shadow_price(con_ref::ConstraintRef)

    Return the change in the objective from an infinitesimal relaxation of the constraint.

    This value is computed from dual and can be queried only when has_duals is true and the objective sense is MIN_SENSE or MAX_SENSE (not FEASIBILITY_SENSE). For linear constraints, the shadow prices differ at most in sign from the dual value depending on the objective sense.

    See also reduced_cost.

    Notes

    • The function simply translates signs from dual and does not validate the conditions needed to guarantee the sensitivity interpretation of the shadow price. The caller is responsible, e.g., for checking whether the solver converged to an optimal primal-dual pair or a proof of infeasibility.
    • The computation is based on the current objective sense of the model. If this has changed since the last solve, the results will be incorrect.
    • Relaxation of equality constraints (and hence the shadow price) is defined based on which sense of the equality constraint is active.
    source

    shape

    JuMP.shapeFunction
    shape(c::AbstractConstraint)::AbstractShape

    Return the shape of the constraint c.

    source

    show_backend_summary

    JuMP.show_backend_summaryFunction
    show_backend_summary(io::IO, model::GenericModel)

    Print a summary of the optimizer backing model.

    AbstractModels should implement this method.

    source

    show_constraints_summary

    show_objective_function_summary

    simplex_iterations

    JuMP.simplex_iterationsFunction
    simplex_iterations(model::GenericModel)

    Gets the cumulative number of simplex iterations during the most-recent optimization.

    Solvers must implement MOI.SimplexIterations() to use this function.

    source

    solution_summary

    JuMP.solution_summaryFunction
    solution_summary(model::GenericModel; result::Int = 1, verbose::Bool = false)

    Return a struct that can be used print a summary of the solution in result result.

    If verbose=true, write out the primal solution for every variable and the dual solution for every constraint, excluding those with empty names.

    Example

    When called at the REPL, the summary is automatically printed:

    julia> model = Model();
    +
    +julia> solution_summary(model)
    +* Solver : No optimizer attached.
    +
    +* Status
    +  Result count       : 0
    +  Termination status : OPTIMIZE_NOT_CALLED
    +  Message from the solver:
    +  "optimize not called"
    +
    +* Candidate solution (result #1)
    +  Primal status      : NO_SOLUTION
    +  Dual status        : NO_SOLUTION
    +
    +* Work counters

    Use print to force the printing of the summary from inside a function:

    julia> model = Model();
    +
    +julia> function foo(model)
    +           print(solution_summary(model))
    +           return
    +       end
    +foo (generic function with 1 method)
    +
    +julia> foo(model)
    +* Solver : No optimizer attached.
    +
    +* Status
    +  Result count       : 0
    +  Termination status : OPTIMIZE_NOT_CALLED
    +  Message from the solver:
    +  "optimize not called"
    +
    +* Candidate solution (result #1)
    +  Primal status      : NO_SOLUTION
    +  Dual status        : NO_SOLUTION
    +
    +* Work counters
    source

    solve_time

    JuMP.solve_timeFunction
    solve_time(model::GenericModel)

    If available, returns the solve time reported by the solver. Returns "ArgumentError: ModelLike of type Solver.Optimizer does not support accessing the attribute MathOptInterface.SolveTimeSec()" if the attribute is not implemented.

    source

    solver_name

    JuMP.solver_nameFunction
    solver_name(model::GenericModel)

    If available, returns the SolverName property of the underlying optimizer.

    Returns "No optimizer attached" in AUTOMATIC or MANUAL modes when no optimizer is attached.

    Returns "SolverName() attribute not implemented by the optimizer." if the attribute is not implemented.

    source

    start_value

    JuMP.start_valueFunction
    start_value(con_ref::ConstraintRef)

    Return the primal start value (MOI.ConstraintPrimalStart) of the constraint con_ref.

    Note: If no primal start value has been set, start_value will return nothing.

    See also set_start_value.

    source
    start_value(v::GenericVariableRef)

    Return the start value (MOI attribute VariablePrimalStart) of the variable v.

    Note: VariablePrimalStarts are sometimes called "MIP-starts" or "warmstarts".

    See also set_start_value.

    source

    termination_status

    time_limit_sec

    triangle_vec

    JuMP.triangle_vecFunction
    triangle_vec(matrix::Matrix)

    Return the upper triangle of a matrix concatenated into a vector in the order required by JuMP and MathOptInterface for Triangle sets.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, X[1:3, 1:3], Symmetric);
    +
    +julia> @variable(model, t)
    +t
    +
    +julia> @constraint(model, [t; triangle_vec(X)] in MOI.RootDetConeTriangle(3))
    +[t, X[1,1], X[1,2], X[2,2], X[1,3], X[2,3], X[3,3]] ∈ MathOptInterface.RootDetConeTriangle(3)
    source

    unfix

    JuMP.unfixFunction
    unfix(v::GenericVariableRef)

    Delete the fixing constraint of a variable.

    Error if one does not exist.

    See also FixRef, is_fixed, fix_value, fix.

    Examples

    julia> model = Model();
    +
    +julia> @variable(model, x == 1);
    +
    +julia> is_fixed(x)
    +true
    +
    +julia> unfix(x)
    +
    +julia> is_fixed(x)
    +false
    source

    unregister

    JuMP.unregisterFunction
    unregister(model::GenericModel, key::Symbol)

    Unregister the name key from model so that a new variable, constraint, or expression can be created with the same key.

    Note that this will not delete the object model[key]; it will just remove the reference at model[key]. To delete the object, use delete as well.

    See also: delete, object_dictionary.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> @variable(model, x)
    +ERROR: An object of name x is already attached to this model. If this
    +    is intended, consider using the anonymous construction syntax, e.g.,
    +    `x = @variable(model, [1:N], ...)` where the name of the object does
    +    not appear inside the macro.
    +
    +    Alternatively, use `unregister(model, :x)` to first unregister
    +    the existing name from the model. Note that this will not delete the
    +    object; it will just remove the reference at `model[:x]`.
    +
    +Stacktrace:
    +[...]
    +
    +julia> num_variables(model)
    +1
    +
    +julia> unregister(model, :x)
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> num_variables(model)
    +2
    source

    unsafe_backend

    JuMP.unsafe_backendFunction
    unsafe_backend(model::GenericModel)

    Return the innermost optimizer associated with the JuMP model model.

    This function should only be used by advanced users looking to access low-level solver-specific functionality. It has a high-risk of incorrect usage. We strongly suggest you use the alternative suggested below.

    See also: backend.

    Unsafe behavior

    This function is unsafe for two main reasons.

    First, the formulation and order of variables and constraints in the unsafe backend may be different to the variables and constraints in model. This can happen because of bridges, or because the solver requires the variables or constraints in a specific order. In addition, the variable or constraint index returned by index at the JuMP level may be different to the index of the corresponding variable or constraint in the unsafe_backend. There is no solution to this. Use the alternative suggested below instead.

    Second, the unsafe_backend may be empty, or lack some modifications made to the JuMP model. Thus, before calling unsafe_backend you should first call MOI.Utilities.attach_optimizer to ensure that the backend is synchronized with the JuMP model.

    julia> import HiGHS
    +
    +julia> model = Model(HiGHS.Optimizer)
    +A JuMP Model
    +Feasibility problem with:
    +Variables: 0
    +Model mode: AUTOMATIC
    +CachingOptimizer state: EMPTY_OPTIMIZER
    +Solver name: HiGHS
    +
    +julia> MOI.Utilities.attach_optimizer(model)
    +
    +julia> inner = unsafe_backend(model)
    +A HiGHS model with 0 columns and 0 rows.

    Moreover, if you modify the JuMP model, the reference you have to the backend (i.e., inner in the example above) may be out-dated, and you should call MOI.Utilities.attach_optimizer again.

    This function is also unsafe in the reverse direction: if you modify the unsafe backend, e.g., by adding a new constraint to inner, the changes may be silently discarded by JuMP when the JuMP model is modified or solved.

    Alternative

    Instead of unsafe_backend, create a model using direct_model and call backend instead.

    For example, instead of:

    julia> import HiGHS
    +
    +julia> model = Model(HiGHS.Optimizer);
    +
    +julia> set_silent(model)
    +
    +julia> @variable(model, x >= 0)
    +x
    +
    +julia> MOI.Utilities.attach_optimizer(model)
    +
    +julia> highs = unsafe_backend(model)
    +A HiGHS model with 1 columns and 0 rows.

    Use:

    julia> import HiGHS
    +
    +julia> model = direct_model(HiGHS.Optimizer());
    +
    +julia> set_silent(model)
    +
    +julia> @variable(model, x >= 0)
    +x
    +
    +julia> highs = backend(model)  # No need to call `attach_optimizer`.
    +A HiGHS model with 1 columns and 0 rows.
    source

    unset_binary

    JuMP.unset_binaryFunction
    unset_binary(variable_ref::GenericVariableRef)

    Remove the binary constraint on the variable variable_ref.

    See also BinaryRef, is_binary, set_binary.

    Examples

    julia> model = Model();
    +
    +julia> @variable(model, x, Bin);
    +
    +julia> is_binary(x)
    +true
    +
    +julia> unset_binary(x)
    +
    +julia> is_binary(x)
    +false
    source

    unset_integer

    JuMP.unset_integerFunction
    unset_integer(variable_ref::GenericVariableRef)

    Remove the integrality constraint on the variable variable_ref.

    Errors if one does not exist.

    See also IntegerRef, is_integer, set_integer.

    Examples

    julia> model = Model();
    +
    +julia> @variable(model, x, Int);
    +
    +julia> is_integer(x)
    +true
    +
    +julia> unset_integer(x)
    +
    +julia> is_integer(x)
    +false
    source

    unset_silent

    JuMP.unset_silentFunction
    unset_silent(model::GenericModel)

    Neutralize the effect of the set_silent function and let the solver attributes control the verbosity.

    See also: set_silent.

    source

    unset_time_limit_sec

    upper_bound

    value

    JuMP.valueFunction
    value(con_ref::ConstraintRef; result::Int = 1)

    Return the primal value of constraint con_ref associated with result index result of the most-recent solution returned by the solver.

    That is, if con_ref is the reference of a constraint func-in-set, it returns the value of func evaluated at the value of the variables (given by value(::GenericVariableRef)).

    Use has_values to check if a result exists before asking for values.

    See also: result_count.

    Note

    For scalar constraints, the constant is moved to the set so it is not taken into account in the primal value of the constraint. For instance, the constraint @constraint(model, 2x + 3y + 1 == 5) is transformed into 2x + 3y-in-MOI.EqualTo(4) so the value returned by this function is the evaluation of 2x + 3y.

    source
    value(var_value::Function, con_ref::ConstraintRef)

    Evaluate the primal value of the constraint con_ref using var_value(v) as the value for each variable v.

    source
    value(v::GenericVariableRef; result = 1)

    Return the value of variable v associated with result index result of the most-recent returned by the solver.

    Use has_values to check if a result exists before asking for values.

    See also: result_count.

    source
    value(var_value::Function, v::GenericVariableRef)

    Evaluate the value of the variable v as var_value(v).

    source
    value(var_value::Function, ex::GenericAffExpr)

    Evaluate ex using var_value(v) as the value for each variable v.

    source
    value(v::GenericAffExpr; result::Int = 1)

    Return the value of the GenericAffExpr v associated with result index result of the most-recent solution returned by the solver.

    See also: result_count.

    source
    value(var_value::Function, ex::GenericQuadExpr)

    Evaluate ex using var_value(v) as the value for each variable v.

    source
    value(v::GenericQuadExpr; result::Int = 1)

    Return the value of the GenericQuadExpr v associated with result index result of the most-recent solution returned by the solver.

    Replaces getvalue for most use cases.

    See also: result_count.

    source
    value(p::NonlinearParameter)

    Return the current value stored in the nonlinear parameter p.

    Example

    julia> model = Model();
    +
    +julia> @NLparameter(model, p == 10)
    +p == 10.0
    +
    +julia> value(p)
    +10.0
    source
    value(ex::NonlinearExpression; result::Int = 1)

    Return the value of the NonlinearExpression ex associated with result index result of the most-recent solution returned by the solver.

    Replaces getvalue for most use cases.

    See also: result_count.

    source
    value(var_value::Function, ex::NonlinearExpression)

    Evaluate ex using var_value(v) as the value for each variable v.

    source
    value(c::NonlinearConstraintRef; result::Int = 1)

    Return the value of the NonlinearConstraintRef c associated with result index result of the most-recent solution returned by the solver.

    See also: result_count.

    source
    value(var_value::Function, c::NonlinearConstraintRef)

    Evaluate c using var_value(v) as the value for each variable v.

    source

    value_type

    JuMP.value_typeFunction
    value_type(::Type{<:Union{AbstractModel,AbstractVariableRef}})

    Return the return type of value for variables of that model. It defaults to Float64 if it is not implemented.

    source

    variable_by_name

    JuMP.variable_by_nameFunction
    variable_by_name(
    +    model::AbstractModel,
    +    name::String,
    +)::Union{AbstractVariableRef,Nothing}

    Returns the reference of the variable with name attribute name or Nothing if no variable has this name attribute. Throws an error if several variables have name as their name attribute.

    Examples

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> variable_by_name(model, "x")
    +x
    +
    +julia> @variable(model, base_name="x")
    +x
    +
    +julia> variable_by_name(model, "x")
    +ERROR: Multiple variables have the name x.
    +Stacktrace:
    + [1] error(::String) at ./error.jl:33
    + [2] get(::MOIU.Model{Float64}, ::Type{MathOptInterface.VariableIndex}, ::String) at /home/blegat/.julia/dev/MathOptInterface/src/Utilities/model.jl:222
    + [3] get at /home/blegat/.julia/dev/MathOptInterface/src/Utilities/universalfallback.jl:201 [inlined]
    + [4] get(::MathOptInterface.Utilities.CachingOptimizer{MathOptInterface.AbstractOptimizer,MathOptInterface.Utilities.UniversalFallback{MOIU.Model{Float64}}}, ::Type{MathOptInterface.VariableIndex}, ::String) at /home/blegat/.julia/dev/MathOptInterface/src/Utilities/cachingoptimizer.jl:490
    + [5] variable_by_name(::GenericModel, ::String) at /home/blegat/.julia/dev/JuMP/src/variables.jl:268
    + [6] top-level scope at none:0
    +
    +julia> var = @variable(model, base_name="y")
    +y
    +
    +julia> variable_by_name(model, "y")
    +y
    +
    +julia> set_name(var, "z")
    +
    +julia> variable_by_name(model, "y")
    +
    +julia> variable_by_name(model, "z")
    +z
    +
    +julia> @variable(model, u[1:2])
    +2-element Vector{VariableRef}:
    + u[1]
    + u[2]
    +
    +julia> variable_by_name(model, "u[2]")
    +u[2]
    source

    variable_ref_type

    JuMP.variable_ref_typeFunction
    variable_ref_type(::Union{F,Type{F}}) where {F}

    A helper function used internally by JuMP and some JuMP extensions. Returns the variable type associated with the model or expression type F.

    source

    vectorize

    JuMP.vectorizeFunction
    vectorize(matrix::AbstractMatrix, ::Shape)

    Convert the matrix into a vector according to Shape.

    source

    write_to_file

    JuMP.write_to_fileFunction
    write_to_file(
    +    model::GenericModel,
    +    filename::String;
    +    format::MOI.FileFormats.FileFormat = MOI.FileFormats.FORMAT_AUTOMATIC,
    +    kwargs...,
    +)

    Write the JuMP model model to filename in the format format.

    If the filename ends in .gz, it will be compressed using Gzip. If the filename ends in .bz2, it will be compressed using BZip2.

    Other kwargs are passed to the Model constructor of the chosen format.

    source

    AbstractConstraint

    JuMP.AbstractConstraintType
    abstract type AbstractConstraint

    An abstract base type for all constraint types. AbstractConstraints store the function and set directly, unlike ConstraintRefs that are merely references to constraints stored in a model. AbstractConstraints do not need to be attached to a model.

    source

    AbstractJuMPScalar

    JuMP.AbstractJuMPScalarType
    AbstractJuMPScalar <: MutableArithmetics.AbstractMutable

    Abstract base type for all scalar types

    The subtyping of AbstractMutable will allow calls of some Base functions to be redirected to a method in MA that handles type promotion more carefully (e.g. the promotion in sparse matrix products in SparseArrays usually does not work for JuMP types) and exploits the mutability of AffExpr and QuadExpr.

    source

    AbstractModel

    JuMP.AbstractModelType
    AbstractModel

    An abstract type that should be subtyped for users creating JuMP extensions.

    source

    AbstractScalarSet

    JuMP.AbstractScalarSetType
    AbstractScalarSet

    An abstract type for defining new scalar sets in JuMP.

    Implement moi_set(::AbstractScalarSet) to convert the type into an MOI set.

    See also: moi_set.

    source

    AbstractShape

    AbstractVariable

    AbstractVariableRef

    JuMP.AbstractVariableRefType
    AbstractVariableRef

    Variable returned by add_variable. Affine (resp. quadratic) operations with variables of type V<:AbstractVariableRef and coefficients of type T create a GenericAffExpr{T,V} (resp. GenericQuadExpr{T,V}).

    source

    AbstractVectorSet

    JuMP.AbstractVectorSetType
    AbstractVectorSet

    An abstract type for defining new sets in JuMP.

    Implement moi_set(::AbstractVectorSet, dim::Int) to convert the type into an MOI set.

    See also: moi_set.

    source

    AffExpr

    BinaryRef

    JuMP.BinaryRefFunction
    BinaryRef(v::GenericVariableRef)

    Return a constraint reference to the constraint constraining v to be binary. Errors if one does not exist.

    See also is_binary, set_binary, unset_binary.

    Examples

    julia> model = Model();
    +
    +julia> @variable(model, x, Bin);
    +
    +julia> BinaryRef(x)
    +x binary
    source

    BridgeableConstraint

    JuMP.BridgeableConstraintType
    BridgeableConstraint(
    +    constraint::C,
    +    bridge_type::B;
    +    coefficient_type::Type{T} = Float64,
    +) where {C<:AbstractConstraint,B<:Type{<:MOI.Bridges.AbstractBridge},T}

    An AbstractConstraint representinng that constraint that can be bridged by the bridge of type bridge_type{coefficient_type}.

    Adding a BridgeableConstraint to a model is equivalent to:

    add_bridge(model, bridge_type; coefficient_type = coefficient_type)
    +add_constraint(model, constraint)

    Example

    Given a new scalar set type CustomSet with a bridge CustomBridge that can bridge F-in-CustomSet constraints, when the user does:

    model = Model()
    +@variable(model, x)
    +@constraint(model, x + 1 in CustomSet())
    +optimize!(model)

    with an optimizer that does not support F-in-CustomSet constraints, the constraint will not be bridged unless they first call add_bridge(model, CustomBridge).

    In order to automatically add the CustomBridge to any model to which an F-in-CustomSet is added, add the following method:

    function JuMP.build_constraint(
    +    _error::Function,
    +    func::AbstractJuMPScalar,
    +    set::CustomSet,
    +)
    +    constraint = ScalarConstraint(func, set)
    +    return BridgeableConstraint(constraint, CustomBridge)
    +end

    Note

    JuMP extensions should extend JuMP.build_constraint only if they also defined CustomSet, for three reasons:

    1. It is problematic if multiple extensions overload the same JuMP method.
    2. A missing method will not inform the users that they forgot to load the extension module defining the build_constraint method.
    3. Defining a method where neither the function nor any of the argument types are defined in the package is called type piracy and is discouraged in the Julia style guide.
    source

    ComplexPlane

    JuMP.ComplexPlaneType
    ComplexPlane

    Complex plane object that can be used to create a complex variable in the @variable macro.

    Example

    Consider the following example:

    julia> model = Model();
    +
    +julia> @variable(model, x in ComplexPlane())
    +real(x) + imag(x) im
    +
    +julia> all_variables(model)
    +2-element Vector{VariableRef}:
    + real(x)
    + imag(x)

    We see in the output of the last command that two real variables were created. The Julia variable x binds to an affine expression in terms of these two variables that parametrize the complex plane.

    source

    ComplexVariable

    ConstraintNotOwned

    JuMP.ConstraintNotOwnedType
    struct ConstraintNotOwned{C <: ConstraintRef} <: Exception
    +    constraint_ref::C
    +end

    The constraint constraint_ref was used in a model different to owner_model(constraint_ref).

    source

    ConstraintRef

    FixRef

    JuMP.FixRefFunction
    FixRef(v::GenericVariableRef)

    Return a constraint reference to the constraint fixing the value of v.

    Errors if one does not exist.

    See also is_fixed, fix_value, fix, unfix.

    Examples

    julia> model = Model();
    +
    +julia> @variable(model, x == 1);
    +
    +julia> FixRef(x)
    +x = 1
    source

    GenericAffExpr

    JuMP.GenericAffExprType
    mutable struct GenericAffExpr{CoefType,VarType} <: AbstractJuMPScalar
    +    constant::CoefType
    +    terms::OrderedDict{VarType,CoefType}
    +end

    An expression type representing an affine expression of the form: $\sum a_i x_i + c$.

    Fields

    • .constant: the constant c in the expression.
    • .terms: an OrderedDict, with keys of VarType and values of CoefType describing the sparse vector a.
    source

    GenericModel

    JuMP.GenericModelType
    GenericModel{T}(
    +    [optimizer_factory;]
    +    add_bridges::Bool = true,
    +) where {T<:Real}

    Create a new instance of a JuMP model.

    If optimizer_factory is provided, the model is initialized with the optimizer returned by MOI.instantiate(optimizer_factory).

    If optimizer_factory is not provided, use set_optimizer to set the optimizer before calling optimize!.

    If add_bridges, JuMP adds a MOI.Bridges.LazyBridgeOptimizer to automatically reformulate the problem into a form supported by the optimizer.

    Value type T

    Passing a type other than Float64 as the value type T is an advanced operation. The value type must match that expected by the chosen optimizer. Consult the optimizers documentation for details.

    If not documented, assume that the optimizer supports only Float64.

    Choosing an unsupported value type will throw an MOI.UnsupportedConstraint or an MOI.UnsupportedAttribute error, the timing of which (during the model construction or during a call to optimize!) depends on how the solver is interfaced to JuMP.

    Example

    julia> model = GenericModel{BigFloat}();
    +
    +julia> typeof(model)
    +GenericModel{BigFloat}
    source

    GenericNonlinearExpr

    JuMP.GenericNonlinearExprType
    GenericNonlinearExpr{V}(head::Symbol, args::Vector{Any})
    +GenericNonlinearExpr{V}(head::Symbol, args::Any...)

    The scalar-valued nonlinear function head(args...), represented as a symbolic expression tree, with the call operator head and ordered arguments in args.

    V is the type of AbstractVariableRef present in the expression, and is used to help dispatch JuMP extensions.

    head

    The head::Symbol must be an operator supported by the model.

    The default list of supported univariate operators is given by:

    and the default list of supported multivariate operators is given by:

    Additional operators can be add using @operator.

    See the full list of operators supported by a MOI.ModelLike by querying the MOI.ListOfSupportedNonlinearOperators attribute.

    args

    The vector args contains the arguments to the nonlinear function. If the operator is univariate, it must contain one element. Otherwise, it may contain multiple elements.

    Given a subtype of AbstractVariableRef, V, for GenericNonlinearExpr{V}, each element must be one of the following:

    where T<:Real and T == value_type(V).

    Unsupported operators

    If the optimizer does not support head, an MOI.UnsupportedNonlinearOperator error will be thrown.

    There is no guarantee about when this error will be thrown; it may be thrown when the function is first added to the model, or it may be thrown when optimize! is called.

    Example

    To represent the function $f(x) = sin(x)^2$, do:

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> f = sin(x)^2
    +sin(x) ^ 2.0
    +
    +julia> f = GenericNonlinearExpr{VariableRef}(
    +           :^,
    +           GenericNonlinearExpr{VariableRef}(:sin, x),
    +           2.0,
    +       )
    +sin(x) ^ 2.0
    source

    GenericQuadExpr

    JuMP.GenericQuadExprType
    mutable struct GenericQuadExpr{CoefType,VarType} <: AbstractJuMPScalar
    +    aff::GenericAffExpr{CoefType,VarType}
    +    terms::OrderedDict{UnorderedPair{VarType}, CoefType}
    +end

    An expression type representing an quadratic expression of the form: $\sum q_{i,j} x_i x_j + \sum a_i x_i + c$.

    Fields

    • .aff: an GenericAffExpr representing the affine portion of the expression.
    • .terms: an OrderedDict, with keys of UnorderedPair{VarType} and values of CoefType, describing the sparse list of terms q.
    source

    GenericReferenceMap

    JuMP.GenericReferenceMapType
    GenericReferenceMap{T}

    Mapping between variable and constraint reference of a model and its copy. The reference of the copied model can be obtained by indexing the map with the reference of the corresponding reference of the original model.

    source

    GenericVariableRef

    JuMP.GenericVariableRefType
    GenericVariableRef{T} <: AbstractVariableRef

    Holds a reference to the model and the corresponding MOI.VariableIndex.

    source

    HermitianMatrixShape

    HermitianMatrixSpace

    JuMP.HermitianMatrixSpaceType
    HermitianMatrixSpace()

    Use in the @variable macro to constrain a matrix of variables to be hermitian.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, Q[1:2, 1:2] in HermitianMatrixSpace())
    +2×2 LinearAlgebra.Hermitian{GenericAffExpr{ComplexF64, VariableRef}, Matrix{GenericAffExpr{ComplexF64, VariableRef}}}:
    + real(Q[1,1])                    real(Q[1,2]) + imag(Q[1,2]) im
    + real(Q[1,2]) - imag(Q[1,2]) im  real(Q[2,2])
    source

    HermitianPSDCone

    JuMP.HermitianPSDConeType
    HermitianPSDCone

    Hermitian positive semidefinite cone object that can be used to create a Hermitian positive semidefinite square matrix in the @variable and @constraint macros.

    Example

    Consider the following example:

    julia> model = Model();
    +
    +julia> @variable(model, H[1:3, 1:3] in HermitianPSDCone())
    +3×3 LinearAlgebra.Hermitian{GenericAffExpr{ComplexF64, VariableRef}, Matrix{GenericAffExpr{ComplexF64, VariableRef}}}:
    + real(H[1,1])                    …  real(H[1,3]) + imag(H[1,3]) im
    + real(H[1,2]) - imag(H[1,2]) im     real(H[2,3]) + imag(H[2,3]) im
    + real(H[1,3]) - imag(H[1,3]) im     real(H[3,3])
    +
    +julia> all_variables(model)
    +9-element Vector{VariableRef}:
    + real(H[1,1])
    + real(H[1,2])
    + real(H[2,2])
    + real(H[1,3])
    + real(H[2,3])
    + real(H[3,3])
    + imag(H[1,2])
    + imag(H[1,3])
    + imag(H[2,3])
    +
    +julia> all_constraints(model, Vector{VariableRef}, MOI.HermitianPositiveSemidefiniteConeTriangle)
    +1-element Vector{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.VectorOfVariables, MathOptInterface.HermitianPositiveSemidefiniteConeTriangle}}}:
    + [real(H[1,1]), real(H[1,2]), real(H[2,2]), real(H[1,3]), real(H[2,3]), real(H[3,3]), imag(H[1,2]), imag(H[1,3]), imag(H[2,3])] ∈ MathOptInterface.HermitianPositiveSemidefiniteConeTriangle(3)

    We see in the output of the last commands that 9 real variables were created. The matrix H contrains affine expressions in terms of these 9 variables that parametrize a Hermitian matrix.

    source

    IntegerRef

    JuMP.IntegerRefFunction
    IntegerRef(v::GenericVariableRef)

    Return a constraint reference to the constraint constraining v to be integer.

    Errors if one does not exist.

    See also is_integer, set_integer, unset_integer.

    Examples

    julia> model = Model();
    +
    +julia> @variable(model, x, Int);
    +
    +julia> IntegerRef(x)
    +x integer
    source

    LinearTermIterator

    JuMP.LinearTermIteratorType
    LinearTermIterator{GAE<:GenericAffExpr}

    A struct that implements the iterate protocol in order to iterate over tuples of (coefficient, variable) in the GenericAffExpr.

    source

    LowerBoundRef

    Model

    JuMP.ModelType
    Model([optimizer_factory;] add_bridges::Bool = true)

    Create a new instance of a JuMP model.

    If optimizer_factory is provided, the model is initialized with thhe optimizer returned by MOI.instantiate(optimizer_factory).

    If optimizer_factory is not provided, use set_optimizer to set the optimizer before calling optimize!.

    If add_bridges, JuMP adds a MOI.Bridges.LazyBridgeOptimizer to automatically reformulate the problem into a form supported by the optimizer.

    Example

    julia> import Ipopt
    +
    +julia> model = Model(Ipopt.Optimizer);
    +
    +julia> solver_name(model)
    +"Ipopt"
    +
    +julia> import HiGHS
    +
    +julia> import MultiObjectiveAlgorithms as MOA
    +
    +julia> model = Model(() -> MOA.Optimizer(HiGHS.Optimizer); add_bridges = false);
    source

    ModelMode

    JuMP.ModelModeType
    ModelMode

    An enum to describe the state of the CachingOptimizer inside a JuMP model.

    source

    NLPEvaluator

    JuMP.NLPEvaluatorFunction
    NLPEvaluator(
    +    model::Model,
    +    _differentiation_backend::MOI.Nonlinear.AbstractAutomaticDifferentiation =
    +        MOI.Nonlinear.SparseReverseMode(),
    +)

    Return an MOI.AbstractNLPEvaluator constructed from model

    Warning

    Before using, you must initialize the evaluator using MOI.initialize.

    Experimental

    These features may change or be removed in any future version of JuMP.

    Pass _differentiation_backend to specify the differentiation backend used to compute derivatives.

    source

    NoOptimizer

    NonlinearConstraintIndex

    NonlinearConstraintRef

    NonlinearExpr

    NonlinearExpression

    NonlinearOperator

    JuMP.NonlinearOperatorType
    NonlinearOperator(func::Function, head::Symbol)

    A callable struct (functor) representing a function named head.

    When called with AbstractJuMPScalars, the struct returns a GenericNonlinearExpr.

    When called with non-JuMP types, the struct returns the evaluation of func(args...).

    Unless head is special-cased by the optimizer, the operator must have already been added to the model using add_nonlinear_operator or @operator.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> f(x::Float64) = x^2
    +f (generic function with 1 method)
    +
    +julia> ∇f(x::Float64) = 2 * x
    +∇f (generic function with 1 method)
    +
    +julia> ∇²f(x::Float64) = 2.0
    +∇²f (generic function with 1 method)
    +
    +julia> @operator(model, op_f, 1, f, ∇f, ∇²f)
    +NonlinearOperator(f, :op_f)
    +
    +julia> bar = NonlinearOperator(f, :op_f)
    +NonlinearOperator(f, :op_f)
    +
    +julia> @objective(model, Min, bar(x))
    +op_f(x)
    +
    +julia> bar(2.0)
    +4.0
    source

    NonlinearParameter

    Nonnegatives

    JuMP.NonnegativesType
    Nonnegatives()

    The JuMP equivalent of the MOI.Nonnegatives set, in which the dimension is inferred from the corresponding function.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, x[1:2])
    +2-element Vector{VariableRef}:
    + x[1]
    + x[2]
    +
    +julia> @constraint(model, x in Nonnegatives())
    +[x[1], x[2]] ∈ MathOptInterface.Nonnegatives(2)
    +
    +julia> A = [1 2; 3 4];
    +
    +julia> b = [5, 6];
    +
    +julia> @constraint(model, A * x >= b)
    +[x[1] + 2 x[2] - 5, 3 x[1] + 4 x[2] - 6] ∈ MathOptInterface.Nonnegatives(2)
    source

    Nonpositives

    JuMP.NonpositivesType
    Nonpositives()

    The JuMP equivalent of the MOI.Nonpositives set, in which the dimension is inferred from the corresponding function.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, x[1:2])
    +2-element Vector{VariableRef}:
    + x[1]
    + x[2]
    +
    +julia> @constraint(model, x in Nonpositives())
    +[x[1], x[2]] ∈ MathOptInterface.Nonpositives(2)
    +
    +julia> A = [1 2; 3 4];
    +
    +julia> b = [5, 6];
    +
    +julia> @constraint(model, A * x <= b)
    +[x[1] + 2 x[2] - 5, 3 x[1] + 4 x[2] - 6] ∈ MathOptInterface.Nonpositives(2)
    source

    OptimizationSense

    OptimizeNotCalled

    PSDCone

    JuMP.PSDConeType
    PSDCone

    Positive semidefinite cone object that can be used to constrain a square matrix to be positive semidefinite in the @constraint macro. If the matrix has type Symmetric then the columns vectorization (the vector obtained by concatenating the columns) of its upper triangular part is constrained to belong to the MOI.PositiveSemidefiniteConeTriangle set, otherwise its column vectorization is constrained to belong to the MOI.PositiveSemidefiniteConeSquare set.

    Example

    Consider the following example:

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> a = [ x 2x
    +            2x  x];
    +
    +julia> b = [1 2
    +            2 4];
    +
    +julia> cref = @constraint(model, a >= b, PSDCone())
    +[x - 1    2 x - 2;
    + 2 x - 2  x - 4] ∈ PSDCone()
    +
    +julia> jump_function(constraint_object(cref))
    +4-element Vector{AffExpr}:
    + x - 1
    + 2 x - 2
    + 2 x - 2
    + x - 4
    +
    +julia> moi_set(constraint_object(cref))
    +MathOptInterface.PositiveSemidefiniteConeSquare(2)

    We see in the output of the last command that the vectorization of the matrix is constrained to belong to the PositiveSemidefiniteConeSquare.

    julia> using LinearAlgebra # For Symmetric
    +
    +julia> cref = @constraint(model, Symmetric(a - b) in PSDCone())
    +[x - 1    2 x - 2;
    + 2 x - 2  x - 4] ∈ PSDCone()
    +
    +julia> jump_function(constraint_object(cref))
    +3-element Vector{AffExpr}:
    + x - 1
    + 2 x - 2
    + x - 4
    +
    +julia> moi_set(constraint_object(cref))
    +MathOptInterface.PositiveSemidefiniteConeTriangle(2)

    As we see in the output of the last command, the vectorization of only the upper triangular part of the matrix is constrained to belong to the PositiveSemidefiniteConeSquare.

    source

    Parameter

    JuMP.ParameterType
    Parameter(value)

    A short-cut for the MOI.Parameter set.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, x in Parameter(2))
    +x
    +
    +julia> print(model)
    +Feasibility
    +Subject to
    + x ∈ MathOptInterface.Parameter{Float64}(2.0)
    source

    ParameterRef

    JuMP.ParameterRefFunction
    ParameterRef(x::GenericVariableRef)

    Return a constraint reference to the constraint constraining x to be a parameter.

    Errors if one does not exist.

    See also is_parameter, set_parameter_value, parameter_value.

    Examples

    julia> model = Model();
    +
    +julia> @variable(model, p in Parameter(2))
    +p
    +
    +julia> ParameterRef(p)
    +p ∈ MathOptInterface.Parameter{Float64}(2.0)
    +
    +julia> @variable(model, x);
    +
    +julia> ParameterRef(x)
    +ERROR: Variable x is not a parameter.
    +Stacktrace:
    +[...]
    source

    QuadExpr

    QuadTermIterator

    JuMP.QuadTermIteratorType
    QuadTermIterator{GQE<:GenericQuadExpr}

    A struct that implements the iterate protocol in order to iterate over tuples of (coefficient, variable, variable) in the GenericQuadExpr.

    source

    ReferenceMap

    JuMP.ReferenceMapType
    GenericReferenceMap{T}

    Mapping between variable and constraint reference of a model and its copy. The reference of the copied model can be obtained by indexing the map with the reference of the corresponding reference of the original model.

    source

    ResultStatusCode

    JuMP.ResultStatusCodeType
    ResultStatusCode

    An Enum of possible values for the PrimalStatus and DualStatus attributes.

    The values indicate how to interpret the result vector.

    Values

    Possible values are:

    • NO_SOLUTION: the result vector is empty.
    • FEASIBLE_POINT: the result vector is a feasible point.
    • NEARLY_FEASIBLE_POINT: the result vector is feasible if some constraint tolerances are relaxed.
    • INFEASIBLE_POINT: the result vector is an infeasible point.
    • INFEASIBILITY_CERTIFICATE: the result vector is an infeasibility certificate. If the PrimalStatus is INFEASIBILITY_CERTIFICATE, then the primal result vector is a certificate of dual infeasibility. If the DualStatus is INFEASIBILITY_CERTIFICATE, then the dual result vector is a proof of primal infeasibility.
    • NEARLY_INFEASIBILITY_CERTIFICATE: the result satisfies a relaxed criterion for a certificate of infeasibility.
    • REDUCTION_CERTIFICATE: the result vector is an ill-posed certificate; see this article for details. If the PrimalStatus is REDUCTION_CERTIFICATE, then the primal result vector is a proof that the dual problem is ill-posed. If the DualStatus is REDUCTION_CERTIFICATE, then the dual result vector is a proof that the primal is ill-posed.
    • NEARLY_REDUCTION_CERTIFICATE: the result satisfies a relaxed criterion for an ill-posed certificate.
    • UNKNOWN_RESULT_STATUS: the result vector contains a solution with an unknown interpretation.
    • OTHER_RESULT_STATUS: the result vector contains a solution with an interpretation not covered by one of the statuses defined above
    source

    RotatedSecondOrderCone

    JuMP.RotatedSecondOrderConeType
    RotatedSecondOrderCone

    Rotated second order cone object that can be used to constrain the square of the euclidean norm of a vector x to be less than or equal to $2tu$ where t and u are nonnegative scalars. This is a shortcut for the MOI.RotatedSecondOrderCone.

    Example

    The following constrains $\|(x-1, x-2)\|^2_2 \le 2tx$ and $t, x \ge 0$:

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> @variable(model, t)
    +t
    +
    +julia> @constraint(model, [t, x, x-1, x-2] in RotatedSecondOrderCone())
    +[t, x, x - 1, x - 2] ∈ MathOptInterface.RotatedSecondOrderCone(4)
    source

    SOS1

    JuMP.SOS1Type
    SOS1

    SOS1 (Special Ordered Sets type 1) object than can be used to constrain a vector x to a set where at most 1 variable can take a non-zero value, all others being at 0. The weights, when specified, induce an ordering of the variables; as such, they should be unique values. The kth element in the set corresponds to the kth weight in weights. See here for a description of SOS constraints and their potential uses. This is a shortcut for the MathOptInterface.SOS1 set.

    source

    SOS2

    JuMP.SOS2Type
    SOS2

    SOS1 (Special Ordered Sets type 2) object than can be used to constrain a vector x to a set where at most 2 variables can take a non-zero value, all others being at 0. In addition, if two are non-zero these must be consecutive in their ordering. The weights induce an ordering of the variables; as such, they should be unique values. The kth element in the set corresponds to the kth weight in weights. See here for a description of SOS constraints and their potential uses. This is a shortcut for the MathOptInterface.SOS2 set.

    source

    ScalarConstraint

    JuMP.ScalarConstraintType
    struct ScalarConstraint

    The data for a scalar constraint. The func field contains a JuMP object representing the function and the set field contains the MOI set. See also the documentation on JuMP's representation of constraints for more background.

    source

    ScalarShape

    ScalarVariable

    SecondOrderCone

    JuMP.SecondOrderConeType
    SecondOrderCone

    Second order cone object that can be used to constrain the euclidean norm of a vector x to be less than or equal to a nonnegative scalar t. This is a shortcut for the MOI.SecondOrderCone.

    Example

    The following constrains $\|(x-1, x-2)\|_2 \le t$ and $t \ge 0$:

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> @variable(model, t)
    +t
    +
    +julia> @constraint(model, [t, x-1, x-2] in SecondOrderCone())
    +[t, x - 1, x - 2] ∈ MathOptInterface.SecondOrderCone(3)
    source

    Semicontinuous

    JuMP.SemicontinuousType
    Semicontinuous(lower, upper)

    A short-cut for the MOI.Semicontinuous set.

    This short-cut is useful because it automatically promotes lower and upper to the same type, and converts them into the element type supported by the JuMP model.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, x in Semicontinuous(1, 2))
    +x
    +
    +julia> print(model)
    +Feasibility
    +Subject to
    + x ∈ MathOptInterface.Semicontinuous{Int64}(1, 2)
    source

    Semiinteger

    JuMP.SemiintegerType
    Semiinteger(lower, upper)

    A short-cut for the MOI.Semiinteger set.

    This short-cut is useful because it automatically promotes lower and upper to the same type, and converts them into the element type supported by the JuMP model.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, x in Semiinteger(3, 5))
    +x
    +
    +julia> print(model)
    +Feasibility
    +Subject to
    + x ∈ MathOptInterface.Semiinteger{Int64}(3, 5)
    source

    SensitivityReport

    SkewSymmetricMatrixShape

    JuMP.SkewSymmetricMatrixShapeType
    SkewSymmetricMatrixShape

    Shape object for a skew symmetric square matrix of side_dimension rows and columns. The vectorized form contains the entries of the upper-right triangular part of the matrix (without the diagonal) given column by column (or equivalently, the entries of the lower-left triangular part given row by row). The diagonal is zero.

    source

    SkewSymmetricMatrixSpace

    JuMP.SkewSymmetricMatrixSpaceType
    SkewSymmetricMatrixSpace()

    Use in the @variable macro to constrain a matrix of variables to be skew-symmetric.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, Q[1:2, 1:2] in SkewSymmetricMatrixSpace())
    +2×2 Matrix{AffExpr}:
    + 0        Q[1,2]
    + -Q[1,2]  0
    source

    SquareMatrixShape

    JuMP.SquareMatrixShapeType
    SquareMatrixShape

    Shape object for a square matrix of side_dimension rows and columns. The vectorized form contains the entries of the the matrix given column by column (or equivalently, the entries of the lower-left triangular part given row by row).

    source

    SymmetricMatrixShape

    JuMP.SymmetricMatrixShapeType
    SymmetricMatrixShape

    Shape object for a symmetric square matrix of side_dimension rows and columns. The vectorized form contains the entries of the upper-right triangular part of the matrix given column by column (or equivalently, the entries of the lower-left triangular part given row by row).

    source

    SymmetricMatrixSpace

    JuMP.SymmetricMatrixSpaceType
    SymmetricMatrixSpace()

    Use in the @variable macro to constrain a matrix of variables to be symmetric.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, Q[1:2, 1:2] in SymmetricMatrixSpace())
    +2×2 LinearAlgebra.Symmetric{VariableRef, Matrix{VariableRef}}:
    + Q[1,1]  Q[1,2]
    + Q[1,2]  Q[2,2]
    source

    TerminationStatusCode

    JuMP.TerminationStatusCodeType
    TerminationStatusCode

    An Enum of possible values for the TerminationStatus attribute. This attribute is meant to explain the reason why the optimizer stopped executing in the most recent call to optimize!.

    Values

    Possible values are:

    • OPTIMIZE_NOT_CALLED: The algorithm has not started.
    • OPTIMAL: The algorithm found a globally optimal solution.
    • INFEASIBLE: The algorithm concluded that no feasible solution exists.
    • DUAL_INFEASIBLE: The algorithm concluded that no dual bound exists for the problem. If, additionally, a feasible (primal) solution is known to exist, this status typically implies that the problem is unbounded, with some technical exceptions.
    • LOCALLY_SOLVED: The algorithm converged to a stationary point, local optimal solution, could not find directions for improvement, or otherwise completed its search without global guarantees.
    • LOCALLY_INFEASIBLE: The algorithm converged to an infeasible point or otherwise completed its search without finding a feasible solution, without guarantees that no feasible solution exists.
    • INFEASIBLE_OR_UNBOUNDED: The algorithm stopped because it decided that the problem is infeasible or unbounded; this occasionally happens during MIP presolve.
    • ALMOST_OPTIMAL: The algorithm found a globally optimal solution to relaxed tolerances.
    • ALMOST_INFEASIBLE: The algorithm concluded that no feasible solution exists within relaxed tolerances.
    • ALMOST_DUAL_INFEASIBLE: The algorithm concluded that no dual bound exists for the problem within relaxed tolerances.
    • ALMOST_LOCALLY_SOLVED: The algorithm converged to a stationary point, local optimal solution, or could not find directions for improvement within relaxed tolerances.
    • ITERATION_LIMIT: An iterative algorithm stopped after conducting the maximum number of iterations.
    • TIME_LIMIT: The algorithm stopped after a user-specified computation time.
    • NODE_LIMIT: A branch-and-bound algorithm stopped because it explored a maximum number of nodes in the branch-and-bound tree.
    • SOLUTION_LIMIT: The algorithm stopped because it found the required number of solutions. This is often used in MIPs to get the solver to return the first feasible solution it encounters.
    • MEMORY_LIMIT: The algorithm stopped because it ran out of memory.
    • OBJECTIVE_LIMIT: The algorithm stopped because it found a solution better than a minimum limit set by the user.
    • NORM_LIMIT: The algorithm stopped because the norm of an iterate became too large.
    • OTHER_LIMIT: The algorithm stopped due to a limit not covered by one of the _LIMIT_ statuses above.
    • SLOW_PROGRESS: The algorithm stopped because it was unable to continue making progress towards the solution.
    • NUMERICAL_ERROR: The algorithm stopped because it encountered unrecoverable numerical error.
    • INVALID_MODEL: The algorithm stopped because the model is invalid.
    • INVALID_OPTION: The algorithm stopped because it was provided an invalid option.
    • INTERRUPTED: The algorithm stopped because of an interrupt signal.
    • OTHER_ERROR: The algorithm stopped because of an error not covered by one of the statuses defined above.
    source

    UnorderedPair

    UpperBoundRef

    VariableConstrainedOnCreation

    JuMP.VariableConstrainedOnCreationType
    VariableConstrainedOnCreation <: AbstractVariable

    Variable scalar_variables constrained to belong to set.

    Adding this variable can be understood as doing:

    function JuMP.add_variable(
    +    model::GenericModel,
    +    variable::VariableConstrainedOnCreation,
    +    names,
    +)
    +    var_ref = add_variable(model, variable.scalar_variable, name)
    +    add_constraint(model, VectorConstraint(var_ref, variable.set))
    +    return var_ref
    +end

    but adds the variables with MOI.add_constrained_variable(model, variable.set) instead. See the MOI documentation for the difference between adding the variables with MOI.add_constrained_variable and adding them with MOI.add_variable and adding the constraint separately.

    source

    VariableInfo

    JuMP.VariableInfoType
    VariableInfo{S,T,U,V}

    A struct by JuMP internally when creating variables. This may also be used by JuMP extensions to create new types of variables.

    See also: ScalarVariable.

    source

    VariableNotOwned

    JuMP.VariableNotOwnedType
    struct VariableNotOwned{V<:AbstractVariableRef} <: Exception
    +    variable::V
    +end

    The variable variable was used in a model different to owner_model(variable).

    source

    VariableRef

    JuMP.VariableRefType
    GenericVariableRef{T} <: AbstractVariableRef

    Holds a reference to the model and the corresponding MOI.VariableIndex.

    source

    VariablesConstrainedOnCreation

    JuMP.VariablesConstrainedOnCreationType
    VariablesConstrainedOnCreation <: AbstractVariable

    Vector of variables scalar_variables constrained to belong to set. Adding this variable can be thought as doing:

    function JuMP.add_variable(
    +    model::GenericModel,
    +    variable::VariablesConstrainedOnCreation,
    +    names,
    +)
    +    v_names = vectorize(names, variable.shape)
    +    var_refs = add_variable.(model, variable.scalar_variables, v_names)
    +    add_constraint(model, VectorConstraint(var_refs, variable.set))
    +    return reshape_vector(var_refs, variable.shape)
    +end

    but adds the variables with MOI.add_constrained_variables(model, variable.set) instead. See the MOI documentation for the difference between adding the variables with MOI.add_constrained_variables and adding them with MOI.add_variables and adding the constraint separately.

    source

    VectorConstraint

    JuMP.VectorConstraintType
    struct VectorConstraint

    The data for a vector constraint. The func field contains a JuMP object representing the function and the set field contains the MOI set. The shape field contains an AbstractShape matching the form in which the constraint was constructed (e.g., by using matrices or flat vectors). See also the documentation on JuMP's representation of constraints.

    source

    VectorShape

    JuMP.VectorShapeType
    VectorShape

    Vector for which the vectorized form corresponds exactly to the vector given.

    source

    Zeros

    JuMP.ZerosType
    Zeros()

    The JuMP equivalent of the MOI.Zeros set, in which the dimension is inferred from the corresponding function.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, x[1:2])
    +2-element Vector{VariableRef}:
    + x[1]
    + x[2]
    +
    +julia> @constraint(model, x in Zeros())
    +[x[1], x[2]] ∈ MathOptInterface.Zeros(2)
    +
    +julia> A = [1 2; 3 4];
    +
    +julia> b = [5, 6];
    +
    +julia> @constraint(model, A * x == b)
    +[x[1] + 2 x[2] - 5, 3 x[1] + 4 x[2] - 6] ∈ MathOptInterface.Zeros(2)
    source

    ALMOST_DUAL_INFEASIBLE

    ALMOST_INFEASIBLE

    ALMOST_LOCALLY_SOLVED

    JuMP.ALMOST_LOCALLY_SOLVEDConstant
    ALMOST_LOCALLY_SOLVED::TerminationStatusCode

    An instance of the TerminationStatusCode enum.

    ALMOST_LOCALLY_SOLVED: The algorithm converged to a stationary point, local optimal solution, or could not find directions for improvement within relaxed tolerances.

    source

    ALMOST_OPTIMAL

    AUTOMATIC

    DIRECT

    JuMP.DIRECTConstant

    moi_backend field holds an AbstractOptimizer. No extra copy of the model is stored. The moi_backend must support add_constraint etc.

    source

    DUAL_INFEASIBLE

    JuMP.DUAL_INFEASIBLEConstant
    DUAL_INFEASIBLE::TerminationStatusCode

    An instance of the TerminationStatusCode enum.

    DUAL_INFEASIBLE: The algorithm concluded that no dual bound exists for the problem. If, additionally, a feasible (primal) solution is known to exist, this status typically implies that the problem is unbounded, with some technical exceptions.

    source

    FEASIBILITY_SENSE

    FEASIBLE_POINT

    INFEASIBILITY_CERTIFICATE

    JuMP.INFEASIBILITY_CERTIFICATEConstant
    INFEASIBILITY_CERTIFICATE::ResultStatusCode

    An instance of the ResultStatusCode enum.

    INFEASIBILITY_CERTIFICATE: the result vector is an infeasibility certificate. If the PrimalStatus is INFEASIBILITY_CERTIFICATE, then the primal result vector is a certificate of dual infeasibility. If the DualStatus is INFEASIBILITY_CERTIFICATE, then the dual result vector is a proof of primal infeasibility.

    source

    INFEASIBLE

    INFEASIBLE_OR_UNBOUNDED

    JuMP.INFEASIBLE_OR_UNBOUNDEDConstant
    INFEASIBLE_OR_UNBOUNDED::TerminationStatusCode

    An instance of the TerminationStatusCode enum.

    INFEASIBLE_OR_UNBOUNDED: The algorithm stopped because it decided that the problem is infeasible or unbounded; this occasionally happens during MIP presolve.

    source

    INFEASIBLE_POINT

    INTERRUPTED

    INVALID_MODEL

    INVALID_OPTION

    ITERATION_LIMIT

    LOCALLY_INFEASIBLE

    JuMP.LOCALLY_INFEASIBLEConstant
    LOCALLY_INFEASIBLE::TerminationStatusCode

    An instance of the TerminationStatusCode enum.

    LOCALLY_INFEASIBLE: The algorithm converged to an infeasible point or otherwise completed its search without finding a feasible solution, without guarantees that no feasible solution exists.

    source

    LOCALLY_SOLVED

    JuMP.LOCALLY_SOLVEDConstant
    LOCALLY_SOLVED::TerminationStatusCode

    An instance of the TerminationStatusCode enum.

    LOCALLY_SOLVED: The algorithm converged to a stationary point, local optimal solution, could not find directions for improvement, or otherwise completed its search without global guarantees.

    source

    MANUAL

    JuMP.MANUALConstant

    moi_backend field holds a CachingOptimizer in MANUAL mode.

    source

    MAX_SENSE

    MEMORY_LIMIT

    MIN_SENSE

    NEARLY_FEASIBLE_POINT

    NEARLY_INFEASIBILITY_CERTIFICATE

    NEARLY_REDUCTION_CERTIFICATE

    NODE_LIMIT

    JuMP.NODE_LIMITConstant
    NODE_LIMIT::TerminationStatusCode

    An instance of the TerminationStatusCode enum.

    NODE_LIMIT: A branch-and-bound algorithm stopped because it explored a maximum number of nodes in the branch-and-bound tree.

    source

    NORM_LIMIT

    NO_SOLUTION

    NUMERICAL_ERROR

    OBJECTIVE_LIMIT

    OPTIMAL

    OPTIMIZE_NOT_CALLED

    OTHER_ERROR

    JuMP.OTHER_ERRORConstant
    OTHER_ERROR::TerminationStatusCode

    An instance of the TerminationStatusCode enum.

    OTHER_ERROR: The algorithm stopped because of an error not covered by one of the statuses defined above.

    source

    OTHER_LIMIT

    OTHER_RESULT_STATUS

    JuMP.OTHER_RESULT_STATUSConstant
    OTHER_RESULT_STATUS::ResultStatusCode

    An instance of the ResultStatusCode enum.

    OTHER_RESULT_STATUS: the result vector contains a solution with an interpretation not covered by one of the statuses defined above

    source

    REDUCTION_CERTIFICATE

    JuMP.REDUCTION_CERTIFICATEConstant
    REDUCTION_CERTIFICATE::ResultStatusCode

    An instance of the ResultStatusCode enum.

    REDUCTION_CERTIFICATE: the result vector is an ill-posed certificate; see this article for details. If the PrimalStatus is REDUCTION_CERTIFICATE, then the primal result vector is a proof that the dual problem is ill-posed. If the DualStatus is REDUCTION_CERTIFICATE, then the dual result vector is a proof that the primal is ill-posed.

    source

    SLOW_PROGRESS

    JuMP.SLOW_PROGRESSConstant
    SLOW_PROGRESS::TerminationStatusCode

    An instance of the TerminationStatusCode enum.

    SLOW_PROGRESS: The algorithm stopped because it was unable to continue making progress towards the solution.

    source

    SOLUTION_LIMIT

    JuMP.SOLUTION_LIMITConstant
    SOLUTION_LIMIT::TerminationStatusCode

    An instance of the TerminationStatusCode enum.

    SOLUTION_LIMIT: The algorithm stopped because it found the required number of solutions. This is often used in MIPs to get the solver to return the first feasible solution it encounters.

    source

    TIME_LIMIT

    UNKNOWN_RESULT_STATUS

    op_and

    JuMP.op_andConstant
    op_and(x, y)

    A function that falls back to x & y, but when called with JuMP variables or expressions, returns a GenericNonlinearExpr.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> op_and(true, false)
    +false
    +
    +julia> op_and(true, x)
    +true && x
    source

    op_equal_to

    JuMP.op_equal_toConstant
    op_equal_to(x, y)

    A function that falls back to x == y, but when called with JuMP variables or expressions, returns a GenericNonlinearExpr.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> op_equal_to(2, 2)
    +true
    +
    +julia> op_equal_to(x, 2)
    +x == 2
    source

    op_greater_than_or_equal_to

    JuMP.op_greater_than_or_equal_toConstant
    op_greater_than_or_equal_to(x, y)

    A function that falls back to x >= y, but when called with JuMP variables or expressions, returns a GenericNonlinearExpr.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> op_greater_than_or_equal_to(2, 2)
    +true
    +
    +julia> op_greater_than_or_equal_to(x, 2)
    +x >= 2
    source

    op_less_than_or_equal_to

    JuMP.op_less_than_or_equal_toConstant
    op_less_than_or_equal_to(x, y)

    A function that falls back to x <= y, but when called with JuMP variables or expressions, returns a GenericNonlinearExpr.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> op_less_than_or_equal_to(2, 2)
    +true
    +
    +julia> op_less_than_or_equal_to(x, 2)
    +x <= 2
    source

    op_or

    JuMP.op_orConstant
    op_or(x, y)

    A function that falls back to x | y, but when called with JuMP variables or expressions, returns a GenericNonlinearExpr.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> op_or(true, false)
    +true
    +
    +julia> op_or(true, x)
    +true || x
    source

    op_strictly_greater_than

    JuMP.op_strictly_greater_thanConstant
    op_strictly_greater_than(x, y)

    A function that falls back to x > y, but when called with JuMP variables or expressions, returns a GenericNonlinearExpr.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> op_strictly_greater_than(1, 2)
    +false
    +
    +julia> op_strictly_greater_than(x, 2)
    +x > 2
    source

    op_strictly_less_than

    JuMP.op_strictly_less_thanConstant
    op_strictly_less_than(x, y)

    A function that falls back to x < y, but when called with JuMP variables or expressions, returns a GenericNonlinearExpr.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> op_strictly_less_than(1, 2)
    +true
    +
    +julia> op_strictly_less_than(x, 2)
    +x < 2
    source

    Base.empty!(::GenericModel)

    Base.empty!Method
    empty!(model::GenericModel)::GenericModel

    Empty the model, that is, remove all variables, constraints and model attributes but not optimizer attributes. Always return the argument.

    Note: removes extensions data.

    source

    Base.isempty(::GenericModel)

    Base.isemptyMethod
    isempty(model::GenericModel)

    Verifies whether the model is empty, that is, whether the MOI backend is empty and whether the model is in the same state as at its creation apart from optimizer attributes.

    source

    Base.copy(::AbstractModel)

    Base.copyMethod
    copy(model::AbstractModel)

    Return a copy of the model model. It is similar to copy_model except that it does not return the mapping between the references of model and its copy.

    Note

    Model copy is not supported in DIRECT mode, i.e. when a model is constructed using the direct_model constructor instead of the Model constructor. Moreover, independently on whether an optimizer was provided at model construction, the new model will have no optimizer, i.e., an optimizer will have to be provided to the new model in the optimize! call.

    Example

    In the following example, a model model is constructed with a variable x and a constraint cref. It is then copied into a model new_model with the new references assigned to x_new and cref_new.

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> @constraint(model, cref, x == 2)
    +cref : x = 2
    +
    +julia> new_model = copy(model);
    +
    +julia> x_new = model[:x]
    +x
    +
    +julia> cref_new = model[:cref]
    +cref : x = 2
    source

    Base.write(::IO, ::GenericModel; ::MOI.FileFormats.FileFormat)

    Base.writeMethod
    Base.write(
    +    io::IO,
    +    model::GenericModel;
    +    format::MOI.FileFormats.FileFormat = MOI.FileFormats.FORMAT_MOF,
    +    kwargs...,
    +)

    Write the JuMP model model to io in the format format.

    Other kwargs are passed to the Model constructor of the chosen format.

    source

    MOI.Utilities.reset_optimizer(::GenericModel)

    MOI.Utilities.drop_optimizer(::GenericModel)

    MOI.Utilities.attach_optimizer(::GenericModel)

    diff --git a/previews/PR3545/assets/case9mod.png b/previews/PR3545/assets/case9mod.png new file mode 100644 index 0000000000000000000000000000000000000000..a1ad127bb155e7962d476c247412f0d46a953854 GIT binary patch literal 234660 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 literal 0 HcmV?d00001 diff --git a/previews/PR3545/assets/documenter.js b/previews/PR3545/assets/documenter.js new file mode 100644 index 00000000000..f93caf595e2 --- /dev/null +++ b/previews/PR3545/assets/documenter.js @@ -0,0 +1,883 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/julia.min', + 'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/headroom.min', + 'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.13.2/jquery-ui.min', + 'minisearch': 'https://cdn.jsdelivr.net/npm/minisearch@6.1.0/dist/umd/index.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.0/jquery.min', + 'mathjax': 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.9/MathJax.js?config=TeX-AMS_HTML', + 'headroom-jquery': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/jQuery.headroom.min', + 'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/highlight.min', + 'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/languages/julia-repl.min', + }, + shim: { + "highlight-julia": { + "deps": [ + "highlight" + ] + }, + "mathjax": { + "exports": "MathJax" + }, + "headroom-jquery": { + "deps": [ + "jquery", + "headroom" + ] + }, + "highlight-julia-repl": { + "deps": [ + "highlight" + ] + } +} +}); +//////////////////////////////////////////////////////////////////////////////// +require(['mathjax'], function(MathJax) { +MathJax.Hub.Config({ + "jax": [ + "input/TeX", + "output/HTML-CSS", + "output/NativeMML" + ], + "TeX": { + "equationNumbers": { + "autoNumber": "AMS" + } + }, + "tex2jax": { + "inlineMath": [ + [ + "$", + "$" + ], + [ + "\\(", + "\\)" + ] + ], + "processEscapes": true + }, + "config": [ + "MMLorHTML.js" + ], + "extensions": [ + "MathMenu.js", + "MathZoom.js", + "TeX/AMSmath.js", + "TeX/AMSsymbols.js", + "TeX/autobold.js", + "TeX/autoload-all.js" + ] +} +); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'highlight', 'highlight-julia', 'highlight-julia-repl'], function($) { +$(document).ready(function() { + hljs.highlightAll(); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +var isExpanded = true; + +$(document).on("click", ".docstring header", function () { + let articleToggleTitle = "Expand docstring"; + + if ($(this).siblings("section").is(":visible")) { + $(this) + .find(".docstring-article-toggle-button") + .removeClass("fa-chevron-down") + .addClass("fa-chevron-right"); + } else { + $(this) + .find(".docstring-article-toggle-button") + .removeClass("fa-chevron-right") + .addClass("fa-chevron-down"); + + articleToggleTitle = "Collapse docstring"; + } + + $(this) + .find(".docstring-article-toggle-button") + .prop("title", articleToggleTitle); + $(this).siblings("section").slideToggle(); +}); + +$(document).on("click", ".docs-article-toggle-button", function () { + let articleToggleTitle = "Expand docstring"; + let navArticleToggleTitle = "Expand all docstrings"; + + if (isExpanded) { + $(this).removeClass("fa-chevron-up").addClass("fa-chevron-down"); + $(".docstring-article-toggle-button") + .removeClass("fa-chevron-down") + .addClass("fa-chevron-right"); + + isExpanded = false; + + $(".docstring section").slideUp(); + } else { + $(this).removeClass("fa-chevron-down").addClass("fa-chevron-up"); + $(".docstring-article-toggle-button") + .removeClass("fa-chevron-right") + .addClass("fa-chevron-down"); + + isExpanded = true; + articleToggleTitle = "Collapse docstring"; + navArticleToggleTitle = "Collapse all docstrings"; + + $(".docstring section").slideDown(); + } + + $(this).prop("title", navArticleToggleTitle); + $(".docstring-article-toggle-button").prop("title", articleToggleTitle); +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +require([], function() { +function addCopyButtonCallbacks() { + for (const el of document.getElementsByTagName("pre")) { + const button = document.createElement("button"); + button.classList.add("copy-button", "fa-solid", "fa-copy"); + button.setAttribute("aria-label", "Copy this code block"); + button.setAttribute("title", "Copy"); + + el.appendChild(button); + + const success = function () { + button.classList.add("success", "fa-check"); + button.classList.remove("fa-copy"); + }; + + const failure = function () { + button.classList.add("error", "fa-xmark"); + button.classList.remove("fa-copy"); + }; + + button.addEventListener("click", function () { + copyToClipboard(el.innerText).then(success, failure); + + setTimeout(function () { + button.classList.add("fa-copy"); + button.classList.remove("success", "fa-check", "fa-xmark"); + }, 5000); + }); + } +} + +function copyToClipboard(text) { + // clipboard API is only available in secure contexts + if (window.navigator && window.navigator.clipboard) { + return window.navigator.clipboard.writeText(text); + } else { + return new Promise(function (resolve, reject) { + try { + const el = document.createElement("textarea"); + el.textContent = text; + el.style.position = "fixed"; + el.style.opacity = 0; + document.body.appendChild(el); + el.select(); + document.execCommand("copy"); + + resolve(); + } catch (err) { + reject(err); + } finally { + document.body.removeChild(el); + } + }); + } +} + +if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", addCopyButtonCallbacks); +} else { + addCopyButtonCallbacks(); +} + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'headroom', 'headroom-jquery'], function($, Headroom) { + +// Manages the top navigation bar (hides it when the user starts scrolling down on the +// mobile). +window.Headroom = Headroom; // work around buggy module loading? +$(document).ready(function () { + $("#documenter .docs-navbar").headroom({ + tolerance: { up: 10, down: 10 }, + }); +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'minisearch'], function($, minisearch) { + +// In general, most search related things will have "search" as a prefix. +// To get an in-depth about the thought process you can refer: https://hetarth02.hashnode.dev/series/gsoc + +let results = []; +let timer = undefined; + +let data = documenterSearchIndex["docs"].map((x, key) => { + x["id"] = key; // minisearch requires a unique for each object + return x; +}); + +// list below is the lunr 2.1.3 list minus the intersect with names(Base) +// (all, any, get, in, is, only, which) and (do, else, for, let, where, while, with) +// ideally we'd just filter the original list but it's not available as a variable +const stopWords = new Set([ + "a", + "able", + "about", + "across", + "after", + "almost", + "also", + "am", + "among", + "an", + "and", + "are", + "as", + "at", + "be", + "because", + "been", + "but", + "by", + "can", + "cannot", + "could", + "dear", + "did", + "does", + "either", + "ever", + "every", + "from", + "got", + "had", + "has", + "have", + "he", + "her", + "hers", + "him", + "his", + "how", + "however", + "i", + "if", + "into", + "it", + "its", + "just", + "least", + "like", + "likely", + "may", + "me", + "might", + "most", + "must", + "my", + "neither", + "no", + "nor", + "not", + "of", + "off", + "often", + "on", + "or", + "other", + "our", + "own", + "rather", + "said", + "say", + "says", + "she", + "should", + "since", + "so", + "some", + "than", + "that", + "the", + "their", + "them", + "then", + "there", + "these", + "they", + "this", + "tis", + "to", + "too", + "twas", + "us", + "wants", + "was", + "we", + "were", + "what", + "when", + "who", + "whom", + "why", + "will", + "would", + "yet", + "you", + "your", +]); + +let index = new minisearch({ + fields: ["title", "text"], // fields to index for full-text search + storeFields: ["location", "title", "text", "category", "page"], // fields to return with search results + processTerm: (term) => { + let word = stopWords.has(term) ? null : term; + if (word) { + // custom trimmer that doesn't strip @ and !, which are used in julia macro and function names + word = word + .replace(/^[^a-zA-Z0-9@!]+/, "") + .replace(/[^a-zA-Z0-9@!]+$/, ""); + } + + return word ?? null; + }, + // add . as a separator, because otherwise "title": "Documenter.Anchors.add!", would not find anything if searching for "add!", only for the entire qualification + tokenize: (string) => string.split(/[\s\-\.]+/), + // options which will be applied during the search + searchOptions: { + boost: { title: 100 }, + fuzzy: 2, + processTerm: (term) => { + let word = stopWords.has(term) ? null : term; + if (word) { + word = word + .replace(/^[^a-zA-Z0-9@!]+/, "") + .replace(/[^a-zA-Z0-9@!]+$/, ""); + } + + return word ?? null; + }, + tokenize: (string) => string.split(/[\s\-\.]+/), + }, +}); + +index.addAll(data); + +let filters = [...new Set(data.map((x) => x.category))]; +var modal_filters = make_modal_body_filters(filters); +var filter_results = []; + +$(document).on("keyup", ".documenter-search-input", function (event) { + // Adding a debounce to prevent disruptions from super-speed typing! + debounce(() => update_search(filter_results), 300); +}); + +$(document).on("click", ".search-filter", function () { + if ($(this).hasClass("search-filter-selected")) { + $(this).removeClass("search-filter-selected"); + } else { + $(this).addClass("search-filter-selected"); + } + + // Adding a debounce to prevent disruptions from crazy clicking! + debounce(() => get_filters(), 300); +}); + +/** + * A debounce function, takes a function and an optional timeout in milliseconds + * + * @function callback + * @param {number} timeout + */ +function debounce(callback, timeout = 300) { + clearTimeout(timer); + timer = setTimeout(callback, timeout); +} + +/** + * Make/Update the search component + * + * @param {string[]} selected_filters + */ +function update_search(selected_filters = []) { + let initial_search_body = ` +

    Type something to get started!
    + `; + + let querystring = $(".documenter-search-input").val(); + + if (querystring.trim()) { + results = index.search(querystring, { + filter: (result) => { + // Filtering results + if (selected_filters.length === 0) { + return result.score >= 1; + } else { + return ( + result.score >= 1 && selected_filters.includes(result.category) + ); + } + }, + }); + + let search_result_container = ``; + let search_divider = `
    `; + + if (results.length) { + let links = []; + let count = 0; + let search_results = ""; + + results.forEach(function (result) { + if (result.location) { + // Checking for duplication of results for the same page + if (!links.includes(result.location)) { + search_results += make_search_result(result, querystring); + count++; + } + + links.push(result.location); + } + }); + + let result_count = `
    ${count} result(s)
    `; + + search_result_container = ` +
    + ${modal_filters} + ${search_divider} + ${result_count} +
    + ${search_results} +
    +
    + `; + } else { + search_result_container = ` +
    + ${modal_filters} + ${search_divider} +
    0 result(s)
    +
    +
    No result found!
    + `; + } + + if ($(".search-modal-card-body").hasClass("is-justify-content-center")) { + $(".search-modal-card-body").removeClass("is-justify-content-center"); + } + + $(".search-modal-card-body").html(search_result_container); + } else { + filter_results = []; + modal_filters = make_modal_body_filters(filters, filter_results); + + if (!$(".search-modal-card-body").hasClass("is-justify-content-center")) { + $(".search-modal-card-body").addClass("is-justify-content-center"); + } + + $(".search-modal-card-body").html(initial_search_body); + } +} + +/** + * Make the modal filter html + * + * @param {string[]} filters + * @param {string[]} selected_filters + * @returns string + */ +function make_modal_body_filters(filters, selected_filters = []) { + let str = ``; + + filters.forEach((val) => { + if (selected_filters.includes(val)) { + str += `${val}`; + } else { + str += `${val}`; + } + }); + + let filter_html = ` +
    + Filters: + ${str} +
    + `; + + return filter_html; +} + +/** + * Make the result component given a minisearch result data object and the value of the search input as queryString. + * To view the result object structure, refer: https://lucaong.github.io/minisearch/modules/_minisearch_.html#searchresult + * + * @param {object} result + * @param {string} querystring + * @returns string + */ +function make_search_result(result, querystring) { + let search_divider = `
    `; + let display_link = + result.location.slice(Math.max(0), Math.min(50, result.location.length)) + + (result.location.length > 30 ? "..." : ""); // To cut-off the link because it messes with the overflow of the whole div + + if (result.page !== "") { + display_link += ` (${result.page})`; + } + + let textindex = new RegExp(`\\b${querystring}\\b`, "i").exec(result.text); + let text = + textindex !== null + ? result.text.slice( + Math.max(textindex.index - 100, 0), + Math.min( + textindex.index + querystring.length + 100, + result.text.length + ) + ) + : ""; // cut-off text before and after from the match + + let display_result = text.length + ? "..." + + text.replace( + new RegExp(`\\b${querystring}\\b`, "i"), // For first occurrence + '$&' + ) + + "..." + : ""; // highlights the match + + let in_code = false; + if (!["page", "section"].includes(result.category.toLowerCase())) { + in_code = true; + } + + // We encode the full url to escape some special characters which can lead to broken links + let result_div = ` + +
    +
    ${result.title}
    +
    ${result.category}
    +
    +

    + ${display_result} +

    +
    + ${display_link} +
    +
    + ${search_divider} + `; + + return result_div; +} + +/** + * Get selected filters, remake the filter html and lastly update the search modal + */ +function get_filters() { + let ele = $(".search-filters .search-filter-selected").get(); + filter_results = ele.map((x) => $(x).text().toLowerCase()); + modal_filters = make_modal_body_filters(filters, filter_results); + update_search(filter_results); +} + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Modal settings dialog +$(document).ready(function () { + var settings = $("#documenter-settings"); + $("#documenter-settings-button").click(function () { + settings.toggleClass("is-active"); + }); + // Close the dialog if X is clicked + $("#documenter-settings button.delete").click(function () { + settings.removeClass("is-active"); + }); + // Close dialog if ESC is pressed + $(document).keyup(function (e) { + if (e.keyCode == 27) settings.removeClass("is-active"); + }); +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +let search_modal_header = ` + +`; + +let initial_search_body = ` +
    Type something to get started!
    +`; + +let search_modal_footer = ` +
    + + Ctrl + + / to search + + esc to close +
    +`; + +$(document.body).append( + ` + + ` +); + +document.querySelector(".docs-search-query").addEventListener("click", () => { + openModal(); +}); + +document.querySelector(".close-search-modal").addEventListener("click", () => { + closeModal(); +}); + +$(document).on("click", ".search-result-link", function () { + closeModal(); +}); + +document.addEventListener("keydown", (event) => { + if ((event.ctrlKey || event.metaKey) && event.key === "/") { + openModal(); + } else if (event.key === "Escape") { + closeModal(); + } + + return false; +}); + +// Functions to open and close a modal +function openModal() { + let searchModal = document.querySelector("#search-modal"); + + searchModal.classList.add("is-active"); + document.querySelector(".documenter-search-input").focus(); +} + +function closeModal() { + let searchModal = document.querySelector("#search-modal"); + let initial_search_body = ` +
    Type something to get started!
    + `; + + searchModal.classList.remove("is-active"); + document.querySelector(".documenter-search-input").blur(); + + if (!$(".search-modal-card-body").hasClass("is-justify-content-center")) { + $(".search-modal-card-body").addClass("is-justify-content-center"); + } + + $(".documenter-search-input").val(""); + $(".search-modal-card-body").html(initial_search_body); +} + +document + .querySelector("#search-modal .modal-background") + .addEventListener("click", () => { + closeModal(); + }); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Manages the showing and hiding of the sidebar. +$(document).ready(function () { + var sidebar = $("#documenter > .docs-sidebar"); + var sidebar_button = $("#documenter-sidebar-button"); + sidebar_button.click(function (ev) { + ev.preventDefault(); + sidebar.toggleClass("visible"); + if (sidebar.hasClass("visible")) { + // Makes sure that the current menu item is visible in the sidebar. + $("#documenter .docs-menu a.is-active").focus(); + } + }); + $("#documenter > .docs-main").bind("click", function (ev) { + if ($(ev.target).is(sidebar_button)) { + return; + } + if (sidebar.hasClass("visible")) { + sidebar.removeClass("visible"); + } + }); +}); + +// Resizes the package name / sitename in the sidebar if it is too wide. +// Inspired by: https://github.com/davatron5000/FitText.js +$(document).ready(function () { + e = $("#documenter .docs-autofit"); + function resize() { + var L = parseInt(e.css("max-width"), 10); + var L0 = e.width(); + if (L0 > L) { + var h0 = parseInt(e.css("font-size"), 10); + e.css("font-size", (L * h0) / L0); + // TODO: make sure it survives resizes? + } + } + // call once and then register events + resize(); + $(window).resize(resize); + $(window).on("orientationchange", resize); +}); + +// Scroll the navigation bar to the currently selected menu item +$(document).ready(function () { + var sidebar = $("#documenter .docs-menu").get(0); + var active = $("#documenter .docs-menu .is-active").get(0); + if (typeof active !== "undefined") { + sidebar.scrollTop = active.offsetTop - sidebar.offsetTop - 15; + } +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Theme picker setup +$(document).ready(function () { + // onchange callback + $("#documenter-themepicker").change(function themepick_callback(ev) { + var themename = $("#documenter-themepicker option:selected").attr("value"); + if (themename === "auto") { + // set_theme(window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'); + window.localStorage.removeItem("documenter-theme"); + } else { + // set_theme(themename); + window.localStorage.setItem("documenter-theme", themename); + } + // We re-use the global function from themeswap.js to actually do the swapping. + set_theme_from_local_storage(); + }); + + // Make sure that the themepicker displays the correct theme when the theme is retrieved + // from localStorage + if (typeof window.localStorage !== "undefined") { + var theme = window.localStorage.getItem("documenter-theme"); + if (theme !== null) { + $("#documenter-themepicker option").each(function (i, e) { + e.selected = e.value === theme; + }); + } + } +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// update the version selector with info from the siteinfo.js and ../versions.js files +$(document).ready(function () { + // If the version selector is disabled with DOCUMENTER_VERSION_SELECTOR_DISABLED in the + // siteinfo.js file, we just return immediately and not display the version selector. + if ( + typeof DOCUMENTER_VERSION_SELECTOR_DISABLED === "boolean" && + DOCUMENTER_VERSION_SELECTOR_DISABLED + ) { + return; + } + + var version_selector = $("#documenter .docs-version-selector"); + var version_selector_select = $("#documenter .docs-version-selector select"); + + version_selector_select.change(function (x) { + target_href = version_selector_select + .children("option:selected") + .get(0).value; + window.location.href = target_href; + }); + + // add the current version to the selector based on siteinfo.js, but only if the selector is empty + if ( + typeof DOCUMENTER_CURRENT_VERSION !== "undefined" && + $("#version-selector > option").length == 0 + ) { + var option = $( + "" + ); + version_selector_select.append(option); + } + + if (typeof DOC_VERSIONS !== "undefined") { + var existing_versions = version_selector_select.children("option"); + var existing_versions_texts = existing_versions.map(function (i, x) { + return x.text; + }); + DOC_VERSIONS.forEach(function (each) { + var version_url = documenterBaseURL + "/../" + each + "/"; + var existing_id = $.inArray(each, existing_versions_texts); + // if not already in the version selector, add it as a new option, + // otherwise update the old option with the URL and enable it + if (existing_id == -1) { + var option = $( + "" + ); + version_selector_select.append(option); + } else { + var option = existing_versions[existing_id]; + option.value = version_url; + option.disabled = false; + } + }); + } + + // only show the version selector if the selector has been populated + if (version_selector_select.children("option").length > 0) { + version_selector.toggleClass("visible"); + } +}); + +}) diff --git a/previews/PR3545/assets/extra_styles.css b/previews/PR3545/assets/extra_styles.css new file mode 100644 index 00000000000..1f7df51cf0f --- /dev/null +++ b/previews/PR3545/assets/extra_styles.css @@ -0,0 +1,4 @@ +.display-light-only {display: block;} +.display-dark-only {display: none;} +.theme--documenter-dark .display-light-only {display: none;} +.theme--documenter-dark .display-dark-only {display: block;} diff --git a/previews/PR3545/assets/full_sudoku.png b/previews/PR3545/assets/full_sudoku.png new file mode 100644 index 0000000000000000000000000000000000000000..f3f84a9c00620b3b238d5ce2dba27c295693ddd2 GIT binary patch literal 119423 zcmeEtWl$aMvMwPB?(Q0bySoMr?z+(6?g19=p5RV!2=4Bl;10oEgWCe`et9vu0lH*SeqXCtOKE3K@X_0SXEVSw>ny1qup!8@P7iV1PFWHvV={P)OF6 z;^Im&;^JgVPWGQHZOovcq{9<6VYO6;ak6y3#KlcO=Ssu3!%vkZpy|AMRT2;#_Xa~Y z3SP7?CIX>CU!wY38AU|J+qe%Oj?I*heX4V6YM5}aKJ3U#i_H7%c$wAsZFMj-~OfpwH!i)au+MBR% zoxAz#4|{jM*u)(o1Fxa*Q5|7G1EYaW_)y-j6)Aqg`V~*;D*Q~Q`Arn&TEHR_rb+LR zgmI>_jzncgP$d&(F7Evnijyvx{wK7^me344qK9^z)E0XmlW~VMlHaaF*lSNQCQ{=M z$Gw*q@97=h_PI?MK(j`{-kEw2re1SDN0Eb>xUJ#nFA31&17h(G*6;2z^*#

    hPtZ3FE#|)z~VJeGJ3>Y;gFt+&@ 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 literal 0 HcmV?d00001 diff --git a/previews/PR3545/assets/logo-dark-with-text-background.svg b/previews/PR3545/assets/logo-dark-with-text-background.svg new file mode 100644 index 00000000000..eb4cf0b3249 --- /dev/null +++ b/previews/PR3545/assets/logo-dark-with-text-background.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + JuMP project + + + Logo for JuMP + + Logo for JuMP, an algebraic modeling language and a collection of supporting packages for mathematical optimization embedded in the Julia programming language + August 2018 + + + + + + + + + + + + diff --git a/previews/PR3545/assets/logo-dark-with-text.svg b/previews/PR3545/assets/logo-dark-with-text.svg new file mode 100644 index 00000000000..1031633f5d4 --- /dev/null +++ b/previews/PR3545/assets/logo-dark-with-text.svg @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + JuMP project + + + Logo for JuMP + + Logo for JuMP, an algebraic modeling language and a collection of supporting packages for mathematical optimization embedded in the Julia programming language + August 2018 + + + + + + + + + + + + diff --git a/previews/PR3545/assets/logo-dark-without-text.svg b/previews/PR3545/assets/logo-dark-without-text.svg new file mode 100644 index 00000000000..a6221d61d43 --- /dev/null +++ b/previews/PR3545/assets/logo-dark-without-text.svg @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + JuMP project + + + Logo for JuMP + + Logo for JuMP, an algebraic modeling language and a collection of supporting packages for mathematical optimization embedded in the Julia programming language + August 2018 + + + + + + + + + + + + diff --git a/previews/PR3545/assets/logo-dark.svg b/previews/PR3545/assets/logo-dark.svg new file mode 100644 index 00000000000..4014762ca62 --- /dev/null +++ b/previews/PR3545/assets/logo-dark.svg @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + JuMP project + + + Logo for JuMP + + Logo for JuMP, an algebraic modeling language and a collection of supporting packages for mathematical optimization embedded in the Julia programming language + August 2018 + + + + + + + + + + + + diff --git a/previews/PR3545/assets/logo-with-text-background.svg b/previews/PR3545/assets/logo-with-text-background.svg new file mode 100644 index 00000000000..807e338e91c --- /dev/null +++ b/previews/PR3545/assets/logo-with-text-background.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + JuMP project + + + Logo for JuMP + + Logo for JuMP, an algebraic modeling language and a collection of supporting packages for mathematical optimization embedded in the Julia programming language + August 2018 + + + + + + + + + + + + diff --git a/previews/PR3545/assets/logo-with-text.pdf b/previews/PR3545/assets/logo-with-text.pdf new file mode 100644 index 0000000000000000000000000000000000000000..aacf7bac495360cf663abca6046564c6f8ec6698 GIT binary patch literal 2157 zcmZWr3piAH8&9qJnoqTTu}PNGWnzfAFgK(y#w~KU6q?4FF=7s9#$}~tUE1P9tK2U| zlrSpym1NfLShtjt%cyTfdE5%Mno@k{DAv>dpYxn^{=a$8`@X;Tcb?xFtUZINL)0Z> zu+>xL^B8@A06-`FFh)iI{xHbr3Vi`G0y$y;0KhYO{z4E&uKp|`$N<@p4~Q`~#t4Kk z$O^!OBaaMt+ii953Q=FaR{P`Wi@pkZ3g_;N?h=lSgBq~ zq@4`Ro${`|qUBA0;9zZ2^tSR;-Bhn&VPEAS6|%ezsh>&`&4m z*3+SZt3I@%p|8@3e4<(!KfCZRX9D1&{P!hlkK=)Tiq^tr`QohJx&qyre(1 zM?4wzjyyQ#`QTOSD@W-gEeW?LEj@Lhw z!_eIW+fAD@?O7rB1UEZU~VT#GB3N7+`dS^Q!Ik*`Oo$x;77&K0F*EyL$7@ z3kODjn)IO!)`StwhVy>>sx6OaQt-=U>}XTjAH4dJix6&)sNvt|U8BtvZLx00^b$*o z;UalY(yXzWNkUYnFTUiGWB%4T2IZYwE6X=_7sz)qaG7H)jucFB!1Ci%vKbBS3mFCx^4~k!1Tav47s+#o6pllApSV2}9NHPY)FE zOho;q^{#FuxsN10ekYC{<;TbwlpRRjv8!*S&wsa=l?=w~ZLYk(?Ypku3LIu`Zl1Ix z{#7xk7DX0E2&wY~lk`+-PR$xxTM6@cpP_Q2!X1OsODs+Ie-%y)&~I9~>xo>9T8uiq zjw+v-sG^h#6XgzPhNNYl`T3CZl{8=& zRZ?@pw{~zuK%Da~^+K)Fd(sr|IMMrDt#Y51R^_{`eYUYDC$@gb`bghzFOsYi=Cw0a z5}hm_-wu~D&5Z+sT@{`!O+Vtr^Z7iJ(F*Za$s3J!ZLMb+30yfN1@YjsoSmhT{*GK) z?c2DRbIqmseR16|nQ6NBEOBD)%?6j5cVPRN=yAmHjPm^rvYiD6QStX`{Pzi34Vkt% zW;u&;iw(Oo$WLCCV6R=SKGx8)fd(00`T-2BcYOE9LSa8O3Z~0GhE4Vk%Qf8F{%CV~ z@`kb-E|k1Vs!}N9^y>&2tLLm@ki2G-Un##z! ziMOcB8-%jU>n~i53u7p^msWnf?7>Ta*A%L%J`^c_uM?rZAn&Efbi;srpU*ys+@TJN z+9rBMjFU*BQqcf(tG8mXOO|RLCbV!8B6bQG8KD5O@GJtd0q|xf01?2mS;!eNS>y-g zj2xfykXG^lc<1i}K>%;h;(`DcATH&#XTcy}h&;ON-L{|)k7Wvl0Y?#t0Fa4vfJmbO zo=eeY5MPLd3joyqKY6_c3Z+Qbnl@tzS^f}rDH|${;IkNi zOBe=&91H=VVF)V=ppeOWWPk&F#)uRe!WCTre+AR0AToV{>CyiYM<5W9cks(N3jH4# zRUhg8i#Qquk!2YZ!YrOY2rnt(#0v+JmQgVrAxH?I#6P_;R(uWwptD~RQy^r)!X<`8 OIuZGIfi*wE#QYydHf{p| literal 0 HcmV?d00001 diff --git a/previews/PR3545/assets/logo-with-text.svg b/previews/PR3545/assets/logo-with-text.svg new file mode 100644 index 00000000000..60ebbc89883 --- /dev/null +++ b/previews/PR3545/assets/logo-with-text.svg @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + JuMP project + + + Logo for JuMP + + Logo for JuMP, an algebraic modeling language and a collection of supporting packages for mathematical optimization embedded in the Julia programming language + August 2018 + + + + + + + + + + + + diff --git a/previews/PR3545/assets/logo-without-text.svg b/previews/PR3545/assets/logo-without-text.svg new file mode 100644 index 00000000000..8bf39aa46ce --- /dev/null +++ b/previews/PR3545/assets/logo-without-text.svg @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + JuMP project + + + Logo for JuMP + + Logo for JuMP, an algebraic modeling language and a collection of supporting packages for mathematical optimization embedded in the Julia programming language + August 2018 + + + + + + + + + + + + diff --git a/previews/PR3545/assets/logo.svg b/previews/PR3545/assets/logo.svg new file mode 100644 index 00000000000..31fa5edeeab --- /dev/null +++ b/previews/PR3545/assets/logo.svg @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + JuMP project + + + Logo for JuMP + + Logo for JuMP, an algebraic modeling language and a collection of supporting packages for mathematical optimization embedded in the Julia programming language + August 2018 + + + + + + + + + + + + diff --git a/previews/PR3545/assets/logo_constructor.jl b/previews/PR3545/assets/logo_constructor.jl new file mode 100644 index 00000000000..50ec1a82fbf --- /dev/null +++ b/previews/PR3545/assets/logo_constructor.jl @@ -0,0 +1,395 @@ +# This script rebuilds the JuMP logos. Install Luxor using +# +# import Pkg; Pkg.pkg"add Luxor@3" + +using Luxor + +""" + _logo_no_text(; color::String) + +Creates the three Julia dots with the constraints above. +""" +function _logo_no_text(; color::String) + setcolor(color) + setline(8) + setlinecap("round") + line(Point(20, 68), Point(120, 28), :stroke) + line(Point(4, 120), Point(120, 4), :stroke) + pts = box(Point(86, 84), 40, 40; vertices = true) + @layer begin + setcolor(Luxor.julia_red) + circle(pts[1], 17, :fill) + setcolor(Luxor.julia_green) + circle(pts[3], 17, :fill) + setcolor(Luxor.julia_purple) + circle(pts[4], 17, :fill) + end + return +end + +""" + _jump_text_outlines(; color::String) + +Creates the text part of the JuMP logo with the top-aligned "u". +""" +function _jump_text_outlines(; color::String) + setcolor(color) + @layer begin + # "J" + newsubpath() + move(Point(34.018, 6.789)) + line(Point(46.768, 6.789)) + line(Point(46.768, 49.619)) + curve( + Point(46.768, 53.479), + Point(47.058, 57.329), + Point(46.118, 61.119), + ) + curve( + Point(45.022, 65.714), + Point(42.273, 69.748), + Point(38.398, 72.449), + ) + curve( + Point(35.706, 74.325), + Point(32.589, 75.501), + Point(29.328, 75.869), + ) + curve(Point(18.823, 77.054), Point(8.995, 70.07), Point(6.658, 59.759)) + line(Point(19.038, 56.599)) + curve( + Point(19.632, 59.365), + Point(21.576, 61.655), + Point(24.208, 62.689), + ) + curve( + Point(25.38, 63.124), + Point(26.637, 63.278), + Point(27.878, 63.139), + ) + curve( + Point(29.023, 63.018), + Point(30.122, 62.62), + Point(31.078, 61.979), + ) + curve( + Point(33.848, 60.049), + Point(34.018, 56.639), + Point(34.018, 53.639), + ) + closepath() + # "U" + move(Point(60.478, 6.789)) + line(Point(72.998, 6.789)) + line(Point(72.998, 30.599)) + curve( + Point(72.998, 35.209), + Point(73.308, 38.439), + Point(73.948, 40.229), + ) + curve( + Point(74.504, 41.912), + Point(75.575, 43.378), + Point(77.008, 44.419), + ) + curve( + Point(78.538, 45.459), + Point(80.359, 45.988), + Point(82.208, 45.929), + ) + curve( + Point(84.063, 45.982), + Point(85.891, 45.469), + Point(87.448, 44.459), + ) + curve( + Point(88.948, 43.389), + Point(90.07, 41.869), + Point(90.648, 40.119), + ) + curve( + Point(91.155, 38.699), + Point(91.408, 35.659), + Point(91.408, 30.999), + ) + line(Point(91.408, 6.819)) + line(Point(103.838, 6.819)) + line(Point(103.838, 27.739)) + curve( + Point(103.838, 36.349), + Point(103.148, 42.259), + Point(101.838, 45.429), + ) + curve( + Point(100.362, 49.077), + Point(97.799, 52.185), + Point(94.498, 54.329), + ) + curve( + Point(91.258, 56.403), + Point(87.145, 57.439), + Point(82.158, 57.439), + ) + curve( + Point(76.738, 57.439), + Point(72.362, 56.233), + Point(69.028, 53.819), + ) + curve( + Point(65.63, 51.311), + Point(63.149, 47.755), + Point(61.968, 43.699), + ) + curve( + Point(61.028, 40.699), + Point(60.518, 35.259), + Point(60.518, 27.379), + ) + closepath() + # "M" + move(Point(175.278, 73.459)) + line(Point(187.868, 73.459)) + line(Point(187.868, 6.779)) + line(Point(173.468, 6.779)) + line(Point(152.578, 35.449)) + line(Point(131.688, 6.779)) + line(Point(117.188, 6.779)) + line(Point(117.188, 73.459)) + line(Point(129.778, 73.459)) + line(Point(129.778, 24.969)) + line(Point(151.048, 54.029)) + line(Point(153.528, 54.029)) + line(Point(175.278, 25.059)) + closepath() + # "P" + move(Point(199.348, 6.789)) + line(Point(212.808, 6.789)) + curve( + Point(220.141, 6.789), + Point(225.395, 7.456), + Point(228.568, 8.789), + ) + curve( + Point(231.747, 10.093), + Point(234.423, 12.387), + Point(236.198, 15.329), + ) + curve( + Point(238.123, 18.596), + Point(239.09, 22.339), + Point(238.988, 26.129), + ) + curve( + Point(239.137, 30.302), + Point(237.848, 34.402), + Point(235.338, 37.739), + ) + curve( + Point(232.823, 40.92), + Point(229.346, 43.204), + Point(225.428, 44.249), + ) + curve( + Point(222.988, 44.916), + Point(218.531, 45.249), + Point(212.058, 45.249), + ) + line(Point(212.058, 73.509)) + line(Point(199.348, 73.509)) + closepath() + newsubpath() + move(Point(212.058, 32.869)) + line(Point(216.058, 32.869)) + curve( + Point(218.29, 32.974), + Point(220.524, 32.745), + Point(222.688, 32.189), + ) + curve( + Point(223.879, 31.776), + Point(224.904, 30.986), + Point(225.608, 29.939), + ) + curve( + Point(226.346, 28.816), + Point(226.72, 27.493), + Point(226.678, 26.149), + ) + curve( + Point(226.815, 23.864), + Point(225.653, 21.687), + Point(223.678, 20.529), + ) + curve( + Point(222.258, 19.659), + Point(219.568, 19.249), + Point(215.628, 19.249), + ) + line(Point(212.058, 19.249)) + closepath() + end + fillpath() + return +end + +""" + logo_with_text(; + filename::String, + color::String, + background::String = "", + verbose::Bool = false, + ) + +Create the JuMP logo with the text on the right-hand side. + +If `verbose`, print the margin lines. +""" +function logo_with_text(; + filename::String, + color::String, + background::String = "", + verbose::Bool = false, +) + width, height, margin = 415, 150, 10 + Drawing(width, height, filename) + if !isempty(background) + @layer begin + translate(O) + translate(width / 2, height / 2) + setcolor(background) + box(O, width - 1, height - 1, 10, :fill) + end + end + @layer begin + translate(O) + if verbose + line(Point(0, margin), Point(width, margin), :stroke) + line(Point(margin, 0), Point(margin, height), :stroke) + w = width - margin + line(Point(w, 0), Point(w, height), :stroke) + h = height - margin + line(Point(0, h), Point(width, h), :stroke) + end + translate(10, 13) + _logo_no_text(; color = color) + translate(130, 40) + scale(1.1) + _jump_text_outlines(; color = color) + end + finish() + add_license(filename) + return +end + +""" + logo_square(; filename::String, color::String, verbose::Bool = false) + +Create the JuMP logo with the text vertically beneath the pictogram. + +If `verbose`, print the margin lines. +""" +function logo_square(; filename::String, color::String, verbose::Bool = false) + N, margin, w = 200, 10, 110 + Drawing(N, N, filename) + @layer begin + translate(O) + if verbose + line(Point(0, margin), Point(N, margin), :stroke) + line(Point(margin, 0), Point(margin, N), :stroke) + line(Point(N - margin, 0), Point(N - margin, N), :stroke) + line(Point(0, N - margin), Point(N, N - margin), :stroke) + lhs = (N - w) / 2 + line(Point(lhs, 0), Point(lhs, N), :stroke) + line(Point(N - lhs, 0), Point(N - lhs, N), :stroke) + end + translate((N - w) / 2, margin) + scale(0.9) + _logo_no_text(; color = color) + translate(-50, 135) + scale(0.9) + _jump_text_outlines(; color = color) + end + finish() + add_license(filename) + return +end + +""" + logo_no_text(; filename::String, color::String) + +Create the JuMP logo without the "JuMP" text. +""" +function logo_no_text(; filename::String, color::String) + Drawing(150, 150, filename) + @layer begin + translate(O) + translate(10, 10) + _logo_no_text(; color = color) + end + finish() + add_license(filename) + return +end + +function add_license(filename) + header = """ + + + + + + JuMP project + + + Logo for JuMP + + Logo for JuMP, an algebraic modeling language and a collection of supporting packages for mathematical optimization embedded in the Julia programming language + August 2018 + + + + + + + + + + + + """ + file = read(filename, String) + file = replace(file, " header) + file = replace(file, "" => footer) + write(filename, file) + return +end + +color(prefix) = isempty(prefix) ? "#333" : "#ffe" +dark_color(prefix) = isempty(prefix) ? "#ffe" : "#333" + +for prefix in ("", "-dark") + path = joinpath(@__DIR__, "logo$(prefix)") + logo_with_text(; filename = "$(path)-with-text.svg", color = color(prefix)) + logo_with_text(; + filename = "$(path)-with-text-background.svg", + color = color(prefix), + background = dark_color(prefix), + ) + logo_square(; filename = "$(path).svg", color = color(prefix)) + logo_no_text(; filename = "$(path)-without-text.svg", color = color(prefix)) +end diff --git a/previews/PR3545/assets/n_queens4.png b/previews/PR3545/assets/n_queens4.png new file mode 100644 index 0000000000000000000000000000000000000000..f86590cf5ed8998758e64ada7c106e42867b628d GIT binary patch literal 8151 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%0DTB?S0x9S zddv6M7BSXZcjw{4Agg+lrCVkW3Dzh)KuNBUucTeXOwD);SD%8oK5t1CE{nm{@thm9 zUs%Oi;R9jGCZE0S_|y33@mwEU~V7xdtp^Jlt-I@J4cmV7C>;r@SZBZ|Z zW#SovqajeJa>#Om!p;w{YBF0x(21s5G*4-#Em?ViWC^_-+u*RgYB#h@MfR&Ik5Sy22?g?IPwXcuv;I|kYI zDpEsVSZVL+Rn`kvkH6B+k4^Xgs-ZyB`b1;eCNnmHYu)V`ZWLv8Q$6|-hP`k}!$!f< z%3Q_LtI~J6GNOi+Zq6XBmY0vZ@kFT0)jwYRQX1QK8B6>gC#teJ0mWyhGFFih^XuNX zLE*8L#q8|7rx;Ajr_*ptH;t}_V$#$p~AC1#5nzf0e zUL%zP`PL--(9i8q>V{yB0|yjd0XThUj)8(#Y0iD4`29<5(mo{xnma^Qot*5}?R&xK zn4F(A14LstdCA^pnm!~2KD8OQH5p=K=3GXi7LG#l;GtSK>9qu9w3G_Ifaa%*Zk6)_ z3+_5MZ}Nnn^se{v(Q{PB9@z6$#sW#AIdKQ81^2hy4%#mDM_JKFEjx}Azo?xYIt?}# zEG`TtUP@<8tcTwOzJ%RLB1*2Bp+HkCLt~kbW1@zrKj43fTRzQ}!mm_*L$rf+0iM4P z(4rPoub6SRh7$sEAF?Ri$okT{tHi5jv`W5l8K@Ufyq!*7y$kI|D1_ZnOWmHa>rY_M zk(#7yXMq5J63)C;eBabN2(uVP6s`B+>vKwFir$Lm!#`5TV|C#4&kb%$;7pIrp;t zwcbz3l~XXh*ZhXssRH2JMU@o`UQhxWua-GQll`cY#O)5+BP zH|rI6*!{Zo3GeL1Ojp9xzh-9s!tGoG>P@{@*3+B?V&NXdz@O1oXgiOANT#UM_i9)$ z)IkbbFF+P?hl&KZL*clpbTThee3>G8xWH1x%#?~4bBkb^0{GNC5%RL^-dIWTG9tO( zxtB--cO3ByUP)rarkv_fZ-+bg_|jz)2r^#3$w$zz`i`=;Q2b7N_Dz6o3@->m<-zaut~b4UB+yR#_*ubR#FCB7rn+O&pOm04yGcZA7HpExm-&LM}Vcx@#D{p zZyN_{mIsUI2l|7~r>xCyt4-UO)=xx_JQV2Fj<(>}1d1ws4PRNC#vSK2c)6y>r`=c% zHddfvnPLgLKE^#4IH#6Q{JaCX<#OP3M~wL@x53pkK8JALT7^%5g_?dh>mk(m9f(!Z;uZgDV0OcGUhIi>99oE z_dB(Ep8q;2QUAE>+R^)WKB#z353gum#dL_Vm-vveI^H{}ZCZH$+*D~3xDt5!?__BR* z-xKdbM=mzq5%8ORAdORrwqIXXp+u%wc8g8GL)Zv?oj z{>^UHvUE6!a8++6fDSFOFB)ER39IVR@Ajqxo>3ra^fSDkTn+a literal 0 HcmV?d00001 diff --git a/previews/PR3545/assets/numfocus-logo.png b/previews/PR3545/assets/numfocus-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..cbc35030695811640f4fa4dfc55ce8e2b7ea26a5 GIT binary patch literal 4883 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 z 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%0AD- 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,html.theme--documenter-dark .button{-moz-appearance:none;-webkit-appearance:none;align-items:center;border:1px solid transparent;border-radius:.4em;box-shadow:none;display:inline-flex;font-size:1rem;height:2.5em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(0.5em - 1px);padding-left:calc(0.75em - 1px);padding-right:calc(0.75em - 1px);padding-top:calc(0.5em - 1px);position:relative;vertical-align:top}html.theme--documenter-dark .pagination-previous:focus,html.theme--documenter-dark .pagination-next:focus,html.theme--documenter-dark .pagination-link:focus,html.theme--documenter-dark .pagination-ellipsis:focus,html.theme--documenter-dark .file-cta:focus,html.theme--documenter-dark .file-name:focus,html.theme--documenter-dark .select select:focus,html.theme--documenter-dark .textarea:focus,html.theme--documenter-dark .input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:focus,html.theme--documenter-dark .button:focus,html.theme--documenter-dark .is-focused.pagination-previous,html.theme--documenter-dark .is-focused.pagination-next,html.theme--documenter-dark .is-focused.pagination-link,html.theme--documenter-dark .is-focused.pagination-ellipsis,html.theme--documenter-dark .is-focused.file-cta,html.theme--documenter-dark .is-focused.file-name,html.theme--documenter-dark .select select.is-focused,html.theme--documenter-dark .is-focused.textarea,html.theme--documenter-dark .is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-focused.button,html.theme--documenter-dark .pagination-previous:active,html.theme--documenter-dark .pagination-next:active,html.theme--documenter-dark .pagination-link:active,html.theme--documenter-dark .pagination-ellipsis:active,html.theme--documenter-dark .file-cta:active,html.theme--documenter-dark .file-name:active,html.theme--documenter-dark .select select:active,html.theme--documenter-dark .textarea:active,html.theme--documenter-dark .input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:active,html.theme--documenter-dark .button:active,html.theme--documenter-dark .is-active.pagination-previous,html.theme--documenter-dark .is-active.pagination-next,html.theme--documenter-dark .is-active.pagination-link,html.theme--documenter-dark .is-active.pagination-ellipsis,html.theme--documenter-dark .is-active.file-cta,html.theme--documenter-dark .is-active.file-name,html.theme--documenter-dark .select select.is-active,html.theme--documenter-dark .is-active.textarea,html.theme--documenter-dark .is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .is-active.button{outline:none}html.theme--documenter-dark .pagination-previous[disabled],html.theme--documenter-dark .pagination-next[disabled],html.theme--documenter-dark .pagination-link[disabled],html.theme--documenter-dark .pagination-ellipsis[disabled],html.theme--documenter-dark .file-cta[disabled],html.theme--documenter-dark .file-name[disabled],html.theme--documenter-dark .select select[disabled],html.theme--documenter-dark .textarea[disabled],html.theme--documenter-dark .input[disabled],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled],html.theme--documenter-dark .button[disabled],fieldset[disabled] html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark fieldset[disabled] .pagination-previous,fieldset[disabled] html.theme--documenter-dark .pagination-next,html.theme--documenter-dark fieldset[disabled] .pagination-next,fieldset[disabled] html.theme--documenter-dark .pagination-link,html.theme--documenter-dark fieldset[disabled] .pagination-link,fieldset[disabled] html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark fieldset[disabled] .pagination-ellipsis,fieldset[disabled] html.theme--documenter-dark .file-cta,html.theme--documenter-dark fieldset[disabled] .file-cta,fieldset[disabled] html.theme--documenter-dark .file-name,html.theme--documenter-dark fieldset[disabled] .file-name,fieldset[disabled] html.theme--documenter-dark .select select,fieldset[disabled] html.theme--documenter-dark .textarea,fieldset[disabled] html.theme--documenter-dark .input,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark fieldset[disabled] .select select,html.theme--documenter-dark .select fieldset[disabled] select,html.theme--documenter-dark fieldset[disabled] .textarea,html.theme--documenter-dark fieldset[disabled] .input,html.theme--documenter-dark fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar fieldset[disabled] form.docs-search>input,fieldset[disabled] html.theme--documenter-dark .button,html.theme--documenter-dark fieldset[disabled] .button{cursor:not-allowed}html.theme--documenter-dark .tabs,html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .breadcrumb,html.theme--documenter-dark .file,html.theme--documenter-dark .button,.is-unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after,html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after{border:3px solid rgba(0,0,0,0);border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:0.625em;margin-top:-0.4375em;pointer-events:none;position:absolute;top:50%;transform:rotate(-45deg);transform-origin:center;width:0.625em}html.theme--documenter-dark .admonition:not(:last-child),html.theme--documenter-dark .tabs:not(:last-child),html.theme--documenter-dark .pagination:not(:last-child),html.theme--documenter-dark .message:not(:last-child),html.theme--documenter-dark .level:not(:last-child),html.theme--documenter-dark .breadcrumb:not(:last-child),html.theme--documenter-dark .block:not(:last-child),html.theme--documenter-dark .title:not(:last-child),html.theme--documenter-dark .subtitle:not(:last-child),html.theme--documenter-dark .table-container:not(:last-child),html.theme--documenter-dark .table:not(:last-child),html.theme--documenter-dark .progress:not(:last-child),html.theme--documenter-dark .notification:not(:last-child),html.theme--documenter-dark .content:not(:last-child),html.theme--documenter-dark .box:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .modal-close,html.theme--documenter-dark .delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:9999px;cursor:pointer;pointer-events:auto;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:none;position:relative;vertical-align:top;width:20px}html.theme--documenter-dark .modal-close::before,html.theme--documenter-dark .delete::before,html.theme--documenter-dark .modal-close::after,html.theme--documenter-dark .delete::after{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}html.theme--documenter-dark .modal-close::before,html.theme--documenter-dark .delete::before{height:2px;width:50%}html.theme--documenter-dark .modal-close::after,html.theme--documenter-dark .delete::after{height:50%;width:2px}html.theme--documenter-dark .modal-close:hover,html.theme--documenter-dark .delete:hover,html.theme--documenter-dark .modal-close:focus,html.theme--documenter-dark .delete:focus{background-color:rgba(10,10,10,0.3)}html.theme--documenter-dark .modal-close:active,html.theme--documenter-dark .delete:active{background-color:rgba(10,10,10,0.4)}html.theme--documenter-dark .is-small.modal-close,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.modal-close,html.theme--documenter-dark .is-small.delete,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.delete{height:16px;max-height:16px;max-width:16px;min-height:16px;min-width:16px;width:16px}html.theme--documenter-dark .is-medium.modal-close,html.theme--documenter-dark .is-medium.delete{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}html.theme--documenter-dark .is-large.modal-close,html.theme--documenter-dark .is-large.delete{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}html.theme--documenter-dark .control.is-loading::after,html.theme--documenter-dark .select.is-loading::after,html.theme--documenter-dark .loader,html.theme--documenter-dark .button.is-loading::after{animation:spinAround 500ms infinite linear;border:2px solid #dbdee0;border-radius:9999px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}html.theme--documenter-dark .hero-video,html.theme--documenter-dark .modal-background,html.theme--documenter-dark .modal,html.theme--documenter-dark .image.is-square img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square img,html.theme--documenter-dark .image.is-square .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,html.theme--documenter-dark .image.is-1by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 img,html.theme--documenter-dark .image.is-1by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,html.theme--documenter-dark .image.is-5by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 img,html.theme--documenter-dark .image.is-5by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,html.theme--documenter-dark .image.is-4by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 img,html.theme--documenter-dark .image.is-4by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,html.theme--documenter-dark .image.is-3by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 img,html.theme--documenter-dark .image.is-3by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,html.theme--documenter-dark .image.is-5by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 img,html.theme--documenter-dark .image.is-5by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,html.theme--documenter-dark .image.is-16by9 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 img,html.theme--documenter-dark .image.is-16by9 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,html.theme--documenter-dark .image.is-2by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 img,html.theme--documenter-dark .image.is-2by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,html.theme--documenter-dark .image.is-3by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 img,html.theme--documenter-dark .image.is-3by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,html.theme--documenter-dark .image.is-4by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 img,html.theme--documenter-dark .image.is-4by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,html.theme--documenter-dark .image.is-3by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 img,html.theme--documenter-dark .image.is-3by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,html.theme--documenter-dark .image.is-2by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 img,html.theme--documenter-dark .image.is-2by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,html.theme--documenter-dark .image.is-3by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 img,html.theme--documenter-dark .image.is-3by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,html.theme--documenter-dark .image.is-9by16 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 img,html.theme--documenter-dark .image.is-9by16 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,html.theme--documenter-dark .image.is-1by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 img,html.theme--documenter-dark .image.is-1by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,html.theme--documenter-dark .image.is-1by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 img,html.theme--documenter-dark .image.is-1by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio,.is-overlay{bottom:0;left:0;position:absolute;right:0;top:0}html.theme--documenter-dark .navbar-burger{-moz-appearance:none;-webkit-appearance:none;appearance:none;background:none;border:none;color:currentColor;font-family:inherit;font-size:1em;margin:0;padding:0}/*! minireset.css v0.0.6 | MIT License | github.com/jgthms/minireset.css */html,body,p,ol,ul,li,dl,dt,dd,blockquote,figure,fieldset,legend,textarea,pre,iframe,hr,h1,h2,h3,h4,h5,h6{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}img,video{height:auto;max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}td:not([align]),th:not([align]){text-align:inherit}.has-text-white{color:#fff !important}a.has-text-white:hover,a.has-text-white:focus{color:#e6e6e6 !important}.has-background-white{background-color:#fff !important}.has-text-black{color:#0a0a0a !important}a.has-text-black:hover,a.has-text-black:focus{color:#000 !important}.has-background-black{background-color:#0a0a0a !important}.has-text-light{color:#ecf0f1 !important}a.has-text-light:hover,a.has-text-light:focus{color:#cfd9db !important}.has-background-light{background-color:#ecf0f1 !important}.has-text-dark{color:#282f2f !important}a.has-text-dark:hover,a.has-text-dark:focus{color:#111414 !important}.has-background-dark{background-color:#282f2f !important}.has-text-primary{color:#375a7f !important}a.has-text-primary:hover,a.has-text-primary:focus{color:#28415b !important}.has-background-primary{background-color:#375a7f !important}.has-text-primary-light{color:#f1f5f9 !important}a.has-text-primary-light:hover,a.has-text-primary-light:focus{color:#cddbe9 !important}.has-background-primary-light{background-color:#f1f5f9 !important}.has-text-primary-dark{color:#4d7eb2 !important}a.has-text-primary-dark:hover,a.has-text-primary-dark:focus{color:#7198c1 !important}.has-background-primary-dark{background-color:#4d7eb2 !important}.has-text-link{color:#1abc9c !important}a.has-text-link:hover,a.has-text-link:focus{color:#148f77 !important}.has-background-link{background-color:#1abc9c !important}.has-text-link-light{color:#edfdf9 !important}a.has-text-link-light:hover,a.has-text-link-light:focus{color:#c0f6ec !important}.has-background-link-light{background-color:#edfdf9 !important}.has-text-link-dark{color:#15987e !important}a.has-text-link-dark:hover,a.has-text-link-dark:focus{color:#1bc5a4 !important}.has-background-link-dark{background-color:#15987e !important}.has-text-info{color:#024c7d !important}a.has-text-info:hover,a.has-text-info:focus{color:#012d4b !important}.has-background-info{background-color:#024c7d !important}.has-text-info-light{color:#ebf7ff !important}a.has-text-info-light:hover,a.has-text-info-light:focus{color:#b9e2fe !important}.has-background-info-light{background-color:#ebf7ff !important}.has-text-info-dark{color:#0e9dfb !important}a.has-text-info-dark:hover,a.has-text-info-dark:focus{color:#40b1fc !important}.has-background-info-dark{background-color:#0e9dfb !important}.has-text-success{color:#008438 !important}a.has-text-success:hover,a.has-text-success:focus{color:#005122 !important}.has-background-success{background-color:#008438 !important}.has-text-success-light{color:#ebfff3 !important}a.has-text-success-light:hover,a.has-text-success-light:focus{color:#b8ffd6 !important}.has-background-success-light{background-color:#ebfff3 !important}.has-text-success-dark{color:#00eb64 !important}a.has-text-success-dark:hover,a.has-text-success-dark:focus{color:#1fff7e !important}.has-background-success-dark{background-color:#00eb64 !important}.has-text-warning{color:#ad8100 !important}a.has-text-warning:hover,a.has-text-warning:focus{color:#7a5b00 !important}.has-background-warning{background-color:#ad8100 !important}.has-text-warning-light{color:#fffaeb !important}a.has-text-warning-light:hover,a.has-text-warning-light:focus{color:#ffedb8 !important}.has-background-warning-light{background-color:#fffaeb !important}.has-text-warning-dark{color:#d19c00 !important}a.has-text-warning-dark:hover,a.has-text-warning-dark:focus{color:#ffbf05 !important}.has-background-warning-dark{background-color:#d19c00 !important}.has-text-danger{color:#9e1b0d !important}a.has-text-danger:hover,a.has-text-danger:focus{color:#6f1309 !important}.has-background-danger{background-color:#9e1b0d !important}.has-text-danger-light{color:#fdeeec !important}a.has-text-danger-light:hover,a.has-text-danger-light:focus{color:#fac3bd !important}.has-background-danger-light{background-color:#fdeeec !important}.has-text-danger-dark{color:#ec311d !important}a.has-text-danger-dark:hover,a.has-text-danger-dark:focus{color:#f05c4c !important}.has-background-danger-dark{background-color:#ec311d !important}.has-text-black-bis{color:#121212 !important}.has-background-black-bis{background-color:#121212 !important}.has-text-black-ter{color:#242424 !important}.has-background-black-ter{background-color:#242424 !important}.has-text-grey-darker{color:#282f2f !important}.has-background-grey-darker{background-color:#282f2f !important}.has-text-grey-dark{color:#343c3d !important}.has-background-grey-dark{background-color:#343c3d !important}.has-text-grey{color:#5e6d6f !important}.has-background-grey{background-color:#5e6d6f !important}.has-text-grey-light{color:#8c9b9d !important}.has-background-grey-light{background-color:#8c9b9d !important}.has-text-grey-lighter{color:#dbdee0 !important}.has-background-grey-lighter{background-color:#dbdee0 !important}.has-text-white-ter{color:#ecf0f1 !important}.has-background-white-ter{background-color:#ecf0f1 !important}.has-text-white-bis{color:#fafafa !important}.has-background-white-bis{background-color:#fafafa !important}.is-flex-direction-row{flex-direction:row !important}.is-flex-direction-row-reverse{flex-direction:row-reverse !important}.is-flex-direction-column{flex-direction:column !important}.is-flex-direction-column-reverse{flex-direction:column-reverse !important}.is-flex-wrap-nowrap{flex-wrap:nowrap !important}.is-flex-wrap-wrap{flex-wrap:wrap !important}.is-flex-wrap-wrap-reverse{flex-wrap:wrap-reverse !important}.is-justify-content-flex-start{justify-content:flex-start !important}.is-justify-content-flex-end{justify-content:flex-end !important}.is-justify-content-center{justify-content:center !important}.is-justify-content-space-between{justify-content:space-between !important}.is-justify-content-space-around{justify-content:space-around !important}.is-justify-content-space-evenly{justify-content:space-evenly !important}.is-justify-content-start{justify-content:start !important}.is-justify-content-end{justify-content:end !important}.is-justify-content-left{justify-content:left !important}.is-justify-content-right{justify-content:right !important}.is-align-content-flex-start{align-content:flex-start !important}.is-align-content-flex-end{align-content:flex-end !important}.is-align-content-center{align-content:center !important}.is-align-content-space-between{align-content:space-between !important}.is-align-content-space-around{align-content:space-around !important}.is-align-content-space-evenly{align-content:space-evenly !important}.is-align-content-stretch{align-content:stretch !important}.is-align-content-start{align-content:start !important}.is-align-content-end{align-content:end !important}.is-align-content-baseline{align-content:baseline !important}.is-align-items-stretch{align-items:stretch !important}.is-align-items-flex-start{align-items:flex-start !important}.is-align-items-flex-end{align-items:flex-end !important}.is-align-items-center{align-items:center !important}.is-align-items-baseline{align-items:baseline !important}.is-align-items-start{align-items:start !important}.is-align-items-end{align-items:end !important}.is-align-items-self-start{align-items:self-start !important}.is-align-items-self-end{align-items:self-end !important}.is-align-self-auto{align-self:auto !important}.is-align-self-flex-start{align-self:flex-start !important}.is-align-self-flex-end{align-self:flex-end !important}.is-align-self-center{align-self:center !important}.is-align-self-baseline{align-self:baseline !important}.is-align-self-stretch{align-self:stretch !important}.is-flex-grow-0{flex-grow:0 !important}.is-flex-grow-1{flex-grow:1 !important}.is-flex-grow-2{flex-grow:2 !important}.is-flex-grow-3{flex-grow:3 !important}.is-flex-grow-4{flex-grow:4 !important}.is-flex-grow-5{flex-grow:5 !important}.is-flex-shrink-0{flex-shrink:0 !important}.is-flex-shrink-1{flex-shrink:1 !important}.is-flex-shrink-2{flex-shrink:2 !important}.is-flex-shrink-3{flex-shrink:3 !important}.is-flex-shrink-4{flex-shrink:4 !important}.is-flex-shrink-5{flex-shrink:5 !important}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left !important}.is-pulled-right{float:right !important}.is-radiusless{border-radius:0 !important}.is-shadowless{box-shadow:none !important}.is-clickable{cursor:pointer !important;pointer-events:all !important}.is-clipped{overflow:hidden !important}.is-relative{position:relative !important}.is-marginless{margin:0 !important}.is-paddingless{padding:0 !important}.m-0{margin:0 !important}.mt-0{margin-top:0 !important}.mr-0{margin-right:0 !important}.mb-0{margin-bottom:0 !important}.ml-0{margin-left:0 !important}.mx-0{margin-left:0 !important;margin-right:0 !important}.my-0{margin-top:0 !important;margin-bottom:0 !important}.m-1{margin:.25rem !important}.mt-1{margin-top:.25rem !important}.mr-1{margin-right:.25rem !important}.mb-1{margin-bottom:.25rem !important}.ml-1{margin-left:.25rem !important}.mx-1{margin-left:.25rem !important;margin-right:.25rem !important}.my-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.m-2{margin:.5rem !important}.mt-2{margin-top:.5rem !important}.mr-2{margin-right:.5rem !important}.mb-2{margin-bottom:.5rem !important}.ml-2{margin-left:.5rem !important}.mx-2{margin-left:.5rem !important;margin-right:.5rem !important}.my-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.m-3{margin:.75rem !important}.mt-3{margin-top:.75rem !important}.mr-3{margin-right:.75rem !important}.mb-3{margin-bottom:.75rem !important}.ml-3{margin-left:.75rem !important}.mx-3{margin-left:.75rem !important;margin-right:.75rem !important}.my-3{margin-top:.75rem !important;margin-bottom:.75rem !important}.m-4{margin:1rem !important}.mt-4{margin-top:1rem !important}.mr-4{margin-right:1rem !important}.mb-4{margin-bottom:1rem !important}.ml-4{margin-left:1rem !important}.mx-4{margin-left:1rem !important;margin-right:1rem !important}.my-4{margin-top:1rem !important;margin-bottom:1rem !important}.m-5{margin:1.5rem !important}.mt-5{margin-top:1.5rem !important}.mr-5{margin-right:1.5rem !important}.mb-5{margin-bottom:1.5rem !important}.ml-5{margin-left:1.5rem !important}.mx-5{margin-left:1.5rem !important;margin-right:1.5rem !important}.my-5{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.m-6{margin:3rem !important}.mt-6{margin-top:3rem !important}.mr-6{margin-right:3rem !important}.mb-6{margin-bottom:3rem !important}.ml-6{margin-left:3rem !important}.mx-6{margin-left:3rem !important;margin-right:3rem !important}.my-6{margin-top:3rem !important;margin-bottom:3rem !important}.m-auto{margin:auto !important}.mt-auto{margin-top:auto !important}.mr-auto{margin-right:auto !important}.mb-auto{margin-bottom:auto !important}.ml-auto{margin-left:auto !important}.mx-auto{margin-left:auto !important;margin-right:auto !important}.my-auto{margin-top:auto !important;margin-bottom:auto !important}.p-0{padding:0 !important}.pt-0{padding-top:0 !important}.pr-0{padding-right:0 !important}.pb-0{padding-bottom:0 !important}.pl-0{padding-left:0 !important}.px-0{padding-left:0 !important;padding-right:0 !important}.py-0{padding-top:0 !important;padding-bottom:0 !important}.p-1{padding:.25rem !important}.pt-1{padding-top:.25rem !important}.pr-1{padding-right:.25rem !important}.pb-1{padding-bottom:.25rem !important}.pl-1{padding-left:.25rem !important}.px-1{padding-left:.25rem !important;padding-right:.25rem !important}.py-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.p-2{padding:.5rem !important}.pt-2{padding-top:.5rem !important}.pr-2{padding-right:.5rem !important}.pb-2{padding-bottom:.5rem !important}.pl-2{padding-left:.5rem !important}.px-2{padding-left:.5rem !important;padding-right:.5rem !important}.py-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.p-3{padding:.75rem !important}.pt-3{padding-top:.75rem !important}.pr-3{padding-right:.75rem !important}.pb-3{padding-bottom:.75rem !important}.pl-3{padding-left:.75rem !important}.px-3{padding-left:.75rem !important;padding-right:.75rem !important}.py-3{padding-top:.75rem !important;padding-bottom:.75rem !important}.p-4{padding:1rem !important}.pt-4{padding-top:1rem !important}.pr-4{padding-right:1rem !important}.pb-4{padding-bottom:1rem !important}.pl-4{padding-left:1rem !important}.px-4{padding-left:1rem !important;padding-right:1rem !important}.py-4{padding-top:1rem !important;padding-bottom:1rem !important}.p-5{padding:1.5rem !important}.pt-5{padding-top:1.5rem !important}.pr-5{padding-right:1.5rem !important}.pb-5{padding-bottom:1.5rem !important}.pl-5{padding-left:1.5rem !important}.px-5{padding-left:1.5rem !important;padding-right:1.5rem !important}.py-5{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-6{padding:3rem !important}.pt-6{padding-top:3rem !important}.pr-6{padding-right:3rem !important}.pb-6{padding-bottom:3rem !important}.pl-6{padding-left:3rem !important}.px-6{padding-left:3rem !important;padding-right:3rem !important}.py-6{padding-top:3rem !important;padding-bottom:3rem !important}.p-auto{padding:auto !important}.pt-auto{padding-top:auto !important}.pr-auto{padding-right:auto !important}.pb-auto{padding-bottom:auto !important}.pl-auto{padding-left:auto !important}.px-auto{padding-left:auto !important;padding-right:auto !important}.py-auto{padding-top:auto !important;padding-bottom:auto !important}.is-size-1{font-size:3rem !important}.is-size-2{font-size:2.5rem !important}.is-size-3{font-size:2rem !important}.is-size-4{font-size:1.5rem !important}.is-size-5{font-size:1.25rem !important}.is-size-6{font-size:1rem !important}.is-size-7,html.theme--documenter-dark .docstring>section>a.docs-sourcelink{font-size:.75rem !important}@media screen and (max-width: 768px){.is-size-1-mobile{font-size:3rem !important}.is-size-2-mobile{font-size:2.5rem !important}.is-size-3-mobile{font-size:2rem !important}.is-size-4-mobile{font-size:1.5rem !important}.is-size-5-mobile{font-size:1.25rem !important}.is-size-6-mobile{font-size:1rem !important}.is-size-7-mobile{font-size:.75rem !important}}@media screen and (min-width: 769px),print{.is-size-1-tablet{font-size:3rem !important}.is-size-2-tablet{font-size:2.5rem !important}.is-size-3-tablet{font-size:2rem !important}.is-size-4-tablet{font-size:1.5rem !important}.is-size-5-tablet{font-size:1.25rem !important}.is-size-6-tablet{font-size:1rem !important}.is-size-7-tablet{font-size:.75rem !important}}@media screen and (max-width: 1055px){.is-size-1-touch{font-size:3rem !important}.is-size-2-touch{font-size:2.5rem !important}.is-size-3-touch{font-size:2rem !important}.is-size-4-touch{font-size:1.5rem !important}.is-size-5-touch{font-size:1.25rem !important}.is-size-6-touch{font-size:1rem !important}.is-size-7-touch{font-size:.75rem !important}}@media screen and (min-width: 1056px){.is-size-1-desktop{font-size:3rem !important}.is-size-2-desktop{font-size:2.5rem !important}.is-size-3-desktop{font-size:2rem !important}.is-size-4-desktop{font-size:1.5rem !important}.is-size-5-desktop{font-size:1.25rem !important}.is-size-6-desktop{font-size:1rem !important}.is-size-7-desktop{font-size:.75rem !important}}@media screen and (min-width: 1216px){.is-size-1-widescreen{font-size:3rem !important}.is-size-2-widescreen{font-size:2.5rem !important}.is-size-3-widescreen{font-size:2rem !important}.is-size-4-widescreen{font-size:1.5rem !important}.is-size-5-widescreen{font-size:1.25rem !important}.is-size-6-widescreen{font-size:1rem !important}.is-size-7-widescreen{font-size:.75rem !important}}@media screen and (min-width: 1408px){.is-size-1-fullhd{font-size:3rem !important}.is-size-2-fullhd{font-size:2.5rem !important}.is-size-3-fullhd{font-size:2rem !important}.is-size-4-fullhd{font-size:1.5rem !important}.is-size-5-fullhd{font-size:1.25rem !important}.is-size-6-fullhd{font-size:1rem !important}.is-size-7-fullhd{font-size:.75rem !important}}.has-text-centered{text-align:center !important}.has-text-justified{text-align:justify !important}.has-text-left{text-align:left !important}.has-text-right{text-align:right !important}@media screen and (max-width: 768px){.has-text-centered-mobile{text-align:center !important}}@media screen and (min-width: 769px),print{.has-text-centered-tablet{text-align:center !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-centered-tablet-only{text-align:center !important}}@media screen and (max-width: 1055px){.has-text-centered-touch{text-align:center !important}}@media screen and (min-width: 1056px){.has-text-centered-desktop{text-align:center !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-centered-desktop-only{text-align:center !important}}@media screen and (min-width: 1216px){.has-text-centered-widescreen{text-align:center !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-centered-widescreen-only{text-align:center !important}}@media screen and (min-width: 1408px){.has-text-centered-fullhd{text-align:center !important}}@media screen and (max-width: 768px){.has-text-justified-mobile{text-align:justify !important}}@media screen and (min-width: 769px),print{.has-text-justified-tablet{text-align:justify !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-justified-tablet-only{text-align:justify !important}}@media screen and (max-width: 1055px){.has-text-justified-touch{text-align:justify !important}}@media screen and (min-width: 1056px){.has-text-justified-desktop{text-align:justify !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-justified-desktop-only{text-align:justify !important}}@media screen and (min-width: 1216px){.has-text-justified-widescreen{text-align:justify !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-justified-widescreen-only{text-align:justify !important}}@media screen and (min-width: 1408px){.has-text-justified-fullhd{text-align:justify !important}}@media screen and (max-width: 768px){.has-text-left-mobile{text-align:left !important}}@media screen and (min-width: 769px),print{.has-text-left-tablet{text-align:left !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-left-tablet-only{text-align:left !important}}@media screen and (max-width: 1055px){.has-text-left-touch{text-align:left !important}}@media screen and (min-width: 1056px){.has-text-left-desktop{text-align:left !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-left-desktop-only{text-align:left !important}}@media screen and (min-width: 1216px){.has-text-left-widescreen{text-align:left !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-left-widescreen-only{text-align:left !important}}@media screen and (min-width: 1408px){.has-text-left-fullhd{text-align:left !important}}@media screen and (max-width: 768px){.has-text-right-mobile{text-align:right !important}}@media screen and (min-width: 769px),print{.has-text-right-tablet{text-align:right !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-right-tablet-only{text-align:right !important}}@media screen and (max-width: 1055px){.has-text-right-touch{text-align:right !important}}@media screen and (min-width: 1056px){.has-text-right-desktop{text-align:right !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-right-desktop-only{text-align:right !important}}@media screen and (min-width: 1216px){.has-text-right-widescreen{text-align:right !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-right-widescreen-only{text-align:right !important}}@media screen and (min-width: 1408px){.has-text-right-fullhd{text-align:right !important}}.is-capitalized{text-transform:capitalize !important}.is-lowercase{text-transform:lowercase !important}.is-uppercase{text-transform:uppercase !important}.is-italic{font-style:italic !important}.is-underlined{text-decoration:underline !important}.has-text-weight-light{font-weight:300 !important}.has-text-weight-normal{font-weight:400 !important}.has-text-weight-medium{font-weight:500 !important}.has-text-weight-semibold{font-weight:600 !important}.has-text-weight-bold{font-weight:700 !important}.is-family-primary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-secondary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-sans-serif{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-monospace{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-family-code{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-block{display:block !important}@media screen and (max-width: 768px){.is-block-mobile{display:block !important}}@media screen and (min-width: 769px),print{.is-block-tablet{display:block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-block-tablet-only{display:block !important}}@media screen and (max-width: 1055px){.is-block-touch{display:block !important}}@media screen and (min-width: 1056px){.is-block-desktop{display:block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-block-desktop-only{display:block !important}}@media screen and (min-width: 1216px){.is-block-widescreen{display:block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-block-widescreen-only{display:block !important}}@media screen and (min-width: 1408px){.is-block-fullhd{display:block !important}}.is-flex{display:flex !important}@media screen and (max-width: 768px){.is-flex-mobile{display:flex !important}}@media screen and (min-width: 769px),print{.is-flex-tablet{display:flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-flex-tablet-only{display:flex !important}}@media screen and (max-width: 1055px){.is-flex-touch{display:flex !important}}@media screen and (min-width: 1056px){.is-flex-desktop{display:flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-flex-desktop-only{display:flex !important}}@media screen and (min-width: 1216px){.is-flex-widescreen{display:flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-flex-widescreen-only{display:flex !important}}@media screen and (min-width: 1408px){.is-flex-fullhd{display:flex !important}}.is-inline{display:inline !important}@media screen and (max-width: 768px){.is-inline-mobile{display:inline !important}}@media screen and (min-width: 769px),print{.is-inline-tablet{display:inline !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-tablet-only{display:inline !important}}@media screen and (max-width: 1055px){.is-inline-touch{display:inline !important}}@media screen and (min-width: 1056px){.is-inline-desktop{display:inline !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-desktop-only{display:inline !important}}@media screen and (min-width: 1216px){.is-inline-widescreen{display:inline !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-widescreen-only{display:inline !important}}@media screen and (min-width: 1408px){.is-inline-fullhd{display:inline !important}}.is-inline-block{display:inline-block !important}@media screen and (max-width: 768px){.is-inline-block-mobile{display:inline-block !important}}@media screen and (min-width: 769px),print{.is-inline-block-tablet{display:inline-block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-block-tablet-only{display:inline-block !important}}@media screen and (max-width: 1055px){.is-inline-block-touch{display:inline-block !important}}@media screen and (min-width: 1056px){.is-inline-block-desktop{display:inline-block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-block-desktop-only{display:inline-block !important}}@media screen and (min-width: 1216px){.is-inline-block-widescreen{display:inline-block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-block-widescreen-only{display:inline-block !important}}@media screen and (min-width: 1408px){.is-inline-block-fullhd{display:inline-block !important}}.is-inline-flex{display:inline-flex !important}@media screen and (max-width: 768px){.is-inline-flex-mobile{display:inline-flex !important}}@media screen and (min-width: 769px),print{.is-inline-flex-tablet{display:inline-flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-flex-tablet-only{display:inline-flex !important}}@media screen and (max-width: 1055px){.is-inline-flex-touch{display:inline-flex !important}}@media screen and (min-width: 1056px){.is-inline-flex-desktop{display:inline-flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-flex-desktop-only{display:inline-flex !important}}@media screen and (min-width: 1216px){.is-inline-flex-widescreen{display:inline-flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-flex-widescreen-only{display:inline-flex !important}}@media screen and (min-width: 1408px){.is-inline-flex-fullhd{display:inline-flex !important}}.is-hidden{display:none !important}.is-sr-only{border:none !important;clip:rect(0, 0, 0, 0) !important;height:0.01em !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:0.01em !important}@media screen and (max-width: 768px){.is-hidden-mobile{display:none !important}}@media screen and (min-width: 769px),print{.is-hidden-tablet{display:none !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-hidden-tablet-only{display:none !important}}@media screen and (max-width: 1055px){.is-hidden-touch{display:none !important}}@media screen and (min-width: 1056px){.is-hidden-desktop{display:none !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-hidden-desktop-only{display:none !important}}@media screen and (min-width: 1216px){.is-hidden-widescreen{display:none !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-hidden-widescreen-only{display:none !important}}@media screen and (min-width: 1408px){.is-hidden-fullhd{display:none !important}}.is-invisible{visibility:hidden !important}@media screen and (max-width: 768px){.is-invisible-mobile{visibility:hidden !important}}@media screen and (min-width: 769px),print{.is-invisible-tablet{visibility:hidden !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-invisible-tablet-only{visibility:hidden !important}}@media screen and (max-width: 1055px){.is-invisible-touch{visibility:hidden !important}}@media screen and (min-width: 1056px){.is-invisible-desktop{visibility:hidden !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-invisible-desktop-only{visibility:hidden !important}}@media screen and (min-width: 1216px){.is-invisible-widescreen{visibility:hidden !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-invisible-widescreen-only{visibility:hidden !important}}@media screen and (min-width: 1408px){.is-invisible-fullhd{visibility:hidden !important}}html.theme--documenter-dark{/*! + Theme: a11y-dark + Author: @ericwbailey + Maintainer: @ericwbailey + + Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css +*/}html.theme--documenter-dark html{background-color:#1f2424;font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}html.theme--documenter-dark article,html.theme--documenter-dark aside,html.theme--documenter-dark figure,html.theme--documenter-dark footer,html.theme--documenter-dark header,html.theme--documenter-dark hgroup,html.theme--documenter-dark section{display:block}html.theme--documenter-dark body,html.theme--documenter-dark button,html.theme--documenter-dark input,html.theme--documenter-dark optgroup,html.theme--documenter-dark select,html.theme--documenter-dark textarea{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif}html.theme--documenter-dark code,html.theme--documenter-dark pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}html.theme--documenter-dark body{color:#fff;font-size:1em;font-weight:400;line-height:1.5}html.theme--documenter-dark a{color:#1abc9c;cursor:pointer;text-decoration:none}html.theme--documenter-dark a strong{color:currentColor}html.theme--documenter-dark a:hover{color:#1dd2af}html.theme--documenter-dark code{background-color:rgba(255,255,255,0.05);color:#ececec;font-size:.875em;font-weight:normal;padding:.1em}html.theme--documenter-dark hr{background-color:#282f2f;border:none;display:block;height:2px;margin:1.5rem 0}html.theme--documenter-dark img{height:auto;max-width:100%}html.theme--documenter-dark input[type="checkbox"],html.theme--documenter-dark input[type="radio"]{vertical-align:baseline}html.theme--documenter-dark small{font-size:.875em}html.theme--documenter-dark span{font-style:inherit;font-weight:inherit}html.theme--documenter-dark strong{color:#f2f2f2;font-weight:700}html.theme--documenter-dark fieldset{border:none}html.theme--documenter-dark pre{-webkit-overflow-scrolling:touch;background-color:#282f2f;color:#fff;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}html.theme--documenter-dark pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}html.theme--documenter-dark table td,html.theme--documenter-dark table th{vertical-align:top}html.theme--documenter-dark table td:not([align]),html.theme--documenter-dark table th:not([align]){text-align:inherit}html.theme--documenter-dark table th{color:#f2f2f2}html.theme--documenter-dark .box{background-color:#343c3d;border-radius:8px;box-shadow:none;color:#fff;display:block;padding:1.25rem}html.theme--documenter-dark a.box:hover,html.theme--documenter-dark a.box:focus{box-shadow:0 0.5em 1em -0.125em rgba(10,10,10,0.1),0 0 0 1px #1abc9c}html.theme--documenter-dark a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2),0 0 0 1px #1abc9c}html.theme--documenter-dark .button{background-color:#282f2f;border-color:#4c5759;border-width:1px;color:#375a7f;cursor:pointer;justify-content:center;padding-bottom:calc(0.5em - 1px);padding-left:1em;padding-right:1em;padding-top:calc(0.5em - 1px);text-align:center;white-space:nowrap}html.theme--documenter-dark .button strong{color:inherit}html.theme--documenter-dark .button .icon,html.theme--documenter-dark .button .icon.is-small,html.theme--documenter-dark .button #documenter .docs-sidebar form.docs-search>input.icon,html.theme--documenter-dark #documenter .docs-sidebar .button form.docs-search>input.icon,html.theme--documenter-dark .button .icon.is-medium,html.theme--documenter-dark .button .icon.is-large{height:1.5em;width:1.5em}html.theme--documenter-dark .button .icon:first-child:not(:last-child){margin-left:calc(-0.5em - 1px);margin-right:.25em}html.theme--documenter-dark .button .icon:last-child:not(:first-child){margin-left:.25em;margin-right:calc(-0.5em - 1px)}html.theme--documenter-dark .button .icon:first-child:last-child{margin-left:calc(-0.5em - 1px);margin-right:calc(-0.5em - 1px)}html.theme--documenter-dark .button:hover,html.theme--documenter-dark .button.is-hovered{border-color:#8c9b9d;color:#f2f2f2}html.theme--documenter-dark .button:focus,html.theme--documenter-dark .button.is-focused{border-color:#8c9b9d;color:#17a689}html.theme--documenter-dark .button:focus:not(:active),html.theme--documenter-dark .button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .button:active,html.theme--documenter-dark .button.is-active{border-color:#343c3d;color:#f2f2f2}html.theme--documenter-dark .button.is-text{background-color:transparent;border-color:transparent;color:#fff;text-decoration:underline}html.theme--documenter-dark .button.is-text:hover,html.theme--documenter-dark .button.is-text.is-hovered,html.theme--documenter-dark .button.is-text:focus,html.theme--documenter-dark .button.is-text.is-focused{background-color:#282f2f;color:#f2f2f2}html.theme--documenter-dark .button.is-text:active,html.theme--documenter-dark .button.is-text.is-active{background-color:#1d2122;color:#f2f2f2}html.theme--documenter-dark .button.is-text[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-text{background-color:transparent;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-ghost{background:none;border-color:rgba(0,0,0,0);color:#1abc9c;text-decoration:none}html.theme--documenter-dark .button.is-ghost:hover,html.theme--documenter-dark .button.is-ghost.is-hovered{color:#1abc9c;text-decoration:underline}html.theme--documenter-dark .button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:hover,html.theme--documenter-dark .button.is-white.is-hovered{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:focus,html.theme--documenter-dark .button.is-white.is-focused{border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:focus:not(:active),html.theme--documenter-dark .button.is-white.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .button.is-white:active,html.theme--documenter-dark .button.is-white.is-active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white{background-color:#fff;border-color:#fff;box-shadow:none}html.theme--documenter-dark .button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted:hover,html.theme--documenter-dark .button.is-white.is-inverted.is-hovered{background-color:#000}html.theme--documenter-dark .button.is-white.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-white.is-outlined:hover,html.theme--documenter-dark .button.is-white.is-outlined.is-hovered,html.theme--documenter-dark .button.is-white.is-outlined:focus,html.theme--documenter-dark .button.is-white.is-outlined.is-focused{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-white.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-white.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-focused{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:hover,html.theme--documenter-dark .button.is-black.is-hovered{background-color:#040404;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:focus,html.theme--documenter-dark .button.is-black.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:focus:not(:active),html.theme--documenter-dark .button.is-black.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .button.is-black:active,html.theme--documenter-dark .button.is-black.is-active{background-color:#000;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black{background-color:#0a0a0a;border-color:#0a0a0a;box-shadow:none}html.theme--documenter-dark .button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted:hover,html.theme--documenter-dark .button.is-black.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-black.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-outlined:hover,html.theme--documenter-dark .button.is-black.is-outlined.is-hovered,html.theme--documenter-dark .button.is-black.is-outlined:focus,html.theme--documenter-dark .button.is-black.is-outlined.is-focused{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-black.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-black.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-focused{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-light{background-color:#ecf0f1;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .button.is-light:hover,html.theme--documenter-dark .button.is-light.is-hovered{background-color:#e5eaec;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .button.is-light:focus,html.theme--documenter-dark .button.is-light.is-focused{border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .button.is-light:focus:not(:active),html.theme--documenter-dark .button.is-light.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .button.is-light:active,html.theme--documenter-dark .button.is-light.is-active{background-color:#dde4e6;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .button.is-light[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light{background-color:#ecf0f1;border-color:#ecf0f1;box-shadow:none}html.theme--documenter-dark .button.is-light.is-inverted{background-color:rgba(0,0,0,0.7);color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted:hover,html.theme--documenter-dark .button.is-light.is-inverted.is-hovered{background-color:rgba(0,0,0,0.7)}html.theme--documenter-dark .button.is-light.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted{background-color:rgba(0,0,0,0.7);border-color:transparent;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-loading::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}html.theme--documenter-dark .button.is-light.is-outlined{background-color:transparent;border-color:#ecf0f1;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-outlined:hover,html.theme--documenter-dark .button.is-light.is-outlined.is-hovered,html.theme--documenter-dark .button.is-light.is-outlined:focus,html.theme--documenter-dark .button.is-light.is-outlined.is-focused{background-color:#ecf0f1;border-color:#ecf0f1;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-light.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-focused::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}html.theme--documenter-dark .button.is-light.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-outlined{background-color:transparent;border-color:#ecf0f1;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);color:rgba(0,0,0,0.7)}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-focused{background-color:rgba(0,0,0,0.7);color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);box-shadow:none;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .button.is-dark,html.theme--documenter-dark .content kbd.button{background-color:#282f2f;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-dark:hover,html.theme--documenter-dark .content kbd.button:hover,html.theme--documenter-dark .button.is-dark.is-hovered,html.theme--documenter-dark .content kbd.button.is-hovered{background-color:#232829;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-dark:focus,html.theme--documenter-dark .content kbd.button:focus,html.theme--documenter-dark .button.is-dark.is-focused,html.theme--documenter-dark .content kbd.button.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-dark:focus:not(:active),html.theme--documenter-dark .content kbd.button:focus:not(:active),html.theme--documenter-dark .button.is-dark.is-focused:not(:active),html.theme--documenter-dark .content kbd.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .button.is-dark:active,html.theme--documenter-dark .content kbd.button:active,html.theme--documenter-dark .button.is-dark.is-active,html.theme--documenter-dark .content kbd.button.is-active{background-color:#1d2122;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-dark[disabled],html.theme--documenter-dark .content kbd.button[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark,fieldset[disabled] html.theme--documenter-dark .content kbd.button{background-color:#282f2f;border-color:#282f2f;box-shadow:none}html.theme--documenter-dark .button.is-dark.is-inverted,html.theme--documenter-dark .content kbd.button.is-inverted{background-color:#fff;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted:hover,html.theme--documenter-dark .content kbd.button.is-inverted:hover,html.theme--documenter-dark .button.is-dark.is-inverted.is-hovered,html.theme--documenter-dark .content kbd.button.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-dark.is-inverted[disabled],html.theme--documenter-dark .content kbd.button.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-loading::after,html.theme--documenter-dark .content kbd.button.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-dark.is-outlined,html.theme--documenter-dark .content kbd.button.is-outlined{background-color:transparent;border-color:#282f2f;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-outlined:hover,html.theme--documenter-dark .content kbd.button.is-outlined:hover,html.theme--documenter-dark .button.is-dark.is-outlined.is-hovered,html.theme--documenter-dark .content kbd.button.is-outlined.is-hovered,html.theme--documenter-dark .button.is-dark.is-outlined:focus,html.theme--documenter-dark .content kbd.button.is-outlined:focus,html.theme--documenter-dark .button.is-dark.is-outlined.is-focused,html.theme--documenter-dark .content kbd.button.is-outlined.is-focused{background-color:#282f2f;border-color:#282f2f;color:#fff}html.theme--documenter-dark .button.is-dark.is-outlined.is-loading::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:hover::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:focus::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-dark.is-outlined[disabled],html.theme--documenter-dark .content kbd.button.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-outlined,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-outlined{background-color:transparent;border-color:#282f2f;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:hover,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:focus,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-focused,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-focused{background-color:#fff;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined[disabled],html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-primary,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink{background-color:#375a7f;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:hover,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-hovered.docs-sourcelink{background-color:#335476;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:focus,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:focus:not(:active),html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus:not(:active),html.theme--documenter-dark .button.is-primary.is-focused:not(:active),html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink:not(:active){box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .button.is-primary:active,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:active,html.theme--documenter-dark .button.is-primary.is-active,html.theme--documenter-dark .docstring>section>a.button.is-active.docs-sourcelink{background-color:#2f4d6d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary[disabled],html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink{background-color:#375a7f;border-color:#375a7f;box-shadow:none}html.theme--documenter-dark .button.is-primary.is-inverted,html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted:hover,html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-inverted.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-hovered.docs-sourcelink{background-color:#f2f2f2}html.theme--documenter-dark .button.is-primary.is-inverted[disabled],html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;border-color:transparent;box-shadow:none;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-loading::after,html.theme--documenter-dark .docstring>section>a.button.is-loading.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-primary.is-outlined,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#375a7f;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-outlined:hover,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-outlined.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-outlined:focus,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-outlined.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-focused.docs-sourcelink{background-color:#375a7f;border-color:#375a7f;color:#fff}html.theme--documenter-dark .button.is-primary.is-outlined.is-loading::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink::after{border-color:transparent transparent #375a7f #375a7f !important}html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:hover::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:hover::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:focus::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:focus::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-primary.is-outlined[disabled],html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-outlined,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#375a7f;box-shadow:none;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:hover,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:focus,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-focused.docs-sourcelink{background-color:#fff;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #375a7f #375a7f !important}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined[disabled],html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-primary.is-light,html.theme--documenter-dark .docstring>section>a.button.is-light.docs-sourcelink{background-color:#f1f5f9;color:#4d7eb2}html.theme--documenter-dark .button.is-primary.is-light:hover,html.theme--documenter-dark .docstring>section>a.button.is-light.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-light.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-light.is-hovered.docs-sourcelink{background-color:#e8eef5;border-color:transparent;color:#4d7eb2}html.theme--documenter-dark .button.is-primary.is-light:active,html.theme--documenter-dark .docstring>section>a.button.is-light.docs-sourcelink:active,html.theme--documenter-dark .button.is-primary.is-light.is-active,html.theme--documenter-dark .docstring>section>a.button.is-light.is-active.docs-sourcelink{background-color:#dfe8f1;border-color:transparent;color:#4d7eb2}html.theme--documenter-dark .button.is-link{background-color:#1abc9c;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:hover,html.theme--documenter-dark .button.is-link.is-hovered{background-color:#18b193;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:focus,html.theme--documenter-dark .button.is-link.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:focus:not(:active),html.theme--documenter-dark .button.is-link.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .button.is-link:active,html.theme--documenter-dark .button.is-link.is-active{background-color:#17a689;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link{background-color:#1abc9c;border-color:#1abc9c;box-shadow:none}html.theme--documenter-dark .button.is-link.is-inverted{background-color:#fff;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted:hover,html.theme--documenter-dark .button.is-link.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-link.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-link.is-outlined{background-color:transparent;border-color:#1abc9c;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-outlined:hover,html.theme--documenter-dark .button.is-link.is-outlined.is-hovered,html.theme--documenter-dark .button.is-link.is-outlined:focus,html.theme--documenter-dark .button.is-link.is-outlined.is-focused{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #1abc9c #1abc9c !important}html.theme--documenter-dark .button.is-link.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-link.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-outlined{background-color:transparent;border-color:#1abc9c;box-shadow:none;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-focused{background-color:#fff;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #1abc9c #1abc9c !important}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-link.is-light{background-color:#edfdf9;color:#15987e}html.theme--documenter-dark .button.is-link.is-light:hover,html.theme--documenter-dark .button.is-link.is-light.is-hovered{background-color:#e2fbf6;border-color:transparent;color:#15987e}html.theme--documenter-dark .button.is-link.is-light:active,html.theme--documenter-dark .button.is-link.is-light.is-active{background-color:#d7f9f3;border-color:transparent;color:#15987e}html.theme--documenter-dark .button.is-info{background-color:#024c7d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:hover,html.theme--documenter-dark .button.is-info.is-hovered{background-color:#024470;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:focus,html.theme--documenter-dark .button.is-info.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:focus:not(:active),html.theme--documenter-dark .button.is-info.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .button.is-info:active,html.theme--documenter-dark .button.is-info.is-active{background-color:#023d64;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info{background-color:#024c7d;border-color:#024c7d;box-shadow:none}html.theme--documenter-dark .button.is-info.is-inverted{background-color:#fff;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted:hover,html.theme--documenter-dark .button.is-info.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-info.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#024c7d}html.theme--documenter-dark .button.is-info.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-info.is-outlined{background-color:transparent;border-color:#024c7d;color:#024c7d}html.theme--documenter-dark .button.is-info.is-outlined:hover,html.theme--documenter-dark .button.is-info.is-outlined.is-hovered,html.theme--documenter-dark .button.is-info.is-outlined:focus,html.theme--documenter-dark .button.is-info.is-outlined.is-focused{background-color:#024c7d;border-color:#024c7d;color:#fff}html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #024c7d #024c7d !important}html.theme--documenter-dark .button.is-info.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-info.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-outlined{background-color:transparent;border-color:#024c7d;box-shadow:none;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-focused{background-color:#fff;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #024c7d #024c7d !important}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-info.is-light{background-color:#ebf7ff;color:#0e9dfb}html.theme--documenter-dark .button.is-info.is-light:hover,html.theme--documenter-dark .button.is-info.is-light.is-hovered{background-color:#def2fe;border-color:transparent;color:#0e9dfb}html.theme--documenter-dark .button.is-info.is-light:active,html.theme--documenter-dark .button.is-info.is-light.is-active{background-color:#d2edfe;border-color:transparent;color:#0e9dfb}html.theme--documenter-dark .button.is-success{background-color:#008438;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:hover,html.theme--documenter-dark .button.is-success.is-hovered{background-color:#073;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:focus,html.theme--documenter-dark .button.is-success.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:focus:not(:active),html.theme--documenter-dark .button.is-success.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .button.is-success:active,html.theme--documenter-dark .button.is-success.is-active{background-color:#006b2d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success{background-color:#008438;border-color:#008438;box-shadow:none}html.theme--documenter-dark .button.is-success.is-inverted{background-color:#fff;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted:hover,html.theme--documenter-dark .button.is-success.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-success.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#008438}html.theme--documenter-dark .button.is-success.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-success.is-outlined{background-color:transparent;border-color:#008438;color:#008438}html.theme--documenter-dark .button.is-success.is-outlined:hover,html.theme--documenter-dark .button.is-success.is-outlined.is-hovered,html.theme--documenter-dark .button.is-success.is-outlined:focus,html.theme--documenter-dark .button.is-success.is-outlined.is-focused{background-color:#008438;border-color:#008438;color:#fff}html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #008438 #008438 !important}html.theme--documenter-dark .button.is-success.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-success.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-outlined{background-color:transparent;border-color:#008438;box-shadow:none;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-focused{background-color:#fff;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #008438 #008438 !important}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-success.is-light{background-color:#ebfff3;color:#00eb64}html.theme--documenter-dark .button.is-success.is-light:hover,html.theme--documenter-dark .button.is-success.is-light.is-hovered{background-color:#deffec;border-color:transparent;color:#00eb64}html.theme--documenter-dark .button.is-success.is-light:active,html.theme--documenter-dark .button.is-success.is-light.is-active{background-color:#d1ffe5;border-color:transparent;color:#00eb64}html.theme--documenter-dark .button.is-warning{background-color:#ad8100;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:hover,html.theme--documenter-dark .button.is-warning.is-hovered{background-color:#a07700;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:focus,html.theme--documenter-dark .button.is-warning.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:focus:not(:active),html.theme--documenter-dark .button.is-warning.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .button.is-warning:active,html.theme--documenter-dark .button.is-warning.is-active{background-color:#946e00;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning{background-color:#ad8100;border-color:#ad8100;box-shadow:none}html.theme--documenter-dark .button.is-warning.is-inverted{background-color:#fff;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted:hover,html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-warning.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-warning.is-outlined{background-color:transparent;border-color:#ad8100;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-outlined:hover,html.theme--documenter-dark .button.is-warning.is-outlined.is-hovered,html.theme--documenter-dark .button.is-warning.is-outlined:focus,html.theme--documenter-dark .button.is-warning.is-outlined.is-focused{background-color:#ad8100;border-color:#ad8100;color:#fff}html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #ad8100 #ad8100 !important}html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-warning.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-outlined{background-color:transparent;border-color:#ad8100;box-shadow:none;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-focused{background-color:#fff;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ad8100 #ad8100 !important}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-warning.is-light{background-color:#fffaeb;color:#d19c00}html.theme--documenter-dark .button.is-warning.is-light:hover,html.theme--documenter-dark .button.is-warning.is-light.is-hovered{background-color:#fff7de;border-color:transparent;color:#d19c00}html.theme--documenter-dark .button.is-warning.is-light:active,html.theme--documenter-dark .button.is-warning.is-light.is-active{background-color:#fff3d1;border-color:transparent;color:#d19c00}html.theme--documenter-dark .button.is-danger{background-color:#9e1b0d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:hover,html.theme--documenter-dark .button.is-danger.is-hovered{background-color:#92190c;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:focus,html.theme--documenter-dark .button.is-danger.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:focus:not(:active),html.theme--documenter-dark .button.is-danger.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .button.is-danger:active,html.theme--documenter-dark .button.is-danger.is-active{background-color:#86170b;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger{background-color:#9e1b0d;border-color:#9e1b0d;box-shadow:none}html.theme--documenter-dark .button.is-danger.is-inverted{background-color:#fff;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted:hover,html.theme--documenter-dark .button.is-danger.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-danger.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-danger.is-outlined{background-color:transparent;border-color:#9e1b0d;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-outlined:hover,html.theme--documenter-dark .button.is-danger.is-outlined.is-hovered,html.theme--documenter-dark .button.is-danger.is-outlined:focus,html.theme--documenter-dark .button.is-danger.is-outlined.is-focused{background-color:#9e1b0d;border-color:#9e1b0d;color:#fff}html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #9e1b0d #9e1b0d !important}html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-danger.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-outlined{background-color:transparent;border-color:#9e1b0d;box-shadow:none;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-focused{background-color:#fff;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #9e1b0d #9e1b0d !important}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-danger.is-light{background-color:#fdeeec;color:#ec311d}html.theme--documenter-dark .button.is-danger.is-light:hover,html.theme--documenter-dark .button.is-danger.is-light.is-hovered{background-color:#fce3e0;border-color:transparent;color:#ec311d}html.theme--documenter-dark .button.is-danger.is-light:active,html.theme--documenter-dark .button.is-danger.is-light.is-active{background-color:#fcd8d5;border-color:transparent;color:#ec311d}html.theme--documenter-dark .button.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.button{font-size:.75rem}html.theme--documenter-dark .button.is-small:not(.is-rounded),html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.button:not(.is-rounded){border-radius:3px}html.theme--documenter-dark .button.is-normal{font-size:1rem}html.theme--documenter-dark .button.is-medium{font-size:1.25rem}html.theme--documenter-dark .button.is-large{font-size:1.5rem}html.theme--documenter-dark .button[disabled],fieldset[disabled] html.theme--documenter-dark .button{background-color:#8c9b9d;border-color:#5e6d6f;box-shadow:none;opacity:.5}html.theme--documenter-dark .button.is-fullwidth{display:flex;width:100%}html.theme--documenter-dark .button.is-loading{color:transparent !important;pointer-events:none}html.theme--documenter-dark .button.is-loading::after{position:absolute;left:calc(50% - (1em * 0.5));top:calc(50% - (1em * 0.5));position:absolute !important}html.theme--documenter-dark .button.is-static{background-color:#282f2f;border-color:#5e6d6f;color:#dbdee0;box-shadow:none;pointer-events:none}html.theme--documenter-dark .button.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.button{border-radius:9999px;padding-left:calc(1em + 0.25em);padding-right:calc(1em + 0.25em)}html.theme--documenter-dark .buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .buttons .button{margin-bottom:0.5rem}html.theme--documenter-dark .buttons .button:not(:last-child):not(.is-fullwidth){margin-right:.5rem}html.theme--documenter-dark .buttons:last-child{margin-bottom:-0.5rem}html.theme--documenter-dark .buttons:not(:last-child){margin-bottom:1rem}html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large){font-size:.75rem}html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large):not(.is-rounded){border-radius:3px}html.theme--documenter-dark .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large){font-size:1.25rem}html.theme--documenter-dark .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium){font-size:1.5rem}html.theme--documenter-dark .buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}html.theme--documenter-dark .buttons.has-addons .button:last-child{margin-right:0}html.theme--documenter-dark .buttons.has-addons .button:hover,html.theme--documenter-dark .buttons.has-addons .button.is-hovered{z-index:2}html.theme--documenter-dark .buttons.has-addons .button:focus,html.theme--documenter-dark .buttons.has-addons .button.is-focused,html.theme--documenter-dark .buttons.has-addons .button:active,html.theme--documenter-dark .buttons.has-addons .button.is-active,html.theme--documenter-dark .buttons.has-addons .button.is-selected{z-index:3}html.theme--documenter-dark .buttons.has-addons .button:focus:hover,html.theme--documenter-dark .buttons.has-addons .button.is-focused:hover,html.theme--documenter-dark .buttons.has-addons .button:active:hover,html.theme--documenter-dark .buttons.has-addons .button.is-active:hover,html.theme--documenter-dark .buttons.has-addons .button.is-selected:hover{z-index:4}html.theme--documenter-dark .buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .buttons.is-centered{justify-content:center}html.theme--documenter-dark .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}html.theme--documenter-dark .buttons.is-right{justify-content:flex-end}html.theme--documenter-dark .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}@media screen and (max-width: 768px){html.theme--documenter-dark .button.is-responsive.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-responsive{font-size:.5625rem}html.theme--documenter-dark .button.is-responsive,html.theme--documenter-dark .button.is-responsive.is-normal{font-size:.65625rem}html.theme--documenter-dark .button.is-responsive.is-medium{font-size:.75rem}html.theme--documenter-dark .button.is-responsive.is-large{font-size:1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .button.is-responsive.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-responsive{font-size:.65625rem}html.theme--documenter-dark .button.is-responsive,html.theme--documenter-dark .button.is-responsive.is-normal{font-size:.75rem}html.theme--documenter-dark .button.is-responsive.is-medium{font-size:1rem}html.theme--documenter-dark .button.is-responsive.is-large{font-size:1.25rem}}html.theme--documenter-dark .container{flex-grow:1;margin:0 auto;position:relative;width:auto}html.theme--documenter-dark .container.is-fluid{max-width:none !important;padding-left:32px;padding-right:32px;width:100%}@media screen and (min-width: 1056px){html.theme--documenter-dark .container{max-width:992px}}@media screen and (max-width: 1215px){html.theme--documenter-dark .container.is-widescreen:not(.is-max-desktop){max-width:1152px}}@media screen and (max-width: 1407px){html.theme--documenter-dark .container.is-fullhd:not(.is-max-desktop):not(.is-max-widescreen){max-width:1344px}}@media screen and (min-width: 1216px){html.theme--documenter-dark .container:not(.is-max-desktop){max-width:1152px}}@media screen and (min-width: 1408px){html.theme--documenter-dark .container:not(.is-max-desktop):not(.is-max-widescreen){max-width:1344px}}html.theme--documenter-dark .content li+li{margin-top:0.25em}html.theme--documenter-dark .content p:not(:last-child),html.theme--documenter-dark .content dl:not(:last-child),html.theme--documenter-dark .content ol:not(:last-child),html.theme--documenter-dark .content ul:not(:last-child),html.theme--documenter-dark .content blockquote:not(:last-child),html.theme--documenter-dark .content pre:not(:last-child),html.theme--documenter-dark .content table:not(:last-child){margin-bottom:1em}html.theme--documenter-dark .content h1,html.theme--documenter-dark .content h2,html.theme--documenter-dark .content h3,html.theme--documenter-dark .content h4,html.theme--documenter-dark .content h5,html.theme--documenter-dark .content h6{color:#f2f2f2;font-weight:600;line-height:1.125}html.theme--documenter-dark .content h1{font-size:2em;margin-bottom:0.5em}html.theme--documenter-dark .content h1:not(:first-child){margin-top:1em}html.theme--documenter-dark .content h2{font-size:1.75em;margin-bottom:0.5714em}html.theme--documenter-dark .content h2:not(:first-child){margin-top:1.1428em}html.theme--documenter-dark .content h3{font-size:1.5em;margin-bottom:0.6666em}html.theme--documenter-dark .content h3:not(:first-child){margin-top:1.3333em}html.theme--documenter-dark .content h4{font-size:1.25em;margin-bottom:0.8em}html.theme--documenter-dark .content h5{font-size:1.125em;margin-bottom:0.8888em}html.theme--documenter-dark .content h6{font-size:1em;margin-bottom:1em}html.theme--documenter-dark .content blockquote{background-color:#282f2f;border-left:5px solid #5e6d6f;padding:1.25em 1.5em}html.theme--documenter-dark .content ol{list-style-position:outside;margin-left:2em;margin-top:1em}html.theme--documenter-dark .content ol:not([type]){list-style-type:decimal}html.theme--documenter-dark .content ol.is-lower-alpha:not([type]){list-style-type:lower-alpha}html.theme--documenter-dark .content ol.is-lower-roman:not([type]){list-style-type:lower-roman}html.theme--documenter-dark .content ol.is-upper-alpha:not([type]){list-style-type:upper-alpha}html.theme--documenter-dark .content ol.is-upper-roman:not([type]){list-style-type:upper-roman}html.theme--documenter-dark .content ul{list-style:disc outside;margin-left:2em;margin-top:1em}html.theme--documenter-dark .content ul ul{list-style-type:circle;margin-top:0.5em}html.theme--documenter-dark .content ul ul ul{list-style-type:square}html.theme--documenter-dark .content dd{margin-left:2em}html.theme--documenter-dark .content figure{margin-left:2em;margin-right:2em;text-align:center}html.theme--documenter-dark .content figure:not(:first-child){margin-top:2em}html.theme--documenter-dark .content figure:not(:last-child){margin-bottom:2em}html.theme--documenter-dark .content figure img{display:inline-block}html.theme--documenter-dark .content figure figcaption{font-style:italic}html.theme--documenter-dark .content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:0;white-space:pre;word-wrap:normal}html.theme--documenter-dark .content sup,html.theme--documenter-dark .content sub{font-size:75%}html.theme--documenter-dark .content table{width:100%}html.theme--documenter-dark .content table td,html.theme--documenter-dark .content table th{border:1px solid #5e6d6f;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}html.theme--documenter-dark .content table th{color:#f2f2f2}html.theme--documenter-dark .content table th:not([align]){text-align:inherit}html.theme--documenter-dark .content table thead td,html.theme--documenter-dark .content table thead th{border-width:0 0 2px;color:#f2f2f2}html.theme--documenter-dark .content table tfoot td,html.theme--documenter-dark .content table tfoot th{border-width:2px 0 0;color:#f2f2f2}html.theme--documenter-dark .content table tbody tr:last-child td,html.theme--documenter-dark .content table tbody tr:last-child th{border-bottom-width:0}html.theme--documenter-dark .content .tabs li+li{margin-top:0}html.theme--documenter-dark .content.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.content{font-size:.75rem}html.theme--documenter-dark .content.is-normal{font-size:1rem}html.theme--documenter-dark .content.is-medium{font-size:1.25rem}html.theme--documenter-dark .content.is-large{font-size:1.5rem}html.theme--documenter-dark .icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}html.theme--documenter-dark .icon.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.icon{height:1rem;width:1rem}html.theme--documenter-dark .icon.is-medium{height:2rem;width:2rem}html.theme--documenter-dark .icon.is-large{height:3rem;width:3rem}html.theme--documenter-dark .icon-text{align-items:flex-start;color:inherit;display:inline-flex;flex-wrap:wrap;line-height:1.5rem;vertical-align:top}html.theme--documenter-dark .icon-text .icon{flex-grow:0;flex-shrink:0}html.theme--documenter-dark .icon-text .icon:not(:last-child){margin-right:.25em}html.theme--documenter-dark .icon-text .icon:not(:first-child){margin-left:.25em}html.theme--documenter-dark div.icon-text{display:flex}html.theme--documenter-dark .image,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img{display:block;position:relative}html.theme--documenter-dark .image img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img img{display:block;height:auto;width:100%}html.theme--documenter-dark .image img.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img img.is-rounded{border-radius:9999px}html.theme--documenter-dark .image.is-fullwidth,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-fullwidth{width:100%}html.theme--documenter-dark .image.is-square img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square img,html.theme--documenter-dark .image.is-square .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,html.theme--documenter-dark .image.is-1by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 img,html.theme--documenter-dark .image.is-1by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,html.theme--documenter-dark .image.is-5by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 img,html.theme--documenter-dark .image.is-5by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,html.theme--documenter-dark .image.is-4by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 img,html.theme--documenter-dark .image.is-4by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,html.theme--documenter-dark .image.is-3by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 img,html.theme--documenter-dark .image.is-3by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,html.theme--documenter-dark .image.is-5by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 img,html.theme--documenter-dark .image.is-5by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,html.theme--documenter-dark .image.is-16by9 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 img,html.theme--documenter-dark .image.is-16by9 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,html.theme--documenter-dark .image.is-2by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 img,html.theme--documenter-dark .image.is-2by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,html.theme--documenter-dark .image.is-3by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 img,html.theme--documenter-dark .image.is-3by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,html.theme--documenter-dark .image.is-4by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 img,html.theme--documenter-dark .image.is-4by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,html.theme--documenter-dark .image.is-3by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 img,html.theme--documenter-dark .image.is-3by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,html.theme--documenter-dark .image.is-2by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 img,html.theme--documenter-dark .image.is-2by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,html.theme--documenter-dark .image.is-3by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 img,html.theme--documenter-dark .image.is-3by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,html.theme--documenter-dark .image.is-9by16 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 img,html.theme--documenter-dark .image.is-9by16 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,html.theme--documenter-dark .image.is-1by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 img,html.theme--documenter-dark .image.is-1by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,html.theme--documenter-dark .image.is-1by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 img,html.theme--documenter-dark .image.is-1by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio{height:100%;width:100%}html.theme--documenter-dark .image.is-square,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square,html.theme--documenter-dark .image.is-1by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1{padding-top:100%}html.theme--documenter-dark .image.is-5by4,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4{padding-top:80%}html.theme--documenter-dark .image.is-4by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3{padding-top:75%}html.theme--documenter-dark .image.is-3by2,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2{padding-top:66.6666%}html.theme--documenter-dark .image.is-5by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3{padding-top:60%}html.theme--documenter-dark .image.is-16by9,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9{padding-top:56.25%}html.theme--documenter-dark .image.is-2by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1{padding-top:50%}html.theme--documenter-dark .image.is-3by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1{padding-top:33.3333%}html.theme--documenter-dark .image.is-4by5,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5{padding-top:125%}html.theme--documenter-dark .image.is-3by4,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4{padding-top:133.3333%}html.theme--documenter-dark .image.is-2by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3{padding-top:150%}html.theme--documenter-dark .image.is-3by5,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5{padding-top:166.6666%}html.theme--documenter-dark .image.is-9by16,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16{padding-top:177.7777%}html.theme--documenter-dark .image.is-1by2,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2{padding-top:200%}html.theme--documenter-dark .image.is-1by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3{padding-top:300%}html.theme--documenter-dark .image.is-16x16,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16x16{height:16px;width:16px}html.theme--documenter-dark .image.is-24x24,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-24x24{height:24px;width:24px}html.theme--documenter-dark .image.is-32x32,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-32x32{height:32px;width:32px}html.theme--documenter-dark .image.is-48x48,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-48x48{height:48px;width:48px}html.theme--documenter-dark .image.is-64x64,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-64x64{height:64px;width:64px}html.theme--documenter-dark .image.is-96x96,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-96x96{height:96px;width:96px}html.theme--documenter-dark .image.is-128x128,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-128x128{height:128px;width:128px}html.theme--documenter-dark .notification{background-color:#282f2f;border-radius:.4em;position:relative;padding:1.25rem 2.5rem 1.25rem 1.5rem}html.theme--documenter-dark .notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}html.theme--documenter-dark .notification strong{color:currentColor}html.theme--documenter-dark .notification code,html.theme--documenter-dark .notification pre{background:#fff}html.theme--documenter-dark .notification pre code{background:transparent}html.theme--documenter-dark .notification>.delete{right:.5rem;position:absolute;top:0.5rem}html.theme--documenter-dark .notification .title,html.theme--documenter-dark .notification .subtitle,html.theme--documenter-dark .notification .content{color:currentColor}html.theme--documenter-dark .notification.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .notification.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .notification.is-light{background-color:#ecf0f1;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .notification.is-dark,html.theme--documenter-dark .content kbd.notification{background-color:#282f2f;color:#fff}html.theme--documenter-dark .notification.is-primary,html.theme--documenter-dark .docstring>section>a.notification.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .notification.is-primary.is-light,html.theme--documenter-dark .docstring>section>a.notification.is-light.docs-sourcelink{background-color:#f1f5f9;color:#4d7eb2}html.theme--documenter-dark .notification.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .notification.is-link.is-light{background-color:#edfdf9;color:#15987e}html.theme--documenter-dark .notification.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .notification.is-info.is-light{background-color:#ebf7ff;color:#0e9dfb}html.theme--documenter-dark .notification.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .notification.is-success.is-light{background-color:#ebfff3;color:#00eb64}html.theme--documenter-dark .notification.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .notification.is-warning.is-light{background-color:#fffaeb;color:#d19c00}html.theme--documenter-dark .notification.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .notification.is-danger.is-light{background-color:#fdeeec;color:#ec311d}html.theme--documenter-dark .progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:9999px;display:block;height:1rem;overflow:hidden;padding:0;width:100%}html.theme--documenter-dark .progress::-webkit-progress-bar{background-color:#343c3d}html.theme--documenter-dark .progress::-webkit-progress-value{background-color:#dbdee0}html.theme--documenter-dark .progress::-moz-progress-bar{background-color:#dbdee0}html.theme--documenter-dark .progress::-ms-fill{background-color:#dbdee0;border:none}html.theme--documenter-dark .progress.is-white::-webkit-progress-value{background-color:#fff}html.theme--documenter-dark .progress.is-white::-moz-progress-bar{background-color:#fff}html.theme--documenter-dark .progress.is-white::-ms-fill{background-color:#fff}html.theme--documenter-dark .progress.is-white:indeterminate{background-image:linear-gradient(to right, #fff 30%, #343c3d 30%)}html.theme--documenter-dark .progress.is-black::-webkit-progress-value{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black::-moz-progress-bar{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black::-ms-fill{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black:indeterminate{background-image:linear-gradient(to right, #0a0a0a 30%, #343c3d 30%)}html.theme--documenter-dark .progress.is-light::-webkit-progress-value{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light::-moz-progress-bar{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light::-ms-fill{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light:indeterminate{background-image:linear-gradient(to right, #ecf0f1 30%, #343c3d 30%)}html.theme--documenter-dark .progress.is-dark::-webkit-progress-value,html.theme--documenter-dark .content kbd.progress::-webkit-progress-value{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark::-moz-progress-bar,html.theme--documenter-dark .content kbd.progress::-moz-progress-bar{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark::-ms-fill,html.theme--documenter-dark .content kbd.progress::-ms-fill{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark:indeterminate,html.theme--documenter-dark .content kbd.progress:indeterminate{background-image:linear-gradient(to right, #282f2f 30%, #343c3d 30%)}html.theme--documenter-dark .progress.is-primary::-webkit-progress-value,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-webkit-progress-value{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary::-moz-progress-bar,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-moz-progress-bar{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary::-ms-fill,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-ms-fill{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary:indeterminate,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink:indeterminate{background-image:linear-gradient(to right, #375a7f 30%, #343c3d 30%)}html.theme--documenter-dark .progress.is-link::-webkit-progress-value{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link::-moz-progress-bar{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link::-ms-fill{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link:indeterminate{background-image:linear-gradient(to right, #1abc9c 30%, #343c3d 30%)}html.theme--documenter-dark .progress.is-info::-webkit-progress-value{background-color:#024c7d}html.theme--documenter-dark .progress.is-info::-moz-progress-bar{background-color:#024c7d}html.theme--documenter-dark .progress.is-info::-ms-fill{background-color:#024c7d}html.theme--documenter-dark .progress.is-info:indeterminate{background-image:linear-gradient(to right, #024c7d 30%, #343c3d 30%)}html.theme--documenter-dark .progress.is-success::-webkit-progress-value{background-color:#008438}html.theme--documenter-dark .progress.is-success::-moz-progress-bar{background-color:#008438}html.theme--documenter-dark .progress.is-success::-ms-fill{background-color:#008438}html.theme--documenter-dark .progress.is-success:indeterminate{background-image:linear-gradient(to right, #008438 30%, #343c3d 30%)}html.theme--documenter-dark .progress.is-warning::-webkit-progress-value{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning::-moz-progress-bar{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning::-ms-fill{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning:indeterminate{background-image:linear-gradient(to right, #ad8100 30%, #343c3d 30%)}html.theme--documenter-dark .progress.is-danger::-webkit-progress-value{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger::-moz-progress-bar{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger::-ms-fill{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger:indeterminate{background-image:linear-gradient(to right, #9e1b0d 30%, #343c3d 30%)}html.theme--documenter-dark .progress:indeterminate{animation-duration:1.5s;animation-iteration-count:infinite;animation-name:moveIndeterminate;animation-timing-function:linear;background-color:#343c3d;background-image:linear-gradient(to right, #fff 30%, #343c3d 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}html.theme--documenter-dark .progress:indeterminate::-webkit-progress-bar{background-color:transparent}html.theme--documenter-dark .progress:indeterminate::-moz-progress-bar{background-color:transparent}html.theme--documenter-dark .progress:indeterminate::-ms-fill{animation-name:none}html.theme--documenter-dark .progress.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.progress{height:.75rem}html.theme--documenter-dark .progress.is-medium{height:1.25rem}html.theme--documenter-dark .progress.is-large{height:1.5rem}@keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}html.theme--documenter-dark .table{background-color:#343c3d;color:#fff}html.theme--documenter-dark .table td,html.theme--documenter-dark .table th{border:1px solid #5e6d6f;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}html.theme--documenter-dark .table td.is-white,html.theme--documenter-dark .table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .table td.is-black,html.theme--documenter-dark .table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .table td.is-light,html.theme--documenter-dark .table th.is-light{background-color:#ecf0f1;border-color:#ecf0f1;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .table td.is-dark,html.theme--documenter-dark .table th.is-dark{background-color:#282f2f;border-color:#282f2f;color:#fff}html.theme--documenter-dark .table td.is-primary,html.theme--documenter-dark .table th.is-primary{background-color:#375a7f;border-color:#375a7f;color:#fff}html.theme--documenter-dark .table td.is-link,html.theme--documenter-dark .table th.is-link{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .table td.is-info,html.theme--documenter-dark .table th.is-info{background-color:#024c7d;border-color:#024c7d;color:#fff}html.theme--documenter-dark .table td.is-success,html.theme--documenter-dark .table th.is-success{background-color:#008438;border-color:#008438;color:#fff}html.theme--documenter-dark .table td.is-warning,html.theme--documenter-dark .table th.is-warning{background-color:#ad8100;border-color:#ad8100;color:#fff}html.theme--documenter-dark .table td.is-danger,html.theme--documenter-dark .table th.is-danger{background-color:#9e1b0d;border-color:#9e1b0d;color:#fff}html.theme--documenter-dark .table td.is-narrow,html.theme--documenter-dark .table th.is-narrow{white-space:nowrap;width:1%}html.theme--documenter-dark .table td.is-selected,html.theme--documenter-dark .table th.is-selected{background-color:#375a7f;color:#fff}html.theme--documenter-dark .table td.is-selected a,html.theme--documenter-dark .table td.is-selected strong,html.theme--documenter-dark .table th.is-selected a,html.theme--documenter-dark .table th.is-selected strong{color:currentColor}html.theme--documenter-dark .table td.is-vcentered,html.theme--documenter-dark .table th.is-vcentered{vertical-align:middle}html.theme--documenter-dark .table th{color:#f2f2f2}html.theme--documenter-dark .table th:not([align]){text-align:left}html.theme--documenter-dark .table tr.is-selected{background-color:#375a7f;color:#fff}html.theme--documenter-dark .table tr.is-selected a,html.theme--documenter-dark .table tr.is-selected strong{color:currentColor}html.theme--documenter-dark .table tr.is-selected td,html.theme--documenter-dark .table tr.is-selected th{border-color:#fff;color:currentColor}html.theme--documenter-dark .table thead{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table thead td,html.theme--documenter-dark .table thead th{border-width:0 0 2px;color:#f2f2f2}html.theme--documenter-dark .table tfoot{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table tfoot td,html.theme--documenter-dark .table tfoot th{border-width:2px 0 0;color:#f2f2f2}html.theme--documenter-dark .table tbody{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table tbody tr:last-child td,html.theme--documenter-dark .table tbody tr:last-child th{border-bottom-width:0}html.theme--documenter-dark .table.is-bordered td,html.theme--documenter-dark .table.is-bordered th{border-width:1px}html.theme--documenter-dark .table.is-bordered tr:last-child td,html.theme--documenter-dark .table.is-bordered tr:last-child th{border-bottom-width:1px}html.theme--documenter-dark .table.is-fullwidth{width:100%}html.theme--documenter-dark .table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#282f2f}html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#282f2f}html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even){background-color:#2d3435}html.theme--documenter-dark .table.is-narrow td,html.theme--documenter-dark .table.is-narrow th{padding:0.25em 0.5em}html.theme--documenter-dark .table.is-striped tbody tr:not(.is-selected):nth-child(even){background-color:#282f2f}html.theme--documenter-dark .table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}html.theme--documenter-dark .tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .tags .tag,html.theme--documenter-dark .tags .content kbd,html.theme--documenter-dark .content .tags kbd,html.theme--documenter-dark .tags .docstring>section>a.docs-sourcelink{margin-bottom:0.5rem}html.theme--documenter-dark .tags .tag:not(:last-child),html.theme--documenter-dark .tags .content kbd:not(:last-child),html.theme--documenter-dark .content .tags kbd:not(:last-child),html.theme--documenter-dark .tags .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:.5rem}html.theme--documenter-dark .tags:last-child{margin-bottom:-0.5rem}html.theme--documenter-dark .tags:not(:last-child){margin-bottom:1rem}html.theme--documenter-dark .tags.are-medium .tag:not(.is-normal):not(.is-large),html.theme--documenter-dark .tags.are-medium .content kbd:not(.is-normal):not(.is-large),html.theme--documenter-dark .content .tags.are-medium kbd:not(.is-normal):not(.is-large),html.theme--documenter-dark .tags.are-medium .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-large){font-size:1rem}html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium),html.theme--documenter-dark .tags.are-large .content kbd:not(.is-normal):not(.is-medium),html.theme--documenter-dark .content .tags.are-large kbd:not(.is-normal):not(.is-medium),html.theme--documenter-dark .tags.are-large .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-medium){font-size:1.25rem}html.theme--documenter-dark .tags.is-centered{justify-content:center}html.theme--documenter-dark .tags.is-centered .tag,html.theme--documenter-dark .tags.is-centered .content kbd,html.theme--documenter-dark .content .tags.is-centered kbd,html.theme--documenter-dark .tags.is-centered .docstring>section>a.docs-sourcelink{margin-right:0.25rem;margin-left:0.25rem}html.theme--documenter-dark .tags.is-right{justify-content:flex-end}html.theme--documenter-dark .tags.is-right .tag:not(:first-child),html.theme--documenter-dark .tags.is-right .content kbd:not(:first-child),html.theme--documenter-dark .content .tags.is-right kbd:not(:first-child),html.theme--documenter-dark .tags.is-right .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0.5rem}html.theme--documenter-dark .tags.is-right .tag:not(:last-child),html.theme--documenter-dark .tags.is-right .content kbd:not(:last-child),html.theme--documenter-dark .content .tags.is-right kbd:not(:last-child),html.theme--documenter-dark .tags.is-right .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0}html.theme--documenter-dark .tags.has-addons .tag,html.theme--documenter-dark .tags.has-addons .content kbd,html.theme--documenter-dark .content .tags.has-addons kbd,html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink{margin-right:0}html.theme--documenter-dark .tags.has-addons .tag:not(:first-child),html.theme--documenter-dark .tags.has-addons .content kbd:not(:first-child),html.theme--documenter-dark .content .tags.has-addons kbd:not(:first-child),html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0;border-top-left-radius:0;border-bottom-left-radius:0}html.theme--documenter-dark .tags.has-addons .tag:not(:last-child),html.theme--documenter-dark .tags.has-addons .content kbd:not(:last-child),html.theme--documenter-dark .content .tags.has-addons kbd:not(:last-child),html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}html.theme--documenter-dark .tag:not(body),html.theme--documenter-dark .content kbd:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body){align-items:center;background-color:#282f2f;border-radius:.4em;color:#fff;display:inline-flex;font-size:.75rem;height:2em;justify-content:center;line-height:1.5;padding-left:0.75em;padding-right:0.75em;white-space:nowrap}html.theme--documenter-dark .tag:not(body) .delete,html.theme--documenter-dark .content kbd:not(body) .delete,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .delete{margin-left:.25rem;margin-right:-.375rem}html.theme--documenter-dark .tag.is-white:not(body),html.theme--documenter-dark .content kbd.is-white:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-white:not(body){background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .tag.is-black:not(body),html.theme--documenter-dark .content kbd.is-black:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-black:not(body){background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .tag.is-light:not(body),html.theme--documenter-dark .content kbd.is-light:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#ecf0f1;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .tag.is-dark:not(body),html.theme--documenter-dark .content kbd:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-dark:not(body),html.theme--documenter-dark .content .docstring>section>kbd:not(body){background-color:#282f2f;color:#fff}html.theme--documenter-dark .tag.is-primary:not(body),html.theme--documenter-dark .content kbd.is-primary:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body){background-color:#375a7f;color:#fff}html.theme--documenter-dark .tag.is-primary.is-light:not(body),html.theme--documenter-dark .content kbd.is-primary.is-light:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#f1f5f9;color:#4d7eb2}html.theme--documenter-dark .tag.is-link:not(body),html.theme--documenter-dark .content kbd.is-link:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-link:not(body){background-color:#1abc9c;color:#fff}html.theme--documenter-dark .tag.is-link.is-light:not(body),html.theme--documenter-dark .content kbd.is-link.is-light:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-link.is-light:not(body){background-color:#edfdf9;color:#15987e}html.theme--documenter-dark .tag.is-info:not(body),html.theme--documenter-dark .content kbd.is-info:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-info:not(body){background-color:#024c7d;color:#fff}html.theme--documenter-dark .tag.is-info.is-light:not(body),html.theme--documenter-dark .content kbd.is-info.is-light:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-info.is-light:not(body){background-color:#ebf7ff;color:#0e9dfb}html.theme--documenter-dark .tag.is-success:not(body),html.theme--documenter-dark .content kbd.is-success:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-success:not(body){background-color:#008438;color:#fff}html.theme--documenter-dark .tag.is-success.is-light:not(body),html.theme--documenter-dark .content kbd.is-success.is-light:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-success.is-light:not(body){background-color:#ebfff3;color:#00eb64}html.theme--documenter-dark .tag.is-warning:not(body),html.theme--documenter-dark .content kbd.is-warning:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-warning:not(body){background-color:#ad8100;color:#fff}html.theme--documenter-dark .tag.is-warning.is-light:not(body),html.theme--documenter-dark .content kbd.is-warning.is-light:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-warning.is-light:not(body){background-color:#fffaeb;color:#d19c00}html.theme--documenter-dark .tag.is-danger:not(body),html.theme--documenter-dark .content kbd.is-danger:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-danger:not(body){background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .tag.is-danger.is-light:not(body),html.theme--documenter-dark .content kbd.is-danger.is-light:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-danger.is-light:not(body){background-color:#fdeeec;color:#ec311d}html.theme--documenter-dark .tag.is-normal:not(body),html.theme--documenter-dark .content kbd.is-normal:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-normal:not(body){font-size:.75rem}html.theme--documenter-dark .tag.is-medium:not(body),html.theme--documenter-dark .content kbd.is-medium:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-medium:not(body){font-size:1rem}html.theme--documenter-dark .tag.is-large:not(body),html.theme--documenter-dark .content kbd.is-large:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-large:not(body){font-size:1.25rem}html.theme--documenter-dark .tag:not(body) .icon:first-child:not(:last-child),html.theme--documenter-dark .content kbd:not(body) .icon:first-child:not(:last-child),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:first-child:not(:last-child){margin-left:-.375em;margin-right:.1875em}html.theme--documenter-dark .tag:not(body) .icon:last-child:not(:first-child),html.theme--documenter-dark .content kbd:not(body) .icon:last-child:not(:first-child),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:last-child:not(:first-child){margin-left:.1875em;margin-right:-.375em}html.theme--documenter-dark .tag:not(body) .icon:first-child:last-child,html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:first-child:last-child{margin-left:-.375em;margin-right:-.375em}html.theme--documenter-dark .tag.is-delete:not(body),html.theme--documenter-dark .content kbd.is-delete:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body){margin-left:1px;padding:0;position:relative;width:2em}html.theme--documenter-dark .tag.is-delete:not(body)::before,html.theme--documenter-dark .content kbd.is-delete:not(body)::before,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::before,html.theme--documenter-dark .tag.is-delete:not(body)::after,html.theme--documenter-dark .content kbd.is-delete:not(body)::after,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::after{background-color:currentColor;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}html.theme--documenter-dark .tag.is-delete:not(body)::before,html.theme--documenter-dark .content kbd.is-delete:not(body)::before,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::before{height:1px;width:50%}html.theme--documenter-dark .tag.is-delete:not(body)::after,html.theme--documenter-dark .content kbd.is-delete:not(body)::after,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::after{height:50%;width:1px}html.theme--documenter-dark .tag.is-delete:not(body):hover,html.theme--documenter-dark .content kbd.is-delete:not(body):hover,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):hover,html.theme--documenter-dark .tag.is-delete:not(body):focus,html.theme--documenter-dark .content kbd.is-delete:not(body):focus,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):focus{background-color:#1d2122}html.theme--documenter-dark .tag.is-delete:not(body):active,html.theme--documenter-dark .content kbd.is-delete:not(body):active,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):active{background-color:#111414}html.theme--documenter-dark .tag.is-rounded:not(body),html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:not(body),html.theme--documenter-dark .content kbd.is-rounded:not(body),html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-rounded:not(body){border-radius:9999px}html.theme--documenter-dark a.tag:hover,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:hover{text-decoration:underline}html.theme--documenter-dark .title,html.theme--documenter-dark .subtitle{word-break:break-word}html.theme--documenter-dark .title em,html.theme--documenter-dark .title span,html.theme--documenter-dark .subtitle em,html.theme--documenter-dark .subtitle span{font-weight:inherit}html.theme--documenter-dark .title sub,html.theme--documenter-dark .subtitle sub{font-size:.75em}html.theme--documenter-dark .title sup,html.theme--documenter-dark .subtitle sup{font-size:.75em}html.theme--documenter-dark .title .tag,html.theme--documenter-dark .title .content kbd,html.theme--documenter-dark .content .title kbd,html.theme--documenter-dark .title .docstring>section>a.docs-sourcelink,html.theme--documenter-dark .subtitle .tag,html.theme--documenter-dark .subtitle .content kbd,html.theme--documenter-dark .content .subtitle kbd,html.theme--documenter-dark .subtitle .docstring>section>a.docs-sourcelink{vertical-align:middle}html.theme--documenter-dark .title{color:#fff;font-size:2rem;font-weight:500;line-height:1.125}html.theme--documenter-dark .title strong{color:inherit;font-weight:inherit}html.theme--documenter-dark .title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}html.theme--documenter-dark .title.is-1{font-size:3rem}html.theme--documenter-dark .title.is-2{font-size:2.5rem}html.theme--documenter-dark .title.is-3{font-size:2rem}html.theme--documenter-dark .title.is-4{font-size:1.5rem}html.theme--documenter-dark .title.is-5{font-size:1.25rem}html.theme--documenter-dark .title.is-6{font-size:1rem}html.theme--documenter-dark .title.is-7{font-size:.75rem}html.theme--documenter-dark .subtitle{color:#8c9b9d;font-size:1.25rem;font-weight:400;line-height:1.25}html.theme--documenter-dark .subtitle strong{color:#8c9b9d;font-weight:600}html.theme--documenter-dark .subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}html.theme--documenter-dark .subtitle.is-1{font-size:3rem}html.theme--documenter-dark .subtitle.is-2{font-size:2.5rem}html.theme--documenter-dark .subtitle.is-3{font-size:2rem}html.theme--documenter-dark .subtitle.is-4{font-size:1.5rem}html.theme--documenter-dark .subtitle.is-5{font-size:1.25rem}html.theme--documenter-dark .subtitle.is-6{font-size:1rem}html.theme--documenter-dark .subtitle.is-7{font-size:.75rem}html.theme--documenter-dark .heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}html.theme--documenter-dark .number{align-items:center;background-color:#282f2f;border-radius:9999px;display:inline-flex;font-size:1.25rem;height:2em;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:0.25rem 0.5rem;text-align:center;vertical-align:top}html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{background-color:#1f2424;border-color:#5e6d6f;border-radius:.4em;color:#dbdee0}html.theme--documenter-dark .select select::-moz-placeholder,html.theme--documenter-dark .textarea::-moz-placeholder,html.theme--documenter-dark .input::-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:#868c98}html.theme--documenter-dark .select select::-webkit-input-placeholder,html.theme--documenter-dark .textarea::-webkit-input-placeholder,html.theme--documenter-dark .input::-webkit-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:#868c98}html.theme--documenter-dark .select select:-moz-placeholder,html.theme--documenter-dark .textarea:-moz-placeholder,html.theme--documenter-dark .input:-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:#868c98}html.theme--documenter-dark .select select:-ms-input-placeholder,html.theme--documenter-dark .textarea:-ms-input-placeholder,html.theme--documenter-dark .input:-ms-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:#868c98}html.theme--documenter-dark .select select:hover,html.theme--documenter-dark .textarea:hover,html.theme--documenter-dark .input:hover,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:hover,html.theme--documenter-dark .select select.is-hovered,html.theme--documenter-dark .is-hovered.textarea,html.theme--documenter-dark .is-hovered.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-hovered{border-color:#8c9b9d}html.theme--documenter-dark .select select:focus,html.theme--documenter-dark .textarea:focus,html.theme--documenter-dark .input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:focus,html.theme--documenter-dark .select select.is-focused,html.theme--documenter-dark .is-focused.textarea,html.theme--documenter-dark .is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .select select:active,html.theme--documenter-dark .textarea:active,html.theme--documenter-dark .input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:active,html.theme--documenter-dark .select select.is-active,html.theme--documenter-dark .is-active.textarea,html.theme--documenter-dark .is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{border-color:#1abc9c;box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .select select[disabled],html.theme--documenter-dark .textarea[disabled],html.theme--documenter-dark .input[disabled],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled],fieldset[disabled] html.theme--documenter-dark .select select,fieldset[disabled] html.theme--documenter-dark .textarea,fieldset[disabled] html.theme--documenter-dark .input,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{background-color:#8c9b9d;border-color:#282f2f;box-shadow:none;color:#fff}html.theme--documenter-dark .select select[disabled]::-moz-placeholder,html.theme--documenter-dark .textarea[disabled]::-moz-placeholder,html.theme--documenter-dark .input[disabled]::-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .select select::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .input::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]::-webkit-input-placeholder,html.theme--documenter-dark .textarea[disabled]::-webkit-input-placeholder,html.theme--documenter-dark .input[disabled]::-webkit-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .select select::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .input::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]:-moz-placeholder,html.theme--documenter-dark .textarea[disabled]:-moz-placeholder,html.theme--documenter-dark .input[disabled]:-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .select select:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .input:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]:-ms-input-placeholder,html.theme--documenter-dark .textarea[disabled]:-ms-input-placeholder,html.theme--documenter-dark .input[disabled]:-ms-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .select select:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .input:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{box-shadow:inset 0 0.0625em 0.125em rgba(10,10,10,0.05);max-width:100%;width:100%}html.theme--documenter-dark .textarea[readonly],html.theme--documenter-dark .input[readonly],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[readonly]{box-shadow:none}html.theme--documenter-dark .is-white.textarea,html.theme--documenter-dark .is-white.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white{border-color:#fff}html.theme--documenter-dark .is-white.textarea:focus,html.theme--documenter-dark .is-white.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white:focus,html.theme--documenter-dark .is-white.is-focused.textarea,html.theme--documenter-dark .is-white.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-white.textarea:active,html.theme--documenter-dark .is-white.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white:active,html.theme--documenter-dark .is-white.is-active.textarea,html.theme--documenter-dark .is-white.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .is-black.textarea,html.theme--documenter-dark .is-black.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black{border-color:#0a0a0a}html.theme--documenter-dark .is-black.textarea:focus,html.theme--documenter-dark .is-black.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black:focus,html.theme--documenter-dark .is-black.is-focused.textarea,html.theme--documenter-dark .is-black.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-black.textarea:active,html.theme--documenter-dark .is-black.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black:active,html.theme--documenter-dark .is-black.is-active.textarea,html.theme--documenter-dark .is-black.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .is-light.textarea,html.theme--documenter-dark .is-light.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light{border-color:#ecf0f1}html.theme--documenter-dark .is-light.textarea:focus,html.theme--documenter-dark .is-light.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light:focus,html.theme--documenter-dark .is-light.is-focused.textarea,html.theme--documenter-dark .is-light.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-light.textarea:active,html.theme--documenter-dark .is-light.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light:active,html.theme--documenter-dark .is-light.is-active.textarea,html.theme--documenter-dark .is-light.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .is-dark.textarea,html.theme--documenter-dark .content kbd.textarea,html.theme--documenter-dark .is-dark.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark,html.theme--documenter-dark .content kbd.input{border-color:#282f2f}html.theme--documenter-dark .is-dark.textarea:focus,html.theme--documenter-dark .content kbd.textarea:focus,html.theme--documenter-dark .is-dark.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark:focus,html.theme--documenter-dark .content kbd.input:focus,html.theme--documenter-dark .is-dark.is-focused.textarea,html.theme--documenter-dark .content kbd.is-focused.textarea,html.theme--documenter-dark .is-dark.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .content kbd.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input.is-focused,html.theme--documenter-dark .is-dark.textarea:active,html.theme--documenter-dark .content kbd.textarea:active,html.theme--documenter-dark .is-dark.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark:active,html.theme--documenter-dark .content kbd.input:active,html.theme--documenter-dark .is-dark.is-active.textarea,html.theme--documenter-dark .content kbd.is-active.textarea,html.theme--documenter-dark .is-dark.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .content kbd.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .is-primary.textarea,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink{border-color:#375a7f}html.theme--documenter-dark .is-primary.textarea:focus,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink:focus,html.theme--documenter-dark .is-primary.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary:focus,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink:focus,html.theme--documenter-dark .is-primary.is-focused.textarea,html.theme--documenter-dark .docstring>section>a.is-focused.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .docstring>section>a.is-focused.input.docs-sourcelink,html.theme--documenter-dark .is-primary.textarea:active,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink:active,html.theme--documenter-dark .is-primary.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary:active,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink:active,html.theme--documenter-dark .is-primary.is-active.textarea,html.theme--documenter-dark .docstring>section>a.is-active.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .docstring>section>a.is-active.input.docs-sourcelink{box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .is-link.textarea,html.theme--documenter-dark .is-link.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link{border-color:#1abc9c}html.theme--documenter-dark .is-link.textarea:focus,html.theme--documenter-dark .is-link.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link:focus,html.theme--documenter-dark .is-link.is-focused.textarea,html.theme--documenter-dark .is-link.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-link.textarea:active,html.theme--documenter-dark .is-link.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link:active,html.theme--documenter-dark .is-link.is-active.textarea,html.theme--documenter-dark .is-link.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .is-info.textarea,html.theme--documenter-dark .is-info.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info{border-color:#024c7d}html.theme--documenter-dark .is-info.textarea:focus,html.theme--documenter-dark .is-info.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info:focus,html.theme--documenter-dark .is-info.is-focused.textarea,html.theme--documenter-dark .is-info.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-info.textarea:active,html.theme--documenter-dark .is-info.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info:active,html.theme--documenter-dark .is-info.is-active.textarea,html.theme--documenter-dark .is-info.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .is-success.textarea,html.theme--documenter-dark .is-success.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success{border-color:#008438}html.theme--documenter-dark .is-success.textarea:focus,html.theme--documenter-dark .is-success.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success:focus,html.theme--documenter-dark .is-success.is-focused.textarea,html.theme--documenter-dark .is-success.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-success.textarea:active,html.theme--documenter-dark .is-success.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success:active,html.theme--documenter-dark .is-success.is-active.textarea,html.theme--documenter-dark .is-success.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .is-warning.textarea,html.theme--documenter-dark .is-warning.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning{border-color:#ad8100}html.theme--documenter-dark .is-warning.textarea:focus,html.theme--documenter-dark .is-warning.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning:focus,html.theme--documenter-dark .is-warning.is-focused.textarea,html.theme--documenter-dark .is-warning.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-warning.textarea:active,html.theme--documenter-dark .is-warning.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning:active,html.theme--documenter-dark .is-warning.is-active.textarea,html.theme--documenter-dark .is-warning.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .is-danger.textarea,html.theme--documenter-dark .is-danger.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger{border-color:#9e1b0d}html.theme--documenter-dark .is-danger.textarea:focus,html.theme--documenter-dark .is-danger.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger:focus,html.theme--documenter-dark .is-danger.is-focused.textarea,html.theme--documenter-dark .is-danger.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-danger.textarea:active,html.theme--documenter-dark .is-danger.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger:active,html.theme--documenter-dark .is-danger.is-active.textarea,html.theme--documenter-dark .is-danger.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .is-small.textarea,html.theme--documenter-dark .is-small.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{border-radius:3px;font-size:.75rem}html.theme--documenter-dark .is-medium.textarea,html.theme--documenter-dark .is-medium.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-medium{font-size:1.25rem}html.theme--documenter-dark .is-large.textarea,html.theme--documenter-dark .is-large.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-large{font-size:1.5rem}html.theme--documenter-dark .is-fullwidth.textarea,html.theme--documenter-dark .is-fullwidth.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-fullwidth{display:block;width:100%}html.theme--documenter-dark .is-inline.textarea,html.theme--documenter-dark .is-inline.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-inline{display:inline;width:auto}html.theme--documenter-dark .input.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{border-radius:9999px;padding-left:calc(calc(0.75em - 1px) + 0.375em);padding-right:calc(calc(0.75em - 1px) + 0.375em)}html.theme--documenter-dark .input.is-static,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-static{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0}html.theme--documenter-dark .textarea{display:block;max-width:100%;min-width:100%;padding:calc(0.75em - 1px);resize:vertical}html.theme--documenter-dark .textarea:not([rows]){max-height:40em;min-height:8em}html.theme--documenter-dark .textarea[rows]{height:initial}html.theme--documenter-dark .textarea.has-fixed-size{resize:none}html.theme--documenter-dark .radio,html.theme--documenter-dark .checkbox{cursor:pointer;display:inline-block;line-height:1.25;position:relative}html.theme--documenter-dark .radio input,html.theme--documenter-dark .checkbox input{cursor:pointer}html.theme--documenter-dark .radio:hover,html.theme--documenter-dark .checkbox:hover{color:#8c9b9d}html.theme--documenter-dark .radio[disabled],html.theme--documenter-dark .checkbox[disabled],fieldset[disabled] html.theme--documenter-dark .radio,fieldset[disabled] html.theme--documenter-dark .checkbox,html.theme--documenter-dark .radio input[disabled],html.theme--documenter-dark .checkbox input[disabled]{color:#fff;cursor:not-allowed}html.theme--documenter-dark .radio+.radio{margin-left:.5em}html.theme--documenter-dark .select{display:inline-block;max-width:100%;position:relative;vertical-align:top}html.theme--documenter-dark .select:not(.is-multiple){height:2.5em}html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after{border-color:#1abc9c;right:1.125em;z-index:4}html.theme--documenter-dark .select.is-rounded select,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.select select{border-radius:9999px;padding-left:1em}html.theme--documenter-dark .select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:none}html.theme--documenter-dark .select select::-ms-expand{display:none}html.theme--documenter-dark .select select[disabled]:hover,fieldset[disabled] html.theme--documenter-dark .select select:hover{border-color:#282f2f}html.theme--documenter-dark .select select:not([multiple]){padding-right:2.5em}html.theme--documenter-dark .select select[multiple]{height:auto;padding:0}html.theme--documenter-dark .select select[multiple] option{padding:0.5em 1em}html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading):hover::after{border-color:#8c9b9d}html.theme--documenter-dark .select.is-white:not(:hover)::after{border-color:#fff}html.theme--documenter-dark .select.is-white select{border-color:#fff}html.theme--documenter-dark .select.is-white select:hover,html.theme--documenter-dark .select.is-white select.is-hovered{border-color:#f2f2f2}html.theme--documenter-dark .select.is-white select:focus,html.theme--documenter-dark .select.is-white select.is-focused,html.theme--documenter-dark .select.is-white select:active,html.theme--documenter-dark .select.is-white select.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .select.is-black:not(:hover)::after{border-color:#0a0a0a}html.theme--documenter-dark .select.is-black select{border-color:#0a0a0a}html.theme--documenter-dark .select.is-black select:hover,html.theme--documenter-dark .select.is-black select.is-hovered{border-color:#000}html.theme--documenter-dark .select.is-black select:focus,html.theme--documenter-dark .select.is-black select.is-focused,html.theme--documenter-dark .select.is-black select:active,html.theme--documenter-dark .select.is-black select.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .select.is-light:not(:hover)::after{border-color:#ecf0f1}html.theme--documenter-dark .select.is-light select{border-color:#ecf0f1}html.theme--documenter-dark .select.is-light select:hover,html.theme--documenter-dark .select.is-light select.is-hovered{border-color:#dde4e6}html.theme--documenter-dark .select.is-light select:focus,html.theme--documenter-dark .select.is-light select.is-focused,html.theme--documenter-dark .select.is-light select:active,html.theme--documenter-dark .select.is-light select.is-active{box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .select.is-dark:not(:hover)::after,html.theme--documenter-dark .content kbd.select:not(:hover)::after{border-color:#282f2f}html.theme--documenter-dark .select.is-dark select,html.theme--documenter-dark .content kbd.select select{border-color:#282f2f}html.theme--documenter-dark .select.is-dark select:hover,html.theme--documenter-dark .content kbd.select select:hover,html.theme--documenter-dark .select.is-dark select.is-hovered,html.theme--documenter-dark .content kbd.select select.is-hovered{border-color:#1d2122}html.theme--documenter-dark .select.is-dark select:focus,html.theme--documenter-dark .content kbd.select select:focus,html.theme--documenter-dark .select.is-dark select.is-focused,html.theme--documenter-dark .content kbd.select select.is-focused,html.theme--documenter-dark .select.is-dark select:active,html.theme--documenter-dark .content kbd.select select:active,html.theme--documenter-dark .select.is-dark select.is-active,html.theme--documenter-dark .content kbd.select select.is-active{box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .select.is-primary:not(:hover)::after,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink:not(:hover)::after{border-color:#375a7f}html.theme--documenter-dark .select.is-primary select,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select{border-color:#375a7f}html.theme--documenter-dark .select.is-primary select:hover,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:hover,html.theme--documenter-dark .select.is-primary select.is-hovered,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-hovered{border-color:#2f4d6d}html.theme--documenter-dark .select.is-primary select:focus,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:focus,html.theme--documenter-dark .select.is-primary select.is-focused,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-focused,html.theme--documenter-dark .select.is-primary select:active,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:active,html.theme--documenter-dark .select.is-primary select.is-active,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-active{box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .select.is-link:not(:hover)::after{border-color:#1abc9c}html.theme--documenter-dark .select.is-link select{border-color:#1abc9c}html.theme--documenter-dark .select.is-link select:hover,html.theme--documenter-dark .select.is-link select.is-hovered{border-color:#17a689}html.theme--documenter-dark .select.is-link select:focus,html.theme--documenter-dark .select.is-link select.is-focused,html.theme--documenter-dark .select.is-link select:active,html.theme--documenter-dark .select.is-link select.is-active{box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .select.is-info:not(:hover)::after{border-color:#024c7d}html.theme--documenter-dark .select.is-info select{border-color:#024c7d}html.theme--documenter-dark .select.is-info select:hover,html.theme--documenter-dark .select.is-info select.is-hovered{border-color:#023d64}html.theme--documenter-dark .select.is-info select:focus,html.theme--documenter-dark .select.is-info select.is-focused,html.theme--documenter-dark .select.is-info select:active,html.theme--documenter-dark .select.is-info select.is-active{box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .select.is-success:not(:hover)::after{border-color:#008438}html.theme--documenter-dark .select.is-success select{border-color:#008438}html.theme--documenter-dark .select.is-success select:hover,html.theme--documenter-dark .select.is-success select.is-hovered{border-color:#006b2d}html.theme--documenter-dark .select.is-success select:focus,html.theme--documenter-dark .select.is-success select.is-focused,html.theme--documenter-dark .select.is-success select:active,html.theme--documenter-dark .select.is-success select.is-active{box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .select.is-warning:not(:hover)::after{border-color:#ad8100}html.theme--documenter-dark .select.is-warning select{border-color:#ad8100}html.theme--documenter-dark .select.is-warning select:hover,html.theme--documenter-dark .select.is-warning select.is-hovered{border-color:#946e00}html.theme--documenter-dark .select.is-warning select:focus,html.theme--documenter-dark .select.is-warning select.is-focused,html.theme--documenter-dark .select.is-warning select:active,html.theme--documenter-dark .select.is-warning select.is-active{box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .select.is-danger:not(:hover)::after{border-color:#9e1b0d}html.theme--documenter-dark .select.is-danger select{border-color:#9e1b0d}html.theme--documenter-dark .select.is-danger select:hover,html.theme--documenter-dark .select.is-danger select.is-hovered{border-color:#86170b}html.theme--documenter-dark .select.is-danger select:focus,html.theme--documenter-dark .select.is-danger select.is-focused,html.theme--documenter-dark .select.is-danger select:active,html.theme--documenter-dark .select.is-danger select.is-active{box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .select.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.select{border-radius:3px;font-size:.75rem}html.theme--documenter-dark .select.is-medium{font-size:1.25rem}html.theme--documenter-dark .select.is-large{font-size:1.5rem}html.theme--documenter-dark .select.is-disabled::after{border-color:#fff !important;opacity:0.5}html.theme--documenter-dark .select.is-fullwidth{width:100%}html.theme--documenter-dark .select.is-fullwidth select{width:100%}html.theme--documenter-dark .select.is-loading::after{margin-top:0;position:absolute;right:.625em;top:0.625em;transform:none}html.theme--documenter-dark .select.is-loading.is-small:after,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}html.theme--documenter-dark .select.is-loading.is-medium:after{font-size:1.25rem}html.theme--documenter-dark .select.is-loading.is-large:after{font-size:1.5rem}html.theme--documenter-dark .file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}html.theme--documenter-dark .file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-white:hover .file-cta,html.theme--documenter-dark .file.is-white.is-hovered .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-white:focus .file-cta,html.theme--documenter-dark .file.is-white.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,255,255,0.25);color:#0a0a0a}html.theme--documenter-dark .file.is-white:active .file-cta,html.theme--documenter-dark .file.is-white.is-active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-black:hover .file-cta,html.theme--documenter-dark .file.is-black.is-hovered .file-cta{background-color:#040404;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-black:focus .file-cta,html.theme--documenter-dark .file.is-black.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(10,10,10,0.25);color:#fff}html.theme--documenter-dark .file.is-black:active .file-cta,html.theme--documenter-dark .file.is-black.is-active .file-cta{background-color:#000;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-light .file-cta{background-color:#ecf0f1;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .file.is-light:hover .file-cta,html.theme--documenter-dark .file.is-light.is-hovered .file-cta{background-color:#e5eaec;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .file.is-light:focus .file-cta,html.theme--documenter-dark .file.is-light.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(236,240,241,0.25);color:rgba(0,0,0,0.7)}html.theme--documenter-dark .file.is-light:active .file-cta,html.theme--documenter-dark .file.is-light.is-active .file-cta{background-color:#dde4e6;border-color:transparent;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .file.is-dark .file-cta,html.theme--documenter-dark .content kbd.file .file-cta{background-color:#282f2f;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-dark:hover .file-cta,html.theme--documenter-dark .content kbd.file:hover .file-cta,html.theme--documenter-dark .file.is-dark.is-hovered .file-cta,html.theme--documenter-dark .content kbd.file.is-hovered .file-cta{background-color:#232829;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-dark:focus .file-cta,html.theme--documenter-dark .content kbd.file:focus .file-cta,html.theme--documenter-dark .file.is-dark.is-focused .file-cta,html.theme--documenter-dark .content kbd.file.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(40,47,47,0.25);color:#fff}html.theme--documenter-dark .file.is-dark:active .file-cta,html.theme--documenter-dark .content kbd.file:active .file-cta,html.theme--documenter-dark .file.is-dark.is-active .file-cta,html.theme--documenter-dark .content kbd.file.is-active .file-cta{background-color:#1d2122;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-primary .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink .file-cta{background-color:#375a7f;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-primary:hover .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:hover .file-cta,html.theme--documenter-dark .file.is-primary.is-hovered .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-hovered.docs-sourcelink .file-cta{background-color:#335476;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-primary:focus .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:focus .file-cta,html.theme--documenter-dark .file.is-primary.is-focused .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-focused.docs-sourcelink .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(55,90,127,0.25);color:#fff}html.theme--documenter-dark .file.is-primary:active .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:active .file-cta,html.theme--documenter-dark .file.is-primary.is-active .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-active.docs-sourcelink .file-cta{background-color:#2f4d6d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link .file-cta{background-color:#1abc9c;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link:hover .file-cta,html.theme--documenter-dark .file.is-link.is-hovered .file-cta{background-color:#18b193;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link:focus .file-cta,html.theme--documenter-dark .file.is-link.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(26,188,156,0.25);color:#fff}html.theme--documenter-dark .file.is-link:active .file-cta,html.theme--documenter-dark .file.is-link.is-active .file-cta{background-color:#17a689;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info .file-cta{background-color:#024c7d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info:hover .file-cta,html.theme--documenter-dark .file.is-info.is-hovered .file-cta{background-color:#024470;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info:focus .file-cta,html.theme--documenter-dark .file.is-info.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(2,76,125,0.25);color:#fff}html.theme--documenter-dark .file.is-info:active .file-cta,html.theme--documenter-dark .file.is-info.is-active .file-cta{background-color:#023d64;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success .file-cta{background-color:#008438;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success:hover .file-cta,html.theme--documenter-dark .file.is-success.is-hovered .file-cta{background-color:#073;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success:focus .file-cta,html.theme--documenter-dark .file.is-success.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(0,132,56,0.25);color:#fff}html.theme--documenter-dark .file.is-success:active .file-cta,html.theme--documenter-dark .file.is-success.is-active .file-cta{background-color:#006b2d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning .file-cta{background-color:#ad8100;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning:hover .file-cta,html.theme--documenter-dark .file.is-warning.is-hovered .file-cta{background-color:#a07700;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning:focus .file-cta,html.theme--documenter-dark .file.is-warning.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(173,129,0,0.25);color:#fff}html.theme--documenter-dark .file.is-warning:active .file-cta,html.theme--documenter-dark .file.is-warning.is-active .file-cta{background-color:#946e00;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger .file-cta{background-color:#9e1b0d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger:hover .file-cta,html.theme--documenter-dark .file.is-danger.is-hovered .file-cta{background-color:#92190c;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger:focus .file-cta,html.theme--documenter-dark .file.is-danger.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(158,27,13,0.25);color:#fff}html.theme--documenter-dark .file.is-danger:active .file-cta,html.theme--documenter-dark .file.is-danger.is-active .file-cta{background-color:#86170b;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.file{font-size:.75rem}html.theme--documenter-dark .file.is-normal{font-size:1rem}html.theme--documenter-dark .file.is-medium{font-size:1.25rem}html.theme--documenter-dark .file.is-medium .file-icon .fa{font-size:21px}html.theme--documenter-dark .file.is-large{font-size:1.5rem}html.theme--documenter-dark .file.is-large .file-icon .fa{font-size:28px}html.theme--documenter-dark .file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .file.has-name.is-empty .file-cta{border-radius:.4em}html.theme--documenter-dark .file.has-name.is-empty .file-name{display:none}html.theme--documenter-dark .file.is-boxed .file-label{flex-direction:column}html.theme--documenter-dark .file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}html.theme--documenter-dark .file.is-boxed .file-name{border-width:0 1px 1px}html.theme--documenter-dark .file.is-boxed .file-icon{height:1.5em;width:1.5em}html.theme--documenter-dark .file.is-boxed .file-icon .fa{font-size:21px}html.theme--documenter-dark .file.is-boxed.is-small .file-icon .fa,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-boxed .file-icon .fa{font-size:14px}html.theme--documenter-dark .file.is-boxed.is-medium .file-icon .fa{font-size:28px}html.theme--documenter-dark .file.is-boxed.is-large .file-icon .fa{font-size:35px}html.theme--documenter-dark .file.is-boxed.has-name .file-cta{border-radius:.4em .4em 0 0}html.theme--documenter-dark .file.is-boxed.has-name .file-name{border-radius:0 0 .4em .4em;border-width:0 1px 1px}html.theme--documenter-dark .file.is-centered{justify-content:center}html.theme--documenter-dark .file.is-fullwidth .file-label{width:100%}html.theme--documenter-dark .file.is-fullwidth .file-name{flex-grow:1;max-width:none}html.theme--documenter-dark .file.is-right{justify-content:flex-end}html.theme--documenter-dark .file.is-right .file-cta{border-radius:0 .4em .4em 0}html.theme--documenter-dark .file.is-right .file-name{border-radius:.4em 0 0 .4em;border-width:1px 0 1px 1px;order:-1}html.theme--documenter-dark .file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}html.theme--documenter-dark .file-label:hover .file-cta{background-color:#232829;color:#f2f2f2}html.theme--documenter-dark .file-label:hover .file-name{border-color:#596668}html.theme--documenter-dark .file-label:active .file-cta{background-color:#1d2122;color:#f2f2f2}html.theme--documenter-dark .file-label:active .file-name{border-color:#535f61}html.theme--documenter-dark .file-input{height:100%;left:0;opacity:0;outline:none;position:absolute;top:0;width:100%}html.theme--documenter-dark .file-cta,html.theme--documenter-dark .file-name{border-color:#5e6d6f;border-radius:.4em;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}html.theme--documenter-dark .file-cta{background-color:#282f2f;color:#fff}html.theme--documenter-dark .file-name{border-color:#5e6d6f;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:inherit;text-overflow:ellipsis}html.theme--documenter-dark .file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:.5em;width:1em}html.theme--documenter-dark .file-icon .fa{font-size:14px}html.theme--documenter-dark .label{color:#f2f2f2;display:block;font-size:1rem;font-weight:700}html.theme--documenter-dark .label:not(:last-child){margin-bottom:0.5em}html.theme--documenter-dark .label.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.label{font-size:.75rem}html.theme--documenter-dark .label.is-medium{font-size:1.25rem}html.theme--documenter-dark .label.is-large{font-size:1.5rem}html.theme--documenter-dark .help{display:block;font-size:.75rem;margin-top:0.25rem}html.theme--documenter-dark .help.is-white{color:#fff}html.theme--documenter-dark .help.is-black{color:#0a0a0a}html.theme--documenter-dark .help.is-light{color:#ecf0f1}html.theme--documenter-dark .help.is-dark,html.theme--documenter-dark .content kbd.help{color:#282f2f}html.theme--documenter-dark .help.is-primary,html.theme--documenter-dark .docstring>section>a.help.docs-sourcelink{color:#375a7f}html.theme--documenter-dark .help.is-link{color:#1abc9c}html.theme--documenter-dark .help.is-info{color:#024c7d}html.theme--documenter-dark .help.is-success{color:#008438}html.theme--documenter-dark .help.is-warning{color:#ad8100}html.theme--documenter-dark .help.is-danger{color:#9e1b0d}html.theme--documenter-dark .field:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .field.has-addons{display:flex;justify-content:flex-start}html.theme--documenter-dark .field.has-addons .control:not(:last-child){margin-right:-1px}html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .button,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .input,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .button,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .input,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .button,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .input,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .button.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-hovered:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select.is-hovered:not([disabled]){z-index:2}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]){z-index:3}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus:hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active:hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]):hover{z-index:4}html.theme--documenter-dark .field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .field.has-addons.has-addons-centered{justify-content:center}html.theme--documenter-dark .field.has-addons.has-addons-right{justify-content:flex-end}html.theme--documenter-dark .field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .field.is-grouped{display:flex;justify-content:flex-start}html.theme--documenter-dark .field.is-grouped>.control{flex-shrink:0}html.theme--documenter-dark .field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:.75rem}html.theme--documenter-dark .field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .field.is-grouped.is-grouped-centered{justify-content:center}html.theme--documenter-dark .field.is-grouped.is-grouped-right{justify-content:flex-end}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline{flex-wrap:wrap}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline>.control:last-child,html.theme--documenter-dark .field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-0.75rem}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field.is-horizontal{display:flex}}html.theme--documenter-dark .field-label .label{font-size:inherit}@media screen and (max-width: 768px){html.theme--documenter-dark .field-label{margin-bottom:0.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}html.theme--documenter-dark .field-label.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.field-label{font-size:.75rem;padding-top:0.375em}html.theme--documenter-dark .field-label.is-normal{padding-top:0.375em}html.theme--documenter-dark .field-label.is-medium{font-size:1.25rem;padding-top:0.375em}html.theme--documenter-dark .field-label.is-large{font-size:1.5rem;padding-top:0.375em}}html.theme--documenter-dark .field-body .field .field{margin-bottom:0}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}html.theme--documenter-dark .field-body .field{margin-bottom:0}html.theme--documenter-dark .field-body>.field{flex-shrink:1}html.theme--documenter-dark .field-body>.field:not(.is-narrow){flex-grow:1}html.theme--documenter-dark .field-body>.field:not(:last-child){margin-right:.75rem}}html.theme--documenter-dark .control{box-sizing:border-box;clear:both;font-size:1rem;position:relative;text-align:inherit}html.theme--documenter-dark .control.has-icons-left .input:focus~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input:focus~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input:focus~.icon,html.theme--documenter-dark .control.has-icons-left .select:focus~.icon,html.theme--documenter-dark .control.has-icons-right .input:focus~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input:focus~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input:focus~.icon,html.theme--documenter-dark .control.has-icons-right .select:focus~.icon{color:#282f2f}html.theme--documenter-dark .control.has-icons-left .input.is-small~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-small~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-small~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-small~.icon{font-size:.75rem}html.theme--documenter-dark .control.has-icons-left .input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}html.theme--documenter-dark .control.has-icons-left .input.is-large~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-large~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-large~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-large~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-large~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-large~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-large~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-large~.icon{font-size:1.5rem}html.theme--documenter-dark .control.has-icons-left .icon,html.theme--documenter-dark .control.has-icons-right .icon{color:#5e6d6f;height:2.5em;pointer-events:none;position:absolute;top:0;width:2.5em;z-index:4}html.theme--documenter-dark .control.has-icons-left .input,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input,html.theme--documenter-dark .control.has-icons-left .select select{padding-left:2.5em}html.theme--documenter-dark .control.has-icons-left .icon.is-left{left:0}html.theme--documenter-dark .control.has-icons-right .input,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input,html.theme--documenter-dark .control.has-icons-right .select select{padding-right:2.5em}html.theme--documenter-dark .control.has-icons-right .icon.is-right{right:0}html.theme--documenter-dark .control.is-loading::after{position:absolute !important;right:.625em;top:0.625em;z-index:4}html.theme--documenter-dark .control.is-loading.is-small:after,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}html.theme--documenter-dark .control.is-loading.is-medium:after{font-size:1.25rem}html.theme--documenter-dark .control.is-loading.is-large:after{font-size:1.5rem}html.theme--documenter-dark .breadcrumb{font-size:1rem;white-space:nowrap}html.theme--documenter-dark .breadcrumb a{align-items:center;color:#1abc9c;display:flex;justify-content:center;padding:0 .75em}html.theme--documenter-dark .breadcrumb a:hover{color:#1dd2af}html.theme--documenter-dark .breadcrumb li{align-items:center;display:flex}html.theme--documenter-dark .breadcrumb li:first-child a{padding-left:0}html.theme--documenter-dark .breadcrumb li.is-active a{color:#f2f2f2;cursor:default;pointer-events:none}html.theme--documenter-dark .breadcrumb li+li::before{color:#8c9b9d;content:"\0002f"}html.theme--documenter-dark .breadcrumb ul,html.theme--documenter-dark .breadcrumb ol{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .breadcrumb .icon:first-child{margin-right:.5em}html.theme--documenter-dark .breadcrumb .icon:last-child{margin-left:.5em}html.theme--documenter-dark .breadcrumb.is-centered ol,html.theme--documenter-dark .breadcrumb.is-centered ul{justify-content:center}html.theme--documenter-dark .breadcrumb.is-right ol,html.theme--documenter-dark .breadcrumb.is-right ul{justify-content:flex-end}html.theme--documenter-dark .breadcrumb.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.breadcrumb{font-size:.75rem}html.theme--documenter-dark .breadcrumb.is-medium{font-size:1.25rem}html.theme--documenter-dark .breadcrumb.is-large{font-size:1.5rem}html.theme--documenter-dark .breadcrumb.has-arrow-separator li+li::before{content:"\02192"}html.theme--documenter-dark .breadcrumb.has-bullet-separator li+li::before{content:"\02022"}html.theme--documenter-dark .breadcrumb.has-dot-separator li+li::before{content:"\000b7"}html.theme--documenter-dark .breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}html.theme--documenter-dark .card{background-color:#fff;border-radius:.25rem;box-shadow:#171717;color:#fff;max-width:100%;position:relative}html.theme--documenter-dark .card-footer:first-child,html.theme--documenter-dark .card-content:first-child,html.theme--documenter-dark .card-header:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}html.theme--documenter-dark .card-footer:last-child,html.theme--documenter-dark .card-content:last-child,html.theme--documenter-dark .card-header:last-child{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}html.theme--documenter-dark .card-header{background-color:rgba(0,0,0,0);align-items:stretch;box-shadow:0 0.125em 0.25em rgba(10,10,10,0.1);display:flex}html.theme--documenter-dark .card-header-title{align-items:center;color:#f2f2f2;display:flex;flex-grow:1;font-weight:700;padding:0.75rem 1rem}html.theme--documenter-dark .card-header-title.is-centered{justify-content:center}html.theme--documenter-dark .card-header-icon{-moz-appearance:none;-webkit-appearance:none;appearance:none;background:none;border:none;color:currentColor;font-family:inherit;font-size:1em;margin:0;padding:0;align-items:center;cursor:pointer;display:flex;justify-content:center;padding:0.75rem 1rem}html.theme--documenter-dark .card-image{display:block;position:relative}html.theme--documenter-dark .card-image:first-child img{border-top-left-radius:.25rem;border-top-right-radius:.25rem}html.theme--documenter-dark .card-image:last-child img{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}html.theme--documenter-dark .card-content{background-color:rgba(0,0,0,0);padding:1.5rem}html.theme--documenter-dark .card-footer{background-color:rgba(0,0,0,0);border-top:1px solid #ededed;align-items:stretch;display:flex}html.theme--documenter-dark .card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}html.theme--documenter-dark .card-footer-item:not(:last-child){border-right:1px solid #ededed}html.theme--documenter-dark .card .media:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .dropdown{display:inline-flex;position:relative;vertical-align:top}html.theme--documenter-dark .dropdown.is-active .dropdown-menu,html.theme--documenter-dark .dropdown.is-hoverable:hover .dropdown-menu{display:block}html.theme--documenter-dark .dropdown.is-right .dropdown-menu{left:auto;right:0}html.theme--documenter-dark .dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}html.theme--documenter-dark .dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}html.theme--documenter-dark .dropdown-content{background-color:#282f2f;border-radius:.4em;box-shadow:#171717;padding-bottom:.5rem;padding-top:.5rem}html.theme--documenter-dark .dropdown-item{color:#fff;display:block;font-size:0.875rem;line-height:1.5;padding:0.375rem 1rem;position:relative}html.theme--documenter-dark a.dropdown-item,html.theme--documenter-dark button.dropdown-item{padding-right:3rem;text-align:inherit;white-space:nowrap;width:100%}html.theme--documenter-dark a.dropdown-item:hover,html.theme--documenter-dark button.dropdown-item:hover{background-color:#282f2f;color:#0a0a0a}html.theme--documenter-dark a.dropdown-item.is-active,html.theme--documenter-dark button.dropdown-item.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .dropdown-divider{background-color:#ededed;border:none;display:block;height:1px;margin:0.5rem 0}html.theme--documenter-dark .level{align-items:center;justify-content:space-between}html.theme--documenter-dark .level code{border-radius:.4em}html.theme--documenter-dark .level img{display:inline-block;vertical-align:top}html.theme--documenter-dark .level.is-mobile{display:flex}html.theme--documenter-dark .level.is-mobile .level-left,html.theme--documenter-dark .level.is-mobile .level-right{display:flex}html.theme--documenter-dark .level.is-mobile .level-left+.level-right{margin-top:0}html.theme--documenter-dark .level.is-mobile .level-item:not(:last-child){margin-bottom:0;margin-right:.75rem}html.theme--documenter-dark .level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level{display:flex}html.theme--documenter-dark .level>.level-item:not(.is-narrow){flex-grow:1}}html.theme--documenter-dark .level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}html.theme--documenter-dark .level-item .title,html.theme--documenter-dark .level-item .subtitle{margin-bottom:0}@media screen and (max-width: 768px){html.theme--documenter-dark .level-item:not(:last-child){margin-bottom:.75rem}}html.theme--documenter-dark .level-left,html.theme--documenter-dark .level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .level-left .level-item.is-flexible,html.theme--documenter-dark .level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-left .level-item:not(:last-child),html.theme--documenter-dark .level-right .level-item:not(:last-child){margin-right:.75rem}}html.theme--documenter-dark .level-left{align-items:center;justify-content:flex-start}@media screen and (max-width: 768px){html.theme--documenter-dark .level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-left{display:flex}}html.theme--documenter-dark .level-right{align-items:center;justify-content:flex-end}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-right{display:flex}}html.theme--documenter-dark .media{align-items:flex-start;display:flex;text-align:inherit}html.theme--documenter-dark .media .content:not(:last-child){margin-bottom:.75rem}html.theme--documenter-dark .media .media{border-top:1px solid rgba(94,109,111,0.5);display:flex;padding-top:.75rem}html.theme--documenter-dark .media .media .content:not(:last-child),html.theme--documenter-dark .media .media .control:not(:last-child){margin-bottom:.5rem}html.theme--documenter-dark .media .media .media{padding-top:.5rem}html.theme--documenter-dark .media .media .media+.media{margin-top:.5rem}html.theme--documenter-dark .media+.media{border-top:1px solid rgba(94,109,111,0.5);margin-top:1rem;padding-top:1rem}html.theme--documenter-dark .media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}html.theme--documenter-dark .media-left,html.theme--documenter-dark .media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .media-left{margin-right:1rem}html.theme--documenter-dark .media-right{margin-left:1rem}html.theme--documenter-dark .media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:inherit}@media screen and (max-width: 768px){html.theme--documenter-dark .media-content{overflow-x:auto}}html.theme--documenter-dark .menu{font-size:1rem}html.theme--documenter-dark .menu.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.menu{font-size:.75rem}html.theme--documenter-dark .menu.is-medium{font-size:1.25rem}html.theme--documenter-dark .menu.is-large{font-size:1.5rem}html.theme--documenter-dark .menu-list{line-height:1.25}html.theme--documenter-dark .menu-list a{border-radius:3px;color:#fff;display:block;padding:0.5em 0.75em}html.theme--documenter-dark .menu-list a:hover{background-color:#282f2f;color:#f2f2f2}html.theme--documenter-dark .menu-list a.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .menu-list li ul{border-left:1px solid #5e6d6f;margin:.75em;padding-left:.75em}html.theme--documenter-dark .menu-label{color:#fff;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}html.theme--documenter-dark .menu-label:not(:first-child){margin-top:1em}html.theme--documenter-dark .menu-label:not(:last-child){margin-bottom:1em}html.theme--documenter-dark .message{background-color:#282f2f;border-radius:.4em;font-size:1rem}html.theme--documenter-dark .message strong{color:currentColor}html.theme--documenter-dark .message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}html.theme--documenter-dark .message.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.message{font-size:.75rem}html.theme--documenter-dark .message.is-medium{font-size:1.25rem}html.theme--documenter-dark .message.is-large{font-size:1.5rem}html.theme--documenter-dark .message.is-white{background-color:#fff}html.theme--documenter-dark .message.is-white .message-header{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .message.is-white .message-body{border-color:#fff}html.theme--documenter-dark .message.is-black{background-color:#fafafa}html.theme--documenter-dark .message.is-black .message-header{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .message.is-black .message-body{border-color:#0a0a0a}html.theme--documenter-dark .message.is-light{background-color:#f9fafb}html.theme--documenter-dark .message.is-light .message-header{background-color:#ecf0f1;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .message.is-light .message-body{border-color:#ecf0f1}html.theme--documenter-dark .message.is-dark,html.theme--documenter-dark .content kbd.message{background-color:#f9fafa}html.theme--documenter-dark .message.is-dark .message-header,html.theme--documenter-dark .content kbd.message .message-header{background-color:#282f2f;color:#fff}html.theme--documenter-dark .message.is-dark .message-body,html.theme--documenter-dark .content kbd.message .message-body{border-color:#282f2f}html.theme--documenter-dark .message.is-primary,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink{background-color:#f1f5f9}html.theme--documenter-dark .message.is-primary .message-header,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink .message-header{background-color:#375a7f;color:#fff}html.theme--documenter-dark .message.is-primary .message-body,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink .message-body{border-color:#375a7f;color:#4d7eb2}html.theme--documenter-dark .message.is-link{background-color:#edfdf9}html.theme--documenter-dark .message.is-link .message-header{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .message.is-link .message-body{border-color:#1abc9c;color:#15987e}html.theme--documenter-dark .message.is-info{background-color:#ebf7ff}html.theme--documenter-dark .message.is-info .message-header{background-color:#024c7d;color:#fff}html.theme--documenter-dark .message.is-info .message-body{border-color:#024c7d;color:#0e9dfb}html.theme--documenter-dark .message.is-success{background-color:#ebfff3}html.theme--documenter-dark .message.is-success .message-header{background-color:#008438;color:#fff}html.theme--documenter-dark .message.is-success .message-body{border-color:#008438;color:#00eb64}html.theme--documenter-dark .message.is-warning{background-color:#fffaeb}html.theme--documenter-dark .message.is-warning .message-header{background-color:#ad8100;color:#fff}html.theme--documenter-dark .message.is-warning .message-body{border-color:#ad8100;color:#d19c00}html.theme--documenter-dark .message.is-danger{background-color:#fdeeec}html.theme--documenter-dark .message.is-danger .message-header{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .message.is-danger .message-body{border-color:#9e1b0d;color:#ec311d}html.theme--documenter-dark .message-header{align-items:center;background-color:#fff;border-radius:.4em .4em 0 0;color:rgba(0,0,0,0.7);display:flex;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.75em 1em;position:relative}html.theme--documenter-dark .message-header .delete{flex-grow:0;flex-shrink:0;margin-left:.75em}html.theme--documenter-dark .message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}html.theme--documenter-dark .message-body{border-color:#5e6d6f;border-radius:.4em;border-style:solid;border-width:0 0 0 4px;color:#fff;padding:1.25em 1.5em}html.theme--documenter-dark .message-body code,html.theme--documenter-dark .message-body pre{background-color:#fff}html.theme--documenter-dark .message-body pre code{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .modal{align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:40}html.theme--documenter-dark .modal.is-active{display:flex}html.theme--documenter-dark .modal-background{background-color:rgba(10,10,10,0.86)}html.theme--documenter-dark .modal-content,html.theme--documenter-dark .modal-card{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width: 769px){html.theme--documenter-dark .modal-content,html.theme--documenter-dark .modal-card{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}html.theme--documenter-dark .modal-close{background:none;height:40px;position:fixed;right:20px;top:20px;width:40px}html.theme--documenter-dark .modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}html.theme--documenter-dark .modal-card-head,html.theme--documenter-dark .modal-card-foot{align-items:center;background-color:#282f2f;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}html.theme--documenter-dark .modal-card-head{border-bottom:1px solid #5e6d6f;border-top-left-radius:8px;border-top-right-radius:8px}html.theme--documenter-dark .modal-card-title{color:#f2f2f2;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}html.theme--documenter-dark .modal-card-foot{border-bottom-left-radius:8px;border-bottom-right-radius:8px;border-top:1px solid #5e6d6f}html.theme--documenter-dark .modal-card-foot .button:not(:last-child){margin-right:.5em}html.theme--documenter-dark .modal-card-body{-webkit-overflow-scrolling:touch;background-color:#fff;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}html.theme--documenter-dark .navbar{background-color:#375a7f;min-height:4rem;position:relative;z-index:30}html.theme--documenter-dark .navbar.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link{color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-burger{color:#0a0a0a}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-white .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link{color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link::after{border-color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}html.theme--documenter-dark .navbar.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-black .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}html.theme--documenter-dark .navbar.is-light{background-color:#ecf0f1;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .navbar.is-light .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link{color:rgba(0,0,0,0.7)}html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link.is-active{background-color:#dde4e6;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,0.7)}html.theme--documenter-dark .navbar.is-light .navbar-burger{color:rgba(0,0,0,0.7)}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-light .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link{color:rgba(0,0,0,0.7)}html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link.is-active{background-color:#dde4e6;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link::after{border-color:rgba(0,0,0,0.7)}html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link{background-color:#dde4e6;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#ecf0f1;color:rgba(0,0,0,0.7)}}html.theme--documenter-dark .navbar.is-dark,html.theme--documenter-dark .content kbd.navbar{background-color:#282f2f;color:#fff}html.theme--documenter-dark .navbar.is-dark .navbar-brand>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link.is-active{background-color:#1d2122;color:#fff}html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-dark .navbar-burger,html.theme--documenter-dark .content kbd.navbar .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-dark .navbar-start>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-end>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link.is-active{background-color:#1d2122;color:#fff}html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1d2122;color:#fff}html.theme--documenter-dark .navbar.is-dark .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-dropdown a.navbar-item.is-active{background-color:#282f2f;color:#fff}}html.theme--documenter-dark .navbar.is-primary,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-burger,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-primary .navbar-start>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-end>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#375a7f;color:#fff}}html.theme--documenter-dark .navbar.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-link .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#1abc9c;color:#fff}}html.theme--documenter-dark .navbar.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-info .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#024c7d;color:#fff}}html.theme--documenter-dark .navbar.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-success .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#008438;color:#fff}}html.theme--documenter-dark .navbar.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-warning .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#ad8100;color:#fff}}html.theme--documenter-dark .navbar.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-danger .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#9e1b0d;color:#fff}}html.theme--documenter-dark .navbar>.container{align-items:stretch;display:flex;min-height:4rem;width:100%}html.theme--documenter-dark .navbar.has-shadow{box-shadow:0 2px 0 0 #282f2f}html.theme--documenter-dark .navbar.is-fixed-bottom,html.theme--documenter-dark .navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #282f2f}html.theme--documenter-dark .navbar.is-fixed-top{top:0}html.theme--documenter-dark html.has-navbar-fixed-top,html.theme--documenter-dark body.has-navbar-fixed-top{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom,html.theme--documenter-dark body.has-navbar-fixed-bottom{padding-bottom:4rem}html.theme--documenter-dark .navbar-brand,html.theme--documenter-dark .navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:4rem}html.theme--documenter-dark .navbar-brand a.navbar-item:focus,html.theme--documenter-dark .navbar-brand a.navbar-item:hover{background-color:transparent}html.theme--documenter-dark .navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}html.theme--documenter-dark .navbar-burger{color:#fff;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:none;border:none;cursor:pointer;display:block;height:4rem;position:relative;width:4rem;margin-left:auto}html.theme--documenter-dark .navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;transform-origin:center;transition-duration:86ms;transition-property:background-color, opacity, transform;transition-timing-function:ease-out;width:16px}html.theme--documenter-dark .navbar-burger span:nth-child(1){top:calc(50% - 6px)}html.theme--documenter-dark .navbar-burger span:nth-child(2){top:calc(50% - 1px)}html.theme--documenter-dark .navbar-burger span:nth-child(3){top:calc(50% + 4px)}html.theme--documenter-dark .navbar-burger:hover{background-color:rgba(0,0,0,0.05)}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(2){opacity:0}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}html.theme--documenter-dark .navbar-menu{display:none}html.theme--documenter-dark .navbar-item,html.theme--documenter-dark .navbar-link{color:#fff;display:block;line-height:1.5;padding:0.5rem 0.75rem;position:relative}html.theme--documenter-dark .navbar-item .icon:only-child,html.theme--documenter-dark .navbar-link .icon:only-child{margin-left:-0.25rem;margin-right:-0.25rem}html.theme--documenter-dark a.navbar-item,html.theme--documenter-dark .navbar-link{cursor:pointer}html.theme--documenter-dark a.navbar-item:focus,html.theme--documenter-dark a.navbar-item:focus-within,html.theme--documenter-dark a.navbar-item:hover,html.theme--documenter-dark a.navbar-item.is-active,html.theme--documenter-dark .navbar-link:focus,html.theme--documenter-dark .navbar-link:focus-within,html.theme--documenter-dark .navbar-link:hover,html.theme--documenter-dark .navbar-link.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}html.theme--documenter-dark .navbar-item{flex-grow:0;flex-shrink:0}html.theme--documenter-dark .navbar-item img{max-height:1.75rem}html.theme--documenter-dark .navbar-item.has-dropdown{padding:0}html.theme--documenter-dark .navbar-item.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .navbar-item.is-tab{border-bottom:1px solid transparent;min-height:4rem;padding-bottom:calc(0.5rem - 1px)}html.theme--documenter-dark .navbar-item.is-tab:focus,html.theme--documenter-dark .navbar-item.is-tab:hover{background-color:rgba(0,0,0,0);border-bottom-color:#1abc9c}html.theme--documenter-dark .navbar-item.is-tab.is-active{background-color:rgba(0,0,0,0);border-bottom-color:#1abc9c;border-bottom-style:solid;border-bottom-width:3px;color:#1abc9c;padding-bottom:calc(0.5rem - 3px)}html.theme--documenter-dark .navbar-content{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .navbar-link:not(.is-arrowless){padding-right:2.5em}html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after{border-color:#fff;margin-top:-0.375em;right:1.125em}html.theme--documenter-dark .navbar-dropdown{font-size:0.875rem;padding-bottom:0.5rem;padding-top:0.5rem}html.theme--documenter-dark .navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}html.theme--documenter-dark .navbar-divider{background-color:rgba(0,0,0,0.2);border:none;display:none;height:2px;margin:0.5rem 0}@media screen and (max-width: 1055px){html.theme--documenter-dark .navbar>.container{display:block}html.theme--documenter-dark .navbar-brand .navbar-item,html.theme--documenter-dark .navbar-tabs .navbar-item{align-items:center;display:flex}html.theme--documenter-dark .navbar-link::after{display:none}html.theme--documenter-dark .navbar-menu{background-color:#375a7f;box-shadow:0 8px 16px rgba(10,10,10,0.1);padding:0.5rem 0}html.theme--documenter-dark .navbar-menu.is-active{display:block}html.theme--documenter-dark .navbar.is-fixed-bottom-touch,html.theme--documenter-dark .navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom-touch{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}html.theme--documenter-dark .navbar.is-fixed-top-touch{top:0}html.theme--documenter-dark .navbar.is-fixed-top .navbar-menu,html.theme--documenter-dark .navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 4rem);overflow:auto}html.theme--documenter-dark html.has-navbar-fixed-top-touch,html.theme--documenter-dark body.has-navbar-fixed-top-touch{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom-touch,html.theme--documenter-dark body.has-navbar-fixed-bottom-touch{padding-bottom:4rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar,html.theme--documenter-dark .navbar-menu,html.theme--documenter-dark .navbar-start,html.theme--documenter-dark .navbar-end{align-items:stretch;display:flex}html.theme--documenter-dark .navbar{min-height:4rem}html.theme--documenter-dark .navbar.is-spaced{padding:1rem 2rem}html.theme--documenter-dark .navbar.is-spaced .navbar-start,html.theme--documenter-dark .navbar.is-spaced .navbar-end{align-items:center}html.theme--documenter-dark .navbar.is-spaced a.navbar-item,html.theme--documenter-dark .navbar.is-spaced .navbar-link{border-radius:.4em}html.theme--documenter-dark .navbar.is-transparent a.navbar-item:focus,html.theme--documenter-dark .navbar.is-transparent a.navbar-item:hover,html.theme--documenter-dark .navbar.is-transparent a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-transparent .navbar-link:focus,html.theme--documenter-dark .navbar.is-transparent .navbar-link:hover,html.theme--documenter-dark .navbar.is-transparent .navbar-link.is-active{background-color:transparent !important}html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent !important}html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:focus,html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:rgba(0,0,0,0);color:#dbdee0}html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}html.theme--documenter-dark .navbar-burger{display:none}html.theme--documenter-dark .navbar-item,html.theme--documenter-dark .navbar-link{align-items:center;display:flex}html.theme--documenter-dark .navbar-item.has-dropdown{align-items:stretch}html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-link::after{transform:rotate(135deg) translate(0.25em, -0.25em)}html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-dropdown{border-bottom:1px solid rgba(0,0,0,0.2);border-radius:8px 8px 0 0;border-top:none;bottom:100%;box-shadow:0 -8px 8px rgba(10,10,10,0.1);top:auto}html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed{opacity:1;pointer-events:auto;transform:translateY(0)}html.theme--documenter-dark .navbar-menu{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .navbar-start{justify-content:flex-start;margin-right:auto}html.theme--documenter-dark .navbar-end{justify-content:flex-end;margin-left:auto}html.theme--documenter-dark .navbar-dropdown{background-color:#375a7f;border-bottom-left-radius:8px;border-bottom-right-radius:8px;border-top:1px solid rgba(0,0,0,0.2);box-shadow:0 8px 8px rgba(10,10,10,0.1);display:none;font-size:0.875rem;left:0;min-width:100%;position:absolute;top:100%;z-index:20}html.theme--documenter-dark .navbar-dropdown .navbar-item{padding:0.375rem 1rem;white-space:nowrap}html.theme--documenter-dark .navbar-dropdown a.navbar-item{padding-right:3rem}html.theme--documenter-dark .navbar-dropdown a.navbar-item:focus,html.theme--documenter-dark .navbar-dropdown a.navbar-item:hover{background-color:rgba(0,0,0,0);color:#dbdee0}html.theme--documenter-dark .navbar-dropdown a.navbar-item.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}.navbar.is-spaced html.theme--documenter-dark .navbar-dropdown,html.theme--documenter-dark .navbar-dropdown.is-boxed{border-radius:8px;border-top:none;box-shadow:0 8px 8px rgba(10,10,10,0.1), 0 0 0 1px rgba(10,10,10,0.1);display:block;opacity:0;pointer-events:none;top:calc(100% + (-4px));transform:translateY(-5px);transition-duration:86ms;transition-property:opacity, transform}html.theme--documenter-dark .navbar-dropdown.is-right{left:auto;right:0}html.theme--documenter-dark .navbar-divider{display:block}html.theme--documenter-dark .navbar>.container .navbar-brand,html.theme--documenter-dark .container>.navbar .navbar-brand{margin-left:-.75rem}html.theme--documenter-dark .navbar>.container .navbar-menu,html.theme--documenter-dark .container>.navbar .navbar-menu{margin-right:-.75rem}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop,html.theme--documenter-dark .navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}html.theme--documenter-dark .navbar.is-fixed-top-desktop{top:0}html.theme--documenter-dark html.has-navbar-fixed-top-desktop,html.theme--documenter-dark body.has-navbar-fixed-top-desktop{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom-desktop,html.theme--documenter-dark body.has-navbar-fixed-bottom-desktop{padding-bottom:4rem}html.theme--documenter-dark html.has-spaced-navbar-fixed-top,html.theme--documenter-dark body.has-spaced-navbar-fixed-top{padding-top:6rem}html.theme--documenter-dark html.has-spaced-navbar-fixed-bottom,html.theme--documenter-dark body.has-spaced-navbar-fixed-bottom{padding-bottom:6rem}html.theme--documenter-dark a.navbar-item.is-active,html.theme--documenter-dark .navbar-link.is-active{color:#1abc9c}html.theme--documenter-dark a.navbar-item.is-active:not(:focus):not(:hover),html.theme--documenter-dark .navbar-link.is-active:not(:focus):not(:hover){background-color:rgba(0,0,0,0)}html.theme--documenter-dark .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar-item.has-dropdown.is-active .navbar-link{background-color:rgba(0,0,0,0)}}html.theme--documenter-dark .hero.is-fullheight-with-navbar{min-height:calc(100vh - 4rem)}html.theme--documenter-dark .pagination{font-size:1rem;margin:-.25rem}html.theme--documenter-dark .pagination.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination{font-size:.75rem}html.theme--documenter-dark .pagination.is-medium{font-size:1.25rem}html.theme--documenter-dark .pagination.is-large{font-size:1.5rem}html.theme--documenter-dark .pagination.is-rounded .pagination-previous,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-previous,html.theme--documenter-dark .pagination.is-rounded .pagination-next,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-next{padding-left:1em;padding-right:1em;border-radius:9999px}html.theme--documenter-dark .pagination.is-rounded .pagination-link,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-link{border-radius:9999px}html.theme--documenter-dark .pagination,html.theme--documenter-dark .pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis{font-size:1em;justify-content:center;margin:.25rem;padding-left:.5em;padding-right:.5em;text-align:center}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link{border-color:#5e6d6f;color:#1abc9c;min-width:2.5em}html.theme--documenter-dark .pagination-previous:hover,html.theme--documenter-dark .pagination-next:hover,html.theme--documenter-dark .pagination-link:hover{border-color:#8c9b9d;color:#1dd2af}html.theme--documenter-dark .pagination-previous:focus,html.theme--documenter-dark .pagination-next:focus,html.theme--documenter-dark .pagination-link:focus{border-color:#8c9b9d}html.theme--documenter-dark .pagination-previous:active,html.theme--documenter-dark .pagination-next:active,html.theme--documenter-dark .pagination-link:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2)}html.theme--documenter-dark .pagination-previous[disabled],html.theme--documenter-dark .pagination-previous.is-disabled,html.theme--documenter-dark .pagination-next[disabled],html.theme--documenter-dark .pagination-next.is-disabled,html.theme--documenter-dark .pagination-link[disabled],html.theme--documenter-dark .pagination-link.is-disabled{background-color:#5e6d6f;border-color:#5e6d6f;box-shadow:none;color:#fff;opacity:0.5}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next{padding-left:.75em;padding-right:.75em;white-space:nowrap}html.theme--documenter-dark .pagination-link.is-current{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .pagination-ellipsis{color:#8c9b9d;pointer-events:none}html.theme--documenter-dark .pagination-list{flex-wrap:wrap}html.theme--documenter-dark .pagination-list li{list-style:none}@media screen and (max-width: 768px){html.theme--documenter-dark .pagination{flex-wrap:wrap}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis{margin-bottom:0;margin-top:0}html.theme--documenter-dark .pagination-previous{order:2}html.theme--documenter-dark .pagination-next{order:3}html.theme--documenter-dark .pagination{justify-content:space-between;margin-bottom:0;margin-top:0}html.theme--documenter-dark .pagination.is-centered .pagination-previous{order:1}html.theme--documenter-dark .pagination.is-centered .pagination-list{justify-content:center;order:2}html.theme--documenter-dark .pagination.is-centered .pagination-next{order:3}html.theme--documenter-dark .pagination.is-right .pagination-previous{order:1}html.theme--documenter-dark .pagination.is-right .pagination-next{order:2}html.theme--documenter-dark .pagination.is-right .pagination-list{justify-content:flex-end;order:3}}html.theme--documenter-dark .panel{border-radius:8px;box-shadow:#171717;font-size:1rem}html.theme--documenter-dark .panel:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .panel.is-white .panel-heading{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .panel.is-white .panel-tabs a.is-active{border-bottom-color:#fff}html.theme--documenter-dark .panel.is-white .panel-block.is-active .panel-icon{color:#fff}html.theme--documenter-dark .panel.is-black .panel-heading{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .panel.is-black .panel-tabs a.is-active{border-bottom-color:#0a0a0a}html.theme--documenter-dark .panel.is-black .panel-block.is-active .panel-icon{color:#0a0a0a}html.theme--documenter-dark .panel.is-light .panel-heading{background-color:#ecf0f1;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .panel.is-light .panel-tabs a.is-active{border-bottom-color:#ecf0f1}html.theme--documenter-dark .panel.is-light .panel-block.is-active .panel-icon{color:#ecf0f1}html.theme--documenter-dark .panel.is-dark .panel-heading,html.theme--documenter-dark .content kbd.panel .panel-heading{background-color:#282f2f;color:#fff}html.theme--documenter-dark .panel.is-dark .panel-tabs a.is-active,html.theme--documenter-dark .content kbd.panel .panel-tabs a.is-active{border-bottom-color:#282f2f}html.theme--documenter-dark .panel.is-dark .panel-block.is-active .panel-icon,html.theme--documenter-dark .content kbd.panel .panel-block.is-active .panel-icon{color:#282f2f}html.theme--documenter-dark .panel.is-primary .panel-heading,html.theme--documenter-dark .docstring>section>a.panel.docs-sourcelink .panel-heading{background-color:#375a7f;color:#fff}html.theme--documenter-dark .panel.is-primary .panel-tabs a.is-active,html.theme--documenter-dark .docstring>section>a.panel.docs-sourcelink .panel-tabs a.is-active{border-bottom-color:#375a7f}html.theme--documenter-dark .panel.is-primary .panel-block.is-active .panel-icon,html.theme--documenter-dark .docstring>section>a.panel.docs-sourcelink .panel-block.is-active .panel-icon{color:#375a7f}html.theme--documenter-dark .panel.is-link .panel-heading{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .panel.is-link .panel-tabs a.is-active{border-bottom-color:#1abc9c}html.theme--documenter-dark .panel.is-link .panel-block.is-active .panel-icon{color:#1abc9c}html.theme--documenter-dark .panel.is-info .panel-heading{background-color:#024c7d;color:#fff}html.theme--documenter-dark .panel.is-info .panel-tabs a.is-active{border-bottom-color:#024c7d}html.theme--documenter-dark .panel.is-info .panel-block.is-active .panel-icon{color:#024c7d}html.theme--documenter-dark .panel.is-success .panel-heading{background-color:#008438;color:#fff}html.theme--documenter-dark .panel.is-success .panel-tabs a.is-active{border-bottom-color:#008438}html.theme--documenter-dark .panel.is-success .panel-block.is-active .panel-icon{color:#008438}html.theme--documenter-dark .panel.is-warning .panel-heading{background-color:#ad8100;color:#fff}html.theme--documenter-dark .panel.is-warning .panel-tabs a.is-active{border-bottom-color:#ad8100}html.theme--documenter-dark .panel.is-warning .panel-block.is-active .panel-icon{color:#ad8100}html.theme--documenter-dark .panel.is-danger .panel-heading{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .panel.is-danger .panel-tabs a.is-active{border-bottom-color:#9e1b0d}html.theme--documenter-dark .panel.is-danger .panel-block.is-active .panel-icon{color:#9e1b0d}html.theme--documenter-dark .panel-tabs:not(:last-child),html.theme--documenter-dark .panel-block:not(:last-child){border-bottom:1px solid #ededed}html.theme--documenter-dark .panel-heading{background-color:#343c3d;border-radius:8px 8px 0 0;color:#f2f2f2;font-size:1.25em;font-weight:700;line-height:1.25;padding:0.75em 1em}html.theme--documenter-dark .panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}html.theme--documenter-dark .panel-tabs a{border-bottom:1px solid #5e6d6f;margin-bottom:-1px;padding:0.5em}html.theme--documenter-dark .panel-tabs a.is-active{border-bottom-color:#343c3d;color:#17a689}html.theme--documenter-dark .panel-list a{color:#fff}html.theme--documenter-dark .panel-list a:hover{color:#1abc9c}html.theme--documenter-dark .panel-block{align-items:center;color:#f2f2f2;display:flex;justify-content:flex-start;padding:0.5em 0.75em}html.theme--documenter-dark .panel-block input[type="checkbox"]{margin-right:.75em}html.theme--documenter-dark .panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}html.theme--documenter-dark .panel-block.is-wrapped{flex-wrap:wrap}html.theme--documenter-dark .panel-block.is-active{border-left-color:#1abc9c;color:#17a689}html.theme--documenter-dark .panel-block.is-active .panel-icon{color:#1abc9c}html.theme--documenter-dark .panel-block:last-child{border-bottom-left-radius:8px;border-bottom-right-radius:8px}html.theme--documenter-dark a.panel-block,html.theme--documenter-dark label.panel-block{cursor:pointer}html.theme--documenter-dark a.panel-block:hover,html.theme--documenter-dark label.panel-block:hover{background-color:#282f2f}html.theme--documenter-dark .panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#fff;margin-right:.75em}html.theme--documenter-dark .panel-icon .fa{font-size:inherit;line-height:inherit}html.theme--documenter-dark .tabs{-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:1rem;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}html.theme--documenter-dark .tabs a{align-items:center;border-bottom-color:#5e6d6f;border-bottom-style:solid;border-bottom-width:1px;color:#fff;display:flex;justify-content:center;margin-bottom:-1px;padding:0.5em 1em;vertical-align:top}html.theme--documenter-dark .tabs a:hover{border-bottom-color:#f2f2f2;color:#f2f2f2}html.theme--documenter-dark .tabs li{display:block}html.theme--documenter-dark .tabs li.is-active a{border-bottom-color:#1abc9c;color:#1abc9c}html.theme--documenter-dark .tabs ul{align-items:center;border-bottom-color:#5e6d6f;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}html.theme--documenter-dark .tabs ul.is-left{padding-right:0.75em}html.theme--documenter-dark .tabs ul.is-center{flex:none;justify-content:center;padding-left:0.75em;padding-right:0.75em}html.theme--documenter-dark .tabs ul.is-right{justify-content:flex-end;padding-left:0.75em}html.theme--documenter-dark .tabs .icon:first-child{margin-right:.5em}html.theme--documenter-dark .tabs .icon:last-child{margin-left:.5em}html.theme--documenter-dark .tabs.is-centered ul{justify-content:center}html.theme--documenter-dark .tabs.is-right ul{justify-content:flex-end}html.theme--documenter-dark .tabs.is-boxed a{border:1px solid transparent;border-radius:.4em .4em 0 0}html.theme--documenter-dark .tabs.is-boxed a:hover{background-color:#282f2f;border-bottom-color:#5e6d6f}html.theme--documenter-dark .tabs.is-boxed li.is-active a{background-color:#fff;border-color:#5e6d6f;border-bottom-color:rgba(0,0,0,0) !important}html.theme--documenter-dark .tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .tabs.is-toggle a{border-color:#5e6d6f;border-style:solid;border-width:1px;margin-bottom:0;position:relative}html.theme--documenter-dark .tabs.is-toggle a:hover{background-color:#282f2f;border-color:#8c9b9d;z-index:2}html.theme--documenter-dark .tabs.is-toggle li+li{margin-left:-1px}html.theme--documenter-dark .tabs.is-toggle li:first-child a{border-top-left-radius:.4em;border-bottom-left-radius:.4em}html.theme--documenter-dark .tabs.is-toggle li:last-child a{border-top-right-radius:.4em;border-bottom-right-radius:.4em}html.theme--documenter-dark .tabs.is-toggle li.is-active a{background-color:#1abc9c;border-color:#1abc9c;color:#fff;z-index:1}html.theme--documenter-dark .tabs.is-toggle ul{border-bottom:none}html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:first-child a{border-bottom-left-radius:9999px;border-top-left-radius:9999px;padding-left:1.25em}html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:9999px;border-top-right-radius:9999px;padding-right:1.25em}html.theme--documenter-dark .tabs.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.tabs{font-size:.75rem}html.theme--documenter-dark .tabs.is-medium{font-size:1.25rem}html.theme--documenter-dark .tabs.is-large{font-size:1.5rem}html.theme--documenter-dark .column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>html.theme--documenter-dark .column.is-narrow{flex:none;width:unset}.columns.is-mobile>html.theme--documenter-dark .column.is-full{flex:none;width:100%}.columns.is-mobile>html.theme--documenter-dark .column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>html.theme--documenter-dark .column.is-half{flex:none;width:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>html.theme--documenter-dark .column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>html.theme--documenter-dark .column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>html.theme--documenter-dark .column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-half{margin-left:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>html.theme--documenter-dark .column.is-0{flex:none;width:0%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-0{margin-left:0%}.columns.is-mobile>html.theme--documenter-dark .column.is-1{flex:none;width:8.33333337%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-1{margin-left:8.33333337%}.columns.is-mobile>html.theme--documenter-dark .column.is-2{flex:none;width:16.66666674%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-2{margin-left:16.66666674%}.columns.is-mobile>html.theme--documenter-dark .column.is-3{flex:none;width:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-3{margin-left:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-4{flex:none;width:33.33333337%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-4{margin-left:33.33333337%}.columns.is-mobile>html.theme--documenter-dark .column.is-5{flex:none;width:41.66666674%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-5{margin-left:41.66666674%}.columns.is-mobile>html.theme--documenter-dark .column.is-6{flex:none;width:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-6{margin-left:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-7{flex:none;width:58.33333337%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-7{margin-left:58.33333337%}.columns.is-mobile>html.theme--documenter-dark .column.is-8{flex:none;width:66.66666674%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-8{margin-left:66.66666674%}.columns.is-mobile>html.theme--documenter-dark .column.is-9{flex:none;width:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-9{margin-left:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-10{flex:none;width:83.33333337%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-10{margin-left:83.33333337%}.columns.is-mobile>html.theme--documenter-dark .column.is-11{flex:none;width:91.66666674%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-11{margin-left:91.66666674%}.columns.is-mobile>html.theme--documenter-dark .column.is-12{flex:none;width:100%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-12{margin-left:100%}@media screen and (max-width: 768px){html.theme--documenter-dark .column.is-narrow-mobile{flex:none;width:unset}html.theme--documenter-dark .column.is-full-mobile{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-mobile{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-mobile{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-mobile{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-mobile{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-mobile{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-mobile{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-mobile{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-mobile{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-mobile{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-mobile{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-mobile{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-mobile{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-mobile{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-mobile{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-mobile{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-mobile{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-mobile{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-mobile{margin-left:80%}html.theme--documenter-dark .column.is-0-mobile{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-mobile{margin-left:0%}html.theme--documenter-dark .column.is-1-mobile{flex:none;width:8.33333337%}html.theme--documenter-dark .column.is-offset-1-mobile{margin-left:8.33333337%}html.theme--documenter-dark .column.is-2-mobile{flex:none;width:16.66666674%}html.theme--documenter-dark .column.is-offset-2-mobile{margin-left:16.66666674%}html.theme--documenter-dark .column.is-3-mobile{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-mobile{margin-left:25%}html.theme--documenter-dark .column.is-4-mobile{flex:none;width:33.33333337%}html.theme--documenter-dark .column.is-offset-4-mobile{margin-left:33.33333337%}html.theme--documenter-dark .column.is-5-mobile{flex:none;width:41.66666674%}html.theme--documenter-dark .column.is-offset-5-mobile{margin-left:41.66666674%}html.theme--documenter-dark .column.is-6-mobile{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-mobile{margin-left:50%}html.theme--documenter-dark .column.is-7-mobile{flex:none;width:58.33333337%}html.theme--documenter-dark .column.is-offset-7-mobile{margin-left:58.33333337%}html.theme--documenter-dark .column.is-8-mobile{flex:none;width:66.66666674%}html.theme--documenter-dark .column.is-offset-8-mobile{margin-left:66.66666674%}html.theme--documenter-dark .column.is-9-mobile{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-mobile{margin-left:75%}html.theme--documenter-dark .column.is-10-mobile{flex:none;width:83.33333337%}html.theme--documenter-dark .column.is-offset-10-mobile{margin-left:83.33333337%}html.theme--documenter-dark .column.is-11-mobile{flex:none;width:91.66666674%}html.theme--documenter-dark .column.is-offset-11-mobile{margin-left:91.66666674%}html.theme--documenter-dark .column.is-12-mobile{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .column.is-narrow,html.theme--documenter-dark .column.is-narrow-tablet{flex:none;width:unset}html.theme--documenter-dark .column.is-full,html.theme--documenter-dark .column.is-full-tablet{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters,html.theme--documenter-dark .column.is-three-quarters-tablet{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds,html.theme--documenter-dark .column.is-two-thirds-tablet{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half,html.theme--documenter-dark .column.is-half-tablet{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third,html.theme--documenter-dark .column.is-one-third-tablet{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter,html.theme--documenter-dark .column.is-one-quarter-tablet{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth,html.theme--documenter-dark .column.is-one-fifth-tablet{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths,html.theme--documenter-dark .column.is-two-fifths-tablet{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths,html.theme--documenter-dark .column.is-three-fifths-tablet{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths,html.theme--documenter-dark .column.is-four-fifths-tablet{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters,html.theme--documenter-dark .column.is-offset-three-quarters-tablet{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds,html.theme--documenter-dark .column.is-offset-two-thirds-tablet{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half,html.theme--documenter-dark .column.is-offset-half-tablet{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third,html.theme--documenter-dark .column.is-offset-one-third-tablet{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter,html.theme--documenter-dark .column.is-offset-one-quarter-tablet{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth,html.theme--documenter-dark .column.is-offset-one-fifth-tablet{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths,html.theme--documenter-dark .column.is-offset-two-fifths-tablet{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths,html.theme--documenter-dark .column.is-offset-three-fifths-tablet{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths,html.theme--documenter-dark .column.is-offset-four-fifths-tablet{margin-left:80%}html.theme--documenter-dark .column.is-0,html.theme--documenter-dark .column.is-0-tablet{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0,html.theme--documenter-dark .column.is-offset-0-tablet{margin-left:0%}html.theme--documenter-dark .column.is-1,html.theme--documenter-dark .column.is-1-tablet{flex:none;width:8.33333337%}html.theme--documenter-dark .column.is-offset-1,html.theme--documenter-dark .column.is-offset-1-tablet{margin-left:8.33333337%}html.theme--documenter-dark .column.is-2,html.theme--documenter-dark .column.is-2-tablet{flex:none;width:16.66666674%}html.theme--documenter-dark .column.is-offset-2,html.theme--documenter-dark .column.is-offset-2-tablet{margin-left:16.66666674%}html.theme--documenter-dark .column.is-3,html.theme--documenter-dark .column.is-3-tablet{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3,html.theme--documenter-dark .column.is-offset-3-tablet{margin-left:25%}html.theme--documenter-dark .column.is-4,html.theme--documenter-dark .column.is-4-tablet{flex:none;width:33.33333337%}html.theme--documenter-dark .column.is-offset-4,html.theme--documenter-dark .column.is-offset-4-tablet{margin-left:33.33333337%}html.theme--documenter-dark .column.is-5,html.theme--documenter-dark .column.is-5-tablet{flex:none;width:41.66666674%}html.theme--documenter-dark .column.is-offset-5,html.theme--documenter-dark .column.is-offset-5-tablet{margin-left:41.66666674%}html.theme--documenter-dark .column.is-6,html.theme--documenter-dark .column.is-6-tablet{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6,html.theme--documenter-dark .column.is-offset-6-tablet{margin-left:50%}html.theme--documenter-dark .column.is-7,html.theme--documenter-dark .column.is-7-tablet{flex:none;width:58.33333337%}html.theme--documenter-dark .column.is-offset-7,html.theme--documenter-dark .column.is-offset-7-tablet{margin-left:58.33333337%}html.theme--documenter-dark .column.is-8,html.theme--documenter-dark .column.is-8-tablet{flex:none;width:66.66666674%}html.theme--documenter-dark .column.is-offset-8,html.theme--documenter-dark .column.is-offset-8-tablet{margin-left:66.66666674%}html.theme--documenter-dark .column.is-9,html.theme--documenter-dark .column.is-9-tablet{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9,html.theme--documenter-dark .column.is-offset-9-tablet{margin-left:75%}html.theme--documenter-dark .column.is-10,html.theme--documenter-dark .column.is-10-tablet{flex:none;width:83.33333337%}html.theme--documenter-dark .column.is-offset-10,html.theme--documenter-dark .column.is-offset-10-tablet{margin-left:83.33333337%}html.theme--documenter-dark .column.is-11,html.theme--documenter-dark .column.is-11-tablet{flex:none;width:91.66666674%}html.theme--documenter-dark .column.is-offset-11,html.theme--documenter-dark .column.is-offset-11-tablet{margin-left:91.66666674%}html.theme--documenter-dark .column.is-12,html.theme--documenter-dark .column.is-12-tablet{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12,html.theme--documenter-dark .column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width: 1055px){html.theme--documenter-dark .column.is-narrow-touch{flex:none;width:unset}html.theme--documenter-dark .column.is-full-touch{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-touch{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-touch{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-touch{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-touch{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-touch{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-touch{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-touch{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-touch{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-touch{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-touch{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-touch{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-touch{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-touch{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-touch{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-touch{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-touch{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-touch{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-touch{margin-left:80%}html.theme--documenter-dark .column.is-0-touch{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-touch{margin-left:0%}html.theme--documenter-dark .column.is-1-touch{flex:none;width:8.33333337%}html.theme--documenter-dark .column.is-offset-1-touch{margin-left:8.33333337%}html.theme--documenter-dark .column.is-2-touch{flex:none;width:16.66666674%}html.theme--documenter-dark .column.is-offset-2-touch{margin-left:16.66666674%}html.theme--documenter-dark .column.is-3-touch{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-touch{margin-left:25%}html.theme--documenter-dark .column.is-4-touch{flex:none;width:33.33333337%}html.theme--documenter-dark .column.is-offset-4-touch{margin-left:33.33333337%}html.theme--documenter-dark .column.is-5-touch{flex:none;width:41.66666674%}html.theme--documenter-dark .column.is-offset-5-touch{margin-left:41.66666674%}html.theme--documenter-dark .column.is-6-touch{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-touch{margin-left:50%}html.theme--documenter-dark .column.is-7-touch{flex:none;width:58.33333337%}html.theme--documenter-dark .column.is-offset-7-touch{margin-left:58.33333337%}html.theme--documenter-dark .column.is-8-touch{flex:none;width:66.66666674%}html.theme--documenter-dark .column.is-offset-8-touch{margin-left:66.66666674%}html.theme--documenter-dark .column.is-9-touch{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-touch{margin-left:75%}html.theme--documenter-dark .column.is-10-touch{flex:none;width:83.33333337%}html.theme--documenter-dark .column.is-offset-10-touch{margin-left:83.33333337%}html.theme--documenter-dark .column.is-11-touch{flex:none;width:91.66666674%}html.theme--documenter-dark .column.is-offset-11-touch{margin-left:91.66666674%}html.theme--documenter-dark .column.is-12-touch{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width: 1056px){html.theme--documenter-dark .column.is-narrow-desktop{flex:none;width:unset}html.theme--documenter-dark .column.is-full-desktop{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-desktop{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-desktop{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-desktop{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-desktop{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-desktop{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-desktop{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-desktop{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-desktop{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-desktop{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-desktop{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-desktop{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-desktop{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-desktop{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-desktop{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-desktop{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-desktop{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-desktop{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-desktop{margin-left:80%}html.theme--documenter-dark .column.is-0-desktop{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-desktop{margin-left:0%}html.theme--documenter-dark .column.is-1-desktop{flex:none;width:8.33333337%}html.theme--documenter-dark .column.is-offset-1-desktop{margin-left:8.33333337%}html.theme--documenter-dark .column.is-2-desktop{flex:none;width:16.66666674%}html.theme--documenter-dark .column.is-offset-2-desktop{margin-left:16.66666674%}html.theme--documenter-dark .column.is-3-desktop{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-desktop{margin-left:25%}html.theme--documenter-dark .column.is-4-desktop{flex:none;width:33.33333337%}html.theme--documenter-dark .column.is-offset-4-desktop{margin-left:33.33333337%}html.theme--documenter-dark .column.is-5-desktop{flex:none;width:41.66666674%}html.theme--documenter-dark .column.is-offset-5-desktop{margin-left:41.66666674%}html.theme--documenter-dark .column.is-6-desktop{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-desktop{margin-left:50%}html.theme--documenter-dark .column.is-7-desktop{flex:none;width:58.33333337%}html.theme--documenter-dark .column.is-offset-7-desktop{margin-left:58.33333337%}html.theme--documenter-dark .column.is-8-desktop{flex:none;width:66.66666674%}html.theme--documenter-dark .column.is-offset-8-desktop{margin-left:66.66666674%}html.theme--documenter-dark .column.is-9-desktop{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-desktop{margin-left:75%}html.theme--documenter-dark .column.is-10-desktop{flex:none;width:83.33333337%}html.theme--documenter-dark .column.is-offset-10-desktop{margin-left:83.33333337%}html.theme--documenter-dark .column.is-11-desktop{flex:none;width:91.66666674%}html.theme--documenter-dark .column.is-offset-11-desktop{margin-left:91.66666674%}html.theme--documenter-dark .column.is-12-desktop{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width: 1216px){html.theme--documenter-dark .column.is-narrow-widescreen{flex:none;width:unset}html.theme--documenter-dark .column.is-full-widescreen{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-widescreen{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-widescreen{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-widescreen{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-widescreen{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-widescreen{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-widescreen{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-widescreen{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-widescreen{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-widescreen{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-widescreen{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-widescreen{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-widescreen{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-widescreen{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-widescreen{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-widescreen{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-widescreen{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-widescreen{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-widescreen{margin-left:80%}html.theme--documenter-dark .column.is-0-widescreen{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-widescreen{margin-left:0%}html.theme--documenter-dark .column.is-1-widescreen{flex:none;width:8.33333337%}html.theme--documenter-dark .column.is-offset-1-widescreen{margin-left:8.33333337%}html.theme--documenter-dark .column.is-2-widescreen{flex:none;width:16.66666674%}html.theme--documenter-dark .column.is-offset-2-widescreen{margin-left:16.66666674%}html.theme--documenter-dark .column.is-3-widescreen{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-widescreen{margin-left:25%}html.theme--documenter-dark .column.is-4-widescreen{flex:none;width:33.33333337%}html.theme--documenter-dark .column.is-offset-4-widescreen{margin-left:33.33333337%}html.theme--documenter-dark .column.is-5-widescreen{flex:none;width:41.66666674%}html.theme--documenter-dark .column.is-offset-5-widescreen{margin-left:41.66666674%}html.theme--documenter-dark .column.is-6-widescreen{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-widescreen{margin-left:50%}html.theme--documenter-dark .column.is-7-widescreen{flex:none;width:58.33333337%}html.theme--documenter-dark .column.is-offset-7-widescreen{margin-left:58.33333337%}html.theme--documenter-dark .column.is-8-widescreen{flex:none;width:66.66666674%}html.theme--documenter-dark .column.is-offset-8-widescreen{margin-left:66.66666674%}html.theme--documenter-dark .column.is-9-widescreen{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-widescreen{margin-left:75%}html.theme--documenter-dark .column.is-10-widescreen{flex:none;width:83.33333337%}html.theme--documenter-dark .column.is-offset-10-widescreen{margin-left:83.33333337%}html.theme--documenter-dark .column.is-11-widescreen{flex:none;width:91.66666674%}html.theme--documenter-dark .column.is-offset-11-widescreen{margin-left:91.66666674%}html.theme--documenter-dark .column.is-12-widescreen{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width: 1408px){html.theme--documenter-dark .column.is-narrow-fullhd{flex:none;width:unset}html.theme--documenter-dark .column.is-full-fullhd{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-fullhd{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-fullhd{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-fullhd{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-fullhd{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-fullhd{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-fullhd{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-fullhd{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-fullhd{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-fullhd{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-fullhd{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-fullhd{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-fullhd{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-fullhd{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-fullhd{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-fullhd{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-fullhd{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-fullhd{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-fullhd{margin-left:80%}html.theme--documenter-dark .column.is-0-fullhd{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-fullhd{margin-left:0%}html.theme--documenter-dark .column.is-1-fullhd{flex:none;width:8.33333337%}html.theme--documenter-dark .column.is-offset-1-fullhd{margin-left:8.33333337%}html.theme--documenter-dark .column.is-2-fullhd{flex:none;width:16.66666674%}html.theme--documenter-dark .column.is-offset-2-fullhd{margin-left:16.66666674%}html.theme--documenter-dark .column.is-3-fullhd{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-fullhd{margin-left:25%}html.theme--documenter-dark .column.is-4-fullhd{flex:none;width:33.33333337%}html.theme--documenter-dark .column.is-offset-4-fullhd{margin-left:33.33333337%}html.theme--documenter-dark .column.is-5-fullhd{flex:none;width:41.66666674%}html.theme--documenter-dark .column.is-offset-5-fullhd{margin-left:41.66666674%}html.theme--documenter-dark .column.is-6-fullhd{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-fullhd{margin-left:50%}html.theme--documenter-dark .column.is-7-fullhd{flex:none;width:58.33333337%}html.theme--documenter-dark .column.is-offset-7-fullhd{margin-left:58.33333337%}html.theme--documenter-dark .column.is-8-fullhd{flex:none;width:66.66666674%}html.theme--documenter-dark .column.is-offset-8-fullhd{margin-left:66.66666674%}html.theme--documenter-dark .column.is-9-fullhd{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-fullhd{margin-left:75%}html.theme--documenter-dark .column.is-10-fullhd{flex:none;width:83.33333337%}html.theme--documenter-dark .column.is-offset-10-fullhd{margin-left:83.33333337%}html.theme--documenter-dark .column.is-11-fullhd{flex:none;width:91.66666674%}html.theme--documenter-dark .column.is-offset-11-fullhd{margin-left:91.66666674%}html.theme--documenter-dark .column.is-12-fullhd{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-fullhd{margin-left:100%}}html.theme--documenter-dark .columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}html.theme--documenter-dark .columns:last-child{margin-bottom:-.75rem}html.theme--documenter-dark .columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}html.theme--documenter-dark .columns.is-centered{justify-content:center}html.theme--documenter-dark .columns.is-gapless{margin-left:0;margin-right:0;margin-top:0}html.theme--documenter-dark .columns.is-gapless>.column{margin:0;padding:0 !important}html.theme--documenter-dark .columns.is-gapless:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .columns.is-gapless:last-child{margin-bottom:0}html.theme--documenter-dark .columns.is-mobile{display:flex}html.theme--documenter-dark .columns.is-multiline{flex-wrap:wrap}html.theme--documenter-dark .columns.is-vcentered{align-items:center}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns:not(.is-desktop){display:flex}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-desktop{display:flex}}html.theme--documenter-dark .columns.is-variable{--columnGap: 0.75rem;margin-left:calc(-1 * var(--columnGap));margin-right:calc(-1 * var(--columnGap))}html.theme--documenter-dark .columns.is-variable>.column{padding-left:var(--columnGap);padding-right:var(--columnGap)}html.theme--documenter-dark .columns.is-variable.is-0{--columnGap: 0rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-0-mobile{--columnGap: 0rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-0-tablet{--columnGap: 0rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-0-tablet-only{--columnGap: 0rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-0-touch{--columnGap: 0rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-0-desktop{--columnGap: 0rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-0-desktop-only{--columnGap: 0rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-0-widescreen{--columnGap: 0rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-0-widescreen-only{--columnGap: 0rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-0-fullhd{--columnGap: 0rem}}html.theme--documenter-dark .columns.is-variable.is-1{--columnGap: .25rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-1-mobile{--columnGap: .25rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-1-tablet{--columnGap: .25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-1-tablet-only{--columnGap: .25rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-1-touch{--columnGap: .25rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-1-desktop{--columnGap: .25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-1-desktop-only{--columnGap: .25rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-1-widescreen{--columnGap: .25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-1-widescreen-only{--columnGap: .25rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-1-fullhd{--columnGap: .25rem}}html.theme--documenter-dark .columns.is-variable.is-2{--columnGap: .5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-2-mobile{--columnGap: .5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-2-tablet{--columnGap: .5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-2-tablet-only{--columnGap: .5rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-2-touch{--columnGap: .5rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-2-desktop{--columnGap: .5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-2-desktop-only{--columnGap: .5rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-2-widescreen{--columnGap: .5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-2-widescreen-only{--columnGap: .5rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-2-fullhd{--columnGap: .5rem}}html.theme--documenter-dark .columns.is-variable.is-3{--columnGap: .75rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-3-mobile{--columnGap: .75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-3-tablet{--columnGap: .75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-3-tablet-only{--columnGap: .75rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-3-touch{--columnGap: .75rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-3-desktop{--columnGap: .75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-3-desktop-only{--columnGap: .75rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-3-widescreen{--columnGap: .75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-3-widescreen-only{--columnGap: .75rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-3-fullhd{--columnGap: .75rem}}html.theme--documenter-dark .columns.is-variable.is-4{--columnGap: 1rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-4-mobile{--columnGap: 1rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-4-tablet{--columnGap: 1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-4-tablet-only{--columnGap: 1rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-4-touch{--columnGap: 1rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-4-desktop{--columnGap: 1rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-4-desktop-only{--columnGap: 1rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-4-widescreen{--columnGap: 1rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-4-widescreen-only{--columnGap: 1rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-4-fullhd{--columnGap: 1rem}}html.theme--documenter-dark .columns.is-variable.is-5{--columnGap: 1.25rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-5-mobile{--columnGap: 1.25rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-5-tablet{--columnGap: 1.25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-5-tablet-only{--columnGap: 1.25rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-5-touch{--columnGap: 1.25rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-5-desktop{--columnGap: 1.25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-5-desktop-only{--columnGap: 1.25rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-5-widescreen{--columnGap: 1.25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-5-widescreen-only{--columnGap: 1.25rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-5-fullhd{--columnGap: 1.25rem}}html.theme--documenter-dark .columns.is-variable.is-6{--columnGap: 1.5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-6-mobile{--columnGap: 1.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-6-tablet{--columnGap: 1.5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-6-tablet-only{--columnGap: 1.5rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-6-touch{--columnGap: 1.5rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-6-desktop{--columnGap: 1.5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-6-desktop-only{--columnGap: 1.5rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-6-widescreen{--columnGap: 1.5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-6-widescreen-only{--columnGap: 1.5rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-6-fullhd{--columnGap: 1.5rem}}html.theme--documenter-dark .columns.is-variable.is-7{--columnGap: 1.75rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-7-mobile{--columnGap: 1.75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-7-tablet{--columnGap: 1.75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-7-tablet-only{--columnGap: 1.75rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-7-touch{--columnGap: 1.75rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-7-desktop{--columnGap: 1.75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-7-desktop-only{--columnGap: 1.75rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-7-widescreen{--columnGap: 1.75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-7-widescreen-only{--columnGap: 1.75rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-7-fullhd{--columnGap: 1.75rem}}html.theme--documenter-dark .columns.is-variable.is-8{--columnGap: 2rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-8-mobile{--columnGap: 2rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-8-tablet{--columnGap: 2rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-8-tablet-only{--columnGap: 2rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-8-touch{--columnGap: 2rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-8-desktop{--columnGap: 2rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-8-desktop-only{--columnGap: 2rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-8-widescreen{--columnGap: 2rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-8-widescreen-only{--columnGap: 2rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-8-fullhd{--columnGap: 2rem}}html.theme--documenter-dark .tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:min-content}html.theme--documenter-dark .tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}html.theme--documenter-dark .tile.is-ancestor:last-child{margin-bottom:-.75rem}html.theme--documenter-dark .tile.is-ancestor:not(:last-child){margin-bottom:.75rem}html.theme--documenter-dark .tile.is-child{margin:0 !important}html.theme--documenter-dark .tile.is-parent{padding:.75rem}html.theme--documenter-dark .tile.is-vertical{flex-direction:column}html.theme--documenter-dark .tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem !important}@media screen and (min-width: 769px),print{html.theme--documenter-dark .tile:not(.is-child){display:flex}html.theme--documenter-dark .tile.is-1{flex:none;width:8.33333337%}html.theme--documenter-dark .tile.is-2{flex:none;width:16.66666674%}html.theme--documenter-dark .tile.is-3{flex:none;width:25%}html.theme--documenter-dark .tile.is-4{flex:none;width:33.33333337%}html.theme--documenter-dark .tile.is-5{flex:none;width:41.66666674%}html.theme--documenter-dark .tile.is-6{flex:none;width:50%}html.theme--documenter-dark .tile.is-7{flex:none;width:58.33333337%}html.theme--documenter-dark .tile.is-8{flex:none;width:66.66666674%}html.theme--documenter-dark .tile.is-9{flex:none;width:75%}html.theme--documenter-dark .tile.is-10{flex:none;width:83.33333337%}html.theme--documenter-dark .tile.is-11{flex:none;width:91.66666674%}html.theme--documenter-dark .tile.is-12{flex:none;width:100%}}html.theme--documenter-dark .hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}html.theme--documenter-dark .hero .navbar{background:none}html.theme--documenter-dark .hero .tabs ul{border-bottom:none}html.theme--documenter-dark .hero.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-white strong{color:inherit}html.theme--documenter-dark .hero.is-white .title{color:#0a0a0a}html.theme--documenter-dark .hero.is-white .subtitle{color:rgba(10,10,10,0.9)}html.theme--documenter-dark .hero.is-white .subtitle a:not(.button),html.theme--documenter-dark .hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-white .navbar-menu{background-color:#fff}}html.theme--documenter-dark .hero.is-white .navbar-item,html.theme--documenter-dark .hero.is-white .navbar-link{color:rgba(10,10,10,0.7)}html.theme--documenter-dark .hero.is-white a.navbar-item:hover,html.theme--documenter-dark .hero.is-white a.navbar-item.is-active,html.theme--documenter-dark .hero.is-white .navbar-link:hover,html.theme--documenter-dark .hero.is-white .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .hero.is-white .tabs a{color:#0a0a0a;opacity:0.9}html.theme--documenter-dark .hero.is-white .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-white .tabs li.is-active a{color:#fff !important;opacity:1}html.theme--documenter-dark .hero.is-white .tabs.is-boxed a,html.theme--documenter-dark .hero.is-white .tabs.is-toggle a{color:#0a0a0a}html.theme--documenter-dark .hero.is-white .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .hero.is-white.is-bold{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}}html.theme--documenter-dark .hero.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-black strong{color:inherit}html.theme--documenter-dark .hero.is-black .title{color:#fff}html.theme--documenter-dark .hero.is-black .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-black .subtitle a:not(.button),html.theme--documenter-dark .hero.is-black .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-black .navbar-menu{background-color:#0a0a0a}}html.theme--documenter-dark .hero.is-black .navbar-item,html.theme--documenter-dark .hero.is-black .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-black a.navbar-item:hover,html.theme--documenter-dark .hero.is-black a.navbar-item.is-active,html.theme--documenter-dark .hero.is-black .navbar-link:hover,html.theme--documenter-dark .hero.is-black .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .hero.is-black .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-black .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-black .tabs li.is-active a{color:#0a0a0a !important;opacity:1}html.theme--documenter-dark .hero.is-black .tabs.is-boxed a,html.theme--documenter-dark .hero.is-black .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-black .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .hero.is-black.is-bold{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}}html.theme--documenter-dark .hero.is-light{background-color:#ecf0f1;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-light strong{color:inherit}html.theme--documenter-dark .hero.is-light .title{color:rgba(0,0,0,0.7)}html.theme--documenter-dark .hero.is-light .subtitle{color:rgba(0,0,0,0.9)}html.theme--documenter-dark .hero.is-light .subtitle a:not(.button),html.theme--documenter-dark .hero.is-light .subtitle strong{color:rgba(0,0,0,0.7)}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-light .navbar-menu{background-color:#ecf0f1}}html.theme--documenter-dark .hero.is-light .navbar-item,html.theme--documenter-dark .hero.is-light .navbar-link{color:rgba(0,0,0,0.7)}html.theme--documenter-dark .hero.is-light a.navbar-item:hover,html.theme--documenter-dark .hero.is-light a.navbar-item.is-active,html.theme--documenter-dark .hero.is-light .navbar-link:hover,html.theme--documenter-dark .hero.is-light .navbar-link.is-active{background-color:#dde4e6;color:rgba(0,0,0,0.7)}html.theme--documenter-dark .hero.is-light .tabs a{color:rgba(0,0,0,0.7);opacity:0.9}html.theme--documenter-dark .hero.is-light .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-light .tabs li.is-active a{color:#ecf0f1 !important;opacity:1}html.theme--documenter-dark .hero.is-light .tabs.is-boxed a,html.theme--documenter-dark .hero.is-light .tabs.is-toggle a{color:rgba(0,0,0,0.7)}html.theme--documenter-dark .hero.is-light .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a:hover{background-color:rgba(0,0,0,0.7);border-color:rgba(0,0,0,0.7);color:#ecf0f1}html.theme--documenter-dark .hero.is-light.is-bold{background-image:linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%)}}html.theme--documenter-dark .hero.is-dark,html.theme--documenter-dark .content kbd.hero{background-color:#282f2f;color:#fff}html.theme--documenter-dark .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-dark strong,html.theme--documenter-dark .content kbd.hero strong{color:inherit}html.theme--documenter-dark .hero.is-dark .title,html.theme--documenter-dark .content kbd.hero .title{color:#fff}html.theme--documenter-dark .hero.is-dark .subtitle,html.theme--documenter-dark .content kbd.hero .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-dark .subtitle a:not(.button),html.theme--documenter-dark .content kbd.hero .subtitle a:not(.button),html.theme--documenter-dark .hero.is-dark .subtitle strong,html.theme--documenter-dark .content kbd.hero .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-dark .navbar-menu,html.theme--documenter-dark .content kbd.hero .navbar-menu{background-color:#282f2f}}html.theme--documenter-dark .hero.is-dark .navbar-item,html.theme--documenter-dark .content kbd.hero .navbar-item,html.theme--documenter-dark .hero.is-dark .navbar-link,html.theme--documenter-dark .content kbd.hero .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-dark a.navbar-item:hover,html.theme--documenter-dark .content kbd.hero a.navbar-item:hover,html.theme--documenter-dark .hero.is-dark a.navbar-item.is-active,html.theme--documenter-dark .content kbd.hero a.navbar-item.is-active,html.theme--documenter-dark .hero.is-dark .navbar-link:hover,html.theme--documenter-dark .content kbd.hero .navbar-link:hover,html.theme--documenter-dark .hero.is-dark .navbar-link.is-active,html.theme--documenter-dark .content kbd.hero .navbar-link.is-active{background-color:#1d2122;color:#fff}html.theme--documenter-dark .hero.is-dark .tabs a,html.theme--documenter-dark .content kbd.hero .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-dark .tabs a:hover,html.theme--documenter-dark .content kbd.hero .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-dark .tabs li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs li.is-active a{color:#282f2f !important;opacity:1}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a:hover,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a:hover,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#282f2f}html.theme--documenter-dark .hero.is-dark.is-bold,html.theme--documenter-dark .content kbd.hero.is-bold{background-image:linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-dark.is-bold .navbar-menu,html.theme--documenter-dark .content kbd.hero.is-bold .navbar-menu{background-image:linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%)}}html.theme--documenter-dark .hero.is-primary,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-primary strong,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink strong{color:inherit}html.theme--documenter-dark .hero.is-primary .title,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .title{color:#fff}html.theme--documenter-dark .hero.is-primary .subtitle,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-primary .subtitle a:not(.button),html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle a:not(.button),html.theme--documenter-dark .hero.is-primary .subtitle strong,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-primary .navbar-menu,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-menu{background-color:#375a7f}}html.theme--documenter-dark .hero.is-primary .navbar-item,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-item,html.theme--documenter-dark .hero.is-primary .navbar-link,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-primary a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a.navbar-item:hover,html.theme--documenter-dark .hero.is-primary a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a.navbar-item.is-active,html.theme--documenter-dark .hero.is-primary .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link:hover,html.theme--documenter-dark .hero.is-primary .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .hero.is-primary .tabs a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-primary .tabs a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-primary .tabs li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs li.is-active a{color:#375a7f !important;opacity:1}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#375a7f}html.theme--documenter-dark .hero.is-primary.is-bold,html.theme--documenter-dark .docstring>section>a.hero.is-bold.docs-sourcelink{background-image:linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-primary.is-bold .navbar-menu,html.theme--documenter-dark .docstring>section>a.hero.is-bold.docs-sourcelink .navbar-menu{background-image:linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%)}}html.theme--documenter-dark .hero.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-link strong{color:inherit}html.theme--documenter-dark .hero.is-link .title{color:#fff}html.theme--documenter-dark .hero.is-link .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-link .subtitle a:not(.button),html.theme--documenter-dark .hero.is-link .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-link .navbar-menu{background-color:#1abc9c}}html.theme--documenter-dark .hero.is-link .navbar-item,html.theme--documenter-dark .hero.is-link .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-link a.navbar-item:hover,html.theme--documenter-dark .hero.is-link a.navbar-item.is-active,html.theme--documenter-dark .hero.is-link .navbar-link:hover,html.theme--documenter-dark .hero.is-link .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .hero.is-link .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-link .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-link .tabs li.is-active a{color:#1abc9c !important;opacity:1}html.theme--documenter-dark .hero.is-link .tabs.is-boxed a,html.theme--documenter-dark .hero.is-link .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-link .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#1abc9c}html.theme--documenter-dark .hero.is-link.is-bold{background-image:linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%)}}html.theme--documenter-dark .hero.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-info strong{color:inherit}html.theme--documenter-dark .hero.is-info .title{color:#fff}html.theme--documenter-dark .hero.is-info .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-info .subtitle a:not(.button),html.theme--documenter-dark .hero.is-info .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-info .navbar-menu{background-color:#024c7d}}html.theme--documenter-dark .hero.is-info .navbar-item,html.theme--documenter-dark .hero.is-info .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-info a.navbar-item:hover,html.theme--documenter-dark .hero.is-info a.navbar-item.is-active,html.theme--documenter-dark .hero.is-info .navbar-link:hover,html.theme--documenter-dark .hero.is-info .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .hero.is-info .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-info .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-info .tabs li.is-active a{color:#024c7d !important;opacity:1}html.theme--documenter-dark .hero.is-info .tabs.is-boxed a,html.theme--documenter-dark .hero.is-info .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-info .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#024c7d}html.theme--documenter-dark .hero.is-info.is-bold{background-image:linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%)}}html.theme--documenter-dark .hero.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-success strong{color:inherit}html.theme--documenter-dark .hero.is-success .title{color:#fff}html.theme--documenter-dark .hero.is-success .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-success .subtitle a:not(.button),html.theme--documenter-dark .hero.is-success .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-success .navbar-menu{background-color:#008438}}html.theme--documenter-dark .hero.is-success .navbar-item,html.theme--documenter-dark .hero.is-success .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-success a.navbar-item:hover,html.theme--documenter-dark .hero.is-success a.navbar-item.is-active,html.theme--documenter-dark .hero.is-success .navbar-link:hover,html.theme--documenter-dark .hero.is-success .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .hero.is-success .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-success .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-success .tabs li.is-active a{color:#008438 !important;opacity:1}html.theme--documenter-dark .hero.is-success .tabs.is-boxed a,html.theme--documenter-dark .hero.is-success .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-success .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#008438}html.theme--documenter-dark .hero.is-success.is-bold{background-image:linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%)}}html.theme--documenter-dark .hero.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-warning strong{color:inherit}html.theme--documenter-dark .hero.is-warning .title{color:#fff}html.theme--documenter-dark .hero.is-warning .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button),html.theme--documenter-dark .hero.is-warning .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-warning .navbar-menu{background-color:#ad8100}}html.theme--documenter-dark .hero.is-warning .navbar-item,html.theme--documenter-dark .hero.is-warning .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-warning a.navbar-item:hover,html.theme--documenter-dark .hero.is-warning a.navbar-item.is-active,html.theme--documenter-dark .hero.is-warning .navbar-link:hover,html.theme--documenter-dark .hero.is-warning .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .hero.is-warning .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-warning .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-warning .tabs li.is-active a{color:#ad8100 !important;opacity:1}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#ad8100}html.theme--documenter-dark .hero.is-warning.is-bold{background-image:linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%)}}html.theme--documenter-dark .hero.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-danger strong{color:inherit}html.theme--documenter-dark .hero.is-danger .title{color:#fff}html.theme--documenter-dark .hero.is-danger .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-danger .subtitle a:not(.button),html.theme--documenter-dark .hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-danger .navbar-menu{background-color:#9e1b0d}}html.theme--documenter-dark .hero.is-danger .navbar-item,html.theme--documenter-dark .hero.is-danger .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-danger a.navbar-item:hover,html.theme--documenter-dark .hero.is-danger a.navbar-item.is-active,html.theme--documenter-dark .hero.is-danger .navbar-link:hover,html.theme--documenter-dark .hero.is-danger .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .hero.is-danger .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-danger .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-danger .tabs li.is-active a{color:#9e1b0d !important;opacity:1}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#9e1b0d}html.theme--documenter-dark .hero.is-danger.is-bold{background-image:linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%)}}html.theme--documenter-dark .hero.is-small .hero-body,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.hero .hero-body{padding:1.5rem}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero.is-medium .hero-body{padding:9rem 4.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero.is-large .hero-body{padding:18rem 6rem}}html.theme--documenter-dark .hero.is-halfheight .hero-body,html.theme--documenter-dark .hero.is-fullheight .hero-body,html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body{align-items:center;display:flex}html.theme--documenter-dark .hero.is-halfheight .hero-body>.container,html.theme--documenter-dark .hero.is-fullheight .hero-body>.container,html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body>.container{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .hero.is-halfheight{min-height:50vh}html.theme--documenter-dark .hero.is-fullheight{min-height:100vh}html.theme--documenter-dark .hero-video{overflow:hidden}html.theme--documenter-dark .hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%, -50%, 0)}html.theme--documenter-dark .hero-video.is-transparent{opacity:0.3}@media screen and (max-width: 768px){html.theme--documenter-dark .hero-video{display:none}}html.theme--documenter-dark .hero-buttons{margin-top:1.5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .hero-buttons .button{display:flex}html.theme--documenter-dark .hero-buttons .button:not(:last-child){margin-bottom:0.75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero-buttons{display:flex;justify-content:center}html.theme--documenter-dark .hero-buttons .button:not(:last-child){margin-right:1.5rem}}html.theme--documenter-dark .hero-head,html.theme--documenter-dark .hero-foot{flex-grow:0;flex-shrink:0}html.theme--documenter-dark .hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero-body{padding:3rem 3rem}}html.theme--documenter-dark .section{padding:3rem 1.5rem}@media screen and (min-width: 1056px){html.theme--documenter-dark .section{padding:3rem 3rem}html.theme--documenter-dark .section.is-medium{padding:9rem 4.5rem}html.theme--documenter-dark .section.is-large{padding:18rem 6rem}}html.theme--documenter-dark .footer{background-color:#282f2f;padding:3rem 1.5rem 6rem}html.theme--documenter-dark hr{height:1px}html.theme--documenter-dark h6{text-transform:uppercase;letter-spacing:0.5px}html.theme--documenter-dark .hero{background-color:#343c3d}html.theme--documenter-dark a{transition:all 200ms ease}html.theme--documenter-dark .button{transition:all 200ms ease;border-width:1px;color:#fff}html.theme--documenter-dark .button.is-active,html.theme--documenter-dark .button.is-focused,html.theme--documenter-dark .button:active,html.theme--documenter-dark .button:focus{box-shadow:0 0 0 2px rgba(140,155,157,0.5)}html.theme--documenter-dark .button.is-white.is-hovered,html.theme--documenter-dark .button.is-white:hover{background-color:#fff}html.theme--documenter-dark .button.is-white.is-active,html.theme--documenter-dark .button.is-white.is-focused,html.theme--documenter-dark .button.is-white:active,html.theme--documenter-dark .button.is-white:focus{border-color:#fff;box-shadow:0 0 0 2px rgba(255,255,255,0.5)}html.theme--documenter-dark .button.is-black.is-hovered,html.theme--documenter-dark .button.is-black:hover{background-color:#1d1d1d}html.theme--documenter-dark .button.is-black.is-active,html.theme--documenter-dark .button.is-black.is-focused,html.theme--documenter-dark .button.is-black:active,html.theme--documenter-dark .button.is-black:focus{border-color:#0a0a0a;box-shadow:0 0 0 2px rgba(10,10,10,0.5)}html.theme--documenter-dark .button.is-light.is-hovered,html.theme--documenter-dark .button.is-light:hover{background-color:#fff}html.theme--documenter-dark .button.is-light.is-active,html.theme--documenter-dark .button.is-light.is-focused,html.theme--documenter-dark .button.is-light:active,html.theme--documenter-dark .button.is-light:focus{border-color:#ecf0f1;box-shadow:0 0 0 2px rgba(236,240,241,0.5)}html.theme--documenter-dark .button.is-dark.is-hovered,html.theme--documenter-dark .content kbd.button.is-hovered,html.theme--documenter-dark .button.is-dark:hover,html.theme--documenter-dark .content kbd.button:hover{background-color:#3a4344}html.theme--documenter-dark .button.is-dark.is-active,html.theme--documenter-dark .content kbd.button.is-active,html.theme--documenter-dark .button.is-dark.is-focused,html.theme--documenter-dark .content kbd.button.is-focused,html.theme--documenter-dark .button.is-dark:active,html.theme--documenter-dark .content kbd.button:active,html.theme--documenter-dark .button.is-dark:focus,html.theme--documenter-dark .content kbd.button:focus{border-color:#282f2f;box-shadow:0 0 0 2px rgba(40,47,47,0.5)}html.theme--documenter-dark .button.is-primary.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary:hover,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:hover{background-color:#436d9a}html.theme--documenter-dark .button.is-primary.is-active,html.theme--documenter-dark .docstring>section>a.button.is-active.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink,html.theme--documenter-dark .button.is-primary:active,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:active,html.theme--documenter-dark .button.is-primary:focus,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus{border-color:#375a7f;box-shadow:0 0 0 2px rgba(55,90,127,0.5)}html.theme--documenter-dark .button.is-link.is-hovered,html.theme--documenter-dark .button.is-link:hover{background-color:#1fdeb8}html.theme--documenter-dark .button.is-link.is-active,html.theme--documenter-dark .button.is-link.is-focused,html.theme--documenter-dark .button.is-link:active,html.theme--documenter-dark .button.is-link:focus{border-color:#1abc9c;box-shadow:0 0 0 2px rgba(26,188,156,0.5)}html.theme--documenter-dark .button.is-info.is-hovered,html.theme--documenter-dark .button.is-info:hover{background-color:#0363a3}html.theme--documenter-dark .button.is-info.is-active,html.theme--documenter-dark .button.is-info.is-focused,html.theme--documenter-dark .button.is-info:active,html.theme--documenter-dark .button.is-info:focus{border-color:#024c7d;box-shadow:0 0 0 2px rgba(2,76,125,0.5)}html.theme--documenter-dark .button.is-success.is-hovered,html.theme--documenter-dark .button.is-success:hover{background-color:#00aa48}html.theme--documenter-dark .button.is-success.is-active,html.theme--documenter-dark .button.is-success.is-focused,html.theme--documenter-dark .button.is-success:active,html.theme--documenter-dark .button.is-success:focus{border-color:#008438;box-shadow:0 0 0 2px rgba(0,132,56,0.5)}html.theme--documenter-dark .button.is-warning.is-hovered,html.theme--documenter-dark .button.is-warning:hover{background-color:#d39e00}html.theme--documenter-dark .button.is-warning.is-active,html.theme--documenter-dark .button.is-warning.is-focused,html.theme--documenter-dark .button.is-warning:active,html.theme--documenter-dark .button.is-warning:focus{border-color:#ad8100;box-shadow:0 0 0 2px rgba(173,129,0,0.5)}html.theme--documenter-dark .button.is-danger.is-hovered,html.theme--documenter-dark .button.is-danger:hover{background-color:#c12110}html.theme--documenter-dark .button.is-danger.is-active,html.theme--documenter-dark .button.is-danger.is-focused,html.theme--documenter-dark .button.is-danger:active,html.theme--documenter-dark .button.is-danger:focus{border-color:#9e1b0d;box-shadow:0 0 0 2px rgba(158,27,13,0.5)}html.theme--documenter-dark .label{color:#dbdee0}html.theme--documenter-dark .button,html.theme--documenter-dark .control.has-icons-left .icon,html.theme--documenter-dark .control.has-icons-right .icon,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .select,html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea{height:2.5em}html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .textarea{transition:all 200ms ease;box-shadow:none;border-width:1px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .select:after,html.theme--documenter-dark .select select{border-width:1px}html.theme--documenter-dark .control.has-addons .button,html.theme--documenter-dark .control.has-addons .input,html.theme--documenter-dark .control.has-addons #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-addons form.docs-search>input,html.theme--documenter-dark .control.has-addons .select{margin-right:-1px}html.theme--documenter-dark .notification{background-color:#343c3d}html.theme--documenter-dark .card{box-shadow:none;border:1px solid #343c3d;background-color:#282f2f;border-radius:.4em}html.theme--documenter-dark .card .card-image img{border-radius:.4em .4em 0 0}html.theme--documenter-dark .card .card-header{box-shadow:none;background-color:rgba(18,18,18,0.2);border-radius:.4em .4em 0 0}html.theme--documenter-dark .card .card-footer{background-color:rgba(18,18,18,0.2)}html.theme--documenter-dark .card .card-footer,html.theme--documenter-dark .card .card-footer-item{border-width:1px;border-color:#343c3d}html.theme--documenter-dark .notification.is-white a:not(.button){color:#0a0a0a;text-decoration:underline}html.theme--documenter-dark .notification.is-black a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-light a:not(.button){color:rgba(0,0,0,0.7);text-decoration:underline}html.theme--documenter-dark .notification.is-dark a:not(.button),html.theme--documenter-dark .content kbd.notification a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-primary a:not(.button),html.theme--documenter-dark .docstring>section>a.notification.docs-sourcelink a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-link a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-info a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-success a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-warning a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-danger a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .tag,html.theme--documenter-dark .content kbd,html.theme--documenter-dark .docstring>section>a.docs-sourcelink{border-radius:.4em}html.theme--documenter-dark .menu-list a{transition:all 300ms ease}html.theme--documenter-dark .modal-card-body{background-color:#282f2f}html.theme--documenter-dark .modal-card-foot,html.theme--documenter-dark .modal-card-head{border-color:#343c3d}html.theme--documenter-dark .message-header{font-weight:700;background-color:#343c3d;color:#fff}html.theme--documenter-dark .message-body{border-width:1px;border-color:#343c3d}html.theme--documenter-dark .navbar{border-radius:.4em}html.theme--documenter-dark .navbar.is-transparent{background:none}html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#1abc9c}@media screen and (max-width: 1055px){html.theme--documenter-dark .navbar .navbar-menu{background-color:#375a7f;border-radius:0 0 .4em .4em}}html.theme--documenter-dark .hero .navbar,html.theme--documenter-dark body>.navbar{border-radius:0}html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-previous{border-width:1px}html.theme--documenter-dark .panel-block,html.theme--documenter-dark .panel-heading,html.theme--documenter-dark .panel-tabs{border-width:1px}html.theme--documenter-dark .panel-block:first-child,html.theme--documenter-dark .panel-heading:first-child,html.theme--documenter-dark .panel-tabs:first-child{border-top-width:1px}html.theme--documenter-dark .panel-heading{font-weight:700}html.theme--documenter-dark .panel-tabs a{border-width:1px;margin-bottom:-1px}html.theme--documenter-dark .panel-tabs a.is-active{border-bottom-color:#17a689}html.theme--documenter-dark .panel-block:hover{color:#1dd2af}html.theme--documenter-dark .panel-block:hover .panel-icon{color:#1dd2af}html.theme--documenter-dark .panel-block.is-active .panel-icon{color:#17a689}html.theme--documenter-dark .tabs a{border-bottom-width:1px;margin-bottom:-1px}html.theme--documenter-dark .tabs ul{border-bottom-width:1px}html.theme--documenter-dark .tabs.is-boxed a{border-width:1px}html.theme--documenter-dark .tabs.is-boxed li.is-active a{background-color:#1f2424}html.theme--documenter-dark .tabs.is-toggle li a{border-width:1px;margin-bottom:0}html.theme--documenter-dark .tabs.is-toggle li+li{margin-left:-1px}html.theme--documenter-dark .hero.is-white .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-black .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-light .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-dark .navbar .navbar-dropdown .navbar-item:hover,html.theme--documenter-dark .content kbd.hero .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-primary .navbar .navbar-dropdown .navbar-item:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-link .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-info .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-success .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-warning .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-danger .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark h1 .docs-heading-anchor,html.theme--documenter-dark h1 .docs-heading-anchor:hover,html.theme--documenter-dark h1 .docs-heading-anchor:visited,html.theme--documenter-dark h2 .docs-heading-anchor,html.theme--documenter-dark h2 .docs-heading-anchor:hover,html.theme--documenter-dark h2 .docs-heading-anchor:visited,html.theme--documenter-dark h3 .docs-heading-anchor,html.theme--documenter-dark h3 .docs-heading-anchor:hover,html.theme--documenter-dark h3 .docs-heading-anchor:visited,html.theme--documenter-dark h4 .docs-heading-anchor,html.theme--documenter-dark h4 .docs-heading-anchor:hover,html.theme--documenter-dark h4 .docs-heading-anchor:visited,html.theme--documenter-dark h5 .docs-heading-anchor,html.theme--documenter-dark h5 .docs-heading-anchor:hover,html.theme--documenter-dark h5 .docs-heading-anchor:visited,html.theme--documenter-dark h6 .docs-heading-anchor,html.theme--documenter-dark h6 .docs-heading-anchor:hover,html.theme--documenter-dark h6 .docs-heading-anchor:visited{color:#f2f2f2}html.theme--documenter-dark h1 .docs-heading-anchor-permalink,html.theme--documenter-dark h2 .docs-heading-anchor-permalink,html.theme--documenter-dark h3 .docs-heading-anchor-permalink,html.theme--documenter-dark h4 .docs-heading-anchor-permalink,html.theme--documenter-dark h5 .docs-heading-anchor-permalink,html.theme--documenter-dark h6 .docs-heading-anchor-permalink{visibility:hidden;vertical-align:middle;margin-left:0.5em;font-size:0.7rem}html.theme--documenter-dark h1 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h2 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h3 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h4 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h5 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h6 .docs-heading-anchor-permalink::before{font-family:"Font Awesome 6 Free";font-weight:900;content:"\f0c1"}html.theme--documenter-dark h1:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h2:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h3:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h4:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h5:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h6:hover .docs-heading-anchor-permalink{visibility:visible}html.theme--documenter-dark .docs-light-only{display:none !important}html.theme--documenter-dark pre{position:relative;overflow:hidden}html.theme--documenter-dark pre code,html.theme--documenter-dark pre code.hljs{padding:0 .75rem !important;overflow:auto;display:block}html.theme--documenter-dark pre code:first-of-type,html.theme--documenter-dark pre code.hljs:first-of-type{padding-top:0.5rem !important}html.theme--documenter-dark pre code:last-of-type,html.theme--documenter-dark pre code.hljs:last-of-type{padding-bottom:0.5rem !important}html.theme--documenter-dark pre .copy-button{opacity:0.2;transition:opacity 0.2s;position:absolute;right:0em;top:0em;padding:0.5em;width:2.5em;height:2.5em;background:transparent;border:none;font-family:"Font Awesome 6 Free";color:#fff;cursor:pointer;text-align:center}html.theme--documenter-dark pre .copy-button:focus,html.theme--documenter-dark pre .copy-button:hover{opacity:1;background:rgba(255,255,255,0.1);color:#1abc9c}html.theme--documenter-dark pre .copy-button.success{color:#259a12;opacity:1}html.theme--documenter-dark pre .copy-button.error{color:#cb3c33;opacity:1}html.theme--documenter-dark pre:hover .copy-button{opacity:1}html.theme--documenter-dark .admonition{background-color:#282f2f;border-style:solid;border-width:1px;border-color:#5e6d6f;border-radius:.4em;font-size:1rem}html.theme--documenter-dark .admonition strong{color:currentColor}html.theme--documenter-dark .admonition.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.admonition{font-size:.75rem}html.theme--documenter-dark .admonition.is-medium{font-size:1.25rem}html.theme--documenter-dark .admonition.is-large{font-size:1.5rem}html.theme--documenter-dark .admonition.is-default{background-color:#282f2f;border-color:#5e6d6f}html.theme--documenter-dark .admonition.is-default>.admonition-header{background-color:#5e6d6f;color:#fff}html.theme--documenter-dark .admonition.is-default>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-info{background-color:#282f2f;border-color:#024c7d}html.theme--documenter-dark .admonition.is-info>.admonition-header{background-color:#024c7d;color:#fff}html.theme--documenter-dark .admonition.is-info>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-success{background-color:#282f2f;border-color:#008438}html.theme--documenter-dark .admonition.is-success>.admonition-header{background-color:#008438;color:#fff}html.theme--documenter-dark .admonition.is-success>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-warning{background-color:#282f2f;border-color:#ad8100}html.theme--documenter-dark .admonition.is-warning>.admonition-header{background-color:#ad8100;color:#fff}html.theme--documenter-dark .admonition.is-warning>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-danger{background-color:#282f2f;border-color:#9e1b0d}html.theme--documenter-dark .admonition.is-danger>.admonition-header{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .admonition.is-danger>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-compat{background-color:#282f2f;border-color:#137886}html.theme--documenter-dark .admonition.is-compat>.admonition-header{background-color:#137886;color:#fff}html.theme--documenter-dark .admonition.is-compat>.admonition-body{color:#fff}html.theme--documenter-dark .admonition-header{color:#fff;background-color:#5e6d6f;align-items:center;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.5rem .75rem;position:relative}html.theme--documenter-dark .admonition-header:before{font-family:"Font Awesome 6 Free";font-weight:900;margin-right:.75rem;content:"\f06a"}html.theme--documenter-dark details.admonition.is-details>.admonition-header{list-style:none}html.theme--documenter-dark details.admonition.is-details>.admonition-header:before{font-family:"Font Awesome 6 Free";font-weight:900;content:"\f055"}html.theme--documenter-dark details.admonition.is-details[open]>.admonition-header:before{font-family:"Font Awesome 6 Free";font-weight:900;content:"\f056"}html.theme--documenter-dark .admonition-body{color:#fff;padding:0.5rem .75rem}html.theme--documenter-dark .admonition-body pre{background-color:#282f2f}html.theme--documenter-dark .admonition-body code{background-color:rgba(255,255,255,0.05)}html.theme--documenter-dark .docstring{margin-bottom:1em;background-color:rgba(0,0,0,0);border:1px solid #5e6d6f;box-shadow:none;max-width:100%}html.theme--documenter-dark .docstring>header{cursor:pointer;display:flex;flex-grow:1;align-items:stretch;padding:0.5rem .75rem;background-color:#282f2f;box-shadow:0 0.125em 0.25em rgba(10,10,10,0.1);box-shadow:none;border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .docstring>header code{background-color:transparent}html.theme--documenter-dark .docstring>header .docstring-article-toggle-button{min-width:1.1rem;padding:0.2rem 0.2rem 0.2rem 0}html.theme--documenter-dark .docstring>header .docstring-binding{margin-right:0.3em}html.theme--documenter-dark .docstring>header .docstring-category{margin-left:0.3em}html.theme--documenter-dark .docstring>section{position:relative;padding:.75rem .75rem;border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .docstring>section:last-child{border-bottom:none}html.theme--documenter-dark .docstring>section>a.docs-sourcelink{transition:opacity 0.3s;opacity:0;position:absolute;right:.375rem;bottom:.375rem}html.theme--documenter-dark .docstring>section>a.docs-sourcelink:focus{opacity:1 !important}html.theme--documenter-dark .docstring:hover>section>a.docs-sourcelink{opacity:0.2}html.theme--documenter-dark .docstring:focus-within>section>a.docs-sourcelink{opacity:0.2}html.theme--documenter-dark .docstring>section:hover a.docs-sourcelink{opacity:1}html.theme--documenter-dark .documenter-example-output{background-color:#1f2424}html.theme--documenter-dark .outdated-warning-overlay{position:fixed;top:0;left:0;right:0;box-shadow:0 0 10px rgba(0,0,0,0.3);z-index:999;background-color:#282f2f;color:#fff;border-bottom:3px solid #9e1b0d;padding:10px 35px;text-align:center;font-size:15px}html.theme--documenter-dark .outdated-warning-overlay .outdated-warning-closer{position:absolute;top:calc(50% - 10px);right:18px;cursor:pointer;width:12px}html.theme--documenter-dark .outdated-warning-overlay a{color:#1abc9c}html.theme--documenter-dark .outdated-warning-overlay a:hover{color:#1dd2af}html.theme--documenter-dark .content pre{border:1px solid #5e6d6f}html.theme--documenter-dark .content code{font-weight:inherit}html.theme--documenter-dark .content a code{color:#1abc9c}html.theme--documenter-dark .content h1 code,html.theme--documenter-dark .content h2 code,html.theme--documenter-dark .content h3 code,html.theme--documenter-dark .content h4 code,html.theme--documenter-dark .content h5 code,html.theme--documenter-dark .content h6 code{color:#f2f2f2}html.theme--documenter-dark .content table{display:block;width:initial;max-width:100%;overflow-x:auto}html.theme--documenter-dark .content blockquote>ul:first-child,html.theme--documenter-dark .content blockquote>ol:first-child,html.theme--documenter-dark .content .admonition-body>ul:first-child,html.theme--documenter-dark .content .admonition-body>ol:first-child{margin-top:0}html.theme--documenter-dark pre,html.theme--documenter-dark code{font-variant-ligatures:no-contextual}html.theme--documenter-dark .breadcrumb a.is-disabled{cursor:default;pointer-events:none}html.theme--documenter-dark .breadcrumb a.is-disabled,html.theme--documenter-dark .breadcrumb a.is-disabled:hover{color:#f2f2f2}html.theme--documenter-dark .hljs{background:initial !important}html.theme--documenter-dark .katex .katex-mathml{top:0;right:0}html.theme--documenter-dark .katex-display,html.theme--documenter-dark mjx-container,html.theme--documenter-dark .MathJax_Display{margin:0.5em 0 !important}html.theme--documenter-dark html{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto}html.theme--documenter-dark li.no-marker{list-style:none}html.theme--documenter-dark #documenter .docs-main>article{overflow-wrap:break-word}html.theme--documenter-dark #documenter .docs-main>article .math-container{overflow-x:auto;overflow-y:hidden}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-main{max-width:52rem;margin-left:20rem;padding-right:1rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main{width:100%}html.theme--documenter-dark #documenter .docs-main>article{max-width:52rem;margin-left:auto;margin-right:auto;margin-bottom:1rem;padding:0 1rem}html.theme--documenter-dark #documenter .docs-main>header,html.theme--documenter-dark #documenter .docs-main>nav{max-width:100%;width:100%;margin:0}}html.theme--documenter-dark #documenter .docs-main header.docs-navbar{background-color:#1f2424;border-bottom:1px solid #5e6d6f;z-index:2;min-height:4rem;margin-bottom:1rem;display:flex}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .breadcrumb{flex-grow:1}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-sidebar-button{display:block;font-size:1.5rem;padding-bottom:0.1rem;margin-right:1rem}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right{display:flex;white-space:nowrap;gap:1rem;align-items:center}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-icon,html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label{display:inline-block}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label{padding:0;margin-left:0.3em}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-navbar-link{margin-left:0.4rem;margin-right:0.4rem}}html.theme--documenter-dark #documenter .docs-main header.docs-navbar>*{margin:auto 0}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main header.docs-navbar{position:sticky;top:0;padding:0 1rem;transition-property:top, box-shadow;-webkit-transition-property:top, box-shadow;transition-duration:0.3s;-webkit-transition-duration:0.3s}html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--not-top{box-shadow:.2rem 0rem .4rem #171717;transition-duration:0.7s;-webkit-transition-duration:0.7s}html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom{top:-4.5rem;transition-duration:0.7s;-webkit-transition-duration:0.7s}}html.theme--documenter-dark #documenter .docs-main section.footnotes{border-top:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-main section.footnotes li .tag:first-child,html.theme--documenter-dark #documenter .docs-main section.footnotes li .docstring>section>a.docs-sourcelink:first-child,html.theme--documenter-dark #documenter .docs-main section.footnotes li .content kbd:first-child,html.theme--documenter-dark .content #documenter .docs-main section.footnotes li kbd:first-child{margin-right:1em;margin-bottom:0.4em}html.theme--documenter-dark #documenter .docs-main .docs-footer{display:flex;flex-wrap:wrap;margin-left:0;margin-right:0;border-top:1px solid #5e6d6f;padding-top:1rem;padding-bottom:1rem}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main .docs-footer{padding-left:1rem;padding-right:1rem}}html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage,html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-prevpage{flex-grow:1}html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage{text-align:right}html.theme--documenter-dark #documenter .docs-main .docs-footer .flexbox-break{flex-basis:100%;height:0}html.theme--documenter-dark #documenter .docs-main .docs-footer .footer-message{font-size:0.8em;margin:0.5em auto 0 auto;text-align:center}html.theme--documenter-dark #documenter .docs-sidebar{display:flex;flex-direction:column;color:#fff;background-color:#282f2f;border-right:1px solid #5e6d6f;padding:0;flex:0 0 18rem;z-index:5;font-size:1rem;position:fixed;left:-18rem;width:18rem;height:100%;transition:left 0.3s}html.theme--documenter-dark #documenter .docs-sidebar.visible{left:0;box-shadow:.4rem 0rem .8rem #171717}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar.visible{box-shadow:none}}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar{left:0;top:0}}html.theme--documenter-dark #documenter .docs-sidebar .docs-logo{margin-top:1rem;padding:0 1rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img{max-height:6rem;margin:auto}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name{flex-shrink:0;font-size:1.5rem;font-weight:700;text-align:center;white-space:nowrap;overflow:hidden;padding:0.5rem 0}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name .docs-autofit{max-width:16.2rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a,html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a:hover{color:#fff}html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector{border-top:1px solid #5e6d6f;display:none;padding:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector.visible{display:flex}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu{flex-grow:1;user-select:none;border-top:1px solid #5e6d6f;padding-bottom:1.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li>.tocitem{font-weight:bold}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li li{font-size:.95rem;margin-left:1em;border-left:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input.collapse-toggle{display:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.collapsed{display:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked~ul.collapsed{display:block}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem{display:flex}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label{flex-grow:2}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;font-size:.75rem;margin-left:1rem;margin-top:auto;margin-bottom:auto}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before{font-family:"Font Awesome 6 Free";font-weight:900;content:"\f054"}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked~label.tocitem .docs-chevron::before{content:"\f078"}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem{display:block;padding:0.5rem 0.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem:hover{color:#fff;background:#282f2f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu a.tocitem:hover,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem:hover{color:#fff;background-color:#32393a}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active{border-top:1px solid #5e6d6f;border-bottom:1px solid #5e6d6f;background-color:#1f2424}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover{background-color:#1f2424;color:#fff}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover{background-color:#32393a;color:#fff}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li.is-active:first-child{border-top:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal{margin:0 0.5rem 0.5rem;border-top:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal li{font-size:.85rem;border-left:none;margin-left:0;margin-top:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem{width:100%;padding:0}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before{content:"⚬";margin-right:0.4em}html.theme--documenter-dark #documenter .docs-sidebar form.docs-search{margin:auto;margin-top:0.5rem;margin-bottom:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{width:14.4rem}html.theme--documenter-dark #documenter .docs-sidebar #documenter-search-query{color:#868c98;width:14.4rem;box-shadow:inset 0 1px 2px rgba(10,10,10,0.1)}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu{overflow-y:auto;-webkit-overflow-scroll:touch}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar{width:.3rem;background:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#3b4445}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover{background:#4e5a5c}}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-sidebar{overflow-y:auto;-webkit-overflow-scroll:touch}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar{width:.3rem;background:none}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#3b4445}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover{background:#4e5a5c}}html.theme--documenter-dark kbd.search-modal-key-hints{border-radius:0.25rem;border:1px solid rgba(245,245,245,0.6);box-shadow:0 2px 0 1px rgba(245,245,245,0.6);cursor:default;font-size:0.9rem;line-height:1.5;min-width:0.75rem;text-align:center;padding:0.1rem 0.3rem;position:relative;top:-1px}html.theme--documenter-dark .search-min-width-50{min-width:50%}html.theme--documenter-dark .search-min-height-100{min-height:100%}html.theme--documenter-dark .search-modal-card-body{max-height:calc(100vh - 15rem)}html.theme--documenter-dark .search-result-link{border-radius:0.7em;transition:all 300ms}html.theme--documenter-dark .search-result-link:hover,html.theme--documenter-dark .search-result-link:focus{background-color:rgba(0,128,128,0.1)}html.theme--documenter-dark .search-result-link .property-search-result-badge,html.theme--documenter-dark .search-result-link .search-filter{transition:all 300ms}html.theme--documenter-dark .property-search-result-badge,html.theme--documenter-dark .search-filter{padding:0.15em 0.5em;font-size:0.8em;font-style:italic;text-transform:none !important;line-height:1.5;color:#f5f5f5;background-color:rgba(51,65,85,0.501961);border-radius:0.6rem}html.theme--documenter-dark .search-result-link:hover .property-search-result-badge,html.theme--documenter-dark .search-result-link:hover .search-filter,html.theme--documenter-dark .search-result-link:focus .property-search-result-badge,html.theme--documenter-dark .search-result-link:focus .search-filter{color:#333;background-color:#f1f5f9}html.theme--documenter-dark .search-filter{color:#333;background-color:#f5f5f5;transition:all 300ms}html.theme--documenter-dark .search-filter:hover,html.theme--documenter-dark .search-filter:focus{color:#333}html.theme--documenter-dark .search-filter-selected{color:#f5f5f5;background-color:rgba(139,0,139,0.5)}html.theme--documenter-dark .search-filter-selected:hover,html.theme--documenter-dark .search-filter-selected:focus{color:#f5f5f5}html.theme--documenter-dark .search-result-highlight{background-color:#ffdd57;color:black}html.theme--documenter-dark .search-divider{border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .search-result-title{width:85%;color:#f5f5f5}html.theme--documenter-dark .search-result-code-title{font-size:0.875rem;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}html.theme--documenter-dark #search-modal .modal-card-body::-webkit-scrollbar,html.theme--documenter-dark #search-modal .filter-tabs::-webkit-scrollbar{height:10px;width:10px;background-color:transparent}html.theme--documenter-dark #search-modal .modal-card-body::-webkit-scrollbar-thumb,html.theme--documenter-dark #search-modal .filter-tabs::-webkit-scrollbar-thumb{background-color:gray;border-radius:1rem}html.theme--documenter-dark #search-modal .modal-card-body::-webkit-scrollbar-track,html.theme--documenter-dark #search-modal .filter-tabs::-webkit-scrollbar-track{-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,0.6);background-color:transparent}html.theme--documenter-dark .w-100{width:100%}html.theme--documenter-dark .gap-2{gap:0.5rem}html.theme--documenter-dark .gap-4{gap:1rem}html.theme--documenter-dark .gap-8{gap:2rem}html.theme--documenter-dark{background-color:#1f2424;font-size:16px;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}html.theme--documenter-dark .ansi span.sgr1{font-weight:bolder}html.theme--documenter-dark .ansi span.sgr2{font-weight:lighter}html.theme--documenter-dark .ansi span.sgr3{font-style:italic}html.theme--documenter-dark .ansi span.sgr4{text-decoration:underline}html.theme--documenter-dark .ansi span.sgr7{color:#1f2424;background-color:#fff}html.theme--documenter-dark .ansi span.sgr8{color:transparent}html.theme--documenter-dark .ansi span.sgr8 span{color:transparent}html.theme--documenter-dark .ansi span.sgr9{text-decoration:line-through}html.theme--documenter-dark .ansi span.sgr30{color:#242424}html.theme--documenter-dark .ansi span.sgr31{color:#f6705f}html.theme--documenter-dark .ansi span.sgr32{color:#4fb43a}html.theme--documenter-dark .ansi span.sgr33{color:#f4c72f}html.theme--documenter-dark .ansi span.sgr34{color:#7587f0}html.theme--documenter-dark .ansi span.sgr35{color:#bc89d3}html.theme--documenter-dark .ansi span.sgr36{color:#49b6ca}html.theme--documenter-dark .ansi span.sgr37{color:#b3bdbe}html.theme--documenter-dark .ansi span.sgr40{background-color:#242424}html.theme--documenter-dark .ansi span.sgr41{background-color:#f6705f}html.theme--documenter-dark .ansi span.sgr42{background-color:#4fb43a}html.theme--documenter-dark .ansi span.sgr43{background-color:#f4c72f}html.theme--documenter-dark .ansi span.sgr44{background-color:#7587f0}html.theme--documenter-dark .ansi span.sgr45{background-color:#bc89d3}html.theme--documenter-dark .ansi span.sgr46{background-color:#49b6ca}html.theme--documenter-dark .ansi span.sgr47{background-color:#b3bdbe}html.theme--documenter-dark .ansi span.sgr90{color:#92a0a2}html.theme--documenter-dark .ansi span.sgr91{color:#ff8674}html.theme--documenter-dark .ansi span.sgr92{color:#79d462}html.theme--documenter-dark .ansi span.sgr93{color:#ffe76b}html.theme--documenter-dark .ansi span.sgr94{color:#8a98ff}html.theme--documenter-dark .ansi span.sgr95{color:#d2a4e6}html.theme--documenter-dark .ansi span.sgr96{color:#6bc8db}html.theme--documenter-dark .ansi span.sgr97{color:#ecf0f1}html.theme--documenter-dark .ansi span.sgr100{background-color:#92a0a2}html.theme--documenter-dark .ansi span.sgr101{background-color:#ff8674}html.theme--documenter-dark .ansi span.sgr102{background-color:#79d462}html.theme--documenter-dark .ansi span.sgr103{background-color:#ffe76b}html.theme--documenter-dark .ansi span.sgr104{background-color:#8a98ff}html.theme--documenter-dark .ansi span.sgr105{background-color:#d2a4e6}html.theme--documenter-dark .ansi span.sgr106{background-color:#6bc8db}html.theme--documenter-dark .ansi span.sgr107{background-color:#ecf0f1}html.theme--documenter-dark code.language-julia-repl>span.hljs-meta{color:#4fb43a;font-weight:bolder}html.theme--documenter-dark .hljs{background:#2b2b2b;color:#f8f8f2}html.theme--documenter-dark .hljs-comment,html.theme--documenter-dark .hljs-quote{color:#d4d0ab}html.theme--documenter-dark .hljs-variable,html.theme--documenter-dark .hljs-template-variable,html.theme--documenter-dark .hljs-tag,html.theme--documenter-dark .hljs-name,html.theme--documenter-dark .hljs-selector-id,html.theme--documenter-dark .hljs-selector-class,html.theme--documenter-dark .hljs-regexp,html.theme--documenter-dark .hljs-deletion{color:#ffa07a}html.theme--documenter-dark .hljs-number,html.theme--documenter-dark .hljs-built_in,html.theme--documenter-dark .hljs-literal,html.theme--documenter-dark .hljs-type,html.theme--documenter-dark .hljs-params,html.theme--documenter-dark .hljs-meta,html.theme--documenter-dark .hljs-link{color:#f5ab35}html.theme--documenter-dark .hljs-attribute{color:#ffd700}html.theme--documenter-dark .hljs-string,html.theme--documenter-dark .hljs-symbol,html.theme--documenter-dark .hljs-bullet,html.theme--documenter-dark .hljs-addition{color:#abe338}html.theme--documenter-dark .hljs-title,html.theme--documenter-dark .hljs-section{color:#00e0e0}html.theme--documenter-dark .hljs-keyword,html.theme--documenter-dark .hljs-selector-tag{color:#dcc6e0}html.theme--documenter-dark .hljs-emphasis{font-style:italic}html.theme--documenter-dark .hljs-strong{font-weight:bold}@media screen and (-ms-high-contrast: active){html.theme--documenter-dark .hljs-addition,html.theme--documenter-dark .hljs-attribute,html.theme--documenter-dark .hljs-built_in,html.theme--documenter-dark .hljs-bullet,html.theme--documenter-dark .hljs-comment,html.theme--documenter-dark .hljs-link,html.theme--documenter-dark .hljs-literal,html.theme--documenter-dark .hljs-meta,html.theme--documenter-dark .hljs-number,html.theme--documenter-dark .hljs-params,html.theme--documenter-dark .hljs-string,html.theme--documenter-dark .hljs-symbol,html.theme--documenter-dark .hljs-type,html.theme--documenter-dark .hljs-quote{color:highlight}html.theme--documenter-dark .hljs-keyword,html.theme--documenter-dark .hljs-selector-tag{font-weight:bold}}html.theme--documenter-dark .hljs-subst{color:#f8f8f2} diff --git a/previews/PR3545/assets/themes/documenter-light.css b/previews/PR3545/assets/themes/documenter-light.css new file mode 100644 index 00000000000..60a317a4c53 --- /dev/null +++ b/previews/PR3545/assets/themes/documenter-light.css @@ -0,0 +1,9 @@ +.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis,.file-cta,.file-name,.select select,.textarea,.input,#documenter .docs-sidebar form.docs-search>input,.button{-moz-appearance:none;-webkit-appearance:none;align-items:center;border:1px solid transparent;border-radius:4px;box-shadow:none;display:inline-flex;font-size:1rem;height:2.5em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(0.5em - 1px);padding-left:calc(0.75em - 1px);padding-right:calc(0.75em - 1px);padding-top:calc(0.5em - 1px);position:relative;vertical-align:top}.pagination-previous:focus,.pagination-next:focus,.pagination-link:focus,.pagination-ellipsis:focus,.file-cta:focus,.file-name:focus,.select select:focus,.textarea:focus,.input:focus,#documenter .docs-sidebar form.docs-search>input:focus,.button:focus,.is-focused.pagination-previous,.is-focused.pagination-next,.is-focused.pagination-link,.is-focused.pagination-ellipsis,.is-focused.file-cta,.is-focused.file-name,.select select.is-focused,.is-focused.textarea,.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-focused.button,.pagination-previous:active,.pagination-next:active,.pagination-link:active,.pagination-ellipsis:active,.file-cta:active,.file-name:active,.select select:active,.textarea:active,.input:active,#documenter .docs-sidebar form.docs-search>input:active,.button:active,.is-active.pagination-previous,.is-active.pagination-next,.is-active.pagination-link,.is-active.pagination-ellipsis,.is-active.file-cta,.is-active.file-name,.select select.is-active,.is-active.textarea,.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.is-active.button{outline:none}.pagination-previous[disabled],.pagination-next[disabled],.pagination-link[disabled],.pagination-ellipsis[disabled],.file-cta[disabled],.file-name[disabled],.select select[disabled],.textarea[disabled],.input[disabled],#documenter .docs-sidebar form.docs-search>input[disabled],.button[disabled],fieldset[disabled] .pagination-previous,fieldset[disabled] .pagination-next,fieldset[disabled] .pagination-link,fieldset[disabled] .pagination-ellipsis,fieldset[disabled] .file-cta,fieldset[disabled] .file-name,fieldset[disabled] .select select,.select fieldset[disabled] select,fieldset[disabled] .textarea,fieldset[disabled] .input,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input,fieldset[disabled] .button{cursor:not-allowed}.tabs,.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis,.breadcrumb,.file,.button,.is-unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.navbar-link:not(.is-arrowless)::after,.select:not(.is-multiple):not(.is-loading)::after{border:3px solid rgba(0,0,0,0);border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:0.625em;margin-top:-0.4375em;pointer-events:none;position:absolute;top:50%;transform:rotate(-45deg);transform-origin:center;width:0.625em}.admonition:not(:last-child),.tabs:not(:last-child),.pagination:not(:last-child),.message:not(:last-child),.level:not(:last-child),.breadcrumb:not(:last-child),.block:not(:last-child),.title:not(:last-child),.subtitle:not(:last-child),.table-container:not(:last-child),.table:not(:last-child),.progress:not(:last-child),.notification:not(:last-child),.content:not(:last-child),.box:not(:last-child){margin-bottom:1.5rem}.modal-close,.delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:9999px;cursor:pointer;pointer-events:auto;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:none;position:relative;vertical-align:top;width:20px}.modal-close::before,.delete::before,.modal-close::after,.delete::after{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.modal-close::before,.delete::before{height:2px;width:50%}.modal-close::after,.delete::after{height:50%;width:2px}.modal-close:hover,.delete:hover,.modal-close:focus,.delete:focus{background-color:rgba(10,10,10,0.3)}.modal-close:active,.delete:active{background-color:rgba(10,10,10,0.4)}.is-small.modal-close,#documenter .docs-sidebar form.docs-search>input.modal-close,.is-small.delete,#documenter .docs-sidebar form.docs-search>input.delete{height:16px;max-height:16px;max-width:16px;min-height:16px;min-width:16px;width:16px}.is-medium.modal-close,.is-medium.delete{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}.is-large.modal-close,.is-large.delete{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}.control.is-loading::after,.select.is-loading::after,.loader,.button.is-loading::after{animation:spinAround 500ms infinite linear;border:2px solid #dbdbdb;border-radius:9999px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}.hero-video,.modal-background,.modal,.image.is-square img,#documenter .docs-sidebar .docs-logo>img.is-square img,.image.is-square .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,.image.is-1by1 img,#documenter .docs-sidebar .docs-logo>img.is-1by1 img,.image.is-1by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,.image.is-5by4 img,#documenter .docs-sidebar .docs-logo>img.is-5by4 img,.image.is-5by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,.image.is-4by3 img,#documenter .docs-sidebar .docs-logo>img.is-4by3 img,.image.is-4by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,.image.is-3by2 img,#documenter .docs-sidebar .docs-logo>img.is-3by2 img,.image.is-3by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,.image.is-5by3 img,#documenter .docs-sidebar .docs-logo>img.is-5by3 img,.image.is-5by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,.image.is-16by9 img,#documenter .docs-sidebar .docs-logo>img.is-16by9 img,.image.is-16by9 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,.image.is-2by1 img,#documenter .docs-sidebar .docs-logo>img.is-2by1 img,.image.is-2by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,.image.is-3by1 img,#documenter .docs-sidebar .docs-logo>img.is-3by1 img,.image.is-3by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,.image.is-4by5 img,#documenter .docs-sidebar .docs-logo>img.is-4by5 img,.image.is-4by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,.image.is-3by4 img,#documenter .docs-sidebar .docs-logo>img.is-3by4 img,.image.is-3by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,.image.is-2by3 img,#documenter .docs-sidebar .docs-logo>img.is-2by3 img,.image.is-2by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,.image.is-3by5 img,#documenter .docs-sidebar .docs-logo>img.is-3by5 img,.image.is-3by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,.image.is-9by16 img,#documenter .docs-sidebar .docs-logo>img.is-9by16 img,.image.is-9by16 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,.image.is-1by2 img,#documenter .docs-sidebar .docs-logo>img.is-1by2 img,.image.is-1by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,.image.is-1by3 img,#documenter .docs-sidebar .docs-logo>img.is-1by3 img,.image.is-1by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio,.is-overlay{bottom:0;left:0;position:absolute;right:0;top:0}.navbar-burger{-moz-appearance:none;-webkit-appearance:none;appearance:none;background:none;border:none;color:currentColor;font-family:inherit;font-size:1em;margin:0;padding:0}.has-text-white{color:#fff !important}a.has-text-white:hover,a.has-text-white:focus{color:#e6e6e6 !important}.has-background-white{background-color:#fff !important}.has-text-black{color:#0a0a0a !important}a.has-text-black:hover,a.has-text-black:focus{color:#000 !important}.has-background-black{background-color:#0a0a0a !important}.has-text-light{color:#f5f5f5 !important}a.has-text-light:hover,a.has-text-light:focus{color:#dbdbdb !important}.has-background-light{background-color:#f5f5f5 !important}.has-text-dark{color:#363636 !important}a.has-text-dark:hover,a.has-text-dark:focus{color:#1c1c1c !important}.has-background-dark{background-color:#363636 !important}.has-text-primary{color:#4eb5de !important}a.has-text-primary:hover,a.has-text-primary:focus{color:#27a1d2 !important}.has-background-primary{background-color:#4eb5de !important}.has-text-primary-light{color:#eef8fc !important}a.has-text-primary-light:hover,a.has-text-primary-light:focus{color:#c3e6f4 !important}.has-background-primary-light{background-color:#eef8fc !important}.has-text-primary-dark{color:#1a6d8e !important}a.has-text-primary-dark:hover,a.has-text-primary-dark:focus{color:#228eb9 !important}.has-background-primary-dark{background-color:#1a6d8e !important}.has-text-link{color:#2e63b8 !important}a.has-text-link:hover,a.has-text-link:focus{color:#244d8f !important}.has-background-link{background-color:#2e63b8 !important}.has-text-link-light{color:#eff3fb !important}a.has-text-link-light:hover,a.has-text-link-light:focus{color:#c6d6f1 !important}.has-background-link-light{background-color:#eff3fb !important}.has-text-link-dark{color:#3169c4 !important}a.has-text-link-dark:hover,a.has-text-link-dark:focus{color:#5485d4 !important}.has-background-link-dark{background-color:#3169c4 !important}.has-text-info{color:#209cee !important}a.has-text-info:hover,a.has-text-info:focus{color:#1081cb !important}.has-background-info{background-color:#209cee !important}.has-text-info-light{color:#ecf7fe !important}a.has-text-info-light:hover,a.has-text-info-light:focus{color:#bde2fa !important}.has-background-info-light{background-color:#ecf7fe !important}.has-text-info-dark{color:#0e72b4 !important}a.has-text-info-dark:hover,a.has-text-info-dark:focus{color:#1190e3 !important}.has-background-info-dark{background-color:#0e72b4 !important}.has-text-success{color:#22c35b !important}a.has-text-success:hover,a.has-text-success:focus{color:#1a9847 !important}.has-background-success{background-color:#22c35b !important}.has-text-success-light{color:#eefcf3 !important}a.has-text-success-light:hover,a.has-text-success-light:focus{color:#c2f4d4 !important}.has-background-success-light{background-color:#eefcf3 !important}.has-text-success-dark{color:#198f43 !important}a.has-text-success-dark:hover,a.has-text-success-dark:focus{color:#21bb57 !important}.has-background-success-dark{background-color:#198f43 !important}.has-text-warning{color:#ffdd57 !important}a.has-text-warning:hover,a.has-text-warning:focus{color:#ffd324 !important}.has-background-warning{background-color:#ffdd57 !important}.has-text-warning-light{color:#fffbeb !important}a.has-text-warning-light:hover,a.has-text-warning-light:focus{color:#fff1b8 !important}.has-background-warning-light{background-color:#fffbeb !important}.has-text-warning-dark{color:#947600 !important}a.has-text-warning-dark:hover,a.has-text-warning-dark:focus{color:#c79f00 !important}.has-background-warning-dark{background-color:#947600 !important}.has-text-danger{color:#da0b00 !important}a.has-text-danger:hover,a.has-text-danger:focus{color:#a70800 !important}.has-background-danger{background-color:#da0b00 !important}.has-text-danger-light{color:#ffeceb !important}a.has-text-danger-light:hover,a.has-text-danger-light:focus{color:#ffbbb8 !important}.has-background-danger-light{background-color:#ffeceb !important}.has-text-danger-dark{color:#f50c00 !important}a.has-text-danger-dark:hover,a.has-text-danger-dark:focus{color:#ff3429 !important}.has-background-danger-dark{background-color:#f50c00 !important}.has-text-black-bis{color:#121212 !important}.has-background-black-bis{background-color:#121212 !important}.has-text-black-ter{color:#242424 !important}.has-background-black-ter{background-color:#242424 !important}.has-text-grey-darker{color:#363636 !important}.has-background-grey-darker{background-color:#363636 !important}.has-text-grey-dark{color:#4a4a4a !important}.has-background-grey-dark{background-color:#4a4a4a !important}.has-text-grey{color:#6b6b6b !important}.has-background-grey{background-color:#6b6b6b !important}.has-text-grey-light{color:#b5b5b5 !important}.has-background-grey-light{background-color:#b5b5b5 !important}.has-text-grey-lighter{color:#dbdbdb !important}.has-background-grey-lighter{background-color:#dbdbdb !important}.has-text-white-ter{color:#f5f5f5 !important}.has-background-white-ter{background-color:#f5f5f5 !important}.has-text-white-bis{color:#fafafa !important}.has-background-white-bis{background-color:#fafafa !important}.is-flex-direction-row{flex-direction:row !important}.is-flex-direction-row-reverse{flex-direction:row-reverse !important}.is-flex-direction-column{flex-direction:column !important}.is-flex-direction-column-reverse{flex-direction:column-reverse !important}.is-flex-wrap-nowrap{flex-wrap:nowrap !important}.is-flex-wrap-wrap{flex-wrap:wrap !important}.is-flex-wrap-wrap-reverse{flex-wrap:wrap-reverse !important}.is-justify-content-flex-start{justify-content:flex-start !important}.is-justify-content-flex-end{justify-content:flex-end !important}.is-justify-content-center{justify-content:center !important}.is-justify-content-space-between{justify-content:space-between !important}.is-justify-content-space-around{justify-content:space-around !important}.is-justify-content-space-evenly{justify-content:space-evenly !important}.is-justify-content-start{justify-content:start !important}.is-justify-content-end{justify-content:end !important}.is-justify-content-left{justify-content:left !important}.is-justify-content-right{justify-content:right !important}.is-align-content-flex-start{align-content:flex-start !important}.is-align-content-flex-end{align-content:flex-end !important}.is-align-content-center{align-content:center !important}.is-align-content-space-between{align-content:space-between !important}.is-align-content-space-around{align-content:space-around !important}.is-align-content-space-evenly{align-content:space-evenly !important}.is-align-content-stretch{align-content:stretch !important}.is-align-content-start{align-content:start !important}.is-align-content-end{align-content:end !important}.is-align-content-baseline{align-content:baseline !important}.is-align-items-stretch{align-items:stretch !important}.is-align-items-flex-start{align-items:flex-start !important}.is-align-items-flex-end{align-items:flex-end !important}.is-align-items-center{align-items:center !important}.is-align-items-baseline{align-items:baseline !important}.is-align-items-start{align-items:start !important}.is-align-items-end{align-items:end !important}.is-align-items-self-start{align-items:self-start !important}.is-align-items-self-end{align-items:self-end !important}.is-align-self-auto{align-self:auto !important}.is-align-self-flex-start{align-self:flex-start !important}.is-align-self-flex-end{align-self:flex-end !important}.is-align-self-center{align-self:center !important}.is-align-self-baseline{align-self:baseline !important}.is-align-self-stretch{align-self:stretch !important}.is-flex-grow-0{flex-grow:0 !important}.is-flex-grow-1{flex-grow:1 !important}.is-flex-grow-2{flex-grow:2 !important}.is-flex-grow-3{flex-grow:3 !important}.is-flex-grow-4{flex-grow:4 !important}.is-flex-grow-5{flex-grow:5 !important}.is-flex-shrink-0{flex-shrink:0 !important}.is-flex-shrink-1{flex-shrink:1 !important}.is-flex-shrink-2{flex-shrink:2 !important}.is-flex-shrink-3{flex-shrink:3 !important}.is-flex-shrink-4{flex-shrink:4 !important}.is-flex-shrink-5{flex-shrink:5 !important}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left !important}.is-pulled-right{float:right !important}.is-radiusless{border-radius:0 !important}.is-shadowless{box-shadow:none !important}.is-clickable{cursor:pointer !important;pointer-events:all !important}.is-clipped{overflow:hidden !important}.is-relative{position:relative !important}.is-marginless{margin:0 !important}.is-paddingless{padding:0 !important}.m-0{margin:0 !important}.mt-0{margin-top:0 !important}.mr-0{margin-right:0 !important}.mb-0{margin-bottom:0 !important}.ml-0{margin-left:0 !important}.mx-0{margin-left:0 !important;margin-right:0 !important}.my-0{margin-top:0 !important;margin-bottom:0 !important}.m-1{margin:.25rem !important}.mt-1{margin-top:.25rem !important}.mr-1{margin-right:.25rem !important}.mb-1{margin-bottom:.25rem !important}.ml-1{margin-left:.25rem !important}.mx-1{margin-left:.25rem !important;margin-right:.25rem !important}.my-1{margin-top:.25rem !important;margin-bottom:.25rem !important}.m-2{margin:.5rem !important}.mt-2{margin-top:.5rem !important}.mr-2{margin-right:.5rem !important}.mb-2{margin-bottom:.5rem !important}.ml-2{margin-left:.5rem !important}.mx-2{margin-left:.5rem !important;margin-right:.5rem !important}.my-2{margin-top:.5rem !important;margin-bottom:.5rem !important}.m-3{margin:.75rem !important}.mt-3{margin-top:.75rem !important}.mr-3{margin-right:.75rem !important}.mb-3{margin-bottom:.75rem !important}.ml-3{margin-left:.75rem !important}.mx-3{margin-left:.75rem !important;margin-right:.75rem !important}.my-3{margin-top:.75rem !important;margin-bottom:.75rem !important}.m-4{margin:1rem !important}.mt-4{margin-top:1rem !important}.mr-4{margin-right:1rem !important}.mb-4{margin-bottom:1rem !important}.ml-4{margin-left:1rem !important}.mx-4{margin-left:1rem !important;margin-right:1rem !important}.my-4{margin-top:1rem !important;margin-bottom:1rem !important}.m-5{margin:1.5rem !important}.mt-5{margin-top:1.5rem !important}.mr-5{margin-right:1.5rem !important}.mb-5{margin-bottom:1.5rem !important}.ml-5{margin-left:1.5rem !important}.mx-5{margin-left:1.5rem !important;margin-right:1.5rem !important}.my-5{margin-top:1.5rem !important;margin-bottom:1.5rem !important}.m-6{margin:3rem !important}.mt-6{margin-top:3rem !important}.mr-6{margin-right:3rem !important}.mb-6{margin-bottom:3rem !important}.ml-6{margin-left:3rem !important}.mx-6{margin-left:3rem !important;margin-right:3rem !important}.my-6{margin-top:3rem !important;margin-bottom:3rem !important}.m-auto{margin:auto !important}.mt-auto{margin-top:auto !important}.mr-auto{margin-right:auto !important}.mb-auto{margin-bottom:auto !important}.ml-auto{margin-left:auto !important}.mx-auto{margin-left:auto !important;margin-right:auto !important}.my-auto{margin-top:auto !important;margin-bottom:auto !important}.p-0{padding:0 !important}.pt-0{padding-top:0 !important}.pr-0{padding-right:0 !important}.pb-0{padding-bottom:0 !important}.pl-0{padding-left:0 !important}.px-0{padding-left:0 !important;padding-right:0 !important}.py-0{padding-top:0 !important;padding-bottom:0 !important}.p-1{padding:.25rem !important}.pt-1{padding-top:.25rem !important}.pr-1{padding-right:.25rem !important}.pb-1{padding-bottom:.25rem !important}.pl-1{padding-left:.25rem !important}.px-1{padding-left:.25rem !important;padding-right:.25rem !important}.py-1{padding-top:.25rem !important;padding-bottom:.25rem !important}.p-2{padding:.5rem !important}.pt-2{padding-top:.5rem !important}.pr-2{padding-right:.5rem !important}.pb-2{padding-bottom:.5rem !important}.pl-2{padding-left:.5rem !important}.px-2{padding-left:.5rem !important;padding-right:.5rem !important}.py-2{padding-top:.5rem !important;padding-bottom:.5rem !important}.p-3{padding:.75rem !important}.pt-3{padding-top:.75rem !important}.pr-3{padding-right:.75rem !important}.pb-3{padding-bottom:.75rem !important}.pl-3{padding-left:.75rem !important}.px-3{padding-left:.75rem !important;padding-right:.75rem !important}.py-3{padding-top:.75rem !important;padding-bottom:.75rem !important}.p-4{padding:1rem !important}.pt-4{padding-top:1rem !important}.pr-4{padding-right:1rem !important}.pb-4{padding-bottom:1rem !important}.pl-4{padding-left:1rem !important}.px-4{padding-left:1rem !important;padding-right:1rem !important}.py-4{padding-top:1rem !important;padding-bottom:1rem !important}.p-5{padding:1.5rem !important}.pt-5{padding-top:1.5rem !important}.pr-5{padding-right:1.5rem !important}.pb-5{padding-bottom:1.5rem !important}.pl-5{padding-left:1.5rem !important}.px-5{padding-left:1.5rem !important;padding-right:1.5rem !important}.py-5{padding-top:1.5rem !important;padding-bottom:1.5rem !important}.p-6{padding:3rem !important}.pt-6{padding-top:3rem !important}.pr-6{padding-right:3rem !important}.pb-6{padding-bottom:3rem !important}.pl-6{padding-left:3rem !important}.px-6{padding-left:3rem !important;padding-right:3rem !important}.py-6{padding-top:3rem !important;padding-bottom:3rem !important}.p-auto{padding:auto !important}.pt-auto{padding-top:auto !important}.pr-auto{padding-right:auto !important}.pb-auto{padding-bottom:auto !important}.pl-auto{padding-left:auto !important}.px-auto{padding-left:auto !important;padding-right:auto !important}.py-auto{padding-top:auto !important;padding-bottom:auto !important}.is-size-1{font-size:3rem !important}.is-size-2{font-size:2.5rem !important}.is-size-3{font-size:2rem !important}.is-size-4{font-size:1.5rem !important}.is-size-5{font-size:1.25rem !important}.is-size-6{font-size:1rem !important}.is-size-7,.docstring>section>a.docs-sourcelink{font-size:.75rem !important}@media screen and (max-width: 768px){.is-size-1-mobile{font-size:3rem !important}.is-size-2-mobile{font-size:2.5rem !important}.is-size-3-mobile{font-size:2rem !important}.is-size-4-mobile{font-size:1.5rem !important}.is-size-5-mobile{font-size:1.25rem !important}.is-size-6-mobile{font-size:1rem !important}.is-size-7-mobile{font-size:.75rem !important}}@media screen and (min-width: 769px),print{.is-size-1-tablet{font-size:3rem !important}.is-size-2-tablet{font-size:2.5rem !important}.is-size-3-tablet{font-size:2rem !important}.is-size-4-tablet{font-size:1.5rem !important}.is-size-5-tablet{font-size:1.25rem !important}.is-size-6-tablet{font-size:1rem !important}.is-size-7-tablet{font-size:.75rem !important}}@media screen and (max-width: 1055px){.is-size-1-touch{font-size:3rem !important}.is-size-2-touch{font-size:2.5rem !important}.is-size-3-touch{font-size:2rem !important}.is-size-4-touch{font-size:1.5rem !important}.is-size-5-touch{font-size:1.25rem !important}.is-size-6-touch{font-size:1rem !important}.is-size-7-touch{font-size:.75rem !important}}@media screen and (min-width: 1056px){.is-size-1-desktop{font-size:3rem !important}.is-size-2-desktop{font-size:2.5rem !important}.is-size-3-desktop{font-size:2rem !important}.is-size-4-desktop{font-size:1.5rem !important}.is-size-5-desktop{font-size:1.25rem !important}.is-size-6-desktop{font-size:1rem !important}.is-size-7-desktop{font-size:.75rem !important}}@media screen and (min-width: 1216px){.is-size-1-widescreen{font-size:3rem !important}.is-size-2-widescreen{font-size:2.5rem !important}.is-size-3-widescreen{font-size:2rem !important}.is-size-4-widescreen{font-size:1.5rem !important}.is-size-5-widescreen{font-size:1.25rem !important}.is-size-6-widescreen{font-size:1rem !important}.is-size-7-widescreen{font-size:.75rem !important}}@media screen and (min-width: 1408px){.is-size-1-fullhd{font-size:3rem !important}.is-size-2-fullhd{font-size:2.5rem !important}.is-size-3-fullhd{font-size:2rem !important}.is-size-4-fullhd{font-size:1.5rem !important}.is-size-5-fullhd{font-size:1.25rem !important}.is-size-6-fullhd{font-size:1rem !important}.is-size-7-fullhd{font-size:.75rem !important}}.has-text-centered{text-align:center !important}.has-text-justified{text-align:justify !important}.has-text-left{text-align:left !important}.has-text-right{text-align:right !important}@media screen and (max-width: 768px){.has-text-centered-mobile{text-align:center !important}}@media screen and (min-width: 769px),print{.has-text-centered-tablet{text-align:center !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-centered-tablet-only{text-align:center !important}}@media screen and (max-width: 1055px){.has-text-centered-touch{text-align:center !important}}@media screen and (min-width: 1056px){.has-text-centered-desktop{text-align:center !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-centered-desktop-only{text-align:center !important}}@media screen and (min-width: 1216px){.has-text-centered-widescreen{text-align:center !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-centered-widescreen-only{text-align:center !important}}@media screen and (min-width: 1408px){.has-text-centered-fullhd{text-align:center !important}}@media screen and (max-width: 768px){.has-text-justified-mobile{text-align:justify !important}}@media screen and (min-width: 769px),print{.has-text-justified-tablet{text-align:justify !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-justified-tablet-only{text-align:justify !important}}@media screen and (max-width: 1055px){.has-text-justified-touch{text-align:justify !important}}@media screen and (min-width: 1056px){.has-text-justified-desktop{text-align:justify !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-justified-desktop-only{text-align:justify !important}}@media screen and (min-width: 1216px){.has-text-justified-widescreen{text-align:justify !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-justified-widescreen-only{text-align:justify !important}}@media screen and (min-width: 1408px){.has-text-justified-fullhd{text-align:justify !important}}@media screen and (max-width: 768px){.has-text-left-mobile{text-align:left !important}}@media screen and (min-width: 769px),print{.has-text-left-tablet{text-align:left !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-left-tablet-only{text-align:left !important}}@media screen and (max-width: 1055px){.has-text-left-touch{text-align:left !important}}@media screen and (min-width: 1056px){.has-text-left-desktop{text-align:left !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-left-desktop-only{text-align:left !important}}@media screen and (min-width: 1216px){.has-text-left-widescreen{text-align:left !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-left-widescreen-only{text-align:left !important}}@media screen and (min-width: 1408px){.has-text-left-fullhd{text-align:left !important}}@media screen and (max-width: 768px){.has-text-right-mobile{text-align:right !important}}@media screen and (min-width: 769px),print{.has-text-right-tablet{text-align:right !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-right-tablet-only{text-align:right !important}}@media screen and (max-width: 1055px){.has-text-right-touch{text-align:right !important}}@media screen and (min-width: 1056px){.has-text-right-desktop{text-align:right !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-right-desktop-only{text-align:right !important}}@media screen and (min-width: 1216px){.has-text-right-widescreen{text-align:right !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-right-widescreen-only{text-align:right !important}}@media screen and (min-width: 1408px){.has-text-right-fullhd{text-align:right !important}}.is-capitalized{text-transform:capitalize !important}.is-lowercase{text-transform:lowercase !important}.is-uppercase{text-transform:uppercase !important}.is-italic{font-style:italic !important}.is-underlined{text-decoration:underline !important}.has-text-weight-light{font-weight:300 !important}.has-text-weight-normal{font-weight:400 !important}.has-text-weight-medium{font-weight:500 !important}.has-text-weight-semibold{font-weight:600 !important}.has-text-weight-bold{font-weight:700 !important}.is-family-primary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-secondary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-sans-serif{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-monospace{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-family-code{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-block{display:block !important}@media screen and (max-width: 768px){.is-block-mobile{display:block !important}}@media screen and (min-width: 769px),print{.is-block-tablet{display:block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-block-tablet-only{display:block !important}}@media screen and (max-width: 1055px){.is-block-touch{display:block !important}}@media screen and (min-width: 1056px){.is-block-desktop{display:block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-block-desktop-only{display:block !important}}@media screen and (min-width: 1216px){.is-block-widescreen{display:block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-block-widescreen-only{display:block !important}}@media screen and (min-width: 1408px){.is-block-fullhd{display:block !important}}.is-flex{display:flex !important}@media screen and (max-width: 768px){.is-flex-mobile{display:flex !important}}@media screen and (min-width: 769px),print{.is-flex-tablet{display:flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-flex-tablet-only{display:flex !important}}@media screen and (max-width: 1055px){.is-flex-touch{display:flex !important}}@media screen and (min-width: 1056px){.is-flex-desktop{display:flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-flex-desktop-only{display:flex !important}}@media screen and (min-width: 1216px){.is-flex-widescreen{display:flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-flex-widescreen-only{display:flex !important}}@media screen and (min-width: 1408px){.is-flex-fullhd{display:flex !important}}.is-inline{display:inline !important}@media screen and (max-width: 768px){.is-inline-mobile{display:inline !important}}@media screen and (min-width: 769px),print{.is-inline-tablet{display:inline !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-tablet-only{display:inline !important}}@media screen and (max-width: 1055px){.is-inline-touch{display:inline !important}}@media screen and (min-width: 1056px){.is-inline-desktop{display:inline !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-desktop-only{display:inline !important}}@media screen and (min-width: 1216px){.is-inline-widescreen{display:inline !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-widescreen-only{display:inline !important}}@media screen and (min-width: 1408px){.is-inline-fullhd{display:inline !important}}.is-inline-block{display:inline-block !important}@media screen and (max-width: 768px){.is-inline-block-mobile{display:inline-block !important}}@media screen and (min-width: 769px),print{.is-inline-block-tablet{display:inline-block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-block-tablet-only{display:inline-block !important}}@media screen and (max-width: 1055px){.is-inline-block-touch{display:inline-block !important}}@media screen and (min-width: 1056px){.is-inline-block-desktop{display:inline-block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-block-desktop-only{display:inline-block !important}}@media screen and (min-width: 1216px){.is-inline-block-widescreen{display:inline-block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-block-widescreen-only{display:inline-block !important}}@media screen and (min-width: 1408px){.is-inline-block-fullhd{display:inline-block !important}}.is-inline-flex{display:inline-flex !important}@media screen and (max-width: 768px){.is-inline-flex-mobile{display:inline-flex !important}}@media screen and (min-width: 769px),print{.is-inline-flex-tablet{display:inline-flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-flex-tablet-only{display:inline-flex !important}}@media screen and (max-width: 1055px){.is-inline-flex-touch{display:inline-flex !important}}@media screen and (min-width: 1056px){.is-inline-flex-desktop{display:inline-flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-flex-desktop-only{display:inline-flex !important}}@media screen and (min-width: 1216px){.is-inline-flex-widescreen{display:inline-flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-flex-widescreen-only{display:inline-flex !important}}@media screen and (min-width: 1408px){.is-inline-flex-fullhd{display:inline-flex !important}}.is-hidden{display:none !important}.is-sr-only{border:none !important;clip:rect(0, 0, 0, 0) !important;height:0.01em !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:0.01em !important}@media screen and (max-width: 768px){.is-hidden-mobile{display:none !important}}@media screen and (min-width: 769px),print{.is-hidden-tablet{display:none !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-hidden-tablet-only{display:none !important}}@media screen and (max-width: 1055px){.is-hidden-touch{display:none !important}}@media screen and (min-width: 1056px){.is-hidden-desktop{display:none !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-hidden-desktop-only{display:none !important}}@media screen and (min-width: 1216px){.is-hidden-widescreen{display:none !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-hidden-widescreen-only{display:none !important}}@media screen and (min-width: 1408px){.is-hidden-fullhd{display:none !important}}.is-invisible{visibility:hidden !important}@media screen and (max-width: 768px){.is-invisible-mobile{visibility:hidden !important}}@media screen and (min-width: 769px),print{.is-invisible-tablet{visibility:hidden !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-invisible-tablet-only{visibility:hidden !important}}@media screen and (max-width: 1055px){.is-invisible-touch{visibility:hidden !important}}@media screen and (min-width: 1056px){.is-invisible-desktop{visibility:hidden !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-invisible-desktop-only{visibility:hidden !important}}@media screen and (min-width: 1216px){.is-invisible-widescreen{visibility:hidden !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-invisible-widescreen-only{visibility:hidden !important}}@media screen and (min-width: 1408px){.is-invisible-fullhd{visibility:hidden !important}}/*! minireset.css v0.0.6 | MIT License | github.com/jgthms/minireset.css */html,body,p,ol,ul,li,dl,dt,dd,blockquote,figure,fieldset,legend,textarea,pre,iframe,hr,h1,h2,h3,h4,h5,h6{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}img,video{height:auto;max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}td:not([align]),th:not([align]){text-align:inherit}html{background-color:#fff;font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}article,aside,figure,footer,header,hgroup,section{display:block}body,button,input,optgroup,select,textarea{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif}code,pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}body{color:#222;font-size:1em;font-weight:400;line-height:1.5}a{color:#2e63b8;cursor:pointer;text-decoration:none}a strong{color:currentColor}a:hover{color:#363636}code{background-color:rgba(0,0,0,0.05);color:#000;font-size:.875em;font-weight:normal;padding:.1em}hr{background-color:#f5f5f5;border:none;display:block;height:2px;margin:1.5rem 0}img{height:auto;max-width:100%}input[type="checkbox"],input[type="radio"]{vertical-align:baseline}small{font-size:.875em}span{font-style:inherit;font-weight:inherit}strong{color:#222;font-weight:700}fieldset{border:none}pre{-webkit-overflow-scrolling:touch;background-color:#f5f5f5;color:#222;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}table td,table th{vertical-align:top}table td:not([align]),table th:not([align]){text-align:inherit}table th{color:#222}@keyframes spinAround{from{transform:rotate(0deg)}to{transform:rotate(359deg)}}.box{background-color:#fff;border-radius:6px;box-shadow:#bbb;color:#222;display:block;padding:1.25rem}a.box:hover,a.box:focus{box-shadow:0 0.5em 1em -0.125em rgba(10,10,10,0.1),0 0 0 1px #2e63b8}a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2),0 0 0 1px #2e63b8}.button{background-color:#fff;border-color:#dbdbdb;border-width:1px;color:#222;cursor:pointer;justify-content:center;padding-bottom:calc(0.5em - 1px);padding-left:1em;padding-right:1em;padding-top:calc(0.5em - 1px);text-align:center;white-space:nowrap}.button strong{color:inherit}.button .icon,.button .icon.is-small,.button #documenter .docs-sidebar form.docs-search>input.icon,#documenter .docs-sidebar .button form.docs-search>input.icon,.button .icon.is-medium,.button .icon.is-large{height:1.5em;width:1.5em}.button .icon:first-child:not(:last-child){margin-left:calc(-0.5em - 1px);margin-right:.25em}.button .icon:last-child:not(:first-child){margin-left:.25em;margin-right:calc(-0.5em - 1px)}.button .icon:first-child:last-child{margin-left:calc(-0.5em - 1px);margin-right:calc(-0.5em - 1px)}.button:hover,.button.is-hovered{border-color:#b5b5b5;color:#363636}.button:focus,.button.is-focused{border-color:#3c5dcd;color:#363636}.button:focus:not(:active),.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.button:active,.button.is-active{border-color:#4a4a4a;color:#363636}.button.is-text{background-color:transparent;border-color:transparent;color:#222;text-decoration:underline}.button.is-text:hover,.button.is-text.is-hovered,.button.is-text:focus,.button.is-text.is-focused{background-color:#f5f5f5;color:#222}.button.is-text:active,.button.is-text.is-active{background-color:#e8e8e8;color:#222}.button.is-text[disabled],fieldset[disabled] .button.is-text{background-color:transparent;border-color:transparent;box-shadow:none}.button.is-ghost{background:none;border-color:rgba(0,0,0,0);color:#2e63b8;text-decoration:none}.button.is-ghost:hover,.button.is-ghost.is-hovered{color:#2e63b8;text-decoration:underline}.button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}.button.is-white:hover,.button.is-white.is-hovered{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.button.is-white:focus,.button.is-white.is-focused{border-color:transparent;color:#0a0a0a}.button.is-white:focus:not(:active),.button.is-white.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.button.is-white:active,.button.is-white.is-active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.button.is-white[disabled],fieldset[disabled] .button.is-white{background-color:#fff;border-color:#fff;box-shadow:none}.button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted:hover,.button.is-white.is-inverted.is-hovered{background-color:#000}.button.is-white.is-inverted[disabled],fieldset[disabled] .button.is-white.is-inverted{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}.button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-white.is-outlined:hover,.button.is-white.is-outlined.is-hovered,.button.is-white.is-outlined:focus,.button.is-white.is-outlined.is-focused{background-color:#fff;border-color:#fff;color:#0a0a0a}.button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-white.is-outlined.is-loading:hover::after,.button.is-white.is-outlined.is-loading.is-hovered::after,.button.is-white.is-outlined.is-loading:focus::after,.button.is-white.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-white.is-outlined[disabled],fieldset[disabled] .button.is-white.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-white.is-inverted.is-outlined:hover,.button.is-white.is-inverted.is-outlined.is-hovered,.button.is-white.is-inverted.is-outlined:focus,.button.is-white.is-inverted.is-outlined.is-focused{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted.is-outlined.is-loading:hover::after,.button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-white.is-inverted.is-outlined.is-loading:focus::after,.button.is-white.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-white.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}.button.is-black:hover,.button.is-black.is-hovered{background-color:#040404;border-color:transparent;color:#fff}.button.is-black:focus,.button.is-black.is-focused{border-color:transparent;color:#fff}.button.is-black:focus:not(:active),.button.is-black.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.button.is-black:active,.button.is-black.is-active{background-color:#000;border-color:transparent;color:#fff}.button.is-black[disabled],fieldset[disabled] .button.is-black{background-color:#0a0a0a;border-color:#0a0a0a;box-shadow:none}.button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted:hover,.button.is-black.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-black.is-inverted[disabled],fieldset[disabled] .button.is-black.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}.button.is-black.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-black.is-outlined:hover,.button.is-black.is-outlined.is-hovered,.button.is-black.is-outlined:focus,.button.is-black.is-outlined.is-focused{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-black.is-outlined.is-loading:hover::after,.button.is-black.is-outlined.is-loading.is-hovered::after,.button.is-black.is-outlined.is-loading:focus::after,.button.is-black.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-black.is-outlined[disabled],fieldset[disabled] .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-black.is-inverted.is-outlined:hover,.button.is-black.is-inverted.is-outlined.is-hovered,.button.is-black.is-inverted.is-outlined:focus,.button.is-black.is-inverted.is-outlined.is-focused{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted.is-outlined.is-loading:hover::after,.button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-black.is-inverted.is-outlined.is-loading:focus::after,.button.is-black.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-black.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-light{background-color:#f5f5f5;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-light:hover,.button.is-light.is-hovered{background-color:#eee;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-light:focus,.button.is-light.is-focused{border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-light:focus:not(:active),.button.is-light.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.button.is-light:active,.button.is-light.is-active{background-color:#e8e8e8;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-light[disabled],fieldset[disabled] .button.is-light{background-color:#f5f5f5;border-color:#f5f5f5;box-shadow:none}.button.is-light.is-inverted{background-color:rgba(0,0,0,0.7);color:#f5f5f5}.button.is-light.is-inverted:hover,.button.is-light.is-inverted.is-hovered{background-color:rgba(0,0,0,0.7)}.button.is-light.is-inverted[disabled],fieldset[disabled] .button.is-light.is-inverted{background-color:rgba(0,0,0,0.7);border-color:transparent;box-shadow:none;color:#f5f5f5}.button.is-light.is-loading::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}.button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}.button.is-light.is-outlined:hover,.button.is-light.is-outlined.is-hovered,.button.is-light.is-outlined:focus,.button.is-light.is-outlined.is-focused{background-color:#f5f5f5;border-color:#f5f5f5;color:rgba(0,0,0,0.7)}.button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-light.is-outlined.is-loading:hover::after,.button.is-light.is-outlined.is-loading.is-hovered::after,.button.is-light.is-outlined.is-loading:focus::after,.button.is-light.is-outlined.is-loading.is-focused::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}.button.is-light.is-outlined[disabled],fieldset[disabled] .button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}.button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);color:rgba(0,0,0,0.7)}.button.is-light.is-inverted.is-outlined:hover,.button.is-light.is-inverted.is-outlined.is-hovered,.button.is-light.is-inverted.is-outlined:focus,.button.is-light.is-inverted.is-outlined.is-focused{background-color:rgba(0,0,0,0.7);color:#f5f5f5}.button.is-light.is-inverted.is-outlined.is-loading:hover::after,.button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-light.is-inverted.is-outlined.is-loading:focus::after,.button.is-light.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-light.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);box-shadow:none;color:rgba(0,0,0,0.7)}.button.is-dark,.content kbd.button{background-color:#363636;border-color:transparent;color:#fff}.button.is-dark:hover,.content kbd.button:hover,.button.is-dark.is-hovered,.content kbd.button.is-hovered{background-color:#2f2f2f;border-color:transparent;color:#fff}.button.is-dark:focus,.content kbd.button:focus,.button.is-dark.is-focused,.content kbd.button.is-focused{border-color:transparent;color:#fff}.button.is-dark:focus:not(:active),.content kbd.button:focus:not(:active),.button.is-dark.is-focused:not(:active),.content kbd.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.button.is-dark:active,.content kbd.button:active,.button.is-dark.is-active,.content kbd.button.is-active{background-color:#292929;border-color:transparent;color:#fff}.button.is-dark[disabled],.content kbd.button[disabled],fieldset[disabled] .button.is-dark,fieldset[disabled] .content kbd.button,.content fieldset[disabled] kbd.button{background-color:#363636;border-color:#363636;box-shadow:none}.button.is-dark.is-inverted,.content kbd.button.is-inverted{background-color:#fff;color:#363636}.button.is-dark.is-inverted:hover,.content kbd.button.is-inverted:hover,.button.is-dark.is-inverted.is-hovered,.content kbd.button.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-dark.is-inverted[disabled],.content kbd.button.is-inverted[disabled],fieldset[disabled] .button.is-dark.is-inverted,fieldset[disabled] .content kbd.button.is-inverted,.content fieldset[disabled] kbd.button.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#363636}.button.is-dark.is-loading::after,.content kbd.button.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-dark.is-outlined,.content kbd.button.is-outlined{background-color:transparent;border-color:#363636;color:#363636}.button.is-dark.is-outlined:hover,.content kbd.button.is-outlined:hover,.button.is-dark.is-outlined.is-hovered,.content kbd.button.is-outlined.is-hovered,.button.is-dark.is-outlined:focus,.content kbd.button.is-outlined:focus,.button.is-dark.is-outlined.is-focused,.content kbd.button.is-outlined.is-focused{background-color:#363636;border-color:#363636;color:#fff}.button.is-dark.is-outlined.is-loading::after,.content kbd.button.is-outlined.is-loading::after{border-color:transparent transparent #363636 #363636 !important}.button.is-dark.is-outlined.is-loading:hover::after,.content kbd.button.is-outlined.is-loading:hover::after,.button.is-dark.is-outlined.is-loading.is-hovered::after,.content kbd.button.is-outlined.is-loading.is-hovered::after,.button.is-dark.is-outlined.is-loading:focus::after,.content kbd.button.is-outlined.is-loading:focus::after,.button.is-dark.is-outlined.is-loading.is-focused::after,.content kbd.button.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-dark.is-outlined[disabled],.content kbd.button.is-outlined[disabled],fieldset[disabled] .button.is-dark.is-outlined,fieldset[disabled] .content kbd.button.is-outlined,.content fieldset[disabled] kbd.button.is-outlined{background-color:transparent;border-color:#363636;box-shadow:none;color:#363636}.button.is-dark.is-inverted.is-outlined,.content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-dark.is-inverted.is-outlined:hover,.content kbd.button.is-inverted.is-outlined:hover,.button.is-dark.is-inverted.is-outlined.is-hovered,.content kbd.button.is-inverted.is-outlined.is-hovered,.button.is-dark.is-inverted.is-outlined:focus,.content kbd.button.is-inverted.is-outlined:focus,.button.is-dark.is-inverted.is-outlined.is-focused,.content kbd.button.is-inverted.is-outlined.is-focused{background-color:#fff;color:#363636}.button.is-dark.is-inverted.is-outlined.is-loading:hover::after,.content kbd.button.is-inverted.is-outlined.is-loading:hover::after,.button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after,.content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-dark.is-inverted.is-outlined.is-loading:focus::after,.content kbd.button.is-inverted.is-outlined.is-loading:focus::after,.button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after,.content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #363636 #363636 !important}.button.is-dark.is-inverted.is-outlined[disabled],.content kbd.button.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-dark.is-inverted.is-outlined,fieldset[disabled] .content kbd.button.is-inverted.is-outlined,.content fieldset[disabled] kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-primary,.docstring>section>a.button.docs-sourcelink{background-color:#4eb5de;border-color:transparent;color:#fff}.button.is-primary:hover,.docstring>section>a.button.docs-sourcelink:hover,.button.is-primary.is-hovered,.docstring>section>a.button.is-hovered.docs-sourcelink{background-color:#43b1dc;border-color:transparent;color:#fff}.button.is-primary:focus,.docstring>section>a.button.docs-sourcelink:focus,.button.is-primary.is-focused,.docstring>section>a.button.is-focused.docs-sourcelink{border-color:transparent;color:#fff}.button.is-primary:focus:not(:active),.docstring>section>a.button.docs-sourcelink:focus:not(:active),.button.is-primary.is-focused:not(:active),.docstring>section>a.button.is-focused.docs-sourcelink:not(:active){box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.button.is-primary:active,.docstring>section>a.button.docs-sourcelink:active,.button.is-primary.is-active,.docstring>section>a.button.is-active.docs-sourcelink{background-color:#39acda;border-color:transparent;color:#fff}.button.is-primary[disabled],.docstring>section>a.button.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary,fieldset[disabled] .docstring>section>a.button.docs-sourcelink{background-color:#4eb5de;border-color:#4eb5de;box-shadow:none}.button.is-primary.is-inverted,.docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;color:#4eb5de}.button.is-primary.is-inverted:hover,.docstring>section>a.button.is-inverted.docs-sourcelink:hover,.button.is-primary.is-inverted.is-hovered,.docstring>section>a.button.is-inverted.is-hovered.docs-sourcelink{background-color:#f2f2f2}.button.is-primary.is-inverted[disabled],.docstring>section>a.button.is-inverted.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-inverted,fieldset[disabled] .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;border-color:transparent;box-shadow:none;color:#4eb5de}.button.is-primary.is-loading::after,.docstring>section>a.button.is-loading.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}.button.is-primary.is-outlined,.docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#4eb5de;color:#4eb5de}.button.is-primary.is-outlined:hover,.docstring>section>a.button.is-outlined.docs-sourcelink:hover,.button.is-primary.is-outlined.is-hovered,.docstring>section>a.button.is-outlined.is-hovered.docs-sourcelink,.button.is-primary.is-outlined:focus,.docstring>section>a.button.is-outlined.docs-sourcelink:focus,.button.is-primary.is-outlined.is-focused,.docstring>section>a.button.is-outlined.is-focused.docs-sourcelink{background-color:#4eb5de;border-color:#4eb5de;color:#fff}.button.is-primary.is-outlined.is-loading::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink::after{border-color:transparent transparent #4eb5de #4eb5de !important}.button.is-primary.is-outlined.is-loading:hover::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:hover::after,.button.is-primary.is-outlined.is-loading.is-hovered::after,.docstring>section>a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after,.button.is-primary.is-outlined.is-loading:focus::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:focus::after,.button.is-primary.is-outlined.is-loading.is-focused::after,.docstring>section>a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}.button.is-primary.is-outlined[disabled],.docstring>section>a.button.is-outlined.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-outlined,fieldset[disabled] .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#4eb5de;box-shadow:none;color:#4eb5de}.button.is-primary.is-inverted.is-outlined,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;color:#fff}.button.is-primary.is-inverted.is-outlined:hover,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:hover,.button.is-primary.is-inverted.is-outlined.is-hovered,.docstring>section>a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink,.button.is-primary.is-inverted.is-outlined:focus,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:focus,.button.is-primary.is-inverted.is-outlined.is-focused,.docstring>section>a.button.is-inverted.is-outlined.is-focused.docs-sourcelink{background-color:#fff;color:#4eb5de}.button.is-primary.is-inverted.is-outlined.is-loading:hover::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after,.button.is-primary.is-inverted.is-outlined.is-loading:focus::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #4eb5de #4eb5de !important}.button.is-primary.is-inverted.is-outlined[disabled],.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-inverted.is-outlined,fieldset[disabled] .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-primary.is-light,.docstring>section>a.button.is-light.docs-sourcelink{background-color:#eef8fc;color:#1a6d8e}.button.is-primary.is-light:hover,.docstring>section>a.button.is-light.docs-sourcelink:hover,.button.is-primary.is-light.is-hovered,.docstring>section>a.button.is-light.is-hovered.docs-sourcelink{background-color:#e3f3fa;border-color:transparent;color:#1a6d8e}.button.is-primary.is-light:active,.docstring>section>a.button.is-light.docs-sourcelink:active,.button.is-primary.is-light.is-active,.docstring>section>a.button.is-light.is-active.docs-sourcelink{background-color:#d8eff8;border-color:transparent;color:#1a6d8e}.button.is-link{background-color:#2e63b8;border-color:transparent;color:#fff}.button.is-link:hover,.button.is-link.is-hovered{background-color:#2b5eae;border-color:transparent;color:#fff}.button.is-link:focus,.button.is-link.is-focused{border-color:transparent;color:#fff}.button.is-link:focus:not(:active),.button.is-link.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.button.is-link:active,.button.is-link.is-active{background-color:#2958a4;border-color:transparent;color:#fff}.button.is-link[disabled],fieldset[disabled] .button.is-link{background-color:#2e63b8;border-color:#2e63b8;box-shadow:none}.button.is-link.is-inverted{background-color:#fff;color:#2e63b8}.button.is-link.is-inverted:hover,.button.is-link.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-link.is-inverted[disabled],fieldset[disabled] .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#2e63b8}.button.is-link.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-link.is-outlined{background-color:transparent;border-color:#2e63b8;color:#2e63b8}.button.is-link.is-outlined:hover,.button.is-link.is-outlined.is-hovered,.button.is-link.is-outlined:focus,.button.is-link.is-outlined.is-focused{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #2e63b8 #2e63b8 !important}.button.is-link.is-outlined.is-loading:hover::after,.button.is-link.is-outlined.is-loading.is-hovered::after,.button.is-link.is-outlined.is-loading:focus::after,.button.is-link.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-link.is-outlined[disabled],fieldset[disabled] .button.is-link.is-outlined{background-color:transparent;border-color:#2e63b8;box-shadow:none;color:#2e63b8}.button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-link.is-inverted.is-outlined:hover,.button.is-link.is-inverted.is-outlined.is-hovered,.button.is-link.is-inverted.is-outlined:focus,.button.is-link.is-inverted.is-outlined.is-focused{background-color:#fff;color:#2e63b8}.button.is-link.is-inverted.is-outlined.is-loading:hover::after,.button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-link.is-inverted.is-outlined.is-loading:focus::after,.button.is-link.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #2e63b8 #2e63b8 !important}.button.is-link.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-link.is-light{background-color:#eff3fb;color:#3169c4}.button.is-link.is-light:hover,.button.is-link.is-light.is-hovered{background-color:#e4ecf8;border-color:transparent;color:#3169c4}.button.is-link.is-light:active,.button.is-link.is-light.is-active{background-color:#dae5f6;border-color:transparent;color:#3169c4}.button.is-info{background-color:#209cee;border-color:transparent;color:#fff}.button.is-info:hover,.button.is-info.is-hovered{background-color:#1497ed;border-color:transparent;color:#fff}.button.is-info:focus,.button.is-info.is-focused{border-color:transparent;color:#fff}.button.is-info:focus:not(:active),.button.is-info.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.button.is-info:active,.button.is-info.is-active{background-color:#1190e3;border-color:transparent;color:#fff}.button.is-info[disabled],fieldset[disabled] .button.is-info{background-color:#209cee;border-color:#209cee;box-shadow:none}.button.is-info.is-inverted{background-color:#fff;color:#209cee}.button.is-info.is-inverted:hover,.button.is-info.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-info.is-inverted[disabled],fieldset[disabled] .button.is-info.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#209cee}.button.is-info.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-info.is-outlined{background-color:transparent;border-color:#209cee;color:#209cee}.button.is-info.is-outlined:hover,.button.is-info.is-outlined.is-hovered,.button.is-info.is-outlined:focus,.button.is-info.is-outlined.is-focused{background-color:#209cee;border-color:#209cee;color:#fff}.button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #209cee #209cee !important}.button.is-info.is-outlined.is-loading:hover::after,.button.is-info.is-outlined.is-loading.is-hovered::after,.button.is-info.is-outlined.is-loading:focus::after,.button.is-info.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-info.is-outlined[disabled],fieldset[disabled] .button.is-info.is-outlined{background-color:transparent;border-color:#209cee;box-shadow:none;color:#209cee}.button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-info.is-inverted.is-outlined:hover,.button.is-info.is-inverted.is-outlined.is-hovered,.button.is-info.is-inverted.is-outlined:focus,.button.is-info.is-inverted.is-outlined.is-focused{background-color:#fff;color:#209cee}.button.is-info.is-inverted.is-outlined.is-loading:hover::after,.button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-info.is-inverted.is-outlined.is-loading:focus::after,.button.is-info.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #209cee #209cee !important}.button.is-info.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-info.is-light{background-color:#ecf7fe;color:#0e72b4}.button.is-info.is-light:hover,.button.is-info.is-light.is-hovered{background-color:#e0f1fd;border-color:transparent;color:#0e72b4}.button.is-info.is-light:active,.button.is-info.is-light.is-active{background-color:#d4ecfc;border-color:transparent;color:#0e72b4}.button.is-success{background-color:#22c35b;border-color:transparent;color:#fff}.button.is-success:hover,.button.is-success.is-hovered{background-color:#20b856;border-color:transparent;color:#fff}.button.is-success:focus,.button.is-success.is-focused{border-color:transparent;color:#fff}.button.is-success:focus:not(:active),.button.is-success.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.button.is-success:active,.button.is-success.is-active{background-color:#1ead51;border-color:transparent;color:#fff}.button.is-success[disabled],fieldset[disabled] .button.is-success{background-color:#22c35b;border-color:#22c35b;box-shadow:none}.button.is-success.is-inverted{background-color:#fff;color:#22c35b}.button.is-success.is-inverted:hover,.button.is-success.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-success.is-inverted[disabled],fieldset[disabled] .button.is-success.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#22c35b}.button.is-success.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-success.is-outlined{background-color:transparent;border-color:#22c35b;color:#22c35b}.button.is-success.is-outlined:hover,.button.is-success.is-outlined.is-hovered,.button.is-success.is-outlined:focus,.button.is-success.is-outlined.is-focused{background-color:#22c35b;border-color:#22c35b;color:#fff}.button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #22c35b #22c35b !important}.button.is-success.is-outlined.is-loading:hover::after,.button.is-success.is-outlined.is-loading.is-hovered::after,.button.is-success.is-outlined.is-loading:focus::after,.button.is-success.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-success.is-outlined[disabled],fieldset[disabled] .button.is-success.is-outlined{background-color:transparent;border-color:#22c35b;box-shadow:none;color:#22c35b}.button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-success.is-inverted.is-outlined:hover,.button.is-success.is-inverted.is-outlined.is-hovered,.button.is-success.is-inverted.is-outlined:focus,.button.is-success.is-inverted.is-outlined.is-focused{background-color:#fff;color:#22c35b}.button.is-success.is-inverted.is-outlined.is-loading:hover::after,.button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-success.is-inverted.is-outlined.is-loading:focus::after,.button.is-success.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #22c35b #22c35b !important}.button.is-success.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-success.is-light{background-color:#eefcf3;color:#198f43}.button.is-success.is-light:hover,.button.is-success.is-light.is-hovered{background-color:#e3faeb;border-color:transparent;color:#198f43}.button.is-success.is-light:active,.button.is-success.is-light.is-active{background-color:#d8f8e3;border-color:transparent;color:#198f43}.button.is-warning{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:hover,.button.is-warning.is-hovered{background-color:#ffda4a;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:focus,.button.is-warning.is-focused{border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:focus:not(:active),.button.is-warning.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.button.is-warning:active,.button.is-warning.is-active{background-color:#ffd83e;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning[disabled],fieldset[disabled] .button.is-warning{background-color:#ffdd57;border-color:#ffdd57;box-shadow:none}.button.is-warning.is-inverted{background-color:rgba(0,0,0,0.7);color:#ffdd57}.button.is-warning.is-inverted:hover,.button.is-warning.is-inverted.is-hovered{background-color:rgba(0,0,0,0.7)}.button.is-warning.is-inverted[disabled],fieldset[disabled] .button.is-warning.is-inverted{background-color:rgba(0,0,0,0.7);border-color:transparent;box-shadow:none;color:#ffdd57}.button.is-warning.is-loading::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}.button.is-warning.is-outlined{background-color:transparent;border-color:#ffdd57;color:#ffdd57}.button.is-warning.is-outlined:hover,.button.is-warning.is-outlined.is-hovered,.button.is-warning.is-outlined:focus,.button.is-warning.is-outlined.is-focused{background-color:#ffdd57;border-color:#ffdd57;color:rgba(0,0,0,0.7)}.button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #ffdd57 #ffdd57 !important}.button.is-warning.is-outlined.is-loading:hover::after,.button.is-warning.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-outlined.is-loading:focus::after,.button.is-warning.is-outlined.is-loading.is-focused::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}.button.is-warning.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-outlined{background-color:transparent;border-color:#ffdd57;box-shadow:none;color:#ffdd57}.button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);color:rgba(0,0,0,0.7)}.button.is-warning.is-inverted.is-outlined:hover,.button.is-warning.is-inverted.is-outlined.is-hovered,.button.is-warning.is-inverted.is-outlined:focus,.button.is-warning.is-inverted.is-outlined.is-focused{background-color:rgba(0,0,0,0.7);color:#ffdd57}.button.is-warning.is-inverted.is-outlined.is-loading:hover::after,.button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-inverted.is-outlined.is-loading:focus::after,.button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ffdd57 #ffdd57 !important}.button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);box-shadow:none;color:rgba(0,0,0,0.7)}.button.is-warning.is-light{background-color:#fffbeb;color:#947600}.button.is-warning.is-light:hover,.button.is-warning.is-light.is-hovered{background-color:#fff8de;border-color:transparent;color:#947600}.button.is-warning.is-light:active,.button.is-warning.is-light.is-active{background-color:#fff6d1;border-color:transparent;color:#947600}.button.is-danger{background-color:#da0b00;border-color:transparent;color:#fff}.button.is-danger:hover,.button.is-danger.is-hovered{background-color:#cd0a00;border-color:transparent;color:#fff}.button.is-danger:focus,.button.is-danger.is-focused{border-color:transparent;color:#fff}.button.is-danger:focus:not(:active),.button.is-danger.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.button.is-danger:active,.button.is-danger.is-active{background-color:#c10a00;border-color:transparent;color:#fff}.button.is-danger[disabled],fieldset[disabled] .button.is-danger{background-color:#da0b00;border-color:#da0b00;box-shadow:none}.button.is-danger.is-inverted{background-color:#fff;color:#da0b00}.button.is-danger.is-inverted:hover,.button.is-danger.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-danger.is-inverted[disabled],fieldset[disabled] .button.is-danger.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#da0b00}.button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-danger.is-outlined{background-color:transparent;border-color:#da0b00;color:#da0b00}.button.is-danger.is-outlined:hover,.button.is-danger.is-outlined.is-hovered,.button.is-danger.is-outlined:focus,.button.is-danger.is-outlined.is-focused{background-color:#da0b00;border-color:#da0b00;color:#fff}.button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #da0b00 #da0b00 !important}.button.is-danger.is-outlined.is-loading:hover::after,.button.is-danger.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-outlined.is-loading:focus::after,.button.is-danger.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-danger.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-outlined{background-color:transparent;border-color:#da0b00;box-shadow:none;color:#da0b00}.button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-danger.is-inverted.is-outlined:hover,.button.is-danger.is-inverted.is-outlined.is-hovered,.button.is-danger.is-inverted.is-outlined:focus,.button.is-danger.is-inverted.is-outlined.is-focused{background-color:#fff;color:#da0b00}.button.is-danger.is-inverted.is-outlined.is-loading:hover::after,.button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-inverted.is-outlined.is-loading:focus::after,.button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #da0b00 #da0b00 !important}.button.is-danger.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-danger.is-light{background-color:#ffeceb;color:#f50c00}.button.is-danger.is-light:hover,.button.is-danger.is-light.is-hovered{background-color:#ffe0de;border-color:transparent;color:#f50c00}.button.is-danger.is-light:active,.button.is-danger.is-light.is-active{background-color:#ffd3d1;border-color:transparent;color:#f50c00}.button.is-small,#documenter .docs-sidebar form.docs-search>input.button{font-size:.75rem}.button.is-small:not(.is-rounded),#documenter .docs-sidebar form.docs-search>input.button:not(.is-rounded){border-radius:2px}.button.is-normal{font-size:1rem}.button.is-medium{font-size:1.25rem}.button.is-large{font-size:1.5rem}.button[disabled],fieldset[disabled] .button{background-color:#fff;border-color:#dbdbdb;box-shadow:none;opacity:.5}.button.is-fullwidth{display:flex;width:100%}.button.is-loading{color:transparent !important;pointer-events:none}.button.is-loading::after{position:absolute;left:calc(50% - (1em * 0.5));top:calc(50% - (1em * 0.5));position:absolute !important}.button.is-static{background-color:#f5f5f5;border-color:#dbdbdb;color:#6b6b6b;box-shadow:none;pointer-events:none}.button.is-rounded,#documenter .docs-sidebar form.docs-search>input.button{border-radius:9999px;padding-left:calc(1em + 0.25em);padding-right:calc(1em + 0.25em)}.buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.buttons .button{margin-bottom:0.5rem}.buttons .button:not(:last-child):not(.is-fullwidth){margin-right:.5rem}.buttons:last-child{margin-bottom:-0.5rem}.buttons:not(:last-child){margin-bottom:1rem}.buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large){font-size:.75rem}.buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large):not(.is-rounded){border-radius:2px}.buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large){font-size:1.25rem}.buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium){font-size:1.5rem}.buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}.buttons.has-addons .button:last-child{margin-right:0}.buttons.has-addons .button:hover,.buttons.has-addons .button.is-hovered{z-index:2}.buttons.has-addons .button:focus,.buttons.has-addons .button.is-focused,.buttons.has-addons .button:active,.buttons.has-addons .button.is-active,.buttons.has-addons .button.is-selected{z-index:3}.buttons.has-addons .button:focus:hover,.buttons.has-addons .button.is-focused:hover,.buttons.has-addons .button:active:hover,.buttons.has-addons .button.is-active:hover,.buttons.has-addons .button.is-selected:hover{z-index:4}.buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}.buttons.is-centered{justify-content:center}.buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}.buttons.is-right{justify-content:flex-end}.buttons.is-right:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}@media screen and (max-width: 768px){.button.is-responsive.is-small,#documenter .docs-sidebar form.docs-search>input.is-responsive{font-size:.5625rem}.button.is-responsive,.button.is-responsive.is-normal{font-size:.65625rem}.button.is-responsive.is-medium{font-size:.75rem}.button.is-responsive.is-large{font-size:1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.button.is-responsive.is-small,#documenter .docs-sidebar form.docs-search>input.is-responsive{font-size:.65625rem}.button.is-responsive,.button.is-responsive.is-normal{font-size:.75rem}.button.is-responsive.is-medium{font-size:1rem}.button.is-responsive.is-large{font-size:1.25rem}}.container{flex-grow:1;margin:0 auto;position:relative;width:auto}.container.is-fluid{max-width:none !important;padding-left:32px;padding-right:32px;width:100%}@media screen and (min-width: 1056px){.container{max-width:992px}}@media screen and (max-width: 1215px){.container.is-widescreen:not(.is-max-desktop){max-width:1152px}}@media screen and (max-width: 1407px){.container.is-fullhd:not(.is-max-desktop):not(.is-max-widescreen){max-width:1344px}}@media screen and (min-width: 1216px){.container:not(.is-max-desktop){max-width:1152px}}@media screen and (min-width: 1408px){.container:not(.is-max-desktop):not(.is-max-widescreen){max-width:1344px}}.content li+li{margin-top:0.25em}.content p:not(:last-child),.content dl:not(:last-child),.content ol:not(:last-child),.content ul:not(:last-child),.content blockquote:not(:last-child),.content pre:not(:last-child),.content table:not(:last-child){margin-bottom:1em}.content h1,.content h2,.content h3,.content h4,.content h5,.content h6{color:#222;font-weight:600;line-height:1.125}.content h1{font-size:2em;margin-bottom:0.5em}.content h1:not(:first-child){margin-top:1em}.content h2{font-size:1.75em;margin-bottom:0.5714em}.content h2:not(:first-child){margin-top:1.1428em}.content h3{font-size:1.5em;margin-bottom:0.6666em}.content h3:not(:first-child){margin-top:1.3333em}.content h4{font-size:1.25em;margin-bottom:0.8em}.content h5{font-size:1.125em;margin-bottom:0.8888em}.content h6{font-size:1em;margin-bottom:1em}.content blockquote{background-color:#f5f5f5;border-left:5px solid #dbdbdb;padding:1.25em 1.5em}.content ol{list-style-position:outside;margin-left:2em;margin-top:1em}.content ol:not([type]){list-style-type:decimal}.content ol.is-lower-alpha:not([type]){list-style-type:lower-alpha}.content ol.is-lower-roman:not([type]){list-style-type:lower-roman}.content ol.is-upper-alpha:not([type]){list-style-type:upper-alpha}.content ol.is-upper-roman:not([type]){list-style-type:upper-roman}.content ul{list-style:disc outside;margin-left:2em;margin-top:1em}.content ul ul{list-style-type:circle;margin-top:0.5em}.content ul ul ul{list-style-type:square}.content dd{margin-left:2em}.content figure{margin-left:2em;margin-right:2em;text-align:center}.content figure:not(:first-child){margin-top:2em}.content figure:not(:last-child){margin-bottom:2em}.content figure img{display:inline-block}.content figure figcaption{font-style:italic}.content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:0;white-space:pre;word-wrap:normal}.content sup,.content sub{font-size:75%}.content table{width:100%}.content table td,.content table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}.content table th{color:#222}.content table th:not([align]){text-align:inherit}.content table thead td,.content table thead th{border-width:0 0 2px;color:#222}.content table tfoot td,.content table tfoot th{border-width:2px 0 0;color:#222}.content table tbody tr:last-child td,.content table tbody tr:last-child th{border-bottom-width:0}.content .tabs li+li{margin-top:0}.content.is-small,#documenter .docs-sidebar form.docs-search>input.content{font-size:.75rem}.content.is-normal{font-size:1rem}.content.is-medium{font-size:1.25rem}.content.is-large{font-size:1.5rem}.icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}.icon.is-small,#documenter .docs-sidebar form.docs-search>input.icon{height:1rem;width:1rem}.icon.is-medium{height:2rem;width:2rem}.icon.is-large{height:3rem;width:3rem}.icon-text{align-items:flex-start;color:inherit;display:inline-flex;flex-wrap:wrap;line-height:1.5rem;vertical-align:top}.icon-text .icon{flex-grow:0;flex-shrink:0}.icon-text .icon:not(:last-child){margin-right:.25em}.icon-text .icon:not(:first-child){margin-left:.25em}div.icon-text{display:flex}.image,#documenter .docs-sidebar .docs-logo>img{display:block;position:relative}.image img,#documenter .docs-sidebar .docs-logo>img img{display:block;height:auto;width:100%}.image img.is-rounded,#documenter .docs-sidebar .docs-logo>img img.is-rounded{border-radius:9999px}.image.is-fullwidth,#documenter .docs-sidebar .docs-logo>img.is-fullwidth{width:100%}.image.is-square img,#documenter .docs-sidebar .docs-logo>img.is-square img,.image.is-square .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,.image.is-1by1 img,#documenter .docs-sidebar .docs-logo>img.is-1by1 img,.image.is-1by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,.image.is-5by4 img,#documenter .docs-sidebar .docs-logo>img.is-5by4 img,.image.is-5by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,.image.is-4by3 img,#documenter .docs-sidebar .docs-logo>img.is-4by3 img,.image.is-4by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,.image.is-3by2 img,#documenter .docs-sidebar .docs-logo>img.is-3by2 img,.image.is-3by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,.image.is-5by3 img,#documenter .docs-sidebar .docs-logo>img.is-5by3 img,.image.is-5by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,.image.is-16by9 img,#documenter .docs-sidebar .docs-logo>img.is-16by9 img,.image.is-16by9 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,.image.is-2by1 img,#documenter .docs-sidebar .docs-logo>img.is-2by1 img,.image.is-2by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,.image.is-3by1 img,#documenter .docs-sidebar .docs-logo>img.is-3by1 img,.image.is-3by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,.image.is-4by5 img,#documenter .docs-sidebar .docs-logo>img.is-4by5 img,.image.is-4by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,.image.is-3by4 img,#documenter .docs-sidebar .docs-logo>img.is-3by4 img,.image.is-3by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,.image.is-2by3 img,#documenter .docs-sidebar .docs-logo>img.is-2by3 img,.image.is-2by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,.image.is-3by5 img,#documenter .docs-sidebar .docs-logo>img.is-3by5 img,.image.is-3by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,.image.is-9by16 img,#documenter .docs-sidebar .docs-logo>img.is-9by16 img,.image.is-9by16 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,.image.is-1by2 img,#documenter .docs-sidebar .docs-logo>img.is-1by2 img,.image.is-1by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,.image.is-1by3 img,#documenter .docs-sidebar .docs-logo>img.is-1by3 img,.image.is-1by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio{height:100%;width:100%}.image.is-square,#documenter .docs-sidebar .docs-logo>img.is-square,.image.is-1by1,#documenter .docs-sidebar .docs-logo>img.is-1by1{padding-top:100%}.image.is-5by4,#documenter .docs-sidebar .docs-logo>img.is-5by4{padding-top:80%}.image.is-4by3,#documenter .docs-sidebar .docs-logo>img.is-4by3{padding-top:75%}.image.is-3by2,#documenter .docs-sidebar .docs-logo>img.is-3by2{padding-top:66.6666%}.image.is-5by3,#documenter .docs-sidebar .docs-logo>img.is-5by3{padding-top:60%}.image.is-16by9,#documenter .docs-sidebar .docs-logo>img.is-16by9{padding-top:56.25%}.image.is-2by1,#documenter .docs-sidebar .docs-logo>img.is-2by1{padding-top:50%}.image.is-3by1,#documenter .docs-sidebar .docs-logo>img.is-3by1{padding-top:33.3333%}.image.is-4by5,#documenter .docs-sidebar .docs-logo>img.is-4by5{padding-top:125%}.image.is-3by4,#documenter .docs-sidebar .docs-logo>img.is-3by4{padding-top:133.3333%}.image.is-2by3,#documenter .docs-sidebar .docs-logo>img.is-2by3{padding-top:150%}.image.is-3by5,#documenter .docs-sidebar .docs-logo>img.is-3by5{padding-top:166.6666%}.image.is-9by16,#documenter .docs-sidebar .docs-logo>img.is-9by16{padding-top:177.7777%}.image.is-1by2,#documenter .docs-sidebar .docs-logo>img.is-1by2{padding-top:200%}.image.is-1by3,#documenter .docs-sidebar .docs-logo>img.is-1by3{padding-top:300%}.image.is-16x16,#documenter .docs-sidebar .docs-logo>img.is-16x16{height:16px;width:16px}.image.is-24x24,#documenter .docs-sidebar .docs-logo>img.is-24x24{height:24px;width:24px}.image.is-32x32,#documenter .docs-sidebar .docs-logo>img.is-32x32{height:32px;width:32px}.image.is-48x48,#documenter .docs-sidebar .docs-logo>img.is-48x48{height:48px;width:48px}.image.is-64x64,#documenter .docs-sidebar .docs-logo>img.is-64x64{height:64px;width:64px}.image.is-96x96,#documenter .docs-sidebar .docs-logo>img.is-96x96{height:96px;width:96px}.image.is-128x128,#documenter .docs-sidebar .docs-logo>img.is-128x128{height:128px;width:128px}.notification{background-color:#f5f5f5;border-radius:4px;position:relative;padding:1.25rem 2.5rem 1.25rem 1.5rem}.notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}.notification strong{color:currentColor}.notification code,.notification pre{background:#fff}.notification pre code{background:transparent}.notification>.delete{right:.5rem;position:absolute;top:0.5rem}.notification .title,.notification .subtitle,.notification .content{color:currentColor}.notification.is-white{background-color:#fff;color:#0a0a0a}.notification.is-black{background-color:#0a0a0a;color:#fff}.notification.is-light{background-color:#f5f5f5;color:rgba(0,0,0,0.7)}.notification.is-dark,.content kbd.notification{background-color:#363636;color:#fff}.notification.is-primary,.docstring>section>a.notification.docs-sourcelink{background-color:#4eb5de;color:#fff}.notification.is-primary.is-light,.docstring>section>a.notification.is-light.docs-sourcelink{background-color:#eef8fc;color:#1a6d8e}.notification.is-link{background-color:#2e63b8;color:#fff}.notification.is-link.is-light{background-color:#eff3fb;color:#3169c4}.notification.is-info{background-color:#209cee;color:#fff}.notification.is-info.is-light{background-color:#ecf7fe;color:#0e72b4}.notification.is-success{background-color:#22c35b;color:#fff}.notification.is-success.is-light{background-color:#eefcf3;color:#198f43}.notification.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.notification.is-warning.is-light{background-color:#fffbeb;color:#947600}.notification.is-danger{background-color:#da0b00;color:#fff}.notification.is-danger.is-light{background-color:#ffeceb;color:#f50c00}.progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:9999px;display:block;height:1rem;overflow:hidden;padding:0;width:100%}.progress::-webkit-progress-bar{background-color:#ededed}.progress::-webkit-progress-value{background-color:#222}.progress::-moz-progress-bar{background-color:#222}.progress::-ms-fill{background-color:#222;border:none}.progress.is-white::-webkit-progress-value{background-color:#fff}.progress.is-white::-moz-progress-bar{background-color:#fff}.progress.is-white::-ms-fill{background-color:#fff}.progress.is-white:indeterminate{background-image:linear-gradient(to right, #fff 30%, #ededed 30%)}.progress.is-black::-webkit-progress-value{background-color:#0a0a0a}.progress.is-black::-moz-progress-bar{background-color:#0a0a0a}.progress.is-black::-ms-fill{background-color:#0a0a0a}.progress.is-black:indeterminate{background-image:linear-gradient(to right, #0a0a0a 30%, #ededed 30%)}.progress.is-light::-webkit-progress-value{background-color:#f5f5f5}.progress.is-light::-moz-progress-bar{background-color:#f5f5f5}.progress.is-light::-ms-fill{background-color:#f5f5f5}.progress.is-light:indeterminate{background-image:linear-gradient(to right, #f5f5f5 30%, #ededed 30%)}.progress.is-dark::-webkit-progress-value,.content kbd.progress::-webkit-progress-value{background-color:#363636}.progress.is-dark::-moz-progress-bar,.content kbd.progress::-moz-progress-bar{background-color:#363636}.progress.is-dark::-ms-fill,.content kbd.progress::-ms-fill{background-color:#363636}.progress.is-dark:indeterminate,.content kbd.progress:indeterminate{background-image:linear-gradient(to right, #363636 30%, #ededed 30%)}.progress.is-primary::-webkit-progress-value,.docstring>section>a.progress.docs-sourcelink::-webkit-progress-value{background-color:#4eb5de}.progress.is-primary::-moz-progress-bar,.docstring>section>a.progress.docs-sourcelink::-moz-progress-bar{background-color:#4eb5de}.progress.is-primary::-ms-fill,.docstring>section>a.progress.docs-sourcelink::-ms-fill{background-color:#4eb5de}.progress.is-primary:indeterminate,.docstring>section>a.progress.docs-sourcelink:indeterminate{background-image:linear-gradient(to right, #4eb5de 30%, #ededed 30%)}.progress.is-link::-webkit-progress-value{background-color:#2e63b8}.progress.is-link::-moz-progress-bar{background-color:#2e63b8}.progress.is-link::-ms-fill{background-color:#2e63b8}.progress.is-link:indeterminate{background-image:linear-gradient(to right, #2e63b8 30%, #ededed 30%)}.progress.is-info::-webkit-progress-value{background-color:#209cee}.progress.is-info::-moz-progress-bar{background-color:#209cee}.progress.is-info::-ms-fill{background-color:#209cee}.progress.is-info:indeterminate{background-image:linear-gradient(to right, #209cee 30%, #ededed 30%)}.progress.is-success::-webkit-progress-value{background-color:#22c35b}.progress.is-success::-moz-progress-bar{background-color:#22c35b}.progress.is-success::-ms-fill{background-color:#22c35b}.progress.is-success:indeterminate{background-image:linear-gradient(to right, #22c35b 30%, #ededed 30%)}.progress.is-warning::-webkit-progress-value{background-color:#ffdd57}.progress.is-warning::-moz-progress-bar{background-color:#ffdd57}.progress.is-warning::-ms-fill{background-color:#ffdd57}.progress.is-warning:indeterminate{background-image:linear-gradient(to right, #ffdd57 30%, #ededed 30%)}.progress.is-danger::-webkit-progress-value{background-color:#da0b00}.progress.is-danger::-moz-progress-bar{background-color:#da0b00}.progress.is-danger::-ms-fill{background-color:#da0b00}.progress.is-danger:indeterminate{background-image:linear-gradient(to right, #da0b00 30%, #ededed 30%)}.progress:indeterminate{animation-duration:1.5s;animation-iteration-count:infinite;animation-name:moveIndeterminate;animation-timing-function:linear;background-color:#ededed;background-image:linear-gradient(to right, #222 30%, #ededed 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}.progress:indeterminate::-webkit-progress-bar{background-color:transparent}.progress:indeterminate::-moz-progress-bar{background-color:transparent}.progress:indeterminate::-ms-fill{animation-name:none}.progress.is-small,#documenter .docs-sidebar form.docs-search>input.progress{height:.75rem}.progress.is-medium{height:1.25rem}.progress.is-large{height:1.5rem}@keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}.table{background-color:#fff;color:#222}.table td,.table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}.table td.is-white,.table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}.table td.is-black,.table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.table td.is-light,.table th.is-light{background-color:#f5f5f5;border-color:#f5f5f5;color:rgba(0,0,0,0.7)}.table td.is-dark,.table th.is-dark{background-color:#363636;border-color:#363636;color:#fff}.table td.is-primary,.table th.is-primary{background-color:#4eb5de;border-color:#4eb5de;color:#fff}.table td.is-link,.table th.is-link{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.table td.is-info,.table th.is-info{background-color:#209cee;border-color:#209cee;color:#fff}.table td.is-success,.table th.is-success{background-color:#22c35b;border-color:#22c35b;color:#fff}.table td.is-warning,.table th.is-warning{background-color:#ffdd57;border-color:#ffdd57;color:rgba(0,0,0,0.7)}.table td.is-danger,.table th.is-danger{background-color:#da0b00;border-color:#da0b00;color:#fff}.table td.is-narrow,.table th.is-narrow{white-space:nowrap;width:1%}.table td.is-selected,.table th.is-selected{background-color:#4eb5de;color:#fff}.table td.is-selected a,.table td.is-selected strong,.table th.is-selected a,.table th.is-selected strong{color:currentColor}.table td.is-vcentered,.table th.is-vcentered{vertical-align:middle}.table th{color:#222}.table th:not([align]){text-align:left}.table tr.is-selected{background-color:#4eb5de;color:#fff}.table tr.is-selected a,.table tr.is-selected strong{color:currentColor}.table tr.is-selected td,.table tr.is-selected th{border-color:#fff;color:currentColor}.table thead{background-color:rgba(0,0,0,0)}.table thead td,.table thead th{border-width:0 0 2px;color:#222}.table tfoot{background-color:rgba(0,0,0,0)}.table tfoot td,.table tfoot th{border-width:2px 0 0;color:#222}.table tbody{background-color:rgba(0,0,0,0)}.table tbody tr:last-child td,.table tbody tr:last-child th{border-bottom-width:0}.table.is-bordered td,.table.is-bordered th{border-width:1px}.table.is-bordered tr:last-child td,.table.is-bordered tr:last-child th{border-bottom-width:1px}.table.is-fullwidth{width:100%}.table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even){background-color:#f5f5f5}.table.is-narrow td,.table.is-narrow th{padding:0.25em 0.5em}.table.is-striped tbody tr:not(.is-selected):nth-child(even){background-color:#fafafa}.table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}.tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.tags .tag,.tags .content kbd,.content .tags kbd,.tags .docstring>section>a.docs-sourcelink{margin-bottom:0.5rem}.tags .tag:not(:last-child),.tags .content kbd:not(:last-child),.content .tags kbd:not(:last-child),.tags .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:.5rem}.tags:last-child{margin-bottom:-0.5rem}.tags:not(:last-child){margin-bottom:1rem}.tags.are-medium .tag:not(.is-normal):not(.is-large),.tags.are-medium .content kbd:not(.is-normal):not(.is-large),.content .tags.are-medium kbd:not(.is-normal):not(.is-large),.tags.are-medium .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-large){font-size:1rem}.tags.are-large .tag:not(.is-normal):not(.is-medium),.tags.are-large .content kbd:not(.is-normal):not(.is-medium),.content .tags.are-large kbd:not(.is-normal):not(.is-medium),.tags.are-large .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-medium){font-size:1.25rem}.tags.is-centered{justify-content:center}.tags.is-centered .tag,.tags.is-centered .content kbd,.content .tags.is-centered kbd,.tags.is-centered .docstring>section>a.docs-sourcelink{margin-right:0.25rem;margin-left:0.25rem}.tags.is-right{justify-content:flex-end}.tags.is-right .tag:not(:first-child),.tags.is-right .content kbd:not(:first-child),.content .tags.is-right kbd:not(:first-child),.tags.is-right .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0.5rem}.tags.is-right .tag:not(:last-child),.tags.is-right .content kbd:not(:last-child),.content .tags.is-right kbd:not(:last-child),.tags.is-right .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0}.tags.has-addons .tag,.tags.has-addons .content kbd,.content .tags.has-addons kbd,.tags.has-addons .docstring>section>a.docs-sourcelink{margin-right:0}.tags.has-addons .tag:not(:first-child),.tags.has-addons .content kbd:not(:first-child),.content .tags.has-addons kbd:not(:first-child),.tags.has-addons .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.tags.has-addons .tag:not(:last-child),.tags.has-addons .content kbd:not(:last-child),.content .tags.has-addons kbd:not(:last-child),.tags.has-addons .docstring>section>a.docs-sourcelink:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.tag:not(body),.content kbd:not(body),.docstring>section>a.docs-sourcelink:not(body){align-items:center;background-color:#f5f5f5;border-radius:4px;color:#222;display:inline-flex;font-size:.75rem;height:2em;justify-content:center;line-height:1.5;padding-left:0.75em;padding-right:0.75em;white-space:nowrap}.tag:not(body) .delete,.content kbd:not(body) .delete,.docstring>section>a.docs-sourcelink:not(body) .delete{margin-left:.25rem;margin-right:-.375rem}.tag.is-white:not(body),.content kbd.is-white:not(body),.docstring>section>a.docs-sourcelink.is-white:not(body){background-color:#fff;color:#0a0a0a}.tag.is-black:not(body),.content kbd.is-black:not(body),.docstring>section>a.docs-sourcelink.is-black:not(body){background-color:#0a0a0a;color:#fff}.tag.is-light:not(body),.content kbd.is-light:not(body),.docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#f5f5f5;color:rgba(0,0,0,0.7)}.tag.is-dark:not(body),.content kbd:not(body),.docstring>section>a.docs-sourcelink.is-dark:not(body),.content .docstring>section>kbd:not(body){background-color:#363636;color:#fff}.tag.is-primary:not(body),.content kbd.is-primary:not(body),.docstring>section>a.docs-sourcelink:not(body){background-color:#4eb5de;color:#fff}.tag.is-primary.is-light:not(body),.content kbd.is-primary.is-light:not(body),.docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#eef8fc;color:#1a6d8e}.tag.is-link:not(body),.content kbd.is-link:not(body),.docstring>section>a.docs-sourcelink.is-link:not(body){background-color:#2e63b8;color:#fff}.tag.is-link.is-light:not(body),.content kbd.is-link.is-light:not(body),.docstring>section>a.docs-sourcelink.is-link.is-light:not(body){background-color:#eff3fb;color:#3169c4}.tag.is-info:not(body),.content kbd.is-info:not(body),.docstring>section>a.docs-sourcelink.is-info:not(body){background-color:#209cee;color:#fff}.tag.is-info.is-light:not(body),.content kbd.is-info.is-light:not(body),.docstring>section>a.docs-sourcelink.is-info.is-light:not(body){background-color:#ecf7fe;color:#0e72b4}.tag.is-success:not(body),.content kbd.is-success:not(body),.docstring>section>a.docs-sourcelink.is-success:not(body){background-color:#22c35b;color:#fff}.tag.is-success.is-light:not(body),.content kbd.is-success.is-light:not(body),.docstring>section>a.docs-sourcelink.is-success.is-light:not(body){background-color:#eefcf3;color:#198f43}.tag.is-warning:not(body),.content kbd.is-warning:not(body),.docstring>section>a.docs-sourcelink.is-warning:not(body){background-color:#ffdd57;color:rgba(0,0,0,0.7)}.tag.is-warning.is-light:not(body),.content kbd.is-warning.is-light:not(body),.docstring>section>a.docs-sourcelink.is-warning.is-light:not(body){background-color:#fffbeb;color:#947600}.tag.is-danger:not(body),.content kbd.is-danger:not(body),.docstring>section>a.docs-sourcelink.is-danger:not(body){background-color:#da0b00;color:#fff}.tag.is-danger.is-light:not(body),.content kbd.is-danger.is-light:not(body),.docstring>section>a.docs-sourcelink.is-danger.is-light:not(body){background-color:#ffeceb;color:#f50c00}.tag.is-normal:not(body),.content kbd.is-normal:not(body),.docstring>section>a.docs-sourcelink.is-normal:not(body){font-size:.75rem}.tag.is-medium:not(body),.content kbd.is-medium:not(body),.docstring>section>a.docs-sourcelink.is-medium:not(body){font-size:1rem}.tag.is-large:not(body),.content kbd.is-large:not(body),.docstring>section>a.docs-sourcelink.is-large:not(body){font-size:1.25rem}.tag:not(body) .icon:first-child:not(:last-child),.content kbd:not(body) .icon:first-child:not(:last-child),.docstring>section>a.docs-sourcelink:not(body) .icon:first-child:not(:last-child){margin-left:-.375em;margin-right:.1875em}.tag:not(body) .icon:last-child:not(:first-child),.content kbd:not(body) .icon:last-child:not(:first-child),.docstring>section>a.docs-sourcelink:not(body) .icon:last-child:not(:first-child){margin-left:.1875em;margin-right:-.375em}.tag:not(body) .icon:first-child:last-child,.content kbd:not(body) .icon:first-child:last-child,.docstring>section>a.docs-sourcelink:not(body) .icon:first-child:last-child{margin-left:-.375em;margin-right:-.375em}.tag.is-delete:not(body),.content kbd.is-delete:not(body),.docstring>section>a.docs-sourcelink.is-delete:not(body){margin-left:1px;padding:0;position:relative;width:2em}.tag.is-delete:not(body)::before,.content kbd.is-delete:not(body)::before,.docstring>section>a.docs-sourcelink.is-delete:not(body)::before,.tag.is-delete:not(body)::after,.content kbd.is-delete:not(body)::after,.docstring>section>a.docs-sourcelink.is-delete:not(body)::after{background-color:currentColor;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.tag.is-delete:not(body)::before,.content kbd.is-delete:not(body)::before,.docstring>section>a.docs-sourcelink.is-delete:not(body)::before{height:1px;width:50%}.tag.is-delete:not(body)::after,.content kbd.is-delete:not(body)::after,.docstring>section>a.docs-sourcelink.is-delete:not(body)::after{height:50%;width:1px}.tag.is-delete:not(body):hover,.content kbd.is-delete:not(body):hover,.docstring>section>a.docs-sourcelink.is-delete:not(body):hover,.tag.is-delete:not(body):focus,.content kbd.is-delete:not(body):focus,.docstring>section>a.docs-sourcelink.is-delete:not(body):focus{background-color:#e8e8e8}.tag.is-delete:not(body):active,.content kbd.is-delete:not(body):active,.docstring>section>a.docs-sourcelink.is-delete:not(body):active{background-color:#dbdbdb}.tag.is-rounded:not(body),#documenter .docs-sidebar form.docs-search>input:not(body),.content kbd.is-rounded:not(body),#documenter .docs-sidebar .content form.docs-search>input:not(body),.docstring>section>a.docs-sourcelink.is-rounded:not(body){border-radius:9999px}a.tag:hover,.docstring>section>a.docs-sourcelink:hover{text-decoration:underline}.title,.subtitle{word-break:break-word}.title em,.title span,.subtitle em,.subtitle span{font-weight:inherit}.title sub,.subtitle sub{font-size:.75em}.title sup,.subtitle sup{font-size:.75em}.title .tag,.title .content kbd,.content .title kbd,.title .docstring>section>a.docs-sourcelink,.subtitle .tag,.subtitle .content kbd,.content .subtitle kbd,.subtitle .docstring>section>a.docs-sourcelink{vertical-align:middle}.title{color:#222;font-size:2rem;font-weight:600;line-height:1.125}.title strong{color:inherit;font-weight:inherit}.title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}.title.is-1{font-size:3rem}.title.is-2{font-size:2.5rem}.title.is-3{font-size:2rem}.title.is-4{font-size:1.5rem}.title.is-5{font-size:1.25rem}.title.is-6{font-size:1rem}.title.is-7{font-size:.75rem}.subtitle{color:#222;font-size:1.25rem;font-weight:400;line-height:1.25}.subtitle strong{color:#222;font-weight:600}.subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}.subtitle.is-1{font-size:3rem}.subtitle.is-2{font-size:2.5rem}.subtitle.is-3{font-size:2rem}.subtitle.is-4{font-size:1.5rem}.subtitle.is-5{font-size:1.25rem}.subtitle.is-6{font-size:1rem}.subtitle.is-7{font-size:.75rem}.heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}.number{align-items:center;background-color:#f5f5f5;border-radius:9999px;display:inline-flex;font-size:1.25rem;height:2em;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:0.25rem 0.5rem;text-align:center;vertical-align:top}.select select,.textarea,.input,#documenter .docs-sidebar form.docs-search>input{background-color:#fff;border-color:#dbdbdb;border-radius:4px;color:#222}.select select::-moz-placeholder,.textarea::-moz-placeholder,.input::-moz-placeholder,#documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:#707070}.select select::-webkit-input-placeholder,.textarea::-webkit-input-placeholder,.input::-webkit-input-placeholder,#documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:#707070}.select select:-moz-placeholder,.textarea:-moz-placeholder,.input:-moz-placeholder,#documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:#707070}.select select:-ms-input-placeholder,.textarea:-ms-input-placeholder,.input:-ms-input-placeholder,#documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:#707070}.select select:hover,.textarea:hover,.input:hover,#documenter .docs-sidebar form.docs-search>input:hover,.select select.is-hovered,.is-hovered.textarea,.is-hovered.input,#documenter .docs-sidebar form.docs-search>input.is-hovered{border-color:#b5b5b5}.select select:focus,.textarea:focus,.input:focus,#documenter .docs-sidebar form.docs-search>input:focus,.select select.is-focused,.is-focused.textarea,.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.select select:active,.textarea:active,.input:active,#documenter .docs-sidebar form.docs-search>input:active,.select select.is-active,.is-active.textarea,.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{border-color:#2e63b8;box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.select select[disabled],.textarea[disabled],.input[disabled],#documenter .docs-sidebar form.docs-search>input[disabled],fieldset[disabled] .select select,.select fieldset[disabled] select,fieldset[disabled] .textarea,fieldset[disabled] .input,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input{background-color:#f5f5f5;border-color:#f5f5f5;box-shadow:none;color:#6b6b6b}.select select[disabled]::-moz-placeholder,.textarea[disabled]::-moz-placeholder,.input[disabled]::-moz-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]::-moz-placeholder,fieldset[disabled] .select select::-moz-placeholder,.select fieldset[disabled] select::-moz-placeholder,fieldset[disabled] .textarea::-moz-placeholder,fieldset[disabled] .input::-moz-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input::-moz-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input::-moz-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]::-webkit-input-placeholder,.textarea[disabled]::-webkit-input-placeholder,.input[disabled]::-webkit-input-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]::-webkit-input-placeholder,fieldset[disabled] .select select::-webkit-input-placeholder,.select fieldset[disabled] select::-webkit-input-placeholder,fieldset[disabled] .textarea::-webkit-input-placeholder,fieldset[disabled] .input::-webkit-input-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input::-webkit-input-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]:-moz-placeholder,.textarea[disabled]:-moz-placeholder,.input[disabled]:-moz-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]:-moz-placeholder,fieldset[disabled] .select select:-moz-placeholder,.select fieldset[disabled] select:-moz-placeholder,fieldset[disabled] .textarea:-moz-placeholder,fieldset[disabled] .input:-moz-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input:-moz-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input:-moz-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]:-ms-input-placeholder,.textarea[disabled]:-ms-input-placeholder,.input[disabled]:-ms-input-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]:-ms-input-placeholder,fieldset[disabled] .select select:-ms-input-placeholder,.select fieldset[disabled] select:-ms-input-placeholder,fieldset[disabled] .textarea:-ms-input-placeholder,fieldset[disabled] .input:-ms-input-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input:-ms-input-placeholder{color:rgba(107,107,107,0.3)}.textarea,.input,#documenter .docs-sidebar form.docs-search>input{box-shadow:inset 0 0.0625em 0.125em rgba(10,10,10,0.05);max-width:100%;width:100%}.textarea[readonly],.input[readonly],#documenter .docs-sidebar form.docs-search>input[readonly]{box-shadow:none}.is-white.textarea,.is-white.input,#documenter .docs-sidebar form.docs-search>input.is-white{border-color:#fff}.is-white.textarea:focus,.is-white.input:focus,#documenter .docs-sidebar form.docs-search>input.is-white:focus,.is-white.is-focused.textarea,.is-white.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-white.textarea:active,.is-white.input:active,#documenter .docs-sidebar form.docs-search>input.is-white:active,.is-white.is-active.textarea,.is-white.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.is-black.textarea,.is-black.input,#documenter .docs-sidebar form.docs-search>input.is-black{border-color:#0a0a0a}.is-black.textarea:focus,.is-black.input:focus,#documenter .docs-sidebar form.docs-search>input.is-black:focus,.is-black.is-focused.textarea,.is-black.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-black.textarea:active,.is-black.input:active,#documenter .docs-sidebar form.docs-search>input.is-black:active,.is-black.is-active.textarea,.is-black.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.is-light.textarea,.is-light.input,#documenter .docs-sidebar form.docs-search>input.is-light{border-color:#f5f5f5}.is-light.textarea:focus,.is-light.input:focus,#documenter .docs-sidebar form.docs-search>input.is-light:focus,.is-light.is-focused.textarea,.is-light.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-light.textarea:active,.is-light.input:active,#documenter .docs-sidebar form.docs-search>input.is-light:active,.is-light.is-active.textarea,.is-light.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.is-dark.textarea,.content kbd.textarea,.is-dark.input,#documenter .docs-sidebar form.docs-search>input.is-dark,.content kbd.input{border-color:#363636}.is-dark.textarea:focus,.content kbd.textarea:focus,.is-dark.input:focus,#documenter .docs-sidebar form.docs-search>input.is-dark:focus,.content kbd.input:focus,.is-dark.is-focused.textarea,.content kbd.is-focused.textarea,.is-dark.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.content kbd.is-focused.input,#documenter .docs-sidebar .content form.docs-search>input.is-focused,.is-dark.textarea:active,.content kbd.textarea:active,.is-dark.input:active,#documenter .docs-sidebar form.docs-search>input.is-dark:active,.content kbd.input:active,.is-dark.is-active.textarea,.content kbd.is-active.textarea,.is-dark.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.content kbd.is-active.input,#documenter .docs-sidebar .content form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.is-primary.textarea,.docstring>section>a.textarea.docs-sourcelink,.is-primary.input,#documenter .docs-sidebar form.docs-search>input.is-primary,.docstring>section>a.input.docs-sourcelink{border-color:#4eb5de}.is-primary.textarea:focus,.docstring>section>a.textarea.docs-sourcelink:focus,.is-primary.input:focus,#documenter .docs-sidebar form.docs-search>input.is-primary:focus,.docstring>section>a.input.docs-sourcelink:focus,.is-primary.is-focused.textarea,.docstring>section>a.is-focused.textarea.docs-sourcelink,.is-primary.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.docstring>section>a.is-focused.input.docs-sourcelink,.is-primary.textarea:active,.docstring>section>a.textarea.docs-sourcelink:active,.is-primary.input:active,#documenter .docs-sidebar form.docs-search>input.is-primary:active,.docstring>section>a.input.docs-sourcelink:active,.is-primary.is-active.textarea,.docstring>section>a.is-active.textarea.docs-sourcelink,.is-primary.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.docstring>section>a.is-active.input.docs-sourcelink{box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.is-link.textarea,.is-link.input,#documenter .docs-sidebar form.docs-search>input.is-link{border-color:#2e63b8}.is-link.textarea:focus,.is-link.input:focus,#documenter .docs-sidebar form.docs-search>input.is-link:focus,.is-link.is-focused.textarea,.is-link.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-link.textarea:active,.is-link.input:active,#documenter .docs-sidebar form.docs-search>input.is-link:active,.is-link.is-active.textarea,.is-link.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.is-info.textarea,.is-info.input,#documenter .docs-sidebar form.docs-search>input.is-info{border-color:#209cee}.is-info.textarea:focus,.is-info.input:focus,#documenter .docs-sidebar form.docs-search>input.is-info:focus,.is-info.is-focused.textarea,.is-info.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-info.textarea:active,.is-info.input:active,#documenter .docs-sidebar form.docs-search>input.is-info:active,.is-info.is-active.textarea,.is-info.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.is-success.textarea,.is-success.input,#documenter .docs-sidebar form.docs-search>input.is-success{border-color:#22c35b}.is-success.textarea:focus,.is-success.input:focus,#documenter .docs-sidebar form.docs-search>input.is-success:focus,.is-success.is-focused.textarea,.is-success.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-success.textarea:active,.is-success.input:active,#documenter .docs-sidebar form.docs-search>input.is-success:active,.is-success.is-active.textarea,.is-success.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.is-warning.textarea,.is-warning.input,#documenter .docs-sidebar form.docs-search>input.is-warning{border-color:#ffdd57}.is-warning.textarea:focus,.is-warning.input:focus,#documenter .docs-sidebar form.docs-search>input.is-warning:focus,.is-warning.is-focused.textarea,.is-warning.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-warning.textarea:active,.is-warning.input:active,#documenter .docs-sidebar form.docs-search>input.is-warning:active,.is-warning.is-active.textarea,.is-warning.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.is-danger.textarea,.is-danger.input,#documenter .docs-sidebar form.docs-search>input.is-danger{border-color:#da0b00}.is-danger.textarea:focus,.is-danger.input:focus,#documenter .docs-sidebar form.docs-search>input.is-danger:focus,.is-danger.is-focused.textarea,.is-danger.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-danger.textarea:active,.is-danger.input:active,#documenter .docs-sidebar form.docs-search>input.is-danger:active,.is-danger.is-active.textarea,.is-danger.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.is-small.textarea,.is-small.input,#documenter .docs-sidebar form.docs-search>input{border-radius:2px;font-size:.75rem}.is-medium.textarea,.is-medium.input,#documenter .docs-sidebar form.docs-search>input.is-medium{font-size:1.25rem}.is-large.textarea,.is-large.input,#documenter .docs-sidebar form.docs-search>input.is-large{font-size:1.5rem}.is-fullwidth.textarea,.is-fullwidth.input,#documenter .docs-sidebar form.docs-search>input.is-fullwidth{display:block;width:100%}.is-inline.textarea,.is-inline.input,#documenter .docs-sidebar form.docs-search>input.is-inline{display:inline;width:auto}.input.is-rounded,#documenter .docs-sidebar form.docs-search>input{border-radius:9999px;padding-left:calc(calc(0.75em - 1px) + 0.375em);padding-right:calc(calc(0.75em - 1px) + 0.375em)}.input.is-static,#documenter .docs-sidebar form.docs-search>input.is-static{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0}.textarea{display:block;max-width:100%;min-width:100%;padding:calc(0.75em - 1px);resize:vertical}.textarea:not([rows]){max-height:40em;min-height:8em}.textarea[rows]{height:initial}.textarea.has-fixed-size{resize:none}.radio,.checkbox{cursor:pointer;display:inline-block;line-height:1.25;position:relative}.radio input,.checkbox input{cursor:pointer}.radio:hover,.checkbox:hover{color:#222}.radio[disabled],.checkbox[disabled],fieldset[disabled] .radio,fieldset[disabled] .checkbox,.radio input[disabled],.checkbox input[disabled]{color:#6b6b6b;cursor:not-allowed}.radio+.radio{margin-left:.5em}.select{display:inline-block;max-width:100%;position:relative;vertical-align:top}.select:not(.is-multiple){height:2.5em}.select:not(.is-multiple):not(.is-loading)::after{border-color:#2e63b8;right:1.125em;z-index:4}.select.is-rounded select,#documenter .docs-sidebar form.docs-search>input.select select{border-radius:9999px;padding-left:1em}.select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:none}.select select::-ms-expand{display:none}.select select[disabled]:hover,fieldset[disabled] .select select:hover{border-color:#f5f5f5}.select select:not([multiple]){padding-right:2.5em}.select select[multiple]{height:auto;padding:0}.select select[multiple] option{padding:0.5em 1em}.select:not(.is-multiple):not(.is-loading):hover::after{border-color:#222}.select.is-white:not(:hover)::after{border-color:#fff}.select.is-white select{border-color:#fff}.select.is-white select:hover,.select.is-white select.is-hovered{border-color:#f2f2f2}.select.is-white select:focus,.select.is-white select.is-focused,.select.is-white select:active,.select.is-white select.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.select.is-black:not(:hover)::after{border-color:#0a0a0a}.select.is-black select{border-color:#0a0a0a}.select.is-black select:hover,.select.is-black select.is-hovered{border-color:#000}.select.is-black select:focus,.select.is-black select.is-focused,.select.is-black select:active,.select.is-black select.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.select.is-light:not(:hover)::after{border-color:#f5f5f5}.select.is-light select{border-color:#f5f5f5}.select.is-light select:hover,.select.is-light select.is-hovered{border-color:#e8e8e8}.select.is-light select:focus,.select.is-light select.is-focused,.select.is-light select:active,.select.is-light select.is-active{box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.select.is-dark:not(:hover)::after,.content kbd.select:not(:hover)::after{border-color:#363636}.select.is-dark select,.content kbd.select select{border-color:#363636}.select.is-dark select:hover,.content kbd.select select:hover,.select.is-dark select.is-hovered,.content kbd.select select.is-hovered{border-color:#292929}.select.is-dark select:focus,.content kbd.select select:focus,.select.is-dark select.is-focused,.content kbd.select select.is-focused,.select.is-dark select:active,.content kbd.select select:active,.select.is-dark select.is-active,.content kbd.select select.is-active{box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.select.is-primary:not(:hover)::after,.docstring>section>a.select.docs-sourcelink:not(:hover)::after{border-color:#4eb5de}.select.is-primary select,.docstring>section>a.select.docs-sourcelink select{border-color:#4eb5de}.select.is-primary select:hover,.docstring>section>a.select.docs-sourcelink select:hover,.select.is-primary select.is-hovered,.docstring>section>a.select.docs-sourcelink select.is-hovered{border-color:#39acda}.select.is-primary select:focus,.docstring>section>a.select.docs-sourcelink select:focus,.select.is-primary select.is-focused,.docstring>section>a.select.docs-sourcelink select.is-focused,.select.is-primary select:active,.docstring>section>a.select.docs-sourcelink select:active,.select.is-primary select.is-active,.docstring>section>a.select.docs-sourcelink select.is-active{box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.select.is-link:not(:hover)::after{border-color:#2e63b8}.select.is-link select{border-color:#2e63b8}.select.is-link select:hover,.select.is-link select.is-hovered{border-color:#2958a4}.select.is-link select:focus,.select.is-link select.is-focused,.select.is-link select:active,.select.is-link select.is-active{box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.select.is-info:not(:hover)::after{border-color:#209cee}.select.is-info select{border-color:#209cee}.select.is-info select:hover,.select.is-info select.is-hovered{border-color:#1190e3}.select.is-info select:focus,.select.is-info select.is-focused,.select.is-info select:active,.select.is-info select.is-active{box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.select.is-success:not(:hover)::after{border-color:#22c35b}.select.is-success select{border-color:#22c35b}.select.is-success select:hover,.select.is-success select.is-hovered{border-color:#1ead51}.select.is-success select:focus,.select.is-success select.is-focused,.select.is-success select:active,.select.is-success select.is-active{box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.select.is-warning:not(:hover)::after{border-color:#ffdd57}.select.is-warning select{border-color:#ffdd57}.select.is-warning select:hover,.select.is-warning select.is-hovered{border-color:#ffd83e}.select.is-warning select:focus,.select.is-warning select.is-focused,.select.is-warning select:active,.select.is-warning select.is-active{box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.select.is-danger:not(:hover)::after{border-color:#da0b00}.select.is-danger select{border-color:#da0b00}.select.is-danger select:hover,.select.is-danger select.is-hovered{border-color:#c10a00}.select.is-danger select:focus,.select.is-danger select.is-focused,.select.is-danger select:active,.select.is-danger select.is-active{box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.select.is-small,#documenter .docs-sidebar form.docs-search>input.select{border-radius:2px;font-size:.75rem}.select.is-medium{font-size:1.25rem}.select.is-large{font-size:1.5rem}.select.is-disabled::after{border-color:#6b6b6b !important;opacity:0.5}.select.is-fullwidth{width:100%}.select.is-fullwidth select{width:100%}.select.is-loading::after{margin-top:0;position:absolute;right:.625em;top:0.625em;transform:none}.select.is-loading.is-small:after,#documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}.select.is-loading.is-medium:after{font-size:1.25rem}.select.is-loading.is-large:after{font-size:1.5rem}.file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}.file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}.file.is-white:hover .file-cta,.file.is-white.is-hovered .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.file.is-white:focus .file-cta,.file.is-white.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,255,255,0.25);color:#0a0a0a}.file.is-white:active .file-cta,.file.is-white.is-active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}.file.is-black:hover .file-cta,.file.is-black.is-hovered .file-cta{background-color:#040404;border-color:transparent;color:#fff}.file.is-black:focus .file-cta,.file.is-black.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(10,10,10,0.25);color:#fff}.file.is-black:active .file-cta,.file.is-black.is-active .file-cta{background-color:#000;border-color:transparent;color:#fff}.file.is-light .file-cta{background-color:#f5f5f5;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-light:hover .file-cta,.file.is-light.is-hovered .file-cta{background-color:#eee;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-light:focus .file-cta,.file.is-light.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(245,245,245,0.25);color:rgba(0,0,0,0.7)}.file.is-light:active .file-cta,.file.is-light.is-active .file-cta{background-color:#e8e8e8;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-dark .file-cta,.content kbd.file .file-cta{background-color:#363636;border-color:transparent;color:#fff}.file.is-dark:hover .file-cta,.content kbd.file:hover .file-cta,.file.is-dark.is-hovered .file-cta,.content kbd.file.is-hovered .file-cta{background-color:#2f2f2f;border-color:transparent;color:#fff}.file.is-dark:focus .file-cta,.content kbd.file:focus .file-cta,.file.is-dark.is-focused .file-cta,.content kbd.file.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(54,54,54,0.25);color:#fff}.file.is-dark:active .file-cta,.content kbd.file:active .file-cta,.file.is-dark.is-active .file-cta,.content kbd.file.is-active .file-cta{background-color:#292929;border-color:transparent;color:#fff}.file.is-primary .file-cta,.docstring>section>a.file.docs-sourcelink .file-cta{background-color:#4eb5de;border-color:transparent;color:#fff}.file.is-primary:hover .file-cta,.docstring>section>a.file.docs-sourcelink:hover .file-cta,.file.is-primary.is-hovered .file-cta,.docstring>section>a.file.is-hovered.docs-sourcelink .file-cta{background-color:#43b1dc;border-color:transparent;color:#fff}.file.is-primary:focus .file-cta,.docstring>section>a.file.docs-sourcelink:focus .file-cta,.file.is-primary.is-focused .file-cta,.docstring>section>a.file.is-focused.docs-sourcelink .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(78,181,222,0.25);color:#fff}.file.is-primary:active .file-cta,.docstring>section>a.file.docs-sourcelink:active .file-cta,.file.is-primary.is-active .file-cta,.docstring>section>a.file.is-active.docs-sourcelink .file-cta{background-color:#39acda;border-color:transparent;color:#fff}.file.is-link .file-cta{background-color:#2e63b8;border-color:transparent;color:#fff}.file.is-link:hover .file-cta,.file.is-link.is-hovered .file-cta{background-color:#2b5eae;border-color:transparent;color:#fff}.file.is-link:focus .file-cta,.file.is-link.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(46,99,184,0.25);color:#fff}.file.is-link:active .file-cta,.file.is-link.is-active .file-cta{background-color:#2958a4;border-color:transparent;color:#fff}.file.is-info .file-cta{background-color:#209cee;border-color:transparent;color:#fff}.file.is-info:hover .file-cta,.file.is-info.is-hovered .file-cta{background-color:#1497ed;border-color:transparent;color:#fff}.file.is-info:focus .file-cta,.file.is-info.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(32,156,238,0.25);color:#fff}.file.is-info:active .file-cta,.file.is-info.is-active .file-cta{background-color:#1190e3;border-color:transparent;color:#fff}.file.is-success .file-cta{background-color:#22c35b;border-color:transparent;color:#fff}.file.is-success:hover .file-cta,.file.is-success.is-hovered .file-cta{background-color:#20b856;border-color:transparent;color:#fff}.file.is-success:focus .file-cta,.file.is-success.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(34,195,91,0.25);color:#fff}.file.is-success:active .file-cta,.file.is-success.is-active .file-cta{background-color:#1ead51;border-color:transparent;color:#fff}.file.is-warning .file-cta{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-warning:hover .file-cta,.file.is-warning.is-hovered .file-cta{background-color:#ffda4a;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-warning:focus .file-cta,.file.is-warning.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,221,87,0.25);color:rgba(0,0,0,0.7)}.file.is-warning:active .file-cta,.file.is-warning.is-active .file-cta{background-color:#ffd83e;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-danger .file-cta{background-color:#da0b00;border-color:transparent;color:#fff}.file.is-danger:hover .file-cta,.file.is-danger.is-hovered .file-cta{background-color:#cd0a00;border-color:transparent;color:#fff}.file.is-danger:focus .file-cta,.file.is-danger.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(218,11,0,0.25);color:#fff}.file.is-danger:active .file-cta,.file.is-danger.is-active .file-cta{background-color:#c10a00;border-color:transparent;color:#fff}.file.is-small,#documenter .docs-sidebar form.docs-search>input.file{font-size:.75rem}.file.is-normal{font-size:1rem}.file.is-medium{font-size:1.25rem}.file.is-medium .file-icon .fa{font-size:21px}.file.is-large{font-size:1.5rem}.file.is-large .file-icon .fa{font-size:28px}.file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}.file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}.file.has-name.is-empty .file-cta{border-radius:4px}.file.has-name.is-empty .file-name{display:none}.file.is-boxed .file-label{flex-direction:column}.file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}.file.is-boxed .file-name{border-width:0 1px 1px}.file.is-boxed .file-icon{height:1.5em;width:1.5em}.file.is-boxed .file-icon .fa{font-size:21px}.file.is-boxed.is-small .file-icon .fa,#documenter .docs-sidebar form.docs-search>input.is-boxed .file-icon .fa{font-size:14px}.file.is-boxed.is-medium .file-icon .fa{font-size:28px}.file.is-boxed.is-large .file-icon .fa{font-size:35px}.file.is-boxed.has-name .file-cta{border-radius:4px 4px 0 0}.file.is-boxed.has-name .file-name{border-radius:0 0 4px 4px;border-width:0 1px 1px}.file.is-centered{justify-content:center}.file.is-fullwidth .file-label{width:100%}.file.is-fullwidth .file-name{flex-grow:1;max-width:none}.file.is-right{justify-content:flex-end}.file.is-right .file-cta{border-radius:0 4px 4px 0}.file.is-right .file-name{border-radius:4px 0 0 4px;border-width:1px 0 1px 1px;order:-1}.file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}.file-label:hover .file-cta{background-color:#eee;color:#222}.file-label:hover .file-name{border-color:#d5d5d5}.file-label:active .file-cta{background-color:#e8e8e8;color:#222}.file-label:active .file-name{border-color:#cfcfcf}.file-input{height:100%;left:0;opacity:0;outline:none;position:absolute;top:0;width:100%}.file-cta,.file-name{border-color:#dbdbdb;border-radius:4px;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}.file-cta{background-color:#f5f5f5;color:#222}.file-name{border-color:#dbdbdb;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:inherit;text-overflow:ellipsis}.file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:.5em;width:1em}.file-icon .fa{font-size:14px}.label{color:#222;display:block;font-size:1rem;font-weight:700}.label:not(:last-child){margin-bottom:0.5em}.label.is-small,#documenter .docs-sidebar form.docs-search>input.label{font-size:.75rem}.label.is-medium{font-size:1.25rem}.label.is-large{font-size:1.5rem}.help{display:block;font-size:.75rem;margin-top:0.25rem}.help.is-white{color:#fff}.help.is-black{color:#0a0a0a}.help.is-light{color:#f5f5f5}.help.is-dark,.content kbd.help{color:#363636}.help.is-primary,.docstring>section>a.help.docs-sourcelink{color:#4eb5de}.help.is-link{color:#2e63b8}.help.is-info{color:#209cee}.help.is-success{color:#22c35b}.help.is-warning{color:#ffdd57}.help.is-danger{color:#da0b00}.field:not(:last-child){margin-bottom:0.75rem}.field.has-addons{display:flex;justify-content:flex-start}.field.has-addons .control:not(:last-child){margin-right:-1px}.field.has-addons .control:not(:first-child):not(:last-child) .button,.field.has-addons .control:not(:first-child):not(:last-child) .input,.field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search>input,.field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}.field.has-addons .control:first-child:not(:only-child) .button,.field.has-addons .control:first-child:not(:only-child) .input,.field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search>input,.field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}.field.has-addons .control:last-child:not(:only-child) .button,.field.has-addons .control:last-child:not(:only-child) .input,.field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search>input,.field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}.field.has-addons .control .button:not([disabled]):hover,.field.has-addons .control .button.is-hovered:not([disabled]),.field.has-addons .control .input:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):hover,.field.has-addons .control .input.is-hovered:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-hovered:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-hovered:not([disabled]),.field.has-addons .control .select select:not([disabled]):hover,.field.has-addons .control .select select.is-hovered:not([disabled]){z-index:2}.field.has-addons .control .button:not([disabled]):focus,.field.has-addons .control .button.is-focused:not([disabled]),.field.has-addons .control .button:not([disabled]):active,.field.has-addons .control .button.is-active:not([disabled]),.field.has-addons .control .input:not([disabled]):focus,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus,.field.has-addons .control .input.is-focused:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]),.field.has-addons .control .input:not([disabled]):active,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active,.field.has-addons .control .input.is-active:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]),.field.has-addons .control .select select:not([disabled]):focus,.field.has-addons .control .select select.is-focused:not([disabled]),.field.has-addons .control .select select:not([disabled]):active,.field.has-addons .control .select select.is-active:not([disabled]){z-index:3}.field.has-addons .control .button:not([disabled]):focus:hover,.field.has-addons .control .button.is-focused:not([disabled]):hover,.field.has-addons .control .button:not([disabled]):active:hover,.field.has-addons .control .button.is-active:not([disabled]):hover,.field.has-addons .control .input:not([disabled]):focus:hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus:hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus:hover,.field.has-addons .control .input.is-focused:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]):hover,.field.has-addons .control .input:not([disabled]):active:hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active:hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active:hover,.field.has-addons .control .input.is-active:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]):hover,.field.has-addons .control .select select:not([disabled]):focus:hover,.field.has-addons .control .select select.is-focused:not([disabled]):hover,.field.has-addons .control .select select:not([disabled]):active:hover,.field.has-addons .control .select select.is-active:not([disabled]):hover{z-index:4}.field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}.field.has-addons.has-addons-centered{justify-content:center}.field.has-addons.has-addons-right{justify-content:flex-end}.field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}.field.is-grouped{display:flex;justify-content:flex-start}.field.is-grouped>.control{flex-shrink:0}.field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:.75rem}.field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}.field.is-grouped.is-grouped-centered{justify-content:center}.field.is-grouped.is-grouped-right{justify-content:flex-end}.field.is-grouped.is-grouped-multiline{flex-wrap:wrap}.field.is-grouped.is-grouped-multiline>.control:last-child,.field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:0.75rem}.field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-0.75rem}.field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width: 769px),print{.field.is-horizontal{display:flex}}.field-label .label{font-size:inherit}@media screen and (max-width: 768px){.field-label{margin-bottom:0.5rem}}@media screen and (min-width: 769px),print{.field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}.field-label.is-small,#documenter .docs-sidebar form.docs-search>input.field-label{font-size:.75rem;padding-top:0.375em}.field-label.is-normal{padding-top:0.375em}.field-label.is-medium{font-size:1.25rem;padding-top:0.375em}.field-label.is-large{font-size:1.5rem;padding-top:0.375em}}.field-body .field .field{margin-bottom:0}@media screen and (min-width: 769px),print{.field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}.field-body .field{margin-bottom:0}.field-body>.field{flex-shrink:1}.field-body>.field:not(.is-narrow){flex-grow:1}.field-body>.field:not(:last-child){margin-right:.75rem}}.control{box-sizing:border-box;clear:both;font-size:1rem;position:relative;text-align:inherit}.control.has-icons-left .input:focus~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input:focus~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input:focus~.icon,.control.has-icons-left .select:focus~.icon,.control.has-icons-right .input:focus~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input:focus~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input:focus~.icon,.control.has-icons-right .select:focus~.icon{color:#222}.control.has-icons-left .input.is-small~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input~.icon,.control.has-icons-left .select.is-small~.icon,.control.has-icons-right .input.is-small~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input~.icon,.control.has-icons-right .select.is-small~.icon{font-size:.75rem}.control.has-icons-left .input.is-medium~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-medium~.icon,.control.has-icons-left .select.is-medium~.icon,.control.has-icons-right .input.is-medium~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-medium~.icon,.control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}.control.has-icons-left .input.is-large~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-large~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-large~.icon,.control.has-icons-left .select.is-large~.icon,.control.has-icons-right .input.is-large~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-large~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-large~.icon,.control.has-icons-right .select.is-large~.icon{font-size:1.5rem}.control.has-icons-left .icon,.control.has-icons-right .icon{color:#dbdbdb;height:2.5em;pointer-events:none;position:absolute;top:0;width:2.5em;z-index:4}.control.has-icons-left .input,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input,.control.has-icons-left .select select{padding-left:2.5em}.control.has-icons-left .icon.is-left{left:0}.control.has-icons-right .input,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input,.control.has-icons-right .select select{padding-right:2.5em}.control.has-icons-right .icon.is-right{right:0}.control.is-loading::after{position:absolute !important;right:.625em;top:0.625em;z-index:4}.control.is-loading.is-small:after,#documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}.control.is-loading.is-medium:after{font-size:1.25rem}.control.is-loading.is-large:after{font-size:1.5rem}.breadcrumb{font-size:1rem;white-space:nowrap}.breadcrumb a{align-items:center;color:#2e63b8;display:flex;justify-content:center;padding:0 .75em}.breadcrumb a:hover{color:#363636}.breadcrumb li{align-items:center;display:flex}.breadcrumb li:first-child a{padding-left:0}.breadcrumb li.is-active a{color:#222;cursor:default;pointer-events:none}.breadcrumb li+li::before{color:#b5b5b5;content:"\0002f"}.breadcrumb ul,.breadcrumb ol{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}.breadcrumb .icon:first-child{margin-right:.5em}.breadcrumb .icon:last-child{margin-left:.5em}.breadcrumb.is-centered ol,.breadcrumb.is-centered ul{justify-content:center}.breadcrumb.is-right ol,.breadcrumb.is-right ul{justify-content:flex-end}.breadcrumb.is-small,#documenter .docs-sidebar form.docs-search>input.breadcrumb{font-size:.75rem}.breadcrumb.is-medium{font-size:1.25rem}.breadcrumb.is-large{font-size:1.5rem}.breadcrumb.has-arrow-separator li+li::before{content:"\02192"}.breadcrumb.has-bullet-separator li+li::before{content:"\02022"}.breadcrumb.has-dot-separator li+li::before{content:"\000b7"}.breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}.card{background-color:#fff;border-radius:.25rem;box-shadow:#bbb;color:#222;max-width:100%;position:relative}.card-footer:first-child,.card-content:first-child,.card-header:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card-footer:last-child,.card-content:last-child,.card-header:last-child{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.card-header{background-color:rgba(0,0,0,0);align-items:stretch;box-shadow:0 0.125em 0.25em rgba(10,10,10,0.1);display:flex}.card-header-title{align-items:center;color:#222;display:flex;flex-grow:1;font-weight:700;padding:0.75rem 1rem}.card-header-title.is-centered{justify-content:center}.card-header-icon{-moz-appearance:none;-webkit-appearance:none;appearance:none;background:none;border:none;color:currentColor;font-family:inherit;font-size:1em;margin:0;padding:0;align-items:center;cursor:pointer;display:flex;justify-content:center;padding:0.75rem 1rem}.card-image{display:block;position:relative}.card-image:first-child img{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card-image:last-child img{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.card-content{background-color:rgba(0,0,0,0);padding:1.5rem}.card-footer{background-color:rgba(0,0,0,0);border-top:1px solid #ededed;align-items:stretch;display:flex}.card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}.card-footer-item:not(:last-child){border-right:1px solid #ededed}.card .media:not(:last-child){margin-bottom:1.5rem}.dropdown{display:inline-flex;position:relative;vertical-align:top}.dropdown.is-active .dropdown-menu,.dropdown.is-hoverable:hover .dropdown-menu{display:block}.dropdown.is-right .dropdown-menu{left:auto;right:0}.dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}.dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}.dropdown-content{background-color:#fff;border-radius:4px;box-shadow:#bbb;padding-bottom:.5rem;padding-top:.5rem}.dropdown-item{color:#222;display:block;font-size:0.875rem;line-height:1.5;padding:0.375rem 1rem;position:relative}a.dropdown-item,button.dropdown-item{padding-right:3rem;text-align:inherit;white-space:nowrap;width:100%}a.dropdown-item:hover,button.dropdown-item:hover{background-color:#f5f5f5;color:#0a0a0a}a.dropdown-item.is-active,button.dropdown-item.is-active{background-color:#2e63b8;color:#fff}.dropdown-divider{background-color:#ededed;border:none;display:block;height:1px;margin:0.5rem 0}.level{align-items:center;justify-content:space-between}.level code{border-radius:4px}.level img{display:inline-block;vertical-align:top}.level.is-mobile{display:flex}.level.is-mobile .level-left,.level.is-mobile .level-right{display:flex}.level.is-mobile .level-left+.level-right{margin-top:0}.level.is-mobile .level-item:not(:last-child){margin-bottom:0;margin-right:.75rem}.level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width: 769px),print{.level{display:flex}.level>.level-item:not(.is-narrow){flex-grow:1}}.level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}.level-item .title,.level-item .subtitle{margin-bottom:0}@media screen and (max-width: 768px){.level-item:not(:last-child){margin-bottom:.75rem}}.level-left,.level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.level-left .level-item.is-flexible,.level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width: 769px),print{.level-left .level-item:not(:last-child),.level-right .level-item:not(:last-child){margin-right:.75rem}}.level-left{align-items:center;justify-content:flex-start}@media screen and (max-width: 768px){.level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width: 769px),print{.level-left{display:flex}}.level-right{align-items:center;justify-content:flex-end}@media screen and (min-width: 769px),print{.level-right{display:flex}}.media{align-items:flex-start;display:flex;text-align:inherit}.media .content:not(:last-child){margin-bottom:.75rem}.media .media{border-top:1px solid rgba(219,219,219,0.5);display:flex;padding-top:.75rem}.media .media .content:not(:last-child),.media .media .control:not(:last-child){margin-bottom:.5rem}.media .media .media{padding-top:.5rem}.media .media .media+.media{margin-top:.5rem}.media+.media{border-top:1px solid rgba(219,219,219,0.5);margin-top:1rem;padding-top:1rem}.media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}.media-left,.media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.media-left{margin-right:1rem}.media-right{margin-left:1rem}.media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:inherit}@media screen and (max-width: 768px){.media-content{overflow-x:auto}}.menu{font-size:1rem}.menu.is-small,#documenter .docs-sidebar form.docs-search>input.menu{font-size:.75rem}.menu.is-medium{font-size:1.25rem}.menu.is-large{font-size:1.5rem}.menu-list{line-height:1.25}.menu-list a{border-radius:2px;color:#222;display:block;padding:0.5em 0.75em}.menu-list a:hover{background-color:#f5f5f5;color:#222}.menu-list a.is-active{background-color:#2e63b8;color:#fff}.menu-list li ul{border-left:1px solid #dbdbdb;margin:.75em;padding-left:.75em}.menu-label{color:#6b6b6b;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}.menu-label:not(:first-child){margin-top:1em}.menu-label:not(:last-child){margin-bottom:1em}.message{background-color:#f5f5f5;border-radius:4px;font-size:1rem}.message strong{color:currentColor}.message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}.message.is-small,#documenter .docs-sidebar form.docs-search>input.message{font-size:.75rem}.message.is-medium{font-size:1.25rem}.message.is-large{font-size:1.5rem}.message.is-white{background-color:#fff}.message.is-white .message-header{background-color:#fff;color:#0a0a0a}.message.is-white .message-body{border-color:#fff}.message.is-black{background-color:#fafafa}.message.is-black .message-header{background-color:#0a0a0a;color:#fff}.message.is-black .message-body{border-color:#0a0a0a}.message.is-light{background-color:#fafafa}.message.is-light .message-header{background-color:#f5f5f5;color:rgba(0,0,0,0.7)}.message.is-light .message-body{border-color:#f5f5f5}.message.is-dark,.content kbd.message{background-color:#fafafa}.message.is-dark .message-header,.content kbd.message .message-header{background-color:#363636;color:#fff}.message.is-dark .message-body,.content kbd.message .message-body{border-color:#363636}.message.is-primary,.docstring>section>a.message.docs-sourcelink{background-color:#eef8fc}.message.is-primary .message-header,.docstring>section>a.message.docs-sourcelink .message-header{background-color:#4eb5de;color:#fff}.message.is-primary .message-body,.docstring>section>a.message.docs-sourcelink .message-body{border-color:#4eb5de;color:#1a6d8e}.message.is-link{background-color:#eff3fb}.message.is-link .message-header{background-color:#2e63b8;color:#fff}.message.is-link .message-body{border-color:#2e63b8;color:#3169c4}.message.is-info{background-color:#ecf7fe}.message.is-info .message-header{background-color:#209cee;color:#fff}.message.is-info .message-body{border-color:#209cee;color:#0e72b4}.message.is-success{background-color:#eefcf3}.message.is-success .message-header{background-color:#22c35b;color:#fff}.message.is-success .message-body{border-color:#22c35b;color:#198f43}.message.is-warning{background-color:#fffbeb}.message.is-warning .message-header{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.message.is-warning .message-body{border-color:#ffdd57;color:#947600}.message.is-danger{background-color:#ffeceb}.message.is-danger .message-header{background-color:#da0b00;color:#fff}.message.is-danger .message-body{border-color:#da0b00;color:#f50c00}.message-header{align-items:center;background-color:#222;border-radius:4px 4px 0 0;color:#fff;display:flex;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.75em 1em;position:relative}.message-header .delete{flex-grow:0;flex-shrink:0;margin-left:.75em}.message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}.message-body{border-color:#dbdbdb;border-radius:4px;border-style:solid;border-width:0 0 0 4px;color:#222;padding:1.25em 1.5em}.message-body code,.message-body pre{background-color:#fff}.message-body pre code{background-color:rgba(0,0,0,0)}.modal{align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:40}.modal.is-active{display:flex}.modal-background{background-color:rgba(10,10,10,0.86)}.modal-content,.modal-card{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width: 769px){.modal-content,.modal-card{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}.modal-close{background:none;height:40px;position:fixed;right:20px;top:20px;width:40px}.modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}.modal-card-head,.modal-card-foot{align-items:center;background-color:#f5f5f5;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}.modal-card-head{border-bottom:1px solid #dbdbdb;border-top-left-radius:6px;border-top-right-radius:6px}.modal-card-title{color:#222;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}.modal-card-foot{border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:1px solid #dbdbdb}.modal-card-foot .button:not(:last-child){margin-right:.5em}.modal-card-body{-webkit-overflow-scrolling:touch;background-color:#fff;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}.navbar{background-color:#fff;min-height:3.25rem;position:relative;z-index:30}.navbar.is-white{background-color:#fff;color:#0a0a0a}.navbar.is-white .navbar-brand>.navbar-item,.navbar.is-white .navbar-brand .navbar-link{color:#0a0a0a}.navbar.is-white .navbar-brand>a.navbar-item:focus,.navbar.is-white .navbar-brand>a.navbar-item:hover,.navbar.is-white .navbar-brand>a.navbar-item.is-active,.navbar.is-white .navbar-brand .navbar-link:focus,.navbar.is-white .navbar-brand .navbar-link:hover,.navbar.is-white .navbar-brand .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-burger{color:#0a0a0a}@media screen and (min-width: 1056px){.navbar.is-white .navbar-start>.navbar-item,.navbar.is-white .navbar-start .navbar-link,.navbar.is-white .navbar-end>.navbar-item,.navbar.is-white .navbar-end .navbar-link{color:#0a0a0a}.navbar.is-white .navbar-start>a.navbar-item:focus,.navbar.is-white .navbar-start>a.navbar-item:hover,.navbar.is-white .navbar-start>a.navbar-item.is-active,.navbar.is-white .navbar-start .navbar-link:focus,.navbar.is-white .navbar-start .navbar-link:hover,.navbar.is-white .navbar-start .navbar-link.is-active,.navbar.is-white .navbar-end>a.navbar-item:focus,.navbar.is-white .navbar-end>a.navbar-item:hover,.navbar.is-white .navbar-end>a.navbar-item.is-active,.navbar.is-white .navbar-end .navbar-link:focus,.navbar.is-white .navbar-end .navbar-link:hover,.navbar.is-white .navbar-end .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-start .navbar-link::after,.navbar.is-white .navbar-end .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}.navbar.is-black{background-color:#0a0a0a;color:#fff}.navbar.is-black .navbar-brand>.navbar-item,.navbar.is-black .navbar-brand .navbar-link{color:#fff}.navbar.is-black .navbar-brand>a.navbar-item:focus,.navbar.is-black .navbar-brand>a.navbar-item:hover,.navbar.is-black .navbar-brand>a.navbar-item.is-active,.navbar.is-black .navbar-brand .navbar-link:focus,.navbar.is-black .navbar-brand .navbar-link:hover,.navbar.is-black .navbar-brand .navbar-link.is-active{background-color:#000;color:#fff}.navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-black .navbar-start>.navbar-item,.navbar.is-black .navbar-start .navbar-link,.navbar.is-black .navbar-end>.navbar-item,.navbar.is-black .navbar-end .navbar-link{color:#fff}.navbar.is-black .navbar-start>a.navbar-item:focus,.navbar.is-black .navbar-start>a.navbar-item:hover,.navbar.is-black .navbar-start>a.navbar-item.is-active,.navbar.is-black .navbar-start .navbar-link:focus,.navbar.is-black .navbar-start .navbar-link:hover,.navbar.is-black .navbar-start .navbar-link.is-active,.navbar.is-black .navbar-end>a.navbar-item:focus,.navbar.is-black .navbar-end>a.navbar-item:hover,.navbar.is-black .navbar-end>a.navbar-item.is-active,.navbar.is-black .navbar-end .navbar-link:focus,.navbar.is-black .navbar-end .navbar-link:hover,.navbar.is-black .navbar-end .navbar-link.is-active{background-color:#000;color:#fff}.navbar.is-black .navbar-start .navbar-link::after,.navbar.is-black .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link{background-color:#000;color:#fff}.navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}.navbar.is-light{background-color:#f5f5f5;color:rgba(0,0,0,0.7)}.navbar.is-light .navbar-brand>.navbar-item,.navbar.is-light .navbar-brand .navbar-link{color:rgba(0,0,0,0.7)}.navbar.is-light .navbar-brand>a.navbar-item:focus,.navbar.is-light .navbar-brand>a.navbar-item:hover,.navbar.is-light .navbar-brand>a.navbar-item.is-active,.navbar.is-light .navbar-brand .navbar-link:focus,.navbar.is-light .navbar-brand .navbar-link:hover,.navbar.is-light .navbar-brand .navbar-link.is-active{background-color:#e8e8e8;color:rgba(0,0,0,0.7)}.navbar.is-light .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,0.7)}.navbar.is-light .navbar-burger{color:rgba(0,0,0,0.7)}@media screen and (min-width: 1056px){.navbar.is-light .navbar-start>.navbar-item,.navbar.is-light .navbar-start .navbar-link,.navbar.is-light .navbar-end>.navbar-item,.navbar.is-light .navbar-end .navbar-link{color:rgba(0,0,0,0.7)}.navbar.is-light .navbar-start>a.navbar-item:focus,.navbar.is-light .navbar-start>a.navbar-item:hover,.navbar.is-light .navbar-start>a.navbar-item.is-active,.navbar.is-light .navbar-start .navbar-link:focus,.navbar.is-light .navbar-start .navbar-link:hover,.navbar.is-light .navbar-start .navbar-link.is-active,.navbar.is-light .navbar-end>a.navbar-item:focus,.navbar.is-light .navbar-end>a.navbar-item:hover,.navbar.is-light .navbar-end>a.navbar-item.is-active,.navbar.is-light .navbar-end .navbar-link:focus,.navbar.is-light .navbar-end .navbar-link:hover,.navbar.is-light .navbar-end .navbar-link.is-active{background-color:#e8e8e8;color:rgba(0,0,0,0.7)}.navbar.is-light .navbar-start .navbar-link::after,.navbar.is-light .navbar-end .navbar-link::after{border-color:rgba(0,0,0,0.7)}.navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link{background-color:#e8e8e8;color:rgba(0,0,0,0.7)}.navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:rgba(0,0,0,0.7)}}.navbar.is-dark,.content kbd.navbar{background-color:#363636;color:#fff}.navbar.is-dark .navbar-brand>.navbar-item,.content kbd.navbar .navbar-brand>.navbar-item,.navbar.is-dark .navbar-brand .navbar-link,.content kbd.navbar .navbar-brand .navbar-link{color:#fff}.navbar.is-dark .navbar-brand>a.navbar-item:focus,.content kbd.navbar .navbar-brand>a.navbar-item:focus,.navbar.is-dark .navbar-brand>a.navbar-item:hover,.content kbd.navbar .navbar-brand>a.navbar-item:hover,.navbar.is-dark .navbar-brand>a.navbar-item.is-active,.content kbd.navbar .navbar-brand>a.navbar-item.is-active,.navbar.is-dark .navbar-brand .navbar-link:focus,.content kbd.navbar .navbar-brand .navbar-link:focus,.navbar.is-dark .navbar-brand .navbar-link:hover,.content kbd.navbar .navbar-brand .navbar-link:hover,.navbar.is-dark .navbar-brand .navbar-link.is-active,.content kbd.navbar .navbar-brand .navbar-link.is-active{background-color:#292929;color:#fff}.navbar.is-dark .navbar-brand .navbar-link::after,.content kbd.navbar .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-dark .navbar-burger,.content kbd.navbar .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-dark .navbar-start>.navbar-item,.content kbd.navbar .navbar-start>.navbar-item,.navbar.is-dark .navbar-start .navbar-link,.content kbd.navbar .navbar-start .navbar-link,.navbar.is-dark .navbar-end>.navbar-item,.content kbd.navbar .navbar-end>.navbar-item,.navbar.is-dark .navbar-end .navbar-link,.content kbd.navbar .navbar-end .navbar-link{color:#fff}.navbar.is-dark .navbar-start>a.navbar-item:focus,.content kbd.navbar .navbar-start>a.navbar-item:focus,.navbar.is-dark .navbar-start>a.navbar-item:hover,.content kbd.navbar .navbar-start>a.navbar-item:hover,.navbar.is-dark .navbar-start>a.navbar-item.is-active,.content kbd.navbar .navbar-start>a.navbar-item.is-active,.navbar.is-dark .navbar-start .navbar-link:focus,.content kbd.navbar .navbar-start .navbar-link:focus,.navbar.is-dark .navbar-start .navbar-link:hover,.content kbd.navbar .navbar-start .navbar-link:hover,.navbar.is-dark .navbar-start .navbar-link.is-active,.content kbd.navbar .navbar-start .navbar-link.is-active,.navbar.is-dark .navbar-end>a.navbar-item:focus,.content kbd.navbar .navbar-end>a.navbar-item:focus,.navbar.is-dark .navbar-end>a.navbar-item:hover,.content kbd.navbar .navbar-end>a.navbar-item:hover,.navbar.is-dark .navbar-end>a.navbar-item.is-active,.content kbd.navbar .navbar-end>a.navbar-item.is-active,.navbar.is-dark .navbar-end .navbar-link:focus,.content kbd.navbar .navbar-end .navbar-link:focus,.navbar.is-dark .navbar-end .navbar-link:hover,.content kbd.navbar .navbar-end .navbar-link:hover,.navbar.is-dark .navbar-end .navbar-link.is-active,.content kbd.navbar .navbar-end .navbar-link.is-active{background-color:#292929;color:#fff}.navbar.is-dark .navbar-start .navbar-link::after,.content kbd.navbar .navbar-start .navbar-link::after,.navbar.is-dark .navbar-end .navbar-link::after,.content kbd.navbar .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,.content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,.content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,.content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link{background-color:#292929;color:#fff}.navbar.is-dark .navbar-dropdown a.navbar-item.is-active,.content kbd.navbar .navbar-dropdown a.navbar-item.is-active{background-color:#363636;color:#fff}}.navbar.is-primary,.docstring>section>a.navbar.docs-sourcelink{background-color:#4eb5de;color:#fff}.navbar.is-primary .navbar-brand>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>.navbar-item,.navbar.is-primary .navbar-brand .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link{color:#fff}.navbar.is-primary .navbar-brand>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:focus,.navbar.is-primary .navbar-brand>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:hover,.navbar.is-primary .navbar-brand>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item.is-active,.navbar.is-primary .navbar-brand .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,.navbar.is-primary .navbar-brand .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,.navbar.is-primary .navbar-brand .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-brand .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-burger,.docstring>section>a.navbar.docs-sourcelink .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-primary .navbar-start>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-start>.navbar-item,.navbar.is-primary .navbar-start .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link,.navbar.is-primary .navbar-end>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-end>.navbar-item,.navbar.is-primary .navbar-end .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link{color:#fff}.navbar.is-primary .navbar-start>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:focus,.navbar.is-primary .navbar-start>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:hover,.navbar.is-primary .navbar-start>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item.is-active,.navbar.is-primary .navbar-start .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,.navbar.is-primary .navbar-start .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,.navbar.is-primary .navbar-start .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,.navbar.is-primary .navbar-end>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:focus,.navbar.is-primary .navbar-end>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:hover,.navbar.is-primary .navbar-end>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item.is-active,.navbar.is-primary .navbar-end .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,.navbar.is-primary .navbar-end .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,.navbar.is-primary .navbar-end .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-start .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link::after,.navbar.is-primary .navbar-end .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-dropdown a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#4eb5de;color:#fff}}.navbar.is-link{background-color:#2e63b8;color:#fff}.navbar.is-link .navbar-brand>.navbar-item,.navbar.is-link .navbar-brand .navbar-link{color:#fff}.navbar.is-link .navbar-brand>a.navbar-item:focus,.navbar.is-link .navbar-brand>a.navbar-item:hover,.navbar.is-link .navbar-brand>a.navbar-item.is-active,.navbar.is-link .navbar-brand .navbar-link:focus,.navbar.is-link .navbar-brand .navbar-link:hover,.navbar.is-link .navbar-brand .navbar-link.is-active{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-link .navbar-start>.navbar-item,.navbar.is-link .navbar-start .navbar-link,.navbar.is-link .navbar-end>.navbar-item,.navbar.is-link .navbar-end .navbar-link{color:#fff}.navbar.is-link .navbar-start>a.navbar-item:focus,.navbar.is-link .navbar-start>a.navbar-item:hover,.navbar.is-link .navbar-start>a.navbar-item.is-active,.navbar.is-link .navbar-start .navbar-link:focus,.navbar.is-link .navbar-start .navbar-link:hover,.navbar.is-link .navbar-start .navbar-link.is-active,.navbar.is-link .navbar-end>a.navbar-item:focus,.navbar.is-link .navbar-end>a.navbar-item:hover,.navbar.is-link .navbar-end>a.navbar-item.is-active,.navbar.is-link .navbar-end .navbar-link:focus,.navbar.is-link .navbar-end .navbar-link:hover,.navbar.is-link .navbar-end .navbar-link.is-active{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-start .navbar-link::after,.navbar.is-link .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#2e63b8;color:#fff}}.navbar.is-info{background-color:#209cee;color:#fff}.navbar.is-info .navbar-brand>.navbar-item,.navbar.is-info .navbar-brand .navbar-link{color:#fff}.navbar.is-info .navbar-brand>a.navbar-item:focus,.navbar.is-info .navbar-brand>a.navbar-item:hover,.navbar.is-info .navbar-brand>a.navbar-item.is-active,.navbar.is-info .navbar-brand .navbar-link:focus,.navbar.is-info .navbar-brand .navbar-link:hover,.navbar.is-info .navbar-brand .navbar-link.is-active{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-info .navbar-start>.navbar-item,.navbar.is-info .navbar-start .navbar-link,.navbar.is-info .navbar-end>.navbar-item,.navbar.is-info .navbar-end .navbar-link{color:#fff}.navbar.is-info .navbar-start>a.navbar-item:focus,.navbar.is-info .navbar-start>a.navbar-item:hover,.navbar.is-info .navbar-start>a.navbar-item.is-active,.navbar.is-info .navbar-start .navbar-link:focus,.navbar.is-info .navbar-start .navbar-link:hover,.navbar.is-info .navbar-start .navbar-link.is-active,.navbar.is-info .navbar-end>a.navbar-item:focus,.navbar.is-info .navbar-end>a.navbar-item:hover,.navbar.is-info .navbar-end>a.navbar-item.is-active,.navbar.is-info .navbar-end .navbar-link:focus,.navbar.is-info .navbar-end .navbar-link:hover,.navbar.is-info .navbar-end .navbar-link.is-active{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-start .navbar-link::after,.navbar.is-info .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#209cee;color:#fff}}.navbar.is-success{background-color:#22c35b;color:#fff}.navbar.is-success .navbar-brand>.navbar-item,.navbar.is-success .navbar-brand .navbar-link{color:#fff}.navbar.is-success .navbar-brand>a.navbar-item:focus,.navbar.is-success .navbar-brand>a.navbar-item:hover,.navbar.is-success .navbar-brand>a.navbar-item.is-active,.navbar.is-success .navbar-brand .navbar-link:focus,.navbar.is-success .navbar-brand .navbar-link:hover,.navbar.is-success .navbar-brand .navbar-link.is-active{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-success .navbar-start>.navbar-item,.navbar.is-success .navbar-start .navbar-link,.navbar.is-success .navbar-end>.navbar-item,.navbar.is-success .navbar-end .navbar-link{color:#fff}.navbar.is-success .navbar-start>a.navbar-item:focus,.navbar.is-success .navbar-start>a.navbar-item:hover,.navbar.is-success .navbar-start>a.navbar-item.is-active,.navbar.is-success .navbar-start .navbar-link:focus,.navbar.is-success .navbar-start .navbar-link:hover,.navbar.is-success .navbar-start .navbar-link.is-active,.navbar.is-success .navbar-end>a.navbar-item:focus,.navbar.is-success .navbar-end>a.navbar-item:hover,.navbar.is-success .navbar-end>a.navbar-item.is-active,.navbar.is-success .navbar-end .navbar-link:focus,.navbar.is-success .navbar-end .navbar-link:hover,.navbar.is-success .navbar-end .navbar-link.is-active{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-start .navbar-link::after,.navbar.is-success .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#22c35b;color:#fff}}.navbar.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand>.navbar-item,.navbar.is-warning .navbar-brand .navbar-link{color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand>a.navbar-item:focus,.navbar.is-warning .navbar-brand>a.navbar-item:hover,.navbar.is-warning .navbar-brand>a.navbar-item.is-active,.navbar.is-warning .navbar-brand .navbar-link:focus,.navbar.is-warning .navbar-brand .navbar-link:hover,.navbar.is-warning .navbar-brand .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-burger{color:rgba(0,0,0,0.7)}@media screen and (min-width: 1056px){.navbar.is-warning .navbar-start>.navbar-item,.navbar.is-warning .navbar-start .navbar-link,.navbar.is-warning .navbar-end>.navbar-item,.navbar.is-warning .navbar-end .navbar-link{color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-start>a.navbar-item:focus,.navbar.is-warning .navbar-start>a.navbar-item:hover,.navbar.is-warning .navbar-start>a.navbar-item.is-active,.navbar.is-warning .navbar-start .navbar-link:focus,.navbar.is-warning .navbar-start .navbar-link:hover,.navbar.is-warning .navbar-start .navbar-link.is-active,.navbar.is-warning .navbar-end>a.navbar-item:focus,.navbar.is-warning .navbar-end>a.navbar-item:hover,.navbar.is-warning .navbar-end>a.navbar-item.is-active,.navbar.is-warning .navbar-end .navbar-link:focus,.navbar.is-warning .navbar-end .navbar-link:hover,.navbar.is-warning .navbar-end .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-start .navbar-link::after,.navbar.is-warning .navbar-end .navbar-link::after{border-color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#ffdd57;color:rgba(0,0,0,0.7)}}.navbar.is-danger{background-color:#da0b00;color:#fff}.navbar.is-danger .navbar-brand>.navbar-item,.navbar.is-danger .navbar-brand .navbar-link{color:#fff}.navbar.is-danger .navbar-brand>a.navbar-item:focus,.navbar.is-danger .navbar-brand>a.navbar-item:hover,.navbar.is-danger .navbar-brand>a.navbar-item.is-active,.navbar.is-danger .navbar-brand .navbar-link:focus,.navbar.is-danger .navbar-brand .navbar-link:hover,.navbar.is-danger .navbar-brand .navbar-link.is-active{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-danger .navbar-start>.navbar-item,.navbar.is-danger .navbar-start .navbar-link,.navbar.is-danger .navbar-end>.navbar-item,.navbar.is-danger .navbar-end .navbar-link{color:#fff}.navbar.is-danger .navbar-start>a.navbar-item:focus,.navbar.is-danger .navbar-start>a.navbar-item:hover,.navbar.is-danger .navbar-start>a.navbar-item.is-active,.navbar.is-danger .navbar-start .navbar-link:focus,.navbar.is-danger .navbar-start .navbar-link:hover,.navbar.is-danger .navbar-start .navbar-link.is-active,.navbar.is-danger .navbar-end>a.navbar-item:focus,.navbar.is-danger .navbar-end>a.navbar-item:hover,.navbar.is-danger .navbar-end>a.navbar-item.is-active,.navbar.is-danger .navbar-end .navbar-link:focus,.navbar.is-danger .navbar-end .navbar-link:hover,.navbar.is-danger .navbar-end .navbar-link.is-active{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-start .navbar-link::after,.navbar.is-danger .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#da0b00;color:#fff}}.navbar>.container{align-items:stretch;display:flex;min-height:3.25rem;width:100%}.navbar.has-shadow{box-shadow:0 2px 0 0 #f5f5f5}.navbar.is-fixed-bottom,.navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom{bottom:0}.navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #f5f5f5}.navbar.is-fixed-top{top:0}html.has-navbar-fixed-top,body.has-navbar-fixed-top{padding-top:3.25rem}html.has-navbar-fixed-bottom,body.has-navbar-fixed-bottom{padding-bottom:3.25rem}.navbar-brand,.navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:3.25rem}.navbar-brand a.navbar-item:focus,.navbar-brand a.navbar-item:hover{background-color:transparent}.navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}.navbar-burger{color:#222;-moz-appearance:none;-webkit-appearance:none;appearance:none;background:none;border:none;cursor:pointer;display:block;height:3.25rem;position:relative;width:3.25rem;margin-left:auto}.navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;transform-origin:center;transition-duration:86ms;transition-property:background-color, opacity, transform;transition-timing-function:ease-out;width:16px}.navbar-burger span:nth-child(1){top:calc(50% - 6px)}.navbar-burger span:nth-child(2){top:calc(50% - 1px)}.navbar-burger span:nth-child(3){top:calc(50% + 4px)}.navbar-burger:hover{background-color:rgba(0,0,0,0.05)}.navbar-burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}.navbar-burger.is-active span:nth-child(2){opacity:0}.navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}.navbar-menu{display:none}.navbar-item,.navbar-link{color:#222;display:block;line-height:1.5;padding:0.5rem 0.75rem;position:relative}.navbar-item .icon:only-child,.navbar-link .icon:only-child{margin-left:-0.25rem;margin-right:-0.25rem}a.navbar-item,.navbar-link{cursor:pointer}a.navbar-item:focus,a.navbar-item:focus-within,a.navbar-item:hover,a.navbar-item.is-active,.navbar-link:focus,.navbar-link:focus-within,.navbar-link:hover,.navbar-link.is-active{background-color:#fafafa;color:#2e63b8}.navbar-item{flex-grow:0;flex-shrink:0}.navbar-item img{max-height:1.75rem}.navbar-item.has-dropdown{padding:0}.navbar-item.is-expanded{flex-grow:1;flex-shrink:1}.navbar-item.is-tab{border-bottom:1px solid transparent;min-height:3.25rem;padding-bottom:calc(0.5rem - 1px)}.navbar-item.is-tab:focus,.navbar-item.is-tab:hover{background-color:rgba(0,0,0,0);border-bottom-color:#2e63b8}.navbar-item.is-tab.is-active{background-color:rgba(0,0,0,0);border-bottom-color:#2e63b8;border-bottom-style:solid;border-bottom-width:3px;color:#2e63b8;padding-bottom:calc(0.5rem - 3px)}.navbar-content{flex-grow:1;flex-shrink:1}.navbar-link:not(.is-arrowless){padding-right:2.5em}.navbar-link:not(.is-arrowless)::after{border-color:#2e63b8;margin-top:-0.375em;right:1.125em}.navbar-dropdown{font-size:0.875rem;padding-bottom:0.5rem;padding-top:0.5rem}.navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}.navbar-divider{background-color:#f5f5f5;border:none;display:none;height:2px;margin:0.5rem 0}@media screen and (max-width: 1055px){.navbar>.container{display:block}.navbar-brand .navbar-item,.navbar-tabs .navbar-item{align-items:center;display:flex}.navbar-link::after{display:none}.navbar-menu{background-color:#fff;box-shadow:0 8px 16px rgba(10,10,10,0.1);padding:0.5rem 0}.navbar-menu.is-active{display:block}.navbar.is-fixed-bottom-touch,.navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-touch{bottom:0}.navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}.navbar.is-fixed-top-touch{top:0}.navbar.is-fixed-top .navbar-menu,.navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 3.25rem);overflow:auto}html.has-navbar-fixed-top-touch,body.has-navbar-fixed-top-touch{padding-top:3.25rem}html.has-navbar-fixed-bottom-touch,body.has-navbar-fixed-bottom-touch{padding-bottom:3.25rem}}@media screen and (min-width: 1056px){.navbar,.navbar-menu,.navbar-start,.navbar-end{align-items:stretch;display:flex}.navbar{min-height:3.25rem}.navbar.is-spaced{padding:1rem 2rem}.navbar.is-spaced .navbar-start,.navbar.is-spaced .navbar-end{align-items:center}.navbar.is-spaced a.navbar-item,.navbar.is-spaced .navbar-link{border-radius:4px}.navbar.is-transparent a.navbar-item:focus,.navbar.is-transparent a.navbar-item:hover,.navbar.is-transparent a.navbar-item.is-active,.navbar.is-transparent .navbar-link:focus,.navbar.is-transparent .navbar-link:hover,.navbar.is-transparent .navbar-link.is-active{background-color:transparent !important}.navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent !important}.navbar.is-transparent .navbar-dropdown a.navbar-item:focus,.navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#2e63b8}.navbar-burger{display:none}.navbar-item,.navbar-link{align-items:center;display:flex}.navbar-item.has-dropdown{align-items:stretch}.navbar-item.has-dropdown-up .navbar-link::after{transform:rotate(135deg) translate(0.25em, -0.25em)}.navbar-item.has-dropdown-up .navbar-dropdown{border-bottom:2px solid #dbdbdb;border-radius:6px 6px 0 0;border-top:none;bottom:100%;box-shadow:0 -8px 8px rgba(10,10,10,0.1);top:auto}.navbar-item.is-active .navbar-dropdown,.navbar-item.is-hoverable:focus .navbar-dropdown,.navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar.is-spaced .navbar-item.is-active .navbar-dropdown,.navbar-item.is-active .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown,.navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown,.navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed{opacity:1;pointer-events:auto;transform:translateY(0)}.navbar-menu{flex-grow:1;flex-shrink:0}.navbar-start{justify-content:flex-start;margin-right:auto}.navbar-end{justify-content:flex-end;margin-left:auto}.navbar-dropdown{background-color:#fff;border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:2px solid #dbdbdb;box-shadow:0 8px 8px rgba(10,10,10,0.1);display:none;font-size:0.875rem;left:0;min-width:100%;position:absolute;top:100%;z-index:20}.navbar-dropdown .navbar-item{padding:0.375rem 1rem;white-space:nowrap}.navbar-dropdown a.navbar-item{padding-right:3rem}.navbar-dropdown a.navbar-item:focus,.navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#2e63b8}.navbar.is-spaced .navbar-dropdown,.navbar-dropdown.is-boxed{border-radius:6px;border-top:none;box-shadow:0 8px 8px rgba(10,10,10,0.1), 0 0 0 1px rgba(10,10,10,0.1);display:block;opacity:0;pointer-events:none;top:calc(100% + (-4px));transform:translateY(-5px);transition-duration:86ms;transition-property:opacity, transform}.navbar-dropdown.is-right{left:auto;right:0}.navbar-divider{display:block}.navbar>.container .navbar-brand,.container>.navbar .navbar-brand{margin-left:-.75rem}.navbar>.container .navbar-menu,.container>.navbar .navbar-menu{margin-right:-.75rem}.navbar.is-fixed-bottom-desktop,.navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-desktop{bottom:0}.navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}.navbar.is-fixed-top-desktop{top:0}html.has-navbar-fixed-top-desktop,body.has-navbar-fixed-top-desktop{padding-top:3.25rem}html.has-navbar-fixed-bottom-desktop,body.has-navbar-fixed-bottom-desktop{padding-bottom:3.25rem}html.has-spaced-navbar-fixed-top,body.has-spaced-navbar-fixed-top{padding-top:5.25rem}html.has-spaced-navbar-fixed-bottom,body.has-spaced-navbar-fixed-bottom{padding-bottom:5.25rem}a.navbar-item.is-active,.navbar-link.is-active{color:#0a0a0a}a.navbar-item.is-active:not(:focus):not(:hover),.navbar-link.is-active:not(:focus):not(:hover){background-color:rgba(0,0,0,0)}.navbar-item.has-dropdown:focus .navbar-link,.navbar-item.has-dropdown:hover .navbar-link,.navbar-item.has-dropdown.is-active .navbar-link{background-color:#fafafa}}.hero.is-fullheight-with-navbar{min-height:calc(100vh - 3.25rem)}.pagination{font-size:1rem;margin:-.25rem}.pagination.is-small,#documenter .docs-sidebar form.docs-search>input.pagination{font-size:.75rem}.pagination.is-medium{font-size:1.25rem}.pagination.is-large{font-size:1.5rem}.pagination.is-rounded .pagination-previous,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-previous,.pagination.is-rounded .pagination-next,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-next{padding-left:1em;padding-right:1em;border-radius:9999px}.pagination.is-rounded .pagination-link,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-link{border-radius:9999px}.pagination,.pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis{font-size:1em;justify-content:center;margin:.25rem;padding-left:.5em;padding-right:.5em;text-align:center}.pagination-previous,.pagination-next,.pagination-link{border-color:#dbdbdb;color:#222;min-width:2.5em}.pagination-previous:hover,.pagination-next:hover,.pagination-link:hover{border-color:#b5b5b5;color:#363636}.pagination-previous:focus,.pagination-next:focus,.pagination-link:focus{border-color:#3c5dcd}.pagination-previous:active,.pagination-next:active,.pagination-link:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2)}.pagination-previous[disabled],.pagination-previous.is-disabled,.pagination-next[disabled],.pagination-next.is-disabled,.pagination-link[disabled],.pagination-link.is-disabled{background-color:#dbdbdb;border-color:#dbdbdb;box-shadow:none;color:#6b6b6b;opacity:0.5}.pagination-previous,.pagination-next{padding-left:.75em;padding-right:.75em;white-space:nowrap}.pagination-link.is-current{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.pagination-ellipsis{color:#b5b5b5;pointer-events:none}.pagination-list{flex-wrap:wrap}.pagination-list li{list-style:none}@media screen and (max-width: 768px){.pagination{flex-wrap:wrap}.pagination-previous,.pagination-next{flex-grow:1;flex-shrink:1}.pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width: 769px),print{.pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis{margin-bottom:0;margin-top:0}.pagination-previous{order:2}.pagination-next{order:3}.pagination{justify-content:space-between;margin-bottom:0;margin-top:0}.pagination.is-centered .pagination-previous{order:1}.pagination.is-centered .pagination-list{justify-content:center;order:2}.pagination.is-centered .pagination-next{order:3}.pagination.is-right .pagination-previous{order:1}.pagination.is-right .pagination-next{order:2}.pagination.is-right .pagination-list{justify-content:flex-end;order:3}}.panel{border-radius:6px;box-shadow:#bbb;font-size:1rem}.panel:not(:last-child){margin-bottom:1.5rem}.panel.is-white .panel-heading{background-color:#fff;color:#0a0a0a}.panel.is-white .panel-tabs a.is-active{border-bottom-color:#fff}.panel.is-white .panel-block.is-active .panel-icon{color:#fff}.panel.is-black .panel-heading{background-color:#0a0a0a;color:#fff}.panel.is-black .panel-tabs a.is-active{border-bottom-color:#0a0a0a}.panel.is-black .panel-block.is-active .panel-icon{color:#0a0a0a}.panel.is-light .panel-heading{background-color:#f5f5f5;color:rgba(0,0,0,0.7)}.panel.is-light .panel-tabs a.is-active{border-bottom-color:#f5f5f5}.panel.is-light .panel-block.is-active .panel-icon{color:#f5f5f5}.panel.is-dark .panel-heading,.content kbd.panel .panel-heading{background-color:#363636;color:#fff}.panel.is-dark .panel-tabs a.is-active,.content kbd.panel .panel-tabs a.is-active{border-bottom-color:#363636}.panel.is-dark .panel-block.is-active .panel-icon,.content kbd.panel .panel-block.is-active .panel-icon{color:#363636}.panel.is-primary .panel-heading,.docstring>section>a.panel.docs-sourcelink .panel-heading{background-color:#4eb5de;color:#fff}.panel.is-primary .panel-tabs a.is-active,.docstring>section>a.panel.docs-sourcelink .panel-tabs a.is-active{border-bottom-color:#4eb5de}.panel.is-primary .panel-block.is-active .panel-icon,.docstring>section>a.panel.docs-sourcelink .panel-block.is-active .panel-icon{color:#4eb5de}.panel.is-link .panel-heading{background-color:#2e63b8;color:#fff}.panel.is-link .panel-tabs a.is-active{border-bottom-color:#2e63b8}.panel.is-link .panel-block.is-active .panel-icon{color:#2e63b8}.panel.is-info .panel-heading{background-color:#209cee;color:#fff}.panel.is-info .panel-tabs a.is-active{border-bottom-color:#209cee}.panel.is-info .panel-block.is-active .panel-icon{color:#209cee}.panel.is-success .panel-heading{background-color:#22c35b;color:#fff}.panel.is-success .panel-tabs a.is-active{border-bottom-color:#22c35b}.panel.is-success .panel-block.is-active .panel-icon{color:#22c35b}.panel.is-warning .panel-heading{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.panel.is-warning .panel-tabs a.is-active{border-bottom-color:#ffdd57}.panel.is-warning .panel-block.is-active .panel-icon{color:#ffdd57}.panel.is-danger .panel-heading{background-color:#da0b00;color:#fff}.panel.is-danger .panel-tabs a.is-active{border-bottom-color:#da0b00}.panel.is-danger .panel-block.is-active .panel-icon{color:#da0b00}.panel-tabs:not(:last-child),.panel-block:not(:last-child){border-bottom:1px solid #ededed}.panel-heading{background-color:#ededed;border-radius:6px 6px 0 0;color:#222;font-size:1.25em;font-weight:700;line-height:1.25;padding:0.75em 1em}.panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}.panel-tabs a{border-bottom:1px solid #dbdbdb;margin-bottom:-1px;padding:0.5em}.panel-tabs a.is-active{border-bottom-color:#4a4a4a;color:#363636}.panel-list a{color:#222}.panel-list a:hover{color:#2e63b8}.panel-block{align-items:center;color:#222;display:flex;justify-content:flex-start;padding:0.5em 0.75em}.panel-block input[type="checkbox"]{margin-right:.75em}.panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}.panel-block.is-wrapped{flex-wrap:wrap}.panel-block.is-active{border-left-color:#2e63b8;color:#363636}.panel-block.is-active .panel-icon{color:#2e63b8}.panel-block:last-child{border-bottom-left-radius:6px;border-bottom-right-radius:6px}a.panel-block,label.panel-block{cursor:pointer}a.panel-block:hover,label.panel-block:hover{background-color:#f5f5f5}.panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#6b6b6b;margin-right:.75em}.panel-icon .fa{font-size:inherit;line-height:inherit}.tabs{-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:1rem;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}.tabs a{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;color:#222;display:flex;justify-content:center;margin-bottom:-1px;padding:0.5em 1em;vertical-align:top}.tabs a:hover{border-bottom-color:#222;color:#222}.tabs li{display:block}.tabs li.is-active a{border-bottom-color:#2e63b8;color:#2e63b8}.tabs ul{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}.tabs ul.is-left{padding-right:0.75em}.tabs ul.is-center{flex:none;justify-content:center;padding-left:0.75em;padding-right:0.75em}.tabs ul.is-right{justify-content:flex-end;padding-left:0.75em}.tabs .icon:first-child{margin-right:.5em}.tabs .icon:last-child{margin-left:.5em}.tabs.is-centered ul{justify-content:center}.tabs.is-right ul{justify-content:flex-end}.tabs.is-boxed a{border:1px solid transparent;border-radius:4px 4px 0 0}.tabs.is-boxed a:hover{background-color:#f5f5f5;border-bottom-color:#dbdbdb}.tabs.is-boxed li.is-active a{background-color:#fff;border-color:#dbdbdb;border-bottom-color:rgba(0,0,0,0) !important}.tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}.tabs.is-toggle a{border-color:#dbdbdb;border-style:solid;border-width:1px;margin-bottom:0;position:relative}.tabs.is-toggle a:hover{background-color:#f5f5f5;border-color:#b5b5b5;z-index:2}.tabs.is-toggle li+li{margin-left:-1px}.tabs.is-toggle li:first-child a{border-top-left-radius:4px;border-bottom-left-radius:4px}.tabs.is-toggle li:last-child a{border-top-right-radius:4px;border-bottom-right-radius:4px}.tabs.is-toggle li.is-active a{background-color:#2e63b8;border-color:#2e63b8;color:#fff;z-index:1}.tabs.is-toggle ul{border-bottom:none}.tabs.is-toggle.is-toggle-rounded li:first-child a{border-bottom-left-radius:9999px;border-top-left-radius:9999px;padding-left:1.25em}.tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:9999px;border-top-right-radius:9999px;padding-right:1.25em}.tabs.is-small,#documenter .docs-sidebar form.docs-search>input.tabs{font-size:.75rem}.tabs.is-medium{font-size:1.25rem}.tabs.is-large{font-size:1.5rem}.column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>.column.is-narrow{flex:none;width:unset}.columns.is-mobile>.column.is-full{flex:none;width:100%}.columns.is-mobile>.column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>.column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>.column.is-half{flex:none;width:50%}.columns.is-mobile>.column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>.column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>.column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>.column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>.column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>.column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>.column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>.column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>.column.is-offset-half{margin-left:50%}.columns.is-mobile>.column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>.column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>.column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>.column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>.column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>.column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>.column.is-0{flex:none;width:0%}.columns.is-mobile>.column.is-offset-0{margin-left:0%}.columns.is-mobile>.column.is-1{flex:none;width:8.33333337%}.columns.is-mobile>.column.is-offset-1{margin-left:8.33333337%}.columns.is-mobile>.column.is-2{flex:none;width:16.66666674%}.columns.is-mobile>.column.is-offset-2{margin-left:16.66666674%}.columns.is-mobile>.column.is-3{flex:none;width:25%}.columns.is-mobile>.column.is-offset-3{margin-left:25%}.columns.is-mobile>.column.is-4{flex:none;width:33.33333337%}.columns.is-mobile>.column.is-offset-4{margin-left:33.33333337%}.columns.is-mobile>.column.is-5{flex:none;width:41.66666674%}.columns.is-mobile>.column.is-offset-5{margin-left:41.66666674%}.columns.is-mobile>.column.is-6{flex:none;width:50%}.columns.is-mobile>.column.is-offset-6{margin-left:50%}.columns.is-mobile>.column.is-7{flex:none;width:58.33333337%}.columns.is-mobile>.column.is-offset-7{margin-left:58.33333337%}.columns.is-mobile>.column.is-8{flex:none;width:66.66666674%}.columns.is-mobile>.column.is-offset-8{margin-left:66.66666674%}.columns.is-mobile>.column.is-9{flex:none;width:75%}.columns.is-mobile>.column.is-offset-9{margin-left:75%}.columns.is-mobile>.column.is-10{flex:none;width:83.33333337%}.columns.is-mobile>.column.is-offset-10{margin-left:83.33333337%}.columns.is-mobile>.column.is-11{flex:none;width:91.66666674%}.columns.is-mobile>.column.is-offset-11{margin-left:91.66666674%}.columns.is-mobile>.column.is-12{flex:none;width:100%}.columns.is-mobile>.column.is-offset-12{margin-left:100%}@media screen and (max-width: 768px){.column.is-narrow-mobile{flex:none;width:unset}.column.is-full-mobile{flex:none;width:100%}.column.is-three-quarters-mobile{flex:none;width:75%}.column.is-two-thirds-mobile{flex:none;width:66.6666%}.column.is-half-mobile{flex:none;width:50%}.column.is-one-third-mobile{flex:none;width:33.3333%}.column.is-one-quarter-mobile{flex:none;width:25%}.column.is-one-fifth-mobile{flex:none;width:20%}.column.is-two-fifths-mobile{flex:none;width:40%}.column.is-three-fifths-mobile{flex:none;width:60%}.column.is-four-fifths-mobile{flex:none;width:80%}.column.is-offset-three-quarters-mobile{margin-left:75%}.column.is-offset-two-thirds-mobile{margin-left:66.6666%}.column.is-offset-half-mobile{margin-left:50%}.column.is-offset-one-third-mobile{margin-left:33.3333%}.column.is-offset-one-quarter-mobile{margin-left:25%}.column.is-offset-one-fifth-mobile{margin-left:20%}.column.is-offset-two-fifths-mobile{margin-left:40%}.column.is-offset-three-fifths-mobile{margin-left:60%}.column.is-offset-four-fifths-mobile{margin-left:80%}.column.is-0-mobile{flex:none;width:0%}.column.is-offset-0-mobile{margin-left:0%}.column.is-1-mobile{flex:none;width:8.33333337%}.column.is-offset-1-mobile{margin-left:8.33333337%}.column.is-2-mobile{flex:none;width:16.66666674%}.column.is-offset-2-mobile{margin-left:16.66666674%}.column.is-3-mobile{flex:none;width:25%}.column.is-offset-3-mobile{margin-left:25%}.column.is-4-mobile{flex:none;width:33.33333337%}.column.is-offset-4-mobile{margin-left:33.33333337%}.column.is-5-mobile{flex:none;width:41.66666674%}.column.is-offset-5-mobile{margin-left:41.66666674%}.column.is-6-mobile{flex:none;width:50%}.column.is-offset-6-mobile{margin-left:50%}.column.is-7-mobile{flex:none;width:58.33333337%}.column.is-offset-7-mobile{margin-left:58.33333337%}.column.is-8-mobile{flex:none;width:66.66666674%}.column.is-offset-8-mobile{margin-left:66.66666674%}.column.is-9-mobile{flex:none;width:75%}.column.is-offset-9-mobile{margin-left:75%}.column.is-10-mobile{flex:none;width:83.33333337%}.column.is-offset-10-mobile{margin-left:83.33333337%}.column.is-11-mobile{flex:none;width:91.66666674%}.column.is-offset-11-mobile{margin-left:91.66666674%}.column.is-12-mobile{flex:none;width:100%}.column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width: 769px),print{.column.is-narrow,.column.is-narrow-tablet{flex:none;width:unset}.column.is-full,.column.is-full-tablet{flex:none;width:100%}.column.is-three-quarters,.column.is-three-quarters-tablet{flex:none;width:75%}.column.is-two-thirds,.column.is-two-thirds-tablet{flex:none;width:66.6666%}.column.is-half,.column.is-half-tablet{flex:none;width:50%}.column.is-one-third,.column.is-one-third-tablet{flex:none;width:33.3333%}.column.is-one-quarter,.column.is-one-quarter-tablet{flex:none;width:25%}.column.is-one-fifth,.column.is-one-fifth-tablet{flex:none;width:20%}.column.is-two-fifths,.column.is-two-fifths-tablet{flex:none;width:40%}.column.is-three-fifths,.column.is-three-fifths-tablet{flex:none;width:60%}.column.is-four-fifths,.column.is-four-fifths-tablet{flex:none;width:80%}.column.is-offset-three-quarters,.column.is-offset-three-quarters-tablet{margin-left:75%}.column.is-offset-two-thirds,.column.is-offset-two-thirds-tablet{margin-left:66.6666%}.column.is-offset-half,.column.is-offset-half-tablet{margin-left:50%}.column.is-offset-one-third,.column.is-offset-one-third-tablet{margin-left:33.3333%}.column.is-offset-one-quarter,.column.is-offset-one-quarter-tablet{margin-left:25%}.column.is-offset-one-fifth,.column.is-offset-one-fifth-tablet{margin-left:20%}.column.is-offset-two-fifths,.column.is-offset-two-fifths-tablet{margin-left:40%}.column.is-offset-three-fifths,.column.is-offset-three-fifths-tablet{margin-left:60%}.column.is-offset-four-fifths,.column.is-offset-four-fifths-tablet{margin-left:80%}.column.is-0,.column.is-0-tablet{flex:none;width:0%}.column.is-offset-0,.column.is-offset-0-tablet{margin-left:0%}.column.is-1,.column.is-1-tablet{flex:none;width:8.33333337%}.column.is-offset-1,.column.is-offset-1-tablet{margin-left:8.33333337%}.column.is-2,.column.is-2-tablet{flex:none;width:16.66666674%}.column.is-offset-2,.column.is-offset-2-tablet{margin-left:16.66666674%}.column.is-3,.column.is-3-tablet{flex:none;width:25%}.column.is-offset-3,.column.is-offset-3-tablet{margin-left:25%}.column.is-4,.column.is-4-tablet{flex:none;width:33.33333337%}.column.is-offset-4,.column.is-offset-4-tablet{margin-left:33.33333337%}.column.is-5,.column.is-5-tablet{flex:none;width:41.66666674%}.column.is-offset-5,.column.is-offset-5-tablet{margin-left:41.66666674%}.column.is-6,.column.is-6-tablet{flex:none;width:50%}.column.is-offset-6,.column.is-offset-6-tablet{margin-left:50%}.column.is-7,.column.is-7-tablet{flex:none;width:58.33333337%}.column.is-offset-7,.column.is-offset-7-tablet{margin-left:58.33333337%}.column.is-8,.column.is-8-tablet{flex:none;width:66.66666674%}.column.is-offset-8,.column.is-offset-8-tablet{margin-left:66.66666674%}.column.is-9,.column.is-9-tablet{flex:none;width:75%}.column.is-offset-9,.column.is-offset-9-tablet{margin-left:75%}.column.is-10,.column.is-10-tablet{flex:none;width:83.33333337%}.column.is-offset-10,.column.is-offset-10-tablet{margin-left:83.33333337%}.column.is-11,.column.is-11-tablet{flex:none;width:91.66666674%}.column.is-offset-11,.column.is-offset-11-tablet{margin-left:91.66666674%}.column.is-12,.column.is-12-tablet{flex:none;width:100%}.column.is-offset-12,.column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width: 1055px){.column.is-narrow-touch{flex:none;width:unset}.column.is-full-touch{flex:none;width:100%}.column.is-three-quarters-touch{flex:none;width:75%}.column.is-two-thirds-touch{flex:none;width:66.6666%}.column.is-half-touch{flex:none;width:50%}.column.is-one-third-touch{flex:none;width:33.3333%}.column.is-one-quarter-touch{flex:none;width:25%}.column.is-one-fifth-touch{flex:none;width:20%}.column.is-two-fifths-touch{flex:none;width:40%}.column.is-three-fifths-touch{flex:none;width:60%}.column.is-four-fifths-touch{flex:none;width:80%}.column.is-offset-three-quarters-touch{margin-left:75%}.column.is-offset-two-thirds-touch{margin-left:66.6666%}.column.is-offset-half-touch{margin-left:50%}.column.is-offset-one-third-touch{margin-left:33.3333%}.column.is-offset-one-quarter-touch{margin-left:25%}.column.is-offset-one-fifth-touch{margin-left:20%}.column.is-offset-two-fifths-touch{margin-left:40%}.column.is-offset-three-fifths-touch{margin-left:60%}.column.is-offset-four-fifths-touch{margin-left:80%}.column.is-0-touch{flex:none;width:0%}.column.is-offset-0-touch{margin-left:0%}.column.is-1-touch{flex:none;width:8.33333337%}.column.is-offset-1-touch{margin-left:8.33333337%}.column.is-2-touch{flex:none;width:16.66666674%}.column.is-offset-2-touch{margin-left:16.66666674%}.column.is-3-touch{flex:none;width:25%}.column.is-offset-3-touch{margin-left:25%}.column.is-4-touch{flex:none;width:33.33333337%}.column.is-offset-4-touch{margin-left:33.33333337%}.column.is-5-touch{flex:none;width:41.66666674%}.column.is-offset-5-touch{margin-left:41.66666674%}.column.is-6-touch{flex:none;width:50%}.column.is-offset-6-touch{margin-left:50%}.column.is-7-touch{flex:none;width:58.33333337%}.column.is-offset-7-touch{margin-left:58.33333337%}.column.is-8-touch{flex:none;width:66.66666674%}.column.is-offset-8-touch{margin-left:66.66666674%}.column.is-9-touch{flex:none;width:75%}.column.is-offset-9-touch{margin-left:75%}.column.is-10-touch{flex:none;width:83.33333337%}.column.is-offset-10-touch{margin-left:83.33333337%}.column.is-11-touch{flex:none;width:91.66666674%}.column.is-offset-11-touch{margin-left:91.66666674%}.column.is-12-touch{flex:none;width:100%}.column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width: 1056px){.column.is-narrow-desktop{flex:none;width:unset}.column.is-full-desktop{flex:none;width:100%}.column.is-three-quarters-desktop{flex:none;width:75%}.column.is-two-thirds-desktop{flex:none;width:66.6666%}.column.is-half-desktop{flex:none;width:50%}.column.is-one-third-desktop{flex:none;width:33.3333%}.column.is-one-quarter-desktop{flex:none;width:25%}.column.is-one-fifth-desktop{flex:none;width:20%}.column.is-two-fifths-desktop{flex:none;width:40%}.column.is-three-fifths-desktop{flex:none;width:60%}.column.is-four-fifths-desktop{flex:none;width:80%}.column.is-offset-three-quarters-desktop{margin-left:75%}.column.is-offset-two-thirds-desktop{margin-left:66.6666%}.column.is-offset-half-desktop{margin-left:50%}.column.is-offset-one-third-desktop{margin-left:33.3333%}.column.is-offset-one-quarter-desktop{margin-left:25%}.column.is-offset-one-fifth-desktop{margin-left:20%}.column.is-offset-two-fifths-desktop{margin-left:40%}.column.is-offset-three-fifths-desktop{margin-left:60%}.column.is-offset-four-fifths-desktop{margin-left:80%}.column.is-0-desktop{flex:none;width:0%}.column.is-offset-0-desktop{margin-left:0%}.column.is-1-desktop{flex:none;width:8.33333337%}.column.is-offset-1-desktop{margin-left:8.33333337%}.column.is-2-desktop{flex:none;width:16.66666674%}.column.is-offset-2-desktop{margin-left:16.66666674%}.column.is-3-desktop{flex:none;width:25%}.column.is-offset-3-desktop{margin-left:25%}.column.is-4-desktop{flex:none;width:33.33333337%}.column.is-offset-4-desktop{margin-left:33.33333337%}.column.is-5-desktop{flex:none;width:41.66666674%}.column.is-offset-5-desktop{margin-left:41.66666674%}.column.is-6-desktop{flex:none;width:50%}.column.is-offset-6-desktop{margin-left:50%}.column.is-7-desktop{flex:none;width:58.33333337%}.column.is-offset-7-desktop{margin-left:58.33333337%}.column.is-8-desktop{flex:none;width:66.66666674%}.column.is-offset-8-desktop{margin-left:66.66666674%}.column.is-9-desktop{flex:none;width:75%}.column.is-offset-9-desktop{margin-left:75%}.column.is-10-desktop{flex:none;width:83.33333337%}.column.is-offset-10-desktop{margin-left:83.33333337%}.column.is-11-desktop{flex:none;width:91.66666674%}.column.is-offset-11-desktop{margin-left:91.66666674%}.column.is-12-desktop{flex:none;width:100%}.column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width: 1216px){.column.is-narrow-widescreen{flex:none;width:unset}.column.is-full-widescreen{flex:none;width:100%}.column.is-three-quarters-widescreen{flex:none;width:75%}.column.is-two-thirds-widescreen{flex:none;width:66.6666%}.column.is-half-widescreen{flex:none;width:50%}.column.is-one-third-widescreen{flex:none;width:33.3333%}.column.is-one-quarter-widescreen{flex:none;width:25%}.column.is-one-fifth-widescreen{flex:none;width:20%}.column.is-two-fifths-widescreen{flex:none;width:40%}.column.is-three-fifths-widescreen{flex:none;width:60%}.column.is-four-fifths-widescreen{flex:none;width:80%}.column.is-offset-three-quarters-widescreen{margin-left:75%}.column.is-offset-two-thirds-widescreen{margin-left:66.6666%}.column.is-offset-half-widescreen{margin-left:50%}.column.is-offset-one-third-widescreen{margin-left:33.3333%}.column.is-offset-one-quarter-widescreen{margin-left:25%}.column.is-offset-one-fifth-widescreen{margin-left:20%}.column.is-offset-two-fifths-widescreen{margin-left:40%}.column.is-offset-three-fifths-widescreen{margin-left:60%}.column.is-offset-four-fifths-widescreen{margin-left:80%}.column.is-0-widescreen{flex:none;width:0%}.column.is-offset-0-widescreen{margin-left:0%}.column.is-1-widescreen{flex:none;width:8.33333337%}.column.is-offset-1-widescreen{margin-left:8.33333337%}.column.is-2-widescreen{flex:none;width:16.66666674%}.column.is-offset-2-widescreen{margin-left:16.66666674%}.column.is-3-widescreen{flex:none;width:25%}.column.is-offset-3-widescreen{margin-left:25%}.column.is-4-widescreen{flex:none;width:33.33333337%}.column.is-offset-4-widescreen{margin-left:33.33333337%}.column.is-5-widescreen{flex:none;width:41.66666674%}.column.is-offset-5-widescreen{margin-left:41.66666674%}.column.is-6-widescreen{flex:none;width:50%}.column.is-offset-6-widescreen{margin-left:50%}.column.is-7-widescreen{flex:none;width:58.33333337%}.column.is-offset-7-widescreen{margin-left:58.33333337%}.column.is-8-widescreen{flex:none;width:66.66666674%}.column.is-offset-8-widescreen{margin-left:66.66666674%}.column.is-9-widescreen{flex:none;width:75%}.column.is-offset-9-widescreen{margin-left:75%}.column.is-10-widescreen{flex:none;width:83.33333337%}.column.is-offset-10-widescreen{margin-left:83.33333337%}.column.is-11-widescreen{flex:none;width:91.66666674%}.column.is-offset-11-widescreen{margin-left:91.66666674%}.column.is-12-widescreen{flex:none;width:100%}.column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width: 1408px){.column.is-narrow-fullhd{flex:none;width:unset}.column.is-full-fullhd{flex:none;width:100%}.column.is-three-quarters-fullhd{flex:none;width:75%}.column.is-two-thirds-fullhd{flex:none;width:66.6666%}.column.is-half-fullhd{flex:none;width:50%}.column.is-one-third-fullhd{flex:none;width:33.3333%}.column.is-one-quarter-fullhd{flex:none;width:25%}.column.is-one-fifth-fullhd{flex:none;width:20%}.column.is-two-fifths-fullhd{flex:none;width:40%}.column.is-three-fifths-fullhd{flex:none;width:60%}.column.is-four-fifths-fullhd{flex:none;width:80%}.column.is-offset-three-quarters-fullhd{margin-left:75%}.column.is-offset-two-thirds-fullhd{margin-left:66.6666%}.column.is-offset-half-fullhd{margin-left:50%}.column.is-offset-one-third-fullhd{margin-left:33.3333%}.column.is-offset-one-quarter-fullhd{margin-left:25%}.column.is-offset-one-fifth-fullhd{margin-left:20%}.column.is-offset-two-fifths-fullhd{margin-left:40%}.column.is-offset-three-fifths-fullhd{margin-left:60%}.column.is-offset-four-fifths-fullhd{margin-left:80%}.column.is-0-fullhd{flex:none;width:0%}.column.is-offset-0-fullhd{margin-left:0%}.column.is-1-fullhd{flex:none;width:8.33333337%}.column.is-offset-1-fullhd{margin-left:8.33333337%}.column.is-2-fullhd{flex:none;width:16.66666674%}.column.is-offset-2-fullhd{margin-left:16.66666674%}.column.is-3-fullhd{flex:none;width:25%}.column.is-offset-3-fullhd{margin-left:25%}.column.is-4-fullhd{flex:none;width:33.33333337%}.column.is-offset-4-fullhd{margin-left:33.33333337%}.column.is-5-fullhd{flex:none;width:41.66666674%}.column.is-offset-5-fullhd{margin-left:41.66666674%}.column.is-6-fullhd{flex:none;width:50%}.column.is-offset-6-fullhd{margin-left:50%}.column.is-7-fullhd{flex:none;width:58.33333337%}.column.is-offset-7-fullhd{margin-left:58.33333337%}.column.is-8-fullhd{flex:none;width:66.66666674%}.column.is-offset-8-fullhd{margin-left:66.66666674%}.column.is-9-fullhd{flex:none;width:75%}.column.is-offset-9-fullhd{margin-left:75%}.column.is-10-fullhd{flex:none;width:83.33333337%}.column.is-offset-10-fullhd{margin-left:83.33333337%}.column.is-11-fullhd{flex:none;width:91.66666674%}.column.is-offset-11-fullhd{margin-left:91.66666674%}.column.is-12-fullhd{flex:none;width:100%}.column.is-offset-12-fullhd{margin-left:100%}}.columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.columns:last-child{margin-bottom:-.75rem}.columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}.columns.is-centered{justify-content:center}.columns.is-gapless{margin-left:0;margin-right:0;margin-top:0}.columns.is-gapless>.column{margin:0;padding:0 !important}.columns.is-gapless:not(:last-child){margin-bottom:1.5rem}.columns.is-gapless:last-child{margin-bottom:0}.columns.is-mobile{display:flex}.columns.is-multiline{flex-wrap:wrap}.columns.is-vcentered{align-items:center}@media screen and (min-width: 769px),print{.columns:not(.is-desktop){display:flex}}@media screen and (min-width: 1056px){.columns.is-desktop{display:flex}}.columns.is-variable{--columnGap: 0.75rem;margin-left:calc(-1 * var(--columnGap));margin-right:calc(-1 * var(--columnGap))}.columns.is-variable>.column{padding-left:var(--columnGap);padding-right:var(--columnGap)}.columns.is-variable.is-0{--columnGap: 0rem}@media screen and (max-width: 768px){.columns.is-variable.is-0-mobile{--columnGap: 0rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-0-tablet{--columnGap: 0rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-0-tablet-only{--columnGap: 0rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-0-touch{--columnGap: 0rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-0-desktop{--columnGap: 0rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-0-desktop-only{--columnGap: 0rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-0-widescreen{--columnGap: 0rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-0-widescreen-only{--columnGap: 0rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-0-fullhd{--columnGap: 0rem}}.columns.is-variable.is-1{--columnGap: .25rem}@media screen and (max-width: 768px){.columns.is-variable.is-1-mobile{--columnGap: .25rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-1-tablet{--columnGap: .25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-1-tablet-only{--columnGap: .25rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-1-touch{--columnGap: .25rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-1-desktop{--columnGap: .25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-1-desktop-only{--columnGap: .25rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-1-widescreen{--columnGap: .25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-1-widescreen-only{--columnGap: .25rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-1-fullhd{--columnGap: .25rem}}.columns.is-variable.is-2{--columnGap: .5rem}@media screen and (max-width: 768px){.columns.is-variable.is-2-mobile{--columnGap: .5rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-2-tablet{--columnGap: .5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-2-tablet-only{--columnGap: .5rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-2-touch{--columnGap: .5rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-2-desktop{--columnGap: .5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-2-desktop-only{--columnGap: .5rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-2-widescreen{--columnGap: .5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-2-widescreen-only{--columnGap: .5rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-2-fullhd{--columnGap: .5rem}}.columns.is-variable.is-3{--columnGap: .75rem}@media screen and (max-width: 768px){.columns.is-variable.is-3-mobile{--columnGap: .75rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-3-tablet{--columnGap: .75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-3-tablet-only{--columnGap: .75rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-3-touch{--columnGap: .75rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-3-desktop{--columnGap: .75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-3-desktop-only{--columnGap: .75rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-3-widescreen{--columnGap: .75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-3-widescreen-only{--columnGap: .75rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-3-fullhd{--columnGap: .75rem}}.columns.is-variable.is-4{--columnGap: 1rem}@media screen and (max-width: 768px){.columns.is-variable.is-4-mobile{--columnGap: 1rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-4-tablet{--columnGap: 1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-4-tablet-only{--columnGap: 1rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-4-touch{--columnGap: 1rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-4-desktop{--columnGap: 1rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-4-desktop-only{--columnGap: 1rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-4-widescreen{--columnGap: 1rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-4-widescreen-only{--columnGap: 1rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-4-fullhd{--columnGap: 1rem}}.columns.is-variable.is-5{--columnGap: 1.25rem}@media screen and (max-width: 768px){.columns.is-variable.is-5-mobile{--columnGap: 1.25rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-5-tablet{--columnGap: 1.25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-5-tablet-only{--columnGap: 1.25rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-5-touch{--columnGap: 1.25rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-5-desktop{--columnGap: 1.25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-5-desktop-only{--columnGap: 1.25rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-5-widescreen{--columnGap: 1.25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-5-widescreen-only{--columnGap: 1.25rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-5-fullhd{--columnGap: 1.25rem}}.columns.is-variable.is-6{--columnGap: 1.5rem}@media screen and (max-width: 768px){.columns.is-variable.is-6-mobile{--columnGap: 1.5rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-6-tablet{--columnGap: 1.5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-6-tablet-only{--columnGap: 1.5rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-6-touch{--columnGap: 1.5rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-6-desktop{--columnGap: 1.5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-6-desktop-only{--columnGap: 1.5rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-6-widescreen{--columnGap: 1.5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-6-widescreen-only{--columnGap: 1.5rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-6-fullhd{--columnGap: 1.5rem}}.columns.is-variable.is-7{--columnGap: 1.75rem}@media screen and (max-width: 768px){.columns.is-variable.is-7-mobile{--columnGap: 1.75rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-7-tablet{--columnGap: 1.75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-7-tablet-only{--columnGap: 1.75rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-7-touch{--columnGap: 1.75rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-7-desktop{--columnGap: 1.75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-7-desktop-only{--columnGap: 1.75rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-7-widescreen{--columnGap: 1.75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-7-widescreen-only{--columnGap: 1.75rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-7-fullhd{--columnGap: 1.75rem}}.columns.is-variable.is-8{--columnGap: 2rem}@media screen and (max-width: 768px){.columns.is-variable.is-8-mobile{--columnGap: 2rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-8-tablet{--columnGap: 2rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-8-tablet-only{--columnGap: 2rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-8-touch{--columnGap: 2rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-8-desktop{--columnGap: 2rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-8-desktop-only{--columnGap: 2rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-8-widescreen{--columnGap: 2rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-8-widescreen-only{--columnGap: 2rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-8-fullhd{--columnGap: 2rem}}.tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:min-content}.tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.tile.is-ancestor:last-child{margin-bottom:-.75rem}.tile.is-ancestor:not(:last-child){margin-bottom:.75rem}.tile.is-child{margin:0 !important}.tile.is-parent{padding:.75rem}.tile.is-vertical{flex-direction:column}.tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem !important}@media screen and (min-width: 769px),print{.tile:not(.is-child){display:flex}.tile.is-1{flex:none;width:8.33333337%}.tile.is-2{flex:none;width:16.66666674%}.tile.is-3{flex:none;width:25%}.tile.is-4{flex:none;width:33.33333337%}.tile.is-5{flex:none;width:41.66666674%}.tile.is-6{flex:none;width:50%}.tile.is-7{flex:none;width:58.33333337%}.tile.is-8{flex:none;width:66.66666674%}.tile.is-9{flex:none;width:75%}.tile.is-10{flex:none;width:83.33333337%}.tile.is-11{flex:none;width:91.66666674%}.tile.is-12{flex:none;width:100%}}.hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}.hero .navbar{background:none}.hero .tabs ul{border-bottom:none}.hero.is-white{background-color:#fff;color:#0a0a0a}.hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-white strong{color:inherit}.hero.is-white .title{color:#0a0a0a}.hero.is-white .subtitle{color:rgba(10,10,10,0.9)}.hero.is-white .subtitle a:not(.button),.hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width: 1055px){.hero.is-white .navbar-menu{background-color:#fff}}.hero.is-white .navbar-item,.hero.is-white .navbar-link{color:rgba(10,10,10,0.7)}.hero.is-white a.navbar-item:hover,.hero.is-white a.navbar-item.is-active,.hero.is-white .navbar-link:hover,.hero.is-white .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.hero.is-white .tabs a{color:#0a0a0a;opacity:0.9}.hero.is-white .tabs a:hover{opacity:1}.hero.is-white .tabs li.is-active a{color:#fff !important;opacity:1}.hero.is-white .tabs.is-boxed a,.hero.is-white .tabs.is-toggle a{color:#0a0a0a}.hero.is-white .tabs.is-boxed a:hover,.hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-white .tabs.is-boxed li.is-active a,.hero.is-white .tabs.is-boxed li.is-active a:hover,.hero.is-white .tabs.is-toggle li.is-active a,.hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.hero.is-white.is-bold{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}@media screen and (max-width: 768px){.hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}}.hero.is-black{background-color:#0a0a0a;color:#fff}.hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-black strong{color:inherit}.hero.is-black .title{color:#fff}.hero.is-black .subtitle{color:rgba(255,255,255,0.9)}.hero.is-black .subtitle a:not(.button),.hero.is-black .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-black .navbar-menu{background-color:#0a0a0a}}.hero.is-black .navbar-item,.hero.is-black .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-black a.navbar-item:hover,.hero.is-black a.navbar-item.is-active,.hero.is-black .navbar-link:hover,.hero.is-black .navbar-link.is-active{background-color:#000;color:#fff}.hero.is-black .tabs a{color:#fff;opacity:0.9}.hero.is-black .tabs a:hover{opacity:1}.hero.is-black .tabs li.is-active a{color:#0a0a0a !important;opacity:1}.hero.is-black .tabs.is-boxed a,.hero.is-black .tabs.is-toggle a{color:#fff}.hero.is-black .tabs.is-boxed a:hover,.hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-black .tabs.is-boxed li.is-active a,.hero.is-black .tabs.is-boxed li.is-active a:hover,.hero.is-black .tabs.is-toggle li.is-active a,.hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}.hero.is-black.is-bold{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}@media screen and (max-width: 768px){.hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}}.hero.is-light{background-color:#f5f5f5;color:rgba(0,0,0,0.7)}.hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-light strong{color:inherit}.hero.is-light .title{color:rgba(0,0,0,0.7)}.hero.is-light .subtitle{color:rgba(0,0,0,0.9)}.hero.is-light .subtitle a:not(.button),.hero.is-light .subtitle strong{color:rgba(0,0,0,0.7)}@media screen and (max-width: 1055px){.hero.is-light .navbar-menu{background-color:#f5f5f5}}.hero.is-light .navbar-item,.hero.is-light .navbar-link{color:rgba(0,0,0,0.7)}.hero.is-light a.navbar-item:hover,.hero.is-light a.navbar-item.is-active,.hero.is-light .navbar-link:hover,.hero.is-light .navbar-link.is-active{background-color:#e8e8e8;color:rgba(0,0,0,0.7)}.hero.is-light .tabs a{color:rgba(0,0,0,0.7);opacity:0.9}.hero.is-light .tabs a:hover{opacity:1}.hero.is-light .tabs li.is-active a{color:#f5f5f5 !important;opacity:1}.hero.is-light .tabs.is-boxed a,.hero.is-light .tabs.is-toggle a{color:rgba(0,0,0,0.7)}.hero.is-light .tabs.is-boxed a:hover,.hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-light .tabs.is-boxed li.is-active a,.hero.is-light .tabs.is-boxed li.is-active a:hover,.hero.is-light .tabs.is-toggle li.is-active a,.hero.is-light .tabs.is-toggle li.is-active a:hover{background-color:rgba(0,0,0,0.7);border-color:rgba(0,0,0,0.7);color:#f5f5f5}.hero.is-light.is-bold{background-image:linear-gradient(141deg, #dfd8d9 0%, #f5f5f5 71%, #fff 100%)}@media screen and (max-width: 768px){.hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg, #dfd8d9 0%, #f5f5f5 71%, #fff 100%)}}.hero.is-dark,.content kbd.hero{background-color:#363636;color:#fff}.hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-dark strong,.content kbd.hero strong{color:inherit}.hero.is-dark .title,.content kbd.hero .title{color:#fff}.hero.is-dark .subtitle,.content kbd.hero .subtitle{color:rgba(255,255,255,0.9)}.hero.is-dark .subtitle a:not(.button),.content kbd.hero .subtitle a:not(.button),.hero.is-dark .subtitle strong,.content kbd.hero .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-dark .navbar-menu,.content kbd.hero .navbar-menu{background-color:#363636}}.hero.is-dark .navbar-item,.content kbd.hero .navbar-item,.hero.is-dark .navbar-link,.content kbd.hero .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-dark a.navbar-item:hover,.content kbd.hero a.navbar-item:hover,.hero.is-dark a.navbar-item.is-active,.content kbd.hero a.navbar-item.is-active,.hero.is-dark .navbar-link:hover,.content kbd.hero .navbar-link:hover,.hero.is-dark .navbar-link.is-active,.content kbd.hero .navbar-link.is-active{background-color:#292929;color:#fff}.hero.is-dark .tabs a,.content kbd.hero .tabs a{color:#fff;opacity:0.9}.hero.is-dark .tabs a:hover,.content kbd.hero .tabs a:hover{opacity:1}.hero.is-dark .tabs li.is-active a,.content kbd.hero .tabs li.is-active a{color:#363636 !important;opacity:1}.hero.is-dark .tabs.is-boxed a,.content kbd.hero .tabs.is-boxed a,.hero.is-dark .tabs.is-toggle a,.content kbd.hero .tabs.is-toggle a{color:#fff}.hero.is-dark .tabs.is-boxed a:hover,.content kbd.hero .tabs.is-boxed a:hover,.hero.is-dark .tabs.is-toggle a:hover,.content kbd.hero .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-dark .tabs.is-boxed li.is-active a,.content kbd.hero .tabs.is-boxed li.is-active a,.hero.is-dark .tabs.is-boxed li.is-active a:hover,.hero.is-dark .tabs.is-toggle li.is-active a,.content kbd.hero .tabs.is-toggle li.is-active a,.hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#363636}.hero.is-dark.is-bold,.content kbd.hero.is-bold{background-image:linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%)}@media screen and (max-width: 768px){.hero.is-dark.is-bold .navbar-menu,.content kbd.hero.is-bold .navbar-menu{background-image:linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%)}}.hero.is-primary,.docstring>section>a.hero.docs-sourcelink{background-color:#4eb5de;color:#fff}.hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.docstring>section>a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-primary strong,.docstring>section>a.hero.docs-sourcelink strong{color:inherit}.hero.is-primary .title,.docstring>section>a.hero.docs-sourcelink .title{color:#fff}.hero.is-primary .subtitle,.docstring>section>a.hero.docs-sourcelink .subtitle{color:rgba(255,255,255,0.9)}.hero.is-primary .subtitle a:not(.button),.docstring>section>a.hero.docs-sourcelink .subtitle a:not(.button),.hero.is-primary .subtitle strong,.docstring>section>a.hero.docs-sourcelink .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-primary .navbar-menu,.docstring>section>a.hero.docs-sourcelink .navbar-menu{background-color:#4eb5de}}.hero.is-primary .navbar-item,.docstring>section>a.hero.docs-sourcelink .navbar-item,.hero.is-primary .navbar-link,.docstring>section>a.hero.docs-sourcelink .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-primary a.navbar-item:hover,.docstring>section>a.hero.docs-sourcelink a.navbar-item:hover,.hero.is-primary a.navbar-item.is-active,.docstring>section>a.hero.docs-sourcelink a.navbar-item.is-active,.hero.is-primary .navbar-link:hover,.docstring>section>a.hero.docs-sourcelink .navbar-link:hover,.hero.is-primary .navbar-link.is-active,.docstring>section>a.hero.docs-sourcelink .navbar-link.is-active{background-color:#39acda;color:#fff}.hero.is-primary .tabs a,.docstring>section>a.hero.docs-sourcelink .tabs a{color:#fff;opacity:0.9}.hero.is-primary .tabs a:hover,.docstring>section>a.hero.docs-sourcelink .tabs a:hover{opacity:1}.hero.is-primary .tabs li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs li.is-active a{color:#4eb5de !important;opacity:1}.hero.is-primary .tabs.is-boxed a,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a,.hero.is-primary .tabs.is-toggle a,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a{color:#fff}.hero.is-primary .tabs.is-boxed a:hover,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a:hover,.hero.is-primary .tabs.is-toggle a:hover,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-primary .tabs.is-boxed li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed li.is-active a,.hero.is-primary .tabs.is-boxed li.is-active a:hover,.hero.is-primary .tabs.is-toggle li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle li.is-active a,.hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#4eb5de}.hero.is-primary.is-bold,.docstring>section>a.hero.is-bold.docs-sourcelink{background-image:linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%)}@media screen and (max-width: 768px){.hero.is-primary.is-bold .navbar-menu,.docstring>section>a.hero.is-bold.docs-sourcelink .navbar-menu{background-image:linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%)}}.hero.is-link{background-color:#2e63b8;color:#fff}.hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-link strong{color:inherit}.hero.is-link .title{color:#fff}.hero.is-link .subtitle{color:rgba(255,255,255,0.9)}.hero.is-link .subtitle a:not(.button),.hero.is-link .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-link .navbar-menu{background-color:#2e63b8}}.hero.is-link .navbar-item,.hero.is-link .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-link a.navbar-item:hover,.hero.is-link a.navbar-item.is-active,.hero.is-link .navbar-link:hover,.hero.is-link .navbar-link.is-active{background-color:#2958a4;color:#fff}.hero.is-link .tabs a{color:#fff;opacity:0.9}.hero.is-link .tabs a:hover{opacity:1}.hero.is-link .tabs li.is-active a{color:#2e63b8 !important;opacity:1}.hero.is-link .tabs.is-boxed a,.hero.is-link .tabs.is-toggle a{color:#fff}.hero.is-link .tabs.is-boxed a:hover,.hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-link .tabs.is-boxed li.is-active a,.hero.is-link .tabs.is-boxed li.is-active a:hover,.hero.is-link .tabs.is-toggle li.is-active a,.hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#2e63b8}.hero.is-link.is-bold{background-image:linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%)}@media screen and (max-width: 768px){.hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%)}}.hero.is-info{background-color:#209cee;color:#fff}.hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-info strong{color:inherit}.hero.is-info .title{color:#fff}.hero.is-info .subtitle{color:rgba(255,255,255,0.9)}.hero.is-info .subtitle a:not(.button),.hero.is-info .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-info .navbar-menu{background-color:#209cee}}.hero.is-info .navbar-item,.hero.is-info .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-info a.navbar-item:hover,.hero.is-info a.navbar-item.is-active,.hero.is-info .navbar-link:hover,.hero.is-info .navbar-link.is-active{background-color:#1190e3;color:#fff}.hero.is-info .tabs a{color:#fff;opacity:0.9}.hero.is-info .tabs a:hover{opacity:1}.hero.is-info .tabs li.is-active a{color:#209cee !important;opacity:1}.hero.is-info .tabs.is-boxed a,.hero.is-info .tabs.is-toggle a{color:#fff}.hero.is-info .tabs.is-boxed a:hover,.hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-info .tabs.is-boxed li.is-active a,.hero.is-info .tabs.is-boxed li.is-active a:hover,.hero.is-info .tabs.is-toggle li.is-active a,.hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#209cee}.hero.is-info.is-bold{background-image:linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%)}@media screen and (max-width: 768px){.hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%)}}.hero.is-success{background-color:#22c35b;color:#fff}.hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-success strong{color:inherit}.hero.is-success .title{color:#fff}.hero.is-success .subtitle{color:rgba(255,255,255,0.9)}.hero.is-success .subtitle a:not(.button),.hero.is-success .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-success .navbar-menu{background-color:#22c35b}}.hero.is-success .navbar-item,.hero.is-success .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-success a.navbar-item:hover,.hero.is-success a.navbar-item.is-active,.hero.is-success .navbar-link:hover,.hero.is-success .navbar-link.is-active{background-color:#1ead51;color:#fff}.hero.is-success .tabs a{color:#fff;opacity:0.9}.hero.is-success .tabs a:hover{opacity:1}.hero.is-success .tabs li.is-active a{color:#22c35b !important;opacity:1}.hero.is-success .tabs.is-boxed a,.hero.is-success .tabs.is-toggle a{color:#fff}.hero.is-success .tabs.is-boxed a:hover,.hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-success .tabs.is-boxed li.is-active a,.hero.is-success .tabs.is-boxed li.is-active a:hover,.hero.is-success .tabs.is-toggle li.is-active a,.hero.is-success .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#22c35b}.hero.is-success.is-bold{background-image:linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%)}@media screen and (max-width: 768px){.hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%)}}.hero.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-warning strong{color:inherit}.hero.is-warning .title{color:rgba(0,0,0,0.7)}.hero.is-warning .subtitle{color:rgba(0,0,0,0.9)}.hero.is-warning .subtitle a:not(.button),.hero.is-warning .subtitle strong{color:rgba(0,0,0,0.7)}@media screen and (max-width: 1055px){.hero.is-warning .navbar-menu{background-color:#ffdd57}}.hero.is-warning .navbar-item,.hero.is-warning .navbar-link{color:rgba(0,0,0,0.7)}.hero.is-warning a.navbar-item:hover,.hero.is-warning a.navbar-item.is-active,.hero.is-warning .navbar-link:hover,.hero.is-warning .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.hero.is-warning .tabs a{color:rgba(0,0,0,0.7);opacity:0.9}.hero.is-warning .tabs a:hover{opacity:1}.hero.is-warning .tabs li.is-active a{color:#ffdd57 !important;opacity:1}.hero.is-warning .tabs.is-boxed a,.hero.is-warning .tabs.is-toggle a{color:rgba(0,0,0,0.7)}.hero.is-warning .tabs.is-boxed a:hover,.hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-warning .tabs.is-boxed li.is-active a,.hero.is-warning .tabs.is-boxed li.is-active a:hover,.hero.is-warning .tabs.is-toggle li.is-active a,.hero.is-warning .tabs.is-toggle li.is-active a:hover{background-color:rgba(0,0,0,0.7);border-color:rgba(0,0,0,0.7);color:#ffdd57}.hero.is-warning.is-bold{background-image:linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%)}@media screen and (max-width: 768px){.hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%)}}.hero.is-danger{background-color:#da0b00;color:#fff}.hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-danger strong{color:inherit}.hero.is-danger .title{color:#fff}.hero.is-danger .subtitle{color:rgba(255,255,255,0.9)}.hero.is-danger .subtitle a:not(.button),.hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-danger .navbar-menu{background-color:#da0b00}}.hero.is-danger .navbar-item,.hero.is-danger .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-danger a.navbar-item:hover,.hero.is-danger a.navbar-item.is-active,.hero.is-danger .navbar-link:hover,.hero.is-danger .navbar-link.is-active{background-color:#c10a00;color:#fff}.hero.is-danger .tabs a{color:#fff;opacity:0.9}.hero.is-danger .tabs a:hover{opacity:1}.hero.is-danger .tabs li.is-active a{color:#da0b00 !important;opacity:1}.hero.is-danger .tabs.is-boxed a,.hero.is-danger .tabs.is-toggle a{color:#fff}.hero.is-danger .tabs.is-boxed a:hover,.hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-danger .tabs.is-boxed li.is-active a,.hero.is-danger .tabs.is-boxed li.is-active a:hover,.hero.is-danger .tabs.is-toggle li.is-active a,.hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#da0b00}.hero.is-danger.is-bold{background-image:linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%)}@media screen and (max-width: 768px){.hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%)}}.hero.is-small .hero-body,#documenter .docs-sidebar form.docs-search>input.hero .hero-body{padding:1.5rem}@media screen and (min-width: 769px),print{.hero.is-medium .hero-body{padding:9rem 4.5rem}}@media screen and (min-width: 769px),print{.hero.is-large .hero-body{padding:18rem 6rem}}.hero.is-halfheight .hero-body,.hero.is-fullheight .hero-body,.hero.is-fullheight-with-navbar .hero-body{align-items:center;display:flex}.hero.is-halfheight .hero-body>.container,.hero.is-fullheight .hero-body>.container,.hero.is-fullheight-with-navbar .hero-body>.container{flex-grow:1;flex-shrink:1}.hero.is-halfheight{min-height:50vh}.hero.is-fullheight{min-height:100vh}.hero-video{overflow:hidden}.hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%, -50%, 0)}.hero-video.is-transparent{opacity:0.3}@media screen and (max-width: 768px){.hero-video{display:none}}.hero-buttons{margin-top:1.5rem}@media screen and (max-width: 768px){.hero-buttons .button{display:flex}.hero-buttons .button:not(:last-child){margin-bottom:0.75rem}}@media screen and (min-width: 769px),print{.hero-buttons{display:flex;justify-content:center}.hero-buttons .button:not(:last-child){margin-right:1.5rem}}.hero-head,.hero-foot{flex-grow:0;flex-shrink:0}.hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}@media screen and (min-width: 769px),print{.hero-body{padding:3rem 3rem}}.section{padding:3rem 1.5rem}@media screen and (min-width: 1056px){.section{padding:3rem 3rem}.section.is-medium{padding:9rem 4.5rem}.section.is-large{padding:18rem 6rem}}.footer{background-color:#fafafa;padding:3rem 1.5rem 6rem}h1 .docs-heading-anchor,h1 .docs-heading-anchor:hover,h1 .docs-heading-anchor:visited,h2 .docs-heading-anchor,h2 .docs-heading-anchor:hover,h2 .docs-heading-anchor:visited,h3 .docs-heading-anchor,h3 .docs-heading-anchor:hover,h3 .docs-heading-anchor:visited,h4 .docs-heading-anchor,h4 .docs-heading-anchor:hover,h4 .docs-heading-anchor:visited,h5 .docs-heading-anchor,h5 .docs-heading-anchor:hover,h5 .docs-heading-anchor:visited,h6 .docs-heading-anchor,h6 .docs-heading-anchor:hover,h6 .docs-heading-anchor:visited{color:#222}h1 .docs-heading-anchor-permalink,h2 .docs-heading-anchor-permalink,h3 .docs-heading-anchor-permalink,h4 .docs-heading-anchor-permalink,h5 .docs-heading-anchor-permalink,h6 .docs-heading-anchor-permalink{visibility:hidden;vertical-align:middle;margin-left:0.5em;font-size:0.7rem}h1 .docs-heading-anchor-permalink::before,h2 .docs-heading-anchor-permalink::before,h3 .docs-heading-anchor-permalink::before,h4 .docs-heading-anchor-permalink::before,h5 .docs-heading-anchor-permalink::before,h6 .docs-heading-anchor-permalink::before{font-family:"Font Awesome 6 Free";font-weight:900;content:"\f0c1"}h1:hover .docs-heading-anchor-permalink,h2:hover .docs-heading-anchor-permalink,h3:hover .docs-heading-anchor-permalink,h4:hover .docs-heading-anchor-permalink,h5:hover .docs-heading-anchor-permalink,h6:hover .docs-heading-anchor-permalink{visibility:visible}.docs-dark-only{display:none !important}pre{position:relative;overflow:hidden}pre code,pre code.hljs{padding:0 .75rem !important;overflow:auto;display:block}pre code:first-of-type,pre code.hljs:first-of-type{padding-top:0.5rem !important}pre code:last-of-type,pre code.hljs:last-of-type{padding-bottom:0.5rem !important}pre .copy-button{opacity:0.2;transition:opacity 0.2s;position:absolute;right:0em;top:0em;padding:0.5em;width:2.5em;height:2.5em;background:transparent;border:none;font-family:"Font Awesome 6 Free";color:#222;cursor:pointer;text-align:center}pre .copy-button:focus,pre .copy-button:hover{opacity:1;background:rgba(34,34,34,0.1);color:#2e63b8}pre .copy-button.success{color:#259a12;opacity:1}pre .copy-button.error{color:#cb3c33;opacity:1}pre:hover .copy-button{opacity:1}.admonition{background-color:#b5b5b5;border-style:solid;border-width:1px;border-color:#363636;border-radius:4px;font-size:1rem}.admonition strong{color:currentColor}.admonition.is-small,#documenter .docs-sidebar form.docs-search>input.admonition{font-size:.75rem}.admonition.is-medium{font-size:1.25rem}.admonition.is-large{font-size:1.5rem}.admonition.is-default{background-color:#b5b5b5;border-color:#363636}.admonition.is-default>.admonition-header{background-color:#363636;color:#fff}.admonition.is-default>.admonition-body{color:#fff}.admonition.is-info{background-color:#def0fc;border-color:#209cee}.admonition.is-info>.admonition-header{background-color:#209cee;color:#fff}.admonition.is-info>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-success{background-color:#bdf4d1;border-color:#22c35b}.admonition.is-success>.admonition-header{background-color:#22c35b;color:#fff}.admonition.is-success>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-warning{background-color:#fff3c5;border-color:#ffdd57}.admonition.is-warning>.admonition-header{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.admonition.is-warning>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-danger{background-color:#ffaba7;border-color:#da0b00}.admonition.is-danger>.admonition-header{background-color:#da0b00;color:#fff}.admonition.is-danger>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-compat{background-color:#bdeff5;border-color:#1db5c9}.admonition.is-compat>.admonition-header{background-color:#1db5c9;color:#fff}.admonition.is-compat>.admonition-body{color:rgba(0,0,0,0.7)}.admonition-header{color:#fff;background-color:#363636;align-items:center;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.5rem .75rem;position:relative}.admonition-header:before{font-family:"Font Awesome 6 Free";font-weight:900;margin-right:.75rem;content:"\f06a"}details.admonition.is-details>.admonition-header{list-style:none}details.admonition.is-details>.admonition-header:before{font-family:"Font Awesome 6 Free";font-weight:900;content:"\f055"}details.admonition.is-details[open]>.admonition-header:before{font-family:"Font Awesome 6 Free";font-weight:900;content:"\f056"}.admonition-body{color:#222;padding:0.5rem .75rem}.admonition-body pre{background-color:#f5f5f5}.admonition-body code{background-color:rgba(0,0,0,0.05)}.docstring{margin-bottom:1em;background-color:rgba(0,0,0,0);border:1px solid #dbdbdb;box-shadow:2px 2px 3px rgba(10,10,10,0.1);max-width:100%}.docstring>header{cursor:pointer;display:flex;flex-grow:1;align-items:stretch;padding:0.5rem .75rem;background-color:#f5f5f5;box-shadow:0 0.125em 0.25em rgba(10,10,10,0.1);box-shadow:none;border-bottom:1px solid #dbdbdb}.docstring>header code{background-color:transparent}.docstring>header .docstring-article-toggle-button{min-width:1.1rem;padding:0.2rem 0.2rem 0.2rem 0}.docstring>header .docstring-binding{margin-right:0.3em}.docstring>header .docstring-category{margin-left:0.3em}.docstring>section{position:relative;padding:.75rem .75rem;border-bottom:1px solid #dbdbdb}.docstring>section:last-child{border-bottom:none}.docstring>section>a.docs-sourcelink{transition:opacity 0.3s;opacity:0;position:absolute;right:.375rem;bottom:.375rem}.docstring>section>a.docs-sourcelink:focus{opacity:1 !important}.docstring:hover>section>a.docs-sourcelink{opacity:0.2}.docstring:focus-within>section>a.docs-sourcelink{opacity:0.2}.docstring>section:hover a.docs-sourcelink{opacity:1}.documenter-example-output{background-color:#fff}.outdated-warning-overlay{position:fixed;top:0;left:0;right:0;box-shadow:0 0 10px rgba(0,0,0,0.3);z-index:999;background-color:#ffaba7;color:rgba(0,0,0,0.7);border-bottom:3px solid #da0b00;padding:10px 35px;text-align:center;font-size:15px}.outdated-warning-overlay .outdated-warning-closer{position:absolute;top:calc(50% - 10px);right:18px;cursor:pointer;width:12px}.outdated-warning-overlay a{color:#2e63b8}.outdated-warning-overlay a:hover{color:#363636}.content pre{border:1px solid #dbdbdb}.content code{font-weight:inherit}.content a code{color:#2e63b8}.content h1 code,.content h2 code,.content h3 code,.content h4 code,.content h5 code,.content h6 code{color:#222}.content table{display:block;width:initial;max-width:100%;overflow-x:auto}.content blockquote>ul:first-child,.content blockquote>ol:first-child,.content .admonition-body>ul:first-child,.content .admonition-body>ol:first-child{margin-top:0}pre,code{font-variant-ligatures:no-contextual}.breadcrumb a.is-disabled{cursor:default;pointer-events:none}.breadcrumb a.is-disabled,.breadcrumb a.is-disabled:hover{color:#222}.hljs{background:initial !important}.katex .katex-mathml{top:0;right:0}.katex-display,mjx-container,.MathJax_Display{margin:0.5em 0 !important}html{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto}li.no-marker{list-style:none}#documenter .docs-main>article{overflow-wrap:break-word}#documenter .docs-main>article .math-container{overflow-x:auto;overflow-y:hidden}@media screen and (min-width: 1056px){#documenter .docs-main{max-width:52rem;margin-left:20rem;padding-right:1rem}}@media screen and (max-width: 1055px){#documenter .docs-main{width:100%}#documenter .docs-main>article{max-width:52rem;margin-left:auto;margin-right:auto;margin-bottom:1rem;padding:0 1rem}#documenter .docs-main>header,#documenter .docs-main>nav{max-width:100%;width:100%;margin:0}}#documenter .docs-main header.docs-navbar{background-color:#fff;border-bottom:1px solid #dbdbdb;z-index:2;min-height:4rem;margin-bottom:1rem;display:flex}#documenter .docs-main header.docs-navbar .breadcrumb{flex-grow:1}#documenter .docs-main header.docs-navbar .docs-sidebar-button{display:block;font-size:1.5rem;padding-bottom:0.1rem;margin-right:1rem}#documenter .docs-main header.docs-navbar .docs-right{display:flex;white-space:nowrap;gap:1rem;align-items:center}#documenter .docs-main header.docs-navbar .docs-right .docs-icon,#documenter .docs-main header.docs-navbar .docs-right .docs-label{display:inline-block}#documenter .docs-main header.docs-navbar .docs-right .docs-label{padding:0;margin-left:0.3em}@media screen and (max-width: 1055px){#documenter .docs-main header.docs-navbar .docs-right .docs-navbar-link{margin-left:0.4rem;margin-right:0.4rem}}#documenter .docs-main header.docs-navbar>*{margin:auto 0}@media screen and (max-width: 1055px){#documenter .docs-main header.docs-navbar{position:sticky;top:0;padding:0 1rem;transition-property:top, box-shadow;-webkit-transition-property:top, box-shadow;transition-duration:0.3s;-webkit-transition-duration:0.3s}#documenter .docs-main header.docs-navbar.headroom--not-top{box-shadow:.2rem 0rem .4rem #bbb;transition-duration:0.7s;-webkit-transition-duration:0.7s}#documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom{top:-4.5rem;transition-duration:0.7s;-webkit-transition-duration:0.7s}}#documenter .docs-main section.footnotes{border-top:1px solid #dbdbdb}#documenter .docs-main section.footnotes li .tag:first-child,#documenter .docs-main section.footnotes li .docstring>section>a.docs-sourcelink:first-child,#documenter .docs-main section.footnotes li .content kbd:first-child,.content #documenter .docs-main section.footnotes li kbd:first-child{margin-right:1em;margin-bottom:0.4em}#documenter .docs-main .docs-footer{display:flex;flex-wrap:wrap;margin-left:0;margin-right:0;border-top:1px solid #dbdbdb;padding-top:1rem;padding-bottom:1rem}@media screen and (max-width: 1055px){#documenter .docs-main .docs-footer{padding-left:1rem;padding-right:1rem}}#documenter .docs-main .docs-footer .docs-footer-nextpage,#documenter .docs-main .docs-footer .docs-footer-prevpage{flex-grow:1}#documenter .docs-main .docs-footer .docs-footer-nextpage{text-align:right}#documenter .docs-main .docs-footer .flexbox-break{flex-basis:100%;height:0}#documenter .docs-main .docs-footer .footer-message{font-size:0.8em;margin:0.5em auto 0 auto;text-align:center}#documenter .docs-sidebar{display:flex;flex-direction:column;color:#0a0a0a;background-color:#f5f5f5;border-right:1px solid #dbdbdb;padding:0;flex:0 0 18rem;z-index:5;font-size:1rem;position:fixed;left:-18rem;width:18rem;height:100%;transition:left 0.3s}#documenter .docs-sidebar.visible{left:0;box-shadow:.4rem 0rem .8rem #bbb}@media screen and (min-width: 1056px){#documenter .docs-sidebar.visible{box-shadow:none}}@media screen and (min-width: 1056px){#documenter .docs-sidebar{left:0;top:0}}#documenter .docs-sidebar .docs-logo{margin-top:1rem;padding:0 1rem}#documenter .docs-sidebar .docs-logo>img{max-height:6rem;margin:auto}#documenter .docs-sidebar .docs-package-name{flex-shrink:0;font-size:1.5rem;font-weight:700;text-align:center;white-space:nowrap;overflow:hidden;padding:0.5rem 0}#documenter .docs-sidebar .docs-package-name .docs-autofit{max-width:16.2rem}#documenter .docs-sidebar .docs-package-name a,#documenter .docs-sidebar .docs-package-name a:hover{color:#0a0a0a}#documenter .docs-sidebar .docs-version-selector{border-top:1px solid #dbdbdb;display:none;padding:0.5rem}#documenter .docs-sidebar .docs-version-selector.visible{display:flex}#documenter .docs-sidebar ul.docs-menu{flex-grow:1;user-select:none;border-top:1px solid #dbdbdb;padding-bottom:1.5rem}#documenter .docs-sidebar ul.docs-menu>li>.tocitem{font-weight:bold}#documenter .docs-sidebar ul.docs-menu>li li{font-size:.95rem;margin-left:1em;border-left:1px solid #dbdbdb}#documenter .docs-sidebar ul.docs-menu input.collapse-toggle{display:none}#documenter .docs-sidebar ul.docs-menu ul.collapsed{display:none}#documenter .docs-sidebar ul.docs-menu input:checked~ul.collapsed{display:block}#documenter .docs-sidebar ul.docs-menu label.tocitem{display:flex}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label{flex-grow:2}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;font-size:.75rem;margin-left:1rem;margin-top:auto;margin-bottom:auto}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before{font-family:"Font Awesome 6 Free";font-weight:900;content:"\f054"}#documenter .docs-sidebar ul.docs-menu input:checked~label.tocitem .docs-chevron::before{content:"\f078"}#documenter .docs-sidebar ul.docs-menu .tocitem{display:block;padding:0.5rem 0.5rem}#documenter .docs-sidebar ul.docs-menu .tocitem,#documenter .docs-sidebar ul.docs-menu .tocitem:hover{color:#0a0a0a;background:#f5f5f5}#documenter .docs-sidebar ul.docs-menu a.tocitem:hover,#documenter .docs-sidebar ul.docs-menu label.tocitem:hover{color:#0a0a0a;background-color:#ebebeb}#documenter .docs-sidebar ul.docs-menu li.is-active{border-top:1px solid #dbdbdb;border-bottom:1px solid #dbdbdb;background-color:#fff}#documenter .docs-sidebar ul.docs-menu li.is-active .tocitem,#documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover{background-color:#fff;color:#0a0a0a}#documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover{background-color:#ebebeb;color:#0a0a0a}#documenter .docs-sidebar ul.docs-menu>li.is-active:first-child{border-top:none}#documenter .docs-sidebar ul.docs-menu ul.internal{margin:0 0.5rem 0.5rem;border-top:1px solid #dbdbdb}#documenter .docs-sidebar ul.docs-menu ul.internal li{font-size:.85rem;border-left:none;margin-left:0;margin-top:0.5rem}#documenter .docs-sidebar ul.docs-menu ul.internal .tocitem{width:100%;padding:0}#documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before{content:"⚬";margin-right:0.4em}#documenter .docs-sidebar form.docs-search{margin:auto;margin-top:0.5rem;margin-bottom:0.5rem}#documenter .docs-sidebar form.docs-search>input{width:14.4rem}#documenter .docs-sidebar #documenter-search-query{color:#707070;width:14.4rem;box-shadow:inset 0 1px 2px rgba(10,10,10,0.1)}@media screen and (min-width: 1056px){#documenter .docs-sidebar ul.docs-menu{overflow-y:auto;-webkit-overflow-scroll:touch}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar{width:.3rem;background:none}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#e0e0e0}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover{background:#ccc}}@media screen and (max-width: 1055px){#documenter .docs-sidebar{overflow-y:auto;-webkit-overflow-scroll:touch}#documenter .docs-sidebar::-webkit-scrollbar{width:.3rem;background:none}#documenter .docs-sidebar::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#e0e0e0}#documenter .docs-sidebar::-webkit-scrollbar-thumb:hover{background:#ccc}}kbd.search-modal-key-hints{border-radius:0.25rem;border:1px solid rgba(0,0,0,0.6);box-shadow:0 2px 0 1px rgba(0,0,0,0.6);cursor:default;font-size:0.9rem;line-height:1.5;min-width:0.75rem;text-align:center;padding:0.1rem 0.3rem;position:relative;top:-1px}.search-min-width-50{min-width:50%}.search-min-height-100{min-height:100%}.search-modal-card-body{max-height:calc(100vh - 15rem)}.search-result-link{border-radius:0.7em;transition:all 300ms}.search-result-link:hover,.search-result-link:focus{background-color:rgba(0,128,128,0.1)}.search-result-link .property-search-result-badge,.search-result-link .search-filter{transition:all 300ms}.property-search-result-badge,.search-filter{padding:0.15em 0.5em;font-size:0.8em;font-style:italic;text-transform:none !important;line-height:1.5;color:#f5f5f5;background-color:rgba(51,65,85,0.501961);border-radius:0.6rem}.search-result-link:hover .property-search-result-badge,.search-result-link:hover .search-filter,.search-result-link:focus .property-search-result-badge,.search-result-link:focus .search-filter{color:#f1f5f9;background-color:#333}.search-filter{color:#333;background-color:#f5f5f5;transition:all 300ms}.search-filter:hover,.search-filter:focus{color:#333}.search-filter-selected{color:#f5f5f5;background-color:rgba(139,0,139,0.5)}.search-filter-selected:hover,.search-filter-selected:focus{color:#f5f5f5}.search-result-highlight{background-color:#ffdd57;color:black}.search-divider{border-bottom:1px solid #dbdbdb}.search-result-title{width:85%;color:#333}.search-result-code-title{font-size:0.875rem;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}#search-modal .modal-card-body::-webkit-scrollbar,#search-modal .filter-tabs::-webkit-scrollbar{height:10px;width:10px;background-color:transparent}#search-modal .modal-card-body::-webkit-scrollbar-thumb,#search-modal .filter-tabs::-webkit-scrollbar-thumb{background-color:gray;border-radius:1rem}#search-modal .modal-card-body::-webkit-scrollbar-track,#search-modal .filter-tabs::-webkit-scrollbar-track{-webkit-box-shadow:inset 0 0 6px rgba(0,0,0,0.6);background-color:transparent}.w-100{width:100%}.gap-2{gap:0.5rem}.gap-4{gap:1rem}.gap-8{gap:2rem}.ansi span.sgr1{font-weight:bolder}.ansi span.sgr2{font-weight:lighter}.ansi span.sgr3{font-style:italic}.ansi span.sgr4{text-decoration:underline}.ansi span.sgr7{color:#fff;background-color:#222}.ansi span.sgr8{color:transparent}.ansi span.sgr8 span{color:transparent}.ansi span.sgr9{text-decoration:line-through}.ansi span.sgr30{color:#242424}.ansi span.sgr31{color:#a7201f}.ansi span.sgr32{color:#066f00}.ansi span.sgr33{color:#856b00}.ansi span.sgr34{color:#2149b0}.ansi span.sgr35{color:#7d4498}.ansi span.sgr36{color:#007989}.ansi span.sgr37{color:gray}.ansi span.sgr40{background-color:#242424}.ansi span.sgr41{background-color:#a7201f}.ansi span.sgr42{background-color:#066f00}.ansi span.sgr43{background-color:#856b00}.ansi span.sgr44{background-color:#2149b0}.ansi span.sgr45{background-color:#7d4498}.ansi span.sgr46{background-color:#007989}.ansi span.sgr47{background-color:gray}.ansi span.sgr90{color:#616161}.ansi span.sgr91{color:#cb3c33}.ansi span.sgr92{color:#0e8300}.ansi span.sgr93{color:#a98800}.ansi span.sgr94{color:#3c5dcd}.ansi span.sgr95{color:#9256af}.ansi span.sgr96{color:#008fa3}.ansi span.sgr97{color:#f5f5f5}.ansi span.sgr100{background-color:#616161}.ansi span.sgr101{background-color:#cb3c33}.ansi span.sgr102{background-color:#0e8300}.ansi span.sgr103{background-color:#a98800}.ansi span.sgr104{background-color:#3c5dcd}.ansi span.sgr105{background-color:#9256af}.ansi span.sgr106{background-color:#008fa3}.ansi span.sgr107{background-color:#f5f5f5}code.language-julia-repl>span.hljs-meta{color:#066f00;font-weight:bolder}/*! + Theme: Default + Description: Original highlight.js style + Author: (c) Ivan Sagalaev + Maintainer: @highlightjs/core-team + Website: https://highlightjs.org/ + License: see project LICENSE + Touched: 2021 +*/pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#F3F3F3;color:#444}.hljs-comment{color:#697070}.hljs-tag,.hljs-punctuation{color:#444a}.hljs-tag .hljs-name,.hljs-tag .hljs-attr{color:#444}.hljs-keyword,.hljs-attribute,.hljs-selector-tag,.hljs-meta .hljs-keyword,.hljs-doctag,.hljs-name{font-weight:bold}.hljs-type,.hljs-string,.hljs-number,.hljs-selector-id,.hljs-selector-class,.hljs-quote,.hljs-template-tag,.hljs-deletion{color:#880000}.hljs-title,.hljs-section{color:#880000;font-weight:bold}.hljs-regexp,.hljs-symbol,.hljs-variable,.hljs-template-variable,.hljs-link,.hljs-selector-attr,.hljs-operator,.hljs-selector-pseudo{color:#ab5656}.hljs-literal{color:#695}.hljs-built_in,.hljs-bullet,.hljs-code,.hljs-addition{color:#397300}.hljs-meta{color:#1f7199}.hljs-meta .hljs-string{color:#38a}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:bold} diff --git a/previews/PR3545/assets/themeswap.js b/previews/PR3545/assets/themeswap.js new file mode 100644 index 00000000000..9f5eebe6aa2 --- /dev/null +++ b/previews/PR3545/assets/themeswap.js @@ -0,0 +1,84 @@ +// Small function to quickly swap out themes. Gets put into the tag.. +function set_theme_from_local_storage() { + // Initialize the theme to null, which means default + var theme = null; + // If the browser supports the localstorage and is not disabled then try to get the + // documenter theme + if (window.localStorage != null) { + // Get the user-picked theme from localStorage. May be `null`, which means the default + // theme. + theme = window.localStorage.getItem("documenter-theme"); + } + // Check if the users preference is for dark color scheme + var darkPreference = + window.matchMedia("(prefers-color-scheme: dark)").matches === true; + // Initialize a few variables for the loop: + // + // - active: will contain the index of the theme that should be active. Note that there + // is no guarantee that localStorage contains sane values. If `active` stays `null` + // we either could not find the theme or it is the default (primary) theme anyway. + // Either way, we then need to stick to the primary theme. + // + // - disabled: style sheets that should be disabled (i.e. all the theme style sheets + // that are not the currently active theme) + var active = null; + var disabled = []; + var primaryLightTheme = null; + var primaryDarkTheme = null; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + // The tag of each style sheet is expected to have a data-theme-name attribute + // which must contain the name of the theme. The names in localStorage much match this. + var themename = ss.ownerNode.getAttribute("data-theme-name"); + // attribute not set => non-theme stylesheet => ignore + if (themename === null) continue; + // To distinguish the default (primary) theme, it needs to have the data-theme-primary + // attribute set. + if (ss.ownerNode.getAttribute("data-theme-primary") !== null) { + primaryLightTheme = themename; + } + // Check if the theme is primary dark theme so that we could store its name in darkTheme + if (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null) { + primaryDarkTheme = themename; + } + // If we find a matching theme (and it's not the default), we'll set active to non-null + if (themename === theme) active = i; + // Store the style sheets of inactive themes so that we could disable them + if (themename !== theme) disabled.push(ss); + } + var activeTheme = null; + if (active !== null) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName("html")[0].className = "theme--" + theme; + activeTheme = theme; + } else { + // If we did _not_ find an active theme, then we need to fall back to the primary theme + // which can either be dark or light, depending on the user's OS preference. + var activeTheme = darkPreference ? primaryDarkTheme : primaryLightTheme; + // In case it somehow happens that the relevant primary theme was not found in the + // preceding loop, we abort without doing anything. + if (activeTheme === null) { + console.error("Unable to determine primary theme."); + return; + } + // When switching to the primary light theme, then we must not have a class name + // for the tag. That's only for non-primary or the primary dark theme. + if (darkPreference) { + document.getElementsByTagName("html")[0].className = + "theme--" + activeTheme; + } else { + document.getElementsByTagName("html")[0].className = ""; + } + } + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + // The tag of each style sheet is expected to have a data-theme-name attribute + // which must contain the name of the theme. The names in localStorage much match this. + var themename = ss.ownerNode.getAttribute("data-theme-name"); + // attribute not set => non-theme stylesheet => ignore + if (themename === null) continue; + // we'll disable all the stylesheets, except for the active one + ss.disabled = !(themename == activeTheme); + } +} +set_theme_from_local_storage(); diff --git a/previews/PR3545/assets/warner.js b/previews/PR3545/assets/warner.js new file mode 100644 index 00000000000..3f6f5d0083a --- /dev/null +++ b/previews/PR3545/assets/warner.js @@ -0,0 +1,52 @@ +function maybeAddWarning() { + // DOCUMENTER_NEWEST is defined in versions.js, DOCUMENTER_CURRENT_VERSION and DOCUMENTER_STABLE + // in siteinfo.js. + // If either of these are undefined something went horribly wrong, so we abort. + if ( + window.DOCUMENTER_NEWEST === undefined || + window.DOCUMENTER_CURRENT_VERSION === undefined || + window.DOCUMENTER_STABLE === undefined + ) { + return; + } + + // Current version is not a version number, so we can't tell if it's the newest version. Abort. + if (!/v(\d+\.)*\d+/.test(window.DOCUMENTER_CURRENT_VERSION)) { + return; + } + + // Current version is newest version, so no need to add a warning. + if (window.DOCUMENTER_NEWEST === window.DOCUMENTER_CURRENT_VERSION) { + return; + } + + // Add a noindex meta tag (unless one exists) so that search engines don't index this version of the docs. + if (document.body.querySelector('meta[name="robots"]') === null) { + const meta = document.createElement("meta"); + meta.name = "robots"; + meta.content = "noindex"; + + document.getElementsByTagName("head")[0].appendChild(meta); + } + + const div = document.createElement("div"); + div.classList.add("outdated-warning-overlay"); + const closer = document.createElement("button"); + closer.classList.add("outdated-warning-closer", "delete"); + closer.addEventListener("click", function () { + document.body.removeChild(div); + }); + const href = window.documenterBaseURL + "/../" + window.DOCUMENTER_STABLE; + div.innerHTML = + 'This documentation is not for the latest stable release, but for either the development version or an older release.
    Click here to go to the documentation for the latest stable release.'; + div.appendChild(closer); + document.body.appendChild(div); +} + +if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", maybeAddWarning); +} else { + maybeAddWarning(); +} diff --git a/previews/PR3545/background/algebraic_modeling_languages/index.html b/previews/PR3545/background/algebraic_modeling_languages/index.html new file mode 100644 index 00000000000..28bf4a1fed2 --- /dev/null +++ b/previews/PR3545/background/algebraic_modeling_languages/index.html @@ -0,0 +1,129 @@ + +Algebraic modeling languages · JuMP

    Algebraic modeling languages

    JuMP is an algebraic modeling language for mathematical optimization written in the Julia language. In this page, we explain what an algebraic modeling language actually is.

    What is an algebraic modeling language?

    If you have taken a class in mixed-integer linear programming, you will have seen a formulation like:

    \[\begin{aligned} +\min \; & c^\top x \\ +\text{s.t.} & A x = b \\ + & x \ge 0 \\ + & x_i \in \mathbb{Z}, \quad \forall i \in \mathcal{I} +\end{aligned}\]

    where c, A, and b are appropriately sized vectors and matrices of data, and $\mathcal{I}$ denotes the set of variables that are integer.

    Solvers expect problems in a standard form like this because it limits the types of constraints that they need to consider. This makes writing a solver much easier.

    What is a solver?

    A solver is a software package that computes solutions to one or more classes of problems.

    For example, HiGHS is a solver for linear programming (LP) and mixed integer programming (MIP) problems. It incorporates algorithms such as the simplex method and the interior-point method.

    JuMP currently supports a number of open-source and commercial solvers, which can be viewed in the Supported-solvers table.

    Despite the textbook view of a linear program, you probably formulated problems algebraically like so:

    \[\begin{aligned} +\max \; & \sum\limits_{i = 1}^n c_i x_i \\ +\text{s.t.} & \sum\limits_{i = 1}^n w_i x_i \le b \\ + & x_i \ge 0 \quad \forall i = 1,\ldots,n \\ + & x_i \in \mathbb{Z} \quad \forall i = 1,\ldots,n. +\end{aligned}\]

    Info

    Do you recognize this formulation? It's the knapsack problem.

    Users prefer to write problems in algebraic form because it is more convenient. For example, we used $\le b$, even though the standard form only supported constraints of the form $Ax = b$.

    We could convert our knapsack problem into the standard form by adding a new slack variable $x_0$:

    \[\begin{aligned} +\max \; & \sum\limits_{i = 1}^n c_i x_i \\ +\text{s.t.} & x_0 + \sum\limits_{i = 1}^n w_i x_i = b \\ + & x_i \ge 0 \quad \forall i = 0,\ldots,n \\ + & x_i \in \mathbb{Z} \quad \forall i = 1,\ldots,n. +\end{aligned}\]

    However, as models get more complicated, this manual conversion becomes more and more error-prone.

    An algebraic modeling language is a tool that simplifies the translation between the algebraic form of the modeler, and the standard form of the solver.

    Each algebraic modeling language has two main parts:

    1. A domain specific language for the user to write down problems in algebraic form.
    2. A converter from the algebraic form into a standard form supported by the solver (and back again).

    Part 2 is less trivial than it might seem, because each solver has a unique application programming interface (API) and data structure for representing optimization models and obtaining results.

    JuMP uses the MathOptInterface.jl package to abstract these differences between solvers.

    What is MathOptInterface?

    MathOptInterface (MOI) is an abstraction layer designed to provide an interface to mathematical optimization solvers so that users do not need to understand multiple solver-specific APIs. MOI can be used directly, or through a higher-level modeling interface like JuMP.

    There are three main parts to MathOptInterface:

    1. A solver-independent API that abstracts concepts such as adding and deleting variables and constraints, setting and getting parameters, and querying results. For more information on the MathOptInterface API, read the documentation.

    2. An automatic rewriting system based on equivalent formulations of a constraint. For more information on this rewriting system, read the LazyBridgeOptimizer section of the manual, and our paper on arXiv.

    3. Utilities for managing how and when models are copied to solvers. For more information on this, read the CachingOptimizer section of the manual.

    From user to solver

    This section provides a brief summary of the steps that happen in order to translate the model that the user writes into a model that the solver understands.

    Step I: writing in algebraic form

    JuMP provides the first part of an algebraic modeling language using the @variable, @objective, and @constraint macros.

    For example, here's how we write the knapsack problem in JuMP:

    julia> using JuMP, HiGHS
    +
    +julia> function algebraic_knapsack(c, w, b)
    +           n = length(c)
    +           model = Model(HiGHS.Optimizer)
    +           set_silent(model)
    +           @variable(model, x[1:n] >= 0, Int)
    +           @objective(model, Max, sum(c[i] * x[i] for i = 1:n))
    +           @constraint(model, sum(w[i] * x[i] for i = 1:n) <= b)
    +           optimize!(model)
    +           return value.(x)
    +       end
    +algebraic_knapsack (generic function with 1 method)
    +
    +julia> algebraic_knapsack([1, 2], [0.5, 0.5], 1.25)
    +2-element Vector{Float64}:
    + 0.0
    + 2.0

    This formulation is compact, and it closely matches the algebraic formulation of the model we wrote out above.

    Step II: algebraic to functional

    For the next step, JuMP's macros re-write the variables and constraints into a functional form. Here's what the JuMP code looks like after this step:

    julia> using JuMP, HiGHS
    +
    +julia> function nonalgebraic_knapsack(c, w, b)
    +           n = length(c)
    +           model = Model(HiGHS.Optimizer)
    +           set_silent(model)
    +           x = [VariableRef(model) for i = 1:n]
    +           for i = 1:n
    +               set_lower_bound(x[i], 0)
    +               set_integer(x[i])
    +               set_name(x[i], "x[$i]")
    +           end
    +           obj = AffExpr(0.0)
    +           for i = 1:n
    +               add_to_expression!(obj, c[i], x[i])
    +           end
    +           set_objective(model, MAX_SENSE, obj)
    +           lhs = AffExpr(0.0)
    +           for i = 1:n
    +               add_to_expression!(lhs, w[i], x[i])
    +           end
    +           con = build_constraint(error, lhs, MOI.LessThan(b))
    +           add_constraint(model, con)
    +           optimize!(model)
    +           return value.(x)
    +       end
    +nonalgebraic_knapsack (generic function with 1 method)
    +
    +julia> nonalgebraic_knapsack([1, 2], [0.5, 0.5], 1.25)
    +2-element Vector{Float64}:
    + 0.0
    + 2.0

    Hopefully you agree that the macro version is much easier to read.

    Part III: JuMP to MathOptInterface

    In the third step, JuMP converts the functional form of the problem, that is, nonalgebraic_knapsack, into the MathOptInterface API:

    julia> import MathOptInterface as MOI
    +
    +julia> import HiGHS
    +
    +julia> function mathoptinterface_knapsack(optimizer, c, w, b)
    +           n = length(c)
    +           model = MOI.instantiate(optimizer)
    +           MOI.set(model, MOI.Silent(), true)
    +           x = MOI.add_variables(model, n)
    +           for i in 1:n
    +               MOI.add_constraint(model, x[i], MOI.GreaterThan(0.0))
    +               MOI.add_constraint(model, x[i], MOI.Integer())
    +               MOI.set(model, MOI.VariableName(), x[i], "x[$i]")
    +           end
    +           MOI.set(model, MOI.ObjectiveSense(), MOI.MAX_SENSE)
    +           obj = MOI.ScalarAffineFunction(MOI.ScalarAffineTerm.(c, x), 0.0)
    +           MOI.set(model, MOI.ObjectiveFunction{typeof(obj)}(), obj)
    +           MOI.add_constraint(
    +               model,
    +               MOI.ScalarAffineFunction(MOI.ScalarAffineTerm.(w, x), 0.0),
    +               MOI.LessThan(b),
    +           )
    +           MOI.optimize!(model)
    +           return MOI.get.(model, MOI.VariablePrimal(), x)
    +       end
    +mathoptinterface_knapsack (generic function with 1 method)
    +
    +julia> mathoptinterface_knapsack(HiGHS.Optimizer, [1.0, 2.0], [0.5, 0.5], 1.25)
    +2-element Vector{Float64}:
    + 0.0
    + 2.0

    The code is becoming more verbose and looking less like the mathematical formulation that we started with.

    Step IV: MathOptInterface to HiGHS

    As a final step, the HiGHS.jl package converts the MathOptInterface form, that is, mathoptinterface_knapsack, into a HiGHS-specific API:

    julia> using HiGHS
    +
    +julia> function highs_knapsack(c, w, b)
    +           n = length(c)
    +           model = Highs_create()
    +           Highs_setBoolOptionValue(model, "output_flag", false)
    +           for i in 1:n
    +               Highs_addCol(model, c[i], 0.0, Inf, 0, C_NULL, C_NULL)
    +               Highs_changeColIntegrality(model, i-1, 1)
    +           end
    +           Highs_changeObjectiveSense(model, -1)
    +           Highs_addRow(
    +               model,
    +               -Inf,
    +               b,
    +               Cint(length(w)),
    +               collect(Cint(0):Cint(n-1)),
    +               w,
    +           )
    +           Highs_run(model)
    +           x = fill(NaN, 2)
    +           Highs_getSolution(model, x, C_NULL, C_NULL, C_NULL)
    +           Highs_destroy(model)
    +           return x
    +       end
    +highs_knapsack (generic function with 1 method)
    +
    +julia> highs_knapsack([1.0, 2.0], [0.5, 0.5], 1.25)
    +2-element Vector{Float64}:
    + 0.0
    + 2.0

    We've now gone from a algebraic model that looked identical to the mathematical model we started with, to a verbose function that uses HiGHS-specific functionality.

    The difference between algebraic_knapsack and highs_knapsack highlights the benefit that algebraic modeling languages provide to users. Moreover, if we used a different solver, the solver-specific function would be entirely different. A key benefit of an algebraic modeling language is that you can change the solver without needing to rewrite the model.

    diff --git a/previews/PR3545/changelog/index.html b/previews/PR3545/changelog/index.html new file mode 100644 index 00000000000..c52170bd804 --- /dev/null +++ b/previews/PR3545/changelog/index.html @@ -0,0 +1,15 @@ + +Release notes · JuMP

    Release notes

    The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

    Version 1.15.1 (September 24, 2023)

    Fixed

    • Fixed support for single argument min and max operators (#3522)
    • Fixed error message for add_to_expression! when called with a GenericNonlinearExpr (#3506)
    • Fixed constraint tags with broadcasted constraints (#3515)
    • Fixed MethodError in MA.scaling (#3518)
    • Fixed support for arrays of Parameter variables (#3524)

    Other

    • Updated to Documenter@1 (#3501)
    • Fixed links to data in tutorials (#3512)
    • Fixed typo in TSP tutorial (#3516)
    • Improved error message for VariableNotOwned errors (#3520)
    • Fixed various JET errors (#3519)

    Version 1.15.0 (September 15, 2023)

    This is a large minor release because it adds an entirely new data structure and API path for working with nonlinear programs. The previous nonlinear interface remains unchanged and is documented at Nonlinear Modeling (Legacy). The new interface is a treated as a non-breaking feature addition and is documented at Nonlinear Modeling.

    Breaking

    Although the new nonlinear interface is a feature addition, there are two changes which might be breaking for a very small number of users.

    • The syntax inside JuMP macros is parsed using a different code path, even for linear and quadratic expressions. We made this change to unify how we parse linear, quadratic, and nonlinear expressions. In all cases, the new code returns equivalent expressions, but because of the different order of operations, there are three changes to be aware of when updating:
      • The printed form of the expression may change, for example from x * y to y * x. This can cause tests which test the String representation of a model to fail.
      • Some coefficients may change slightly due to floating point round-off error.
      • Particularly when working with a JuMP extension, you may encounter a MethodError due to a missing or ambiguous method. These errors are due to previously existing bugs that were not triggered by the previous parsing code. If you encounter such an error, please open a GitHub issue.
    • The methods for Base.:^(x::VariableRef, n::Integer) and Base.:^(x::AffExpr, n::Integer) have changed. Previously, these methods supported only n = 0, 1, 2 and they always returned a QuadExpr, even for the case when n = 0 or n = 1. Now:
      • x^0 returns one(T), where T is the value_type of the model (defaults to Float64)
      • x^1 returns x
      • x^2 returns a QuadExpr
      • x^n where !(0 <= n <= 2) returns a NonlinearExpr.
      We made this change to support nonlinear expressions and to align the mathematical definition of the operation with their return type. (Previously, users were surprised that x^1 returned a QuadExpr.) As a consequence of this change, the methods are now not type-stable. This means that the compiler cannot prove that x^2 returns a QuadExpr. If benchmarking shows that this is a performance problem, you can use the type-stable x * x instead of x^2.

    Added

    Fixed

    • Fixed uses of @nospecialize which cause precompilation failures in Julia v1.6.0 and v1.6.1. (#3464)
    • Fixed adding a container of Parameter (#3473)
    • Fixed return type of x^0 and x^1 to no longer return QuadExpr (see note in Breaking section above) (#3474)
    • Fixed error messages in LowerBoundRef, UpperBoundRef, FixRef, IntegerRef, BinaryRef, ParameterRef and related functions (#3494)
    • Fixed type inference of empty containers in JuMP macros (#3500)

    Other

    • Added GAMS to solver documentation (#3357)
    • Updated various tutorials (#3459) (#3460) (#3462) (#3463) (#3465) (#3490) (#3492) (#3503)
    • Added The network multi-commodity flow problem tutorial (#3491)
    • Added Two-stage stochastic programs tutorial (#3466)
    • Added better error messages for unsupported operations in LinearAlgebra (#3476)
    • Updated to the latest version of Documenter (#3484) (#3495) (#3497)
    • Updated GitHub action versions (#3507)

    Version 1.14.1 (September 2, 2023)

    Fixed

    • Fix links in Documentation (#3478)

    Version 1.14.0 (August 27, 2023)

    Added

    Fixed

    • Fixed model_convert for BridgeableConstraint (#3437)
    • Fixed printing models with integer coefficients larger than typemax(Int) (#3447)
    • Fixed support for constant left-hand side functions in a complementarity constraint (#3452)

    Other

    • Updated packages used in documentation (#3444) (#3455)
    • Fixed docstring tests (#3445)
    • Fixed printing change for MathOptInterface (#3446)
    • Fixed typos in documentation (#3448) (#3457)
    • Added SCIP to callback documentation (#3449)

    Version 1.13.0 (July 27, 2023)

    Added

    Fixed

    Other

    • Added Loraine.jl to the installation table (#3426)
    • Removed Penopt.jl from packages.toml (#3428)
    • Improved problem statement in cannery example of tutorial (#3430)
    • Minor cleanups in Containers.DenseAxisArray implementation (#3429)
    • Changed nested_problems.jl: outer/inner to upper/lower (#3433)
    • Removed second SDP relaxation in OPF tutorial (#3432)

    Version 1.12.0 (June 19, 2023)

    Added

    Fixed

    • Fixed error message for matrix in HermitianPSDCone (#3369)
    • Fixed EditURL for custom documentation pages (#3373)
    • Fixed return type annotations for MOI.ConstraintPrimal and MOI.ConstraintDual (#3381)
    • Fixed printing change in Julia nightly (#3391)
    • Fixed printing of Complex coefficients (#3397)
    • Fixed printing of constraints in text/latex mode (#3405)
    • Fixed performance issue in Containers.rowtable (#3410)
    • Fixed bug when variables added to set of wrong dimension (#3411)

    Other

    • Added more solver READMEs to the documentation (#3358) (#3360) (#3364) (#3365) (#3366) (#3368) (#3372) (#3374) (#3376) (#3379) (#3387) (#3389)
    • Added StatusSwitchingQP.jl to the installation table (#3354)
    • Updated checklist for adding a new solver (#3370)
    • Updated extension-tests.yml action (#3371) (#3375)
    • Color logs in GitHub actions (#3392)
    • Added new tutorials
    • Updated JuMP paper citation (#3400)
    • Changed GitHub action to upload LaTeX logs when building documentation (#3403)
    • Fixed printing of SCS log in documentation (#3406)
    • Updated solver versions (#3407)
    • Updated documentation to use Julia v1.9 (#3398)
    • Replaced _value_type with MOI.Utilities.value_type (#3414)
    • Fixed a typo in docstring (#3415)
    • Refactored API documentation (#3386)
    • Updated SCIP license (#3420)

    Version 1.11.1 (May 19, 2023)

    Fixed

    • Fixed a poor error message when sum(::DenseAxisArray; dims) was called (#3338)
    • Fixed support for dependent sets in the @variable macro (#3344)
    • Fixed a performance bug in constraints with sparse symmetric matrices (#3349)

    Other

    • Improved the printing of complex numbers (#3332)
    • When printing, sets which contain constants ending in .0 now print as integers. This follows the behavior of constants in functions (#3341)
    • Added InfiniteOpt to the extensions documentation (#3343)
    • Added more documentation for the exponential cone (#3345) (#3347)
    • Added checklists for developers (#3346) (#3355)
    • Fixed test support upcoming Julia nightly (#3351)
    • Fixed extension-tests.yml action (#3353)
    • Add more solvers to the documentation (#3359) (#3361) (#3362)

    Version 1.11.0 (May 3, 2023)

    Added

    • Added new methods to print_active_bridges for printing a particular objective, constraint, or variable (#3316)

    Fixed

    • Fixed tests for MOI v1.14.0 release (#3312)
    • Fixed indexing containers when an axis is Vector{Any} that contains a Vector{Any} element (#3280)
    • Fixed getindex(::AbstractJuMPScalar) which is called for an expression like x[] (#3314)
    • Fixed bug in set_string_names_on_creation with a vector of variables (#3322)
    • Fixed bug in memoize function in nonlinear documentation (#3337)

    Other

    • Fixed typos in the documentation (#3317) (#3318) (#3328)
    • Added a test for the order of setting start values (#3315)
    • Added READMEs of solvers and extensions to the docs (#3309) (#3320) (#3327) (#3329) (#3333)
    • Style improvements to src/variables.jl (#3324)
    • Clarify that column generation does not find global optimum (#3325)
    • Add a GitHub actions workflow for testing extensions prior to release (#3331)
    • Document the release process for JuMP (#3334)
    • Fix links to discourse and chatroom (#3335)

    Version 1.10.0 (April 3, 2023)

    Added

    • Added Nonnegatives, Nonpositives and Zeros, and support vector-valued inequality syntax in the JuMP macros (#3273)
    • Added special support for LinearAlgebra.Symmetric and LinearAlgebra.Hermitian matrices in Zeros constraints (#3281) (#3296)
    • Added HermitianMatrixSpace and the Hermitian tag for generating a matrix of variables that is Hermitian (#3292) (#3293)
    • Added Semicontinuous and Semiinteger (#3302)
    • Added support for keyword indexing of containers (#3237)

    Fixed

    • Fixed [compat] bound for MathOptInterface in Project.toml (#3272)

    Other

    • Split out the Nested optimization problems tutorial (#3274)
    • Updated doctests to ensure none have hidden state (#3275) (#3276)
    • Clarified how lazy constraints may revisit points (#3278)
    • Added P-Norm example (#3282)
    • Clarified docs that macros create new bindings (#3284)
    • Fixed threading example (#3283)
    • Added plot to The minimum distortion problem (#3288)
    • Added Google style rules for Vale and fixed warnings (#3285)
    • Added citation for the JuMP 1.0 paper (#3294)
    • Updated package versions in the documentation (#3298)
    • Added comment for the order in which start values must be set (#3303)
    • Improved error message for unrecognized constraint operators (#3311)

    Version 1.9.0 (March 7, 2023)

    Added

    Fixed

    • The matrix returned by a variable in HermitianPSDCone is now a LinearAlgebra.Hermitian matrix. This is potentially breaking if you have written code to assume the return is a Matrix. (#3245) (#3246)
    • Fixed missing support for Base.isreal of expressions (#3252)

    Other

    • Fixed a thread safety issue in the Parallelism tutorial (#3240) (#3243)
    • Improved the error message when unsupported operators are used in @NL macros (#3236)
    • Clarified the documentation to say that matrices in HermitianPSDCone must be LinearAlgebra.Hermitian (#3241)
    • Minor style fixes to internal macro code (#3247)
    • Add Quantum state discrimination tutorial (#3250)
    • Improve error message when begin...end not passed to plural macros (#3255)
    • Document how to register function with varying number of input arguments (#3258)
    • Tidy tests by removing unneeded JuMP. prefixes (#3260)
    • Clarified the introduction to the Complex number support tutorial (#3262)
    • Fixed typos in the Documentation (#3263) (#3266) (#3268) (#3269)

    Version 1.8.2 (February 27, 2023)

    Fixed

    • Fixed dot product between complex JuMP expression and number (#3244)

    Other

    • Polish simple SDP examples (#3232)

    Version 1.8.1 (February 23, 2023)

    Fixed

    • Fixed support for init in nonlinear generator expressions (#3226)

    Other

    • Use and document import MathOptInterface as MOI (#3222)
    • Removed references in documentation to multiobjective optimization being unsupported (#3223)
    • Added tutorial on multi-objective portfolio optimization (#3227)
    • Refactored some of the conic tutorials (#3229)
    • Fixed typos in the documentation (#3230)
    • Added tutorial on parallelism (#3231)

    Version 1.8.0 (February 16, 2023)

    Added

    • Added --> syntax support for indicator constraints. The old syntax of => remains supported (#3207)
    • Added <--> syntax for reified constraints. For now, few solvers support reified constraints (#3206)
    • Added fix_discrete_variables. This is most useful for computing the dual of a mixed-integer program (#3208)
    • Added support for vector-valued objectives. For details, see the Multi-objective knapsack tutorial (#3176)

    Fixed

    • Fixed a bug in lp_sensitivity_report by switching to an explicit LU factorization of the basis matrix (#3182)
    • Fixed a bug that prevented [; kwarg] arguments in macros (#3220)

    Other

    Version 1.7.0 (January 25, 2023)

    Added

    • Added support for view of a Containers.DenseAxisArray (#3152) (#3180)
    • Added support for containers of variables in ComplexPlane (#3184)
    • Added support for minimum and maximum generators in nonlinear expressions (#3189)
    • Added SnoopPrecompile statements that reduce the time-to-first-solve in Julia 1.9 (#3193) (#3195) (#3196) (#3197)

    Other

    • Large refactoring of the tests (#3166) (#3167) (#3168) (#3169) (#3170) (#3171)
    • Remove unreachable code due to VERSION checks (#3172)
    • Document how to test JuMP extensions (#3174)
    • Fix method ambiguities in Containers (#3173)
    • Improve error message that is thrown when = is used instead of == in the @constraint macro (#3178)
    • Improve the error message when Bool is used instead of Bin in the @variable macro (#3180)
    • Update versions of the documentation (#3185)
    • Tidy the import of packages and remove unnecessary prefixes (#3186) (#3187)
    • Refactor src/JuMP.jl by moving methods into more relevant files (#3188)
    • Fix docstring of Model not appearing in the documentation (#3198)

    Version 1.6.0 (January 1, 2023)

    Added

    Fixed

    • Fixed promotion of complex expressions (#3150) (#3164)

    Other

    • Added Benders tutorial with in-place resolves (#3145)
    • Added more Tips and tricks for linear programs (#3144) (#3163)
    • Clarified documentation that start can depend on the indices of a variable container (#3148)
    • Replace instances of length and size by the recommended eachindex and axes (#3149)
    • Added a warning explaining why the model is dirty when accessing solution results from a modified model (#3156)
    • Clarify documentation that PSD ensures a symmetric matrix (#3159)
    • Maintenance of the JuMP test suite (#3146) (#3158) (#3162)

    Version 1.5.0 (December 8, 2022)

    Added

    Fixed

    • Fixed error message for vectorized interval constraints (#3123)
    • Fixed passing AbstractString to set_optimizer_attribute (#3127)

    Other

    • Update package versions used in docs (#3119) (#3133) (#3139)
    • Fixed output of diet tutorial (#3120)
    • Explain how to use Dates.period in set_time_limit_sec (#3121)
    • Update to JuliaFormatter v1.0.15 (#3130)
    • Fixed HTTP server example in web_app.jl (#3131)
    • Update docs to build with Documenter#master (#3094)
    • Add tests for LinearAlgebra operations (#3132)
    • Tidy these release notes (#3135)
    • Added documentation for Complex number support (#3141)
    • Removed the "workforce scheduling" and "steelT3" tutorials (#3143)

    Version 1.4.0 (October 29, 2022)

    Added

    Fixed

    • Fixed a bug in copy_to(dest::Model, src::MOI.ModelLike) when src has nonlinear components (#3101)
    • Fixed the printing of (-1.0 + 0.0im) coefficients in complex expressions (#3112)
    • Fixed a parsing bug in nonlinear expressions with generator statements that contain multiple for statements (#3116)

    Other

    • Converted the multi-commodity flow tutorial to use an SQLite database (#3098)
    • Fixed a number of typos in the documentation (#3103) (#3107) (#3018)
    • Improved various style aspects of the PDF documentation (#3095) (#3098) (#3102)

    Version 1.3.1 (September 28, 2022)

    Fixed

    • Fixed a performance issue in relax_integrality (#3087)
    • Fixed the type stability of operators with Complex arguments (#3072)
    • Fixed a bug which added additional +() terms to some nonlinear expressions (#3091)
    • Fixed potential method ambiguities with AffExpr and QuadExpr objects (#3092)

    Other

    • Added vale as a linter for the documentation (#3080)
    • Added a tutorial on debugging JuMP models (#3043)
    • Fixed a number of typos in the documentation (#3079) (#3083)
    • Many other small tweaks to the documentation (#3068) (#3073) (#3074) (#3075) (#3076) (#3077) (#3078) (#3081) (#3082) (#3084) (#3085) (#3089)

    Version 1.3.0 (September 5, 2022)

    Added

    • Support slicing in SparseAxisArray (#3031)

    Fixed

    • Fixed a bug introduced in v1.2.0 that prevented DenseAxisArrays with Vector keys (#3064)

    Other

    • Released the JuMP logos under the CC BY 4.0 license (#3063)
    • Minor tweaks to the documentation (#3054) (#3056) (#3057) (#3060) (#3061) (#3065)
    • Improved code coverage of a number of files (#3048) (#3049) (#3050) (#3051) (#3052) (#3053) (#3058) (#3059)

    Version 1.2.1 (August 22, 2022)

    Fixed

    • Fixed a bug when parsing two-sided nonlinear constraints (#3045)

    Version 1.2.0 (August 16, 2022)

    Breaking

    This is a large minor release because it significantly refactors the internal code for handling nonlinear programs to use the MathOptInterface.Nonlinear submodule that was introduced in MathOptInterface v1.3.0. As a consequence, the internal datastructure in model.nlp_data has been removed, as has the JuMP._Derivatives submodule. Despite the changes, the public API for nonlinear programming has not changed, and any code that uses only the public API and that worked with v1.1.1 will continue to work with v1.2.0.

    Added

    • Added all_constraints(model; include_variable_in_set_constraints) which simplifies returning a list of all constraint indices in the model.
    • Added the ability to delete nonlinear constraints via delete(::Model, ::NonlinearConstraintRef).
    • Added the ability to provide an explicit Hessian for a multivariate user-defined function.
    • Added support for querying the primal value of a nonlinear constraint via value(::NonlinearConstraintRef)

    Fixed

    • Fixed a bug in Containers.DenseAxisArray so that it now supports indexing with keys that hash to the same value, even if they are different types, for example, Int32 and Int64.
    • Fixed a bug printing the model when the solver does not support MOI.Name.

    Other

    • Added a constraint programming formulation to the Sudoku tutorial.
    • Added newly supported solvers Pajarito, Clarabel, and COPT to the installation table.
    • Fixed a variety of other miscellaneous issues in the documentation.

    Version 1.1.1 (June 14, 2022)

    Other

    • Fixed problem displaying LaTeX in the documentation
    • Minor updates to the style guide
    • Updated to MOI v1.4.0 in the documentation

    Version 1.1.0 (May 25, 2022)

    Added

    • Added num_constraints(::Model; count_variable_in_set_constraints) to simplify the process of counting the number of constraints in a model
    • Added VariableRef(::ConstraintRef) for querying the variable associated with a bound or integrality constraint.
    • Added set_normalized_coefficients for modifying the variable coefficients of a vector-valued constraint.
    • Added set_string_names_on_creation to disable creating String names for variables and constraints. This can improve performance.

    Fixed

    • Fixed a bug passing nothing to the start keyword of @variable

    Other

    • New tutorials:
      • Sensitivity analysis of a linear program
      • Serving web apps
    • Minimal ellipse SDP tutorial refactored and improved
    • Docs updated to the latest version of each package
    • Lots of minor fixes and improvements to the documentation

    Version 1.0.0 (March 24, 2022)

    Read more about this release, along with an acknowledgement of all the contributors in our JuMP 1.0.0 is released blog post.

    Breaking

    • The previously deprecated functions (v0.23.0, v0.23.1) have been removed. Deprecation was to improve consistency of function names:
      • num_nl_constraints (see num_nonlinear_constraints)
      • all_nl_constraints (see all_nonlinear_constraints)
      • add_NL_expression (see add_nonlinear_expression)
      • set_NL_objective (see set_nonlinear_objective)
      • add_NL_constraint (see add_nonlinear_constraint)
      • nl_expr_string (see nonlinear_expr_string)
      • nl_constraint_string (see nonlinear_constraint_string)
      • SymMatrixSpace (see SymmetricMatrixSpace)
    • The unintentionally exported variable JuMP.op_hint has been renamed to the unexported JuMP._OP_HINT

    Fixed

    • Fixed a bug writing .nl files
    • Fixed a bug broadcasting SparseAxisArrays

    Version 0.23.2 (March 14, 2022)

    Added

    • Added relative_gap to solution_summary
    • register now throws an informative error if the function is not differentiable using ForwardDiff. In some cases, the check in register will encounter a false negative, and the informative error will be thrown at run-time. This usually happens when the function is non-differentiable in a subset of the domain.

    Fixed

    • Fixed a scoping issue when extending the container keyword of containers

    Other

    • Docs updated to the latest version of each package

    Version 0.23.1 (March 2, 2022)

    Deprecated

    • nl_expr_string and nl_constraint_string have been renamed to nonlinear_expr_string and nonlinear_constraint_string. The old methods still exist with deprecation warnings. This change should impact very few users because to call them you must rely on private internals of the nonlinear API. Users are encouraged to use sprint(show, x) instead, where x is the nonlinear expression or constraint of interest.

    Added

    • Added support for Base.abs2(x) where x is a variable or affine expression. This is mainly useful for complex-valued constraints.

    Fixed

    • Fixed addition of complex and real affine expressions
    • Fixed arithmetic for Complex-valued quadratic expressions
    • Fixed variable bounds passed as Rational{Int}(Inf)
    • Fixed printing of the coefficient (0 + 1im)
    • Fixed a bug when solution_summary is called prior to optimize!

    Version 0.23.0 (February 25, 2022)

    JuMP v0.23.0 is a breaking release. It is also a release-candidate for JuMP v1.0.0. That is, if no issues are found with the v0.23.0 release, then it will be re-tagged as v1.0.0.

    Breaking

    • Julia 1.6 is now the minimum supported version
    • MathOptInterface has been updated to v1.0.0
    • All previously deprecated functionality has been removed
    • PrintMode, REPLMode and IJuliaMode have been removed in favor of the MIME types MIME"text/plain" and MIME"text/latex". Replace instances of ::Type{REPLMode} with ::MIME"text/plain", REPLMode with MIME("text/plain"), ::Type{IJuliaMode} with ::MIME"text/latex", and IJuliaMode with MIME("text/latex").
    • Functions containing the nl_ acronym have been renamed to the more explicit nonlinear_. For example, num_nl_constraints is now num_nonlinear_constraints and set_NL_objective is now set_nonlinear_objective. Calls to the old functions throw an error explaining the new name.
    • SymMatrixSpace has been renamed to SymmetricMatrixSpace

    Added

    • Added nonlinear_dual_start_value and set_nonlinear_dual_start_value
    • Added preliminary support for Complex coefficient types

    Fixed

    • Fixed a bug in solution_summary

    Other

    • MILP examples have been migrated from GLPK to HiGHS
    • Fixed various typos
    • Improved section on setting constraint start values

    Troubleshooting problems when updating

    If you experience problems when updating, you are likely using previously deprecated functionality. (By default, Julia does not warn when you use deprecated features.)

    To find the deprecated features you are using, start Julia with --depwarn=yes:

    $ julia --depwarn=yes

    Then install JuMP v0.22.3:

    julia> using Pkg
    +julia> pkg"add JuMP@0.22.3"

    And then run your code. Apply any suggestions, or search the release notes below for advice on updating a specific deprecated feature.

    Version 0.22.3 (February 10, 2022)

    Fixed

    • Fixed a reproducibility issue in the TSP tutorial
    • Fixed a reproducibility issue in the max_cut_sdp tutorial
    • Fixed a bug broadcasting an empty SparseAxisArray

    Other

    • Added a warning and improved documentation for the modify-then-query case
    • Fixed a typo in the docstring of RotatedSecondOrderCone
    • Added Aqua.jl as a check for code health
    • Added introductions to each section of the tutorials
    • Improved the column generation and Benders decomposition tutorials
    • Updated documentation to MOI v0.10.8
    • Updated JuliaFormatter to v0.22.2

    Version 0.22.2 (January 10, 2022)

    Added

    • The function all_nl_constraints now returns all nonlinear constraints in a model
    • start_value and set_start_value can now be used to get and set the primal start for constraint references
    • Plural macros now return a tuple containing the elements that were defined instead of nothing
    • Anonymous variables are now printed as _[i] where i is the index of the variable instead of noname. Calling name(x) still returns "" so this is non-breaking.

    Fixed

    • Fixed handling of min and max in nonlinear expressions
    • CartesianIndex is no longer allowed as a key for DenseAxisArrays.

    Other

    • Improved the performance of GenericAffExpr
    • Added a tutorial on the Travelling Salesperson Problem
    • Added a tutorial on querying the Hessian of a nonlinear program
    • Added documentation on using custom solver binaries.

    Version 0.22.1 (November 29, 2021)

    Added

    • Export OptimizationSense enum, with instances: MIN_SENSE, MAX_SENSE, and FEASIBILITY_SENSE
    • Add Base.isempty(::Model) to match Base.empty(::Model)

    Fixed

    • Fix bug in container with tuples as indices
    • Fix bug in set_time_limit_sec

    Other

    • Add tutorial "Design patterns for larger models"
    • Remove release notes section from PDF
    • General edits of the documentation and error messages

    Version 0.22.0 (November 10, 2021)

    JuMP v0.22 is a breaking release

    Breaking

    JuMP 0.22 contains a number of breaking changes. However, these should be invisible for the majority of users. You will mostly encounter these breaking changes if you: wrote a JuMP extension, accessed backend(model), or called @SDconstraint.

    The breaking changes are as follows:

    • MathOptInterface has been updated to v0.10.4. For users who have interacted with the MOI backend, this contains a large number of breaking changes. Read the MathOptInterface release notes for more details.
    • The bridge_constraints keyword argument to Model and set_optimizer has been renamed add_bridges to reflect that more thing were bridged than just constraints.
    • The backend(model) field now contains a concrete instance of a MOI.Utilities.CachingOptimizer instead of one with an abstractly typed optimizer field. In most cases, this will lead to improved performance. However, calling set_optimizer after backend invalidates the old backend. For example:
      model = Model()
      +b = backend(model)
      +set_optimizer(model, GLPK.Optimizer)
      +@variable(model, x)
      +# b is not updated with `x`! Get a new b by calling `backend` again.
      +new_b = backend(model)
    • All usages of @SDconstraint are deprecated. The new syntax is @constraint(model, X >= Y, PSDCone()).
    • Creating a DenseAxisArray with a Number as an axis will now display a warning. This catches a common error in which users write @variable(model, x[length(S)]) instead of @variable(model, x[1:length(S)]).
    • The caching_mode argument to Model, for example, Model(caching_mode = MOIU.MANUAL) mode has been removed. For more control over the optimizer, use direct_model instead.
    • The previously deprecated lp_objective_perturbation_range and lp_rhs_perturbation_range functions have been removed. Use lp_sensitivity_report instead.
    • The .m fields of NonlinearExpression and NonlinearParameter have been renamed to .model.
    • Infinite variable bounds are now ignored. Thus, @variable(model, x <= Inf) will show has_upper_bound(x) == false. Previously, these bounds were passed through to the solvers which caused numerical issues for solvers expecting finite bounds.
    • The variable_type and constraint_type functions were removed. This should only affect users who previously wrote JuMP extensions. The functions can be deleted without consequence.
    • The internal functions moi_mode, moi_bridge_constraints, moi_add_constraint, and moi_add_to_function_constant are no longer exported.
    • The un-used method Containers.generate_container has been deleted.
    • The Containers API has been refactored, and _build_ref_sets is now public as Containers.build_ref_sets.
    • The parse_constraint_ methods for extending @constraint at parse time have been refactored in a breaking way. Consult the Extensions documentation for more details and examples.

    Added

    • The TerminationStatusCode and ResultStatusCode enums are now exported by JuMP. Prefer termination_status(model) == OPTIMAL instead of == MOI.OPTIMAL, although the MOI. prefix way still works.
    • Copy a x::DenseAxisArray to an Array by calling Array(x).
    • NonlinearExpression is now a subtype of AbstractJuMPScalar
    • Constraints such as @constraint(model, x + 1 in MOI.Integer()) are now supported.
    • primal_feasibility_report now accepts a function as the first argument.
    • Scalar variables @variable(model, x[1:2] in MOI.Integer()) creates two variables, both of which are constrained to be in the set MOI.Integer.
    • Conic constraints can now be specified as inequalities under a different partial ordering. So @constraint(model, x - y in MOI.Nonnegatives()) can now be written as @constraint(model, x >= y, MOI.Nonnegatives()).
    • Names are now set for vectorized constraints.

    Fixed

    • Fixed a performance issue when show was called on a SparseAxisArray with a large number of elements.
    • Fixed a bug displaying barrier and simplex iterations in solution_summary.
    • Fixed a bug by implementing hash for DenseAxisArray and SparseAxisArray.
    • Names are now only set if the solver supports them. Previously, this prevented solvers such as Ipopt from being used with direct_model.
    • MutableArithmetics.Zero is converted into a 0.0 before being returned to the user. Previously, some calls to @expression would return the undocumented MutableArithmetics.Zero() object. One example is summing over an empty set @expression(model, sum(x[i] for i in 1:0)). You will now get 0.0 instead.
    • AffExpr and QuadExpr can now be used with == 0 instead of iszero. This fixes a number of issues relating to Julia standard libraries such as LinearAlgebra and SparseArrays.
    • Fixed a bug when registering a user-defined function with splatting.

    Other

    • The documentation is now available as a PDF.
    • The documentation now includes a full copy of the MathOptInterface documentation to make it easy to link concepts between the docs. (The MathOptInterface documentation has also been significantly improved.)
    • The documentation contains a large number of improvements and clarifications on a range of topics. Thanks to @sshin23, @DilumAluthge, and @jlwether.
    • The documentation is now built with Julia 1.6 instead of 1.0.
    • Various error messages have been improved to be more readable.

    Version 0.21.10 (September 4, 2021)

    Added

    • Added add_NL_expression
    • add_NL_xxx functions now support AffExpr and QuadExpr as terms

    Fixed

    • Fixed a bug in solution_summary
    • Fixed a bug in relax_integrality

    Other

    • Improved error message in lp_sensitivity_report

    Version 0.21.9 (August 1, 2021)

    Added

    • Containers now support arbitrary container types by passing the type to the container keyword and overloading Containers.container.
    • is_valid now supports nonlinear constraints
    • Added unsafe_backend for querying the inner-most optimizer of a JuMP model.
    • Nonlinear parameters now support the plural @NLparameters macro.
    • Containers (for example, DenseAxisArray) can now be used in vector-valued constraints.

    Other

    • Various improvements to the documentation.

    Version 0.21.8 (May 8, 2021)

    Added

    • The @constraint macro is now extendable in the same way as @variable.
    • AffExpr and QuadExpr can now be used in nonlinear macros.

    Fixed

    • Fixed a bug in lp_sensitivity_report.
    • Fixed an inference issue when creating empty SparseAxisArrays.

    Version 0.21.7 (April 12, 2021)

    Added

    • Added primal_feasibility_report, which can be used to check whether a primal point satisfies primal feasibility.
    • Added coefficient, which returns the coefficient associated with a variable in affine and quadratic expressions.
    • Added copy_conflict, which returns the IIS of an infeasible model.
    • Added solution_summary, which returns (and prints) a struct containing a summary of the solution.
    • Allow AbstractVector in vector constraints instead of just Vector.
    • Added latex_formulation(model) which returns an object representing the latex formulation of a model. Use print(latex_formulation(model)) to print the formulation as a string.
    • User-defined functions in nonlinear expressions are now automatically registered to aid quick model prototyping. However, a warning is printed to encourage the manual registration.
    • DenseAxisArray's now support broadcasting over multiple arrays.
    • Container indices can now be iterators of Base.SizeUnknown.

    Fixed

    • Fixed bug in rad2deg and deg2rad in nonlinear expressions.
    • Fixed a MethodError bug in Containers when forcing container type.
    • Allow partial slicing of a DenseAxisArray, resolving an issue from 2014.
    • Fixed a bug printing variable names in IJulia.
    • Ending an IJulia cell with model now prints a summary of the model (like in the REPL) not the latex formulation. Use print(model) to print the latex formulation.
    • Fixed a bug when copying models containing nested arrays.

    Other

    • Tutorials are now part of the documentation, and more refactoring has taken place.
    • Added JuliaFormatter added as a code formatter.
    • Added some precompilation statements to reduce initial latency.
    • Various improvements to error messages to make them more helpful.
    • Improved performance of value(::NonlinearExpression).
    • Improved performance of fix(::VariableRef).

    Version 0.21.6 (January 29, 2021)

    Added

    • Added support for skew symmetric variables via @variable(model, X[1:2, 1:2] in SkewSymmetricMatrixSpace()).
    • lp_sensitivity_report has been added which significantly improves the performance of querying the sensitivity summary of an LP. lp_objective_perturbation_range and lp_rhs_perturbation_range are deprecated.
    • Dual warm-starts are now supported with set_dual_start_value and dual_start_value.
    • (\in<tab>) can now be used in macros instead of = or in.
    • Use haskey(model::Model, key::Symbol) to check if a name key is registered in a model.
    • Added unregister(model::Model, key::Symbol) to unregister a name key from model.
    • Added callback_node_status for use in callbacks.
    • Added print_bridge_graph to visualize the bridging graph generated by MathOptInterface.
    • Improved error message for containers with duplicate indices.

    Fixed

    • Various fixes to pass tests on Julia 1.6.
    • Fixed a bug in the printing of nonlinear expressions in IJulia.
    • Fixed a bug when nonlinear expressions are passed to user-defined functions.
    • Some internal functions that were previously exported are now no longer exported.
    • Fixed a bug when relaxing a fixed binary variable.
    • Fixed a StackOverflowError that occurred when SparseAxisArrays had a large number of elements.
    • Removed an unnecessary type assertion in list_of_constraint_types.
    • Fixed a bug when copying models with registered expressions.

    Other

    • The documentation has been significantly overhauled. It now has distinct sections for the manual, API reference, and examples. The existing examples in /examples have now been moved to /docs/src/examples and rewritten using Literate.jl, and they are now included in the documentation.
    • JuliaFormatter has been applied to most of the codebase. This will continue to roll out over time, as we fix upstream issues in the formatter, and will eventually become compulsory.
    • The root cause of a large number of method invalidations has been resolved.
    • We switched continuous integration from Travis and Appveyor to GitHub Actions.

    Version 0.21.5 (September 18, 2020)

    Fixed

    • Fixed deprecation warnings
    • Throw DimensionMismatch for incompatibly sized functions and sets
    • Unify treatment of keys(x) on JuMP containers

    Version 0.21.4 (September 14, 2020)

    Added

    • Add debug info when adding unsupported constraints
    • Add relax_integrality for solving continuous relaxation
    • Allow querying constraint conflicts

    Fixed

    • Dispatch on Real for MOI.submit
    • Implement copy for CustomSet in tests
    • Don't export private macros
    • Fix invalid assertion in nonlinear
    • Error if constraint has NaN right-hand side
    • Improve speed of tests
    • Lots of work modularizing files in /test
    • Improve line numbers in macro error messages
    • Print nonlinear subexpressions
    • Various documentation updates
    • Dependency updates:
      • Datastructures 0.18
      • MathOptFormat v0.5
      • Prep for MathOptInterface 0.9.15

    Version 0.21.3 (June 18, 2020)

    • Added Special Order Sets (SOS1 and SOS2) to JuMP with default weights to ease the creation of such constraints (#2212).
    • Added functions simplex_iterations, barrier_iterations and node_count (#2201).
    • Added function reduced_cost (#2205).
    • Implemented callback_value for affine and quadratic expressions (#2231).
    • Support MutableArithmetics.Zero in objective and constraints (#2219).
    • Documentation improvements:
      • Mention tutorials in the docs (#2223).
      • Update COIN-OR links (#2242).
      • Explicit link to the documentation of MOI.FileFormats (#2253).
      • Typo fixes (#2261).
    • Containers improvements:
      • Fix Base.map for DenseAxisArray (#2235).
      • Throw BoundsError if number of indices is incorrect for DenseAxisArray and SparseAxisArray (#2240).
    • Extensibility improvements:
      • Implement a set_objective method fallback that redirects to set_objective_sense and set_objective_function (#2247).
      • Add parse_constraint method with arbitrary number of arguments (#2051).
      • Add parse_constraint_expr and parse_constraint_head (#2228).

    Version 0.21.2 (April 2, 2020)

    • Added relative_gap() to access MOI.RelativeGap() attribute (#2199).
    • Documentation fixes:
      • Added link to source for docstrings in the documentation (#2207).
      • Added docstring for @variables macro (#2216).
      • Typo fixes (#2177, #2184, #2182).
    • Implementation of methods for Base functions:
      • Implemented Base.empty! for JuMP.Model (#2198).
      • Implemented Base.conj for JuMP scalar types (#2209).

    Fixed

    • Fixed sum of expression with scalar product in macro (#2178).
    • Fixed writing of nonlinear models to MathOptFormat (#2181).
    • Fixed construction of empty SparseAxisArray (#2179).
    • Fixed constraint with zero function (#2188).

    Version 0.21.1 (Feb 18, 2020)

    • Improved the clarity of the with_optimizer deprecation warning.

    Version 0.21.0 (Feb 16, 2020)

    Breaking

    • Deprecated with_optimizer (#2090, #2084, #2141). You can replace with_optimizer by either nothing, optimizer_with_attributes or a closure:

      • replace with_optimizer(Ipopt.Optimizer) by Ipopt.Optimizer.
      • replace with_optimizer(Ipopt.Optimizer, max_cpu_time=60.0) by optimizer_with_attributes(Ipopt.Optimizer, "max_cpu_time" => 60.0).
      • replace with_optimizer(Gurobi.Optimizer, env) by () -> Gurobi.Optimizer(env).
      • replace with_optimizer(Gurobi.Optimizer, env, Presolve=0) by optimizer_with_attributes(() -> Gurobi.Optimizer(env), "Presolve" => 0).

      alternatively to optimizer_with_attributes, you can also set the attributes separately with set_optimizer_attribute.

    • Renamed set_parameter and set_parameters to set_optimizer_attribute and set_optimizer_attributes (#2150).

    • Broadcast should now be explicit inside macros. @SDconstraint(model, x >= 1) and @constraint(model, x + 1 in SecondOrderCone()) now throw an error instead of broadcasting 1 along the dimension of x (#2107).

    • @SDconstraint(model, x >= 0) is now equivalent to @constraint(model, x in PSDCone()) instead of @constraint(model, (x .- 0) in PSDCone()) (#2107).

    • The macros now create the containers with map instead of for loops, as a consequence, containers created by @expression can now have any element type and containers of constraint references now have concrete element types when possible. This fixes a long-standing issue where @expression could only be used to generate a collection of linear expressions. Now it works for quadratic expressions as well (#2070).

    • Calling deepcopy(::AbstractModel) now throws an error.

    • The constraint name is now printed in the model string (#2108).

    Added

    • Added support for solver-independent and solver-specific callbacks (#2101).
    • Added write_to_file and read_from_file, supported formats are CBF, LP, MathOptFormat, MPS and SDPA (#2114).
    • Added support for complementarity constraints (#2132).
    • Added support for indicator constraints (#2092).
    • Added support for querying multiple solutions with the result keyword (#2100).
    • Added support for constraining variables on creation (#2128).
    • Added method delete that deletes a vector of variables at once if it is supported by the underlying solver (#2135).
    • The arithmetic between JuMP expression has be refactored into the MutableArithmetics package (#2107).
    • Improved error on complex values in NLP (#1978).
    • Added an example of column generation (#2010).

    Fixed

    • Incorrect coefficients generated when using Symmetric variables (#2102)

    Version 0.20.1 (Oct 18, 2019)

    • Add sections on @variables and @constraints in the documentation (#2062).
    • Fixed product of sparse matrices for Julia v1.3 (#2063).
    • Added set_objective_coefficient to modify the coefficient of a linear term of the objective function (#2008).
    • Added set_time_limit_sec, unset_time_limit_sec and time_limit_sec to set and query the time limit for the solver in seconds (#2053).

    Version 0.20.0 (Aug 24, 2019)

    • Documentation updates.
    • Numerous bug fixes.
    • Better error messages (#1977, #1978, #1997, #2017).
    • Performance improvements (#1947, #2032).
    • Added LP sensitivity summary functions lp_objective_perturbation_range and lp_rhs_perturbation_range (#1917).
    • Added functions dual_objective_value, raw_status and set_parameter.
    • Added function set_objective_coefficient to modify the coefficient of a linear term of the objective (#2008).
    • Added functions set_normalized_rhs, normalized_rhs, and add_to_function_constant to modify and get the constant part of a constraint (#1935, #1960).
    • Added functions set_normalized_coefficient and normalized_coefficient to modify and get the coefficient of a linear term of a constraint (#1935, #1960).
    • Numerous other improvements in MOI 0.9, see the NEWS.md file of MOI for more details.

    Version 0.19.2 (June 8, 2019)

    • Fix a bug in derivatives that could arise in models with nested nonlinear subexpressions.

    Version 0.19.1 (May 12, 2019)

    • Usability and performance improvements.
    • Bug fixes.

    Version 0.19.0 (February 15, 2019)

    JuMP 0.19 contains significant breaking changes.

    Breaking

    • JuMP's abstraction layer for communicating with solvers changed from MathProgBase (MPB) to MathOptInterface (MOI). MOI addresses many longstanding design issues. (See @mlubin's slides from JuMP-dev 2018.) JuMP 0.19 is compatible only with solvers that have been updated for MOI. See the installation guide for a list of solvers that have and have not yet been updated.

    • Most solvers have been renamed to PackageName.Optimizer. For example, GurobiSolver() is now Gurobi.Optimizer.

    • Solvers are no longer added to a model via Model(solver = XXX(kwargs...)). Instead use Model(with_optimizer(XXX, kwargs...)). For example, Model(with_optimizer(Gurobi.Optimizer, OutputFlag=0)).

    • JuMP containers (for example, the objects returned by @variable) have been redesigned. Containers.SparseAxisArray replaces JuMPDict, JuMPArray was rewritten (inspired by AxisArrays) and renamed Containers.DenseAxisArray, and you can now request a container type with the container= keyword to the macros. See the corresponding documentation for more details.

    • The statuses returned by solvers have changed. See the possible status values here. The MOI statuses are much richer than the MPB statuses and can be used to distinguish between previously indistinguishable cases (for example, did the solver have a feasible solution when it stopped because of the time limit?).

    • Starting values are separate from result values. Use value to query the value of a variable in a solution. Use start_value and set_start_value to get and set an initial starting point provided to the solver. The solutions from previous solves are no longer automatically set as the starting points for the next solve.

    • The data structures for affine and quadratic expressions AffExpr and QuadExpr have changed. Internally, terms are stored in dictionaries instead of lists. Duplicate coefficients can no longer exist. Accessors and iteration methods have changed.

    • JuMPNLPEvaluator no longer includes the linear and quadratic parts of the model in the evaluation calls. These are now handled separately to allow NLP solvers that support various types of constraints.

    • JuMP solver-independent callbacks have been replaced by solver-specific callbacks. See your favorite solver for more details. (See the note below: No solver-specific callbacks are implemented yet.)

    • The norm() syntax is no longer recognized inside macros. Use the SecondOrderCone() set instead.

    • JuMP no longer performs automatic transformation between special quadratic forms and second-order cone constraints. Support for these constraint classes depends on the solver.

    • The symbols :Min and :Max are no longer used as optimization senses. Instead, JuMP uses the OptimizationSense enum from MathOptInterface. @objective(model, Max, ...), @objective(model, Min, ...), @NLobjective(model, Max, ...), and @objective(model, Min, ...) remain valid, but @objective(m, :Max, ...) is no longer accepted.

    • The sign conventions for duals has changed in some cases for consistency with conic duality (see the documentation). The shadow_price helper method returns duals with signs that match conventional LP interpretations of dual values as sensitivities of the objective value to relaxations of constraints.

    • @constraintref is no longer defined. Instead, create the appropriate container to hold constraint references manually. For example,

      constraints = Dict() # Optionally, specify types for improved performance.
      +for i in 1:N
      +  constraints[i] = @constraint(model, ...)
      +end
    • The lowerbound, upperbound, and basename keyword arguments to the @variable macro have been renamed to lower_bound, upper_bound, and base_name, for consistency with JuMP's new style recommendations.

    • We rely on broadcasting syntax to apply accessors to collections of variables, for example, value.(x) instead of getvalue(x) for collections. (Use value(x) when x is a scalar object.)

    Added

    • Splatting (like f(x...)) is recognized in restricted settings in nonlinear expressions.

    • Support for deleting constraints and variables.

    • The documentation has been completely rewritten using docstrings and Documenter.

    • Support for modeling mixed conic and quadratic models (for example, conic models with quadratic objectives and bi-linear matrix inequalities).

    • Significantly improved support for modeling new types of constraints and for extending JuMP's macros.

    • Support for providing dual warm starts.

    • Improved support for accessing solver-specific attributes (for example, the irreducible inconsistent subsystem).

    • Explicit control of whether symmetry-enforcing constraints are added to PSD constraints.

    • Support for modeling exponential cones.

    • Significant improvements in internal code quality and testing.

    • Style and naming guidelines.

    • Direct mode and manual mode provide explicit control over when copies of a model are stored or regenerated. See the corresponding documentation.

    Regressions

    There are known regressions from JuMP 0.18 that will be addressed in a future release (0.19.x or later):

    • Performance regressions in model generation (issue). Please file an issue anyway if you notice a significant performance regression. We have plans to address a number of performance issues, but we might not be aware of all of them.

    • Fast incremental NLP solves are not yet reimplemented (issue).

    • We do not yet have an implementation of solver-specific callbacks.

    • The column generation syntax in @variable has been removed (that is, the objective, coefficients, and inconstraints keyword arguments). Support for column generation will be re-introduced in a future release.

    • The ability to solve the continuous relaxation (that is, via solve(model; relaxation = true)) is not yet reimplemented (issue).

    Version 0.18.5 (December 1, 2018)

    • Support views in some derivative evaluation functions.
    • Improved compatibility with PackageCompiler.

    Version 0.18.4 (October 8, 2018)

    • Fix a bug in model printing on Julia 0.7 and 1.0.

    Version 0.18.3 (October 1, 2018)

    • Add support for Julia v1.0 (Thanks @ExpandingMan)
    • Fix matrix expressions with quadratic functions (#1508)

    Version 0.18.2 (June 10, 2018)

    • Fix a bug in second-order derivatives when expressions are present (#1319)
    • Fix a bug in @constraintref (#1330)

    Version 0.18.1 (April 9, 2018)

    • Fix for nested tuple destructuring (#1193)
    • Preserve internal model when relaxation=true (#1209)
    • Minor bug fixes and updates for example

    Version 0.18.0 (July 27, 2017)

    • Drop support for Julia 0.5.
    • Update for ForwardDiff 0.5.
    • Minor bug fixes.

    Version 0.17.1 (June 9, 2017)

    • Use of constructconstraint! in @SDconstraint.
    • Minor bug fixes.

    Version 0.17.0 (May 27, 2017)

    • Breaking change: Mixing quadratic and conic constraints is no longer supported.
    • Breaking change: The getvariable and getconstraint functions are replaced by indexing on the corresponding symbol. For instance, to access the variable with name x, one should now write m[:x] instead of getvariable(m, :x). As a consequence, creating a variable and constraint with the same name now triggers a warning, and accessing one of them afterwards throws an error. This change is breaking only in the latter case.
    • Addition of the getobjectivebound function that mirrors the functionality of the MathProgBase getobjbound function except that it takes into account transformations performed by JuMP.
    • Minor bug fixes.

    The following changes are primarily of interest to developers of JuMP extensions:

    • The new syntax @constraint(model, expr in Cone) creates the constraint ensuring that expr is inside Cone. The Cone argument is passed to constructconstraint! which enables the call to the dispatched to an extension.
    • The @variable macro now calls constructvariable! instead of directly calling the Variable constructor. Extra arguments and keyword arguments passed to @variable are passed to constructvariable! which enables the call to be dispatched to an extension.
    • Refactor the internal function conicdata (used build the MathProgBase conic model) into smaller sub-functions to make these parts reusable by extensions.

    Version 0.16.2 (March 28, 2017)

    • Minor bug fixes and printing tweaks
    • Address deprecation warnings for Julia 0.6

    Version 0.16.1 (March 7, 2017)

    • Better support for AbstractArray in JuMP (Thanks @tkoolen)
    • Minor bug fixes

    Version 0.16.0 (February 23, 2017)

    • Breaking change: JuMP no longer has a mechanism for selecting solvers by default (the previous mechanism was flawed and incompatible with Julia 0.6). Not specifying a solver before calling solve() will result in an error.
    • Breaking change: User-defined functions are no longer global. The first argument to JuMP.register is now a JuMP Model object within whose scope the function will be registered. Calling JuMP.register without a Model now produces an error.
    • Breaking change: Use the new JuMP.fix method to fix a variable to a value or to update the value to which a variable is fixed. Calling setvalue on a fixed variable now results in an error in order to avoid silent behavior changes. (Thanks @joaquimg)
    • Nonlinear expressions now print out similarly to linear/quadratic expressions (useful for debugging!)
    • New category keyword to @variable. Used for specifying categories of anonymous variables.
    • Compatibility with Julia 0.6-dev.
    • Minor fixes and improvements (Thanks @cossio, @ccoffrin, @blegat)

    Version 0.15.1 (January 31, 2017)

    • Bugfix for @LinearConstraints and friends

    Version 0.15.0 (December 22, 2016)

    • Julia 0.5.0 is the minimum required version for this release.
    • Document support for BARON solver
    • Enable info callbacks in more states than before, for example, for recording solutions. New when argument to addinfocallback (#814, thanks @yeesian)
    • Improved support for anonymous variables. This includes new warnings for potentially confusing use of the traditional non-anonymous syntax:
      • When multiple variables in a model are given the same name
      • When non-symbols are used as names, for example, @variable(m, x[1][1:N])
    • Improvements in iterating over JuMP containers (#836, thanks @IssamT)
    • Support for writing variable names in .lp file output (Thanks @leethargo)
    • Support for querying duals to SDP problems (Thanks @blegat)
    • The comprehension syntax with curly braces sum{}, prod{}, and norm2{} has been deprecated in favor of Julia's native comprehension syntax sum(), prod() and norm() as previously announced. (For early adopters of the new syntax, norm2() was renamed to norm() without deprecation.)
    • Unit tests rewritten to use Base.Test instead of FactCheck
    • Improved support for operations with matrices of JuMP types (Thanks @ExpandingMan)
    • The syntax to halt a solver from inside a callback has changed from throw(CallbackAbort()) to return JuMP.StopTheSolver
    • Minor bug fixes

    Version 0.14.2 (December 12, 2016)

    • Allow singleton anonymous variables (includes bugfix)

    Version 0.14.1 (September 12, 2016)

    • More consistent handling of states in informational callbacks, includes a new when parameter to addinfocallback for specifying in which state an informational callback should be called.

    Version 0.14.0 (August 7, 2016)

    • Compatibility with Julia 0.5 and ForwardDiff 0.2
    • Support for "anonymous" variables, constraints, expressions, and parameters, for example, x = @variable(m, [1:N]) instead of @variable(m, x[1:N])
    • Support for retrieving constraints from a model by name via getconstraint
    • @NLconstraint now returns constraint references (as expected).
    • Support for vectorized expressions within lazy constraints
    • On Julia 0.5, parse new comprehension syntax sum(x[i] for i in 1:N if isodd(i)) instead of sum{ x[i], i in 1:N; isodd(i) }. The old syntax with curly braces will be deprecated in JuMP 0.15.
    • Now possible to provide nonlinear expressions as "raw" Julia Expr objects instead of using JuMP's nonlinear macros. This input format is useful for programmatically generated expressions.
    • s/Mathematical Programming/Mathematical Optimization/
    • Support for local cuts (Thanks to @madanim, Mehdi Madani)
    • Document Xpress interface developed by @joaquimg, Joaquim Dias Garcia
    • Minor bug and deprecation fixes (Thanks @odow, @jrevels)

    Version 0.13.2 (May 16, 2016)

    • Compatibility update for MathProgBase

    Version 0.13.1 (May 3, 2016)

    • Fix broken deprecation for registerNLfunction.

    Version 0.13.0 (April 29, 2016)

    • Most exported methods and macros have been renamed to avoid camelCase. See the list of changes here. There is a 1-1 mapping from the old names to the new, and it is safe to simply replace the names to update existing models.
    • Specify variable lower/upper bounds in @variable using the lowerbound and upperbound keyword arguments.
    • Change name printed for variable using the basename keyword argument to @variable.
    • New @variables macro allows multi-line declaration of groups of variables.
    • A number of solver methods previously available only through MathProgBase are now exposed directly in JuMP. The fix was recorded live.
    • Compatibility fixes with Julia 0.5.
    • The "end" indexing syntax is no longer supported within JuMPArrays which do not use 1-based indexing until upstream issues are resolved, see here.

    Version 0.12.2 (March 9, 2016)

    • Small fixes for nonlinear optimization

    Version 0.12.1 (March 1, 2016)

    • Fix a regression in slicing for JuMPArrays (when not using 1-based indexing)

    Version 0.12.0 (February 27, 2016)

    • The automatic differentiation functionality has been completely rewritten with a number of user-facing changes:
      • @defExpr and @defNLExpr now take the model as the first argument. The previous one-argument version of @defExpr is deprecated; all expressions should be named. For example, replace @defExpr(2x+y) with @defExpr(jump_model, my_expr, 2x+y).
      • JuMP no longer uses Julia's variable binding rules for efficiently re-solving a sequence of nonlinear models. Instead, we have introduced nonlinear parameters. This is a breaking change, so we have added a warning message when we detect models that may depend on the old behavior.
      • Support for user-defined functions integrated within nonlinear JuMP expressions.
    • Replaced iteration over AffExpr with Number-like scalar iteration; previous iteration behavior is now available via linearterms(::AffExpr).
    • Stopping the solver via throw(CallbackAbort()) from a callback no longer triggers an exception. Instead, solve() returns UserLimit status.
    • getDual() now works for conic problems (Thanks @emreyamangil.)

    Version 0.11.3 (February 4, 2016)

    • Bug-fix for problems with quadratic objectives and semidefinite constraints

    Version 0.11.2 (January 14, 2016)

    • Compatibility update for Mosek

    Version 0.11.1 (December 1, 2015)

    • Remove usage of @compat in tests.
    • Fix updating quadratic objectives for nonlinear models.

    Version 0.11.0 (November 30, 2015)

    • Julia 0.4.0 is the minimum required version for this release.
    • Fix for scoping semantics of index variables in sum{}. Index variables no longer leak into the surrounding scope.
    • Addition of the solve(m::Model, relaxation=true) keyword argument to solve the standard continuous relaxation of model m
    • The getConstraintBounds() method allows access to the lower and upper bounds of all constraints in a (nonlinear) model.
    • Update for breaking changes in MathProgBase

    Version 0.10.3 (November 20, 2015)

    • Fix a rare error when parsing quadratic expressions
    • Fix Variable() constructor with default arguments
    • Detect unrecognized keywords in solve()

    Version 0.10.2 (September 28, 2015)

    • Fix for deprecation warnings

    Version 0.10.1 (September 3, 2015)

    • Fixes for ambiguity warnings.
    • Fix for breaking change in precompilation syntax in Julia 0.4-pre

    Version 0.10.0 (August 31, 2015)

    • Support (on Julia 0.4 and later) for conditions in indexing @defVar and @addConstraint constructs, for example, @defVar(m, x[i=1:5,j=1:5; i+j >= 3])
    • Support for vectorized operations on Variables and expressions. See the documentation for details.
    • New getVar() method to access variables in a model by name
    • Support for semidefinite programming.
    • Dual solutions are now available for general nonlinear problems. You may call getDual on a reference object for a nonlinear constraint, and getDual on a variable object for Lagrange multipliers from active bounds.
    • Introduce warnings for two common performance traps: too many calls to getValue() on a collection of variables and use of the + operator in a loop to sum expressions.
    • Second-order cone constraints can be written directly with the norm() and norm2{} syntax.
    • Implement MathProgBase interface for querying Hessian-vector products.
    • Iteration over JuMPContainers is deprecated; instead, use the keys and values functions, and zip(keys(d),values(d)) for the old behavior.
    • @defVar returns Array{Variable,N} when each of N index sets are of the form 1:nᵢ.
    • Module precompilation: on Julia 0.4 and later, using JuMP is now much faster.

    Version 0.9.3 (August 11, 2015)

    • Fixes for FactCheck testing on julia v0.4.

    Version 0.9.2 (June 27, 2015)

    • Fix bug in @addConstraints.

    Version 0.9.1 (April 25, 2015)

    • Fix for Julia 0.4-dev.
    • Small infrastructure improvements for extensions.

    Version 0.9.0 (April 18, 2015)

    • Comparison operators for constructing constraints (for example, 2x >= 1) have been deprecated. Instead, construct the constraints explicitly in the @addConstraint macro to add them to the model, or in the @LinearConstraint macro to create a stand-alone linear constraint instance.
    • getValue() method implemented to compute the value of a nonlinear subexpression
    • JuMP is now released under the Mozilla Public License version 2.0 (was previously LGPL). MPL is a copyleft license which is less restrictive than LGPL, especially for embedding JuMP within other applications.
    • A number of performance improvements in ReverseDiffSparse for computing derivatives.
    • MathProgBase.getsolvetime(m) now returns the solution time reported by the solver, if available. (Thanks @odow, Oscar Dowson)
    • Formatting fix for LP format output. (Thanks @sbebo, Leonardo Taccari).

    Version 0.8.0 (February 17, 2015)

    • Nonlinear subexpressions now supported with the @defNLExpr macro.
    • SCS supported for solving second-order conic problems.
    • setXXXCallback family deprecated in favor of addXXXCallback.
    • Multiple callbacks of the same type can be registered.
    • Added support for informational callbacks via addInfoCallback.
    • A CallbackAbort exception can be thrown from callback to safely exit optimization.

    Version 0.7.4 (February 4, 2015)

    • Reduced costs and linear constraint duals are now accessible when quadratic constraints are present.
    • Two-sided nonlinear constraints are supported.
    • Methods for accessing the number of variables and constraints in a model are renamed.
    • New default procedure for setting initial values in nonlinear optimization: project zero onto the variable bounds.
    • Small bug fixes.

    Version 0.7.3 (January 14, 2015)

    • Fix a method ambiguity conflict with Compose.jl (cosmetic fix)

    Version 0.7.2 (January 9, 2015)

    • Fix a bug in sum(::JuMPDict)
    • Added the setCategory function to change a variables category (for example, continuous or binary)

    after construction, and getCategory to retrieve the variable category.

    Version 0.7.1 (January 2, 2015)

    • Fix a bug in parsing linear expressions in macros. Affects only Julia 0.4 and later.

    Version 0.7.0 (December 29, 2014)

    Linear/quadratic/conic programming

    • Breaking change: The syntax for column-wise model generation has been changed to use keyword arguments in @defVar.
    • On Julia 0.4 and later, variables and coefficients may be multiplied in any order within macros. That is, variable*coefficient is now valid syntax.
    • ECOS supported for solving second-order conic problems.

    Nonlinear programming

    • Support for skipping model generation when solving a sequence of nonlinear models with changing data.
    • Fix a memory leak when solving a sequence of nonlinear models.
    • The @addNLConstraint macro now supports the three-argument version to define sets of nonlinear constraints.
    • KNITRO supported as a nonlinear solver.
    • Speed improvements for model generation.
    • The @addNLConstraints macro supports adding multiple (groups of) constraints at once. Syntax is similar to @addConstraints.
    • Discrete variables allowed in nonlinear problems for solvers which support them (currently only KNITRO).

    General

    • Starting values for variables may now be specified with @defVar(m, x, start=value).
    • The setSolver function allows users to change the solver subsequent to model creation.
    • Support for "fixed" variables via the @defVar(m, x == 1) syntax.
    • Unit tests rewritten to use FactCheck.jl, improved testing across solvers.

    Version 0.6.3 (October 19, 2014)

    • Fix a bug in multiplying two AffExpr objects.

    Version 0.6.2 (October 11, 2014)

    • Further improvements and bug fixes for printing.
    • Fixed a bug in @defExpr.
    • Support for accessing expression graphs through the MathProgBase NLP interface.

    Version 0.6.1 (September 19, 2014)

    • Improvements and bug fixes for printing.

    Version 0.6.0 (September 9, 2014)

    • Julia 0.3.0 is the minimum required version for this release.
    • buildInternalModel(m::Model) added to build solver-level model in memory without optimizing.
    • Deprecate load_model_only keyword argument to solve.
    • Add groups of constraints with @addConstraints macro.
    • Unicode operators now supported, including for sum, for prod, and /
    • Quadratic constraints supported in @addConstraint macro.
    • Quadratic objectives supported in @setObjective macro.
    • MathProgBase solver-independent interface replaces Ipopt-specific interface for nonlinear problems
      • Breaking change: IpoptOptions no longer supported to specify solver options, use m = Model(solver=IpoptSolver(options...)) instead.
    • New solver interfaces: ECOS, NLopt, and nonlinear support for MOSEK
    • New option to control whether the lazy constraint callback is executed at each node in the B&B tree or just when feasible solutions are found
    • Add support for semicontinuous and semi-integer variables for those solvers that support them.
    • Add support for index dependencies (for example, triangular indexing) in @defVar, @addConstraint, and @defExpr (for example, @defVar(m, x[i=1:10,j=i:10])).
      • This required some changes to the internal structure of JuMP containers, which may break code that explicitly stored JuMPDict objects.

    Version 0.5.8 (September 24, 2014)

    • Fix a bug with specifying solvers (affects Julia 0.2 only)

    Version 0.5.7 (September 5, 2014)

    • Fix a bug in printing models

    Version 0.5.6 (September 2, 2014)

    • Add support for semicontinuous and semi-integer variables for those solvers that support them.
      • Breaking change: Syntax for Variable() constructor has changed (use of this interface remains discouraged)
    • Update for breaking changes in MathProgBase

    Version 0.5.5 (July 6, 2014)

    • Fix bug with problem modification: adding variables that did not appear in existing constraints or objective.

    Version 0.5.4 (June 19, 2014)

    • Update for breaking change in MathProgBase which reduces loading times for using JuMP
    • Fix error when MIPs not solved to optimality

    Version 0.5.3 (May 21, 2014)

    • Update for breaking change in ReverseDiffSparse

    Version 0.5.2 (May 9, 2014)

    • Fix compatibility with Julia 0.3 prerelease

    Version 0.5.1 (May 5, 2014)

    • Fix a bug in coefficient handling inside lazy constraints and user cuts

    Version 0.5.0 (May 2, 2014)

    • Support for nonlinear optimization with exact, sparse second-order derivatives automatically computed. Ipopt is currently the only solver supported.
    • getValue for AffExpr and QuadExpr
    • Breaking change: getSolverModel replaced by getInternalModel, which returns the internal MathProgBase-level model
    • Groups of constraints can be specified with @addConstraint (see documentation for details). This is not a breaking change.
    • dot(::JuMPDict{Variable},::JuMPDict{Variable}) now returns the corresponding quadratic expression.

    Version 0.4.1 (March 24, 2014)

    • Fix bug where change in objective sense was ignored when re-solving a model.
    • Fix issue with handling zero coefficients in AffExpr.

    Version 0.4.0 (March 10, 2014)

    • Support for SOS1 and SOS2 constraints.
    • Solver-independent callback for user heuristics.
    • dot and sum implemented for JuMPDict objects. Now you can say @addConstraint(m, dot(a,x) <= b).
    • Developers: support for extensions to JuMP. See definition of Model in src/JuMP.jl for more details.
    • Option to construct the low-level model before optimizing.

    Version 0.3.2 (February 17, 2014)

    • Improved model printing
      • Preliminary support for IJulia output

    Version 0.3.1 (January 30, 2014)

    • Documentation updates
    • Support for MOSEK
    • CPLEXLink renamed to CPLEX

    Version 0.3.0 (January 21, 2014)

    • Unbounded/infeasibility rays: getValue() will return the corresponding components of an unbounded ray when a model is unbounded, if supported by the selected solver. getDual() will return an infeasibility ray (Farkas proof) if a model is infeasible and the selected solver supports this feature.
    • Solver-independent callbacks for user generated cuts.
    • Use new interface for solver-independent QCQP.
    • setlazycallback renamed to setLazyCallback for consistency.

    Version 0.2.0 (December 15, 2013)

    Breaking

    • Objective sense is specified in setObjective instead of in the Model constructor.
    • lpsolver and mipsolver merged into single solver option.

    Added

    • Problem modification with efficient LP restarts and MIP warm-starts.
    • Relatedly, column-wise modeling now supported.
    • Solver-independent callbacks supported. Currently we support only a "lazy constraint" callback, which works with Gurobi, CPLEX, and GLPK. More callbacks coming soon.

    Version 0.1.2 (November 16, 2013)

    • Bug fixes for printing, improved error messages.
    • Allow AffExpr to be used in macros; for example, ex = y + z; @addConstraint(m, x + 2*ex <= 3)

    Version 0.1.1 (October 23, 2013)

    • Update for solver specification API changes in MathProgBase.

    Version 0.1.0 (October 3, 2013)

    • Initial public release.
    diff --git a/previews/PR3545/developers/checklists/index.html b/previews/PR3545/developers/checklists/index.html new file mode 100644 index 00000000000..59a2ad29c9c --- /dev/null +++ b/previews/PR3545/developers/checklists/index.html @@ -0,0 +1,65 @@ + +Checklists · JuMP

    Checklists

    The purpose of this page is to collate a series of checklists for commonly performed changes to the source code of JuMP.

    In each case, copy the checklist into the description of the pull request.

    Making a release

    In preparation for a release, use the following checklist. These steps can be done in the same commit, or separately. The last commit should have the message "Prep for vX.Y.Z."

    ## Pre-release
    +
    + - [ ] Check that the pinned packages in `docs/Project.toml` are updated. We pin
    +       the versions so that changes in the solvers (changes in printing, small
    +       numeric changes) do not break the printing of the JuMP docs in arbitrary
    +       commits.
    + - [ ] Check that the `rev` fields in `docs/packages.toml` are updated. We pin
    +       the versions of solvers and extensions to ensure that changes to their
    +       READMEs do not break the JuMP docs in arbitrary commits, and to ensure
    +       that the versions are compatible with the latest JuMP and
    +       MathOptInterface releases.
    + - [ ] Update `docs/src/changelog.md`
    + - [ ] Run https://github.com/jump-dev/JuMP.jl/actions/workflows/extension-tests.yml
    +       using a `workflow_dispatch` trigger to check for any changes in JuMP that
    +       broke extensions.
    + - [ ] Change the version number in `Project.toml`
    + - [ ] Update the links in README.md
    + - [ ] The commit messages in this PR do not contain `[ci skip]`
    +
    +## The release
    +
    + - [ ] After merging this pull request, comment `[at]JuliaRegistrator register` in
    +       the GitHub commit. This should automatically publish a new version to the
    +       Julia registry, as well as create a tag, and rebuild the documentation
    +       for this tag.
    +
    +       These steps can take quite a bit of time (1 hour or more), so don't be
    +       surprised if the new documentation takes a while to appear. In addition,
    +       the links in the README will be broken until JuliaHub fetches the new
    +       version on their servers.
    +
    +## Post-release
    +
    + - [ ] Once the tag is created, update the relevant `release-` branch. The latest
    +       release branch at the time of writing is `release-1.0` (we haven't
    +       back-ported any patches that needed to create a `release-1.Y` branch). To
    +       to update the release branch with the v1.10.0 tag, do:
    +       ```
    +       git checkout release-1.0
    +       git pull
    +       git merge v1.10.0
    +       git push
    +       ```

    Adding a new solver to the documentation

    Use the following checklist when adding a new solver to the JuMP documentation.

    ## Basic
    +
    + - [ ] Check that the solver is a registered Julia package
    + - [ ] Check that the solver supports the long-term support release of Julia
    + - [ ] Check that the solver has a MathOptInterface wrapper
    + - [ ] Check that the tests call `MOI.Test.runtests`. Some test excludes are
    +       permissible, but the reason for skipping a particular test should be
    +       documented.
    + - [ ] Check that the README and/or documentation provides an example of how to
    +       use the solver with JuMP
    +
    +## Documentation
    +
    + - [ ] Add a new row to the table in `docs/src/installation.md`
    +
    +## Optional
    +
    + - [ ] Add package metadata to `docs/packages.toml`
    diff --git a/previews/PR3545/developers/contributing/index.html b/previews/PR3545/developers/contributing/index.html new file mode 100644 index 00000000000..2725ed6c1ff --- /dev/null +++ b/previews/PR3545/developers/contributing/index.html @@ -0,0 +1,28 @@ + +Contributing · JuMP

    How to contribute to JuMP

    Welcome, this document explains some ways you can contribute to JuMP.

    Code of Conduct

    This project and everyone participating in it is governed by the JuMP Code of Conduct. By participating, you are expected to uphold this code.

    Join the community forum

    First up, join the community forum.

    The forum is a good place to ask questions about how to use JuMP. You can also use the forum to discuss possible feature requests and bugs before raising a GitHub issue (more on this below).

    Aside from asking questions, the easiest way you can contribute to JuMP is to help answer questions on the forum.

    Join the developer chatroom

    If you're interested in contributing code to JuMP, the next place to join is the developer chatroom. Let us know what you have in mind, and we can point you in the right direction.

    Improve the documentation

    Chances are, if you asked (or answered) a question on the community forum, then it is a sign that the documentation could be improved. Moreover, since it is your question, you are probably the best-placed person to improve it.

    The docs are written in Markdown and are built using Documenter.jl. You can find the source of all the docs here.

    If your change is small (like fixing typos, or one or two sentence corrections), the easiest way to do this is via GitHub's online editor. (GitHub has help on how to do this.)

    If your change is larger, or touches multiple files, you will need to make the change locally and then use Git to submit a pull request. (See Contribute code to JuMP below for more on this.)

    Tip

    If you need any help, come join the developer chatroom and we will walk you through the process.

    File a bug report

    Another way to contribute to JuMP is to file bug reports.

    Make sure you read the info in the box where you write the body of the issue before posting. You can also find a copy of that info here.

    Tip

    If you're unsure whether you have a real bug, post on the community forum first. Someone will either help you fix the problem, or let you know the most appropriate place to open a bug report.

    Contribute code to JuMP

    Finally, you can also contribute code to JuMP.

    Warning

    If you do not have experience with Git, GitHub, and Julia development, the first steps can be a little daunting. However, there are lots of tutorials available online, including these for:

    If you need any help, come join the developer chatroom and we will walk you through the process.

    Once you are familiar with Git and GitHub, the workflow for contributing code to JuMP is similar to the following:

    Step 1: decide what to work on

    The first step is to find an open issue (or open a new one) for the problem you want to solve. Then, before spending too much time on it, discuss what you are planning to do in the issue to see if other contributors are fine with your proposed changes. Getting feedback early can improve code quality, and avoid time spent writing code that does not get merged into JuMP.

    Tip

    At this point, remember to be patient and polite; you may get a lot of comments on your issue. However, do not be afraid. Comments mean that people are willing to help you improve the code that you are contributing to JuMP.

    Step 2: fork JuMP

    Go to https://github.com/jump-dev/JuMP.jl and click the "Fork" button in the top-right corner. This will create a copy of JuMP under your GitHub account.

    Step 3: install JuMP locally

    Open Julia and run:

    ] dev JuMP

    This will download the JuMP Git repository to ~/.julia/dev/JuMP. If you're on Windows, this will be C:\\Users\\<my_name>\\.julia\\dev\\JuMP.

    Warning

    ] command means "first type ] to enter the Julia pkg mode, then type the rest. Don't copy-paste the code directly.

    Step 4: checkout a new branch

    Note

    In the following, replace any instance of GITHUB_ACCOUNT with your GitHub user name.

    The next step is to checkout a development branch. In a terminal (or command prompt on Windows), run:

    $ cd ~/.julia/dev/JuMP
    +
    +$ git remote add GITHUB_ACCOUNT https://github.com/GITHUB_ACCOUNT/JuMP.jl.git
    +
    +$ git checkout master
    +
    +$ git pull
    +
    +$ git checkout -b my_new_branch
    Tip

    Lines starting with $ mean "run these in a terminal (command prompt on Windows)."

    Step 5: make changes

    Now make any changes to the source code inside the ~/.julia/dev/JuMP directory.

    Make sure you:

    Tip

    When you change the source code, you'll need to restart Julia for the changes to take effect. This is a pain, so install Revise.jl.

    Step 6a: test your code changes

    To test that your changes work, run the JuMP test-suite by opening Julia and running:

    cd("~/.julia/dev/JuMP")
    +] activate .
    +] test
    Warning

    Running the tests might take a long time (~10–15 minutes).

    Tip

    If you're using Revise.jl, you can also run the tests by calling include:

    include("test/runtests.jl")

    This can be faster if you want to re-run the tests multiple times.

    Step 6b: test your documentation changes

    Open Julia, then run:

    cd("~/.julia/dev/JuMP/docs")
    +] activate .
    +include("src/make.jl")
    Warning

    Building the documentation might take a long time (~10 minutes).

    Tip

    If there's a problem with the tests that you don't know how to fix, don't worry. Continue to step 5, and one of the JuMP contributors will comment on your pull request telling you how to fix things.

    Step 7: make a pull request

    Once you've made changes, you're ready to push the changes to GitHub. Run:

    $ cd ~/.julia/dev/JuMP
    +
    +$ git add .
    +
    +$ git commit -m "A descriptive message of the changes"
    +
    +$ git push -u GITHUB_ACCOUNT my_new_branch

    Then go to https://github.com/jump-dev/JuMP.jl and follow the instructions that pop up to open a pull request.

    Step 8: respond to comments

    At this point, remember to be patient and polite; you may get a lot of comments on your pull request. However, do not be afraid. A lot of comments means that people are willing to help you improve the code that you are contributing to JuMP.

    To respond to the comments, go back to step 5, make any changes, test the changes in step 6, and then make a new commit in step 7. Your PR will automatically update.

    Step 9: cleaning up

    Once the PR is merged, clean-up your Git repository ready for the next contribution.

    $ cd ~/.julia/dev/JuMP
    +
    +$ git checkout master
    +
    +$ git pull
    Note

    If you have suggestions to improve this guide, please make a pull request. It's particularly helpful if you do this after your first pull request because you'll know all the parts that could be explained better.

    diff --git a/previews/PR3545/developers/custom_solver_binaries/index.html b/previews/PR3545/developers/custom_solver_binaries/index.html new file mode 100644 index 00000000000..cd123625e49 --- /dev/null +++ b/previews/PR3545/developers/custom_solver_binaries/index.html @@ -0,0 +1,93 @@ + +Custom binaries · JuMP

    How to use a custom binary

    Many solvers are not written in Julia, but instead in languages like C or C++. JuMP interacts with these solvers through binary dependencies.

    For many open-source solvers, we automatically install the appropriate binary when you run Pkg.add("Solver"). For example, Pkg.add("ECOS") will also install the ECOS binary.

    This page explains how this installation works, and how you can use a custom binary.

    Compat

    These instructions require Julia 1.6 or later.

    Background

    Each solver that JuMP supports is structured as a Julia package. For example, the interface for the ECOS solver is provided by the ECOS.jl package.

    Tip

    This page uses the example of ECOS.jl because it is simple to compile. Other solvers follow similar conventions. For example, the interface to the Clp solver is provided by Clp.jl.

    The ECOS.jl package provides an interface between the C API of ECOS and MathOptInterface. However, it does not handle the installation of the solver binary; that is the job for a JLL package.

    A JLL is a Julia package that wraps a pre-compiled binary. Binaries are built using Yggdrasil (for example, ECOS) and hosted in the JuliaBinaryWrappers GitHub repository (for example, ECOS_jll.jl).

    JLL packages contain little code. Their only job is to dlopen a dynamic library, along with any dependencies.

    JLL packages manage their binary dependencies using Julia's artifact system. Each JLL package has an Artifacts.toml file which describes where to find each binary artifact for each different platform that it might be installed on. Here is the Artifacts.toml file for ECOS_jll.jl.

    The binaries installed by the JLL package should be sufficient for most users. In rare cases, however, you may require a custom binary. The two main reasons to use a custom binary are:

    • You want a binary with custom compilation settings (for example, debugging)
    • You want a binary with a set of dependencies that are not available on Yggdrasil (for example, a commercial solver like Gurobi or CPLEX).

    The following sections explain how to replace the binaries provided by a JLL package with the custom ones you have compiled. As a reminder, we use ECOS as an example for simplicity, but the steps are the same for other solvers.

    Explore the JLL you want to override

    The first step is to explore the structure and filenames of the JLL package we want to override.

    Find the location of the files using .artifact_dir:

    julia> using ECOS_jll
    +
    +julia> ECOS_jll.artifact_dir
    +"/Users/oscar/.julia/artifacts/2addb75332eff5a1657b46bb6bf30d2410bc7ecf"
    Tip

    This path may be different on other machines.

    Here is what it contains:

    julia> readdir(ECOS_jll.artifact_dir)
    +4-element Vector{String}:
    + "include"
    + "lib"
    + "logs"
    + "share"
    +
    +julia> readdir(joinpath(ECOS_jll.artifact_dir, "lib"))
    +1-element Vector{String}:
    + "libecos.dylib"

    Other solvers may have a bin directory containing executables. To use a custom binary of ECOS, we need to replace /lib/libecos.dylib with our custom binary.

    Compile a custom binary

    The next step is to compile a custom binary. Because ECOS is written in C with no dependencies, this is easy to do if you have a C compiler:

    oscar@Oscars-MBP jll_example % git clone https://github.com/embotech/ecos.git
    +[... lines omitted ...]
    +oscar@Oscars-MBP jll_example % cd ecos
    +oscar@Oscars-MBP ecos % make shared
    +[... many lines omitted...]
    +oscar@Oscars-MBP ecos % mkdir lib
    +oscar@Oscars-MBP ecos % cp libecos.dylib lib
    Warning

    Compiling custom solver binaries is an advanced operation. Due to the complexities of compiling various solvers, the JuMP community is unable to help you diagnose and fix compilation issues.

    After this compilation step, we now have a folder /tmp/jll_example/ecos that contains lib and include directories with the same files as ECOS_jll:

    julia> readdir(joinpath("ecos", "lib"))
    +1-element Vector{String}:
    + "libecos.dylib"

    Overriding a single library

    To override the libecos library, we need to know what ECOS_jll calls it. (In most cases, it will also be libecos, but not always.)

    There are two ways you can check.

    1. Check the bottom of the JLL's GitHub README. For example, ECOS_jll has a single LibraryProduct called libecos.
    2. Type ECOS_jll. and the press the [TAB] key twice to auto-complete available options:
      julia> ECOS_jll.
      +LIBPATH           PATH_list          best_wrapper       get_libecos_path   libecos_handle
      +LIBPATH_list      __init__           dev_jll            is_available       libecos_path
      +PATH              artifact_dir       find_artifact_dir  libecos
      Here you can see there is libecos, and more usefully for us, libecos_path.

    Once you know the name of the variable to override (the one that ends in _path), use Preferences.jl to specify a new path:

    using Preferences
    +set_preferences!(
    +    "LocalPreferences.toml",
    +    "ECOS_jll",
    +    "libecos_path" => "/tmp/jll_example/ecos/lib/libecos"
    +)

    This will create a file in your current directory called LocalPreferences.toml with the contents:

    [ECOS_jll]
    +libecos_path = "/tmp/jll_example/ecos/lib/libecos"

    Now if you restart Julia, you will see:

    julia> using ECOS_jll
    +
    +julia> ECOS_jll.libecos
    +"/tmp/jll_example/ecos/lib/libecos"

    To go back to using the default library, just delete the LocalPreferences.toml file.

    Overriding an entire artifact

    Sometimes a solver may provide a number of libraries and executables, and specifying the path for each of the becomes tedious. In this case, we can use Julia's Override.toml to replace an entire artifact.

    Overriding an entire artifact requires you to replicate the structure and contents of the JLL package that we explored above.

    In most cases you need only reproduce the include, lib, and bin directories (if they exist). You can safely ignore any logs or share directories. Take careful note of what files each directory contains and what they are called.

    For our ECOS example, we already reproduced the structure when we compiled ECOS.

    So, now we need to tell Julia to use our custom installation instead of the default. We can do this by making an override file at ~/.julia/artifacts/Overrides.toml.

    Overrides.toml has the following content:

    # Override for ECOS_jll
    +2addb75332eff5a1657b46bb6bf30d2410bc7ecf = "/tmp/jll_example/ecos"

    where 2addb75332eff5a1657b46bb6bf30d2410bc7ecf is the folder from the original ECOS_jll.artifact_dir and "/tmp/jll_example/ecos" is the location of our new installation. Replace these as appropriate for your system.

    If you restart Julia after creating the override file, you will see:

    julia> using ECOS_jll
    +
    +julia> ECOS_jll.artifact_dir
    +"/tmp/jll_example/ecos"

    Now when we use ECOS it will use our custom binary.

    Using Cbc with a custom binary

    As a second example, we demonstrate how to use Cbc.jl with a custom binary.

    Explore the JLL you want to override

    First, let's check where Cbc_jll is installed:

    julia> using Cbc_jll
    +
    +julia> Cbc_jll.artifact_dir
    +"/Users/oscar/.julia/artifacts/e481bc81db5e229ba1f52b2b4bd57484204b1b06"
    +
    +julia> readdir(Cbc_jll.artifact_dir)
    +5-element Vector{String}:
    + "bin"
    + "include"
    + "lib"
    + "logs"
    + "share"
    +
    +julia> readdir(joinpath(Cbc_jll.artifact_dir, "bin"))
    +1-element Vector{String}:
    + "cbc"
    +
    +julia> readdir(joinpath(Cbc_jll.artifact_dir, "lib"))
    +10-element Vector{String}:
    + "libCbc.3.10.5.dylib"
    + "libCbc.3.dylib"
    + "libCbc.dylib"
    + "libCbcSolver.3.10.5.dylib"
    + "libCbcSolver.3.dylib"
    + "libCbcSolver.dylib"
    + "libOsiCbc.3.10.5.dylib"
    + "libOsiCbc.3.dylib"
    + "libOsiCbc.dylib"
    + "pkgconfig"

    Compile a custom binary

    Next, we need to compile Cbc. Cbc can be difficult to compile (it has a lot of dependencies), but for macOS users there is a homebrew recipe:

    (base) oscar@Oscars-MBP jll_example % brew install cbc
    +[ ... lines omitted ... ]
    +(base) oscar@Oscars-MBP jll_example % brew list cbc
    +/usr/local/Cellar/cbc/2.10.5/bin/cbc
    +/usr/local/Cellar/cbc/2.10.5/include/cbc/ (76 files)
    +/usr/local/Cellar/cbc/2.10.5/lib/libCbc.3.10.5.dylib
    +/usr/local/Cellar/cbc/2.10.5/lib/libCbcSolver.3.10.5.dylib
    +/usr/local/Cellar/cbc/2.10.5/lib/libOsiCbc.3.10.5.dylib
    +/usr/local/Cellar/cbc/2.10.5/lib/pkgconfig/ (2 files)
    +/usr/local/Cellar/cbc/2.10.5/lib/ (6 other files)
    +/usr/local/Cellar/cbc/2.10.5/share/cbc/ (59 files)
    +/usr/local/Cellar/cbc/2.10.5/share/coin/ (4 files)

    Override single libraries

    To use Preferences.jl to override specific libraries we first check the names of each library in Cbc_jll:

    julia> Cbc_jll.
    +LIBPATH               cbc                    get_libcbcsolver_path  libOsiCbc_path
    +LIBPATH_list          cbc_path               is_available           libcbcsolver
    +PATH                  dev_jll                libCbc                 libcbcsolver_handle
    +PATH_list             find_artifact_dir      libCbc_handle          libcbcsolver_path
    +__init__              get_cbc_path           libCbc_path
    +artifact_dir          get_libCbc_path        libOsiCbc
    +best_wrapper          get_libOsiCbc_path     libOsiCbc_handle

    Then we add the following to LocalPreferences.toml:

    [Cbc_jll]
    +cbc_path = "/usr/local/Cellar/cbc/2.10.5/bin/cbc"
    +libCbc_path = "/usr/local/Cellar/cbc/2.10.5/lib/libCbc.3.10.5"
    +libOsiCbc_path = "/usr/local/Cellar/cbc/2.10.5/lib/libOsiCbc.3.10.5"
    +libcbcsolver_path = "/usr/local/Cellar/cbc/2.10.5/lib/libCbcSolver.3.10.5"
    Info

    Note that capitalization matters, so libcbcsolver_path corresponds to libCbcSolver.3.10.5.

    Override entire artifact

    To use the homebrew install as our custom binary we add the following to ~/.julia/artifacts/Overrides.toml:

    # Override for Cbc_jll
    +e481bc81db5e229ba1f52b2b4bd57484204b1b06 = "/usr/local/Cellar/cbc/2.10.5"
    diff --git a/previews/PR3545/developers/extensions/index.html b/previews/PR3545/developers/extensions/index.html new file mode 100644 index 00000000000..3050e0bb036 --- /dev/null +++ b/previews/PR3545/developers/extensions/index.html @@ -0,0 +1,304 @@ + +Extensions · JuMP

    Extensions

    JuMP provides a variety of ways to extend the basic modeling functionality.

    Tip

    This documentation in this section is still a work-in-progress. The best place to look for ideas and help when writing a new JuMP extension are existing JuMP extensions. Examples include:

    Compatibility

    When writing JuMP extensions, you should carefully consider the compatibility guarantees that JuMP makes. In particular:

    • All functions, structs, and constants which do not begin with an underscore (_) are public. These are always safe to use, and they should all have corresponding documentation.
    • All identifiers beginning with an underscore (_) are private. These are not safe to use, because they may break in any JuMP release, including patch releases.
    • Unless explicitly mentioned in the documentation, all fields of a struct are private. These are not safe to use, because they may break in any JuMP release, including patch releases. An example of a field which is safe to use is the model.ext extension dictionary, which is documented in The extension dictionary.

    In general, we strongly encourage you to use only the public API of JuMP. If you are missing a feature, please open a GitHub issue.

    However, if you do use the private API (for example, because your feature request has not been implemented yet), then you must carefully restrict the versions of JuMP that your package is compatible with in the Project.toml file. The easiest way to do this is via the hyphen specifiers. For example, if your package supports all JuMP versions between v1.0.0 and v1.1.1, do:

    JuMP = "1.0.0 - 1.1.1"

    Then, whenever JuMP releases a new version, you should check if your package is still compatible and update the bound accordingly.

    Define a new set

    To define a new set for JuMP, subtype MOI.AbstractScalarSet or MOI.AbstractVectorSet and implement Base.copy for the set.

    julia> struct NewMOIVectorSet <: MOI.AbstractVectorSet
    +           dimension::Int
    +       end
    +
    +julia> Base.copy(x::NewMOIVectorSet) = x
    +
    +julia> model = Model();
    +
    +julia> @variable(model, x[1:2]);
    +
    +julia> @constraint(model, x in NewMOIVectorSet(2))
    +[x[1], x[2]] ∈ NewMOIVectorSet(2)

    However, for vector-sets, this requires the user to specify the dimension argument to their set, even though we could infer it from the length of x!

    You can make a more user-friendly set by subtyping AbstractVectorSet and implementing moi_set.

    julia> struct NewVectorSet <: JuMP.AbstractVectorSet end
    +
    +julia> JuMP.moi_set(::NewVectorSet, dim::Int) = NewMOIVectorSet(dim)
    +
    +julia> @constraint(model, x in NewVectorSet())
    +[x[1], x[2]] ∈ NewMOIVectorSet(2)

    Extend @variable

    Just as Bin and Int create binary and integer variables, you can extend the @variable macro to create new types of variables. Here is an explanation by example, where we create a AddTwice type, that creates a tuple of two JuMP variables instead of a single variable.

    First, create a new struct. This can be anything. Our struct holds a VariableInfo object that stores bound information, and whether the variable is binary or integer.

    julia> struct AddTwice
    +           info::JuMP.VariableInfo
    +       end

    Second, implement build_variable, which takes ::Type{AddTwice} as an argument, and returns an instance of AddTwice. Note that you can also receive keyword arguments.

    julia> function JuMP.build_variable(
    +           _err::Function,
    +           info::JuMP.VariableInfo,
    +           ::Type{AddTwice};
    +           kwargs...
    +       )
    +           println("Can also use $kwargs here.")
    +           return AddTwice(info)
    +       end

    Third, implement add_variable, which takes the instance of AddTwice from the previous step, and returns something. Typically, you will want to call add_variable here. For example, our AddTwice call is going to add two JuMP variables.

    julia> function JuMP.add_variable(
    +           model::JuMP.Model,
    +           duplicate::AddTwice,
    +           name::String,
    +       )
    +           a = JuMP.add_variable(
    +               model,
    +               JuMP.ScalarVariable(duplicate.info),
    +               "$(name)_a",
    +            )
    +           b = JuMP.add_variable(
    +               model,
    +               JuMP.ScalarVariable(duplicate.info),
    +               "$(name)_b",
    +            )
    +           return (a, b)
    +       end

    Now AddTwice can be passed to @variable similar to Bin or Int, or through the variable_type keyword. However, now it adds two variables instead of one.

    julia> model = Model();
    +
    +julia> @variable(model, x[i=1:2], variable_type = AddTwice, kw = i)
    +Can also use Base.Pairs(:kw => 1) here.
    +Can also use Base.Pairs(:kw => 2) here.
    +2-element Vector{Tuple{VariableRef, VariableRef}}:
    + (x[1]_a, x[1]_b)
    + (x[2]_a, x[2]_b)
    +
    +julia> num_variables(model)
    +4
    +
    +julia> first(x[1])
    +x[1]_a
    +
    +julia> last(x[2])
    +x[2]_b

    Extend @constraint

    The @constraint macro has three steps that can be intercepted and extended: parse time, build time, and add time.

    Parse

    To extend the @constraint macro at parse time, implement one of the following methods:

    Warning

    Extending the constraint macro at parse time is an advanced operation and has the potential to interfere with existing JuMP syntax. Please discuss with the developer chatroom before publishing any code that implements these methods.

    parse_constraint_head should be implemented to intercept an expression based on the .head field of Base.Expr. For example:

    julia> using JuMP
    +
    +julia> const MutableArithmetics = JuMP._MA;
    +
    +julia> model = Model(); @variable(model, x);
    +
    +julia> function JuMP.parse_constraint_head(
    +           _error::Function,
    +           ::Val{:≔},
    +           lhs,
    +           rhs,
    +       )
    +           println("Rewriting ≔ as ==")
    +           new_lhs, parse_code = MutableArithmetics.rewrite(lhs)
    +           build_code = :(
    +               build_constraint($(_error), $(new_lhs), MOI.EqualTo($(rhs)))
    +           )
    +           return false, parse_code, build_code
    +       end
    +
    +julia> @constraint(model, x + x ≔ 1.0)
    +Rewriting ≔ as ==
    +2 x = 1

    parse_constraint_call should be implemented to intercept an expression of the form Expr(:call, op, args...). For example:

    julia> using JuMP
    +
    +julia> const MutableArithmetics = JuMP._MA;
    +
    +julia> model = Model(); @variable(model, x);
    +
    +julia> function JuMP.parse_constraint_call(
    +           _error::Function,
    +           is_vectorized::Bool,
    +           ::Val{:my_equal_to},
    +           lhs,
    +           rhs,
    +       )
    +           println("Rewriting my_equal_to to ==")
    +           new_lhs, parse_code = MutableArithmetics.rewrite(lhs)
    +           build_code = if is_vectorized
    +               :(build_constraint($(_error), $(new_lhs), MOI.EqualTo($(rhs)))
    +           )
    +           else
    +               :(build_constraint.($(_error), $(new_lhs), MOI.EqualTo($(rhs))))
    +           end
    +           return parse_code, build_code
    +       end
    +
    +julia> @constraint(model, my_equal_to(x + x, 1.0))
    +Rewriting my_equal_to to ==
    +2 x = 1
    Tip

    When parsing a constraint you can recurse into sub-constraint (for example, the {expr} in z => {x <= 1}) by calling parse_constraint.

    Build

    To extend the @constraint macro at build time, implement a new build_constraint method.

    This may mean implementing a method for a specific function or set created at parse time, or it may mean implementing a method which handles additional positional arguments.

    build_constraint must return an AbstractConstraint, which can either be an AbstractConstraint already supported by JuMP, for example, ScalarConstraint or VectorConstraint, or a custom AbstractConstraint with a corresponding add_constraint method (see Add).

    Tip

    The easiest way to extend @constraint is via an additional positional argument to build_constraint.

    Here is an example of adding extra arguments to build_constraint:

    julia> model = Model(); @variable(model, x);
    +
    +julia> struct MyConstrType end
    +
    +julia> function JuMP.build_constraint(
    +            _error::Function,
    +            f::JuMP.GenericAffExpr,
    +            set::MOI.EqualTo,
    +            extra::Type{MyConstrType};
    +            d = 0,
    +       )
    +            new_set = MOI.LessThan(set.value + d)
    +            return JuMP.build_constraint(_error, f, new_set)
    +       end
    +
    +julia> @constraint(model, my_con, x == 0, MyConstrType, d = 2)
    +my_con : x ≤ 2
    Note

    Only a single positional argument can be given to a particular constraint. Extensions that seek to pass multiple arguments (for example, Foo and Bar) should combine them into one argument type (for example, FooBar).

    Add

    build_constraint returns an AbstractConstraint object. To extend @constraint at add time, define a subtype of AbstractConstraint, implement build_constraint to return an instance of the new type, and then implement add_constraint.

    Here is an example:

    julia> model = Model(); @variable(model, x);
    +
    +julia> struct MyTag
    +           name::String
    +       end
    +
    +julia> struct MyConstraint{S} <: AbstractConstraint
    +           name::String
    +           f::AffExpr
    +           s::S
    +       end
    +
    +julia> function JuMP.build_constraint(
    +            _error::Function,
    +            f::AffExpr,
    +            set::MOI.AbstractScalarSet,
    +            extra::MyTag,
    +       )
    +            return MyConstraint(extra.name, f, set)
    +       end
    +
    +julia> function JuMP.add_constraint(
    +            model::Model,
    +            con::MyConstraint,
    +            name::String,
    +       )
    +            return add_constraint(
    +                model,
    +                ScalarConstraint(con.f, con.s),
    +                "$(con.name)[$(name)]",
    +            )
    +       end
    +
    +julia> @constraint(model, my_con, 2x <= 1, MyTag("my_prefix"))
    +my_prefix[my_con] : 2 x - 1 ≤ 0

    The extension dictionary

    Every JuMP model has a field .ext::Dict{Symbol,Any} that can be used by extensions. This is useful if your extensions to @variable and @constraint need to store information between calls.

    The most common way to initialize a model with information in the .ext dictionary is to provide a new constructor:

    julia> function MyModel()
    +           model = Model()
    +           model.ext[:MyModel] = 1
    +           return model
    +       end
    +MyModel (generic function with 1 method)
    +
    +julia> model = MyModel()
    +A JuMP Model
    +Feasibility problem with:
    +Variables: 0
    +Model mode: AUTOMATIC
    +CachingOptimizer state: NO_OPTIMIZER
    +Solver name: No optimizer attached.
    +
    +julia> model.ext
    +Dict{Symbol, Any} with 1 entry:
    +  :MyModel => 1

    If you define extension data, implement copy_extension_data to support copy_model.

    Defining new JuMP models

    If extending individual calls to @variable and @constraint is not sufficient, it is possible to implement a new model via a subtype of AbstractModel. You can also define new AbstractVariableRefs to create different types of JuMP variables.

    Warning

    Extending JuMP in this manner is an advanced operation. We strongly encourage you to consider how you can use the methods mentioned in the previous sections to achieve your aims instead of defining new model and variable types. Consult the developer chatroom before starting work on this.

    If you define new types, you will need to implement a considerable number of methods, and doing so will require a detailed understanding of the JuMP internals. Therefore, the list of methods to implement is currently undocumented.

    The easiest way to extend JuMP by defining a new model type is to follow an existing example. A simple example to follow is the JuMPExtension module in the JuMP test suite. The best example of an external JuMP extension that implements an AbstractModel is InfiniteOpt.jl.

    Testing JuMP extensions

    The JuMP test suite contains a large number of tests for JuMP extensions. You can run these tests by copying the MIT-licensed Kokako.jl file in the JuMP tests into your /test folder, and then adding this snippet to your /test/runtests.jl file:

    using MyJuMPExtension
    +import JuMP
    +include("Kokako.jl")
    +const MODULES_TO_TEST = Kokako.include_modules_to_test(JuMP)
    +Kokako.run_tests(
    +    MODULES_TO_TEST,
    +    MyJuMPExtension.MyModel,
    +    MyJuMPExtension.MyVariableRef;
    +    test_prefix = "test_extension_",
    +)

    Set an optimize! hook

    Some extensions require modification to the problem after the user has finished constructing the problem, but before optimize! is called. For these situations, JuMP provides set_optimize_hook, which lets you intercept the optimize! call.

    Here's a simple example of adding an optimize hook that extends optimize! to take a keyword argument silent:

    julia> using JuMP, HiGHS
    +
    +julia> model = Model(HiGHS.Optimizer);
    +
    +julia> @variable(model, x >= 1.5, Int);
    +
    +julia> @objective(model, Min, x);
    +
    +julia> function silent_hook(model; silent::Bool)
    +           if silent
    +               set_silent(model)
    +           else
    +               unset_silent(model)
    +           end
    +           ## Make sure you set ignore_optimize_hook = true, or we'll
    +           ## recursively enter the optimize hook!
    +           return optimize!(model; ignore_optimize_hook = true)
    +       end
    +silent_hook (generic function with 1 method)
    +
    +julia> set_optimize_hook(model, silent_hook)
    +silent_hook (generic function with 1 method)
    +
    +julia> optimize!(model; silent = true)
    +
    +julia> optimize!(model; silent = false)
    +Solution has               num          max          sum
    +Col     infeasibilities      0            0            0
    +Integer infeasibilities      0            0            0
    +Row     infeasibilities      0            0            0
    +Row     residuals            0            0            0
    +Presolving model
    +0 rows, 0 cols, 0 nonzeros
    +0 rows, 0 cols, 0 nonzeros
    +Presolve: Optimal
    +
    +Solving report
    +  Status            Optimal
    +  Primal bound      2
    +  Dual bound        2
    +  Gap               0% (tolerance: 0.01%)
    +  Solution status   feasible
    +                    2 (objective)
    +                    0 (bound viol.)
    +                    0 (int. viol.)
    +                    0 (row viol.)
    +  Timing            0.00 (total)
    +                    0.00 (presolve)
    +                    0.00 (postsolve)
    +  Nodes             0
    +  LP iterations     0 (total)
    +                    0 (strong br.)
    +                    0 (separation)
    +                    0 (heuristics)

    Creating new container types

    JuMP macros (for example, @variable) accept a container keyword argument to force the type of container that is chosen. By default, JuMP supports container = Array, container = DenseAxisArray, container = SparseAxisArray and container = Auto. You can extend support to user-defined types by implementing Containers.container.

    For example, here is a container that reverses the order of the indices:

    julia> struct Foo end
    +
    +julia> function Containers.container(f::Function, indices, ::Type{Foo})
    +           return reverse([f(i...) for i in indices])
    +       end
    +
    +julia> model = Model();
    +
    +julia> @variable(model, x[1:3], container = Foo)
    +3-element Vector{VariableRef}:
    + x[3]
    + x[2]
    + x[1]
    +
    +julia> x[1]
    +x[3]
    +
    +julia> @variable(model, y[1:3, 1:2], container = Foo)
    +3×2 Matrix{VariableRef}:
    + y[3,2]  y[3,1]
    + y[2,2]  y[2,1]
    + y[1,2]  y[1,1]
    +
    +julia> y[1, 1]
    +y[3,2]
    +
    +julia> @variable(model, z[i=1:3; isodd(i)], container = Foo)
    +2-element Vector{VariableRef}:
    + z[3]
    + z[1]
    +
    +julia> z[2]
    +z[1]
    Warning

    If you are a general user, you should not need to create a new container type. Instead, consider following User-defined containers and create a new container using standard Julia syntax. For example:

    julia> model = Model();
    +
    +julia> @variable(model, x[1:3])
    +3-element Vector{VariableRef}:
    + x[1]
    + x[2]
    + x[3]
    +
    +julia> y = reverse(x)
    +3-element Vector{VariableRef}:
    + x[3]
    + x[2]
    + x[1]

    Performance tips for extensions

    The function-in-set design of MathOptInterface causes type stability issues in Julia if you try to iterate over all of the constraints in a model. The easiest way to fix this is to use a function barrier.

    For example, instead of:

    function all_names_slow(model)
    +    names = Set{String}()
    +    for ci in all_constraints(model)
    +        push!(names, name(ci))
    +    end
    +    return names
    +end

    use:

    function _function_barrier(names, model, ::Type{F}, ::Type{S}) where {F,S}
    +    for ci in all_constraints(model, F, S)
    +        push!(names, name(ci))
    +    end
    +    return
    +end
    +
    +function all_names_fast(model)
    +    names = Set{String}()
    +    for (F, S) in list_of_constraint_types(model)
    +        _function_barrier(names, model, F, S)
    +    end
    +    return names
    +end
    Note

    It is important to explicitly type the F and S arguments. If you leave them untyped, for example, function _function_barrier(names, model, F, S), Julia will not specialize the function calls and performance will not be improved.

    diff --git a/previews/PR3545/developers/roadmap/index.html b/previews/PR3545/developers/roadmap/index.html new file mode 100644 index 00000000000..c14d8714726 --- /dev/null +++ b/previews/PR3545/developers/roadmap/index.html @@ -0,0 +1,6 @@ + +Roadmap · JuMP

    Development roadmap

    The JuMP developers have compiled this roadmap document to share their plans and goals with the JuMP community. Contributions to roadmap issues are especially invited.

    Most of these issues will require changes to both JuMP and MathOptInterface, and are non-trivial in their implementation. They are in no particular order, but represent broad themes that we see as areas in which JuMP could be improved.

    diff --git a/previews/PR3545/developers/style/index.html b/previews/PR3545/developers/style/index.html new file mode 100644 index 00000000000..62c17c29ce2 --- /dev/null +++ b/previews/PR3545/developers/style/index.html @@ -0,0 +1,185 @@ + +Style Guide · JuMP

    Style guide and design principles

    Style guide

    This section describes the coding style rules that apply to JuMP code and that we recommend for JuMP models and surrounding Julia code. The motivations for a style guide include:

    • conveying best practices for writing readable and maintainable code
    • reducing the amount of time spent on bike-shedding by establishing basic naming and formatting conventions
    • lowering the barrier for new contributors by codifying the existing practices (for example, you can be more confident your code will pass review if you follow the style guide)

    In some cases, the JuMP style guide diverges from the Julia style guide. All such cases will be explicitly noted and justified.

    The JuMP style guide adopts many recommendations from the Google style guides.

    Info

    The style guide is always a work in progress, and not all JuMP code follows the rules. When modifying JuMP, please fix the style violations of the surrounding code (that is, leave the code tidier than when you started). If large changes are needed, consider separating them into another PR.

    JuliaFormatter

    JuMP uses JuliaFormatter.jl as an auto-formatting tool.

    We use the options contained in .JuliaFormatter.toml.

    To format code, cd to the JuMP directory, then run:

    ] add JuliaFormatter@1
    +using JuliaFormatter
    +format("docs")
    +format("src")
    +format("test")
    Info

    A continuous integration check verifies that all PRs made to JuMP have passed the formatter.

    The following sections outline extra style guide points that are not fixed automatically by JuliaFormatter.

    Abstract types and composition

    Specifying types for method arguments is mostly optional in Julia. The benefit of abstract method arguments is that it enables functions and types from one package to be used with functions and types from another package via multiple dispatch.

    However, abstractly typed methods have two main drawbacks:

    1. It's possible to find out that you are working with unexpected types deep in the call chain, potentially leading to hard-to-diagnose MethodErrors.
    2. Untyped function arguments can lead to correctness problems if the user's choice of input type does not satisfy the assumptions made by the author of the function.

    As a motivating example, consider the following function:

    julia> function my_sum(x)
    +           y = 0.0
    +           for i in 1:length(x)
    +               y += x[i]
    +           end
    +           return y
    +       end
    +my_sum (generic function with 1 method)

    This function contains a number of implicit assumptions about the type of x:

    • x supports 1-based getindex and implements length
    • The element type of x supports addition with 0.0, and then with the result of x + 0.0.
    Info

    As a motivating example for the second point, VariableRef plus Float64 produces an AffExpr. Do not assume that +(::A, ::B) produces an instance of the type A or B.

    my_sum works as expected if the user passes in Vector{Float64}:

    julia> my_sum([1.0, 2.0, 3.0])
    +6.0

    but it doesn't respect input types, for example returning a Float64 if the user passes Vector{Int}:

    julia> my_sum([1, 2, 3])
    +6.0

    but it throws a MethodError if the user passes String:

    julia> my_sum("abc")
    +ERROR: MethodError: no method matching +(::Float64, ::Char)
    +[...]

    This particular MethodError is hard to debug, particularly for new users, because it mentions +, Float64, and Char, none of which were called or passed by the user.

    Dealing with MethodErrors

    This section diverges from the Julia style guide, as well as other common guides like SciML. The following suggestions are intended to provide a friendlier experience for novice Julia programmers, at the cost of limiting the power and flexibility of advanced Julia programmers.

    Code should follow the MethodError principle:

    The MethodError principle

    A user should see a MethodError only for methods that they called directly.

    Bad:

    _internal_function(x::Integer) = x + 1
    +# The user sees a MethodError for _internal_function when calling
    +# public_function("a string"). This is not very helpful.
    +public_function(x) = _internal_function(x)

    Good:

    _internal_function(x::Integer) = x + 1
    +# The user sees a MethodError for public_function when calling
    +# public_function("a string"). This is easy to understand.
    +public_function(x::Integer) = _internal_function(x)

    If it is hard to provide an error message at the top of the call chain, then the following pattern is also ok:

    _internal_function(x::Integer) = x + 1
    +function _internal_function(x)
    +    error(
    +        "Internal error. This probably means that you called " *
    +        "`public_function()`s with the wrong type.",
    +    )
    +end
    +public_function(x) = _internal_function(x)

    Dealing with correctness

    Dealing with correctness is harder, because Julia has no way of formally specifying interfaces that abstract types must implement. Instead, here are two options that you can use when writing and interacting with generic code:

    Option 1: use concrete types and let users extend new methods.

    In this option, explicitly restrict input arguments to concrete types that are tested and have been validated for correctness. For example:

    julia> function my_sum_option_1(x::Vector{Float64})
    +           y = 0.0
    +           for i in 1:length(x)
    +               y += x[i]
    +           end
    +           return y
    +       end
    +my_sum_option_1 (generic function with 1 method)
    +
    +julia> my_sum_option_1([1.0, 2.0, 3.0])
    +6.0

    Using concrete types satisfies the MethodError principle:

    julia> my_sum_option_1("abc")
    +ERROR: MethodError: no method matching my_sum_option_1(::String)

    and it allows other types to be supported in future by defining new methods:

    julia> function my_sum_option_1(x::Array{T,N}) where {T<:Number,N}
    +           y = zero(T)
    +           for i in eachindex(x)
    +               y += x[i]
    +           end
    +           return y
    +       end
    +my_sum_option_1 (generic function with 2 methods)

    Importantly, these methods do not have to be defined in the original package.

    Info

    Some usage of abstract types is okay. For example, in my_sum_option_1, we allowed the element type, T, to be a subtype of Number. This is fairly safe, but it still has an implicit assumption that T supports zero(T) and +(::T, ::T).

    Option 2: program defensively, and validate all assumptions.

    An alternative is to program defensively, and to rigorously document and validate all assumptions that the code makes. In particular:

    1. All assumptions on abstract types that aren't guaranteed by the definition of the abstract type (for example, optional methods without a fallback) should be documented.
    2. If practical, the assumptions should be checked in code, and informative error messages should be provided to the user if the assumptions are not met. In general, these checks may be expensive, so you should prefer to do this once, at the highest level of the call-chain.
    3. Tests should cover for a range of corner cases and argument types.

    For example:

    """
    +    test_my_sum_defensive_assumptions(x::AbstractArray{T}) where {T}
    +
    +Test the assumptions made by `my_sum_defensive`.
    +"""
    +function test_my_sum_defensive_assumptions(x::AbstractArray{T}) where {T}
    +    try
    +        # Some types may not define zero.
    +        @assert zero(T) isa T
    +        # Check iteration supported
    +        @assert iterate(x) isa Union{Nothing,Tuple{T,Int}}
    +        # Check that + is defined
    +        @assert +(zero(T), zero(T)) isa Any
    +    catch err
    +        error(
    +            "Unable to call my_sum_defensive(::$(typeof(x))) because " *
    +            "it failed an internal assumption",
    +        )
    +    end
    +    return
    +end
    +
    +"""
    +    my_sum_defensive(x::AbstractArray{T}) where {T}
    +
    +Return the sum of the elements in the abstract array `x`.
    +
    +## Assumptions
    +
    +This function makes the following assumptions:
    +
    + * That `zero(T)` is defined
    + * That `x` supports the iteration interface
    + * That  `+(::T, ::T)` is defined
    +"""
    +function my_sum_defensive(x::AbstractArray{T}) where {T}
    +    test_my_sum_defensive_assumptions(x)
    +    y = zero(T)
    +    for xi in x
    +        y += xi
    +    end
    +    return y
    +end
    +
    +# output
    +
    +my_sum_defensive

    This function works on Vector{Float64}:

    julia> my_sum_defensive([1.0, 2.0, 3.0])
    +6.0

    as well as Matrix{Rational{Int}}:

    julia> my_sum_defensive([(1//2) + (4//3)im; (6//5) + (7//11)im])
    +17//10 + 65//33*im

    and it throws an error when the assumptions aren't met:

    julia> my_sum_defensive(['a', 'b', 'c'])
    +ERROR: Unable to call my_sum_defensive(::Vector{Char}) because it failed an internal assumption
    +[...]

    As an alternative, you may choose not to call test_my_sum_defensive_assumptions within my_sum_defensive, and instead ask users of my_sum_defensive to call it in their tests.

    Juxtaposed multiplication

    Only use juxtaposed multiplication when the right-hand side is a symbol.

    Good:

    2x  # Acceptable if there are space constraints.
    +2 * x  # This is preferred if space is not an issue.
    +2 * (x + 1)

    Bad:

    2(x + 1)

    Empty vectors

    For a type T, T[] and Vector{T}() are equivalent ways to create an empty vector with element type T. Prefer T[] because it is more concise.

    Comments

    For non-native speakers and for general clarity, comments in code must be proper English sentences with appropriate punctuation.

    Good:

    # This is a comment demonstrating a good comment.

    Bad:

    # a bad comment

    JuMP macro syntax

    For consistency, always use parentheses.

    Good:

    @variable(model, x >= 0)

    Bad:

    @variable model x >= 0

    For consistency, always use constant * variable as opposed to variable * constant. This makes it easier to read models in ambiguous cases like a * x.

    Good:

    a = 4
    +@constraint(model, 3 * x <= 1)
    +@constraint(model, a * x <= 1)

    Bad:

    a = 4
    +@constraint(model, x * 3 <= 1)
    +@constraint(model, x * a <= 1)

    In order to reduce boilerplate code, prefer the plural form of macros over lots of repeated calls to singular forms.

    Good:

    @variables(model, begin
    +    x >= 0
    +    y >= 1
    +    z <= 2
    +end)

    Bad:

    @variable(model, x >= 0)
    +@variable(model, y >= 1)
    +@variable(model, z <= 2)

    An exception is made for calls with many keyword arguments, since these need to be enclosed in parentheses in order to parse properly.

    Acceptable:

    @variable(model, x >= 0, start = 0.0, base_name = "my_x")
    +@variable(model, y >= 1, start = 2.0)
    +@variable(model, z <= 2, start = -1.0)

    Also acceptable:

    @variables(model, begin
    +    x >= 0, (start = 0.0, base_name = "my_x")
    +    y >= 1, (start = 2.0)
    +    z <= 2, (start = -1.0)
    +end)

    While we always use in for for-loops, it is acceptable to use = in the container declarations of JuMP macros.

    Okay:

    @variable(model, x[i=1:3])

    Also okay:

    @variable(model, x[i in 1:3])

    Naming

    module SomeModule end
    +function some_function end
    +const SOME_CONSTANT = ...
    +struct SomeStruct
    +  some_field::SomeType
    +end
    +@enum SomeEnum ENUM_VALUE_A ENUM_VALUE_B
    +some_local_variable = ...
    +some_file.jl # Except for ModuleName.jl.

    Exported and non-exported names

    Begin private module level functions and constants with an underscore. All other objects in the scope of a module should be exported. (See JuMP.jl for an example of how to do this.)

    Names beginning with an underscore should only be used for distinguishing between exported (public) and non-exported (private) objects. Therefore, never begin the name of a local variable with an underscore.

    module MyModule
    +
    +export public_function, PUBLIC_CONSTANT
    +
    +function _private_function()
    +    local_variable = 1
    +    return
    +end
    +
    +function public_function end
    +
    +const _PRIVATE_CONSTANT = 3.14159
    +const PUBLIC_CONSTANT = 1.41421
    +
    +end

    Use of underscores within names

    The Julia style guide recommends avoiding underscores "when readable," for example, haskey, isequal, remotecall, and remotecall_fetch. This convention creates the potential for unnecessary bikeshedding and also forces the user to recall the presence/absence of an underscore, for example, "was that argument named basename or base_name?". For consistency, always use underscores in variable names and function names to separate words.

    Use of !

    Julia has a convention of appending ! to a function name if the function modifies its arguments. We recommend to:

    • Omit ! when the name itself makes it clear that modification is taking place, for example, add_constraint and set_name. We depart from the Julia style guide because ! does not provide a reader with any additional information in this case, and adherence to this convention is not uniform even in base Julia itself (consider Base.println and Base.finalize).
    • Use ! in all other cases. In particular it can be used to distinguish between modifying and non-modifying variants of the same function like scale and scale!.

    Note that ! is not a self-documenting feature because it is still ambiguous which arguments are modified when multiple arguments are present. Be sure to document which arguments are modified in the method's docstring.

    See also the Julia style guide recommendations for ordering of function arguments.

    Abbreviations

    Abbreviate names to make the code more readable, not to save typing. Don't arbitrarily delete letters from a word to abbreviate it (for example, indx). Use abbreviations consistently within a body of code (for example, do not mix con and constr, idx and indx).

    Common abbreviations:

    • num for number
    • con for constraint

    No one-letter variable names

    Where possible, avoid one-letter variable names.

    Use model = Model() instead of m = Model()

    Exceptions are made for indices in loops.

    @enum vs. Symbol

    The @enum macro lets you define types with a finite number of values that are explicitly enumerated (like enum in C/C++). Symbols are lightweight strings that are used to represent identifiers in Julia (for example, :x).

    @enum provides type safety and can have docstrings attached to explain the possible values. Use @enums when applicable, for example, for reporting statuses. Use strings to provide long-form additional information like error messages.

    Use of Symbol should typically be reserved for identifiers, for example, for lookup in the JuMP model (model[:my_variable]).

    using vs. import

    using ModuleName brings all symbols exported by the module ModuleName into scope, while import ModuleName brings only the module itself into scope. (See the Julia manual) for examples and more details.

    For the same reason that from <module> import * is not recommended in python (PEP 8), avoid using ModuleName except in throw-away scripts or at the REPL. The using statement makes it harder to track where symbols come from and exposes the code to ambiguities when two modules export the same symbol.

    Prefer using ModuleName: x, p to import ModuleName.x, ModuleName.p and import MyModule: x, p because the import versions allow method extension without qualifying with the module name.

    Similarly, using ModuleName: ModuleName is an acceptable substitute for import ModuleName, because it does not bring all symbols exported by ModuleName into scope. However, we prefer import ModuleName for consistency.

    Documentation

    This section describes the writing style that should be used when writing documentation for JuMP (and supporting packages).

    We can recommend the documentation style guides by Divio, Google, and Write the Docs as general reading for those writing documentation. This guide delegates a thorough handling of the topic to those guides and instead elaborates on the points more specific to Julia and documentation that use Documenter.

    • Be concise
    • Use lists instead of long sentences
    • Use numbered lists when describing a sequence, for example, (1) do X, (2) then Y
    • Use bullet points when the items are not ordered
    • Example code should be covered by doctests
    • When a word is a Julia symbol and not an English word, enclose it with backticks. In addition, if it has a docstring in this doc add a link using @ref. If it is a plural, add the "s" after the closing backtick. For example,
      [`VariableRef`](@ref)s
    • Use @meta blocks for TODOs and other comments that shouldn't be visible to readers. For example,
      ```@meta
      +# TODO: Mention also X, Y, and Z.
      +```

    Docstrings

    • Every exported object needs a docstring
    • All examples in docstrings should be jldoctests
    • Always use complete English sentences with proper punctuation
    • Do not terminate lists with punctuation (for example, as in this doc)

    Here is an example:

    """
    +    signature(args; kwargs...)
    +
    +Short sentence describing the function.
    +
    +Optional: add a slightly longer paragraph describing the function.
    +
    +## Notes
    +
    + - List any notes that the user should be aware of
    +
    +## Examples
    +
    +```jldoctest
    +julia> 1 + 1
    +2
    +```
    +"""

    Testing

    Use a module to encapsulate tests, and structure all tests as functions. This avoids leaking local variables between tests.

    Here is a basic skeleton:

    module TestPkg
    +
    +using Test
    +
    +function runtests()
    +    for name in names(@__MODULE__; all = true)
    +        if startswith("$(name)", "test_")
    +            @testset "$(name)" begin
    +                getfield(@__MODULE__, name)()
    +            end
    +        end
    +    end
    +    return
    +end
    +
    +_helper_function() = 2
    +
    +function test_addition()
    +    @test 1 + 1 == _helper_function()
    +    return
    +end
    +
    +end # module TestPkg
    +
    +TestPkg.runtests()

    Break the tests into multiple files, with one module per file, so that subsets of the codebase can be tested by calling include with the relevant file.

    diff --git a/previews/PR3545/extensions/DimensionalData/index.html b/previews/PR3545/extensions/DimensionalData/index.html new file mode 100644 index 00000000000..27183ac9177 --- /dev/null +++ b/previews/PR3545/extensions/DimensionalData/index.html @@ -0,0 +1,42 @@ + +rafaqz/DimensionalData.jl · JuMP

    DimensionalData.jl

    DimensionalData.jl provides tools and abstractions for working with rectangular arrays that have named dimensions.

    Compat

    Using the DimensionalData extension with JuMP requires Julia v1.9 or later.

    The DimensionalData extension in JuMP lets you construct a DimensionalData.DimArray as an alternative to Containers.DenseAxisArray in the JuMP macros.

    License

    DimensionalData.jl is licensed under the MIT license.

    Installation

    Install DimensionalData using Pkg.add:

    import Pkg
    +Pkg.add("DimensionalData")

    Use with JuMP

    Activate the extension by loading both JuMP and DimensionalData:

    julia> using JuMP, DimensionalData

    Then, pass container = DimensionalData.DimArray in the @variable, @constraint, or @expression macros:

    julia> model = Model();
    +
    +julia> @variable(
    +           model,
    +           x[i = 2:4, j = ["a", "b"]] >= i,
    +           container = DimensionalData.DimArray,
    +       )
    +3×2 DimArray{VariableRef,2} with dimensions:
    +  Dim{:i} Sampled{Int64} 2:4 ForwardOrdered Regular Points,
    +  Dim{:j} Categorical{String} String["a", "b"] ForwardOrdered
    +    "a"     "b"
    + 2  x[2,a]  x[2,b]
    + 3  x[3,a]  x[3,b]
    + 4  x[4,a]  x[4,b]

    Here x is a DimensionalData.Dim array object, so indexing uses the DimensionalData syntax:

    julia> x[At(2), At("a")]
    +x[2,a]
    +
    +julia> x[2, 2]
    +x[3,b]

    You can use container = DimensionalData.DimArray in the @expression macro:

    julia> @expression(
    +           model,
    +           expr[j = ["a", "b"]],
    +           sum(x[At(i), At(j)] for i in 2:4),
    +           container = DimensionalData.DimArray,
    +       )
    +2-element DimArray{AffExpr,1} with dimensions:
    +  Dim{:j} Categorical{String} String["a", "b"] ForwardOrdered
    + "a"  x[2,a] + x[3,a] + x[4,a]
    + "b"  x[2,b] + x[3,b] + x[4,b]

    and in @constraint:

    julia> @constraint(
    +           model,
    +           [j = ["a", "b"]],
    +           expr[At(j)] <= 1,
    +           container = DimensionalData.DimArray,
    +       )
    +2-element DimArray{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.LessThan{Float64}}, ScalarShape},1} with dimensions:
    +  Dim{:j} Categorical{String} String["a", "b"] ForwardOrdered
    + "a"  x[2,a] + x[3,a] + x[4,a] ≤ 1
    + "b"  x[2,b] + x[3,b] + x[4,b] ≤ 1

    Documentation

    See the DimensionalData.jl documentation for more details on the syntax and features of DimensionalData.DimArray.

    diff --git a/previews/PR3545/extensions/introduction/index.html b/previews/PR3545/extensions/introduction/index.html new file mode 100644 index 00000000000..2c6409409a1 --- /dev/null +++ b/previews/PR3545/extensions/introduction/index.html @@ -0,0 +1,6 @@ + +Introduction · JuMP

    Introduction

    This section of the documentation contains brief documentation for some popular JuMP extensions. The list of extensions is not exhaustive, but instead is intended to help you discover popular JuMP extensions, and to give you an overview of the types of extensions that are possible to write with JuMP.

    Affiliation

    Packages beginning with jump-dev/ are developed and maintained by the JuMP developers.

    Packages that do not begin with jump-dev/ are developed independently. The developers of these packages requested or consented to the inclusion of their README contents in the JuMP documentation for the benefit of users.

    Adding new extensions

    Written an extension? Add it to this section of the JuMP documentation by making a pull request to the docs/packages.toml file.

    Weak dependencies

    Some extensions listed in this section are implemented using the weak dependency feature added to Julia in v1.9. These extensions are activated if and only if you have JuMP and the other package loaded into your current scope with using or import.

    Compat

    Using a weak dependency requires Julia v1.9 or later.

    diff --git a/previews/PR3545/index.html b/previews/PR3545/index.html new file mode 100644 index 00000000000..71df04bde83 --- /dev/null +++ b/previews/PR3545/index.html @@ -0,0 +1,13 @@ + +Introduction · JuMP
    JuMP logo +JuMP logo

    Introduction

    Welcome to the documentation for JuMP.

    Note

    This documentation is also available in PDF format: JuMP.pdf.

    What is JuMP?

    JuMP is a domain-specific modeling language for mathematical optimization embedded in Julia. It currently supports a number of open-source and commercial solvers for a variety of problem classes, including linear, mixed-integer, second-order conic, semidefinite, and nonlinear programming.

    Tip

    If you aren't sure if you should use JuMP, read Should you use JuMP?.

    Resources for getting started

    There are few ways to get started with JuMP:

    Tip

    Need help? Join the community forum to search for answers to commonly asked questions.

    Before asking a question, make sure to read the post make it easier to help you, which contains a number of tips on how to ask a good question.

    How the documentation is structured

    Having a high-level overview of how this documentation is structured will help you know where to look for certain things.

    • Tutorials contain worked examples of solving problems with JuMP. Start here if you are new to JuMP, or you have a particular problem class you want to model.

    • The Manual contains short code-snippets that explain how to achieve specific tasks in JuMP. Look here if you want to know how to achieve a particular task, such as how to Delete a variable or how to Modify an objective coefficient.

    • The API Reference contains a complete list of the functions you can use in JuMP. Look here if you want to know how to use a particular function.

    • The Background information section contains background reading material to provide context to JuMP. Look here if you want an understanding of what JuMP is and why we created it, rather than how to use it.

    • The Developer docs section contains information for people contributing to JuMP development or writing JuMP extensions. Don't worry about this section if you are using JuMP to formulate and solve problems as a user.

    • The MathOptInterface section is a self-contained copy of the documentation for MathOptInterface. Look here for functions and constants beginning with MOI., as well as for general information on how MathOptInterface works.

    Citing JuMP

    If you find JuMP useful in your work, we kindly request that you cite the following paper (preprint):

    @article{Lubin2023,
    +    author = {Miles Lubin and Oscar Dowson and Joaquim {Dias Garcia} and Joey Huchette and Beno{\^i}t Legat and Juan Pablo Vielma},
    +    title = {{JuMP} 1.0: {R}ecent improvements to a modeling language for mathematical optimization},
    +    journal = {Mathematical Programming Computation},
    +    year = {2023},
    +    doi = {10.1007/s12532-023-00239-3}
    +}

    NumFOCUS

    NumFOCUS logo

    JuMP is a Sponsored Project of NumFOCUS, a 501(c)(3) nonprofit charity in the United States. NumFOCUS provides JuMP with fiscal, legal, and administrative support to help ensure the health and sustainability of the project. Visit numfocus.org for more information.

    You can support JuMP by donating.

    Donations to JuMP are managed by NumFOCUS. For donors in the United States, your gift is tax-deductible to the extent provided by law. As with any donation, you should consult with your tax adviser about your particular tax situation.

    JuMP's largest expense is the annual JuMP-dev workshop. Donations will help us provide travel support for JuMP-dev attendees and take advantage of other opportunities that arise to support JuMP development.

    License

    JuMP is licensed under the MPL-2.0 software license. Consult the license and the Mozilla FAQ for more information. In addition, JuMP is typically used in conjunction with solver packages and extensions which have their own licences. Consult their package repositories for the specific licenses that apply.

    diff --git a/previews/PR3545/installation/index.html b/previews/PR3545/installation/index.html new file mode 100644 index 00000000000..6fb9ae169ad --- /dev/null +++ b/previews/PR3545/installation/index.html @@ -0,0 +1,24 @@ + +Installation Guide · JuMP

    Installation Guide

    This guide explains how to install Julia and JuMP. If you have installation troubles, read the Common installation issues section below.

    Install Julia

    JuMP is a package for Julia. To use JuMP, first download and install Julia.

    Tip

    If you are new to Julia, read our Getting started with Julia tutorial.

    Choosing a version

    You can install the "Current stable release" or the "Long-term support (LTS) release."

    • The "Current stable release" is the latest release of Julia. It has access to newer features, and is likely faster.
    • The "Long-term support release" is an older version of Julia that has continued to receive bug and security fixes. However, it may not have the latest features or performance improvements.

    For most users, you should install the "Current stable release," and whenever Julia releases a new version of the current stable release, you should update your version of Julia. Note that any code you write on one version of the current stable release will continue to work on all subsequent releases.

    For users in restricted software environments (for example, your enterprise IT controls what software you can install), you may be better off installing the long-term support release because you will not have to update Julia as frequently.

    Install JuMP

    From Julia, JuMP is installed using the built-in package manager:

    import Pkg
    +Pkg.add("JuMP")
    Tip

    We recommend you create a Pkg environment for each project you use JuMP for, instead of adding lots of packages to the global environment. The Pkg manager documentation has more information on this topic.

    When we release a new version of JuMP, you can update with:

    import Pkg
    +Pkg.update("JuMP")

    Install a solver

    JuMP depends on solvers to solve optimization problems. Therefore, you will need to install one before you can solve problems with JuMP.

    Install a solver using the Julia package manager, replacing "Clp" by the Julia package name as appropriate.

    import Pkg
    +Pkg.add("Clp")

    Once installed, you can use Clp as a solver with JuMP as follows, using set_attribute to set solver-specific options:

    using JuMP
    +using Clp
    +model = Model(Clp.Optimizer)
    +set_attribute(model, "LogLevel" => 1)
    +set_attribute(model, "PrimalTolerance" => 1e-7)
    Note

    Most packages follow the ModuleName.Optimizer naming convention, but exceptions may exist. See the README of the Julia package's GitHub repository for more details on how to use a particular solver, including any solver-specific options.

    Supported solvers

    Most solvers are not written in Julia, and some require commercial licenses to use, so installation is often more complex.

    • If a solver has Manual in the Installation column, the solver requires a manual installation step, such as downloading and installing a binary, or obtaining a commercial license. Consult the README of the relevant Julia package for more information.
    • If the solver has Manualᴹ in the Installation column, the solver requires an installation of MATLAB.
    • If the Installation column is missing an entry, installing the Julia package will download and install any relevant solver binaries automatically, and you shouldn't need to do anything other than Pkg.add.

    Solvers with a missing entry in the Julia Package column are written in Julia. The link in the Solver column is the corresponding Julia package.

    SolverJulia PackageInstallationLicenseSupports
    Alpine.jlTriad NS(MI)NLP
    Artelys KnitroKNITRO.jlManualComm.(MI)LP, (MI)SOCP, (MI)NLP
    BARONBARON.jlManualComm.(MI)NLP
    BonminAmplNLWriter.jlEPL(MI)NLP
    CbcCbc.jlEPL(MI)LP
    CDCSCDCS.jlManualᴹGPLLP, SOCP, SDP
    CDDCDDLib.jlGPLLP
    Clarabel.jlApacheLP, QP, SOCP, SDP
    ClpClp.jlEPLLP
    COPTCOPT.jlComm.(MI)LP, SOCP, SDP
    COSMO.jlApacheLP, QP, SOCP, SDP
    CouenneAmplNLWriter.jlEPL(MI)NLP
    CPLEXCPLEX.jlManualComm.(MI)LP, (MI)SOCP
    CSDPCSDP.jlEPLLP, SDP
    DAQPDAQP.jlMIT(Mixed-binary) QP
    EAGO.jlMITNLP
    ECOSECOS.jlGPLLP, SOCP
    FICO XpressXpress.jlManualComm.(MI)LP, (MI)SOCP
    GLPKGLPK.jlGPL(MI)LP
    GurobiGurobi.jlManualComm.(MI)LP, (MI)SOCP
    HiGHSHiGHS.jlMIT(MI)LP, QP
    Hypatia.jlMITLP, SOCP, SDP
    IpoptIpopt.jlEPLLP, QP, NLP
    Juniper.jlMIT(MI)SOCP, (MI)NLP
    Loraine.jlMITLP, SDP
    MadNLP.jlMITLP, QP, NLP
    MiniZincMiniZinc.jlManualMPL-2CP-SAT
    MOSEKMosekTools.jlManualComm.(MI)LP, (MI)SOCP, SDP
    NLoptNLopt.jlGPLLP, QP, NLP
    OcteractAmplNLWriter.jlComm.(MI)NLP
    OSQPOSQP.jlApacheLP, QP
    PATHPATHSolver.jlMITMCP
    Pajarito.jlMPL-2(MI)NLP, (MI)SOCP, (MI)SDP
    Pavito.jlMPL-2(MI)NLP
    PenbmiPenopt.jlComm.Bilinear SDP
    PolyJuMP.KKTPolyJuMP.jlMITNLP
    PolyJuMP.QCQPPolyJuMP.jlMITNLP
    ProxSDP.jlMITLP, SOCP, SDP
    RAPOSaAmplNLWriter.jlManualRAPOSa(MI)NLP
    SCIPSCIP.jlApache(MI)LP, (MI)NLP
    SCSSCS.jlMITLP, QP, SOCP, SDP
    SDPASDPA.jl, SDPAFamily.jlGPLLP, SDP
    SDPNALSDPNAL.jlManualᴹCC BY-SALP, SDP
    SDPT3SDPT3.jlManualᴹGPLLP, SOCP, SDP
    SeDuMiSeDuMi.jlManualᴹGPLLP, SOCP, SDP
    StatusSwitchingQP.jlMITLP, QP
    Tulip.jlMPL-2LP

    Where:

    • LP = Linear programming
    • QP = Quadratic programming
    • SOCP = Second-order conic programming (including problems with convex quadratic constraints or objective)
    • MCP = Mixed-complementarity programming
    • NLP = Nonlinear programming
    • SDP = Semidefinite programming
    • (MI)XXX = Mixed-integer equivalent of problem type XXX
    • CP-SAT = Constraint programming and Boolean satisfiability
    Note

    Developed a solver or solver wrapper? This table is open for new contributions. Edit the installation.md file, and use the checklist Adding a new solver to the documentation when opening the pull request.

    Note

    Developing a solver or solver wrapper? See Models and the MathOptInterface docs for more details on how JuMP interacts with solvers. Please get in touch via the Developer Chatroom with any questions about connecting new solvers with JuMP.

    AMPL-based solvers

    Use AmplNLWriter to access solvers that support the NL format.

    Some solvers, such as Bonmin and Couenne can be installed via the Julia package manager. Others need to be manually installed.

    Consult the AMPL documentation for a complete list of supported solvers.

    GAMS-based solvers

    Use GAMS.jl to access solvers available through GAMS. Such solvers include: AlphaECP, Antigone, BARON, CONOPT, Couenne, LocalSolver, PATHNLP, SHOT, SNOPT, SoPlex. See a complete list here.

    Note

    GAMS.jl requires an installation of the commercial software GAMS for which a free community license exists.

    NEOS-based solvers

    Use NEOSServer.jl to access solvers available through the NEOS Server.

    Common installation issues

    Tip

    When in doubt, run import Pkg; Pkg.update() to see if updating your packages fixes the issue. Remember you will need to exit Julia and start a new session for the changes to take effect.

    Check the version of your packages

    Each package is versioned with a three-part number of the form vX.Y.Z. You can check which versions you have installed with import Pkg; Pkg.status().

    This should almost always be the most-recent release. You can check the releases of a package by going to the relevant GitHub page, and navigating to the "releases" page. For example, the list of JuMP releases is available at: https://github.com/jump-dev/JuMP.jl/releases.

    If you post on the community forum, please include the output of Pkg.status().

    Unsatisfiable requirements detected

    Did you get an error like Unsatisfiable requirements detected for package JuMP? The Pkg documentation has a section on how to understand and manage these conflicts.

    Installing new packages can make JuMP downgrade to an earlier version

    Another common complaint is that after adding a new package, code that previously worked no longer works.

    This usually happens because the new package is not compatible with the latest version of JuMP. Therefore, the package manager rolls-back JuMP to an earlier version. Here's an example.

    First, we add JuMP:

    (jump_example) pkg> add JuMP
    +  Resolving package versions...
    +Updating `~/jump_example/Project.toml`
    +  [4076af6c] + JuMP v0.21.5
    +Updating `~/jump_example/Manifest.toml`
    +  ... lines omitted ...

    The + JuMP v0.21.5 line indicates that JuMP has been added at version 0.21.5. However, watch what happens when we add JuMPeR:

    (jump_example) pkg> add JuMPeR
    +  Resolving package versions...
    +Updating `~/jump_example/Project.toml`
    +  [4076af6c] ↓ JuMP v0.21.5 ⇒ v0.18.6
    +  [707a9f91] + JuMPeR v0.6.0
    +Updating `~/jump_example/Manifest.toml`
    +  ... lines omitted ...

    JuMPeR gets added at version 0.6.0 (+ JuMPeR v0.6.0), but JuMP gets downgraded from 0.21.5 to 0.18.6 (↓ JuMP v0.21.5 ⇒ v0.18.6)! The reason for this is that JuMPeR doesn't support a version of JuMP newer than 0.18.6.

    Tip

    Pay careful attention to the output of the package manager when adding new packages, especially when you see a package being downgraded.

    diff --git a/previews/PR3545/manual/callbacks/index.html b/previews/PR3545/manual/callbacks/index.html new file mode 100644 index 00000000000..c7d65e74e31 --- /dev/null +++ b/previews/PR3545/manual/callbacks/index.html @@ -0,0 +1,87 @@ + +Solver-independent Callbacks · JuMP

    Solver-independent Callbacks

    Many mixed-integer (linear, conic, and nonlinear) programming solvers offer the ability to modify the solve process. Examples include changing branching decisions in branch-and-bound, adding custom cutting planes, providing custom heuristics to find feasible solutions, or implementing on-demand separators to add new constraints only when they are violated by the current solution (also known as lazy constraints).

    While historically this functionality has been limited to solver-specific interfaces, JuMP provides solver-independent support for three types of callbacks:

    1. lazy constraints
    2. user-cuts
    3. heuristic solutions

    Available solvers

    Solver-independent callback support is limited to a few solvers. This includes CPLEX, GLPK, Gurobi, Xpress, and SCIP.

    Warning

    While JuMP provides a solver-independent way of accessing callbacks, you should not assume that you will see identical behavior when running the same code on different solvers. For example, some solvers may ignore user-cuts for various reasons, while other solvers may add every user-cut. Read the underlying solver's callback documentation to understand details specific to each solver.

    Tip

    This page discusses solver-independent callbacks. However, each solver listed above also provides a solver-dependent callback to provide access to the full range of solver-specific features. Consult the solver's README for an example of how to use the solver-dependent callback. This will require you to understand the C interface of the solver.

    Things you can and cannot do during solver-independent callbacks

    There is a limited range of things you can do during a callback. Only use the functions and macros explicitly stated in this page of the documentation, or in the Callbacks tutorial.

    Using any other part of the JuMP API (for example, adding a constraint with @constraint or modifying a variable bound with set_lower_bound) is undefined behavior, and your solver may throw an error, return an incorrect solution, or result in a segfault that aborts Julia.

    In each of the three solver-independent callbacks, there are two things you may query:

    If you need to query any other information, use a solver-dependent callback instead. Each solver supporting a solver-dependent callback has information on how to use it in the README of their GitHub repository.

    If you want to modify the problem in a callback, you must use a lazy constraint.

    Warning

    You can only set each callback once. Calling set twice will over-write the earlier callback. In addition, if you use a solver-independent callback, you cannot set a solver-dependent callback.

    Lazy constraints

    Lazy constraints are useful when the full set of constraints is too large to explicitly include in the initial formulation. When a MIP solver reaches a new solution, for example with a heuristic or by solving a problem at a node in the branch-and-bound tree, it will give the user the chance to provide constraints that would make the current solution infeasible. For some more information about lazy constraints, see this blog post by Paul Rubin.

    A lazy constraint callback can be set using the following syntax:

    julia> import GLPK
    +
    +julia> model = Model(GLPK.Optimizer);
    +
    +julia> @variable(model, x <= 10, Int)
    +x
    +
    +julia> @objective(model, Max, x)
    +x
    +
    +julia> function my_callback_function(cb_data)
    +           status = callback_node_status(cb_data, model)
    +           if status == MOI.CALLBACK_NODE_STATUS_FRACTIONAL
    +               # `callback_value(cb_data, x)` is not integer (to some tolerance).
    +               # If, for example, your lazy constraint generator requires an
    +               # integer-feasible primal solution, you can add a `return` here.
    +               return
    +           elseif status == MOI.CALLBACK_NODE_STATUS_INTEGER
    +               # `callback_value(cb_data, x)` is integer (to some tolerance).
    +           else
    +               @assert status == MOI.CALLBACK_NODE_STATUS_UNKNOWN
    +               # `callback_value(cb_data, x)` might be fractional or integer.
    +           end
    +           x_val = callback_value(cb_data, x)
    +           if x_val > 2 + 1e-6
    +               con = @build_constraint(x <= 2)
    +               MOI.submit(model, MOI.LazyConstraint(cb_data), con)
    +           end
    +       end
    +my_callback_function (generic function with 1 method)
    +
    +julia> set_attribute(model, MOI.LazyConstraintCallback(), my_callback_function)
    Info

    The lazy constraint callback may be called at fractional or integer nodes in the branch-and-bound tree. There is no guarantee that the callback is called at every primal solution.

    Warning

    Only add a lazy constraint if your primal solution violates the constraint. Adding the lazy constraint irrespective of feasibility may result in the solver returning an incorrect solution, or lead to many constraints being added, slowing down the solution process.

    model = Model(GLPK.Optimizer)
    +@variable(model, x <= 10, Int)
    +@objective(model, Max, x)
    +function bad_callback_function(cb_data)
    +    # Don't do this!
    +    con = @build_constraint(x <= 2)
    +    MOI.submit(model, MOI.LazyConstraint(cb_data), con)
    +end
    +function good_callback_function(cb_data)
    +    if callback_value(x) > 2
    +        con = @build_constraint(x <= 2)
    +        MOI.submit(model, MOI.LazyConstraint(cb_data), con)
    +    end
    +end
    +set_attribute(model, MOI.LazyConstraintCallback(), good_callback_function)
    Warning

    During the solve, a solver may visit a point that was cut off by a previous lazy constraint, for example, because the earlier lazy constraint was removed during presolve. If this happens, you must re-add the lazy constraint.

    User cuts

    User cuts, or simply cuts, provide a way for the user to tighten the LP relaxation using problem-specific knowledge that the solver cannot or is unable to infer from the model. Just like with lazy constraints, when a MIP solver reaches a new node in the branch-and-bound tree, it will give the user the chance to provide cuts to make the current relaxed (fractional) solution infeasible in the hopes of obtaining an integer solution. For more details about the difference between user cuts and lazy constraints see the aforementioned blog post.

    A user-cut callback can be set using the following syntax:

    julia> import GLPK
    +
    +julia> model = Model(GLPK.Optimizer);
    +
    +julia> @variable(model, x <= 10.5, Int)
    +x
    +
    +julia> @objective(model, Max, x)
    +x
    +
    +julia> function my_callback_function(cb_data)
    +           x_val = callback_value(cb_data, x)
    +           con = @build_constraint(x <= floor(x_val))
    +           MOI.submit(model, MOI.UserCut(cb_data), con)
    +       end
    +my_callback_function (generic function with 1 method)
    +
    +julia> set_attribute(model, MOI.UserCutCallback(), my_callback_function)
    Warning

    User cuts must not change the set of integer feasible solutions. Equivalently, user cuts can only remove fractional solutions. If you add a cut that removes an integer solution (even one that is not optimal), the solver may return an incorrect solution.

    Info

    The user-cut callback may be called at fractional nodes in the branch-and-bound tree. There is no guarantee that the callback is called at every fractional primal solution.

    Heuristic solutions

    Integer programming solvers frequently include heuristics that run at the nodes of the branch-and-bound tree. They aim to find integer solutions quicker than plain branch-and-bound would to tighten the bound, allowing us to fathom nodes quicker and to tighten the integrality gap.

    Some heuristics take integer solutions and explore their "local neighborhood" (for example, flipping binary variables, fix some variables and solve a smaller MILP) and others take fractional solutions and attempt to round them in an intelligent way.

    You may want to add a heuristic of your own if you have some special insight into the problem structure that the solver is not aware of, for example, you can consistently take fractional solutions and intelligently guess integer solutions from them.

    A heuristic solution callback can be set using the following syntax:

    julia> import GLPK
    +
    +julia> model = Model(GLPK.Optimizer);
    +
    +julia> @variable(model, x <= 10.5, Int)
    +x
    +
    +julia> @objective(model, Max, x)
    +x
    +
    +julia> function my_callback_function(cb_data)
    +           x_val = callback_value(cb_data, x)
    +           status = MOI.submit(
    +               model, MOI.HeuristicSolution(cb_data), [x], [floor(Int, x_val)]
    +           )
    +           println("I submitted a heuristic solution, and the status was: ", status)
    +       end
    +my_callback_function (generic function with 1 method)
    +
    +julia> set_attribute(model, MOI.HeuristicCallback(), my_callback_function)

    The third argument to submit is a vector of JuMP variables, and the fourth argument is a vector of values corresponding to each variable.

    MOI.submit returns an enum that depends on whether the solver accepted the solution. The possible return codes are:

    • MOI.HEURISTIC_SOLUTION_ACCEPTED
    • MOI.HEURISTIC_SOLUTION_REJECTED
    • MOI.HEURISTIC_SOLUTION_UNKNOWN
    Warning

    Some solvers may accept partial solutions. Others require a feasible integer solution for every variable. If in doubt, provide a complete solution.

    Info

    The heuristic solution callback may be called at fractional nodes in the branch-and-bound tree. There is no guarantee that the callback is called at every fractional primal solution.

    diff --git a/previews/PR3545/manual/complex/index.html b/previews/PR3545/manual/complex/index.html new file mode 100644 index 00000000000..783941411b5 --- /dev/null +++ b/previews/PR3545/manual/complex/index.html @@ -0,0 +1,151 @@ + +Complex number support · JuMP

    Complex number support

    This page explains the complex-valued variables and constraints that JuMP supports. For a worked-example using these features, read the Quantum state discrimination tutorial.

    Complex-valued variables

    Create a complex-valued variable using ComplexPlane:

    julia> model = Model();
    +
    +julia> @variable(model, x in ComplexPlane())
    +real(x) + imag(x) im

    Note that x is not a VariableRef; instead, it is an affine expression with Complex{Float64}-valued coefficients:

    julia> typeof(x)
    +GenericAffExpr{ComplexF64, VariableRef}

    Behind the scenes, JuMP has created two real-valued variables, with names "real(x)" and "imag(x)":

    julia> all_variables(model)
    +2-element Vector{VariableRef}:
    + real(x)
    + imag(x)
    +
    +julia> name.(all_variables(model))
    +2-element Vector{String}:
    + "real(x)"
    + "imag(x)"

    Use the real and imag functions on x to return a real-valued affine expression representing each variable:

    julia> typeof(real(x))
    +AffExpr (alias for GenericAffExpr{Float64, GenericVariableRef{Float64}})
    +
    +julia> typeof(imag(x))
    +AffExpr (alias for GenericAffExpr{Float64, GenericVariableRef{Float64}})

    To create an anonymous variable, use the set keyword argument:

    julia> model = Model();
    +
    +julia> x = @variable(model, set = ComplexPlane())
    +_[1] + _[2] im

    Complex-valued variable bounds

    Because complex-valued variables lack a total ordering, the definition of a variable bound for a complex-valued variable is ambiguous. If you pass a real- or complex-valued argument to keywords such as lower_bound, upper_bound, and start_value, JuMP will apply the real and imaginary parts to the associated real-valued variables.

    julia> model = Model();
    +
    +julia> @variable(
    +           model,
    +           x in ComplexPlane(),
    +           lower_bound = 1.0,
    +           upper_bound = 2.0 + 3.0im,
    +           start = 4im,
    +       )
    +real(x) + imag(x) im
    +
    +julia> vars = all_variables(model)
    +2-element Vector{VariableRef}:
    + real(x)
    + imag(x)
    +
    +julia> lower_bound.(vars)
    +2-element Vector{Float64}:
    + 1.0
    + 0.0
    +
    +julia> upper_bound.(vars)
    +2-element Vector{Float64}:
    + 2.0
    + 3.0
    +
    +julia> start_value.(vars)
    +2-element Vector{Float64}:
    + 0.0
    + 4.0

    Complex-valued equality constraints

    JuMP reformulates complex-valued equality constraints into two real-valued constraints: one representing the real part, and one representing the imaginary part. Thus, complex-valued equality constraints can be solved any solver that supports the real-valued constraint type.

    For example:

    julia> model = Model(HiGHS.Optimizer);
    +
    +julia> set_silent(model)
    +
    +julia> @variable(model, x[1:2]);
    +
    +julia> @constraint(model, (1 + 2im) * x[1] + 3 * x[2] == 4 + 5im)
    +(1 + 2im) x[1] + 3 x[2] = (4 + 5im)
    +
    +julia> optimize!(model)
    +
    +julia> value.(x)
    +2-element Vector{Float64}:
    + 2.5
    + 0.5

    is equivalent to

    julia> model = Model(HiGHS.Optimizer);
    +
    +julia> set_silent(model)
    +
    +julia> @variable(model, x[1:2]);
    +
    +julia> @constraint(model, 1 * x[1] + 3 * x[2] == 4)  # real component
    +x[1] + 3 x[2] = 4
    +
    +julia> @constraint(model, 2 * x[1] == 5)  # imag component
    +2 x[1] = 5
    +
    +julia> optimize!(model)
    +
    +julia> value.(x)
    +2-element Vector{Float64}:
    + 2.5
    + 0.5

    This also applies if the variables are complex-valued:

    julia> model = Model(HiGHS.Optimizer);
    +
    +julia> set_silent(model)
    +
    +julia> @variable(model, x in ComplexPlane());
    +
    +julia> @constraint(model, (1 + 2im) * x + 3 * x == 4 + 5im)
    +(4 + 2im) real(x) + (-2 + 4im) imag(x) = (4 + 5im)
    +
    +julia> optimize!(model)
    +
    +julia> value(x)
    +1.3 + 0.6000000000000001im

    which is equivalent to

    julia> model = Model(HiGHS.Optimizer);
    +
    +julia> set_silent(model)
    +
    +julia> @variable(model, x_real);
    +
    +julia> @variable(model, x_imag);
    +
    +julia> @constraint(model, x_real - 2 * x_imag + 3 * x_real == 4)
    +4 x_real - 2 x_imag = 4
    +
    +julia> @constraint(model, x_imag + 2 * x_real + 3 * x_imag == 5)
    +2 x_real + 4 x_imag = 5
    +
    +julia> optimize!(model)
    +
    +julia> value(x_real) + value(x_imag) * im
    +1.3 + 0.6000000000000001im

    Hermitian PSD Cones

    JuMP supports creating matrices where are Hermitian.

    julia> model = Model();
    +
    +julia> @variable(model, H[1:3, 1:3] in HermitianPSDCone())
    +3×3 LinearAlgebra.Hermitian{GenericAffExpr{ComplexF64, VariableRef}, Matrix{GenericAffExpr{ComplexF64, VariableRef}}}:
    + real(H[1,1])                    …  real(H[1,3]) + imag(H[1,3]) im
    + real(H[1,2]) - imag(H[1,2]) im     real(H[2,3]) + imag(H[2,3]) im
    + real(H[1,3]) - imag(H[1,3]) im     real(H[3,3])

    Behind the scenes, JuMP has created nine real-valued decision variables:

    julia> all_variables(model)
    +9-element Vector{VariableRef}:
    + real(H[1,1])
    + real(H[1,2])
    + real(H[2,2])
    + real(H[1,3])
    + real(H[2,3])
    + real(H[3,3])
    + imag(H[1,2])
    + imag(H[1,3])
    + imag(H[2,3])

    and a Vector{VariableRef}-in-MOI.HermitianPositiveSemidefiniteConeTriangle constraint:

    julia> num_constraints(model, Vector{VariableRef}, MOI.HermitianPositiveSemidefiniteConeTriangle)
    +1

    The MOI.HermitianPositiveSemidefiniteConeTriangle set can be efficiently bridged to MOI.PositiveSemidefiniteConeTriangle, so it can be solved by any solver that supports PSD constraints.

    Each element of H is an affine expression with Complex{Float64}-valued coefficients:

    julia> typeof(H[1, 1])
    +GenericAffExpr{ComplexF64, VariableRef}
    +
    +julia> typeof(H[2, 1])
    +GenericAffExpr{ComplexF64, VariableRef}

    Hermitian PSD constraints

    The HermitianPSDCone can also be used in the @constraint macro:

    julia> model = Model();
    +
    +julia> @variable(model, x[1:2])
    +2-element Vector{VariableRef}:
    + x[1]
    + x[2]
    +
    +julia> import LinearAlgebra
    +
    +julia> H = LinearAlgebra.Hermitian([x[1] 1im; -1im -x[2]])
    +2×2 LinearAlgebra.Hermitian{GenericAffExpr{ComplexF64, VariableRef}, Matrix{GenericAffExpr{ComplexF64, VariableRef}}}:
    + x[1]  im
    + -im   -x[2]
    +
    +julia> @constraint(model, H in HermitianPSDCone())
    +[x[1]  im;
    + -im   -x[2]] ∈ HermitianPSDCone()
    Note

    The matrix H in H in HermitianPSDCone() must be a LinearAlgebra.Hermitian matrix type. A build_constraint error will be thrown if the matrix is a different matrix type.

    diff --git a/previews/PR3545/manual/constraints/index.html b/previews/PR3545/manual/constraints/index.html new file mode 100644 index 00000000000..a16681631cc --- /dev/null +++ b/previews/PR3545/manual/constraints/index.html @@ -0,0 +1,766 @@ + +Constraints · JuMP

    Constraints

    JuMP is based on the MathOptInterface (MOI) API. Because of this, JuMP uses the following standard form to represent problems:

    \[\begin{align} + & \min_{x \in \mathbb{R}^n} & f_0(x) + \\ + & \;\;\text{s.t.} & f_i(x) & \in \mathcal{S}_i & i = 1 \ldots m +\end{align}\]

    Each constraint, $f_i(x) \in \mathcal{S}_i$, is composed of a function and a set. For example, instead of calling $a^\top x \le b$ a less-than-or-equal-to constraint, we say that it is a scalar-affine-in-less-than constraint, where the function $a^\top x$ belongs to the less-than set $(-\infty, b]$. We use the shorthand function-in-set to refer to constraints composed of different types of functions and sets.

    This page explains how to write various types of constraints in JuMP. For nonlinear constraints, see Nonlinear Modeling instead.

    Add a constraint

    Add a constraint to a JuMP model using the @constraint macro. The syntax to use depends on the type of constraint you wish to add.

    Add a linear constraint

    Create linear constraints using the @constraint macro:

    julia> model = Model();
    +
    +julia> @variable(model, x[1:3]);
    +
    +julia> @constraint(model, c1, sum(x) <= 1)
    +c1 : x[1] + x[2] + x[3] ≤ 1
    +
    +julia> @constraint(model, c2, x[1] + 2 * x[3] >= 2)
    +c2 : x[1] + 2 x[3] ≥ 2
    +
    +julia> @constraint(model, c3, sum(i * x[i] for i in 1:3) == 3)
    +c3 : x[1] + 2 x[2] + 3 x[3] = 3
    +
    +julia> @constraint(model, c4, 4 <= 2 * x[2] <= 5)
    +c4 : 2 x[2] ∈ [4, 5]

    Normalization

    JuMP normalizes constraints by moving all of the terms containing variables to the left-hand side and all of the constant terms to the right-hand side. Thus, we get:

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> @constraint(model, c, 2x + 1 <= 4x + 4)
    +c : -2 x ≤ 3

    Add a quadratic constraint

    In addition to affine functions, JuMP also supports constraints with quadratic terms. For example:

    julia> model = Model();
    +
    +julia> @variable(model, x[i=1:2])
    +2-element Vector{VariableRef}:
    + x[1]
    + x[2]
    +
    +julia> @variable(model, t >= 0)
    +t
    +
    +julia> @constraint(model, my_q, x[1]^2 + x[2]^2 <= t^2)
    +my_q : x[1]² + x[2]² - t² ≤ 0
    Tip

    Because solvers can take advantage of the knowledge that a constraint is quadratic, prefer adding quadratic constraints using @constraint, rather than @NLconstraint.

    Vectorized constraints

    You can also add constraints to JuMP using vectorized linear algebra. For example:

    julia> model = Model();
    +
    +julia> @variable(model, x[i=1:2])
    +2-element Vector{VariableRef}:
    + x[1]
    + x[2]
    +
    +julia> A = [1 2; 3 4]
    +2×2 Matrix{Int64}:
    + 1  2
    + 3  4
    +
    +julia> b = [5, 6]
    +2-element Vector{Int64}:
    + 5
    + 6
    +
    +julia> @constraint(model, con_vector, A * x == b)
    +con_vector : [x[1] + 2 x[2] - 5, 3 x[1] + 4 x[2] - 6] ∈ MathOptInterface.Zeros(2)
    +
    +julia> @constraint(model, con_scalar, A * x .== b)
    +2-element Vector{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.EqualTo{Float64}}, ScalarShape}}:
    + con_scalar : x[1] + 2 x[2] = 5
    + con_scalar : 3 x[1] + 4 x[2] = 6

    The two constraints, == and .== are similar, but subtly different. The first creates a single constraint that is a MOI.VectorAffineFunction in MOI.Zeros constraint. The second creates a vector of MOI.ScalarAffineFunction in MOI.EqualTo constraints.

    Which formulation to choose depends on the solver, and what you want to do with the constraint object con_vector or con_scalar.

    • If you are using a conic solver, expect the dual of con_vector to be a Vector{Float64}, and do not intend to delete a row in the constraint, choose the == formulation.
    • If you are using a solver that expects a list of scalar constraints, for example HiGHS, or you wish to delete part of the constraint or access a single row of the constraint, for example, dual(con_scalar[2]), then use the broadcast .==.

    JuMP reformulates both constraints into the other form if needed by the solver, but choosing the right format for a particular solver is more efficient.

    You can also use <=, .<= , >=, and .>= as comparison operators in the constraint.

    julia> @constraint(model, A * x <= b)
    +[x[1] + 2 x[2] - 5, 3 x[1] + 4 x[2] - 6] ∈ MathOptInterface.Nonpositives(2)
    +
    +julia> @constraint(model, A * x .<= b)
    +2-element Vector{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.LessThan{Float64}}, ScalarShape}}:
    + x[1] + 2 x[2] ≤ 5
    + 3 x[1] + 4 x[2] ≤ 6
    +
    +julia> @constraint(model, A * x >= b)
    +[x[1] + 2 x[2] - 5, 3 x[1] + 4 x[2] - 6] ∈ MathOptInterface.Nonnegatives(2)
    +
    +julia> @constraint(model, A * x .>= b)
    +2-element Vector{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.GreaterThan{Float64}}, ScalarShape}}:
    + x[1] + 2 x[2] ≥ 5
    + 3 x[1] + 4 x[2] ≥ 6

    Vectorized matrix constraints

    In most cases, you cannot use the non-broadcasting syntax for general matrices. For example:

    julia> model = Model();
    +
    +julia> @variable(model, X[1:2, 1:2])
    +2×2 Matrix{VariableRef}:
    + X[1,1]  X[1,2]
    + X[2,1]  X[2,2]
    +
    +julia> @constraint(model, X >= 0)
    +ERROR: At none:1: `@constraint(model, X >= 0)`: Unsupported matrix in vector-valued set. Did you mean to use the broadcasting syntax `.>=` instead? Alternatively, perhaps you are missing a set argument like `@constraint(model, X >= 0, PSDCone())` or `@constraint(model, X >= 0, HermmitianPSDCone())`.
    +Stacktrace:
    +[...]

    Instead, to represent matrix inequalities you must always use the element-wise broadcasting .==, .>=, or .<=, or use the Set inequality syntax.

    There are two exceptions: if the result of the left-hand side minus the right-hand side is a LinearAlgebra.Symmetric matrix or a LinearAlgebra.Hermitian matrix, you may use the non-broadcasting equality syntax:

    julia> using LinearAlgebra
    +
    +julia> model = Model();
    +
    +julia> @variable(model, X[1:2, 1:2], Symmetric)
    +2×2 Symmetric{VariableRef, Matrix{VariableRef}}:
    + X[1,1]  X[1,2]
    + X[1,2]  X[2,2]
    +
    +julia> @constraint(model, X == LinearAlgebra.I)
    +[X[1,1] - 1  X[1,2];
    + X[1,2]      X[2,2] - 1] ∈ Zeros()

    Despite the model showing the matrix in Zeros, this will add only three rows to the constraint matrix because the symmetric constraints are redundant. In contrast, the broadcasting syntax adds four linear constraints:

    julia> @constraint(model, X .== LinearAlgebra.I)
    +2×2 Matrix{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.EqualTo{Float64}}, ScalarShape}}:
    + X[1,1] = 1  X[1,2] = 0
    + X[1,2] = 0  X[2,2] = 1

    The same holds for LinearAlgebra.Hermitian matrices:

    julia> using LinearAlgebra
    +
    +julia> model = Model();
    +
    +julia> @variable(model, X[1:2, 1:2] in HermitianPSDCone())
    +2×2 Hermitian{GenericAffExpr{ComplexF64, VariableRef}, Matrix{GenericAffExpr{ComplexF64, VariableRef}}}:
    + real(X[1,1])                    real(X[1,2]) + imag(X[1,2]) im
    + real(X[1,2]) - imag(X[1,2]) im  real(X[2,2])
    +
    +julia> @constraint(model, X == LinearAlgebra.I)
    +[real(X[1,1]) - 1                real(X[1,2]) + imag(X[1,2]) im;
    + real(X[1,2]) - imag(X[1,2]) im  real(X[2,2]) - 1] ∈ Zeros()
    +
    +julia> @constraint(model, X .== LinearAlgebra.I)
    +2×2 Matrix{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{ComplexF64}, MathOptInterface.EqualTo{ComplexF64}}, ScalarShape}}:
    + real(X[1,1]) = 1                    real(X[1,2]) + imag(X[1,2]) im = 0
    + real(X[1,2]) - imag(X[1,2]) im = 0  real(X[2,2]) = 1

    Containers of constraints

    The @constraint macro supports creating collections of constraints. We'll cover some brief syntax here; read the Constraint containers section for more details:

    Create arrays of constraints:

    julia> model = Model();
    +
    +julia> @variable(model, x[1:3]);
    +
    +julia> @constraint(model, c[i=1:3], x[i] <= i^2)
    +3-element Vector{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.LessThan{Float64}}, ScalarShape}}:
    + c[1] : x[1] ≤ 1
    + c[2] : x[2] ≤ 4
    + c[3] : x[3] ≤ 9
    +
    +julia> c[2]
    +c[2] : x[2] ≤ 4

    Sets can be any Julia type that supports iteration:

    julia> model = Model();
    +
    +julia> @variable(model, x[1:3]);
    +
    +julia> @constraint(model, c[i=2:3, ["red", "blue"]], x[i] <= i^2)
    +2-dimensional DenseAxisArray{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.LessThan{Float64}}, ScalarShape},2,...} with index sets:
    +    Dimension 1, 2:3
    +    Dimension 2, ["red", "blue"]
    +And data, a 2×2 Matrix{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.LessThan{Float64}}, ScalarShape}}:
    + c[2,red] : x[2] ≤ 4  c[2,blue] : x[2] ≤ 4
    + c[3,red] : x[3] ≤ 9  c[3,blue] : x[3] ≤ 9
    +
    +julia> c[2, "red"]
    +c[2,red] : x[2] ≤ 4

    Sets can depend upon previous indices:

    julia> model = Model();
    +
    +julia> @variable(model, x[1:3]);
    +
    +julia> @constraint(model, c[i=1:3, j=i:3], x[i] <= j)
    +JuMP.Containers.SparseAxisArray{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.LessThan{Float64}}, ScalarShape}, 2, Tuple{Int64, Int64}} with 6 entries:
    +  [1, 1]  =  c[1,1] : x[1] ≤ 1
    +  [1, 2]  =  c[1,2] : x[1] ≤ 2
    +  [1, 3]  =  c[1,3] : x[1] ≤ 3
    +  [2, 2]  =  c[2,2] : x[2] ≤ 2
    +  [2, 3]  =  c[2,3] : x[2] ≤ 3
    +  [3, 3]  =  c[3,3] : x[3] ≤ 3

    and you can filter elements in the sets using the ; syntax:

    julia> model = Model();
    +
    +julia> @variable(model, x[1:9]);
    +
    +julia> @constraint(model, c[i=1:9; mod(i, 3) == 0], x[i] <= i)
    +JuMP.Containers.SparseAxisArray{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.LessThan{Float64}}, ScalarShape}, 1, Tuple{Int64}} with 3 entries:
    +  [3]  =  c[3] : x[3] ≤ 3
    +  [6]  =  c[6] : x[6] ≤ 6
    +  [9]  =  c[9] : x[9] ≤ 9

    Registered constraints

    When you create constraints, JuMP registers them inside the model using their corresponding symbol. Get a registered name using model[:key]:

    julia> model = Model()
    +A JuMP Model
    +Feasibility problem with:
    +Variables: 0
    +Model mode: AUTOMATIC
    +CachingOptimizer state: NO_OPTIMIZER
    +Solver name: No optimizer attached.
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> @constraint(model, my_c, 2x <= 1)
    +my_c : 2 x ≤ 1
    +
    +julia> model
    +A JuMP Model
    +Feasibility problem with:
    +Variable: 1
    +`AffExpr`-in-`MathOptInterface.LessThan{Float64}`: 1 constraint
    +Model mode: AUTOMATIC
    +CachingOptimizer state: NO_OPTIMIZER
    +Solver name: No optimizer attached.
    +Names registered in the model: my_c, x
    +
    +julia> model[:my_c] === my_c
    +true

    Anonymous constraints

    To reduce the likelihood of accidental bugs, and because JuMP registers constraints inside a model, creating two constraints with the same name is an error:

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> @constraint(model, c, 2x <= 1)
    +c : 2 x ≤ 1
    +
    +julia> @constraint(model, c, 2x <= 1)
    +ERROR: An object of name c is already attached to this model. If this
    +    is intended, consider using the anonymous construction syntax, e.g.,
    +    `x = @variable(model, [1:N], ...)` where the name of the object does
    +    not appear inside the macro.
    +
    +    Alternatively, use `unregister(model, :c)` to first unregister
    +    the existing name from the model. Note that this will not delete the
    +    object; it will just remove the reference at `model[:c]`.
    +[...]

    A common reason for encountering this error is adding constraints in a loop.

    As a work-around, JuMP provides anonymous constraints. Create an anonymous constraint by omitting the name argument:

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> c = @constraint(model, 2x <= 1)
    +2 x ≤ 1

    Create a container of anonymous constraints by dropping the name in front of the [:

    julia> model = Model();
    +
    +julia> @variable(model, x[1:3]);
    +
    +julia> c = @constraint(model, [i = 1:3], x[i] <= i)
    +3-element Vector{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.LessThan{Float64}}, ScalarShape}}:
    + x[1] ≤ 1
    + x[2] ≤ 2
    + x[3] ≤ 3

    Constraint names

    In addition to the symbol that constraints are registered with, constraints have a String name that is used for printing and writing to file formats.

    Get and set the name of a constraint using name(::JuMP.ConstraintRef) and set_name(::JuMP.ConstraintRef, ::String):

    julia> model = Model(); @variable(model, x);
    +
    +julia> @constraint(model, con, x <= 1)
    +con : x ≤ 1
    +
    +julia> name(con)
    +"con"
    +
    +julia> set_name(con, "my_con_name")
    +
    +julia> con
    +my_con_name : x ≤ 1

    Override the default choice of name using the base_name keyword:

    julia> model = Model(); @variable(model, x);
    +
    +julia> con = @constraint(model, [i=1:2], x <= i, base_name = "my_con")
    +2-element Vector{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.LessThan{Float64}}, ScalarShape}}:
    + my_con[1] : x ≤ 1
    + my_con[2] : x ≤ 2

    Note that names apply to each element of the container, not to the container of constraints:

    julia> name(con[1])
    +"my_con[1]"
    +
    +julia> set_name(con[1], "c")
    +
    +julia> con
    +2-element Vector{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.LessThan{Float64}}, ScalarShape}}:
    + c : x ≤ 1
    + my_con[2] : x ≤ 2
    Tip

    For some models, setting the string name of each constraint can take a non-trivial portion of the total time required to build the model. Turn off String names by passing set_string_name = false to @constraint:

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> @constraint(model, con, x <= 2, set_string_name = false)
    +x ≤ 2

    See Disable string names for more information.

    Retrieve a constraint by name

    Retrieve a constraint from a model using constraint_by_name:

    julia> constraint_by_name(model, "c")
    +c : x ≤ 1

    If the name is not present, nothing will be returned:

    julia> constraint_by_name(model, "bad_name")

    You can only look up individual constraints using constraint_by_name. Something like this will not work:

    julia> model = Model(); @variable(model, x);
    +
    +julia> con = @constraint(model, [i=1:2], x <= i, base_name = "my_con")
    +2-element Vector{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.LessThan{Float64}}, ScalarShape}}:
    + my_con[1] : x ≤ 1
    + my_con[2] : x ≤ 2
    +
    +julia> constraint_by_name(model, "my_con")

    To look up a collection of constraints, do not use constraint_by_name. Instead, register them using the model[:key] = value syntax:

    julia> model = Model(); @variable(model, x);
    +
    +julia> model[:con] = @constraint(model, [i=1:2], x <= i, base_name = "my_con")
    +2-element Vector{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.LessThan{Float64}}, ScalarShape}}:
    + my_con[1] : x ≤ 1
    + my_con[2] : x ≤ 2
    +
    +julia> model[:con]
    +2-element Vector{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.LessThan{Float64}}, ScalarShape}}:
    + my_con[1] : x ≤ 1
    + my_con[2] : x ≤ 2

    String names, symbolic names, and bindings

    It's common for new users to experience confusion relating to constraints. Part of the problem is the difference between the name that a constraint is registered under and the String name used for printing.

    Here's a summary of the differences:

    • Constraints are created using @constraint.
    • Constraints can be named or anonymous.
    • Named constraints have the form @constraint(model, c, expr). For named constraints:
      • The String name of the constraint is set to "c".
      • A Julia variable c is created that binds c to the JuMP constraint.
      • The name :c is registered as a key in the model with the value c.
    • Anonymous constraints have the form c = @constraint(model, expr). For anonymous constraints:
      • The String name of the constraint is set to "".
      • You control the name of the Julia variable used as the binding.
      • No name is registered as a key in the model.
    • The base_name keyword can override the String name of the constraint.
    • You can manually register names in the model via model[:key] = value.

    Here's an example of the differences:

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> c_binding = @constraint(model, 2x <= 1, base_name = "c")
    +c : 2 x ≤ 1
    +
    +julia> model
    +A JuMP Model
    +Feasibility problem with:
    +Variable: 1
    +`AffExpr`-in-`MathOptInterface.LessThan{Float64}`: 1 constraint
    +Model mode: AUTOMATIC
    +CachingOptimizer state: NO_OPTIMIZER
    +Solver name: No optimizer attached.
    +Names registered in the model: x
    +
    +julia> c
    +ERROR: UndefVarError: `c` not defined
    +
    +julia> c_binding
    +c : 2 x ≤ 1
    +
    +julia> name(c_binding)
    +"c"
    +
    +julia> model[:c_register] = c_binding
    +c : 2 x ≤ 1
    +
    +julia> model
    +A JuMP Model
    +Feasibility problem with:
    +Variable: 1
    +`AffExpr`-in-`MathOptInterface.LessThan{Float64}`: 1 constraint
    +Model mode: AUTOMATIC
    +CachingOptimizer state: NO_OPTIMIZER
    +Solver name: No optimizer attached.
    +Names registered in the model: c_register, x
    +
    +julia> model[:c_register]
    +c : 2 x ≤ 1
    +
    +julia> model[:c_register] === c_binding
    +true
    +
    +julia> c
    +ERROR: UndefVarError: `c` not defined

    The @constraints macro

    If you have many @constraint calls, use the @constraints macro to improve readability:

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> @constraints(model, begin
    +           2x <= 1
    +           c, x >= -1
    +       end)
    +(2 x ≤ 1, c : x ≥ -1)
    +
    +julia> print(model)
    +Feasibility
    +Subject to
    + c : x ≥ -1
    + 2 x ≤ 1

    The @constraints macro returns a tuple of the constraints that were defined.

    Duality

    JuMP adopts the notion of conic duality from MathOptInterface. For linear programs, a feasible dual on a >= constraint is nonnegative and a feasible dual on a <= constraint is nonpositive. If the constraint is an equality constraint, it depends on which direction is binding.

    Warning

    JuMP's definition of duality is independent of the objective sense. That is, the sign of feasible duals associated with a constraint depends on the direction of the constraint and not whether the problem is maximization or minimization. This is a different convention from linear programming duality in some common textbooks. If you have a linear program, and you want the textbook definition, you probably want to use shadow_price and reduced_cost instead.

    The dual value associated with a constraint in the most recent solution can be accessed using the dual function. Use has_duals to check if the model has a dual solution available to query. For example:

    julia> model = Model(HiGHS.Optimizer);
    +
    +julia> set_silent(model)
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> @constraint(model, con, x <= 1)
    +con : x ≤ 1
    +
    +julia> @objective(model, Min, -2x)
    +-2 x
    +
    +julia> has_duals(model)
    +false
    +
    +julia> optimize!(model)
    +
    +julia> has_duals(model)
    +true
    +
    +julia> dual(con)
    +-2.0
    +
    +julia> @objective(model, Max, 2x)
    +2 x
    +
    +julia> optimize!(model)
    +
    +julia> dual(con)
    +-2.0

    To help users who may be less familiar with conic duality, JuMP provides shadow_price, which returns a value that can be interpreted as the improvement in the objective in response to an infinitesimal relaxation (on the scale of one unit) in the right-hand side of the constraint. shadow_price can be used only on linear constraints with a <=, >=, or == comparison operator.

    In the example above, dual(con) returned -2.0 regardless of the optimization sense. However, in the second case when the optimization sense is Max, shadow_price returns:

    julia> shadow_price(con)
    +2.0

    Duals of variable bounds

    To query the dual variables associated with a variable bound, first obtain a constraint reference using one of UpperBoundRef, LowerBoundRef, or FixRef, and then call dual on the returned constraint reference. The reduced_cost function may simplify this process as it returns the shadow price of an active bound of a variable (or zero, if no active bound exists).

    julia> model = Model(HiGHS.Optimizer);
    +
    +julia> set_silent(model)
    +
    +julia> @variable(model, x <= 1)
    +x
    +
    +julia> @objective(model, Min, -2x)
    +-2 x
    +
    +julia> optimize!(model)
    +
    +julia> dual(UpperBoundRef(x))
    +-2.0
    +
    +julia> reduced_cost(x)
    +-2.0

    Modify a constant term

    This section explains how to modify the constant term in a constraint. There are multiple ways to achieve this goal; we explain three options.

    Option 1: change the right-hand side

    Use set_normalized_rhs to modify the right-hand side (constant) term of a linear or quadratic constraint. Use normalized_rhs to query the right-hand side term.

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> @constraint(model, con, 2x <= 1)
    +con : 2 x ≤ 1
    +
    +julia> set_normalized_rhs(con, 3)
    +
    +julia> con
    +con : 2 x ≤ 3
    +
    +julia> normalized_rhs(con)
    +3.0
    Warning

    set_normalized_rhs sets the right-hand side term of the normalized constraint. See Normalization for more details.

    Option 2: use fixed variables

    If constraints are complicated, for example, they are composed of a number of components, each of which has a constant term, then it may be difficult to calculate what the right-hand side term is in the standard form.

    For this situation, JuMP includes the ability to fix variables to a value using the fix function. Fixing a variable sets its lower and upper bound to the same value. Thus, changes in a constant term can be simulated by adding a new variable and fixing it to different values. Here is an example:

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> @variable(model, const_term)
    +const_term
    +
    +julia> @constraint(model, con, 2x <= const_term + 1)
    +con : 2 x - const_term ≤ 1
    +
    +julia> fix(const_term, 1.0)

    The constraint con is now equivalent to 2x <= 2.

    Warning

    Fixed variables are not replaced with constants when communicating the problem to a solver. Therefore, even though const_term is fixed, it is still a decision variable, and so const_term * x is bilinear.

    Option 3: modify the function's constant term

    The third option is to use add_to_function_constant. The constant given is added to the function of a func-in-set constraint. In the following example, adding 2 to the function has the effect of removing 2 to the right-hand side:

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> @constraint(model, con, 2x <= 1)
    +con : 2 x ≤ 1
    +
    +julia> add_to_function_constant(con, 2)
    +
    +julia> con
    +con : 2 x ≤ -1
    +
    +julia> normalized_rhs(con)
    +-1.0

    In the case of interval constraints, the constant is removed from each bound:

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> @constraint(model, con, 0 <= 2x + 1 <= 2)
    +con : 2 x ∈ [-1, 1]
    +
    +julia> add_to_function_constant(con, 3)
    +
    +julia> con
    +con : 2 x ∈ [-4, -2]

    Modify a variable coefficient

    Scalar constraints

    To modify the coefficients for a linear term (modifying the coefficient of a quadratic term is not supported) in a constraint, use set_normalized_coefficient. To query the current coefficient, use normalized_coefficient.

    julia> model = Model();
    +
    +julia> @variable(model, x[1:2]);
    +
    +julia> @constraint(model, con, 2x[1] + x[2] <= 1)
    +con : 2 x[1] + x[2] ≤ 1
    +
    +julia> set_normalized_coefficient(con, x[2], 0)
    +
    +julia> con
    +con : 2 x[1] ≤ 1
    +
    +julia> normalized_coefficient(con, x[2])
    +0.0
    Warning

    set_normalized_coefficient sets the coefficient of the normalized constraint. See Normalization for more details.

    Vector constraints

    To modify the coefficients of a vector-valued constraint, use set_normalized_coefficients.

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> @constraint(model, con, [2x + 3x, 4x] in MOI.Nonnegatives(2))
    +con : [5 x, 4 x] ∈ MathOptInterface.Nonnegatives(2)
    +
    +julia> set_normalized_coefficients(con, x, [(1, 3.0)])
    +
    +julia> con
    +con : [3 x, 4 x] ∈ MathOptInterface.Nonnegatives(2)
    +
    +julia> set_normalized_coefficients(con, x, [(1, 2.0), (2, 5.0)])
    +
    +julia> con
    +con : [2 x, 5 x] ∈ MathOptInterface.Nonnegatives(2)

    Delete a constraint

    Use delete to delete a constraint from a model. Use is_valid to check if a constraint belongs to a model and has not been deleted.

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> @constraint(model, con, 2x <= 1)
    +con : 2 x ≤ 1
    +
    +julia> is_valid(model, con)
    +true
    +
    +julia> delete(model, con)
    +
    +julia> is_valid(model, con)
    +false

    Deleting a constraint does not unregister the symbolic reference from the model. Therefore, creating a new constraint of the same name will throw an error:

    julia> @constraint(model, con, 2x <= 1)
    +ERROR: An object of name con is already attached to this model. If this
    +    is intended, consider using the anonymous construction syntax, e.g.,
    +    `x = @variable(model, [1:N], ...)` where the name of the object does
    +    not appear inside the macro.
    +
    +    Alternatively, use `unregister(model, :con)` to first unregister
    +    the existing name from the model. Note that this will not delete the
    +    object; it will just remove the reference at `model[:con]`.
    +[...]

    After calling delete, call unregister to remove the symbolic reference:

    julia> unregister(model, :con)
    +
    +julia> @constraint(model, con, 2x <= 1)
    +con : 2 x ≤ 1
    Info

    delete does not automatically unregister because we do not distinguish between names that are automatically registered by JuMP macros, and names that are manually registered by the user by setting values in object_dictionary. In addition, deleting a constraint and then adding a new constraint of the same name is an easy way to introduce bugs into your code.

    Start values

    Provide a starting value (also called warmstart) for a constraint's primal and dual solutions using set_start_value and set_dual_start_value.

    Query the starting value for a constraint's primal and dual solution using start_value and dual_start_value. If no start value has been set, the methods will return nothing.

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> @constraint(model, con, x >= 10)
    +con : x ≥ 10
    +
    +julia> start_value(con)
    +
    +julia> set_start_value(con, 10.0)
    +
    +julia> start_value(con)
    +10.0
    +
    +julia> dual_start_value(con)
    +
    +julia> set_dual_start_value(con, 2)
    +
    +julia> dual_start_value(con)
    +2.0

    Vector-valued constraints require a vector:

    julia> model = Model();
    +
    +julia> @variable(model, x[1:3])
    +3-element Vector{VariableRef}:
    + x[1]
    + x[2]
    + x[3]
    +
    +julia> @constraint(model, con, x in SecondOrderCone())
    +con : [x[1], x[2], x[3]] in MathOptInterface.SecondOrderCone(3)
    +
    +julia> dual_start_value(con)
    +
    +julia> set_dual_start_value(con, [1.0, 2.0, 3.0])
    +
    +julia> dual_start_value(con)
    +3-element Vector{Float64}:
    + 1.0
    + 2.0
    + 3.0
    Tip

    To simplify setting start values for all variables and constraints in a model, see set_start_values. The Primal and dual warm-starts tutorial also gives a detailed description of how to iterate over constraints in the model to set custom start values.

    Constraint containers

    Like Variable containers, JuMP provides a mechanism for building groups of constraints compactly. References to these groups of constraints are returned in containers. Three types of constraint containers are supported: Arrays, DenseAxisArrays, and SparseAxisArrays. We explain each of these in the following.

    Tip

    You can read more about containers in the Containers section.

    Arrays

    One way of adding a group of constraints compactly is the following:

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> @constraint(model, con[i = 1:3], i * x <= i + 1)
    +3-element Vector{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.LessThan{Float64}}, ScalarShape}}:
    + con[1] : x ≤ 2
    + con[2] : 2 x ≤ 3
    + con[3] : 3 x ≤ 4

    JuMP returns references to the three constraints in an Array that is bound to the Julia variable con. This array can be accessed and sliced as you would with any Julia array:

    julia> con[1]
    +con[1] : x ≤ 2
    +
    +julia> con[2:3]
    +2-element Vector{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.LessThan{Float64}}, ScalarShape}}:
    + con[2] : 2 x ≤ 3
    + con[3] : 3 x ≤ 4

    Anonymous containers can also be constructed by dropping the name (for example, con) before the square brackets:

    julia> con = @constraint(model, [i = 1:2], i * x <= i + 1)
    +2-element Vector{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.LessThan{Float64}}, ScalarShape}}:
    + x ≤ 2
    + 2 x ≤ 3

    Just like @variable, JuMP will form an Array of constraints when it can determine at parse time that the indices are one-based integer ranges. Therefore con[1:b] will create an Array, but con[a:b] will not. A special case is con[Base.OneTo(n)] which will produce an Array. If JuMP cannot determine that the indices are one-based integer ranges (for example, in the case of con[a:b]), JuMP will create a DenseAxisArray instead.

    DenseAxisArrays

    The syntax for constructing a DenseAxisArray of constraints is very similar to the syntax for constructing a DenseAxisArray of variables.

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> @constraint(model, con[i = 1:2, j = 2:3], i * x <= j + 1)
    +2-dimensional DenseAxisArray{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.LessThan{Float64}}, ScalarShape},2,...} with index sets:
    +    Dimension 1, Base.OneTo(2)
    +    Dimension 2, 2:3
    +And data, a 2×2 Matrix{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.LessThan{Float64}}, ScalarShape}}:
    + con[1,2] : x ≤ 3    con[1,3] : x ≤ 4
    + con[2,2] : 2 x ≤ 3  con[2,3] : 2 x ≤ 4

    SparseAxisArrays

    The syntax for constructing a SparseAxisArray of constraints is very similar to the syntax for constructing a SparseAxisArray of variables.

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> @constraint(model, con[i = 1:2, j = 1:2; i != j], i * x <= j + 1)
    +JuMP.Containers.SparseAxisArray{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.LessThan{Float64}}, ScalarShape}, 2, Tuple{Int64, Int64}} with 2 entries:
    +  [1, 2]  =  con[1,2] : x ≤ 3
    +  [2, 1]  =  con[2,1] : 2 x ≤ 2
    Warning

    If you have many index dimensions and a large amount of sparsity, read Performance considerations.

    Forcing the container type

    When creating a container of constraints, JuMP will attempt to choose the tightest container type that can store the constraints. However, because this happens at parse time, it does not always make the best choice. Just like in @variable, you can force the type of container using the container keyword. For syntax and the reason behind this, take a look at the variable docs.

    Constraints with similar indices

    Containers are often used to create constraints over a set of indices. However, you'll often have cases in which you are repeating the indices:

    julia> model = Model();
    +
    +julia> @variable(model, x[1:2]);
    +
    +julia> @variable(model, y[1:2]);
    +
    +julia> @constraints(model, begin
    +           [i=1:2, j=1:2, k=1:2], i * x[j] <= k
    +           [i=1:2, j=1:2, k=1:2], i * y[j] <= k
    +       end);

    This is hard to read and leads to a lot of copy-paste. A more readable way is to use a for-loop:

    julia> for i=1:2, j=1:2, k=1:2
    +           @constraints(model, begin
    +               i * x[j] <= k
    +               i * y[j] <= k
    +           end)
    +       end

    Accessing constraints from a model

    Query the types of function-in-set constraints in a model using list_of_constraint_types:

    julia> model = Model();
    +
    +julia> @variable(model, x[i=1:2] >= i, Int);
    +
    +julia> @constraint(model, x[1] + x[2] <= 1);
    +
    +julia> list_of_constraint_types(model)
    +3-element Vector{Tuple{Type, Type}}:
    + (AffExpr, MathOptInterface.LessThan{Float64})
    + (VariableRef, MathOptInterface.GreaterThan{Float64})
    + (VariableRef, MathOptInterface.Integer)

    For a given combination of function and set type, use num_constraints to access the number of constraints and all_constraints to access a list of their references:

    julia> num_constraints(model, VariableRef, MOI.Integer)
    +2
    +
    +julia> cons = all_constraints(model, VariableRef, MOI.Integer)
    +2-element Vector{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.Integer}, ScalarShape}}:
    + x[1] integer
    + x[2] integer

    You can also count the total number of constraints in the model, but you must explicitly choose whether to count VariableRef constraints such as bound and integrality constraints:

    julia> num_constraints(model; count_variable_in_set_constraints = true)
    +5
    +
    +julia> num_constraints(model; count_variable_in_set_constraints = false)
    +1

    The same also applies for all_constraints:

    julia> all_constraints(model; include_variable_in_set_constraints = true)
    +5-element Vector{ConstraintRef}:
    + x[1] + x[2] ≤ 1
    + x[1] ≥ 1
    + x[2] ≥ 2
    + x[1] integer
    + x[2] integer
    +
    +julia> all_constraints(model; include_variable_in_set_constraints = false)
    +1-element Vector{ConstraintRef}:
    + x[1] + x[2] ≤ 1

    If you need finer-grained control on which constraints to include, use a variant of:

    julia> sum(
    +           num_constraints(model, F, S) for
    +           (F, S) in list_of_constraint_types(model) if F != VariableRef
    +       )
    +1

    Use constraint_object to get an instance of an AbstractConstraint object that stores the constraint data:

    julia> con = constraint_object(cons[1])
    +ScalarConstraint{VariableRef, MathOptInterface.Integer}(x[1], MathOptInterface.Integer())
    +
    +julia> con.func
    +x[1]
    +
    +julia> con.set
    +MathOptInterface.Integer()

    MathOptInterface constraints

    Because JuMP is based on MathOptInterface, you can add any constraints supported by MathOptInterface using the function-in-set syntax. For a list of supported functions and sets, read Standard form problem.

    Note

    We use MOI as an alias for the MathOptInterface module. This alias is defined by using JuMP. You may also define it in your code as follows:

    import MathOptInterface as MOI

    For example, the following two constraints are equivalent:

    julia> model = Model();
    +
    +julia> @variable(model, x[1:3]);
    +
    +julia> @constraint(model, 2 * x[1] <= 1)
    +2 x[1] ≤ 1
    +
    +julia> @constraint(model, 2 * x[1] in MOI.LessThan(1.0))
    +2 x[1] ≤ 1

    You can also use any set defined by MathOptInterface:

    julia> @constraint(model, x - [1; 2; 3] in MOI.Nonnegatives(3))
    +[x[1] - 1, x[2] - 2, x[3] - 3] ∈ MathOptInterface.Nonnegatives(3)
    +
    +julia> @constraint(model, x in MOI.ExponentialCone())
    +[x[1], x[2], x[3]] ∈ MathOptInterface.ExponentialCone()
    Info

    Similar to how JuMP defines the <= and >= syntax as a convenience way to specify MOI.LessThan and MOI.GreaterThan constraints, the remaining sections in this page describe functions and syntax that have been added for the convenience of common modeling situations.

    Set inequality syntax

    For modeling convenience, the syntax @constraint(model, x >= y, Set()) is short-hand for @constraint(model, x - y in Set()). Therefore, the following calls are equivalent:

    julia> model = Model();
    +
    +julia> @variable(model, x[1:2]);
    +
    +julia> y = [0.5, 0.75];
    +
    +julia> @constraint(model, x >= y, MOI.Nonnegatives(2))
    +[x[1] - 0.5, x[2] - 0.75] ∈ MathOptInterface.Nonnegatives(2)
    +
    +julia> @constraint(model, y <= x, MOI.Nonnegatives(2))
    +[x[1] - 0.5, x[2] - 0.75] ∈ MathOptInterface.Nonnegatives(2)
    +
    +julia> @constraint(model, x - y in MOI.Nonnegatives(2))
    +[x[1] - 0.5, x[2] - 0.75] ∈ MathOptInterface.Nonnegatives(2)

    Non-zero constants are not supported in this syntax:

    julia> @constraint(model, x >= 1, MOI.Nonnegatives(2))
    +ERROR: Operation `sub_mul` between `Vector{VariableRef}` and `Int64` is not allowed. This most often happens when you write a constraint like `x >= y` where `x` is an array and `y` is a constant. Use the broadcast syntax `x .- y >= 0` instead.
    +Stacktrace:
    +[...]

    Use instead:

    julia> @constraint(model, x .- 1 >= 0, MOI.Nonnegatives(2))
    +[x[1] - 1, x[2] - 1] ∈ MathOptInterface.Nonnegatives(2)

    Second-order cone constraints

    A SecondOrderCone constrains the variables t and x to the set:

    \[||x||_2 \le t,\]

    and $t \ge 0$. It can be added as follows:

    julia> model = Model();
    +
    +julia> @variable(model, t)
    +t
    +
    +julia> @variable(model, x[1:2])
    +2-element Vector{VariableRef}:
    + x[1]
    + x[2]
    +
    +julia> @constraint(model, [t; x] in SecondOrderCone())
    +[t, x[1], x[2]] ∈ MathOptInterface.SecondOrderCone(3)

    Rotated second-order cone constraints

    A RotatedSecondOrderCone constrains the variables t, u, and x to the set:

    \[||x||_2^2 \le 2 t \cdot u\]

    and $t, u \ge 0$. It can be added as follows:

    julia> model = Model();
    +
    +julia> @variable(model, t)
    +t
    +
    +julia> @variable(model, u)
    +u
    +
    +julia> @variable(model, x[1:2])
    +2-element Vector{VariableRef}:
    + x[1]
    + x[2]
    +
    +julia> @constraint(model, [t; u; x] in RotatedSecondOrderCone())
    +[t, u, x[1], x[2]] ∈ MathOptInterface.RotatedSecondOrderCone(4)

    Semi-integer and semi-continuous variables

    Semi-continuous variables are constrained to the set $x \in \{0\} \cup [l, u]$.

    Create a semi-continuous variable using the Semicontinuous set:

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> @constraint(model, x in Semicontinuous(1.5, 3.5))
    +x in MathOptInterface.Semicontinuous{Float64}(1.5, 3.5)

    Semi-integer variables are constrained to the set $x \in \{0\} \cup \{l, l+1, \dots, u\}$.

    Create a semi-integer variable using the Semiinteger set:

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> @constraint(model, x in Semiinteger(1.0, 3.0))
    +x in MathOptInterface.Semiinteger{Float64}(1.0, 3.0)

    Special Ordered Sets of Type 1

    In a Special Ordered Set of Type 1 (often denoted SOS-I or SOS1), at most one element can take a non-zero value.

    Construct SOS-I constraints using the SOS1 set:

    julia> model = Model();
    +
    +julia> @variable(model, x[1:3])
    +3-element Vector{VariableRef}:
    + x[1]
    + x[2]
    + x[3]
    +
    +julia> @constraint(model, x in SOS1())
    +[x[1], x[2], x[3]] in MathOptInterface.SOS1{Float64}([1.0, 2.0, 3.0])

    Although not required for feasibility, solvers can benefit from an ordering of the variables (for example, the variables represent different factories to build, at most one factory can be built, and the factories can be ordered according to cost). To induce an ordering, a vector of weights can be provided, and the variables are ordered according to their corresponding weight.

    For example, in the constraint:

    julia> @constraint(model, x in SOS1([3.1, 1.2, 2.3]))
    +[x[1], x[2], x[3]] in MathOptInterface.SOS1{Float64}([3.1, 1.2, 2.3])

    the variables x have precedence x[2], x[3], x[1].

    Special Ordered Sets of Type 2

    In a Special Ordered Set of Type 2 (SOS-II), at most two elements can be non-zero, and if there are two non-zeros, they must be consecutive according to the ordering induced by a weight vector.

    Construct SOS-II constraints using the SOS2 set:

    julia> @constraint(model, x in SOS2([3.0, 1.0, 2.0]))
    +[x[1], x[2], x[3]] in MathOptInterface.SOS2{Float64}([3.0, 1.0, 2.0])

    The possible non-zero pairs are (x[1], x[3]) and (x[2], x[3]):

    If the weight vector is omitted, JuMP induces an ordering from 1:length(x):

    julia> @constraint(model, x in SOS2())
    +[x[1], x[2], x[3]] in MathOptInterface.SOS2{Float64}([1.0, 2.0, 3.0])

    Indicator constraints

    Indicator constraints consist of a binary variable and a linear constraint. The constraint holds when the binary variable takes the value 1. The constraint may or may not hold when the binary variable takes the value 0.

    To enforce the constraint x + y <= 1 when the binary variable a is 1, use:

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> @variable(model, y)
    +y
    +
    +julia> @variable(model, a, Bin)
    +a
    +
    +julia> @constraint(model, a => {x + y <= 1})
    +a => {x + y ≤ 1}

    If the constraint must hold when a is zero, add ! or ¬ before the binary variable;

    julia> @constraint(model, !a => {x + y <= 1})
    +!a => {x + y ≤ 1}

    Semidefinite constraints

    To constrain a matrix to be positive semidefinite (PSD), use PSDCone:

    julia> model = Model();
    +
    +julia> @variable(model, X[1:2, 1:2])
    +2×2 Matrix{VariableRef}:
    + X[1,1]  X[1,2]
    + X[2,1]  X[2,2]
    +
    +julia> @constraint(model, X >= 0, PSDCone())
    +[X[1,1]  X[1,2];
    + X[2,1]  X[2,2]] ∈ PSDCone()
    Tip

    Where possible, prefer constructing a matrix of Semidefinite variables using the @variable macro, rather than adding a constraint like @constraint(model, X >= 0, PSDCone()). In some solvers, adding the constraint via @constraint is less efficient, and can result in additional intermediate variables and constraints being added to the model.

    The inequality X >= Y between two square matrices X and Y is understood as constraining X - Y to be positive semidefinite.

    julia> Y = [1 2; 2 1]
    +2×2 Matrix{Int64}:
    + 1  2
    + 2  1
    +
    +julia> @constraint(model, X >= Y, PSDCone())
    +[X[1,1] - 1  X[1,2] - 2;
    + X[2,1] - 2  X[2,2] - 1] ∈ PSDCone()

    Symmetry

    Solvers supporting PSD constraints usually expect to be given a matrix that is symbolically symmetric, that is, for which the expression in corresponding off-diagonal entries are the same. In our example, the expressions of entries (1, 2) and (2, 1) are respectively X[1,2] - 2 and X[2,1] - 2 which are different.

    To bridge the gap between the constraint modeled and what the solver expects, solvers may add an equality constraint X[1,2] - 2 == X[2,1] - 2 to force symmetry. Use LinearAlgebra.Symmetric to explicitly tell the solver that the matrix is symmetric:

    julia> import LinearAlgebra
    +
    +julia> Z = [X[1, 1] X[1, 2]; X[1, 2] X[2, 2]]
    +2×2 Matrix{VariableRef}:
    + X[1,1]  X[1,2]
    + X[1,2]  X[2,2]
    +
    +julia> @constraint(model, LinearAlgebra.Symmetric(Z) >= 0, PSDCone())
    +[X[1,1]  X[1,2];
    + X[1,2]  X[2,2]] ∈ PSDCone()

    Note that the lower triangular entries are ignored even if they are different so use it with caution:

    julia> @constraint(model, LinearAlgebra.Symmetric(X) >= 0, PSDCone())
    +[X[1,1]  X[1,2];
    + X[1,2]  X[2,2]] ∈ PSDCone()

    (Note the (2, 1) element of the constraint is X[1,2], not X[2,1].)

    Complementarity constraints

    A mixed complementarity constraint F(x) ⟂ x consists of finding x in the interval [lb, ub], such that the following holds:

    • F(x) == 0 if lb < x < ub
    • F(x) >= 0 if lb == x
    • F(x) <= 0 if x == ub

    JuMP supports mixed complementarity constraints via complements(F(x), x) or F(x) ⟂ x in the @constraint macro. The interval set [lb, ub] is obtained from the variable bounds on x.

    For example, to define the problem 2x - 1 ⟂ x with x ∈ [0, ∞), do:

    julia> model = Model();
    +
    +julia> @variable(model, x >= 0)
    +x
    +
    +julia> @constraint(model, 2x - 1 ⟂ x)
    +[2 x - 1, x] ∈ MathOptInterface.Complements(2)

    This problem has a unique solution at x = 0.5.

    The perp operator can be entered in most editors (and the Julia REPL) by typing \perp<tab>.

    An alternative approach that does not require the symbol uses the complements function as follows:

    julia> @constraint(model, complements(2x - 1, x))
    +[2 x - 1, x] ∈ MathOptInterface.Complements(2)

    In both cases, the mapping F(x) is supplied as the first argument, and the matching variable x is supplied as the second.

    Vector-valued complementarity constraints are also supported:

    julia> @variable(model, -2 <= y[1:2] <= 2)
    +2-element Vector{VariableRef}:
    + y[1]
    + y[2]
    +
    +julia> M = [1 2; 3 4]
    +2×2 Matrix{Int64}:
    + 1  2
    + 3  4
    +
    +julia> q = [5, 6]
    +2-element Vector{Int64}:
    + 5
    + 6
    +
    +julia> @constraint(model, M * y + q ⟂ y)
    +[y[1] + 2 y[2] + 5, 3 y[1] + 4 y[2] + 6, y[1], y[2]] ∈ MathOptInterface.Complements(4)

    Boolean constraints

    Add a Boolean constraint (a MOI.EqualTo{Bool} set) using the := operator with a Bool right-hand side term:

    julia> model = GenericModel{Bool}();
    +
    +julia> @variable(model, x[1:2]);
    +
    +julia> @constraint(model, x[1] || x[2] := true)
    +x[1] || x[2] = true
    +
    +julia> @constraint(model, x[1] && x[2] := false)
    +x[1] && x[2] = false
    +
    +julia> model
    +A JuMP Model
    +Feasibility problem with:
    +Variables: 2
    +`GenericNonlinearExpr{GenericVariableRef{Bool}}`-in-`MathOptInterface.EqualTo{Bool}`: 2 constraints
    +Model mode: AUTOMATIC
    +CachingOptimizer state: NO_OPTIMIZER
    +Solver name: No optimizer attached.
    +Names registered in the model: x

    Boolean constraints should not be added using the == operator because JuMP will rewrite the constraint as lhs - rhs = 0, and because constraints like a == b == c require parentheses to disambiguate between (a == b) == c and a == (b == c). In contrast, a == b := c is equivalent to (a == b) := c:

    julia> model = Model();
    +
    +julia> @variable(model, x[1:2]);
    +
    +julia> rhs = false
    +false
    +
    +julia> @constraint(model, (x[1] == x[2]) == rhs)
    +(x[1] == x[2]) - 0.0 = 0
    +
    +julia> @constraint(model, x[1] == x[2] := rhs)
    +x[1] == x[2] = false
    diff --git a/previews/PR3545/manual/containers/index.html b/previews/PR3545/manual/containers/index.html new file mode 100644 index 00000000000..7300003e2bc --- /dev/null +++ b/previews/PR3545/manual/containers/index.html @@ -0,0 +1,227 @@ + +Containers · JuMP

    Containers

    JuMP provides specialized containers similar to AxisArrays that enable multi-dimensional arrays with non-integer indices.

    These containers are created automatically by JuMP's macros. Each macro has the same basic syntax:

    @macroname(model, name[key1=index1, index2; optional_condition], other stuff)

    The containers are generated by the name[key1=index1, index2; optional_condition] syntax. Everything else is specific to the particular macro.

    Containers can be named, for example, name[key=index], or unnamed, for example, [key=index]. We call unnamed containers anonymous.

    We call the bits inside the square brackets and before the ; the index sets. The index sets can be named, for example, [i = 1:4], or they can be unnamed, for example, [1:4].

    We call the bit inside the square brackets and after the ; the condition. Conditions are optional.

    In addition to the standard JuMP macros like @variable and @constraint, which construct containers of variables and constraints respectively, you can use Containers.@container to construct containers with arbitrary elements.

    We will use this macro to explain the three types of containers that are natively supported by JuMP: Array, Containers.DenseAxisArray, and Containers.SparseAxisArray.

    Array

    An Array is created when the index sets are rectangular and the index sets are of the form 1:n.

    julia> Containers.@container(x[i = 1:2, j = 1:3], (i, j))
    +2×3 Matrix{Tuple{Int64, Int64}}:
    + (1, 1)  (1, 2)  (1, 3)
    + (2, 1)  (2, 2)  (2, 3)

    The result is a normal Julia Array, so you can do all the usual things.

    Slicing

    Arrays can be sliced

    julia> x[:, 1]
    +2-element Vector{Tuple{Int64, Int64}}:
    + (1, 1)
    + (2, 1)
    +
    +julia> x[2, :]
    +3-element Vector{Tuple{Int64, Int64}}:
    + (2, 1)
    + (2, 2)
    + (2, 3)

    Looping

    Use eachindex to loop over the elements:

    julia> for key in eachindex(x)
    +           println(x[key])
    +       end
    +(1, 1)
    +(2, 1)
    +(1, 2)
    +(2, 2)
    +(1, 3)
    +(2, 3)

    Get the index sets

    Use axes to obtain the index sets:

    julia> axes(x)
    +(Base.OneTo(2), Base.OneTo(3))

    Broadcasting

    Broadcasting over an Array returns an Array

    julia> swap(x::Tuple) = (last(x), first(x))
    +swap (generic function with 1 method)
    +
    +julia> swap.(x)
    +2×3 Matrix{Tuple{Int64, Int64}}:
    + (1, 1)  (2, 1)  (3, 1)
    + (1, 2)  (2, 2)  (3, 2)

    Tables

    Use Containers.rowtable to convert the Array into a Tables.jl compatible Vector{<:NamedTuple}:

    julia> table = Containers.rowtable(x; header = [:I, :J, :value])
    +6-element Vector{NamedTuple{(:I, :J, :value), Tuple{Int64, Int64, Tuple{Int64, Int64}}}}:
    + (I = 1, J = 1, value = (1, 1))
    + (I = 2, J = 1, value = (2, 1))
    + (I = 1, J = 2, value = (1, 2))
    + (I = 2, J = 2, value = (2, 2))
    + (I = 1, J = 3, value = (1, 3))
    + (I = 2, J = 3, value = (2, 3))

    Because it supports the Tables.jl interface, you can pass it to any function which accepts a table as input:

    julia> import DataFrames;
    +
    +julia> DataFrames.DataFrame(table)
    +6×3 DataFrame
    + Row │ I      J      value
    +     │ Int64  Int64  Tuple…
    +─────┼──────────────────────
    +   1 │     1      1  (1, 1)
    +   2 │     2      1  (2, 1)
    +   3 │     1      2  (1, 2)
    +   4 │     2      2  (2, 2)
    +   5 │     1      3  (1, 3)
    +   6 │     2      3  (2, 3)

    DenseAxisArray

    A Containers.DenseAxisArray is created when the index sets are rectangular, but not of the form 1:n. The index sets can be of any type.

    julia> x = Containers.@container([i = 1:2, j = [:A, :B]], (i, j))
    +2-dimensional DenseAxisArray{Tuple{Int64, Symbol},2,...} with index sets:
    +    Dimension 1, Base.OneTo(2)
    +    Dimension 2, [:A, :B]
    +And data, a 2×2 Matrix{Tuple{Int64, Symbol}}:
    + (1, :A)  (1, :B)
    + (2, :A)  (2, :B)

    Slicing

    DenseAxisArrays can be sliced

    julia> x[:, :A]
    +1-dimensional DenseAxisArray{Tuple{Int64, Symbol},1,...} with index sets:
    +    Dimension 1, Base.OneTo(2)
    +And data, a 2-element Vector{Tuple{Int64, Symbol}}:
    + (1, :A)
    + (2, :A)
    +
    +julia> x[1, :]
    +1-dimensional DenseAxisArray{Tuple{Int64, Symbol},1,...} with index sets:
    +    Dimension 1, [:A, :B]
    +And data, a 2-element Vector{Tuple{Int64, Symbol}}:
    + (1, :A)
    + (1, :B)

    Looping

    Use eachindex to loop over the elements:

    julia> for key in eachindex(x)
    +           println(x[key])
    +       end
    +(1, :A)
    +(2, :A)
    +(1, :B)
    +(2, :B)

    Get the index sets

    Use axes to obtain the index sets:

    julia> axes(x)
    +(Base.OneTo(2), [:A, :B])

    Broadcasting

    Broadcasting over a DenseAxisArray returns a DenseAxisArray

    julia> swap(x::Tuple) = (last(x), first(x))
    +swap (generic function with 1 method)
    +
    +julia> swap.(x)
    +2-dimensional DenseAxisArray{Tuple{Symbol, Int64},2,...} with index sets:
    +    Dimension 1, Base.OneTo(2)
    +    Dimension 2, [:A, :B]
    +And data, a 2×2 Matrix{Tuple{Symbol, Int64}}:
    + (:A, 1)  (:B, 1)
    + (:A, 2)  (:B, 2)

    Access internal data

    Use Array(x) to copy the internal data array into a new Array:

    julia> Array(x)
    +2×2 Matrix{Tuple{Int64, Symbol}}:
    + (1, :A)  (1, :B)
    + (2, :A)  (2, :B)

    To access the internal data without a copy, use x.data.

    julia> x.data
    +2×2 Matrix{Tuple{Int64, Symbol}}:
    + (1, :A)  (1, :B)
    + (2, :A)  (2, :B)

    Tables

    Use Containers.rowtable to convert the DenseAxisArray into a Tables.jl compatible Vector{<:NamedTuple}:

    julia> table = Containers.rowtable(x; header = [:I, :J, :value])
    +4-element Vector{NamedTuple{(:I, :J, :value), Tuple{Int64, Symbol, Tuple{Int64, Symbol}}}}:
    + (I = 1, J = :A, value = (1, :A))
    + (I = 2, J = :A, value = (2, :A))
    + (I = 1, J = :B, value = (1, :B))
    + (I = 2, J = :B, value = (2, :B))

    Because it supports the Tables.jl interface, you can pass it to any function which accepts a table as input:

    julia> import DataFrames;
    +
    +julia> DataFrames.DataFrame(table)
    +4×3 DataFrame
    + Row │ I      J       value
    +     │ Int64  Symbol  Tuple…
    +─────┼────────────────────────
    +   1 │     1  A       (1, :A)
    +   2 │     2  A       (2, :A)
    +   3 │     1  B       (1, :B)
    +   4 │     2  B       (2, :B)

    Keyword indexing

    If all axes are named, you can use keyword indexing:

    julia> x[i = 2, j = :A]
    +(2, :A)
    +
    +julia> x[i = :, j = :B]
    +1-dimensional DenseAxisArray{Tuple{Int64, Symbol},1,...} with index sets:
    +    Dimension 1, Base.OneTo(2)
    +And data, a 2-element Vector{Tuple{Int64, Symbol}}:
    + (1, :B)
    + (2, :B)

    SparseAxisArray

    A Containers.SparseAxisArray is created when the index sets are non-rectangular. This occurs in two circumstances:

    An index depends on a prior index:

    julia> Containers.@container([i = 1:2, j = i:2], (i, j))
    +JuMP.Containers.SparseAxisArray{Tuple{Int64, Int64}, 2, Tuple{Int64, Int64}} with 3 entries:
    +  [1, 1]  =  (1, 1)
    +  [1, 2]  =  (1, 2)
    +  [2, 2]  =  (2, 2)

    The [indices; condition] syntax is used:

    julia> x = Containers.@container([i = 1:3, j = [:A, :B]; i > 1], (i, j))
    +JuMP.Containers.SparseAxisArray{Tuple{Int64, Symbol}, 2, Tuple{Int64, Symbol}} with 4 entries:
    +  [2, A]  =  (2, :A)
    +  [2, B]  =  (2, :B)
    +  [3, A]  =  (3, :A)
    +  [3, B]  =  (3, :B)

    Here we have the index sets i = 1:3, j = [:A, :B], followed by ;, and then a condition, which evaluates to true or false: i > 1.

    Slicing

    Slicing is supported:

    julia> y = x[:, :B]
    +JuMP.Containers.SparseAxisArray{Tuple{Int64, Symbol}, 1, Tuple{Int64}} with 2 entries:
    +  [2]  =  (2, :B)
    +  [3]  =  (3, :B)

    Looping

    Use eachindex to loop over the elements:

    julia> for key in eachindex(y)
    +           println(y[key])
    +       end
    +(2, :B)
    +(3, :B)

    Broadcasting

    Broadcasting over a SparseAxisArray returns a SparseAxisArray

    julia> swap(x::Tuple) = (last(x), first(x))
    +swap (generic function with 1 method)
    +
    +julia> swap.(y)
    +JuMP.Containers.SparseAxisArray{Tuple{Symbol, Int64}, 1, Tuple{Int64}} with 2 entries:
    +  [2]  =  (:B, 2)
    +  [3]  =  (:B, 3)

    Tables

    Use Containers.rowtable to convert the SparseAxisArray into a Tables.jl compatible Vector{<:NamedTuple}:

    julia> table = Containers.rowtable(x; header = [:I, :J, :value])
    +4-element Vector{NamedTuple{(:I, :J, :value), Tuple{Int64, Symbol, Tuple{Int64, Symbol}}}}:
    + (I = 2, J = :A, value = (2, :A))
    + (I = 2, J = :B, value = (2, :B))
    + (I = 3, J = :A, value = (3, :A))
    + (I = 3, J = :B, value = (3, :B))

    Because it supports the Tables.jl interface, you can pass it to any function which accepts a table as input:

    julia> import DataFrames;
    +
    +julia> DataFrames.DataFrame(table)
    +4×3 DataFrame
    + Row │ I      J       value
    +     │ Int64  Symbol  Tuple…
    +─────┼────────────────────────
    +   1 │     2  A       (2, :A)
    +   2 │     2  B       (2, :B)
    +   3 │     3  A       (3, :A)
    +   4 │     3  B       (3, :B)

    Keyword indexing

    If all axes are named, you can use keyword indexing:

    julia> x[i = 2, j = :A]
    +(2, :A)
    +
    +julia> x[i = :, j = :B]
    +JuMP.Containers.SparseAxisArray{Tuple{Int64, Symbol}, 1, Tuple{Int64}} with 2 entries:
    +  [2]  =  (2, :B)
    +  [3]  =  (3, :B)

    Forcing the container type

    Pass container = T to use T as the container. For example:

    julia> Containers.@container([i = 1:2, j = 1:2], i + j, container = Array)
    +2×2 Matrix{Int64}:
    + 2  3
    + 3  4
    +
    +julia> Containers.@container([i = 1:2, j = 1:2], i + j, container = Dict)
    +Dict{Tuple{Int64, Int64}, Int64} with 4 entries:
    +  (1, 2) => 3
    +  (1, 1) => 2
    +  (2, 2) => 4
    +  (2, 1) => 3

    You can also pass DenseAxisArray or SparseAxisArray.

    How different container types are chosen

    If the compiler can prove at compile time that the index sets are rectangular, and indexed by a compact set of integers that start at 1, Containers.@container will return an array. This is the case if your index sets are visible to the macro as 1:n:

    julia> Containers.@container([i=1:3, j=1:5], i + j)
    +3×5 Matrix{Int64}:
    + 2  3  4  5  6
    + 3  4  5  6  7
    + 4  5  6  7  8

    or an instance of Base.OneTo:

    julia> set = Base.OneTo(3)
    +Base.OneTo(3)
    +
    +julia> Containers.@container([i=set, j=1:5], i + j)
    +3×5 Matrix{Int64}:
    + 2  3  4  5  6
    + 3  4  5  6  7
    + 4  5  6  7  8

    If the compiler can prove that the index set is rectangular, but not necessarily of the form 1:n at compile time, then a Containers.DenseAxisArray will be constructed instead:

    julia> set = 1:3
    +1:3
    +
    +julia> Containers.@container([i=set, j=1:5], i + j)
    +2-dimensional DenseAxisArray{Int64,2,...} with index sets:
    +    Dimension 1, 1:3
    +    Dimension 2, Base.OneTo(5)
    +And data, a 3×5 Matrix{Int64}:
    + 2  3  4  5  6
    + 3  4  5  6  7
    + 4  5  6  7  8
    Info

    What happened here? Although we know that set contains 1:3, at compile time the typeof(set) is a UnitRange{Int}. Therefore, Julia can't prove that the range starts at 1 (it only finds this out at runtime), and it defaults to a DenseAxisArray. The case where we explicitly wrote i = 1:3 worked because the macro can "see" the 1 at compile time.

    However, if you know that the indices do form an Array, you can force the container type with container = Array:

    julia> set = 1:3
    +1:3
    +
    +julia> Containers.@container([i=set, j=1:5], i + j, container = Array)
    +3×5 Matrix{Int64}:
    + 2  3  4  5  6
    + 3  4  5  6  7
    + 4  5  6  7  8

    Here's another example with something similar:

    julia> a = 1
    +1
    +
    +julia> Containers.@container([i=a:3, j=1:5], i + j)
    +2-dimensional DenseAxisArray{Int64,2,...} with index sets:
    +    Dimension 1, 1:3
    +    Dimension 2, Base.OneTo(5)
    +And data, a 3×5 Matrix{Int64}:
    + 2  3  4  5  6
    + 3  4  5  6  7
    + 4  5  6  7  8
    +
    +julia> Containers.@container([i=1:a, j=1:5], i + j)
    +1×5 Matrix{Int64}:
    + 2  3  4  5  6

    Finally, if the compiler cannot prove that the index set is rectangular, a Containers.SparseAxisArray will be created.

    This occurs when some indices depend on a previous one:

    julia> Containers.@container([i=1:3, j=1:i], i + j)
    +JuMP.Containers.SparseAxisArray{Int64, 2, Tuple{Int64, Int64}} with 6 entries:
    +  [1, 1]  =  2
    +  [2, 1]  =  3
    +  [2, 2]  =  4
    +  [3, 1]  =  4
    +  [3, 2]  =  5
    +  [3, 3]  =  6

    or if there is a condition on the index sets:

    julia> Containers.@container([i = 1:5; isodd(i)], i^2)
    +JuMP.Containers.SparseAxisArray{Int64, 1, Tuple{Int64}} with 3 entries:
    +  [1]  =  1
    +  [3]  =  9
    +  [5]  =  25

    The condition can depend on multiple indices, the only requirement is that it is an expression that returns true or false:

    julia> condition(i, j) = isodd(i) && iseven(j)
    +condition (generic function with 1 method)
    +
    +julia> Containers.@container([i = 1:2, j = 1:4; condition(i, j)], i + j)
    +JuMP.Containers.SparseAxisArray{Int64, 2, Tuple{Int64, Int64}} with 2 entries:
    +  [1, 2]  =  3
    +  [1, 4]  =  5
    diff --git a/previews/PR3545/manual/expressions/index.html b/previews/PR3545/manual/expressions/index.html new file mode 100644 index 00000000000..d3d98292f84 --- /dev/null +++ b/previews/PR3545/manual/expressions/index.html @@ -0,0 +1,230 @@ + +Expressions · JuMP

    Expressions

    JuMP has three types of expressions: affine, quadratic, and nonlinear. These expressions can be inserted into constraints or into the objective. This is particularly useful if an expression is used in multiple places in the model.

    Affine expressions

    There are four ways of constructing an affine expression in JuMP: with the @expression macro, with operator overloading, with the AffExpr constructor, and with add_to_expression!.

    Macros

    The recommended way to create an affine expression is via the @expression macro.

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> @variable(model, y)
    +y
    +
    +julia> ex = @expression(model, 2x + y - 1)
    +2 x + y - 1

    This expression can be used in the objective or added to a constraint. For example:

    julia> @objective(model, Min, 2 * ex - 1)
    +4 x + 2 y - 3
    +
    +julia> objective_function(model)
    +4 x + 2 y - 3

    Just like variables and constraints, named expressions can also be created. For example

    julia> model = Model();
    +
    +julia> @variable(model, x[i = 1:3]);
    +
    +julia> @expression(model, expr[i = 1:3], i * sum(x[j] for j in i:3));
    +
    +julia> expr
    +3-element Vector{AffExpr}:
    + x[1] + x[2] + x[3]
    + 2 x[2] + 2 x[3]
    + 3 x[3]
    Tip

    You can read more about containers in the Containers section.

    Operator overloading

    Expressions can also be created without macros. However, note that in some cases, this can be much slower that constructing an expression using macros.

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> @variable(model, y)
    +y
    +
    +julia> ex = 2x + y - 1
    +2 x + y - 1

    Constructors

    A third way to create an affine expression is by the AffExpr constructor. The first argument is the constant term, and the remaining arguments are variable-coefficient pairs.

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> @variable(model, y)
    +y
    +
    +julia> ex = AffExpr(-1.0, x => 2.0, y => 1.0)
    +2 x + y - 1

    add_to_expression!

    The fourth way to create an affine expression is by using add_to_expression!. Compared to the operator overloading method, this approach is faster because it avoids constructing temporary objects. The @expression macro uses add_to_expression! behind-the-scenes.

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> @variable(model, y)
    +y
    +
    +julia> ex = AffExpr(-1.0)
    +-1
    +
    +julia> add_to_expression!(ex, 2.0, x)
    +2 x - 1
    +
    +julia> add_to_expression!(ex, 1.0, y)
    +2 x + y - 1
    Warning

    Read the section Initializing arrays for some cases to be careful about when using add_to_expression!.

    Removing zero terms

    Use drop_zeros! to remove terms from an affine expression with a 0 coefficient.

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> @expression(model, ex, x + 1 - x)
    +0 x + 1
    +
    +julia> drop_zeros!(ex)
    +
    +julia> ex
    +1

    Coefficients

    Use coefficient to return the coefficient associated with a variable in an affine expression.

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> @variable(model, y)
    +y
    +
    +julia> @expression(model, ex, 2x + 1)
    +2 x + 1
    +
    +julia> coefficient(ex, x)
    +2.0
    +
    +julia> coefficient(ex, y)
    +0.0

    Quadratic expressions

    Like affine expressions, there are four ways of constructing a quadratic expression in JuMP: macros, operator overloading, constructors, and add_to_expression!.

    Macros

    The @expression macro can be used to create quadratic expressions by including quadratic terms.

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> @variable(model, y)
    +y
    +
    +julia> ex = @expression(model, x^2 + 2 * x * y + y^2 + x + y - 1)
    +x² + 2 x*y + y² + x + y - 1

    Operator overloading

    Operator overloading can also be used to create quadratic expressions. The same performance warning (discussed in the affine expression section) applies.

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> @variable(model, y)
    +y
    +
    +julia> ex = x^2 + 2 * x * y + y^2 + x + y - 1
    +x² + 2 x*y + y² + x + y - 1

    Constructors

    Quadratic expressions can also be created using the QuadExpr constructor. The first argument is an affine expression, and the remaining arguments are pairs, where the first term is a JuMP.UnorderedPair and the second term is the coefficient.

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> @variable(model, y)
    +y
    +
    +julia> aff_expr = AffExpr(-1.0, x => 1.0, y => 1.0)
    +x + y - 1
    +
    +julia> quad_expr = QuadExpr(
    +           aff_expr,
    +           UnorderedPair(x, x) => 1.0,
    +           UnorderedPair(x, y) => 2.0,
    +           UnorderedPair(y, y) => 1.0,
    +       )
    +x² + 2 x*y + y² + x + y - 1

    add_to_expression!

    Finally, add_to_expression! can also be used to add quadratic terms.

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> @variable(model, y)
    +y
    +
    +julia> ex = QuadExpr(x + y - 1.0)
    +x + y - 1
    +
    +julia> add_to_expression!(ex, 1.0, x, x)
    +x² + x + y - 1
    +
    +julia> add_to_expression!(ex, 2.0, x, y)
    +x² + 2 x*y + x + y - 1
    +
    +julia> add_to_expression!(ex, 1.0, y, y)
    +x² + 2 x*y + y² + x + y - 1
    Warning

    Read the section Initializing arrays for some cases to be careful about when using add_to_expression!.

    Removing zero terms

    Use drop_zeros! to remove terms from a quadratic expression with a 0 coefficient.

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> @expression(model, ex, x^2 + x + 1 - x^2)
    +0 x² + x + 1
    +
    +julia> drop_zeros!(ex)
    +
    +julia> ex
    +x + 1

    Coefficients

    Use coefficient to return the coefficient associated with a pair of variables in a quadratic expression.

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> @variable(model, y)
    +y
    +
    +julia> @expression(model, ex, 2*x*y + 3*x)
    +2 x*y + 3 x
    +
    +julia> coefficient(ex, x, y)
    +2.0
    +
    +julia> coefficient(ex, x, x)
    +0.0
    +
    +julia> coefficient(ex, y, x)
    +2.0
    +
    +julia> coefficient(ex, x)
    +3.0

    Nonlinear expressions

    Nonlinear expressions in JuMP are represented by a NonlinearExpr object. See Nonlinear expressions in detail for more details.

    Initializing arrays

    JuMP implements zero(AffExpr) and one(AffExpr) to support various functions in LinearAlgebra (for example, accessing the off-diagonal of a Diagonal matrix).

    julia> zero(AffExpr)
    +0
    +
    +julia> one(AffExpr)
    +1

    However, this can result in a subtle bug if you call add_to_expression! or the MutableArithmetics API on an element created by zeros or ones:

    julia> x = zeros(AffExpr, 2)
    +2-element Vector{AffExpr}:
    + 0
    + 0
    +
    +julia> add_to_expression!(x[1], 1.1)
    +1.1
    +
    +julia> x
    +2-element Vector{AffExpr}:
    + 1.1
    + 1.1

    Notice how we modified x[1], but we also changed x[2]!

    This happened because zeros(AffExpr, 2) calls zero(AffExpr) once to obtain a zero element, and then creates an appropriately sized array filled with the same element.

    This also happens with broadcasting calls containing a conversion of 0 or 1:

    julia> x = Vector{AffExpr}(undef, 2)
    +2-element Vector{AffExpr}:
    + #undef
    + #undef
    +
    +julia> x .= 0
    +2-element Vector{AffExpr}:
    + 0
    + 0
    +
    +julia> add_to_expression!(x[1], 1.1)
    +1.1
    +
    +julia> x
    +2-element Vector{AffExpr}:
    + 1.1
    + 1.1

    The recommended way to create an array of empty expressions is as follows:

    julia> x = Vector{AffExpr}(undef, 2)
    +2-element Vector{AffExpr}:
    + #undef
    + #undef
    +
    +julia> for i in eachindex(x)
    +           x[i] = AffExpr(0.0)
    +       end
    +
    +julia> add_to_expression!(x[1], 1.1)
    +1.1
    +
    +julia> x
    +2-element Vector{AffExpr}:
    + 1.1
    + 0

    Alternatively, use non-mutating operation to avoid updating x[1] in-place:

    julia> x = zeros(AffExpr, 2)
    +2-element Vector{AffExpr}:
    + 0
    + 0
    +
    +julia> x[1] += 1.1
    +1.1
    +
    +julia> x
    +2-element Vector{AffExpr}:
    + 1.1
    + 0

    Note that for large expressions this will be slower due to the allocation of additional temporary objects.

    diff --git a/previews/PR3545/manual/models/index.html b/previews/PR3545/manual/models/index.html new file mode 100644 index 00000000000..d9c1d9508d9 --- /dev/null +++ b/previews/PR3545/manual/models/index.html @@ -0,0 +1,237 @@ + +Models · JuMP

    Models

    JuMP models are the fundamental building block that we use to construct optimization problems. They hold things like the variables and constraints, as well as which solver to use and even solution information.

    Info

    JuMP uses "optimizer" as a synonym for "solver." Our convention is to use "solver" to refer to the underlying software, and use "optimizer" to refer to the Julia object that wraps the solver. For example, HiGHS is a solver, and HiGHS.Optimizer is an optimizer.

    Tip

    See Supported solvers for a list of available solvers.

    Create a model

    Create a model by passing an optimizer to Model:

    julia> model = Model(HiGHS.Optimizer)
    +A JuMP Model
    +Feasibility problem with:
    +Variables: 0
    +Model mode: AUTOMATIC
    +CachingOptimizer state: EMPTY_OPTIMIZER
    +Solver name: HiGHS

    If you don't know which optimizer you will be using at creation time, create a model without an optimizer, and then call set_optimizer at any time prior to optimize!:

    julia> model = Model()
    +A JuMP Model
    +Feasibility problem with:
    +Variables: 0
    +Model mode: AUTOMATIC
    +CachingOptimizer state: NO_OPTIMIZER
    +Solver name: No optimizer attached.
    +
    +julia> set_optimizer(model, HiGHS.Optimizer)
    Tip

    Don't know what the fields Model mode and CachingOptimizer state mean? Read the Backends section.

    What is the difference?

    For most models, there is no difference between passing the optimizer to Model, and calling set_optimizer.

    However, if an optimizer does not support a constraint in the model, the timing of when an error will be thrown can differ:

    • If you pass an optimizer, an error will be thrown when you try to add the constraint.
    • If you call set_optimizer, an error will be thrown when you try to solve the model via optimize!.

    Therefore, most users should pass an optimizer to Model because it provides the earliest warning that your solver is not suitable for the model you are trying to build. However, if you are modifying a problem by adding and deleting different constraint types, you may need to use set_optimizer. See Switching optimizer for the relaxed problem for an example of when this is useful.

    Reducing time-to-first-solve latency

    By default, JuMP uses bridges to reformulate the model you are building into an equivalent model supported by the solver.

    However, if your model is already supported by the solver, bridges add latency (read The "time-to-first-solve" issue). This is particularly noticeable for small models.

    To reduce the "time-to-first-solve,s" try passing add_bridges = false.

    julia> model = Model(HiGHS.Optimizer; add_bridges = false);

    or

    julia> model = Model();
    +
    +julia> set_optimizer(model, HiGHS.Optimizer; add_bridges = false)

    However, be wary. If your model and solver combination needs bridges, an error will be thrown:

    julia> model = Model(SCS.Optimizer; add_bridges = false);
    +
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> @constraint(model, 2x <= 1)
    +ERROR: Constraints of type MathOptInterface.ScalarAffineFunction{Float64}-in-MathOptInterface.LessThan{Float64} are not supported by the solver.
    +
    +If you expected the solver to support your problem, you may have an error in your formulation. Otherwise, consider using a different solver.
    +
    +The list of available solvers, along with the problem types they support, is available at https://jump.dev/JuMP.jl/stable/installation/#Supported-solvers.
    +[...]

    Solvers which expect environments

    Some solvers accept (or require) positional arguments such as a license environment or a path to a binary executable. For these solvers, you can pass a function to Model which takes zero arguments and returns an instance of the optimizer.

    A common use-case for this is passing an environment or sub-solver to the optimizer:

    julia> import HiGHS
    +
    +julia> import MultiObjectiveAlgorithms as MOA
    +
    +julia> model = Model(() -> MOA.Optimizer(HiGHS.Optimizer))
    +A JuMP Model
    +Feasibility problem with:
    +Variables: 0
    +Model mode: AUTOMATIC
    +CachingOptimizer state: EMPTY_OPTIMIZER
    +Solver name: MOA[algorithm=MultiObjectiveAlgorithms.Lexicographic, optimizer=HiGHS]

    Solver options

    JuMP uses "attribute" as a synonym for "option." Use optimizer_with_attributes to create an optimizer with some attributes initialized:

    julia> model = Model(
    +           optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false),
    +       )
    +A JuMP Model
    +Feasibility problem with:
    +Variables: 0
    +Model mode: AUTOMATIC
    +CachingOptimizer state: EMPTY_OPTIMIZER
    +Solver name: HiGHS

    Alternatively, use set_attribute to set an attribute after the model has been created:

    julia> model = Model(HiGHS.Optimizer);
    +
    +julia> set_attribute(model, "output_flag", false)
    +
    +julia> get_attribute(model, "output_flag")
    +false

    You can also modify attributes within an optimizer_with_attributes object:

    julia> solver = optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => true);
    +
    +julia> get_attribute(solver, "output_flag")
    +true
    +
    +julia> set_attribute(solver, "output_flag", false)
    +
    +julia> get_attribute(solver, "output_flag")
    +false
    +
    +julia> model = Model(solver);

    Changing the number types

    By default, the coefficients of affine and quadratic expressions are numbers of type either Float64 or Complex{Float64} (see Complex number support).

    The type Float64 can be changed using the GenericModel constructor:

    julia> model = GenericModel{Rational{BigInt}}();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> @expression(model, expr, 1 // 3 * x)
    +1//3 x
    +
    +julia> typeof(expr)
    +GenericAffExpr{Rational{BigInt}, GenericVariableRef{Rational{BigInt}}}

    Using a value_type other than Float64 is an advanced operation and should be used only if the underlying solver actually solves the problem using the provided value type.

    Warning

    Nonlinear Modeling is currently restricted to the Float64 number type.

    By default, show(model) will print a summary of the problem:

    julia> model = Model(); @variable(model, x >= 0); @objective(model, Max, x);
    +
    +julia> model
    +A JuMP Model
    +Maximization problem with:
    +Variable: 1
    +Objective function type: VariableRef
    +`VariableRef`-in-`MathOptInterface.GreaterThan{Float64}`: 1 constraint
    +Model mode: AUTOMATIC
    +CachingOptimizer state: NO_OPTIMIZER
    +Solver name: No optimizer attached.
    +Names registered in the model: x

    Use print to print the formulation of the model (in IJulia, this will render as LaTeX.

    julia> print(model)
    +Max x
    +Subject to
    + x ≥ 0
    Warning

    This format is specific to JuMP and may change in any future release. It is not intended to be an instance format. To write the model to a file, use write_to_file instead.

    Use latex_formulation to display the model in LaTeX form.

    julia> latex_formulation(model)
    +$$ \begin{aligned}
    +\max\quad & x\\
    +\text{Subject to} \quad & x \geq 0\\
    +\end{aligned} $$

    In IJulia (and Documenter), ending a cell in with latex_formulation will render the model in LaTeX:

    latex_formulation(model)

    \[ \begin{aligned} +\max\quad & x\\ +\text{Subject to} \quad & x \geq 0\\ +\end{aligned} \]

    Turn off output

    Use set_silent and unset_silent to disable or enable printing output from the solver.

    julia> model = Model(HiGHS.Optimizer);
    +
    +julia> set_silent(model)
    +
    +julia> unset_silent(model)
    Tip

    Most solvers will also have a solver-specific option to provide finer-grained control over the output. Consult their README's for details.

    Set a time limit

    Use set_time_limit_sec, unset_time_limit_sec, and time_limit_sec to manage time limits.

    julia> model = Model(HiGHS.Optimizer);
    +
    +julia> set_time_limit_sec(model, 60.0)
    +
    +
    +julia> time_limit_sec(model)
    +60.0
    +
    +julia> unset_time_limit_sec(model)
    +
    +julia> limit = time_limit_sec(model)
    +
    +julia> limit === nothing
    +true

    If your time limit is encoded as a Dates.Period object, use the following code to convert it to Float64 for set_time_limit_sec:

    julia> import Dates
    +
    +julia> seconds(x::Dates.Period) = 1e-3 * Dates.value(round(x, Dates.Millisecond))
    +seconds (generic function with 1 method)
    +
    +julia> set_time_limit_sec(model, seconds(Dates.Hour(1)))
    +
    +julia> time_limit_sec(model)
    +3600.0
    Info

    Some solvers do not support time limits. In these cases, an error will be thrown.

    Write a model to file

    JuMP can write models to a variety of file-formats using write_to_file and Base.write.

    For most common file formats, the file type will be detected from the extension.

    For example, here is how to write an MPS file:

    julia> model = Model();
    +
    +julia> write_to_file(model, "model.mps")

    Other supported file formats include:

    To write to a specific io::IO, use Base.write. Specify the file type by passing a MOI.FileFormats.FileFormat enum.

    julia> model = Model();
    +
    +julia> io = IOBuffer();
    +
    +julia> write(io, model; format = MOI.FileFormats.FORMAT_MPS)

    Read a model from file

    JuMP models can be created from file formats using read_from_file and Base.read.

    julia> model = read_from_file("model.mps")
    +A JuMP Model
    +Minimization problem with:
    +Variables: 0
    +Objective function type: AffExpr
    +Model mode: AUTOMATIC
    +CachingOptimizer state: NO_OPTIMIZER
    +Solver name: No optimizer attached.
    +
    +julia> seekstart(io);
    +
    +julia> model2 = read(io, Model; format = MOI.FileFormats.FORMAT_MPS)
    +A JuMP Model
    +Minimization problem with:
    +Variables: 0
    +Objective function type: AffExpr
    +Model mode: AUTOMATIC
    +CachingOptimizer state: NO_OPTIMIZER
    +Solver name: No optimizer attached.
    Note

    Because file formats do not serialize the containers of JuMP variables and constraints, the names in the model will not be registered. Therefore, you cannot access named variables and constraints via model[:x]. Instead, use variable_by_name or constraint_by_name to access specific variables or constraints.

    Relax integrality

    Use relax_integrality to remove any integrality constraints from the model, such as integer and binary restrictions on variables. relax_integrality returns a function that can be later called with zero arguments to re-add the removed constraints:

    julia> model = Model();
    +
    +julia> @variable(model, x, Int)
    +x
    +
    +julia> num_constraints(model, VariableRef, MOI.Integer)
    +1
    +
    +julia> undo = relax_integrality(model);
    +
    +julia> num_constraints(model, VariableRef, MOI.Integer)
    +0
    +
    +julia> undo()
    +
    +julia> num_constraints(model, VariableRef, MOI.Integer)
    +1

    Switching optimizer for the relaxed problem

    A common reason for relaxing integrality is to compute dual variables of the relaxed problem. However, some mixed-integer linear solvers (for example, Cbc) do not return dual solutions, even if the problem does not have integrality restrictions.

    Therefore, after relax_integrality you should call set_optimizer with a solver that does support dual solutions, such as Clp.

    For example, instead of:

    using JuMP, Cbc
    +model = Model(Cbc.Optimizer)
    +@variable(model, x, Int)
    +undo = relax_integrality(model)
    +optimize!(model)
    +reduced_cost(x)  # Errors

    do:

    using JuMP, Cbc, Clp
    +model = Model(Cbc.Optimizer)
    +@variable(model, x, Int)
    +undo = relax_integrality(model)
    +set_optimizer(model, Clp.Optimizer)
    +optimize!(model)
    +reduced_cost(x)  # Works

    Backends

    Info

    This section discusses advanced features of JuMP. For new users, you may want to skip this section. You don't need to know how JuMP manages problems behind the scenes to create and solve JuMP models.

    A JuMP Model is a thin layer around a backend of type MOI.ModelLike that stores the optimization problem and acts as the optimization solver.

    However, if you construct a model like Model(HiGHS.Optimizer), the backend is not a HiGHS.Optimizer, but a more complicated object.

    From JuMP, the MOI backend can be accessed using the backend function. Let's see what the backend of a JuMP Model is:

    julia> model = Model(HiGHS.Optimizer);
    +
    +julia> b = backend(model)
    +MOIU.CachingOptimizer{MOIB.LazyBridgeOptimizer{HiGHS.Optimizer}, MOIU.UniversalFallback{MOIU.Model{Float64}}}
    +in state EMPTY_OPTIMIZER
    +in mode AUTOMATIC
    +with model cache MOIU.UniversalFallback{MOIU.Model{Float64}}
    +  fallback for MOIU.Model{Float64}
    +with optimizer MOIB.LazyBridgeOptimizer{HiGHS.Optimizer}
    +  with 0 variable bridges
    +  with 0 constraint bridges
    +  with 0 objective bridges
    +  with inner model A HiGHS model with 0 columns and 0 rows.

    Uh oh. Even though we passed a HiGHS.Optimizer, the backend is a much more complicated object.

    CachingOptimizer

    A MOIU.CachingOptimizer is a layer that abstracts the difference between solvers that support incremental modification (for example, they support adding variables one-by-one), and solvers that require the entire problem in a single API call (for example, they only accept the A, b and c matrices of a linear program).

    It has two parts:

    1. A cache, where the model can be built and modified incrementally
      julia> b.model_cache
      +MOIU.UniversalFallback{MOIU.Model{Float64}}
      +fallback for MOIU.Model{Float64}
    2. An optimizer, which is used to solve the problem
      julia> b.optimizer
      +MOIB.LazyBridgeOptimizer{HiGHS.Optimizer}
      +with 0 variable bridges
      +with 0 constraint bridges
      +with 0 objective bridges
      +with inner model A HiGHS model with 0 columns and 0 rows.
    Info

    The LazyBridgeOptimizer section explains what a LazyBridgeOptimizer is.

    The CachingOptimizer has logic to decide when to copy the problem from the cache to the optimizer, and when it can efficiently update the optimizer in-place.

    A CachingOptimizer may be in one of three possible states:

    • NO_OPTIMIZER: The CachingOptimizer does not have any optimizer.
    • EMPTY_OPTIMIZER: The CachingOptimizer has an empty optimizer, and it is not synchronized with the cached model.
    • ATTACHED_OPTIMIZER: The CachingOptimizer has an optimizer, and it is synchronized with the cached model.

    A CachingOptimizer has two modes of operation:

    • AUTOMATIC: The CachingOptimizer changes its state when necessary. For example, optimize! will automatically call attach_optimizer (an optimizer must have been previously set). Attempting to add a constraint or perform a modification not supported by the optimizer results in a drop to EMPTY_OPTIMIZER mode.
    • MANUAL: The user must change the state of the CachingOptimizer using MOIU.reset_optimizer(::JuMP.Model), MOIU.drop_optimizer(::JuMP.Model), and MOIU.attach_optimizer(::JuMP.Model). Attempting to perform an operation in the incorrect state results in an error.

    By default Model will create a CachingOptimizer in AUTOMATIC mode.

    LazyBridgeOptimizer

    The second layer that JuMP applies automatically is a MOI.Bridges.LazyBridgeOptimizer. A MOI.Bridges.LazyBridgeOptimizer is an MOI layer that attempts to transform the problem from the formulation provided by the user into an equivalent problem supported by the solver. This may involve adding new variables and constraints to the optimizer. The transformations are selected from a set of known recipes called bridges.

    A common example of a bridge is one that splits an interval constraint like @constraint(model, 1 <= x + y <= 2) into two constraints, @constraint(model, x + y >= 1) and @constraint(model, x + y <= 2).

    Use the add_bridges = false keyword to remove the bridging layer:

    julia> model = Model(HiGHS.Optimizer; add_bridges = false)
    +A JuMP Model
    +Feasibility problem with:
    +Variables: 0
    +Model mode: AUTOMATIC
    +CachingOptimizer state: EMPTY_OPTIMIZER
    +Solver name: HiGHS
    +
    +julia> backend(model)
    +MOIU.CachingOptimizer{HiGHS.Optimizer, MOIU.UniversalFallback{MOIU.Model{Float64}}}
    +in state EMPTY_OPTIMIZER
    +in mode AUTOMATIC
    +with model cache MOIU.UniversalFallback{MOIU.Model{Float64}}
    +  fallback for MOIU.Model{Float64}
    +with optimizer A HiGHS model with 0 columns and 0 rows.

    Bridges can be added and removed from a MOI.Bridges.LazyBridgeOptimizer using add_bridge and remove_bridge. Use print_active_bridges to see which bridges are used to reformulate the model. Read the Ellipsoid approximation tutorial for more details.

    Unsafe backend

    In some advanced use-cases, it is necessary to work with the inner optimization model directly. To access this model, use unsafe_backend:

    julia> backend(model)
    +MOIU.CachingOptimizer{MOIB.LazyBridgeOptimizer{HiGHS.Optimizer}, MOIU.UniversalFallback{MOIU.Model{Float64}}}
    +in state EMPTY_OPTIMIZER
    +in mode AUTOMATIC
    +with model cache MOIU.UniversalFallback{MOIU.Model{Float64}}
    +  fallback for MOIU.Model{Float64}
    +with optimizer MOIB.LazyBridgeOptimizer{HiGHS.Optimizer}
    +  with 0 variable bridges
    +  with 0 constraint bridges
    +  with 0 objective bridges
    +  with inner model A HiGHS model with 0 columns and 0 rows.
    +
    +julia> unsafe_backend(model)
    +A HiGHS model with 0 columns and 0 rows.
    Warning

    backend and unsafe_backend are advanced routines. Read their docstrings to understand the caveats of their usage, and only call them if you wish to access low-level solver-specific functions.

    Direct mode

    Using a CachingOptimizer results in an additional copy of the model being stored by JuMP in the .model_cache field. To avoid this overhead, create a JuMP model using direct_model:

    julia> model = direct_model(HiGHS.Optimizer())
    +A JuMP Model
    +Feasibility problem with:
    +Variables: 0
    +Model mode: DIRECT
    +Solver name: HiGHS
    Warning

    Solvers that do not support incremental modification do not support direct_model. An error will be thrown, telling you to use a CachingOptimizer instead.

    The benefit of using direct_model is that there are no extra layers (for example, Cachingoptimizer or LazyBridgeOptimizer) between model and the provided optimizer:

    julia> backend(model)
    +A HiGHS model with 0 columns and 0 rows.

    A downside of direct mode is that there is no bridging layer. Therefore, only constraints which are natively supported by the solver are supported. For example, HiGHS.jl does not implement quadratic constraints:

    julia> model = direct_model(HiGHS.Optimizer());
    +
    +julia> set_silent(model)
    +
    +julia> @variable(model, x[1:2]);
    +
    +julia> @constraint(model, x[1]^2 + x[2]^2 <= 2)
    +ERROR: Constraints of type MathOptInterface.ScalarQuadraticFunction{Float64}-in-MathOptInterface.LessThan{Float64} are not supported by the solver.
    +
    +If you expected the solver to support your problem, you may have an error in your formulation. Otherwise, consider using a different solver.
    +
    +The list of available solvers, along with the problem types they support, is available at https://jump.dev/JuMP.jl/stable/installation/#Supported-solvers.
    +Stacktrace:
    Warning

    Another downside of direct mode is that the behavior of querying solution information after modifying the problem is solver-specific. This can lead to errors, or the solver silently returning an incorrect value. See OptimizeNotCalled errors for more information.

    diff --git a/previews/PR3545/manual/nlp/index.html b/previews/PR3545/manual/nlp/index.html new file mode 100644 index 00000000000..2e9f01f315d --- /dev/null +++ b/previews/PR3545/manual/nlp/index.html @@ -0,0 +1,347 @@ + +Nonlinear Modeling (Legacy) · JuMP

    Nonlinear Modeling (Legacy)

    Warning

    This page describes the legacy nonlinear interface to JuMP. It has a number of quirks and limitations that prompted the development of a new nonlinear interface. The new interface is documented at Nonlinear Modeling. This legacy interface will remain for all future v1.X releases of JuMP. The two nonlinear interfaces cannot be combined.

    JuMP has support for general smooth nonlinear (convex and nonconvex) optimization problems. JuMP is able to provide exact, sparse second-order derivatives to solvers. This information can improve solver accuracy and performance.

    There are three main changes to solve nonlinear programs in JuMP.

    Info

    There are some restrictions on what syntax you can use in the @NLxxx macros. Make sure to read the Syntax notes.

    Set a nonlinear objective

    Use @NLobjective to set a nonlinear objective.

    julia> model = Model();
    +
    +julia> @variable(model, x[1:2]);
    +
    +julia> @NLobjective(model, Min, exp(x[1]) - sqrt(x[2]))

    To modify a nonlinear objective, call @NLobjective again.

    Add a nonlinear constraint

    Use @NLconstraint to add a nonlinear constraint.

    julia> model = Model();
    +
    +julia> @variable(model, x[1:2]);
    +
    +julia> @NLconstraint(model, exp(x[1]) <= 1)
    +exp(x[1]) - 1.0 ≤ 0
    +
    +julia> @NLconstraint(model, [i = 1:2], x[i]^i >= i)
    +2-element Vector{NonlinearConstraintRef{ScalarShape}}:
    + x[1] ^ 1.0 - 1.0 ≥ 0
    + x[2] ^ 2.0 - 2.0 ≥ 0
    +
    +julia> @NLconstraint(model, con[i = 1:2], prod(x[j] for j = 1:i) == i)
    +2-element Vector{NonlinearConstraintRef{ScalarShape}}:
    + (*)(x[1]) - 1.0 = 0
    + x[1] * x[2] - 2.0 = 0
    Info

    You can only create nonlinear constraints with <=, >=, and ==. More general Nonlinear-in-Set constraints are not supported.

    Delete a nonlinear constraint using delete:

    julia> delete(model, con[1])

    Create a nonlinear expression

    Use @NLexpression to create nonlinear expression objects. The syntax is identical to @expression, except that the expression can contain nonlinear terms.

    julia> model = Model();
    +
    +julia> @variable(model, x[1:2]);
    +
    +julia> expr = @NLexpression(model, exp(x[1]) + sqrt(x[2]))
    +subexpression[1]: exp(x[1]) + sqrt(x[2])
    +
    +julia> my_anon_expr = @NLexpression(model, [i = 1:2], sin(x[i]))
    +2-element Vector{NonlinearExpression}:
    + subexpression[2]: sin(x[1])
    + subexpression[3]: sin(x[2])
    +
    +julia> @NLexpression(model, my_expr[i = 1:2], sin(x[i]))
    +2-element Vector{NonlinearExpression}:
    + subexpression[4]: sin(x[1])
    + subexpression[5]: sin(x[2])

    Nonlinear expression can be used in @NLobjective, @NLconstraint, and even nested in other @NLexpressions.

    julia> @NLobjective(model, Min, expr^2 + 1)
    +
    +julia> @NLconstraint(model, [i = 1:2], my_expr[i] <= i)
    +2-element Vector{NonlinearConstraintRef{ScalarShape}}:
    + subexpression[4] - 1.0 ≤ 0
    + subexpression[5] - 2.0 ≤ 0
    +
    +julia> @NLexpression(model, nested[i = 1:2], sin(my_expr[i]))
    +2-element Vector{NonlinearExpression}:
    + subexpression[6]: sin(subexpression[4])
    + subexpression[7]: sin(subexpression[5])

    Use value to query the value of a nonlinear expression:

    julia> set_start_value(x[1], 1.0)
    +
    +julia> value(start_value, nested[1])
    +0.7456241416655579
    +
    +julia> sin(sin(1.0))
    +0.7456241416655579

    Create a nonlinear parameter

    For nonlinear models only, JuMP offers a syntax for explicit "parameter" objects, which are constants in the model that can be efficiently updated between solves.

    Nonlinear parameters are declared by using the @NLparameter macro and may be indexed by arbitrary sets analogously to JuMP variables and expressions.

    The initial value of the parameter must be provided on the right-hand side of the == sign.

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> @NLparameter(model, p[i = 1:2] == i)
    +2-element Vector{NonlinearParameter}:
    + parameter[1] == 1.0
    + parameter[2] == 2.0

    Create anonymous parameters using the value keyword:

    julia> anon_parameter = @NLparameter(model, value = 1)
    +parameter[3] == 1.0
    Info

    A parameter is not an optimization variable. It must be fixed to a value with ==. If you want a parameter that is <= or >=, create a variable instead using @variable.

    Use value and set_value to query or update the value of a parameter.

    julia> value.(p)
    +2-element Vector{Float64}:
    + 1.0
    + 2.0
    +
    +julia> set_value(p[2], 3.0)
    +3.0
    +
    +julia> value.(p)
    +2-element Vector{Float64}:
    + 1.0
    + 3.0

    Nonlinear parameters must be used within nonlinear macros only.

    When to use a parameter

    Nonlinear parameters are useful when solving nonlinear models in a sequence:

    using JuMP, Ipopt
    +model = Model(Ipopt.Optimizer)
    +set_silent(model)
    +@variable(model, z)
    +@NLparameter(model, x == 1.0)
    +@NLobjective(model, Min, (z - x)^2)
    +optimize!(model)
    +@show value(z) # Equals 1.0.
    +
    +# Now, update the value of x to solve a different problem.
    +set_value(x, 5.0)
    +optimize!(model)
    +@show value(z) # Equals 5.0
    value(z) = 1.0
    +value(z) = 5.0
    Info

    Using nonlinear parameters can be faster than creating a new model from scratch with updated data because JuMP is able to avoid repeating a number of steps in processing the model before handing it off to the solver.

    Syntax notes

    The syntax accepted in nonlinear macros is more restricted than the syntax for linear and quadratic macros. We note some important points below.

    Scalar operations only

    Except for the splatting syntax discussed below, all expressions must be simple scalar operations. You cannot use dot, matrix-vector products, vector slices, etc.

    julia> model = Model();
    +
    +julia> @variable(model, x[1:2]);
    +
    +julia> @variable(model, y);
    +
    +julia> c = [1, 2];
    +
    +julia> @NLobjective(model, Min, c' * x + 3y)
    +ERROR: Unexpected array [1 2] in nonlinear expression. Nonlinear expressions may contain only scalar expressions.
    +[...]

    Translate vector operations into explicit sum() operations:

    julia> @NLobjective(model, Min, sum(c[i] * x[i] for i = 1:2) + 3y)

    Or use an @expression:

    julia> @expression(model, expr, c' * x)
    +x[1] + 2 x[2]
    +
    +julia> @NLobjective(model, Min, expr + 3y)
    +

    Splatting

    The splatting operator ... is recognized in a very restricted setting for expanding function arguments. The expression splatted can be only a symbol. More complex expressions are not recognized.

    julia> model = Model();
    +
    +julia> @variable(model, x[1:3]);
    +
    +julia> @NLconstraint(model, *(x...) <= 1.0)
    +x[1] * x[2] * x[3] - 1.0 ≤ 0
    +
    +julia> @NLconstraint(model, *((x / 2)...) <= 0.0)
    +ERROR: Unsupported use of the splatting operator. JuMP supports splatting only symbols. For example, `x...` is ok, but `(x + 1)...`, `[x; y]...` and `g(f(y)...)` are not.

    User-defined Functions

    JuMP natively supports the set of univariate and multivariate functions recognized by the MOI.Nonlinear submodule. In addition to this list of functions, it is possible to register custom user-defined nonlinear functions. User-defined functions can be used anywhere in @NLobjective, @NLconstraint, and @NLexpression.

    JuMP will attempt to automatically register functions it detects in your nonlinear expressions, which usually means manually registering a function is not needed. Two exceptions are if you want to provide custom derivatives, or if the function is not available in the scope of the nonlinear expression.

    Warning

    User-defined functions must return a scalar output. For a work-around, see User-defined operators with vector outputs.

    Automatic differentiation

    JuMP does not support black-box optimization, so all user-defined functions must provide derivatives in some form. Fortunately, JuMP supports automatic differentiation of user-defined functions, a feature to our knowledge not available in any comparable modeling systems.

    Info

    Automatic differentiation is not finite differencing. JuMP's automatically computed derivatives are not subject to approximation error.

    JuMP uses ForwardDiff.jl to perform automatic differentiation; see the ForwardDiff.jl documentation for a description of how to write a function suitable for automatic differentiation.

    Common mistakes when writing a user-defined function

    Warning

    Get an error like No method matching Float64(::ForwardDiff.Dual)? Read this section, and see the guidelines at ForwardDiff.jl.

    The most common error is that your user-defined function is not generic with respect to the number type, that is, don't assume that the input to the function is Float64.

    f(x::Float64) = 2 * x  # This will not work.
    +f(x::Real)    = 2 * x  # This is good.
    +f(x)          = 2 * x  # This is also good.

    Another reason you may encounter this error is if you create arrays inside your function which are Float64.

    function bad_f(x...)
    +    y = zeros(length(x))  # This constructs an array of `Float64`!
    +    for i = 1:length(x)
    +        y[i] = x[i]^i
    +    end
    +    return sum(y)
    +end
    +
    +function good_f(x::T...) where {T<:Real}
    +    y = zeros(T, length(x))  # Construct an array of type `T` instead!
    +    for i = 1:length(x)
    +        y[i] = x[i]^i
    +    end
    +    return sum(y)
    +end

    Register a function

    To register a user-defined function with derivatives computed by automatic differentiation, use the register method as in the following example:

    square(x) = x^2
    +f(x, y) = (x - 1)^2 + (y - 2)^2
    +
    +model = Model()
    +
    +register(model, :square, 1, square; autodiff = true)
    +register(model, :my_f, 2, f; autodiff = true)
    +
    +@variable(model, x[1:2] >= 0.5)
    +@NLobjective(model, Min, my_f(x[1], square(x[2])))

    The above code creates a JuMP model with the objective function (x[1] - 1)^2 + (x[2]^2 - 2)^2. The arguments to register are:

    1. The model for which the functions are registered.
    2. A Julia symbol object which serves as the name of the user-defined function in JuMP expressions.
    3. The number of input arguments that the function takes.
    4. The Julia method which computes the function
    5. A flag to instruct JuMP to compute exact gradients automatically.
    Tip

    The symbol :my_f doesn't have to match the name of the function f. However, it's more readable if it does. Make sure you use my_f and not f in the macros.

    Warning

    User-defined functions cannot be re-registered and will not update if you modify the underlying Julia function. If you want to change a user-defined function between solves, rebuild the model or use a different name. To use a different name programmatically, see Raw expression input.

    Register a function and gradient

    Forward-mode automatic differentiation as implemented by ForwardDiff.jl has a computational cost that scales linearly with the number of input dimensions. As such, it is not the most efficient way to compute gradients of user-defined functions if the number of input arguments is large. In this case, users may want to provide their own routines for evaluating gradients.

    Univariate functions

    For univariate functions, the gradient function ∇f returns a number that represents the first-order derivative:

    f(x) = x^2
    +∇f(x) = 2x
    +model = Model()
    +register(model, :my_square, 1, f, ∇f; autodiff = true)
    +@variable(model, x >= 0)
    +@NLobjective(model, Min, my_square(x))

    If autodiff = true, JuMP will use automatic differentiation to compute the hessian.

    Multivariate functions

    For multivariate functions, the gradient function ∇f must take a gradient vector as the first argument that is filled in-place:

    f(x, y) = (x - 1)^2 + (y - 2)^2
    +function ∇f(g::AbstractVector{T}, x::T, y::T) where {T}
    +    g[1] = 2 * (x - 1)
    +    g[2] = 2 * (y - 2)
    +    return
    +end
    +
    +model = Model()
    +register(model, :my_square, 2, f, ∇f)
    +@variable(model, x[1:2] >= 0)
    +@NLobjective(model, Min, my_square(x[1], x[2]))
    Warning

    Make sure the first argument to ∇f supports an AbstractVector, and do not assume the input is Float64.

    Register a function, gradient, and hessian

    You can also register a function with the second-order derivative information, which is a scalar for univariate functions, and a symmetric matrix for multivariate functions.

    Univariate functions

    Pass a function which returns a number representing the second-order derivative:

    f(x) = x^2
    +∇f(x) = 2x
    +∇²f(x) = 2
    +model = Model()
    +register(model, :my_square, 1, f, ∇f, ∇²f)
    +@variable(model, x >= 0)
    +@NLobjective(model, Min, my_square(x))

    Multivariate functions

    For multivariate functions, the hessian function ∇²f must take an AbstractMatrix as the first argument, the lower-triangular of which is filled in-place:

    f(x...) = (1 - x[1])^2 + 100 * (x[2] - x[1]^2)^2
    +function ∇f(g, x...)
    +    g[1] = 400 * x[1]^3 - 400 * x[1] * x[2] + 2 * x[1] - 2
    +    g[2] = 200 * (x[2] - x[1]^2)
    +    return
    +end
    +function ∇²f(H, x...)
    +    H[1, 1] = 1200 * x[1]^2 - 400 * x[2] + 2
    +    # H[1, 2] = -400 * x[1]  <-- Not needed. Fill the lower-triangular only.
    +    H[2, 1] = -400 * x[1]
    +    H[2, 2] = 200.0
    +    return
    +end
    +
    +model = Model()
    +register(model, :rosenbrock, 2, f, ∇f, ∇²f)
    +@variable(model, x[1:2])
    +@NLobjective(model, Min, rosenbrock(x[1], x[2]))
    Warning

    You may assume the Hessian matrix H is initialized with zeros, and because H is symmetric, you need only to fill in the non-zero of the lower-triangular terms. The matrix type passed in as H depends on the automatic differentiation system, so make sure the first argument to the Hessian function supports an AbstractMatrix (it may be something other than Matrix{Float64}). However, you may assume only that H supports size(H) and setindex!. Finally, the matrix is treated as dense, so the performance will be poor on functions with high-dimensional input.

    User-defined functions with vector inputs

    User-defined functions which take vectors as input arguments (for example, f(x::Vector)) are not supported. Instead, use Julia's splatting syntax to create a function with scalar arguments. For example, instead of

    f(x::Vector) = sum(x[i]^i for i in 1:length(x))

    define:

    f(x...) = sum(x[i]^i for i in 1:length(x))

    This function f can be used in a JuMP model as follows:

    model = Model()
    +@variable(model, x[1:5] >= 0)
    +f(x...) = sum(x[i]^i for i in 1:length(x))
    +register(model, :f, 5, f; autodiff = true)
    +@NLobjective(model, Min, f(x...))
    Tip

    Make sure to read the syntax restrictions of Splatting.

    Factors affecting solution time

    The execution time when solving a nonlinear programming problem can be divided into two parts, the time spent in the optimization algorithm (the solver) and the time spent evaluating the nonlinear functions and corresponding derivatives. Ipopt explicitly displays these two timings in its output, for example:

    Total CPU secs in IPOPT (w/o function evaluations)   =      7.412
    +Total CPU secs in NLP function evaluations           =      2.083

    For Ipopt in particular, one can improve the performance by installing advanced sparse linear algebra packages, see Installation Guide. For other solvers, see their respective documentation for performance tips.

    The function evaluation time, on the other hand, is the responsibility of the modeling language. JuMP computes derivatives by using reverse-mode automatic differentiation with graph coloring methods for exploiting sparsity of the Hessian matrix. As a conservative bound, JuMP's performance here currently may be expected to be within a factor of 5 of AMPL's. Our paper in SIAM Review has more details.

    Querying derivatives from a JuMP model

    For some advanced use cases, one may want to directly query the derivatives of a JuMP model instead of handing the problem off to a solver. Internally, JuMP implements the MOI.AbstractNLPEvaluator interface. To obtain an NLP evaluator object from a JuMP model, use NLPEvaluator. index returns the MOI.VariableIndex corresponding to a JuMP variable. MOI.VariableIndex itself is a type-safe wrapper for Int64 (stored in the .value field.)

    For example:

    julia> raw_index(v::MOI.VariableIndex) = v.value
    +raw_index (generic function with 1 method)
    +
    +julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> @variable(model, y)
    +y
    +
    +julia> @NLobjective(model, Min, sin(x) + sin(y))
    +
    +julia> values = zeros(2)
    +2-element Vector{Float64}:
    + 0.0
    + 0.0
    +
    +julia> x_index = raw_index(JuMP.index(x))
    +1
    +
    +julia> y_index = raw_index(JuMP.index(y))
    +2
    +
    +julia> values[x_index] = 2.0
    +2.0
    +
    +julia> values[y_index] = 3.0
    +3.0
    +
    +julia> d = NLPEvaluator(model)
    +Nonlinear.Evaluator with available features:
    +  * :Grad
    +  * :Jac
    +  * :JacVec
    +  * :Hess
    +  * :HessVec
    +  * :ExprGraph
    +
    +julia> MOI.initialize(d, [:Grad])
    +
    +julia> MOI.eval_objective(d, values)
    +1.0504174348855488
    +
    +julia> sin(2.0) + sin(3.0)
    +1.0504174348855488
    +
    +julia> ∇f = zeros(2)
    +2-element Vector{Float64}:
    + 0.0
    + 0.0
    +
    +julia> MOI.eval_objective_gradient(d, ∇f, values)
    +
    +julia> ∇f[x_index], ∇f[y_index]
    +(-0.4161468365471424, -0.9899924966004454)
    +
    +julia> cos(2.0), cos(3.0)
    +(-0.4161468365471424, -0.9899924966004454)

    Only nonlinear constraints (those added with @NLconstraint), and nonlinear objectives (added with @NLobjective) exist in the scope of the NLPEvaluator.

    The NLPEvaluator does not evaluate derivatives of linear or quadratic constraints or objectives.

    The index method applied to a nonlinear constraint reference object returns its index as a MOI.Nonlinear.ConstraintIndex. For example:

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> @NLconstraint(model, cons1, sin(x) <= 1);
    +
    +julia> @NLconstraint(model, cons2, x + 5 == 10);
    +
    +julia> typeof(cons1)
    +NonlinearConstraintRef{ScalarShape} (alias for ConstraintRef{GenericModel{Float64}, MathOptInterface.Nonlinear.ConstraintIndex, ScalarShape})
    +
    +julia> index(cons1)
    +MathOptInterface.Nonlinear.ConstraintIndex(1)
    +
    +julia> index(cons2)
    +MathOptInterface.Nonlinear.ConstraintIndex(2)

    Note that for one-sided nonlinear constraints, JuMP subtracts any values on the right-hand side when computing expressions. In other words, one-sided nonlinear constraints are always transformed to have a right-hand side of zero.

    This method of querying derivatives directly from a JuMP model is convenient for interacting with the model in a structured way, for example, for accessing derivatives of specific variables. For example, in statistical maximum likelihood estimation problems, one is often interested in the Hessian matrix at the optimal solution, which can be queried using the NLPEvaluator.

    Raw expression input

    Warning

    This section requires advanced knowledge of Julia's Expr. You should read the Expressions and evaluation section of the Julia documentation first.

    In addition to the @NLexpression, @NLobjective and @NLconstraint macros, it is also possible to provide Julia Expr objects directly by using add_nonlinear_expression, set_nonlinear_objective and add_nonlinear_constraint.

    This input form may be useful if the expressions are generated programmatically, or if you experience compilation issues with the macro input (see Known performance issues for more information).

    Add a nonlinear expression

    Use add_nonlinear_expression to add a nonlinear expression to the model.

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> expr = :($(x) + sin($(x)^2))
    +:(x + sin(x ^ 2))
    +
    +julia> expr_ref = add_nonlinear_expression(model, expr)
    +subexpression[1]: x + sin(x ^ 2.0)

    This is equivalent to

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> expr_ref = @NLexpression(model, x + sin(x^2))
    +subexpression[1]: x + sin(x ^ 2.0)
    Note

    You must interpolate the variables directly into the expression expr.

    Set the objective function

    Use set_nonlinear_objective to set a nonlinear objective.

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> expr = :($(x) + $(x)^2)
    +:(x + x ^ 2)
    +
    +julia> set_nonlinear_objective(model, MIN_SENSE, expr)

    This is equivalent to

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> @NLobjective(model, Min, x + x^2)
    Note

    You must use MIN_SENSE or MAX_SENSE instead of Min and Max.

    Add a constraint

    Use add_nonlinear_constraint to add a nonlinear constraint.

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> expr = :($(x) + $(x)^2)
    +:(x + x ^ 2)
    +
    +julia> add_nonlinear_constraint(model, :($(expr) <= 1))
    +(x + x ^ 2.0) - 1.0 ≤ 0

    This is equivalent to

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> @NLconstraint(model, Min, x + x^2 <= 1)
    +(x + x ^ 2.0) - 1.0 ≤ 0

    More complicated examples

    Raw expression input is most useful when the expressions are generated programmatically, often in conjunction with user-defined functions.

    As an example, we construct a model with the nonlinear constraints f(x) <= 1, where f(x) = x^2 and f(x) = sin(x)^2:

    julia> function main(functions::Vector{Function})
    +           model = Model()
    +           @variable(model, x)
    +           for (i, f) in enumerate(functions)
    +               f_sym = Symbol("f_$(i)")
    +               register(model, f_sym, 1, f; autodiff = true)
    +               add_nonlinear_constraint(model, :($(f_sym)($(x)) <= 1))
    +           end
    +           print(model)
    +           return
    +       end
    +main (generic function with 1 method)
    +
    +julia> main([x -> x^2, x -> sin(x)^2])
    +Feasibility
    +Subject to
    + f_1(x) - 1.0 ≤ 0
    + f_2(x) - 1.0 ≤ 0

    As another example, we construct a model with the constraint x^2 + sin(x)^2 <= 1:

    julia> function main(functions::Vector{Function})
    +           model = Model()
    +           @variable(model, x)
    +           expr = Expr(:call, :+)
    +           for (i, f) in enumerate(functions)
    +               f_sym = Symbol("f_$(i)")
    +               register(model, f_sym, 1, f; autodiff = true)
    +               push!(expr.args, :($(f_sym)($(x))))
    +           end
    +           add_nonlinear_constraint(model, :($(expr) <= 1))
    +           print(model)
    +           return
    +       end
    +main (generic function with 1 method)
    +
    +julia> main([x -> x^2, x -> sin(x)^2])
    +Feasibility
    +Subject to
    + (f_1(x) + f_2(x)) - 1.0 ≤ 0

    Registered functions with a variable number of arguments

    User defined functions require a fixed number of input arguments. However, sometimes you will want to use a registered function like:

    julia> f(x...) = sum(exp(x[i]^2) for i in 1:length(x));

    with different numbers of arguments.

    The solution is to register the same function f for each unique number of input arguments, making sure to use a unique name each time. For example:

    julia> A = [[1], [1, 2], [2, 3, 4], [1, 3, 4, 5]];
    +
    +julia> model = Model();
    +
    +julia> @variable(model, x[1:5]);
    +
    +julia> funcs = Set{Symbol}();
    +
    +julia> for a in A
    +           key = Symbol("f$(length(a))")
    +           if !(key in funcs)
    +               push!(funcs, key)
    +               register(model, key, length(a), f; autodiff = true)
    +           end
    +           add_nonlinear_constraint(model, :($key($(x[a]...)) <= 1))
    +       end
    +
    +julia> print(model)
    +Feasibility
    +Subject to
    + f1(x[1]) - 1.0 ≤ 0
    + f2(x[1], x[2]) - 1.0 ≤ 0
    + f3(x[2], x[3], x[4]) - 1.0 ≤ 0
    + f4(x[1], x[3], x[4], x[5]) - 1.0 ≤ 0

    Known performance issues

    The macro-based input to JuMP's nonlinear interface can cause a performance issue if you:

    1. write a macro with a large number (hundreds) of terms
    2. call that macro from within a function instead of from the top-level in global scope.

    The first issue does not depend on the number of resulting terms in the mathematical expression, but rather the number of terms in the Julia Expr representation of that expression. For example, the expression sum(x[i] for i in 1:1_000_000) contains one million mathematical terms, but the Expr representation is just a single sum.

    The most common cause, other than a lot of tedious typing, is if you write a program that automatically writes a JuMP model as a text file, which you later execute. One example is MINLPlib.jl which automatically transpiled models in the GAMS scalar format into JuMP examples.

    As a rule of thumb, if you are writing programs to automatically generate expressions for the JuMP macros, you should target the Raw expression input instead. For more information, read MathOptInterface Issue#1997.

    diff --git a/previews/PR3545/manual/nonlinear/index.html b/previews/PR3545/manual/nonlinear/index.html new file mode 100644 index 00000000000..be7abad4310 --- /dev/null +++ b/previews/PR3545/manual/nonlinear/index.html @@ -0,0 +1,199 @@ + +Nonlinear Modeling · JuMP

    Nonlinear Modeling

    Warning

    This page describes a new nonlinear interface to JuMP. It replaces the legacy @NL interface, which is documented at Nonlinear Modeling (Legacy). The API described below is stable, and it will not break with future 1.X releases of JuMP. However, solver support may be limited, and there may be gaps in functionality compared with the legacy interface. To report a bug, or request a missing feature, please open an issue.

    JuMP has support for nonlinear (convex and nonconvex) optimization problems. JuMP is able to automatically provide exact, sparse second-order derivatives to solvers. This information can improve solver accuracy and performance.

    Set a nonlinear objective

    Use @objective to set a nonlinear objective.

    julia> model = Model();
    +
    +julia> @variable(model, x[1:2]);
    +
    +julia> @objective(model, Min, exp(x[1]) - sqrt(x[2]))
    +exp(x[1]) - sqrt(x[2])

    To modify a nonlinear objective, call @objective again.

    Add a nonlinear constraint

    Use @constraint to add a nonlinear constraint.

    julia> model = Model();
    +
    +julia> @variable(model, x[1:2]);
    +
    +julia> @constraint(model, exp(x[1]) <= 1)
    +exp(x[1]) - 1.0 ≤ 0
    +
    +julia> @constraint(model, con[i = 1:2], 2^x[i] >= i)
    +2-element Vector{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.ScalarNonlinearFunction, MathOptInterface.GreaterThan{Float64}}, ScalarShape}}:
    + con[1] : (2.0 ^ x[1]) - 1.0 ≥ 0
    + con[2] : (2.0 ^ x[2]) - 2.0 ≥ 0

    Delete a nonlinear constraint using delete:

    julia> delete(model, con[1])

    Create a nonlinear expression

    Use @expression to create nonlinear expression objects:

    julia> model = Model();
    +
    +julia> @variable(model, x[1:2]);
    +
    +julia> expr = @expression(model, exp(x[1]) + sqrt(x[2]))
    +exp(x[1]) + sqrt(x[2])
    +
    +julia> my_anon_expr = @expression(model, [i = 1:2], sin(x[i]))
    +2-element Vector{NonlinearExpr}:
    + sin(x[1])
    + sin(x[2])
    +
    +julia> @expression(model, my_expr[i = 1:2], sin(x[i]))
    +2-element Vector{NonlinearExpr}:
    + sin(x[1])
    + sin(x[2])

    A NonlinearExpr can be used in @objective, @constraint, and even nested in other @expressions.

    julia> @objective(model, Min, expr^2 + 1)
    +((exp(x[1]) + sqrt(x[2])) ^ 2.0) + 1.0
    +
    +julia> @constraint(model, [i = 1:2], my_expr[i] <= i)
    +2-element Vector{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.ScalarNonlinearFunction, MathOptInterface.LessThan{Float64}}, ScalarShape}}:
    + sin(x[1]) - 1.0 ≤ 0
    + sin(x[2]) - 2.0 ≤ 0
    +
    +julia> @expression(model, nested[i = 1:2], sin(my_expr[i]))
    +2-element Vector{NonlinearExpr}:
    + sin(sin(x[1]))
    + sin(sin(x[2]))

    Use value to query the value of a nonlinear expression:

    julia> set_start_value(x[1], 1.0)
    +
    +julia> value(start_value, nested[1])
    +0.7456241416655579
    +
    +julia> sin(sin(1.0))
    +0.7456241416655579

    Nonlinear expressions in detail

    Nonlinear expressions in JuMP are represented by a NonlinearExpr object.

    Constructors

    Nonlinear expressions can be created using the NonlinearExpr constructors:

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> expr = NonlinearExpr(:sin, Any[x])
    +sin(x)

    or via operator overloading:

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> expr = sin(x)
    +sin(x)

    Supported arguments

    Nonlinear expressions can contain a mix of numbers, AffExpr, QuadExpr, and other NonlinearExpr:

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> aff = x + 1;
    +
    +julia> quad = x^2 + x;
    +
    +julia> expr = cos(x) * sin(quad) + aff
    +(cos(x) * sin(x² + x)) + (x + 1)

    Supported operators

    The list of supported operators may vary between solvers. Given an optimizer, query the list of supported operators using MOI.ListOfSupportedNonlinearOperators:

    julia> import Ipopt
    +
    +julia> import MathOptInterface as MOI
    +
    +julia> MOI.get(Ipopt.Optimizer(), MOI.ListOfSupportedNonlinearOperators())
    +85-element Vector{Symbol}:
    + :+
    + :-
    + :abs
    + :sqrt
    + :cbrt
    + :abs2
    + :inv
    + :log
    + :log10
    + :log2
    + ⋮
    + :min
    + :max
    + :&&
    + :||
    + :<=
    + :(==)
    + :>=
    + :<
    + :>

    In some univariate cases, the operator is defined in SpecialFunctions.jl. To use these functions, you must explicitly import SpecialFunctions.jl

    julia> import Ipopt
    +
    +julia> op = MOI.get(Ipopt.Optimizer(), MOI.ListOfSupportedNonlinearOperators());
    +
    +julia> :erfcx in op
    +true
    +
    +julia> :dawson in op
    +true
    +
    +julia> import SpecialFunctions
    +
    +julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> @expression(model, SpecialFunctions.erfcx(x))
    +erfcx(x)
    +
    +julia> @expression(model, SpecialFunctions.dawson(x))
    +dawson(x)

    Limitations

    Some nonlinear expressions cannot be created via operator overloading. For example, to minimize the likelihood of bugs in user-code, we have not overloaded comparisons such as < and >= between JuMP objects:

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> x < 1
    +ERROR: Cannot evaluate `<` between a variable and a number.
    +[...]

    Instead, wrap the expression in the @expression macro:

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> expr = @expression(model, x < 1)
    +x < 1

    For technical reasons, other operators that are not overloaded include ||, &&, and ifelse.

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> expr = @expression(model, ifelse(x < -1 || x >= 1, x^2, 0.0))
    +ifelse((x < -1) || (x >= 1), x², 0.0)

    As an alternative, use the JuMP.op_ functions, which fallback to the various comparison and logical operators:

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> expr = op_ifelse(
    +           op_or(op_strictly_less_than(x, -1), op_greater_than_or_equal_to(x, 1)),
    +           x^2,
    +           0.0,
    +       )
    +ifelse((x < -1) || (x >= 1), x², 0.0)

    The available functions are:

    JuMP functionJulia function
    op_ifelseifelse
    op_and&&
    op_or||
    op_greater_than_or_equal_to>=
    op_less_than_or_equal_to<=
    op_equal_to==
    op_strictly_greater_than>
    op_strictly_less_than<

    Fields

    Each NonlinearExpr has two fields.

    The .head field is a Symbol that represents the operator being called:

    julia> expr.head
    +:sin

    The .args field is a Vector{Any} containing the arguments to the operator:

    julia> expr.args
    +1-element Vector{Any}:
    + x

    User-defined operators

    In addition to a standard list of univariate and multivariate operators recognized by the MOI.Nonlinear submodule, JuMP supports user-defined Julia operators.

    Warning

    User-defined operators must return a scalar output. For a work-around, see User-defined operators with vector outputs.

    Add an operator

    Add a user-defined operator using the @operator macro:

    julia> using JuMP
    julia> square(x) = x^2square (generic function with 1 method)
    julia> f(x, y) = (x - 1)^2 + (y - 2)^2f (generic function with 1 method)
    julia> model = Model();
    julia> @operator(model, op_square, 1, square)NonlinearOperator(square, :op_square)
    julia> @operator(model, op_f, 2, f)NonlinearOperator(f, :op_f)
    julia> @variable(model, x[1:2]);
    julia> @objective(model, Min, op_f(x[1], op_square(x[2])))op_f(x[1], op_square(x[2]))

    The arguments to @operator are:

    1. The model to which the operator is added.
    2. A Julia symbol object which serves as the name of the user-defined operator in JuMP expressions. This name must not be the same as that of the function.
    3. The number of scalar input arguments that the function takes.
    4. A Julia method which computes the function.
    Warning

    User-defined operators cannot be deleted.

    You can obtain a reference to the operator using the model[:key] syntax:

    julia> using JuMP
    julia> square(x) = x^2square (generic function with 1 method)
    julia> model = Model();
    julia> @operator(model, op_square, 1, square)NonlinearOperator(square, :op_square)
    julia> op_square_2 = model[:op_square]NonlinearOperator(square, :op_square)

    Add an operator without macros

    The @operator macro is syntactic sugar for add_nonlinear_operator. Thus, the non-macro version of the preceding example is:

    julia> using JuMP
    julia> square(x) = x^2square (generic function with 1 method)
    julia> f(x, y) = (x - 1)^2 + (y - 2)^2f (generic function with 1 method)
    julia> model = Model();
    julia> op_square = add_nonlinear_operator(model, 1, square; name = :op_square)NonlinearOperator(square, :op_square)
    julia> model[:op_square] = op_squareNonlinearOperator(square, :op_square)
    julia> op_f = add_nonlinear_operator(model, 2, f; name = :op_f)NonlinearOperator(f, :op_f)
    julia> model[:op_f] = op_fNonlinearOperator(f, :op_f)
    julia> @variable(model, x[1:2]);
    julia> @objective(model, Min, op_f(x[1], op_square(x[2])))op_f(x[1], op_square(x[2]))

    Operators with the same name as an existing function

    A common error encountered is the following:

    julia> using JuMP
    +
    +julia> model = Model();
    +
    +julia> f(x) = x^2
    +f (generic function with 1 method)
    +
    +julia> @operator(model, f, 1, f)
    +ERROR: Unable to add the nonlinear operator `:f` with the same name as
    +an existing function.
    +[...]

    This error occurs because @operator(model, f, 1, f) is equivalent to:

    julia> f = add_nonlinear_operator(model, 1, f; name = :f)

    but f already exists as a Julia function.

    If you evaluate the function without adding it as an operator, JuMP will trace the function using operator overloading:

    julia> @variable(model, x);
    +
    +julia> f(x)
    +x²

    To force JuMP to treat f as a user-defined operator and not trace it, add the operator using add_nonlinear_operator and define a new method which manually creates a NonlinearExpr:

    julia> _ = add_nonlinear_operator(model, 1, f; name = :f)
    +NonlinearOperator(f, :f)
    +
    +julia> f(x::AbstractJuMPScalar) = NonlinearExpr(:f, Any[x])
    +f (generic function with 2 methods)
    +
    +julia> @expression(model, log(f(x)))
    +log(f(x))

    Gradients and Hessians

    By default, JuMP will use automatic differentiation to compute the gradient and Hessian of user-defined operators. If your function is not amenable to automatic differentiation, or you can compute analytic derivatives, you may pass additional arguments to @operator to compute the first- and second-derivatives.

    Univariate functions

    For univariate functions, a gradient function ∇f returns a number that represents the first-order derivative. You may, in addition, pass a third function which returns a number representing the second-order derivative:

    julia> using JuMP
    julia> f(x) = x^2f (generic function with 1 method)
    julia> ∇f(x) = 2x∇f (generic function with 1 method)
    julia> ∇²f(x) = 2∇²f (generic function with 1 method)
    julia> model = Model();
    julia> @operator(model, op_f, 1, f, ∇f, ∇²f) # Providing ∇²f is optionalNonlinearOperator(f, :op_f)
    julia> @variable(model, x)x
    julia> @objective(model, Min, op_f(x))op_f(x)

    Multivariate functions

    For multivariate functions, the gradient function ∇f must take an AbstractVector as the first argument that is filled in-place. The Hessian function, ∇²f, must take an AbstractMatrix as the first argument, the lower-triangular of which is filled in-place:

    julia> using JuMP
    julia> f(x...) = (1 - x[1])^2 + 100 * (x[2] - x[1]^2)^2f (generic function with 1 method)
    julia> function ∇f(g::AbstractVector{T}, x::T...) where {T} + g[1] = 400 * x[1]^3 - 400 * x[1] * x[2] + 2 * x[1] - 2 + g[2] = 200 * (x[2] - x[1]^2) + return + end∇f (generic function with 1 method)
    julia> function ∇²f(H::AbstractMatrix{T}, x::T...) where {T} + H[1, 1] = 1200 * x[1]^2 - 400 * x[2] + 2 + # H[1, 2] = -400 * x[1] <-- Not needed. Fill the lower-triangular only. + H[2, 1] = -400 * x[1] + H[2, 2] = 200.0 + return + end∇²f (generic function with 1 method)
    julia> model = Model();
    julia> @operator(model, rosenbrock, 2, f, ∇f, ∇²f) # Providing ∇²f is optionalNonlinearOperator(f, :rosenbrock)
    julia> @variable(model, x[1:2])2-element Vector{VariableRef}: + x[1] + x[2]
    julia> @objective(model, Min, rosenbrock(x[1], x[2]))rosenbrock(x[1], x[2])

    You may assume the Hessian matrix H is initialized with zeros, and because H is symmetric, you need only to fill in the non-zero lower-triangular terms. The matrix type passed in as H depends on the automatic differentiation system, so make sure the first argument to the Hessian function supports an AbstractMatrix (it may be something other than Matrix{Float64}). Moreover, you may assume only that H supports size(H) and setindex!. Finally, the matrix is treated as dense, so the performance will be poor on functions with high-dimensional input.

    User-defined operators with vector inputs

    User-defined operators which take vectors as input arguments (for example, f(x::Vector)) are not supported. Instead, use Julia's splatting syntax to create a function with scalar arguments. For example, instead of:

    f(x::Vector) = sum(x[i]^i for i in 1:length(x))

    define:

    f(x...) = sum(x[i]^i for i in 1:length(x))

    Another approach is to define the splatted function as an anonymous function:

    julia> using JuMP
    julia> model = Model();
    julia> @variable(model, x[1:5])5-element Vector{VariableRef}: + x[1] + x[2] + x[3] + x[4] + x[5]
    julia> f(x::Vector) = sum(x[i]^i for i in 1:length(x))f (generic function with 1 method)
    julia> @operator(model, op_f, 5, (x...) -> f(collect(x)))NonlinearOperator(#6, :op_f)
    julia> @objective(model, Min, op_f(x...))op_f(x[1], x[2], x[3], x[4], x[5])

    Automatic differentiation

    JuMP does not support black-box optimization, so all user-defined operators must provide derivatives in some form. Fortunately, JuMP supports automatic differentiation of user-defined operators.

    Info

    Automatic differentiation is not finite differencing. JuMP's automatically computed derivatives are not subject to approximation error.

    JuMP uses ForwardDiff.jl to perform automatic differentiation of user-defined operators; see the ForwardDiff.jl documentation for a description of how to write a function suitable for automatic differentiation.

    Common mistakes when writing a user-defined operator

    Warning

    Get an error like No method matching Float64(::ForwardDiff.Dual)? Read this section, and see the guidelines at ForwardDiff.jl.

    The most common error is that your user-defined operator is not generic with respect to the number type, that is, don't assume that the input to the function is Float64.

    f(x::Float64) = 2 * x  # This will not work.
    +f(x::Real)    = 2 * x  # This is good.
    +f(x)          = 2 * x  # This is also good.

    Another reason you may encounter this error is if you create arrays inside your function which are Float64.

    function bad_f(x...)
    +    y = zeros(length(x))  # This constructs an array of `Float64`!
    +    for i in 1:length(x)
    +        y[i] = x[i]^i
    +    end
    +    return sum(y)
    +end
    +
    +function good_f(x::T...) where {T<:Real}
    +    y = zeros(T, length(x))  # Construct an array of type `T` instead!
    +    for i in 1:length(x)
    +        y[i] = x[i]^i
    +    end
    +    return sum(y)
    +end
    diff --git a/previews/PR3545/manual/objective/index.html b/previews/PR3545/manual/objective/index.html new file mode 100644 index 00000000000..21895702205 --- /dev/null +++ b/previews/PR3545/manual/objective/index.html @@ -0,0 +1,168 @@ + +Objectives · JuMP

    Objectives

    This page describes macros and functions related to linear and quadratic objective functions only, unless otherwise indicated. For nonlinear objective functions, see Nonlinear Modeling.

    Set a linear objective

    Use the @objective macro to set a linear objective function.

    Use Min to create a minimization objective:

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> @objective(model, Min, 2x + 1)
    +2 x + 1

    Use Max to create a maximization objective:

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> @objective(model, Max, 2x + 1)
    +2 x + 1

    Set a quadratic objective

    Use the @objective macro to set a quadratic objective function.

    Use ^2 to have a variable squared:

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> @objective(model, Min, x^2 + 2x + 1)
    +x² + 2 x + 1

    You can also have bilinear terms between variables:

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> @variable(model, y)
    +y
    +
    +julia> @objective(model, Max, x * y + x + y)
    +x*y + x + y

    Set a nonlinear objective

    Use the @objective macro to set a nonlinear objective function:

    julia> model = Model();
    +
    +julia> @variable(model, x <= 1);
    +
    +julia> @objective(model, Max, log(x))
    +log(x)

    Query the objective function

    Use objective_function to return the current objective function.

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> @objective(model, Min, 2x + 1)
    +2 x + 1
    +
    +julia> objective_function(model)
    +2 x + 1

    Evaluate the objective function at a point

    Use value to evaluate an objective function at a point specifying values for variables.

    julia> model = Model();
    +
    +julia> @variable(model, x[1:2]);
    +
    +julia> @objective(model, Min, 2x[1]^2 + x[1] + 0.5*x[2])
    +2 x[1]² + x[1] + 0.5 x[2]
    +
    +julia> f = objective_function(model)
    +2 x[1]² + x[1] + 0.5 x[2]
    +
    +julia> point = Dict(x[1] => 2.0, x[2] => 1.0);
    +
    +julia> value(z -> point[z], f)
    +10.5

    Query the objective sense

    Use objective_sense to return the current objective sense.

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> @objective(model, Min, 2x + 1)
    +2 x + 1
    +
    +julia> objective_sense(model)
    +MIN_SENSE::OptimizationSense = 0

    Modify an objective

    To modify an objective, call @objective with the new objective function.

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> @objective(model, Min, 2x)
    +2 x
    +
    +julia> @objective(model, Max, -2x)
    +-2 x

    Alternatively, use set_objective_function.

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> @objective(model, Min, 2x)
    +2 x
    +
    +julia> new_objective = @expression(model, -2 * x)
    +-2 x
    +
    +julia> set_objective_function(model, new_objective)

    Modify an objective coefficient

    Use set_objective_coefficient to modify an objective coefficient.

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> @objective(model, Min, 2x)
    +2 x
    +
    +julia> set_objective_coefficient(model, x, 3)
    +
    +julia> objective_function(model)
    +3 x
    Info

    There is no way to modify the coefficient of a quadratic term. Set a new objective instead.

    Modify the objective sense

    Use set_objective_sense to modify the objective sense.

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> @objective(model, Min, 2x)
    +2 x
    +
    +julia> objective_sense(model)
    +MIN_SENSE::OptimizationSense = 0
    +
    +julia> set_objective_sense(model, MAX_SENSE);
    +
    +julia> objective_sense(model)
    +MAX_SENSE::OptimizationSense = 1

    Alternatively, call @objective and pass the existing objective function.

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> @objective(model, Min, 2x)
    +2 x
    +
    +julia> @objective(model, Max, objective_function(model))
    +2 x

    Set a vector-valued objective

    Define a multi-objective optimization problem by passing a vector of objectives:

    julia> model = Model();
    +
    +julia> @variable(model, x[1:2]);
    +
    +julia> @objective(model, Min, [1 + x[1], 2 * x[2]])
    +2-element Vector{AffExpr}:
    + x[1] + 1
    + 2 x[2]
    +
    +julia> f = objective_function(model)
    +2-element Vector{AffExpr}:
    + x[1] + 1
    + 2 x[2]
    Tip

    The Multi-objective knapsack tutorial provides an example of solving a multi-objective integer program.

    In most cases, multi-objective optimization solvers will return multiple solutions, corresponding to points on the Pareto frontier. See Multiple solutions for information on how to query and work with multiple solutions.

    Note that you must set a single objective sense, that is, you cannot have both minimization and maximization objectives. Work around this limitation by choosing Min and negating any objectives you want to maximize:

    julia> model = Model();
    +
    +julia> @variable(model, x[1:2]);
    +
    +julia> @expression(model, obj1, 1 + x[1])
    +x[1] + 1
    +
    +julia> @expression(model, obj2, 2 * x[1])
    +2 x[1]
    +
    +julia> @objective(model, Min, [obj1, -obj2])
    +2-element Vector{AffExpr}:
    + x[1] + 1
    + -2 x[1]

    Defining your objectives as expressions allows flexibility in how you can solve variations of the same problem, with some objectives removed and constrained to be no worse that a fixed value.

    julia> model = Model();
    +
    +julia> @variable(model, x[1:2]);
    +
    +julia> @expression(model, obj1, 1 + x[1])
    +x[1] + 1
    +
    +julia> @expression(model, obj2, 2 * x[1])
    +2 x[1]
    +
    +julia> @expression(model, obj3, x[1] + x[2])
    +x[1] + x[2]
    +
    +julia> @objective(model, Min, [obj1, obj2, obj3])  # Three-objective problem
    +3-element Vector{AffExpr}:
    + x[1] + 1
    + 2 x[1]
    + x[1] + x[2]
    +
    +julia> # optimize!(model), look at the solution, talk to stakeholders, then
    +       # decide you want to solve a new problem where the third objective is
    +       # removed and constrained to be better than 2.0.
    +       nothing
    +
    +julia> @objective(model, Min, [obj1, obj2])   # Two-objective problem
    +2-element Vector{AffExpr}:
    + x[1] + 1
    + 2 x[1]
    +
    +julia> @constraint(model, obj3 <= 2.0)
    +x[1] + x[2] ≤ 2
    diff --git a/previews/PR3545/manual/solutions/index.html b/previews/PR3545/manual/solutions/index.html new file mode 100644 index 00000000000..f6bde0990af --- /dev/null +++ b/previews/PR3545/manual/solutions/index.html @@ -0,0 +1,374 @@ + +Solutions · JuMP

    Solutions

    This section of the manual describes how to access a solved solution to a problem. It uses the following model as an example:

    julia> begin
    +           model = Model(HiGHS.Optimizer)
    +           set_silent(model)
    +           @variable(model, x >= 0)
    +           @variable(model, y[[:a, :b]] <= 1)
    +           @objective(model, Max, -12x - 20y[:a])
    +           @expression(model, my_expr, 6x + 8y[:a])
    +           @constraint(model, my_expr >= 100)
    +           @constraint(model, c1, 7x + 12y[:a] >= 120)
    +           optimize!(model)
    +           print(model)
    +       end
    +Max -12 x - 20 y[a]
    +Subject to
    + 6 x + 8 y[a] ≥ 100
    + c1 : 7 x + 12 y[a] ≥ 120
    + x ≥ 0
    + y[a] ≤ 1
    + y[b] ≤ 1

    Solutions summary

    solution_summary can be used for checking the summary of the optimization solutions.

    julia> solution_summary(model)
    +* Solver : HiGHS
    +
    +* Status
    +  Result count       : 1
    +  Termination status : OPTIMAL
    +  Message from the solver:
    +  "kHighsModelStatusOptimal"
    +
    +* Candidate solution (result #1)
    +  Primal status      : FEASIBLE_POINT
    +  Dual status        : FEASIBLE_POINT
    +  Objective value    : -2.05143e+02
    +  Objective bound    : -0.00000e+00
    +  Relative gap       : Inf
    +  Dual objective value : -2.05143e+02
    +
    +* Work counters
    +  Solve time (sec)   : 6.70987e-04
    +  Simplex iterations : 2
    +  Barrier iterations : 0
    +  Node count         : -1
    +
    +julia> solution_summary(model; verbose = true)
    +* Solver : HiGHS
    +
    +* Status
    +  Result count       : 1
    +  Termination status : OPTIMAL
    +  Message from the solver:
    +  "kHighsModelStatusOptimal"
    +
    +* Candidate solution (result #1)
    +  Primal status      : FEASIBLE_POINT
    +  Dual status        : FEASIBLE_POINT
    +  Objective value    : -2.05143e+02
    +  Objective bound    : -0.00000e+00
    +  Relative gap       : Inf
    +  Dual objective value : -2.05143e+02
    +  Primal solution :
    +    x : 1.54286e+01
    +    y[a] : 1.00000e+00
    +    y[b] : 1.00000e+00
    +  Dual solution :
    +    c1 : 1.71429e+00
    +
    +* Work counters
    +  Solve time (sec)   : 6.70987e-04
    +  Simplex iterations : 2
    +  Barrier iterations : 0
    +  Node count         : -1

    Why did the solver stop?

    Usetermination_status to understand why the solver stopped.

    julia> termination_status(model)
    +OPTIMAL::TerminationStatusCode = 1

    The MOI.TerminationStatusCode enum describes the full list of statuses that could be returned.

    Common return values include OPTIMAL, LOCALLY_SOLVED, INFEASIBLE, DUAL_INFEASIBLE, and TIME_LIMIT.

    Info

    A return status of OPTIMAL means the solver found (and proved) a globally optimal solution. A return status of LOCALLY_SOLVED means the solver found a locally optimal solution (which may also be globally optimal, but it could not prove so).

    Warning

    A return status of DUAL_INFEASIBLE does not guarantee that the primal is unbounded. When the dual is infeasible, the primal is unbounded if there exists a feasible primal solution.

    Use raw_status to get a solver-specific string explaining why the optimization stopped:

    julia> raw_status(model)
    +"kHighsModelStatusOptimal"

    Primal solutions

    Primal solution status

    Use primal_status to return an MOI.ResultStatusCode enum describing the status of the primal solution.

    julia> primal_status(model)
    +FEASIBLE_POINT::ResultStatusCode = 1

    Other common returns are NO_SOLUTION, and INFEASIBILITY_CERTIFICATE. The first means that the solver doesn't have a solution to return, and the second means that the primal solution is a certificate of dual infeasibility (a primal unbounded ray).

    You can also use has_values, which returns true if there is a solution that can be queried, and false otherwise.

    julia> has_values(model)
    +true

    Objective values

    The objective value of a solved problem can be obtained via objective_value. The best known bound on the optimal objective value can be obtained via objective_bound. If the solver supports it, the value of the dual objective can be obtained via dual_objective_value.

    julia> objective_value(model)
    +-205.14285714285714
    +
    +julia> objective_bound(model)  # HiGHS only implements objective bound for MIPs
    +-0.0
    +
    +julia> dual_objective_value(model)
    +-205.1428571428571

    Primal solution values

    If the solver has a primal solution to return, use value to access it:

    julia> value(x)
    +15.428571428571429

    Broadcast value over containers:

    julia> value.(y)
    +1-dimensional DenseAxisArray{Float64,1,...} with index sets:
    +    Dimension 1, [:a, :b]
    +And data, a 2-element Vector{Float64}:
    + 1.0
    + 1.0

    value also works on expressions:

    julia> value(my_expr)
    +100.57142857142857

    and constraints:

    julia> value(c1)
    +120.0
    Info

    Calling value on a constraint returns the constraint function evaluated at the solution.

    Dual solutions

    Dual solution status

    Use dual_status to return an MOI.ResultStatusCode enum describing the status of the dual solution.

    julia> dual_status(model)
    +FEASIBLE_POINT::ResultStatusCode = 1

    Other common returns are NO_SOLUTION, and INFEASIBILITY_CERTIFICATE. The first means that the solver doesn't have a solution to return, and the second means that the dual solution is a certificate of primal infeasibility (a dual unbounded ray).

    You can also use has_duals, which returns true if there is a solution that can be queried, and false otherwise.

    julia> has_duals(model)
    +true

    Dual solution values

    If the solver has a dual solution to return, use dual to access it:

    julia> dual(c1)
    +1.7142857142857142

    Query the duals of variable bounds using LowerBoundRef, UpperBoundRef, and FixRef:

    julia> dual(LowerBoundRef(x))
    +0.0
    +
    +julia> dual.(UpperBoundRef.(y))
    +1-dimensional DenseAxisArray{Float64,1,...} with index sets:
    +    Dimension 1, [:a, :b]
    +And data, a 2-element Vector{Float64}:
    + -0.5714285714285694
    +  0.0
    Warning

    JuMP's definition of duality is independent of the objective sense. That is, the sign of feasible duals associated with a constraint depends on the direction of the constraint and not whether the problem is maximization or minimization. This is a different convention from linear programming duality in some common textbooks. If you have a linear program, and you want the textbook definition, you probably want to use shadow_price and reduced_cost instead.

    julia> shadow_price(c1)
    +1.7142857142857142
    +
    +julia> reduced_cost(x)
    +-0.0
    +
    +julia> reduced_cost.(y)
    +1-dimensional DenseAxisArray{Float64,1,...} with index sets:
    +    Dimension 1, [:a, :b]
    +And data, a 2-element Vector{Float64}:
    +  0.5714285714285694
    + -0.0

    The recommended workflow for solving a model and querying the solution is something like the following:

    julia> begin
    +           if termination_status(model) == OPTIMAL
    +               println("Solution is optimal")
    +           elseif termination_status(model) == TIME_LIMIT && has_values(model)
    +               println("Solution is suboptimal due to a time limit, but a primal solution is available")
    +           else
    +               error("The model was not solved correctly.")
    +           end
    +           println("  objective value = ", objective_value(model))
    +           if primal_status(model) == FEASIBLE_POINT
    +               println("  primal solution: x = ", value(x))
    +           end
    +           if dual_status(model) == FEASIBLE_POINT
    +               println("  dual solution: c1 = ", dual(c1))
    +           end
    +       end
    +Solution is optimal
    +  objective value = -205.14285714285714
    +  primal solution: x = 15.428571428571429
    +  dual solution: c1 = 1.7142857142857142

    OptimizeNotCalled errors

    Due to differences in how solvers cache solutions internally, modifying a model after calling optimize! will reset the model into the MOI.OPTIMIZE_NOT_CALLED state. If you then attempt to query solution information, an OptimizeNotCalled error will be thrown.

    If you are iteratively querying solution information and modifying a model, query all the results first, then modify the problem.

    For example, instead of:

    julia> model = Model(HiGHS.Optimizer);
    +
    +julia> set_silent(model)
    +
    +julia> @variable(model, x >= 0);
    +
    +julia> optimize!(model)
    +
    +julia> termination_status(model)
    +OPTIMAL::TerminationStatusCode = 1
    +
    +julia> set_upper_bound(x, 1)
    +
    +julia> x_val = value(x)
    +┌ Warning: The model has been modified since the last call to `optimize!` (or `optimize!` has not been called yet). If you are iteratively querying solution information and modifying a model, query all the results first, then modify the model.
    +└ @ JuMP ~/work/JuMP.jl/JuMP.jl/src/optimizer_interface.jl:712
    +ERROR: OptimizeNotCalled()
    +Stacktrace:
    +[...]
    +
    +julia> termination_status(model)
    +OPTIMIZE_NOT_CALLED::TerminationStatusCode = 0

    do

    julia> model = Model(HiGHS.Optimizer);
    +
    +julia> set_silent(model)
    +
    +julia> @variable(model, x >= 0);
    +
    +julia> optimize!(model);
    +
    +julia> x_val = value(x)
    +0.0
    +
    +julia> termination_status(model)
    +OPTIMAL::TerminationStatusCode = 1
    +
    +julia> set_upper_bound(x, 1)
    +
    +julia> set_lower_bound(x, x_val)
    +
    +julia> termination_status(model)
    +OPTIMIZE_NOT_CALLED::TerminationStatusCode = 0

    If you know that your particular solver supports querying solution information after modifications, you can use direct_model to bypass the MOI.OPTIMIZE_NOT_CALLED state:

    julia> model = direct_model(HiGHS.Optimizer());
    +
    +julia> set_silent(model)
    +
    +julia> @variable(model, x >= 0);
    +
    +julia> optimize!(model)
    +
    +julia> termination_status(model)
    +OPTIMAL::TerminationStatusCode = 1
    +
    +julia> set_upper_bound(x, 1)
    +
    +julia> x_val = value(x)
    +0.0
    +
    +julia> set_lower_bound(x, x_val)
    +
    +julia> termination_status(model)
    +OPTIMAL::TerminationStatusCode = 1
    Warning

    Be careful doing this. If your particular solver does not support querying solution information after modification, it may silently return incorrect solutions or throw an error.

    Accessing attributes

    MathOptInterface defines many model attributes that can be queried. Some attributes can be directly accessed by getter functions. These include:

    Sensitivity analysis for LP

    Given an LP problem and an optimal solution corresponding to a basis, we can question how much an objective coefficient or standard form right-hand side coefficient (c.f., normalized_rhs) can change without violating primal or dual feasibility of the basic solution.

    Note that not all solvers compute the basis, and for sensitivity analysis, the solver interface must implement MOI.ConstraintBasisStatus.

    Tip

    Read the Sensitivity analysis of a linear program for more information on sensitivity analysis.

    To give a simple example, we could analyze the sensitivity of the optimal solution to the following (non-degenerate) LP problem:

    julia> begin
    +           model = Model(HiGHS.Optimizer)
    +           set_silent(model)
    +           @variable(model, x[1:2])
    +           set_lower_bound(x[2], -0.5)
    +           set_upper_bound(x[2], 0.5)
    +           @constraint(model, c1, x[1] + x[2] <= 1)
    +           @constraint(model, c2, x[1] - x[2] <= 1)
    +           @objective(model, Max, x[1])
    +           print(model)
    +       end
    +Max x[1]
    +Subject to
    + c1 : x[1] + x[2] ≤ 1
    + c2 : x[1] - x[2] ≤ 1
    + x[2] ≥ -0.5
    + x[2] ≤ 0.5

    To analyze the sensitivity of the problem we could check the allowed perturbation ranges of, for example, the cost coefficients and the right-hand side coefficient of the constraint c1 as follows:

    julia> optimize!(model)
    +
    +julia> value.(x)
    +2-element Vector{Float64}:
    +  1.0
    + -0.0
    +
    +julia> report = lp_sensitivity_report(model);
    +
    +julia> x1_lo, x1_hi = report[x[1]]
    +(-1.0, Inf)
    +
    +julia> println("The objective coefficient of x[1] could decrease by $(x1_lo) or increase by $(x1_hi).")
    +The objective coefficient of x[1] could decrease by -1.0 or increase by Inf.
    +
    +julia> x2_lo, x2_hi = report[x[2]]
    +(-1.0, 1.0)
    +
    +julia> println("The objective coefficient of x[2] could decrease by $(x2_lo) or increase by $(x2_hi).")
    +The objective coefficient of x[2] could decrease by -1.0 or increase by 1.0.
    +
    +julia> c_lo, c_hi = report[c1]
    +(-1.0, 1.0)
    +
    +julia> println("The RHS of c1 could decrease by $(c_lo) or increase by $(c_hi).")
    +The RHS of c1 could decrease by -1.0 or increase by 1.0.

    The range associated with a variable is the range of the allowed perturbation of the corresponding objective coefficient. Note that the current primal solution remains optimal within this range; however the corresponding dual solution might change since a cost coefficient is perturbed. Similarly, the range associated with a constraint is the range of the allowed perturbation of the corresponding right-hand side coefficient. In this range the current dual solution remains optimal, but the optimal primal solution might change.

    If the problem is degenerate, there are multiple optimal bases and hence these ranges might not be as intuitive and seem too narrow, for example, a larger cost coefficient perturbation might not invalidate the optimality of the current primal solution. Moreover, if a problem is degenerate, due to finite precision, it can happen that, for example, a perturbation seems to invalidate a basis even though it doesn't (again providing too narrow ranges). To prevent this, increase the atol keyword argument to lp_sensitivity_report. Note that this might make the ranges too wide for numerically challenging instances. Thus, do not blindly trust these ranges, especially not for highly degenerate or numerically unstable instances.

    Conflicts

    When the model you input is infeasible, some solvers can help you find the cause of this infeasibility by offering a conflict, that is, a subset of the constraints that create this infeasibility. Depending on the solver, this can also be called an IIS (irreducible inconsistent subsystem).

    If supported by the solver, use compute_conflict! to trigger the computation of a conflict. Once this process is finished, query the MOI.ConflictStatus attribute to check if a conflict was found.

    If found, copy the IIS to a new model using copy_conflict, which you can then print or write to a file for easier debugging:

    julia> using JuMP
    +
    +julia> import Gurobi
    +
    +julia> model = Model(Gurobi.Optimizer)
    +A JuMP Model
    +Feasibility problem with:
    +Variables: 0
    +Model mode: AUTOMATIC
    +CachingOptimizer state: EMPTY_OPTIMIZER
    +Solver name: Gurobi
    +
    +julia> set_silent(model)
    +
    +julia> @variable(model, x >= 0)
    +x
    +
    +julia> @constraint(model, c1, x >= 2)
    +c1 : x ≥ 2.0
    +
    +julia> @constraint(model, c2, x <= 1)
    +c2 : x ≤ 1.0
    +
    +julia> optimize!(model)
    +
    +julia> compute_conflict!(model)
    +
    +julia> if get_attribute(model, MOI.ConflictStatus()) == MOI.CONFLICT_FOUND
    +           iis_model, _ = copy_conflict(model)
    +           print(iis_model)
    +       end
    +Feasibility
    +Subject to
    + c1 : x ≥ 2.0
    + c2 : x ≤ 1.0

    If you need more control over the list of constraints that appear in the conflict, iterate over the list of constraints and query the MOI.ConstraintConflictStatus attribute:

    julia> list_of_conflicting_constraints = ConstraintRef[]
    +ConstraintRef[]
    +
    +julia> for (F, S) in list_of_constraint_types(model)
    +           for con in all_constraints(model, F, S)
    +               if get_attribute(con, MOI.ConstraintConflictStatus()) == MOI.IN_CONFLICT
    +                   push!(list_of_conflicting_constraints, con)
    +               end
    +           end
    +       end
    +
    +julia> list_of_conflicting_constraints
    +2-element Vector{ConstraintRef}:
    + c1 : x ≥ 2.0
    + c2 : x ≤ 1.0

    Multiple solutions

    Some solvers support returning multiple solutions. You can check how many solutions are available to query using result_count.

    Functions for querying the solutions, for example, primal_status, dual_status, value, dual, and solution_summary all take an additional keyword argument result which can be used to specify which result to return.

    Warning

    Even if termination_status is OPTIMAL, some of the returned solutions may be suboptimal. However, if the solver found at least one optimal solution, then result = 1 will always return an optimal solution. Use objective_value to assess the quality of the remaining solutions.

    julia> using JuMP
    +
    +julia> import MultiObjectiveAlgorithms as MOA
    +
    +julia> import HiGHS
    +
    +julia> model = Model(() -> MOA.Optimizer(HiGHS.Optimizer));
    +
    +julia> set_attribute(model, MOA.Algorithm(), MOA.Dichotomy())
    +
    +julia> set_silent(model)
    +
    +julia> @variable(model, x1 >= 0)
    +x1
    +
    +julia> @variable(model, 0 <= x2 <= 3)
    +x2
    +
    +julia> @objective(model, Min, [3x1 + x2, -x1 - 2x2])
    +2-element Vector{AffExpr}:
    + 3 x1 + x2
    + -x1 - 2 x2
    +
    +julia> @constraint(model, 3x1 - x2 <= 6)
    +3 x1 - x2 ≤ 6
    +
    +julia> optimize!(model)
    +
    +julia> solution_summary(model; result = 1)
    +* Solver : MOA[algorithm=MultiObjectiveAlgorithms.Dichotomy, optimizer=HiGHS]
    +
    +* Status
    +  Result count       : 3
    +  Termination status : OPTIMAL
    +  Message from the solver:
    +  "Solve complete. Found 3 solution(s)"
    +
    +* Candidate solution (result #1)
    +  Primal status      : FEASIBLE_POINT
    +  Dual status        : NO_SOLUTION
    +  Objective value    : [0.00000e+00,0.00000e+00]
    +  Objective bound    : [0.00000e+00,-9.00000e+00]
    +  Relative gap       : Inf
    +  Dual objective value : -9.00000e+00
    +
    +* Work counters
    +  Solve time (sec)   : 1.82720e-03
    +  Simplex iterations : 1
    +  Barrier iterations : 0
    +  Node count         : -1
    +
    +julia> for i in 1:result_count(model)
    +           println("Solution $i")
    +           println("   x = ", value.([x1, x2]; result = i))
    +           println(" obj = ", objective_value(model; result = i))
    +       end
    +Solution 1
    +   x = [0.0, 0.0]
    + obj = [0.0, 0.0]
    +Solution 2
    +   x = [0.0, 3.0]
    + obj = [3.0, -6.0]
    +Solution 3
    +   x = [3.0, 3.0]
    + obj = [12.0, -9.0]
    Tip

    The Multi-objective knapsack tutorial provides more examples of querying multiple solutions.

    Checking feasibility of solutions

    To check the feasibility of a primal solution, use primal_feasibility_report, which takes a model, a dictionary mapping each variable to a primal solution value (defaults to the last solved solution), and a tolerance atol (defaults to 0.0).

    The function returns a dictionary which maps the infeasible constraint references to the distance between the primal value of the constraint and the nearest point in the corresponding set. A point is classed as infeasible if the distance is greater than the supplied tolerance atol.

    julia> model = Model(HiGHS.Optimizer);
    +
    +julia> set_silent(model)
    +
    +julia> @variable(model, x >= 1, Int);
    +
    +julia> @variable(model, y);
    +
    +julia> @constraint(model, c1, x + y <= 1.95);
    +
    +julia> point = Dict(x => 1.9, y => 0.06);
    +
    +julia> primal_feasibility_report(model, point)
    +Dict{Any, Float64} with 2 entries:
    +  x integer         => 0.1
    +  c1 : x + y ≤ 1.95 => 0.01
    +
    +julia> primal_feasibility_report(model, point; atol = 0.02)
    +Dict{Any, Float64} with 1 entry:
    +  x integer => 0.1

    If the point is feasible, an empty dictionary is returned:

    julia> primal_feasibility_report(model, Dict(x => 1.0, y => 0.0))
    +Dict{Any, Float64}()

    To use the primal solution from a solve, omit the point argument:

    julia> optimize!(model)
    +
    +julia> primal_feasibility_report(model; atol = 0.0)
    +Dict{Any, Float64}()

    Calling primal_feasibility_report without the point argument is useful when primal_status is FEASIBLE_POINT or NEARLY_FEASIBLE_POINT, and you want to assess the solution quality.

    Warning

    To apply primal_feasibility_report to infeasible models, you must also provide a candidate point (solvers generally do not provide one). To diagnose the source of infeasibility, see Conflicts.

    Pass skip_mising = true to skip constraints which contain variables that are not in point:

    julia> primal_feasibility_report(model, Dict(x => 2.1); skip_missing = true)
    +Dict{Any, Float64} with 1 entry:
    +  x integer => 0.1

    You can also use the functional form, where the first argument is a function that maps variables to their primal values:

    julia> optimize!(model)
    +
    +julia> primal_feasibility_report(v -> value(v), model)
    +Dict{Any, Float64}()
    diff --git a/previews/PR3545/manual/variables/index.html b/previews/PR3545/manual/variables/index.html new file mode 100644 index 00000000000..36ac8794eba --- /dev/null +++ b/previews/PR3545/manual/variables/index.html @@ -0,0 +1,637 @@ + +Variables · JuMP

    Variables

    The term variable in mathematical optimization has many meanings. For example, optimization variables (also called decision variables) are the unknowns $x$ that we are solving for in the problem:

    \[\begin{align} + & \min_{x \in \mathbb{R}^n} & f_0(x) + \\ + & \;\;\text{s.t.} & f_i(x) & \in \mathcal{S}_i & i = 1 \ldots m +\end{align}\]

    To complicate things, Julia uses variable to mean a binding between a name and a value. For example, in the statement:

    julia> x = 1
    +1

    x is a variable that stores the value 1.

    JuMP uses variable in a third way, to mean an instance of the VariableRef struct. JuMP variables are the link between Julia and the optimization variables inside a JuMP model.

    This page explains how to create and manage JuMP variables in a variety of contexts.

    Create a variable

    Create variables using the @variable macro:

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> typeof(x)
    +VariableRef (alias for GenericVariableRef{Float64})
    +
    +julia> num_variables(model)
    +1

    Here x is a Julia variable that is bound to a VariableRef object, and we have added 1 decision variable to our model.

    To make the binding more explicit, we could have written:

    julia> model = Model();
    +
    +julia> x = @variable(model, x)
    +x

    but there is no need to in general; the macro does it for us.

    When creating a variable, you can also specify variable bounds:

    julia> model = Model();
    +
    +julia> @variable(model, x_free)
    +x_free
    +
    +julia> @variable(model, x_lower >= 0)
    +x_lower
    +
    +julia> @variable(model, x_upper <= 1)
    +x_upper
    +
    +julia> @variable(model, 2 <= x_interval <= 3)
    +x_interval
    +
    +julia> @variable(model, x_fixed == 4)
    +x_fixed
    +
    +julia> print(model)
    +Feasibility
    +Subject to
    + x_fixed = 4
    + x_lower ≥ 0
    + x_interval ≥ 2
    + x_upper ≤ 1
    + x_interval ≤ 3
    Warning

    When creating a variable with a single lower- or upper-bound, and the value of the bound is not a numeric literal (for example, 1 or 1.0), the name of the variable must appear on the left-hand side. Putting the name on the right-hand side is an error. For example, to create a variable x:

    a = 1
    +@variable(model, x >= 1)      # ✓ Okay
    +@variable(model, 1.0 <= x)    # ✓ Okay
    +@variable(model, x >= a)      # ✓ Okay
    +@variable(model, a <= x)      # × Not okay
    +@variable(model, x >= 1 / 2)  # ✓ Okay
    +@variable(model, 1 / 2 <= x)  # × Not okay

    Containers of variables

    The @variable macro also supports creating collections of JuMP variables. We'll cover some brief syntax here; read the Variable containers section for more details.

    You can create arrays of JuMP variables:

    julia> model = Model();
    +
    +julia> @variable(model, x[1:2, 1:2])
    +2×2 Matrix{VariableRef}:
    + x[1,1]  x[1,2]
    + x[2,1]  x[2,2]
    +
    +julia> x[1, 2]
    +x[1,2]

    Index sets can be named, and bounds can depend on those names:

    julia> model = Model();
    +
    +julia> @variable(model, sqrt(i) <= x[i = 1:3] <= i^2)
    +3-element Vector{VariableRef}:
    + x[1]
    + x[2]
    + x[3]
    +
    +julia> x[2]
    +x[2]

    Sets can be any Julia type that supports iteration:

    julia> model = Model();
    +
    +julia> @variable(model, x[i = 2:3, j = 1:2:3, ["red", "blue"]] >= 0)
    +3-dimensional DenseAxisArray{VariableRef,3,...} with index sets:
    +    Dimension 1, 2:3
    +    Dimension 2, 1:2:3
    +    Dimension 3, ["red", "blue"]
    +And data, a 2×2×2 Array{VariableRef, 3}:
    +[:, :, "red"] =
    + x[2,1,red]  x[2,3,red]
    + x[3,1,red]  x[3,3,red]
    +
    +[:, :, "blue"] =
    + x[2,1,blue]  x[2,3,blue]
    + x[3,1,blue]  x[3,3,blue]
    +
    +julia> x[2, 1, "red"]
    +x[2,1,red]

    Sets can depend upon previous indices:

    julia> model = Model();
    +
    +julia> @variable(model, u[i = 1:2, j = i:3])
    +JuMP.Containers.SparseAxisArray{VariableRef, 2, Tuple{Int64, Int64}} with 5 entries:
    +  [1, 1]  =  u[1,1]
    +  [1, 2]  =  u[1,2]
    +  [1, 3]  =  u[1,3]
    +  [2, 2]  =  u[2,2]
    +  [2, 3]  =  u[2,3]

    and we can filter elements in the sets using the ; syntax:

    julia> model = Model();
    +
    +julia> @variable(model, v[i = 1:9; mod(i, 3) == 0])
    +JuMP.Containers.SparseAxisArray{VariableRef, 1, Tuple{Int64}} with 3 entries:
    +  [3]  =  v[3]
    +  [6]  =  v[6]
    +  [9]  =  v[9]

    Registered variables

    When you create variables, JuMP registers them inside the model using their corresponding symbol. Get a registered name using model[:key]:

    julia> model = Model()
    +A JuMP Model
    +Feasibility problem with:
    +Variables: 0
    +Model mode: AUTOMATIC
    +CachingOptimizer state: NO_OPTIMIZER
    +Solver name: No optimizer attached.
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> model
    +A JuMP Model
    +Feasibility problem with:
    +Variable: 1
    +Model mode: AUTOMATIC
    +CachingOptimizer state: NO_OPTIMIZER
    +Solver name: No optimizer attached.
    +Names registered in the model: x
    +
    +julia> model[:x] === x
    +true

    Registered names are most useful when you start to write larger models and want to break up the model construction into functions:

    julia> function set_objective(model::Model)
    +           @objective(model, Min, 2 * model[:my_x] + 1)
    +           return
    +       end
    +set_objective (generic function with 1 method)
    +
    +julia> model = Model();
    +
    +julia> @variable(model, my_x);
    +
    +julia> set_objective(model)
    +
    +julia> print(model)
    +Min 2 my_x + 1
    +Subject to

    Anonymous variables

    To reduce the likelihood of accidental bugs, and because JuMP registers variables inside a model, creating two variables with the same name is an error:

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> @variable(model, x)
    +ERROR: An object of name x is already attached to this model. If this
    +    is intended, consider using the anonymous construction syntax, e.g.,
    +    `x = @variable(model, [1:N], ...)` where the name of the object does
    +    not appear inside the macro.
    +
    +    Alternatively, use `unregister(model, :x)` to first unregister
    +    the existing name from the model. Note that this will not delete the
    +    object; it will just remove the reference at `model[:x]`.
    +[...]

    A common reason for encountering this error is adding variables in a loop.

    As a work-around, JuMP provides anonymous variables. Create a scalar valued anonymous variable by omitting the name argument:

    julia> model = Model();
    +
    +julia> x = @variable(model)
    +_[1]

    Anonymous variables get printed as an underscore followed by a unique index of the variable.

    Warning

    The index of the variable may not correspond to the column of the variable in the solver.

    Create a container of anonymous JuMP variables by dropping the name in front of the [:

    julia> model = Model();
    +
    +julia> y = @variable(model, [1:2])
    +2-element Vector{VariableRef}:
    + _[1]
    + _[2]

    The <= and >= short-hand cannot be used to set bounds on scalar-valued anonymous JuMP variables. Instead, use the lower_bound and upper_bound keywords:

    julia> model = Model();
    +
    +julia> x_lower = @variable(model, lower_bound = 1.0)
    +_[1]
    +
    +julia> x_upper = @variable(model, upper_bound = 2.0)
    +_[2]
    +
    +julia> x_interval = @variable(model, lower_bound = 3.0, upper_bound = 4.0)
    +_[3]

    Variable names

    In addition to the symbol that variables are registered with, JuMP variables have a String name that is used for printing and writing to file formats.

    Get and set the name of a variable using name and set_name:

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> name(x)
    +"x"
    +
    +julia> set_name(x, "my_x_name")
    +
    +julia> x
    +my_x_name

    Override the default choice of name using the base_name keyword:

    julia> model = Model();
    +
    +julia> @variable(model, x[i=1:2], base_name = "my_var")
    +2-element Vector{VariableRef}:
    + my_var[1]
    + my_var[2]

    Note that names apply to each element of the container, not to the container of variables:

    julia> name(x[1])
    +"my_var[1]"
    +
    +julia> set_name(x[1], "my_x")
    +
    +julia> x
    +2-element Vector{VariableRef}:
    + my_x
    + my_var[2]
    Tip

    For some models, setting the string name of each variable can take a non-trivial portion of the total time required to build the model. Turn off String names by passing set_string_name = false to @variable:

    julia> model = Model();
    +
    +julia> @variable(model, x, set_string_name = false)
    +_[1]

    See Disable string names for more information.

    Retrieve a variable by name

    Retrieve a variable from a model using variable_by_name:

    julia> variable_by_name(model, "my_x")
    +my_x

    If the name is not present, nothing will be returned:

    julia> variable_by_name(model, "bad_name")

    You can only look up individual variables using variable_by_name. Something like this will not work:

    julia> model = Model();
    +
    +julia> @variable(model, [i = 1:2], base_name = "my_var")
    +2-element Vector{VariableRef}:
    + my_var[1]
    + my_var[2]
    +
    +julia> variable_by_name(model, "my_var")

    To look up a collection of variables, do not use variable_by_name. Instead, register them using the model[:key] = value syntax:

    julia> model = Model();
    +
    +julia> model[:x] = @variable(model, [i = 1:2], base_name = "my_var")
    +2-element Vector{VariableRef}:
    + my_var[1]
    + my_var[2]
    +
    +julia> model[:x]
    +2-element Vector{VariableRef}:
    + my_var[1]
    + my_var[2]

    String names, symbolic names, and bindings

    It's common for new users to experience confusion relating to JuMP variables. Part of the problem is the overloaded use of "variable" in mathematical optimization, along with the difference between the name that a variable is registered under and the String name used for printing.

    Here's a summary of the differences:

    • JuMP variables are created using @variable.
    • JuMP variables can be named or anonymous.
    • Named JuMP variables have the form @variable(model, x). For named variables:
      • The String name of the variable is set to "x".
      • A Julia variable x is created that binds x to the JuMP variable.
      • The name :x is registered as a key in the model with the value x.
    • Anonymous JuMP variables have the form x = @variable(model). For anonymous variables:
      • The String name of the variable is set to "". When printed, this is replaced with "_[i]" where i is the index of the variable.
      • You control the name of the Julia variable used as the binding.
      • No name is registered as a key in the model.
    • The base_name keyword can override the String name of the variable.
    • You can manually register names in the model via model[:key] = value

    Here's an example that should make things clearer:

    julia> model = Model();
    +
    +julia> x_binding = @variable(model, base_name = "x")
    +x
    +
    +julia> model
    +A JuMP Model
    +Feasibility problem with:
    +Variable: 1
    +Model mode: AUTOMATIC
    +CachingOptimizer state: NO_OPTIMIZER
    +Solver name: No optimizer attached.
    +
    +julia> x
    +ERROR: UndefVarError: `x` not defined
    +
    +julia> x_binding
    +x
    +
    +julia> name(x_binding)
    +"x"
    +
    +julia> model[:x_register] = x_binding
    +x
    +
    +julia> model
    +A JuMP Model
    +Feasibility problem with:
    +Variable: 1
    +Model mode: AUTOMATIC
    +CachingOptimizer state: NO_OPTIMIZER
    +Solver name: No optimizer attached.
    +Names registered in the model: x_register
    +
    +julia> model[:x_register]
    +x
    +
    +julia> model[:x_register] === x_binding
    +true
    +
    +julia> x
    +ERROR: UndefVarError: `x` not defined

    Create, delete, and modify variable bounds

    Query whether a variable has a bound using has_lower_bound, has_upper_bound, and is_fixed:

    julia> has_lower_bound(x_free)
    +false
    +
    +julia> has_upper_bound(x_upper)
    +true
    +
    +julia> is_fixed(x_fixed)
    +true

    If a variable has a particular bound, query the value of it using lower_bound, upper_bound, and fix_value:

    julia> lower_bound(x_interval)
    +2.0
    +
    +julia> upper_bound(x_interval)
    +3.0
    +
    +julia> fix_value(x_fixed)
    +4.0

    Querying the value of a bound that does not exist will result in an error.

    Delete variable bounds using delete_lower_bound, delete_upper_bound, and unfix:

    julia> delete_lower_bound(x_lower)
    +
    +julia> has_lower_bound(x_lower)
    +false
    +
    +julia> delete_upper_bound(x_upper)
    +
    +julia> has_upper_bound(x_upper)
    +false
    +
    +julia> unfix(x_fixed)
    +
    +julia> is_fixed(x_fixed)
    +false

    Set or update variable bounds using set_lower_bound, set_upper_bound, and fix:

    julia> set_lower_bound(x_lower, 1.1)
    +
    +julia> set_upper_bound(x_upper, 2.1)
    +
    +julia> fix(x_fixed, 4.1)

    Fixing a variable with existing bounds will throw an error. To delete the bounds prior to fixing, use fix(variable, value; force = true).

    julia> model = Model();
    +
    +julia> @variable(model, x >= 1)
    +x
    +
    +julia> fix(x, 2)
    +ERROR: Unable to fix x to 2 because it has existing variable bounds. Consider calling `JuMP.fix(variable, value; force=true)` which will delete existing bounds before fixing the variable.
    +
    +julia> fix(x, 2; force = true)
    +
    +
    +julia> fix_value(x)
    +2.0
    Tip

    Use fix instead of @constraint(model, x == 2). The former modifies variable bounds, while the latter adds a new linear constraint to the problem.

    Binary variables

    Binary variables are constrained to the set $x \in \{0, 1\}$.

    Create a binary variable by passing Bin as an optional positional argument:

    julia> model = Model();
    +
    +julia> @variable(model, x, Bin)
    +x

    Check if a variable is binary using is_binary:

    julia> is_binary(x)
    +true

    Delete a binary constraint using unset_binary:

    julia> unset_binary(x)
    +
    +julia> is_binary(x)
    +false

    Binary variables can also be created by setting the binary keyword to true:

    julia> model = Model();
    +
    +julia> @variable(model, x, binary=true)
    +x

    or by using set_binary:

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> set_binary(x)

    Integer variables

    Integer variables are constrained to the set $x \in \mathbb{Z}$.

    Create an integer variable by passing Int as an optional positional argument:

    julia> model = Model();
    +
    +julia> @variable(model, x, Int)
    +x

    Check if a variable is integer using is_integer:

    julia> is_integer(x)
    +true

    Delete an integer constraint using unset_integer.

    julia> unset_integer(x)
    +
    +julia> is_integer(x)
    +false

    Integer variables can also be created by setting the integer keyword to true:

    julia> model = Model();
    +
    +julia> @variable(model, x, integer=true)
    +x

    or by using set_integer:

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> set_integer(x)
    Tip

    The relax_integrality function relaxes all integrality constraints in the model, returning a function that can be called to undo the operation later on.

    Start values

    There are two ways to provide a primal starting solution (also called MIP-start or a warmstart) for each variable:

    The starting value of a variable can be queried using start_value. If no start value has been set, start_value will return nothing.

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> start_value(x)
    +
    +julia> @variable(model, y, start = 1)
    +y
    +
    +julia> start_value(y)
    +1.0
    +
    +julia> set_start_value(y, 2)
    +
    +julia> start_value(y)
    +2.0

    The start keyword argument can depend on the indices of a variable container:

    julia> model = Model();
    +
    +julia> @variable(model, z[i = 1:2], start = i^2)
    +2-element Vector{VariableRef}:
    + z[1]
    + z[2]
    +
    +julia> start_value.(z)
    +2-element Vector{Float64}:
    + 1.0
    + 4.0
    Warning

    Some solvers do not support start values. If a solver does not support start values, an MathOptInterface.UnsupportedAttribute{MathOptInterface.VariablePrimalStart} error will be thrown.

    Tip

    To set the optimal solution from a previous solve as a new starting value, use all_variables to get a vector of all the variables in the model, then run:

    x = all_variables(model)
    +x_solution = value.(x)
    +set_start_value.(x, x_solution)

    Alternatively, use set_start_values.

    Delete a variable

    Use delete to delete a variable from a model. Use is_valid to check if a variable belongs to a model and has not been deleted.

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> is_valid(model, x)
    +true
    +
    +julia> delete(model, x)
    +
    +julia> is_valid(model, x)
    +false

    Deleting a variable does not unregister the corresponding name from the model. Therefore, creating a new variable of the same name will throw an error:

    julia> @variable(model, x)
    +ERROR: An object of name x is already attached to this model. If this
    +    is intended, consider using the anonymous construction syntax, e.g.,
    +    `x = @variable(model, [1:N], ...)` where the name of the object does
    +    not appear inside the macro.
    +
    +    Alternatively, use `unregister(model, :x)` to first unregister
    +    the existing name from the model. Note that this will not delete the
    +    object; it will just remove the reference at `model[:x]`.
    +[...]

    After calling delete, call unregister to remove the symbolic reference:

    julia> unregister(model, :x)
    +
    +julia> @variable(model, x)
    +x
    Info

    delete does not automatically unregister because we do not distinguish between names that are automatically registered by JuMP macros and names that are manually registered by the user by setting values in object_dictionary. In addition, deleting a variable and then adding a new variable of the same name is an easy way to introduce bugs into your code.

    Variable containers

    JuMP provides a mechanism for creating collections of variables in three types of data structures, which we refer to as containers.

    The three types are Arrays, DenseAxisArrays, and SparseAxisArrays. We explain each of these in the following.

    Tip

    You can read more about containers in the Containers section.

    Arrays

    We have already seen the creation of an array of JuMP variables with the x[1:2] syntax. This can be extended to create multi-dimensional arrays of JuMP variables. For example:

    julia> model = Model();
    +
    +julia> @variable(model, x[1:2, 1:2])
    +2×2 Matrix{VariableRef}:
    + x[1,1]  x[1,2]
    + x[2,1]  x[2,2]

    Arrays of JuMP variables can be indexed and sliced as follows:

    julia> x[1, 2]
    +x[1,2]
    +
    +julia> x[2, :]
    +2-element Vector{VariableRef}:
    + x[2,1]
    + x[2,2]

    Variable bounds can depend upon the indices:

    julia> model = Model();
    +
    +julia> @variable(model, x[i=1:2, j=1:2] >= 2i + j)
    +2×2 Matrix{VariableRef}:
    + x[1,1]  x[1,2]
    + x[2,1]  x[2,2]
    +
    +julia> lower_bound.(x)
    +2×2 Matrix{Float64}:
    + 3.0  4.0
    + 5.0  6.0

    JuMP will form an Array of JuMP variables when it can determine at compile time that the indices are one-based integer ranges. Therefore x[1:b] will create an Array of JuMP variables, but x[a:b] will not. If JuMP cannot determine that the indices are one-based integer ranges (for example, in the case of x[a:b]), JuMP will create a DenseAxisArray instead.

    DenseAxisArrays

    We often want to create arrays where the indices are not one-based integer ranges. For example, we may want to create a variable indexed by the name of a product or a location. The syntax is the same as that above, except with an arbitrary vector as an index as opposed to a one-based range. The biggest difference is that instead of returning an Array of JuMP variables, JuMP will return a DenseAxisArray. For example:

    julia> model = Model();
    +
    +julia> @variable(model, x[1:2, [:A,:B]])
    +2-dimensional DenseAxisArray{VariableRef,2,...} with index sets:
    +    Dimension 1, Base.OneTo(2)
    +    Dimension 2, [:A, :B]
    +And data, a 2×2 Matrix{VariableRef}:
    + x[1,A]  x[1,B]
    + x[2,A]  x[2,B]

    DenseAxisArrays can be indexed and sliced as follows:

    julia> x[1, :A]
    +x[1,A]
    +
    +julia> x[2, :]
    +1-dimensional DenseAxisArray{VariableRef,1,...} with index sets:
    +    Dimension 1, [:A, :B]
    +And data, a 2-element Vector{VariableRef}:
    + x[2,A]
    + x[2,B]

    Bounds can depend upon indices:

    julia> model = Model();
    +
    +julia> @variable(model, x[i=2:3, j=1:2:3] >= 0.5i + j)
    +2-dimensional DenseAxisArray{VariableRef,2,...} with index sets:
    +    Dimension 1, 2:3
    +    Dimension 2, 1:2:3
    +And data, a 2×2 Matrix{VariableRef}:
    + x[2,1]  x[2,3]
    + x[3,1]  x[3,3]
    +
    +julia> lower_bound.(x)
    +2-dimensional DenseAxisArray{Float64,2,...} with index sets:
    +    Dimension 1, 2:3
    +    Dimension 2, 1:2:3
    +And data, a 2×2 Matrix{Float64}:
    + 2.0  4.0
    + 2.5  4.5

    SparseAxisArrays

    The third container type that JuMP natively supports is SparseAxisArray. These arrays are created when the indices do not form a rectangular set. For example, this applies when indices have a dependence upon previous indices (called triangular indexing). JuMP supports this as follows:

    julia> model = Model();
    +
    +julia> @variable(model, x[i=1:2, j=i:2])
    +JuMP.Containers.SparseAxisArray{VariableRef, 2, Tuple{Int64, Int64}} with 3 entries:
    +  [1, 1]  =  x[1,1]
    +  [1, 2]  =  x[1,2]
    +  [2, 2]  =  x[2,2]

    We can also conditionally create variables via a JuMP-specific syntax. This syntax appends a comparison check that depends upon the named indices and is separated from the indices by a semi-colon (;). For example:

    julia> model = Model();
    +
    +julia> @variable(model, x[i=1:4; mod(i, 2)==0])
    +JuMP.Containers.SparseAxisArray{VariableRef, 1, Tuple{Int64}} with 2 entries:
    +  [2]  =  x[2]
    +  [4]  =  x[4]

    Performance considerations

    When using the semi-colon as a filter, JuMP iterates over all indices and evaluates the conditional for each combination. If there are many index dimensions and a large amount of sparsity, this can be inefficient.

    For example:

    julia> model = Model();
    +
    +julia> N = 10
    +10
    +
    +julia> S = [(1, 1, 1), (N, N, N)]
    +2-element Vector{Tuple{Int64, Int64, Int64}}:
    + (1, 1, 1)
    + (10, 10, 10)
    +
    +julia> @time @variable(model, x1[i=1:N, j=1:N, k=1:N; (i, j, k) in S])
    +  0.203861 seconds (392.22 k allocations: 23.977 MiB, 99.10% compilation time)
    +JuMP.Containers.SparseAxisArray{VariableRef, 3, Tuple{Int64, Int64, Int64}} with 2 entries:
    +  [1, 1, 1   ]  =  x1[1,1,1]
    +  [10, 10, 10]  =  x1[10,10,10]
    +
    +julia> @time @variable(model, x2[S])
    +  0.045407 seconds (65.24 k allocations: 3.771 MiB, 99.15% compilation time)
    +1-dimensional DenseAxisArray{VariableRef,1,...} with index sets:
    +    Dimension 1, [(1, 1, 1), (10, 10, 10)]
    +And data, a 2-element Vector{VariableRef}:
    + x2[(1, 1, 1)]
    + x2[(10, 10, 10)]

    The first option is slower because it is equivalent to:

    julia> model = Model();
    +
    +julia> x1 = Dict{NTuple{3,Int},VariableRef}()
    +Dict{Tuple{Int64, Int64, Int64}, VariableRef}()
    +
    +julia> for i in 1:N
    +           for j in 1:N
    +               for k in 1:N
    +                   if (i, j, k) in S
    +                       x1[i, j, k] = @variable(model, base_name = "x1[$i,$j,$k]")
    +                   end
    +               end
    +           end
    +       end
    +
    +julia> x1
    +Dict{Tuple{Int64, Int64, Int64}, VariableRef} with 2 entries:
    +  (1, 1, 1)    => x1[1,1,1]
    +  (10, 10, 10) => x1[10,10,10]

    If performance is a concern, explicitly construct the set of indices instead of using the filtering syntax.

    Forcing the container type

    When creating a container of JuMP variables, JuMP will attempt to choose the tightest container type that can store the JuMP variables. Thus, it will prefer to create an Array before a DenseAxisArray and a DenseAxisArray before a SparseAxisArray. However, because this happens at compile time, JuMP does not always make the best choice. To illustrate this, consider the following example:

    julia> model = Model();
    +
    +julia> A = 1:2
    +1:2
    +
    +julia> @variable(model, x[A])
    +1-dimensional DenseAxisArray{VariableRef,1,...} with index sets:
    +    Dimension 1, 1:2
    +And data, a 2-element Vector{VariableRef}:
    + x[1]
    + x[2]

    Since the value (and type) of A is unknown at parsing time, JuMP is unable to infer that A is a one-based integer range. Therefore, JuMP creates a DenseAxisArray, even though it could store these two variables in a standard one-dimensional Array.

    We can share our knowledge that it is possible to store these JuMP variables as an array by setting the container keyword:

    julia> @variable(model, y[A], container=Array)
    +2-element Vector{VariableRef}:
    + y[1]
    + y[2]

    JuMP now creates a vector of JuMP variables instead of a DenseAxisArray. Choosing an invalid container type will throw an error.

    User-defined containers

    In addition to the built-in container types, you can create your own collections of JuMP variables.

    Tip

    This is a point that users often overlook: you are not restricted to the built-in container types in JuMP.

    For example, the following code creates a dictionary with symmetric matrices as the values:

    julia> model = Model();
    +
    +julia> variables = Dict{Symbol,Array{VariableRef,2}}(
    +           key => @variable(model, [1:2, 1:2], Symmetric, base_name = "$(key)")
    +           for key in [:A, :B]
    +       )
    +Dict{Symbol, Matrix{VariableRef}} with 2 entries:
    +  :A => [A[1,1] A[1,2]; A[1,2] A[2,2]]
    +  :B => [B[1,1] B[1,2]; B[1,2] B[2,2]]

    Another common scenario is a request to add variables to existing containers, for example:

    using JuMP
    +model = Model()
    +@variable(model, x[1:2] >= 0)
    +# Later I want to add
    +@variable(model, x[3:4] >= 0)

    This is not possible with the built-in JuMP container types. However, you can use regular Julia types instead:

    julia> model = Model();
    +
    +julia> x = model[:x] = @variable(model, [1:2], lower_bound = 0, base_name = "x")
    +2-element Vector{VariableRef}:
    + x[1]
    + x[2]
    +
    +julia> append!(x, @variable(model, [1:2], lower_bound = 0, base_name = "y"));
    +
    +julia> model[:x]
    +4-element Vector{VariableRef}:
    + x[1]
    + x[2]
    + y[1]
    + y[2]

    Semidefinite variables

    Declare a square matrix of JuMP variables to be positive semidefinite by passing PSD as an optional positional argument:

    julia> model = Model();
    +
    +julia> @variable(model, x[1:2, 1:2], PSD)
    +2×2 LinearAlgebra.Symmetric{VariableRef, Matrix{VariableRef}}:
    + x[1,1]  x[1,2]
    + x[1,2]  x[2,2]

    This will ensure that x is symmetric, and that all of its eigenvalues are nonnegative.

    Note

    x must be a square 2-dimensional Array of JuMP variables; it cannot be a DenseAxisArray or a SparseAxisArray.

    Symmetric variables

    Declare a square matrix of JuMP variables to be symmetric (but not necessarily positive semidefinite) by passing Symmetric as an optional positional argument:

    julia> model = Model();
    +
    +julia> @variable(model, x[1:2, 1:2], Symmetric)
    +2×2 LinearAlgebra.Symmetric{VariableRef, Matrix{VariableRef}}:
    + x[1,1]  x[1,2]
    + x[1,2]  x[2,2]

    The @variables macro

    If you have many @variable calls, JuMP provides the macro @variables that can improve readability:

    julia> model = Model();
    +
    +julia> @variables(model, begin
    +           x
    +           y[i=1:2] >= i, (start = i, base_name = "Y_$i")
    +           z, Bin
    +       end)
    +(x, VariableRef[Y_1[1], Y_2[2]], z)
    +
    +julia> print(model)
    +Feasibility
    +Subject to
    + Y_1[1] ≥ 1
    + Y_2[2] ≥ 2
    + z binary

    The @variables macro returns a tuple of the variables that were defined.

    Note

    Keyword arguments must be contained within parentheses.

    Variables constrained on creation

    All uses of the @variable macro documented so far translate into separate calls for variable creation and the adding of any bound or integrality constraints.

    For example, @variable(model, x >= 0, Int), is equivalent to:

    julia> model = Model();
    +
    +julia> @variable(model, x)
    +x
    +
    +julia> set_lower_bound(x, 0.0)
    +
    +julia> set_integer(x)

    Importantly, the bound and integrality constraints are added after the variable has been created.

    However, some solvers require a set specifying the variable domain to be given when the variable is first created. We say that these variables are constrained on creation.

    Use in within @variable to access the special syntax for constraining variables on creation.

    For example, the following creates a vector of variables that belong to the SecondOrderCone:

    julia> model = Model();
    +
    +julia> @variable(model, y[1:3] in SecondOrderCone())
    +3-element Vector{VariableRef}:
    + y[1]
    + y[2]
    + y[3]

    For contrast, the standard syntax is as follows:

    julia> @variable(model, x[1:3])
    +3-element Vector{VariableRef}:
    + x[1]
    + x[2]
    + x[3]
    +
    +julia> @constraint(model, x in SecondOrderCone())
    +[x[1], x[2], x[3]] ∈ MathOptInterface.SecondOrderCone(3)

    An alternate syntax to x in Set is to use the set keyword of @variable. This is most useful when creating anonymous variables:

    julia> model = Model();
    +
    +julia> x = @variable(model, [1:3], set = SecondOrderCone())
    +3-element Vector{VariableRef}:
    + _[1]
    + _[2]
    + _[3]
    Note

    You cannot delete the constraint associated with a variable constrained on creation.

    Example: positive semidefinite variables

    An alternative to the syntax in Semidefinite variables, declare a matrix of JuMP variables to be positive semidefinite using PSDCone:

    julia> model = Model();
    +
    +julia> @variable(model, x[1:2, 1:2] in PSDCone())
    +2×2 LinearAlgebra.Symmetric{VariableRef, Matrix{VariableRef}}:
    + x[1,1]  x[1,2]
    + x[1,2]  x[2,2]

    Example: symmetric variables

    As an alternative to the syntax in Symmetric variables, declare a matrix of JuMP variables to be symmetric using SymmetricMatrixSpace:

    julia> model = Model();
    +
    +julia> @variable(model, x[1:2, 1:2] in SymmetricMatrixSpace())
    +2×2 LinearAlgebra.Symmetric{VariableRef, Matrix{VariableRef}}:
    + x[1,1]  x[1,2]
    + x[1,2]  x[2,2]

    Example: skew-symmetric variables

    Declare a matrix of JuMP variables to be skew-symmetric using SkewSymmetricMatrixSpace:

    julia> model = Model();
    +
    +julia> @variable(model, x[1:2, 1:2] in SkewSymmetricMatrixSpace())
    +2×2 Matrix{AffExpr}:
    + 0        x[1,2]
    + -x[1,2]  0
    Note

    Even though x is a 2 by 2 matrix, only one decision variable is added to model; the remaining elements in x are linear transformations of the single variable.

    Because the returned matrix x is Matrix{AffExpr}, you cannot use variable-related functions on its elements:

    julia> set_lower_bound(x[1, 2], 0.0)
    +ERROR: MethodError: no method matching set_lower_bound(::AffExpr, ::Float64)
    +[...]

    Instead, you can convert an upper-triangular elements to a variable as follows:

    julia> to_variable(x::AffExpr) = first(keys(x.terms))
    +to_variable (generic function with 1 method)
    +
    +julia> to_variable(x[1, 2])
    +x[1,2]
    +
    +julia> set_lower_bound(to_variable(x[1, 2]), 0.0)

    Example: Hermitian positive semidefinite variables

    Declare a matrix of JuMP variables to be Hermitian positive semidefinite using HermitianPSDCone:

    julia> model = Model();
    +
    +julia> @variable(model, H[1:2, 1:2] in HermitianPSDCone())
    +2×2 LinearAlgebra.Hermitian{GenericAffExpr{ComplexF64, VariableRef}, Matrix{GenericAffExpr{ComplexF64, VariableRef}}}:
    + real(H[1,1])                    real(H[1,2]) + imag(H[1,2]) im
    + real(H[1,2]) - imag(H[1,2]) im  real(H[2,2])

    This adds 4 real variables in the MOI.HermitianPositiveSemidefiniteConeTriangle:

    julia> first(all_constraints(model, Vector{VariableRef}, MOI.HermitianPositiveSemidefiniteConeTriangle))
    +[real(H[1,1]), real(H[1,2]), real(H[2,2]), imag(H[1,2])] ∈ MathOptInterface.HermitianPositiveSemidefiniteConeTriangle(2)

    Example: Hermitian variables

    Declare a matrix of JuMP variables to be Hermitian using the Hermitian tag:

    julia> model = Model();
    +
    +julia> @variable(model, x[1:2, 1:2], Hermitian)
    +2×2 LinearAlgebra.Hermitian{GenericAffExpr{ComplexF64, VariableRef}, Matrix{GenericAffExpr{ComplexF64, VariableRef}}}:
    + real(x[1,1])                    real(x[1,2]) + imag(x[1,2]) im
    + real(x[1,2]) - imag(x[1,2]) im  real(x[2,2])

    This is equivalent to declaring the variable in HermitianMatrixSpace:

    julia> model = Model();
    +
    +julia> @variable(model, x[1:2, 1:2] in HermitianMatrixSpace())
    +2×2 LinearAlgebra.Hermitian{GenericAffExpr{ComplexF64, VariableRef}, Matrix{GenericAffExpr{ComplexF64, VariableRef}}}:
    + real(x[1,1])                    real(x[1,2]) + imag(x[1,2]) im
    + real(x[1,2]) - imag(x[1,2]) im  real(x[2,2])

    Why use variables constrained on creation?

    For most users, it does not matter if you use the constrained on creation syntax. Therefore, use whatever syntax you find most convenient.

    However, if you use direct_model, you may be forced to use the constrained on creation syntax.

    The technical difference between variables constrained on creation and the standard JuMP syntax is that variables constrained on creation calls MOI.add_constrained_variables, while the standard JuMP syntax calls MOI.add_variables and then MOI.add_constraint.

    Consult the implementation of solver package you are using to see if your solver requires MOI.add_constrained_variables.

    Parameters

    Some solvers have explicit support for parameters, which are constants in the model that can be efficiently updated between solves.

    JuMP implements parameters by a decision variable constrained on creation to the Parameter set.

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> @variable(model, p[i = 1:2] in Parameter(i))
    +2-element Vector{VariableRef}:
    + p[1]
    + p[2]

    Create anonymous parameters using the set keyword:

    julia> anon_parameter = @variable(model, set = Parameter(1.0))
    +_[4]

    Use parameter_value and set_parameter_value to query or update the value of a parameter.

    julia> parameter_value.(p)
    +2-element Vector{Float64}:
    + 1.0
    + 2.0
    +
    +julia> set_parameter_value(p[2], 3.0)
    +
    +julia> parameter_value.(p)
    +2-element Vector{Float64}:
    + 1.0
    + 3.0

    Limitations

    Parameters are implemented as decision variables belonging to the Parameter set. If the solver supports the MOI.Parameter set, it may decide to replace all instances of the parameter variable by the associated constant. If the solver does not support parameters, it will add the parameter as a decision variable with fixed bounds.

    The most important implication of this design is that JuMP treats a parameter multiplied by a decision variable as a quadratic expression, even though it is equivalent to a linear expression.

    julia> model = Model();
    +
    +julia> @variable(model, x);
    +
    +julia> @variable(model, p in Parameter(2));
    +
    +julia> px = @expression(model, p * x)
    +p*x
    +
    +julia> typeof(px)
    +QuadExpr (alias for GenericQuadExpr{Float64, GenericVariableRef{Float64}})

    When to use a parameter

    Parameters are most useful when solving nonlinear models in a sequence:

    julia> using JuMP, Ipopt
    julia> model = Model(Ipopt.Optimizer);
    julia> set_silent(model)
    julia> @variable(model, x)x
    julia> @variable(model, p in Parameter(1.0))p
    julia> @objective(model, Min, (x - p)^2)x² - 2 p*x + p²
    julia> optimize!(model)
    julia> value(x)1.0
    julia> set_parameter_value(p, 5.0)
    julia> optimize!(model)
    julia> value(x)5.0

    Using parameters can be faster than creating a new model from scratch with updated data because JuMP is able to avoid repeating a number of steps in processing the model before handing it off to the solver.

    diff --git a/previews/PR3545/moi/assets/latency.png b/previews/PR3545/moi/assets/latency.png new file mode 100755 index 0000000000000000000000000000000000000000..9b51f3b25fc63c559400a3fe628a33348b6e30ff GIT binary patch literal 25175 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 +Duality · JuMP

    Duality

    Conic duality is the starting point for MOI's duality conventions. When all functions are affine (or coordinate projections), and all constraint sets are closed convex cones, the model may be called a conic optimization problem.

    For a minimization problem in geometric conic form, the primal is:

    \[\begin{align} +& \min_{x \in \mathbb{R}^n} & a_0^T x + b_0 +\\ +& \;\;\text{s.t.} & A_i x + b_i & \in \mathcal{C}_i & i = 1 \ldots m +\end{align}\]

    and the dual is a maximization problem in standard conic form:

    \[\begin{align} +& \max_{y_1, \ldots, y_m} & -\sum_{i=1}^m b_i^T y_i + b_0 +\\ +& \;\;\text{s.t.} & a_0 - \sum_{i=1}^m A_i^T y_i & = 0 +\\ +& & y_i & \in \mathcal{C}_i^* & i = 1 \ldots m +\end{align}\]

    where each $\mathcal{C}_i$ is a closed convex cone and $\mathcal{C}_i^*$ is its dual cone.

    For a maximization problem in geometric conic form, the primal is:

    \[\begin{align} +& \max_{x \in \mathbb{R}^n} & a_0^T x + b_0 +\\ +& \;\;\text{s.t.} & A_i x + b_i & \in \mathcal{C}_i & i = 1 \ldots m +\end{align}\]

    and the dual is a minimization problem in standard conic form:

    \[\begin{align} +& \min_{y_1, \ldots, y_m} & \sum_{i=1}^m b_i^T y_i + b_0 +\\ +& \;\;\text{s.t.} & a_0 + \sum_{i=1}^m A_i^T y_i & = 0 +\\ +& & y_i & \in \mathcal{C}_i^* & i = 1 \ldots m +\end{align}\]

    A linear inequality constraint $a^T x + b \ge c$ is equivalent to $a^T x + b - c \in \mathbb{R}_+$, and $a^T x + b \le c$ is equivalent to $a^T x + b - c \in \mathbb{R}_-$. Variable-wise constraints are affine constraints with the appropriate identity mapping in place of $A_i$.

    For the special case of minimization LPs, the MOI primal form can be stated as:

    \[\begin{align} +& \min_{x \in \mathbb{R}^n} & a_0^T x &+ b_0 +\\ +& \;\;\text{s.t.} +&A_1 x & \ge b_1\\ +&& A_2 x & \le b_2\\ +&& A_3 x & = b_3 +\end{align}\]

    By applying the stated transformations to conic form, taking the dual, and transforming back into linear inequality form, one obtains the following dual:

    \[\begin{align} +& \max_{y_1,y_2,y_3} & b_1^Ty_1 + b_2^Ty_2 + b_3^Ty_3 &+ b_0 +\\ +& \;\;\text{s.t.} +&A_1^Ty_1 + A_2^Ty_2 + A_3^Ty_3 & = a_0\\ +&& y_1 &\ge 0\\ +&& y_2 &\le 0 +\end{align}\]

    For maximization LPs, the MOI primal form can be stated as:

    \[\begin{align} +& \max_{x \in \mathbb{R}^n} & a_0^T x &+ b_0 +\\ +& \;\;\text{s.t.} +&A_1 x & \ge b_1\\ +&& A_2 x & \le b_2\\ +&& A_3 x & = b_3 +\end{align}\]

    and similarly, the dual is:

    \[\begin{align} +& \min_{y_1,y_2,y_3} & -b_1^Ty_1 - b_2^Ty_2 - b_3^Ty_3 &+ b_0 +\\ +& \;\;\text{s.t.} +&A_1^Ty_1 + A_2^Ty_2 + A_3^Ty_3 & = -a_0\\ +&& y_1 &\ge 0\\ +&& y_2 &\le 0 +\end{align}\]

    Warning

    For the LP case, the signs of the feasible dual variables depend only on the sense of the corresponding primal inequality and not on the objective sense.

    Duality and scalar product

    The scalar product is different from the canonical one for the sets PositiveSemidefiniteConeTriangle, LogDetConeTriangle, RootDetConeTriangle.

    If the set $C_i$ of the section Duality is one of these three cones, then the rows of the matrix $A_i$ corresponding to off-diagonal entries are twice the value of the coefficients field in the VectorAffineFunction for the corresponding rows. See PositiveSemidefiniteConeTriangle for details.

    Dual for problems with quadratic functions

    Quadratic Programs (QPs)

    For quadratic programs with only affine conic constraints,

    \[\begin{align*} +& \min_{x \in \mathbb{R}^n} & \frac{1}{2}x^TQ_0x + a_0^T x + b_0 +\\ +& \;\;\text{s.t.} & A_i x + b_i & \in \mathcal{C}_i & i = 1 \ldots m. +\end{align*}\]

    with cones $\mathcal{C}_i \subseteq \mathbb{R}^{m_i}$ for $i = 1, \ldots, m$, consider the Lagrangian function

    \[L(x, y) = \frac{1}{2}x^TQ_0x + a_0^T x + b_0 - \sum_{i = 1}^m y_i^T (A_i x + b_i).\]

    Let $z(y)$ denote $\sum_{i = 1}^m A_i^T y_i - a_0$, the Lagrangian can be rewritten as

    \[L(x, y) = \frac{1}{2}{x}^TQ_0x - z(y)^T x + b_0 - \sum_{i = 1}^m y_i^T b_i.\]

    The condition $\nabla_x L(x, y) = 0$ gives

    \[0 = \nabla_x L(x, y) = Q_0x + a_0 - \sum_{i = 1}^m y_i^T b_i\]

    which gives $Q_0x = z(y)$. This allows to obtain that

    \[\min_{x \in \mathbb{R}^n} L(x, y) = -\frac{1}{2}x^TQ_0x + b_0 - \sum_{i = 1}^m y_i^T b_i\]

    so the dual problem is

    \[\max_{y_i \in \mathcal{C}_i^*} \min_{x \in \mathbb{R}^n} -\frac{1}{2}x^TQ_0x + b_0 - \sum_{i = 1}^m y_i^T b_i.\]

    If $Q_0$ is invertible, we have $x = Q_0^{-1}z(y)$ hence

    \[\min_{x \in \mathbb{R}^n} L(x, y) = -\frac{1}{2}z(y)^TQ_0^{-1}z(y) + b_0 - \sum_{i = 1}^m y_i^T b_i\]

    so the dual problem is

    \[\max_{y_i \in \mathcal{C}_i^*} -\frac{1}{2}z(y)^TQ_0^{-1}z(y) + b_0 - \sum_{i = 1}^m y_i^T b_i.\]

    Quadratically Constrained Quadratic Programs (QCQPs)

    Given a problem with both quadratic function and quadratic objectives:

    \[\begin{align*} +& \min_{x \in \mathbb{R}^n} & \frac{1}{2}x^TQ_0x + a_0^T x + b_0 +\\ +& \;\;\text{s.t.} & \frac{1}{2}x^TQ_ix + a_i^T x + b_i & \in \mathcal{C}_i & i = 1 \ldots m. +\end{align*}\]

    with cones $\mathcal{C}_i \subseteq \mathbb{R}$ for $i = 1 \ldots m$, consider the Lagrangian function

    \[L(x, y) = \frac{1}{2}x^TQ_0x + a_0^T x + b_0 - \sum_{i = 1}^m y_i (\frac{1}{2}x^TQ_ix + a_i^T x + b_i)\]

    A pair of primal-dual variables $(x^\star, y^\star)$ is optimal if

    • $x^\star$ is a minimizer of

      \[\min_{x \in \mathbb{R}^n} L(x, y^\star).\]

      That is,

      \[0 = \nabla_x L(x, y^\star) = Q_0x + a_0 - \sum_{i = 1}^m y_i^\star (Q_ix + a_i).\]

    • and $y^\star$ is a maximizer of

      \[\max_{y_i \in \mathcal{C}_i^*} L(x^\star, y).\]

      That is, for all $i = 1, \ldots, m$, $\frac{1}{2}x^TQ_ix + a_i^T x + b_i$ is either zero or in the normal cone of $\mathcal{C}_i^*$ at $y^\star$. For instance, if $\mathcal{C}_i$ is $\{ z \in \mathbb{R} : z \le 0 \}$, this means that if $\frac{1}{2}x^TQ_ix + a_i^T x + b_i$ is nonzero at $x^\star$ then $y_i^\star = 0$. This is the classical complementary slackness condition.

    If $\mathcal{C}_i$ is a vector set, the discussion remains valid with $y_i(\frac{1}{2}x^TQ_ix + a_i^T x + b_i)$ replaced with the scalar product between $y_i$ and the vector of scalar-valued quadratic functions.

    Dual for square semidefinite matrices

    The set PositiveSemidefiniteConeTriangle is a self-dual. That is, querying ConstraintDual of a PositiveSemidefiniteConeTriangle constraint returns a vector that is itself a member of PositiveSemidefiniteConeTriangle.

    However, the dual of PositiveSemidefiniteConeSquare is not so straight forward. This section explains the duality convention we use, and how it is derived.

    Info

    If you have a PositiveSemidefiniteConeSquare constraint, the result matrix $A$ from ConstraintDual is not positive semidefinite. However, $A + A^\top$ is positive semidefinite.

    Let $\mathcal{S}_+$ be the cone of symmetric semidefinite matrices in the $\frac{n(n+1)}{2}$ dimensional space of symmetric $\mathbb{R}^{n \times n}$ matrices. That is, $\mathcal{S}_+$ is the set PositiveSemidefiniteConeTriangle. It is well known that $\mathcal{S}_+$ is a self-dual proper cone.

    Let $\mathcal{P}_+$ be the cone of symmetric semidefinite matrices in the $n^2$ dimensional space of $\mathbb{R}^{n \times n}$ matrices. That is $\mathcal{P}_+$ is the set PositiveSemidefiniteConeSquare.

    In addition, let $\mathcal{D}_+$ be the cone of matrices $A$ such that $A+A^\top \in \mathcal{P}_+$.

    $\mathcal{P}_+$ is not proper because it is not solid (it is not $n^2$ dimensional), so it is not necessarily true that $\mathcal{P}_+^{**} = \mathcal{P}_+$.

    However, this is the case, because we will show that $\mathcal{P}_+^{*} = \mathcal{D}_+$ and $\mathcal{D}_+^{*} = \mathcal{P}_+$.

    First, let us see why $\mathcal{P}_+^{*} = \mathcal{D}_+$.

    If $B$ is symmetric, then

    \[\langle A,B \rangle = \langle A^\top, B^\top \rangle = \langle A^\top, B\rangle\]

    so

    \[2\langle A, B \rangle = \langle A, B \rangle + \langle A^\top, B \rangle = \langle A + A^\top , B \rangle.\]

    Therefore, $\langle A,B\rangle \ge 0$ for all $B \in \mathcal{P}_+$ if and only if $\langle A+A^\top,B\rangle \ge 0$ for all $B \in \mathcal{P}_+$. Since $A+A^\top$ is symmetric, and we know that $\mathcal{S}_+$ is self-dual, we have shown that $\mathcal{P}_+^{*}$ is the set of matrices $A$ such that $A+A^\top \in \mathcal{P}_+$.

    Second, let us see why $\mathcal{D}_+^{*} = \mathcal{P}_+$.

    Since $A \in \mathcal{D}_+$ implies that $A^\top \in \mathcal{D}_+$, $B \in \mathcal{D}_+^{*}$ means that $\langle A+A^\top,B\rangle \ge 0$ for all $A \in \mathcal{D}_+$, and hence $B \in \\mathcal{P}_+$.

    To see why it should be symmetric, simply notice that if $B_{i,j} < B_{j,i}$, then $\langle A,B\rangle$ can be made arbitrarily small by setting $A_{i,j} = A_{i,j} + s$ and $A_{j,i} = A_{j,i} - s$, with $s$ arbitrarily large, and $A$ stays in $\mathcal{D}_+$ because $A+A^\top$ does not change.

    Typically, the primal/dual pair for semidefinite programs is presented as:

    \[\begin{align} + \min & \langle C, X \rangle \\ +\text{s.t.} \;\; & \langle A_k, X\rangle = b_k \forall k \\ + & X \in \mathcal{S}_+ +\end{align}\]

    with the dual

    \[\begin{align} + \max & \sum_k b_k y_k \\ +\text{s.t.} \;\; & C - \sum A_k y_k \in \mathcal{S}_+ +\end{align}\]

    If we allow $A_k$ to be non-symmetric, we should instead use:

    \[\begin{align} + \min & \langle C, X \rangle \\ +\text{s.t.} \;\; & \langle A_k, X\rangle = b_k \forall k \\ + & X \in \mathcal{D}_+ +\end{align}\]

    with the dual

    \[\begin{align} + \max & \sum b_k y_k \\ +\text{s.t.} \;\; & C - \sum A_k y_k \in \mathcal{P}_+ +\end{align}\]

    This is implemented as:

    \[\begin{align} + \min & \langle C, Z \rangle + \langle C - C^\top, S \rangle \\ +\text{s.t.} \;\; & \langle A_k, Z \rangle + \langle A_k - A_k^\top, S \rangle = b_k \forall k \\ + & Z \in \mathcal{S}_+ +\end{align}\]

    with the dual

    \[\begin{align} + \max & \sum b_k y_k \\ +\text{s.t.} \;\; & C+C^\top - \sum (A_k+A_k^\top) y_k \in \mathcal{S}_+ \\ + & C-C^\top - \sum(A_k-A_k^\top) y_k = 0 +\end{align}\]

    and we recover $Z = X + X^\top$.

    diff --git a/previews/PR3545/moi/background/infeasibility_certificates/index.html b/previews/PR3545/moi/background/infeasibility_certificates/index.html new file mode 100644 index 00000000000..7e04346b966 --- /dev/null +++ b/previews/PR3545/moi/background/infeasibility_certificates/index.html @@ -0,0 +1,32 @@ + +Infeasibility certificates · JuMP

    Infeasibility certificates

    When given a conic problem that is infeasible or unbounded, some solvers can produce a certificate of infeasibility. This page explains what a certificate of infeasibility is, and the related conventions that MathOptInterface adopts.

    Conic duality

    MathOptInterface uses conic duality to define infeasibility certificates. A full explanation is given in the section Duality, but here is a brief overview.

    Minimization problems

    For a minimization problem in geometric conic form, the primal is:

    \[\begin{align} +& \min_{x \in \mathbb{R}^n} & a_0^\top x + b_0 +\\ +& \;\;\text{s.t.} & A_i x + b_i & \in \mathcal{C}_i & i = 1 \ldots m, +\end{align}\]

    and the dual is a maximization problem in standard conic form:

    \[\begin{align} +& \max_{y_1, \ldots, y_m} & -\sum_{i=1}^m b_i^\top y_i + b_0 +\\ +& \;\;\text{s.t.} & a_0 - \sum_{i=1}^m A_i^\top y_i & = 0 +\\ +& & y_i & \in \mathcal{C}_i^* & i = 1 \ldots m, +\end{align}\]

    where each $\mathcal{C}_i$ is a closed convex cone and $\mathcal{C}_i^*$ is its dual cone.

    Maximization problems

    For a maximization problem in geometric conic form, the primal is:

    \[\begin{align} +& \max_{x \in \mathbb{R}^n} & a_0^\top x + b_0 +\\ +& \;\;\text{s.t.} & A_i x + b_i & \in \mathcal{C}_i & i = 1 \ldots m, +\end{align}\]

    and the dual is a minimization problem in standard conic form:

    \[\begin{align} +& \min_{y_1, \ldots, y_m} & \sum_{i=1}^m b_i^\top y_i + b_0 +\\ +& \;\;\text{s.t.} & a_0 + \sum_{i=1}^m A_i^\top y_i & = 0 +\\ +& & y_i & \in \mathcal{C}_i^* & i = 1 \ldots m. +\end{align}\]

    Unbounded problems

    A problem is unbounded if and only if:

    1. there exists a feasible primal solution
    2. the dual is infeasible.

    A feasible primal solution—if one exists—can be obtained by setting ObjectiveSense to FEASIBILITY_SENSE before optimizing. Therefore, most solvers stop after they prove the dual is infeasible via a certificate of dual infeasibility, but before they have found a feasible primal solution. This is also the reason that MathOptInterface defines the DUAL_INFEASIBLE status instead of UNBOUNDED.

    A certificate of dual infeasibility is an improving ray of the primal problem. That is, there exists some vector $d$ such that for all $\eta > 0$:

    \[A_i (x + \eta d) + b_i \in \mathcal{C}_i,\ \ i = 1 \ldots m,\]

    and (for minimization problems):

    \[a_0^\top (x + \eta d) + b_0 < a_0^\top x + b_0,\]

    for any feasible point $x$. The latter simplifies to $a_0^\top d < 0$. For maximization problems, the inequality is reversed, so that $a_0^\top d > 0$.

    If the solver has found a certificate of dual infeasibility:

    Note

    The choice of whether to scale the ray $d$ to have magnitude 1 is left to the solver.

    Infeasible problems

    A certificate of primal infeasibility is an improving ray of the dual problem. However, because infeasibility is independent of the objective function, we first homogenize the primal problem by removing its objective.

    For a minimization problem, a dual improving ray is some vector $d$ such that for all $\eta > 0$:

    \[\begin{align} +-\sum_{i=1}^m A_i^\top (y_i + \eta d_i) & = 0 \\ +(y_i + \eta d_i) & \in \mathcal{C}_i^* & i = 1 \ldots m, +\end{align}\]

    and:

    \[-\sum_{i=1}^m b_i^\top (y_i + \eta d_i) > -\sum_{i=1}^m b_i^\top y_i,\]

    for any feasible dual solution $y$. The latter simplifies to $-\sum_{i=1}^m b_i^\top d_i > 0$. For a maximization problem, the inequality is $\sum_{i=1}^m b_i^\top d_i < 0$. (Note that these are the same inequality, modulo a - sign.)

    If the solver has found a certificate of primal infeasibility:

    Note

    The choice of whether to scale the ray $d$ to have magnitude 1 is left to the solver.

    Infeasibility certificates of variable bounds

    Many linear solvers (for example, Gurobi) do not provide explicit access to the primal infeasibility certificate of a variable bound. However, given a set of linear constraints:

    \[\begin{align} +l_A \le A x \le u_A \\ +l_x \le x \le u_x, +\end{align}\]

    the primal certificate of the variable bounds can be computed using the primal certificate associated with the affine constraints, $d$. (Note that $d$ will have one element for each row of the $A$ matrix, and that some or all of the elements in the vectors $l_A$ and $u_A$ may be $\pm \infty$. If both $l_A$ and $u_A$ are finite for some row, the corresponding element in `d must be 0.)

    Given $d$, compute $\bar{d} = d^\top A$. If the bound is finite, a certificate for the lower variable bound of $x_i$ is $\max\{\bar{d}_i, 0\}$, and a certificate for the upper variable bound is $\min\{\bar{d}_i, 0\}$.

    diff --git a/previews/PR3545/moi/background/motivation/index.html b/previews/PR3545/moi/background/motivation/index.html new file mode 100644 index 00000000000..928bcabc560 --- /dev/null +++ b/previews/PR3545/moi/background/motivation/index.html @@ -0,0 +1,6 @@ + +Motivation · JuMP

    Motivation

    MathOptInterface (MOI) is a replacement for MathProgBase, the first-generation abstraction layer for mathematical optimization previously used by JuMP and Convex.jl.

    To address a number of limitations of MathProgBase, MOI is designed to:

    • Be simple and extensible
      • unifying linear, quadratic, and conic optimization,
      • seamlessly facilitating extensions to essentially arbitrary constraints and functions (for example, indicator constraints, complementarity constraints, and piecewise-linear functions)
    • Be fast
      • by allowing access to a solver's in-memory representation of a problem without writing intermediate files (when possible)
      • by using multiple dispatch and avoiding requiring containers of non-concrete types
    • Allow a solver to return multiple results (for example, a pool of solutions)
    • Allow a solver to return extra arbitrary information via attributes (for example, variable- and constraint-wise membership in an irreducible inconsistent subset for infeasibility analysis)
    • Provide a greatly expanded set of status codes explaining what happened during the optimization procedure
    • Enable a solver to more precisely specify which problem classes it supports
    • Enable both primal and dual warm starts
    • Enable adding and removing both variables and constraints by indices that are not required to be consecutive
    • Enable any modification that the solver supports to an existing model
    • Avoid requiring the solver wrapper to store an additional copy of the problem data
    diff --git a/previews/PR3545/moi/background/naming_conventions/index.html b/previews/PR3545/moi/background/naming_conventions/index.html new file mode 100644 index 00000000000..2063476f891 --- /dev/null +++ b/previews/PR3545/moi/background/naming_conventions/index.html @@ -0,0 +1,6 @@ + +Naming conventions · JuMP

    Naming conventions

    MOI follows several conventions for naming functions and structures. These should also be followed by packages extending MOI.

    Sets

    Sets encode the structure of constraints. Their names should follow the following conventions:

    • Abstract types in the set hierarchy should begin with Abstract and end in Set, for example, AbstractScalarSet, AbstractVectorSet.
    • Vector-valued conic sets should end with Cone, for example, NormInfinityCone, SecondOrderCone.
    • Vector-valued Cartesian products should be plural and not end in Cone, for example, Nonnegatives, not NonnegativeCone.
    • Matrix-valued conic sets should provide two representations: ConeSquare and ConeTriangle, for example, RootDetConeTriangle and RootDetConeSquare. See Matrix cones for more details.
    • Scalar sets should be singular, not plural, for example, Integer, not Integers.
    • As much as possible, the names should follow established conventions in the domain where this set is used: for instance, convex sets should have names close to those of CVX, and constraint-programming sets should follow MiniZinc's constraints.
    diff --git a/previews/PR3545/moi/changelog/index.html b/previews/PR3545/moi/changelog/index.html new file mode 100644 index 00000000000..ed02bccf8e9 --- /dev/null +++ b/previews/PR3545/moi/changelog/index.html @@ -0,0 +1,34 @@ + +Release notes · JuMP

    Release notes

    The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

    v1.20.1 (September 24, 2023)

    Fixed

    Other

    • Added MathOptSetDistances to solver-tests.yml (#2265)
    • Updated Documenter (#2266)
    • Fixed various JET errors (#2267) (#2269) (#2270) (#2271) (#2276) (#2277) (#2289)
    • Various style improvements
      • Replaced using Package with import Package where possible (#2274)
      • Removed Utilities.EMPTYSTRING (#2283)
      • Removed unnecessary const acronyms in Utilities (#2280) (#2281)
      • Removed invalid and unused method (#2286)
    • Refactored src/Utilities/model.jl (#2287)

    v1.20.0 (September 7, 2023)

    Added

    Other

    • Updated dependencies (#2258)
    • Improved performance of ScalarNonlinearFunction utilities (#2259)
    • Fixed docstrings (#2261)

    v1.19.0 (August 15, 2023)

    Added

    Fixed

    Other

    • Added extensions to solver-tests.yml (#2229)
    • Refactored test/Benchmarks (#2234)
    • Fixed warnings in tests (#2241) (#2243)
    • Small refactoring of bridges for upcoming VectorNonlinearFunction (#2244) (#2245)
    • Fixed various typos (#2251) (#2255)
    • Partitioned how we run the tests on GitHub actions (#2252) (#2253)

    v1.18.0 (June 23, 2023)

    Added

    Fixed

    • Fixed a missing @require in MOI.Test (#2195) (#2196)
    • Fixed incorrect usage of Utilities.operate! in bridges (#2207) (#2216)
    • Fixed splatting nonlinear expression with univariate operator (#2221)

    Other

    • Removed unused argument names (#2199)
    • Reduced memory requirement for tests (#2204)
    • Refactored Utilities.promote_operation (#2206)
    • Improved code style in Utilities/mutable_arithmetics.jl (#2209)
    • Refactored various methods in Utilities/functions.jl (#2208) (#2212) (#2213) (#2214) (#2215)

    v1.17.1 (June 6, 2023)

    Fixed

    Other

    • Added documentation for enum instances (#2186)
    • Updated chatroom links in documentation (#2188)
    • Changed the documentation to build on Julia v1.9 (#2191)

    v1.17.0 (June 1, 2023)

    Added

    Fixed

    • Fixed support for external sets in Utilities.loadfromstring! (#2177)
    • Fixed promote_operation for ScalarNonlinearFunction (#2179)
    • Fixed two issues in FileFormats.LP when reading files with quadratic functions (#2182) (#2184)

    v1.16.0 (May 16, 2023)

    Added

    Fixed

    • Fixed support for Julia v1.9 to work around a bug in the upstream Julia compiler (#2161) (#2163)
    • Fixed a correctness bug in Bridges.Constraint.HermitianToSymmetricPSDBridge (#2171)
    • Fixed convert(::VariableIndex, ::ScalarAffineFunction) when the function has terms with 0coefficients (#2173)

    Other

    • Fixed solver-tests.yml (#2157)
    • Updated documentation links to developer chatroom (#2160)
    • Added various tests for bridges (#2156)
    • Added checklists to the developer documentation (#2167) (#2168)

    v1.15.1 (April 25, 2023)

    Fixed

    • Fixed deleting a variable in a bridged objective (#2150)

    v1.15.0 (April 19, 2023)

    Added

    Fixed

    Other

    • Add a test for variables in one-sided open Interval sets (#2133)
    • Minor style fixes in the source code (#2148)

    v1.14.1 (April 6, 2023)

    Fixed

    Other

    • Added a warning when an ambiguous string is passed to exclude in Test.runtests (#2136)

    v1.14.0 (April 4, 2023)

    Added

    Fixed

    • Fixed ResultCount when parsing .sol files in FileFormats.NL (#2130)

    v1.13.2 (March 21, 2023)

    Fixed

    Other

    • Fixed typos in the documentation (#2114)
    • Functions now print to the REPL in algebraic form. This is potentially breaking if you have tests which rely on a specific String form of MOI functions. (#2112) (#2126)

    v1.13.1 (March 3, 2023)

    Other

    • Added the Google style guide to the documentation linter Vale, and fixed the resulting warnings (#2110)
    • Improved the docstrings in src/functions.jl (#2108)

    v1.13.0 (February 28, 2023)

    Added

    Fixed

    Other

    • Added tests for vector-valued objective functions in FileFormats.MOF (#2093)
    • Used and documented preference for import MathOptInterface as MOI (#2096)
    • Fix and test links in the documentation with linkcheck = true (#2098)
    • Improved docstrings of sets in src/sets.jl (#2099)
    • Skip checking flakey links in documentation with linkcheck_ignore (#2103)

    v1.12.0 (February 10, 2023)

    Added

    Fixed

    • Fixed a number of constraint bridges so that Bridges.final_touch can be called multiple times without forcing a rebuild of the reformulation (#2089)

    Other

    v1.11.5 (January 24, 2023)

    Fixed

    • Fixed a bug writing .lp files with an off-diagonal quadratic objective (#2082)

    Other

    • Added SnoopPrecompile directives for reduced time-to-first-X in Julia v1.9 (#2080)

    v1.11.4 (January 12, 2023)

    Fixed

    • Fixed a bug reading .lp files with an Integer section (#2078)

    v1.11.3 (January 12, 2023)

    Fixed

    • Fixed a performance bug when deleting a vector of constraints (#2072)
    • Fixed a bug reading .lp files with terms like x -1 y (#2076)

    Other

    • Documented the two-argument method of optimize! (#2074)

    v1.11.2 (January 2, 2023)

    Fixed

    • Fixed a bug reading .mof.json files with ConstraintName set for VariableIndex constraints (#2066)
    • Fixed a bug reading .mof.json files with nonlinear objectives and no constraints (#2068)

    v1.11.1 (December 22, 2022)

    Fixed

    • Fixed a bug reading .mof.json files with integer coefficients for affine and quadratic functions (#2063)

    v1.11.0 (December 2, 2022)

    Added

    Other

    • Tidied these release notes (#2055)

    v1.10.0 (November 22, 2022)

    Added

    Fixed

    • Fixed Bridges.Objective.SlackBridge when the objective function is complex-valued (#2036) (#2038)
    • Fixed docstring of Test.runtests to clarify the warn_unsupported argument (#2037)
    • Fixed reading of free variables in FileFormats.LP (#2044)
    • Fixed numerous edge cases reading files from QPLIB using FileFormats.LP (#2042) (#2044)
    • Fixed situations in which x^y returns a complex value in Nonlinear (#2050)

    Other

    • Improved the error message thrown when a user-defined nonlinear function does not accept splatted input (#2032)
    • Removed specialized iterators for keys and values in Utilities.CleverDicts (#2051)

    v1.9.0 (October 29, 2022)

    Added

    • Added default fallback for getting ListOfConstraintIndices and NumberOfConstraints when the constraint type is unsupported by the model (#2021)
    • Added support for min and max in nonlinear expressions (#2023)
    • Added support for Indicator{EqualTo{T}} constraints in FileFormats.MPS (#2022)
    • Added default fallback for write_to_file and read_from_file (#2029)

    Fixed

    • Fixed Constraint.ZeroOneBridge by adding new bounds as affine constraints instead of variable bounds (#1879)
    • Fixed reading free rows in FileFormats.MPS files (#2009)
    • Fixed parsing of OBJSENSE blocks in FileFormats.MPS files (#2016) (#2019)
    • Fixed the parsing of deeply nested nonlinear expressions by removing the use of recursion (#2020)
    • Fixed the requirements check in Test.test_constrainnt_get_ConstraintIndex (#2024)

    v1.8.2 (September 20, 2022)

    Documentation

    • Added vale as a documentation linter (#2002)
    • Improved styling of code blocks in the PDF (#1999) (#2000)
    • Fixed a number of typos in the documentation (#2001) (#2003)

    v1.8.1 (September 12, 2022)

    Fixed

    • Fixed a bug in supports(::AbstractBridgeOptimizer for constraint attributes (#1991) (#1992)

    v1.8.0 (September 1, 2022)

    Added

    Fixed

    • Lazily construct expressions in Nonlinear so that expressions are updated when Nonlinear.Parameter values are updated (#1984)
    • Allow NORM_LIMIT as a TerminationStatus for unbounded problems in Test (#1990)

    v1.7.0 (August 16, 2022)

    Added

    Fixed

    • Fixed some missing promotion rules

    Other

    • Improved the performance of Jacobian products in Nonlinear
    • Removed an un-needed copy in Utilities.modify_function
    • Various clean-ups in Bridges/bridge_optimizer.jl

    v1.6.1 (July 23, 2022)

    Fixed

    • Added support for ExponentialCone in MatrixOfConstraints
    • Fix PSDSquare_3 test to reflect a previously fixed bug getting the ConstraintDual of a PositiveSemidefiniteConeSquare constraint

    v1.6.0 (July 2, 2022)

    Added

    • Added Bridges.needs_final_touch and Bridges.final_touch
    • Added new bridges from constraint programming sets to mixed-integer linear programs:
      • AllDifferentToCountDistinctBridge
      • CountAtLeastToCountBelongsBridge
      • CountBelongsToMILPBridge
      • CountDistinctToMILPBridge
      • CountGreaterThanToMILPBridge
      • CircuitToMILPBridge

    Fixed

    • Relax an instance of ::Vector to ::AbstractVector in MOI.Nonlinear
    • Fix BinPackingToMILPBridge to respect variable bounds
    • Fix SemiToBinaryBridge to throw error if other bounds are set

    v1.5.0 (June 27, 2022)

    Added

    • Added GetAttributeNotAllowed for solvers to indicate when getting an attribute encounters an error
    • Added Utilities.get_fallback support for ObjectiveValue and DualObjectiveValue
    • Added new bridges:
      • RootDetConeSquare to RootDetConeTriangle
      • LogDetConeSquare to LogDetConeTriangle
      • BinPacking to a mixed-integer linear program
      • Table to a mixed-integer linear program
    • Added Bridges.print_active_bridges to display the current optimal hyper-path in a Bridges.LazyBridgeOptimizer

    Fixed

    • Fixed ZeroOne tests with lower and upper bounds
    • Fixed error in FileFormats.LP when reading a malformed file
    • Fixed reading of nonlinear programs in FileFormats.MOF
    • Fixed bug in ConstraintDual when using SquareBridge

    Other

    • Improved documentation of nonlinear API
    • Documented duality convention for PositiveSemidefiniteConeSquare sets
    • Fixed typo in Bridges.Constraint.QuadToSOCBridge docstring

    v1.4.0 (June 9, 2022)

    Added

    • Added a number of sets for constraint programming:
      • AllDifferent
      • BinPacking
      • Circuit
      • CountAtLeast
      • CountBelongs
      • CountDistinct
      • CountGreaterThan
      • Cumulative
      • Path
      • Table
    • Added support for user-defined hessians in Nonlinear
    • Added Bridges.runtests to simplify the testing of bridge implementations

    Fixed

    • Fixed a bug in FileFormats.NL when writing univariate *

    Other

    • Began a large refactoring of the Bridges submodule, with greatly improved documentation.

    v1.3.0 (May 27, 2022)

    Added

    • Add MOI.Nonlinear submodule. This is a large new submodule that has been refactored from code that was in JuMP. For now, it should be considered experimental.
    • Add FileFormats.NL.SolFileResults(::IO, ::Model)
    • Add FileFormats.NL.read!(::IO, ::Model)
    • Add MOI.modify that accepts a vector of modifications

    Fixed

    • Fixed a bug in Test which attempted to include non-.jl files
    • Fixed a bug in FileFormats for models with open interval constraints

    Other

    • Fixed a performance issue in Utilities.DoubleDict
    • Various minor improvements to the documentation

    v1.2.0 (April 25, 2022)

    Added

    • Add support for the FORMAT_REW/.rew file format in FileFormats.

    Fixed

    • Fix bug handling of default variable bounds in FileFormats.LP
    • Fix FileFormats.MPS to not write OBJSENSE by default since this is only supported by some readers.

    v1.1.2 (March 31, 2022)

    Fixed

    • Fix a range of bugs in FileFormats.LP
    • Fix reading of problem dimensions in FileFormats.SDPA

    v1.1.1 (March 23, 2022)

    Fixed

    • Fix bug in test_model_UpperBoundAlreadySet
    • Fix bug in test_infeasible_ tests
    • Fix bug in test_objective_ObjectiveFunction_blank
    • Relax restriction of MOI.AbstractOptimizer to MOI.ModelLike in Utilities.CachingOptimizer and instantiate.

    New tests

    • Add test_conic_empty_matrix that checks conic solvers support problems with no variables.

    v1.1.0 (March 2, 2022)

    Added

    • Added MOI.Utilities.throw_unsupported(::UniversalFallback) for simplifying solver wrappers which copy from a UniversalFallback.

    v1.0.2 (March 1, 2022)

    Fixed

    • Fixed a bug in the test_model_ScalarFunctionConstantNotZero test
    • Fixed the error type when an AbstractFunctionConversionBridge cannot get or set an attribute
    • Identified a correctness bug in RSOCtoPSDBridge. We now thrown an error instead of returning an incorrect result.

    v1.0.1 (February 25, 2022)

    Fixed

    • Fixed a bug in which OptimizerAttributes were not copied in CachingOptimizer
    • Fixed a bug in which shift_constant did not promote mixed types of coefficients
    • Fixed a bug in which deleting a constraint of a bridged variable threw ErrorException instead of MOI.DeleteNotAllowed
    • Fixed a bug in which add_constraint in MatrixOfConstraints did not canonicalize the function
    • Fixed a bug when modifying scalar constants of a function containing a bridged variable
    • Fixed a bug in which final_touch was not always called with a CachingOptimizer

    v1.0.0 (February 17, 2022)

    Although tagged as a breaking release, v1.0.0 is v0.10.9 with deprecations removed, similar to how Julia 1.0 was Julia 0.7 with deprecations removed.

    Breaking

    • Julia 1.6 is now the minimum supported version
    • All deprecations have been removed

    Troubleshooting problems when updating

    If you experience problems when updating, you are likely using previously deprecated features. (By default, Julia does not warn when you use deprecated features.)

    To find the deprecated features you are using, start Julia with --depwarn=yes:

    $ julia --depwarn=yes

    Then install MathOptInterface v0.10.9:

    julia> using Pkg
    +julia> pkg"add MathOptInterface@0.10"

    And then run your code. Apply any suggestions, or search the release notes below for advice on updating a specific deprecated feature.

    v0.10.9 (February 16, 2022)

    Added

    • Added MOI.Utilities.FreeVariables as a new VariablesConstrainer for conic solvers
    • Added MOI.default_cache for specifying the model used in CachingOptimizer

    Fixed

    • Fixed LaTeX printing of MOI.Interval sets

    Other

    • Added Aqua.jl as a CI check, and fixed suggested issues
    • The constructors of GeoMeanBridge, StructOfConstraints, and CachingOptimizer were changed from outer to inner constructors. This change is technically breaking, but does not impact users who followed the documented API.

    v0.10.8 (February 3, 2022)

    Added

    • Added a Base.read! for FileFormats.LP.

    Fixed

    • Fixed a bug in MutableSparseMatrix
    • Fixed a bug when calling operate!(vcat, ...) with Number arguments
    • Removed unintended export of deprecated symbols
    • Fixed a bug with PowerCone and DualPowerCone in MatrixOfConstraints.

    v0.10.7 (January 5, 2022)

    Added

    • Added test for modifying the constant vector in a VectorAffineFunction-in-Zeros constraint.

    Fixed

    • Fixed the order in which sets are added to a LazyBridgeOptimizer. Compared to v0.10.6, this may result in bridged models being created with a different number (and order) of variables and constraints. However, it was necessary to fix cases which were previously rejected as unsupported, even though there was a valid bridge transformation.
    • Fixed an error message in FileFormats.CBF
    • Fixed comparison in test_linear_integration_Interval
    • Fixed errors for ConstraintPrimal in a CachingOptimizer
    • Fixed printing of models with non-Float64 coefficients.

    Other

    • Various improvements to reduce time-to-first-solve latency
    • Improved error message when an optimizer does not support compute_conflict!

    v0.10.6 (November 30, 2021)

    Added

    • Added new documentation and tests for infeasibility certificates
    • Added a version control system for the tests in MOI.Test.runtests. Pass exclude_tests_after = v"0.10.5" to run tests added in v0.10.5 and earlier.
    • MOI.Test.runtests now supports generic number types. To specify the number type T, pass MOI.Test.Config(T).
    • Added infeasible_status to MOI.Test.Config for solvers which return LOCALLY_INFEASIBLE
    • CachingOptimizers now use a fallback for ConstraintPrimal. This should enable solvers using a CachingOptimizer to pass tests requiring ConstraintPrimal.

    Fixed

    • Fixed a StackOverflow bug in copy_to
    • Fixed error thrown when nonconvex quadratic constraints cannot be bridged
    • Fixed a bug in copy_to for FileFormats.NL.Model
    • Fixed a bug in FileFormats.NL when printing large integers
    • Remove a common test failure for LowerBoundAlreadySet tests
    • Utilities.num_rows is now exported
    • Remove parts of failing test_model_copy_to_xxx tests due to bridges

    v0.10.5 (November 7, 2021)

    Fixed

    • Fixed getter in UniversalFallback
    • Fixed test_solve_conflict_zeroone_ii

    Other

    • Make normalize_and_add_constraint more flexible
    • Update paper BibTeX

    v0.10.4 (October 26, 2021)

    Added

    • Add SolverVersion attribute
    • Add new tests:
      • test_solve_conflict_zeroone_ii
      • test_nonlinear_objective
    • Utilities.VariablesContainer now supports ConstraintFunction and ConstraintSet
    • The documentation is now available as a PDF

    Other

    • Update to MutableArithmetics 0.3
    • Various improvements to the documentation

    v0.10.3 (September 18, 2021)

    Fixed

    • Fixed bug which prevented callbacks from working through a CachingOptimizer
    • Fixed bug in Test submodule

    v0.10.2 (September 16, 2021)

    • Updated MathOptFormat to v1.0
    • Updated JSONSchema to v1.0
    • Added Utilities.set_with_dimension
    • Added two-argument optimize!(::AbstractOptimizer, ::ModelLike)
    • The experimental feature copy_to_and_optimize! has been removed
    • Det bridges now support getting ConstraintFunction and ConstraintSet
    • Various minor bug fixes identified by improved testing

    v0.10.1 (September 8, 2021)

    • Various fixes to MOI.Test

    v0.10.0 (September 6, 2021)

    MOI v0.10 is a significant breaking release. There are a large number of user-visible breaking changes and code refactors, as well as a substantial number of new features.

    Breaking in MOI

    • SingleVariable has been removed; use VariableIndex instead
    • SingleVariableConstraintNameError has been renamed to VariableIndexConstraintNameError
    • SettingSingleVariableFunctionNotAllowed has been renamed to SettingVariableIndexFunctionNotAllowed
    • VariableIndex constraints should not support ConstraintName
    • VariableIndex constraints should not support ConstraintBasisStatus; implement VariableBasisStatus instead
    • ListOfConstraints has been renamed to ListOfConstraintTypesPresent
    • ListOfConstraintTypesPresent should now return Tuple{Type,Type} instead of Tuple{DataType,DataType}
    • SolveTime has been renamed to SolveTimeSec
    • IndicatorSet has been renamed to Indicator
    • RawParameter has been renamed to RawOptimizerAttribute and now takes String instead of Any as the only argument
    • The .N field in result attributes has been renamed to .result_index
    • The .variable_index field in ScalarAffineTerm has been renamed to .variable
    • The .variable_index_1 field in ScalarQuadraticTerm has been renamed to .variable_1
    • The .variable_index_2 field in ScalarQuadraticTerm has been renamed to .variable_2
    • The order of affine_terms and quadratic_terms in ScalarQuadraticFunction and VectorQuadraticFunction have been reversed. Both functions now accept quadratic, affine, and constant terms in that order.
    • The index_value function has been removed. Use .value instead.
    • isapprox has been removed for SOS1 and SOS2.
    • The dimension argument to Complements(dimension::Int) should now be the length of the corresponding function, instead of half the length. An ArgumentError is thrown if dimension is not even.
    • copy_to no longer takes keyword arguments:
      • copy_names: now copy names if they are supported by the destination solver
      • filter_constraints: use Utilities.ModelFilter instead
      • warn_attributes: never warn about optimizer attributes

    Breaking in Bridges

    • Constraint.RSOCBridge has been renamed to Constraint.RSOCtoSOCBridge
    • Constraint.SOCRBridge has been renamed to Constraint.SOCtoRSOCBridge
    • Bridges now return vectors that can be modified by the user. Previously, some bridges returned views instead of copies.
    • Bridges.IndexInVector has been unified into a single type. Previously, there was a different type for each submodule within Bridges
    • The signature of indicator bridges has been fixed. Use MOI.Bridges.Constraint.IndicatortoSOS1{Float64}(model).

    Breaking in FileFormats

    • FileFormats.MOF.Model no longer accepts validate argument. Use the JSONSchema package to validate the MOF file. See the documentation for more information.

    Breaking in Utilities

    • The datastructure of Utilities.Model (and models created with Utilities.@model) has been significantly refactored in a breaking way. This includes the way that objective functions and variable-related information is stored.
    • Utilities.supports_default_copy has been renamed to supports_incremental_interface
    • Utilities.automatic_copy_to has been renamed to Utilities.default_copy_to
    • The allocate-load API has been removed
    • CachingOptimizers are now initialized as EMPTY_OPTIMIZER instead of ATTACHED_OPTIMIZER. If your code relies on the optimizer being attached, call MOIU.attach_optimizer(model) after creation.
    • The field names of Utilities.IndexMap have been renamed to var_map and con_map. Accessing these fields directly is considered a private detail that may change. Use the public getindex and setindex! API instead.
    • The size argument to Utilities.CleverDicts.CleverDict(::Integer) has been removed.
    • The size argument to Utilities.IndexMap(::Integer) has been removed.
    • Utilities.DoubleDicts have been significantly refactored. Consult the source code for details.
    • Utilities.test_models_equal has been moved to MOI.Test

    Breaking in Test

    • MOI.Test has been renamed to MOI.DeprecatedTest
    • An entirely new MOI.Test submodule has been written. See the documentation for details. The new MOI.Test submodule may find many bugs in the implementations of existing solvers that were previously untested.

    Other changes:

    • attribute_value_type has been added
    • copy_to_and_optimize! has been added
    • VariableBasisStatus has been added
    • print(model) now prints a human-readable description of the model
    • Various improvements to the FileFormats submodule
      • FileFormats.CBF was refactored and received bugfixes
      • Support for MathOptFormat v0.6 was added in FileFormats.MOF
      • FileFormats.MPS has had bugfixes and support for more features such as OBJSENSE and objective constants.
      • FileFormats.NL has been added to support nonlinear files
    • Improved type inference throughout to reduce latency

    Updating

    A helpful script when updating is:

    for (root, dirs, files) in walkdir(".")
    +    for file in files
    +        if !endswith(file, ".jl")
    +            continue
    +        end
    +        path = joinpath(root, file)
    +        s = read(path, String)
    +        for pair in [
    +            ".variable_index" => ".variable",
    +            "RawParameter" => "RawOptimizerAttribute",
    +            "ListOfConstraints" => "ListOfConstraintTypesPresent",
    +            "TestConfig" => "Config",
    +            "attr.N" => "attr.result_index",
    +            "SolveTime" => "SolveTimeSec",
    +            "DataType" => "Type",
    +            "Utilities.supports_default_copy_to" =>
    +                "supports_incremental_interface",
    +            "SingleVariableConstraintNameError" =>
    +                "VariableIndexConstraintNameError",
    +            "SettingSingleVariableFunctionNotAllowed" =>
    +                "SettingVariableIndexFunctionNotAllowed",
    +            "automatic_copy_to" => "default_copy_to",
    +        ]
    +            s = replace(s, pair)
    +        end
    +        write(path, s)
    +    end
    +end

    v0.9.22 (May 22, 2021)

    This release contains backports from the ongoing development of the v0.10 release.

    • Improved type inference in Utilities, Bridges and FileFormats submodules to reduce latency.
    • Improved performance of Utilities.is_canonical.
    • Fixed Utilities.pass_nonvariable_constraints with bridged variables.
    • Fixed performance regression of Utilities.Model.
    • Fixed ordering of objective setting in parser.

    v0.9.21 (April 23, 2021)

    • Added supports_shift_constant.
    • Improve performance of bridging quadratic constraints.
    • Add precompilation statements.
    • Large improvements to the documentation.
    • Fix a variety of inference issues, benefiting precompilation and reducing initial latency.
    • RawParameters are now ignored when resetting a CachingOptimizer. Previously, changing the underlying optimizer after RawParameters were set would throw an error.
    • Utilities.AbstractModel is being refactored. This may break users interacting with private fields of a model generated using @model.

    v0.9.20 (February 20, 2021)

    • Improved performance of Utilities.ScalarFunctionIterator
    • Added support for compute_conflict to MOI layers
    • Added test with zero off-diagonal quadratic term in objective
    • Fixed double deletion of nested bridged SingleVariable/VectorOfVariables constraints
    • Fixed modification of un-set objective
    • Fixed function modification with duplicate terms
    • Made unit tests abort without failing if the problem class is not supported
    • Formatted code with JuliaFormatter
    • Clarified BasisStatusCode's docstring

    v0.9.19 (December 1, 2020)

    • Added CallbackNodeStatus attribute
    • Added bridge from GreaterThan or LessThan to Interval
    • Added tests for infeasibility certificates and double optimize
    • Fixed support for Julia v1.6
    • Re-organized MOI docs and added documentation for adding a test

    v0.9.18 (November 3, 2020)

    • Various improvements for working with complex numbers
    • Added GeoMeantoRelEntrBridge to bridge a GeometricMeanCone constraint to a relative entropy constraint

    v0.9.17 (September 21, 2020)

    • Fixed CleverDict with variable of negative index value
    • Implement supports_add_constrained_variable for MockOptimizer

    v0.9.16 (September 17, 2020)

    • Various fixes:
      • 32-bit support
      • CleverDict with abstract value type
      • Checks in test suite

    v0.9.15 (September 14, 2020)

    • Bridges improvements:
      • (R)SOCtoNonConvexQuad bridge
      • ZeroOne bridge
      • Use supports_add_constrained_variable in LazyBridgeOptimizer
      • Exposed VariableBridgeCost and ConstraintBridgeCost attributes
      • Prioritize constraining variables on creation according to these costs
      • Refactor bridge debugging
    • Large performance improvements across all submodules
    • Lots of documentation improvements
    • FileFormats improvements:
      • Update MathOptFormat to v0.5
      • Fix supported objectives in FileFormats
    • Testing improvements:
      • Add name option for basic_constraint_test
    • Bug fixes and missing methods
      • Add length for iterators
      • Fix bug with duplicate terms
      • Fix order of LinearOfConstraintIndices

    v0.9.14 (May 30, 2020)

    • Add a solver-independent interface for accessing the set of conflicting constraints an Irreducible Inconsistent Subsystem (#1056).
    • Bump JSONSchema dependency from v0.2 to v0.3 (#1090).
    • Documentation improvements:
      • Fix typos (#1054, #1060, #1061, #1064, #1069, #1070).
      • Remove the outdated recommendation for a package implementing MOI for a solver XXX to be called MathOptInterfaceXXX (#1087).
    • Utilities improvements:
      • Fix is_canonical for quadratic functions (#1081, #1089).
      • Implement add_constrained_variable[s] for CachingOptimizer so that it is added as constrained variables to the underlying optimizer (#1084).
      • Add support for custom objective functions for UniversalFallback (#1086).
      • Deterministic ordering of constraints in UniversalFallback (#1088).
    • Testing improvements:
      • Add NormOneCone/NormInfinityCone tests (#1045).
    • Bridges improvements:
      • Add bridges from Semiinteger and Semicontinuous (#1059).
      • Implement getting ConstraintSet for Variable.FlipSignBridge (#1066).
      • Fix setting ConstraintFunction for Constraint.ScalarizeBridge (#1093).
      • Fix NormOne/NormInf bridges with nonzero constants (#1045).
      • Fix StackOverflow in debug (#1063).
    • FileFormats improvements:
      • [SDPA] Implement the extension for integer variables (#1079).
      • [SDPA] Ignore comments after m and nblocks and detect dat-s extension (#1077).
      • [SDPA] No scaling of off-diagonal coefficient (#1076).
      • [SDPA] Add missing negation of constant (#1075).

    v0.9.13 (March 24, 2020)

    • Added tests for Semicontinuous and Semiinteger variables (#1033).
    • Added tests for using ExprGraphs from NLP evaluators (#1043).
    • Update version compatibilities of dependencies (#1034, #1051, #1052).
    • Fixed typos in documentation (#1044).

    v0.9.12 (February 28, 2020)

    • Fixed writing NLPBlock in MathOptFormat (#1037).
    • Fixed MockOptimizer for result attributes with non-one result index (#1039).
    • Updated test template with instantiate (#1032).

    v0.9.11 (February 21, 2020)

    • Add an option for the model created by Utilities.@model to be a subtype of AbstractOptimizer (#1031).
    • Described dual cone in docstrings of GeoMeanCone and RelativeEntropyCone (#1018, #1028).
    • Fixed typos in documentation (#1022, #1024).
    • Fixed warning of unsupported attribute (#1027).
    • Added more rootdet/logdet conic tests (#1026).
    • Implemented ConstraintDual for Constraint.GeoMeanBridge, Constraint.RootDetBridge and Constraint.LogDetBridge and test duals in tests with GeoMeanCone and RootDetConeTriangle and LogDetConeTriangle cones (#1025, #1026).

    v0.9.10 (January 31, 2020)

    • Added OptimizerWithAttributes grouping an optimizer constructor and a list of optimizer attributes (#1008).
    • Added RelativeEntropyCone with corresponding bridge into exponential cone constraints (#993).
    • Added NormSpectralCone and NormNuclearCone with corresponding bridges into positive semidefinite constraints (#976).
    • Added supports_constrained_variable(s) (#1004).
    • Added dual_set_type (#1002).
    • Added tests for vector specialized version of delete (#989, #1011).
    • Added PSD3 test (#1007).
    • Clarified dual solution of Tests.pow1v and Tests.pow1f (#1013).
    • Added support for EqualTo and Zero in Bridges.Constraint.SplitIntervalBridge (#1005).
    • Fixed Utilities.vectorize for empty vector (#1003).
    • Fixed free variables in LP writer (#1006).

    v0.9.9 (December 29, 2019)

    • Incorporated MathOptFormat.jl as the FileFormats submodule. FileFormats provides readers and writers for a number of standard file formats and MOF, a file format specialized for MOI (#969).
    • Improved performance of deletion of vector of variables in MOI.Utilities.Model (#983).
    • Updated to MutableArithmetics v0.2 (#981).
    • Added MutableArithmetics.promote_operation allocation tests (#975).
    • Fixed inference issue on Julia v1.1 (#982).

    v0.9.8 (December 19, 2019)

    • Implemented MutableArithmetics API (#924).
    • Fixed callbacks with CachingOptimizer (#959).
    • Fixed MOI.dimension for MOI.Complements (#948).
    • Added fallback for add_variables (#972).
    • Added is_diagonal_vectorized_index utility (#965).
    • Improved linear constraints display in manual (#963, #964).
    • Bridges improvements:
      • Added IndicatorSet to SOS1 bridge (#877).
      • Added support for starting values for Variable.VectorizeBridge (#944).
      • Fixed MOI.add_constraints with non-bridged variable constraint on bridged variable (#951).
      • Fixed corner cases and docstring of GeoMeanBridge (#961, #962, #966).
      • Fixed choice between variable or constraint bridges for constrained variables (#973).
      • Improve performance of bridge shortest path (#945, #946, #956).
      • Added docstring for test_delete_bridge (#954).
      • Added Variable bridge tests (#952).

    v0.9.7 (October 30, 2019)

    • Implemented _result_index_field for NLPBlockDual (#934).
    • Fixed copy of model with starting values for vector constraints (#941).
    • Bridges improvements:
      • Improved performance of add_bridge and added has_bridge (#935).
      • Added AbstractSetMapBridge for bridges between sets S1, S2 such that there is a linear map A such that A*S1 = S2 (#933).
      • Added support for starting values for FlipSignBridge, VectorizeBridge, ScalarizeBridge, SlackBridge, SplitIntervalBridge, RSOCBridge, SOCRBridge NormInfinityBridge, SOCtoPSDBridge and RSOCtoPSDBridge (#933, #936, #937, #938, #939).

    v0.9.6 (October 25, 2019)

    • Added complementarity constraints (#913).
    • Allowed ModelLike objects as value of attributes (#928).
    • Testing improvements:
      • Added dual_objective_value option to MOI.Test.TestConfig (#922).
      • Added InvalidIndex tests in basic_constraint_tests (#921).
      • Added tests for the constant term in indicator constraint (#929).
    • Bridges improvements:
      • Added support for starting values for Functionize bridges (#923).
      • Added variable indices context to variable bridges (#920).
      • Fixed a typo in printing o debug_supports (#927).

    v0.9.5 (October 9, 2019)

    • Clarified PrimalStatus/DualStatus to be NO_SOLUTION if result_index is out of bounds (#912).
    • Added tolerance for checks and use ResultCount + 1 for the result_index in MOI.Test.solve_result_status (#910, #917).
    • Use 0.5 instead of 2.0 for power in PowerCone in basic_constraint_test (#916).
    • Bridges improvements:
      • Added debug utilities for unsupported variable/constraint/objective (#861).
      • Fixed deletion of variables in bridged VectorOfVariables constraints (#909).
      • Fixed result_index with objective bridges (#911).

    v0.9.4 (October 2, 2019)

    • Added solver-independent MIP callbacks (#782).
    • Implements submit for Utilities.CachingOptimizer and Bridges.AbstractBridgeOptimizer (#906).
    • Added tests for result count of solution attributes (#901, #904).
    • Added NumberOfThreads attribute (#892).
    • Added Utilities.get_bounds to get the bounds on a variable (#890).
    • Added a note on duplicate coefficients in documentation (#581).
    • Added result index in ConstraintBasisStatus (#898).
    • Added extension dictionary to Utilities.Model (#884, #895).
    • Fixed deletion of constrained variables for CachingOptimizer (#905).
    • Implemented Utilities.shift_constraint for Test.UnknownScalarSet (#896).
    • Bridges improvements:
      • Added Variable.RSOCtoSOCBridge (#907).
      • Implemented MOI.get for ConstraintFunction/ConstraintSet for Bridges.Constraint.SquareBridge (#899).

    v0.9.3 (September 20, 2019)

    • Fixed ambiguity detected in Julia v1.3 (#891, #893).
    • Fixed missing sets from ListOfSupportedConstraints (#880).
    • Fixed copy of VectorOfVariables constraints with duplicate indices (#886).
    • Added extension dictionary to MOIU.Model (#884).
    • Implemented MOI.get for function and set for GeoMeanBridge (#888).
    • Updated documentation for SingleVariable indices and bridges (#885).
    • Testing improvements:
      • Added more comprehensive tests for names (#882).
      • Added tests for SingleVariable duals (#883).
      • Added tests for DualExponentialCone and DualPowerCone (#873).
    • Improvements for arbitrary coefficient type:
      • Fixed == for sets with mutable fields (#887).
      • Removed some Float64 assumptions in bridges (#878).
      • Automatic selection of Constraint.[Scalar|Vector]FunctionizeBridge (#889).

    v0.9.2 (September 5, 2019)

    • Implemented model printing for MOI.ModelLike and specialized it for models defined in MOI (864).
    • Generalized contlinear tests for arbitrary coefficient type (#855).
    • Fixed supports_constraint for Semiinteger and Semicontinuous and supports for ObjectiveFunction (#859).
    • Fixed Allocate-Load copy for single variable constraints (#856).
    • Bridges improvements:
      • Add objective bridges (#789).
      • Fixed Variable.RSOCtoPSDBridge for dimension 2 (#869).
      • Added Variable.SOCtoRSOCBridge (#865).
      • Added Constraint.SOCRBridge and disable MOI.Bridges.Constraint.SOCtoPSDBridge (#751).
      • Fixed added_constraint_types for Contraint.LogDetBridge and Constraint.RootDetBridge (#870).

    v0.9.1 (August 22, 2019)

    • Fix support for Julia v1.2 (#834).
    • L1 and L∞ norm epigraph cones and corresponding bridges to LP were added (#818).
    • Added tests to MOI.Test.nametest (#833).
    • Fix MOI.Test.soc3test for solvers not supporting infeasibility certificates (#839).
    • Implements operate for operators * and / between vector function and constant (#837).
    • Implements show for MOI.Utilities.IndexMap (#847).
    • Fix corner cases for mapping of variables in MOI.Utilities.CachingOptimizer and substitution of variables in MOI.Bridges.AbstractBridgeOptimizer (#848).
    • Fix transformation of constant terms for MOI.Bridges.Constraint.SOCtoPSDBridge and MOI.Bridges.Constraint.RSOCtoPSDBridge (#840).

    v0.9.0 (August 13, 2019)

    • Support for Julia v0.6 and v0.7 was dropped (#714, #717).
    • A MOI.Utilities.Model implementation of ModelLike, this should replace most use cases of MOI.Utilities.@model (#781).
    • add_constrained_variable and add_constrained_variables were added (#759).
    • Support for indicator constraints was added (#709, #712).
    • DualObjectiveValue attribute was added (#473).
    • RawParameter attribute was added (#733).
    • A dual_set function was added (#804).
    • A Benchmarks submodule was added to facilitate solver benchmarking (#769).
    • A submit function was added, this may for instance allow the user to submit solutions or cuts to the solver from a callback (#775).
    • The field of ObjectiveValue was renamed to result_index (#729).
    • The _constant and Utilities.getconstant function were renamed to constant
    • REDUCTION_CERTIFICATE result status was added (#734).
    • Abstract matrix sets were added (#731).
    • Testing improvements:
      • The testing guideline was updated (#728).
      • Quadratic tests were added (#697).
      • Unit tests for RawStatusString, SolveTime, Silent and SolverName were added (#726, #741).
      • A rotated second-order cone test was added (#759).
      • A power cone test was added (#768).
      • Tests for ZeroOne variables with variable bounds were added (#772).
      • An unbounded test was added (#773).
      • Existing tests had a few updates (#702, #703, #763).
    • Documentation improvements:
      • Added a section on CachingOptimizer (#777).
      • Added a section on UniversalFallback, Model and @model (#762).
      • Transition the knapsack example to a doctest with MockOptimizer (#786).
    • Utilities improvements:
      • A CleverDict utility was added for a vector that automatically transform into a dictionary once a first index is removed (#767).
      • The Utilities.constant function was renamed to Utilities.constant_vector (#740).
      • Implement optimizer attributes for CachingOptimizer (#745).
      • Rename Utilities.add_scalar_constraint to Utilities.normalize_and_add_constraint (#801).
      • operate with vcat, SingleVariable and VectorOfVariables now returns a VectorOfVariables (#616).
      • Fix a type piracy of operate (#784).
      • The load_constraint fallback signature was fixed (#760).
      • The set_dot function was extended to work with sparse arrays (#805).
    • Bridges improvements:
      • The bridges no longer store the constraint function and set before it is bridged, the bridges now have to implement ConstraintFunction and ConstraintSet if the user wants to recover them. As a consequence, the @bridge macro was removed (#722).
      • Bridge are now instantiated with a bridge_constraint function instead of using a constructor (#730).
      • Fix constraint attributes for bridges (#699).
      • Constraint bridges were moved to the Bridges/Constraint submodule so they should now inherit from MOI.Bridges.Constraint.Abstract and should implement MOI.Bridges.Constraint.concrete_bridge_type instead of MOI.Bridges.concrete_bridge_type (#756).
      • Variable bridges were added in (#759).
      • Various improvements (#746, #747).

    v0.8.4 (March 13, 2019)

    • Performance improvement in default_copy_to and bridge optimizer (#696).
    • Add Silent and implement setting optimizer attributes in caching and mock optimizers (#695).
    • Add Functionize bridges (SingleVariable and VectorOfVariables) (#659).
    • Minor typo fixes (#694).

    v0.8.3 (March 6, 2019)

    • Use zero constant in scalar constraint function of MOI.Test.copytest (#691).
    • Fix variable deletion with SingleVariable objective function (#690).
    • Fix LazyBridgeOptimizer with bridges that add no constraints (#689).
    • Error message improvements (#673, #685, #686, #688).
    • Documentation improvements (#682, #683, #687).
    • Basis status:
      • Remove VariableBasisStatus (#679).
      • Test ConstraintBasisStatus and implement it in bridges (#678).
    • Fix inference of NumberOfVariables and NumberOfConstraints (#677).
    • Implement division between a quadratic function and a number (#675).

    v0.8.2 (February 7, 2019)

    • Add RawStatusString attribute (#629).
    • Do not set names to the optimizer but only to the cache in CachingOptimizer (#638).
    • Make scalar MOI functions act as scalars in broadcast (#646).
    • Add function utilities:
      • Implement Base.zero (#634), Base.iszero (#643), add missing arithmetic operations (#644, #645) and fix division (#648).
      • Add a vectorize function that turns a vector of ScalarAffineFunction into a VectorAffineFunction (#642).
    • Improve support for starting values:
      • Show a warning in copy when starting values are not supported instead of throwing an error (#630).
      • Fix UniversalFallback for getting an variable or constraint attribute set to no indices (#623).
      • Add a test in contlineartest with partially set VariablePrimalStart.
    • Bridges improvements:
      • Fix StackOverFlow in LazyBridgeOptimizer when there is a cycle in the graph of bridges.
      • Add Slack bridges (#610, #650).
      • Add FlipSign bridges (#658).
    • Add tests with duplicate coefficients in ScalarAffineFunction and VectorAffineFunction (#639).
    • Use tolerance to compare VariablePrimal in rotatedsoc1 test (#632).
    • Use a zero constant in ScalarAffineFunction of constraints in psdt2 (#622).

    v0.8.1 (January 7, 2019)

    • Adding an NLP objective now overrides any objective set using the ObjectiveFunction attribute (#619).
    • Rename fullbridgeoptimizer into full_bridge_optimizer (#621).
    • Allow custom constraint types with full_bridge_optimizer (#617).
    • Add Vectorize bridge which transforms scalar linear constraints into vector linear constraints (#615).

    v0.8.0 (December 18, 2018)

    • Rename all enum values to follow the JuMP naming guidelines for constants, for example, Optimal becomes OPTIMAL, and DualInfeasible becomes DUAL_INFEASIBLE.
    • Rename CachingOptimizer methods for style compliance.
    • Add an MOI.TerminationStatusCode called ALMOST_DUAL_INFEASIBLE.

    v0.7.0 (December 13, 2018)

    • Test that MOI.TerminationStatus is MOI.OptimizeNotCalled before MOI.optimize! is called.
    • Check supports_default_copy_to in tests (#594).
    • Key pieces of information like optimality, infeasibility, etc., are now reported through TerminationStatusCode. It is typically no longer necessary to check the result statuses in addition to the termination status.
    • Add perspective dimension to log-det cone (#593).

    v0.6.4 (November 27, 2018)

    • Add OptimizeNotCalled termination status (#577) and improve documentation of other statuses (#575).
    • Add a solver naming guideline (#578).
    • Make FeasibilitySense the default ObjectiveSense (#579).
    • Fix Utilities.@model and Bridges.@bridge macros for functions and sets defined outside MOI (#582).
    • Document solver-specific attributes (#580) and implement them in Utilities.CachingOptimizer (#565).

    v0.6.3 (November 16, 2018)

    • Variables and constraints are now allowed to have duplicate names. An error is thrown only on lookup. This change breaks some existing tests. (#549)
    • Attributes may now be partially set (some values could be nothing). (#563)
    • Performance improvements in Utilities.Model (#549, #567, #568)
    • Fix bug in QuadtoSOC (#558).
    • New supports_default_copy_to method that optimizers should implement to control caching behavior.
    • Documentation improvements.

    v0.6.2 (October 26, 2018)

    • Improve hygiene of @model macro (#544).
    • Fix bug in copy tests (#543).
    • Fix bug in UniversalFallback attribute getter (#540).
    • Allow all correct solutions for solve_blank_obj unit test (#537).
    • Add errors for Allocate-Load and bad constraints (#534).
    • [performance] Add specialized implementation of hash for VariableIndex (#533).
    • [performance] Construct the name to object dictionaries lazily in model (#535).
    • Add the QuadtoSOC bridge which transforms ScalarQuadraticFunction constraints into RotatedSecondOrderCone (#483).

    v0.6.1 (September 22, 2018)

    • Enable PositiveSemidefiniteConeSquare set and quadratic functions in MOIB.fullbridgeoptimizer (#524).
    • Add warning in the bridge between PositiveSemidefiniteConeSquare and PositiveSemidefiniteConeTriangle when the matrix is almost symmetric (#522).
    • Modify MOIT.copytest to not add multiples constraints on the same variable (#521).
    • Add missing keyword argument in one of MOIU.add_scalar_constraint methods (#520).

    v0.6.0 (August 30, 2018)

    • The MOIU.@model and MOIB.@bridge macros now support functions and sets defined in external modules. As a consequence, function and set names in the macro arguments need to be prefixed by module name.
    • Rename functions according to the JuMP style guide:
      • copy! with keyword arguments copynames and warnattributes -> copy_to with keyword arguments copy_names and warn_attributes;
      • set! -> set;
      • addvariable[s]! -> add_variable[s];
      • supportsconstraint -> supports_constraint;
      • addconstraint[s]! -> add_constraint[s];
      • isvalid -> is_valid;
      • isempty -> is_empty;
      • Base.delete! -> delete;
      • modify! -> modify;
      • transform! -> transform;
      • initialize! -> initialize;
      • write -> write_to_file; and
      • read! -> read_from_file.
    • Remove free! (use Base.finalize instead).
    • Add the SquarePSD bridge which transforms PositiveSemidefiniteConeTriangle constraints into PositiveSemidefiniteConeTriangle.
    • Add result fallback for ConstraintDual of variable-wise constraint, ConstraintPrimal and ObjectiveValue.
    • Add tests for ObjectiveBound.
    • Add test for empty rows in vector linear constraint.
    • Rework errors: CannotError has been renamed NotAllowedError and the distinction between UnsupportedError and NotAllowedError is now about whether the element is not supported (for example, it cannot be copied a model containing this element) or the operation is not allowed (either because it is not implemented, because it cannot be performed in the current state of the model, or because it cannot be performed for a specific index)
    • canget is removed. NoSolution is added as a result status to indicate that the solver does not have either a primal or dual solution available (See #479).

    v0.5.0 (August 5, 2018)

    • Fix names with CachingOptimizer.
    • Cleanup thanks to @mohamed82008.
    • Added a universal fallback for constraints.
    • Fast utilities for function canonicalization thanks to @rdeits.
    • Renamed dimension field to side_dimension in the context of matrix-like sets.
    • New and improved tests for cases like duplicate terms and ObjectiveBound.
    • Removed cantransform, canaddconstraint, canaddvariable, canset, canmodify, and candelete functions from the API. They are replaced by a new set of errors that are thrown: Subtypes of UnsupportedError indicate unsupported operations, while subtypes of CannotError indicate operations that cannot be performed in the current state.
    • The API for copy! is updated to remove the CopyResult type.
    • Updates for the new JuMP style guide.

    v0.4.1 (June 28, 2018)

    • Fixes vector function modification on 32 bits.
    • Fixes Bellman-Ford algorithm for bridges.
    • Added an NLP test with FeasibilitySense.
    • Update modification documentation.

    v0.4.0 (June 23, 2018)

    • Helper constructors for VectorAffineTerm and VectorQuadraticTerm.
    • Added modify_lhs to TestConfig.
    • Additional unit tests for optimizers.
    • Added a type parameter to CachingOptimizer for the optimizer field.
    • New API for problem modification (#388)
    • Tests pass without deprecation warnings on Julia 0.7.
    • Small fixes and documentation updates.

    v0.3.0 (May 25, 2018)

    • Functions have been redefined to use arrays-of-structs instead of structs-of-arrays.
    • Improvements to MockOptimizer.
    • Significant changes to Bridges.
    • New and improved unit tests.
    • Fixes for Julia 0.7.

    v0.2.0 (April 24, 2018)

    • Improvements to and better coverage of Tests.
    • Documentation fixes.
    • SolverName attribute.
    • Changes to the NLP interface (new definition of variable order and arrays of structs for bound pairs and sparsity patterns).
    • Addition of NLP tests.
    • Introduction of UniversalFallback.
    • copynames keyword argument to MOI.copy!.
    • Add Bridges submodule.

    v0.1.0 (February 28, 2018)

    • Initial public release.
    • The framework for MOI was developed at the JuMP-dev workshop at MIT in June 2017 as a sorely needed replacement for MathProgBase.
    diff --git a/previews/PR3545/moi/developer/checklists/index.html b/previews/PR3545/moi/developer/checklists/index.html new file mode 100644 index 00000000000..436dba57f24 --- /dev/null +++ b/previews/PR3545/moi/developer/checklists/index.html @@ -0,0 +1,116 @@ + +Checklists · JuMP

    Checklists

    The purpose of this page is to collate a series of checklists for commonly performed changes to the source code of MathOptInterface.

    In each case, copy the checklist into the description of the pull request.

    Making a release

    Use this checklist when making a release of the MathOptInterface repository.

    ## Basic
    +
    + - [ ] `version` field of `Project.toml` has been updated
    +       - If a breaking change, increment the MAJOR field and reset others to 0
    +       - If adding new features, increment the MINOR field and reset PATCH to 0
    +       - If adding bug fixes or documentation changes, increment the PATCH field
    +
    +## Documentation
    +
    + - [ ] Add a new entry to `docs/src/changelog.md`, following existing style
    +
    +## Tests
    +
    + - [ ] The `solver-tests.yml` GitHub action does not have unexpected failures.
    +       To run the action, go to:
    +       https://github.com/jump-dev/MathOptInterface.jl/actions/workflows/solver-tests.yml
    +       and click "Run workflow"

    Adding a new set

    Use this checklist when adding a new set to the MathOptInterface repository.

    ## Basic
    +
    + - [ ] Add a new `AbstractScalarSet` or `AbstractVectorSet` to `src/sets.jl`
    + - [ ] If `isbitstype(S) == false`, implement `Base.copy(set::S)`
    + - [ ] If `isbitstype(S) == false`, implement `Base.:(==)(x::S, y::S)`
    + - [ ] If an `AbstractVectorSet`, implement `dimension(set::S)`, unless the
    +       dimension is given by `set.dimension`.
    +
    +## Utilities
    +
    + - [ ] If an `AbstractVectorSet`, implement `Utilities.set_dot`,
    +       unless the dot product between two vectors in the set is equivalent to
    +       `LinearAlgebra.dot`
    + - [ ] If an `AbstractVectorSet`, implement `Utilities.set_with_dimension` in
    +       `src/Utilities/matrix_of_constraints.jl`
    + - [ ] Add the set to the `@model` macro at the bottom of `src/Utilities.model.jl`
    +
    +## Documentation
    +
    + - [ ] Add a docstring, which gives the mathematical definition of the set,
    +       along with an `## Example` block containing a `jldoctest`
    + - [ ] Add the docstring to `docs/src/reference/standard_form.md`
    + - [ ] Add the set to the relevant table in `docs/src/manual/standard_form.md`
    +
    +## Tests
    +
    + - [ ] Define a new `_set(::Type{S})` method in `src/Test/test_basic_constraint.jl`
    +       and add the name of the set to the list at the bottom of that files
    + - [ ] If the set has any checks in its constructor, add tests to `test/sets.jl`
    +
    +## MathOptFormat
    +
    + - [ ] Open an issue at `https://github.com/jump-dev/MathOptFormat` to add
    +       support for the new set {{ replace with link to the issue }}
    +
    +## Optional
    +
    + - [ ] Implement `dual_set(::S)` and `dual_set_type(::Type{S})`
    + - [ ] Add new tests to the `Test` submodule exercising your new set
    + - [ ] Add new bridges to convert your set into more commonly used sets

    Adding a new bridge

    Use this checklist when adding a new bridge to the MathOptInterface repository.

    The steps are mostly the same, but locations depend on whether the bridge is a Constraint, Objective, or Variable bridge. In each case below, replace XXX with the appropriate type of bridge.

    ## Basic
    +
    + - [ ] Create a new file in `src/Bridges/XXX/bridges`
    + - [ ] Define the bridge, following existing examples. The name of the bridge
    +       struct must end in `Bridge`
    + - [ ] Check if your bridge can be a subtype of [`MOI.Bridges.Constraint.SetMapBridge`](@ref)
    + - [ ] Define a new `const` that is a `SingleBridgeOptimizer` wrapping the
    +       new bridge. The name of the const must be the name of the bridge, less
    +       the `Bridge` suffix
    + - [ ] `include` the file in `src/Bridges/XXX/bridges/XXX.jl`
    + - [ ] If the bridge should be enabled by default, add the bridge to
    +       `add_all_bridges` at the bottom of `src/Bridges/XXX/XXX.jl`
    +
    +## Tests
    +
    + - [ ] Create a new file in the appropriate subdirectory of `tests/Bridges/XXX`
    + - [ ] Use `MOI.Bridges.runtests` to test various inputs and outputs of the
    +       bridge
    + - [ ] If, after opening the pull request to add the bridge, some lines are not
    +       covered by the tests, add additional bridge-specific tests to cover the
    +       untested lines.
    +
    +## Documentation
    +
    + - [ ] Add a docstring which uses the same template as existing bridges.
    + - [ ] Add the docstring to `docs/src/submodules/Bridges/list_of_bridges.md`
    +
    +## Final touch
    +
    +If the bridge depends on run-time values of other variables and constraints in
    +the model:
    +
    + - [ ] Implement `MOI.Utilities.needs_final_touch(::Bridge)`
    + - [ ] Implement `MOI.Utilities.final_touch(::Bridge, ::MOI.ModelLike)`
    + - [ ] Ensure that `final_touch` can be called multiple times in a row

    Updating MathOptFormat

    Use this checklist when updating the version of MathOptFormat.

    ## Basic
    +
    + - [ ] The file at `src/FileFormats/MOF/mof.X.Y.schema.json` is updated
    + - [ ] The constants `SCHEMA_PATH`, `VERSION`, and `SUPPORTED_VERSIONS` are
    +       updated in `src/FileFormats/MOF/MOF.jl`
    +
    +## New sets
    +
    + - [ ] New sets are added to the `@model` in `src/FileFormats/MOF/MOF.jl`
    + - [ ] New sets are added to the `@enum` in `src/FileFormats/MOF/read.jl`
    + - [ ] `set_to_moi` is defined for each set in `src/FileFormats/MOF/read.jl`
    + - [ ] `head_name` is defined for each set in `src/FileFormats/MOF/write.jl`
    + - [ ] A new unit test calling `_test_model_equality` is aded to
    +       `test/FileFormats/MOF/MOF.jl`
    +
    +## Tests
    +
    + - [ ] The version field in `test/FileFormats/MOF/nlp.mof.json` is updated
    +
    +## Documentation
    +
    + - [ ] The version fields are updated in `docs/src/submodules/FileFormats/overview.md`
    diff --git a/previews/PR3545/moi/index.html b/previews/PR3545/moi/index.html new file mode 100644 index 00000000000..8f4f988c27c --- /dev/null +++ b/previews/PR3545/moi/index.html @@ -0,0 +1,13 @@ + +Introduction · JuMP

    Introduction

    Warning

    This documentation in this section is a copy of the official MathOptInterface documentation available at https://jump.dev/MathOptInterface.jl/v1.20.1. It is included here to make it easier to link concepts between JuMP and MathOptInterface.

    What is MathOptInterface?

    MathOptInterface.jl (MOI) is an abstraction layer designed to provide a unified interface to mathematical optimization solvers so that users do not need to understand multiple solver-specific APIs.

    Tip

    This documentation is aimed at developers writing software interfaces to solvers and modeling languages using the MathOptInterface API. If you are a user interested in solving optimization problems, we encourage you instead to use MOI through a higher-level modeling interface like JuMP or Convex.jl.

    How the documentation is structured

    Having a high-level overview of how this documentation is structured will help you know where to look for certain things.

    • The Tutorials section contains articles on how to use and implement the MathOptInteraface API. Look here if you want to write a model in MOI, or write an interface to a new solver.
    • The Manual contains short code-snippets that explain how to use the MOI API. Look here for more details on particular areas of MOI.
    • The Background section contains articles on the theory behind MathOptInterface. Look here if you want to understand why, rather than how.
    • The API Reference contains a complete list of functions and types that comprise the MOI API. Look here is you want to know how to use (or implement) a particular function.
    • The Submodules section contains stand-alone documentation for each of the submodules within MOI. These submodules are not required to interface a solver with MOI, but they make the job much easier.

    Citing MathOptInterface

    A paper describing the design and features of MathOptInterface is available on arXiv.

    If you find MathOptInterface useful in your work, we kindly request that you cite the following paper:

    @article{legat2021mathoptinterface,
    +    title={{MathOptInterface}: a data structure for mathematical optimization problems},
    +    author={Legat, Beno{\^\i}t and Dowson, Oscar and Garcia, Joaquim Dias and Lubin, Miles},
    +    journal={INFORMS Journal on Computing},
    +    year={2021},
    +    doi={10.1287/ijoc.2021.1067},
    +    publisher={INFORMS}
    +}
    diff --git a/previews/PR3545/moi/manual/constraints/index.html b/previews/PR3545/moi/manual/constraints/index.html new file mode 100644 index 00000000000..02275a34ff1 --- /dev/null +++ b/previews/PR3545/moi/manual/constraints/index.html @@ -0,0 +1,26 @@ + +Constraints · JuMP

    Constraints

    Add a constraint

    Use add_constraint to add a single constraint.

    julia> c = MOI.add_constraint(model, MOI.VectorOfVariables(x), MOI.Nonnegatives(2))
    +MathOptInterface.ConstraintIndex{MathOptInterface.VectorOfVariables, MathOptInterface.Nonnegatives}(1)

    add_constraint returns a ConstraintIndex type, which is used to refer to the added constraint in other calls.

    Check if a ConstraintIndex is valid using is_valid.

    julia> MOI.is_valid(model, c)
    +true

    Use add_constraints to add a number of constraints of the same type.

    julia> c = MOI.add_constraints(
    +           model,
    +           [x[1], x[2]],
    +           [MOI.GreaterThan(0.0), MOI.GreaterThan(1.0)]
    +       )
    +2-element Vector{MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.GreaterThan{Float64}}}:
    + MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.GreaterThan{Float64}}(1)
    + MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.GreaterThan{Float64}}(2)

    This time, a vector of ConstraintIndex are returned.

    Use supports_constraint to check if the model supports adding a constraint type.

    julia> MOI.supports_constraint(
    +           model,
    +           MOI.VariableIndex,
    +           MOI.GreaterThan{Float64},
    +       )
    +true

    Delete a constraint

    Use delete to delete a constraint.

    julia> MOI.delete(model, c)
    +
    +julia> MOI.is_valid(model, c)
    +false

    Constraint attributes

    The following attributes are available for constraints:

    Get and set these attributes using get and set.

    julia> MOI.set(model, MOI.ConstraintName(), c, "con_c")
    +
    +julia> MOI.get(model, MOI.ConstraintName(), c)
    +"con_c"

    Constraints by function-set pairs

    Below is a list of common constraint types and how they are represented as function-set pairs in MOI. In the notation below, $x$ is a vector of decision variables, $x_i$ is a scalar decision variable, $\alpha, \beta$ are scalar constants, $a, b$ are constant vectors, A is a constant matrix and $\mathbb{R}_+$ (resp. $\mathbb{R}_-$) is the set of non-negative (resp. non-positive) real numbers.

    Linear constraints

    Mathematical ConstraintMOI FunctionMOI Set
    $a^Tx \le \beta$ScalarAffineFunctionLessThan
    $a^Tx \ge \alpha$ScalarAffineFunctionGreaterThan
    $a^Tx = \beta$ScalarAffineFunctionEqualTo
    $\alpha \le a^Tx \le \beta$ScalarAffineFunctionInterval
    $x_i \le \beta$VariableIndexLessThan
    $x_i \ge \alpha$VariableIndexGreaterThan
    $x_i = \beta$VariableIndexEqualTo
    $\alpha \le x_i \le \beta$VariableIndexInterval
    $Ax + b \in \mathbb{R}_+^n$VectorAffineFunctionNonnegatives
    $Ax + b \in \mathbb{R}_-^n$VectorAffineFunctionNonpositives
    $Ax + b = 0$VectorAffineFunctionZeros

    By convention, solvers are not expected to support nonzero constant terms in the ScalarAffineFunctions the first four rows of the preceding table because they are redundant with the parameters of the sets. For example, encode $2x + 1 \le 2$ as $2x \le 1$.

    Constraints with VariableIndex in LessThan, GreaterThan, EqualTo, or Interval sets have a natural interpretation as variable bounds. As such, it is typically not natural to impose multiple lower- or upper-bounds on the same variable, and the solver interfaces will throw respectively LowerBoundAlreadySet or UpperBoundAlreadySet.

    Moreover, adding two VariableIndex constraints on the same variable with the same set is impossible because they share the same index as it is the index of the variable, see ConstraintIndex.

    It is natural, however, to impose upper- and lower-bounds separately as two different constraints on a single variable. The difference between imposing bounds by using a single Interval constraint and by using separate LessThan and GreaterThan constraints is that the latter will allow the solver to return separate dual multipliers for the two bounds, while the former will allow the solver to return only a single dual for the interval constraint.

    Conic constraints

    Mathematical ConstraintMOI FunctionMOI Set
    $\lVert Ax + b\rVert_2 \le c^Tx + d$VectorAffineFunctionSecondOrderCone
    $y \ge \lVert x \rVert_2$VectorOfVariablesSecondOrderCone
    $2yz \ge \lVert x \rVert_2^2, y,z \ge 0$VectorOfVariablesRotatedSecondOrderCone
    $(a_1^Tx + b_1,a_2^Tx + b_2,a_3^Tx + b_3) \in \mathcal{E}$VectorAffineFunctionExponentialCone
    $A(x) \in \mathcal{S}_+$VectorAffineFunctionPositiveSemidefiniteConeTriangle
    $B(x) \in \mathcal{S}_+$VectorAffineFunctionPositiveSemidefiniteConeSquare
    $x \in \mathcal{S}_+$VectorOfVariablesPositiveSemidefiniteConeTriangle
    $x \in \mathcal{S}_+$VectorOfVariablesPositiveSemidefiniteConeSquare

    where $\mathcal{E}$ is the exponential cone (see ExponentialCone), $\mathcal{S}_+$ is the set of positive semidefinite symmetric matrices, $A$ is an affine map that outputs symmetric matrices and $B$ is an affine map that outputs square matrices.

    Quadratic constraints

    Mathematical ConstraintMOI FunctionMOI Set
    $\frac{1}{2}x^TQx + a^Tx + b \ge 0$ScalarQuadraticFunctionGreaterThan
    $\frac{1}{2}x^TQx + a^Tx + b \le 0$ScalarQuadraticFunctionLessThan
    $\frac{1}{2}x^TQx + a^Tx + b = 0$ScalarQuadraticFunctionEqualTo
    Bilinear matrix inequalityVectorQuadraticFunctionPositiveSemidefiniteCone...
    Note

    For more details on the internal format of the quadratic functions see ScalarQuadraticFunction or VectorQuadraticFunction.

    Discrete and logical constraints

    Mathematical ConstraintMOI FunctionMOI Set
    $x_i \in \mathbb{Z}$VariableIndexInteger
    $x_i \in \{0,1\}$VariableIndexZeroOne
    $x_i \in \{0\} \cup [l,u]$VariableIndexSemicontinuous
    $x_i \in \{0\} \cup \{l,l+1,\ldots,u-1,u\}$VariableIndexSemiinteger
    At most one component of $x$ can be nonzeroVectorOfVariablesSOS1
    At most two components of $x$ can be nonzero, and if so they must be adjacent componentsVectorOfVariablesSOS2
    $y = 1 \implies a^T x \in S$VectorAffineFunctionIndicator

    JuMP mapping

    The following bullet points show examples of how JuMP constraints are translated into MOI function-set pairs:

    • @constraint(m, 2x + y <= 10) becomes ScalarAffineFunction-in-LessThan
    • @constraint(m, 2x + y >= 10) becomes ScalarAffineFunction-in-GreaterThan
    • @constraint(m, 2x + y == 10) becomes ScalarAffineFunction-in-EqualTo
    • @constraint(m, 0 <= 2x + y <= 10) becomes ScalarAffineFunction-in-Interval
    • @constraint(m, 2x + y in ArbitrarySet()) becomes ScalarAffineFunction-in-ArbitrarySet.

    Variable bounds are handled in a similar fashion:

    • @variable(m, x <= 1) becomes VariableIndex-in-LessThan
    • @variable(m, x >= 1) becomes VariableIndex-in-GreaterThan

    One notable difference is that a variable with an upper and lower bound is translated into two constraints, rather than an interval, that is:

    • @variable(m, 0 <= x <= 1) becomes VariableIndex-in-LessThan and VariableIndex-in-GreaterThan.
    diff --git a/previews/PR3545/moi/manual/models/index.html b/previews/PR3545/moi/manual/models/index.html new file mode 100644 index 00000000000..761868a64fb --- /dev/null +++ b/previews/PR3545/moi/manual/models/index.html @@ -0,0 +1,6 @@ + +Models · JuMP

    Models

    The most significant part of MOI is the definition of the model API that is used to specify an instance of an optimization problem (for example, by adding variables and constraints). Objects that implement the model API must inherit from the ModelLike abstract type.

    Notably missing from the model API is the method to solve an optimization problem. ModelLike objects may store an instance (for example, in memory or backed by a file format) without being linked to a particular solver. In addition to the model API, MOI defines AbstractOptimizer and provides methods to solve the model and interact with solutions. See the Solutions section for more details.

    Info

    Throughout the rest of the manual, model is used as a generic ModelLike, and optimizer is used as a generic AbstractOptimizer.

    Tip

    MOI does not export functions, but for brevity we often omit qualifying names with the MOI module. Best practice is to have

    import MathOptInterface as MOI

    and prefix all MOI methods with MOI. in user code. If a name is also available in base Julia, we always explicitly use the module prefix, for example, with MOI.get.

    Attributes

    Attributes are properties of the model that can be queried and modified. These include constants such as the number of variables in a model NumberOfVariables), and properties of variables and constraints such as the name of a variable (VariableName).

    There are four types of attributes:

    Some attributes are values that can be queried by the user but not modified, while other attributes can be modified by the user.

    All interactions with attributes occur through the get and set functions.

    Consult the docstrings of each attribute for information on what it represents.

    ModelLike API

    The following attributes are available:

    AbstractOptimizer API

    The following attributes are available:

    diff --git a/previews/PR3545/moi/manual/modification/index.html b/previews/PR3545/moi/manual/modification/index.html new file mode 100644 index 00000000000..8602b7a2b00 --- /dev/null +++ b/previews/PR3545/moi/manual/modification/index.html @@ -0,0 +1,129 @@ + +Problem modification · JuMP

    Problem modification

    In addition to adding and deleting constraints and variables, MathOptInterface supports modifying, in-place, coefficients in the constraints and the objective function of a model.

    These modifications can be grouped into two categories:

    • modifications which replace the set of function of a constraint with a new set or function
    • modifications which change, in-place, a component of a function
    Warning

    Some ModelLike objects do not support problem modification.

    Modify the set of a constraint

    Use set and ConstraintSet to modify the set of a constraint by replacing it with a new instance of the same type.

    julia> c = MOI.add_constraint(
    +           model,
    +           MOI.ScalarAffineFunction([MOI.ScalarAffineTerm(1.0, x)], 0.0),
    +           MOI.EqualTo(1.0),
    +       )
    +MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.EqualTo{Float64}}(1)
    +
    +julia> MOI.set(model, MOI.ConstraintSet(), c, MOI.EqualTo(2.0));
    +
    +julia> MOI.get(model, MOI.ConstraintSet(), c) == MOI.EqualTo(2.0)
    +true

    However, the following will fail as the new set is of a different type to the original set:

    julia> MOI.set(model, MOI.ConstraintSet(), c, MOI.GreaterThan(2.0))
    +ERROR: [...]

    Special cases: set transforms

    If our constraint is an affine inequality, then this corresponds to modifying the right-hand side of a constraint in linear programming.

    In some special cases, solvers may support efficiently changing the set of a constraint (for example, from LessThan to GreaterThan). For these cases, MathOptInterface provides the transform method.

    The transform function returns a new constraint index, and the old constraint index (that is, c) is no longer valid.

    julia> c = MOI.add_constraint(
    +           model,
    +           MOI.ScalarAffineFunction([MOI.ScalarAffineTerm(1.0, x)], 0.0),
    +           MOI.LessThan(1.0),
    +       )
    +MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.LessThan{Float64}}(1)
    +
    +julia> new_c = MOI.transform(model, c, MOI.GreaterThan(2.0));
    +
    +julia> MOI.is_valid(model, c)
    +false
    +
    +julia> MOI.is_valid(model, new_c)
    +true
    Note

    transform cannot be called with a set of the same type. Use set instead.

    Modify the function of a constraint

    Use set and ConstraintFunction to modify the function of a constraint by replacing it with a new instance of the same type.

    julia> c = MOI.add_constraint(
    +           model,
    +           MOI.ScalarAffineFunction([MOI.ScalarAffineTerm(1.0, x)], 0.0),
    +           MOI.EqualTo(1.0),
    +       )
    +MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.EqualTo{Float64}}(1)
    +
    +julia> new_f = MOI.ScalarAffineFunction([MOI.ScalarAffineTerm(2.0, x)], 1.0);
    +
    +julia> MOI.set(model, MOI.ConstraintFunction(), c, new_f);
    +
    +julia> MOI.get(model, MOI.ConstraintFunction(), c) ≈ new_f
    +true

    However, the following will fail as the new function is of a different type to the original function:

    julia> MOI.set(model, MOI.ConstraintFunction(), c, x)
    +ERROR: [...]

    Modify constant term in a scalar function

    Use modify and ScalarConstantChange to modify the constant term in a ScalarAffineFunction or ScalarQuadraticFunction.

    julia> c = MOI.add_constraint(
    +           model,
    +           MOI.ScalarAffineFunction([MOI.ScalarAffineTerm(1.0, x)], 0.0),
    +           MOI.EqualTo(1.0),
    +       )
    +MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.EqualTo{Float64}}(1)
    +
    +julia> MOI.modify(model, c, MOI.ScalarConstantChange(1.0));
    +
    +julia> new_f = MOI.ScalarAffineFunction([MOI.ScalarAffineTerm(1.0, x)], 1.0);
    +
    +julia> MOI.get(model, MOI.ConstraintFunction(), c) ≈ new_f
    +true

    ScalarConstantChange can also be used to modify the objective function by passing an instance of ObjectiveFunction:

    julia> MOI.set(
    +           model,
    +           MOI.ObjectiveFunction{MOI.ScalarAffineFunction{Float64}}(),
    +           new_f,
    +       );
    +
    +julia> MOI.modify(
    +           model,
    +           MOI.ObjectiveFunction{MOI.ScalarAffineFunction{Float64}}(),
    +           MOI.ScalarConstantChange(-1.0)
    +       );
    +
    +julia> MOI.get(
    +           model,
    +           MOI.ObjectiveFunction{MOI.ScalarAffineFunction{Float64}}(),
    +       ) ≈ MOI.ScalarAffineFunction([MOI.ScalarAffineTerm(1.0, x)], -1.0)
    +true

    Modify constant terms in a vector function

    Use modify and VectorConstantChange to modify the constant vector in a VectorAffineFunction or VectorQuadraticFunction.

    julia> c = MOI.add_constraint(
    +           model,
    +           MOI.VectorAffineFunction([
    +                   MOI.VectorAffineTerm(1, MOI.ScalarAffineTerm(1.0, x)),
    +                   MOI.VectorAffineTerm(2, MOI.ScalarAffineTerm(2.0, x)),
    +               ],
    +               [0.0, 0.0],
    +           ),
    +           MOI.Nonnegatives(2),
    +       )
    +MathOptInterface.ConstraintIndex{MathOptInterface.VectorAffineFunction{Float64}, MathOptInterface.Nonnegatives}(1)
    +
    +julia> MOI.modify(model, c, MOI.VectorConstantChange([3.0, 4.0]));
    +
    +julia> new_f = MOI.VectorAffineFunction(
    +           [
    +        MOI.VectorAffineTerm(1, MOI.ScalarAffineTerm(1.0, x)),
    +        MOI.VectorAffineTerm(2, MOI.ScalarAffineTerm(2.0, x)),
    +           ],
    +           [3.0, 4.0],
    +       );
    +
    +julia> MOI.get(model, MOI.ConstraintFunction(), c) ≈ new_f
    +true

    Modify affine coefficients in a scalar function

    Use modify and ScalarCoefficientChange to modify the affine coefficient of a ScalarAffineFunction or ScalarQuadraticFunction.

    julia> c = MOI.add_constraint(
    +           model,
    +           MOI.ScalarAffineFunction([MOI.ScalarAffineTerm(1.0, x)], 0.0),
    +           MOI.EqualTo(1.0),
    +       )
    +MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.EqualTo{Float64}}(1)
    +
    +julia> MOI.modify(model, c, MOI.ScalarCoefficientChange(x, 2.0));
    +
    +julia> new_f = MOI.ScalarAffineFunction([MOI.ScalarAffineTerm(2.0, x)], 0.0);
    +
    +julia> MOI.get(model, MOI.ConstraintFunction(), c) ≈ new_f
    +true

    ScalarCoefficientChange can also be used to modify the objective function by passing an instance of ObjectiveFunction.

    Modify affine coefficients in a vector function

    Use modify and MultirowChange to modify a vector of affine coefficients in a VectorAffineFunction or a VectorQuadraticFunction.

    julia> c = MOI.add_constraint(
    +           model,
    +           MOI.VectorAffineFunction([
    +                   MOI.VectorAffineTerm(1, MOI.ScalarAffineTerm(1.0, x)),
    +                   MOI.VectorAffineTerm(2, MOI.ScalarAffineTerm(2.0, x)),
    +               ],
    +               [0.0, 0.0],
    +           ),
    +           MOI.Nonnegatives(2),
    +       )
    +MathOptInterface.ConstraintIndex{MathOptInterface.VectorAffineFunction{Float64}, MathOptInterface.Nonnegatives}(1)
    +
    +julia> MOI.modify(model, c, MOI.MultirowChange(x, [(1, 3.0), (2, 4.0)]));
    +
    +julia> new_f = MOI.VectorAffineFunction(
    +           [
    +        MOI.VectorAffineTerm(1, MOI.ScalarAffineTerm(3.0, x)),
    +        MOI.VectorAffineTerm(2, MOI.ScalarAffineTerm(4.0, x)),
    +           ],
    +           [0.0, 0.0],
    +       );
    +
    +julia> MOI.get(model, MOI.ConstraintFunction(), c) ≈ new_f
    +true
    diff --git a/previews/PR3545/moi/manual/solutions/index.html b/previews/PR3545/moi/manual/solutions/index.html new file mode 100644 index 00000000000..586166f66b7 --- /dev/null +++ b/previews/PR3545/moi/manual/solutions/index.html @@ -0,0 +1,39 @@ + +Solutions · JuMP

    Solutions

    Solving and retrieving the results

    Once an optimizer is loaded with the objective function and all of the constraints, we can ask the solver to solve the model by calling optimize!.

    MOI.optimize!(optimizer)

    Why did the solver stop?

    The optimization procedure may stop for a number of reasons. The TerminationStatus attribute of the optimizer returns a TerminationStatusCode object which explains why the solver stopped.

    The termination statuses distinguish between proofs of optimality, infeasibility, local convergence, limits, and termination because of something unexpected like invalid problem data or failure to converge.

    A typical usage of the TerminationStatus attribute is as follows:

    status = MOI.get(optimizer, TerminationStatus())
    +if status == MOI.OPTIMAL
    +    # Ok, we solved the problem!
    +else
    +    # Handle other cases.
    +end

    After checking the TerminationStatus, check ResultCount. This attribute returns the number of results that the solver has available to return. A result is defined as a primal-dual pair, but either the primal or the dual may be missing from the result. While the OPTIMAL termination status normally implies that at least one result is available, other statuses do not. For example, in the case of infeasibility, a solver may return no result or a proof of infeasibility. The ResultCount attribute distinguishes between these two cases.

    Primal solutions

    Use the PrimalStatus optimizer attribute to return a ResultStatusCode describing the status of the primal solution.

    Common returns are described below in the Common status situations section.

    Query the primal solution using the VariablePrimal and ConstraintPrimal attributes.

    Query the objective function value using the ObjectiveValue attribute.

    Dual solutions

    Warning

    See Duality for a discussion of the MOI conventions for primal-dual pairs and certificates.

    Use the DualStatus optimizer attribute to return a ResultStatusCode describing the status of the dual solution.

    Query the dual solution using the ConstraintDual attribute.

    Query the dual objective function value using the DualObjectiveValue attribute.

    Common status situations

    The sections below describe how to interpret typical or interesting status cases for three common classes of solvers. The example cases are illustrative, not comprehensive. Solver wrappers may provide additional information on how the solver's statuses map to MOI statuses.

    Info

    * in the tables indicate that multiple different values are possible.

    Primal-dual convex solver

    Linear programming and conic optimization solvers fall into this category.

    What happened?TerminationStatusResultCountPrimalStatusDualStatus
    Proved optimalityOPTIMAL1FEASIBLE_POINTFEASIBLE_POINT
    Proved infeasibleINFEASIBLE1NO_SOLUTIONINFEASIBILITY_CERTIFICATE
    Optimal within relaxed tolerancesALMOST_OPTIMAL1FEASIBLE_POINTFEASIBLE_POINT
    Optimal within relaxed tolerancesALMOST_OPTIMAL1ALMOST_FEASIBLE_POINTALMOST_FEASIBLE_POINT
    Detected an unbounded ray of the primalDUAL_INFEASIBLE1INFEASIBILITY_CERTIFICATENO_SOLUTION
    StallSLOW_PROGRESS1**

    Global branch-and-bound solvers

    Mixed-integer programming solvers fall into this category.

    What happened?TerminationStatusResultCountPrimalStatusDualStatus
    Proved optimalityOPTIMAL1FEASIBLE_POINTNO_SOLUTION
    Presolve detected infeasibility or unboundednessINFEASIBLE_OR_UNBOUNDED0NO_SOLUTIONNO_SOLUTION
    Proved infeasibilityINFEASIBLE0NO_SOLUTIONNO_SOLUTION
    Timed out (no solution)TIME_LIMIT0NO_SOLUTIONNO_SOLUTION
    Timed out (with a solution)TIME_LIMIT1FEASIBLE_POINTNO_SOLUTION
    CPXMIP_OPTIMAL_INFEASALMOST_OPTIMAL1INFEASIBLE_POINTNO_SOLUTION
    Info

    CPXMIP_OPTIMAL_INFEAS is a CPLEX status that indicates that a preprocessed problem was solved to optimality, but the solver was unable to recover a feasible solution to the original problem. Handling this status was one of the motivating drivers behind the design of MOI.

    Local search solvers

    Nonlinear programming solvers fall into this category. It also includes non-global tree search solvers like Juniper.

    What happened?TerminationStatusResultCountPrimalStatusDualStatus
    Converged to a stationary pointLOCALLY_SOLVED1FEASIBLE_POINTFEASIBLE_POINT
    Completed a non-global tree search (with a solution)LOCALLY_SOLVED1FEASIBLE_POINTFEASIBLE_POINT
    Converged to an infeasible pointLOCALLY_INFEASIBLE1INFEASIBLE_POINT*
    Completed a non-global tree search (no solution found)LOCALLY_INFEASIBLE0NO_SOLUTIONNO_SOLUTION
    Iteration limitITERATION_LIMIT1**
    Diverging iteratesNORM_LIMIT or OBJECTIVE_LIMIT1**

    Querying solution attributes

    Some solvers will not implement every solution attribute. Therefore, a call like MOI.get(model, MOI.SolveTimeSec()) may throw an UnsupportedAttribute error.

    If you need to write code that is agnostic to the solver (for example, you are writing a library that an end-user passes their choice of solver to), you can work-around this problem using a try-catch:

    function get_solve_time(model)
    +    try
    +        return MOI.get(model, MOI.SolveTimeSec())
    +    catch err
    +        if err isa MOI.UnsupportedAttribute
    +            return NaN  # Solver doesn't support. Return a placeholder value.
    +        end
    +        rethrow(err)  # Something else went wrong. Rethrow the error
    +    end
    +end

    If, after careful profiling, you find that the try-catch is taking a significant portion of your runtime, you can improve performance by caching the result of the try-catch:

    mutable struct CachedSolveTime{M}
    +    model::M
    +    supports_solve_time::Bool
    +    CachedSolveTime(model::M) where {M} = new(model, true)
    +end
    +
    +function get_solve_time(model::CachedSolveTime)
    +    if !model.supports_solve_time
    +        return NaN
    +    end
    +    try
    +        return MOI.get(model, MOI.SolveTimeSec())
    +    catch err
    +        if err isa MOI.UnsupportedAttribute
    +            model.supports_solve_time = false
    +            return NaN
    +        end
    +        rethrow(err)  # Something else went wrong. Rethrow the error
    +    end
    +end
    diff --git a/previews/PR3545/moi/manual/standard_form/index.html b/previews/PR3545/moi/manual/standard_form/index.html new file mode 100644 index 00000000000..7ce18098f7c --- /dev/null +++ b/previews/PR3545/moi/manual/standard_form/index.html @@ -0,0 +1,10 @@ + +Standard form problem · JuMP

    Standard form problem

    MathOptInterface represents optimization problems in the standard form:

    \[\begin{align} + & \min_{x \in \mathbb{R}^n} & f_0(x) + \\ + & \;\;\text{s.t.} & f_i(x) & \in \mathcal{S}_i & i = 1 \ldots m +\end{align}\]

    where:

    • the functions $f_0, f_1, \ldots, f_m$ are specified by AbstractFunction objects
    • the sets $\mathcal{S}_1, \ldots, \mathcal{S}_m$ are specified by AbstractSet objects
    Tip

    For more information on this standard form, read our paper.

    MOI defines some commonly used functions and sets, but the interface is extensible to other sets recognized by the solver.

    Functions

    The function types implemented in MathOptInterface.jl are:

    FunctionDescription
    VariableIndex$x_j$, the projection onto a single coordinate defined by a variable index $j$.
    VectorOfVariablesThe projection onto multiple coordinates (that is, extracting a sub-vector).
    ScalarAffineFunction$a^T x + b$, where $a$ is a vector and $b$ scalar.
    ScalarNonlinearFunction$f(x)$, where $f$ is a nonlinear function.
    VectorAffineFunction$A x + b$, where $A$ is a matrix and $b$ is a vector.
    ScalarQuadraticFunction$\frac{1}{2} x^T Q x + a^T x + b$, where $Q$ is a symmetric matrix, $a$ is a vector, and $b$ is a constant.
    VectorQuadraticFunctionA vector of scalar-valued quadratic functions.
    VectorNonlinearFunction$f(x)$, where $f$ is a vector-valued nonlinear function.

    Extensions for nonlinear programming are present but not yet well documented.

    One-dimensional sets

    The one-dimensional set types implemented in MathOptInterface.jl are:

    SetDescription
    LessThan(u)$(-\infty, u]$
    GreaterThan(l)$[l, \infty)$
    EqualTo(v)$\{v\}$
    Interval(l, u)$[l, u]$
    Integer()$\mathbb{Z}$
    ZeroOne()$\{ 0, 1 \}$
    Semicontinuous(l, u)$\{ 0\} \cup [l, u]$
    Semiinteger(l, u)$\{ 0\} \cup \{l,l+1,\ldots,u-1,u\}$

    Vector cones

    The vector-valued set types implemented in MathOptInterface.jl are:

    SetDescription
    Reals(d)$\mathbb{R}^{d}$
    Zeros(d)$0^{d}$
    Nonnegatives(d)$\{ x \in \mathbb{R}^{d} : x \ge 0 \}$
    Nonpositives(d)$\{ x \in \mathbb{R}^{d} : x \le 0 \}$
    SecondOrderCone(d)$\{ (t,x) \in \mathbb{R}^{d} : t \ge \lVert x \rVert_2 \}$
    RotatedSecondOrderCone(d)$\{ (t,u,x) \in \mathbb{R}^{d} : 2tu \ge \lVert x \rVert_2^2, t \ge 0,u \ge 0 \}$
    ExponentialCone()$\{ (x,y,z) \in \mathbb{R}^3 : y \exp (x/y) \le z, y > 0 \}$
    DualExponentialCone()$\{ (u,v,w) \in \mathbb{R}^3 : -u \exp (v/u) \le \exp(1) w, u < 0 \}$
    GeometricMeanCone(d)$\{ (t,x) \in \mathbb{R}^{1+n} : x \ge 0, t \le \sqrt[n]{x_1 x_2 \cdots x_n} \}$ where $n$ is $d - 1$
    PowerCone(α)$\{ (x,y,z) \in \mathbb{R}^3 : x^{\alpha} y^{1-\alpha} \ge |z|, x \ge 0,y \ge 0 \}$
    DualPowerCone(α)$\{ (u,v,w) \in \mathbb{R}^3 : \left(\frac{u}{\alpha}\right(^{\alpha}\left(\frac{v}{1-\alpha}\right)^{1-\alpha} \ge |w|, u,v \ge 0 \}$
    NormOneCone(d)$\{ (t,x) \in \mathbb{R}^{d} : t \ge \sum_i \lvert x_i \rvert \}$
    NormInfinityCone(d)$\{ (t,x) \in \mathbb{R}^{d} : t \ge \max_i \lvert x_i \rvert \}$
    RelativeEntropyCone(d)$\{ (u, v, w) \in \mathbb{R}^{d} : u \ge \sum_i w_i \log (\frac{w_i}{v_i}), v_i \ge 0, w_i \ge 0 \}$
    HyperRectangle(l, u)$\{x \in \bar{\mathbb{R}}^d: x_i \in [l_i, u_i] \forall i=1,\ldots,d\}$
    NormCone(p, d)``{ (t,x) \in \mathbb{R}^{d} : t \ge \left(\sum\limits_i

    Matrix cones

    The matrix-valued set types implemented in MathOptInterface.jl are:

    SetDescription
    RootDetConeTriangle(d)$\{ (t,X) \in \mathbb{R}^{1+d(1+d)/2} : t \le \det(X)^{1/d}, X \mbox{ is the upper triangle of a PSD matrix} \}$
    RootDetConeSquare(d)$\{ (t,X) \in \mathbb{R}^{1+d^2} : t \le \det(X)^{1/d}, X \mbox{ is a PSD matrix} \}$
    PositiveSemidefiniteConeTriangle(d)$\{ X \in \mathbb{R}^{d(d+1)/2} : X \mbox{ is the upper triangle of a PSD matrix} \}$
    PositiveSemidefiniteConeSquare(d)$\{ X \in \mathbb{R}^{d^2} : X \mbox{ is a PSD matrix} \}$
    LogDetConeTriangle(d)$\{ (t,u,X) \in \mathbb{R}^{2+d(1+d)/2} : t \le u\log(\det(X/u)), X \mbox{ is the upper triangle of a PSD matrix}, u > 0 \}$
    LogDetConeSquare(d)$\{ (t,u,X) \in \mathbb{R}^{2+d^2} : t \le u \log(\det(X/u)), X \mbox{ is a PSD matrix}, u > 0 \}$
    NormSpectralCone(r, c)$\{ (t, X) \in \mathbb{R}^{1 + r \times c} : t \ge \sigma_1(X), X \mbox{ is a } r\times c\mbox{ matrix} \}$
    NormNuclearCone(r, c)$\{ (t, X) \in \mathbb{R}^{1 + r \times c} : t \ge \sum_i \sigma_i(X), X \mbox{ is a } r\times c\mbox{ matrix} \}$
    HermitianPositiveSemidefiniteConeTriangle(d)The cone of Hermitian positive semidefinite matrices, with
    side_dimension rows and columns.
    Scaled(S)The set S scaled so that Utilities.set_dot corresponds to LinearAlgebra.dot

    Some of these cones can take two forms: XXXConeTriangle and XXXConeSquare.

    In XXXConeTriangle sets, the matrix is assumed to be symmetric, and the elements are provided by a vector, in which the entries of the upper-right triangular part of the matrix are given column by column (or equivalently, the entries of the lower-left triangular part are given row by row).

    In XXXConeSquare sets, the entries of the matrix are given column by column (or equivalently, row by row), and the matrix is constrained to be symmetric. As an example, given a 2-by-2 matrix of variables X and a one-dimensional variable t, we can specify a root-det constraint as [t, X11, X12, X22] ∈ RootDetConeTriangle or [t, X11, X12, X21, X22] ∈ RootDetConeSquare.

    We provide both forms to enable flexibility for solvers who may natively support one or the other. Transformations between XXXConeTriangle and XXXConeSquare are handled by bridges, which removes the chance of conversion mistakes by users or solver developers.

    Multi-dimensional sets with combinatorial structure

    Other sets are vector-valued, with a particular combinatorial structure. Read their docstrings for more information on how to interpret them.

    SetDescription
    SOS1A Special Ordered Set (SOS) of Type I
    SOS2A Special Ordered Set (SOS) of Type II
    IndicatorA set to specify an indicator constraint
    ComplementsA set to specify a mixed complementarity constraint
    AllDifferentThe all_different global constraint
    BinPackingThe bin_packing global constraint
    CircuitThe circuit global constraint
    CountAtLeastThe at_least global constraint
    CountBelongsThe nvalue global constraint
    CountDistinctThe distinct global constraint
    CountGreaterThanThe count_gt global constraint
    CumulativeThe cumulative global constraint
    PathThe path global constraint
    TableThe table global constraint
    diff --git a/previews/PR3545/moi/manual/variables/index.html b/previews/PR3545/moi/manual/variables/index.html new file mode 100644 index 00000000000..5666da41c18 --- /dev/null +++ b/previews/PR3545/moi/manual/variables/index.html @@ -0,0 +1,17 @@ + +Variables · JuMP

    Variables

    Add a variable

    Use add_variable to add a single variable.

    julia> x = MOI.add_variable(model)
    +MOI.VariableIndex(1)

    add_variable returns a VariableIndex type, which is used to refer to the added variable in other calls.

    Check if a VariableIndex is valid using is_valid.

    julia> MOI.is_valid(model, x)
    +true

    Use add_variables to add a number of variables.

    julia> y = MOI.add_variables(model, 2)
    +2-element Vector{MathOptInterface.VariableIndex}:
    + MOI.VariableIndex(2)
    + MOI.VariableIndex(3)
    Warning

    The integer does not necessarily correspond to the column inside an optimizer.

    Delete a variable

    Delete a variable using delete.

    julia> MOI.delete(model, x)
    +
    +julia> MOI.is_valid(model, x)
    +false
    Warning

    Not all ModelLike models support deleting variables. A DeleteNotAllowed error is thrown if this is not supported.

    Variable attributes

    The following attributes are available for variables:

    Get and set these attributes using get and set.

    julia> MOI.set(model, MOI.VariableName(), x, "var_x")
    +
    +julia> MOI.get(model, MOI.VariableName(), x)
    +"var_x"
    diff --git a/previews/PR3545/moi/reference/callbacks/index.html b/previews/PR3545/moi/reference/callbacks/index.html new file mode 100644 index 00000000000..eaa4c53cc90 --- /dev/null +++ b/previews/PR3545/moi/reference/callbacks/index.html @@ -0,0 +1,36 @@ + +Callbacks · JuMP

    Callbacks

    MathOptInterface.AbstractCallbackType
    abstract type AbstractCallback <: AbstractModelAttribute end

    Abstract type for a model attribute representing a callback function. The value set to subtypes of AbstractCallback is a function that may be called during optimize!. As optimize! is in progress, the result attributes (i.e, the attributes attr such that is_set_by_optimize(attr)) may not be accessible from the callback, hence trying to get result attributes might throw a OptimizeInProgress error.

    At most one callback of each type can be registered. If an optimizer already has a function for a callback type, and the user registers a new function, then the old one is replaced.

    The value of the attribute should be a function taking only one argument, commonly called callback_data, that can be used for instance in LazyConstraintCallback, HeuristicCallback and UserCutCallback.

    source
    MathOptInterface.submitFunction
    submit(
    +    optimizer::AbstractOptimizer,
    +    sub::AbstractSubmittable,
    +    values...,
    +)::Nothing

    Submit values to the submittable sub of the optimizer optimizer.

    An UnsupportedSubmittable error is thrown if model does not support the attribute attr (see supports) and a SubmitNotAllowed error is thrown if it supports the submittable sub but it cannot be submitted.

    source

    Attributes

    MathOptInterface.CallbackNodeStatusCodeType
    CallbackNodeStatusCode

    An Enum of possible return values from calling get with CallbackNodeStatus.

    Values

    Possible values are:

    source

    Lazy constraints

    MathOptInterface.LazyConstraintCallbackType
    LazyConstraintCallback() <: AbstractCallback

    The callback can be used to reduce the feasible set given the current primal solution by submitting a LazyConstraint. For instance, it may be called at an incumbent of a mixed-integer problem. Note that there is no guarantee that the callback is called at every feasible primal solution.

    The current primal solution is accessed through CallbackVariablePrimal. Trying to access other result attributes will throw OptimizeInProgress as discussed in AbstractCallback.

    Examples

    x = MOI.add_variables(optimizer, 8)
    +MOI.set(optimizer, MOI.LazyConstraintCallback(), callback_data -> begin
    +    sol = MOI.get(optimizer, MOI.CallbackVariablePrimal(callback_data), x)
    +    if # should add a lazy constraint
    +        func = # computes function
    +        set = # computes set
    +        MOI.submit(optimizer, MOI.LazyConstraint(callback_data), func, set)
    +    end
    +end)
    source
    MathOptInterface.LazyConstraintType
    LazyConstraint(callback_data)

    Lazy constraint func-in-set submitted as func, set. The optimal solution returned by VariablePrimal will satisfy all lazy constraints that have been submitted.

    This can be submitted only from the LazyConstraintCallback. The field callback_data is a solver-specific callback type that is passed as the argument to the feasible solution callback.

    Examples

    Suppose x and y are VariableIndexs of optimizer. To add a LazyConstraint for 2x + 3y <= 1, write

    func = 2.0x + 3.0y
    +set = MOI.LessThan(1.0)
    +MOI.submit(optimizer, MOI.LazyConstraint(callback_data), func, set)

    inside a LazyConstraintCallback of data callback_data.

    source

    User cuts

    MathOptInterface.UserCutCallbackType
    UserCutCallback() <: AbstractCallback

    The callback can be used to submit UserCut given the current primal solution. For instance, it may be called at fractional (i.e., non-integer) nodes in the branch and bound tree of a mixed-integer problem. Note that there is not guarantee that the callback is called everytime the solver has an infeasible solution.

    The infeasible solution is accessed through CallbackVariablePrimal. Trying to access other result attributes will throw OptimizeInProgress as discussed in AbstractCallback.

    Examples

    x = MOI.add_variables(optimizer, 8)
    +MOI.set(optimizer, MOI.UserCutCallback(), callback_data -> begin
    +    sol = MOI.get(optimizer, MOI.CallbackVariablePrimal(callback_data), x)
    +    if # can find a user cut
    +        func = # computes function
    +        set = # computes set
    +        MOI.submit(optimizer, MOI.UserCut(callback_data), func, set)
    +    end
    +end
    source
    MathOptInterface.UserCutType
    UserCut(callback_data)

    Constraint func-to-set suggested to help the solver detect the solution given by CallbackVariablePrimal as infeasible. The cut is submitted as func, set. Typically CallbackVariablePrimal will violate integrality constraints, and a cut would be of the form ScalarAffineFunction-in-LessThan or ScalarAffineFunction-in-GreaterThan. Note that, as opposed to LazyConstraint, the provided constraint cannot modify the feasible set, the constraint should be redundant, e.g., it may be a consequence of affine and integrality constraints.

    This can be submitted only from the UserCutCallback. The field callback_data is a solver-specific callback type that is passed as the argument to the infeasible solution callback.

    Note that the solver may silently ignore the provided constraint.

    source

    Heuristic solutions

    MathOptInterface.HeuristicCallbackType
    HeuristicCallback() <: AbstractCallback

    The callback can be used to submit HeuristicSolution given the current primal solution. For example, it may be called at fractional (i.e., non-integer) nodes in the branch and bound tree of a mixed-integer problem. Note that there is no guarantee that the callback is called every time the solver has an infeasible solution.

    The current primal solution is accessed through CallbackVariablePrimal. Trying to access other result attributes will throw OptimizeInProgress as discussed in AbstractCallback.

    Examples

    x = MOI.add_variables(optimizer, 8)
    +MOI.set(optimizer, MOI.HeuristicCallback(), callback_data -> begin
    +    sol = MOI.get(optimizer, MOI.CallbackVariablePrimal(callback_data), x)
    +    if # can find a heuristic solution
    +        values = # computes heuristic solution
    +        MOI.submit(optimizer, MOI.HeuristicSolution(callback_data), x,
    +                   values)
    +    end
    +end
    source
    MathOptInterface.HeuristicSolutionType
    HeuristicSolution(callback_data)

    Heuristically obtained feasible solution. The solution is submitted as variables, values where values[i] gives the value of variables[i], similarly to set. The submit call returns a HeuristicSolutionStatus indicating whether the provided solution was accepted or rejected.

    This can be submitted only from the HeuristicCallback. The field callback_data is a solver-specific callback type that is passed as the argument to the heuristic callback.

    Some solvers require a complete solution, others only partial solutions.

    source
    diff --git a/previews/PR3545/moi/reference/constraints/index.html b/previews/PR3545/moi/reference/constraints/index.html new file mode 100644 index 00000000000..e9ed346f28a --- /dev/null +++ b/previews/PR3545/moi/reference/constraints/index.html @@ -0,0 +1,16 @@ + +Constraints · JuMP

    Constraints

    Types

    MathOptInterface.ConstraintIndexType
    ConstraintIndex{F, S}

    A type-safe wrapper for Int64 for use in referencing F-in-S constraints in a model. The parameter F is the type of the function in the constraint, and the parameter S is the type of set in the constraint. To allow for deletion, indices need not be consecutive. Indices within a constraint type (i.e. F-in-S) must be unique, but non-unique indices across different constraint types are allowed. If F is VariableIndex then the index is equal to the index of the variable. That is for an index::ConstraintIndex{VariableIndex}, we always have

    index.value == MOI.get(model, MOI.ConstraintFunction(), index).value
    source

    Functions

    MathOptInterface.is_validMethod
    is_valid(model::ModelLike, index::Index)::Bool

    Return a Bool indicating whether this index refers to a valid object in the model model.

    source
    MathOptInterface.add_constraintFunction
    add_constraint(model::ModelLike, func::F, set::S)::ConstraintIndex{F,S} where {F,S}

    Add the constraint $f(x) \in \mathcal{S}$ where $f$ is defined by func, and $\mathcal{S}$ is defined by set.

    add_constraint(model::ModelLike, v::VariableIndex, set::S)::ConstraintIndex{VariableIndex,S} where {S}
    +add_constraint(model::ModelLike, vec::Vector{VariableIndex}, set::S)::ConstraintIndex{VectorOfVariables,S} where {S}

    Add the constraint $v \in \mathcal{S}$ where $v$ is the variable (or vector of variables) referenced by v and $\mathcal{S}$ is defined by set.

    source
    MathOptInterface.add_constraintsFunction
    add_constraints(model::ModelLike, funcs::Vector{F}, sets::Vector{S})::Vector{ConstraintIndex{F,S}} where {F,S}

    Add the set of constraints specified by each function-set pair in funcs and sets. F and S should be concrete types. This call is equivalent to add_constraint.(model, funcs, sets) but may be more efficient.

    source
    MathOptInterface.transformFunction

    Transform Constraint Set

    transform(model::ModelLike, c::ConstraintIndex{F,S1}, newset::S2)::ConstraintIndex{F,S2}

    Replace the set in constraint c with newset. The constraint index c will no longer be valid, and the function returns a new constraint index with the correct type.

    Solvers may only support a subset of constraint transforms that they perform efficiently (for example, changing from a LessThan to GreaterThan set). In addition, set modification (where S1 = S2) should be performed via the modify function.

    Typically, the user should delete the constraint and add a new one.

    Examples

    If c is a ConstraintIndex{ScalarAffineFunction{Float64},LessThan{Float64}},

    c2 = transform(model, c, GreaterThan(0.0))
    +transform(model, c, LessThan(0.0)) # errors
    source
    MathOptInterface.supports_constraintFunction
    supports_constraint(
    +    model::ModelLike,
    +    ::Type{F},
    +    ::Type{S},
    +)::Bool where {F<:AbstractFunction,S<:AbstractSet}

    Return a Bool indicating whether model supports F-in-S constraints, that is, copy_to(model, src) does not throw UnsupportedConstraint when src contains F-in-S constraints. If F-in-S constraints are only not supported in specific circumstances, e.g. F-in-S constraints cannot be combined with another type of constraint, it should still return true.

    source
    MOI.supports_constraint(
    +    BT::Type{<:AbstractBridge},
    +    F::Type{<:MOI.AbstractFunction},
    +    S::Type{<:MOI.AbstractSet},
    +)::Bool

    Return a Bool indicating whether the bridges of type BT support bridging F-in-S constraints.

    Implementation notes

    • This method depends only on the type of the inputs, not the runtime values.
    • There is a default fallback, so you need only implement this method for constraint types that the bridge implements.
    source

    Attributes

    MathOptInterface.ConstraintNameType
    ConstraintName()

    A constraint attribute for a string identifying the constraint.

    It is valid for constraints variables to have the same name; however, constraints with duplicate names cannot be looked up using get, regardless of whether they have the same F-in-S type.

    ConstraintName has a default value of "" if not set.

    Notes

    You should not implement ConstraintName for VariableIndex constraints.

    source
    MathOptInterface.ConstraintPrimalType
    ConstraintPrimal(result_index::Int = 1)

    A constraint attribute for the assignment to some constraint's primal value(s) in result result_index.

    If the constraint is f(x) in S, then in most cases the ConstraintPrimal is the value of f, evaluated at the correspondng VariablePrimal solution.

    However, some conic solvers reformulate b - Ax in S to s = b - Ax, s in S. These solvers may return the value of s for ConstraintPrimal, rather than b - Ax. (Although these are constrained by an equality constraint, due to numerical tolerances they may not be identical.)

    If the solver does not have a primal value for the constraint because the result_index is beyond the available solutions (whose number is indicated by the ResultCount attribute), getting this attribute must throw a ResultIndexBoundsError. Otherwise, if the result is unavailable for another reason (for instance, only a dual solution is available), the result is undefined. Users should first check PrimalStatus before accessing the ConstraintPrimal attribute.

    If result_index is omitted, it is 1 by default. See ResultCount for information on how the results are ordered.

    source
    MathOptInterface.ConstraintDualType
    ConstraintDual(result_index::Int = 1)

    A constraint attribute for the assignment to some constraint's dual value(s) in result result_index. If result_index is omitted, it is 1 by default.

    If the solver does not have a dual value for the variable because the result_index is beyond the available solutions (whose number is indicated by the ResultCount attribute), getting this attribute must throw a ResultIndexBoundsError. Otherwise, if the result is unavailable for another reason (for instance, only a primal solution is available), the result is undefined. Users should first check DualStatus before accessing the ConstraintDual attribute.

    See ResultCount for information on how the results are ordered.

    source
    MathOptInterface.ConstraintBasisStatusType
    ConstraintBasisStatus(result_index::Int = 1)

    A constraint attribute for the BasisStatusCode of some constraint in result result_index, with respect to an available optimal solution basis. If result_index is omitted, it is 1 by default.

    If the solver does not have a basis statue for the constraint because the result_index is beyond the available solutions (whose number is indicated by the ResultCount attribute), getting this attribute must throw a ResultIndexBoundsError. Otherwise, if the result is unavailable for another reason (for instance, only a dual solution is available), the result is undefined. Users should first check PrimalStatus before accessing the ConstraintBasisStatus attribute.

    See ResultCount for information on how the results are ordered.

    Notes

    For the basis status of a variable, query VariableBasisStatus.

    ConstraintBasisStatus does not apply to VariableIndex constraints. You can infer the basis status of a VariableIndex constraint by looking at the result of VariableBasisStatus.

    source
    MathOptInterface.ConstraintFunctionType
    ConstraintFunction()

    A constraint attribute for the AbstractFunction object used to define the constraint.

    It is guaranteed to be equivalent but not necessarily identical to the function provided by the user.

    source
    MathOptInterface.CanonicalConstraintFunctionType
    CanonicalConstraintFunction()

    A constraint attribute for a canonical representation of the AbstractFunction object used to define the constraint.

    Getting this attribute is guaranteed to return a function that is equivalent but not necessarily identical to the function provided by the user.

    By default, MOI.get(model, MOI.CanonicalConstraintFunction(), ci) fallbacks to MOI.Utilities.canonical(MOI.get(model, MOI.ConstraintFunction(), ci)). However, if model knows that the constraint function is canonical then it can implement a specialized method that directly return the function without calling Utilities.canonical. Therefore, the value returned cannot be assumed to be a copy of the function stored in model. Moreover, Utilities.Model checks with Utilities.is_canonical whether the function stored internally is already canonical and if it's the case, then it returns the function stored internally instead of a copy.

    source
    MathOptInterface.BasisStatusCodeType
    BasisStatusCode

    An Enum of possible values for the ConstraintBasisStatus and VariableBasisStatus attributes, explaining the status of a given element with respect to an optimal solution basis.

    Notes

    • NONBASIC_AT_LOWER and NONBASIC_AT_UPPER should be used only for

    constraints with the Interval set. In this case, they are necessary to distinguish which side of the constraint is active. One-sided constraints (e.g., LessThan and GreaterThan) should use NONBASIC instead of the NONBASIC_AT_* values. This restriction does not apply to VariableBasisStatus, which should return NONBASIC_AT_* regardless of whether the alternative bound exists.

    • In linear programs, SUPER_BASIC occurs when a variable with no bounds is not

    in the basis.

    Values

    Possible values are:

    source
    diff --git a/previews/PR3545/moi/reference/errors/index.html b/previews/PR3545/moi/reference/errors/index.html new file mode 100644 index 00000000000..0f761421d40 --- /dev/null +++ b/previews/PR3545/moi/reference/errors/index.html @@ -0,0 +1,52 @@ + +Errors · JuMP

    Errors

    When an MOI call fails on a model, precise errors should be thrown when possible instead of simply calling error with a message. The docstrings for the respective methods describe the errors that the implementation should throw in certain situations. This error-reporting system allows code to distinguish between internal errors (that should be shown to the user) and unsupported operations which may have automatic workarounds.

    When an invalid index is used in an MOI call, an InvalidIndex is thrown:

    When an invalid result index is used to retrieve an attribute, a ResultIndexBoundsError is thrown:

    MathOptInterface.ResultIndexBoundsErrorType
    struct ResultIndexBoundsError{AttrType} <: Exception
    +    attr::AttrType
    +    result_count::Int
    +end

    An error indicating that the requested attribute attr could not be retrieved, because the solver returned too few results compared to what was requested. For instance, the user tries to retrieve VariablePrimal(2) when only one solution is available, or when the model is infeasible and has no solution.

    See also: check_result_index_bounds.

    source

    As discussed in JuMP mapping, for scalar constraint with a nonzero function constant, a ScalarFunctionConstantNotZero exception may be thrown:

    Some VariableIndex constraints cannot be combined on the same variable:

    As discussed in AbstractCallback, trying to get attributes inside a callback may throw:

    MathOptInterface.OptimizeInProgressType
    struct OptimizeInProgress{AttrType<:AnyAttribute} <: Exception
    +    attr::AttrType
    +end

    Error thrown from optimizer when MOI.get(optimizer, attr) is called inside an AbstractCallback while it is only defined once optimize! has completed. This can only happen when is_set_by_optimize(attr) is true.

    source

    Trying to submit the wrong type of AbstractSubmittable inside an AbstractCallback (for example, a UserCut inside a LazyConstraintCallback) will throw:

    The rest of the errors defined in MOI fall in two categories represented by the following two abstract types:

    MathOptInterface.NotAllowedErrorType
    NotAllowedError <: Exception

    Abstract type for error thrown when an operation is supported but cannot be applied in the current state of the model.

    source

    The different UnsupportedError and NotAllowedError are the following errors:

    MathOptInterface.UnsupportedAttributeType
    struct UnsupportedAttribute{AttrType} <: UnsupportedError
    +    attr::AttrType
    +    message::String
    +end

    An error indicating that the attribute attr is not supported by the model, i.e. that supports returns false.

    source
    MathOptInterface.SetAttributeNotAllowedType
    struct SetAttributeNotAllowed{AttrType} <: NotAllowedError
    +    attr::AttrType
    +    message::String
    +end

    An error indicating that the attribute attr is supported (see supports) but cannot be set for some reason (see the error string).

    source
    MathOptInterface.AddVariableNotAllowedType
    struct AddVariableNotAllowed <: NotAllowedError
    +    message::String # Human-friendly explanation why the attribute cannot be set
    +end

    An error indicating that variables cannot be added to the model.

    source
    MathOptInterface.UnsupportedConstraintType
    struct UnsupportedConstraint{F<:AbstractFunction, S<:AbstractSet} <: UnsupportedError
    +    message::String # Human-friendly explanation why the attribute cannot be set
    +end

    An error indicating that constraints of type F-in-S are not supported by the model, i.e. that supports_constraint returns false.

    source
    MathOptInterface.AddConstraintNotAllowedType
    struct AddConstraintNotAllowed{F<:AbstractFunction, S<:AbstractSet} <: NotAllowedError
    +    message::String # Human-friendly explanation why the attribute cannot be set
    +end

    An error indicating that constraints of type F-in-S are supported (see supports_constraint) but cannot be added.

    source
    MathOptInterface.ModifyConstraintNotAllowedType
    struct ModifyConstraintNotAllowed{F<:AbstractFunction, S<:AbstractSet,
    +                                  C<:AbstractFunctionModification} <: NotAllowedError
    +    constraint_index::ConstraintIndex{F, S}
    +    change::C
    +    message::String
    +end

    An error indicating that the constraint modification change cannot be applied to the constraint of index ci.

    source
    MathOptInterface.ModifyObjectiveNotAllowedType
    struct ModifyObjectiveNotAllowed{C<:AbstractFunctionModification} <: NotAllowedError
    +    change::C
    +    message::String
    +end

    An error indicating that the objective modification change cannot be applied to the objective.

    source
    MathOptInterface.DeleteNotAllowedType
    struct DeleteNotAllowed{IndexType <: Index} <: NotAllowedError
    +    index::IndexType
    +    message::String
    +end

    An error indicating that the index index cannot be deleted.

    source
    MathOptInterface.UnsupportedSubmittableType
    struct UnsupportedSubmittable{SubmitType} <: UnsupportedError
    +    sub::SubmitType
    +    message::String
    +end

    An error indicating that the submittable sub is not supported by the model, i.e. that supports returns false.

    source
    MathOptInterface.SubmitNotAllowedType
    struct SubmitNotAllowed{SubmitTyp<:AbstractSubmittable} <: NotAllowedError
    +    sub::SubmitType
    +    message::String
    +end

    An error indicating that the submittable sub is supported (see supports) but cannot be added for some reason (see the error string).

    source
    MathOptInterface.UnsupportedNonlinearOperatorType
    UnsupportedNonlinearOperator(head::Symbol[, message::String]) <: UnsupportedError

    An error thrown by optimizers if they do not support the operator head in a ScalarNonlinearFunction.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> throw(MOI.UnsupportedNonlinearOperator(:black_box))
    +ERROR: MathOptInterface.UnsupportedNonlinearOperator: The nonlinear operator `:black_box` is not supported by the model.
    +Stacktrace:
    +[...]
    source

    Note that setting the ConstraintFunction of a VariableIndex constraint is not allowed:

    diff --git a/previews/PR3545/moi/reference/models/index.html b/previews/PR3545/moi/reference/models/index.html new file mode 100644 index 00000000000..a646ddd65da --- /dev/null +++ b/previews/PR3545/moi/reference/models/index.html @@ -0,0 +1,136 @@ + +Models · JuMP

    Models

    Attribute interface

    MathOptInterface.is_set_by_optimizeFunction
    is_set_by_optimize(::AnyAttribute)

    Return a Bool indicating whether the value of the attribute is modified during an optimize! call, that is, the attribute is used to query the result of the optimization.

    Important note when defining new attributes

    This function returns false by default so it should be implemented for attributes that are modified by optimize!.

    source
    MathOptInterface.is_copyableFunction
    is_copyable(::AnyAttribute)

    Return a Bool indicating whether the value of the attribute may be copied during copy_to using set.

    Important note when defining new attributes

    By default is_copyable(attr) returns !is_set_by_optimize(attr). A specific method should be defined for attributes which are copied indirectly during copy_to. For instance, both is_copyable and is_set_by_optimize return false for the following attributes:

    source
    MathOptInterface.getFunction
    get(optimizer::AbstractOptimizer, attr::AbstractOptimizerAttribute)

    Return an attribute attr of the optimizer optimizer.

    get(model::ModelLike, attr::AbstractModelAttribute)

    Return an attribute attr of the model model.

    get(model::ModelLike, attr::AbstractVariableAttribute, v::VariableIndex)

    If the attribute attr is set for the variable v in the model model, return its value, return nothing otherwise. If the attribute attr is not supported by model then an error should be thrown instead of returning nothing.

    get(model::ModelLike, attr::AbstractVariableAttribute, v::Vector{VariableIndex})

    Return a vector of attributes corresponding to each variable in the collection v in the model model.

    get(model::ModelLike, attr::AbstractConstraintAttribute, c::ConstraintIndex)

    If the attribute attr is set for the constraint c in the model model, return its value, return nothing otherwise. If the attribute attr is not supported by model then an error should be thrown instead of returning nothing.

    get(
    +    model::ModelLike,
    +    attr::AbstractConstraintAttribute,
    +    c::Vector{ConstraintIndex{F,S}},
    +) where {F,S}

    Return a vector of attributes corresponding to each constraint in the collection c in the model model.

    get(model::ModelLike, ::Type{VariableIndex}, name::String)

    If a variable with name name exists in the model model, return the corresponding index, otherwise return nothing. Errors if two variables have the same name.

    get(
    +    model::ModelLike,
    +    ::Type{ConstraintIndex{F,S}},
    +    name::String,
    +) where {F,S}

    If an F-in-S constraint with name name exists in the model model, return the corresponding index, otherwise return nothing. Errors if two constraints have the same name.

    get(model::ModelLike, ::Type{ConstraintIndex}, name::String)

    If any constraint with name name exists in the model model, return the corresponding index, otherwise return nothing. This version is available for convenience but may incur a performance penalty because it is not type stable. Errors if two constraints have the same name.

    source
    get(model::GenericModel, attr::MathOptInterface.AbstractOptimizerAttribute)

    Return the value of the attribute attr from the model's MOI backend.

    source
    get(model::GenericModel, attr::MathOptInterface.AbstractModelAttribute)

    Return the value of the attribute attr from the model's MOI backend.

    source
    MOI.get(b::AbstractBridge, ::MOI.NumberOfVariables)::Int64

    Return the number of variables created by the bridge b in the model.

    See also MOI.NumberOfConstraints.

    Implementation notes

    • There is a default fallback, so you need only implement this if the bridge adds new variables.
    source
    MOI.get(b::AbstractBridge, ::MOI.ListOfVariableIndices)

    Return the list of variables created by the bridge b.

    See also MOI.ListOfVariableIndices.

    Implementation notes

    • There is a default fallback, so you need only implement this if the bridge adds new variables.
    source
    MOI.get(b::AbstractBridge, ::MOI.NumberOfConstraints{F,S})::Int64 where {F,S}

    Return the number of constraints of the type F-in-S created by the bridge b.

    See also MOI.NumberOfConstraints.

    Implementation notes

    • There is a default fallback, so you need only implement this for the constraint types returned by added_constraint_types.
    source
    MOI.get(b::AbstractBridge, ::MOI.ListOfConstraintIndices{F,S}) where {F,S}

    Return a Vector{ConstraintIndex{F,S}} with indices of all constraints of type F-in-S created by the bride b.

    See also MOI.ListOfConstraintIndices.

    Implementation notes

    • There is a default fallback, so you need only implement this for the constraint types returned by added_constraint_types.
    source
    function MOI.get(
    +    model::MOI.ModelLike,
    +    attr::MOI.AbstractConstraintAttribute,
    +    bridge::AbstractBridge,
    +)

    Return the value of the attribute attr of the model model for the constraint bridged by bridge.

    source
    MathOptInterface.get!Function
    get!(output, model::ModelLike, args...)

    An in-place version of get.

    The signature matches that of get except that the the result is placed in the vector output.

    source
    MathOptInterface.setFunction
    set(optimizer::AbstractOptimizer, attr::AbstractOptimizerAttribute, value)

    Assign value to the attribute attr of the optimizer optimizer.

    set(model::ModelLike, attr::AbstractModelAttribute, value)

    Assign value to the attribute attr of the model model.

    set(model::ModelLike, attr::AbstractVariableAttribute, v::VariableIndex, value)

    Assign value to the attribute attr of variable v in model model.

    set(
    +    model::ModelLike,
    +    attr::AbstractVariableAttribute,
    +    v::Vector{VariableIndex},
    +    vector_of_values,
    +)

    Assign a value respectively to the attribute attr of each variable in the collection v in model model.

    set(
    +    model::ModelLike,
    +    attr::AbstractConstraintAttribute,
    +    c::ConstraintIndex,
    +    value,
    +)

    Assign a value to the attribute attr of constraint c in model model.

    set(
    +    model::ModelLike,
    +    attr::AbstractConstraintAttribute,
    +    c::Vector{ConstraintIndex{F,S}},
    +    vector_of_values,
    +) where {F,S}

    Assign a value respectively to the attribute attr of each constraint in the collection c in model model.

    An UnsupportedAttribute error is thrown if model does not support the attribute attr (see supports) and a SetAttributeNotAllowed error is thrown if it supports the attribute attr but it cannot be set.

    set(
    +    model::ModelLike,
    +    ::ConstraintSet,
    +    c::ConstraintIndex{F,S},
    +    set::S,
    +) where {F,S}

    Change the set of constraint c to the new set set which should be of the same type as the original set.

    set(
    +    model::ModelLike,
    +    ::ConstraintFunction,
    +    c::ConstraintIndex{F,S},
    +    func::F,
    +) where {F,S}

    Replace the function in constraint c with func. F must match the original function type used to define the constraint.

    Note

    Setting the constraint function is not allowed if F is VariableIndex; a SettingVariableIndexNotAllowed error is thrown instead. This is because, it would require changing the index c since the index of VariableIndex constraints must be the same as the index of the variable.

    source
    function MOI.set(
    +    model::MOI.ModelLike,
    +    attr::MOI.AbstractConstraintAttribute,
    +    bridge::AbstractBridge,
    +    value,
    +)

    Set the value of the attribute attr of the model model for the constraint bridged by bridge.

    source
    MathOptInterface.supportsFunction
    supports(model::ModelLike, sub::AbstractSubmittable)::Bool

    Return a Bool indicating whether model supports the submittable sub.

    supports(model::ModelLike, attr::AbstractOptimizerAttribute)::Bool

    Return a Bool indicating whether model supports the optimizer attribute attr. That is, it returns false if copy_to(model, src) shows a warning in case attr is in the ListOfOptimizerAttributesSet of src; see copy_to for more details on how unsupported optimizer attributes are handled in copy.

    supports(model::ModelLike, attr::AbstractModelAttribute)::Bool

    Return a Bool indicating whether model supports the model attribute attr. That is, it returns false if copy_to(model, src) cannot be performed in case attr is in the ListOfModelAttributesSet of src.

    supports(
    +    model::ModelLike,
    +    attr::AbstractVariableAttribute,
    +    ::Type{VariableIndex},
    +)::Bool

    Return a Bool indicating whether model supports the variable attribute attr. That is, it returns false if copy_to(model, src) cannot be performed in case attr is in the ListOfVariableAttributesSet of src.

    supports(
    +    model::ModelLike,
    +    attr::AbstractConstraintAttribute,
    +    ::Type{ConstraintIndex{F,S}},
    +)::Bool where {F,S}

    Return a Bool indicating whether model supports the constraint attribute attr applied to an F-in-S constraint. That is, it returns false if copy_to(model, src) cannot be performed in case attr is in the ListOfConstraintAttributesSet of src.

    For all five methods, if the attribute is only not supported in specific circumstances, it should still return true.

    Note that supports is only defined for attributes for which is_copyable returns true as other attributes do not appear in the list of attributes set obtained by ListOf...AttributesSet.

    source
    MOI.supports(
    +    model::MOI.ModelLike,
    +    attr::MOI.AbstractConstraintAttribute,
    +    BT::Type{<:AbstractBridge},
    +)

    Return a Bool indicating whether BT supports setting attr to model.

    source
    MathOptInterface.attribute_value_typeFunction
    attribute_value_type(attr::AnyAttribute)

    Given an attribute attr, return the type of value expected by get, or returned by set.

    Notes

    • Only implement this if it make sense to do so. If un-implemented, the default is Any.
    source

    Model interface

    MathOptInterface.is_emptyFunction
    is_empty(model::ModelLike)

    Returns false if the model has any model attribute set or has any variables or constraints.

    Note that an empty model can have optimizer attributes set.

    source
    MathOptInterface.empty!Function
    empty!(model::ModelLike)

    Empty the model, that is, remove all variables, constraints and model attributes but not optimizer attributes.

    source
    MathOptInterface.write_to_fileFunction
    write_to_file(model::ModelLike, filename::String)

    Write the current model to the file at filename.

    Supported file types depend on the model type.

    source
    MathOptInterface.read_from_fileFunction
    read_from_file(model::ModelLike, filename::String)

    Read the file filename into the model model. If model is non-empty, this may throw an error.

    Supported file types depend on the model type.

    Note

    Once the contents of the file are loaded into the model, users can query the variables via get(model, ListOfVariableIndices()). However, some filetypes, such as LP files, do not maintain an explicit ordering of the variables. Therefore, the returned list may be in an arbitrary order.

    To avoid depending on the order of the indices, look up each variable index by name using get(model, VariableIndex, "name").

    source
    MathOptInterface.copy_toFunction
    copy_to(dest::ModelLike, src::ModelLike)::IndexMap

    Copy the model from src into dest.

    The target dest is emptied, and all previous indices to variables and constraints in dest are invalidated.

    Returns an IndexMap object that translates variable and constraint indices from the src model to the corresponding indices in the dest model.

    Notes

    AbstractOptimizerAttributes are not copied to the dest model.

    IndexMap

    Implementations of copy_to must return an IndexMap. For technical reasons, this type is defined in the Utilities submodule as MOI.Utilities.IndexMap. However, since it is an integral part of the MOI API, we provide MOI.IndexMap as an alias.

    Example

    # Given empty `ModelLike` objects `src` and `dest`.
    +
    +x = add_variable(src)
    +
    +is_valid(src, x)   # true
    +is_valid(dest, x)  # false (`dest` has no variables)
    +
    +index_map = copy_to(dest, src)
    +is_valid(dest, x) # false (unless index_map[x] == x)
    +is_valid(dest, index_map[x]) # true
    source
    MathOptInterface.IndexMapType
    IndexMap()

    The dictionary-like object returned by copy_to.

    IndexMap

    Implementations of copy_to must return an IndexMap. For technical reasons, the IndexMap type is defined in the Utilities submodule as MOI.Utilities.IndexMap. However, since it is an integral part of the MOI API, we provide this MOI.IndexMap as an alias.

    source

    Model attributes

    MathOptInterface.NameType
    Name()

    A model attribute for the string identifying the model. It has a default value of "" if not set`.

    source
    MathOptInterface.ObjectiveFunctionType
    ObjectiveFunction{F<:AbstractScalarFunction}()

    A model attribute for the objective function which has a type F<:AbstractScalarFunction.

    F should be guaranteed to be equivalent but not necessarily identical to the function type provided by the user.

    Throws an InexactError if the objective function cannot be converted to F, e.g., the objective function is quadratic and F is ScalarAffineFunction{Float64} or it has non-integer coefficient and F is ScalarAffineFunction{Int}.

    source
    MathOptInterface.ObjectiveFunctionTypeType
    ObjectiveFunctionType()

    A model attribute for the type F of the objective function set using the ObjectiveFunction{F} attribute.

    Examples

    In the following code, attr should be equal to MOI.VariableIndex:

    x = MOI.add_variable(model)
    +MOI.set(model, MOI.ObjectiveFunction{MOI.VariableIndex}(), x)
    +attr = MOI.get(model, MOI.ObjectiveFunctionType())
    source
    MathOptInterface.ObjectiveSenseType
    ObjectiveSense()

    A model attribute for the objective sense of the objective function, which must be an OptimizationSense: MIN_SENSE, MAX_SENSE, or FEASIBILITY_SENSE. The default is FEASIBILITY_SENSE.

    Interaction with ObjectiveFunction

    Setting the sense to FEASIBILITY_SENSE unsets the ObjectiveFunction attribute. That is, if you first set ObjectiveFunction and then set ObjectiveSense to be FEASIBILITY_SENSE, no objective function will be passed to the solver.

    In addition, some reformulations of ObjectiveFunction via bridges rely on the value of ObjectiveSense. Therefore, you should set ObjectiveSense before setting ObjectiveFunction.

    source
    MathOptInterface.ListOfModelAttributesSetType
    ListOfModelAttributesSet()

    A model attribute for the Vector{AbstractModelAttribute} of all model attributes attr such that:

    1. is_copyable(attr) returns true, and
    2. the attribute was set to the model
    source
    MathOptInterface.ListOfVariableAttributesSetType
    ListOfVariableAttributesSet()

    A model attribute for the Vector{AbstractVariableAttribute} of all variable attributes attr such that 1) is_copyable(attr) returns true and 2) the attribute was set to variables.

    source
    MathOptInterface.UserDefinedFunctionType
    UserDefinedFunction(name::Symbol, arity::Int) <: AbstractModelAttribute

    Set this attribute to register a user-defined function by the name of name with arity arguments.

    Once registered, name will appear in ListOfSupportedNonlinearOperators.

    You cannot register multiple UserDefinedFunctions with the same name but different arity.

    Value type

    The value to be set is a tuple containing one, two, or three functions to evaluate the function, the first-order derivative, and the second-order derivative respectively. Both derivatives are optional, but if you pass the second-order derivative you must also pass the first-order derivative.

    For univariate functions with arity == 1, the functions in the tuple must have the form:

    • f(x::T)::T: returns the value of the function at x
    • ∇f(x::T)::T: returns the first-order derivative of f with respect to x
    • ∇²f(x::T)::T: returns the second-order derivative of f with respect to x.

    For multivariate functions with arity > 1, the functions in the tuple must have the form:

    • f(x::T...)::T: returns the value of the function at x
    • ∇f(g::AbstractVector{T}, x::T...)::Nothing: fills the components of g, with g[i] being the first-order partial derivative of f with respect to x[i]
    • ∇²f(H::AbstractMatrix{T}, x::T...)::Nothing: fills the non-zero components of H, with H[i, j] being the second-order partial derivative of f with respect to x[i] and then x[j]. H is initialized to the zero matrix, so you do not need to set any zero elements.

    Examples

    julia> import MathOptInterface as MOI
    +
    +julia> f(x, y) = x^2 + y^2
    +f (generic function with 1 method)
    +
    +julia> function ∇f(g, x, y)
    +           g .= 2 * x, 2 * y
    +           return
    +       end
    +∇f (generic function with 1 method)
    +
    +julia> function ∇²f(H, x...)
    +           H[1, 1] = H[2, 2] = 2.0
    +           return
    +       end
    +∇²f (generic function with 1 method)
    +
    +julia> model = MOI.Utilities.UniversalFallback(MOI.Utilities.Model{Float64}())
    +MOIU.UniversalFallback{MOIU.Model{Float64}}
    +fallback for MOIU.Model{Float64}
    +
    +julia> MOI.set(model, MOI.UserDefinedFunction(:f, 2), (f,))
    +
    +julia> MOI.set(model, MOI.UserDefinedFunction(:g, 2), (f, ∇f))
    +
    +julia> MOI.set(model, MOI.UserDefinedFunction(:h, 2), (f, ∇f, ∇²f))
    +
    +julia> x = MOI.add_variables(model, 2)
    +2-element Vector{MathOptInterface.VariableIndex}:
    + MOI.VariableIndex(1)
    + MOI.VariableIndex(2)
    +
    +julia> MOI.set(model, MOI.ObjectiveSense(), MOI.MIN_SENSE)
    +
    +julia> obj_f = MOI.ScalarNonlinearFunction(:f, Any[x[1], x[2]])
    +f(MOI.VariableIndex(1), MOI.VariableIndex(2))
    +
    +julia> MOI.set(model, MOI.ObjectiveFunction{typeof(obj_f)}(), obj_f)
    +
    +julia> print(model)
    +Minimize ScalarNonlinearFunction:
    + f(v[1], v[2])
    +
    +Subject to:
    +
    source

    Optimizer interface

    MathOptInterface.AbstractOptimizerType
    AbstractOptimizer <: ModelLike

    Abstract supertype for objects representing an instance of an optimization problem tied to a particular solver. This is typically a solver's in-memory representation. In addition to ModelLike, AbstractOptimizer objects let you solve the model and query the solution.

    source
    MathOptInterface.OptimizerWithAttributesType
    struct OptimizerWithAttributes
    +    optimizer_constructor
    +    params::Vector{Pair{AbstractOptimizerAttribute,<:Any}}
    +end

    Object grouping an optimizer constructor and a list of optimizer attributes. Instances are created with instantiate.

    source
    MathOptInterface.optimize!Method
    optimize!(dest::AbstractOptimizer, src::ModelLike)::Tuple{IndexMap,Bool}

    A "one-shot" call that copies the problem from src into dest and then uses dest to optimize the problem.

    Returns a tuple of an IndexMap and a Bool copied.

    • The IndexMap object translates variable and constraint indices from the src model to the corresponding indices in the dest optimizer. See copy_to for details.
    • If copied == true, src was copied to dest and then cached, allowing incremental modification if supported by the solver.
    • If copied == false, a cache of the model was not kept in dest. Therefore, only the solution information (attributes for which is_set_by_optimize is true) is available to query.
    Note

    The main purpose of optimize! method with two arguments is for use in Utilities.CachingOptimizer.

    Relationship to the single-argument optimize!

    The default fallback of optimize!(dest::AbstractOptimizer, src::ModelLike) is

    function optimize!(dest::AbstractOptimizer, src::ModelLike)
    +    index_map = copy_to(dest, src)
    +    optimize!(dest)
    +    return index_map, true
    +end

    Therefore, subtypes of AbstractOptimizer should either implement this two-argument method, or implement both copy_to(::Optimizer, ::ModelLike) and optimize!(::Optimizer).

    source
    MathOptInterface.instantiateFunction
    instantiate(
    +    optimizer_constructor,
    +    with_cache_type::Union{Nothing,Type} = nothing,
    +    with_bridge_type::Union{Nothing,Type} = nothing,
    +)

    Create an instance of an optimizer by either:

    • calling optimizer_constructor.optimizer_constructor() and setting the parameters in optimizer_constructor.params if optimizer_constructor is a OptimizerWithAttributes
    • calling optimizer_constructor() if optimizer_constructor is callable.

    withcachetype

    If with_cache_type is not nothing, then the optimizer is wrapped in a Utilities.CachingOptimizer to store a cache of the model. This is most useful if the optimizer you are constructing does not support the incremental interface (see supports_incremental_interface).

    withbridgetype

    If with_bridge_type is not nothing, the optimizer is wrapped in a Bridges.full_bridge_optimizer, enabling all the bridges defined in the MOI.Bridges submodule with coefficient type with_bridge_type.

    In addition, if the optimizer created by optimizer_constructor does not support the incremental interface (see supports_incremental_interface), then, irrespective of with_cache_type, the optimizer is wrapped in a Utilities.CachingOptimizer to store a cache of the bridged model.

    If with_cache_type and with_bridge_type are both not nothing, then they must be the same type.

    source
    MathOptInterface.default_cacheFunction
    default_cache(optimizer::ModelLike, ::Type{T}) where {T}

    Return a new instance of the default model type to be used as cache for optimizer in a Utilities.CachingOptimizer for holding constraints of coefficient type T. By default, this returns Utilities.UniversalFallback(Utilities.Model{T}()). If copying from a instance of a given model type is faster for optimizer then a new method returning an instance of this model type should be defined.

    source

    Optimizer attributes

    MathOptInterface.SolverVersionType
    SolverVersion()

    An optimizer attribute for the string identifying the version of the solver.

    Note

    For solvers supporting semantic versioning, the SolverVersion should be a string of the form "vMAJOR.MINOR.PATCH", so that it can be converted to a Julia VersionNumber (e.g., `VersionNumber("v1.2.3")).

    We do not require Semantic Versioning because some solvers use alternate versioning systems. For example, CPLEX uses Calendar Versioning, so SolverVersion will return a string like "202001".

    source
    MathOptInterface.SilentType
    Silent()

    An optimizer attribute for silencing the output of an optimizer. When set to true, it takes precedence over any other attribute controlling verbosity and requires the solver to produce no output. The default value is false which has no effect. In this case the verbosity is controlled by other attributes.

    Note

    Every optimizer should have verbosity on by default. For instance, if a solver has a solver-specific log level attribute, the MOI implementation should set it to 1 by default. If the user sets Silent to true, then the log level should be set to 0, even if the user specifically sets a value of log level. If the value of Silent is false then the log level set to the solver is the value given by the user for this solver-specific parameter or 1 if none is given.

    source
    MathOptInterface.TimeLimitSecType
    TimeLimitSec()

    An optimizer attribute for setting a time limit (in seconnds) for an optimization. When set to nothing, it deactivates the solver time limit. The default value is nothing.

    source
    MathOptInterface.ObjectiveLimitType
    ObjectiveLimit()

    An optimizer attribute for setting a limit on the objective value.

    The provided limit must be a Union{Real,Nothing}.

    When set to nothing, the limit reverts to the solver's default.

    The default value is nothing.

    The solver may stop when the ObjectiveValue is better (lower for minimization, higher for maximization) than the ObjectiveLimit. If stopped, the TerminationStatus should be OBJECTIVE_LIMIT.

    source
    MathOptInterface.NumberOfThreadsType
    NumberOfThreads()

    An optimizer attribute for setting the number of threads used for an optimization. When set to nothing uses solver default. Values are positive integers. The default value is nothing.

    source
    MathOptInterface.AbsoluteGapToleranceType
    AbsoluteGapTolerance()

    An optimizer attribute for setting the absolute gap tolerance for an optimization. This is an optimizer attribute, and should be set before calling optimize!. When set to nothing (if supported), uses solver default.

    To set a relative gap tolerance, see RelativeGapTolerance.

    Warning

    The mathematical definition of "absolute gap", and its treatment during the optimization, are solver-dependent. However, assuming no other limit nor issue is encountered during the optimization, most solvers that implement this attribute will stop once $|f - b| ≤ g_{abs}$, where $b$ is the best bound, $f$ is the best feasible objective value, and $g_{abs}$ is the absolute gap.

    source
    MathOptInterface.RelativeGapToleranceType
    RelativeGapTolerance()

    An optimizer attribute for setting the relative gap tolerance for an optimization. This is an optimizer attribute, and should be set before calling optimize!. When set to nothing (if supported), uses solver default.

    If you are looking for the relative gap of the current best solution, see RelativeGap. If no limit nor issue is encountered during the optimization, the value of RelativeGap should be at most as large as RelativeGapTolerance.

    # Before optimizing: set relative gap tolerance
    +# set 0.1% relative gap tolerance
    +MOI.set(model, MOI.RelativeGapTolerance(), 1e-3)
    +MOI.optimize!(model)
    +
    +# After optimizing (assuming all went well)
    +# The relative gap tolerance has not changed...
    +MOI.get(model, MOI.RelativeGapTolerance())  # returns 1e-3
    +# ... and the relative gap of the obtained solution is smaller or equal to the
    +# tolerance
    +MOI.get(model, MOI.RelativeGap())  # should return something ≤ 1e-3
    Warning

    The mathematical definition of "relative gap", and its allowed range, are solver-dependent. Typically, solvers expect a value between 0.0 and 1.0.

    source

    List of attributes useful for optimizers

    MathOptInterface.TerminationStatusCodeType
    TerminationStatusCode

    An Enum of possible values for the TerminationStatus attribute. This attribute is meant to explain the reason why the optimizer stopped executing in the most recent call to optimize!.

    Values

    Possible values are:

    • OPTIMIZE_NOT_CALLED: The algorithm has not started.
    • OPTIMAL: The algorithm found a globally optimal solution.
    • INFEASIBLE: The algorithm concluded that no feasible solution exists.
    • DUAL_INFEASIBLE: The algorithm concluded that no dual bound exists for the problem. If, additionally, a feasible (primal) solution is known to exist, this status typically implies that the problem is unbounded, with some technical exceptions.
    • LOCALLY_SOLVED: The algorithm converged to a stationary point, local optimal solution, could not find directions for improvement, or otherwise completed its search without global guarantees.
    • LOCALLY_INFEASIBLE: The algorithm converged to an infeasible point or otherwise completed its search without finding a feasible solution, without guarantees that no feasible solution exists.
    • INFEASIBLE_OR_UNBOUNDED: The algorithm stopped because it decided that the problem is infeasible or unbounded; this occasionally happens during MIP presolve.
    • ALMOST_OPTIMAL: The algorithm found a globally optimal solution to relaxed tolerances.
    • ALMOST_INFEASIBLE: The algorithm concluded that no feasible solution exists within relaxed tolerances.
    • ALMOST_DUAL_INFEASIBLE: The algorithm concluded that no dual bound exists for the problem within relaxed tolerances.
    • ALMOST_LOCALLY_SOLVED: The algorithm converged to a stationary point, local optimal solution, or could not find directions for improvement within relaxed tolerances.
    • ITERATION_LIMIT: An iterative algorithm stopped after conducting the maximum number of iterations.
    • TIME_LIMIT: The algorithm stopped after a user-specified computation time.
    • NODE_LIMIT: A branch-and-bound algorithm stopped because it explored a maximum number of nodes in the branch-and-bound tree.
    • SOLUTION_LIMIT: The algorithm stopped because it found the required number of solutions. This is often used in MIPs to get the solver to return the first feasible solution it encounters.
    • MEMORY_LIMIT: The algorithm stopped because it ran out of memory.
    • OBJECTIVE_LIMIT: The algorithm stopped because it found a solution better than a minimum limit set by the user.
    • NORM_LIMIT: The algorithm stopped because the norm of an iterate became too large.
    • OTHER_LIMIT: The algorithm stopped due to a limit not covered by one of the _LIMIT_ statuses above.
    • SLOW_PROGRESS: The algorithm stopped because it was unable to continue making progress towards the solution.
    • NUMERICAL_ERROR: The algorithm stopped because it encountered unrecoverable numerical error.
    • INVALID_MODEL: The algorithm stopped because the model is invalid.
    • INVALID_OPTION: The algorithm stopped because it was provided an invalid option.
    • INTERRUPTED: The algorithm stopped because of an interrupt signal.
    • OTHER_ERROR: The algorithm stopped because of an error not covered by one of the statuses defined above.
    source
    MathOptInterface.DUAL_INFEASIBLEConstant
    DUAL_INFEASIBLE::TerminationStatusCode

    An instance of the TerminationStatusCode enum.

    DUAL_INFEASIBLE: The algorithm concluded that no dual bound exists for the problem. If, additionally, a feasible (primal) solution is known to exist, this status typically implies that the problem is unbounded, with some technical exceptions.

    source
    MathOptInterface.LOCALLY_SOLVEDConstant
    LOCALLY_SOLVED::TerminationStatusCode

    An instance of the TerminationStatusCode enum.

    LOCALLY_SOLVED: The algorithm converged to a stationary point, local optimal solution, could not find directions for improvement, or otherwise completed its search without global guarantees.

    source
    MathOptInterface.LOCALLY_INFEASIBLEConstant
    LOCALLY_INFEASIBLE::TerminationStatusCode

    An instance of the TerminationStatusCode enum.

    LOCALLY_INFEASIBLE: The algorithm converged to an infeasible point or otherwise completed its search without finding a feasible solution, without guarantees that no feasible solution exists.

    source
    MathOptInterface.SOLUTION_LIMITConstant
    SOLUTION_LIMIT::TerminationStatusCode

    An instance of the TerminationStatusCode enum.

    SOLUTION_LIMIT: The algorithm stopped because it found the required number of solutions. This is often used in MIPs to get the solver to return the first feasible solution it encounters.

    source
    MathOptInterface.DualStatusType
    DualStatus(result_index::Int = 1)

    A model attribute for the ResultStatusCode of the dual result result_index. If result_index is omitted, it defaults to 1.

    See ResultCount for information on how the results are ordered.

    If result_index is larger than the value of ResultCount then NO_SOLUTION is returned.

    source
    MathOptInterface.ResultCountType
    ResultCount()

    A model attribute for the number of results available.

    Order of solutions

    A number of attributes contain an index, result_index, which is used to refer to one of the available results. Thus, result_index must be an integer between 1 and the number of available results.

    As a general rule, the first result (result_index=1) is the most important result (e.g., an optimal solution or an infeasibility certificate). Other results will typically be alternate solutions that the solver found during the search for the first result.

    If a (local) optimal solution is available, i.e., TerminationStatus is OPTIMAL or LOCALLY_SOLVED, the first result must correspond to the (locally) optimal solution. Other results may be alternative optimal solutions, or they may be other suboptimal solutions; use ObjectiveValue to distingiush between them.

    If a primal or dual infeasibility certificate is available, i.e., TerminationStatus is INFEASIBLE or DUAL_INFEASIBLE and the corresponding PrimalStatus or DualStatus is INFEASIBILITY_CERTIFICATE, then the first result must be a certificate. Other results may be alternate certificates, or infeasible points.

    source
    MathOptInterface.ObjectiveValueType
    ObjectiveValue(result_index::Int = 1)

    A model attribute for the objective value of the primal solution result_index.

    If the solver does not have a primal value for the objective because the result_index is beyond the available solutions (whose number is indicated by the ResultCount attribute), getting this attribute must throw a ResultIndexBoundsError. Otherwise, if the result is unavailable for another reason (for instance, only a dual solution is available), the result is undefined. Users should first check PrimalStatus before accessing the ObjectiveValue attribute.

    See ResultCount for information on how the results are ordered.

    source
    MathOptInterface.DualObjectiveValueType
    DualObjectiveValue(result_index::Int = 1)

    A model attribute for the value of the objective function of the dual problem for the result_indexth dual result.

    If the solver does not have a dual value for the objective because the result_index is beyond the available solutions (whose number is indicated by the ResultCount attribute), getting this attribute must throw a ResultIndexBoundsError. Otherwise, if the result is unavailable for another reason (for instance, only a primal solution is available), the result is undefined. Users should first check DualStatus before accessing the DualObjectiveValue attribute.

    See ResultCount for information on how the results are ordered.

    source
    MathOptInterface.RelativeGapType
    RelativeGap()

    A model attribute for the final relative optimality gap.

    Warning

    The definition of this gap is solver-dependent. However, most solvers implementing this attribute define the relative gap as some variation of $\frac{|b-f|}{|f|}$, where $b$ is the best bound and $f$ is the best feasible objective value.

    source
    MathOptInterface.SimplexIterationsType
    SimplexIterations()

    A model attribute for the cumulative number of simplex iterations during the optimization process.

    For a mixed-integer program (MIP), the return value is the total simplex iterations for all nodes.

    source
    MathOptInterface.NodeCountType
    NodeCount()

    A model attribute for the total number of branch-and-bound nodes explored while solving a mixed-integer program (MIP).

    source

    ResultStatusCode

    MathOptInterface.ResultStatusCodeType
    ResultStatusCode

    An Enum of possible values for the PrimalStatus and DualStatus attributes.

    The values indicate how to interpret the result vector.

    Values

    Possible values are:

    • NO_SOLUTION: the result vector is empty.
    • FEASIBLE_POINT: the result vector is a feasible point.
    • NEARLY_FEASIBLE_POINT: the result vector is feasible if some constraint tolerances are relaxed.
    • INFEASIBLE_POINT: the result vector is an infeasible point.
    • INFEASIBILITY_CERTIFICATE: the result vector is an infeasibility certificate. If the PrimalStatus is INFEASIBILITY_CERTIFICATE, then the primal result vector is a certificate of dual infeasibility. If the DualStatus is INFEASIBILITY_CERTIFICATE, then the dual result vector is a proof of primal infeasibility.
    • NEARLY_INFEASIBILITY_CERTIFICATE: the result satisfies a relaxed criterion for a certificate of infeasibility.
    • REDUCTION_CERTIFICATE: the result vector is an ill-posed certificate; see this article for details. If the PrimalStatus is REDUCTION_CERTIFICATE, then the primal result vector is a proof that the dual problem is ill-posed. If the DualStatus is REDUCTION_CERTIFICATE, then the dual result vector is a proof that the primal is ill-posed.
    • NEARLY_REDUCTION_CERTIFICATE: the result satisfies a relaxed criterion for an ill-posed certificate.
    • UNKNOWN_RESULT_STATUS: the result vector contains a solution with an unknown interpretation.
    • OTHER_RESULT_STATUS: the result vector contains a solution with an interpretation not covered by one of the statuses defined above
    source
    MathOptInterface.INFEASIBILITY_CERTIFICATEConstant
    INFEASIBILITY_CERTIFICATE::ResultStatusCode

    An instance of the ResultStatusCode enum.

    INFEASIBILITY_CERTIFICATE: the result vector is an infeasibility certificate. If the PrimalStatus is INFEASIBILITY_CERTIFICATE, then the primal result vector is a certificate of dual infeasibility. If the DualStatus is INFEASIBILITY_CERTIFICATE, then the dual result vector is a proof of primal infeasibility.

    source
    MathOptInterface.REDUCTION_CERTIFICATEConstant
    REDUCTION_CERTIFICATE::ResultStatusCode

    An instance of the ResultStatusCode enum.

    REDUCTION_CERTIFICATE: the result vector is an ill-posed certificate; see this article for details. If the PrimalStatus is REDUCTION_CERTIFICATE, then the primal result vector is a proof that the dual problem is ill-posed. If the DualStatus is REDUCTION_CERTIFICATE, then the dual result vector is a proof that the primal is ill-posed.

    source

    Conflict Status

    MathOptInterface.compute_conflict!Function
    compute_conflict!(optimizer::AbstractOptimizer)

    Computes a minimal subset of constraints such that the model with the other constraint removed is still infeasible.

    Some solvers call a set of conflicting constraints an Irreducible Inconsistent Subsystem (IIS).

    See also ConflictStatus and ConstraintConflictStatus.

    Note

    If the model is modified after a call to compute_conflict!, the implementor is not obliged to purge the conflict. Any calls to the above attributes may return values for the original conflict without a warning. Similarly, when modifying the model, the conflict can be discarded.

    source
    MathOptInterface.ConflictStatusCodeType
    ConflictStatusCode

    An Enum of possible values for the ConflictStatus attribute. This attribute is meant to explain the reason why the conflict finder stopped executing in the most recent call to compute_conflict!.

    Possible values are:

    • COMPUTE_CONFLICT_NOT_CALLED: the function compute_conflict! has not yet been called
    • NO_CONFLICT_EXISTS: there is no conflict because the problem is feasible
    • NO_CONFLICT_FOUND: the solver could not find a conflict
    • CONFLICT_FOUND: at least one conflict could be found
    source
    MathOptInterface.ConflictParticipationStatusCodeType
    ConflictParticipationStatusCode

    An Enum of possible values for the ConstraintConflictStatus attribute. This attribute is meant to indicate whether a given constraint participates or not in the last computed conflict.

    Values

    Possible values are:

    • NOT_IN_CONFLICT: the constraint does not participate in the conflict
    • IN_CONFLICT: the constraint participates in the conflict
    • MAYBE_IN_CONFLICT: the constraint may participate in the conflict, the solver was not able to prove that the constraint can be excluded from the conflict
    source
    diff --git a/previews/PR3545/moi/reference/modification/index.html b/previews/PR3545/moi/reference/modification/index.html new file mode 100644 index 00000000000..e039fb306dd --- /dev/null +++ b/previews/PR3545/moi/reference/modification/index.html @@ -0,0 +1,31 @@ + +Modifications · JuMP

    Modifications

    MathOptInterface.modifyFunction

    Constraint Function

    modify(model::ModelLike, ci::ConstraintIndex, change::AbstractFunctionModification)

    Apply the modification specified by change to the function of constraint ci.

    An ModifyConstraintNotAllowed error is thrown if modifying constraints is not supported by the model model.

    Examples

    modify(model, ci, ScalarConstantChange(10.0))

    Objective Function

    modify(model::ModelLike, ::ObjectiveFunction, change::AbstractFunctionModification)

    Apply the modification specified by change to the objective function of model. To change the function completely, call set instead.

    An ModifyObjectiveNotAllowed error is thrown if modifying objectives is not supported by the model model.

    Examples

    modify(model, ObjectiveFunction{ScalarAffineFunction{Float64}}(), ScalarConstantChange(10.0))

    Multiple modifications in Constraint Functions

    modify(
    +    model::ModelLike,
    +    cis::AbstractVector{<:ConstraintIndex},
    +    changes::AbstractVector{<:AbstractFunctionModification},
    +)

    Apply multiple modifications specified by changes to the functions of constraints cis.

    A ModifyConstraintNotAllowed error is thrown if modifying constraints is not supported by model.

    Examples

    modify(
    +    model,
    +    [ci, ci],
    +    [
    +        ScalarCoefficientChange{Float64}(VariableIndex(1), 1.0),
    +        ScalarCoefficientChange{Float64}(VariableIndex(2), 0.5),
    +    ],
    +)

    Multiple modifications in the Objective Function

    modify(
    +    model::ModelLike,
    +    attr::ObjectiveFunction,
    +    changes::AbstractVector{<:AbstractFunctionModification},
    +)

    Apply multiple modifications specified by changes to the functions of constraints cis.

    A ModifyObjectiveNotAllowed error is thrown if modifying objective coefficients is not supported by model.

    Examples

    modify(
    +    model,
    +    ObjectiveFunction{ScalarAffineFunction{Float64}}(),
    +    [
    +        ScalarCoefficientChange{Float64}(VariableIndex(1), 1.0),
    +        ScalarCoefficientChange{Float64}(VariableIndex(2), 0.5),
    +    ],
    +)
    source
    MathOptInterface.AbstractFunctionModificationType
    AbstractFunctionModification

    An abstract supertype for structs which specify partial modifications to functions, to be used for making small modifications instead of replacing the functions entirely.

    source
    diff --git a/previews/PR3545/moi/reference/nonlinear/index.html b/previews/PR3545/moi/reference/nonlinear/index.html new file mode 100644 index 00000000000..5c1c68f8780 --- /dev/null +++ b/previews/PR3545/moi/reference/nonlinear/index.html @@ -0,0 +1,82 @@ + +Nonlinear programming · JuMP

    Nonlinear programming

    Types

    MathOptInterface.NLPBoundsPairType
    NLPBoundsPair(lower::Float64, upper::Float64)

    A struct holding a pair of lower and upper bounds.

    -Inf and Inf can be used to indicate no lower or upper bound, respectively.

    source
    MathOptInterface.NLPBlockDataType
    struct NLPBlockData
    +    constraint_bounds::Vector{NLPBoundsPair}
    +    evaluator::AbstractNLPEvaluator
    +    has_objective::Bool
    +end

    A struct encoding a set of nonlinear constraints of the form $lb \le g(x) \le ub$ and, if has_objective == true, a nonlinear objective function $f(x)$.

    Nonlinear objectives override any objective set by using the ObjectiveFunction attribute.

    The evaluator is a callback object that is used to query function values, derivatives, and expression graphs. If has_objective == false, then it is an error to query properties of the objective function, and in Hessian-of-the-Lagrangian queries, σ must be set to zero.

    Note

    Throughout the evaluator, all variables are ordered according to ListOfVariableIndices. Hence, MOI copies of nonlinear problems must not re-order variables.

    source

    Attributes

    Functions

    MathOptInterface.initializeFunction
    initialize(
    +    d::AbstractNLPEvaluator,
    +    requested_features::Vector{Symbol},
    +)::Nothing

    Initialize d with the set of features in requested_features. Check features_available before calling initialize to see what features are supported by d.

    Warning

    This method must be called before any other methods.

    Features

    The following features are defined:

    In all cases, including when requested_features is empty, eval_objective and eval_constraint are supported.

    Examples

    MOI.initialize(d, Symbol[])
    +MOI.initialize(d, [:ExprGraph])
    +MOI.initialize(d, MOI.features_available(d))
    source
    MathOptInterface.eval_constraintFunction
    eval_constraint(d::AbstractNLPEvaluator,
    +    g::AbstractVector{T},
    +    x::AbstractVector{T},
    +)::Nothing where {T}

    Given a set of vector-valued constraints $l \le g(x) \le u$, evaluate the constraint function $g(x)$, storing the result in the vector g.

    Implementation notes

    When implementing this method, you must not assume that g is Vector{Float64}, but you may assume that it supports setindex! and length. For example, it may be the view of a vector.

    source
    MathOptInterface.eval_objective_gradientFunction
    eval_objective_gradient(
    +    d::AbstractNLPEvaluator,
    +    grad::AbstractVector{T},
    +    x::AbstractVector{T},
    +)::Nothing where {T}

    Evaluate the gradient of the objective function $grad = \nabla f(x)$ as a dense vector, storing the result in the vector grad.

    Implementation notes

    When implementing this method, you must not assume that grad is Vector{Float64}, but you may assume that it supports setindex! and length. For example, it may be the view of a vector.

    source
    MathOptInterface.jacobian_structureFunction
    jacobian_structure(d::AbstractNLPEvaluator)::Vector{Tuple{Int64,Int64}}

    Returns a vector of tuples, (row, column), where each indicates the position of a structurally nonzero element in the Jacobian matrix: $J_g(x) = \left[ \begin{array}{c} \nabla g_1(x) \\ \nabla g_2(x) \\ \vdots \\ \nabla g_m(x) \end{array}\right],$ where $g_i$ is the $i\text{th}$ component of the nonlinear constraints $g(x)$.

    The indices are not required to be sorted and can contain duplicates, in which case the solver should combine the corresponding elements by adding them together.

    The sparsity structure is assumed to be independent of the point $x$.

    source
    MathOptInterface.eval_constraint_gradientFunction
    eval_constraint_gradient(
    +    d::AbstractNLPEvaluator,
    +    ∇g::AbstractVector{T},
    +    x::AbstractVector{T},
    +    i::Int,
    +)::Nothing where {T}

    Evaluate the gradient of constraint i, $\nabla g_i(x)$, and store the non-zero values in ∇g, corresponding to the structure returned by constraint_gradient_structure.

    Implementation notes

    When implementing this method, you must not assume that ∇g is Vector{Float64}, but you may assume that it supports setindex! and length. For example, it may be the view of a vector.

    source
    MathOptInterface.constraint_gradient_structureFunction
    constraint_gradient_structure(d::AbstractNLPEvaluator, i::Int)::Vector{Int64}

    Returns a vector of indices, where each element indicates the position of a structurally nonzero element in the gradient of constraint $\nabla g_i(x)$.

    The indices are not required to be sorted and can contain duplicates, in which case the solver should combine the corresponding elements by adding them together.

    The sparsity structure is assumed to be independent of the point $x$.

    source
    MathOptInterface.eval_constraint_jacobianFunction
    eval_constraint_jacobian(d::AbstractNLPEvaluator,
    +    J::AbstractVector{T},
    +    x::AbstractVector{T},
    +)::Nothing where {T}

    Evaluates the sparse Jacobian matrix $J_g(x) = \left[ \begin{array}{c} \nabla g_1(x) \\ \nabla g_2(x) \\ \vdots \\ \nabla g_m(x) \end{array}\right]$.

    The result is stored in the vector J in the same order as the indices returned by jacobian_structure.

    Implementation notes

    When implementing this method, you must not assume that J is Vector{Float64}, but you may assume that it supports setindex! and length. For example, it may be the view of a vector.

    source
    MathOptInterface.eval_constraint_jacobian_productFunction
    eval_constraint_jacobian_product(
    +    d::AbstractNLPEvaluator,
    +    y::AbstractVector{T},
    +    x::AbstractVector{T},
    +    w::AbstractVector{T},
    +)::Nothing where {T}

    Computes the Jacobian-vector product $y = J_g(x)w$, storing the result in the vector y.

    The vectors have dimensions such that length(w) == length(x), and length(y) is the number of nonlinear constraints.

    Implementation notes

    When implementing this method, you must not assume that y is Vector{Float64}, but you may assume that it supports setindex! and length. For example, it may be the view of a vector.

    source
    MathOptInterface.eval_constraint_jacobian_transpose_productFunction
    eval_constraint_jacobian_transpose_product(
    +    d::AbstractNLPEvaluator,
    +    y::AbstractVector{T},
    +    x::AbstractVector{T},
    +    w::AbstractVector{T},
    +)::Nothing where {T}

    Computes the Jacobian-transpose-vector product $y = J_g(x)^Tw$, storing the result in the vector y.

    The vectors have dimensions such that length(y) == length(x), and length(w) is the number of nonlinear constraints.

    Implementation notes

    When implementing this method, you must not assume that y is Vector{Float64}, but you may assume that it supports setindex! and length. For example, it may be the view of a vector.

    source
    MathOptInterface.hessian_lagrangian_structureFunction
    hessian_lagrangian_structure(
    +    d::AbstractNLPEvaluator,
    +)::Vector{Tuple{Int64,Int64}}

    Returns a vector of tuples, (row, column), where each indicates the position of a structurally nonzero element in the Hessian-of-the-Lagrangian matrix: $\nabla^2 f(x) + \sum_{i=1}^m \nabla^2 g_i(x)$.

    The indices are not required to be sorted and can contain duplicates, in which case the solver should combine the corresponding elements by adding them together.

    Any mix of lower and upper-triangular indices is valid. Elements (i,j) and (j,i), if both present, should be treated as duplicates.

    The sparsity structure is assumed to be independent of the point $x$.

    source
    MathOptInterface.hessian_objective_structureFunction
    hessian_objective_structure(
    +    d::AbstractNLPEvaluator,
    +)::Vector{Tuple{Int64,Int64}}

    Returns a vector of tuples, (row, column), where each indicates the position of a structurally nonzero element in the Hessian matrix: $\nabla^2 f(x)$.

    The indices are not required to be sorted and can contain duplicates, in which case the solver should combine the corresponding elements by adding them together.

    Any mix of lower and upper-triangular indices is valid. Elements (i,j) and (j,i), if both present, should be treated as duplicates.

    The sparsity structure is assumed to be independent of the point $x$.

    source
    MathOptInterface.hessian_constraint_structureFunction
    hessian_constraint_structure(
    +    d::AbstractNLPEvaluator,
    +    i::Int64,
    +)::Vector{Tuple{Int64,Int64}}

    Returns a vector of tuples, (row, column), where each indicates the position of a structurally nonzero element in the Hessian matrix: $\nabla^2 g_i(x)$.

    The indices are not required to be sorted and can contain duplicates, in which case the solver should combine the corresponding elements by adding them together.

    Any mix of lower and upper-triangular indices is valid. Elements (i,j) and (j,i), if both present, should be treated as duplicates.

    The sparsity structure is assumed to be independent of the point $x$.

    source
    MathOptInterface.eval_hessian_objectiveFunction
    eval_hessian_objective(
    +    d::AbstractNLPEvaluator,
    +    H::AbstractVector{T},
    +    x::AbstractVector{T},
    +)::Nothing where {T}

    This function computes the sparse Hessian matrix: $\nabla^2 f(x)$, storing the result in the vector H in the same order as the indices returned by hessian_objective_structure.

    Implementation notes

    When implementing this method, you must not assume that H is Vector{Float64}, but you may assume that it supports setindex! and length. For example, it may be the view of a vector.

    source
    MathOptInterface.eval_hessian_constraintFunction
    eval_hessian_constraint(
    +    d::AbstractNLPEvaluator,
    +    H::AbstractVector{T},
    +    x::AbstractVector{T},
    +    i::Int64,
    +)::Nothing where {T}

    This function computes the sparse Hessian matrix: $\nabla^2 g_i(x)$, storing the result in the vector H in the same order as the indices returned by hessian_constraint_structure.

    Implementation notes

    When implementing this method, you must not assume that H is Vector{Float64}, but you may assume that it supports setindex! and length. For example, it may be the view of a vector.

    source
    MathOptInterface.eval_hessian_lagrangianFunction
    eval_hessian_lagrangian(
    +    d::AbstractNLPEvaluator,
    +    H::AbstractVector{T},
    +    x::AbstractVector{T},
    +    σ::T,
    +    μ::AbstractVector{T},
    +)::Nothing where {T}

    Given scalar weight σ and vector of constraint weights μ, this function computes the sparse Hessian-of-the-Lagrangian matrix: $\sigma\nabla^2 f(x) + \sum_{i=1}^m \mu_i \nabla^2 g_i(x)$, storing the result in the vector H in the same order as the indices returned by hessian_lagrangian_structure.

    Implementation notes

    When implementing this method, you must not assume that H is Vector{Float64}, but you may assume that it supports setindex! and length. For example, it may be the view of a vector.

    source
    MathOptInterface.eval_hessian_lagrangian_productFunction
    eval_hessian_lagrangian_product(
    +    d::AbstractNLPEvaluator,
    +    h::AbstractVector{T},
    +    x::AbstractVector{T},
    +    v::AbstractVector{T},
    +    σ::T,
    +    μ::AbstractVector{T},
    +)::Nothing where {T}

    Given scalar weight σ and vector of constraint weights μ, computes the Hessian-of-the-Lagrangian-vector product $h = \left(\sigma\nabla^2 f(x) + \sum_{i=1}^m \mu_i \nabla^2 g_i(x)\right)v$, storing the result in the vector h.

    The vectors have dimensions such that length(h) == length(x) == length(v).

    Implementation notes

    When implementing this method, you must not assume that h is Vector{Float64}, but you may assume that it supports setindex! and length. For example, it may be the view of a vector.

    source
    MathOptInterface.objective_exprFunction
    objective_expr(d::AbstractNLPEvaluator)::Expr

    Returns a Julia Expr object representing the expression graph of the objective function.

    Format

    The expression has a number of limitations, compared with arbitrary Julia expressions:

    • All sums and products are flattened out as simple Expr(:+, ...) and Expr(:*, ...) objects.
    • All decision variables must be of the form Expr(:ref, :x, MOI.VariableIndex(i)), where i is the $i$th variable in ListOfVariableIndices.
    • There are currently no restrictions on recognized functions; typically these will be built-in Julia functions like ^, exp, log, cos, tan, sqrt, etc., but modeling interfaces may choose to extend these basic functions, or error if they encounter unsupported functions.

    Examples

    The expression $x_1+\sin(x_2/\exp(x_3))$ is represented as

    :(x[MOI.VariableIndex(1)] + sin(x[MOI.VariableIndex(2)] / exp(x[MOI.VariableIndex[3]])))

    or equivalently

    Expr(
    +    :call,
    +    :+,
    +    Expr(:ref, :x, MOI.VariableIndex(1)),
    +    Expr(
    +        :call,
    +        :/,
    +        Expr(:call, :sin, Expr(:ref, :x, MOI.VariableIndex(2))),
    +        Expr(:call, :exp, Expr(:ref, :x, MOI.VariableIndex(3))),
    +    ),
    +)
    source
    MathOptInterface.constraint_exprFunction
    constraint_expr(d::AbstractNLPEvaluator, i::Integer)::Expr

    Returns a Julia Expr object representing the expression graph for the $i\text{th}$ nonlinear constraint.

    Format

    The format is the same as objective_expr, with an additional comparison operator indicating the sense of and bounds on the constraint.

    For single-sided comparisons, the body of the constraint must be on the left-hand side, and the right-hand side must be a constant.

    For double-sided comparisons (that is, $l \le f(x) \le u$), the body of the constraint must be in the middle, and the left- and right-hand sides must be constants.

    The bounds on the constraints must match the NLPBoundsPairs passed to NLPBlockData.

    Examples

    :(x[MOI.VariableIndex(1)]^2 <= 1.0)
    +:(x[MOI.VariableIndex(1)]^2 >= 2.0)
    +:(x[MOI.VariableIndex(1)]^2 == 3.0)
    +:(4.0 <= x[MOI.VariableIndex(1)]^2 <= 5.0)
    source
    diff --git a/previews/PR3545/moi/reference/standard_form/index.html b/previews/PR3545/moi/reference/standard_form/index.html new file mode 100644 index 00000000000..1a93d399ab5 --- /dev/null +++ b/previews/PR3545/moi/reference/standard_form/index.html @@ -0,0 +1,993 @@ + +Standard form · JuMP

    Standard form

    Functions

    MathOptInterface.AbstractFunctionType
    AbstractFunction

    Abstract supertype for function objects.

    Required methods

    All functions must implement:

    Abstract subtypes of AbstractFunction may require additional methods to be implemented.

    source
    MathOptInterface.constantFunction
    constant(f::AbstractFunction[, ::Type{T}]) where {T}

    Returns the constant term of a scalar-valued function, or the constant vector of a vector-valued function.

    If f is untyped and T is provided, returns zero(T).

    source
    constant(set::Union{EqualTo,GreaterThan,LessThan,Parameter})

    Returns the constant term of the set set.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> MOI.constant(MOI.GreaterThan(1.0))
    +1.0
    +
    +julia> MOI.constant(MOI.LessThan(2.5))
    +2.5
    +
    +julia> MOI.constant(MOI.EqualTo(3))
    +3
    +
    +julia> MOI.constant(MOI.Parameter(4.5))
    +4.5
    source

    Scalar functions

    MathOptInterface.VariableIndexType
    VariableIndex

    A type-safe wrapper for Int64 for use in referencing variables in a model. To allow for deletion, indices need not be consecutive.

    source
    MathOptInterface.ScalarAffineTermType
    ScalarAffineTerm{T}(coefficient::T, variable::VariableIndex) where {T}

    Represents the scalar-valued term coefficient * variable.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> x = MOI.VariableIndex(1)
    +MOI.VariableIndex(1)
    +
    +julia> MOI.ScalarAffineTerm(2.0, x)
    +MathOptInterface.ScalarAffineTerm{Float64}(2.0, MOI.VariableIndex(1))
    source
    MathOptInterface.ScalarAffineFunctionType
    ScalarAffineFunction{T}(terms::ScalarAffineTerm{T}, constant::T) where {T}

    Represents the scalar-valued affine function $a^\top x + b$, where:

    • $a^\top x$ is represented by the vector of ScalarAffineTerms
    • $b$ is a scalar constant::T

    Duplicates

    Duplicate variable indices in terms are accepted, and the corresponding coefficients are summed together.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> x = MOI.VariableIndex(1)
    +MOI.VariableIndex(1)
    +
    +julia> terms = [MOI.ScalarAffineTerm(2.0, x), MOI.ScalarAffineTerm(3.0, x)]
    +2-element Vector{MathOptInterface.ScalarAffineTerm{Float64}}:
    + MathOptInterface.ScalarAffineTerm{Float64}(2.0, MOI.VariableIndex(1))
    + MathOptInterface.ScalarAffineTerm{Float64}(3.0, MOI.VariableIndex(1))
    +
    +julia> f = MOI.ScalarAffineFunction(terms, 4.0)
    +4.0 + 2.0 MOI.VariableIndex(1) + 3.0 MOI.VariableIndex(1)
    source
    MathOptInterface.ScalarQuadraticTermType
    ScalarQuadraticTerm{T}(
    +    coefficient::T,
    +    variable_1::VariableIndex,
    +    variable_2::VariableIndex,
    +) where {T}

    Represents the scalar-valued term $c x_i x_j$ where $c$ is coefficient, $x_i$ is variable_1 and $x_j$ is variable_2.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> x = MOI.VariableIndex(1)
    +MOI.VariableIndex(1)
    +
    +julia> MOI.ScalarQuadraticTerm(2.0, x, x)
    +MathOptInterface.ScalarQuadraticTerm{Float64}(2.0, MOI.VariableIndex(1), MOI.VariableIndex(1))
    source
    MathOptInterface.ScalarQuadraticFunctionType
    ScalarQuadraticFunction{T}(
    +    quadratic_terms::Vector{ScalarQuadraticTerm{T}},
    +    affine_terms::Vector{ScalarAffineTerm{T}},
    +    constant::T,
    +) wher {T}

    The scalar-valued quadratic function $\frac{1}{2}x^\top Q x + a^\top x + b$, where:

    Duplicates

    Duplicate indices in quadratic_terms or affine_terms are accepted, and the corresponding coefficients are summed together.

    In quadratic_terms, "mirrored" indices, (q, r) and (r, q) where r and q are VariableIndexes, are considered duplicates; only one needs to be specified.

    The 0.5 factor

    Coupled with the interpretation of mirrored indices, the 0.5 factor in front of the $Q$ matrix is a common source of bugs.

    As a rule, to represent $a * x^2 + b * x * y$:

    • The coefficient $a$ in front of squared variables (diagonal elements in $Q$) must be doubled when creating a ScalarQuadraticTerm
    • The coefficient $b$ in front of off-diagonal elements in $Q$ should be left as $b$, be cause the mirrored index $b * y * x$ will be implicitly added.

    Example

    To represent the function $f(x, y) = 2 * x^2 + 3 * x * y + 4 * x + 5$, do:

    julia> import MathOptInterface as MOI
    +
    +julia> x = MOI.VariableIndex(1);
    +
    +julia> y = MOI.VariableIndex(2);
    +
    +julia> constant = 5.0;
    +
    +julia> affine_terms = [MOI.ScalarAffineTerm(4.0, x)];
    +
    +julia> quadratic_terms = [
    +           MOI.ScalarQuadraticTerm(4.0, x, x),  # Note the changed coefficient
    +           MOI.ScalarQuadraticTerm(3.0, x, y),
    +       ]
    +2-element Vector{MathOptInterface.ScalarQuadraticTerm{Float64}}:
    + MathOptInterface.ScalarQuadraticTerm{Float64}(4.0, MOI.VariableIndex(1), MOI.VariableIndex(1))
    + MathOptInterface.ScalarQuadraticTerm{Float64}(3.0, MOI.VariableIndex(1), MOI.VariableIndex(2))
    +
    +julia> f = MOI.ScalarQuadraticFunction(quadratic_terms, affine_terms, constant)
    +5.0 + 4.0 MOI.VariableIndex(1) + 2.0 MOI.VariableIndex(1)² + 3.0 MOI.VariableIndex(1)*MOI.VariableIndex(2)
    source
    MathOptInterface.ScalarNonlinearFunctionType
    ScalarNonlinearFunction(head::Symbol, args::Vector{Any})

    The scalar-valued nonlinear function head(args...), represented as a symbolic expression tree, with the call operator head and ordered arguments in args.

    head

    The head::Symbol must be an operator supported by the model.

    The default list of supported univariate operators is given by:

    and the default list of supported multivariate operators is given by:

    Additional operators can be registered by setting a UserDefinedFunction attribute.

    See the full list of operators supported by a ModelLike by querying ListOfSupportedNonlinearOperators.

    args

    The vector args contains the arguments to the nonlinear function. If the operator is univariate, it must contain one element. Otherwise, it may contain multiple elements.

    Each element must be one of the following:

    Unsupported operators

    If the optimizer does not support head, an UnsupportedNonlinearOperator error will be thrown.

    There is no guarantee about when this error will be thrown; it may be thrown when the function is first added to the model, or it may be thrown when optimize! is called.

    Example

    To represent the function $f(x) = sin(x)^2$, do:

    julia> import MathOptInterface as MOI
    +
    +julia> x = MOI.VariableIndex(1)
    +MOI.VariableIndex(1)
    +
    +julia> MOI.ScalarNonlinearFunction(
    +           :^,
    +           Any[MOI.ScalarNonlinearFunction(:sin, Any[x]), 2],
    +       )
    +^(sin(MOI.VariableIndex(1)), (2))
    source

    Vector functions

    MathOptInterface.VectorOfVariablesType
    VectorOfVariables(variables::Vector{VariableIndex}) <: AbstractVectorFunction

    The vector-valued function f(x) = variables, where variables is a subset of VariableIndexes in the model.

    The list of variables may contain duplicates.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> x = MOI.VariableIndex.(1:2)
    +2-element Vector{MathOptInterface.VariableIndex}:
    + MOI.VariableIndex(1)
    + MOI.VariableIndex(2)
    +
    +julia> f = MOI.VectorOfVariables([x[1], x[2], x[1]])
    +┌                    ┐
    +│MOI.VariableIndex(1)│
    +│MOI.VariableIndex(2)│
    +│MOI.VariableIndex(1)│
    +└                    ┘
    +
    +julia> MOI.output_dimension(f)
    +3
    source
    MathOptInterface.VectorAffineTermType
    VectorAffineTerm{T}(
    +    output_index::Int64,
    +    scalar_term::ScalarAffineTerm{T},
    +) where {T}

    A VectorAffineTerm is a scalar_term that appears in the output_index row of the vector-valued VectorAffineFunction or VectorQuadraticFunction.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> x = MOI.VariableIndex(1);
    +
    +julia> MOI.VectorAffineTerm(Int64(2), MOI.ScalarAffineTerm(3.0, x))
    +MathOptInterface.VectorAffineTerm{Float64}(2, MathOptInterface.ScalarAffineTerm{Float64}(3.0, MOI.VariableIndex(1)))
    source
    MathOptInterface.VectorAffineFunctionType
    VectorAffineFunction{T}(
    +    terms::Vector{VectorAffineTerm{T}},
    +    constants::Vector{T},
    +) where {T}

    The vector-valued affine function $A x + b$, where:

    • $A x$ is the sparse matrix given by the vector of VectorAffineTerms
    • $b$ is the vector constants

    Duplicates

    Duplicate indices in the $A$ are accepted, and the corresponding coefficients are summed together.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> x = MOI.VariableIndex(1);
    +
    +julia> terms = [
    +           MOI.VectorAffineTerm(Int64(1), MOI.ScalarAffineTerm(2.0, x)),
    +           MOI.VectorAffineTerm(Int64(2), MOI.ScalarAffineTerm(3.0, x)),
    +       ];
    +
    +julia> f = MOI.VectorAffineFunction(terms, [4.0, 5.0])
    +┌                              ┐
    +│4.0 + 2.0 MOI.VariableIndex(1)│
    +│5.0 + 3.0 MOI.VariableIndex(1)│
    +└                              ┘
    +
    +julia> MOI.output_dimension(f)
    +2
    source
    MathOptInterface.VectorQuadraticTermType
    VectorQuadraticTerm{T}(
    +    output_index::Int64,
    +    scalar_term::ScalarQuadraticTerm{T},
    +) where {T}

    A VectorQuadraticTerm is a ScalarQuadraticTerm scalar_term that appears in the output_index row of the vector-valued VectorQuadraticFunction.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> x = MOI.VariableIndex(1);
    +
    +julia> MOI.VectorQuadraticTerm(Int64(2), MOI.ScalarQuadraticTerm(3.0, x, x))
    +MathOptInterface.VectorQuadraticTerm{Float64}(2, MathOptInterface.ScalarQuadraticTerm{Float64}(3.0, MOI.VariableIndex(1), MOI.VariableIndex(1)))
    source
    MathOptInterface.VectorQuadraticFunctionType
    VectorQuadraticFunction{T}(
    +    quadratic_terms::Vector{VectorQuadraticTerm{T}},
    +    affine_terms::Vector{VectorAffineTerm{T}},
    +    constants::Vector{T},
    +) where {T}

    The vector-valued quadratic function with ith component ("output index") defined as $\frac{1}{2}x^\top Q_i x + a_i^\top x + b_i$, where:

    • $\frac{1}{2}x^\top Q_i x$ is the symmetric matrix given by the VectorQuadraticTerm elements in quadratic_terms with output_index == i
    • $a_i^\top x$ is the sparse vector given by the VectorAffineTerm elements in affine_terms with output_index == i
    • $b_i$ is a scalar given by constants[i]

    Duplicates

    Duplicate indices in quadratic_terms and affine_terms with the same output_index are handled in the same manner as duplicates in ScalarQuadraticFunction.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> x = MOI.VariableIndex(1);
    +
    +julia> y = MOI.VariableIndex(2);
    +
    +julia> constants = [4.0, 5.0];
    +
    +julia> affine_terms = [
    +           MOI.VectorAffineTerm(Int64(1), MOI.ScalarAffineTerm(2.0, x)),
    +           MOI.VectorAffineTerm(Int64(2), MOI.ScalarAffineTerm(3.0, x)),
    +       ];
    +
    +julia> quad_terms = [
    +        MOI.VectorQuadraticTerm(Int64(1), MOI.ScalarQuadraticTerm(2.0, x, x)),
    +        MOI.VectorQuadraticTerm(Int64(2), MOI.ScalarQuadraticTerm(3.0, x, y)),
    +           ];
    +
    +julia> f = MOI.VectorQuadraticFunction(quad_terms, affine_terms, constants)
    +┌                                                                              ┐
    +│4.0 + 2.0 MOI.VariableIndex(1) + 1.0 MOI.VariableIndex(1)²                    │
    +│5.0 + 3.0 MOI.VariableIndex(1) + 3.0 MOI.VariableIndex(1)*MOI.VariableIndex(2)│
    +└                                                                              ┘
    +
    +julia> MOI.output_dimension(f)
    +2
    source
    MathOptInterface.VectorNonlinearFunctionType
    VectorNonlinearFunction(args::Vector{ScalarNonlinearFunction})

    The vector-valued nonlinear function composed of a vector of ScalarNonlinearFunction.

    args

    The vector args contains the scalar elements of the nonlinear function. Each element must be a ScalarNonlinearFunction, but if you pass a Vector{Any}, the elements can be automatically converted from one of the following:

    Example

    To represent the function $f(x) = [sin(x)^2, x]$, do:

    julia> import MathOptInterface as MOI
    +
    +julia> x = MOI.VariableIndex(1)
    +MOI.VariableIndex(1)
    +
    +julia> g = MOI.ScalarNonlinearFunction(
    +           :^,
    +           Any[MOI.ScalarNonlinearFunction(:sin, Any[x]), 2.0],
    +       )
    +^(sin(MOI.VariableIndex(1)), 2.0)
    +
    +julia> MOI.VectorNonlinearFunction([g, x])
    +┌                                 ┐
    +│^(sin(MOI.VariableIndex(1)), 2.0)│
    +│+(MOI.VariableIndex(1))          │
    +└                                 ┘

    Note the automatic conversion from x to +(x).

    source

    Sets

    MathOptInterface.AbstractSetType
    AbstractSet

    Abstract supertype for set objects used to encode constraints.

    Required methods

    For sets of type S with isbitstype(S) == false, you must implement:

    • Base.copy(set::S)
    • Base.:(==)(x::S, y::S)

    Subtypes of AbstractSet such as AbstractScalarSet and AbstractVectorSet may prescribe additional required methods.

    Optional methods

    You may optionally implement:

    Note for developers

    When creating a new set, the set struct must not contain any VariableIndex or ConstraintIndex objects.

    source
    MathOptInterface.AbstractVectorSetType
    AbstractVectorSet

    Abstract supertype for subsets of $\mathbb{R}^n$ for some $n$.

    Required methods

    All AbstractVectorSets of type S must implement:

    • dimension, unless the dimension is stored in the set.dimension field
    • Utilities.set_dot, unless the dot product between two vectors in the set is equivalent to LinearAlgebra.dot.
    source

    Utilities

    MathOptInterface.dimensionFunction
    dimension(set::AbstractSet)

    Return the output_dimension that an AbstractFunction should have to be used with the set set.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> MOI.dimension(MOI.Reals(4))
    +4
    +
    +julia> MOI.dimension(MOI.LessThan(3.0))
    +1
    +
    +julia> MOI.dimension(MOI.PositiveSemidefiniteConeTriangle(2))
    +3
    source
    MathOptInterface.dual_setFunction
    dual_set(set::AbstractSet)

    Return the dual set of set, that is the dual cone of the set. This follows the definition of duality discussed in Duality.

    See Dual cone for more information.

    If the dual cone is not defined it returns an error.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> MOI.dual_set(MOI.Reals(4))
    +MathOptInterface.Zeros(4)
    +
    +julia> MOI.dual_set(MOI.SecondOrderCone(5))
    +MathOptInterface.SecondOrderCone(5)
    +
    +julia> MOI.dual_set(MOI.ExponentialCone())
    +MathOptInterface.DualExponentialCone()
    source
    MathOptInterface.dual_set_typeFunction
    dual_set_type(S::Type{<:AbstractSet})

    Return the type of dual set of sets of type S, as returned by dual_set. If the dual cone is not defined it returns an error.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> MOI.dual_set_type(MOI.Reals)
    +MathOptInterface.Zeros
    +
    +julia> MOI.dual_set_type(MOI.SecondOrderCone)
    +MathOptInterface.SecondOrderCone
    +
    +julia> MOI.dual_set_type(MOI.ExponentialCone)
    +MathOptInterface.DualExponentialCone
    source
    MathOptInterface.constantMethod
    constant(set::Union{EqualTo,GreaterThan,LessThan,Parameter})

    Returns the constant term of the set set.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> MOI.constant(MOI.GreaterThan(1.0))
    +1.0
    +
    +julia> MOI.constant(MOI.LessThan(2.5))
    +2.5
    +
    +julia> MOI.constant(MOI.EqualTo(3))
    +3
    +
    +julia> MOI.constant(MOI.Parameter(4.5))
    +4.5
    source
    MathOptInterface.supports_dimension_updateFunction
    supports_dimension_update(S::Type{<:MOI.AbstractVectorSet})

    Return a Bool indicating whether the elimination of any dimension of n-dimensional sets of type S give an n-1-dimensional set S. By default, this function returns false so it should only be implemented for sets that supports dimension update.

    For instance, supports_dimension_update(MOI.Nonnegatives) is true because the elimination of any dimension of the n-dimensional nonnegative orthant gives the n-1-dimensional nonnegative orthant. However supports_dimension_update(MOI.ExponentialCone) is false.

    source

    Scalar sets

    List of recognized scalar sets.

    MathOptInterface.GreaterThanType
    GreaterThan{T<:Real}(lower::T)

    The set $[lower, \infty) \subseteq \mathbb{R}$.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> model = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> x = MOI.add_variable(model)
    +MOI.VariableIndex(1)
    +
    +julia> MOI.add_constraint(model, x, MOI.GreaterThan(0.0))
    +MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.GreaterThan{Float64}}(1)
    source
    MathOptInterface.LessThanType
    LessThan{T<:Real}(upper::T)

    The set $(-\infty, upper] \subseteq \mathbb{R}$.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> model = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> x = MOI.add_variable(model)
    +MOI.VariableIndex(1)
    +
    +julia> MOI.add_constraint(model, x, MOI.LessThan(2.0))
    +MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.LessThan{Float64}}(1)
    source
    MathOptInterface.EqualToType
    EqualTo{T<:Number}(value::T)

    The set containing the single point $\{value\} \subseteq \mathbb{R}$.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> model = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> x = MOI.add_variable(model)
    +MOI.VariableIndex(1)
    +
    +julia> MOI.add_constraint(model, x, MOI.EqualTo(2.0))
    +MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.EqualTo{Float64}}(1)
    source
    MathOptInterface.IntervalType
    Interval{T<:Real}(lower::T, upper::T)

    The interval $[lower, upper] \subseteq \mathbb{R} \cup \{-\infty, +\infty\}$.

    If lower or upper is -Inf or Inf, respectively, the set is interpreted as a one-sided interval.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> model = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> x = MOI.add_variable(model)
    +MOI.VariableIndex(1)
    +
    +julia> MOI.add_constraint(model, x, MOI.Interval(1.0, 2.0))
    +MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.Interval{Float64}}(1)
    source
    MathOptInterface.IntegerType
    Integer()

    The set of integers, $\mathbb{Z}$.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> model = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> x = MOI.add_variable(model)
    +MOI.VariableIndex(1)
    +
    +julia> MOI.add_constraint(model, x, MOI.Integer())
    +MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.Integer}(1)
    source
    MathOptInterface.ZeroOneType
    ZeroOne()

    The set $\{0, 1\}$.

    Variables belonging to the ZeroOne set are also known as "binary" variables.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> model = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> x = MOI.add_variable(model)
    +MOI.VariableIndex(1)
    +
    +julia> MOI.add_constraint(model, x, MOI.ZeroOne())
    +MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.ZeroOne}(1)
    source
    MathOptInterface.SemicontinuousType
    Semicontinuous{T<:Real}(lower::T, upper::T)

    The set $\{0\} \cup [lower, upper]$.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> model = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> x = MOI.add_variable(model)
    +MOI.VariableIndex(1)
    +
    +julia> MOI.add_constraint(model, x, MOI.Semicontinuous(2.0, 3.0))
    +MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.Semicontinuous{Float64}}(1)
    source
    MathOptInterface.SemiintegerType
    Semiinteger{T<:Real}(lower::T, upper::T)

    The set $\{0\} \cup \{lower, lower+1, \ldots, upper-1, upper\}$.

    Note that if lower and upper are not equivalent to an integer, then the solver may throw an error, or it may round up lower and round down upper to the nearest integers.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> model = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> x = MOI.add_variable(model)
    +MOI.VariableIndex(1)
    +
    +julia> MOI.add_constraint(model, x, MOI.Semiinteger(2.0, 3.0))
    +MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.Semiinteger{Float64}}(1)
    source
    MathOptInterface.ParameterType
    Parameter{T<:Number}(value::T)

    The set containing the single point $\{value\} \subseteq \mathbb{R}$.

    The Parameter set is conceptually similar to the EqualTo set, except that a variable constrained to the Parameter set cannot have other constraints added to it, and the Parameter set can never be deleted. Thus, solvers are free to treat the variable as a constant, and they need not add it as a decision variable to the model.

    Because of this behavior, you must add parameters using add_constrained_variable, and solvers should declare supports_add_constrained_variable and not supports_constraint for the Parameter set.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> model = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> p, ci = MOI.add_constrained_variable(model, MOI.Parameter(2.5))
    +(MOI.VariableIndex(1), MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.Parameter{Float64}}(1))
    +
    +julia> MOI.set(model, MOI.ConstraintSet(), ci, MOI.Parameter(3.0))
    +
    +julia> MOI.get(model, MOI.ConstraintSet(), ci)
    +MathOptInterface.Parameter{Float64}(3.0)
    source

    Vector sets

    List of recognized vector sets.

    MathOptInterface.RealsType
    Reals(dimension::Int)

    The set $\mathbb{R}^{dimension}$ (containing all points) of non-negative dimension dimension.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> model = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> x = MOI.add_variables(model, 3);
    +
    +julia> MOI.add_constraint(model, MOI.VectorOfVariables(x), MOI.Reals(3))
    +MathOptInterface.ConstraintIndex{MathOptInterface.VectorOfVariables, MathOptInterface.Reals}(1)
    source
    MathOptInterface.ZerosType
    Zeros(dimension::Int)

    The set $\{ 0 \}^{dimension}$ (containing only the origin) of non-negative dimension dimension.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> model = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> x = MOI.add_variables(model, 3);
    +
    +julia> MOI.add_constraint(model, MOI.VectorOfVariables(x), MOI.Zeros(3))
    +MathOptInterface.ConstraintIndex{MathOptInterface.VectorOfVariables, MathOptInterface.Zeros}(1)
    source
    MathOptInterface.NonnegativesType
    Nonnegatives(dimension::Int)

    The nonnegative orthant $\{ x \in \mathbb{R}^{dimension} : x \ge 0 \}$ of non-negative dimension dimension.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> model = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> x = MOI.add_variables(model, 3);
    +
    +julia> MOI.add_constraint(model, MOI.VectorOfVariables(x), MOI.Nonnegatives(3))
    +MathOptInterface.ConstraintIndex{MathOptInterface.VectorOfVariables, MathOptInterface.Nonnegatives}(1)
    source
    MathOptInterface.NonpositivesType
    Nonpositives(dimension::Int)

    The nonpositive orthant $\{ x \in \mathbb{R}^{dimension} : x \le 0 \}$ of non-negative dimension dimension.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> model = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> x = MOI.add_variables(model, 3);
    +
    +julia> MOI.add_constraint(model, MOI.VectorOfVariables(x), MOI.Nonpositives(3))
    +MathOptInterface.ConstraintIndex{MathOptInterface.VectorOfVariables, MathOptInterface.Nonpositives}(1)
    source
    MathOptInterface.NormInfinityConeType
    NormInfinityCone(dimension::Int)

    The $\ell_\infty$-norm cone $\{ (t,x) \in \mathbb{R}^{dimension} : t \ge \lVert x \rVert_\infty = \max_i \lvert x_i \rvert \}$ of dimension dimension.

    The dimension must be at least 1.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> model = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> t = MOI.add_variable(model)
    +MOI.VariableIndex(1)
    +
    +julia> x = MOI.add_variables(model, 3);
    +
    +julia> MOI.add_constraint(model, MOI.VectorOfVariables([t; x]), MOI.NormInfinityCone(4))
    +MathOptInterface.ConstraintIndex{MathOptInterface.VectorOfVariables, MathOptInterface.NormInfinityCone}(1)
    source
    MathOptInterface.NormOneConeType
    NormOneCone(dimension::Int)

    The $\ell_1$-norm cone $\{ (t,x) \in \mathbb{R}^{dimension} : t \ge \lVert x \rVert_1 = \sum_i \lvert x_i \rvert \}$ of dimension dimension.

    The dimension must be at least 1.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> model = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> t = MOI.add_variable(model)
    +MOI.VariableIndex(1)
    +
    +julia> x = MOI.add_variables(model, 3);
    +
    +julia> MOI.add_constraint(model, MOI.VectorOfVariables([t; x]), MOI.NormOneCone(4))
    +MathOptInterface.ConstraintIndex{MathOptInterface.VectorOfVariables, MathOptInterface.NormOneCone}(1)
    source
    MathOptInterface.NormConeType
    NormCone(p::Float64, dimension::Int)

    The $\ell_p$-norm cone $\{ (t,x) \in \mathbb{R}^{dimension} : t \ge \left(\sum\limits_i |x_i|^p\right)^{\frac{1}{p}} \}$ of dimension dimension.

    The dimension must be at least 1.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> model = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> t = MOI.add_variable(model)
    +MOI.VariableIndex(1)
    +
    +julia> x = MOI.add_variables(model, 3);
    +
    +julia> MOI.add_constraint(model, MOI.VectorOfVariables([t; x]), MOI.NormCone(3, 4))
    +MathOptInterface.ConstraintIndex{MathOptInterface.VectorOfVariables, MathOptInterface.NormCone}(1)
    source
    MathOptInterface.SecondOrderConeType
    SecondOrderCone(dimension::Int)

    The second-order cone (or Lorenz cone or $\ell_2$-norm cone) $\{ (t,x) \in \mathbb{R}^{dimension} : t \ge \lVert x \rVert_2 \}$ of dimension dimension.

    The dimension must be at least 1.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> model = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> t = MOI.add_variable(model)
    +MOI.VariableIndex(1)
    +
    +julia> x = MOI.add_variables(model, 3);
    +
    +julia> MOI.add_constraint(model, MOI.VectorOfVariables([t; x]), MOI.SecondOrderCone(4))
    +MathOptInterface.ConstraintIndex{MathOptInterface.VectorOfVariables, MathOptInterface.SecondOrderCone}(1)
    source
    MathOptInterface.RotatedSecondOrderConeType
    RotatedSecondOrderCone(dimension::Int)

    The rotated second-order cone $\{ (t,u,x) \in \mathbb{R}^{dimension} : 2tu \ge \lVert x \rVert_2^2, t,u \ge 0 \}$ of dimension dimension.

    The dimension must be at least 2.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> model = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> t = MOI.add_variable(model)
    +MOI.VariableIndex(1)
    +
    +julia> u = MOI.add_variable(model)
    +MOI.VariableIndex(2)
    +
    +julia> x = MOI.add_variables(model, 3);
    +
    +julia> MOI.add_constraint(
    +           model,
    +           MOI.VectorOfVariables([t; u; x]),
    +           MOI.RotatedSecondOrderCone(5),
    +       )
    +MathOptInterface.ConstraintIndex{MathOptInterface.VectorOfVariables, MathOptInterface.RotatedSecondOrderCone}(1)
    source
    MathOptInterface.GeometricMeanConeType
    GeometricMeanCone(dimension::Int)

    The geometric mean cone $\{ (t,x) \in \mathbb{R}^{n+1} : x \ge 0, t \le \sqrt[n]{x_1 x_2 \cdots x_n} \}$, where dimension = n + 1 >= 2.

    Duality note

    The dual of the geometric mean cone is $\{ (u, v) \in \mathbb{R}^{n+1} : u \le 0, v \ge 0, -u \le n \sqrt[n]{\prod_i v_i} \}$, where dimension = n + 1 >= 2.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> model = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> t = MOI.add_variable(model)
    +MOI.VariableIndex(1)
    +
    +julia> x = MOI.add_variables(model, 3);
    +
    +julia> MOI.add_constraint(
    +           model,
    +           MOI.VectorOfVariables([t; x]),
    +           MOI.GeometricMeanCone(4),
    +       )
    +MathOptInterface.ConstraintIndex{MathOptInterface.VectorOfVariables, MathOptInterface.GeometricMeanCone}(1)
    source
    MathOptInterface.ExponentialConeType
    ExponentialCone()

    The 3-dimensional exponential cone $\{ (x,y,z) \in \mathbb{R}^3 : y \exp (x/y) \le z, y > 0 \}$.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> model = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> x = MOI.add_variables(model, 3);
    +
    +julia> MOI.add_constraint(model, MOI.VectorOfVariables(x), MOI.ExponentialCone())
    +MathOptInterface.ConstraintIndex{MathOptInterface.VectorOfVariables, MathOptInterface.ExponentialCone}(1)
    source
    MathOptInterface.DualExponentialConeType
    DualExponentialCone()

    The 3-dimensional dual exponential cone $\{ (u,v,w) \in \mathbb{R}^3 : -u \exp (v/u) \le \exp(1) w, u < 0 \}$.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> model = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> x = MOI.add_variables(model, 3);
    +
    +julia> MOI.add_constraint(model, MOI.VectorOfVariables(x), MOI.DualExponentialCone())
    +MathOptInterface.ConstraintIndex{MathOptInterface.VectorOfVariables, MathOptInterface.DualExponentialCone}(1)
    source
    MathOptInterface.PowerConeType
    PowerCone{T<:Real}(exponent::T)

    The 3-dimensional power cone $\{ (x,y,z) \in \mathbb{R}^3 : x^{exponent} y^{1-exponent} \ge |z|, x \ge 0, y \ge 0 \}$ with parameter exponent.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> model = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> x = MOI.add_variables(model, 3);
    +
    +julia> MOI.add_constraint(model, MOI.VectorOfVariables(x), MOI.PowerCone(0.5))
    +MathOptInterface.ConstraintIndex{MathOptInterface.VectorOfVariables, MathOptInterface.PowerCone{Float64}}(1)
    source
    MathOptInterface.DualPowerConeType
    DualPowerCone{T<:Real}(exponent::T)

    The 3-dimensional power cone $\{ (u,v,w) \in \mathbb{R}^3 : (\frac{u}{exponent})^{exponent} (\frac{v}{1-exponent})^{1-exponent} \ge |w|, u \ge 0, v \ge 0 \}$ with parameter exponent.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> model = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> x = MOI.add_variables(model, 3);
    +
    +julia> MOI.add_constraint(model, MOI.VectorOfVariables(x), MOI.DualPowerCone(0.5))
    +MathOptInterface.ConstraintIndex{MathOptInterface.VectorOfVariables, MathOptInterface.DualPowerCone{Float64}}(1)
    source
    MathOptInterface.RelativeEntropyConeType
    RelativeEntropyCone(dimension::Int)

    The relative entropy cone $\{ (u, v, w) \in \mathbb{R}^{1+2n} : u \ge \sum_{i=1}^n w_i \log(\frac{w_i}{v_i}), v_i \ge 0, w_i \ge 0 \}$, where dimension = 2n + 1 >= 1.

    Duality note

    The dual of the relative entropy cone is $\{ (u, v, w) \in \mathbb{R}^{1+2n} : \forall i, w_i \ge u (\log (\frac{u}{v_i}) - 1), v_i \ge 0, u > 0 \}$ of dimension dimension${}=2n+1$.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> model = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> u = MOI.add_variable(model);
    +
    +julia> v = MOI.add_variables(model, 3);
    +
    +julia> w = MOI.add_variables(model, 3);
    +
    +julia> MOI.add_constraint(
    +           model,
    +           MOI.VectorOfVariables([u; v; w]),
    +           MOI.RelativeEntropyCone(7),
    +       )
    +MathOptInterface.ConstraintIndex{MathOptInterface.VectorOfVariables, MathOptInterface.RelativeEntropyCone}(1)
    source
    MathOptInterface.NormSpectralConeType
    NormSpectralCone(row_dim::Int, column_dim::Int)

    The epigraph of the matrix spectral norm (maximum singular value function) $\{ (t, X) \in \mathbb{R}^{1 + row_dim \times column_dim} : t \ge \sigma_1(X) \}$, where $\sigma_i$ is the $i$th singular value of the matrix $X$ of non-negative row dimension row_dim and column dimension column_dim.

    The matrix X is vectorized by stacking the columns, matching the behavior of Julia's vec function.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> model = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> t = MOI.add_variable(model)
    +MOI.VariableIndex(1)
    +
    +julia> X = reshape(MOI.add_variables(model, 6), 2, 3)
    +2×3 Matrix{MathOptInterface.VariableIndex}:
    + MOI.VariableIndex(2)  MOI.VariableIndex(4)  MOI.VariableIndex(6)
    + MOI.VariableIndex(3)  MOI.VariableIndex(5)  MOI.VariableIndex(7)
    +
    +julia> MOI.add_constraint(
    +           model,
    +           MOI.VectorOfVariables([t; vec(X)]),
    +           MOI.NormSpectralCone(2, 3),
    +       )
    +MathOptInterface.ConstraintIndex{MathOptInterface.VectorOfVariables, MathOptInterface.NormSpectralCone}(1)
    source
    MathOptInterface.NormNuclearConeType
    NormNuclearCone(row_dim::Int, column_dim::Int)

    The epigraph of the matrix nuclear norm (sum of singular values function) $\{ (t, X) \in \mathbb{R}^{1 + row_dim \times column_dim} : t \ge \sum_i \sigma_i(X) \}$, where $\sigma_i$ is the $i$th singular value of the matrix $X$ of non-negative row dimension row_dim and column dimension column_dim.

    The matrix X is vectorized by stacking the columns, matching the behavior of Julia's vec function.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> model = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> t = MOI.add_variable(model)
    +MOI.VariableIndex(1)
    +
    +julia> X = reshape(MOI.add_variables(model, 6), 2, 3)
    +2×3 Matrix{MathOptInterface.VariableIndex}:
    + MOI.VariableIndex(2)  MOI.VariableIndex(4)  MOI.VariableIndex(6)
    + MOI.VariableIndex(3)  MOI.VariableIndex(5)  MOI.VariableIndex(7)
    +
    +julia> MOI.add_constraint(
    +           model,
    +           MOI.VectorOfVariables([t; vec(X)]),
    +           MOI.NormNuclearCone(2, 3),
    +       )
    +MathOptInterface.ConstraintIndex{MathOptInterface.VectorOfVariables, MathOptInterface.NormNuclearCone}(1)
    source
    MathOptInterface.SOS1Type
    SOS1{T<:Real}(weights::Vector{T})

    The set corresponding to the Special Ordered Set (SOS) constraint of Type I.

    Of the variables in the set, at most one can be nonzero.

    The weights induce an ordering of the variables such that the kth element in the set corresponds to the kth weight in weights. Solvers may use these weights to improve the efficiency of the solution process, but the ordering does not change the set of feasible solutions.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> model = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> x = MOI.add_variables(model, 3);
    +
    +julia> MOI.add_constraint(
    +           model,
    +           MOI.VectorOfVariables(x),
    +           MOI.SOS1([1.0, 3.0, 2.5]),
    +       )
    +MathOptInterface.ConstraintIndex{MathOptInterface.VectorOfVariables, MathOptInterface.SOS1{Float64}}(1)
    source
    MathOptInterface.SOS2Type
    SOS2{T<:Real}(weights::Vector{T})

    The set corresponding to the Special Ordered Set (SOS) constraint of Type II.

    The weights induce an ordering of the variables such that the kth element in the set corresponds to the kth weight in weights. Therefore, the weights must be unique.

    Of the variables in the set, at most two can be nonzero, and if two are nonzero, they must be adjacent in the ordering of the set.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> model = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> x = MOI.add_variables(model, 3);
    +
    +julia> MOI.add_constraint(
    +           model,
    +           MOI.VectorOfVariables(x),
    +           MOI.SOS2([1.0, 3.0, 2.5]),
    +       )
    +MathOptInterface.ConstraintIndex{MathOptInterface.VectorOfVariables, MathOptInterface.SOS2{Float64}}(1)
    source
    MathOptInterface.IndicatorType
    Indicator{A<:ActivationCondition,S<:AbstractScalarSet}(set::S)

    The set corresponding to an indicator constraint.

    When A is ACTIVATE_ON_ZERO, this means: $\{(y, x) \in \{0, 1\} \times \mathbb{R}^n : y = 0 \implies x \in set\}$

    When A is ACTIVATE_ON_ONE, this means: $\{(y, x) \in \{0, 1\} \times \mathbb{R}^n : y = 1 \implies x \in set\}$

    Notes

    Most solvers expect that the first row of the function is interpretable as a variable index x_i (e.g., 1.0 * x + 0.0). An error will be thrown if this is not the case.

    Example

    The constraint $\{(y, x) \in \{0, 1\} \times \mathbb{R}^2 : y = 1 \implies x_1 + x_2 \leq 9 \}$ is defined as

    julia> import MathOptInterface as MOI
    +
    +julia> model = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> x = MOI.add_variables(model, 2)
    +2-element Vector{MathOptInterface.VariableIndex}:
    + MOI.VariableIndex(1)
    + MOI.VariableIndex(2)
    +
    +julia> y, _ = MOI.add_constrained_variable(model, MOI.ZeroOne())
    +(MOI.VariableIndex(3), MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.ZeroOne}(3))
    +
    +julia> f = MOI.VectorAffineFunction(
    +           [
    +               MOI.VectorAffineTerm(1, MOI.ScalarAffineTerm(1.0, y)),
    +               MOI.VectorAffineTerm(2, MOI.ScalarAffineTerm(1.0, x[1])),
    +               MOI.VectorAffineTerm(2, MOI.ScalarAffineTerm(1.0, x[2])),
    +           ],
    +           [0.0, 0.0],
    +       )
    +┌                                                         ┐
    +│0.0 + 1.0 MOI.VariableIndex(3)                           │
    +│0.0 + 1.0 MOI.VariableIndex(1) + 1.0 MOI.VariableIndex(2)│
    +└                                                         ┘
    +
    +julia> s = MOI.Indicator{MOI.ACTIVATE_ON_ONE}(MOI.LessThan(9.0))
    +MathOptInterface.Indicator{MathOptInterface.ACTIVATE_ON_ONE, MathOptInterface.LessThan{Float64}}(MathOptInterface.LessThan{Float64}(9.0))
    +
    +julia> MOI.add_constraint(model, f, s)
    +MathOptInterface.ConstraintIndex{MathOptInterface.VectorAffineFunction{Float64}, MathOptInterface.Indicator{MathOptInterface.ACTIVATE_ON_ONE, MathOptInterface.LessThan{Float64}}}(1)
    source
    MathOptInterface.ComplementsType
    Complements(dimension::Base.Integer)

    The set corresponding to a mixed complementarity constraint.

    Complementarity constraints should be specified with an AbstractVectorFunction-in-Complements(dimension) constraint.

    The dimension of the vector-valued function F must be dimension. This defines a complementarity constraint between the scalar function F[i] and the variable in F[i + dimension/2]. Thus, F[i + dimension/2] must be interpretable as a single variable x_i (e.g., 1.0 * x + 0.0), and dimension must be even.

    The mixed complementarity problem consists of finding x_i in the interval [lb, ub] (i.e., in the set Interval(lb, ub)), such that the following holds:

    1. F_i(x) == 0 if lb_i < x_i < ub_i
    2. F_i(x) >= 0 if lb_i == x_i
    3. F_i(x) <= 0 if x_i == ub_i

    Classically, the bounding set for x_i is Interval(0, Inf), which recovers: 0 <= F_i(x) ⟂ x_i >= 0, where the operator implies F_i(x) * x_i = 0.

    Example

    The problem:

    x -in- Interval(-1, 1)
    +[-4 * x - 3, x] -in- Complements(2)

    defines the mixed complementarity problem where the following holds:

    1. -4 * x - 3 == 0 if -1 < x < 1
    2. -4 * x - 3 >= 0 if x == -1
    3. -4 * x - 3 <= 0 if x == 1

    There are three solutions:

    1. x = -3/4 with F(x) = 0
    2. x = -1 with F(x) = 1
    3. x = 1 with F(x) = -7
    julia> import MathOptInterface as MOI
    +
    +julia> model = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> x, _ = MOI.add_constrained_variable(model, MOI.Interval(-1.0, 1.0));
    +
    +julia> MOI.add_constraint(
    +            model,
    +            MOI.Utilities.vectorize([-4.0 * x - 3.0, x]),
    +            MOI.Complements(2),
    +        )
    +MathOptInterface.ConstraintIndex{MathOptInterface.VectorAffineFunction{Float64}, MathOptInterface.Complements}(1)

    The function F can also be defined in terms of single variables. For example, the problem:

    [x_3, x_4] -in- Nonnegatives(2)
    +[x_1, x_2, x_3, x_4] -in- Complements(4)

    defines the complementarity problem where 0 <= x_1 ⟂ x_3 >= 0 and 0 <= x_2 ⟂ x_4 >= 0.

    julia> import MathOptInterface as MOI
    +
    +julia> model = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> x = MOI.add_variables(model, 4);
    +
    +julia> MOI.add_constraint(model, MOI.VectorOfVariables(x[3:4]), MOI.Nonnegatives(2))
    +MathOptInterface.ConstraintIndex{MathOptInterface.VectorOfVariables, MathOptInterface.Nonnegatives}(1)
    +
    +julia> MOI.add_constraint(
    +            model,
    +            MOI.VectorOfVariables(x),
    +            MOI.Complements(4),
    +        )
    +MathOptInterface.ConstraintIndex{MathOptInterface.VectorOfVariables, MathOptInterface.Complements}(1)
    source
    MathOptInterface.HyperRectangleType
    HyperRectangle(lower::Vector{T}, upper::Vector{T}) where {T}

    The set $\{x \in \bar{\mathbb{R}}^d: x_i \in [lower_i, upper_i] \forall i=1,\ldots,d\}$.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> model = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> x = MOI.add_variables(model, 3)
    +3-element Vector{MathOptInterface.VariableIndex}:
    + MOI.VariableIndex(1)
    + MOI.VariableIndex(2)
    + MOI.VariableIndex(3)
    +
    +julia> MOI.add_constraint(
    +           model,
    +           MOI.VectorOfVariables(x),
    +           MOI.HyperRectangle(zeros(3), ones(3)),
    +       )
    +MathOptInterface.ConstraintIndex{MathOptInterface.VectorOfVariables, MathOptInterface.HyperRectangle{Float64}}(1)
    source
    MathOptInterface.ScaledType
    struct Scaled{S<:AbstractVectorSet} <: AbstractVectorSet
    +    set::S
    +end

    Given a vector $a \in \mathbb{R}^d$ and a set representing the set $\mathcal{S} \in \mathbb{R}^d$ such that Utilities.set_dot for $x \in \mathcal{S}$ and $y \in \mathcal{S}^*$ is

    \[\sum_{i=1}^d a_i x_i y_i\]

    the set Scaled(set) is defined as

    \[\{ (\sqrt{a_1} x_1, \sqrt{a_2} x_2, \ldots, \sqrt{a_d} x_d) : x \in S \}\]

    Example

    This can be used to scale a vector of numbers

    julia> import MathOptInterface as MOI
    +
    +julia> set = MOI.PositiveSemidefiniteConeTriangle(2)
    +MathOptInterface.PositiveSemidefiniteConeTriangle(2)
    +
    +julia> a = MOI.Utilities.SetDotScalingVector{Float64}(set)
    +3-element MathOptInterface.Utilities.SetDotScalingVector{Float64, MathOptInterface.PositiveSemidefiniteConeTriangle}:
    + 1.0
    + 1.4142135623730951
    + 1.0
    +
    +julia> using LinearAlgebra
    +
    +julia> MOI.Utilities.operate(*, Float64, Diagonal(a), ones(3))
    +3-element Vector{Float64}:
    + 1.0
    + 1.4142135623730951
    + 1.0

    It can be also used to scale a vector of function

    julia> model = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> x = MOI.add_variables(model, 3);
    +
    +julia> func = MOI.VectorOfVariables(x)
    +┌                    ┐
    +│MOI.VariableIndex(1)│
    +│MOI.VariableIndex(2)│
    +│MOI.VariableIndex(3)│
    +└                    ┘
    +
    +julia> set = MOI.PositiveSemidefiniteConeTriangle(2)
    +MathOptInterface.PositiveSemidefiniteConeTriangle(2)
    +
    +julia> MOI.Utilities.operate(*, Float64, Diagonal(a), func)
    +┌                                             ┐
    +│0.0 + 1.0 MOI.VariableIndex(1)               │
    +│0.0 + 1.4142135623730951 MOI.VariableIndex(2)│
    +│0.0 + 1.0 MOI.VariableIndex(3)               │
    +└                                             ┘
    source

    Constraint programming sets

    MathOptInterface.AllDifferentType
    AllDifferent(dimension::Int)

    The set $\{x \in \mathbb{Z}^{d}\}$ such that no two elements in $x$ take the same value and dimension = d.

    Also known as

    This constraint is called all_different in MiniZinc, and is sometimes also called distinct.

    Example

    To enforce x[1] != x[2] AND x[1] != x[3] AND x[2] != x[3]:

    julia> import MathOptInterface as MOI
    +
    +julia> model = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> x = [MOI.add_constrained_variable(model, MOI.Integer())[1] for _ in 1:3]
    +3-element Vector{MathOptInterface.VariableIndex}:
    + MOI.VariableIndex(1)
    + MOI.VariableIndex(2)
    + MOI.VariableIndex(3)
    +
    +julia> MOI.add_constraint(model, MOI.VectorOfVariables(x), MOI.AllDifferent(3))
    +MathOptInterface.ConstraintIndex{MathOptInterface.VectorOfVariables, MathOptInterface.AllDifferent}(1)
    source
    MathOptInterface.BinPackingType
    BinPacking(c::T, w::Vector{T}) where {T}

    The set $\{x \in \mathbb{Z}^d\}$ where d = length(w), such that each item i in 1:d of weight w[i] is put into bin x[i], and the total weight of each bin does not exceed c.

    There are additional assumptions that the capacity, c, and the weights, w, must all be non-negative.

    The bin numbers depend on the bounds of x, so they may be something other than the integers 1:d.

    Also known as

    This constraint is called bin_packing in MiniZinc.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> model = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> bins = MOI.add_variables(model, 5)
    +5-element Vector{MathOptInterface.VariableIndex}:
    + MOI.VariableIndex(1)
    + MOI.VariableIndex(2)
    + MOI.VariableIndex(3)
    + MOI.VariableIndex(4)
    + MOI.VariableIndex(5)
    +
    +julia> weights = Float64[1, 1, 2, 2, 3]
    +5-element Vector{Float64}:
    + 1.0
    + 1.0
    + 2.0
    + 2.0
    + 3.0
    +
    +julia> MOI.add_constraint.(model, bins, MOI.Integer())
    +5-element Vector{MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.Integer}}:
    + MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.Integer}(1)
    + MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.Integer}(2)
    + MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.Integer}(3)
    + MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.Integer}(4)
    + MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.Integer}(5)
    +
    +julia> MOI.add_constraint.(model, bins, MOI.Interval(4.0, 6.0))
    +5-element Vector{MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.Interval{Float64}}}:
    + MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.Interval{Float64}}(1)
    + MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.Interval{Float64}}(2)
    + MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.Interval{Float64}}(3)
    + MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.Interval{Float64}}(4)
    + MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.Interval{Float64}}(5)
    +
    +julia> MOI.add_constraint(model, MOI.VectorOfVariables(bins), MOI.BinPacking(3.0, weights))
    +MathOptInterface.ConstraintIndex{MathOptInterface.VectorOfVariables, MathOptInterface.BinPacking{Float64}}(1)
    source
    MathOptInterface.CircuitType
    Circuit(dimension::Int)

    The set $\{x \in \{1..d\}^d\}$ that constraints $x$ to be a circuit, such that $x_i = j$ means that $j$ is the successor of $i$, and dimension = d.

    Graphs with multiple independent circuits, such as [2, 1, 3] and [2, 1, 4, 3], are not valid.

    Also known as

    This constraint is called circuit in MiniZinc, and it is equivalent to forming a (potentially sub-optimal) tour in the travelling salesperson problem.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> model = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> x = [MOI.add_constrained_variable(model, MOI.Integer())[1] for _ in 1:3]
    +3-element Vector{MathOptInterface.VariableIndex}:
    + MOI.VariableIndex(1)
    + MOI.VariableIndex(2)
    + MOI.VariableIndex(3)
    +
    +julia> MOI.add_constraint(model, MOI.VectorOfVariables(x), MOI.Circuit(3))
    +MathOptInterface.ConstraintIndex{MathOptInterface.VectorOfVariables, MathOptInterface.Circuit}(1)
    source
    MathOptInterface.CountAtLeastType
    CountAtLeast(n::Int, d::Vector{Int}, set::Set{Int})

    The set $\{x \in \mathbb{Z}^{d_1 + d_2 + \ldots d_N}\}$, where x is partitioned into N subsets ($\{x_1, \ldots, x_{d_1}\}$, $\{x_{d_1 + 1}, \ldots, x_{d_1 + d_2}\}$ and so on), and at least $n$ elements of each subset take one of the values in set.

    Also known as

    This constraint is called at_least in MiniZinc.

    Example

    To ensure that 3 appears at least once in each of the subsets {a, b} and {b, c}:

    julia> import MathOptInterface as MOI
    +
    +julia> model = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> a, _ = MOI.add_constrained_variable(model, MOI.Integer())
    +(MOI.VariableIndex(1), MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.Integer}(1))
    +
    +julia> b, _ = MOI.add_constrained_variable(model, MOI.Integer())
    +(MOI.VariableIndex(2), MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.Integer}(2))
    +
    +julia> c, _ = MOI.add_constrained_variable(model, MOI.Integer())
    +(MOI.VariableIndex(3), MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.Integer}(3))
    +
    +julia> x, d, set = [a, b, b, c], [2, 2], [3]
    +(MathOptInterface.VariableIndex[MOI.VariableIndex(1), MOI.VariableIndex(2), MOI.VariableIndex(2), MOI.VariableIndex(3)], [2, 2], [3])
    +
    +julia> MOI.add_constraint(model, MOI.VectorOfVariables(x), MOI.CountAtLeast(1, d, Set(set)))
    +MathOptInterface.ConstraintIndex{MathOptInterface.VectorOfVariables, MathOptInterface.CountAtLeast}(1)
    source
    MathOptInterface.CountBelongsType
    CountBelongs(dimenson::Int, set::Set{Int})

    The set $\{(n, x) \in \mathbb{Z}^{1+d}\}$, such that n elements of the vector x take on of the values in set and dimension = 1 + d.

    Also known as

    This constraint is called among by MiniZinc.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> model = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> n, _ = MOI.add_constrained_variable(model, MOI.Integer())
    +(MOI.VariableIndex(1), MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.Integer}(1))
    +
    +julia> x = [MOI.add_constrained_variable(model, MOI.Integer())[1] for _ in 1:3]
    +3-element Vector{MathOptInterface.VariableIndex}:
    + MOI.VariableIndex(2)
    + MOI.VariableIndex(3)
    + MOI.VariableIndex(4)
    +
    +julia> set = Set([3, 4, 5])
    +Set{Int64} with 3 elements:
    +  5
    +  4
    +  3
    +
    +julia> MOI.add_constraint(model, MOI.VectorOfVariables([n; x]), MOI.CountBelongs(4, set))
    +MathOptInterface.ConstraintIndex{MathOptInterface.VectorOfVariables, MathOptInterface.CountBelongs}(1)
    source
    MathOptInterface.CountDistinctType
    CountDistinct(dimension::Int)

    The set $\{(n, x) \in \mathbb{Z}^{1+d}\}$, such that the number of distinct values in x is n and dimension = 1 + d.

    Also known as

    This constraint is called nvalues in MiniZinc.

    Example

    To model:

    • if n == 1`, thenx[1] == x[2] == x[3]`
    • if n == 2, then
      • x[1] == x[2] != x[3] or
      • x[1] != x[2] == x[3] or
      • x[1] == x[3] != x[2]
    • if n == 3, then x[1] != x[2], x[2] != x[3] and x[3] != x[1]
    julia> import MathOptInterface as MOI
    +
    +julia> model = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> n, _ = MOI.add_constrained_variable(model, MOI.Integer())
    +(MOI.VariableIndex(1), MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.Integer}(1))
    +
    +julia> x = [MOI.add_constrained_variable(model, MOI.Integer())[1] for _ in 1:3]
    +3-element Vector{MathOptInterface.VariableIndex}:
    + MOI.VariableIndex(2)
    + MOI.VariableIndex(3)
    + MOI.VariableIndex(4)
    +
    +julia> MOI.add_constraint(model, MOI.VectorOfVariables(vcat(n, x)), MOI.CountDistinct(4))
    +MathOptInterface.ConstraintIndex{MathOptInterface.VectorOfVariables, MathOptInterface.CountDistinct}(1)

    Relationship to AllDifferent

    When the first element is d, CountDistinct is equivalent to an AllDifferent constraint.

    source
    MathOptInterface.CountGreaterThanType
    CountGreaterThan(dimension::Int)

    The set $\{(c, y, x) \in \mathbb{Z}^{1+1+d}\}$, such that c is strictly greater than the number of occurances of y in x and dimension = 1 + 1 + d.

    Also known as

    This constraint is called count_gt in MiniZinc.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> model = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> c, _ = MOI.add_constrained_variable(model, MOI.Integer())
    +(MOI.VariableIndex(1), MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.Integer}(1))
    +
    +julia> y, _ = MOI.add_constrained_variable(model, MOI.Integer())
    +(MOI.VariableIndex(2), MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.Integer}(2))
    +
    +julia> x = [MOI.add_constrained_variable(model, MOI.Integer())[1] for _ in 1:3]
    +3-element Vector{MathOptInterface.VariableIndex}:
    + MOI.VariableIndex(3)
    + MOI.VariableIndex(4)
    + MOI.VariableIndex(5)
    +
    +julia> MOI.add_constraint(model, MOI.VectorOfVariables([c; y; x]), MOI.CountGreaterThan(5))
    +MathOptInterface.ConstraintIndex{MathOptInterface.VectorOfVariables, MathOptInterface.CountGreaterThan}(1)
    source
    MathOptInterface.CumulativeType
    Cumulative(dimension::Int)

    The set $\{(s, d, r, b) \in \mathbb{Z}^{3n+1}\}$, representing the cumulative global constraint, where n == length(s) == length(r) == length(b) and dimension = 3n + 1.

    Cumulative requires that a set of tasks given by start times $s$, durations $d$, and resource requirements $r$, never requires more than the global resource bound $b$ at any one time.

    Also known as

    This constraint is called cumulative in MiniZinc.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> model = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> s = [MOI.add_constrained_variable(model, MOI.Integer())[1] for _ in 1:3]
    +3-element Vector{MathOptInterface.VariableIndex}:
    + MOI.VariableIndex(1)
    + MOI.VariableIndex(2)
    + MOI.VariableIndex(3)
    +
    +julia> d = [MOI.add_constrained_variable(model, MOI.Integer())[1] for _ in 1:3]
    +3-element Vector{MathOptInterface.VariableIndex}:
    + MOI.VariableIndex(4)
    + MOI.VariableIndex(5)
    + MOI.VariableIndex(6)
    +
    +julia> r = [MOI.add_constrained_variable(model, MOI.Integer())[1] for _ in 1:3]
    +3-element Vector{MathOptInterface.VariableIndex}:
    + MOI.VariableIndex(7)
    + MOI.VariableIndex(8)
    + MOI.VariableIndex(9)
    +
    +julia> b, _ = MOI.add_constrained_variable(model, MOI.Integer())
    +(MOI.VariableIndex(10), MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.Integer}(10))
    +
    +julia> MOI.add_constraint(model, MOI.VectorOfVariables([s; d; r; b]), MOI.Cumulative(10))
    +MathOptInterface.ConstraintIndex{MathOptInterface.VectorOfVariables, MathOptInterface.Cumulative}(1)
    source
    MathOptInterface.PathType
    Path(from::Vector{Int}, to::Vector{Int})

    Given a graph comprised of a set of nodes 1..N and a set of arcs 1..E represented by an edge from node from[i] to node to[i], Path constrains the set $(s, t, ns, es) \in (1..N)\times(1..E)\times\{0,1\}^N\times\{0,1\}^E$, to form subgraph that is a path from node s to node t, where node n is in the path if ns[n] is 1, and edge e is in the path if es[e] is 1.

    The path must be acyclic, and it must traverse all nodes n for which ns[n] is 1, and all edges e for which es[e] is 1.

    Also known as

    This constraint is called path in MiniZinc.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> model = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> N, E = 4, 5
    +(4, 5)
    +
    +julia> from = [1, 1, 2, 2, 3]
    +5-element Vector{Int64}:
    + 1
    + 1
    + 2
    + 2
    + 3
    +
    +julia> to = [2, 3, 3, 4, 4]
    +5-element Vector{Int64}:
    + 2
    + 3
    + 3
    + 4
    + 4
    +
    +julia> s, _ = MOI.add_constrained_variable(model, MOI.Integer())
    +(MOI.VariableIndex(1), MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.Integer}(1))
    +
    +julia> t, _ = MOI.add_constrained_variable(model, MOI.Integer())
    +(MOI.VariableIndex(2), MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.Integer}(2))
    +
    +julia> ns = MOI.add_variables(model, N)
    +4-element Vector{MathOptInterface.VariableIndex}:
    + MOI.VariableIndex(3)
    + MOI.VariableIndex(4)
    + MOI.VariableIndex(5)
    + MOI.VariableIndex(6)
    +
    +julia> MOI.add_constraint.(model, ns, MOI.ZeroOne())
    +4-element Vector{MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.ZeroOne}}:
    + MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.ZeroOne}(3)
    + MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.ZeroOne}(4)
    + MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.ZeroOne}(5)
    + MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.ZeroOne}(6)
    +
    +julia> es = MOI.add_variables(model, E)
    +5-element Vector{MathOptInterface.VariableIndex}:
    + MOI.VariableIndex(7)
    + MOI.VariableIndex(8)
    + MOI.VariableIndex(9)
    + MOI.VariableIndex(10)
    + MOI.VariableIndex(11)
    +
    +julia> MOI.add_constraint.(model, es, MOI.ZeroOne())
    +5-element Vector{MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.ZeroOne}}:
    + MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.ZeroOne}(7)
    + MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.ZeroOne}(8)
    + MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.ZeroOne}(9)
    + MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.ZeroOne}(10)
    + MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.ZeroOne}(11)
    +
    +julia> MOI.add_constraint(model, MOI.VectorOfVariables([s; t; ns; es]), MOI.Path(from, to))
    +MathOptInterface.ConstraintIndex{MathOptInterface.VectorOfVariables, MathOptInterface.Path}(1)
    source
    MathOptInterface.ReifiedType
    Reified(set::AbstractSet)

    The constraint $[z; f(x)] \in Reified(S)$ ensures that $f(x) \in S$ if and only if $z == 1$, where $z \in \{0, 1\}$.

    julia> import MathOptInterface as MOI
    +
    +julia> model = MOI.Utilities.UniversalFallback(MOI.Utilities.Model{Float64}())
    +MOIU.UniversalFallback{MOIU.Model{Float64}}
    +fallback for MOIU.Model{Float64}
    +
    +julia> z, _ = MOI.add_constrained_variable(model, MOI.ZeroOne())
    +(MOI.VariableIndex(1), MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.ZeroOne}(1))
    +
    +julia> x = MOI.add_variable(model)
    +MOI.VariableIndex(2)
    +
    +julia> MOI.add_constraint(
    +           model,
    +           MOI.Utilities.vectorize([z, 2.0 * x]),
    +           MOI.Reified(MOI.GreaterThan(1.0)),
    +       )
    +MathOptInterface.ConstraintIndex{MathOptInterface.VectorAffineFunction{Float64}, MathOptInterface.Reified{MathOptInterface.GreaterThan{Float64}}}(1)
    source
    MathOptInterface.TableType
    Table(table::Matrix{T}) where {T}

    The set $\{x \in \mathbb{R}^d\}$ where d = size(table, 2), such that x belongs to one row of table. That is, there exists some j in 1:size(table, 1), such that x[i] = table[j, i] for all i=1:size(table, 2).

    Also known as

    This constraint is called table in MiniZinc.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> model = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> x = MOI.add_variables(model, 3)
    +3-element Vector{MathOptInterface.VariableIndex}:
    + MOI.VariableIndex(1)
    + MOI.VariableIndex(2)
    + MOI.VariableIndex(3)
    +
    +julia> table = Float64[1 1 0; 0 1 1; 1 0 1; 1 1 1]
    +4×3 Matrix{Float64}:
    + 1.0  1.0  0.0
    + 0.0  1.0  1.0
    + 1.0  0.0  1.0
    + 1.0  1.0  1.0
    +
    +julia> MOI.add_constraint(model, MOI.VectorOfVariables(x), MOI.Table(table))
    +MathOptInterface.ConstraintIndex{MathOptInterface.VectorOfVariables, MathOptInterface.Table{Float64}}(1)
    source

    Matrix sets

    Matrix sets are vectorized to be subtypes of AbstractVectorSet.

    For sets of symmetric matrices, storing both the (i, j) and (j, i) elements is redundant. Use the AbstractSymmetricMatrixSetTriangle set to represent only the vectorization of the upper triangular part of the matrix.

    When the matrix of expressions constrained to be in the set is not symmetric, and hence additional constraints are needed to force the equality of the (i, j) and (j, i) elements, use the AbstractSymmetricMatrixSetSquare set.

    The Bridges.Constraint.SquareBridge can transform a set from the square form to the triangular_form by adding appropriate constraints if the (i, j) and (j, i) expressions are different.

    MathOptInterface.AbstractSymmetricMatrixSetTriangleType
    abstract type AbstractSymmetricMatrixSetTriangle <: AbstractVectorSet end

    Abstract supertype for subsets of the (vectorized) cone of symmetric matrices, with side_dimension rows and columns. The entries of the upper-right triangular part of the matrix are given column by column (or equivalently, the entries of the lower-left triangular part are given row by row). A vectorized cone of dimension $n$ corresponds to a square matrix with side dimension $\sqrt{1/4 + 2 n} - 1/2$. (Because a $d \times d$ matrix has $d(d + 1) / 2$ elements in the upper or lower triangle.)

    Example

    The matrix

    \[\begin{bmatrix} + 1 & 2 & 4\\ + 2 & 3 & 5\\ + 4 & 5 & 6 +\end{bmatrix}\]

    has side_dimension 3 and vectorization $(1, 2, 3, 4, 5, 6)$.

    Note

    Two packed storage formats exist for symmetric matrices, the respective orders of the entries are:

    • upper triangular column by column (or lower triangular row by row);
    • lower triangular column by column (or upper triangular row by row).

    The advantage of the first format is the mapping between the (i, j) matrix indices and the k index of the vectorized form. It is simpler and does not depend on the side dimension of the matrix. Indeed,

    • the entry of matrix indices (i, j) has vectorized index k = div((j - 1) * j, 2) + i if $i \leq j$ and k = div((i - 1) * i, 2) + j if $j \leq i$;
    • and the entry with vectorized index k has matrix indices i = div(1 + isqrt(8k - 7), 2) and j = k - div((i - 1) * i, 2) or j = div(1 + isqrt(8k - 7), 2) and i = k - div((j - 1) * j, 2).

    Duality note

    The scalar product for the symmetric matrix in its vectorized form is the sum of the pairwise product of the diagonal entries plus twice the sum of the pairwise product of the upper diagonal entries; see [p. 634, 1]. This has important consequence for duality.

    Consider for example the following problem (PositiveSemidefiniteConeTriangle is a subtype of AbstractSymmetricMatrixSetTriangle)

    \[\begin{align*} + & \max_{x \in \mathbb{R}} & x + \\ + & \;\;\text{s.t.} & + (1, -x, 1) & \in \text{PositiveSemidefiniteConeTriangle}(2). +\end{align*}\]

    The dual is the following problem

    \[\begin{align*} + & \min_{x \in \mathbb{R}^3} & y_1 + y_3 + \\ + & \;\;\text{s.t.} & 2y_2 & = 1\\ + & & y & \in \text{PositiveSemidefiniteConeTriangle}(2). +\end{align*}\]

    Why do we use $2y_2$ in the dual constraint instead of $y_2$ ? The reason is that $2y_2$ is the scalar product between $y$ and the symmetric matrix whose vectorized form is $(0, 1, 0)$. Indeed, with our modified scalar products we have

    \[\langle +(0, 1, 0), +(y_1, y_2, y_3) +\rangle += +\mathrm{trace} +\begin{pmatrix} + 0 & 1\\ + 1 & 0 +\end{pmatrix} +\begin{pmatrix} + y_1 & y_2\\ + y_2 & y_3 +\end{pmatrix} += 2y_2.\]

    References

    [1] Boyd, S. and Vandenberghe, L.. Convex optimization. Cambridge university press, 2004.

    source
    MathOptInterface.AbstractSymmetricMatrixSetSquareType
    abstract type AbstractSymmetricMatrixSetSquare <: AbstractVectorSet end

    Abstract supertype for subsets of the (vectorized) cone of symmetric matrices, with side_dimension rows and columns. The entries of the matrix are given column by column (or equivalently, row by row). The matrix is both constrained to be symmetric and to have its triangular_form belong to the corresponding set. That is, if the functions in entries $(i, j)$ and $(j, i)$ are different, then a constraint will be added to make sure that the entries are equal.

    Example

    PositiveSemidefiniteConeSquare is a subtype of AbstractSymmetricMatrixSetSquare and constraining the matrix

    \[\begin{bmatrix} + 1 & -y\\ + -z & 0\\ +\end{bmatrix}\]

    to be symmetric positive semidefinite can be achieved by constraining the vector $(1, -z, -y, 0)$ (or $(1, -y, -z, 0)$) to belong to the PositiveSemidefiniteConeSquare(2). It both constrains $y = z$ and $(1, -y, 0)$ (or $(1, -z, 0)$) to be in PositiveSemidefiniteConeTriangle(2), since triangular_form(PositiveSemidefiniteConeSquare) is PositiveSemidefiniteConeTriangle.

    source

    List of recognized matrix sets.

    MathOptInterface.PositiveSemidefiniteConeSquareType
    PositiveSemidefiniteConeSquare(side_dimension::Int) <: AbstractSymmetricMatrixSetSquare

    The cone of symmetric positive semidefinite matrices, with non-negative side length side_dimension.

    See AbstractSymmetricMatrixSetSquare for more details on the vectorized form.

    The entries of the matrix are given column by column (or equivalently, row by row).

    The matrix is both constrained to be symmetric and to be positive semidefinite. That is, if the functions in entries $(i, j)$ and $(j, i)$ are different, then a constraint will be added to make sure that the entries are equal.

    Example

    Constraining the matrix

    \[\begin{bmatrix} + 1 & -y\\ + -z & 0\\ +\end{bmatrix}\]

    to be symmetric positive semidefinite can be achieved by constraining the vector $(1, -z, -y, 0)$ (or $(1, -y, -z, 0)$) to belong to the PositiveSemidefiniteConeSquare(2).

    It both constrains $y = z$ and $(1, -y, 0)$ (or $(1, -z, 0)$) to be in PositiveSemidefiniteConeTriangle(2).

    source
    MathOptInterface.HermitianPositiveSemidefiniteConeTriangleType
    HermitianPositiveSemidefiniteConeTriangle(side_dimension::Int) <: AbstractVectorSet

    The (vectorized) cone of Hermitian positive semidefinite matrices, with non-negative side_dimension rows and columns.

    Becaue the matrix is Hermitian, the diagonal elements are real, and the complex-valued lower triangular entries are obtained as the conjugate of corresponding upper triangular entries.

    Vectorization format

    The vectorized form starts with real part of the entries of the upper triangular part of the matrix, given column by column as explained in AbstractSymmetricMatrixSetSquare.

    It is then followed by the imaginary part of the off-diagonal entries of the upper triangular part, also given column by column.

    For example, the matrix

    \[\begin{bmatrix} + 1 & 2 + 7im & 4 + 8im\\ + 2 - 7im & 3 & 5 + 9im\\ + 4 - 8im & 5 - 9im & 6 +\end{bmatrix}\]

    has side_dimension 3 and is represented as the vector $[1, 2, 3, 4, 5, 6, 7, 8, 9]$.

    source
    MathOptInterface.LogDetConeTriangleType
    LogDetConeTriangle(side_dimension::Int)

    The log-determinant cone $\{ (t, u, X) \in \mathbb{R}^{2 + d(d+1)/2} : t \le u \log(\det(X/u)), u > 0 \}$, where the matrix X is represented in the same symmetric packed format as in the PositiveSemidefiniteConeTriangle.

    The non-negative argument side_dimension is the side dimension of the matrix X, i.e., its number of rows or columns.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> model = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> t = MOI.add_variable(model)
    +MOI.VariableIndex(1)
    +
    +julia> X = MOI.add_variables(model, 3);
    +
    +julia> MOI.add_constraint(
    +           model,
    +           MOI.VectorOfVariables([t; X]),
    +           MOI.LogDetConeTriangle(2),
    +       )
    +MathOptInterface.ConstraintIndex{MathOptInterface.VectorOfVariables, MathOptInterface.LogDetConeTriangle}(1)
    source
    MathOptInterface.LogDetConeSquareType
    LogDetConeSquare(side_dimension::Int)

    The log-determinant cone $\{ (t, u, X) \in \mathbb{R}^{2 + d^2} : t \le u \log(\det(X/u)), X \text{ symmetric}, u > 0 \}$, where the matrix X is represented in the same format as in the PositiveSemidefiniteConeSquare.

    Similarly to PositiveSemidefiniteConeSquare, constraints are added to ensure that X is symmetric.

    The non-negative argument side_dimension is the side dimension of the matrix X, i.e., its number of rows or columns.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> model = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> t = MOI.add_variable(model)
    +MOI.VariableIndex(1)
    +
    +julia> X = reshape(MOI.add_variables(model, 4), 2, 2)
    +2×2 Matrix{MathOptInterface.VariableIndex}:
    + MOI.VariableIndex(2)  MOI.VariableIndex(4)
    + MOI.VariableIndex(3)  MOI.VariableIndex(5)
    +
    +julia> MOI.add_constraint(
    +           model,
    +           MOI.VectorOfVariables([t; vec(X)]),
    +           MOI.LogDetConeSquare(2),
    +       )
    +MathOptInterface.ConstraintIndex{MathOptInterface.VectorOfVariables, MathOptInterface.LogDetConeSquare}(1)
    source
    MathOptInterface.RootDetConeTriangleType
    RootDetConeTriangle(side_dimension::Int)

    The root-determinant cone $\{ (t, X) \in \mathbb{R}^{1 + d(d+1)/2} : t \le \det(X)^{1/d} \}$, where the matrix X is represented in the same symmetric packed format as in the PositiveSemidefiniteConeTriangle.

    The non-negative argument side_dimension is the side dimension of the matrix X, i.e., its number of rows or columns.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> model = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> t = MOI.add_variable(model)
    +MOI.VariableIndex(1)
    +
    +julia> X = MOI.add_variables(model, 3);
    +
    +julia> MOI.add_constraint(
    +           model,
    +           MOI.VectorOfVariables([t; X]),
    +           MOI.RootDetConeTriangle(2),
    +       )
    +MathOptInterface.ConstraintIndex{MathOptInterface.VectorOfVariables, MathOptInterface.RootDetConeTriangle}(1)
    source
    MathOptInterface.RootDetConeSquareType
    RootDetConeSquare(side_dimension::Int)

    The root-determinant cone $\{ (t, X) \in \mathbb{R}^{1 + d^2} : t \le \det(X)^{1/d}, X \text{ symmetric} \}$, where the matrix X is represented in the same format as PositiveSemidefiniteConeSquare.

    Similarly to PositiveSemidefiniteConeSquare, constraints are added to ensure that X is symmetric.

    The non-negative argument side_dimension is the side dimension of the matrix X, i.e., its number of rows or columns.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> model = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> t = MOI.add_variable(model)
    +MOI.VariableIndex(1)
    +
    +julia> X = reshape(MOI.add_variables(model, 4), 2, 2)
    +2×2 Matrix{MathOptInterface.VariableIndex}:
    + MOI.VariableIndex(2)  MOI.VariableIndex(4)
    + MOI.VariableIndex(3)  MOI.VariableIndex(5)
    +
    +julia> MOI.add_constraint(
    +           model,
    +           MOI.VectorOfVariables([t; vec(X)]),
    +           MOI.RootDetConeSquare(2),
    +       )
    +MathOptInterface.ConstraintIndex{MathOptInterface.VectorOfVariables, MathOptInterface.RootDetConeSquare}(1)
    source
    diff --git a/previews/PR3545/moi/reference/variables/index.html b/previews/PR3545/moi/reference/variables/index.html new file mode 100644 index 00000000000..c23a4be568c --- /dev/null +++ b/previews/PR3545/moi/reference/variables/index.html @@ -0,0 +1,28 @@ + +Variables · JuMP

    Variables

    Functions

    MathOptInterface.add_variablesFunction
    add_variables(model::ModelLike, n::Int)::Vector{VariableIndex}

    Add n scalar variables to the model, returning a vector of variable indices.

    A AddVariableNotAllowed error is thrown if adding variables cannot be done in the current state of the model model.

    source
    MathOptInterface.add_constrained_variableFunction
    add_constrained_variable(
    +    model::ModelLike,
    +    set::AbstractScalarSet
    +)::Tuple{MOI.VariableIndex,
    +         MOI.ConstraintIndex{MOI.VariableIndex, typeof(set)}}

    Add to model a scalar variable constrained to belong to set, returning the index of the variable created and the index of the constraint constraining the variable to belong to set.

    By default, this function falls back to creating a free variable with add_variable and then constraining it to belong to set with add_constraint.

    source
    MathOptInterface.add_constrained_variablesFunction
    add_constrained_variables(
    +    model::ModelLike,
    +    sets::AbstractVector{<:AbstractScalarSet}
    +)::Tuple{
    +    Vector{MOI.VariableIndex},
    +    Vector{MOI.ConstraintIndex{MOI.VariableIndex,eltype(sets)}},
    +}

    Add to model scalar variables constrained to belong to sets, returning the indices of the variables created and the indices of the constraints constraining the variables to belong to each set in sets. That is, if it returns variables and constraints, constraints[i] is the index of the constraint constraining variable[i] to belong to sets[i].

    By default, this function falls back to calling add_constrained_variable on each set.

    source
    add_constrained_variables(
    +    model::ModelLike,
    +    set::AbstractVectorSet,
    +)::Tuple{
    +    Vector{MOI.VariableIndex},
    +    MOI.ConstraintIndex{MOI.VectorOfVariables,typeof(set)},
    +}

    Add to model a vector of variables constrained to belong to set, returning the indices of the variables created and the index of the constraint constraining the vector of variables to belong to set.

    By default, this function falls back to creating free variables with add_variables and then constraining it to belong to set with add_constraint.

    source
    MathOptInterface.supports_add_constrained_variableFunction
    supports_add_constrained_variable(
    +    model::ModelLike,
    +    S::Type{<:AbstractScalarSet}
    +)::Bool

    Return a Bool indicating whether model supports constraining a variable to belong to a set of type S either on creation of the variable with add_constrained_variable or after the variable is created with add_constraint.

    By default, this function falls back to supports_add_constrained_variables(model, Reals) && supports_constraint(model, MOI.VariableIndex, S) which is the correct definition for most models.

    Example

    Suppose that a solver supports only two kind of variables: binary variables and continuous variables with a lower bound. If the solver decides not to support VariableIndex-in-Binary and VariableIndex-in-GreaterThan constraints, it only has to implement add_constrained_variable for these two sets which prevents the user to add both a binary constraint and a lower bound on the same variable. Moreover, if the user adds a VariableIndex-in-GreaterThan constraint, implementing this interface (i.e., supports_add_constrained_variables) enables the constraint to be transparently bridged into a supported constraint.

    source
    MathOptInterface.supports_add_constrained_variablesFunction
    supports_add_constrained_variables(
    +    model::ModelLike,
    +    S::Type{<:AbstractVectorSet}
    +)::Bool

    Return a Bool indicating whether model supports constraining a vector of variables to belong to a set of type S either on creation of the vector of variables with add_constrained_variables or after the variable is created with add_constraint.

    By default, if S is Reals then this function returns true and otherwise, it falls back to supports_add_constrained_variables(model, Reals) && supports_constraint(model, MOI.VectorOfVariables, S) which is the correct definition for most models.

    Example

    In the standard conic form (see Duality), the variables are grouped into several cones and the constraints are affine equality constraints. If Reals is not one of the cones supported by the solvers then it needs to implement supports_add_constrained_variables(::Optimizer, ::Type{Reals}) = false as free variables are not supported. The solvers should then implement supports_add_constrained_variables(::Optimizer, ::Type{<:SupportedCones}) = true where SupportedCones is the union of all cone types that are supported; it does not have to implement the method supports_constraint(::Type{VectorOfVariables}, Type{<:SupportedCones}) as it should return false and it's the default. This prevents the user to constrain the same variable in two different cones. When a VectorOfVariables-in-S is added, the variables of the vector have already been created so they already belong to given cones. If bridges are enabled, the constraint will therefore be bridged by adding slack variables in S and equality constraints ensuring that the slack variables are equal to the corresponding variables of the given constraint function.

    Note that there may also be sets for which !supports_add_constrained_variables(model, S) and supports_constraint(model, MOI.VectorOfVariables, S). For instance, suppose a solver supports positive semidefinite variable constraints and two types of variables: binary variables and nonnegative variables. Then the solver should support adding VectorOfVariables-in-PositiveSemidefiniteConeTriangle constraints, but it should not support creating variables constrained to belong to the PositiveSemidefiniteConeTriangle because the variables in PositiveSemidefiniteConeTriangle should first be created as either binary or non-negative.

    source
    MathOptInterface.is_validMethod
    is_valid(model::ModelLike, index::Index)::Bool

    Return a Bool indicating whether this index refers to a valid object in the model model.

    source
    MathOptInterface.deleteMethod
    delete(model::ModelLike, index::Index)

    Delete the referenced object from the model. Throw DeleteNotAllowed if if index cannot be deleted.

    The following modifications also take effect if Index is VariableIndex:

    • If index used in the objective function, it is removed from the function, i.e., it is substituted for zero.
    • For each func-in-set constraint of the model:
      • If func isa VariableIndex and func == index then the constraint is deleted.
      • If func isa VectorOfVariables and index in func.variables then
        • if length(func.variables) == 1 is one, the constraint is deleted;
        • if length(func.variables) > 1 and supports_dimension_update(set) then then the variable is removed from func and set is replaced by update_dimension(set, MOI.dimension(set) - 1).
        • Otherwise, a DeleteNotAllowed error is thrown.
      • Otherwise, the variable is removed from func, i.e., it is substituted for zero.
    source
    MathOptInterface.deleteMethod
    delete(model::ModelLike, indices::Vector{R<:Index}) where {R}

    Delete the referenced objects in the vector indices from the model. It may be assumed that R is a concrete type. The default fallback sequentially deletes the individual items in indices, although specialized implementations may be more efficient.

    source

    Attributes

    MathOptInterface.VariableNameType
    VariableName()

    A variable attribute for a string identifying the variable. It is valid for two variables to have the same name; however, variables with duplicate names cannot be looked up using get. It has a default value of "" if not set`.

    source
    MathOptInterface.VariablePrimalStartType
    VariablePrimalStart()

    A variable attribute for the initial assignment to some primal variable's value that the optimizer may use to warm-start the solve. May be a number or nothing (unset).

    source
    MathOptInterface.VariablePrimalType
    VariablePrimal(result_index::Int = 1)

    A variable attribute for the assignment to some primal variable's value in result result_index. If result_index is omitted, it is 1 by default.

    If the solver does not have a primal value for the variable because the result_index is beyond the available solutions (whose number is indicated by the ResultCount attribute), getting this attribute must throw a ResultIndexBoundsError. Otherwise, if the result is unavailable for another reason (for instance, only a dual solution is available), the result is undefined. Users should first check PrimalStatus before accessing the VariablePrimal attribute.

    See ResultCount for information on how the results are ordered.

    source
    MathOptInterface.VariableBasisStatusType
    VariableBasisStatus(result_index::Int = 1)

    A variable attribute for the BasisStatusCode of a variable in result result_index, with respect to an available optimal solution basis.

    If the solver does not have a basis statue for the variable because the result_index is beyond the available solutions (whose number is indicated by the ResultCount attribute), getting this attribute must throw a ResultIndexBoundsError. Otherwise, if the result is unavailable for another reason (for instance, only a dual solution is available), the result is undefined. Users should first check PrimalStatus before accessing the VariableBasisStatus attribute.

    See ResultCount for information on how the results are ordered.

    source
    diff --git a/previews/PR3545/moi/release_notes/index.html b/previews/PR3545/moi/release_notes/index.html new file mode 100644 index 00000000000..b3e99adc4e7 --- /dev/null +++ b/previews/PR3545/moi/release_notes/index.html @@ -0,0 +1,34 @@ + +Release notes · JuMP

    Release notes

    The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

    v1.20.1 (September 24, 2023)

    Fixed

    Other

    • Added MathOptSetDistances to solver-tests.yml (#2265)
    • Updated Documenter (#2266)
    • Fixed various JET errors (#2267) (#2269) (#2270) (#2271) (#2276) (#2277) (#2289)
    • Various style improvements
      • Replaced using Package with import Package where possible (#2274)
      • Removed Utilities.EMPTYSTRING (#2283)
      • Removed unnecessary const acronyms in Utilities (#2280) (#2281)
      • Removed invalid and unused method (#2286)
    • Refactored src/Utilities/model.jl (#2287)

    v1.20.0 (September 7, 2023)

    Added

    Other

    v1.19.0 (August 15, 2023)

    Added

    Fixed

    Other

    • Added extensions to solver-tests.yml (#2229)
    • Refactored test/Benchmarks (#2234)
    • Fixed warnings in tests (#2241) (#2243)
    • Small refactoring of bridges for upcoming VectorNonlinearFunction (#2244) (#2245)
    • Fixed various typos (#2251) (#2255)
    • Partitioned how we run the tests on GitHub actions (#2252) (#2253)

    v1.18.0 (June 23, 2023)

    Added

    Fixed

    • Fixed a missing @require in MOI.Test (#2195) (#2196)
    • Fixed incorrect usage of Utilities.operate! in bridges (#2207) (#2216)
    • Fixed splatting nonlinear expression with univariate operator (#2221)

    Other

    • Removed unused argument names (#2199)
    • Reduced memory requirement for tests (#2204)
    • Refactored Utilities.promote_operation (#2206)
    • Improved code style in Utilities/mutable_arithmetics.jl (#2209)
    • Refactored various methods in Utilities/functions.jl (#2208) (#2212) (#2213) (#2214) (#2215)

    v1.17.1 (June 6, 2023)

    Fixed

    Other

    • Added documentation for enum instances (#2186)
    • Updated chatroom links in documentation (#2188)
    • Changed the documentation to build on Julia v1.9 (#2191)

    v1.17.0 (June 1, 2023)

    Added

    Fixed

    • Fixed support for external sets in Utilities.loadfromstring! (#2177)
    • Fixed promote_operation for ScalarNonlinearFunction (#2179)
    • Fixed two issues in FileFormats.LP when reading files with quadratic functions (#2182) (#2184)

    v1.16.0 (May 16, 2023)

    Added

    Fixed

    Other

    • Fixed solver-tests.yml (#2157)
    • Updated documentation links to developer chatroom (#2160)
    • Added various tests for bridges (#2156)
    • Added checklists to the developer documentation (#2167) (#2168)

    v1.15.1 (April 25, 2023)

    Fixed

    • Fixed deleting a variable in a bridged objective (#2150)

    v1.15.0 (April 19, 2023)

    Added

    Fixed

    Other

    • Add a test for variables in one-sided open Interval sets (#2133)
    • Minor style fixes in the source code (#2148)

    v1.14.1 (April 6, 2023)

    Fixed

    Other

    v1.14.0 (April 4, 2023)

    Added

    Fixed

    v1.13.2 (March 21, 2023)

    Fixed

    Other

    • Fixed typos in the documentation (#2114)
    • Functions now print to the REPL in algebraic form. This is potentially breaking if you have tests which rely on a specific String form of MOI functions. (#2112) (#2126)

    v1.13.1 (March 3, 2023)

    Other

    • Added the Google style guide to the documentation linter Vale, and fixed the resulting warnings (#2110)
    • Improved the docstrings in src/functions.jl (#2108)

    v1.13.0 (February 28, 2023)

    Added

    Fixed

    Other

    • Added tests for vector-valued objective functions in FileFormats.MOF (#2093)
    • Used and documented preference for import MathOptInterface as MOI (#2096)
    • Fix and test links in the documentation with linkcheck = true (#2098)
    • Improved docstrings of sets in src/sets.jl (#2099)
    • Skip checking flakey links in documentation with linkcheck_ignore (#2103)

    v1.12.0 (February 10, 2023)

    Added

    Fixed

    • Fixed a number of constraint bridges so that Bridges.final_touch can be called multiple times without forcing a rebuild of the reformulation (#2089)

    Other

    v1.11.5 (January 24, 2023)

    Fixed

    • Fixed a bug writing .lp files with an off-diagonal quadratic objective (#2082)

    Other

    • Added SnoopPrecompile directives for reduced time-to-first-X in Julia v1.9 (#2080)

    v1.11.4 (January 12, 2023)

    Fixed

    • Fixed a bug reading .lp files with an Integer section (#2078)

    v1.11.3 (January 12, 2023)

    Fixed

    • Fixed a performance bug when deleting a vector of constraints (#2072)
    • Fixed a bug reading .lp files with terms like x -1 y (#2076)

    Other

    v1.11.2 (January 2, 2023)

    Fixed

    • Fixed a bug reading .mof.json files with ConstraintName set for VariableIndex constraints (#2066)
    • Fixed a bug reading .mof.json files with nonlinear objectives and no constraints (#2068)

    v1.11.1 (December 22, 2022)

    Fixed

    • Fixed a bug reading .mof.json files with integer coefficients for affine and quadratic functions (#2063)

    v1.11.0 (December 2, 2022)

    Added

    Other

    • Tidied these release notes (#2055)

    v1.10.0 (November 22, 2022)

    Added

    Fixed

    • Fixed Bridges.Objective.SlackBridge when the objective function is complex-valued (#2036) (#2038)
    • Fixed docstring of Test.runtests to clarify the warn_unsupported argument (#2037)
    • Fixed reading of free variables in FileFormats.LP (#2044)
    • Fixed numerous edge cases reading files from QPLIB using FileFormats.LP (#2042) (#2044)
    • Fixed situations in which x^y returns a complex value in Nonlinear (#2050)

    Other

    • Improved the error message thrown when a user-defined nonlinear function does not accept splatted input (#2032)
    • Removed specialized iterators for keys and values in Utilities.CleverDicts (#2051)

    v1.9.0 (October 29, 2022)

    Added

    Fixed

    • Fixed Constraint.ZeroOneBridge by adding new bounds as affine constraints instead of variable bounds (#1879)
    • Fixed reading free rows in FileFormats.MPS files (#2009)
    • Fixed parsing of OBJSENSE blocks in FileFormats.MPS files (#2016) (#2019)
    • Fixed the parsing of deeply nested nonlinear expressions by removing the use of recursion (#2020)
    • Fixed the requirements check in Test.test_constrainnt_get_ConstraintIndex (#2024)

    v1.8.2 (September 20, 2022)

    Documentation

    • Added vale as a documentation linter (#2002)
    • Improved styling of code blocks in the PDF (#1999) (#2000)
    • Fixed a number of typos in the documentation (#2001) (#2003)

    v1.8.1 (September 12, 2022)

    Fixed

    • Fixed a bug in supports(::AbstractBridgeOptimizer for constraint attributes (#1991) (#1992)

    v1.8.0 (September 1, 2022)

    Added

    Fixed

    • Lazily construct expressions in Nonlinear so that expressions are updated when Nonlinear.Parameter values are updated (#1984)
    • Allow NORM_LIMIT as a TerminationStatus for unbounded problems in Test (#1990)

    v1.7.0 (August 16, 2022)

    Added

    Fixed

    • Fixed some missing promotion rules

    Other

    • Improved the performance of Jacobian products in Nonlinear
    • Removed an un-needed copy in Utilities.modify_function
    • Various clean-ups in Bridges/bridge_optimizer.jl

    v1.6.1 (July 23, 2022)

    Fixed

    • Added support for ExponentialCone in MatrixOfConstraints
    • Fix PSDSquare_3 test to reflect a previously fixed bug getting the ConstraintDual of a PositiveSemidefiniteConeSquare constraint

    v1.6.0 (July 2, 2022)

    Added

    • Added Bridges.needs_final_touch and Bridges.final_touch
    • Added new bridges from constraint programming sets to mixed-integer linear programs:
      • AllDifferentToCountDistinctBridge
      • CountAtLeastToCountBelongsBridge
      • CountBelongsToMILPBridge
      • CountDistinctToMILPBridge
      • CountGreaterThanToMILPBridge
      • CircuitToMILPBridge

    Fixed

    • Relax an instance of ::Vector to ::AbstractVector in MOI.Nonlinear
    • Fix BinPackingToMILPBridge to respect variable bounds
    • Fix SemiToBinaryBridge to throw error if other bounds are set

    v1.5.0 (June 27, 2022)

    Added

    • Added GetAttributeNotAllowed for solvers to indicate when getting an attribute encounters an error
    • Added Utilities.get_fallback support for ObjectiveValue and DualObjectiveValue
    • Added new bridges:
      • RootDetConeSquare to RootDetConeTriangle
      • LogDetConeSquare to LogDetConeTriangle
      • BinPacking to a mixed-integer linear program
      • Table to a mixed-integer linear program
    • Added Bridges.print_active_bridges to display the current optimal hyper-path in a Bridges.LazyBridgeOptimizer

    Fixed

    • Fixed ZeroOne tests with lower and upper bounds
    • Fixed error in FileFormats.LP when reading a malformed file
    • Fixed reading of nonlinear programs in FileFormats.MOF
    • Fixed bug in ConstraintDual when using SquareBridge

    Other

    • Improved documentation of nonlinear API
    • Documented duality convention for PositiveSemidefiniteConeSquare sets
    • Fixed typo in Bridges.Constraint.QuadToSOCBridge docstring

    v1.4.0 (June 9, 2022)

    Added

    • Added a number of sets for constraint programming:
      • AllDifferent
      • BinPacking
      • Circuit
      • CountAtLeast
      • CountBelongs
      • CountDistinct
      • CountGreaterThan
      • Cumulative
      • Path
      • Table
    • Added support for user-defined hessians in Nonlinear
    • Added Bridges.runtests to simplify the testing of bridge implementations

    Fixed

    • Fixed a bug in FileFormats.NL when writing univariate *

    Other

    • Began a large refactoring of the Bridges submodule, with greatly improved documentation.

    v1.3.0 (May 27, 2022)

    Added

    • Add MOI.Nonlinear submodule. This is a large new submodule that has been refactored from code that was in JuMP. For now, it should be considered experimental.
    • Add FileFormats.NL.SolFileResults(::IO, ::Model)
    • Add FileFormats.NL.read!(::IO, ::Model)
    • Add MOI.modify that accepts a vector of modifications

    Fixed

    • Fixed a bug in Test which attempted to include non-.jl files
    • Fixed a bug in FileFormats for models with open interval constraints

    Other

    • Fixed a performance issue in Utilities.DoubleDict
    • Various minor improvements to the documentation

    v1.2.0 (April 25, 2022)

    Added

    • Add support for the FORMAT_REW/.rew file format in FileFormats.

    Fixed

    • Fix bug handling of default variable bounds in FileFormats.LP
    • Fix FileFormats.MPS to not write OBJSENSE by default since this is only supported by some readers.

    v1.1.2 (March 31, 2022)

    Fixed

    • Fix a range of bugs in FileFormats.LP
    • Fix reading of problem dimensions in FileFormats.SDPA

    v1.1.1 (March 23, 2022)

    Fixed

    • Fix bug in test_model_UpperBoundAlreadySet
    • Fix bug in test_infeasible_ tests
    • Fix bug in test_objective_ObjectiveFunction_blank
    • Relax restriction of MOI.AbstractOptimizer to MOI.ModelLike in Utilities.CachingOptimizer and instantiate.

    New tests

    • Add test_conic_empty_matrix that checks conic solvers support problems with no variables.

    v1.1.0 (March 2, 2022)

    Added

    • Added MOI.Utilities.throw_unsupported(::UniversalFallback) for simplifying solver wrappers which copy from a UniversalFallback.

    v1.0.2 (March 1, 2022)

    Fixed

    • Fixed a bug in the test_model_ScalarFunctionConstantNotZero test
    • Fixed the error type when an AbstractFunctionConversionBridge cannot get or set an attribute
    • Identified a correctness bug in RSOCtoPSDBridge. We now thrown an error instead of returning an incorrect result.

    v1.0.1 (February 25, 2022)

    Fixed

    • Fixed a bug in which OptimizerAttributes were not copied in CachingOptimizer
    • Fixed a bug in which shift_constant did not promote mixed types of coefficients
    • Fixed a bug in which deleting a constraint of a bridged variable threw ErrorException instead of MOI.DeleteNotAllowed
    • Fixed a bug in which add_constraint in MatrixOfConstraints did not canonicalize the function
    • Fixed a bug when modifying scalar constants of a function containing a bridged variable
    • Fixed a bug in which final_touch was not always called with a CachingOptimizer

    v1.0.0 (February 17, 2022)

    Although tagged as a breaking release, v1.0.0 is v0.10.9 with deprecations removed, similar to how Julia 1.0 was Julia 0.7 with deprecations removed.

    Breaking

    • Julia 1.6 is now the minimum supported version
    • All deprecations have been removed

    Troubleshooting problems when updating

    If you experience problems when updating, you are likely using previously deprecated features. (By default, Julia does not warn when you use deprecated features.)

    To find the deprecated features you are using, start Julia with --depwarn=yes:

    $ julia --depwarn=yes

    Then install MathOptInterface v0.10.9:

    julia> using Pkg
    +julia> pkg"add MathOptInterface@0.10"

    And then run your code. Apply any suggestions, or search the release notes below for advice on updating a specific deprecated feature.

    v0.10.9 (February 16, 2022)

    Added

    • Added MOI.Utilities.FreeVariables as a new VariablesConstrainer for conic solvers
    • Added MOI.default_cache for specifying the model used in CachingOptimizer

    Fixed

    • Fixed LaTeX printing of MOI.Interval sets

    Other

    • Added Aqua.jl as a CI check, and fixed suggested issues
    • The constructors of GeoMeanBridge, StructOfConstraints, and CachingOptimizer were changed from outer to inner constructors. This change is technically breaking, but does not impact users who followed the documented API.

    v0.10.8 (February 3, 2022)

    Added

    • Added a Base.read! for FileFormats.LP.

    Fixed

    • Fixed a bug in MutableSparseMatrix
    • Fixed a bug when calling operate!(vcat, ...) with Number arguments
    • Removed unintended export of deprecated symbols
    • Fixed a bug with PowerCone and DualPowerCone in MatrixOfConstraints.

    v0.10.7 (January 5, 2022)

    Added

    • Added test for modifying the constant vector in a VectorAffineFunction-in-Zeros constraint.

    Fixed

    • Fixed the order in which sets are added to a LazyBridgeOptimizer. Compared to v0.10.6, this may result in bridged models being created with a different number (and order) of variables and constraints. However, it was necessary to fix cases which were previously rejected as unsupported, even though there was a valid bridge transformation.
    • Fixed an error message in FileFormats.CBF
    • Fixed comparison in test_linear_integration_Interval
    • Fixed errors for ConstraintPrimal in a CachingOptimizer
    • Fixed printing of models with non-Float64 coefficients.

    Other

    • Various improvements to reduce time-to-first-solve latency
    • Improved error message when an optimizer does not support compute_conflict!

    v0.10.6 (November 30, 2021)

    Added

    • Added new documentation and tests for infeasibility certificates
    • Added a version control system for the tests in MOI.Test.runtests. Pass exclude_tests_after = v"0.10.5" to run tests added in v0.10.5 and earlier.
    • MOI.Test.runtests now supports generic number types. To specify the number type T, pass MOI.Test.Config(T).
    • Added infeasible_status to MOI.Test.Config for solvers which return LOCALLY_INFEASIBLE
    • CachingOptimizers now use a fallback for ConstraintPrimal. This should enable solvers using a CachingOptimizer to pass tests requiring ConstraintPrimal.

    Fixed

    • Fixed a StackOverflow bug in copy_to
    • Fixed error thrown when nonconvex quadratic constraints cannot be bridged
    • Fixed a bug in copy_to for FileFormats.NL.Model
    • Fixed a bug in FileFormats.NL when printing large integers
    • Remove a common test failure for LowerBoundAlreadySet tests
    • Utilities.num_rows is now exported
    • Remove parts of failing test_model_copy_to_xxx tests due to bridges

    v0.10.5 (November 7, 2021)

    Fixed

    • Fixed getter in UniversalFallback
    • Fixed test_solve_conflict_zeroone_ii

    Other

    • Make normalize_and_add_constraint more flexible
    • Update paper BibTeX

    v0.10.4 (October 26, 2021)

    Added

    • Add SolverVersion attribute
    • Add new tests:
      • test_solve_conflict_zeroone_ii
      • test_nonlinear_objective
    • Utilities.VariablesContainer now supports ConstraintFunction and ConstraintSet
    • The documentation is now available as a PDF

    Other

    • Update to MutableArithmetics 0.3
    • Various improvements to the documentation

    v0.10.3 (September 18, 2021)

    Fixed

    • Fixed bug which prevented callbacks from working through a CachingOptimizer
    • Fixed bug in Test submodule

    v0.10.2 (September 16, 2021)

    • Updated MathOptFormat to v1.0
    • Updated JSONSchema to v1.0
    • Added Utilities.set_with_dimension
    • Added two-argument optimize!(::AbstractOptimizer, ::ModelLike)
    • The experimental feature copy_to_and_optimize! has been removed
    • Det bridges now support getting ConstraintFunction and ConstraintSet
    • Various minor bug fixes identified by improved testing

    v0.10.1 (September 8, 2021)

    • Various fixes to MOI.Test

    v0.10.0 (September 6, 2021)

    MOI v0.10 is a significant breaking release. There are a large number of user-visible breaking changes and code refactors, as well as a substantial number of new features.

    Breaking in MOI

    • SingleVariable has been removed; use VariableIndex instead
    • SingleVariableConstraintNameError has been renamed to VariableIndexConstraintNameError
    • SettingSingleVariableFunctionNotAllowed has been renamed to SettingVariableIndexFunctionNotAllowed
    • VariableIndex constraints should not support ConstraintName
    • VariableIndex constraints should not support ConstraintBasisStatus; implement VariableBasisStatus instead
    • ListOfConstraints has been renamed to ListOfConstraintTypesPresent
    • ListOfConstraintTypesPresent should now return Tuple{Type,Type} instead of Tuple{DataType,DataType}
    • SolveTime has been renamed to SolveTimeSec
    • IndicatorSet has been renamed to Indicator
    • RawParameter has been renamed to RawOptimizerAttribute and now takes String instead of Any as the only argument
    • The .N field in result attributes has been renamed to .result_index
    • The .variable_index field in ScalarAffineTerm has been renamed to .variable
    • The .variable_index_1 field in ScalarQuadraticTerm has been renamed to .variable_1
    • The .variable_index_2 field in ScalarQuadraticTerm has been renamed to .variable_2
    • The order of affine_terms and quadratic_terms in ScalarQuadraticFunction and VectorQuadraticFunction have been reversed. Both functions now accept quadratic, affine, and constant terms in that order.
    • The index_value function has been removed. Use .value instead.
    • isapprox has been removed for SOS1 and SOS2.
    • The dimension argument to Complements(dimension::Int) should now be the length of the corresponding function, instead of half the length. An ArgumentError is thrown if dimension is not even.
    • copy_to no longer takes keyword arguments:
      • copy_names: now copy names if they are supported by the destination solver
      • filter_constraints: use Utilities.ModelFilter instead
      • warn_attributes: never warn about optimizer attributes

    Breaking in Bridges

    • Constraint.RSOCBridge has been renamed to Constraint.RSOCtoSOCBridge
    • Constraint.SOCRBridge has been renamed to Constraint.SOCtoRSOCBridge
    • Bridges now return vectors that can be modified by the user. Previously, some bridges returned views instead of copies.
    • Bridges.IndexInVector has been unified into a single type. Previously, there was a different type for each submodule within Bridges
    • The signature of indicator bridges has been fixed. Use MOI.Bridges.Constraint.IndicatortoSOS1{Float64}(model).

    Breaking in FileFormats

    • FileFormats.MOF.Model no longer accepts validate argument. Use the JSONSchema package to validate the MOF file. See the documentation for more information.

    Breaking in Utilities

    • The datastructure of Utilities.Model (and models created with Utilities.@model) has been significantly refactored in a breaking way. This includes the way that objective functions and variable-related information is stored.
    • Utilities.supports_default_copy has been renamed to supports_incremental_interface
    • Utilities.automatic_copy_to has been renamed to Utilities.default_copy_to
    • The allocate-load API has been removed
    • CachingOptimizers are now initialized as EMPTY_OPTIMIZER instead of ATTACHED_OPTIMIZER. If your code relies on the optimizer being attached, call MOIU.attach_optimizer(model) after creation.
    • The field names of Utilities.IndexMap have been renamed to var_map and con_map. Accessing these fields directly is considered a private detail that may change. Use the public getindex and setindex! API instead.
    • The size argument to Utilities.CleverDicts.CleverDict(::Integer) has been removed.
    • The size argument to Utilities.IndexMap(::Integer) has been removed.
    • Utilities.DoubleDicts have been significantly refactored. Consult the source code for details.
    • Utilities.test_models_equal has been moved to MOI.Test

    Breaking in Test

    • MOI.Test has been renamed to MOI.DeprecatedTest
    • An entirely new MOI.Test submodule has been written. See the documentation for details. The new MOI.Test submodule may find many bugs in the implementations of existing solvers that were previously untested.

    Other changes:

    • attribute_value_type has been added
    • copy_to_and_optimize! has been added
    • VariableBasisStatus has been added
    • print(model) now prints a human-readable description of the model
    • Various improvements to the FileFormats submodule
      • FileFormats.CBF was refactored and received bugfixes
      • Support for MathOptFormat v0.6 was added in FileFormats.MOF
      • FileFormats.MPS has had bugfixes and support for more features such as OBJSENSE and objective constants.
      • FileFormats.NL has been added to support nonlinear files
    • Improved type inference throughout to reduce latency

    Updating

    A helpful script when updating is:

    for (root, dirs, files) in walkdir(".")
    +    for file in files
    +        if !endswith(file, ".jl")
    +            continue
    +        end
    +        path = joinpath(root, file)
    +        s = read(path, String)
    +        for pair in [
    +            ".variable_index" => ".variable",
    +            "RawParameter" => "RawOptimizerAttribute",
    +            "ListOfConstraints" => "ListOfConstraintTypesPresent",
    +            "TestConfig" => "Config",
    +            "attr.N" => "attr.result_index",
    +            "SolveTime" => "SolveTimeSec",
    +            "DataType" => "Type",
    +            "Utilities.supports_default_copy_to" =>
    +                "supports_incremental_interface",
    +            "SingleVariableConstraintNameError" =>
    +                "VariableIndexConstraintNameError",
    +            "SettingSingleVariableFunctionNotAllowed" =>
    +                "SettingVariableIndexFunctionNotAllowed",
    +            "automatic_copy_to" => "default_copy_to",
    +        ]
    +            s = replace(s, pair)
    +        end
    +        write(path, s)
    +    end
    +end

    v0.9.22 (May 22, 2021)

    This release contains backports from the ongoing development of the v0.10 release.

    • Improved type inference in Utilities, Bridges and FileFormats submodules to reduce latency.
    • Improved performance of Utilities.is_canonical.
    • Fixed Utilities.pass_nonvariable_constraints with bridged variables.
    • Fixed performance regression of Utilities.Model.
    • Fixed ordering of objective setting in parser.

    v0.9.21 (April 23, 2021)

    • Added supports_shift_constant.
    • Improve performance of bridging quadratic constraints.
    • Add precompilation statements.
    • Large improvements to the documentation.
    • Fix a variety of inference issues, benefiting precompilation and reducing initial latency.
    • RawParameters are now ignored when resetting a CachingOptimizer. Previously, changing the underlying optimizer after RawParameters were set would throw an error.
    • Utilities.AbstractModel is being refactored. This may break users interacting with private fields of a model generated using @model.

    v0.9.20 (February 20, 2021)

    • Improved performance of Utilities.ScalarFunctionIterator
    • Added support for compute_conflict to MOI layers
    • Added test with zero off-diagonal quadratic term in objective
    • Fixed double deletion of nested bridged SingleVariable/VectorOfVariables constraints
    • Fixed modification of un-set objective
    • Fixed function modification with duplicate terms
    • Made unit tests abort without failing if the problem class is not supported
    • Formatted code with JuliaFormatter
    • Clarified BasisStatusCode's docstring

    v0.9.19 (December 1, 2020)

    • Added CallbackNodeStatus attribute
    • Added bridge from GreaterThan or LessThan to Interval
    • Added tests for infeasibility certificates and double optimize
    • Fixed support for Julia v1.6
    • Re-organized MOI docs and added documentation for adding a test

    v0.9.18 (November 3, 2020)

    • Various improvements for working with complex numbers
    • Added GeoMeantoRelEntrBridge to bridge a GeometricMeanCone constraint to a relative entropy constraint

    v0.9.17 (September 21, 2020)

    • Fixed CleverDict with variable of negative index value
    • Implement supports_add_constrained_variable for MockOptimizer

    v0.9.16 (September 17, 2020)

    • Various fixes:
      • 32-bit support
      • CleverDict with abstract value type
      • Checks in test suite

    v0.9.15 (September 14, 2020)

    • Bridges improvements:
      • (R)SOCtoNonConvexQuad bridge
      • ZeroOne bridge
      • Use supports_add_constrained_variable in LazyBridgeOptimizer
      • Exposed VariableBridgeCost and ConstraintBridgeCost attributes
      • Prioritize constraining variables on creation according to these costs
      • Refactor bridge debugging
    • Large performance improvements across all submodules
    • Lots of documentation improvements
    • FileFormats improvements:
      • Update MathOptFormat to v0.5
      • Fix supported objectives in FileFormats
    • Testing improvements:
      • Add name option for basic_constraint_test
    • Bug fixes and missing methods
      • Add length for iterators
      • Fix bug with duplicate terms
      • Fix order of LinearOfConstraintIndices

    v0.9.14 (May 30, 2020)

    • Add a solver-independent interface for accessing the set of conflicting constraints an Irreducible Inconsistent Subsystem (#1056).
    • Bump JSONSchema dependency from v0.2 to v0.3 (#1090).
    • Documentation improvements:
      • Fix typos (#1054, #1060, #1061, #1064, #1069, #1070).
      • Remove the outdated recommendation for a package implementing MOI for a solver XXX to be called MathOptInterfaceXXX (#1087).
    • Utilities improvements:
      • Fix is_canonical for quadratic functions (#1081, #1089).
      • Implement add_constrained_variable[s] for CachingOptimizer so that it is added as constrained variables to the underlying optimizer (#1084).
      • Add support for custom objective functions for UniversalFallback (#1086).
      • Deterministic ordering of constraints in UniversalFallback (#1088).
    • Testing improvements:
      • Add NormOneCone/NormInfinityCone tests (#1045).
    • Bridges improvements:
      • Add bridges from Semiinteger and Semicontinuous (#1059).
      • Implement getting ConstraintSet for Variable.FlipSignBridge (#1066).
      • Fix setting ConstraintFunction for Constraint.ScalarizeBridge (#1093).
      • Fix NormOne/NormInf bridges with nonzero constants (#1045).
      • Fix StackOverflow in debug (#1063).
    • FileFormats improvements:
      • [SDPA] Implement the extension for integer variables (#1079).
      • [SDPA] Ignore comments after m and nblocks and detect dat-s extension (#1077).
      • [SDPA] No scaling of off-diagonal coefficient (#1076).
      • [SDPA] Add missing negation of constant (#1075).

    v0.9.13 (March 24, 2020)

    • Added tests for Semicontinuous and Semiinteger variables (#1033).
    • Added tests for using ExprGraphs from NLP evaluators (#1043).
    • Update version compatibilities of dependencies (#1034, #1051, #1052).
    • Fixed typos in documentation (#1044).

    v0.9.12 (February 28, 2020)

    • Fixed writing NLPBlock in MathOptFormat (#1037).
    • Fixed MockOptimizer for result attributes with non-one result index (#1039).
    • Updated test template with instantiate (#1032).

    v0.9.11 (February 21, 2020)

    • Add an option for the model created by Utilities.@model to be a subtype of AbstractOptimizer (#1031).
    • Described dual cone in docstrings of GeoMeanCone and RelativeEntropyCone (#1018, #1028).
    • Fixed typos in documentation (#1022, #1024).
    • Fixed warning of unsupported attribute (#1027).
    • Added more rootdet/logdet conic tests (#1026).
    • Implemented ConstraintDual for Constraint.GeoMeanBridge, Constraint.RootDetBridge and Constraint.LogDetBridge and test duals in tests with GeoMeanCone and RootDetConeTriangle and LogDetConeTriangle cones (#1025, #1026).

    v0.9.10 (January 31, 2020)

    • Added OptimizerWithAttributes grouping an optimizer constructor and a list of optimizer attributes (#1008).
    • Added RelativeEntropyCone with corresponding bridge into exponential cone constraints (#993).
    • Added NormSpectralCone and NormNuclearCone with corresponding bridges into positive semidefinite constraints (#976).
    • Added supports_constrained_variable(s) (#1004).
    • Added dual_set_type (#1002).
    • Added tests for vector specialized version of delete (#989, #1011).
    • Added PSD3 test (#1007).
    • Clarified dual solution of Tests.pow1v and Tests.pow1f (#1013).
    • Added support for EqualTo and Zero in Bridges.Constraint.SplitIntervalBridge (#1005).
    • Fixed Utilities.vectorize for empty vector (#1003).
    • Fixed free variables in LP writer (#1006).

    v0.9.9 (December 29, 2019)

    • Incorporated MathOptFormat.jl as the FileFormats submodule. FileFormats provides readers and writers for a number of standard file formats and MOF, a file format specialized for MOI (#969).
    • Improved performance of deletion of vector of variables in MOI.Utilities.Model (#983).
    • Updated to MutableArithmetics v0.2 (#981).
    • Added MutableArithmetics.promote_operation allocation tests (#975).
    • Fixed inference issue on Julia v1.1 (#982).

    v0.9.8 (December 19, 2019)

    • Implemented MutableArithmetics API (#924).
    • Fixed callbacks with CachingOptimizer (#959).
    • Fixed MOI.dimension for MOI.Complements (#948).
    • Added fallback for add_variables (#972).
    • Added is_diagonal_vectorized_index utility (#965).
    • Improved linear constraints display in manual (#963, #964).
    • Bridges improvements:
      • Added IndicatorSet to SOS1 bridge (#877).
      • Added support for starting values for Variable.VectorizeBridge (#944).
      • Fixed MOI.add_constraints with non-bridged variable constraint on bridged variable (#951).
      • Fixed corner cases and docstring of GeoMeanBridge (#961, #962, #966).
      • Fixed choice between variable or constraint bridges for constrained variables (#973).
      • Improve performance of bridge shortest path (#945, #946, #956).
      • Added docstring for test_delete_bridge (#954).
      • Added Variable bridge tests (#952).

    v0.9.7 (October 30, 2019)

    • Implemented _result_index_field for NLPBlockDual (#934).
    • Fixed copy of model with starting values for vector constraints (#941).
    • Bridges improvements:
      • Improved performance of add_bridge and added has_bridge (#935).
      • Added AbstractSetMapBridge for bridges between sets S1, S2 such that there is a linear map A such that A*S1 = S2 (#933).
      • Added support for starting values for FlipSignBridge, VectorizeBridge, ScalarizeBridge, SlackBridge, SplitIntervalBridge, RSOCBridge, SOCRBridge NormInfinityBridge, SOCtoPSDBridge and RSOCtoPSDBridge (#933, #936, #937, #938, #939).

    v0.9.6 (October 25, 2019)

    • Added complementarity constraints (#913).
    • Allowed ModelLike objects as value of attributes (#928).
    • Testing improvements:
      • Added dual_objective_value option to MOI.Test.TestConfig (#922).
      • Added InvalidIndex tests in basic_constraint_tests (#921).
      • Added tests for the constant term in indicator constraint (#929).
    • Bridges improvements:
      • Added support for starting values for Functionize bridges (#923).
      • Added variable indices context to variable bridges (#920).
      • Fixed a typo in printing o debug_supports (#927).

    v0.9.5 (October 9, 2019)

    • Clarified PrimalStatus/DualStatus to be NO_SOLUTION if result_index is out of bounds (#912).
    • Added tolerance for checks and use ResultCount + 1 for the result_index in MOI.Test.solve_result_status (#910, #917).
    • Use 0.5 instead of 2.0 for power in PowerCone in basic_constraint_test (#916).
    • Bridges improvements:
      • Added debug utilities for unsupported variable/constraint/objective (#861).
      • Fixed deletion of variables in bridged VectorOfVariables constraints (#909).
      • Fixed result_index with objective bridges (#911).

    v0.9.4 (October 2, 2019)

    • Added solver-independent MIP callbacks (#782).
    • Implements submit for Utilities.CachingOptimizer and Bridges.AbstractBridgeOptimizer (#906).
    • Added tests for result count of solution attributes (#901, #904).
    • Added NumberOfThreads attribute (#892).
    • Added Utilities.get_bounds to get the bounds on a variable (#890).
    • Added a note on duplicate coefficients in documentation (#581).
    • Added result index in ConstraintBasisStatus (#898).
    • Added extension dictionary to Utilities.Model (#884, #895).
    • Fixed deletion of constrained variables for CachingOptimizer (#905).
    • Implemented Utilities.shift_constraint for Test.UnknownScalarSet (#896).
    • Bridges improvements:
      • Added Variable.RSOCtoSOCBridge (#907).
      • Implemented MOI.get for ConstraintFunction/ConstraintSet for Bridges.Constraint.SquareBridge (#899).

    v0.9.3 (September 20, 2019)

    • Fixed ambiguity detected in Julia v1.3 (#891, #893).
    • Fixed missing sets from ListOfSupportedConstraints (#880).
    • Fixed copy of VectorOfVariables constraints with duplicate indices (#886).
    • Added extension dictionary to MOIU.Model (#884).
    • Implemented MOI.get for function and set for GeoMeanBridge (#888).
    • Updated documentation for SingleVariable indices and bridges (#885).
    • Testing improvements:
      • Added more comprehensive tests for names (#882).
      • Added tests for SingleVariable duals (#883).
      • Added tests for DualExponentialCone and DualPowerCone (#873).
    • Improvements for arbitrary coefficient type:
      • Fixed == for sets with mutable fields (#887).
      • Removed some Float64 assumptions in bridges (#878).
      • Automatic selection of Constraint.[Scalar|Vector]FunctionizeBridge (#889).

    v0.9.2 (September 5, 2019)

    • Implemented model printing for MOI.ModelLike and specialized it for models defined in MOI (864).
    • Generalized contlinear tests for arbitrary coefficient type (#855).
    • Fixed supports_constraint for Semiinteger and Semicontinuous and supports for ObjectiveFunction (#859).
    • Fixed Allocate-Load copy for single variable constraints (#856).
    • Bridges improvements:
      • Add objective bridges (#789).
      • Fixed Variable.RSOCtoPSDBridge for dimension 2 (#869).
      • Added Variable.SOCtoRSOCBridge (#865).
      • Added Constraint.SOCRBridge and disable MOI.Bridges.Constraint.SOCtoPSDBridge (#751).
      • Fixed added_constraint_types for Contraint.LogDetBridge and Constraint.RootDetBridge (#870).

    v0.9.1 (August 22, 2019)

    • Fix support for Julia v1.2 (#834).
    • L1 and L∞ norm epigraph cones and corresponding bridges to LP were added (#818).
    • Added tests to MOI.Test.nametest (#833).
    • Fix MOI.Test.soc3test for solvers not supporting infeasibility certificates (#839).
    • Implements operate for operators * and / between vector function and constant (#837).
    • Implements show for MOI.Utilities.IndexMap (#847).
    • Fix corner cases for mapping of variables in MOI.Utilities.CachingOptimizer and substitution of variables in MOI.Bridges.AbstractBridgeOptimizer (#848).
    • Fix transformation of constant terms for MOI.Bridges.Constraint.SOCtoPSDBridge and MOI.Bridges.Constraint.RSOCtoPSDBridge (#840).

    v0.9.0 (August 13, 2019)

    • Support for Julia v0.6 and v0.7 was dropped (#714, #717).
    • A MOI.Utilities.Model implementation of ModelLike, this should replace most use cases of MOI.Utilities.@model (#781).
    • add_constrained_variable and add_constrained_variables were added (#759).
    • Support for indicator constraints was added (#709, #712).
    • DualObjectiveValue attribute was added (#473).
    • RawParameter attribute was added (#733).
    • A dual_set function was added (#804).
    • A Benchmarks submodule was added to facilitate solver benchmarking (#769).
    • A submit function was added, this may for instance allow the user to submit solutions or cuts to the solver from a callback (#775).
    • The field of ObjectiveValue was renamed to result_index (#729).
    • The _constant and Utilities.getconstant function were renamed to constant
    • REDUCTION_CERTIFICATE result status was added (#734).
    • Abstract matrix sets were added (#731).
    • Testing improvements:
      • The testing guideline was updated (#728).
      • Quadratic tests were added (#697).
      • Unit tests for RawStatusString, SolveTime, Silent and SolverName were added (#726, #741).
      • A rotated second-order cone test was added (#759).
      • A power cone test was added (#768).
      • Tests for ZeroOne variables with variable bounds were added (#772).
      • An unbounded test was added (#773).
      • Existing tests had a few updates (#702, #703, #763).
    • Documentation improvements:
      • Added a section on CachingOptimizer (#777).
      • Added a section on UniversalFallback, Model and @model (#762).
      • Transition the knapsack example to a doctest with MockOptimizer (#786).
    • Utilities improvements:
      • A CleverDict utility was added for a vector that automatically transform into a dictionary once a first index is removed (#767).
      • The Utilities.constant function was renamed to Utilities.constant_vector (#740).
      • Implement optimizer attributes for CachingOptimizer (#745).
      • Rename Utilities.add_scalar_constraint to Utilities.normalize_and_add_constraint (#801).
      • operate with vcat, SingleVariable and VectorOfVariables now returns a VectorOfVariables (#616).
      • Fix a type piracy of operate (#784).
      • The load_constraint fallback signature was fixed (#760).
      • The set_dot function was extended to work with sparse arrays (#805).
    • Bridges improvements:
      • The bridges no longer store the constraint function and set before it is bridged, the bridges now have to implement ConstraintFunction and ConstraintSet if the user wants to recover them. As a consequence, the @bridge macro was removed (#722).
      • Bridge are now instantiated with a bridge_constraint function instead of using a constructor (#730).
      • Fix constraint attributes for bridges (#699).
      • Constraint bridges were moved to the Bridges/Constraint submodule so they should now inherit from MOI.Bridges.Constraint.Abstract and should implement MOI.Bridges.Constraint.concrete_bridge_type instead of MOI.Bridges.concrete_bridge_type (#756).
      • Variable bridges were added in (#759).
      • Various improvements (#746, #747).

    v0.8.4 (March 13, 2019)

    • Performance improvement in default_copy_to and bridge optimizer (#696).
    • Add Silent and implement setting optimizer attributes in caching and mock optimizers (#695).
    • Add Functionize bridges (SingleVariable and VectorOfVariables) (#659).
    • Minor typo fixes (#694).

    v0.8.3 (March 6, 2019)

    • Use zero constant in scalar constraint function of MOI.Test.copytest (#691).
    • Fix variable deletion with SingleVariable objective function (#690).
    • Fix LazyBridgeOptimizer with bridges that add no constraints (#689).
    • Error message improvements (#673, #685, #686, #688).
    • Documentation improvements (#682, #683, #687).
    • Basis status:
      • Remove VariableBasisStatus (#679).
      • Test ConstraintBasisStatus and implement it in bridges (#678).
    • Fix inference of NumberOfVariables and NumberOfConstraints (#677).
    • Implement division between a quadratic function and a number (#675).

    v0.8.2 (February 7, 2019)

    • Add RawStatusString attribute (#629).
    • Do not set names to the optimizer but only to the cache in CachingOptimizer (#638).
    • Make scalar MOI functions act as scalars in broadcast (#646).
    • Add function utilities:
      • Implement Base.zero (#634), Base.iszero (#643), add missing arithmetic operations (#644, #645) and fix division (#648).
      • Add a vectorize function that turns a vector of ScalarAffineFunction into a VectorAffineFunction (#642).
    • Improve support for starting values:
      • Show a warning in copy when starting values are not supported instead of throwing an error (#630).
      • Fix UniversalFallback for getting an variable or constraint attribute set to no indices (#623).
      • Add a test in contlineartest with partially set VariablePrimalStart.
    • Bridges improvements:
      • Fix StackOverFlow in LazyBridgeOptimizer when there is a cycle in the graph of bridges.
      • Add Slack bridges (#610, #650).
      • Add FlipSign bridges (#658).
    • Add tests with duplicate coefficients in ScalarAffineFunction and VectorAffineFunction (#639).
    • Use tolerance to compare VariablePrimal in rotatedsoc1 test (#632).
    • Use a zero constant in ScalarAffineFunction of constraints in psdt2 (#622).

    v0.8.1 (January 7, 2019)

    • Adding an NLP objective now overrides any objective set using the ObjectiveFunction attribute (#619).
    • Rename fullbridgeoptimizer into full_bridge_optimizer (#621).
    • Allow custom constraint types with full_bridge_optimizer (#617).
    • Add Vectorize bridge which transforms scalar linear constraints into vector linear constraints (#615).

    v0.8.0 (December 18, 2018)

    • Rename all enum values to follow the JuMP naming guidelines for constants, for example, Optimal becomes OPTIMAL, and DualInfeasible becomes DUAL_INFEASIBLE.
    • Rename CachingOptimizer methods for style compliance.
    • Add an MOI.TerminationStatusCode called ALMOST_DUAL_INFEASIBLE.

    v0.7.0 (December 13, 2018)

    • Test that MOI.TerminationStatus is MOI.OptimizeNotCalled before MOI.optimize! is called.
    • Check supports_default_copy_to in tests (#594).
    • Key pieces of information like optimality, infeasibility, etc., are now reported through TerminationStatusCode. It is typically no longer necessary to check the result statuses in addition to the termination status.
    • Add perspective dimension to log-det cone (#593).

    v0.6.4 (November 27, 2018)

    • Add OptimizeNotCalled termination status (#577) and improve documentation of other statuses (#575).
    • Add a solver naming guideline (#578).
    • Make FeasibilitySense the default ObjectiveSense (#579).
    • Fix Utilities.@model and Bridges.@bridge macros for functions and sets defined outside MOI (#582).
    • Document solver-specific attributes (#580) and implement them in Utilities.CachingOptimizer (#565).

    v0.6.3 (November 16, 2018)

    • Variables and constraints are now allowed to have duplicate names. An error is thrown only on lookup. This change breaks some existing tests. (#549)
    • Attributes may now be partially set (some values could be nothing). (#563)
    • Performance improvements in Utilities.Model (#549, #567, #568)
    • Fix bug in QuadtoSOC (#558).
    • New supports_default_copy_to method that optimizers should implement to control caching behavior.
    • Documentation improvements.

    v0.6.2 (October 26, 2018)

    • Improve hygiene of @model macro (#544).
    • Fix bug in copy tests (#543).
    • Fix bug in UniversalFallback attribute getter (#540).
    • Allow all correct solutions for solve_blank_obj unit test (#537).
    • Add errors for Allocate-Load and bad constraints (#534).
    • [performance] Add specialized implementation of hash for VariableIndex (#533).
    • [performance] Construct the name to object dictionaries lazily in model (#535).
    • Add the QuadtoSOC bridge which transforms ScalarQuadraticFunction constraints into RotatedSecondOrderCone (#483).

    v0.6.1 (September 22, 2018)

    • Enable PositiveSemidefiniteConeSquare set and quadratic functions in MOIB.fullbridgeoptimizer (#524).
    • Add warning in the bridge between PositiveSemidefiniteConeSquare and PositiveSemidefiniteConeTriangle when the matrix is almost symmetric (#522).
    • Modify MOIT.copytest to not add multiples constraints on the same variable (#521).
    • Add missing keyword argument in one of MOIU.add_scalar_constraint methods (#520).

    v0.6.0 (August 30, 2018)

    • The MOIU.@model and MOIB.@bridge macros now support functions and sets defined in external modules. As a consequence, function and set names in the macro arguments need to be prefixed by module name.
    • Rename functions according to the JuMP style guide:
      • copy! with keyword arguments copynames and warnattributes -> copy_to with keyword arguments copy_names and warn_attributes;
      • set! -> set;
      • addvariable[s]! -> add_variable[s];
      • supportsconstraint -> supports_constraint;
      • addconstraint[s]! -> add_constraint[s];
      • isvalid -> is_valid;
      • isempty -> is_empty;
      • Base.delete! -> delete;
      • modify! -> modify;
      • transform! -> transform;
      • initialize! -> initialize;
      • write -> write_to_file; and
      • read! -> read_from_file.
    • Remove free! (use Base.finalize instead).
    • Add the SquarePSD bridge which transforms PositiveSemidefiniteConeTriangle constraints into PositiveSemidefiniteConeTriangle.
    • Add result fallback for ConstraintDual of variable-wise constraint, ConstraintPrimal and ObjectiveValue.
    • Add tests for ObjectiveBound.
    • Add test for empty rows in vector linear constraint.
    • Rework errors: CannotError has been renamed NotAllowedError and the distinction between UnsupportedError and NotAllowedError is now about whether the element is not supported (for example, it cannot be copied a model containing this element) or the operation is not allowed (either because it is not implemented, because it cannot be performed in the current state of the model, or because it cannot be performed for a specific index)
    • canget is removed. NoSolution is added as a result status to indicate that the solver does not have either a primal or dual solution available (See #479).

    v0.5.0 (August 5, 2018)

    • Fix names with CachingOptimizer.
    • Cleanup thanks to @mohamed82008.
    • Added a universal fallback for constraints.
    • Fast utilities for function canonicalization thanks to @rdeits.
    • Renamed dimension field to side_dimension in the context of matrix-like sets.
    • New and improved tests for cases like duplicate terms and ObjectiveBound.
    • Removed cantransform, canaddconstraint, canaddvariable, canset, canmodify, and candelete functions from the API. They are replaced by a new set of errors that are thrown: Subtypes of UnsupportedError indicate unsupported operations, while subtypes of CannotError indicate operations that cannot be performed in the current state.
    • The API for copy! is updated to remove the CopyResult type.
    • Updates for the new JuMP style guide.

    v0.4.1 (June 28, 2018)

    • Fixes vector function modification on 32 bits.
    • Fixes Bellman-Ford algorithm for bridges.
    • Added an NLP test with FeasibilitySense.
    • Update modification documentation.

    v0.4.0 (June 23, 2018)

    • Helper constructors for VectorAffineTerm and VectorQuadraticTerm.
    • Added modify_lhs to TestConfig.
    • Additional unit tests for optimizers.
    • Added a type parameter to CachingOptimizer for the optimizer field.
    • New API for problem modification (#388)
    • Tests pass without deprecation warnings on Julia 0.7.
    • Small fixes and documentation updates.

    v0.3.0 (May 25, 2018)

    • Functions have been redefined to use arrays-of-structs instead of structs-of-arrays.
    • Improvements to MockOptimizer.
    • Significant changes to Bridges.
    • New and improved unit tests.
    • Fixes for Julia 0.7.

    v0.2.0 (April 24, 2018)

    • Improvements to and better coverage of Tests.
    • Documentation fixes.
    • SolverName attribute.
    • Changes to the NLP interface (new definition of variable order and arrays of structs for bound pairs and sparsity patterns).
    • Addition of NLP tests.
    • Introduction of UniversalFallback.
    • copynames keyword argument to MOI.copy!.
    • Add Bridges submodule.

    v0.1.0 (February 28, 2018)

    • Initial public release.
    • The framework for MOI was developed at the JuMP-dev workshop at MIT in June 2017 as a sorely needed replacement for MathProgBase.
    diff --git a/previews/PR3545/moi/submodules/Benchmarks/overview/index.html b/previews/PR3545/moi/submodules/Benchmarks/overview/index.html new file mode 100644 index 00000000000..516d2fecf99 --- /dev/null +++ b/previews/PR3545/moi/submodules/Benchmarks/overview/index.html @@ -0,0 +1,24 @@ + +Overview · JuMP

    The Benchmarks submodule

    To aid the development of efficient solver wrappers, MathOptInterface provides benchmarking capability. Benchmarking a wrapper follows a two-step process.

    First, prior to making changes, create a baseline for the benchmark results on a given benchmark suite as follows:

    using SolverPackage  # Replace with your choice of solver.
    +import MathOptInterface as MOI
    +
    +suite = MOI.Benchmarks.suite() do
    +    SolverPackage.Optimizer()
    +end
    +
    +MOI.Benchmarks.create_baseline(
    +    suite, "current"; directory = "/tmp", verbose = true
    +)

    Use the exclude argument to Benchmarks.suite to exclude benchmarks that the solver doesn't support.

    Second, after making changes to the package, re-run the benchmark suite and compare to the prior saved results:

    using SolverPackage
    +import MathOptInterface as MOI
    +
    +suite = MOI.Benchmarks.suite() do
    +    SolverPackage.Optimizer()
    +end
    +
    +MOI.Benchmarks.compare_against_baseline(
    +    suite, "current"; directory = "/tmp", verbose = true
    +)

    This comparison will create a report detailing improvements and regressions.

    diff --git a/previews/PR3545/moi/submodules/Benchmarks/reference/index.html b/previews/PR3545/moi/submodules/Benchmarks/reference/index.html new file mode 100644 index 00000000000..8efae1afe29 --- /dev/null +++ b/previews/PR3545/moi/submodules/Benchmarks/reference/index.html @@ -0,0 +1,21 @@ + +API Reference · JuMP

    Benchmarks

    Functions to help benchmark the performance of solver wrappers. See The Benchmarks submodule for more details.

    MathOptInterface.Benchmarks.suiteFunction
    suite(
    +    new_model::Function;
    +    exclude::Vector{Regex} = Regex[]
    +)

    Create a suite of benchmarks. new_model should be a function that takes no arguments, and returns a new instance of the optimizer you wish to benchmark.

    Use exclude to exclude a subset of benchmarks.

    Examples

    suite() do
    +    GLPK.Optimizer()
    +end
    +suite(exclude = [r"delete"]) do
    +    Gurobi.Optimizer(OutputFlag=0)
    +end
    source
    MathOptInterface.Benchmarks.create_baselineFunction
    create_baseline(suite, name::String; directory::String = ""; kwargs...)

    Run all benchmarks in suite and save to files called name in directory.

    Extra kwargs are based to BenchmarkTools.run.

    Examples

    my_suite = suite(() -> GLPK.Optimizer())
    +create_baseline(my_suite, "glpk_master"; directory = "/tmp", verbose = true)
    source
    MathOptInterface.Benchmarks.compare_against_baselineFunction
    compare_against_baseline(
    +    suite, name::String; directory::String = "",
    +    report_filename::String = "report.txt"
    +)

    Run all benchmarks in suite and compare against files called name in directory that were created by a call to create_baseline.

    A report summarizing the comparison is written to report_filename in directory.

    Extra kwargs are based to BenchmarkTools.run.

    Examples

    my_suite = suite(() -> GLPK.Optimizer())
    +compare_against_baseline(
    +    my_suite, "glpk_master"; directory = "/tmp", verbose = true
    +)
    source
    diff --git a/previews/PR3545/moi/submodules/Bridges/list_of_bridges/index.html b/previews/PR3545/moi/submodules/Bridges/list_of_bridges/index.html new file mode 100644 index 00000000000..83df8892d17 --- /dev/null +++ b/previews/PR3545/moi/submodules/Bridges/list_of_bridges/index.html @@ -0,0 +1,114 @@ + +List of bridges · JuMP

    List of bridges

    This section describes the Bridges.AbstractBridges that are implemented in MathOptInterface.

    Constraint bridges

    These bridges are subtypes of Bridges.Constraint.AbstractBridge.

    MathOptInterface.Bridges.Constraint.VectorizeBridgeType
    VectorizeBridge{T,F,S,G} <: Bridges.Constraint.AbstractBridge

    VectorizeBridge implements the following reformulations:

    • $g(x) \ge a$ into $[g(x) - a] \in \mathbb{R}_+$
    • $g(x) \le a$ into $[g(x) - a] \in \mathbb{R}_-$
    • $g(x) == a$ into $[g(x) - a] \in \{0\}$

    where T is the coefficient type of g(x) - a.

    Source node

    VectorizeBridge supports:

    Target nodes

    VectorizeBridge creates:

    source
    MathOptInterface.Bridges.Constraint.ScalarizeBridgeType
    ScalarizeBridge{T,F,S}

    ScalarizeBridge implements the following reformulations:

    • $f(x) - a \in \mathbb{R}_+$ into $f_i(x) \ge a_i$ for all $i$
    • $f(x) - a \in \mathbb{R}_-$ into $f_i(x) \le a_i$ for all $i$
    • $f(x) - a \in \{0\}$ into $f_i(x) == a_i$ for all $i$

    Source node

    ScalarizeBridge supports:

    Target nodes

    ScalarizeBridge creates:

    source
    MathOptInterface.Bridges.Constraint.FunctionConversionBridgeType
    FunctionConversionBridge{T,F,G,S} <: AbstractFunctionConversionBridge{G,S}

    FunctionConversionBridge implements the following reformulations:

    • $g(x) \in S$ into $f(x) \in S$

    for these pairs of functions:

    Source node

    FunctionConversionBridge supports:

    • G in S

    Target nodes

    FunctionConversionBridge creates:

    • F in S
    source
    MathOptInterface.Bridges.Constraint.SplitComplexEqualToBridgeType
    SplitComplexEqualToBridge{T,F,G} <: Bridges.Constraint.AbstractBridge

    SplitComplexEqualToBridge implements the following reformulation:

    • $f(x) + g(x) * im = a + b * im$ into $f(x) = a$ and $g(x) = b$

    Source node

    SplitComplexEqualToBridge supports:

    where G is a function with Complex coefficients.

    Target nodes

    SplitComplexEqualToBridge creates:

    where F is the type of the real/imaginary part of G.

    source
    MathOptInterface.Bridges.Constraint.SplitComplexZerosBridgeType
    SplitComplexZerosBridge{T,F,G} <: Bridges.Constraint.AbstractBridge

    SplitComplexZerosBridge implements the following reformulation:

    • $f(x) \in \{0\}^n$ into $\text{Re}(f(x)) \in \{0\}^n$ and $\text{Im}(f(x)) \in \{0\}^n$

    Source node

    SplitComplexZerosBridge supports:

    where G is a function with Complex coefficients.

    Target nodes

    SplitComplexZerosBridge creates:

    where F is the type of the real/imaginary part of G.

    source
    MathOptInterface.Bridges.Constraint.SplitIntervalBridgeType
    SplitIntervalBridge{T,F,S,LS,US} <: Bridges.Constraint.AbstractBridge

    SplitIntervalBridge implements the following reformulations:

    • $l \le f(x) \le u$ into $f(x) \ge l$ and $f(x) \le u$
    • $f(x) = b$ into $f(x) \ge b$ and $f(x) \le b$
    • $f(x) \in \{0\}$ into $f(x) \in \mathbb{R}_+$ and $f(x) \in \mathbb{R}_-$

    Source node

    SplitIntervalBridge supports:

    Target nodes

    SplitIntervalBridge creates:

    or

    Note

    If T<:AbstractFloat and S is MOI.Interval{T} then no lower (resp. upper) bound constraint is created if the lower (resp. upper) bound is typemin(T) (resp. typemax(T)). Similarly, when MOI.ConstraintSet is set, a lower or upper bound constraint may be deleted or created accordingly.

    source
    MathOptInterface.Bridges.Constraint.SOCtoNonConvexQuadBridgeType
    SOCtoNonConvexQuadBridge{T} <: Bridges.Constraint.AbstractBridge

    SOCtoNonConvexQuadBridge implements the following reformulations:

    • $||x||_2 \le t$ into $\sum x^2 - t^2 \le 0$ and $1t + 0 \ge 0$

    The MOI.ScalarAffineFunction $1t + 0$ is used in case the variable has other bound constraints.

    Warning

    This transformation starts from a convex constraint and creates a non-convex constraint. Unless the solver has explicit support for detecting second-order cones in quadratic form, this may (wrongly) be interpreted by the solver as being non-convex. Therefore, this bridge is not added automatically by MOI.Bridges.full_bridge_optimizer. Care is recommended when adding this bridge to a optimizer.

    Source node

    SOCtoNonConvexQuadBridge supports:

    Target nodes

    SOCtoNonConvexQuadBridge creates:

    source
    MathOptInterface.Bridges.Constraint.RSOCtoNonConvexQuadBridgeType
    RSOCtoNonConvexQuadBridge{T} <: Bridges.Constraint.AbstractBridge

    RSOCtoNonConvexQuadBridge implements the following reformulations:

    • $||x||_2^2 \le 2tu$ into $\sum x^2 - 2tu \le 0$, $1t + 0 \ge 0$, and $1u + 0 \ge 0$.

    The MOI.ScalarAffineFunctions $1t + 0$ and $1u + 0$ are used in case the variables have other bound constraints.

    Warning

    This transformation starts from a convex constraint and creates a non-convex constraint. Unless the solver has explicit support for detecting rotated second-order cones in quadratic form, this may (wrongly) be interpreted by the solver as being non-convex. Therefore, this bridge is not added automatically by MOI.Bridges.full_bridge_optimizer. Care is recommended when adding this bridge to a optimizer.

    Source node

    RSOCtoNonConvexQuadBridge supports:

    Target nodes

    RSOCtoNonConvexQuadBridge creates:

    source
    MathOptInterface.Bridges.Constraint.QuadtoSOCBridgeType
    QuadtoSOCBridge{T} <: Bridges.Constraint.AbstractBridge

    QuadtoSOCBridge converts quadratic inequalities

    \[\frac{1}{2}x^T Q x + a^T x \le ub\]

    into MOI.RotatedSecondOrderCone constraints, but it only applies when $Q$ is positive definite.

    This is because, if Q is positive definite, there exists U such that $Q = U^T U$, and so the inequality can then be rewritten as;

    \[\|U x\|_2^2 \le 2 (-a^T x + ub)\]

    Therefore, QuadtoSOCBridge implements the following reformulations:

    • $\frac{1}{2}x^T Q x + a^T x \le ub$ into $(1, -a^T x + ub, Ux) \in RotatedSecondOrderCone$ where $Q = U^T U$
    • $\frac{1}{2}x^T Q x + a^T x \ge lb$ into $(1, a^T x - lb, Ux) \in RotatedSecondOrderCone$ where $-Q = U^T U$

    Source node

    QuadtoSOCBridge supports:

    Target nodes

    RelativeEntropyBridge creates:

    Errors

    This bridge errors if Q is not positive definite.

    source
    MathOptInterface.Bridges.Constraint.SOCtoPSDBridgeType
    SOCtoPSDBridge{T,F,G} <: Bridges.Constraint.AbstractBridge

    SOCtoPSDBridge implements the following reformulation:

    • $||x||_2 \le t$ into $\left[\begin{array}{c c}t & x^\top \\ x & t \mathbf{I}\end{array}\right]\succeq 0$
    Warning

    This bridge is not added by default by MOI.Bridges.full_bridge_optimizer because bridging second order cone constraints to semidefinite constraints can be achieved by the SOCtoRSOCBridge followed by the RSOCtoPSDBridge, while creating a smaller semidefinite constraint.

    Source node

    SOCtoPSDBridge supports:

    Target nodes

    SOCtoPSDBridge creates:

    source
    MathOptInterface.Bridges.Constraint.NormToPowerBridgeType
    NormToPowerBridge{T,F} <: Bridges.Constraint.AbstractBridge

    NormToPowerBridge implements the following reformulation:

    • $(t, x) \in NormCone(p, 1+d)$ into $(r_i, t, x_i) \in PowerCone(1 / p)$ for all $i$, and $\sum\limits_i r_i == t$.

    For details, see Alizadeh, F., and Goldfarb, D. (2001). "Second-order cone programming." Mathematical Programming, Series B, 95:3-51.

    Source node

    NormToPowerBridge supports:

    Target nodes

    NormToPowerBridge creates:

    source
    MathOptInterface.Bridges.Constraint.GeoMeantoRelEntrBridgeType
    GeoMeantoRelEntrBridge{T,F,G,H} <: Bridges.Constraint.AbstractBridge

    GeoMeantoRelEntrBridge implements the following reformulation:

    • $(u, w) \in GeometricMeanCone$ into $(0, w, (u + y)\mathbf{1})\in RelativeEntropyCone$ and $y \ge 0$

    Source node

    GeoMeantoRelEntrBridge supports:

    Target nodes

    GeoMeantoRelEntrBridge creates:

    Derivation

    The derivation of the bridge is as follows:

    \[\begin{aligned} +(u, w) \in GeometricMeanCone \iff & u \le \left(\prod_{i=1}^n w_i\right)^{1/n} \\ +\iff & 0 \le u + y \le \left(\prod_{i=1}^n w_i\right)^{1/n}, y \ge 0 \\ +\iff & 1 \le \frac{\left(\prod_{i=1}^n w_i\right)^{1/n}}{u + y}, y \ge 0 \\ +\iff & 1 \le \left(\prod_{i=1}^n \frac{w_i}{u + y}\right)^{1/n}, y \ge 0 \\ +\iff & 0 \le \sum_{i=1}^n \log\left(\frac{w_i}{u + y}\right), y \ge 0 \\ +\iff & 0 \ge \sum_{i=1}^n \log\left(\frac{u + y}{w_i}\right), y \ge 0 \\ +\iff & 0 \ge \sum_{i=1}^n (u + y) \log\left(\frac{u + y}{w_i}\right), y \ge 0 \\ +\iff & (0, w, (u + y)\mathbf{1}) \in RelativeEntropyCone, y \ge 0 \\ +\end{aligned}\]

    This derivation assumes that $u + y > 0$, which is enforced by the relative entropy cone.

    source
    MathOptInterface.Bridges.Constraint.GeoMeanToPowerBridgeType
    GeoMeanToPowerBridge{T,F} <: Bridges.Constraint.AbstractBridge

    GeoMeanToPowerBridge implements the following reformulation:

    • $(y, x...) \in GeometricMeanCone(1+d)$ into $(x_1, t, y) \in PowerCone(1/d)$ and $(t, x_2, ..., x_d) in GeometricMeanCone(d)$, which is then recursively expanded into more PowerCone constraints.

    Source node

    GeoMeanToPowerBridge supports:

    Target nodes

    GeoMeanToPowerBridge creates:

    source
    MathOptInterface.Bridges.Constraint.GeoMeanBridgeType
    GeoMeanBridge{T,F,G,H} <: Bridges.Constraint.AbstractBridge

    GeoMeanBridge implements a reformulation from MOI.GeometricMeanCone into MOI.RotatedSecondOrderCone.

    The reformulation is best described in an example.

    Consider the cone of dimension 4:

    \[t \le \sqrt[3]{x_1 x_2 x_3}\]

    This can be rewritten as $\exists y \ge 0$ such that:

    \[\begin{align*} + t & \le y,\\ + y^4 & \le x_1 x_2 x_3 y. +\end{align*}\]

    Note that we need to create $y$ and not use $t^4$ directly because $t$ is allowed to be negative.

    This is equivalent to:

    \[\begin{align*} + t & \le \frac{y_1}{\sqrt{4}},\\ + y_1^2 & \le 2y_2 y_3,\\ + y_2^2 & \le 2x_1 x_2, \\ + y_3^2 & \le 2x_3(y_1/\sqrt{4}) \\ + y & \ge 0. +\end{align*}\]

    More generally, you can show how the geometric mean code is recursively expanded into a set of new variables $y$ in MOI.Nonnegatives, a set of MOI.RotatedSecondOrderCone constraints, and a MOI.LessThan constraint between $t$ and $y_1$.

    Source node

    GeoMeanBridge supports:

    Target nodes

    GeoMeanBridge creates:

    source
    MathOptInterface.Bridges.Constraint.RelativeEntropyBridgeType
    RelativeEntropyBridge{T,F,G,H} <: Bridges.Constraint.AbstractBridge

    RelativeEntropyBridge implements the following reformulation that converts a MOI.RelativeEntropyCone into an MOI.ExponentialCone:

    • $u \ge \sum_{i=1}^n w_i \log \left(\frac{w_i}{v_i}\right)$ into $y_i \ge 0$, $u \ge \sum_{i=1}^n y_i$, and $(-y_i, w_i, v_i) \in ExponentialCone$.

    Source node

    RelativeEntropyBridge supports:

    Target nodes

    RelativeEntropyBridge creates:

    source
    MathOptInterface.Bridges.Constraint.SquareBridgeType
    SquareBridge{T,F,G,TT,ST} <: Bridges.Constraint.AbstractBridge

    SquareBridge implements the following reformulations:

    • $(t, u, X) \in LogDetConeSquare$ into $(t, u, Y) in LogDetConeTriangle$
    • $(t, X) \in RootDetConeSquare$ into $(t, Y) in RootDetConeTriangle$
    • $X \in AbstractSymmetricMatrixSetSquare$ into $Y in AbstractSymmetricMatrixSetTriangle$

    where $Y$ is the upper triangluar component of $X$.

    In addition, constraints are added as necessary to constrain the matrix $X$ to be symmetric. For example, the constraint for the matrix:

    \[\begin{pmatrix} + 1 & 1 + x & 2 - 3x\\ + 1 + x & 2 + x & 3 - x\\ + 2 - 3x & 2 + x & 2x +\end{pmatrix}\]

    can be broken down to the constraint of the symmetric matrix

    \[\begin{pmatrix} + 1 & 1 + x & 2 - 3x\\ + \cdot & 2 + x & 3 - x\\ + \cdot & \cdot & 2x +\end{pmatrix}\]

    and the equality constraint between the off-diagonal entries (2, 3) and (3, 2) $3 - x == 2 + x$. Note that no symmetrization constraint needs to be added between the off-diagonal entries (1, 2) and (2, 1) or between (1, 3) and (3, 1) because the expressions are the same.

    Source node

    SquareBridge supports:

    • F in ST

    Target nodes

    SquareBridge creates:

    • G in TT
    source
    MathOptInterface.Bridges.Constraint.HermitianToSymmetricPSDBridgeType
    HermitianToSymmetricPSDBridge{T,F,G} <: Bridges.Constraint.AbstractBridge

    HermitianToSymmetricPSDBridge implements the following reformulation:

    • Hermitian positive semidefinite n x n complex matrix to a symmetric positive semidefinite 2n x 2n real matrix.

    See also MOI.Bridges.Variable.HermitianToSymmetricPSDBridge.

    Source node

    HermitianToSymmetricPSDBridge supports:

    Target node

    HermitianToSymmetricPSDBridge creates:

    Reformulation

    The reformulation is best described by example.

    The Hermitian matrix:

    \[\begin{bmatrix} + x_{11} & x_{12} + y_{12}im & x_{13} + y_{13}im\\ + x_{12} - y_{12}im & x_{22} & x_{23} + y_{23}im\\ + x_{13} - y_{13}im & x_{23} - y_{23}im & x_{33} +\end{bmatrix}\]

    is positive semidefinite if and only if the symmetric matrix:

    \[\begin{bmatrix} + x_{11} & x_{12} & x_{13} & 0 & y_{12} & y_{13} \\ + & x_{22} & x_{23} & -y_{12} & 0 & y_{23} \\ + & & x_{33} & -y_{13} & -y_{23} & 0 \\ + & & & x_{11} & x_{12} & x_{13} \\ + & & & & x_{22} & x_{23} \\ + & & & & & x_{33} +\end{bmatrix}\]

    is positive semidefinite.

    The bridge achieves this reformulation by constraining the above matrix to belong to the MOI.PositiveSemidefiniteConeTriangle(6).

    source
    MathOptInterface.Bridges.Constraint.RootDetBridgeType
    RootDetBridge{T,F,G,H} <: Bridges.Constraint.AbstractBridge

    The MOI.RootDetConeTriangle is representable by MOI.PositiveSemidefiniteConeTriangle and MOI.GeometricMeanCone constraints, see [1, p. 149].

    Indeed, $t \le \det(X)^{1/n}$ if and only if there exists a lower triangular matrix $Δ$ such that:

    \[\begin{align*} + \begin{pmatrix} + X & Δ\\ + Δ^\top & \mathrm{Diag}(Δ) + \end{pmatrix} & \succeq 0\\ + (t, \mathrm{Diag}(Δ)) & \in GeometricMeanCone +\end{align*}\]

    Source node

    RootDetBridge supports:

    Target nodes

    RootDetBridge creates:

    [1] Ben-Tal, Aharon, and Arkadi Nemirovski. Lectures on modern convex optimization: analysis, algorithms, and engineering applications. Society for Industrial and Applied Mathematics, 2001.

    source
    MathOptInterface.Bridges.Constraint.LogDetBridgeType
    LogDetBridge{T,F,G,H,I} <: Bridges.Constraint.AbstractBridge

    The MOI.LogDetConeTriangle is representable by MOI.PositiveSemidefiniteConeTriangle and MOI.ExponentialCone constraints.

    Indeed, $\log\det(X) = \sum\limits_{i=1}^n \log(\delta_i)$ where $\delta_i$ are the eigenvalues of $X$.

    Adapting the method from [1, p. 149], we see that $t \le u \log(\det(X/u))$ for $u > 0$ if and only if there exists a lower triangular matrix $Δ$ such that

    \[\begin{align*} + \begin{pmatrix} + X & Δ\\ + Δ^\top & \mathrm{Diag}(Δ) + \end{pmatrix} & \succeq 0\\ + t - \sum_{i=1}^n u \log\left(\frac{Δ_{ii}}{u}\right) & \le 0 +\end{align*}\]

    Which we reformulate further into

    \[\begin{align*} + \begin{pmatrix} + X & Δ\\ + Δ^\top & \mathrm{Diag}(Δ) + \end{pmatrix} & \succeq 0\\ + (l_i, u , Δ_{ii}) & \in ExponentialCone\quad \forall i \\ + t - \sum_{i=1}^n l_i & \le 0 +\end{align*}\]

    Source node

    LogDetBridge supports:

    Target nodes

    LogDetBridge creates:

    [1] Ben-Tal, Aharon, and Arkadi Nemirovski. Lectures on modern convex optimization: analysis, algorithms, and engineering applications. Society for Industrial and Applied Mathematics, 2001.

    source
    MathOptInterface.Bridges.Constraint.IndicatorActiveOnFalseBridgeType
    IndicatorActiveOnFalseBridge{T,F,S} <: Bridges.Constraint.AbstractBridge

    IndicatorActiveOnFalseBridge implements the following reformulation:

    • $\neg z \implies {f(x) \in S}$ into $y \implies {f(x) \in S}$, $z + y = 1$, and $y \in \{0, 1\}$

    Source node

    IndicatorActiveOnFalseBridge supports:

    Target nodes

    IndicatorActiveOnFalseBridge creates:

    source
    MathOptInterface.Bridges.Constraint.IndicatorGreaterToLessThanBridgeType
    IndicatorGreaterToLessThanBridge{T,A} <: Bridges.Constraint.AbstractBridge

    IndicatorGreaterToLessThanBridge implements the following reformulation:

    • $z \implies {f(x) \ge l}$ into $z \implies {-f(x) \le -l}$

    Source node

    IndicatorGreaterToLessThanBridge supports:

    Target nodes

    IndicatorGreaterToLessThanBridge creates:

    source
    MathOptInterface.Bridges.Constraint.IndicatorLessToGreaterThanBridgeType
    IndicatorLessToGreaterThanBridge{T,A} <: Bridges.Constraint.AbstractBridge

    IndicatorLessToGreaterThanBridge implements the following reformulations:

    • $z \implies {f(x) \le u}$ into $z \implies {-f(x) \ge -u}$

    Source node

    IndicatorLessToGreaterThanBridge supports:

    Target nodes

    IndicatorLessToGreaterThanBridge creates:

    source
    MathOptInterface.Bridges.Constraint.IndicatorSOS1BridgeType
    IndicatorSOS1Bridge{T,S} <: Bridges.Constraint.AbstractBridge

    IndicatorSOS1Bridge implements the following reformulation:

    • $z \implies {f(x) \in S}$ into $f(x) + y \in S$, $SOS1(y, z)$
    Warning

    This bridge assumes that the solver supports MOI.SOS1{T} constraints in which one of the variables ($y$) is continuous.

    Source node

    IndicatorSOS1Bridge supports:

    Target nodes

    IndicatorSOS1Bridge creates:

    source
    MathOptInterface.Bridges.Constraint.SemiToBinaryBridgeType
    SemiToBinaryBridge{T,S} <: Bridges.Constraint.AbstractBridge

    SemiToBinaryBridge implements the following reformulations:

    • $x \in \{0\} \cup [l, u]$ into

      \[\begin{aligned} +x \leq z u \\ +x \geq z l \\ +z \in \{0, 1\} +\end{aligned}\]

    • $x \in \{0\} \cup \{l, \ldots, u\}$ into

      \[\begin{aligned} +x \leq z u \\ +x \geq z l \\ +z \in \{0, 1\} \\ +x \in \mathbb{Z} +\end{aligned}\]

    Source node

    SemiToBinaryBridge supports:

    Target nodes

    SemiToBinaryBridge creates:

    source
    MathOptInterface.Bridges.Constraint.ZeroOneBridgeType
    ZeroOneBridge{T} <: Bridges.Constraint.AbstractBridge

    ZeroOneBridge implements the following reformulation:

    • $x \in \{0, 1\}$ into $x \in \mathbb{Z}$, $1x \in [0, 1]$.
    Note

    ZeroOneBridge adds a linear constraint instead of adding variable bounds to avoid conflicting with bounds set by the user.

    Source node

    ZeroOneBridge supports:

    Target nodes

    ZeroOneBridge creates:

    source
    MathOptInterface.Bridges.Constraint.IntegerToZeroOneBridgeType
    IntegerToZeroOneBridge{T} <: Bridges.Constraint.AbstractBridge

    IntegerToZeroOneBridge implements the following reformulation:

    • $x \in \mathbf{Z}$ into $y_i \in \{0, 1\}$, $x == lb + \sum 2^{i-1} y_i$.

    Source node

    IntegerToZeroOneBridge supports:

    Target nodes

    IntegerToZeroOneBridge creates:

    Developer note

    This bridge is implemented as a constraint bridge instead of a variable bridge because we don't want to substitute the linear combination of y for every instance of x. Doing so would be expensive and greatly reduce the sparsity of the constraints.

    source
    MathOptInterface.Bridges.Constraint.NumberConversionBridgeType
    NumberConversionBridge{T,F1,S1,F2,S2} <: Bridges.Constraint.AbstractBridge

    NumberConversionBridge implements the following reformulation:

    • $f1(x) \in S1$ to $f2(x) \in S2$

    where f and S are the same functional form, but differ in their coefficient type.

    Source node

    NumberConversionBridge supports:

    • F1 in S1

    Target node

    NumberConversionBridge creates:

    • F2 in S2
    source
    MathOptInterface.Bridges.Constraint.AllDifferentToCountDistinctBridgeType
    AllDifferentToCountDistinctBridge{T,F} <: Bridges.Constraint.AbstractBridge

    AllDifferentToCountDistinctBridge implements the following reformulations:

    • $x \in \textsf{AllDifferent}(d)$ to $(n, x) \in \textsf{CountDistinct}(1+d)$ and $n = d$
    • $f(x) \in \textsf{AllDifferent}(d)$ to $(d, f(x)) \in \textsf{CountDistinct}(1+d)$

    Source node

    AllDifferentToCountDistinctBridge supports:

    where F is MOI.VectorOfVariables or MOI.VectorAffineFunction{T}.

    Target nodes

    AllDifferentToCountDistinctBridge creates:

    source
    MathOptInterface.Bridges.Constraint.ReifiedAllDifferentToCountDistinctBridgeType
    ReifiedAllDifferentToCountDistinctBridge{T,F} <:
    +Bridges.Constraint.AbstractBridge

    ReifiedAllDifferentToCountDistinctBridge implements the following reformulations:

    • $r \iff x \in \textsf{AllDifferent}(d)$ to $r \iff (n, x) \in \textsf{CountDistinct}(1+d)$ and $n = d$
    • $r \iff f(x) \in \textsf{AllDifferent}(d)$ to $r \iff (d, f(x)) \in \textsf{CountDistinct}(1+d)$

    Source node

    ReifiedAllDifferentToCountDistinctBridge supports:

    where F is MOI.VectorOfVariables or MOI.VectorAffineFunction{T}.

    Target nodes

    ReifiedAllDifferentToCountDistinctBridge creates:

    source
    MathOptInterface.Bridges.Constraint.BinPackingToMILPBridgeType
    BinPackingToMILPBridge{T,F} <: Bridges.Constraint.AbstractBridge

    BinPackingToMILPBridge implements the following reformulation:

    • $x \in BinPacking(c, w)$ into a mixed-integer linear program.

    Reformulation

    The reformulation is non-trivial, and it depends on the finite domain of each variable $x_i$, which we as define $S_i = \{l_i,\ldots,u_i\}$.

    First, we introduce new binary variables $z_{ij}$, which are $1$ if variable $x_i$ takes the value $j$ in the optimal solution and $0$ otherwise:

    \[\begin{aligned} +z_{ij} \in \{0, 1\} & \;\; \forall i \in 1\ldots d, j \in S_i \\ +x_i - \sum\limits_{j\in S_i} j \cdot z_{ij} = 0 & \;\; \forall i \in 1\ldots d \\ +\sum\limits_{j\in S_i} z_{ij} = 1 & \;\; \forall i \in 1\ldots d \\ +\end{aligned}\]

    Then, we add the capacity constraint for all possible bins $j$:

    \[\sum\limits_{i} w_i z_{ij} \le c \forall j \in \bigcup_{i=1,\ldots,d} S_i\]

    Source node

    BinPackingToMILPBridge supports:

    Target nodes

    BinPackingToMILPBridge creates:

    source
    MathOptInterface.Bridges.Constraint.CircuitToMILPBridgeType
    CircuitToMILPBridge{T,F} <: Bridges.Constraint.AbstractBridge

    CircuitToMILPBridge implements the following reformulation:

    • $x \in \textsf{Circuit}(d)$ to the Miller-Tucker-Zemlin formulation of the Traveling Salesperson Problem.

    Source node

    CircuitToMILPBridge supports:

    where F is MOI.VectorOfVariables or MOI.VectorAffineFunction{T}.

    Target nodes

    CircuitToMILPBridge creates:

    source
    MathOptInterface.Bridges.Constraint.CountAtLeastToCountBelongsBridgeType
    CountAtLeastToCountBelongsBridge{T,F} <: Bridges.Constraint.AbstractBridge

    CountAtLeastToCountBelongsBridge implements the following reformulation:

    • $x \in \textsf{CountAtLeast}(n, d, \mathcal{S})$ to $(n_i, x_{d_i}) \in \textsf{CountBelongs}(1+d, \mathcal{S})$ and $n_i \ge n$ for all $i$.

    Source node

    CountAtLeastToCountBelongsBridge supports:

    where F is MOI.VectorOfVariables or MOI.VectorAffineFunction{T}.

    Target nodes

    CountAtLeastToCountBelongsBridge creates:

    source
    MathOptInterface.Bridges.Constraint.CountBelongsToMILPBridgeType
    CountBelongsToMILPBridge{T,F} <: Bridges.Constraint.AbstractBridge

    CountBelongsToMILPBridge implements the following reformulation:

    • $(n, x) \in \textsf{CountBelongs}(1+d, \mathcal{S})$ into a mixed-integer linear program.

    Reformulation

    The reformulation is non-trivial, and it depends on the finite domain of each variable $x_i$, which we as define $S_i = \{l_i,\ldots,u_i\}$.

    First, we introduce new binary variables $z_{ij}$, which are $1$ if variable $x_i$ takes the value $j$ in the optimal solution and $0$ otherwise:

    \[\begin{aligned} +z_{ij} \in \{0, 1\} & \;\; \forall i \in 1\ldots d, j \in S_i \\ +x_i - \sum\limits_{j\in S_i} j \cdot z_{ij} = 0 & \;\; \forall i \in 1\ldots d \\ +\sum\limits_{j\in S_i} z_{ij} = 1 & \;\; \forall i \in 1\ldots d \\ +\end{aligned}\]

    Finally, $n$ is constrained to be the number of $z_{ij}$ elements that are in $\mathcal{S}$:

    \[n - \sum\limits_{i\in 1\ldots d, j \in \mathcal{S}} z_{ij} = 0\]

    Source node

    CountBelongsToMILPBridge supports:

    where F is MOI.VectorOfVariables or MOI.VectorAffineFunction{T}.

    Target nodes

    CountBelongsToMILPBridge creates:

    source
    MathOptInterface.Bridges.Constraint.CountDistinctToMILPBridgeType
    CountDistinctToMILPBridge{T,F} <: Bridges.Constraint.AbstractBridge

    CountDistinctToMILPBridge implements the following reformulation:

    • $(n, x) \in \textsf{CountDistinct}(1+d)$ into a mixed-integer linear program.

    Reformulation

    The reformulation is non-trivial, and it depends on the finite domain of each variable $x_i$, which we as define $S_i = \{l_i,\ldots,u_i\}$.

    First, we introduce new binary variables $z_{ij}$, which are $1$ if variable $x_i$ takes the value $j$ in the optimal solution and $0$ otherwise:

    \[\begin{aligned} +z_{ij} \in \{0, 1\} & \;\; \forall i \in 1\ldots d, j \in S_i \\ +x_i - \sum\limits_{j\in S_i} j \cdot z_{ij} = 0 & \;\; \forall i \in 1\ldots d \\ +\sum\limits_{j\in S_i} z_{ij} = 1 & \;\; \forall i \in 1\ldots d \\ +\end{aligned}\]

    Then, we introduce new binary variables $y_j$, which are $1$ if a variable takes the value $j$ in the optimal solution and $0$ otherwise.

    \[\begin{aligned} +y_{j} \in \{0, 1\} & \;\; \forall j \in \bigcup_{i=1,\ldots,d} S_i \\ +y_j \le \sum\limits_{i \in 1\ldots d: j \in S_i} z_{ij} \le M y_j & \;\; \forall j \in \bigcup_{i=1,\ldots,d} S_i\\ +\end{aligned}\]

    Finally, $n$ is constrained to be the number of $y_j$ elements that are non-zero:

    \[n - \sum\limits_{j \in \bigcup_{i=1,\ldots,d} S_i} y_{j} = 0\]

    Source node

    CountDistinctToMILPBridge supports:

    where F is MOI.VectorOfVariables or MOI.VectorAffineFunction{T}.

    Target nodes

    CountDistinctToMILPBridge creates:

    source
    MathOptInterface.Bridges.Constraint.ReifiedCountDistinctToMILPBridgeType
    ReifiedCountDistinctToMILPBridge{T,F} <: Bridges.Constraint.AbstractBridge

    ReifiedCountDistinctToMILPBridge implements the following reformulation:

    • $r \iff (n, x) \in \textsf{CountDistinct}(1+d)$ into a mixed-integer linear program.

    Reformulation

    The reformulation is non-trivial, and it depends on the finite domain of each variable $x_i$, which we as define $S_i = \{l_i,\ldots,u_i\}$.

    First, we introduce new binary variables $z_{ij}$, which are $1$ if variable $x_i$ takes the value $j$ in the optimal solution and $0$ otherwise:

    \[\begin{aligned} +z_{ij} \in \{0, 1\} & \;\; \forall i \in 1\ldots d, j \in S_i \\ +x_i - \sum\limits_{j\in S_i} j \cdot z_{ij} = 0 & \;\; \forall i \in 1\ldots d \\ +\sum\limits_{j\in S_i} z_{ij} = 1 & \;\; \forall i \in 1\ldots d \\ +\end{aligned}\]

    Then, we introduce new binary variables $y_j$, which are $1$ if a variable takes the value $j$ in the optimal solution and $0$ otherwise.

    \[\begin{aligned} +y_{j} \in \{0, 1\} & \;\; \forall j \in \bigcup_{i=1,\ldots,d} S_i \\ +y_j \le \sum\limits_{i \in 1\ldots d: j \in S_i} z_{ij} \le M y_j & \;\; \forall j \in \bigcup_{i=1,\ldots,d} S_i\\ +\end{aligned}\]

    Finally, $n$ is constrained to be the number of $y_j$ elements that are non-zero, with some slack:

    \[n - \sum\limits_{j \in \bigcup_{i=1,\ldots,d} S_i} y_{j} = \delta^+ - \delta^-\]

    And then the slack is constrained to respect the reif variable $r$:

    \[\begin{aligned} +d_1 \le \delta^+ \le M d_1 \\ +d_2 \le \delta^- \le M d_s \\ +d_1 + d_2 + r = 1 \\ +d_1, d_2 \in \{0, 1\} +\end{aligned}\]

    Source node

    ReifiedCountDistinctToMILPBridge supports:

    where F is MOI.VectorOfVariables or MOI.VectorAffineFunction{T}.

    Target nodes

    ReifiedCountDistinctToMILPBridge creates:

    source
    MathOptInterface.Bridges.Constraint.CountGreaterThanToMILPBridgeType
    CountGreaterThanToMILPBridge{T,F} <: Bridges.Constraint.AbstractBridge

    CountGreaterThanToMILPBridge implements the following reformulation:

    • $(c, y, x) \in CountGreaterThan()$ into a mixed-integer linear program.

    Source node

    CountGreaterThanToMILPBridge supports:

    Target nodes

    CountGreaterThanToMILPBridge creates:

    source
    MathOptInterface.Bridges.Constraint.TableToMILPBridgeType
    TableToMILPBridge{T,F} <: Bridges.Constraint.AbstractBridge

    TableToMILPBridge implements the following reformulation:

    • $x \in Table(t)$ into

      \[\begin{aligned} +z_{j} \in \{0, 1\} & \quad \forall i, j \\ +\sum\limits_{j=1}^n z_{j} = 1 \\ +\sum\limits_{j=1}^n t_{ij} z_{j} = x_i & \quad \forall i +\end{aligned}\]

    Source node

    TableToMILPBridge supports:

    Target nodes

    TableToMILPBridge creates:

    source

    Objective bridges

    These bridges are subtypes of Bridges.Objective.AbstractBridge.

    MathOptInterface.Bridges.Objective.QuadratizeBridgeType
    QuadratizeBridge{T}

    QuadratizeBridge implements the following reformulations:

    • $\min \{a^\top x + b\}$ into $\min\{x^\top \mathbf{0} x + a^\top x + b\}$
    • $\max \{a^\top x + b\}$ into $\max\{x^\top \mathbf{0} x + a^\top x + b\}$

    where T is the coefficient type of 0.

    Source node

    QuadratizeBridge supports:

    Target nodes

    QuadratizeBridge creates:

    source
    MathOptInterface.Bridges.Objective.SlackBridgeType
    SlackBridge{T,F,G}

    SlackBridge implements the following reformulations:

    • $\min\{f(x)\}$ into $\min\{y\;|\; f(x) - y \le 0\}$
    • $\max\{f(x)\}$ into $\max\{y\;|\; f(x) - y \ge 0\}$

    where F is the type of f(x) - y, G is the type of f(x), and T is the coefficient type of f(x).

    Source node

    SlackBridge supports:

    Target nodes

    SlackBridge creates:

    Warning

    When using this bridge, changing the optimization sense is not supported. Set the sense to MOI.FEASIBILITY_SENSE first to delete the bridge, then set MOI.ObjectiveSense and re-add the objective.

    source
    MathOptInterface.Bridges.Objective.VectorSlackBridgeType
    VectorSlackBridge{T,F,G}

    VectorSlackBridge implements the following reformulations:

    • $\min\{f(x)\}$ into $\min\{y\;|\; y - f(x) \in \mathbb{R}_+ \}$
    • $\max\{f(x)\}$ into $\max\{y\;|\; f(x) - y \in \mathbb{R}_+ \}$

    where F is the type of f(x) - y, G is the type of f(x), and T is the coefficient type of f(x).

    Source node

    VectorSlackBridge supports:

    Target nodes

    VectorSlackBridge creates:

    Warning

    When using this bridge, changing the optimization sense is not supported. Set the sense to MOI.FEASIBILITY_SENSE first to delete the bridge, then set MOI.ObjectiveSense and re-add the objective.

    source

    Variable bridges

    These bridges are subtypes of Bridges.Variable.AbstractBridge.

    MathOptInterface.Bridges.Variable.RSOCtoPSDBridgeType
    RSOCtoPSDBridge{T} <: Bridges.Variable.AbstractBridge

    RSOCtoPSDBridge implements the following reformulation:

    • $||x||_2^2 \le 2tu$ where $t, u \ge 0$ into $Y \succeq 0$, with the substitution rule: $Y = \left[\begin{array}{c c}t & x^\top \\ x & 2u \mathbf{I}\end{array}\right].$

    Additional bounds are added to ensure the off-diagonals of the $2uI$ submatrix are 0, and linear constraints are added to ennsure the diagonal of $2uI$ takes the same values.

    As a special case, if $|x|| = 0$, then RSOCtoPSDBridge reformulates into $(t, u) \in \mathbb{R}_+$.

    Source node

    RSOCtoPSDBridge supports:

    Target nodes

    RSOCtoPSDBridge creates:

    source
    MathOptInterface.Bridges.Variable.RSOCtoSOCBridgeType
    RSOCtoSOCBridge{T} <: Bridges.Variable.AbstractBridge

    RSOCtoSOCBridge implements the following reformulation:

    • $||x||_2^2 \le 2tu$ into $||v||_2 \le w$, with the substitution rules $t = \frac{w}{\sqrt 2} + \frac{v_1}{\sqrt 2}$, $u = \frac{w}{\sqrt 2} - \frac{v_1}{\sqrt 2}$, and $x = (v_2,\ldots,v_N)$.

    Source node

    RSOCtoSOCBridge supports:

    Target node

    RSOCtoSOCBridge creates:

    source
    MathOptInterface.Bridges.Variable.SOCtoRSOCBridgeType
    SOCtoRSOCBridge{T} <: Bridges.Variable.AbstractBridge

    SOCtoRSOCBridge implements the following reformulation:

    • $||x||_2 \le t$ into $2uv \ge ||w||_2^2$, with the substitution rules $t = \frac{u}{\sqrt 2} + \frac{v}{\sqrt 2}$, $x = (\frac{u}{\sqrt 2} - \frac{v}{\sqrt 2}, w)$.

    Assumptions

    • SOCtoRSOCBridge assumes that $|x| \ge 1$.

    Source node

    SOCtoRSOCBridge supports:

    Target node

    SOCtoRSOCBridge creates:

    source
    MathOptInterface.Bridges.Variable.VectorizeBridgeType
    VectorizeBridge{T,S} <: Bridges.Variable.AbstractBridge

    VectorizeBridge implements the following reformulations:

    • $x \ge a$ into $[y] \in \mathbb{R}_+$ with the substitution rule $x = a + y$
    • $x \le a$ into $[y] \in \mathbb{R}_-$ with the substitution rule $x = a + y$
    • $x == a$ into $[y] \in \{0\}$ with the substitution rule $x = a + y$

    where T is the coefficient type of a + y.

    Source node

    VectorizeBridge supports:

    Target nodes

    VectorizeBridge creates:

    source
    MathOptInterface.Bridges.Variable.ZerosBridgeType
    ZerosBridge{T} <: Bridges.Variable.AbstractBridge

    ZerosBridge implements the following reformulation:

    • $x \in \{0\}$ into the substitution rule $x = 0$,

    where T is the coefficient type of 0.

    Source node

    ZerosBridge supports:

    Target nodes

    ZerosBridge does not create target nodes. It replaces all instances of x with 0 via substitution. This means that no variables are created in the underlying model.

    Caveats

    The bridged variables are similar to parameters with zero values. Parameters with non-zero values can be created with constrained variables in MOI.EqualTo by combining a VectorizeBridge and this bridge.

    However, functions modified by ZerosBridge cannot be unbridged. That is, for a given function, we cannot determine if the bridged variables were used.

    A related implication is that this bridge does not support MOI.ConstraintDual. However, if a MOI.Utilities.CachingOptimizer is used, the dual can be determined by the bridged optimizer using MOI.Utilities.get_fallback because the caching optimizer records the unbridged function.

    source
    MathOptInterface.Bridges.Variable.HermitianToSymmetricPSDBridgeType
    HermitianToSymmetricPSDBridge{T} <: Bridges.Variable.AbstractBridge

    HermitianToSymmetricPSDBridge implements the following reformulation:

    • Hermitian positive semidefinite n x n complex matrix to a symmetric positive semidefinite 2n x 2n real matrix satisfying equality constraints described below.

    Source node

    HermitianToSymmetricPSDBridge supports:

    Target node

    HermitianToSymmetricPSDBridge creates:

    Reformulation

    The reformulation is best described by example.

    The Hermitian matrix:

    \[\begin{bmatrix} + x_{11} & x_{12} + y_{12}im & x_{13} + y_{13}im\\ + x_{12} - y_{12}im & x_{22} & x_{23} + y_{23}im\\ + x_{13} - y_{13}im & x_{23} - y_{23}im & x_{33} +\end{bmatrix}\]

    is positive semidefinite if and only if the symmetric matrix:

    \[\begin{bmatrix} + x_{11} & x_{12} & x_{13} & 0 & y_{12} & y_{13} \\ + & x_{22} & x_{23} & -y_{12} & 0 & y_{23} \\ + & & x_{33} & -y_{13} & -y_{23} & 0 \\ + & & & x_{11} & x_{12} & x_{13} \\ + & & & & x_{22} & x_{23} \\ + & & & & & x_{33} +\end{bmatrix}\]

    is positive semidefinite.

    The bridge achieves this reformulation by adding a new set of variables in MOI.PositiveSemidefiniteConeTriangle(6), and then adding three groups of equality constraints to:

    • constrain the two x blocks to be equal
    • force the diagonal of the y blocks to be 0
    • force the lower triangular of the y block to be the negative of the upper triangle.
    source
    diff --git a/previews/PR3545/moi/submodules/Bridges/overview/index.html b/previews/PR3545/moi/submodules/Bridges/overview/index.html new file mode 100644 index 00000000000..627041ed02b --- /dev/null +++ b/previews/PR3545/moi/submodules/Bridges/overview/index.html @@ -0,0 +1,57 @@ + +Overview · JuMP

    The Bridges submodule

    The Bridges module simplifies the process of converting models between equivalent formulations.

    Tip

    Read our paper for more details on how bridges are implemented.

    Why bridges?

    A constraint can often be written in a number of equivalent formulations. For example, the constraint $l \le a^\top x \le u$ (ScalarAffineFunction-in-Interval) could be re-formulated as two constraints: $a^\top x \ge l$ (ScalarAffineFunction-in-GreaterThan) and $a^\top x \le u$ (ScalarAffineFunction-in-LessThan). An alternative re-formulation is to add a dummy variable y with the constraints $l \le y \le u$ (VariableIndex-in-Interval) and $a^\top x - y = 0$ (ScalarAffineFunction-in-EqualTo).

    To avoid each solver having to code these transformations manually, MathOptInterface provides bridges.

    A bridge is a small transformation from one constraint type to another (potentially collection of) constraint type.

    Because these bridges are included in MathOptInterface, they can be re-used by any optimizer. Some bridges also implement constraint modifications and constraint primal and dual translations.

    Several bridges can be used in combination to transform a single constraint into a form that the solver may understand. Choosing the bridges to use takes the form of finding a shortest path in the hyper-graph of bridges. The methodology is detailed in the MOI paper.

    The three types of bridges

    There are three types of bridges in MathOptInterface:

    1. Constraint bridges
    2. Variable bridges
    3. Objective bridges

    Constraint bridges

    Constraint bridges convert constraints formulated by the user into an equivalent form supported by the solver. Constraint bridges are subtypes of Bridges.Constraint.AbstractBridge.

    The equivalent formulation may add constraints (and possibly also variables) in the underlying model.

    In particular, constraint bridges can focus on rewriting the function of a constraint, and do not change the set. Function bridges are subtypes of Bridges.Constraint.AbstractFunctionConversionBridge.

    Read the list of implemented constraint bridges for more details on the types of transformations that are available. Function bridges are Bridges.Constraint.ScalarFunctionizeBridge and Bridges.Constraint.VectorFunctionizeBridge.

    Variable bridges

    Variable bridges convert variables added by the user, either free with add_variable/add_variables, or constrained with add_constrained_variable/add_constrained_variables, into an equivalent form supported by the solver. Variable bridges are subtypes of Bridges.Variable.AbstractBridge.

    The equivalent formulation may add constraints (and possibly also variables) in the underlying model.

    Read the list of implemented variable bridges for more details on the types of transformations that are available.

    Objective bridges

    Objective bridges convert the ObjectiveFunction set by the user into an equivalent form supported by the solver. Objective bridges are subtypes of Bridges.Objective.AbstractBridge.

    The equivalent formulation may add constraints (and possibly also variables) in the underlying model.

    Read the list of implemented objective bridges for more details on the types of transformations that are available.

    Bridges.full_bridge_optimizer

    Tip

    Unless you have an advanced use-case, this is probably the only function you need to care about.

    To enable the full power of MathOptInterface's bridges, wrap an optimizer in a Bridges.full_bridge_optimizer.

    julia> inner_optimizer = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> optimizer = MOI.Bridges.full_bridge_optimizer(inner_optimizer, Float64)
    +MOIB.LazyBridgeOptimizer{MOIU.Model{Float64}}
    +with 0 variable bridges
    +with 0 constraint bridges
    +with 0 objective bridges
    +with inner model MOIU.Model{Float64}

    Now, use optimizer as normal, and bridging will happen lazily behind the scenes. By lazily, we mean that bridging will happen if and only if the constraint is not supported by the inner_optimizer.

    Info

    Most bridges are added by default in Bridges.full_bridge_optimizer. However, for technical reasons, some bridges are not added by default. Three examples include Bridges.Constraint.SOCtoPSDBridge, Bridges.Constraint.SOCtoNonConvexQuadBridge and Bridges.Constraint.RSOCtoNonConvexQuadBridge. See the docs of those bridges for more information.

    Add a single bridge

    If you don't want to use Bridges.full_bridge_optimizer, you can wrap an optimizer in a single bridge.

    However, this will force the constraint to be bridged, even if the inner_optimizer supports it.

    julia> inner_optimizer = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> optimizer = MOI.Bridges.Constraint.SplitInterval{Float64}(inner_optimizer)
    +MOIB.Constraint.SingleBridgeOptimizer{MOIB.Constraint.SplitIntervalBridge{Float64}, MOIU.Model{Float64}}
    +with 0 constraint bridges
    +with inner model MOIU.Model{Float64}
    +
    +julia> x = MOI.add_variable(optimizer)
    +MOI.VariableIndex(1)
    +
    +julia> MOI.add_constraint(optimizer, x, MOI.Interval(0.0, 1.0))
    +MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.Interval{Float64}}(1)
    +
    +julia> MOI.get(optimizer, MOI.ListOfConstraintTypesPresent())
    +1-element Vector{Tuple{Type, Type}}:
    + (MathOptInterface.VariableIndex, MathOptInterface.Interval{Float64})
    +
    +julia> MOI.get(inner_optimizer, MOI.ListOfConstraintTypesPresent())
    +2-element Vector{Tuple{Type, Type}}:
    + (MathOptInterface.VariableIndex, MathOptInterface.GreaterThan{Float64})
    + (MathOptInterface.VariableIndex, MathOptInterface.LessThan{Float64})

    Bridges.LazyBridgeOptimizer

    If you don't want to use Bridges.full_bridge_optimizer, but you need more than a single bridge (or you want the bridging to happen lazily), you can manually construct a Bridges.LazyBridgeOptimizer.

    First, wrap an inner optimizer:

    julia> inner_optimizer = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> optimizer = MOI.Bridges.LazyBridgeOptimizer(inner_optimizer)
    +MOIB.LazyBridgeOptimizer{MOIU.Model{Float64}}
    +with 0 variable bridges
    +with 0 constraint bridges
    +with 0 objective bridges
    +with inner model MOIU.Model{Float64}

    Then use Bridges.add_bridge to add individual bridges:

    julia> MOI.Bridges.add_bridge(optimizer, MOI.Bridges.Constraint.SplitIntervalBridge{Float64})
    +
    +julia> MOI.Bridges.add_bridge(optimizer, MOI.Bridges.Objective.FunctionizeBridge{Float64})

    Now the constraints will be bridged only if needed:

    julia> x = MOI.add_variable(optimizer)
    +MOI.VariableIndex(1)
    +
    +julia> MOI.add_constraint(optimizer, x, MOI.Interval(0.0, 1.0))
    +MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.Interval{Float64}}(1)
    +
    +julia> MOI.get(optimizer, MOI.ListOfConstraintTypesPresent())
    +1-element Vector{Tuple{Type, Type}}:
    + (MathOptInterface.VariableIndex, MathOptInterface.Interval{Float64})
    +
    +julia> MOI.get(inner_optimizer, MOI.ListOfConstraintTypesPresent())
    +1-element Vector{Tuple{Type, Type}}:
    + (MathOptInterface.VariableIndex, MathOptInterface.Interval{Float64})
    diff --git a/previews/PR3545/moi/submodules/Bridges/reference/index.html b/previews/PR3545/moi/submodules/Bridges/reference/index.html new file mode 100644 index 00000000000..8be450a47df --- /dev/null +++ b/previews/PR3545/moi/submodules/Bridges/reference/index.html @@ -0,0 +1,199 @@ + +API Reference · JuMP

    Bridges

    AbstractBridge API

    MathOptInterface.Bridges.AbstractBridgeType
    abstract type AbstractBridge end

    An abstract type representing a bridged constraint or variable in a MOI.Bridges.AbstractBridgeOptimizer.

    All bridges must implement:

    Subtypes of AbstractBridge may have additional requirements. Consult their docstrings for details.

    In addition, all subtypes may optionally implement the following constraint attributes with the bridge in place of the constraint index:

    source
    MathOptInterface.Bridges.added_constrained_variable_typesFunction
    added_constrained_variable_types(
    +    BT::Type{<:AbstractBridge},
    +)::Vector{Tuple{Type}}

    Return a list of the types of constrained variables that bridges of concrete type BT add.

    Implementation notes

    • This method depends only on the type of the bridge, not the runtime value. If the bridge may add a constrained variable, the type must be included in the return vector.
    • If the bridge adds a free variable via MOI.add_variable or MOI.add_variables, the return vector must include (MOI.Reals,).

    Example

    julia> MOI.Bridges.added_constrained_variable_types(
    +           MOI.Bridges.Variable.NonposToNonnegBridge{Float64},
    +       )
    +1-element Vector{Tuple{Type}}:
    + (MathOptInterface.Nonnegatives,)
    source
    MathOptInterface.Bridges.added_constraint_typesFunction
    added_constraint_types(
    +    BT::Type{<:AbstractBridge},
    +)::Vector{Tuple{Type,Type}}

    Return a list of the types of constraints that bridges of concrete type BT add.

    Implementation notes

    • This method depends only on the type of the bridge, not the runtime value. If the bridge may add a constraint, the type must be included in the return vector.

    Example

    julia> MOI.Bridges.added_constraint_types(
    +           MOI.Bridges.Constraint.ZeroOneBridge{Float64},
    +       )
    +2-element Vector{Tuple{Type, Type}}:
    + (MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.Interval{Float64})
    + (MathOptInterface.VariableIndex, MathOptInterface.Integer)
    source
    MathOptInterface.getMethod
    MOI.get(b::AbstractBridge, ::MOI.NumberOfVariables)::Int64

    Return the number of variables created by the bridge b in the model.

    See also MOI.NumberOfConstraints.

    Implementation notes

    • There is a default fallback, so you need only implement this if the bridge adds new variables.
    source
    MathOptInterface.getMethod
    MOI.get(b::AbstractBridge, ::MOI.ListOfVariableIndices)

    Return the list of variables created by the bridge b.

    See also MOI.ListOfVariableIndices.

    Implementation notes

    • There is a default fallback, so you need only implement this if the bridge adds new variables.
    source
    MathOptInterface.getMethod
    MOI.get(b::AbstractBridge, ::MOI.NumberOfConstraints{F,S})::Int64 where {F,S}

    Return the number of constraints of the type F-in-S created by the bridge b.

    See also MOI.NumberOfConstraints.

    Implementation notes

    • There is a default fallback, so you need only implement this for the constraint types returned by added_constraint_types.
    source
    MathOptInterface.getMethod
    MOI.get(b::AbstractBridge, ::MOI.ListOfConstraintIndices{F,S}) where {F,S}

    Return a Vector{ConstraintIndex{F,S}} with indices of all constraints of type F-in-S created by the bride b.

    See also MOI.ListOfConstraintIndices.

    Implementation notes

    • There is a default fallback, so you need only implement this for the constraint types returned by added_constraint_types.
    source
    MathOptInterface.Bridges.final_touchFunction
    final_touch(bridge::AbstractBridge, model::MOI.ModelLike)::Nothing

    A function that is called immediately prior to MOI.optimize! to allow bridges to modify their reformulations with repsect to other variables and constraints in model.

    For example, if the correctness of bridge depends on the bounds of a variable or the fact that variables are integer, then the bridge can implement final_touch to check assumptions immediately before a call to MOI.optimize!.

    If you implement this method, you must also implement needs_final_touch.

    source
    MathOptInterface.Bridges.bridging_costFunction
    bridging_cost(b::AbstractBridgeOptimizer, S::Type{<:MOI.AbstractSet}})

    Return the cost of bridging variables constrained in S on creation, is_bridged(b, S) is assumed to be true.

    bridging_cost(
    +    b::AbstractBridgeOptimizer,
    +    F::Type{<:MOI.AbstractFunction},
    +    S::Type{<:MOI.AbstractSet},
    +)

    Return the cost of bridging F-in-S constraints.

    is_bridged(b, S) is assumed to be true.

    source

    Constraint bridge API

    MathOptInterface.supports_constraintMethod
    MOI.supports_constraint(
    +    BT::Type{<:AbstractBridge},
    +    F::Type{<:MOI.AbstractFunction},
    +    S::Type{<:MOI.AbstractSet},
    +)::Bool

    Return a Bool indicating whether the bridges of type BT support bridging F-in-S constraints.

    Implementation notes

    • This method depends only on the type of the inputs, not the runtime values.
    • There is a default fallback, so you need only implement this method for constraint types that the bridge implements.
    source
    MathOptInterface.Bridges.Constraint.concrete_bridge_typeFunction
    concrete_bridge_type(
    +    BT::Type{<:AbstractBridge},
    +    F::Type{<:MOI.AbstractFunction},
    +    S::Type{<:MOI.AbstractSet}
    +)::Type

    Return the concrete type of the bridge supporting F-in-S constraints.

    This function can only be called if MOI.supports_constraint(BT, F, S) is true.

    Example

    The SplitIntervalBridge bridges a MOI.VariableIndex-in-MOI.Interval constraint into a MOI.VariableIndex-in-MOI.GreaterThan and a MOI.VariableIndex-in-MOI.LessThan constraint.

    julia> MOI.Bridges.Constraint.concrete_bridge_type(
    +           MOI.Bridges.Constraint.SplitIntervalBridge{Float64},
    +           MOI.VariableIndex,
    +           MOI.Interval{Float64},
    +       )
    +MathOptInterface.Bridges.Constraint.SplitIntervalBridge{Float64, MathOptInterface.VariableIndex, MathOptInterface.Interval{Float64}, MathOptInterface.GreaterThan{Float64}, MathOptInterface.LessThan{Float64}}
    source
    MathOptInterface.Bridges.Constraint.bridge_constraintFunction
    bridge_constraint(
    +    BT::Type{<:AbstractBridge},
    +    model::MOI.ModelLike,
    +    func::AbstractFunction,
    +    set::MOI.AbstractSet,
    +)::BT

    Bridge the constraint func-in-set using bridge BT to model and returns a bridge object of type BT.

    Implementation notes

    • The bridge type BT should be a concrete type, that is, all the type parameters of the bridge must be set.
    source
    MathOptInterface.Bridges.Constraint.SingleBridgeOptimizerType
    SingleBridgeOptimizer{BT<:AbstractBridge}(model::MOI.ModelLike)

    Return AbstractBridgeOptimizer that always bridges any objective function supported by the bridge BT.

    This is in contrast with the MOI.Bridges.LazyBridgeOptimizer, which only bridges the objective function if it is supported by the bridge BT and unsupported by model.

    Example

    julia> struct MyNewBridge{T} <: MOI.Bridges.Constraint.AbstractBridge end
    +
    +julia> bridge = MOI.Bridges.Constraint.SingleBridgeOptimizer{MyNewBridge{Float64}}(
    +           MOI.Utilities.Model{Float64}(),
    +       )
    +MOIB.Constraint.SingleBridgeOptimizer{MyNewBridge{Float64}, MOIU.Model{Float64}}
    +with 0 constraint bridges
    +with inner model MOIU.Model{Float64}

    Implementation notes

    All bridges should simplify the creation of SingleBridgeOptimizers by defining a constant that wraps the bridge in a SingleBridgeOptimizer.

    julia> const MyNewBridgeModel{T,OT<:MOI.ModelLike} =
    +           MOI.Bridges.Constraint.SingleBridgeOptimizer{MyNewBridge{T},OT};

    This enables users to create bridged models as follows:

    julia> MyNewBridgeModel{Float64}(MOI.Utilities.Model{Float64}())
    +MOIB.Constraint.SingleBridgeOptimizer{MyNewBridge{Float64}, MOIU.Model{Float64}}
    +with 0 constraint bridges
    +with inner model MOIU.Model{Float64}
    source
    MathOptInterface.Bridges.Constraint.SetMapBridgeType
    abstract type SetMapBridge{T,S2,S1,F,G} <: AbstractBridge end

    Consider two type of sets, S1 and S2, and a linear mapping A such that the image of a set of type S1 under A is a set of type S2.

    A SetMapBridge{T,S2,S1,F,G} is a bridge that maps G-in-S1 constraints into F-in-S2 by mapping the function through A.

    The linear map A is described by;

    Implementing a method for these two functions is sufficient to bridge constraints. However, in order for the getters and setters of attributes such as dual solutions and starting values to work as well, a method for the following functions must be implemented:

    See the docstrings of each function to see which feature would be missing if it was not implemented for a given bridge.

    source

    Objective bridge API

    MathOptInterface.Bridges.Objective.supports_objective_functionFunction
    supports_objective_function(
    +    BT::Type{<:MOI.Bridges.Objective.AbstractBridge},
    +    F::Type{<:MOI.AbstractFunction},
    +)::Bool

    Return a Bool indicating whether the bridges of type BT support bridging objective functions of type F.

    Implementation notes

    • This method depends only on the type of the inputs, not the runtime values.
    • There is a default fallback, so you need only implement this method For objective functions that the bridge implements.
    source
    MathOptInterface.Bridges.set_objective_function_typeFunction
    set_objective_function_type(
    +    BT::Type{<:Objective.AbstractBridge},
    +)::Type{<:MOI.AbstractFunction}

    Return the type of objective function that bridges of concrete type BT set.

    Implementation notes

    • This method depends only on the type of the bridge, not the runtime value.

    Example

    julia> MOI.Bridges.set_objective_function_type(
    +           MOI.Bridges.Objective.FunctionizeBridge{Float64},
    +       )
    +MathOptInterface.ScalarAffineFunction{Float64}
    source
    MathOptInterface.Bridges.Objective.concrete_bridge_typeFunction
    concrete_bridge_type(
    +    BT::Type{<:MOI.Bridges.Objective.AbstractBridge},
    +    F::Type{<:MOI.AbstractFunction},
    +)::Type

    Return the concrete type of the bridge supporting objective functions of type F.

    This function can only be called if MOI.supports_objective_function(BT, F) is true.

    source
    MathOptInterface.Bridges.Objective.bridge_objectiveFunction
    bridge_objective(
    +    BT::Type{<:MOI.Bridges.Objective.AbstractBridge},
    +    model::MOI.ModelLike,
    +    func::MOI.AbstractFunction,
    +)::BT

    Bridge the objective function func using bridge BT to model and returns a bridge object of type BT.

    Implementation notes

    • The bridge type BT must be a concrete type, that is, all the type parameters of the bridge must be set.
    source
    MathOptInterface.Bridges.Objective.SingleBridgeOptimizerType
    SingleBridgeOptimizer{BT<:AbstractBridge}(model::MOI.ModelLike)

    Return AbstractBridgeOptimizer that always bridges any objective function supported by the bridge BT.

    This is in contrast with the MOI.Bridges.LazyBridgeOptimizer, which only bridges the objective function if it is supported by the bridge BT and unsupported by model.

    Example

    julia> struct MyNewBridge{T} <: MOI.Bridges.Objective.AbstractBridge end
    +
    +julia> bridge = MOI.Bridges.Objective.SingleBridgeOptimizer{MyNewBridge{Float64}}(
    +           MOI.Utilities.Model{Float64}(),
    +       )
    +MOIB.Objective.SingleBridgeOptimizer{MyNewBridge{Float64}, MOIU.Model{Float64}}
    +with 0 objective bridges
    +with inner model MOIU.Model{Float64}

    Implementation notes

    All bridges should simplify the creation of SingleBridgeOptimizers by defining a constant that wraps the bridge in a SingleBridgeOptimizer.

    julia> const MyNewBridgeModel{T,OT<:MOI.ModelLike} =
    +           MOI.Bridges.Objective.SingleBridgeOptimizer{MyNewBridge{T},OT};

    This enables users to create bridged models as follows:

    julia> MyNewBridgeModel{Float64}(MOI.Utilities.Model{Float64}())
    +MOIB.Objective.SingleBridgeOptimizer{MyNewBridge{Float64}, MOIU.Model{Float64}}
    +with 0 objective bridges
    +with inner model MOIU.Model{Float64}
    source

    Variable bridge API

    MathOptInterface.Bridges.Variable.supports_constrained_variableFunction
    supports_constrained_variable(
    +    BT::Type{<:AbstractBridge},
    +    S::Type{<:MOI.AbstractSet},
    +)::Bool

    Return a Bool indicating whether the bridges of type BT support bridging constrained variables in S. That is, it returns true if the bridge of type BT converts constrained variables of type S into a form supported by the solver.

    Implementation notes

    • This method depends only on the type of the bridge and set, not the runtime values.
    • There is a default fallback, so you need only implement this method for sets that the bridge implements.

    Example

    julia> MOI.Bridges.Variable.supports_constrained_variable(
    +           MOI.Bridges.Variable.NonposToNonnegBridge{Float64},
    +           MOI.Nonpositives,
    +       )
    +true
    +
    +julia> MOI.Bridges.Variable.supports_constrained_variable(
    +           MOI.Bridges.Variable.NonposToNonnegBridge{Float64},
    +           MOI.Nonnegatives,
    +       )
    +false
    source
    MathOptInterface.Bridges.Variable.concrete_bridge_typeFunction
    concrete_bridge_type(
    +    BT::Type{<:AbstractBridge},
    +    S::Type{<:MOI.AbstractSet},
    +)::Type

    Return the concrete type of the bridge supporting variables in S constraints.

    This function can only be called if MOI.supports_constrained_variable(BT, S) is true.

    Examples

    As a variable in MOI.GreaterThan is bridged into variables in MOI.Nonnegatives by the VectorizeBridge:

    julia> MOI.Bridges.Variable.concrete_bridge_type(
    +           MOI.Bridges.Variable.VectorizeBridge{Float64},
    +           MOI.GreaterThan{Float64},
    +       )
    +MathOptInterface.Bridges.Variable.VectorizeBridge{Float64, MathOptInterface.Nonnegatives}
    source
    MathOptInterface.Bridges.Variable.bridge_constrained_variableFunction
    bridge_constrained_variable(
    +    BT::Type{<:AbstractBridge},
    +    model::MOI.ModelLike,
    +    set::MOI.AbstractSet,
    +)::BT

    Bridge the constrained variable in set using bridge BT to model and returns a bridge object of type BT.

    Implementation notes

    • The bridge type BT must be a concrete type, that is, all the type parameters of the bridge must be set.
    source
    MathOptInterface.Bridges.Variable.SingleBridgeOptimizerType
    SingleBridgeOptimizer{BT<:AbstractBridge}(model::MOI.ModelLike)

    Return MOI.Bridges.AbstractBridgeOptimizer that always bridges any variables constrained on creation supported by the bridge BT.

    This is in contrast with the MOI.Bridges.LazyBridgeOptimizer, which only bridges the variables constrained on creation if they are supported by the bridge BT and unsupported by model.

    Warning

    Two SingleBridgeOptimizers cannot be used together as both of them assume that the underlying model only returns variable indices with nonnegative values. Use MOI.Bridges.LazyBridgeOptimizer instead.

    Example

    julia> struct MyNewBridge{T} <: MOI.Bridges.Variable.AbstractBridge end
    +
    +julia> bridge = MOI.Bridges.Variable.SingleBridgeOptimizer{MyNewBridge{Float64}}(
    +           MOI.Utilities.Model{Float64}(),
    +       )
    +MOIB.Variable.SingleBridgeOptimizer{MyNewBridge{Float64}, MOIU.Model{Float64}}
    +with 0 variable bridges
    +with inner model MOIU.Model{Float64}

    Implementation notes

    All bridges should simplify the creation of SingleBridgeOptimizers by defining a constant that wraps the bridge in a SingleBridgeOptimizer.

    julia> const MyNewBridgeModel{T,OT<:MOI.ModelLike} =
    +           MOI.Bridges.Variable.SingleBridgeOptimizer{MyNewBridge{T},OT};

    This enables users to create bridged models as follows:

    julia> MyNewBridgeModel{Float64}(MOI.Utilities.Model{Float64}())
    +MOIB.Variable.SingleBridgeOptimizer{MyNewBridge{Float64}, MOIU.Model{Float64}}
    +with 0 variable bridges
    +with inner model MOIU.Model{Float64}
    source
    MathOptInterface.Bridges.Variable.SetMapBridgeType
    abstract type SetMapBridge{T,S1,S2} <: AbstractBridge end

    Consider two type of sets, S1 and S2, and a linear mapping A such that the image of a set of type S1 under A is a set of type S2.

    A SetMapBridge{T,S1,S2} is a bridge that substitutes constrained variables in S2 into the image through A of constrained variables in S1.

    The linear map A is described by:

    Implementing a method for these two functions is sufficient to bridge constrained variables. However, in order for the getters and setters of attributes such as dual solutions and starting values to work as well, a method for the following functions must be implemented:

    See the docstrings of each function to see which feature would be missing if it was not implemented for a given bridge.

    source
    MathOptInterface.Bridges.Variable.unbridged_mapFunction
    unbridged_map(
    +   bridge::MOI.Bridges.Variable.AbstractBridge,
    +    vi::MOI.VariableIndex,
    +)

    For a bridged variable in a scalar set, return a tuple of pairs mapping the variables created by the bridge to an affine expression in terms of the bridged variable vi.

    unbridged_map(
    +    bridge::MOI.Bridges.Variable.AbstractBridge,
    +    vis::Vector{MOI.VariableIndex},
    +)

    For a bridged variable in a vector set, return a tuple of pairs mapping the variables created by the bridge to an affine expression in terms of the bridged variable vis. If this method is not implemented, it falls back to calling the following method for every variable of vis.

    unbridged_map(
    +    bridge::MOI.Bridges.Variable.AbstractBridge,
    +    vi::MOI.VariableIndex,
    +    i::MOI.Bridges.IndexInVector,
    +)

    For a bridged variable in a vector set, return a tuple of pairs mapping the variables created by the bridge to an affine expression in terms of the bridged variable vi corresponding to the ith variable of the vector.

    If there is no way to recover the expression in terms of the bridged variable(s) vi(s), return nothing. See ZerosBridge for an example of bridge returning nothing.

    source

    AbstractBridgeOptimizer API

    MathOptInterface.Bridges.bridged_variable_functionFunction
    bridged_variable_function(
    +    b::AbstractBridgeOptimizer,
    +    vi::MOI.VariableIndex,
    +)

    Return a MOI.AbstractScalarFunction of variables of b.model that equals vi. That is, if the variable vi is bridged, it returns its expression in terms of the variables of b.model. Otherwise, it returns vi.

    source
    MathOptInterface.Bridges.unbridged_variable_functionFunction
    unbridged_variable_function(
    +    b::AbstractBridgeOptimizer,
    +    vi::MOI.VariableIndex,
    +)

    Return a MOI.AbstractScalarFunction of variables of b that equals vi. That is, if the variable vi is an internal variable of b.model created by a bridge but not visible to the user, it returns its expression in terms of the variables of bridged variables. Otherwise, it returns vi.

    source
    MathOptInterface.Bridges.recursive_modelFunction
    recursive_model(b::AbstractBridgeOptimizer)

    If a variable, constraint, or objective is bridged, return the context of the inner variables. For most optimizers, this should be b.model.

    source

    LazyBridgeOptimizer API

    MathOptInterface.Bridges.LazyBridgeOptimizerType
    LazyBridgeOptimizer(model::MOI.ModelLike)

    The LazyBridgeOptimizer is a bridge optimizer that supports multiple bridges, and only bridges things which are not supported by the internal model.

    Internally, the LazyBridgeOptimizer solves a shortest hyper-path problem to determine which bridges to use.

    In general, you should use full_bridge_optimizer instead of this constructor because full_bridge_optimizer automatically adds a large number of supported bridges.

    See also: add_bridge, remove_bridge, has_bridge and full_bridge_optimizer.

    Example

    julia> model = MOI.Bridges.LazyBridgeOptimizer(MOI.Utilities.Model{Float64}())
    +MOIB.LazyBridgeOptimizer{MOIU.Model{Float64}}
    +with 0 variable bridges
    +with 0 constraint bridges
    +with 0 objective bridges
    +with inner model MOIU.Model{Float64}
    +
    +julia> MOI.Bridges.add_bridge(model, MOI.Bridges.Variable.FreeBridge{Float64})
    +
    +julia> MOI.Bridges.has_bridge(model, MOI.Bridges.Variable.FreeBridge{Float64})
    +true
    source
    MathOptInterface.Bridges.full_bridge_optimizerFunction
    full_bridge_optimizer(model::MOI.ModelLike, ::Type{T}) where {T}

    Returns a LazyBridgeOptimizer bridging model for every bridge defined in this package (see below for the few exceptions) and for the coefficient type T, as well as the bridges in the list returned by the ListOfNonstandardBridges attribute.

    Example

    julia> model = MOI.Utilities.Model{Float64}();
    +
    +julia> bridged_model = MOI.Bridges.full_bridge_optimizer(model, Float64);

    Exceptions

    The following bridges are not added by full_bridge_optimizer, except if they are in the list returned by the ListOfNonstandardBridges attribute:

    See the docstring of the each bridge for the reason they are not added.

    source
    MathOptInterface.Bridges.ListOfNonstandardBridgesType
    ListOfNonstandardBridges{T}() <: MOI.AbstractOptimizerAttribute

    Any optimizer can be wrapped in a LazyBridgeOptimizer using full_bridge_optimizer. However, by default LazyBridgeOptimizer uses a limited set of bridges that are:

    1. implemented in MOI.Bridges
    2. generally applicable for all optimizers.

    For some optimizers however, it is useful to add additional bridges, such as those that are implemented in external packages (e.g., within the solver package itself) or only apply in certain circumstances (e.g., Constraint.SOCtoNonConvexQuadBridge).

    Such optimizers should implement the ListOfNonstandardBridges attribute to return a vector of bridge types that are added by full_bridge_optimizer in addition to the list of default bridges.

    Note that optimizers implementing ListOfNonstandardBridges may require package-specific functions or sets to be used if the non-standard bridges are not added. Therefore, you are recommended to use model = MOI.instantiate(Package.Optimizer; with_bridge_type = T) instead of model = MOI.instantiate(Package.Optimizer). See MOI.instantiate.

    Examples

    An optimizer using a non-default bridge in MOI.Bridges

    Solvers supporting MOI.ScalarQuadraticFunction can support MOI.SecondOrderCone and MOI.RotatedSecondOrderCone by defining:

    function MOI.get(::MyQuadraticOptimizer, ::ListOfNonstandardBridges{Float64})
    +    return Type[
    +        MOI.Bridges.Constraint.SOCtoNonConvexQuadBridge{Float64},
    +        MOI.Bridges.Constraint.RSOCtoNonConvexQuadBridge{Float64},
    +    ]
    +end

    An optimizer defining an internal bridge

    Suppose an optimizer can exploit specific structure of a constraint, e.g., it can exploit the structure of the matrix A in the linear system of equations A * x = b.

    The optimizer can define the function:

    struct MatrixAffineFunction{T} <: MOI.AbstractVectorFunction
    +    A::SomeStructuredMatrixType{T}
    +    b::Vector{T}
    +end

    and then a bridge

    struct MatrixAffineFunctionBridge{T} <: MOI.Constraint.AbstractBridge
    +    # ...
    +end
    +# ...

    from VectorAffineFunction{T} to the MatrixAffineFunction. Finally, it defines:

    function MOI.get(::Optimizer{T}, ::ListOfNonstandardBridges{T}) where {T}
    +    return Type[MatrixAffineFunctionBridge{T}]
    +end
    source
    MathOptInterface.Bridges.print_active_bridgesFunction
    print_active_bridges([io::IO=stdout,] b::MOI.Bridges.LazyBridgeOptimizer)

    Print the set of bridges that are active in the model b.

    source
    print_active_bridges(
    +    [io::IO=stdout,]
    +    b::MOI.Bridges.LazyBridgeOptimizer,
    +    F::Type{<:MOI.AbstractFunction}
    +)

    Print the set of bridges required for an objective function of type F.

    source
    print_active_bridges(
    +    [io::IO=stdout,]
    +    b::MOI.Bridges.LazyBridgeOptimizer,
    +    F::Type{<:MOI.AbstractFunction},
    +    S::Type{<:MOI.AbstractSet},
    +)

    Print the set of bridges required for a constraint of type F-in-S.

    source
    print_active_bridges(
    +    [io::IO=stdout,]
    +    b::MOI.Bridges.LazyBridgeOptimizer,
    +    S::Type{<:MOI.AbstractSet}
    +)

    Print the set of bridges required for a variable constrained to set S.

    source
    MathOptInterface.Bridges.print_graphFunction
    print_graph([io::IO = stdout,] b::LazyBridgeOptimizer)

    Print the hyper-graph containing all variable, constraint, and objective types that could be obtained by bridging the variables, constraints, and objectives that are present in the model by all the bridges added to b.

    Each node in the hyper-graph corresponds to a variable, constraint, or objective type.

    • Variable nodes are indicated by [ ]
    • Constraint nodes are indicated by ( )
    • Objective nodes are indicated by | |

    The number inside each pair of brackets is an index of the node in the hyper-graph.

    Note that this hyper-graph is the full list of possible transformations. When the bridged model is created, we select the shortest hyper-path(s) from this graph, so many nodes may be un-used.

    To see which nodes are used, call print_active_bridges.

    For more information, see Legat, B., Dowson, O., Garcia, J., and Lubin, M. (2020). "MathOptInterface: a data structure for mathematical optimization problems." URL: https://arxiv.org/abs/2002.03447

    source

    SetMap API

    MathOptInterface.Bridges.map_functionFunction
    map_function(::Type{BT}, func) where {BT}

    Return the image of func through the linear map A defined in Variable.SetMapBridge and Constraint.SetMapBridge. This is used for getting the MOI.ConstraintPrimal of variable bridges. For constraint bridges, this is used for bridging the constraint, setting the MOI.ConstraintFunction and MOI.ConstraintPrimalStart and modifying the function with MOI.modify.

    map_function(::Type{BT}, func, i::IndexInVector) where {BT}

    Return the scalar function at the ith index of the vector function that would be returned by map_function(BT, func) except that it may compute the ith element. This is used by bridged_function and for getting the MOI.VariablePrimal and MOI.VariablePrimalStart of variable bridges.

    source

    Bridging graph API

    MathOptInterface.Bridges.GraphType
    Graph()

    A type-stable datastructure for computing the shortest hyperpath problem.

    Nodes

    There are three types of nodes in the graph:

    Add nodes to the graph using add_node.

    Edges

    There are two types of edges in the graph:

    Add edges to the graph using add_edge.

    For the ability to add a variable constrained on creation as a free variable followed by a constraint, use set_variable_constraint_node.

    Optimal hyper-edges

    Use bridge_index to compute the minimum-cost bridge leaving a node.

    Note that bridge_index lazy runs a Bellman-Ford algorithm to compute the set of minimum cost edges. Thus, the first call to bridge_index after adding new nodes or edges will take longer than subsequent calls.

    source
    MathOptInterface.Bridges.add_nodeFunction
    add_node(graph::Graph, ::Type{VariableNode})::VariableNode
    +add_node(graph::Graph, ::Type{ConstraintNode})::ConstraintNode
    +add_node(graph::Graph, ::Type{ObjectiveNode})::ObjectiveNode

    Add a new node to graph.

    source
    MathOptInterface.Bridges.add_edgeFunction
    add_edge(graph::Graph, node::VariableNode, edge::Edge)::Nothing
    +add_edge(graph::Graph, node::ConstraintNode, edge::Edge)::Nothing
    +add_edge(graph::Graph, node::ObjectiveNode, edge::ObjectiveEdge)::Nothing

    Add edge to graph, where edge starts at node and connects to the nodes defined in edge.

    source
    MathOptInterface.Bridges.set_variable_constraint_nodeFunction
    set_variable_constraint_node(
    +    graph::Graph,
    +    variable_node::VariableNode,
    +    constraint_node::ConstraintNode,
    +    cost::Int,
    +)

    As an alternative to variable_node, add a virtual edge to graph that represents adding a free variable, followed by a constraint of type constraint_node, with bridging cost cost.

    Why is this needed?

    Variables can either be added as a variable constrained on creation, or as a free variable which then has a constraint added to it.

    source
    MathOptInterface.Bridges.bridge_indexFunction
    bridge_index(graph::Graph, node::VariableNode)::Int
    +bridge_index(graph::Graph, node::ConstraintNode)::Int
    +bridge_index(graph::Graph, node::ObjectiveNode)::Int

    Return the optimal index of the bridge to chose from node.

    source
    MathOptInterface.Bridges.is_variable_edge_bestFunction
    is_variable_edge_best(graph::Graph, node::VariableNode)::Bool

    Return a Bool indicating whether node should be added as a variable constrained on creation, or as a free variable followed by a constraint.

    source
    diff --git a/previews/PR3545/moi/submodules/FileFormats/overview/index.html b/previews/PR3545/moi/submodules/FileFormats/overview/index.html new file mode 100644 index 00000000000..cb2603462c4 --- /dev/null +++ b/previews/PR3545/moi/submodules/FileFormats/overview/index.html @@ -0,0 +1,141 @@ + +Overview · JuMP

    The FileFormats submodule

    The FileFormats module provides functions for reading and writing MOI models using write_to_file and read_from_file.

    Supported file types

    You must read and write files to a FileFormats.Model object. Specific the file-type by passing a FileFormats.FileFormat enum. For example:

    The Conic Benchmark Format

    julia> model = MOI.FileFormats.Model(format = MOI.FileFormats.FORMAT_CBF)
    +A Conic Benchmark Format (CBF) model

    The LP file format

    julia> model = MOI.FileFormats.Model(format = MOI.FileFormats.FORMAT_LP)
    +A .LP-file model

    The MathOptFormat file format

    julia> model = MOI.FileFormats.Model(format = MOI.FileFormats.FORMAT_MOF)
    +A MathOptFormat Model

    The MPS file format

    julia> model = MOI.FileFormats.Model(format = MOI.FileFormats.FORMAT_MPS)
    +A Mathematical Programming System (MPS) model

    The NL file format

    julia> model = MOI.FileFormats.Model(format = MOI.FileFormats.FORMAT_NL)
    +An AMPL (.nl) model

    The REW file format

    julia> model = MOI.FileFormats.Model(format = MOI.FileFormats.FORMAT_REW)
    +A Mathematical Programming System (MPS) model

    Note that the REW format is identical to the MPS file format, except that all names are replaced with generic identifiers.

    The SDPA file format

    julia> model = MOI.FileFormats.Model(format = MOI.FileFormats.FORMAT_SDPA)
    +A SemiDefinite Programming Algorithm Format (SDPA) model

    Write to file

    To write a model src to a MathOptFormat file, use:

    julia> src = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> MOI.add_variable(src)
    +MOI.VariableIndex(1)
    +
    +julia> dest = MOI.FileFormats.Model(format = MOI.FileFormats.FORMAT_MOF)
    +A MathOptFormat Model
    +
    +julia> MOI.copy_to(dest, src)
    +MathOptInterface.Utilities.IndexMap with 1 entry:
    +  MOI.VariableIndex(1) => MOI.VariableIndex(1)
    +
    +julia> MOI.write_to_file(dest, "file.mof.json")
    +
    +julia> print(read("file.mof.json", String))
    +{
    +  "name": "MathOptFormat Model",
    +  "version": {
    +    "major": 1,
    +    "minor": 5
    +  },
    +  "variables": [
    +    {
    +      "name": "x1"
    +    }
    +  ],
    +  "objective": {
    +    "sense": "feasibility"
    +  },
    +  "constraints": []
    +}

    Read from file

    To read a MathOptFormat file, use:

    julia> dest = MOI.FileFormats.Model(format = MOI.FileFormats.FORMAT_MOF)
    +A MathOptFormat Model
    +
    +julia> MOI.read_from_file(dest, "file.mof.json")
    +
    +julia> MOI.get(dest, MOI.ListOfVariableIndices())
    +1-element Vector{MathOptInterface.VariableIndex}:
    + MOI.VariableIndex(1)
    +
    +julia> rm("file.mof.json")  # Clean up after ourselves.

    Detecting the file-type automatically

    Instead of the format keyword, you can also use the filename keyword argument to FileFormats.Model. This will attempt to automatically guess the format from the file extension. For example:

    julia> src = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> dest = MOI.FileFormats.Model(filename = "file.cbf.gz")
    +A Conic Benchmark Format (CBF) model
    +
    +julia> MOI.copy_to(dest, src)
    +MathOptInterface.Utilities.IndexMap()
    +
    +julia> MOI.write_to_file(dest, "file.cbf.gz")
    +
    +julia> src_2 = MOI.FileFormats.Model(filename = "file.cbf.gz")
    +A Conic Benchmark Format (CBF) model
    +
    +julia> src = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> dest = MOI.FileFormats.Model(filename = "file.cbf.gz")
    +A Conic Benchmark Format (CBF) model
    +
    +julia> MOI.copy_to(dest, src)
    +MathOptInterface.Utilities.IndexMap()
    +
    +julia> MOI.write_to_file(dest, "file.cbf.gz")
    +
    +julia> src_2 = MOI.FileFormats.Model(filename = "file.cbf.gz")
    +A Conic Benchmark Format (CBF) model
    +
    +julia> MOI.read_from_file(src_2, "file.cbf.gz")
    +
    +julia> rm("file.cbf.gz")  # Clean up after ourselves.

    Note how the compression format (GZip) is also automatically detected from the filename.

    Unsupported constraints

    In some cases src may contain constraints that are not supported by the file format (for example, the CBF format supports integer variables but not binary). If so, copy src to a bridged model using Bridges.full_bridge_optimizer:

    src = MOI.Utilities.Model{Float64}()
    +x = MOI.add_variable(model)
    +MOI.add_constraint(model, x, MOI.ZeroOne())
    +dest = MOI.FileFormats.Model(format = MOI.FileFormats.FORMAT_CBF)
    +bridged = MOI.Bridges.full_bridge_optimizer(dest, Float64)
    +MOI.copy_to(bridged, src)
    +MOI.write_to_file(dest, "my_model.cbf")
    Note

    Even after bridging, it may still not be possible to write the model to file because of unsupported constraints (for example, PSD variables in the LP file format).

    Read and write to io

    In addition to write_to_file and read_from_file, you can read and write directly from IO streams using Base.write and Base.read!:

    julia> src = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    +
    +julia> dest = MOI.FileFormats.Model(format = MOI.FileFormats.FORMAT_MPS)
    +A Mathematical Programming System (MPS) model
    +
    +julia> MOI.copy_to(dest, src)
    +MathOptInterface.Utilities.IndexMap()
    +
    +julia> io = IOBuffer();
    +
    +julia> write(io, dest)
    +
    +julia> seekstart(io);
    +
    +julia> src_2 = MOI.FileFormats.Model(format = MOI.FileFormats.FORMAT_MPS)
    +A Mathematical Programming System (MPS) model
    +
    +julia> read!(io, src_2);

    Validating MOF files

    MathOptFormat files are governed by a schema. Use JSONSchema.jl to check if a .mof.json file satisfies the schema.

    First, construct the schema object as follows:

    julia> import JSON, JSONSchema
    +
    +julia> schema = JSONSchema.Schema(JSON.parsefile(MOI.FileFormats.MOF.SCHEMA_PATH))
    +A JSONSchema

    Then, check if a model file is valid using isvalid:

    julia> good_model = JSON.parse("""
    +       {
    +         "version": {
    +           "major": 1,
    +           "minor": 5
    +         },
    +         "variables": [{"name": "x"}],
    +         "objective": {"sense": "feasibility"},
    +         "constraints": []
    +       }
    +       """);
    +
    +julia> isvalid(schema, good_model)
    +true

    If we construct an invalid file, for example by mis-typing name as NaMe, the validation fails:

    julia> bad_model = JSON.parse("""
    +       {
    +         "version": {
    +           "major": 1,
    +           "minor": 5
    +         },
    +         "variables": [{"NaMe": "x"}],
    +         "objective": {"sense": "feasibility"},
    +         "constraints": []
    +       }
    +       """);
    +
    +julia> isvalid(schema, bad_model)
    +false

    Use JSONSchema.validate to obtain more insight into why the validation failed:

    julia> JSONSchema.validate(schema, bad_model)
    +Validation failed:
    +path:         [variables][1]
    +instance:     Dict{String, Any}("NaMe" => "x")
    +schema key:   required
    +schema value: Any["name"]
    diff --git a/previews/PR3545/moi/submodules/FileFormats/reference/index.html b/previews/PR3545/moi/submodules/FileFormats/reference/index.html new file mode 100644 index 00000000000..264aab90790 --- /dev/null +++ b/previews/PR3545/moi/submodules/FileFormats/reference/index.html @@ -0,0 +1,22 @@ + +API Reference · JuMP

    File Formats

    Functions to help read and write MOI models to/from various file formats. See The FileFormats submodule for more details.

    MathOptInterface.FileFormats.ModelFunction
    Model(
    +    ;
    +    format::FileFormat = FORMAT_AUTOMATIC,
    +    filename::Union{Nothing, String} = nothing,
    +    kwargs...
    +)

    Return model corresponding to the FileFormat format, or, if format == FORMAT_AUTOMATIC, guess the format from filename.

    The filename argument is only needed if format == FORMAT_AUTOMATIC.

    kwargs are passed to the underlying model constructor.

    source
    MathOptInterface.FileFormats.FileFormatType
    FileFormat

    List of accepted export formats.

    • FORMAT_AUTOMATIC: try to detect the file format based on the file name
    • FORMAT_CBF: the Conic Benchmark format
    • FORMAT_LP: the LP file format
    • FORMAT_MOF: the MathOptFormat file format
    • FORMAT_MPS: the MPS file format
    • FORMAT_NL: the AMPL .nl file format
    • FORMAT_REW: the .rew file format, which is MPS with generic names
    • FORMAT_SDPA: the SemiDefinite Programming Algorithm format
    source
    MathOptInterface.FileFormats.LP.ModelType
    Model(; kwargs...)

    Create an empty instance of FileFormats.LP.Model.

    Keyword arguments are:

    • maximum_length::Int=255: the maximum length for the name of a variable. lp_solve 5.0 allows only 16 characters, while CPLEX 12.5+ allow 255.

    • warn::Bool=false: print a warning when variables or constraints are renamed.

    source
    MathOptInterface.FileFormats.MOF.ModelType
    Model(; kwargs...)

    Create an empty instance of FileFormats.MOF.Model.

    Keyword arguments are:

    • print_compact::Bool=false: print the JSON file in a compact format without spaces or newlines.
    • warn::Bool=false: print a warning when variables or constraints are renamed
    • differentiation_backend::MOI.Nonlinear.AbstractAutomaticDifferentiation = MOI.Nonlinear.SparseReverseMode(): automatic differentiation backend to use when reading models with nonlinear constraints and objectives.
    source
    MathOptInterface.FileFormats.MPS.ModelType
    Model(; kwargs...)

    Create an empty instance of FileFormats.MPS.Model.

    Keyword arguments are:

    • warn::Bool=false: print a warning when variables or constraints are renamed.
    • print_objsense::Bool=false: print the OBJSENSE section when writing
    • generic_names::Bool=false: strip all names in the model and replace them with the generic names C$i and R$i for the i'th column and row respectively.
    • quadratic_format::QuadraticFormat = kQuadraticFormatGurobi: specify the solver-specific extension used when writing the quadratic components of the model. Options are kQuadraticFormatGurobi, kQuadraticFormatCPLEX, and kQuadraticFormatMosek.
    source
    MathOptInterface.FileFormats.SDPA.ModelType
    Model(; number_type::Type = Float64)

    Create an empty instance of FileFormats.SDPA.Model{number_type}.

    It is important to be aware that the SDPA file format is interpreted in geometric form and not standard conic form. The standard conic form and geometric conic form are two dual standard forms for semidefinite programs (SDPs). The geometric conic form of an SDP is as follows:

    \[\begin{align} +& \min_{y \in \mathbb{R}^m} & b^T y +\\ +& \;\;\text{s.t.} & \sum_{i=1}^m A_i y_i - C & \in \mathbb{K} +\end{align}\]

    where $\mathcal{K}$ is a cartesian product of nonnegative orthant and positive semidefinite matrices that align with a block diagonal structure shared with the matrices A_i and C.

    In other words, the geometric conic form contains free variables and affine constraints in either the nonnegative orthant or the positive semidefinite cone. That is, in the MathOptInterface's terminology, MOI.VectorAffineFunction-in-MOI.Nonnegatives and MOI.VectorAffineFunction-in-MOI.PositiveSemidefiniteConeTriangle constraints.

    The corresponding standard conic form of the dual SDP is as follows:

    \[\begin{align} +& \max_{X \in \mathbb{K}} & \text{tr}(CX) +\\ +& \;\;\text{s.t.} & \text{tr}(A_iX) & = b_i & i = 1, \ldots, m. +\end{align}\]

    In other words, the standard conic form contains nonnegative and positive semidefinite variables with equality constraints. That is, in the MathOptInterface's terminology, MOI.VectorOfVariables-in-MOI.Nonnegatives, MOI.VectorOfVariables-in-MOI.PositiveSemidefiniteConeTriangle and MOI.ScalarAffineFunction-in-MOI.EqualTo constraints.

    If a model is in standard conic form, use Dualization.jl to transform it into the geometric conic form before writting it. Otherwise, the nonnegative (resp. positive semidefinite) variables will be bridged into free variables with affine constraints constraining them to belong to the nonnegative orthant (resp. positive semidefinite cone) by the MOI.Bridges.Constraint.VectorFunctionizeBridge. Moreover, equality constraints will be bridged into pairs of affine constraints in the nonnegative orthant by the MOI.Bridges.Constraint.SplitIntervalBridge and then the MOI.Bridges.Constraint.VectorizeBridge.

    If a solver is in standard conic form, use Dualization.jl to transform the model read into standard conic form before copying it to the solver. Otherwise, the free variables will be bridged into pairs of variables in the nonnegative orthant by the MOI.Bridges.Variable.FreeBridge and affine constraints will be bridged into equality constraints by creating a slack variable by the MOI.Bridges.Constraint.VectorSlackBridge.

    source

    Other helpers

    MathOptInterface.FileFormats.NL.SolFileResultsType
    SolFileResults(filename::String, model::Model)

    Parse the .sol file filename created by solving model and return a SolFileResults struct.

    The returned struct supports the MOI.get API for querying result attributes such as MOI.TerminationStatus, MOI.VariablePrimal, and MOI.ConstraintDual.

    source
    SolFileResults(
    +    raw_status::String,
    +    termination_status::MOI.TerminationStatusCode,
    +)

    Return a SolFileResults struct with MOI.RawStatusString set to raw_status, MOI.TerminationStatus set to termination_status, and MOI.PrimalStatus and MOI.DualStatus set to NO_SOLUTION.

    All other attributes are un-set.

    source
    diff --git a/previews/PR3545/moi/submodules/Nonlinear/overview/index.html b/previews/PR3545/moi/submodules/Nonlinear/overview/index.html new file mode 100644 index 00000000000..e3eb6af9bee --- /dev/null +++ b/previews/PR3545/moi/submodules/Nonlinear/overview/index.html @@ -0,0 +1,187 @@ + +Overview · JuMP

    Nonlinear

    Warning

    The Nonlinear submodule is experimental. Until this message is removed, breaking changes may be introduced in any minor or patch release of MathOptInterface.

    The Nonlinear submodule contains data structures and functions for working with a nonlinear optimization problem in the form of an expression graph. This page explains the API and describes the rationale behind its design.

    Standard form

    Nonlinear programs (NLPs) are a class of optimization problems in which some of the constraints or the objective function are nonlinear:

    \[\begin{align} + \min_{x \in \mathbb{R}^n} & f_0(x) \\ + \;\;\text{s.t.} & l_j \le f_j(x) \le u_j & j = 1 \ldots m +\end{align}\]

    There may be additional constraints, as well as things like variable bounds and integrality restrictions, but we do not consider them here because they are best dealt with by other components of MathOptInterface.

    API overview

    The core element of the Nonlinear submodule is Nonlinear.Model:

    julia> const Nonlinear = MOI.Nonlinear;
    +
    +julia> model = Nonlinear.Model()
    +A Nonlinear.Model with:
    + 0 objectives
    + 0 parameters
    + 0 expressions
    + 0 constraints

    Nonlinear.Model is a mutable struct that stores all of the nonlinear information added to the model.

    Decision variables

    Decision variables are represented by VariableIndexes. The user is responsible for creating these using MOI.VariableIndex(i), where i is the column associated with the variable.

    Expressions

    The input data structure is a Julia Expr. The input expressions can incorporate VariableIndexes, but these must be interpolated into the expression with $:

    julia> x = MOI.VariableIndex(1)
    +MOI.VariableIndex(1)
    +
    +julia> input = :(1 + sin($x)^2)
    +:(1 + sin(MathOptInterface.VariableIndex(1)) ^ 2)

    There are a number of restrictions on the input Expr:

    • It cannot contain macros
    • It cannot contain broadcasting
    • It cannot contain splatting (except in limited situations)
    • It cannot contain linear algebra, such as matrix-vector products
    • It cannot contain generator expressions, including sum(i for i in S)

    Given an input expression, add an expression using Nonlinear.add_expression:

    julia> expr = Nonlinear.add_expression(model, input)
    +MathOptInterface.Nonlinear.ExpressionIndex(1)

    The return value, expr, is a Nonlinear.ExpressionIndex that can then be interpolated into other input expressions.

    Looking again at model, we see:

    julia> model
    +A Nonlinear.Model with:
    + 0 objectives
    + 0 parameters
    + 1 expression
    + 0 constraints

    Parameters

    In addition to constant literals like 1 or 1.23, you can create parameters. Parameters are placeholders whose values can change before passing the expression to the solver. Create a parameter using Nonlinear.add_parameter, which accepts a default value:

    julia> p = Nonlinear.add_parameter(model, 1.23)
    +MathOptInterface.Nonlinear.ParameterIndex(1)

    The return value, p, is a Nonlinear.ParameterIndex that can then be interpolated into other input expressions.

    Looking again at model, we see:

    julia> model
    +A Nonlinear.Model with:
    + 0 objectives
    + 1 parameter
    + 1 expression
    + 0 constraints

    Update a parameter as follows:

    julia> model[p]
    +1.23
    +
    +julia> model[p] = 4.56
    +4.56
    +
    +julia> model[p]
    +4.56

    Objectives

    Set a nonlinear objective using Nonlinear.set_objective:

    julia> Nonlinear.set_objective(model, :($p + $expr + $x))
    +
    +julia> model
    +A Nonlinear.Model with:
    + 1 objective
    + 1 parameter
    + 1 expression
    + 0 constraints

    Clear a nonlinear objective by passing nothing:

    julia> Nonlinear.set_objective(model, nothing)
    +
    +julia> model
    +A Nonlinear.Model with:
    + 0 objectives
    + 1 parameter
    + 1 expression
    + 0 constraints

    But we'll re-add the objective for later:

    julia> Nonlinear.set_objective(model, :($p + $expr + $x));

    Constraints

    Add a constraint using Nonlinear.add_constraint:

    julia> c = Nonlinear.add_constraint(model, :(1 + sqrt($x)), MOI.LessThan(2.0))
    +MathOptInterface.Nonlinear.ConstraintIndex(1)
    +
    +julia> model
    +A Nonlinear.Model with:
    + 1 objective
    + 1 parameter
    + 1 expression
    + 1 constraint

    The return value, c, is a Nonlinear.ConstraintIndex that is a unique identifier for the constraint. Interval constraints are also supported:

    julia> c2 = Nonlinear.add_constraint(model, :(1 + sqrt($x)), MOI.Interval(-1.0, 2.0))
    +MathOptInterface.Nonlinear.ConstraintIndex(2)
    +
    +julia> model
    +A Nonlinear.Model with:
    + 1 objective
    + 1 parameter
    + 1 expression
    + 2 constraints

    Delete a constraint using Nonlinear.delete:

    julia> Nonlinear.delete(model, c2)
    +
    +julia> model
    +A Nonlinear.Model with:
    + 1 objective
    + 1 parameter
    + 1 expression
    + 1 constraint

    User-defined operators

    By default, Nonlinear supports a wide range of univariate and multivariate operators. However, you can also define your own operators by registering them.

    Univariate operators

    Register a univariate user-defined operator using Nonlinear.register_operator:

    julia> f(x) = 1 + sin(x)^2
    +f (generic function with 1 method)
    +
    +julia> Nonlinear.register_operator(model, :my_f, 1, f)

    Now, you can use :my_f in expressions:

    julia> new_expr = Nonlinear.add_expression(model, :(my_f($x + 1)))
    +MathOptInterface.Nonlinear.ExpressionIndex(2)

    By default, Nonlinear will compute first- and second-derivatives of the registered operator using ForwardDiff.jl. Override this by passing functions which compute the respective derivative:

    julia> f′(x) = 2 * sin(x) * cos(x)
    +f′ (generic function with 1 method)
    +
    +julia> Nonlinear.register_operator(model, :my_f2, 1, f, f′)

    or

    julia> f′′(x) = 2 * (cos(x)^2 - sin(x)^2)
    +f′′ (generic function with 1 method)
    +
    +julia> Nonlinear.register_operator(model, :my_f3, 1, f, f′, f′′)

    Multivariate operators

    Register a multivariate user-defined operator using Nonlinear.register_operator:

    julia> g(x...) = x[1]^2 + x[1] * x[2] + x[2]^2
    +g (generic function with 1 method)
    +
    +julia> Nonlinear.register_operator(model, :my_g, 2, g)

    Now, you can use :my_g in expressions:

    julia> new_expr = Nonlinear.add_expression(model, :(my_g($x + 1, $x)))
    +MathOptInterface.Nonlinear.ExpressionIndex(3)

    By default, Nonlinear will compute the gradient of the registered operator using ForwardDiff.jl. (Hessian information is not supported.) Override this by passing a function to compute the gradient:

    julia> function ∇g(ret, x...)
    +           ret[1] = 2 * x[1] + x[2]
    +           ret[2] = x[1] + 2 * x[2]
    +           return
    +       end
    +∇g (generic function with 1 method)
    +
    +julia> Nonlinear.register_operator(model, :my_g2, 2, g, ∇g)

    MathOptInterface

    MathOptInterface communicates the nonlinear portion of an optimization problem to solvers using concrete subtypes of AbstractNLPEvaluator, which implement the Nonlinear programming API.

    Create an AbstractNLPEvaluator from Nonlinear.Model using Nonlinear.Evaluator.

    Nonlinear.Evaluator requires an Nonlinear.AbstractAutomaticDifferentiation backend and an ordered list of the variables that are included in the model.

    There following backends are available to choose from within MOI, although other packages may add more options by sub-typing Nonlinear.AbstractAutomaticDifferentiation:

    julia> evaluator = Nonlinear.Evaluator(model, Nonlinear.ExprGraphOnly(), [x])
    +Nonlinear.Evaluator with available features:
    +  * :ExprGraph

    The functions of the Nonlinear programming API implemented by Nonlinear.Evaluator depends upon the chosen Nonlinear.AbstractAutomaticDifferentiation backend.

    The :ExprGraph feature means we can call objective_expr and constraint_expr to retrieve the expression graph of the problem. However, we cannot call gradient terms such as eval_objective_gradient because Nonlinear.ExprGraphOnly does not have the capability to differentiate a nonlinear expression.

    If, instead, we pass Nonlinear.SparseReverseMode, then we get access to :Grad, the gradient of the objective function, :Jac, the Jacobian matrix of the constraints, :JacVec, the ability to compute Jacobian-vector products, and :ExprGraph.

    julia> evaluator = Nonlinear.Evaluator(
    +           model,
    +           Nonlinear.SparseReverseMode(),
    +           [x],
    +       )
    +Nonlinear.Evaluator with available features:
    +  * :Grad
    +  * :Jac
    +  * :JacVec
    +  * :ExprGraph

    However, before using the evaluator, we need to call initialize:

    julia> MOI.initialize(evaluator, [:Grad, :Jac, :JacVec, :ExprGraph])

    Now we can call methods like eval_objective:

    julia> x = [1.0]
    +1-element Vector{Float64}:
    + 1.0
    +
    +julia> MOI.eval_objective(evaluator, x)
    +7.268073418273571

    and eval_objective_gradient:

    julia> grad = [0.0]
    +1-element Vector{Float64}:
    + 0.0
    +
    +julia> MOI.eval_objective_gradient(evaluator, grad, x)
    +
    +julia> grad
    +1-element Vector{Float64}:
    + 1.909297426825682

    Instead of passing Nonlinear.Evaluator directly to solvers, solvers query the NLPBlock attribute, which returns an NLPBlockData. This object wraps an Nonlinear.Evaluator and includes other information such as constraint bounds and whether the evaluator has a nonlinear objective. Create and set NLPBlockData as follows:

    julia> block = MOI.NLPBlockData(evaluator);
    +
    +julia> model = MOI.Utilities.UniversalFallback(MOI.Utilities.Model{Float64}());
    +
    +julia> MOI.set(model, MOI.NLPBlock(), block);
    Warning

    Only call NLPBlockData once you have finished modifying the problem in model.

    Putting everything together, you can create a nonlinear optimization problem in MathOptInterface as follows:

    import MathOptInterface as MOI
    +
    +function build_model(
    +    model::MOI.ModelLike;
    +    backend::MOI.Nonlinear.AbstractAutomaticDifferentiation,
    +)
    +    x = MOI.add_variable(model)
    +    y = MOI.add_variable(model)
    +    MOI.set(model, MOI.ObjectiveSense(), MOI.MIN_SENSE)
    +    nl_model = MOI.Nonlinear.Model()
    +    MOI.Nonlinear.set_objective(nl_model, :($x^2 + $y^2))
    +    evaluator = MOI.Nonlinear.Evaluator(nl_model, backend, [x, y])
    +    MOI.set(model, MOI.NLPBlock(), MOI.NLPBlockData(evaluator))
    +    return
    +end
    +
    +# Replace `model` and `backend` with your optimizer and backend of choice.
    +model = MOI.Utilities.UniversalFallback(MOI.Utilities.Model{Float64}())
    +build_model(model; backend = MOI.Nonlinear.SparseReverseMode())

    Expression-graph representation

    Nonlinear.Model stores nonlinear expressions in Nonlinear.Expressions. This section explains the design of the expression graph data structure in Nonlinear.Expression.

    Given a nonlinear function like f(x) = sin(x)^2 + x, a conceptual aid for thinking about the graph representation of the expression is to convert it into Polish prefix notation:

    f(x, y) = (+ (^ (sin x) 2) x)

    This format identifies each operator (function), as well as a list of arguments. Operators can be univariate, like sin, or multivariate, like +.

    A common way of representing Polish prefix notation in code is as follows:

    julia> x = MOI.VariableIndex(1);
    +
    +julia> struct ExprNode
    +           op::Symbol
    +           children::Vector{Union{ExprNode,Float64,MOI.VariableIndex}}
    +       end
    +
    +julia> expr = ExprNode(:+, [ExprNode(:^, [ExprNode(:sin, [x]), 2.0]), x]);

    This data structure follows our Polish prefix notation very closely, and we can easily identify the arguments to an operator. However, it has a significant draw-back: each node in the graph requires a Vector, which is heap-allocated and tracked by Julia's garbage collector (GC). For large models, we can expect to have millions of nodes in the expression graph, so this overhead quickly becomes prohibitive for computation.

    An alternative is to record the expression as a linear tape:

    julia> expr = Any[:+, 2, :^, 2, :sin, 1, x, 2.0, x]
    +9-element Vector{Any}:
    +  :+
    + 2
    +  :^
    + 2
    +  :sin
    + 1
    +  MOI.VariableIndex(1)
    + 2.0
    +  MOI.VariableIndex(1)

    The Int after each operator Symbol specifies the number of arguments.

    This data-structure is a single vector, which resolves our problem with the GC, but each element is the abstract type, Any, and so any operations on it will lead to slower dynamic dispatch. It's also hard to identify the children of each operation without reading the entire tape.

    To summarize, representing expression graphs in Julia has the following challenges:

    • Nodes in the expression graph should not contain a heap-allocated object
    • All data-structures should be concretely typed
    • It should be easy to identify the children of a node

    Sketch of the design in Nonlinear

    Nonlinear overcomes these problems by decomposing the data structure into a number of different concrete-typed vectors.

    First, we create vectors of the supported uni- and multivariate operators.

    julia> const UNIVARIATE_OPERATORS = [:sin];
    +
    +julia> const MULTIVARIATE_OPERATORS = [:+, :^];

    In practice, there are many more supported operations than the ones listed here.

    Second, we create an enum to represent the different types of nodes present in the expression graph:

    julia> @enum(
    +           NodeType,
    +           NODE_CALL_MULTIVARIATE,
    +           NODE_CALL_UNIVARIATE,
    +           NODE_VARIABLE,
    +           NODE_VALUE,
    +       )

    In practice, there are node types other than the ones listed here.

    Third, we create two concretely typed structs as follows:

    julia> struct Node
    +           type::NodeType
    +           parent::Int
    +           index::Int
    +       end
    +
    +julia> struct Expression
    +           nodes::Vector{Node}
    +           values::Vector{Float64}
    +       end

    For each node node in the .nodes field, if node.type is:

    • NODE_CALL_MULTIVARIATE, we look up MULTIVARIATE_OPERATORS[node.index] to retrieve the operator
    • NODE_CALL_UNIVARIATE, we look up UNIVARIATE_OPERATORS[node.index] to retrieve the operator
    • NODE_VARIABLE, we create MOI.VariableIndex(node.index)
    • NODE_VALUE, we look up values[node.index]

    The .parent field of each node is the integer index of the parent node in .nodes. For the first node, the parent is -1 by convention.

    Therefore, we can represent our function as:

    julia> expr = Expression(
    +           [
    +               Node(NODE_CALL_MULTIVARIATE, -1, 1),
    +               Node(NODE_CALL_MULTIVARIATE, 1, 2),
    +               Node(NODE_CALL_UNIVARIATE, 2, 1),
    +               Node(NODE_VARIABLE, 3, 1),
    +               Node(NODE_VALUE, 2, 1),
    +               Node(NODE_VARIABLE, 1, 1),
    +           ],
    +           [2.0],
    +       );

    This is less readable than the other options, but does this data structure meet our design goals?

    Instead of a heap-allocated object for each node, we only have two Vectors for each expression, nodes and values, as well as two constant vectors for the OPERATORS. In addition, all fields are concretely typed, and there are no Union or Any types.

    For our third goal, it is not easy to identify the children of a node, but it is easy to identify the parent of any node. Therefore, we can use Nonlinear.adjacency_matrix to compute a sparse matrix that maps parents to their children.

    The tape is also ordered topologically, so that a reverse pass of the nodes evaluates all children nodes before their parent.

    The design in practice

    In practice, Node and Expression are exactly Nonlinear.Node and Nonlinear.Expression. However, Nonlinear.NodeType has more fields to account for comparison operators such as :>= and :<=, logic operators such as :&& and :||, nonlinear parameters, and nested subexpressions.

    Moreover, instead of storing the operators as global constants, they are stored in Nonlinear.OperatorRegistry, and it also stores a vector of logic operators and a vector of comparison operators. In addition to Nonlinear.DEFAULT_UNIVARIATE_OPERATORS and Nonlinear.DEFAULT_MULTIVARIATE_OPERATORS, you can register user-defined functions using Nonlinear.register_operator.

    Nonlinear.Model is a struct that stores the Nonlinear.OperatorRegistry, as well as a list of parameters and subexpressions in the model.

    ReverseAD

    Nonlinear.ReverseAD is a submodule for computing derivatives of a nonlinear optimization problem using sparse reverse-mode automatic differentiation (AD).

    This section does not attempt to explain how sparse reverse-mode AD works, but instead explains why MOI contains its own implementation, and highlights notable differences from similar packages.

    Warning

    Don't use the API in ReverseAD to compute derivatives. Instead, create a Nonlinear.Evaluator object with Nonlinear.SparseReverseMode as the backend, and then query the MOI API methods.

    Design goals

    The JuliaDiff organization maintains a list of packages for doing AD in Julia. At last count, there were at least ten packages——not including ReverseAD——for reverse-mode AD in Julia. ReverseAD exists because it has a different set of design goals.

    • Goal: handle scale and sparsity. The types of nonlinear optimization problems that MOI represents can be large scale (10^5 or more functions across 10^5 or more variables) with very sparse derivatives. The ability to compute a sparse Hessian matrix is essential. To the best of our knowledge, ReverseAD is the only reverse-mode AD system in Julia that handles sparsity by default.
    • Goal: limit the scope to improve robustness. Most other AD packages accept arbitrary Julia functions as input and then trace an expression graph using operator overloading. This means they must deal (or detect and ignore) with control flow, I/O, and other vagaries of Julia. In contrast, ReverseAD only accepts functions in the form of Nonlinear.Expression, which greatly limits the range of syntax that it must deal with. By reducing the scope of what we accept as input to functions relevant for mathematical optimization, we can provide a simpler implementation with various performance optimizations.
    • Goal: provide outputs which match what solvers expect. Other AD packages focus on differentiating individual Julia functions. In contrast, ReverseAD has a very specific use-case: to generate outputs needed by the MOI nonlinear API. This means it needs to efficiently compute sparse Hessians, and it needs subexpression handling to avoid recomputing subexpressions that are shared between functions.

    History

    ReverseAD started life as ReverseDiffSparse.jl, development of which began in early 2014(!). This was well before the other AD packages started development. Because we had a well-tested, working AD in JuMP, there was less motivation to contribute to and explore other AD packages. The lack of historical interaction also meant that other packages were not optimized for the types of problems that JuMP is built for (that is, large-scale sparse problems). When we first created MathOptInterface, we kept the AD in JuMP to simplify the transition, and post-poned the development of a first-class nonlinear interface in MathOptInterface.

    Prior to the introduction of Nonlinear, JuMP's nonlinear implementation was a confusing mix of functions and types spread across the code base and in the private _Derivatives submodule. This made it hard to swap the AD system for another. The main motivation for refactoring JuMP to create the Nonlinear submodule in MathOptInterface was to abstract the interface between JuMP and the AD system, allowing us to swap-in and test new AD systems in the future.

    diff --git a/previews/PR3545/moi/submodules/Nonlinear/reference/index.html b/previews/PR3545/moi/submodules/Nonlinear/reference/index.html new file mode 100644 index 00000000000..25fbaead39a --- /dev/null +++ b/previews/PR3545/moi/submodules/Nonlinear/reference/index.html @@ -0,0 +1,151 @@ + +API Reference · JuMP

    Nonlinear Modeling

    More information can be found in the Nonlinear section of the manual.

    MathOptInterface.NonlinearModule
    Nonlinear
    Warning

    The Nonlinear submodule is experimental. Until this message is removed, breaking changes may be introduced in any minor or patch release of MathOptInterface.

    source
    MathOptInterface.Nonlinear.ModelType
    Model()

    The core datastructure for representing a nonlinear optimization problem.

    It has the following fields:

    • objective::Union{Nothing,Expression} : holds the nonlinear objective function, if one exists, otherwise nothing.
    • expressions::Vector{Expression} : a vector of expressions in the model.
    • constraints::OrderedDict{ConstraintIndex,Constraint} : a map from ConstraintIndex to the corresponding Constraint. An OrderedDict is used instead of a Vector to support constraint deletion.
    • parameters::Vector{Float64} : holds the current values of the parameters.
    • operators::OperatorRegistry : stores the operators used in the model.
    source

    Expressions

    Parameters

    MathOptInterface.Nonlinear.add_parameterFunction
    add_parameter(model::Model, value::Float64)::ParameterIndex

    Add a new parameter to model with the default value value. Returns a ParameterIndex that can be interpolated into other input expressions and used to modify the value of the parameter.

    Examples

    model = Model()
    +x = MOI.VariableIndex(1)
    +p = add_parameter(model, 1.2)
    +c = add_constraint(model, :($x^2 - $p), MOI.LessThan(0.0))
    source

    Objectives

    MathOptInterface.Nonlinear.set_objectiveFunction
    set_objective(model::Model, obj)::Nothing

    Parse obj into a Expression and set as the objective function of model.

    obj must be a type that is supported by parse_expression.

    To remove the objective, pass nothing.

    Examples

    model = Model()
    +x = MOI.VariableIndex(1)
    +set_objective(model, :($x^2 + 1))
    +set_objective(model, x)
    +set_objective(model, nothing)
    source

    Constraints

    MathOptInterface.Nonlinear.add_constraintFunction
    add_constraint(
    +    model::Model,
    +    func,
    +    set::Union{
    +        MOI.GreaterThan{Float64},
    +        MOI.LessThan{Float64},
    +        MOI.Interval{Float64},
    +        MOI.EqualTo{Float64},
    +    },
    +)

    Parse func and set into a Constraint and add to model. Returns a ConstraintIndex that can be used to delete the constraint or query solution information.

    Examples

    model = Model()
    +x = MOI.VariableIndex(1)
    +c = add_constraint(model, :($x^2), MOI.LessThan(1.0))
    source
    MathOptInterface.Nonlinear.deleteFunction
    delete(model::Model, c::ConstraintIndex)::Nothing

    Delete the constraint index c from model.

    Examples

    model = Model()
    +x = MOI.VariableIndex(1)
    +c = add_constraint(model, :($x^2), MOI.LessThan(1.0))
    +delete(model, c)
    source

    User-defined operators

    MathOptInterface.Nonlinear.DEFAULT_UNIVARIATE_OPERATORSConstant
    DEFAULT_UNIVARIATE_OPERATORS

    The list of univariate operators that are supported by default.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> MOI.Nonlinear.DEFAULT_UNIVARIATE_OPERATORS
    +72-element Vector{Symbol}:
    + :+
    + :-
    + :abs
    + :sqrt
    + :cbrt
    + :abs2
    + :inv
    + :log
    + :log10
    + :log2
    + ⋮
    + :airybi
    + :airyaiprime
    + :airybiprime
    + :besselj0
    + :besselj1
    + :bessely0
    + :bessely1
    + :erfcx
    + :dawson
    source
    MathOptInterface.Nonlinear.DEFAULT_MULTIVARIATE_OPERATORSConstant
    DEFAULT_MULTIVARIATE_OPERATORS

    The list of multivariate operators that are supported by default.

    Example

    julia> import MathOptInterface as MOI
    +
    +julia> MOI.Nonlinear.DEFAULT_MULTIVARIATE_OPERATORS
    +9-element Vector{Symbol}:
    + :+
    + :-
    + :*
    + :^
    + :/
    + :ifelse
    + :atan
    + :min
    + :max
    source
    MathOptInterface.Nonlinear.register_operatorFunction
    register_operator(
    +    model::Model,
    +    op::Symbol,
    +    nargs::Int,
    +    f::Function,
    +    [∇f::Function],
    +    [∇²f::Function],
    +)

    Register the user-defined operator op with nargs input arguments in model.

    Univariate functions

    • f(x::T)::T must be a function that takes a single input argument x and returns the function evaluated at x. If ∇f and ∇²f are not provided, f must support any Real input type T.
    • ∇f(x::T)::T is a function that takes a single input argument x and returns the first derivative of f with respect to x. If ∇²f is not provided, ∇f must support any Real input type T.
    • ∇²f(x::T)::T is a function that takes a single input argument x and returns the second derivative of f with respect to x.

    Multivariate functions

    • f(x::T...)::T must be a function that takes a nargs input arguments x and returns the function evaluated at x. If ∇f and ∇²f are not provided, f must support any Real input type T.
    • ∇f(g::AbstractVector{T}, x::T...)::T is a function that takes a cache vector g of length length(x), and fills each element g[i] with the partial derivative of f with respect to x[i].
    • ∇²f(H::AbstractMatrix, x::T...)::T is a function that takes a matrix H and fills the lower-triangular components H[i, j] with the Hessian of f with respect to x[i] and x[j] for i >= j.

    Notes for multivariate Hessians

    • H has size(H) == (length(x), length(x)), but you must not access elements H[i, j] for i > j.
    • H is dense, but you do not need to fill structural zeros.
    source
    MathOptInterface.Nonlinear.eval_multivariate_gradientFunction
    eval_multivariate_gradient(
    +    registry::OperatorRegistry,
    +    op::Symbol,
    +    g::AbstractVector{T},
    +    x::AbstractVector{T},
    +) where {T}

    Evaluate the gradient of operator g .= ∇op(x), where op is a multivariate function in registry.

    source
    MathOptInterface.Nonlinear.eval_multivariate_hessianFunction
    eval_multivariate_hessian(
    +    registry::OperatorRegistry,
    +    op::Symbol,
    +    H::AbstractMatrix,
    +    x::AbstractVector{T},
    +) where {T}

    Evaluate the Hessian of operator ∇²op(x), where op is a multivariate function in registry.

    The Hessian is stored in the lower-triangular part of the matrix H.

    Note

    Implementations of the Hessian operators will not fill structural zeros. Therefore, before calling this function you should pre-populate the matrix H with 0.

    source

    Automatic-differentiation backends

    MathOptInterface.Nonlinear.EvaluatorType
    Evaluator(
    +    model::Model,
    +    backend::AbstractAutomaticDifferentiation,
    +    ordered_variables::Vector{MOI.VariableIndex},
    +)

    Create Evaluator, a subtype of MOI.AbstractNLPEvaluator, from Model.

    source
    MathOptInterface.Nonlinear.SparseReverseModeType
    SparseReverseMode() <: AbstractAutomaticDifferentiation

    An implementation of AbstractAutomaticDifferentiation that uses sparse reverse-mode automatic differentiation to compute derivatives. Supports all features in the MOI nonlinear interface.

    source

    Data-structure

    MathOptInterface.Nonlinear.NodeType
    struct Node
    +    type::NodeType
    +    index::Int
    +    parent::Int
    +end

    A single node in a nonlinear expression tree. Used by Expression.

    See the MathOptInterface documentation for information on how the nodes and values form an expression tree.

    source
    MathOptInterface.Nonlinear.NodeTypeType
    NodeType

    An enum describing the possible node types. Each Node has a .index field, which should be interpreted as follows:

    • NODE_CALL_MULTIVARIATE: the index into operators.multivariate_operators
    • NODE_CALL_UNIVARIATE: the index into operators.univariate_operators
    • NODE_LOGIC: the index into operators.logic_operators
    • NODE_COMPARISON: the index into operators.comparison_operators
    • NODE_MOI_VARIABLE: the value of MOI.VariableIndex(index) in the user's space of the model.
    • NODE_VARIABLE: the 1-based index of the internal vector
    • NODE_VALUE: the index into the .values field of Expression
    • NODE_PARAMETER: the index into data.parameters
    • NODE_SUBEXPRESSION: the index into data.expressions
    source
    MathOptInterface.Nonlinear.ExpressionType
    struct Expression
    +    nodes::Vector{Node}
    +    values::Vector{Float64}
    +end

    The core type that represents a nonlinear expression. See the MathOptInterface documentation for information on how the nodes and values form an expression tree.

    source
    MathOptInterface.Nonlinear.ConstraintType
    struct Constraint
    +    expression::Expression
    +    set::Union{
    +        MOI.LessThan{Float64},
    +        MOI.GreaterThan{Float64},
    +        MOI.EqualTo{Float64},
    +        MOI.Interval{Float64},
    +    }
    +end

    A type to hold information relating to the nonlinear constraint f(x) in S, where f(x) is defined by .expression, and S is .set.

    source
    MathOptInterface.Nonlinear.adjacency_matrixFunction
    adjacency_matrix(nodes::Vector{Node})

    Compute the sparse adjacency matrix describing the parent-child relationships in nodes.

    The element (i, j) is true if there is an edge from node[j] to node[i]. Since we get a column-oriented matrix, this gives us a fast way to look up the edges leaving any node (i.e., the children).

    source
    MathOptInterface.Nonlinear.parse_expressionFunction
    parse_expression(data::Model, input)::Expression

    Parse input into a Expression.

    source
    parse_expression(
    +    data::Model,
    +    expr::Expression,
    +    input::Any,
    +    parent_index::Int,
    +)::Expression

    Parse input into a Expression, and add it to expr as a child of expr.nodes[parent_index]. Existing subexpressions and parameters are stored in data.

    You can extend parsing support to new types of objects by overloading this method with a different type on input::Any.

    source
    MathOptInterface.Nonlinear.convert_to_exprFunction
    convert_to_expr(data::Model, expr::Expression)

    Convert the Expression expr into a Julia Expr.

    source
    convert_to_expr(
    +    evaluator::Evaluator,
    +    expr::Expression;
    +    moi_output_format::Bool,
    +)

    Convert the Expression expr into a Julia Expr.

    If moi_output_format = true:

    • subexpressions will be converted to Julia Expr and substituted into the output expression.
    • the current value of each parameter will be interpolated into the expression
    • variables will be represented in the form x[MOI.VariableIndex(i)]

    If moi_output_format = false:

    Warning

    To use moi_output_format = true, you must have first called MOI.initialize with :ExprGraph as a requested feature.

    source
    MathOptInterface.Nonlinear.ordinal_indexFunction
    ordinal_index(evaluator::Evaluator, c::ConstraintIndex)::Int

    Return the 1-indexed value of the constraint index c in evaluator.

    Examples

    model = Model()
    +x = MOI.VariableIndex(1)
    +c1 = add_constraint(model, :($x^2), MOI.LessThan(1.0))
    +c2 = add_constraint(model, :($x^2), MOI.LessThan(1.0))
    +evaluator = Evaluator(model)
    +MOI.initialize(evaluator, Symbol[])
    +ordinal_index(evaluator, c2)  # Returns 2
    +delete(model, c1)
    +evaluator = Evaluator(model)
    +MOI.initialize(evaluator, Symbol[])
    +ordinal_index(model, c2)  # Returns 1
    source
    diff --git a/previews/PR3545/moi/submodules/Test/overview/index.html b/previews/PR3545/moi/submodules/Test/overview/index.html new file mode 100644 index 00000000000..281a463a960 --- /dev/null +++ b/previews/PR3545/moi/submodules/Test/overview/index.html @@ -0,0 +1,170 @@ + +Overview · JuMP

    The Test submodule

    The Test submodule provides tools to help solvers implement unit tests in order to ensure they implement the MathOptInterface API correctly, and to check for solver-correctness.

    We use a centralized repository of tests, so that if we find a bug in one solver, instead of adding a test to that particular repository, we add it here so that all solvers can benefit.

    How to test a solver

    The skeleton below can be used for the wrapper test file of a solver named FooBar.

    # ============================ /test/MOI_wrapper.jl ============================
    +module TestFooBar
    +
    +import FooBar
    +using Test
    +
    +import MathOptInterface as MOI
    +
    +const OPTIMIZER = MOI.instantiate(
    +    MOI.OptimizerWithAttributes(FooBar.Optimizer, MOI.Silent() => true),
    +)
    +
    +const BRIDGED = MOI.instantiate(
    +    MOI.OptimizerWithAttributes(FooBar.Optimizer, MOI.Silent() => true),
    +    with_bridge_type = Float64,
    +)
    +
    +# See the docstring of MOI.Test.Config for other arguments.
    +const CONFIG = MOI.Test.Config(
    +    # Modify tolerances as necessary.
    +    atol = 1e-6,
    +    rtol = 1e-6,
    +    # Use MOI.LOCALLY_SOLVED for local solvers.
    +    optimal_status = MOI.OPTIMAL,
    +    # Pass attributes or MOI functions to `exclude` to skip tests that
    +    # rely on this functionality.
    +    exclude = Any[MOI.VariableName, MOI.delete],
    +)
    +
    +"""
    +    runtests()
    +
    +This function runs all functions in the this Module starting with `test_`.
    +"""
    +function runtests()
    +    for name in names(@__MODULE__; all = true)
    +        if startswith("$(name)", "test_")
    +            @testset "$(name)" begin
    +                getfield(@__MODULE__, name)()
    +            end
    +        end
    +    end
    +end
    +
    +"""
    +    test_runtests()
    +
    +This function runs all the tests in MathOptInterface.Test.
    +
    +Pass arguments to `exclude` to skip tests for functionality that is not
    +implemented or that your solver doesn't support.
    +"""
    +function test_runtests()
    +    MOI.Test.runtests(
    +        BRIDGED,
    +        CONFIG,
    +        exclude = [
    +            "test_attribute_NumberOfThreads",
    +            "test_quadratic_",
    +        ],
    +        # This argument is useful to prevent tests from failing on future
    +        # releases of MOI that add new tests. Don't let this number get too far
    +        # behind the current MOI release though. You should periodically check
    +        # for new tests to fix bugs and implement new features.
    +        exclude_tests_after = v"0.10.5",
    +    )
    +    return
    +end
    +
    +"""
    +    test_SolverName()
    +
    +You can also write new tests for solver-specific functionality. Write each new
    +test as a function with a name beginning with `test_`.
    +"""
    +function test_SolverName()
    +    @test MOI.get(FooBar.Optimizer(), MOI.SolverName()) == "FooBar"
    +    return
    +end
    +
    +end # module TestFooBar
    +
    +# This line at tne end of the file runs all the tests!
    +TestFooBar.runtests()

    Then modify your runtests.jl file to include the MOI_wrapper.jl file:

    # ============================ /test/runtests.jl ============================
    +
    +using Test
    +
    +@testset "MOI" begin
    +    include("test/MOI_wrapper.jl")
    +end
    Info

    The optimizer BRIDGED constructed with instantiate automatically bridges constraints that are not supported by OPTIMIZER using the bridges listed in Bridges. It is recommended for an implementation of MOI to only support constraints that are natively supported by the solver and let bridges transform the constraint to the appropriate form. For this reason it is expected that tests may not pass if OPTIMIZER is used instead of BRIDGED.

    How to debug a failing test

    When writing a solver, it's likely that you will initially fail many tests. Some failures will be bugs, but other failures you may choose to exclude.

    There are two ways to exclude tests:

    • Exclude tests whose names contain a string using:

      MOI.Test.runtests(
      +    model,
      +    config;
      +    exclude = String["test_to_exclude", "test_conic_"],
      +)

      This will exclude tests whose name contains either of the two strings provided.

    • Exclude tests which rely on specific functionality using:

      MOI.Test.Config(exclude = Any[MOI.VariableName, MOI.optimize!])

      This will exclude tests which use the MOI.VariableName attribute, or which call MOI.optimize!.

    Each test that fails can be independently called as:

    model = FooBar.Optimizer()
    +config = MOI.Test.Config()
    +MOI.empty!(model)
    +MOI.Test.test_category_name_that_failed(model, config)

    You can look-up the source code of the test that failed by searching for it in the src/Test/test_category.jl file.

    Tip

    Each test function also has a docstring that explains what the test is for. Use ? MOI.Test.test_category_name_that_failed from the REPL to read it.

    Periodically, you should re-run excluded tests to see if they now pass. The easiest way to do this is to swap the exclude keyword argument of runtests to include. For example:

    MOI.Test.runtests(
    +    model,
    +    config;
    +    exclude = String["test_to_exclude", "test_conic_"],
    +)

    becomes

    MOI.Test.runtests(
    +    model,
    +    config;
    +    include = String["test_to_exclude", "test_conic_"],
    +)

    How to add a test

    To detect bugs in solvers, we add new tests to MOI.Test.

    As an example, ECOS errored calling optimize! twice in a row. (See ECOS.jl PR #72.) We could add a test to ECOS.jl, but that would only stop us from re-introducing the bug to ECOS.jl in the future, but it would not catch other solvers in the ecosystem with the same bug. Instead, if we add a test to MOI.Test, then all solvers will also check that they handle a double optimize call.

    For this test, we care about correctness, rather than performance. therefore, we don't expect solvers to efficiently decide that they have already solved the problem, only that calling optimize! twice doesn't throw an error or give the wrong answer.

    Step 1

    Install the MathOptInterface julia package in dev mode:

    julia> ]
    +(@v1.6) pkg> dev MathOptInterface

    Step 2

    From here on, proceed with making the following changes in the ~/.julia/dev/MathOptInterface folder (or equivalent dev path on your machine).

    Step 3

    Since the double-optimize error involves solving an optimization problem, add a new test to src/Test/test_solve.jl:

    """
    +    test_unit_optimize!_twice(model::MOI.ModelLike, config::Config)
    +
    +Test that calling `MOI.optimize!` twice does not error.
    +
    +This problem was first detected in ECOS.jl PR#72:
    +https://github.com/jump-dev/ECOS.jl/pull/72
    +"""
    +function test_unit_optimize!_twice(
    +    model::MOI.ModelLike,
    +    config::Config{T},
    +) where {T}
    +    # Use the `@requires` macro to check conditions that the test function
    +    # requires to run. Models failing this `@requires` check will silently skip
    +    # the test.
    +    @requires MOI.supports_constraint(
    +        model,
    +        MOI.VariableIndex,
    +        MOI.GreaterThan{Float64},
    +    )
    +    @requires _supports(config, MOI.optimize!)
    +    # If needed, you can test that the model is empty at the start of the test.
    +    # You can assume that this will be the case for tests run via `runtests`.
    +    # User's calling tests individually need to call `MOI.empty!` themselves.
    +    @test MOI.is_empty(model)
    +    # Create a simple model. Try to make this as simple as possible so that the
    +    # majority of solvers can run the test.
    +    x = MOI.add_variable(model)
    +    MOI.add_constraint(model, x, MOI.GreaterThan(one(T)))
    +    MOI.set(model, MOI.ObjectiveSense(), MOI.MIN_SENSE)
    +    MOI.set(
    +        model,
    +        MOI.ObjectiveFunction{MOI.VariableIndex}(),
    +        x,
    +    )
    +    # The main component of the test: does calling `optimize!` twice error?
    +    MOI.optimize!(model)
    +    MOI.optimize!(model)
    +    # Check we have a solution.
    +    @test MOI.get(model, MOI.TerminationStatus()) == MOI.OPTIMAL
    +    # There is a three-argument version of `Base.isapprox` for checking
    +    # approximate equality based on the tolerances defined in `config`:
    +    @test isapprox(MOI.get(model, MOI.VariablePrimal(), x), one(T), config)
    +    # For code-style, these tests should always `return` `nothing`.
    +    return
    +end
    Info

    Make sure the function is agnostic to the number type T; don't assume it is a Float64 capable solver.

    We also need to write a test for the test. Place this function immediately below the test you just wrote in the same file:

    function setup_test(
    +    ::typeof(test_unit_optimize!_twice),
    +    model::MOI.Utilities.MockOptimizer,
    +    ::Config,
    +)
    +    MOI.Utilities.set_mock_optimize!(
    +        model,
    +        (mock::MOI.Utilities.MockOptimizer) -> MOIU.mock_optimize!(
    +            mock,
    +            MOI.OPTIMAL,
    +            (MOI.FEASIBLE_POINT, [1.0]),
    +        ),
    +    )
    +    return
    +end

    Finally, you also need to implement Test.version_added. If we added this test when the latest released version of MOI was v0.10.5, define:

    version_added(::typeof(test_unit_optimize!_twice)) = v"0.10.6"

    Step 6

    Commit the changes to git from ~/.julia/dev/MathOptInterface and submit the PR for review.

    Tip

    If you need help writing a test, open an issue on GitHub, or ask the Developer Chatroom.

    diff --git a/previews/PR3545/moi/submodules/Test/reference/index.html b/previews/PR3545/moi/submodules/Test/reference/index.html new file mode 100644 index 00000000000..f1c3bcd925b --- /dev/null +++ b/previews/PR3545/moi/submodules/Test/reference/index.html @@ -0,0 +1,54 @@ + +API Reference · JuMP

    The Test submodule

    Functions to help test implementations of MOI. See The Test submodule for more details.

    MathOptInterface.Test.ConfigType
    Config(
    +    ::Type{T} = Float64;
    +    atol::Real = Base.rtoldefault(T),
    +    rtol::Real = Base.rtoldefault(T),
    +    optimal_status::MOI.TerminationStatusCode = MOI.OPTIMAL,
    +    infeasible_status::MOI.TerminationStatusCode = MOI.INFEASIBLE,
    +    exclude::Vector{Any} = Any[],
    +) where {T}

    Return an object that is used to configure various tests.

    Configuration arguments

    • atol::Real = Base.rtoldefault(T): Control the absolute tolerance used when comparing solutions.
    • rtol::Real = Base.rtoldefault(T): Control the relative tolerance used when comparing solutions.
    • optimal_status = MOI.OPTIMAL: Set to MOI.LOCALLY_SOLVED if the solver cannot prove global optimality.
    • infeasible_status = MOI.INFEASIBLE: Set to MOI.LOCALLY_INFEASIBLE if the solver cannot prove global infeasibility.
    • exclude = Vector{Any}: Pass attributes or functions to exclude to skip parts of tests that require certain functionality. Common arguments include:
      • MOI.delete to skip deletion-related tests
      • MOI.optimize! to skip optimize-related tests
      • MOI.ConstraintDual to skip dual-related tests
      • MOI.VariableName to skip setting variable names
      • MOI.ConstraintName to skip setting constraint names

    Examples

    For a nonlinear solver that finds local optima and does not support finding dual variables or constraint names:

    Config(
    +    Float64;
    +    optimal_status = MOI.LOCALLY_SOLVED,
    +    exclude = Any[
    +        MOI.ConstraintDual,
    +        MOI.VariableName,
    +        MOI.ConstraintName,
    +        MOI.delete,
    +    ],
    +)
    source
    MathOptInterface.Test.runtestsFunction
    runtests(
    +    model::MOI.ModelLike,
    +    config::Config;
    +    include::Vector{Union{String,Regex}} = String[],
    +    exclude::Vector{Union{String,Regex}} = String[],
    +    warn_unsupported::Bool = false,
    +    exclude_tests_after::VersionNumber = v"999.0.0",
    +)

    Run all tests in MathOptInterface.Test on model.

    Configuration arguments

    • config is a Test.Config object that can be used to modify the behavior of tests.
    • If include is not empty, only run tests if an element from include occursin the name of the test.
    • If exclude is not empty, skip tests if an element from exclude occursin the name of the test.
    • exclude takes priority over include.
    • If warn_unsupported is false, runtests will silently skip tests that fail with a MOI.NotAllowedError, MOI.UnsupportedError, or RequirementUnmet error. (The latter is thrown when an @requires statement returns false.) When warn_unsupported is true, a warning will be printed. For most cases the default behavior, false, is what you want, since these tests likely test functionality that is not supported by model. However, it can be useful to run warn_unsupported = true to check you are not skipping tests due to a missing supports_constraint method or equivalent.
    • exclude_tests_after is a version number that excludes any tests to MOI added after that version number. This is useful for solvers who can declare a fixed set of tests, and not cause their tests to break if a new patch of MOI is released with a new test.

    See also: setup_test.

    Example

    config = MathOptInterface.Test.Config()
    +MathOptInterface.Test.runtests(
    +    model,
    +    config;
    +    include = ["test_linear_", r"^test_model_Name$"],
    +    exclude = ["VariablePrimalStart"],
    +    warn_unsupported = true,
    +    exclude_tests_after = v"0.10.5",
    +)
    source
    MathOptInterface.Test.setup_testFunction
    setup_test(::typeof(f), model::MOI.ModelLike, config::Config)

    Overload this method to modify model before running the test function f on model with config. You can also modify the fields in config (e.g., to loosen the default tolerances).

    This function should either return nothing, or return a function which, when called with zero arguments, undoes the setup to return the model to its previous state. You do not need to undo any modifications to config.

    This function is most useful when writing new tests of the tests for MOI, but it can also be used to set test-specific tolerances, etc.

    See also: runtests

    Example

    function MOI.Test.setup_test(
    +    ::typeof(MOI.Test.test_linear_VariablePrimalStart_partial),
    +    mock::MOIU.MockOptimizer,
    +    ::MOI.Test.Config,
    +)
    +    MOIU.set_mock_optimize!(
    +        mock,
    +        (mock::MOIU.MockOptimizer) -> MOIU.mock_optimize!(mock, [1.0, 0.0]),
    +    )
    +    mock.eval_variable_constraint_dual = false
    +
    +    function reset_function()
    +        mock.eval_variable_constraint_dual = true
    +        return
    +    end
    +    return reset_function
    +end
    source
    MathOptInterface.Test.version_addedFunction
    version_added(::typeof(function_name))

    Returns the version of MOI in which the test function_name was added.

    This method should be implemented for all new tests.

    See the exclude_tests_after keyword of runtests for more details.

    source
    MathOptInterface.Test.@requiresMacro
    @requires(x)

    Check that the condition x is true. Otherwise, throw an RequirementUnmet error to indicate that the model does not support something required by the test function.

    Examples

    @requires MOI.supports(model, MOI.Silent())
    +@test MOI.get(model, MOI.Silent())
    source
    diff --git a/previews/PR3545/moi/submodules/Utilities/overview/index.html b/previews/PR3545/moi/submodules/Utilities/overview/index.html new file mode 100644 index 00000000000..23450a438c8 --- /dev/null +++ b/previews/PR3545/moi/submodules/Utilities/overview/index.html @@ -0,0 +1,254 @@ + +Overview · JuMP

    The Utilities submodule

    The Utilities submodule provides a variety of functions and datastructures for managing MOI.ModelLike objects.

    Utilities.Model

    Utilities.Model provides an implementation of a ModelLike that efficiently supports all functions and sets defined within MOI. However, given the extensibility of MOI, this might not cover all use cases.

    Create a model as follows:

    julia> model = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}

    Utilities.UniversalFallback

    Utilities.UniversalFallback is a layer that sits on top of any ModelLike and provides non-specialized (slower) fallbacks for constraints and attributes that the underlying ModelLike does not support.

    For example, Utilities.Model doesn't support some variable attributes like VariablePrimalStart, so JuMP uses a combination of Universal fallback and Utilities.Model as a generic problem cache:

    julia> model = MOI.Utilities.UniversalFallback(MOI.Utilities.Model{Float64}())
    +MOIU.UniversalFallback{MOIU.Model{Float64}}
    +fallback for MOIU.Model{Float64}
    Warning

    Adding a UniversalFallback means that your model will now support all constraints, even if the inner-model does not. This can lead to unexpected behavior.

    Utilities.@model

    For advanced use cases that need efficient support for functions and sets defined outside of MOI (but still known at compile time), we provide the Utilities.@model macro.

    The @model macro takes a name (for a new type, which must not exist yet), eight tuples specifying the types of constraints that are supported, and then a Bool indicating the type is a subtype of MOI.AbstractOptimizer (if true) or MOI.ModelLike (if false).

    The eight tuples are in the following order:

    1. Un-typed scalar sets, for example, Integer
    2. Typed scalar sets, for example, LessThan
    3. Un-typed vector sets, for example, Nonnegatives
    4. Typed vector sets, for example, PowerCone
    5. Un-typed scalar functions, for example, VariableIndex
    6. Typed scalar functions, for example, ScalarAffineFunction
    7. Un-typed vector functions, for example, VectorOfVariables
    8. Typed vector functions, for example, VectorAffineFunction

    The tuples can contain more than one element. Typed-sets must be specified without their type parameter, for example, MOI.LessThan, not MOI.LessThan{Float64}.

    Here is an example:

    julia> MOI.Utilities.@model(
    +           MyNewModel,
    +           (MOI.Integer,),                  # Un-typed scalar sets
    +           (MOI.GreaterThan,),              # Typed scalar sets
    +           (MOI.Nonnegatives,),             # Un-typed vector sets
    +           (MOI.PowerCone,),                # Typed vector sets
    +           (MOI.VariableIndex,),            # Un-typed scalar functions
    +           (MOI.ScalarAffineFunction,),     # Typed scalar functions
    +           (MOI.VectorOfVariables,),        # Un-typed vector functions
    +           (MOI.VectorAffineFunction,),     # Typed vector functions
    +           true,                            # <:MOI.AbstractOptimizer?
    +       )
    +MathOptInterface.Utilities.GenericOptimizer{T, MathOptInterface.Utilities.ObjectiveContainer{T}, MathOptInterface.Utilities.VariablesContainer{T}, MyNewModelFunctionConstraints{T}} where T
    +
    +julia> model = MyNewModel{Float64}()
    +MOIU.GenericOptimizer{Float64, MOIU.ObjectiveContainer{Float64}, MOIU.VariablesContainer{Float64}, MyNewModelFunctionConstraints{Float64}}
    Warning

    MyNewModel supports every VariableIndex-in-Set constraint, as well as VariableIndex, ScalarAffineFunction, and ScalarQuadraticFunction objective functions. Implement MOI.supports as needed to forbid constraint and objective function combinations.

    As another example, PATHSolver, which only supports VectorAffineFunction-in-Complements defines its optimizer as:

    julia> MOI.Utilities.@model(
    +           PathOptimizer,
    +           (),  # Scalar sets
    +           (),  # Typed scalar sets
    +           (MOI.Complements,),  # Vector sets
    +           (),  # Typed vector sets
    +           (),  # Scalar functions
    +           (),  # Typed scalar functions
    +           (),  # Vector functions
    +           (MOI.VectorAffineFunction,),  # Typed vector functions
    +           true,  # is_optimizer
    +       )
    +MathOptInterface.Utilities.GenericOptimizer{T, MathOptInterface.Utilities.ObjectiveContainer{T}, MathOptInterface.Utilities.VariablesContainer{T}, MathOptInterface.Utilities.VectorOfConstraints{MathOptInterface.VectorAffineFunction{T}, MathOptInterface.Complements}} where T

    However, PathOptimizer does not support some VariableIndex-in-Set constraints, so we must explicitly define:

    julia> function MOI.supports_constraint(
    +           ::PathOptimizer,
    +           ::Type{MOI.VariableIndex},
    +           ::Type{Union{<:MOI.Semiinteger,MOI.Semicontinuous,MOI.ZeroOne,MOI.Integer}}
    +       )
    +           return false
    +       end

    Finally, PATH doesn't support an objective function, so we need to add:

    julia> MOI.supports(::PathOptimizer, ::MOI.ObjectiveFunction) = false
    Warning

    This macro creates a new type, so it must be called from the top-level of a module, for example, it cannot be called from inside a function.

    Utilities.CachingOptimizer

    A [Utilities.CachingOptimizer] is an MOI layer that abstracts the difference between solvers that support incremental modification (for example, they support adding variables one-by-one), and solvers that require the entire problem in a single API call (for example, they only accept the A, b and c matrices of a linear program).

    It has two parts:

    1. A cache, where the model can be built and modified incrementally
    2. An optimizer, which is used to solve the problem
    julia> model = MOI.Utilities.CachingOptimizer(
    +           MOI.Utilities.Model{Float64}(),
    +           PathOptimizer{Float64}(),
    +       )
    +MOIU.CachingOptimizer{MOIU.GenericOptimizer{Float64, MOIU.ObjectiveContainer{Float64}, MOIU.VariablesContainer{Float64}, MOIU.VectorOfConstraints{MOI.VectorAffineFunction{Float64}, MOI.Complements}}, MOIU.Model{Float64}}
    +in state EMPTY_OPTIMIZER
    +in mode AUTOMATIC
    +with model cache MOIU.Model{Float64}
    +with optimizer MOIU.GenericOptimizer{Float64, MOIU.ObjectiveContainer{Float64}, MOIU.VariablesContainer{Float64}, MOIU.VectorOfConstraints{MOI.VectorAffineFunction{Float64}, MOI.Complements}}

    A Utilities.CachingOptimizer may be in one of three possible states:

    • NO_OPTIMIZER: The CachingOptimizer does not have any optimizer.
    • EMPTY_OPTIMIZER: The CachingOptimizer has an empty optimizer, and it is not synchronized with the cached model. Modifications are forwarded to the cache, but not to the optimizer.
    • ATTACHED_OPTIMIZER: The CachingOptimizer has an optimizer, and it is synchronized with the cached model. Modifications are forwarded to the optimizer. If the optimizer does not support modifications, and error will be thrown.

    Use Utilities.attach_optimizer to go from EMPTY_OPTIMIZER to ATTACHED_OPTIMIZER:

    julia> MOI.Utilities.attach_optimizer(model)
    +
    +julia> model
    +MOIU.CachingOptimizer{MOIU.GenericOptimizer{Float64, MOIU.ObjectiveContainer{Float64}, MOIU.VariablesContainer{Float64}, MOIU.VectorOfConstraints{MOI.VectorAffineFunction{Float64}, MOI.Complements}}, MOIU.Model{Float64}}
    +in state ATTACHED_OPTIMIZER
    +in mode AUTOMATIC
    +with model cache MOIU.Model{Float64}
    +with optimizer MOIU.GenericOptimizer{Float64, MOIU.ObjectiveContainer{Float64}, MOIU.VariablesContainer{Float64}, MOIU.VectorOfConstraints{MOI.VectorAffineFunction{Float64}, MOI.Complements}}
    Info

    You must be in ATTACHED_OPTIMIZER to use optimize!.

    Use Utilities.reset_optimizer to go from ATTACHED_OPTIMIZER to EMPTY_OPTIMIZER:

    julia> MOI.Utilities.reset_optimizer(model)
    +
    +julia> model
    +MOIU.CachingOptimizer{MOIU.GenericOptimizer{Float64, MOIU.ObjectiveContainer{Float64}, MOIU.VariablesContainer{Float64}, MOIU.VectorOfConstraints{MOI.VectorAffineFunction{Float64}, MOI.Complements}}, MOIU.Model{Float64}}
    +in state EMPTY_OPTIMIZER
    +in mode AUTOMATIC
    +with model cache MOIU.Model{Float64}
    +with optimizer MOIU.GenericOptimizer{Float64, MOIU.ObjectiveContainer{Float64}, MOIU.VariablesContainer{Float64}, MOIU.VectorOfConstraints{MOI.VectorAffineFunction{Float64}, MOI.Complements}}
    Info

    Calling MOI.empty!(model) also resets the state to EMPTY_OPTIMIZER. So after emptying a model, the modification will only be applied to the cache.

    Use Utilities.drop_optimizer to go from any state to NO_OPTIMIZER:

    julia> MOI.Utilities.drop_optimizer(model)
    +
    +julia> model
    +MOIU.CachingOptimizer{MOIU.GenericOptimizer{Float64, MOIU.ObjectiveContainer{Float64}, MOIU.VariablesContainer{Float64}, MOIU.VectorOfConstraints{MOI.VectorAffineFunction{Float64}, MOI.Complements}}, MOIU.Model{Float64}}
    +in state NO_OPTIMIZER
    +in mode AUTOMATIC
    +with model cache MOIU.Model{Float64}
    +with optimizer nothing

    Pass an empty optimizer to Utilities.reset_optimizer to go from NO_OPTIMIZER to EMPTY_OPTIMIZER:

    julia> MOI.Utilities.reset_optimizer(model, PathOptimizer{Float64}())
    +
    +julia> model
    +MOIU.CachingOptimizer{MOIU.GenericOptimizer{Float64, MOIU.ObjectiveContainer{Float64}, MOIU.VariablesContainer{Float64}, MOIU.VectorOfConstraints{MOI.VectorAffineFunction{Float64}, MOI.Complements}}, MOIU.Model{Float64}}
    +in state EMPTY_OPTIMIZER
    +in mode AUTOMATIC
    +with model cache MOIU.Model{Float64}
    +with optimizer MOIU.GenericOptimizer{Float64, MOIU.ObjectiveContainer{Float64}, MOIU.VariablesContainer{Float64}, MOIU.VectorOfConstraints{MOI.VectorAffineFunction{Float64}, MOI.Complements}}

    Deciding when to attach and reset the optimizer is tedious, and you will often write code like this:

    try
    +    # modification
    +catch
    +    MOI.Utilities.reset_optimizer(model)
    +    # Re-try modification
    +end

    To make this easier, Utilities.CachingOptimizer has two modes of operation:

    • AUTOMATIC: The CachingOptimizer changes its state when necessary. Attempting to add a constraint or perform a modification not supported by the optimizer results in a drop to EMPTY_OPTIMIZER mode.
    • MANUAL: The user must change the state of the CachingOptimizer. Attempting to perform an operation in the incorrect state results in an error.

    By default, AUTOMATIC mode is chosen. However, you can create a CachingOptimizer in MANUAL mode as follows:

    julia> model = MOI.Utilities.CachingOptimizer(
    +           MOI.Utilities.Model{Float64}(),
    +           MOI.Utilities.MANUAL,
    +       )
    +MOIU.CachingOptimizer{MOI.AbstractOptimizer, MOIU.Model{Float64}}
    +in state NO_OPTIMIZER
    +in mode MANUAL
    +with model cache MOIU.Model{Float64}
    +with optimizer nothing
    +
    +julia> MOI.Utilities.reset_optimizer(model, PathOptimizer{Float64}())
    +
    +julia> model
    +MOIU.CachingOptimizer{MOI.AbstractOptimizer, MOIU.Model{Float64}}
    +in state EMPTY_OPTIMIZER
    +in mode MANUAL
    +with model cache MOIU.Model{Float64}
    +with optimizer MOIU.GenericOptimizer{Float64, MOIU.ObjectiveContainer{Float64}, MOIU.VariablesContainer{Float64}, MOIU.VectorOfConstraints{MOI.VectorAffineFunction{Float64}, MOI.Complements}}

    Printing

    Use print to print the formulation of the model.

    julia> model = MOI.Utilities.Model{Float64}();
    +
    +julia> x = MOI.add_variable(model)
    +MOI.VariableIndex(1)
    +
    +julia> MOI.set(model, MOI.VariableName(), x, "x_var")
    +
    +julia> MOI.add_constraint(model, x, MOI.ZeroOne())
    +MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.ZeroOne}(1)
    +
    +julia> MOI.set(model, MOI.ObjectiveFunction{typeof(x)}(), x)
    +
    +julia> MOI.set(model, MOI.ObjectiveSense(), MOI.MAX_SENSE)
    +
    +julia> print(model)
    +Maximize VariableIndex:
    + x_var
    +
    +Subject to:
    +
    +VariableIndex-in-ZeroOne
    + x_var ∈ {0, 1}

    Use Utilities.latex_formulation to display the model in LaTeX form:

    julia> MOI.Utilities.latex_formulation(model)
    +$$ \begin{aligned}
    +\max\quad & x\_var \\
    +\text{Subject to}\\
    + & \text{VariableIndex-in-ZeroOne} \\
    + & x\_var \in \{0, 1\} \\
    +\end{aligned} $$
    Tip

    In IJulia, calling print or ending a cell with Utilities.latex_formulation will render the model in LaTeX.

    Utilities.PenaltyRelaxation

    Pass Utilities.PenaltyRelaxation to modify to relax the problem by adding penalized slack variables to the constraints. This is helpful when debugging sources of infeasible models.

    julia> model = MOI.Utilities.Model{Float64}();
    +
    +julia> x = MOI.add_variable(model);
    +
    +julia> MOI.set(model, MOI.VariableName(), x, "x")
    +
    +julia> c = MOI.add_constraint(model, 1.0 * x, MOI.LessThan(2.0));
    +
    +julia> map = MOI.modify(model, MOI.Utilities.PenaltyRelaxation(Dict(c => 2.0)));
    +
    +julia> print(model)
    +Minimize ScalarAffineFunction{Float64}:
    + 0.0 + 2.0 v[2]
    +
    +Subject to:
    +
    +ScalarAffineFunction{Float64}-in-LessThan{Float64}
    + 0.0 + 1.0 x - 1.0 v[2] <= 2.0
    +
    +VariableIndex-in-GreaterThan{Float64}
    + v[2] >= 0.0
    +
    +julia> map[c]
    +0.0 + 1.0 MOI.VariableIndex(2)

    You can also modify a single constraint using Utilities.ScalarPenaltyRelaxation:

    julia> model = MOI.Utilities.Model{Float64}();
    +
    +julia> x = MOI.add_variable(model);
    +
    +julia> MOI.set(model, MOI.VariableName(), x, "x")
    +
    +julia> c = MOI.add_constraint(model, 1.0 * x, MOI.LessThan(2.0));
    +
    +julia> f = MOI.modify(model, c, MOI.Utilities.ScalarPenaltyRelaxation(2.0));
    +
    +julia> print(model)
    +Minimize ScalarAffineFunction{Float64}:
    + 0.0 + 2.0 v[2]
    +
    +Subject to:
    +
    +ScalarAffineFunction{Float64}-in-LessThan{Float64}
    + 0.0 + 1.0 x - 1.0 v[2] <= 2.0
    +
    +VariableIndex-in-GreaterThan{Float64}
    + v[2] >= 0.0
    +
    +julia> f
    +0.0 + 1.0 MOI.VariableIndex(2)

    Utilities.MatrixOfConstraints

    The constraints of Utilities.Model are stored as a vector of tuples of function and set in a Utilities.VectorOfConstraints. Other representations can be used by parameterizing the type Utilities.GenericModel (resp. Utilities.GenericOptimizer). For instance, if all non-VariableIndex constraints are affine, the coefficients of all the constraints can be stored in a single sparse matrix using Utilities.MatrixOfConstraints. The constraints storage can even be customized up to a point where it exactly matches the storage of the solver of interest, in which case copy_to can be implemented for the solver by calling copy_to to this custom model.

    For instance, Clp defines the following model:

    MOI.Utilities.@product_of_scalar_sets(LP, MOI.EqualTo{T}, MOI.LessThan{T}, MOI.GreaterThan{T})
    +const Model = MOI.Utilities.GenericModel{
    +    Float64,
    +    MOI.Utilities.MatrixOfConstraints{
    +        Float64,
    +        MOI.Utilities.MutableSparseMatrixCSC{Float64,Cint,MOI.Utilities.ZeroBasedIndexing},
    +        MOI.Utilities.Hyperrectangle{Float64},
    +        LP{Float64},
    +    },
    +}

    The copy_to operation can now be implemented as follows:

    function _copy_to(dest::Optimizer, src::Model)
    +    @assert MOI.is_empty(dest)
    +    A = src.constraints.coefficients
    +    row_bounds = src.constraints.constants
    +    Clp_loadProblem(
    +        dest,
    +        A.n,
    +        A.m,
    +        A.colptr,
    +        A.rowval,
    +        A.nzval,
    +        src.lower_bound,
    +        src.upper_bound,
    +        # (...) objective vector (omitted),
    +        row_bounds.lower,
    +        row_bounds.upper,
    +    )
    +    # Set objective sense and constant (omitted)
    +    return
    +end
    +
    +function MOI.copy_to(dest::Optimizer, src::Model)
    +    _copy_to(dest, src)
    +    return MOI.Utilities.identity_index_map(src)
    +end
    +
    +function MOI.copy_to(
    +    dest::Optimizer,
    +    src::MOI.Utilities.UniversalFallback{Model},
    +)
    +    # Copy attributes from `src` to `dest` and error in case any unsupported
    +    # constraints or attributes are set in `UniversalFallback`.
    +    return MOI.copy_to(dest, src.model)
    +end
    +
    +function MOI.copy_to(
    +    dest::Optimizer,
    +    src::MOI.ModelLike,
    +)
    +    model = Model()
    +    index_map = MOI.copy_to(model, src)
    +    _copy_to(dest, model)
    +    return index_map
    +end

    ModelFilter

    Utilities provides Utilities.ModelFilter as a useful tool to copy a subset of a model. For example, given an infeasible model, we can copy the irreducible infeasible subsystem (for models implementing ConstraintConflictStatus) as follows:

    my_filter(::Any) = true
    +function my_filter(ci::MOI.ConstraintIndex)
    +    status = MOI.get(dest, MOI.ConstraintConflictStatus(), ci)
    +    return status != MOI.NOT_IN_CONFLICT
    +end
    +filtered_src = MOI.Utilities.ModelFilter(my_filter, src)
    +index_map = MOI.copy_to(dest, filtered_src)

    Fallbacks

    The value of some attributes can be inferred from the value of other attributes.

    For example, the value of ObjectiveValue can be computed using ObjectiveFunction and VariablePrimal.

    When a solver gives direct access to an attribute, it is better to return this value. However, if this is not the case, Utilities.get_fallback can be used instead. For example:

    function MOI.get(model::Optimizer, attr::MOI.ObjectiveFunction)
    +    return MOI.Utilities.get_fallback(model, attr)
    +end

    DoubleDicts

    When writing MOI interfaces, we often need to handle situations in which we map ConstraintIndexs to different values. For example, to a string for ConstraintName.

    One option is to use a dictionary like Dict{MOI.ConstraintIndex,String}. However, this incurs a performance cost because the key is not a concrete type.

    The DoubleDicts submodule helps this situation by providing two types main types Utilities.DoubleDicts.DoubleDict and Utilities.DoubleDicts.IndexDoubleDict. These types act like normal dictionaries, but internally they use more efficient dictionaries specialized to the type of the function-set pair.

    The most common usage of a DoubleDict is in the index_map returned by copy_to. Performance can be improved, by using a function barrier. That is, instead of code like:

    index_map = MOI.copy_to(dest, src)
    +for (F, S) in MOI.get(src, MOI.ListOfConstraintTypesPresent())
    +    for ci in MOI.get(src, MOI.ListOfConstraintIndices{F,S}())
    +        dest_ci = index_map[ci]
    +        # ...
    +    end
    +end

    use instead:

    function function_barrier(
    +    dest,
    +    src,
    +    index_map::MOI.Utilities.DoubleDicts.IndexDoubleDictInner{F,S},
    +) where {F,S}
    +    for ci in MOI.get(src, MOI.ListOfConstraintIndices{F,S}())
    +        dest_ci = index_map[ci]
    +        # ...
    +    end
    +    return
    +end
    +
    +index_map = MOI.copy_to(dest, src)
    +for (F, S) in MOI.get(src, MOI.ListOfConstraintTypesPresent())
    +    function_barrier(dest, src, index_map[F, S])
    +end
    diff --git a/previews/PR3545/moi/submodules/Utilities/reference/index.html b/previews/PR3545/moi/submodules/Utilities/reference/index.html new file mode 100644 index 00000000000..9f9a103fe62 --- /dev/null +++ b/previews/PR3545/moi/submodules/Utilities/reference/index.html @@ -0,0 +1,268 @@ + +API Reference · JuMP

    Utilities.Model

    MathOptInterface.Utilities.ModelType
    MOI.Utilities.Model{T}() where {T}

    An implementation of ModelLike that supports all functions and sets defined in MOI. It is parameterized by the coefficient type.

    Examples

    julia> import MathOptInterface as MOI
    +
    +julia> model = MOI.Utilities.Model{Float64}()
    +MOIU.Model{Float64}
    source

    Utilities.UniversalFallback

    MathOptInterface.Utilities.UniversalFallbackType
    UniversalFallback

    The UniversalFallback can be applied on a MOI.ModelLike model to create the model UniversalFallback(model) supporting any constraint and attribute. This allows to have a specialized implementation in model for performance critical constraints and attributes while still supporting other attributes with a small performance penalty. Note that model is unaware of constraints and attributes stored by UniversalFallback so this is not appropriate if model is an optimizer (for this reason, MOI.optimize! has not been implemented). In that case, optimizer bridges should be used instead.

    source

    Utilities.@model

    MathOptInterface.Utilities.@modelMacro
    macro model(
    +    model_name,
    +    scalar_sets,
    +    typed_scalar_sets,
    +    vector_sets,
    +    typed_vector_sets,
    +    scalar_functions,
    +    typed_scalar_functions,
    +    vector_functions,
    +    typed_vector_functions,
    +    is_optimizer = false
    +)

    Creates a type model_name implementing the MOI model interface and supporting all combinations of the provided functions and sets.

    Each typed_ scalar/vector sets/functions argument is a tuple of types. A type is "typed" if it has a coefficient {T} as the first type parameter.

    Tuple syntax

    To give no set/function, write (). To give one set or function X, write (X,).

    is_optimizer

    If is_optimizer = true, the resulting struct is a of GenericOptimizer, which is a subtype of MOI.AbstractOptimizer, otherwise, it is a GenericModel, which is a subtype of MOI.ModelLike.

    VariableIndex

    Examples

    The model describing a linear program would be:

    @model(
    +    LPModel,                                          # model_name
    +    (),                                               # untyped scalar sets
    +    (MOI.EqualTo, MOI.GreaterThan, MOI.LessThan, MOI.Interval), #   typed scalar sets
    +    (MOI.Zeros, MOI.Nonnegatives, MOI.Nonpositives),  # untyped vector sets
    +    (),                                               #   typed vector sets
    +    (),                                               # untyped scalar functions
    +    (MOI.ScalarAffineFunction,),                      #   typed scalar functions
    +    (MOI.VectorOfVariables,),                         # untyped vector functions
    +    (MOI.VectorAffineFunction,),                      #   typed vector functions
    +    false,                                            # is_optimizer
    +)
    source
    MathOptInterface.Utilities.GenericModelType
    mutable struct GenericModel{T,O,V,C} <: AbstractModelLike{T}

    Implements a model supporting coefficients of type T and:

    • An objective function stored in .objective::O
    • Variables and VariableIndex constraints stored in .variable_bounds::V
    • F-in-S constraints (excluding VariableIndex constraints) stored in .constraints::C

    All interactions take place via the MOI interface, so the types O, V, and C must implement the API as needed for their functionality.

    source
    MathOptInterface.Utilities.GenericOptimizerType
    mutable struct GenericOptimizer{T,O,V,C} <: AbstractOptimizer{T}

    Implements a model supporting coefficients of type T and:

    • An objective function stored in .objective::O
    • Variables and VariableIndex constraints stored in .variable_bounds::V
    • F-in-S constraints (excluding VariableIndex constraints) stored in .constraints::C

    All interactions take place via the MOI interface, so the types O, V, and C must implement the API as needed for their functionality.

    source

    .objective

    .variables

    MathOptInterface.Utilities.VariablesContainerType
    struct VariablesContainer{T} <: AbstractVectorBounds
    +    set_mask::Vector{UInt16}
    +    lower::Vector{T}
    +    upper::Vector{T}
    +end

    A struct for storing variables and VariableIndex-related constraints. Used in MOI.Utilities.Model by default.

    source
    MathOptInterface.Utilities.FreeVariablesType
    mutable struct FreeVariables <: MOI.ModelLike
    +    n::Int64
    +    FreeVariables() = new(0)
    +end

    A struct for storing free variables that can be used as the variables field of GenericModel or GenericModel. It represents a model that does not support any constraint nor objective function.

    Example

    The following model type represents a conic model in geometric form. As opposed to VariablesContainer, FreeVariables does not support constraint bounds so they are bridged into an affine constraint in the MOI.Nonnegatives cone as expected for the geometric conic form.

    julia> MOI.Utilities.@product_of_sets(
    +    Cones,
    +    MOI.Zeros,
    +    MOI.Nonnegatives,
    +    MOI.SecondOrderCone,
    +    MOI.PositiveSemidefiniteConeTriangle,
    +);
    +
    +julia> const ConicModel{T} = MOI.Utilities.GenericOptimizer{
    +    T,
    +    MOI.Utilities.ObjectiveContainer{T},
    +    MOI.Utilities.FreeVariables,
    +    MOI.Utilities.MatrixOfConstraints{
    +        T,
    +        MOI.Utilities.MutableSparseMatrixCSC{
    +            T,
    +            Int,
    +            MOI.Utilities.OneBasedIndexing,
    +        },
    +        Vector{T},
    +        Cones{T},
    +    },
    +};
    +
    +julia> model = MOI.instantiate(ConicModel{Float64}, with_bridge_type=Float64);
    +
    +julia> x = MOI.add_variable(model)
    +MathOptInterface.VariableIndex(1)
    +
    +julia> c = MOI.add_constraint(model, x, MOI.GreaterThan(1.0))
    +MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.GreaterThan{Float64}}(1)
    +
    +julia> MOI.Bridges.is_bridged(model, c)
    +true
    +
    +julia> bridge = MOI.Bridges.bridge(model, c)
    +MathOptInterface.Bridges.Constraint.VectorizeBridge{Float64, MathOptInterface.VectorAffineFunction{Float64}, MathOptInterface.Nonnegatives, MathOptInterface.VariableIndex}(MathOptInterface.ConstraintIndex{MathOptInterface.VectorAffineFunction{Float64}, MathOptInterface.Nonnegatives}(1), 1.0)
    +
    +julia> bridge.vector_constraint
    +MathOptInterface.ConstraintIndex{MathOptInterface.VectorAffineFunction{Float64}, MathOptInterface.Nonnegatives}(1)
    +
    +julia> MOI.Bridges.is_bridged(model, bridge.vector_constraint)
    +false
    source

    .constraints

    MathOptInterface.Utilities.VectorOfConstraintsType
    mutable struct VectorOfConstraints{
    +    F<:MOI.AbstractFunction,
    +    S<:MOI.AbstractSet,
    +} <: MOI.ModelLike
    +    constraints::CleverDicts.CleverDict{
    +        MOI.ConstraintIndex{F,S},
    +        Tuple{F,S},
    +        typeof(CleverDicts.key_to_index),
    +        typeof(CleverDicts.index_to_key),
    +    }
    +end

    A struct storing F-in-S constraints as a mapping between the constraint indices to the corresponding tuple of function and set.

    source
    MathOptInterface.Utilities.@struct_of_constraints_by_function_typesMacro
    Utilities.@struct_of_constraints_by_function_types(name, func_types...)

    Given a vector of n function types (F1, F2,..., Fn) in func_types, defines a subtype of StructOfConstraints of name name and which type parameters {T, C1, C2, ..., Cn}. It contains n field where the ith field has type Ci and stores the constraints of function type Fi.

    The expression Fi can also be a union in which case any constraint for which the function type is in the union is stored in the field with type Ci.

    source
    MathOptInterface.Utilities.@struct_of_constraints_by_set_typesMacro
    Utilities.@struct_of_constraints_by_set_types(name, func_types...)

    Given a vector of n set types (S1, S2,..., Sn) in func_types, defines a subtype of StructOfConstraints of name name and which type parameters {T, C1, C2, ..., Cn}. It contains n field where the ith field has type Ci and stores the constraints of set type Si. The expression Si can also be a union in which case any constraint for which the set type is in the union is stored in the field with type Ci. This can be useful if Ci is a MatrixOfConstraints in order to concatenate the coefficients of constraints of several different set types in the same matrix.

    source
    MathOptInterface.Utilities.struct_of_constraint_codeFunction
    struct_of_constraint_code(struct_name, types, field_types = nothing)

    Given a vector of n Union{SymbolFun,_UnionSymbolFS{SymbolFun}} or Union{SymbolSet,_UnionSymbolFS{SymbolSet}} in types, defines a subtype of StructOfConstraints of name name and which type parameters {T, F1, F2, ..., Fn} if field_types is nothing and a {T} otherwise. It contains n field where the ith field has type Ci if field_types is nothing and type field_types[i] otherwise. If types is vector of Union{SymbolFun,_UnionSymbolFS{SymbolFun}} (resp. Union{SymbolSet,_UnionSymbolFS{SymbolSet}}) then the constraints of that function (resp. set) type are stored in the corresponding field.

    This function is used by the macros @model, @struct_of_constraints_by_function_types and @struct_of_constraints_by_set_types.

    source

    Caching optimizer

    MathOptInterface.Utilities.CachingOptimizerType
    CachingOptimizer

    CachingOptimizer is an intermediate layer that stores a cache of the model and links it with an optimizer. It supports incremental model construction and modification even when the optimizer doesn't.

    Constructors

        CachingOptimizer(cache::MOI.ModelLike, optimizer::AbstractOptimizer)

    Creates a CachingOptimizer in AUTOMATIC mode, with the optimizer optimizer.

    The type of the optimizer returned is CachingOptimizer{typeof(optimizer), typeof(cache)} so it does not support the function reset_optimizer(::CachingOptimizer, new_optimizer) if the type of new_optimizer is different from the type of optimizer.

        CachingOptimizer(cache::MOI.ModelLike, mode::CachingOptimizerMode)

    Creates a CachingOptimizer in the NO_OPTIMIZER state and mode mode.

    The type of the optimizer returned is CachingOptimizer{MOI.AbstractOptimizer,typeof(cache)} so it does support the function reset_optimizer(::CachingOptimizer, new_optimizer) if the type of new_optimizer is different from the type of optimizer.

    About the type

    States

    A CachingOptimizer may be in one of three possible states (CachingOptimizerState):

    • NO_OPTIMIZER: The CachingOptimizer does not have any optimizer.
    • EMPTY_OPTIMIZER: The CachingOptimizer has an empty optimizer. The optimizer is not synchronized with the cached model.
    • ATTACHED_OPTIMIZER: The CachingOptimizer has an optimizer, and it is synchronized with the cached model.

    Modes

    A CachingOptimizer has two modes of operation (CachingOptimizerMode):

    • MANUAL: The only methods that change the state of the CachingOptimizer are Utilities.reset_optimizer, Utilities.drop_optimizer, and Utilities.attach_optimizer. Attempting to perform an operation in the incorrect state results in an error.
    • AUTOMATIC: The CachingOptimizer changes its state when necessary. For example, optimize! will automatically call attach_optimizer (an optimizer must have been previously set). Attempting to add a constraint or perform a modification not supported by the optimizer results in a drop to EMPTY_OPTIMIZER mode.
    source
    MathOptInterface.Utilities.attach_optimizerFunction
    MOIU.attach_optimizer(model::GenericModel)

    Call MOIU.attach_optimizer on the backend of model.

    Cannot be called in direct mode.

    source
    attach_optimizer(model::CachingOptimizer)

    Attaches the optimizer to model, copying all model data into it. Can be called only from the EMPTY_OPTIMIZER state. If the copy succeeds, the CachingOptimizer will be in state ATTACHED_OPTIMIZER after the call, otherwise an error is thrown; see MOI.copy_to for more details on which errors can be thrown.

    source
    MathOptInterface.Utilities.reset_optimizerFunction
    MOIU.reset_optimizer(model::GenericModel, optimizer::MOI.AbstractOptimizer)

    Call MOIU.reset_optimizer on the backend of model.

    Cannot be called in direct mode.

    source
    MOIU.reset_optimizer(model::GenericModel)

    Call MOIU.reset_optimizer on the backend of model.

    Cannot be called in direct mode.

    source
    reset_optimizer(m::CachingOptimizer, optimizer::MOI.AbstractOptimizer)

    Sets or resets m to have the given empty optimizer optimizer.

    Can be called from any state. An assertion error will be thrown if optimizer is not empty.

    The CachingOptimizer m will be in state EMPTY_OPTIMIZER after the call.

    source
    reset_optimizer(m::CachingOptimizer)

    Detaches and empties the current optimizer. Can be called from ATTACHED_OPTIMIZER or EMPTY_OPTIMIZER state. The CachingOptimizer will be in state EMPTY_OPTIMIZER after the call.

    source
    MathOptInterface.Utilities.drop_optimizerFunction
    MOIU.drop_optimizer(model::GenericModel)

    Call MOIU.drop_optimizer on the backend of model.

    Cannot be called in direct mode.

    source
    drop_optimizer(m::CachingOptimizer)

    Drops the optimizer, if one is present. Can be called from any state. The CachingOptimizer will be in state NO_OPTIMIZER after the call.

    source

    Mock optimizer

    Printing

    MathOptInterface.Utilities.latex_formulationFunction
    latex_formulation(model::MOI.ModelLike; kwargs...)

    Wrap model in a type so that it can be pretty-printed as text/latex in a notebook like IJulia, or in Documenter.

    To render the model, end the cell with latex_formulation(model), or call display(latex_formulation(model)) in to force the display of the model from inside a function.

    Possible keyword arguments are:

    • simplify_coefficients : Simplify coefficients if possible by omitting them or removing trailing zeros.
    • default_name : The name given to variables with an empty name.
    • print_types : Print the MOI type of each function and set for clarity.
    source

    Copy utilities

    MathOptInterface.Utilities.ModelFilterType
    ModelFilter(filter::Function, model::MOI.ModelLike)

    A layer to filter out various components of model.

    The filter function takes a single argument, which is each element from the list returned by the attributes below. It returns true if the element should be visible in the filtered model and false otherwise.

    The components that are filtered are:

    • Entire constraint types via:
      • MOI.ListOfConstraintTypesPresent
    • Individual constraints via:
      • MOI.ListOfConstraintIndices{F,S}
    • Specific attributes via:
      • MOI.ListOfModelAttributesSet
      • MOI.ListOfConstraintAttributesSet
      • MOI.ListOfVariableAttributesSet
    Warning

    The list of attributes filtered may change in a future release. You should write functions that are generic and not limited to the five types listed above. Thus, you should probably define a fallback filter(::Any) = true.

    See below for examples of how this works.

    Note

    This layer has a limited scope. It is intended by be used in conjunction with MOI.copy_to.

    Example: copy model excluding integer constraints

    Use the do syntax to provide a single function.

    filtered_src = MOI.Utilities.ModelFilter(src) do item
    +    return item != (MOI.VariableIndex, MOI.Integer)
    +end
    +MOI.copy_to(dest, filtered_src)

    Example: copy model excluding names

    Use type dispatch to simplify the implementation:

    my_filter(::Any) = true  # Note the generic fallback!
    +my_filter(::MOI.VariableName) = false
    +my_filter(::MOI.ConstraintName) = false
    +filtered_src = MOI.Utilities.ModelFilter(my_filter, src)
    +MOI.copy_to(dest, filtered_src)

    Example: copy irreducible infeasible subsystem

    my_filter(::Any) = true  # Note the generic fallback!
    +function my_filter(ci::MOI.ConstraintIndex)
    +    status = MOI.get(dest, MOI.ConstraintConflictStatus(), ci)
    +    return status != MOI.NOT_IN_CONFLICT
    +end
    +filtered_src = MOI.Utilities.ModelFilter(my_filter, src)
    +MOI.copy_to(dest, filtered_src)
    source

    Penalty relaxation

    MathOptInterface.Utilities.PenaltyRelaxationType
    PenaltyRelaxation(
    +    penalties = Dict{MOI.ConstraintIndex,Float64}();
    +    default::Union{Nothing,T} = 1.0,
    +)

    A problem modifier that, when passed to MOI.modify, destructively modifies the model in-place to create a penalized relaxation of the constraints.

    Warning

    This is a destructive routine that modifies the model in-place. If you don't want to modify the original model, use JuMP.copy_model to create a copy before calling MOI.modify.

    Reformulation

    See Utilities.ScalarPenaltyRelaxation for details of the reformulation.

    For each constraint ci, the penalty passed to Utilities.ScalarPenaltyRelaxation is get(penalties, ci, default). If the value is nothing, because ci does not exist in penalties and default = nothing, then the constraint is skipped.

    Return value

    MOI.modify(model, PenaltyRelaxation()) returns a Dict{MOI.ConstraintIndex,MOI.ScalarAffineFunction} that maps each constraint index to the corresponding y + z as a MOI.ScalarAffineFunction. In an optimal solution, query the value of these functions to compute the violation of each constraint.

    Relax a subset of constraints

    To relax a subset of constraints, pass a penalties dictionary and set default = nothing.

    Supported constraint types

    The penalty relaxation is currently limited to modifying MOI.ScalarAffineFunction and MOI.ScalarQuadraticFunction constraints in the linear sets MOI.LessThan, MOI.GreaterThan, MOI.EqualTo and MOI.Interval.

    It does not include variable bound or integrality constraints, because these cannot be modified in-place.

    To modify variable bounds, rewrite them as linear constraints.

    Examples

    julia> model = MOI.Utilities.Model{Float64}();
    +
    +julia> x = MOI.add_variable(model);
    +
    +julia> c = MOI.add_constraint(model, 1.0 * x, MOI.LessThan(2.0));
    +
    +julia> map = MOI.modify(model, MOI.Utilities.PenaltyRelaxation(default = 2.0));
    +
    +julia> print(model)
    +Minimize ScalarAffineFunction{Float64}:
    + 0.0 + 2.0 v[2]
    +
    +Subject to:
    +
    +ScalarAffineFunction{Float64}-in-LessThan{Float64}
    + 0.0 + 1.0 v[1] - 1.0 v[2] <= 2.0
    +
    +VariableIndex-in-GreaterThan{Float64}
    + v[2] >= 0.0
    +
    +julia> map[c] isa MOI.ScalarAffineFunction{Float64}
    +true
    julia> model = MOI.Utilities.Model{Float64}();
    +
    +julia> x = MOI.add_variable(model);
    +
    +julia> c = MOI.add_constraint(model, 1.0 * x, MOI.LessThan(2.0));
    +
    +julia> map = MOI.modify(model, MOI.Utilities.PenaltyRelaxation(Dict(c => 3.0)));
    +
    +julia> print(model)
    +Minimize ScalarAffineFunction{Float64}:
    + 0.0 + 3.0 v[2]
    +
    +Subject to:
    +
    +ScalarAffineFunction{Float64}-in-LessThan{Float64}
    + 0.0 + 1.0 v[1] - 1.0 v[2] <= 2.0
    +
    +VariableIndex-in-GreaterThan{Float64}
    + v[2] >= 0.0
    +
    +julia> map[c] isa MOI.ScalarAffineFunction{Float64}
    +true
    source
    MathOptInterface.Utilities.ScalarPenaltyRelaxationType
    ScalarPenaltyRelaxation(penalty::T) where {T}

    A problem modifier that, when passed to MOI.modify, destructively modifies the constraint in-place to create a penalized relaxation of the constraint.

    Warning

    This is a destructive routine that modifies the constraint in-place. If you don't want to modify the original model, use JuMP.copy_model to create a copy before calling MOI.modify.

    Reformulation

    The penalty relaxation modifies constraints of the form $f(x) \in S$ into $f(x) + y - z \in S$, where $y, z \ge 0$, and then it introduces a penalty term into the objective of $a \times (y + z)$ (if minimizing, else $-a$), where $a$ is penalty

    When S is MOI.LessThan or MOI.GreaterThan, we omit y or z respectively as a performance optimization.

    Return value

    MOI.modify(model, ci, ScalarPenaltyRelaxation(penalty)) returns y + z as a MOI.ScalarAffineFunction. In an optimal solution, query the value of this function to compute the violation of the constraint.

    Examples

    julia> model = MOI.Utilities.Model{Float64}();
    +
    +julia> x = MOI.add_variable(model);
    +
    +julia> c = MOI.add_constraint(model, 1.0 * x, MOI.LessThan(2.0));
    +
    +julia> f = MOI.modify(model, c, MOI.Utilities.ScalarPenaltyRelaxation(2.0));
    +
    +julia> print(model)
    +Minimize ScalarAffineFunction{Float64}:
    + 0.0 + 2.0 v[2]
    +
    +Subject to:
    +
    +ScalarAffineFunction{Float64}-in-LessThan{Float64}
    + 0.0 + 1.0 v[1] - 1.0 v[2] <= 2.0
    +
    +VariableIndex-in-GreaterThan{Float64}
    + v[2] >= 0.0
    +
    +julia> f isa MOI.ScalarAffineFunction{Float64}
    +true
    source

    MatrixOfConstraints

    MathOptInterface.Utilities.MatrixOfConstraintsType
    mutable struct MatrixOfConstraints{T,AT,BT,ST} <: MOI.ModelLike
    +    coefficients::AT
    +    constants::BT
    +    sets::ST
    +    caches::Vector{Any}
    +    are_indices_mapped::Vector{BitSet}
    +    final_touch::Bool
    +end

    Represent ScalarAffineFunction and VectorAffinefunction constraints in a matrix form where the linear coefficients of the functions are stored in the coefficients field, the constants of the functions or sets are stored in the constants field. Additional information about the sets are stored in the sets field.

    This model can only be used as the constraints field of a MOI.Utilities.AbstractModel.

    When the constraints are added, they are stored in the caches field. They are only loaded in the coefficients and constants fields once MOI.Utilities.final_touch is called. For this reason, MatrixOfConstraints should not be used by an incremental interface. Use MOI.copy_to instead.

    The constraints can be added in two different ways:

    1. With add_constraint, in which case a canonicalized copy of the function is stored in caches.
    2. With pass_nonvariable_constraints, in which case the functions and sets are stored themselves in caches without mapping the variable indices. The corresponding index in caches is added in are_indices_mapped. This avoids doing a copy of the function in case the getter of CanonicalConstraintFunction does not make a copy for the source model, e.g., this is the case of VectorOfConstraints.

    We illustrate this with an example. Suppose a model is copied from a src::MOI.Utilities.Model to a bridged model with a MatrixOfConstraints. For all the types that are not bridged, the constraints will be copied with pass_nonvariable_constraints. Hence the functions stored in caches are exactly the same as the ones stored in src. This is ok since this is only during the copy_to operation during which src cannot be modified. On the other hand, for the types that are bridged, the functions added may contain duplicates even if the functions did not contain duplicates in src so duplicates are removed with MOI.Utilities.canonical.

    Interface

    The .coefficients::AT type must implement:

    The .constants::BT type must implement:

    The .sets::ST type must implement:

    source

    .coefficients

    MathOptInterface.Utilities.load_termsFunction
    load_terms(coefficients, index_map, func, offset)::Nothing

    Loads the terms of func to coefficients, mapping the variable indices with index_map.

    The ith dimension of func is loaded at the (offset + i)th row of coefficients.

    The function must be allocated first with allocate_terms.

    The function func must be canonicalized, see is_canonical.

    source
    MathOptInterface.Utilities.final_touchFunction
    final_touch(coefficients)::Nothing

    Informs the coefficients that all functions have been added with load_terms. No more modification is allowed unless MOI.empty! is called.

    final_touch(sets)::Nothing

    Informs the sets that all functions have been added with add_set. No more modification is allowed unless MOI.empty! is called.

    source
    MathOptInterface.Utilities.extract_functionFunction
    extract_function(coefficients, row::Integer, constant::T) where {T}

    Return the MOI.ScalarAffineFunction{T} function corresponding to row row in coefficients.

    extract_function(
    +    coefficients,
    +    rows::UnitRange,
    +    constants::Vector{T},
    +) where{T}

    Return the MOI.VectorAffineFunction{T} function corresponding to rows rows in coefficients.

    source
    MathOptInterface.Utilities.MutableSparseMatrixCSCType
    mutable struct MutableSparseMatrixCSC{Tv,Ti<:Integer,I<:AbstractIndexing}
    +    indexing::I
    +    m::Int
    +    n::Int
    +    colptr::Vector{Ti}
    +    rowval::Vector{Ti}
    +    nzval::Vector{Tv}
    +    nz_added::Vector{Ti}
    +end

    Matrix type loading sparse matrices in the Compressed Sparse Column format. The indexing used is indexing, see AbstractIndexing. The other fields have the same meaning than for SparseArrays.SparseMatrixCSC except that the indexing is different unless indexing is OneBasedIndexing. In addition, nz_added is used to cache the number of non-zero terms that have been added to each column due to the incremental nature of load_terms.

    The matrix is loaded in 5 steps:

    1. MOI.empty! is called.
    2. MOI.Utilities.add_column and MOI.Utilities.allocate_terms are called in any order.
    3. MOI.Utilities.set_number_of_rows is called.
    4. MOI.Utilities.load_terms is called for each affine function.
    5. MOI.Utilities.final_touch is called.
    source
    MathOptInterface.Utilities.ZeroBasedIndexingType
    struct ZeroBasedIndexing <: AbstractIndexing end

    Zero-based indexing: the ith row or column has index i - 1. This is useful when the vectors of row and column indices need to be communicated to a library using zero-based indexing such as C libraries.

    source

    .constants

    MathOptInterface.Utilities.load_constantsFunction
    load_constants(constants, offset, func_or_set)::Nothing

    This function loads the constants of func_or_set in constants at an offset of offset. Where offset is the sum of the dimensions of the constraints already loaded. The storage should be preallocated with resize! before calling this function.

    This function should be implemented to be usable as storage of constants for MatrixOfConstraints.

    The constants are loaded in three steps:

    1. Base.empty! is called.
    2. Base.resize! is called with the sum of the dimensions of all constraints.
    3. MOI.Utilities.load_constants is called for each function for vector constraint or set for scalar constraint.
    source

    .sets

    MathOptInterface.Utilities.set_indexFunction
    set_index(sets, ::Type{S})::Union{Int,Nothing} where {S<:MOI.AbstractSet}

    Return an integer corresponding to the index of the set type in the list given by set_types.

    If S is not part of the list, return nothing.

    source
    MathOptInterface.Utilities.add_setFunction
    add_set(sets, i)::Int64

    Add a scalar set of type index i.

    add_set(sets, i, dim)::Int64

    Add a vector set of type index i and dimension dim.

    Both methods return a unique Int64 of the set that can be used to reference this set.

    source
    MathOptInterface.Utilities.rowsFunction
    rows(sets, ci::MOI.ConstraintIndex)::Union{Int,UnitRange{Int}}

    Return the rows in 1:MOI.dimension(sets) corresponding to the set of id ci.value.

    For scalar sets, this returns an Int. For vector sets, this returns an UnitRange{Int}.

    source
    MathOptInterface.Utilities.num_rowsFunction
    num_rows(sets::OrderedProductOfSets, ::Type{S}) where {S}

    Return the number of rows corresponding to a set of type S. That is, it is the sum of the dimensions of the sets of type S.

    source

    Fallbacks

    MathOptInterface.Utilities.get_fallbackFunction
    get_fallback(model::MOI.ModelLike, ::MOI.ObjectiveValue)

    Compute the objective function value using the VariablePrimal results and the ObjectiveFunction value.

    source
    get_fallback(model::MOI.ModelLike, ::MOI.DualObjectiveValue, T::Type)::T

    Compute the dual objective value of type T using the ConstraintDual results and the ConstraintFunction and ConstraintSet values. Note that the nonlinear part of the model is ignored.

    source
    get_fallback(model::MOI.ModelLike, ::MOI.ConstraintPrimal,
    +             constraint_index::MOI.ConstraintIndex)

    Compute the value of the function of the constraint of index constraint_index using the VariablePrimal results and the ConstraintFunction values.

    source
    get_fallback(model::MOI.ModelLike, attr::MOI.ConstraintDual,
    +             ci::MOI.ConstraintIndex{Union{MOI.VariableIndex,
    +                                           MOI.VectorOfVariables}})

    Compute the dual of the constraint of index ci using the ConstraintDual of other constraints and the ConstraintFunction values. Throws an error if some constraints are quadratic or if there is one another MOI.VariableIndex-in-S or MOI.VectorOfVariables-in-S constraint with one of the variables in the function of the constraint ci.

    source

    Function utilities

    The following utilities are available for functions:

    MathOptInterface.Utilities.eval_variablesFunction
    eval_variables(value_fn::Function, f::MOI.AbstractFunction)

    Returns the value of function f if each variable index vi is evaluated as value_fn(vi).

    Note that value_fn must return a Number. See substitute_variables for a similar function where value_fn returns an MOI.AbstractScalarFunction.

    Warning

    The two-argument version of eval_variables is deprecated and may be removed in MOI v2.0.0. Use the three-argument method eval_variables(::Function, ::MOI.ModelLike, ::MOI.AbstractFunction) instead.

    source
    MathOptInterface.Utilities.map_indicesFunction
    map_indices(index_map::Function, attr::MOI.AnyAttribute, x::X)::X where {X}

    Substitute any MOI.VariableIndex (resp. MOI.ConstraintIndex) in x by the MOI.VariableIndex (resp. MOI.ConstraintIndex) of the same type given by index_map(x).

    When to implement this method for new types X

    This function is used by implementations of MOI.copy_to on constraint functions, attribute values and submittable values. If you define a new attribute whose values x::X contain variable or constraint indices, you must also implement this function.

    source
    map_indices(
    +    variable_map::AbstractDict{T,T},
    +    x::X,
    +)::X where {T<:MOI.Index,X}

    Shortcut for map_indices(vi -> variable_map[vi], x).

    source
    MathOptInterface.Utilities.substitute_variablesFunction
    substitute_variables(variable_map::Function, x)

    Substitute any MOI.VariableIndex in x by variable_map(x). The variable_map function returns either MOI.VariableIndex or MOI.ScalarAffineFunction, see eval_variables for a similar function where variable_map returns a number.

    This function is used by bridge optimizers on constraint functions, attribute values and submittable values when at least one variable bridge is used hence it needs to be implemented for custom types that are meant to be used as attribute or submittable value.

    Note

    When implementing a new method, don't use substitute_variables(::Function, because Julia will not specialize on it. Use instead substitute_variables(::F, ...) where {F<:Function}.

    source
    MathOptInterface.Utilities.filter_variablesFunction
    filter_variables(keep::Function, f::AbstractFunction)

    Return a new function f with the variable vi such that !keep(vi) removed.

    WARNING: Don't define filter_variables(::Function, ...) because Julia will not specialize on this. Define instead filter_variables(::F, ...) where {F<:Function}.

    source
    MathOptInterface.Utilities.remove_variableFunction
    remove_variable(f::AbstractFunction, vi::VariableIndex)

    Return a new function f with the variable vi removed.

    source
    remove_variable(
    +    f::MOI.AbstractFunction,
    +    s::MOI.AbstractSet,
    +    vi::MOI.VariableIndex,
    +)

    Return a tuple (g, t) representing the constraint f-in-s with the variable vi removed. That is, the terms containing the variable vi in the function f are removed and the dimension of the set s is updated if needed (e.g. when f is a VectorOfVariables with vi being one of the variables).

    source
    MathOptInterface.Utilities.all_coefficientsFunction
    all_coefficients(p::Function, f::MOI.AbstractFunction)

    Determine whether predicate p returns true for all coefficients of f, returning false as soon as the first coefficient of f for which p returns false is encountered (short-circuiting). Similar to all.

    source
    MathOptInterface.Utilities.unsafe_addFunction
    unsafe_add(t1::MOI.ScalarAffineTerm, t2::MOI.ScalarAffineTerm)

    Sums the coefficients of t1 and t2 and returns an output MOI.ScalarAffineTerm. It is unsafe because it uses the variable of t1 as the variable of the output without checking that it is equal to that of t2.

    source
    unsafe_add(t1::MOI.ScalarQuadraticTerm, t2::MOI.ScalarQuadraticTerm)

    Sums the coefficients of t1 and t2 and returns an output MOI.ScalarQuadraticTerm. It is unsafe because it uses the variable's of t1 as the variable's of the output without checking that they are the same (up to permutation) to those of t2.

    source
    unsafe_add(t1::MOI.VectorAffineTerm, t2::MOI.VectorAffineTerm)

    Sums the coefficients of t1 and t2 and returns an output MOI.VectorAffineTerm. It is unsafe because it uses the output_index and variable of t1 as the output_index and variable of the output term without checking that they are equal to those of t2.

    source
    MathOptInterface.Utilities.isapprox_zeroFunction
    isapprox_zero(f::MOI.AbstractFunction, tol)

    Return a Bool indicating whether the function f is approximately zero using tol as a tolerance.

    Important note

    This function assumes that f does not contain any duplicate terms, you might want to first call canonical if that is not guaranteed. For instance, given

    f = MOI.ScalarAffineFunction(MOI.ScalarAffineTerm.([1, -1], [x, x]), 0)

    then isapprox_zero(f) is false but isapprox_zero(MOIU.canonical(f)) is true.

    source
    MathOptInterface.Utilities.zero_with_output_dimensionFunction
    zero_with_output_dimension(::Type{T}, output_dimension::Integer) where {T}

    Create an instance of type T with the output dimension output_dimension.

    This is mostly useful in Bridges, when code needs to be agnostic to the type of vector-valued function that is passed in.

    source

    The following functions can be used to canonicalize a function:

    MathOptInterface.Utilities.is_canonicalFunction
    is_canonical(f::Union{ScalarAffineFunction, VectorAffineFunction})

    Returns a Bool indicating whether the function is in canonical form. See canonical.

    source
    is_canonical(f::Union{ScalarQuadraticFunction, VectorQuadraticFunction})

    Returns a Bool indicating whether the function is in canonical form. See canonical.

    source
    MathOptInterface.Utilities.canonicalFunction
    canonical(f::MOI.AbstractFunction)

    Returns the function in a canonical form, i.e.

    • A term appear only once.
    • The coefficients are nonzero.
    • The terms appear in increasing order of variable where there the order of the variables is the order of their value.
    • For a AbstractVectorFunction, the terms are sorted in ascending order of output index.

    The output of canonical can be assumed to be a copy of f, even for VectorOfVariables.

    Examples

    If x (resp. y, z) is VariableIndex(1) (resp. 2, 3). The canonical representation of ScalarAffineFunction([y, x, z, x, z], [2, 1, 3, -2, -3], 5) is ScalarAffineFunction([x, y], [-1, 2], 5).

    source
    MathOptInterface.Utilities.canonicalize!Function
    canonicalize!(f::Union{ScalarAffineFunction, VectorAffineFunction})

    Convert a function to canonical form in-place, without allocating a copy to hold the result. See canonical.

    source
    canonicalize!(f::Union{ScalarQuadraticFunction, VectorQuadraticFunction})

    Convert a function to canonical form in-place, without allocating a copy to hold the result. See canonical.

    source

    The following functions can be used to manipulate functions with basic algebra:

    MathOptInterface.Utilities.scalarizeFunction
    scalarize(func::MOI.VectorOfVariables, ignore_constants::Bool = false)

    Returns a vector of scalar functions making up the vector function in the form of a Vector{MOI.SingleVariable}.

    See also eachscalar.

    source
    scalarize(func::MOI.VectorAffineFunction{T}, ignore_constants::Bool = false)

    Returns a vector of scalar functions making up the vector function in the form of a Vector{MOI.ScalarAffineFunction{T}}.

    See also eachscalar.

    source
    scalarize(func::MOI.VectorQuadraticFunction{T}, ignore_constants::Bool = false)

    Returns a vector of scalar functions making up the vector function in the form of a Vector{MOI.ScalarQuadraticFunction{T}}.

    See also eachscalar.

    source
    MathOptInterface.Utilities.promote_operationFunction
    promote_operation(
    +    op::Function,
    +    ::Type{T},
    +    ArgsTypes::Type{<:Union{T,AbstractVector{T},MOI.AbstractFunction}}...,
    +) where {T<:Number}

    Compute the return type of the call operate(op, T, args...), where the types of the arguments args are ArgsTypes.

    One assumption is that the element type T is invariant under each operation. That is, op(::T, ::T)::T where op is a +, -, *, and /.

    There are six methods for which we implement Utilities.promote_operation:

    1. + a. promote_operation(::typeof(+), ::Type{T}, ::Type{F1}, ::Type{F2})
    2. - a. promote_operation(::typeof(-), ::Type{T}, ::Type{F}) b. promote_operation(::typeof(-), ::Type{T}, ::Type{F1}, ::Type{F2})
    3. * a. promote_operation(::typeof(*), ::Type{T}, ::Type{T}, ::Type{F}) b. promote_operation(::typeof(*), ::Type{T}, ::Type{F}, ::Type{T}) c. promote_operation(::typeof(*), ::Type{T}, ::Type{F1}, ::Type{F2}) where F1 and F2 are VariableIndex or ScalarAffineFunction d. promote_operation(::typeof(*), ::Type{T}, ::Type{<:Diagonal{T}}, ::Type{F}
    4. / a. promote_operation(::typeof(/), ::Type{T}, ::Type{F}, ::Type{T})
    5. vcat a. promote_operation(::typeof(vcat), ::Type{T}, ::Type{F}...)
    6. imag a. promote_operation(::typeof(imag), ::Type{T}, ::Type{F}) where F is VariableIndex or VectorOfVariables

    In each case, F (or F1 and F2) is one of the ten supported types, with a restriction that the mathematical operation makes sense, for example, we don't define promote_operation(-, T, F1, F2) where F1 is a scalar-valued function and F2 is a vector-valued function. The ten supported types are:

    1. ::T
    2. ::VariableIndex
    3. ::ScalarAffineFunction{T}
    4. ::ScalarQuadraticFunction{T}
    5. ::ScalarNonlinearFunction
    6. ::AbstractVector{T}
    7. ::VectorOfVariables
    8. ::VectorAffineFunction{T}
    9. ::VectorQuadraticFunction{T}
    10. ::VectorNonlinearFunction
    source
    MathOptInterface.Utilities.operateFunction
    operate(
    +    op::Function,
    +    ::Type{T},
    +    args::Union{T,MOI.AbstractFunction}...,
    +)::MOI.AbstractFunction where {T<:Number}

    Returns an MOI.AbstractFunction representing the function resulting from the operation op(args...) on functions of coefficient type T.

    No argument can be modified.

    Methods

    1. + a. operate(::typeof(+), ::Type{T}, ::F1) b. operate(::typeof(+), ::Type{T}, ::F1, ::F2) c. operate(::typeof(+), ::Type{T}, ::F1...)
    2. - a. operate(::typeof(-), ::Type{T}, ::F) b. operate(::typeof(-), ::Type{T}, ::F1, ::F2)
    3. * a. operate(::typeof(*), ::Type{T}, ::T, ::F) b. operate(::typeof(*), ::Type{T}, ::F, ::T) c. operate(::typeof(*), ::Type{T}, ::F1, ::F2) where F1 and F2 are VariableIndex or ScalarAffineFunction d. operate(::typeof(*), ::Type{T}, ::Diagonal{T}, ::F)
    4. / a. operate(::typeof(/), ::Type{T}, ::F, ::T)
    5. vcat a. operate(::typeof(vcat), ::Type{T}, ::F...)
    6. imag a. operate(::typeof(imag), ::Type{T}, ::F) where F is VariableIndex or VectorOfVariables

    One assumption is that the element type T is invariant under each operation. That is, op(::T, ::T)::T where op is a +, -, *, and /.

    In each case, F (or F1 and F2) is one of the ten supported types, with a restriction that the mathematical operation makes sense, for example, we don't define promote_operation(-, T, F1, F2) where F1 is a scalar-valued function and F2 is a vector-valued function. The ten supported types are:

    1. ::T
    2. ::VariableIndex
    3. ::ScalarAffineFunction{T}
    4. ::ScalarQuadraticFunction{T}
    5. ::ScalarNonlinearFunction
    6. ::AbstractVector{T}
    7. ::VectorOfVariables
    8. ::VectorAffineFunction{T}
    9. ::VectorQuadraticFunction{T}
    10. ::VectorNonlinearFunction
    source
    MathOptInterface.Utilities.operate!Function
    operate!(
    +    op::Function,
    +    ::Type{T},
    +    args::Union{T,MOI.AbstractFunction}...,
    +)::MOI.AbstractFunction where {T<:Number}

    Returns an MOI.AbstractFunction representing the function resulting from the operation op(args...) on functions of coefficient type T.

    The first argument may be modified, in which case the return value is identical to the first argument. For operations which cannot be implemented in-place, this function returns a new object.

    source
    MathOptInterface.Utilities.operate_output_index!Function
    operate_output_index!(
    +    op::Union{typeof(+),typeof(-)},
    +    ::Type{T},
    +    output_index::Integer,
    +    f::Union{AbstractVector{T},MOI.AbstractVectorFunction}
    +    g::Union{T,MOI.AbstractScalarFunction}...
    +) where {T<:Number}

    Return an MOI.AbstractVectorFunction in which the scalar function in row output_index is the result of op(f[output_index], g).

    The functions at output index different to output_index are the same as the functions at the same output index in func. The first argument may be modified.

    Methods

    1. + a. operate_output_index!(+, ::Type{T}, ::Int, ::VectorF, ::ScalarF)
    2. - a. operate_output_index!(-, ::Type{T}, ::Int, ::VectorF, ::ScalarF)
    source
    MathOptInterface.Utilities.vectorizeFunction
    vectorize(x::AbstractVector{<:Number})

    Returns x.

    source
    vectorize(x::AbstractVector{MOI.VariableIndex})

    Returns the vector of scalar affine functions in the form of a MOI.VectorAffineFunction{T}.

    source
    vectorize(funcs::AbstractVector{MOI.ScalarAffineFunction{T}}) where T

    Returns the vector of scalar affine functions in the form of a MOI.VectorAffineFunction{T}.

    source
    vectorize(funcs::AbstractVector{MOI.ScalarQuadraticFunction{T}}) where T

    Returns the vector of scalar quadratic functions in the form of a MOI.VectorQuadraticFunction{T}.

    source

    Constraint utilities

    The following utilities are available for moving the function constant to the set for scalar constraints:

    MathOptInterface.Utilities.shift_constantFunction
    shift_constant(set::MOI.AbstractScalarSet, offset)

    Returns a new scalar set new_set such that func-in-set is equivalent to func + offset-in-new_set.

    Only define this function if it makes sense to!

    Use supports_shift_constant to check if the set supports shifting:

    if supports_shift_constant(typeof(old_set))
    +    new_set = shift_constant(old_set, offset)
    +    f.constant = 0
    +    add_constraint(model, f, new_set)
    +else
    +    add_constraint(model, f, old_set)
    +end

    See also supports_shift_constant.

    Examples

    The call shift_constant(MOI.Interval(-2, 3), 1) is equal to MOI.Interval(-1, 4).

    source
    MathOptInterface.Utilities.normalize_and_add_constraintFunction
    normalize_and_add_constraint(
    +    model::MOI.ModelLike,
    +    func::MOI.AbstractScalarFunction,
    +    set::MOI.AbstractScalarSet;
    +    allow_modify_function::Bool = false,
    +)

    Adds the scalar constraint obtained by moving the constant term in func to the set in model. If allow_modify_function is true then the function func can be modified.

    source

    The following utility identifies those constraints imposing bounds on a given variable, and returns those bound values:

    MathOptInterface.Utilities.get_boundsFunction
    get_bounds(model::MOI.ModelLike, ::Type{T}, x::MOI.VariableIndex)

    Return a tuple (lb, ub) of type Tuple{T, T}, where lb and ub are lower and upper bounds, respectively, imposed on x in model.

    source

    The following utilities are useful when working with symmetric matrix cones.

    Set utilities

    The following utilities are available for sets:

    MathOptInterface.Utilities.ProjectionUpperBoundDistanceType
    ProjectionUpperBoundDistance() <: AbstractDistance

    An upper bound on the minimum distance between point and the closest feasible point in set.

    Definition of distance

    The minimum distance is computed as:

    \[d(x, \mathcal{K}) = \min_{y \in \mathcal{K}} || x - y ||\]

    where $x$ is point and $\mathcal{K}$ is set. The norm is computed as:

    \[||x|| = \sqrt{f(x, x, \mathcal{K})}\]

    where $f$ is Utilities.set_dot.

    In the default case, where the set does not have a specialized method for Utilities.set_dot, the norm is equivalent to the Euclidean norm $||x|| = \sqrt{\sum x_i^2}$.

    Why an upper bound?

    In most cases, distance_to_set should return the smallest upper bound, but it may return a larger value if the smallest upper bound is expensive to compute.

    For example, given an epigraph from of a conic set, $\{(t, x) | f(x) \le t\}$, it may be simpler to return $\delta$ such that $f(x) \le t + \delta$, rather than computing the nearest projection onto the set.

    If the distance is not the smallest upper bound, the docstring of the appropriate distance_to_set method must describe the way that the distance is computed.

    source
    MathOptInterface.Utilities.distance_to_setFunction
    distance_to_set(
    +    [d::AbstractDistance = ProjectionUpperBoundDistance()],]
    +    point::T,
    +    set::MOI.AbstractScalarSet,
    +) where {T}
    +
    +distance_to_set(
    +    [d::AbstractDistance = ProjectionUpperBoundDistance(),]
    +    point::AbstractVector{T},
    +    set::MOI.AbstractVectorSet,
    +) where {T}

    Compute the distance between point and set using the distance metric d. If point is in the set set, this function must return zero(T).

    If d is omitted, the default distance is Utilities.ProjectionUpperBoundDistance.

    source
    MathOptInterface.Utilities.set_dotFunction
    set_dot(x::AbstractVector, y::AbstractVector, set::AbstractVectorSet)

    Return the scalar product between a vector x of the set set and a vector y of the dual of the set s.

    source
    set_dot(x, y, set::AbstractScalarSet)

    Return the scalar product between a number x of the set set and a number y of the dual of the set s.

    source

    DoubleDicts

    MathOptInterface.Utilities.DoubleDicts.DoubleDictType
    DoubleDict{V}

    An optimized dictionary to map MOI.ConstraintIndex to values of type V.

    Works as a AbstractDict{MOI.ConstraintIndex,V} with minimal differences.

    If V is also a MOI.ConstraintIndex, use IndexDoubleDict.

    Note that MOI.ConstraintIndex is not a concrete type, opposed to MOI.ConstraintIndex{MOI.VariableIndex, MOI.Integers}, which is a concrete type.

    When looping through multiple keys of the same Function-in-Set type, use

    inner = dict[F, S]

    to return a type-stable DoubleDictInner.

    source
    MathOptInterface.Utilities.DoubleDicts.outer_keysFunction
    outer_keys(d::AbstractDoubleDict)

    Return an iterator over the outer keys of the AbstractDoubleDict d. Each outer key is a Tuple{Type,Type} so that a double loop can be easily used:

    for (F, S) in DoubleDicts.outer_keys(dict)
    +    for (k, v) in dict[F, S]
    +        # ...
    +    end
    +end

    For performance, it is recommended that the inner loop lies in a separate function to gurantee type-stability. Some outer keys (F, S) might lead to an empty dict[F, S]. If you want only nonempty dict[F, S], use nonempty_outer_keys.

    source
    MathOptInterface.Utilities.DoubleDicts.nonempty_outer_keysFunction
    nonempty_outer_keys(d::AbstractDoubleDict)

    Return a vector of outer keys of the AbstractDoubleDict d.

    Only outer keys that have a nonempty set of inner keys will be returned.

    Each outer key is a Tuple{Type,Type} so that a double loop can be easily used

    for (F, S) in DoubleDicts.nonempty_outer_keys(dict)
    +    for (k, v) in dict[F, S]
    +        # ...
    +    end
    +end
    +For performance, it is recommended that the inner loop lies in a separate
    +function to gurantee type-stability.
    +
    +If you want an iterator of all current outer keys, use [`outer_keys`](@ref).
    source
    diff --git a/previews/PR3545/moi/tutorials/bridging_constraint/index.html b/previews/PR3545/moi/tutorials/bridging_constraint/index.html new file mode 100644 index 00000000000..ac2fdef2138 --- /dev/null +++ b/previews/PR3545/moi/tutorials/bridging_constraint/index.html @@ -0,0 +1,106 @@ + +Implementing a constraint bridge · JuMP

    Implementing a constraint bridge

    This guide outlines the basic steps to create a new bridge from a constraint expressed in the formalism Function-in-Set.

    Preliminaries

    First, decide on the set you want to bridge. Then, study its properties: the most important one is whether the set is scalar or vector, which impacts the dimensionality of the functions that can be used with the set.

    • A scalar function only has one dimension. MOI defines three types of scalar functions: a variable (VariableIndex), an affine function (ScalarAffineFunction), or a quadratic function (ScalarQuadraticFunction).
    • A vector function has several dimensions (at least one). MOI defines three types of vector functions: several variables (VectorOfVariables), an affine function (VectorAffineFunction), or a quadratic function (VectorQuadraticFunction). The main difference with scalar functions is that the order of dimensions can be very important: for instance, in an indicator constraint (Indicator), the first dimension indicates whether the constraint about the second dimension is active.

    To explain how to implement a bridge, we present the example of Bridges.Constraint.FlipSignBridge. This bridge maps <= (LessThan) constraints to >= (GreaterThan) constraints. This corresponds to reversing the sign of the inequality. We focus on scalar affine functions (we disregard the cases of a single variable or of quadratic functions). This example is a simplified version of the code included in MOI.

    Four mandatory parts in a constraint bridge

    The first part of a constraint bridge is a new concrete subtype of Bridges.Constraint.AbstractBridge. This type must have fields to store all the new variables and constraints that the bridge will add. Typically, these types are parametrized by the type of the coefficients in the model.

    Then, three sets of functions must be defined:

    1. Bridges.Constraint.bridge_constraint: this function implements the bridge and creates the required variables and constraints.
    2. supports_constraint: these functions must return true when the combination of function and set is supported by the bridge. By default, the base implementation always returns false and the bridge does not have to provide this implementation.
    3. Bridges.added_constrained_variable_types and Bridges.added_constraint_types: these functions return the types of variables and constraints that this bridge adds. They are used to compute the set of other bridges that are required to use the one you are defining, if need be.

    More functions can be implemented, for instance to retrieve properties from the bridge or deleting a bridged constraint.

    1. Structure for the bridge

    A typical struct behind a bridge depends on the type of the coefficients that are used for the model (typically Float64, but coefficients might also be integers or complex numbers).

    This structure must hold a reference to all the variables and the constraints that are created as part of the bridge.

    The type of this structure is used throughout MOI as an identifier for the bridge. It is passed as argument to most functions related to bridges.

    The best practice is to have the name of this type end with Bridge.

    In our example, the bridge maps any ScalarAffineFunction{T}-in-LessThan{T} constraint to a single ScalarAffineFunction{T}-in-GreaterThan{T} constraint. The affine function has coefficients of type T. The bridge is parametrized with T, so that the constraint that the bridge creates also has coefficients of type T.

    struct SignBridge{T<:Number} <: Bridges.Constraint.AbstractBridge
    +    constraint::ConstraintIndex{ScalarAffineFunction{T}, GreaterThan{T}}
    +end

    2. Bridge creation

    The function Bridges.Constraint.bridge_constraint is called whenever the bridge is instantiated for a specific model, with the given function and set. The arguments to bridge_constraint are similar to add_constraint, with the exception of the first argument: it is the Type of the struct defined in the first step (for our example, Type{SignBridge{T}}).

    bridge_constraint returns an instance of the struct defined in the first step. the first step.

    In our example, the bridge constraint could be defined as:

    function Bridges.Constraint.bridge_constraint(
    +    ::Type{SignBridge{T}}, # Bridge to use.
    +    model::ModelLike, # Model to which the constraint is being added.
    +    f::ScalarAffineFunction{T}, # Function to rewrite.
    +    s::LessThan{T}, # Set to rewrite.
    +) where {T}
    +    # Create the variables and constraints required for the bridge.
    +    con = add_constraint(model, -f, GreaterThan(-s.upper))
    +
    +    # Return an instance of the bridge type with a reference to all the
    +    # variables and constraints that were created in this function.
    +    return SignBridge(con)
    +end

    3. Supported constraint types

    The function supports_constraint determines whether the bridge type supports a given combination of function and set.

    This function must closely match bridge_constraint, because it will not be called if supports_constraint returns false.

    function supports_constraint(
    +    ::Type{SignBridge{T}}, # Bridge to use.
    +    ::Type{ScalarAffineFunction{T}}, # Function to rewrite.
    +    ::Type{LessThan{T}}, # Set to rewrite.
    +) where {T}
    +    # Do some computation to ensure that the constraint is supported.
    +    # Typically, you can directly return true.
    +    return true
    +end

    4. Metadata about the bridge

    To determine whether a bridge can be used, MOI uses a shortest-path algorithm that uses the variable types and the constraints that the bridge can create. This information is communicated from the bridge to MOI using the functions Bridges.added_constrained_variable_types and Bridges.added_constraint_types. Both return lists of tuples: either a list of 1-tuples containing the variable types (typically, ZeroOne or Integer) or a list of 2-tuples contained the functions and sets (like ScalarAffineFunction{T}-GreaterThan).

    For our example, the bridge does not create any constrained variables, and only ScalarAffineFunction{T}-in-GreaterThan{T} constraints:

    function Bridges.added_constrained_variable_types(::Type{SignBridge{T}}) where {T}
    +    # The bridge does not create variables, return an empty list of tuples:
    +    return Tuple{Type}[]
    +end
    +
    +function Bridges.added_constraint_types(::Type{SignBridge{T}}) where {T}
    +    return Tuple{Type,Type}[
    +        # One element per F-in-S the bridge creates.
    +        (ScalarAffineFunction{T}, GreaterThan{T}),
    +    ]
    +end

    A bridge that creates binary variables would rather have this definition of added_constrained_variable_types:

    function Bridges.added_constrained_variable_types(::Type{SomeBridge{T}}) where {T}
    +    # The bridge only creates binary variables:
    +    return Tuple{Type}[(ZeroOne,)]
    +end
    Warning

    If you declare the creation of constrained variables in added_constrained_variable_types, the corresponding constraint type VariableIndex must not be indicated in added_constraint_types. This would restrict the use of the bridge to solvers that can add such a constraint after the variable is created.

    More concretely, if you declare in added_constrained_variable_types that your bridge creates binary variables (ZeroOne), and if you never add such a constraint afterward (you do not call add_constraint(model, var, ZeroOne())), then you must not list (VariableIndex, ZeroOne) in added_constraint_types.

    Typically, the function Bridges.Constraint.concrete_bridge_type does not have to be defined for most bridges.

    Bridge registration

    For a bridge to be used by MOI, it must be known by MOI.

    SingleBridgeOptimizer

    The first way to do so is to create a single-bridge optimizer. This type of optimizer wraps another optimizer and adds the possibility to use only one bridge. It is especially useful when unit testing bridges.

    It is common practice to use the same name as the type defined for the bridge (SignBridge, in our example) without the suffix Bridge.

    const Sign{T,OT<: ModelLike} =
    +    SingleBridgeOptimizer{SignBridge{T}, OT}

    In the context of unit tests, this bridge is used in conjunction with a Utilities.MockOptimizer:

    mock = Utilities.MockOptimizer(
    +    Utilities.UniversalFallback(Utilities.Model{Float64}()),
    +)
    +bridged_mock = Sign{Float64}(mock)

    New bridge for a LazyBridgeOptimizer

    Typical user-facing models for MOI are based on Bridges.LazyBridgeOptimizer. For instance, this type of model is returned by Bridges.full_bridge_optimizer. These models can be added more bridges by using Bridges.add_bridge:

    inner_optimizer = Utilities.Model{Float64}()
    +optimizer = Bridges.full_bridge_optimizer(inner_optimizer, Float64)
    +Bridges.add_bridge(optimizer, SignBridge{Float64})

    Bridge improvements

    Attribute retrieval

    Like models, bridges have attributes that can be retrieved using get and set. The most important ones are the number of variables and constraints, but also the lists of variables and constraints.

    In our example, we only have one constraint and only have to implement the NumberOfConstraints and ListOfConstraintIndices attributes:

    function get(
    +    ::SignBridge{T},
    +    ::NumberOfConstraints{
    +        ScalarAffineFunction{T},
    +        GreaterThan{T},
    +    },
    +) where {T}
    +    return 1
    +end
    +
    +function get(
    +    bridge::SignBridge{T},
    +    ::ListOfConstraintIndices{
    +        ScalarAffineFunction{T},
    +        GreaterThan{T},
    +    },
    +) where {T}
    +    return [bridge.constraint]
    +end

    You must implement one such pair of functions for each type of constraint the bridge adds to the model.

    Warning

    Avoid returning a list from the bridge object without copying it. Users must be able to change the contents of the returned list without altering the bridge object.

    For variables, the situation is simpler. If your bridge creates new variables, you must implement the NumberOfVariables and ListOfVariableIndices attributes. However, these attributes do not have parameters, unlike their constraint counterparts. Only two functions suffice:

    function get(
    +    ::SignBridge{T},
    +    ::NumberOfVariables,
    +) where {T}
    +    return 0
    +end
    +
    +function get(
    +    ::SignBridge{T},
    +    ::ListOfVariableIndices,
    +) where {T}
    +    return VariableIndex[]
    +end

    In order for the user to be able to access the function and set of the original constraint, the bridge needs to implement getters for the ConstraintFunction and ConstraintSet attributes:

    function get(
    +    model::MOI.ModelLike,
    +    attr::MOI.ConstraintFunction,
    +    bridge::SignBridge,
    +)
    +    return -MOI.get(model, attr, bridge.constraint)
    +end
    +
    +function get(
    +    model::MOI.ModelLike,
    +    attr::MOI.ConstraintSet,
    +    bridge::SignBridge,
    +)
    +    set = MOI.get(model, attr, bridge.constraint)
    +    return MOI.LessThan(-set.lower)
    +end
    Warning

    Alternatively, one could store the original function and set in SignBridge during Bridges.Constraint.bridge_constraint to make these getters simpler and more efficient. On the other hand, this will increase the memory footprint of the bridges as the garbage collector won't be able to delete that object. The convention is to not store the function in the bridge and not care too much about the efficiency of these getters. If the user needs efficient getters for ConstraintFunction then they should use a Utilities.CachingOptimizer.

    Model modifications

    To avoid copying the model when the user request to change a constraint, MOI provides modify. Bridges can also implement this API to allow certain changes, such as coefficient changes.

    In our case, a modification of a coefficient in the original constraint (for example, replacing the value of the coefficient of a variable in the affine function) must be transmitted to the constraint created by the bridge, but with a sign change.

    function modify(
    +    model::ModelLike,
    +    bridge::SignBridge,
    +    change::ScalarCoefficientChange,
    +)
    +    modify(
    +        model,
    +        bridge.constraint,
    +        ScalarCoefficientChange(change.variable, -change.new_coefficient),
    +    )
    +    return
    +end

    Bridge deletion

    When a bridge is deleted, the constraints it added must be deleted too.

    function delete(model::ModelLike, bridge::SignBridge)
    +    delete(model, bridge.constraint)
    +    return
    +end
    diff --git a/previews/PR3545/moi/tutorials/example/index.html b/previews/PR3545/moi/tutorials/example/index.html new file mode 100644 index 00000000000..3fc171d449a --- /dev/null +++ b/previews/PR3545/moi/tutorials/example/index.html @@ -0,0 +1,49 @@ + +Solving a problem using MathOptInterface · JuMP

    Solving a problem using MathOptInterface

    In this tutorial we demonstrate how to use MathOptInterface to solve the binary-constrained knapsack problem:

    \[\begin{aligned} +\max \; & c^\top x \\ +s.t. \; & w^\top x \le C \\ + & x_i \in \{0,1\},\quad \forall i=1,\ldots,n +\end{aligned}\]

    Required packages

    Load the MathOptInterface module and define the shorthand MOI:

    import MathOptInterface as MOI

    As an optimizer, we choose GLPK:

    using GLPK
    +optimizer = GLPK.Optimizer()

    Define the data

    We first define the constants of the problem:

    julia> c = [1.0, 2.0, 3.0]
    +3-element Vector{Float64}:
    + 1.0
    + 2.0
    + 3.0
    +
    +julia> w = [0.3, 0.5, 1.0]
    +3-element Vector{Float64}:
    + 0.3
    + 0.5
    + 1.0
    +
    +julia> C = 3.2
    +3.2

    Add the variables

    julia> x = MOI.add_variables(optimizer, length(c));

    Set the objective

    julia> MOI.set(
    +           optimizer,
    +           MOI.ObjectiveFunction{MOI.ScalarAffineFunction{Float64}}(),
    +           MOI.ScalarAffineFunction(MOI.ScalarAffineTerm.(c, x), 0.0),
    +       );
    +
    +julia> MOI.set(optimizer, MOI.ObjectiveSense(), MOI.MAX_SENSE)
    Tip

    MOI.ScalarAffineTerm.(c, x) is a shortcut for [MOI.ScalarAffineTerm(c[i], x[i]) for i = 1:3]. This is Julia's broadcast syntax in action, and is used quite often throughout MOI.

    Add the constraints

    We add the knapsack constraint and integrality constraints:

    julia> MOI.add_constraint(
    +           optimizer,
    +           MOI.ScalarAffineFunction(MOI.ScalarAffineTerm.(w, x), 0.0),
    +           MOI.LessThan(C),
    +       );

    Add integrality constraints:

    julia> for x_i in x
    +           MOI.add_constraint(optimizer, x_i, MOI.ZeroOne())
    +       end

    Optimize the model

    julia> MOI.optimize!(optimizer)

    Understand why the solver stopped

    The first thing to check after optimization is why the solver stopped, for example, did it stop because of a time limit or did it stop because it found the optimal solution?

    julia> MOI.get(optimizer, MOI.TerminationStatus())
    +OPTIMAL::TerminationStatusCode = 1

    Looks like we found an optimal solution.

    Understand what solution was returned

    julia> MOI.get(optimizer, MOI.ResultCount())
    +1
    +
    +julia> MOI.get(optimizer, MOI.PrimalStatus())
    +FEASIBLE_POINT::ResultStatusCode = 1
    +
    +julia> MOI.get(optimizer, MOI.DualStatus())
    +NO_SOLUTION::ResultStatusCode = 0

    Query the objective

    What is its objective value?

    julia> MOI.get(optimizer, MOI.ObjectiveValue())
    +6.0

    Query the primal solution

    And what is the value of the variables x?

    julia> MOI.get(optimizer, MOI.VariablePrimal(), x)
    +3-element Vector{Float64}:
    + 1.0
    + 1.0
    + 1.0
    diff --git a/previews/PR3545/moi/tutorials/implementing/index.html b/previews/PR3545/moi/tutorials/implementing/index.html new file mode 100644 index 00000000000..38d7a409e6a --- /dev/null +++ b/previews/PR3545/moi/tutorials/implementing/index.html @@ -0,0 +1,118 @@ + +Implementing a solver interface · JuMP

    Implementing a solver interface

    This guide outlines the basic steps to implement an interface to MathOptInterface for a new solver.

    Danger

    Implementing an interface to MathOptInterface for a new solver is a lot of work. Before starting, we recommend that you join the Developer chatroom and explain a little bit about the solver you are wrapping. If you have questions that are not answered by this guide, please ask them in the Developer chatroom so we can improve this guide.

    A note on the API

    The API of MathOptInterface is large and varied. In order to support the diversity of solvers and use-cases, we make heavy use of duck-typing. That is, solvers are not expected to implement the full API, nor is there a well-defined minimal subset of what must be implemented. Instead, you should implement the API as necessary to make the solver function as you require.

    The main reason for using duck-typing is that solvers work in different ways and target different use-cases.

    For example:

    • Some solvers support incremental problem construction, support modification after a solve, and have native support for things like variable names.
    • Other solvers are "one-shot" solvers that require all of the problem data to construct and solve the problem in a single function call. They do not support modification or things like variable names.
    • Other "solvers" are not solvers at all, but things like file readers. These may only support functions like read_from_file, and may not even support the ability to add variables or constraints directly.
    • Finally, some "solvers" are layers which take a problem as input, transform it according to some rules, and pass the transformed problem to an inner solver.

    Preliminaries

    Before starting on your wrapper, you should do some background research and make the solver accessible via Julia.

    Decide if MathOptInterface is right for you

    The first step in writing a wrapper is to decide whether implementing an interface is the right thing to do.

    MathOptInterface is an abstraction layer for unifying constrained mathematical optimization solvers. If your solver doesn't fit in the category, for example, it implements a derivative-free algorithm for unconstrained objective functions, MathOptInterface may not be the right tool for the job.

    Tip

    If you're not sure whether you should write an interface, ask in the Developer chatroom.

    Find a similar solver already wrapped

    The next step is to find (if possible) a similar solver that is already wrapped. Although not strictly necessary, this will be a good place to look for inspiration when implementing your wrapper.

    The JuMP documentation has a good list of solvers, along with the problem classes they support.

    Tip

    If you're not sure which solver is most similar, ask in the Developer chatroom.

    Create a low-level interface

    Before writing a MathOptInterface wrapper, you first need to be able to call the solver from Julia.

    Wrapping solvers written in Julia

    If your solver is written in Julia, there's nothing to do here. Go to the next section.

    Wrapping solvers written in C

    Julia is well suited to wrapping solvers written in C.

    Info

    This is not true for C++. If you have a solver written in C++, first write a C interface, then wrap the C interface.

    Before writing a MathOptInterface wrapper, there are a few extra steps.

    Create a JLL

    If the C code is publicly available under an open source license, create a JLL package via Yggdrasil. The easiest way to do this is to copy an existing solver. Good examples to follow are the COIN-OR solvers.

    Warning

    Building the solver via Yggdrasil is non-trivial. Please ask the Developer chatroom for help.

    If the code is commercial or not publicly available, the user will need to manually install the solver. See Gurobi.jl or CPLEX.jl for examples of how to structure this.

    Use Clang.jl to wrap the C API

    The next step is to use Clang.jl to automatically wrap the C API. The easiest way to do this is to follow an example. Good examples to follow are Cbc.jl and HiGHS.jl.

    Sometimes, you will need to make manual modifications to the resulting files.

    Solvers written in other languages

    Ask the Developer chatroom for advice. You may be able to use one of the JuliaInterop packages to call out to the solver.

    For example, SeDuMi.jl uses MATLAB.jl to call the SeDuMi solver written in MATLAB.

    Structuring the package

    Structure your wrapper as a Julia package. Consult the Julia documentation if you haven't done this before.

    MOI solver interfaces may be in the same package as the solver itself (either the C wrapper if the solver is accessible through C, or the Julia code if the solver is written in Julia, for example), or in a separate package which depends on the solver package.

    Note

    The JuMP core contributors request that you do not use "JuMP" in the name of your package without prior consent.

    Your package should have the following structure:

    /.github
    +    /workflows
    +        ci.yml
    +        format_check.yml
    +        TagBot.yml
    +/gen
    +    gen.jl  # Code to wrap the C API
    +/src
    +    NewSolver.jl
    +    /gen
    +        libnewsolver_api.jl
    +        libnewsolver_common.jl
    +    /MOI_wrapper
    +        MOI_wrapper.jl
    +        other_files.jl
    +/test
    +    runtests.jl
    +    /MOI_wrapper
    +        MOI_wrapper.jl
    +.gitignore
    +.JuliaFormatter.toml
    +README.md
    +LICENSE.md
    +Project.toml
    • The /.github folder contains the scripts for GitHub actions. The easiest way to write these is to copy the ones from an existing solver.
    • The /gen and /src/gen folders are only needed if you are wrapping a solver written in C.
    • The /src/MOI_wrapper folder contains the Julia code for the MOI wrapper.
    • The /test folder contains code for testing your package. See Setup tests for more information.
    • The .JuliaFormatter.toml and .github/workflows/format_check.yml enforce code formatting using JuliaFormatter.jl. Check existing solvers or JuMP.jl for details.

    Documentation

    Your package must include documentation explaining how to use the package. The easiest approach is to include documentation in your README.md. A more involved option is to use Documenter.jl.

    Examples of packages with README-based documentation include:

    Examples of packages with Documenter-based documentation include:

    Setup tests

    The best way to implement an interface to MathOptInterface is via test-driven development.

    The MOI.Test submodule contains a large test suite to help check that you have implemented things correctly.

    Follow the guide How to test a solver to set up the tests for your package.

    Tip

    Run the tests frequently when developing. However, at the start there is going to be a lot of errors. Start by excluding large classes of tests (for example, exclude = ["test_basic_", "test_model_"], implement any missing methods until the tests pass, then remove an exclusion and repeat.

    Initial code

    By this point, you should have a package setup with tests, formatting, and access to the underlying solver. Now it's time to start writing the wrapper.

    The Optimizer object

    The first object to create is a subtype of AbstractOptimizer. This type is going to store everything related to the problem.

    By convention, these optimizers should not be exported and should be named PackageName.Optimizer.

    import MathOptInterface as MOI
    +
    +struct Optimizer <: MOI.AbstractOptimizer
    +    # Fields go here
    +end

    Optimizer objects for C solvers

    Warning

    This section is important if you wrap a solver written in C.

    Wrapping a solver written in C will require the use of pointers, and for you to manually free the solver's memory when the Optimizer is garbage collected by Julia.

    Never pass a pointer directly to a Julia ccall function.

    Instead, store the pointer as a field in your Optimizer, and implement Base.cconvert and Base.unsafe_convert. Then you can pass Optimizer to any ccall function that expects the pointer.

    In addition, make sure you implement a finalizer for each model you create.

    If newsolver_createProblem() is the low-level function that creates the problem pointer in C, and newsolver_freeProblem(::Ptr{Cvoid}) is the low-level function that frees memory associated with the pointer, your Optimizer() function should look like this:

    struct Optimizer <: MOI.AbstractOptimizer
    +    ptr::Ptr{Cvoid}
    +
    +    function Optimizer()
    +        ptr = newsolver_createProblem()
    +        model = Optimizer(ptr)
    +        finalizer(model) do m
    +            newsolver_freeProblem(m)
    +            return
    +        end
    +        return model
    +    end
    +end
    +
    +Base.cconvert(::Type{Ptr{Cvoid}}, model::Optimizer) = model
    +Base.unsafe_convert(::Type{Ptr{Cvoid}}, model::Optimizer) = model.ptr

    Implement methods for Optimizer

    All Optimizers must implement the following methods:

    Other methods, detailed below, are optional or depend on how you implement the interface.

    Tip

    For this and all future methods, read the docstrings to understand what each method does, what it expects as input, and what it produces as output. If it isn't clear, let us know and we will improve the docstrings. It is also very helpful to look at an existing wrapper for a similar solver.

    You should also implement Base.show(::IO, ::Optimizer) to print a nice string when someone prints your model. For example

    function Base.show(io::IO, model::Optimizer)
    +    return print(io, "NewSolver with the pointer $(model.ptr)")
    +end

    Implement attributes

    MathOptInterface uses attributes to manage different aspects of the problem.

    For each attribute

    • get gets the current value of the attribute
    • set sets a new value of the attribute. Not all attributes can be set. For example, the user can't modify the SolverName.
    • supports returns a Bool indicating whether the solver supports the attribute.
    Info

    Use attribute_value_type to check the value expected by a given attribute. You should make sure that your get function correctly infers to this type (or a subtype of it).

    Each column in the table indicates whether you need to implement the particular method for each attribute.

    Attributegetsetsupports
    SolverNameYesNoNo
    SolverVersionYesNoNo
    RawSolverYesNoNo
    NameYesYesYes
    SilentYesYesYes
    TimeLimitSecYesYesYes
    ObjectiveLimitYesYesYes
    RawOptimizerAttributeYesYesYes
    NumberOfThreadsYesYesYes
    AbsoluteGapToleranceYesYesYes
    RelativeGapToleranceYesYesYes

    For example:

    function MOI.get(model::Optimizer, ::MOI.Silent)
    +    return # true if MOI.Silent is set
    +end
    +
    +function MOI.set(model::Optimizer, ::MOI.Silent, v::Bool)
    +    if v
    +        # Set a parameter to turn off printing
    +    else
    +        # Restore the default printing
    +    end
    +    return
    +end
    +
    +MOI.supports(::Optimizer, ::MOI.Silent) = true

    Define supports_constraint

    The next step is to define which constraints and objective functions you plan to support.

    For each function-set constraint pair, define supports_constraint:

    function MOI.supports_constraint(
    +    ::Optimizer,
    +    ::Type{MOI.VariableIndex},
    +    ::Type{MOI.ZeroOne},
    +)
    +    return true
    +end

    To make this easier, you may want to use Unions:

    function MOI.supports_constraint(
    +    ::Optimizer,
    +    ::Type{MOI.VariableIndex},
    +    ::Type{<:Union{MOI.LessThan,MOI.GreaterThan,MOI.EqualTo}},
    +)
    +    return true
    +end
    Tip

    Only support a constraint if your solver has native support for it.

    The big decision: incremental modification?

    Now you need to decide whether to support incremental modification or not.

    Incremental modification means that the user can add variables and constraints one-by-one without needing to rebuild the entire problem, and they can modify the problem data after an optimize! call. Supporting incremental modification means implementing functions like add_variable and add_constraint.

    The alternative is to accept the problem data in a single optimize! or copy_to function call. Because these functions see all of the data at once, it can typically call a more efficient function to load data into the underlying solver.

    Good examples of solvers supporting incremental modification are MILP solvers like GLPK.jl and Gurobi.jl. Examples of non-incremental solvers are AmplNLWriter.jl and SCS.jl

    It is possible for a solver to implement both approaches, but you should probably start with one for simplicity.

    Tip

    Only support incremental modification if your solver has native support for it.

    In general, supporting incremental modification is more work, and it usually requires some extra book-keeping. However, it provides a more efficient interface to the solver if the problem is going to be resolved multiple times with small modifications. Moreover, once you've implemented incremental modification, it's usually not much extra work to add a copy_to interface. The converse is not true.

    Tip

    If this is your first time writing an interface, start with the one-shot optimize!.

    The non-incremental interface

    There are two ways to implement the non-incremental interface. The first uses a two-argument version of optimize!, the second implements copy_to followed by the one-argument version of optimize!.

    If your solver does not support modification, and requires all data to solve the problem in a single function call, you should implement the "one-shot" optimize!.

    If your solver separates data loading and the actual optimization into separate steps, implement the copy_to interface.

    The incremental interface

    Warning

    Writing this interface is a lot of work. The easiest way is to consult the source code of a similar solver.

    To implement the incremental interface, implement the following functions:

    Info

    Solvers do not have to support AbstractScalarFunction in GreaterThan, LessThan, EqualTo, or Interval with a nonzero constant in the function. Throw ScalarFunctionConstantNotZero if the function constant is not zero.

    In addition, you should implement the following model attributes:

    Attributegetsetsupports
    ListOfModelAttributesSetYesNoNo
    ObjectiveFunctionTypeYesNoNo
    ObjectiveFunctionYesYesYes
    ObjectiveSenseYesYesYes
    NameYesYesYes

    Variable-related attributes:

    Attributegetsetsupports
    ListOfVariableAttributesSetYesNoNo
    NumberOfVariablesYesNoNo
    ListOfVariableIndicesYesNoNo

    Constraint-related attributes:

    Attributegetsetsupports
    ListOfConstraintAttributesSetYesNoNo
    NumberOfConstraintsYesNoNo
    ListOfConstraintTypesPresentYesNoNo
    ConstraintFunctionYesYesNo
    ConstraintSetYesYesNo

    Modifications

    If your solver supports modifying data in-place, implement modify for the following AbstractModifications:

    Variables constrained on creation

    Some solvers require variables be associated with a set when they are created. This conflicts with the incremental modification approach, since you cannot first add a free variable and then constrain it to the set.

    If this is the case, implement:

    By default, MathOptInterface assumes solvers support free variables. If your solver does not support free variables, define:

    MOI.supports_add_constrained_variables(::Optimizer, ::Type{Reals}) = false

    Incremental and copy_to

    If you implement the incremental interface, you have the option of also implementing copy_to.

    If you don't want to implement copy_to, for example, because the solver has no API for building the problem in a single function call, define the following fallback:

    MOI.supports_incremental_interface(::Optimizer) = true
    +
    +function MOI.copy_to(dest::Optimizer, src::MOI.ModelLike)
    +    return MOI.Utilities.default_copy_to(dest, src)
    +end

    Names

    Regardless of which interface you implement, you have the option of implementing the Name attribute for variables and constraints:

    Attributegetsetsupports
    VariableNameYesYesYes
    ConstraintNameYesYesYes

    If you implement names, you must also implement the following three methods:

    function MOI.get(model::Optimizer, ::Type{MOI.VariableIndex}, name::String)
    +    return # The variable named `name`.
    +end
    +
    +function MOI.get(model::Optimizer, ::Type{MOI.ConstraintIndex}, name::String)
    +    return # The constraint any type named `name`.
    +end
    +
    +function MOI.get(
    +    model::Optimizer,
    +    ::Type{MOI.ConstraintIndex{F,S}},
    +    name::String,
    +) where {F,S}
    +    return # The constraint of type F-in-S named `name`.
    +end

    These methods have the following rules:

    • If there is no variable or constraint with the name, return nothing
    • If there is a single variable or constraint with that name, return the variable or constraint
    • If there are multiple variables or constraints with the name, throw an error.
    Warning

    You should not implement ConstraintName for VariableIndex constraints. If you implement ConstraintName for other constraints, you can add the following two methods to disable ConstraintName for VariableIndex constraints.

    function MOI.supports(
    +    ::Optimizer,
    +    ::MOI.ConstraintName,
    +    ::Type{<:MOI.ConstraintIndex{MOI.VariableIndex,<:MOI.AbstractScalarSet}},
    +)
    +    return throw(MOI.VariableIndexConstraintNameError())
    +end
    +function MOI.set(
    +    ::Optimizer,
    +    ::MOI.ConstraintName,
    +    ::MOI.ConstraintIndex{MOI.VariableIndex,<:MOI.AbstractScalarSet},
    +    ::String,
    +)
    +    return throw(MOI.VariableIndexConstraintNameError())
    +end

    Solutions

    Implement optimize! to solve the model:

    All Optimizers must implement the following attributes:

    Info

    You only need to implement get for solution attributes. Don't implement set or supports.

    Note

    Solver wrappers should document how the low-level statuses map to the MOI statuses. Statuses like NEARLY_FEASIBLE_POINT and INFEASIBLE_POINT, are designed to be used when the solver explicitly indicates that relaxed tolerances are satisfied or the returned point is infeasible, respectively.

    You should also implement the following attributes:

    Tip

    Attributes like VariablePrimal and ObjectiveValue are indexed by the result count. Use MOI.check_result_index_bounds(model, attr) to throw an error if the attribute is not available.

    If your solver returns dual solutions, implement:

    For integer solvers, implement:

    If applicable, implement:

    If your solver uses the Simplex method, implement:

    If your solver accepts primal or dual warm-starts, implement:

    Other tips

    Here are some other points to be aware of when writing your wrapper.

    Unsupported constraints at runtime

    In some cases, your solver may support a particular type of constraint (for example, quadratic constraints), but only if the data meets some condition (for example, it is convex).

    In this case, declare that you support the constraint, and throw AddConstraintNotAllowed.

    Dealing with multiple variable bounds

    MathOptInterface uses VariableIndex constraints to represent variable bounds. Defining multiple variable bounds on a single variable is not allowed.

    Throw LowerBoundAlreadySet or UpperBoundAlreadySet if the user adds a constraint that results in multiple bounds.

    Only throw if the constraints conflict. It is okay to add VariableIndex-in-GreaterThan and then VariableIndex-in-LessThan, but not VariableIndex-in-Interval and then VariableIndex-in-LessThan,

    Expect duplicate coefficients

    Solvers must expect that functions such as ScalarAffineFunction and VectorQuadraticFunction may contain duplicate coefficients.

    For example, ScalarAffineFunction([ScalarAffineTerm(x, 1), ScalarAffineTerm(x, 1)], 0.0).

    Use Utilities.canonical to return a new function with the duplicate coefficients aggregated together.

    Don't modify user-data

    All data passed to the solver must be copied immediately to internal data structures. Solvers may not modify any input vectors and must assume that input vectors will not be modified by users in the future.

    This applies, for example, to the terms vector in ScalarAffineFunction. Vectors returned to the user, for example, via ObjectiveFunction or ConstraintFunction attributes, must not be modified by the solver afterwards. The in-place version of get! can be used by users to avoid extra copies in this case.

    Column Generation

    There is no special interface for column generation. If the solver has a special API for setting coefficients in existing constraints when adding a new variable, it is possible to queue modifications and new variables and then call the solver's API once all of the new coefficients are known.

    Solver-specific attributes

    You don't need to restrict yourself to the attributes defined in the MathOptInterface.jl package.

    Solver-specific attributes should be specified by creating an appropriate subtype of AbstractModelAttribute, AbstractOptimizerAttribute, AbstractVariableAttribute, or AbstractConstraintAttribute.

    For example, Gurobi.jl adds attributes for multiobjective optimization by defining:

    struct NumberOfObjectives <: MOI.AbstractModelAttribute end
    +
    +function MOI.set(model::Optimizer, ::NumberOfObjectives, n::Integer)
    +    # Code to set NumberOfObjectives
    +    return
    +end
    +
    +function MOI.get(model::Optimizer, ::NumberOfObjectives)
    +    n = # Code to get NumberOfObjectives
    +    return n
    +end

    Then, the user can write:

    model = Gurobi.Optimizer()
    +MOI.set(model, Gurobi.NumberofObjectives(), 3)
    diff --git a/previews/PR3545/moi/tutorials/latency/index.html b/previews/PR3545/moi/tutorials/latency/index.html new file mode 100644 index 00000000000..0be9d972a41 --- /dev/null +++ b/previews/PR3545/moi/tutorials/latency/index.html @@ -0,0 +1,133 @@ + +Latency · JuMP

    Latency

    MathOptInterface suffers the "time-to-first-solve" problem of start-up latency.

    This hurts both the user- and developer-experience of MathOptInterface. In the first case, because simple models have a multi-second delay before solving, and in the latter, because our tests take so long to run.

    This page contains some advice on profiling and fixing latency-related problems in the MathOptInterface.jl repository.

    Background

    Before reading this part of the documentation, you should familiarize yourself with the reasons for latency in Julia and how to fix them.

    Causes

    There are three main causes of latency in MathOptInterface:

    1. A large number of types
    2. Lack of method ownership
    3. Type-instability in the bridge layer

    A large number of types

    Julia is very good at specializing method calls based on the input type. Each specialization has a compilation cost, but the benefit of faster run-time performance.

    The best-case scenario is for a method to be called a large number of times with a single set of argument types. The worst-case scenario is for a method to be called a single time for a large set of argument types.

    Because of MathOptInterface's function-in-set formulation, we fall into the worst-case situation.

    This is a fundamental limitation of Julia, so there isn't much we can do about it. However, if we can precompile MathOptInterface, much of the cost can be shifted from start-up latency to the time it takes to precompile a package on installation.

    However, there are two things which make MathOptInterface hard to precompile.

    Lack of method ownership

    Lack of method ownership happens when a call is made using a mix of structs and methods from different modules. Because of this, no single module "owns" the method that is being dispatched, and so it cannot be precompiled.

    Tip

    This is a slightly simplified explanation. Read the precompilation tutorial for a more in-depth discussion on back-edges.

    Unfortunately, the design of MOI means that this is a frequent occurrence: we have a bunch of types in MOI.Utilities that wrap types defined in external packages (for example, the Optimizers), which implement methods of functions defined in MOI (for example, add_variable, add_constraint).

    Here's a simple example of method-ownership in practice:

    module MyMOI
    +struct Wrapper{T}
    +    inner::T
    +end
    +optimize!(x::Wrapper) = optimize!(x.inner)
    +end  # MyMOI
    +
    +module MyOptimizer
    +using ..MyMOI
    +struct Optimizer end
    +MyMOI.optimize!(x::Optimizer) = 1
    +end  # MyOptimizer
    +
    +using SnoopCompile
    +model = MyMOI.Wrapper(MyOptimizer.Optimizer())
    +
    +julia> tinf = @snoopi_deep MyMOI.optimize!(model)
    +InferenceTimingNode: 0.008256/0.008543 on InferenceFrameInfo for Core.Compiler.Timings.ROOT() with 1 direct children

    The result is that there was one method that required type inference. If we visualize tinf:

    using ProfileView
    +ProfileView.view(flamegraph(tinf))

    we see a flamegraph with a large red-bar indicating that the method MyMOI.optimize(MyMOI.Wrapper{MyOptimizer.Optimizer}) cannot be precompiled.

    To fix this, we need to designate a module to "own" that method (that is, create a back-edge). The easiest way to do this is for MyOptimizer to call MyMOI.optimize(MyMOI.Wrapper{MyOptimizer.Optimizer}) during using MyOptimizer. Let's see that in practice:

    module MyMOI
    +struct Wrapper{T}
    +    inner::T
    +end
    +optimize(x::Wrapper) = optimize(x.inner)
    +end  # MyMOI
    +
    +module MyOptimizer
    +using ..MyMOI
    +struct Optimizer end
    +MyMOI.optimize(x::Optimizer) = 1
    +# The syntax of this let-while loop is very particular:
    +#  * `let ... end` keeps everything local to avoid polluting the MyOptimizer
    +#    namespace
    +#  * `while true ... break end` runs the code once, and forces Julia to compile
    +#    the inner loop, rather than interpret it.
    +let
    +    while true
    +        model = MyMOI.Wrapper(Optimizer())
    +        MyMOI.optimize(model)
    +        break
    +    end
    +end
    +end  # MyOptimizer
    +
    +using SnoopCompile
    +model = MyMOI.Wrapper(MyOptimizer.Optimizer())
    +
    +julia> tinf = @snoopi_deep MyMOI.optimize(model)
    +InferenceTimingNode: 0.006822/0.006822 on InferenceFrameInfo for Core.Compiler.Timings.ROOT() with 0 direct children

    There are now 0 direct children that required type inference because the method was already stored in MyOptimizer!

    Unfortunately, this trick only works if the call-chain is fully inferrable. If there are breaks (due to type instability), then the benefit of doing this is reduced. And unfortunately for us, the design of MathOptInterface has a lot of type instabilities.

    Type instability in the bridge layer

    Most of MathOptInterface is pretty good at ensuring type-stability. However, a key component is not type stable, and that is the bridging layer.

    In particular, the bridging layer defines Bridges.LazyBridgeOptimizer, which has fields like:

    struct LazyBridgeOptimizer
    +    constraint_bridge_types::Vector{Any}
    +    constraint_node::Dict{Tuple{Type,Type},ConstraintNode}
    +    constraint_types::Vector{Tuple{Type,Type}}
    +end

    This is because the LazyBridgeOptimizer needs to be able to deal with any function-in-set type passed to it, and we also allow users to pass additional bridges that they defined in external packages.

    So to recap, MathOptInterface suffers package latency because:

    1. there are a large number of types and functions
    2. and these are split between multiple modules, including external packages
    3. and there are type-instabilities like those in the bridging layer.

    Resolutions

    There are no magic solutions to reduce latency. Issue #1313 tracks progress on reducing latency in MathOptInterface.

    A useful script is the following (replace GLPK as needed):

    import GLPK
    +import MathOptInterface as MOI
    +
    +function example_diet(optimizer, bridge)
    +    category_data = [
    +        1800.0 2200.0;
    +          91.0    Inf;
    +           0.0   65.0;
    +           0.0 1779.0
    +    ]
    +    cost = [2.49, 2.89, 1.50, 1.89, 2.09, 1.99, 2.49, 0.89, 1.59]
    +    food_data = [
    +        410 24 26 730;
    +        420 32 10 1190;
    +        560 20 32 1800;
    +        380  4 19 270;
    +        320 12 10 930;
    +        320 15 12 820;
    +        320 31 12 1230;
    +        100  8 2.5 125;
    +        330  8 10 180
    +    ]
    +    bridge_model = if bridge
    +        MOI.instantiate(optimizer; with_bridge_type=Float64)
    +    else
    +        MOI.instantiate(optimizer)
    +    end
    +    model = MOI.Utilities.CachingOptimizer(
    +        MOI.Utilities.UniversalFallback(MOI.Utilities.Model{Float64}()),
    +        MOI.Utilities.AUTOMATIC,
    +    )
    +    MOI.Utilities.reset_optimizer(model, bridge_model)
    +    MOI.set(model, MOI.Silent(), true)
    +    nutrition = MOI.add_variables(model, size(category_data, 1))
    +    for (i, v) in enumerate(nutrition)
    +        MOI.add_constraint(model, v, MOI.GreaterThan(category_data[i, 1]))
    +        MOI.add_constraint(model, v, MOI.LessThan(category_data[i, 2]))
    +    end
    +    buy = MOI.add_variables(model, size(food_data, 1))
    +    MOI.add_constraint.(model, buy, MOI.GreaterThan(0.0))
    +    MOI.set(model, MOI.ObjectiveSense(), MOI.MIN_SENSE)
    +    f = MOI.ScalarAffineFunction(MOI.ScalarAffineTerm.(cost, buy), 0.0)
    +    MOI.set(model, MOI.ObjectiveFunction{typeof(f)}(), f)
    +    for (j, n) in enumerate(nutrition)
    +        f = MOI.ScalarAffineFunction(
    +            MOI.ScalarAffineTerm.(food_data[:, j], buy),
    +            0.0,
    +        )
    +        push!(f.terms, MOI.ScalarAffineTerm(-1.0, n))
    +        MOI.add_constraint(model, f, MOI.EqualTo(0.0))
    +    end
    +    MOI.optimize!(model)
    +    term_status = MOI.get(model, MOI.TerminationStatus())
    +    @assert term_status == MOI.OPTIMAL
    +    MOI.add_constraint(
    +        model,
    +        MOI.ScalarAffineFunction(
    +            MOI.ScalarAffineTerm.(1.0, [buy[end-1], buy[end]]),
    +            0.0,
    +        ),
    +        MOI.LessThan(6.0),
    +    )
    +    MOI.optimize!(model)
    +    @assert MOI.get(model, MOI.TerminationStatus()) == MOI.INFEASIBLE
    +    return
    +end
    +
    +if length(ARGS) > 0
    +    bridge = get(ARGS, 2, "") != "--no-bridge"
    +    println("Running: $(ARGS[1]) $(get(ARGS, 2, ""))")
    +    @time example_diet(GLPK.Optimizer, bridge)
    +    @time example_diet(GLPK.Optimizer, bridge)
    +    exit(0)
    +end

    You can create a flame-graph via

    using SnoopComile
    +tinf = @snoopi_deep example_diet(GLPK.Optimizer, true)
    +using ProfileView
    +ProfileView.view(flamegraph(tinf))

    Here's how things looked in mid-August 2021: flamegraph

    There are a few opportunities for improvement (non-red flames, particularly on the right). But the main problem is a large red (non-precompilable due to method ownership) flame.

    diff --git a/previews/PR3545/moi/tutorials/manipulating_expressions/index.html b/previews/PR3545/moi/tutorials/manipulating_expressions/index.html new file mode 100644 index 00000000000..cfa39b62249 --- /dev/null +++ b/previews/PR3545/moi/tutorials/manipulating_expressions/index.html @@ -0,0 +1,26 @@ + +Manipulating expressions · JuMP

    Manipulating expressions

    This guide highlights a syntactically appealing way to build expressions at the MOI level, but also to look at their contents. It may be especially useful when writing models or bridge code.

    Creating functions

    This section details the ways to create functions with MathOptInterface.

    Creating scalar affine functions

    The simplest scalar function is simply a variable:

    julia> x = MOI.add_variable(model) # Create the variable x
    +MOI.VariableIndex(1)

    This type of function is extremely simple; to express more complex functions, other types must be used. For instance, a ScalarAffineFunction is a sum of linear terms (a factor times a variable) and a constant. Such an object can be built using the standard constructor:

    julia> f = MOI.ScalarAffineFunction([MOI.ScalarAffineTerm(1, x)], 2) # x + 2
    +(2) + (1) MOI.VariableIndex(1)

    However, you can also use operators to build the same scalar function:

    julia> f = x + 2
    +(2) + (1) MOI.VariableIndex(1)

    Creating scalar quadratic functions

    Scalar quadratic functions are stored in ScalarQuadraticFunction objects, in a way that is highly similar to scalar affine functions. You can obtain a quadratic function as a product of affine functions:

    julia> 1 * x * x
    +(0) + 1.0 MOI.VariableIndex(1)²
    +
    +julia> f * f  # (x + 2)²
    +(4) + (2) MOI.VariableIndex(1) + (2) MOI.VariableIndex(1) + 1.0 MOI.VariableIndex(1)²
    +
    +julia> f^2  # (x + 2)² too
    +(4) + (2) MOI.VariableIndex(1) + (2) MOI.VariableIndex(1) + 1.0 MOI.VariableIndex(1)²

    Creating vector functions

    A vector function is a function with several values, irrespective of the number of input variables. Similarly to scalar functions, there are three main types of vector functions: VectorOfVariables, VectorAffineFunction, and VectorQuadraticFunction.

    The easiest way to create a vector function is to stack several scalar functions using Utilities.vectorize. It takes a vector as input, and the generated vector function (of the most appropriate type) has each dimension corresponding to a dimension of the vector.

    julia> g = MOI.Utilities.vectorize([f, 2 * f])
    +┌                              ┐
    +│(2) + (1) MOI.VariableIndex(1)│
    +│(4) + (2) MOI.VariableIndex(1)│
    +└                              ┘
    Warning

    Utilities.vectorize only takes a vector of similar scalar functions: you cannot mix VariableIndex and ScalarAffineFunction, for instance. In practice, it means that Utilities.vectorize([x, f]) does not work; you should rather use Utilities.vectorize([1 * x, f]) instead to only have ScalarAffineFunction objects.

    Canonicalizing functions

    In more advanced use cases, you might need to ensure that a function is "canonical." Functions are stored as an array of terms, but there is no check that these terms are redundant: a ScalarAffineFunction object might have two terms with the same variable, like x + x + 1. These terms could be merged without changing the semantics of the function: 2x + 1.

    Working with these objects might be cumbersome. Canonicalization helps maintain redundancy to zero.

    Utilities.is_canonical checks whether a function is already in its canonical form:

    julia> MOI.Utilities.is_canonical(f + f) # (x + 2) + (x + 2) is stored as x + x + 4
    +false

    Utilities.canonical returns the equivalent canonical version of the function:

    julia> MOI.Utilities.canonical(f + f) # Returns 2x + 4
    +(4) + (2) MOI.VariableIndex(1)

    Exploring functions

    At some point, you might need to dig into a function, for instance to map it into solver constructs.

    Vector functions

    Utilities.scalarize returns a vector of scalar functions from a vector function:

    julia> MOI.Utilities.scalarize(g) # Returns a vector [f, 2 * f].
    +2-element Vector{MathOptInterface.ScalarAffineFunction{Int64}}:
    + (2) + (1) MOI.VariableIndex(1)
    + (4) + (2) MOI.VariableIndex(1)
    Note

    Utilities.eachscalar returns an iterator on the dimensions, which serves the same purpose as Utilities.scalarize.

    output_dimension returns the number of dimensions of the output of a function:

    julia> MOI.output_dimension(g)
    +2
    diff --git a/previews/PR3545/moi/tutorials/mathprogbase/index.html b/previews/PR3545/moi/tutorials/mathprogbase/index.html new file mode 100644 index 00000000000..7a521608f12 --- /dev/null +++ b/previews/PR3545/moi/tutorials/mathprogbase/index.html @@ -0,0 +1,58 @@ + +Transitioning from MathProgBase · JuMP

    Transitioning from MathProgBase

    MathOptInterface is a replacement for MathProgBase.jl. However, it is not a direct replacement.

    Transitioning a solver interface

    MathOptInterface is more extensive than MathProgBase which may make its implementation seem daunting at first. There are however numerous utilities in MathOptInterface that the simplify implementation process.

    For more information, read Implementing a solver interface.

    Transitioning the high-level functions

    MathOptInterface doesn't provide replacements for the high-level interfaces in MathProgBase. We recommend you use JuMP as a modeling interface instead.

    Tip

    If you haven't used JuMP before, start with the tutorial Getting started with JuMP

    linprog

    Here is one way of transitioning from linprog:

    using JuMP
    +
    +function linprog(c, A, sense, b, l, u, solver)
    +    N = length(c)
    +    model = Model(solver)
    +    @variable(model, l[i] <= x[i=1:N] <= u[i])
    +    @objective(model, Min, c' * x)
    +    eq_rows, ge_rows, le_rows = sense .== '=', sense .== '>', sense .== '<'
    +    @constraint(model, A[eq_rows, :] * x .== b[eq_rows])
    +    @constraint(model, A[ge_rows, :] * x .>= b[ge_rows])
    +    @constraint(model, A[le_rows, :] * x .<= b[le_rows])
    +    optimize!(model)
    +    return (
    +        status = termination_status(model),
    +        objval = objective_value(model),
    +        sol = value.(x)
    +    )
    +end

    mixintprog

    Here is one way of transitioning from mixintprog:

    using JuMP
    +
    +function mixintprog(c, A, rowlb, rowub, vartypes, lb, ub, solver)
    +    N = length(c)
    +    model = Model(solver)
    +    @variable(model, lb[i] <= x[i=1:N] <= ub[i])
    +    for i in 1:N
    +        if vartypes[i] == :Bin
    +            set_binary(x[i])
    +        elseif vartypes[i] == :Int
    +            set_integer(x[i])
    +        end
    +    end
    +    @objective(model, Min, c' * x)
    +    @constraint(model, rowlb .<= A * x .<= rowub)
    +    optimize!(model)
    +    return (
    +        status = termination_status(model),
    +        objval = objective_value(model),
    +        sol = value.(x)
    +    )
    +end

    quadprog

    Here is one way of transitioning from quadprog:

    using JuMP
    +
    +function quadprog(c, Q, A, rowlb, rowub, lb, ub, solver)
    +    N = length(c)
    +    model = Model(solver)
    +    @variable(model, lb[i] <= x[i=1:N] <= ub[i])
    +    @objective(model, Min, c' * x + 0.5 * x' * Q * x)
    +    @constraint(model, rowlb .<= A * x .<= rowub)
    +    optimize!(model)
    +    return (
    +        status = termination_status(model),
    +        objval = objective_value(model),
    +        sol = value.(x)
    +    )
    +end
    diff --git a/previews/PR3545/packages/Alpine/index.html b/previews/PR3545/packages/Alpine/index.html new file mode 100644 index 00000000000..256305dd863 --- /dev/null +++ b/previews/PR3545/packages/Alpine/index.html @@ -0,0 +1,49 @@ + +lanl-ansi/Alpine.jl · JuMP

    Alpine, a global solver for non-convex MINLPs

    CI codecov Documentation version

    ALPINE (glob(AL) o(P)timization for mixed-(I)nteger programs with (N)onlinear (E)quations), is a novel global optimization solver that uses an adaptive, piecewise convexification scheme and constraint programming methods to solve non-convex Mixed-Integer Non-Linear Programs (MINLPs) efficiently. MINLPs are typically "hard" optimization problems which appear in numerous applications (see MINLPLib.jl).

    Alpine is entirely built upon JuMP and MathOptInterface in Julia, which provides incredible flexibility for usage and further development.

    Alpine globally solves a given MINLP by:

    • Analyzing the problem's expressions (objective & constraints) and applies appropriate convex relaxations and polyhedral outer-approximations

    • Performing sequential optimization-based bound tightening (OBBT) and an iterative MIP-based adaptive partitioning scheme via piecewise polyhedral relaxations with a guarantee of global convergence

    Installation

    Install Alpine using the Julia package manager:

    import Pkg
    +Pkg.add("Alpine")

    Use with JuMP

    Use Alpine with JuMP as follows:

    using JuMP, Alpine, Ipopt, HiGHS
    +ipopt = optimizer_with_attributes(Ipopt.Optimizer, "print_level" => 0)
    +highs = optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false)
    +model = Model(
    +    optimizer_with_attributes(
    +        Juniper.Optimizer,
    +        "nlp_solver" => ipopt,
    +        "mip_solver" => highs,
    +    ),
    +)

    Documentation

    For more details, see the online documentation.

    Support problem types

    Alpine can currently handle MINLPs with polynomials in constraints and/or in the objective. Currently, there is no support for exponential cones and Positive Semi-Definite (PSD) cones in MINLPs. Alpine is also a good fit for subsets of the MINLP family, for example, Mixed-Integer Quadratically Constrained Quadratic Programs (MIQCQPs), Non-Linear Programs (NLPs), etc.

    For more details, check out this video on Alpine.jl at JuMP-dev 2018.

    Underlying solvers

    Though the MIP-based bounding algorithm implemented in Alpine is quite involved, most of the computational bottleneck arises in the underlying MIP solvers. Since every iteration of Alpine solves an MIP sub-problem, which is typically a convex MILP/MIQCQP, Alpine's run time heavily depends on the run-time of these solvers. For the best performance of Alpine, we recommend using the commercial solver Gurobi, which is available free for academic purposes. However, due to the flexibility offered by JuMP, the following MIP and NLP solvers are supported in Alpine:

    SolverJulia Package
    CPLEXCPLEX.jl
    CbcCbc.jl
    GurobiGurobi.jl
    IpoptIpopt.jl
    BonminBonmin.jl
    Artelys KNITROKNITRO.jl
    XpressXpress.jl
    HiGHSHiGHS.jl

    Bug reports and support

    Please report any issues via the GitHub issue tracker. All types of issues are welcome and encouraged; this includes bug reports, documentation typos, feature requests, etc.

    Challenging Problems

    We are seeking out hard benchmark instances for MINLPs. Please get in touch either by opening an issue or privately if you would like to share any hard instances.

    Citing Alpine

    If you find Alpine useful in your work, we kindly request that you cite the following papers (PDF, PDF)

    @article{alpine_JOGO2019,
    +  title = {An adaptive, multivariate partitioning algorithm for global optimization of nonconvex programs},
    +  author = {Nagarajan, Harsha and Lu, Mowen and Wang, Site and Bent, Russell and Sundar, Kaarthik},
    +  journal = {Journal of Global Optimization},
    +  year = {2019},
    +  issn = {1573-2916},
    +  doi = {10.1007/s10898-018-00734-1},
    +}
    +
    +@inproceedings{alpine_CP2016,
    +  title = {Tightening {McCormick} relaxations for nonlinear programs via dynamic multivariate partitioning},
    +  author = {Nagarajan, Harsha and Lu, Mowen and Yamangil, Emre and Bent, Russell},
    +  booktitle = {International Conference on Principles and Practice of Constraint Programming},
    +  pages = {369--387},
    +  year = {2016},
    +  organization = {Springer},
    +  doi = {10.1007/978-3-319-44953-1_24},
    +}

    If you find the underlying piecewise polyhedral formulations implemented in Alpine useful in your work, we kindly request that you cite the following papers (link-1, link-2):

    @article{alpine_ORL2021,
    +  title = {Piecewise polyhedral formulations for a multilinear term},
    +  author = {Sundar, Kaarthik and Nagarajan, Harsha and Linderoth, Jeff and Wang, Site and Bent, Russell},
    +  journal = {Operations Research Letters},
    +  volume = {49},
    +  number = {1},
    +  pages = {144--149},
    +  year = {2021},
    +  publisher = {Elsevier}
    +}
    +
    +@article{alpine_OptOnline2022,
    +  title={Piecewise Polyhedral Relaxations of Multilinear Optimization},
    +  author={Kim, Jongeun and Richard, Jean-Philippe P. and Tawarmalani, Mohit},
    +  eprinttype={Optimization Online},
    +  date={2022}
    +}
    diff --git a/previews/PR3545/packages/AmplNLWriter/index.html b/previews/PR3545/packages/AmplNLWriter/index.html new file mode 100644 index 00000000000..2dbc9062926 --- /dev/null +++ b/previews/PR3545/packages/AmplNLWriter/index.html @@ -0,0 +1,15 @@ + +jump-dev/AmplNLWriter.jl · JuMP

    AmplNLWriter.jl

    Build Status MINLPTests codecov

    AmplNLWriter.jl is an interface between MathOptInterface.jl and AMPL-enabled solvers.

    Affiliation

    This wrapper is maintained by the JuMP community and has no official connection with the AMPL modeling language or AMPL Optimization Inc.

    Installation

    Install AmplNLWriter using Pkg.add:

    import Pkg
    +Pkg.add("AmplNLWriter")

    Use with JuMP

    AmplNLWriter requires an AMPL compatible solver binary to function.

    Pass a string pointing to any AMPL-compatible solver binary as the first positional argument to AmplNLWriter.

    For example, if the bonmin executable is on the system path, use:

    using JuMP, AmplNLWriter
    +model = Model(() -> AmplNLWriter.Optimizer("bonmin"))

    If the solver is not on the system path, pass the full path to the solver:

    using JuMP, AmplNLWriter
    +model = Model(() -> AmplNLWriter.Optimizer("/Users/Oscar/ampl.macos64/bonmin"))

    Precompiled binaries

    To simplify the process of installing solver binaries, a number of Julia packages provide precompiled binaries that are compatible with AmplNLWriter. These are generally the name of the solver, followed by _jll. For example, bomin is provided by the Bonmin_jll package.

    To call Bonmin via AmplNLWriter.jl, install the Bonmin_jll package, then run:

    using JuMP, AmplNLWriter, Bonmin_jll
    +model = Model(() -> AmplNLWriter.Optimizer(Bonmin_jll.amplexe))

    Supported packages include:

    SolverJulia PackageExecutable
    BonminBonmin_jll.jlBomin_jll.amplexe
    CouenneCouenne_jll.jlCouenne_jll.amplexe
    IpoptIpopt_jll.jlIpopt_jll.amplexe
    SHOTSHOT_jll.jlSHOT_jll.amplexe
    KNITROKNITRO.jlKNITRO.amplexe

    MathOptInterface API

    The AmplNLWriter optimizer supports the following constraints and attributes.

    List of supported objective functions:

    List of supported variable types:

    List of supported constraint types:

    List of supported model attributes:

    Note that some solver executables may not support the full list of constraint types. For example, Ipopt_jll does not support MOI.Integer or MOI.ZeroOne constraints.

    Options

    A list of available options for each solver can be found here:

    Set an option using set_attribute. For example, to set the "bonmin.nlp_log_level" option to 0 in Bonmin, use:

    using JuMP
    +import AmplNLWriter
    +import Bonmin_jll
    +model = Model(() -> AmplNLWriter.Optimizer(Bonmin_jll.amplexe))
    +set_attribute(model, "bonmin.nlp_log_level", 0)

    opt files

    Some options need to be specified via an .opt file.

    This file must be located in the current working directory whenever the model is solved.

    The .opt file must be named after the name of the solver, for example, bonmin.opt, and each line must contain an option name and the desired value, separated by a space.

    For example, to set the absolute and relative tolerances in Couenne to 1 and 0.05 respectively, the couenne.opt file should contain:

    allowable_gap 1
    +allowable_fraction_gap 0.05
    diff --git a/previews/PR3545/packages/BARON/index.html b/previews/PR3545/packages/BARON/index.html new file mode 100644 index 00000000000..203ee9a6fd9 --- /dev/null +++ b/previews/PR3545/packages/BARON/index.html @@ -0,0 +1,9 @@ + +jump-dev/BARON.jl · JuMP

    BARON.jl

    Build Status codecov

    BARON.jl is a wrapper for BARON by The Optimization Firm.

    Affiliation

    This wrapper is maintained by the JuMP community and is not officially supported by The Optimization Firm.

    License

    BARON.jl is licensed under the MIT License.

    The underlying solver is a closed-source commercial product for which you must obtain a license from The Optimization Firm, although a small trial version is available for free.

    Installation

    First, download a copy of the BARON solver and unpack the executable in a location of your choosing.

    Once installed, set the BARON_EXEC environment variable pointing to the BARON executable (full path, including file name as it differs across platforms), and run Pkg.add("BARON"). For example:

    ENV["BARON_EXEC"] = "/path/to/baron.exe"
    +using Pkg
    +Pkg.add("BARON")

    Use with JuMP

    using JuMP, BARON
    +model = Model(BARON.Optimizer)

    MathOptInterface API

    The BARON optimizer supports the following constraints and attributes.

    List of supported objective functions:

    List of supported variable types:

    List of supported constraint types:

    List of supported model attributes:

    diff --git a/previews/PR3545/packages/BilevelJuMP/index.html b/previews/PR3545/packages/BilevelJuMP/index.html new file mode 100644 index 00000000000..d6d8602456f --- /dev/null +++ b/previews/PR3545/packages/BilevelJuMP/index.html @@ -0,0 +1,37 @@ + +joaquimg/BilevelJuMP.jl · JuMP

    BilevelJuMP.jl

    Build Status Codecov branch Docs dev Docs stable

    BilevelJuMP.jl is a JuMP extension for modeling and solving bilevel optimization problems.

    License

    BilevelJuMP.jl is licensed under the MIT license.

    Documentation

    You can find the documentation at https://joaquimg.github.io/BilevelJuMP.jl/stable/.

    Help

    If you need help, please open a GitHub issue.

    Example

    Install

    import Pkg
    +Pkg.add("BilevelJuMP")
    +Pkg.add("HiGHS")

    Run

    using BilevelJuMP, HiGHS
    +
    +model = BilevelModel(
    +    HiGHS.Optimizer,
    +    mode = BilevelJuMP.FortunyAmatMcCarlMode(primal_big_M = 100, dual_big_M = 100)
    +)
    +
    +@variable(Lower(model), x)
    +@variable(Upper(model), y)
    +
    +@objective(Upper(model), Min, 3x + y)
    +@constraints(Upper(model), begin
    +    x <= 5
    +    y <= 8
    +    y >= 0
    +end)
    +
    +@objective(Lower(model), Min, -x)
    +@constraints(Lower(model), begin
    +     x +  y <= 8
    +    4x +  y >= 8
    +    2x +  y <= 13
    +    2x - 7y <= 0
    +end)
    +
    +optimize!(model)
    +
    +objective_value(model) # = 3 * (3.5 * 8/15) + 8/15 # = 6.13...
    +value(x) # = 3.5 * 8/15 # = 1.86...
    +value(y) # = 8/15 # = 0.53...
    diff --git a/previews/PR3545/packages/CDCS/index.html b/previews/PR3545/packages/CDCS/index.html new file mode 100644 index 00000000000..94410b488b2 --- /dev/null +++ b/previews/PR3545/packages/CDCS/index.html @@ -0,0 +1,30 @@ + +oxfordcontrol/CDCS.jl · JuMP

    CDCS.jl

    CDCS.jl is a wrapper for the CDCS solver.

    The wrapper has two components:

    • an exported cdcs function that is a thin wrapper on top of the cdcs MATLAB function
    • an interface to MathOptInterface

    License

    CDCS.jl is licensed under the MIT license.

    The underlying solver oxfordcontrol/CDCS is licensed under the LGPL v3 license.

    In addition, CDCS requires an installation of MATLAB, which is a closed-source commercial product for which you must obtain a license.

    Installation

    First, make sure that you satisfy the requirements of the MATLAB.jl Julia package and that the CDCS software is installed in your MATLAB™ installation.

    Then, install CDCS.jl using Pkg.add:

    import Pkg
    +Pkg.add("CDCS")

    Use with JuMP

    To use CDCS with JuMP, do:

    using JuMP, CDCS
    +model = Model(CDCS.Optimizer)
    +set_attribute(model, "verbose", 0)

    Troubleshooting

    If you get the error:

    Undefined function or variable 'cdcs'.
    +
    +Error using save
    +Variable 'jx_cdcs_arg_out_1' not found.
    +
    +Linear Programming example: Error During Test at /home/blegat/.julia/dev/CDCS/test/lp.jl:5
    +  Got exception outside of a @test
    +  MATLAB.MEngineError("failed to get variable jx_cdcs_arg_out_1 from MATLAB session")
    +  Stacktrace:
    +    [1] get_mvariable(session::MATLAB.MSession, name::Symbol)
    +      @ MATLAB ~/.julia/packages/MATLAB/SVjnA/src/engine.jl:164
    +    [2] mxcall(::MATLAB.MSession, ::Symbol, ::Int64, ::Matrix{Float64}, ::Vararg{Any})
    +      @ MATLAB ~/.julia/packages/MATLAB/SVjnA/src/engine.jl:297
    +    [3] mxcall
    +      @ ~/.julia/packages/MATLAB/SVjnA/src/engine.jl:317 [inlined]
    +    [4] cdcs(A::Matrix{Float64}, b::Vector{Float64}, c::Vector{Float64}, K::CDCS.Cone; kws::Base.Pairs{Symbol, Int64, Tuple{Symbol}, NamedTuple{(:verbose,), Tuple{Int64}}})

    The error means that we could not find the cdcs function with one output argument using the MATLAB C API.

    This most likely means that you did not add CDCS to the MATLAB's path (that is, the toolbox/local/pathdef.m file).

    If modifying toolbox/local/pathdef.m does not work, the following should work where /path/to/CDCS/ is the directory where the CDCS folder is located:

    julia> using MATLAB
    +
    +julia> cd("/path/to/CDCS/") do
    +           mat"cdcsInstall"
    +       end
    +
    +julia> mat"savepath"
    diff --git a/previews/PR3545/packages/CDDLib/index.html b/previews/PR3545/packages/CDDLib/index.html new file mode 100644 index 00000000000..a5a5b550419 --- /dev/null +++ b/previews/PR3545/packages/CDDLib/index.html @@ -0,0 +1,9 @@ + +JuliaPolyhedra/CDDLib.jl · JuMP

    CDDLib

    CDDLib.jl is a wrapper for cddlib.

    CDDLib.jl can be used with C API of cddlib, the higher level interface of Polyhedra.jl, or as a linear programming solver with JuMP or MathOptInterface.

    Problem description

    As written in the README of cddlib:

    The C-library cddlib is a C implementation of the Double Description Method of Motzkin et al. for generating all vertices (that is, extreme points) and extreme rays of a general convex polyhedron in R^d given by a system of linear inequalities:

    P = { x=(x1, ..., xd)^T :  b - A  x  >= 0 }

    where A is a given m x d real matrix, b is a given m-vector and 0 is the m-vector of all zeros.

    The program can be used for the reverse operation (that is, convex hull computation). This means that one can move back and forth between an inequality representation and a generator (that is, vertex and ray) representation of a polyhedron with cdd. Also, cdd can solve a linear programming problem, that is, a problem of maximizing and minimizing a linear function over P.

    License

    CDDLib.jl is licensed under the GPL v2 license.

    The underlying solver, cddlib/cddlib is also licensed under the GPL v2 license.

    Installation

    Install CDDLib.jl using the Julia package manager:

    import Pkg
    +Pkg.add("CDDLib")

    Building the package will download binaries of cddlib that are provided by cddlib_jll.jl.

    Use with JuMP

    Use CDDLib.Optimizer{Float64} to use CDDLib.jl with JuMP:

    using JuMP, CDDLib
    +model = Model(CDDLib.Optimizer{Float64})

    When using CDDLib.jl with MathOptInterface, you can pass a different number type:

    using MathOptInterface, CDDLib
    +model = CDDLib.Optimizer{Rational{BigInt}}()

    Debugging

    CDDLib.jl uses two global Boolean variables to enable debugging outputs: debug and log.

    You can query the value of debug and log with get_debug and get_log, and set their values with set_debug and set_log.

    diff --git a/previews/PR3545/packages/COPT/index.html b/previews/PR3545/packages/COPT/index.html new file mode 100644 index 00000000000..55596b64ca2 --- /dev/null +++ b/previews/PR3545/packages/COPT/index.html @@ -0,0 +1,42 @@ + +COPT-Public/COPT.jl · JuMP

    COPT.jl

    COPT.jl is a wrapper for the COPT (Cardinal Optimizer), a mathematical optimization solver for large-scale optimization problems.

    COPT includes high-performance solvers for LP, MIP, SOCP, convex QP/QCP and SDP.

    License

    COPT.jl is licensed under the MIT license.

    The underlying solver is a closed-source commercial product for which you must obtain a license.

    Note

    When COPT is upgraded to a newer version, you may see an error message such as ERROR: COPT error 4: Unable to create COPT environment, which indicates that you will need to reapply and upgrade your COPT license files as well.

    Installation

    Install COPT using the Julia package manager

    import Pkg
    +Pkg.add("COPT")

    When there is no local version of COPT installed, installing COPT.jl will automatically download the necessary solver binaries.

    Without a license, you can solve small models for non-commercial purpose. We strongly recommend that you apply for a license by following the link above.

    Note

    MacOS Apple M1/ARM: on MacOS with Apple M1 chips, Intel based programs can run via Rosetta. When you installed the COPT binaries manually, then please make sure that the COPT build matches the Julia build. We recommend the Intel based COPT and Julia build, as the Apple M1/ARM build of Julia is experimental.

    Use with JuMP

    To use COPT with JuMP, use COPT.Optimizer:

    using JuMP
    +using COPT
    +model = Model(COPT.Optimizer)
    +@variable(model, x >= 0)
    +@variable(model, 0 <= y <= 3)
    +@objective(model, Min, 12x + 20y)
    +@constraint(model, c1, 6x + 8y >= 100)
    +@constraint(model, c2, 7x + 12y >= 120)
    +print(model)
    +optimize!(model)
    +@show termination_status(model)
    +@show primal_status(model)
    +@show dual_status(model)
    +@show objective_value(model)
    +@show value(x)
    +@show value(y)
    +@show shadow_price(c1)
    +@show shadow_price(c2)

    To use the semidefinite programming solver in COPT with JuMP, use COPT.ConeOptimizer:

    using JuMP
    +using COPT
    +using LinearAlgebra
    +model = Model(COPT.ConeOptimizer)
    +C = [1.0 -1.0; -1.0 2.0]
    +@variable(model, X[1:2, 1:2], PSD)
    +@variable(model, z[1:2] >= 0)
    +@objective(model, Min, C ⋅ X)
    +@constraint(model, c1, X[1, 1] - z[1] == 1)
    +@constraint(model, c2, X[2, 2] - z[2] == 1)
    +optimize!(model)
    +@show termination_status(model)
    +@show primal_status(model)
    +@show dual_status(model)
    +@show objective_value(model)
    +@show value.(X)
    +@show value.(z)
    +@show shadow_price(c1)
    +@show shadow_price(c2)
    diff --git a/previews/PR3545/packages/COSMO/index.html b/previews/PR3545/packages/COSMO/index.html new file mode 100644 index 00000000000..0b8c4663e3d --- /dev/null +++ b/previews/PR3545/packages/COSMO/index.html @@ -0,0 +1,37 @@ + +oxfordcontrol/COSMO.jl · JuMP
    + +

    + +

    + + + + + +

    + Features • + Installation • + News • + Citing • + Contributing +

    This is a Julia implementation of the Conic operator splitting method (COSMO) solver. It can solve large convex conic optimization problems of the following form:

    + +

    with decision variables x ϵ R^n, s ϵ R^m and data matrices P=P'>=0, q ϵ R^n, A ϵ R^(m×n), and b ϵ R^m. The convex set K is a composition of convex sets and cones.

    For more information take a look at the COSMO.jl Documentation (stable | dev).

    Features

    • Versatile: COSMO solves linear programs, quadratic programs, second-order cone programs, semidefinite programs and problems involving exponential and power cones
    • Quad SDPs: Positive semidefinite programs with quadratic objective functions are natively supported
    • Safeguarded acceleration: robust and faster convergence to higher precision using COSMOAccelerators
    • Infeasibility detection: Infeasible problems are detected without a homogeneous self-dual embedding of the problem
    • JuMP / Convex.jl support: We provide an interface to MathOptInterface (MOI), which allows you to describe your problem in JuMP and Convex.jl.
    • Warm starting: COSMO supports warm starting of the decision variables
    • Custom sets and linear solver: Customize COSMO's components by defining your own convex constraint sets and by choosing from a number of direct and indirect linear system solvers, for example, QDLDL, Pardiso, Conjugate Gradient and MINRES
    • Arbitrary precision types: You can solve problems with any floating point precision.
    • Open Source: Our code is free to use and distributed under the Apache 2.0 Licence
    • Chordal decomposition: COSMO tries to decompose large structured PSD constraints using chordal decomposition techniques. This often results in a significant speedup compared to the original problem.
    • Smart clique merging: After an initial decomposition of a structured SDP, COSMO recombines overlapping cliques/blocks to speed up the algorithm.
    + +

    Installation

    • COSMO can be added via the Julia package manager (type ]): pkg> add COSMO

    Citing

    If you find COSMO useful in your project, we kindly request that you cite the following paper:

    @Article{Garstka_2021,
    +  author  = {Michael Garstka and Mark Cannon and Paul Goulart},
    +  journal = {Journal of Optimization Theory and Applications},
    +  title   = {{COSMO}: A Conic Operator Splitting Method for Convex Conic Problems},
    +  volume  = {190},
    +  number  = {3},
    +  pages   = {779--810},
    +  year    = {2021},
    +  publisher = {Springer},
    +  doi     = {10.1007/s10957-021-01896-x},
    +  url     = {https://doi.org/10.1007/s10957-021-01896-x}
    +}

    The article is available under Open Access here.

    Contributing

    • Contributions are always welcome. Our style guide can be found here.
    • Current issues, tasks and future ideas are listed in Issues. Please report any issues or bugs that you encounter.
    • As an open source project we are also interested in any projects and applications that use COSMO. Please let us know by opening a GitHub issue.

    Python - Interface

    COSMO can also be called from Python. Take a look at: cosmo-python

    Licence 🔍

    This project is licensed under the Apache License - see the LICENSE.md file for details.

    diff --git a/previews/PR3545/packages/CPLEX/index.html b/previews/PR3545/packages/CPLEX/index.html new file mode 100644 index 00000000000..2d33ec53e95 --- /dev/null +++ b/previews/PR3545/packages/CPLEX/index.html @@ -0,0 +1,164 @@ + +jump-dev/CPLEX.jl · JuMP

    CPLEX.jl

    Build Status codecov

    CPLEX.jl is a wrapper for the IBM® ILOG® CPLEX® Optimization Studio.

    CPLEX.jl has two components:

    The C API can be accessed via CPLEX.CPXxx functions, where the names and arguments are identical to the C API. See the CPLEX documentation for details.

    Affiliation

    This wrapper is maintained by the JuMP community and is not officially supported by IBM. However, we thank IBM for providing us with a CPLEX license to test CPLEX.jl on GitHub. If you are a commercial customer interested in official support for CPLEX in Julia, let them know.

    License

    CPLEX.jl is licensed under the MIT License.

    The underlying solver is a closed-source commercial product for which you must purchase a license.

    Free CPLEX licenses are available for academics and students.

    Installation

    CPLEX.jl requires CPLEX version 12.10, 20.1, or 22.1.

    First, obtain a license of CPLEX and install CPLEX solver, following the instructions on IBM's website.

    Once installed, set the CPLEX_STUDIO_BINARIES environment variable as appropriate and run Pkg.add("CPLEX"). For example:

    # On Windows, this might be:
    +ENV["CPLEX_STUDIO_BINARIES"] = "C:\\Program Files\\CPLEX_Studio1210\\cplex\\bin\\x86-64_win\\"
    +# On OSX, this might be:
    +ENV["CPLEX_STUDIO_BINARIES"] = "/Applications/CPLEX_Studio1210/cplex/bin/x86-64_osx/"
    +# On Unix, this might be:
    +ENV["CPLEX_STUDIO_BINARIES"] = "/opt/CPLEX_Studio1210/cplex/bin/x86-64_linux/"
    +
    +import Pkg
    +Pkg.add("CPLEX")
    Note

    The exact path may differ. Check which folder you installed CPLEX in, and update the path accordingly.

    Use with JuMP

    Use CPLEX.jl with JuMP as follows:

    using JuMP, CPLEX
    +model = Model(CPLEX.Optimizer)
    +set_attribute(model, "CPX_PARAM_EPINT", 1e-8)

    MathOptInterface API

    The CPLEX optimizer supports the following constraints and attributes.

    List of supported objective functions:

    List of supported variable types:

    List of supported constraint types:

    List of supported model attributes:

    Options

    Options match those of the C API in the CPLEX documentation.

    Callbacks

    CPLEX.jl provides a solver-specific callback to CPLEX:

    using JuMP, CPLEX, Test
    +
    +model = direct_model(CPLEX.Optimizer())
    +set_silent(model)
    +
    +# This is very, very important!!! Only use callbacks in single-threaded mode.
    +MOI.set(model, MOI.NumberOfThreads(), 1)
    +
    +@variable(model, 0 <= x <= 2.5, Int)
    +@variable(model, 0 <= y <= 2.5, Int)
    +@objective(model, Max, y)
    +cb_calls = Clong[]
    +function my_callback_function(cb_data::CPLEX.CallbackContext, context_id::Clong)
    +    # You can reference variables outside the function as normal
    +    push!(cb_calls, context_id)
    +    # You can select where the callback is run
    +    if context_id != CPX_CALLBACKCONTEXT_CANDIDATE
    +        return
    +    end
    +    ispoint_p = Ref{Cint}()
    +    ret = CPXcallbackcandidateispoint(cb_data, ispoint_p)
    +    if ret != 0 || ispoint_p[] == 0
    +        return  # No candidate point available or error
    +    end
    +    # You can query CALLBACKINFO items
    +    valueP = Ref{Cdouble}()
    +    ret = CPXcallbackgetinfodbl(cb_data, CPXCALLBACKINFO_BEST_BND, valueP)
    +    @info "Best bound is currently: $(valueP[])"
    +    # As well as any other C API
    +    x_p = Vector{Cdouble}(undef, 2)
    +    obj_p = Ref{Cdouble}()
    +    ret = CPXcallbackgetincumbent(cb_data, x_p, 0, 1, obj_p)
    +    if ret == 0
    +        @info "Objective incumbent is: $(obj_p[])"
    +        @info "Incumbent solution is: $(x_p)"
    +        # Use CPLEX.column to map between variable references and the 1-based
    +        # column.
    +        x_col = CPLEX.column(cb_data, index(x))
    +        @info "x = $(x_p[x_col])"
    +    else
    +        # Unable to query incumbent.
    +    end
    +
    +    # Before querying `callback_value`, you must call:
    +    CPLEX.load_callback_variable_primal(cb_data, context_id)
    +    x_val = callback_value(cb_data, x)
    +    y_val = callback_value(cb_data, y)
    +    # You can submit solver-independent MathOptInterface attributes such as
    +    # lazy constraints, user-cuts, and heuristic solutions.
    +    if y_val - x_val > 1 + 1e-6
    +        con = @build_constraint(y - x <= 1)
    +        MOI.submit(model, MOI.LazyConstraint(cb_data), con)
    +    elseif y_val + x_val > 3 + 1e-6
    +        con = @build_constraint(y + x <= 3)
    +        MOI.submit(model, MOI.LazyConstraint(cb_data), con)
    +    end
    +end
    +MOI.set(model, CPLEX.CallbackFunction(), my_callback_function)
    +optimize!(model)
    +@test termination_status(model) == MOI.OPTIMAL
    +@test primal_status(model) == MOI.FEASIBLE_POINT
    +@test value(x) == 1
    +@test value(y) == 2

    Annotations for automatic Benders' decomposition

    Here is an example of using the annotation feature for automatic Benders' decomposition:

    using JuMP, CPLEX
    +
    +function add_annotation(
    +    model::JuMP.Model,
    +    variable_classification::Dict;
    +    all_variables::Bool = true,
    +)
    +    num_variables = sum(length(it) for it in values(variable_classification))
    +    if all_variables
    +        @assert num_variables == JuMP.num_variables(model)
    +    end
    +    indices, annotations = CPXINT[], CPXLONG[]
    +    for (key, value) in variable_classification
    +        for variable_ref in value
    +            push!(indices, variable_ref.index.value - 1)
    +            push!(annotations, CPX_BENDERS_MASTERVALUE + key)
    +        end
    +    end
    +    cplex = backend(model)
    +    index_p = Ref{CPXINT}()
    +    CPXnewlongannotation(
    +        cplex.env,
    +        cplex.lp,
    +        CPX_BENDERS_ANNOTATION,
    +        CPX_BENDERS_MASTERVALUE,
    +    )
    +    CPXgetlongannotationindex(
    +        cplex.env,
    +        cplex.lp,
    +        CPX_BENDERS_ANNOTATION,
    +        index_p,
    +    )
    +    CPXsetlongannotations(
    +        cplex.env,
    +        cplex.lp,
    +        index_p[],
    +        CPX_ANNOTATIONOBJ_COL,
    +        length(indices),
    +        indices,
    +        annotations,
    +    )
    +    return
    +end
    +
    +# Problem
    +
    +function illustrate_full_annotation()
    +    c_1, c_2 = [1, 4], [2, 3]
    +    dim_x, dim_y = length(c_1), length(c_2)
    +    b = [-2; -3]
    +    A_1, A_2 = [1 -3; -1 -3], [1 -2; -1 -1]
    +    model = JuMP.direct_model(CPLEX.Optimizer())
    +    set_optimizer_attribute(model, "CPXPARAM_Benders_Strategy", 1)
    +    @variable(model, x[1:dim_x] >= 0, Bin)
    +    @variable(model, y[1:dim_y] >= 0)
    +    variable_classification = Dict(0 => [x[1], x[2]], 1 => [y[1], y[2]])
    +    @constraint(model, A_2 * y + A_1 * x .<= b)
    +    @objective(model, Min, c_1' * x + c_2' * y)
    +    add_annotation(model, variable_classification)
    +    optimize!(model)
    +    x_optimal = value.(x)
    +    y_optimal = value.(y)
    +    println("x: $(x_optimal), y: $(y_optimal)")
    +end
    +
    +function illustrate_partial_annotation()
    +    c_1, c_2 = [1, 4], [2, 3]
    +    dim_x, dim_y = length(c_1), length(c_2)
    +    b = [-2; -3]
    +    A_1, A_2 = [1 -3; -1 -3], [1 -2; -1 -1]
    +    model = JuMP.direct_model(CPLEX.Optimizer())
    +    # Note that the "CPXPARAM_Benders_Strategy" has to be set to 2 if partial
    +    # annotation is provided. If "CPXPARAM_Benders_Strategy" is set to 1, then
    +    # the following error will be thrown:
    +    # `CPLEX Error  2002: Invalid Benders decomposition.`
    +    set_optimizer_attribute(model, "CPXPARAM_Benders_Strategy", 2)
    +    @variable(model, x[1:dim_x] >= 0, Bin)
    +    @variable(model, y[1:dim_y] >= 0)
    +    variable_classification = Dict(0 => [x[1]], 1 => [y[1], y[2]])
    +    @constraint(model, A_2 * y + A_1 * x .<= b)
    +    @objective(model, Min, c_1' * x + c_2' * y)
    +    add_annotation(model, variable_classification; all_variables = false)
    +    optimize!(model)
    +    x_optimal = value.(x)
    +    y_optimal = value.(y)
    +    println("x: $(x_optimal), y: $(y_optimal)")
    +end
    diff --git a/previews/PR3545/packages/CSDP/index.html b/previews/PR3545/packages/CSDP/index.html new file mode 100644 index 00000000000..2bc1ad377e0 --- /dev/null +++ b/previews/PR3545/packages/CSDP/index.html @@ -0,0 +1,13 @@ + +jump-dev/CSDP.jl · JuMP

    CSDP.jl

    Build Status codecov

    CSDP.jl is a wrapper for the COIN-OR SemiDefinite Programming solver.

    The wrapper has two components:

    Affiliation

    This wrapper is maintained by the JuMP community and is not a COIN-OR project.

    The original algorithm is described by B. Borchers (1999). CSDP, A C Library for Semidefinite Programming. Optimization Methods and Software. 11(1), 613-623. [preprint]

    License

    CSDP.jl is licensed under the MIT License.

    The underlying solver, coin-or/Csdp, is licensed under the Eclipse public license.

    Installation

    Install CSDP using Pkg.add:

    import Pkg
    +Pkg.add("CSDP")

    In addition to installing the CSDP.jl package, this will also download and install the CSDP binaries. You do not need to install CSDP separately.

    Use with JuMP

    To use CSDP with JuMP, use CSDP.Optimizer:

    using JuMP, CSDP
    +model = Model(CSDP.Optimizer)
    +set_attribute(model, "maxiter", 1000)

    MathOptInterface API

    The CSDP optimizer supports the following constraints and attributes.

    List of supported objective functions:

    List of supported variable types:

    List of supported constraint types:

    List of supported model attributes:

    Options

    The CSDP options are listed in the table below.

    NameDefault ValueExplanation
    axtol1.0e-8Tolerance for primal feasibility
    atytol1.0e-8Tolerance for dual feasibility
    objtol1.0e-8Tolerance for relative duality gap
    pinftol1.0e8Tolerance for determining primal infeasibility
    dinftol1.0e8Tolerance for determining dual infeasibility
    maxiter100Limit for the total number of iterations
    minstepfrac0.90The minstepfrac and maxstepfrac parameters determine how close to the edge of the feasible region CSDP will step
    maxstepfrac0.97The minstepfrac and maxstepfrac parameters determine how close to the edge of the feasible region CSDP will step
    minstepp1.0e-8If the primal step is shorter than minstepp then CSDP declares a line search failure
    minstepd1.0e-8If the dual step is shorter than minstepd then CSDP declares a line search failure
    usexzgap1If usexzgap is 0 then CSDP will use the objective duality gap d - p instead of the XY duality gap ⟨Z, X⟩
    tweakgap0If tweakgap is set to 1, and usexzgap is set to 0, then CSDP will attempt to "fix" negative duality gaps
    affine0If affine is set to 1, then CSDP will take only primal-dual affine steps and not make use of the barrier term. This can be useful for some problems that do not have feasible solutions that are strictly in the interior of the cone of semidefinite matrices
    perturbobj1The perturbobj parameter determines whether the objective function will be perturbed to help deal with problems that have unbounded optimal solution sets. If perturbobj is 0, then the objective will not be perturbed. If perturbobj is 1, then the objective function will be perturbed by a default amount. Larger values of perturbobj (for example, 100) increase the size of the perturbation. This can be helpful in solving some difficult problems.
    fastmode0The fastmode parameter determines whether or not CSDP will skip certain time consuming operations that slightly improve the accuracy of the solutions. If fastmode is set to 1, then CSDP may be somewhat faster, but also somewhat less accurate
    printlevel1The printlevel parameter determines how much debugging information is output. Use a printlevel of 0 for no output and a printlevel of 1 for normal output. Higher values of printlevel will generate more debugging output

    Problem representation

    The primal is represented internally by CSDP as follows:

    max ⟨C, X⟩
    +      A(X) = a
    +         X ⪰ 0

    where A(X) = [⟨A_1, X⟩, ..., ⟨A_m, X⟩]. The corresponding dual is:

    min ⟨a, y⟩
    +     A'(y) - C = Z
    +             Z ⪰ 0

    where A'(y) = y_1A_1 + ... + y_mA_m

    Termination criteria

    CSDP will terminate successfully (or partially) in the following cases:

    • If CSDP finds X, Z ⪰ 0 such that the following 3 tolerances are satisfied:
      • primal feasibility tolerance: ||A(x) - a||_2 / (1 + ||a||_2) < axtol
      • dual feasibility tolerance: ||A'(y) - C - Z||_F / (1 + ||C||_F) < atytol
      • relative duality gap tolerance: gap / (1 + |⟨a, y⟩| + |⟨C, X⟩|) < objtol
        • objective duality gap: if usexygap is 0, gap = ⟨a, y⟩ - ⟨C, X⟩
        • XY duality gap: if usexygap is 1, gap = ⟨Z, X⟩
      then it returns 0.
    • If CSDP finds y and Z ⪰ 0 such that -⟨a, y⟩ / ||A'(y) - Z||_F > pinftol, it returns 1 with y such that ⟨a, y⟩ = -1.
    • If CSDP finds X ⪰ 0 such that ⟨C, X⟩ / ||A(X)||_2 > dinftol, it returns 2 with X such that ⟨C, X⟩ = 1.
    • If CSDP finds X, Z ⪰ 0 such that the following 3 tolerances are satisfied with 1000*axtol, 1000*atytol and 1000*objtol but at least one of them is not satisfied with axtol, atytol and objtol and cannot make progress, then it returns 3.

    In addition, if the printlevel option is at least 1, the following will be printed:

    • If the return code is 1, CSDP will print ⟨a, y⟩ and ||A'(y) - Z||_F
    • If the return code is 2, CSDP will print ⟨C, X⟩ and ||A(X)||_F
    • Otherwise, CSDP will print
      • the primal/dual objective value,
      • the relative primal/dual infeasibility,
      • the objective duality gap ⟨a, y⟩ - ⟨C, X⟩ and objective relative duality gap (⟨a, y⟩ - ⟨C, X⟩) / (1 + |⟨a, y⟩| + |⟨C, X⟩|),
      • the XY duality gap ⟨Z, X⟩ and XY relative duality gap ⟨Z, X⟩ / (1 + |⟨a, y⟩| + |⟨C, X⟩|)
      • and the DIMACS error measures.

    In theory, for feasible primal and dual solutions, ⟨a, y⟩ - ⟨C, X⟩ = ⟨Z, X⟩, so the objective and XY duality gap should be equivalent. However, in practice, there are sometimes solution which satisfy primal and dual feasibility tolerances but have objective duality gap which are not close to XY duality gap. In some cases, the objective duality gap may even become negative (hence the tweakgap option). This is the reason usexygap is 1 by default.

    CSDP considers that X ⪰ 0 (resp. Z ⪰ 0) is satisfied when the Cholesky factorizations can be computed. In practice, this is somewhat more conservative than simply requiring all eigenvalues to be nonnegative.

    Status

    The table below shows how the different CSDP statuses are converted to the MathOptInterface statuses.

    CSDP codeStateDescriptionMOI status
    0SuccessSDP solvedMOI.OPTIMAL
    1SuccessThe problem is primal infeasible, and we have a certificateMOI.INFEASIBLE
    2SuccessThe problem is dual infeasible, and we have a certificateMOI.DUAL_INFEASIBLE
    3Partial SuccessA solution has been found, but full accuracy was not achievedMOI.ALMOST_OPTIMAL
    4FailureMaximum iterations reachedMOI.ITERATION_LIMIT
    5FailureStuck at edge of primal feasibilityMOI.SLOW_PROGRESS
    6FailureStuck at edge of dual infeasibilityMOI.SLOW_PROGRESS
    7FailureLack of progressMOI.SLOW_PROGRESS
    8FailureX, Z, or O was singularMOI.NUMERICAL_ERROR
    9FailureDetected NaN or Inf valuesMOI.NUMERICAL_ERROR
    diff --git a/previews/PR3545/packages/Cbc/index.html b/previews/PR3545/packages/Cbc/index.html new file mode 100644 index 00000000000..b5644681a3d --- /dev/null +++ b/previews/PR3545/packages/Cbc/index.html @@ -0,0 +1,12 @@ + +jump-dev/Cbc.jl · JuMP

    Cbc.jl

    Build Status codecov

    Cbc.jl is a wrapper for the COIN-OR Branch and Cut (Cbc) solver.

    The wrapper has two components:

    Affiliation

    This wrapper is maintained by the JuMP community and is not a COIN-OR project.

    License

    Cbc.jl is licensed under the MIT License.

    The underlying solver, coin-or/Cbc, is licensed under the Eclipse public license.

    Installation

    Install Cbc using Pkg.add:

    import Pkg
    +Pkg.add("Cbc")

    In addition to installing the Cbc.jl package, this will also download and install the Cbc binaries. You do not need to install Cbc separately.

    To use a custom binary, read the Custom solver binaries section of the JuMP documentation.

    Use with JuMP

    To use Cbc with JuMP, use Cbc.Optimizer:

    using JuMP, Cbc
    +model = Model(Cbc.Optimizer)
    +set_attribute(model, "logLevel", 1)

    MathOptInterface API

    The COIN Branch-and-Cut (Cbc) optimizer supports the following constraints and attributes.

    List of supported objective functions:

    List of supported variable types:

    List of supported constraint types:

    List of supported model attributes:

    List of supported optimizer attributes:

    List of supported variable attributes:

    List of supported constraint attributes:

    Options

    Options are, unfortunately, not well documented.

    The following options are likely to be the most useful:

    ParameterExampleExplanation
    seconds60.0Solution timeout limit
    logLevel2Set to 0 to disable solution output
    maxSolutions1Terminate after this many feasible solutions have been found
    maxNodes1Terminate after this many branch-and-bound nodes have been evaluated
    allowableGap0.05Terminate after optimality gap is less than this value (on an absolute scale)
    ratioGap0.05Terminate after optimality gap is smaller than this relative fraction
    threads1Set the number of threads to use for parallel branch & bound

    The complete list of parameters can be found by running the cbc executable and typing ? at the prompt.

    Start the cbc executable from Julia as follows:

    using Cbc_jll
    +Cbc_jll.cbc() do exe
    +    run(`$(exe)`)
    +end
    diff --git a/previews/PR3545/packages/Clarabel/index.html b/previews/PR3545/packages/Clarabel/index.html new file mode 100644 index 00000000000..c44e40b7c2e --- /dev/null +++ b/previews/PR3545/packages/Clarabel/index.html @@ -0,0 +1,26 @@ + +oxfordcontrol/Clarabel.jl · JuMP

    + + +
    +Interior Point Conic Optimization for Julia +

    + + + + + +

    + Features • + Installation • + License • + Documentation +

    Clarabel.jl is a Julia implementation of an interior point numerical solver for convex optimization problems using a novel homogeneous embedding. Clarabel.jl solves the following problem:

    \[\begin{array}{r} +\text{minimize} & \frac{1}{2}x^T P x + q^T x\\\\[2ex] +\text{subject to} & Ax + s = b \\\\[1ex] + & s \in \mathcal{K} +\end{array}\]

    with decision variables $x \in \mathbb{R}^n$, $s \in \mathbb{R}^m$ and data matrices $P=P^\top \succeq 0$, $q \in \mathbb{R}^n$, $A \in \mathbb{R}^{m \times n}$, and $b \in \mathbb{R}^m$. The convex set $\mathcal{K}$ is a composition of convex cones.

    For more information see the Clarabel Documentation (stable | dev).

    Clarabel is also available in a Rust / Python implementation. See here.

    Features

    • Versatile: Clarabel.jl solves linear programs (LPs), quadratic programs (QPs), second-order cone programs (SOCPs) and semidefinite programs (SDPs). It also solves problems with exponential and power cone constraints.
    • Quadratic objectives: Unlike interior point solvers based on the standard homogeneous self-dual embedding (HSDE), Clarabel.jl handles quadratic objectives without requiring any epigraphical reformulation of the objective. It can therefore be significantly faster than other HSDE-based solvers for problems with quadratic objective functions.
    • Infeasibility detection: Infeasible problems are detected using a homogeneous embedding technique.
    • JuMP / Convex.jl support: We provide an interface to MathOptInterface (MOI), which allows you to describe your problem in JuMP and Convex.jl.
    • Arbitrary precision types: You can solve problems with any floating point precision, for example, Float32 or Julia's BigFloat type, using either the native interface, or via MathOptInterface / Convex.jl.
    • Open Source: Our code is available on GitHub and distributed under the Apache 2.0 License

    Installation

    • Clarabel.jl can be added via the Julia package manager (type ]): pkg> add Clarabel

    License 🔍

    This project is licensed under the Apache License 2.0 - see the LICENSE.md file for details.

    diff --git a/previews/PR3545/packages/Clp/index.html b/previews/PR3545/packages/Clp/index.html new file mode 100644 index 00000000000..e21f3884fdd --- /dev/null +++ b/previews/PR3545/packages/Clp/index.html @@ -0,0 +1,10 @@ + +jump-dev/Clp.jl · JuMP

    Clp.jl

    Build Status codecov

    Clp.jl is a wrapper for the COIN-OR Linear Programming solver.

    The wrapper has two components:

    Affiliation

    This wrapper is maintained by the JuMP community and is not a COIN-OR project.

    License

    Clp.jl is licensed under the MIT License.

    The underlying solver, coin-or/Clp, is licensed under the Eclipse public license.

    Installation

    Install Clp using Pkg.add:

    import Pkg
    +Pkg.add("Clp")

    In addition to installing the Clp.jl package, this will also download and install the Clp binaries. You do not need to install Clp separately.

    To use a custom binary, read the Custom solver binaries section of the JuMP documentation.

    Use with JuMP

    To use Clp with JuMP, use Clp.Optimizer:

    using JuMP, Clp
    +model = Model(Clp.Optimizer)
    +set_attribute(model, "LogLevel", 1)
    +set_attribute(model, "Algorithm", 4)

    MathOptInterface API

    The Clp optimizer supports the following constraints and attributes.

    List of supported objective functions:

    List of supported variable types:

    List of supported constraint types:

    List of supported model attributes:

    Options

    Options are, unfortunately, not well documented.

    The following options are likely to be the most useful:

    ParameterExampleExplanation
    PrimalTolerance1e-7Primal feasibility tolerance
    DualTolerance1e-7Dual feasibility tolerance
    DualObjectiveLimit1e308When using dual simplex (where the objective is monotonically changing), terminate when the objective exceeds this limit
    MaximumIterations2147483647Terminate after performing this number of simplex iterations
    MaximumSeconds-1.0Terminate after this many seconds have passed. A negative value means no time limit
    LogLevel1Set to 1, 2, 3, or 4 for increasing output. Set to 0 to disable output
    PresolveType0Set to 1 to disable presolve
    SolveType5Solution method: dual simplex (0), primal simplex (1), sprint (2), barrier with crossover (3), barrier without crossover (4), automatic (5)
    InfeasibleReturn0Set to 1 to return as soon as the problem is found to be infeasible (by default, an infeasibility proof is computed as well)
    Scaling30 -off, 1 equilibrium, 2 geometric, 3 auto, 4 dynamic(later)
    Perturbation100switch on perturbation (50), automatic (100), don't try perturbing (102)

    C API

    The C API can be accessed via Clp.Clp_XXX functions, where the names and arguments are identical to the C API.

    diff --git a/previews/PR3545/packages/DAQP/index.html b/previews/PR3545/packages/DAQP/index.html new file mode 100644 index 00000000000..87b60dfc9af --- /dev/null +++ b/previews/PR3545/packages/DAQP/index.html @@ -0,0 +1,8 @@ + +darnstrom/DAQP.jl · JuMP

    DAQP.jl

    DAQP.jl is a Julia wrapper for the Quadratic Programming solver DAQP.

    License

    DAQP.jl is licensed under the MIT license.

    The underlying solver, darnstrom/daqp is licensed under the MIT license.

    Installation

    Install DAQP.jl using the Julia package manager:

    import Pkg
    +Pkg.add("DAQP")

    Use with JuMP

    To use DAQP with JuMP, do:

    using JuMP, DAQP
    +model = Model(DAQP.Optimizer)

    Documentation

    General information about the solver is available at https://darnstrom.github.io/daqp/, and specifics for the Julia interface are available at https://darnstrom.github.io/daqp/start/julia.

    diff --git a/previews/PR3545/packages/DiffOpt/index.html b/previews/PR3545/packages/DiffOpt/index.html new file mode 100644 index 00000000000..e8902216671 --- /dev/null +++ b/previews/PR3545/packages/DiffOpt/index.html @@ -0,0 +1,23 @@ + +jump-dev/DiffOpt.jl · JuMP

    DiffOpt.jl

    stable docs development docs Build Status Coverage

    DiffOpt.jl is a package for differentiating convex optimization programs with respect to the program parameters. DiffOpt currently supports linear, quadratic, and conic programs.

    License

    DiffOpt.jl is licensed under the MIT License.

    Installation

    Install DiffOpt using Pkg.add:

    import Pkg
    +Pkg.add("DiffOpt")

    Documentation

    The documentation for DiffOpt.jl includes a detailed description of the theory behind the package, along with examples, tutorials, and an API reference.

    Use with JuMP

    Use DiffOpt with JuMP by following this brief example:

    using JuMP, DiffOpt, HiGHS
    +# Create a model using the wrapper
    +model = Model(() -> DiffOpt.diff_optimizer(HiGHS.Optimizer))
    +# Define your model and solve it
    +@variable(model, x)
    +@constraint(model, cons, x >= 3)
    +@objective(model, Min, 2x)
    +optimize!(model)
    +# Choose the problem parameters to differentiate with respect to, and set their
    +# perturbations.
    +MOI.set(model, DiffOpt.ReverseVariablePrimal(), x, 1.0)
    +# Differentiate the model
    +DiffOpt.reverse_differentiate!(model)
    +# fetch the gradients
    +grad_exp = MOI.get(model, DiffOpt.ReverseConstraintFunction(), cons)  # -3 x - 1
    +constant(grad_exp)        # -1
    +coefficient(grad_exp, x)  # -3

    GSOC2020

    DiffOpt began as a NumFOCUS sponsored Google Summer of Code (2020) project

    diff --git a/previews/PR3545/packages/Dualization/index.html b/previews/PR3545/packages/Dualization/index.html new file mode 100644 index 00000000000..ffb897c0051 --- /dev/null +++ b/previews/PR3545/packages/Dualization/index.html @@ -0,0 +1,13 @@ + +jump-dev/Dualization.jl · JuMP

    Dualization.jl

    Build Status codecov DOI

    Dualization.jl is an extension package for MathOptInterface.jl that formulates the dual of conic optimization problems.

    Dualization.jl has two main features:

    • The Dualization.dualize function that computes the dual formulation of either a MathOptInterface.jl or a JuMP model.
    • The Dualization.dual_optimizer function that creates a MathOptInterface-compatible optimizer that solves the dual of the problem instead of the primal.

    License

    Dualization.jl is licensed under the MIT License.

    Installation

    Install Dualization using Pkg.add:

    import Pkg
    +Pkg.add("Dualization")

    Use with JuMP

    To compute the dual formulation of a JuMP model, use dualize:

    using JuMP, Dualization
    +model = Model()
    +# ... build model ...
    +dual_model = dualize(model)

    To solve the dual formulation of a JuMP model, create a dual_optimizer:

    using JuMP, Dualization, SCS
    +model = Model(dual_optimizer(SCS.Optimizer))
    +# ... build model ...
    +optimize!(model)  # Solves the dual instead of the primal

    Documentation

    The documentation for Dualization.jl includes a detailed description of the dual reformulation, along with examples and an API reference.

    diff --git a/previews/PR3545/packages/ECOS/index.html b/previews/PR3545/packages/ECOS/index.html new file mode 100644 index 00000000000..e95ef31f2c3 --- /dev/null +++ b/previews/PR3545/packages/ECOS/index.html @@ -0,0 +1,9 @@ + +jump-dev/ECOS.jl · JuMP

    ECOS.jl

    Build Status codecov

    ECOS.jl is a wrapper for the ECOS solver.

    The wrapper has two components:

    Affiliation

    This wrapper is maintained by the JuMP community and is not a product of Embotech AG.

    License

    ECOS.jl is licensed under the MIT License.

    The underlying solver, embotech/ecos, is licensed under the GPL v3 license.

    Installation

    Install ECOS.jl using Pkg.add:

    import Pkg
    +Pkg.add("ECOS")

    In addition to installing the ECOS.jl package, this will also download and install the ECOS binaries. You do not need to install ECOS separately.

    To use a custom binary, read the Custom solver binaries section of the JuMP documentation.

    Use with JuMP

    To use ECOS with JuMP, use ECOS.Optimizer:

    using JuMP, ECOS
    +model = Model(ECOS.Optimizer)
    +set_attribute(model, "maxit", 100)

    MathOptInterface API

    The ECOS optimizer supports the following constraints and attributes.

    List of supported objective functions:

    List of supported variable types:

    List of supported constraint types:

    List of supported model attributes:

    Options

    The following options are supported:

    ParameterExplanation
    gammascaling the final step length
    deltaregularization parameter
    epsregularization threshold
    feastolprimal/dual infeasibility tolerance
    abstolabsolute tolerance on duality gap
    reltolrelative tolerance on duality gap
    feastol_inaccprimal/dual infeasibility relaxed tolerance
    abstol_inaccabsolute relaxed tolerance on duality gap
    reltol_inaccrelative relaxed tolerance on duality gap
    nitrefnumber of iterative refinement steps
    maxitmaximum number of iterations
    verboseverbosity bool for PRINTLEVEL < 3
    diff --git a/previews/PR3545/packages/GAMS/index.html b/previews/PR3545/packages/GAMS/index.html new file mode 100644 index 00000000000..709b11f0249 --- /dev/null +++ b/previews/PR3545/packages/GAMS/index.html @@ -0,0 +1,25 @@ + +GAMS-dev/GAMS.jl · JuMP

    GAMS.jl

    GAMS.jl provides a MathOptInterface Optimizer to solve JuMP models using GAMS.

    GAMS comes with dozens of supported solvers. Among them are: ALPHAECP, ANTIGONE, BARON, CBC, CONOPT, CPLEX, DICOPT, GUROBI, IPOPT, KNITRO, LINDO, LINDOGLOBAL, MINOS, MOSEK, NLPEC, PATH, QUADMINOS, SBB, SHOT, SCIP, SNOPT, SOPLEX, XPRESS. Find a complete list here.

    GAMS.jl supports the following JuMP features:

    • linear, quadratic and nonlinear (convex and non-convex) objective and constraints
    • continuous, binary, integer, semi-continuous and semi-integer variables
    • SOS1 and SOS2 sets
    • complementarity constraints

    Installation

    1. Download GAMS and obtain a GAMS license. Please note that GAMS also offers a free community license.
    2. (optional) Add the GAMS system directory to the PATH variable in order to find GAMS automatically.
    3. Install GAMS.jl using the Julia package manager:
      using Pkg
      +Pkg.add("GAMS")

    Usage

    Using GAMS as optimizer for your JuMP model:

    using GAMS, JuMP
    +model = Model(GAMS.Optimizer)

    GAMS System

    If the GAMS system directory has been added to the PATH variable (you can check this with print(ENV["PATH"])), GAMS.jl will find it automatically. Otherwise, or if you like to switch between systems, the system directory can be specified by (one of the following):

    set_optimizer_attribute(model, "SysDir", "<gams_system_dir>")
    +set_optimizer_attribute(model, GAMS.SysDir(), "<gams_system_dir>")

    Analogously, you can specify a working directory with "WorkDir" or GAMS.WorkDir(). If no working directory has been set, GAMS.jl will create a temporary one.

    If you want to use the same GAMS workspace (same system and working directory) for multiple models, you can create a GAMSWorkspace first with either of the following

    ws = GAMS.GAMSWorkspace()
    +ws = GAMS.GAMSWorkspace("<gams_system_dir>")
    +ws = GAMS.GAMSWorkspace("<gams_system_dir>", "<gams_working_dir>")

    and then pass it to your models:

    model = Model(() -> GAMS.Optimizer(ws))

    GAMS Options

    GAMS command line options can be specified by

    set_optimizer_attribute(model, "<option>", "<solver_name>")
    +set_optimizer_attribute(model, GAMS.<option>(), "<solver_name>")

    where <option> is either HoldFixed, IterLim, License, LogOption, NodLim, OptCA, OptCR, ResLim, Solver, Threads, Trace, TraceOpt as well as LP, MIP, RMIP, NLP, DNLP, CNS, MINLP, RMINLP, QCP, MIQCP, RMIQCP, MCP or MPEC. Note that GAMS.ResLim() is equivalent to MOI.TimeLimitSec() and GAMS.Threads() to MOI.NumberOfThreads(). Options LimCol, LimRow, SolPrint and SolveLink cannot be changed and are set to 0, 0, 0 and 5, respectively.

    Model Type

    GAMS.jl will automatically choose a GAMS model type for you. Choosing a different model type:

    set_optimizer_attribute(model, GAMS.ModelType(), "<model_type>")

    GAMS Solver Options

    Specifying GAMS solver options:

    set_optimizer_attribute(model, "<solver_option_name>", <option_value>)

    Note that passing a solver option is only valid when explicitly choosing a GAMS solver and not using the default.

    GAMS Names vs. JuMP Names

    GAMS uses generated variable and constraint names although it is possible to pass the JuMP names to the GAMS optimizer, because GAMS is more restrictive when it comes to variable and constraint naming. Use the attributes GeneratedVariableName, GeneratedConstraintName, OriginalVariableName, OriginalConstraintName to query a GAMS symbol name from a JuMP symbol and vice versa. This can help for debugging, for example in case of GAMS compilation errors. For example:

    using GAMS
    +
    +model = direct_model(GAMS.Optimizer())
    +
    +@variable(model, x[1:2,1:3] >= 0)
    +@constraint(model, c[i = 1:2], sum(x[i,j] for j = 1:3) <= 10)
    +
    +MOI.get(model, GAMS.GeneratedVariableName(), x[2,2]) # returns x4
    +MOI.get(model, GAMS.OriginalVariableName("x6"))      # returns x[2,3]
    +MOI.get(model, GAMS.OriginalVariableName("x10"))     # returns nothing
    +
    +MOI.get(model, GAMS.GeneratedConstraintName(), c[2]) # returns eq2
    +MOI.get(model, GAMS.OriginalConstraintName("eq1"))   # returns c[1]
    +MOI.get(model, GAMS.OriginalConstraintName("eq10"))  # returns nothing

    Note that JuMP direct-mode is used.

    diff --git a/previews/PR3545/packages/GLPK/index.html b/previews/PR3545/packages/GLPK/index.html new file mode 100644 index 00000000000..b3be1870f0f --- /dev/null +++ b/previews/PR3545/packages/GLPK/index.html @@ -0,0 +1,39 @@ + +jump-dev/GLPK.jl · JuMP

    GLPK.jl

    Build Status codecov

    GLPK.jl is a wrapper for the GNU Linear Programming Kit library.

    The wrapper has two components:

    Affiliation

    This wrapper is maintained by the JuMP community and is not an GNU project.

    License

    GLPK.jl is licensed under the GPL v3 license.

    Installation

    Install GLPK using Pkg.add:

    import Pkg
    +Pkg.add("GLPK")

    In addition to installing the GLPK.jl package, this will also download and install the GLPK binaries. You do not need to install GLPK separately.

    To use a custom binary, read the Custom solver binaries section of the JuMP documentation.

    Use with JuMP

    To use GLPK with JuMP, use GLPK.Optimizer:

    using JuMP, GLPK
    +model = Model(GLPK.Optimizer)
    +set_attribute(model, "tm_lim", 60 * 1_000)
    +set_attribute(model, "msg_lev", GLPK.GLP_MSG_OFF)

    If the model is primal or dual infeasible, GLPK will attempt to find a certificate of infeasibility. This can be expensive, particularly if you do not intend to use the certificate. If this is the case, use:

    model = Model(() -> GLPK.Optimizer(; want_infeasibility_certificates = false))

    MathOptInterface API

    The GLPK optimizer supports the following constraints and attributes.

    List of supported objective functions:

    List of supported variable types:

    List of supported constraint types:

    List of supported model attributes:

    Options

    Options for GLPK are comprehensively documented in the PDF documentation, but they are hard to find.

    • Options when solving a linear program are defined in Section 2.8.1
    • Options when solving a mixed-integer program are defined in Section 2.10.5

    However, the following options are likely to be the most useful:

    ParameterExampleExplanation
    msg_levGLPK.GLP_MSG_ALLMessage level for terminal output
    presolveGLPK.GLP_ONTurn presolve on or off
    tol_int1e-5Absolute tolerance for integer feasibility
    tol_obj1e-7Relative objective tolerance for mixed-integer programs

    Callbacks

    Here is an example using GLPK's solver-specific callbacks.

    using JuMP, GLPK, Test
    +
    +model = Model(GLPK.Optimizer)
    +@variable(model, 0 <= x <= 2.5, Int)
    +@variable(model, 0 <= y <= 2.5, Int)
    +@objective(model, Max, y)
    +reasons = UInt8[]
    +function my_callback_function(cb_data)
    +    reason = GLPK.glp_ios_reason(cb_data.tree)
    +    push!(reasons, reason)
    +    if reason != GLPK.GLP_IROWGEN
    +        return
    +    end
    +    x_val = callback_value(cb_data, x)
    +    y_val = callback_value(cb_data, y)
    +    if y_val - x_val > 1 + 1e-6
    +        con = @build_constraint(y - x <= 1)
    +        MOI.submit(model, MOI.LazyConstraint(cb_data), con)
    +    elseif y_val + x_val > 3 + 1e-6
    +        con = @build_constraint(y - x <= 1)
    +        MOI.submit(model, MOI.LazyConstraint(cb_data), con)
    +    end
    +end
    +MOI.set(model, GLPK.CallbackFunction(), my_callback_function)
    +optimize!(model)
    +@test termination_status(model) == MOI.OPTIMAL
    +@test primal_status(model) == MOI.FEASIBLE_POINT
    +@test value(x) == 1
    +@test value(y) == 2
    +@show reasons

    C API

    The C API can be accessed via GLPK.glp_XXX functions, where the names and arguments are identical to the C API. See the /tests folder for inspiration.

    diff --git a/previews/PR3545/packages/Gurobi/index.html b/previews/PR3545/packages/Gurobi/index.html new file mode 100644 index 00000000000..3a89ea72948 --- /dev/null +++ b/previews/PR3545/packages/Gurobi/index.html @@ -0,0 +1,97 @@ + +jump-dev/Gurobi.jl · JuMP

    Gurobi.jl

    Build Status codecov

    Gurobi.jl is a wrapper for the Gurobi Optimizer.

    It has two components:

    Affiliation

    This wrapper is maintained by the JuMP community and is not officially supported by Gurobi. However, we thank Gurobi for providing us with a license to test Gurobi.jl on GitHub. If you are a commercial customer interested in official support for Gurobi in Julia, let them know.

    License

    Gurobi.jl is licensed under the MIT License.

    The underlying solver is a closed-source commercial product for which you must obtain a license.

    Free Gurobi licenses are available for academics and students.

    Installation

    First, obtain a license of Gurobi and install Gurobi solver.

    Then, set the GUROBI_HOME environment variable as appropriate and run Pkg.add("Gurobi"):

    # On Windows, this might be
    +ENV["GUROBI_HOME"] = "C:\\Program Files\\gurobi1000\\win64"
    +# ... or perhaps ...
    +ENV["GUROBI_HOME"] = "C:\\gurobi1000\\win64"
    +# On Mac, this might be
    +ENV["GUROBI_HOME"] = "/Library/gurobi1000/mac64"
    +
    +import Pkg
    +Pkg.add("Gurobi")

    Note: your path may differ. Check which folder you installed Gurobi in, and update the path accordingly.

    By default, building Gurobi.jl will fail if the Gurobi library is not found. This may not be desirable in certain cases, for example when part of a package's test suite uses Gurobi as an optional test dependency, but Gurobi cannot be installed on a CI server running the test suite. To support this use case, the GUROBI_JL_SKIP_LIB_CHECK environment variable may be set (to any value) to make Gurobi.jl installable (but not usable).

    Use with JuMP

    To use Gurobi with JuMP, use Gurobi.Optimizer:

    using JuMP, Gurobi
    +model = Model(Gurobi.Optimizer)
    +set_attribute(model, "TimeLimit", 100)
    +set_attribute(model, "Presolve", 0)

    MathOptInterface API

    The Gurobi optimizer supports the following constraints and attributes.

    List of supported objective functions:

    List of supported variable types:

    List of supported constraint types:

    List of supported model attributes:

    Options

    See the Gurobi Documentation for a list and description of allowable parameters.

    C API

    The C API can be accessed via Gurobi.GRBxx functions, where the names and arguments are identical to the C API.

    See the Gurobi documentation for details.

    Reusing the same Gurobi environment for multiple solves

    When using this package via other packages such as JuMP.jl, the default behavior is to obtain a new Gurobi license token every time a model is created. If you are using Gurobi in a setting where the number of concurrent Gurobi uses is limited (for example, "Single-Use" or "Floating-Use" licenses), you might instead prefer to obtain a single license token that is shared by all models that your program solves.

    You can do this by passing a Gurobi.Env() object as the first parameter to Gurobi.Optimizer. For example:

    using JuMP, Gurobi
    +const GRB_ENV = Gurobi.Env()
    +
    +model_1 = Model(() -> Gurobi.Optimizer(GRB_ENV))
    +
    +# The solvers can have different options too
    +model_2 = direct_model(Gurobi.Optimizer(GRB_ENV))
    +set_attribute(model_2, "OutputFlag", 0)

    Accessing Gurobi-specific attributes

    Get and set Gurobi-specific variable, constraint, and model attributes as follows:

    using JuMP, Gurobi
    +model = direct_model(Gurobi.Optimizer())
    +@variable(model, x >= 0)
    +@constraint(model, c, 2x >= 1)
    +@objective(model, Min, x)
    +MOI.set(model, Gurobi.ConstraintAttribute("Lazy"), c, 2)
    +optimize!(model)
    +MOI.get(model, Gurobi.VariableAttribute("LB"), x)  # Returns 0.0
    +MOI.get(model, Gurobi.ModelAttribute("NumConstrs")) # Returns 1

    A complete list of supported Gurobi attributes can be found in their online documentation.

    Callbacks

    Here is an example using Gurobi's solver-specific callbacks.

    using JuMP, Gurobi, Test
    +
    +model = direct_model(Gurobi.Optimizer())
    +@variable(model, 0 <= x <= 2.5, Int)
    +@variable(model, 0 <= y <= 2.5, Int)
    +@objective(model, Max, y)
    +cb_calls = Cint[]
    +function my_callback_function(cb_data, cb_where::Cint)
    +    # You can reference variables outside the function as normal
    +    push!(cb_calls, cb_where)
    +    # You can select where the callback is run
    +    if cb_where != GRB_CB_MIPSOL && cb_where != GRB_CB_MIPNODE
    +        return
    +    end
    +    # You can query a callback attribute using GRBcbget
    +    if cb_where == GRB_CB_MIPNODE
    +        resultP = Ref{Cint}()
    +        GRBcbget(cb_data, cb_where, GRB_CB_MIPNODE_STATUS, resultP)
    +        if resultP[] != GRB_OPTIMAL
    +            return  # Solution is something other than optimal.
    +        end
    +    end
    +    # Before querying `callback_value`, you must call:
    +    Gurobi.load_callback_variable_primal(cb_data, cb_where)
    +    x_val = callback_value(cb_data, x)
    +    y_val = callback_value(cb_data, y)
    +    # You can submit solver-independent MathOptInterface attributes such as
    +    # lazy constraints, user-cuts, and heuristic solutions.
    +    if y_val - x_val > 1 + 1e-6
    +        con = @build_constraint(y - x <= 1)
    +        MOI.submit(model, MOI.LazyConstraint(cb_data), con)
    +    elseif y_val + x_val > 3 + 1e-6
    +        con = @build_constraint(y + x <= 3)
    +        MOI.submit(model, MOI.LazyConstraint(cb_data), con)
    +    end
    +    if rand() < 0.1
    +        # You can terminate the callback as follows:
    +        GRBterminate(backend(model))
    +    end
    +    return
    +end
    +# You _must_ set this parameter if using lazy constraints.
    +MOI.set(model, MOI.RawOptimizerAttribute("LazyConstraints"), 1)
    +MOI.set(model, Gurobi.CallbackFunction(), my_callback_function)
    +optimize!(model)
    +@test termination_status(model) == MOI.OPTIMAL
    +@test primal_status(model) == MOI.FEASIBLE_POINT
    +@test value(x) == 1
    +@test value(y) == 2

    See the Gurobi documentation for other information that can be queried with GRBcbget.

    Common Performance Pitfall with JuMP

    Gurobi's API works differently than most solvers. Any changes to the model are not applied immediately, but instead go sit in a internal buffer (making any modifications appear to be instantaneous) waiting for a call to GRBupdatemodel (where the work is done).

    This leads to a common performance pitfall that has the following message as its main symptom:

    Warning: excessive time spent in model updates. Consider calling update less frequently.

    This often means the JuMP program was structured in such a way that Gurobi.jl ends up calling GRBupdatemodel in each iteration of a loop.

    Usually, it is possible (and easy) to restructure the JuMP program in a way it stays ssolver-agnostic and has a close-to-ideal performance with Gurobi.

    To guide such restructuring it is good to keep in mind the following bits of information:

    1. GRBupdatemodel is only called if changes were done since last GRBupdatemodel (that is, if the internal buffer is not empty).
    2. GRBupdatemodel is called when JuMP.optimize! is called, but this often is not the source of the problem.
    3. GRBupdatemodel may be called when any model attribute is queried, even if that specific attribute was not changed. This often the source of the problem.

    The worst-case scenario is, therefore, a loop of modify-query-modify-query, even if what is being modified and what is being queried are two completely distinct things.

    As an example, instead of:

    model = Model(Gurobi.Optimizer)
    +@variable(model, x[1:100] >= 0)
    +for i in 1:100
    +    set_upper_bound(x[i], i)
    +    # `GRBupdatemodel` called on each iteration of this loop.
    +    println(lower_bound(x[i]))
    +end

    do

    model = Model(Gurobi.Optimizer)
    +@variable(model, x[1:100] >= 0)
    +# All modifications are done before any queries.
    +for i in 1:100
    +    set_upper_bound(x[i], i)
    +end
    +for i in 1:100
    +    # Only the first `lower_bound` query may trigger an `GRBupdatemodel`.
    +    println(lower_bound(x[i]))
    +end

    Common errors

    Using Gurobi v9.0 and you got an error like Q not PSD?

    You need to set the NonConvex parameter:

    model = Model(Gurobi.Optimizer)
    +set_optimizer_attribute(model, "NonConvex", 2)

    Gurobi Error 1009: Version number is XX.X, license is for version XX.X

    Make sure that your license is correct for your Gurobi version. See the Gurobi documentation for details.

    Once you are sure that the license and Gurobi versions match, re-install Gurobi.jl by running:

    import Pkg
    +Pkg.build("Gurobi")
    diff --git a/previews/PR3545/packages/HiGHS/index.html b/previews/PR3545/packages/HiGHS/index.html new file mode 100644 index 00000000000..98e5ccdbfef --- /dev/null +++ b/previews/PR3545/packages/HiGHS/index.html @@ -0,0 +1,10 @@ + +jump-dev/HiGHS.jl · JuMP

    HiGHS.jl

    Build Status codecov

    HiGHS.jl is a wrapper for the HiGHS solver.

    It has two components:

    Affiliation

    This wrapper is maintained by the JuMP community and is not an official project of the HiGHS developers.

    License

    HiGHS.jl is licensed under the MIT License.

    The underlying solver, ERGO-Code/HiGHS, is licensed under the MIT license.

    Installation

    Install HiGHS as follows:

    import Pkg
    +Pkg.add("HiGHS")

    In addition to installing the HiGHS.jl package, this will also download and install the HiGHS binaries. You do not need to install HiGHS separately.

    To use a custom binary, read the Custom solver binaries section of the JuMP documentation.

    Use with JuMP

    To use HiGHS with JuMP, use HiGHS.Optimizer:

    using JuMP, HiGHS
    +model = Model(HiGHS.Optimizer)
    +set_attribute(model, "presolve", "on")
    +set_attribute(model, "time_limit", 60.0)

    MathOptInterface API

    The HiGHS optimizer supports the following constraints and attributes.

    List of supported objective functions:

    List of supported variable types:

    List of supported constraint types:

    List of supported model attributes:

    Options

    See the HiGHS documentation for a full list of the available options.

    C API

    The C API can be accessed via HiGHS.Highs_xxx functions, where the names and arguments are identical to the C API.

    diff --git a/previews/PR3545/packages/Hypatia/index.html b/previews/PR3545/packages/Hypatia/index.html new file mode 100644 index 00000000000..da7911acaf7 --- /dev/null +++ b/previews/PR3545/packages/Hypatia/index.html @@ -0,0 +1,45 @@ + +chriscoey/Hypatia.jl · JuMP
    Hypatia logo

    Build Status codecov

    Hypatia is a highly customizable open source interior point solver for generic conic optimization problems, written in Julia.

    For more information on Hypatia, please see:

    and preprints of our papers:

    and corresponding raw results CSV files generated by our run scripts in the benchmarks folder.

    License

    Hypatia is licensed under the MIT License (see LICENSE).

    Installation

    To use Hypatia, install Julia, then at the Julia REPL, type:

    using Hypatia
    +using Pkg
    +Pkg.add("Hypatia")

    Hypatia is an experimental solver and a work in progress, and may not run with older releases of Julia. Default options/parameters are not well-tuned, so we encourage you to experiment with these.

    Usage

    Hypatia can be accessed through a low-level native Julia interface or through open-source modeling tools such as JuMP and Convex.jl. The native interface is more expressive, allowing Hypatia to solve conic models expressed with generic real floating point types and structured matrices or linear operators, for example. However, it is typically sufficient and more convenient to use JuMP.

    Using JuMP, we can model a simple D-optimal experiment design problem and call Hypatia:

    using LinearAlgebra
    +using JuMP
    +using Hypatia
    +
    +model = Model(() -> Hypatia.Optimizer(verbose = false))
    +@variable(model, x[1:3] >= 0)
    +@constraint(model, sum(x) == 5)
    +@variable(model, hypo)
    +@objective(model, Max, hypo)
    +V = rand(2, 3)
    +Q = V * diagm(x) * V'
    +aff = vcat(hypo, [Q[i, j] for i in 1:2 for j in 1:i]...)
    +@constraint(model, aff in MOI.RootDetConeTriangle(2))
    +
    +# solve and query solution
    +optimize!(model)
    +termination_status(model)
    +objective_value(model)
    +value.(x)

    See our D-optimal design example for more information and references.

    Many more examples using the native interface or JuMP can be found in the examples folder.

    Contributing

    Comments, questions, suggestions, and improvements/extensions to the code or documentation are welcomed. Please reach out on Discourse, or submit an issue or contribute a PR on our GitHub. If contributing code, try to maintain consistent style and add docstrings or comments for clarity. New examples are welcomed and should be implemented similarly to the existing examples.

    Acknowledgements

    This work has been partially funded by the National Science Foundation under grant OAC-1835443 and the Office of Naval Research under grant N00014-18-1-2079.

    Citing Hypatia

    If you find Hypatia solver useful, please cite our solver paper:

    @article{coey2022solving,
    +    title={Solving natural conic formulations with {H}ypatia.jl},
    +    author={Chris Coey and Lea Kapelevich and Juan Pablo Vielma},
    +    year={2022},
    +    journal={INFORMS Journal on Computing},
    +    publisher={INFORMS},
    +    volume={34},
    +    number={5},
    +    pages={2686--2699},
    +    doi={https://doi.org/10.1287/ijoc.2022.1202}
    +}

    If you find aspects of Hypatia's IPM implementation useful, please cite our algorithm paper:

    @article{coey2022performance,
    +    title={Performance enhancements for a generic conic interior point algorithm},
    +    author={Chris Coey and Lea Kapelevich and Juan Pablo Vielma},
    +    year={2023},
    +    journal={Mathematical Programming Computation},
    +    publisher={Springer},
    +    volume={15},
    +    pages={53--101},
    +    doi={https://doi.org/10.1007/s12532-022-00226-0}
    +}
    diff --git a/previews/PR3545/packages/InfiniteOpt/index.html b/previews/PR3545/packages/InfiniteOpt/index.html new file mode 100644 index 00000000000..5c1aa041ff9 --- /dev/null +++ b/previews/PR3545/packages/InfiniteOpt/index.html @@ -0,0 +1,15 @@ + +infiniteopt/InfiniteOpt.jl · JuMP

    Logo

    InfiniteOpt.jl is a JuMP extension for expressing and solving infinite-dimensional optimization problems. Such areas include stochastic programming, dynamic programming, space-time optimization, and more. InfiniteOpt serves as an easy-to-use modeling interface for these advanced problem types that can be used by those with little background in these areas. It also it contains a wealth of capabilities making it a powerful and convenient tool for advanced users.

    Current VersionDocumentationBuild StatusCitation
    Build Status codecov.ioDOI

    InfiniteOpt builds upon JuMP to add support for many complex modeling objects which include:

    • Infinite parameters (for example, time, space, and/or uncertainty)
    • Finite parameters (similar to ParameterJuMP)
    • Infinite variables (decision functions) (for example, $y(t, x)$)
    • Derivatives (for example, $\frac{\partial y(t, x)}{\partial t}$)
    • Measures (for example, $\int_{t \in T}y(t, x)dt$ and $\mathbb{E}[y(\xi)]$)
    • First class nonlinear modeling

    The unifying modeling abstraction behind InfiniteOpt captures a wide spectrum of disciplines which include dynamic, PDE, stochastic, and semi-infinite optimization. Moreover, we facilitate transferring techniques between these to synthesize new optimization paradigms.

    License

    InfiniteOpt is licensed under the MIT "Expat" license.

    Installation

    InfiniteOpt.jl is a registered Julia package and can be installed by entering the following in the REPL.

    julia> import Pkg; Pkg.add("InfiniteOpt")

    Documentation

    Please visit our documentation pages to learn more. These pages are quite extensive and feature overviews, guides, manuals, tutorials, examples, and more.

    Questions

    For additional help please visit and post in our discussion forum.

    Citing

    DOI DOI

    If you use InfiniteOpt.jl in your research, we would greatly appreciate your citing it.

    @article{pulsipher2022unifying,
    +      title = {A unifying modeling abstraction for infinite-dimensional optimization},
    +      journal = {Computers & Chemical Engineering},
    +      volume = {156},
    +      year = {2022},
    +      issn = {0098-1354},
    +      doi = {https://doi.org/10.1016/j.compchemeng.2021.107567},
    +      url = {https://www.sciencedirect.com/science/article/pii/S0098135421003458},
    +      author = {Joshua L. Pulsipher and Weiqi Zhang and Tyler J. Hongisto and Victor M. Zavala},
    +}

    A pre-print version is freely available though arXiv.

    diff --git a/previews/PR3545/packages/Ipopt/index.html b/previews/PR3545/packages/Ipopt/index.html new file mode 100644 index 00000000000..5219c404d7d --- /dev/null +++ b/previews/PR3545/packages/Ipopt/index.html @@ -0,0 +1,118 @@ + +jump-dev/Ipopt.jl · JuMP

    Ipopt.jl

    Build Status codecov

    Ipopt.jl is a wrapper for the Ipopt solver.

    Affiliation

    This wrapper is maintained by the JuMP community and is not a COIN-OR project.

    License

    Ipopt.jl is licensed under the MIT License.

    The underlying solver, coin-or/Ipopt, is licensed under the Eclipse public license.

    Installation

    Install Ipopt.jl using the Julia package manager:

    import Pkg
    +Pkg.add("Ipopt")

    In addition to installing the Ipopt.jl package, this will also download and install the Ipopt binaries. You do not need to install Ipopt separately.

    To use a custom binary, read the Custom solver binaries section of the JuMP documentation.

    For details on using a different linear solver, see the Linear Solvers section below. You do not need a custom binary to change the linear solver.

    Use with JuMP

    You can use Ipopt with JuMP as follows:

    using JuMP, Ipopt
    +model = Model(Ipopt.Optimizer)
    +set_attribute(model, "max_cpu_time", 60.0)
    +set_attribute(model, "print_level", 0)

    MathOptInterface API

    The Ipopt optimizer supports the following constraints and attributes.

    List of supported objective functions:

    List of supported variable types:

    List of supported constraint types:

    List of supported model attributes:

    Options

    Supported options are listed in the Ipopt documentation.

    Solver-specific callbacks

    Ipopt provides a callback that can be used to log the status of the optimization during a solve. It can also be used to terminate the optimization by returning false. Here is an example:

    using JuMP, Ipopt, Test
    +model = Model(Ipopt.Optimizer)
    +set_silent(model)
    +@variable(model, x >= 1)
    +@objective(model, Min, x + 0.5)
    +x_vals = Float64[]
    +function my_callback(
    +   alg_mod::Cint,
    +   iter_count::Cint,
    +   obj_value::Float64,
    +   inf_pr::Float64,
    +   inf_du::Float64,
    +   mu::Float64,
    +   d_norm::Float64,
    +   regularization_size::Float64,
    +   alpha_du::Float64,
    +   alpha_pr::Float64,
    +   ls_trials::Cint,
    +)
    +   push!(x_vals, callback_value(model, x))
    +   @test isapprox(obj_value, 1.0 * x_vals[end] + 0.5, atol = 1e-1)
    +   # return `true` to keep going, or `false` to terminate the optimization.
    +   return iter_count < 1
    +end
    +MOI.set(model, Ipopt.CallbackFunction(), my_callback)
    +optimize!(model)
    +@test MOI.get(model, MOI.TerminationStatus()) == MOI.INTERRUPTED
    +@test length(x_vals) == 2

    See the Ipopt documentation for an explanation of the arguments to the callback. They are identical to the output contained in the logging table printed to the screen.

    To access the current solution and primal, dual, and complementarity violations of each iteration, use Ipopt.GetIpoptCurrentViolations and Ipopt.GetIpoptCurrentIterate. The two functions are identical to the ones in the Ipopt C interface.

    C API

    Ipopt.jl wraps the Ipopt C interface with minimal modifications.

    A complete example is available in the test/C_wrapper.jl file.

    For simplicity, the five callbacks required by Ipopt are slightly different to the C interface. They are as follows:

    """
    +   eval_f(x::Vector{Float64})::Float64
    +
    +Returns the objective value `f(x)`.
    +"""
    +function eval_f end
    +
    +"""
    +   eval_grad_f(x::Vector{Float64}, grad_f::Vector{Float64})::Nothing
    +
    +Fills `grad_f` in-place with the gradient of the objective function evaluated at
    +`x`.
    +"""
    +function eval_grad_f end
    +
    +"""
    +   eval_g(x::Vector{Float64}, g::Vector{Float64})::Nothing
    +
    +Fills `g` in-place with the value of the constraints evaluated at `x`.
    +"""
    +function eval_g end
    +
    +"""
    +   eval_jac_g(
    +      x::Vector{Float64},
    +      rows::Vector{Cint},
    +      cols::Vector{Cint},
    +      values::Union{Nothing,Vector{Float64}},
    +   )::Nothing
    +
    +Compute the Jacobian matrix.
    +
    +* If `values === nothing`
    +   - Fill `rows` and `cols` with the 1-indexed sparsity structure
    +* Otherwise:
    +   - Fill `values` with the elements of the Jacobian matrix according to the
    +     sparsity structure.
    +
    +!!! warning
    +    If `values === nothing`, `x` is an undefined object. Accessing any elements
    +    in it will cause Julia to segfault.
    +"""
    +function eval_jac_g end
    +
    +"""
    +   eval_h(
    +      x::Vector{Float64},
    +      rows::Vector{Cint},
    +      cols::Vector{Cint},
    +      obj_factor::Float64,
    +      lambda::Float64,
    +      values::Union{Nothing,Vector{Float64}},
    +   )::Nothing
    +
    +Compute the Hessian-of-the-Lagrangian matrix.
    +
    +* If `values === nothing`
    +   - Fill `rows` and `cols` with the 1-indexed sparsity structure
    +* Otherwise:
    +   - Fill `values` with the Hessian matrix according to the sparsity structure.
    +
    +!!! warning
    +    If `values === nothing`, `x` is an undefined object. Accessing any elements
    +    in it will cause Julia to segfault.
    +"""
    +function eval_h end

    INVALID_MODEL error

    If you get a termination status MOI.INVALID_MODEL, it is probably because you have some undefined value in your model, for example, a division by zero. Fix this by removing the division, or by imposing variable bounds so that you cut off the undefined region.

    Instead of

    model = Model(Ipopt.Optimizer)
    +@variable(model, x)
    +@NLobjective(model, 1 / x)

    do

    model = Model(Ipopt.Optimizer)
    +@variable(model, x >= 0.0001)
    +@NLobjective(model, 1 / x)

    Linear Solvers

    To improve performance, Ipopt supports a number of linear solvers.

    HSL

    Obtain a license and download HSL_jll.jl from https://licences.stfc.ac.uk/product/julia-hsl.

    There are two versions available: LBT and OpenBLAS. LBT is the recommended option for Julia ≥ v1.9.

    Install this download into your current environment using:

    import Pkg
    +Pkg.develop(path = "/full/path/to/HSL_jll.jl")

    Then, use a linear solver in HSL by setting the hsllib and linear_solver attributes:

    using JuMP, Ipopt
    +import HSL_jll
    +model = Model(Ipopt.Optimizer)
    +set_attribute(model, "hsllib", HSL_jll.libhsl_path)
    +set_attribute(model, "linear_solver", "ma86")

    macOS users

    Due to the security policy of macOS, Mac users may need to delete the quarantine attribute of the ZIP archive before extracting. For example:

    xattr -d com.apple.quarantine lbt_HSL_jll.jl-2023.5.26.zip
    +xattr -d com.apple.quarantine openblas_HSL_jll.jl-2023.5.26.zip

    Pardiso

    Download Pardiso from https://www.pardiso-project.org. Save the shared library somewhere, and record the filename.

    Then, use Pardiso by setting the pardisolib and linear_solver attributes:

    using JuMP, Ipopt
    +model = Model(Ipopt.Optimizer)
    +set_attribute(model, "pardisolib", "/full/path/to/libpardiso")
    +set_attribute(model, "linear_solver", "pardiso")

    SPRAL

    If you use Ipopt.jl with Julia ≥ v1.9, the linear solver SPRAL is available. You can use it by setting the linear_solver attribute:

    using JuMP, Ipopt
    +model = Model(Ipopt.Optimizer)
    +set_attribute(model, "linear_solver", "spral")

    Note that the following environment variables must be set before starting Julia:

    export OMP_CANCELLATION=TRUE
    +export OMP_PROC_BIND=TRUE
    diff --git a/previews/PR3545/packages/Juniper/index.html b/previews/PR3545/packages/Juniper/index.html new file mode 100644 index 00000000000..3d9086ea1c9 --- /dev/null +++ b/previews/PR3545/packages/Juniper/index.html @@ -0,0 +1,36 @@ + +lanl-ansi/Juniper.jl · JuMP

    Juniper

    CI codecov Documentation

    Juniper (Jump Nonlinear Integer Program solver) is a solver for mixed-integer nonlinear programs.

    It is a heuristic which is not guaranteed to find the global optimum. If you need the global optimum, check out Alpine.

    Installation

    Install Juniper using the Julia package manager:

    import Pkg
    +Pkg.add("JuMP")

    Use with JuMP

    Use Juniper with JuMP as follows:

    using JuMP, Juniper, Ipopt
    +ipopt = optimizer_with_attributes(Ipopt.Optimizer, "print_level"=>0)
    +optimizer = optimizer_with_attributes(Juniper.Optimizer, "nl_solver"=>ipopt)
    +model = Model(optimizer)
    +v = [10, 20, 12, 23, 42]
    +w = [12, 45, 12, 22, 21]
    +@variable(model, x[1:5], Bin)
    +@objective(model, Max, v' * x)
    +@constraint(model, sum(w[i]*x[i]^2 for i in 1:5) <= 45)
    +optimize!(model)
    +println(termination_status(model))
    +println(objective_value(model))
    +println(value.(x))

    The nl_solver is used by Juniper to solve continuous nonlinear sub-problems while Juniper searches for acceptable assignments to the discrete variables. A common choice is Ipopt, but any optimizer that supports the continuous relaxation of the model may be used.

    To solve problems with more complex nonlinear functions, use the @NLconstraint and @NLobjective JuMP macros.

    Documentation

    The online documentation is available at https://lanl-ansi.github.io/Juniper.jl/stable/.

    Feasibility pump

    If Juniper has difficulty finding feasible solutions on your model, try adding a solver that supports integer variables (for example, HiGHS) to run a feasibility pump:

    using JuMP, Juniper, Ipopt, HiGHS
    +ipopt = optimizer_with_attributes(Ipopt.Optimizer, "print_level" => 0)
    +highs = optimizer_with_attributes(HiGHS.Optimizer, "output_flag" => false)
    +model = Model(
    +    optimizer_with_attributes(
    +        Juniper.Optimizer,
    +        "nl_solver" => ipopt,
    +        "mip_solver" => highs,
    +    ),
    +)

    The feasibility pump is used at the start of Juniper to find a feasible solution before the branch and bound part starts. For some classes of problems this can be a highly effective pre-processor.

    Citing Juniper

    If you find Juniper useful in your work, we kindly request that you cite the following paper or technical report:

    @inproceedings{juniper,
    +     Author = {Ole Kröger and Carleton Coffrin and Hassan Hijazi and Harsha Nagarajan},
    +     Title = {Juniper: An Open-Source Nonlinear Branch-and-Bound Solver in Julia},
    +     booktitle="Integration of Constraint Programming, Artificial Intelligence, and Operations Research",
    +     pages="377--386",
    +     year="2018",
    +     publisher="Springer International Publishing",
    +     isbn="978-3-319-93031-2"
    +}
    diff --git a/previews/PR3545/packages/KNITRO/index.html b/previews/PR3545/packages/KNITRO/index.html new file mode 100644 index 00000000000..481f5aa1499 --- /dev/null +++ b/previews/PR3545/packages/KNITRO/index.html @@ -0,0 +1,13 @@ + +jump-dev/KNITRO.jl · JuMP

    KNITRO.jl

    KNITRO.jl is a wrapper for the Artelys Knitro solver.

    It has two components:

    Affiliation

    This wrapper is maintained by the JuMP community with help from Artelys.

    Contact Artelys support if you encounter any problem with this interface or the solver.

    License

    KNITRO.jl is licensed under the MIT License.

    The underlying solver is a closed-source commercial product for which you must purchase a license.

    Installation

    First, obtain a license and install a copy of KNITRO from Artelys.

    Then, install KNITRO.jl using the Julia package manager:

    import Pkg
    +Pkg.add("KNITRO")

    If you are having trouble installing KNITRO.jl, here are several things to try:

    • Make sure that you have defined your global variables correctly, for example with export KNITRODIR="/path/to/knitro-vXXX-$OS-64" and export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$KNITRODIR/lib". You can check that KNITRO.jl sees your library with using KNITRO; KNITRO.has_knitro().
    • If KNITRO.has_knitro() returns false but you are confident that your paths are correct, try running Pkg.build("KNITRO") and restarting Julia. In at least one user's experience, installing and using KNITRO in a temporary Julia environment (activated with ] activate --temp) does not work and the need to manually build is likely the reason why.

    Use with JuMP

    To use KNITRO with JuMP, use KNITRO.Optimizer:

    using JuMP, KNITRO
    +model = Model(KNITRO.Optimizer)
    +set_attribute(model, "outlev", 1)
    +set_attribute(model, "algorithm", 4)

    Use with AMPL

    To use KNITRO with AmplNLWriter.jl, use KNITRO.amplexe:

    using JuMP
    +import AmplNLWriter
    +import KNITRO
    +model = Model(() -> AmplNLWriter.Optimizer(KNITRO.amplexe, ["outlev=3"]))

    Use with other packages

    A variety of packages extend KNITRO.jl to support other optimization modeling systems. These include:

    MathOptInterface API

    The Knitro optimizer supports the following constraints and attributes.

    List of supported objective functions:

    List of supported variable types:

    List of supported constraint types:

    List of supported model attributes:

    Options

    A list of available options is provided in the KNITRO reference manual.

    Low-level wrapper

    KNITRO.jl implements most of Knitro's functionalities. If you aim at using part of Knitro's API that are not implemented in the MathOptInterface/JuMP ecosystem, you can refer to the low-level API, which wraps Knitro's C API (whose templates are specified in the file knitro.h).

    Extensive examples using the C wrapper can be found in examples/.

    Multi-threading

    Due to limitations in the interaction between Julia and C, KNITRO.jl disables multi-threading if the problem is nonlinear. This will override any options such as par_numthreads that you may have set. Read GitHub issue #93 for more details.

    diff --git a/previews/PR3545/packages/Loraine/index.html b/previews/PR3545/packages/Loraine/index.html new file mode 100644 index 00000000000..bb2607d4324 --- /dev/null +++ b/previews/PR3545/packages/Loraine/index.html @@ -0,0 +1,32 @@ + +kocvara/Loraine.jl · JuMP

    Loraine.jl

    Sweet Lor(r)aine, let the party carry on[1]...

    Loraine.jl is a Julia implementation of an interior point method algorithm for linear semidefinite optimization problems.

    The special feature of Loraine is the iterative solver for linear systems. This is to be used for problems with (very) low rank solution matrix.

    Standard (non-low-rank) problems and linear programs can be solved using the direct solver; then the user gets a standard IP method akin SDPT3.

    There is also a MATLAB version of the code at kocvara/Loraine.m.

    License and Original Contributors

    Loraine is licensed under the MIT License.

    Loraine was developed by Soodeh Habibi and Michal Kočvara, University of Birmingham, and Michael Stingl, University of Erlangen, for H2020 ITN POEMA.

    The JuMP interface was provided by Benoît Legat. His help is greatly acknowledged.

    Installation

    Install Loraine using Pkg.add:

    import Pkg
    +Pkg.add("Loraine")

    Use with JuMP

    To use Loraine with JuMP, use Loraine.Optimizer:

    using JuMP, Loraine
    +model = Model(Loraine.Optimizer)
    +set_attribute(model, "maxit", 100)

    To solve an SDP problem stored in SDPA format, do

    using JuMP, Loraine
    +model = read_from_file("examples/data/theta1.dat-s")
    +set_optimizer(model, Loraine.Optimizer)
    +optimize!(model)

    For more examples, the folder examples includes a few examples of how to use Loraine via JuMP; in particular, solve_sdpa.jl reads an SDP in the SDPA input format and solves it by Loraine. A few sample problems can be found in folder examples/data.

    Rank-one data

    If the solution does not have low rank, it is recommended to use a direct solver kit = 0. However, if you know that your data matrices are all rank-one, use the option datarank = -1 to get a significant reduction in the complexity (and CPU time). Examples of such problems are maxG11 and thetaG11 from the SDPLIB collection.

    Options

    The list of options:

    kit             # kit = 0 for direct solver; kit = 1 for CG [0]
    +tol_cg          # tolerance for CG solver [1.0e-2]
    +tol_cg_up       # tolerance update [0.5]
    +tol_cg_min      # minimal tolerance for CG solver [1.0e-6]
    +eDIMACS         # epsilon for DIMACS error stopping criterion [1.0e-5]
    +preconditioner  # 0...no; 1...H_alpha; 2...H_beta; 4...hybrid [1]
    +erank           # estimated rank [1]
    +aamat           # 0..A^TA; 1..diag(A^TA); 2..identity [2]
    +verb            # 2..full output; 1..short output; 0..no output [1]
    +datarank        # 0..full rank matrices expected [0]
    +                # -1..rank-1 matrices expected, converted to vectors, if possible
    +                # (TBD) 1..vectors expected for low-rank data matrices
    +initpoint       # 0..Loraine heuristics, 1..SDPT3-like heuristics [0]
    +timing          # 1..yes, 0..no
    +maxit           # maximal number of global iterations [200]

    Citing

    If you find Loraine useful, please cite the following paper:

    @article{loraine2023,
    +  title={Loraine-An interior-point solver for low-rank semidefinite programming},
    +  author={Habibi, Soodeh and Ko{\v{c}}vara, Michal and Stingl, Michael},
    +  www={https://hal.science/hal-04076509/}
    +  note={Preprint hal-04076509}
    +  year={2023}
    +}
    • 1https://www.youtube.com/watch?v=0D2wNf1lVrI
    diff --git a/previews/PR3545/packages/MadNLP/index.html b/previews/PR3545/packages/MadNLP/index.html new file mode 100644 index 00000000000..b4c3384ce6b --- /dev/null +++ b/previews/PR3545/packages/MadNLP/index.html @@ -0,0 +1,48 @@ + +MadNLP/MadNLP.jl · JuMP
    DocumentationBuild StatusCoverageDOI
    docbuildcodecovDOI

    MadNLP is a nonlinear programming (NLP) solver, purely implemented in Julia. MadNLP implements a filter line-search algorithm, as that used in Ipopt. MadNLP seeks to streamline the development of modeling and algorithmic paradigms in order to exploit structures and to make efficient use of high-performance computers.

    License

    MadNLP is available under the MIT license.

    Installation

    pkg> add MadNLP

    Optionally, various extension packages can be installed together:

    pkg> add MadNLPHSL, MadNLPPardiso, MadNLPMumps, MadNLPGPU, MadNLPGraph, MadNLPKrylov

    These packages are stored in the lib subdirectory within the main MadNLP repository. Some extension packages may require additional dependencies or specific hardware. For the instructions for the build procedure, see the following links:

    Usage

    Interfaces

    MadNLP is interfaced with modeling packages:

    Users can pass various options to MadNLP also through the modeling packages. The interface-specific syntax are shown below. To see the list of MadNLP solver options, check the OPTIONS.md file.

    JuMP interface

    using MadNLP, JuMP
    +model = Model(()->MadNLP.Optimizer(print_level=MadNLP.INFO, max_iter=100))
    +@variable(model, x, start = 0.0)
    +@variable(model, y, start = 0.0)
    +@NLobjective(model, Min, (1 - x)^2 + 100 * (y - x^2)^2)
    +optimize!(model)

    NLPModels interface

    using MadNLP, CUTEst
    +model = CUTEstModel("PRIMALC1")
    +madnlp(model, print_level=MadNLP.WARN, max_wall_time=3600)

    Plasmo interface (requires extension MadNLPGraph)

    using MadNLP, MadNLPGraph, Plasmo
    +graph = OptiGraph()
    +@optinode(graph,n1)
    +@optinode(graph,n2)
    +@variable(n1,0 <= x <= 2)
    +@variable(n1,0 <= y <= 3)
    +@constraint(n1,x+y <= 4)
    +@objective(n1,Min,x)
    +@variable(n2,x)
    +@NLnodeconstraint(n2,exp(x) >= 2)
    +@linkconstraint(graph,n1[:x] == n2[:x])
    +MadNLP.optimize!(graph; print_level=MadNLP.DEBUG, max_iter=100)

    Linear Solvers

    MadNLP is interfaced with non-Julia sparse/dense linear solvers:

    Each linear solver in MadNLP is a Julia type, and the linear_solver option should be specified by the actual type. Note that the linear solvers are always exported to Main.

    Built-in Solvers: Umfpack, PardisoMKL, LapackCPU

    using MadNLP, JuMP
    +# ...
    +model = Model(()->MadNLP.Optimizer(linear_solver=UmfpackSolver)) # default
    +model = Model(()->MadNLP.Optimizer(linear_solver=LapackCPUSolver))

    HSL (requires extension MadNLPHSL)

    using MadNLP, MadNLPHSL, JuMP
    +# ...
    +model = Model(()->MadNLP.Optimizer(linear_solver=Ma27Solver))
    +model = Model(()->MadNLP.Optimizer(linear_solver=Ma57Solver))
    +model = Model(()->MadNLP.Optimizer(linear_solver=Ma77Solver))
    +model = Model(()->MadNLP.Optimizer(linear_solver=Ma86Solver))
    +model = Model(()->MadNLP.Optimizer(linear_solver=Ma97Solver))

    Mumps (requires extension MadNLPMumps)

    using MadNLP, MadNLPMumps, JuMP
    +# ...
    +model = Model(()->MadNLP.Optimizer(linear_solver=MumpsSolver))

    Pardiso (requires extension MadNLPPardiso)

    using MadNLP, MadNLPPardiso, JuMP
    +# ...
    +model = Model(()->MadNLP.Optimizer(linear_solver=PardisoSolver))
    +model = Model(()->MadNLP.Optimizer(linear_solver=PardisoMKLSolver))

    LapackGPU (requires extension MadNLPGPU)

    using MadNLP, MadNLPGPU, JuMP
    +# ...
    +model = Model(()->MadNLP.Optimizer(linear_solver=LapackGPUSolver))

    Schur and Schwarz (requires extension MadNLPGraph)

    using MadNLP, MadNLPGraph, JuMP
    +# ...
    +model = Model(()->MadNLP.Optimizer(linear_solver=MadNLPSchwarz))
    +model = Model(()->MadNLP.Optimizer(linear_solver=MadNLPSchur))

    The solvers in MadNLPGraph (Schur and Schwarz) use multi-thread parallelism; thus, Julia session should be started with -t flag.

    julia -t 16 # to use 16 threads

    Citing MadNLP.jl

    If you use MadNLP.jl in your research, we would greatly appreciate your citing it.

    @article{shin2020graph,
    +  title={Graph-Based Modeling and Decomposition of Energy Infrastructures},
    +  author={Shin, Sungho and Coffrin, Carleton and Sundar, Kaarthik and Zavala, Victor M},
    +  journal={arXiv preprint arXiv:2010.02404},
    +  year={2020}
    +}

    Bug reports and support

    Please report issues and feature requests via the GitHub issue tracker.

    diff --git a/previews/PR3545/packages/MiniZinc/index.html b/previews/PR3545/packages/MiniZinc/index.html new file mode 100644 index 00000000000..93a59deed4e --- /dev/null +++ b/previews/PR3545/packages/MiniZinc/index.html @@ -0,0 +1,57 @@ + +jump-dev/MiniZinc.jl · JuMP

    MiniZinc.jl

    MiniZinc.jl is a wrapper for the MiniZinc constraint modeling language.

    It provides a way to write MathOptInterface models to .mzn files, and a way to interact with libminizinc.

    Affiliation

    This wrapper is maintained by the JuMP community and is not part of the MiniZinc project.

    License

    MiniZinc.jl is licensed under the MIT License.

    The underlying project, MiniZinc/libminizinc, is licensed under the MPL 2.0 license.

    Install

    Install MiniZinc.jl using the Julia package manager:

    import Pkg
    +Pkg.add("MiniZinc")

    Windows

    On Linux and macOS, this package automatically installs libminizinc. However, we're still working out problems with the install on Windows. To use MiniZinc.jl, you'll need to manually install a copy of libminizinc from minizinc.org or compile one yourself from MiniZinc/libminizinc.

    To teach MiniZinc.jl where to look for libminizinc, set the JULIA_LIBMINIZINC_DIR environment variable. For example:

    ENV["JULIA_LIBMINIZINC_DIR"] = "C:\\Program Files\\MiniZinc"

    Use with MathOptInterface

    MiniZinc.jl supports the constraint programming sets defined in MathOptInterface, as well as (in)equality constraints.

    The following example solves the following constraint program:

    xᵢ ∈ {1, 2, 3} ∀i=1,2,3
    +zⱼ ∈ {0, 1}    ∀j=1,2
    +z₁ <-> x₁ != x₂
    +z₂ <-> x₂ != x₃
    +z₁ + z₂ = 1
    julia> import MiniZinc
    +
    +julia> const MOI = MiniZinc.MOI
    +MathOptInterface
    +
    +julia> function main()
    +           model = MOI.Utilities.CachingOptimizer(
    +               MiniZinc.Model{Int}(),
    +               MiniZinc.Optimizer{Int}("chuffed"),
    +           )
    +           # xᵢ ∈ {1, 2, 3} ∀i=1,2,3
    +           x = MOI.add_variables(model, 3)
    +           MOI.add_constraint.(model, x, MOI.Interval(1, 3))
    +           MOI.add_constraint.(model, x, MOI.Integer())
    +           # zⱼ ∈ {0, 1}    ∀j=1,2
    +           z = MOI.add_variables(model, 2)
    +           MOI.add_constraint.(model, z, MOI.ZeroOne())
    +           # z₁ <-> x₁ != x₂
    +           MOI.add_constraint(
    +               model,
    +               MOI.VectorOfVariables([z[1], x[1], x[2]]),
    +               MOI.Reified(MOI.AllDifferent(2)),
    +           )
    +           # z₂ <-> x₂ != x₃
    +           MOI.add_constraint(
    +               model,
    +               MOI.VectorOfVariables([z[2], x[2], x[3]]),
    +               MOI.Reified(MOI.AllDifferent(2)),
    +           )
    +           # z₁ + z₂ = 1
    +           MOI.add_constraint(model, 1 * z[1] + x[2], MOI.EqualTo(1))
    +           MOI.optimize!(model)
    +           x_star = MOI.get(model, MOI.VariablePrimal(), x)
    +           z_star = MOI.get(model, MOI.VariablePrimal(), z)
    +           return x_star, z_star
    +       end
    +main (generic function with 1 method)
    +
    +julia> main()
    +([1, 1, 3], [0, 1])

    Use with JuMP

    You can also call MiniZinc from JuMP, using any solver that libminizinc supports. By default, MiniZinc.jl is compiled with "highs":

    using JuMP
    +import MiniZinc
    +model = Model(() -> MiniZinc.Optimizer{Float64}("highs"))
    +@variable(model, 1 <= x[1:3] <= 3, Int)
    +@constraint(model, x in MOI.AllDifferent(3))
    +@objective(model, Max, sum(i * x[i] for i in 1:3))
    +optimize!(model)
    +@show value.(x)

    MathOptInterface API

    The MiniZinc Optimizer{T} supports the following constraints and attributes.

    List of supported objective functions:

    List of supported variable types:

    List of supported constraint types:

    List of supported model attributes:

    Options

    Set options using MOI.RawOptimizerAttribute in MOI or set_attribute in JuMP.

    MiniZinc.jl supports the following options:

    • model_filename::String = "": the location at which to write out the .mzn file during optimization. This option can be helpful during debugging. If left empty, a temporary file will be used instead.
    diff --git a/previews/PR3545/packages/MosekTools/index.html b/previews/PR3545/packages/MosekTools/index.html new file mode 100644 index 00000000000..ba65e2f029c --- /dev/null +++ b/previews/PR3545/packages/MosekTools/index.html @@ -0,0 +1,10 @@ + +jump-dev/MosekTools.jl · JuMP

    MosekTools.jl

    MosekTools.jl is the MathOptInterface.jl implementation for the MOSEK solver.

    The low-level solver API for MOSEK is found in the package Mosek.jl.

    Affiliation

    MosekTools.jl is maintained by the JuMP community and is not officially supported by MOSEK. However, Mosek.jl is an officially supported product of MOSEK.

    License

    MosekTools.jl is licensed under the MIT License.

    The underlying solver is a closed-source commercial product for which you must obtain a license.

    Installation

    The latest release of this package and the master branch are to be used with the latest release of Mosek.jl (which uses MOSEK v10).

    To use MOSEK v9 (resp. v8), use the v0.12.x (resp. v0.7.x) releases of this package, and the mosekv9 (resp. mosekv8) branch and v1.2.x (resp. v0.9.x) releases of Mosek.jl.

    See the following table for a summary:

    MOSEKMosek.jlMosekTools.jl releaseMosekTools.jl branch
    v10v10v0.13master
    v9v0.12v0.12mosekv9
    v8v0.9v0.7mosekv8

    Use with JuMP

    using JuMP
    +using MosekTools
    +model = Model(Mosek.Optimizer)
    +set_attribute(model, "QUIET", true)
    +set_attribute(model, "INTPNT_CO_TOL_DFEAS", 1e-7)

    Options

    The parameter QUIET is a special parameter that when set to true disables all Mosek printing output.

    All other parameters can be found in the Mosek documentation.

    Note that the prefix MSK_IPAR_ (for integer parameters), MSK_DPAR_ (for floating point parameters) or MSK_SPAR_ (for string parameters) are optional. If they are not given, they are inferred from the type of the value. For example, in the example above, as 1e-7 is a floating point number, the parameters name used is MSK_DPAR_INTPNT_CO_TOL_DFEAS.

    diff --git a/previews/PR3545/packages/MultiObjectiveAlgorithms/index.html b/previews/PR3545/packages/MultiObjectiveAlgorithms/index.html new file mode 100644 index 00000000000..6c4678ef51d --- /dev/null +++ b/previews/PR3545/packages/MultiObjectiveAlgorithms/index.html @@ -0,0 +1,12 @@ + +jump-dev/MultiObjectiveAlgorithms.jl · JuMP
    An image of the Moa bird. Licensed into the Public Domain by https://freesvg.org/moa

    MultiObjectiveAlgorithms.jl

    Build Status codecov

    MultiObjectiveAlgorithms.jl (MOA) is a collection of algorithms for multi-objective optimization.

    License

    MultiObjectiveAlgorithms.jl is licensed under the MPL 2.0 License.

    Installation

    Install MOA using Pkg.add:

    import Pkg
    +Pkg.add("MultiObjectiveAlgorithms")

    Use with JuMP

    Use MultiObjectiveAlgorithms with JuMP as follows:

    using JuMP
    +import HiGHS
    +import MultiObjectiveAlgorithms as MOA
    +model = JuMP.Model(() -> MOA.Optimizer(HiGHS.Optimizer))
    +set_attribute(model, MOA.Algorithm(), MOA.Dichotomy())
    +set_attribute(model, MOA.SolutionLimit(), 4)

    Replace HiGHS.Optimizer with an optimizer capable of solving a single-objective instance of your optimization problem.

    You may set additional optimizer attributes, the supported attributes depend on the choice of solution algorithm.

    Algorithm

    Set the algorithm using the MOA.Algorithm() attribute.

    The value must be one of the algorithms supported by MOA:

    • MOA.Chalmet()
    • MOA.Dichotomy()
    • MOA.DominguezRios()
    • MOA.EpsilonConstraint()
    • MOA.Hierarchical()
    • MOA.KirlikSayin()
    • MOA.Lexicographic() [default]
    • MOA.TambyVanderpooten()

    Consult their docstrings for details.

    Other optimizer attributes

    There are a number of optimizer attributes supported by the algorithms in MOA.

    Each algorithm supports only a subset of the attributes. Consult the algorithm's docstring for details on which attributes it supports, and how it uses them in the solution process.

    • MOA.EpsilonConstraintStep()
    • MOA.LexicographicAllPermutations()
    • MOA.ObjectiveAbsoluteTolerance(index::Int)
    • MOA.ObjectivePriority(index::Int)
    • MOA.ObjectiveRelativeTolerance(index::Int)
    • MOA.ObjectiveWeight(index::Int)
    • MOA.SolutionLimit()
    • MOI.TimeLimitSec()
    diff --git a/previews/PR3545/packages/NEOSServer/index.html b/previews/PR3545/packages/NEOSServer/index.html new file mode 100644 index 00000000000..ba8f82ad7b5 --- /dev/null +++ b/previews/PR3545/packages/NEOSServer/index.html @@ -0,0 +1,31 @@ + +odow/NEOSServer.jl · JuMP

    NEOSServer.jl

    Build Status codecov

    NEOSServer.jl is a wrapper for the NEOS Server, a free internet-based service for solving numerical optimization problems.

    See here for the full list of solvers and input formats that NEOS supports.

    License

    NEOSServer.jl is licensed under the MIT License.

    However, use of the NEOS Server requires you to comply with NEOS Server terms of use. In particular, the commercial solvers are to be used solely for academic, non-commercial research purposes.

    Installation

    Install NEOSServer.jl using the package manager:

    import Pkg
    +Pkg.add("NEOSServer")

    The NEOS API

    This package contains an interface for the NEOS XML-RPC API.

    The following example shows how you can interact with the API. Wrapped XML-RPC functions begin with neos_ and are exported.

    using NEOSServer
    +
    +# Create a server. You must supply a valid email:
    +server = NEOSServer.Server("me@mydomain.com")
    +
    +# Print the NEOS welcome message:
    +println(neos_welcome(server))
    +
    +# Get an XML template:
    +xml_string = neos_getSolverTemplate(server, "milp", "Cbc", "AMPL")
    +
    +# Modify template with problem data...
    +
    +# Submit the XML job to NEOS:
    +job = neos_submitJob(server, xml_string)
    +
    +# Get the status of the Job from NEOS:
    +status = neos_getJobStatus(server, job)
    +
    +# Get the final results:
    +results = neos_getFinalResults(server, job)

    Use with JuMP

    Use NEOSServer.jl with JuMP as follows:

    using JuMP, NEOSServer
    +
    +model = Model() do
    +    NEOSServer.Optimizer(email="me@mydomain.com", solver="Ipopt")
    +end

    Note: NEOSServer.Optimizer is limited to the following solvers:

    • "CPLEX"
    • "FICO-Xpress"
    • "Ipopt"
    • "Knitro"
    • "MOSEK"
    • "OCTERACT"
    • "SNOPT"

    NEOS Limits

    NEOS currently limits jobs to an 8 hour time limit, 3 GB of memory, and a 16 MB submission file. If your model exceeds these limits, NEOSServer.jl may be unable to return useful information to the user.

    diff --git a/previews/PR3545/packages/NLopt/index.html b/previews/PR3545/packages/NLopt/index.html new file mode 100644 index 00000000000..9393c23421e --- /dev/null +++ b/previews/PR3545/packages/NLopt/index.html @@ -0,0 +1,9 @@ + +JuliaOpt/NLopt.jl · JuMP

    NLopt.jl

    Build Status codecov

    NLopt.jl is a wrapper for the NLopt library.

    License

    NLopt.jl is licensed under the MIT License.

    The underlying solver, stevengj/nlopt, is licensed under the LGPL v3.0 license.

    Installation

    Install NLopt.jl using the Julia package manager:

    import Pkg
    +Pkg.add("NLopt")

    In addition to installing the NLopt.jl package, this will also download and install the NLopt binaries. You do not need to install NLopt separately.

    Use with JuMP

    You can use NLopt with JuMP as follows:

    using JuMP, NLopt
    +model = Model(NLopt.Optimizer)
    +set_attribute(model, "algorithm", :LD_MMA)

    Options

    The algorithm attribute is required. The value must be one of the supported NLopt algorithms.

    Documentation

    For more details, see the NLopt.jl README or the NLopt documentation.

    diff --git a/previews/PR3545/packages/OSQP/index.html b/previews/PR3545/packages/OSQP/index.html new file mode 100644 index 00000000000..cdae843b8c8 --- /dev/null +++ b/previews/PR3545/packages/OSQP/index.html @@ -0,0 +1,9 @@ + +osqp/OSQP.jl · JuMP

    OSQP.jl

    Build Status codecov.io

    OSQP.jl is a Julia wrapper for OSQP: the Operator Splitting QP Solver.

    License

    OSQP.jl is licensed under the Apache-2.0 license.

    The upstream solver, osqp/osqp is also licensed under the Apache-2.0 license.

    Installation

    Install OSQP.jl using the Julia package manager

    import Pkg
    +Pkg.add("OSQP")

    Problem class

    The OSQP (Operator Splitting Quadratic Program) solver is a numerical optimization package for solving problems in the form

    minimize        0.5 x' P x + q' x
    +
    +subject to      l <= A x <= u

    where x in R^n is the optimization variable. The objective function is defined by a positive semidefinite matrix P in S^n_+ and vector q in R^n. The linear constraints are defined by matrix A in R^{m x n} and vectors l in R^m U {-inf}^m, u in R^m U {+inf}^m.

    Documentation

    Detailed documentation is available at https://osqp.org/.

    diff --git a/previews/PR3545/packages/PATHSolver/index.html b/previews/PR3545/packages/PATHSolver/index.html new file mode 100644 index 00000000000..b88ff6376fa --- /dev/null +++ b/previews/PR3545/packages/PATHSolver/index.html @@ -0,0 +1,168 @@ + +chkwon/PATHSolver.jl · JuMP

    PATHSolver.jl

    Build Status codecov

    PATHSolver.jl is a wrapper for the PATH solver.

    The wrapper has two components:

    You can solve any complementarity problem using the wrapper around the C API, although you must manually provide the callback functions, including the Jacobian.

    The MathOptInterface wrapper is more limited, supporting only linear complementarity problems, but it enables PATHSolver to be used with JuMP.

    Affiliation

    This wrapper is maintained by the JuMP community and is not an official wrapper of PATH. However, we are in close contact with the PATH developers, and they have given us permission to re-distribute the PATH binaries for automatic installation.

    License

    PATHSolver.jl is licensed under the MIT License.

    The underlying solver, path is closed source and requires a license.

    Without a license, the PATH Solver can solve problem instances up to with up to 300 variables and 2000 non-zeros. For larger problems, this web page provides a temporary license that is valid for a year.

    You can either store the license in the PATH_LICENSE_STRING environment variable, or you can use the PATHSolver.c_api_License_SetString function immediately after importing the PATHSolver package:

    import PATHSolver
    +PATHSolver.c_api_License_SetString("<LICENSE STRING>")

    where <LICENSE STRING> is replaced by the current license string.

    Installation

    Install PATHSolver.jl as follows:

    import Pkg
    +Pkg.add("PATHSolver")

    By default, PATHSolver.jl will download a copy of the underlying PATH solver. To use a different version of PATH, see the Manual Installation section below.

    Use with JuMP

    julia> using JuMP, PATHSolver
    +
    +julia> M = [
    +           0  0 -1 -1
    +           0  0  1 -2
    +           1 -1  2 -2
    +           1  2 -2  4
    +       ]
    +4×4 Array{Int64,2}:
    + 0   0  -1  -1
    + 0   0   1  -2
    + 1  -1   2  -2
    + 1   2  -2   4
    +
    +julia> q = [2, 2, -2, -6]
    +4-element Array{Int64,1}:
    +  2
    +  2
    + -2
    + -6
    +
    +julia> model = Model(PATHSolver.Optimizer)
    +A JuMP Model
    +Feasibility problem with:
    +Variables: 0
    +Model mode: AUTOMATIC
    +CachingOptimizer state: EMPTY_OPTIMIZER
    +Solver name: Path 5.0.00
    +
    +julia> set_optimizer_attribute(model, "output", "no")
    +
    +julia> @variable(model, x[1:4] >= 0)
    +4-element Array{VariableRef,1}:
    + x[1]
    + x[2]
    + x[3]
    + x[4]
    +
    +julia> @constraint(model, M * x .+ q ⟂ x)
    +[-x[3] - x[4] + 2, x[3] - 2 x[4] + 2, x[1] - x[2] + 2 x[3] - 2 x[4] - 2, x[1] + 2 x[2] - 2 x[3] + 4 x[4] - 6, x[1], x[2], x[3], x[4]] ∈ MOI.Complements(4)
    +
    +julia> optimize!(model)
    +Reading options file /var/folders/bg/dzq_hhvx1dxgy6gb5510pxj80000gn/T/tmpiSsCRO
    +Read of options file complete.
    +
    +Path 5.0.00 (Mon Aug 19 10:57:18 2019)
    +Written by Todd Munson, Steven Dirkse, Youngdae Kim, and Michael Ferris
    +
    +julia> value.(x)
    +4-element Array{Float64,1}:
    + 2.8
    + 0.0
    + 0.7999999999999998
    + 1.2
    +
    +julia> termination_status(model)
    +LOCALLY_SOLVED::TerminationStatusCode = 4

    Note that options are set using JuMP.set_optimizer_attribute.

    The list of options supported by PATH can be found here: https://pages.cs.wisc.edu/~ferris/path/options.pdf

    MathOptInterface API

    The Path 5.0.03 optimizer supports the following constraints and attributes.

    List of supported variable types:

    List of supported constraint types:

    List of supported model attributes:

    Use with the C API

    PATHSolver.jl wraps the PATH C API using PATHSolver.c_api_XXX for the C method XXX. However, using the C API directly from Julia can be challenging, particularly with respect to avoiding issues with Julia's garbage collector.

    Instead, we recommend that you use the PATHSolver.solve_mcp function, which wrappers the C API into a single call. See the docstring of PATHSolver.solve_mcp for a detailed description of the arguments.

    Here is the same example using PATHSolver.solve_mcp. Note that you must manually construct the sparse Jacobian callback.

    julia> import PATHSolver
    +
    +julia> M = [
    +           0  0 -1 -1
    +           0  0  1 -2
    +           1 -1  2 -2
    +           1  2 -2  4
    +       ]
    +4×4 Matrix{Int64}:
    + 0   0  -1  -1
    + 0   0   1  -2
    + 1  -1   2  -2
    + 1   2  -2   4
    +
    +julia> q = [2, 2, -2, -6]
    +4-element Vector{Int64}:
    +  2
    +  2
    + -2
    + -6
    +
    +julia> function F(n::Cint, x::Vector{Cdouble}, f::Vector{Cdouble})
    +           @assert n == length(x) == length(f)
    +           f .= M * x .+ q
    +           return Cint(0)
    +       end
    +F (generic function with 1 method)
    +
    +julia> function J(
    +           n::Cint,
    +           nnz::Cint,
    +           x::Vector{Cdouble},
    +           col::Vector{Cint},
    +           len::Vector{Cint},
    +           row::Vector{Cint},
    +           data::Vector{Cdouble},
    +       )
    +           @assert n == length(x) == length(col) == length(len) == 4
    +           @assert nnz == length(row) == length(data)
    +           i = 1
    +           for c in 1:n
    +               col[c], len[c] = i, 0
    +               for r in 1:n
    +                   if !iszero(M[r, c])
    +                       row[i], data[i] = r, M[r, c]
    +                       len[c] += 1
    +                       i += 1
    +                   end
    +               end
    +           end
    +           return Cint(0)
    +       end
    +J (generic function with 1 method)
    +
    +julia> status, z, info = PATHSolver.solve_mcp(
    +           F,
    +           J,
    +           fill(0.0, 4),  # Lower bounds
    +           fill(Inf, 4),  # Upper bounds
    +           fill(0.0, 4);  # Starting point
    +           nnz = 12,      # Number of nonzeros in the Jacobian
    +           output = "yes",
    +       )
    +Reading options file /var/folders/bg/dzq_hhvx1dxgy6gb5510pxj80000gn/T/jl_iftYBS
    + > output yes
    +Read of options file complete.
    +
    +Path 5.0.03 (Fri Jun 26 09:58:07 2020)
    +Written by Todd Munson, Steven Dirkse, Youngdae Kim, and Michael Ferris
    +
    +Crash Log
    +major  func  diff  size  residual    step       prox   (label)
    +    0     0             1.2649e+01             0.0e+00 (f[    4])
    +    1     2     4     2 1.0535e+01  8.0e-01    0.0e+00 (f[    1])
    +    2     3     2     4 8.4815e-01  1.0e+00    0.0e+00 (f[    4])
    +    3     4     0     3 4.4409e-16  1.0e+00    0.0e+00 (f[    3])
    +pn_search terminated: no basis change.
    +
    +Major Iteration Log
    +major minor  func  grad  residual    step  type prox    inorm  (label)
    +    0     0     5     4 4.4409e-16           I 0.0e+00 4.4e-16 (f[    3])
    +
    +Major Iterations. . . . 0
    +Minor Iterations. . . . 0
    +Restarts. . . . . . . . 0
    +Crash Iterations. . . . 3
    +Gradient Steps. . . . . 0
    +Function Evaluations. . 5
    +Gradient Evaluations. . 4
    +Basis Time. . . . . . . 0.000016
    +Total Time. . . . . . . 0.044383
    +Residual. . . . . . . . 4.440892e-16
    +(PATHSolver.MCP_Solved, [2.8, 0.0, 0.8, 1.2], PATHSolver.Information(4.4408920985006247e-16, 0.0, 0.0, 0.044383, 1.6e-5, 0.0, 0, 0, 3, 5, 4, 0, 0, 0, 0, false, false, false, true, false, false, false))
    +
    +julia> status
    +MCP_Solved::MCP_Termination = 1
    +
    +julia> z
    +4-element Vector{Float64}:
    + 2.8
    + 0.0
    + 0.8
    + 1.2

    Thread safety

    PATH is not thread-safe and there are no known work-arounds. Do not run it in parallel using Threads.@threads. See issue #62 for more details.

    Factorization methods

    By default, PATHSolver.jl will download the LUSOL shared library. To use LUSOL, set the following options:

    model = Model(PATHSolver.Optimizer)
    +set_optimizer_attribute(model, "factorization_method", "blu_lusol")
    +set_optimizer_attribute(model, "factorization_library_name", PATHSolver.LUSOL_LIBRARY_PATH)

    To use factorization_method umfpack you will need the umfpack shared library that is available directly from the developers of that code for academic use.

    Manual installation

    By default PATHSolver.jl will download a copy of the libpath library. If you already have one installed and want to use that, set the PATH_JL_LOCATION environment variable to point to the libpath50.xx library.

    diff --git a/previews/PR3545/packages/Pajarito/index.html b/previews/PR3545/packages/Pajarito/index.html new file mode 100644 index 00000000000..e7d70996f05 --- /dev/null +++ b/previews/PR3545/packages/Pajarito/index.html @@ -0,0 +1,30 @@ + +jump-dev/Pajarito.jl · JuMP

    Pajarito.jl

    Build Status codecov

    Pajarito is a mixed-integer convex programming (MICP) solver package written in Julia.

    MICP problems are convex except for restrictions that some variables take binary or integer values.

    Pajarito solves MICP problems in conic form, by constructing sequential polyhedral outer approximations of the conic feasible set.

    The underlying algorithm has theoretical finite-time convergence under reasonable assumptions.

    Pajarito accesses state-of-the-art MILP solvers and continuous conic solvers through MathOptInterface.

    Pavito

    For algorithms that use a derivative-based nonlinear programming (NLP) solver (for example, Ipopt) instead of a conic solver, use Pavito.

    Pavito is a convex mixed-integer nonlinear programming (convex MINLP) solver. Because Pavito relies on gradient cuts, it can fail near points of non-differentiability. Pajarito may be more robust than Pavito on non-smooth problems.

    License

    Pajarito.jl is licensed under the MPL 2.0 license.

    Installation

    Install Pajarito using Pkg.add:

    import Pkg
    +Pkg.add("Pajarito")

    MIP and continuous solvers

    The algorithm implemented by Pajarito itself is relatively simple, and most of the hard work is performed by the MIP outer approximation (OA) solver and the continuous conic solver.

    Therefore, in addition to installing Pajarito, you must also install a mixed-integer linear programming solver and a continuous conic solver.

    The performance of Pajarito depends on these two types of solvers.

    The OA solver (typically a mixed-integer linear solver) is specified by the oa_solver option. You must first load the Julia package that provides this solver, for example, using Gurobi. The continuous conic solver is specified by the conic_solver option.

    See JuMP's list of supported solvers.

    Use with JuMP

    To use Pajarito with JuMP, use:

    using JuMP, Pajarito, HiGHS, Hypatia
    +model = Model(
    +    optimizer_with_attributes(
    +        Pajarito.Optimizer,
    +        "oa_solver" => optimizer_with_attributes(
    +            HiGHS.Optimizer,
    +            MOI.Silent() => true,
    +            "mip_feasibility_tolerance" => 1e-8,
    +            "mip_rel_gap" => 1e-6,
    +        ),
    +        "conic_solver" =>
    +            optimizer_with_attributes(Hypatia.Optimizer, MOI.Silent() => true),
    +    )
    +)
    +set_attribute(model, "time_limit", 60)

    Options

    We list Pajarito's options below.

    • verbose::Bool toggles printing
    • tol_feas::Float64 is the feasibility tolerance for conic constraints
    • tol_rel_gap::Float64 is the relative optimality gap tolerance
    • tol_abs_gap::Float64 is the absolute optimality gap tolerance
    • time_limit::Float64 sets the time limit (in seconds)
    • iteration_limit::Int sets the iteration limit (for the iterative method)
    • use_iterative_method::Union{Nothing,Bool} toggles the iterative algorithm; if nothing is specified, Pajarito defaults to the OA-solver-driven (single tree) algorithm if lazy callbacks are supported by the OA solver
    • use_extended_form::Bool toggles the use of extended formulations for the second-order cone
    • solve_relaxation::Bool toggles solution of the continuous conic relaxation
    • solve_subproblems::Bool toggles solution of the continuous conic subproblems
    • use_init_fixed_oa::Bool toggles initial fixed OA cuts
    • oa_solver::Union{Nothing,MOI.OptimizerWithAttributes} is the OA solver
    • conic_solver::Union{Nothing,MOI.OptimizerWithAttributes} is the conic solver

    Pajarito may require tuning of parameters to improve convergence.

    For example, it often helps to tighten the OA solver's integrality tolerance. OA solver and conic solver options must be specified directly to those solvers.

    Note: if solve_subproblems is true, Pajarito usually returns a solution constructed from one of the conic solver's feasible solutions; since the conic solver is not subject to the same feasibility tolerances as the OA solver, Pajarito's solution will not necessarily satisfy tol_feas.

    Cone interface

    Pajarito has a generic cone interface (see the cones folder that allows the user to add support for new convex cones.

    To illustrate, in the experimental package PajaritoExtras we have extended Pajarito by adding support for several cones recognized by Hypatia.jl (a continuous conic solver with its own generic cone interface).

    The examples folder of PajaritoExtras also contains many applied mixed-integer convex problems that are solved using Pajarito.

    Bug reports and support

    Please report any issues via the GitHub issue tracker.

    All types of issues are welcome and encouraged; this includes bug reports, documentation typos, and feature requests. The Optimization (Mathematical) category on Discourse is appropriate for general discussion.

    References

    If you find Pajarito useful in your work, we kindly request that you cite the following paper (arXiv preprint), which is recommended reading for advanced users:

    @article{CoeyLubinVielma2020,
    +    title={Outer approximation with conic certificates for mixed-integer convex problems},
    +    author={Coey, Chris and Lubin, Miles and Vielma, Juan Pablo},
    +    journal={Mathematical Programming Computation},
    +    volume={12},
    +    number={2},
    +    pages={249--293},
    +    year={2020},
    +    publisher={Springer}
    +}

    Note this paper describes a legacy MathProgBase version of Pajarito, which is available on the mathprogbase branch of this repository. Starting with version v0.8.0, Pajarito supports MathOptInterface instead of MathProgBase.

    diff --git a/previews/PR3545/packages/ParametricOptInterface/index.html b/previews/PR3545/packages/ParametricOptInterface/index.html new file mode 100644 index 00000000000..fbef6057b1c --- /dev/null +++ b/previews/PR3545/packages/ParametricOptInterface/index.html @@ -0,0 +1,16 @@ + +jump-dev/ParametricOptInterface.jl · JuMP

    ParametricOptInterface.jl

    stable docs development docs Build Status Coverage

    ParametricOptInterface.jl is a package that adds parameters to models in JuMP and MathOptInterface.

    License

    ParametricOptInterface.jl is licensed under the MIT License.

    Installation

    Install ParametricOptInterface using Pkg.add:

    import Pkg
    +Pkg.add("ParametricOptInterface")

    Documentation

    The documentation for ParametricOptInterface.jl includes a detailed description of the theory behind the package, along with examples, tutorials, and an API reference.

    Use with JuMP

    Use ParametricOptInterface with JuMP by following this brief example:

    using JuMP, HiGHS
    +import ParametricOptInterface as POI
    +model = Model(() -> POI.Optimizer(HiGHS.Optimizer()))
    +@variable(model, x)
    +@variable(model, p in POI.Parameter(1.0))
    +@constraint(model, cons, x + p >= 3)
    +@objective(model, Min, 2x)
    +optimize!(model)
    +MOI.set(model, POI.ParameterValue(), p, 2.0)
    +optimize!(model)

    GSOC2020

    ParametricOptInterface began as a NumFOCUS sponsored Google Summer of Code (2020) project.

    diff --git a/previews/PR3545/packages/Pavito/index.html b/previews/PR3545/packages/Pavito/index.html new file mode 100644 index 00000000000..d55c5ef894f --- /dev/null +++ b/previews/PR3545/packages/Pavito/index.html @@ -0,0 +1,16 @@ + +jump-dev/Pavito.jl · JuMP

    Pavito.jl

    Build Status Coverage

    Pavito.jl is a mixed-integer convex programming (MICP) solver package written in Julia.

    MICP problems are convex, except for restrictions that some variables take binary or integer values.

    Pavito solves MICP problems by constructing sequential polyhedral outer-approximations of the convex feasible set, similar to Bonmin.

    Pavito accesses state-of-the-art MILP solvers and continuous, derivative-based nonlinear programming (NLP) solvers through MathOptInterface.

    For algorithms that use a conic solver instead of an NLP solver, use Pajarito. Pajarito is a robust mixed-integer conic solver that can handle such established problem classes as mixed-integer second-order cone programming (MISOCP) and mixed-integer semidefinite programming (MISDP).

    License

    Pavito.jl is licensed under the MPL 2.0 license.

    Installation

    Install Pavito using Pkg.add:

    import Pkg
    +Pkg.add("Pavito")

    Use with JuMP

    To use Pavito with JuMP, use Pavito.Optimizer:

    using JuMP, Pavito
    +import GLPK, Ipopt
    +model = Model(
    +    optimizer_with_attributes(
    +        Pavito.Optimizer,
    +        "mip_solver" => optimizer_with_attributes(GLPK.Optimizer),
    +        "cont_solver" =>
    +            optimizer_with_attributes(Ipopt.Optimizer, "print_level" => 0),
    +    ),
    +)

    The algorithm implemented by Pavito itself is relatively simple; most of the hard work is performed by the MILP solver passed as mip_solver and the NLP solver passed as cont_solver.

    The performance of Pavito depends on these two types of solvers.

    For better performance, you should use a commercial MILP solver such as CPLEX or Gurobi.

    Options

    The following optimizer attributes can set to a Pavito.Optimizer to modify its behavior:

    • log_level::Int Verbosity flag: 0 for quiet, higher for basic solve info
    • timeout::Float64 Time limit for algorithm (in seconds)
    • rel_gap::Float64 Relative optimality gap termination condition
    • mip_solver_drives::Bool Let MILP solver manage convergence ("branch and cut")
    • mip_solver::MOI.OptimizerWithAttributes MILP solver
    • cont_solver::MOI.OptimizerWithAttributes Continuous NLP solver

    Pavito is not yet numerically robust and may require tuning of parameters to improve convergence.

    If the default parameters don't work for you, please let us know by opening an issue.

    For improved Pavito performance, MILP solver integrality tolerance and feasibility tolerances should typically be tightened, for example to 1e-8.

    Bug reports and support

    Please report any issues via the GitHub issue tracker. All types of issues are welcome and encouraged; this includes bug reports, documentation typos, feature requests, etc. The Optimization (Mathematical) category on Discourse is appropriate for general discussion.

    diff --git a/previews/PR3545/packages/Plasmo/index.html b/previews/PR3545/packages/Plasmo/index.html new file mode 100644 index 00000000000..6a533a1758f --- /dev/null +++ b/previews/PR3545/packages/Plasmo/index.html @@ -0,0 +1,49 @@ + +plasmo-dev/Plasmo.jl · JuMP

    CI codecov DOI

    Plasmo.jl

    Plasmo.jl (Platform for Scalable Modeling and Optimization) is a graph-based algebraic modeling framework that adopts a modular style to create mathematical optimization problems and manage distributed and hierarchical structures. The package has been developed as a JuMP extension and consequently supports most JuMP syntax and functions.

    Overview

    The core data structure in Plasmo.jl is the OptiGraph. The optigraph contains a set of optinodes which represent self-contained optimization problems and optiedges that represent coupling between optinodes (which produces an underlying hypergraph structure of optinodes and optiedges). Optigraphs can further be embedded within other optigraphs to create nested hierarchical graph structures. The graph structures obtained using Plasmo.jl can be used for simple model and data management, but they can also be used to perform graph partitioning or develop interfaces to structured optimization solvers.

    License

    Plasmo is licensed under the MPL 2.0 license.

    Installation

    Install Plasmo using Pkg.add:

    import Pkg
    +Pkg.add("Plasmo")

    Documentation

    The latest documentation is available through GitHub Pages. Additional examples can be found in the examples folder.

    Simple Example

    using Plasmo
    +using Ipopt
    +
    +#create an optigraph
    +graph = OptiGraph()
    +
    +#add nodes to an optigraph
    +@optinode(graph, n1)
    +@optinode(graph, n2)
    +
    +#add variables, constraints, and objective functions to nodes
    +@variable(n1, 0 <= x <= 2)
    +@variable(n1, 0 <= y <= 3)
    +@constraint(n1, x+y <= 4)
    +@objective(n1, Min, x)
    +
    +@variable(n2,x)
    +@NLconstraint(n2, exp(x) >= 2)
    +
    +#add a linkconstraint to couple nodes
    +@linkconstraint(graph, n1[:x] == n2[:x])
    +
    +#optimize with Ipopt
    +set_optimizer(graph, Ipopt.Optimizer)
    +optimize!(graph)
    +
    +#Print solution values
    +println("n1[:x] = ", value(n1[:x]))
    +println("n2[:x] = ", value(n2[:x]))

    Acknowledgments

    This code is based on work supported by the following funding agencies:

    • U.S. Department of Energy (DOE), Office of Science, under Contract No. DE-AC02-06CH11357
    • DOE Office of Electricity Delivery and Energy Reliability’s Advanced Grid Research and Development program at Argonne National Laboratory
    • National Science Foundation under award NSF-EECS-1609183 and under award CBET-1748516

    The primary developer is Jordan Jalving (@jalving) with support from the following contributors.

    • Victor Zavala (University of Wisconsin-Madison)
    • Yankai Cao (University of British Columbia)
    • Kibaek Kim (Argonne National Laboratory)
    • Sungho Shin (University of Wisconsin-Madison)

    Citing Plasmo.jl

    If you find Plasmo.jl useful for your work, you may cite the manuscript as:

    @article{JalvingShinZavala2022,
    +  title={A Graph-Based Modeling Abstraction for Optimization: Concepts and Implementation in Plasmo.jl},
    +  author={Jordan Jalving and Sungho Shin and Victor M. Zavala},
    +  journal={Mathematical Programming Computation},
    +  year={2022},
    +  volume={14},
    +  pages={699 - 747}
    +}

    There is also a freely available pre-print:

    @misc{JalvingShinZavala2020,
    +title = {A Graph-Based Modeling Abstraction for Optimization: Concepts and Implementation in Plasmo.jl},
    +author = {Jordan Jalving and Sungho Shin and Victor M. Zavala},
    +year = {2020},
    +eprint = {2006.05378},
    +archivePrefix = {arXiv},
    +primaryClass = {math.OC}
    +}
    diff --git a/previews/PR3545/packages/PolyJuMP/index.html b/previews/PR3545/packages/PolyJuMP/index.html new file mode 100644 index 00000000000..8567862c8e4 --- /dev/null +++ b/previews/PR3545/packages/PolyJuMP/index.html @@ -0,0 +1,7 @@ + +jump-dev/PolyJuMP.jl · JuMP
    diff --git a/previews/PR3545/packages/ProxSDP/index.html b/previews/PR3545/packages/ProxSDP/index.html new file mode 100644 index 00000000000..343c5fbf702 --- /dev/null +++ b/previews/PR3545/packages/ProxSDP/index.html @@ -0,0 +1,59 @@ + +mariohsouto/ProxSDP.jl · JuMP
    logo

    ProxSDP is an open-source semidefinite programming (SDP) solver based on the paper "Exploiting Low-Rank Structure in Semidefinite Programming by Approximate Operator Splitting".

    The main advantage of ProxSDP over other state-of-the-art solvers is the ability to exploit the low-rank structure inherent to several SDP problems.

    Overview of problems ProxSDP can solve

    License

    ProxSDP is licensed under the MIT License.

    Installation

    Install ProxSDP using Julia package manager:

    import Pkg
    +Pkg.add("ProxSDP")

    Documentation

    The online documentation is available at https://mariohsouto.github.io/ProxSDP.jl/latest/.

    Usage

    Consider the semidefinite programming relaxation of the max-cut problem, as in:

    max   0.25 * W•X
    +s.t.  diag(X) = 1,
    +      X ≽ 0,

    JuMP

    This problem can be solved by the following code using ProxSDP and JuMP.

    # Load packages
    +using ProxSDP, JuMP, LinearAlgebra
    +# Number of vertices
    +n = 4
    +# Graph weights
    +W = [
    +    18.0  -5.0  -7.0  -6.0
    +    -5.0   6.0   0.0  -1.0
    +    -7.0   0.0   8.0  -1.0
    +    -6.0  -1.0  -1.0   8.0
    +]
    +# Build Max-Cut SDP relaxation via JuMP
    +model = Model(ProxSDP.Optimizer)
    +set_optimizer_attribute(model, "log_verbose", true)
    +set_optimizer_attribute(model, "tol_gap", 1e-4)
    +set_optimizer_attribute(model, "tol_feasibility", 1e-4)
    +@variable(model, X[1:n, 1:n], PSD)
    +@objective(model, Max, 0.25 * LinearAlgebra.dot(W, X))
    +@constraint(model, LinearAlgebra.diag(X) .== 1)
    +# Solve optimization problem with ProxSDP
    +optimize!(model)
    +# Retrieve solution
    +Xsol = value.(X)

    Convex.jl

    Another alternative is to use ProxSDP via Convex.jl:

    # Load packages
    +using Convex, ProxSDP
    +# Number of vertices
    +n = 4
    +# Graph weights
    +W = [
    +    18.0  -5.0  -7.0  -6.0
    +    -5.0   6.0   0.0  -1.0
    +    -7.0   0.0   8.0  -1.0
    +    -6.0  -1.0  -1.0   8.0
    +]
    +# Define optimization problem
    +X = Semidefinite(n)
    +problem = maximize(0.25 * dot(W, X), diag(X) == 1)
    +# Solve optimization problem with ProxSDP
    +solve!(problem, ProxSDP.Optimizer(log_verbose=true, tol_gap=1e-4, tol_feasibility=1e-4))
    +# Get the objective value
    +problem.optval
    +# Retrieve solution
    +evaluate(X)

    Citing this package

    The published version of the paper can be found here and the arXiv version here.

    We kindly request that you cite the paper as:

    @article{souto2020exploiting,
    +  author = {Mario Souto and Joaquim D. Garcia and \'Alvaro Veiga},
    +  title = {Exploiting low-rank structure in semidefinite programming by approximate operator splitting},
    +  journal = {Optimization},
    +  pages = {1-28},
    +  year  = {2020},
    +  publisher = {Taylor & Francis},
    +  doi = {10.1080/02331934.2020.1823387},
    +  URL = {https://doi.org/10.1080/02331934.2020.1823387}
    +}

    The preprint version of the paper can be found here.

    Disclaimer

    • ProxSDP is a research software, therefore it should not be used in production.
    • Please open an issue if you find any problems, developers will try to fix and find alternatives.
    • There is no continuous development for 32-bit systems, the package should work, but might reach some issues.
    • ProxSDP assumes primal and dual feasibility.

    ROAD MAP

    • Support for exponential and power cones
    • Warm start
    diff --git a/previews/PR3545/packages/SCIP/index.html b/previews/PR3545/packages/SCIP/index.html new file mode 100644 index 00000000000..59bcb7ebd41 --- /dev/null +++ b/previews/PR3545/packages/SCIP/index.html @@ -0,0 +1,13 @@ + +scipopt/SCIP.jl · JuMP

    SCIP.jl

    Build Status codecov Genie Downloads

    SCIP.jl is a Julia interface to the SCIP solver.

    Affiliation

    This wrapper is maintained by the SCIP project with the help of the JuMP community.

    License

    SCIP.jl is licensed under the MIT License.

    The underlying solver, scipopt/scip, is licensed under the Apache 2.0 license.

    Installation

    Install SCIP.jl using Pkg.add:

    import Pkg
    +Pkg.add("SCIP")

    On MacOS and Linux, installing the SCIP Julia package will work out of the box and install the SCIP_jll.jl and SCIP_PaPILO_jll.jl dependencies.

    On Windows, a separate installation of SCIP is still mandatory, as detailed in the "Custom installation" section below.

    Custom installations

    If you use an older Julia version, Windows, or you want a custom SCIP installation, you must manually install the SCIP binaries.

    Once installed, set the SCIPOPTDIR environment variable to point to the installation path, that is, depending on your operating system, $SCIPOPTDIR/lib/libscip.so, $SCIPOPTDIR/lib/libscip.dylib, or $SCIPOPTDIR/bin/scip.dll must exist.

    Then, install SCIP.jl using Pkg.add and Pkg.build:

    ENV["SCIPOPTDIR"] = "/Users/Oscar/code/SCIP"
    +import Pkg
    +Pkg.add("SCIP")
    +Pkg.build("SCIP")

    Use with JuMP

    Use SCIP with JuMP as follows:

    using JuMP, SCIP
    +model = Model(SCIP.Optimizer)
    +set_attribute(model, "display/verblevel", 0)
    +set_attribute(model, "limits/gap", 0.05)

    Options

    See the SCIP documentation for a list of supported options.

    MathOptInterface API

    The SCIP optimizer supports the following constraints and attributes.

    List of supported objective functions:

    List of supported variable types:

    List of supported constraint types:

    List of supported model attributes:

    Design considerations

    Wrapping the public API

    All of the public API methods are wrapped and available within the SCIP package. This includes the scip_*.h and pub_*.h headers that are collected in scip.h, as well as all default constraint handlers (cons_*.h.)

    The wrapped functions do not transform any data structures and work on the raw pointers (for example, SCIP* in C, Ptr{SCIP_} in Julia). Convenience wrapper functions based on Julia types are added as needed.

    Memory management

    Programming with SCIP requires dealing with variable and constraint objects that use reference counting for memory management.

    The SCIP.Optimizer wrapper type collects lists of SCIP_VAR* and SCIP_CONS* under the hood, and it releases all references when it is garbage collected itself (via finalize).

    When adding a variable (add_variable) or a constraint (add_linear_constraint), an integer index is returned. This index can be used to retrieve the SCIP_VAR* or SCIP_CONS* pointer via get_var and get_cons respectively.

    Supported nonlinear operators

    Supported operators in nonlinear expressions are as follows:

    • +
    • -
    • *
    • /
    • ^
    • sqrt
    • exp
    • log
    • abs
    • cos
    • sin
    diff --git a/previews/PR3545/packages/SCS/index.html b/previews/PR3545/packages/SCS/index.html new file mode 100644 index 00000000000..7e51f24f93e --- /dev/null +++ b/previews/PR3545/packages/SCS/index.html @@ -0,0 +1,71 @@ + +jump-dev/SCS.jl · JuMP

    SCS.jl

    Build Status codecov

    SCS.jl is a wrapper for the SCS splitting cone solver.

    SCS can solve linear programs, second-order cone programs, semidefinite programs, exponential cone programs, and power cone programs.

    Affiliation

    This wrapper is maintained by the JuMP community and is not a project of the SCS developers.

    License

    SCS.jl is licensed under the MIT License.

    The underlying solver, cvxgrp/scs, is licensed under the MIT License.

    Installation

    Install SCS.jl using the Julia package manager:

    import Pkg
    +Pkg.add("SCS")

    In addition to installing the SCS.jl package, this will also download and install the SCS binaries. (You do not need to install SCS separately.)

    To use a custom binary, read the Custom solver binaries section of the JuMP documentation.

    Use with Convex.jl

    This example shows how we can model a simple knapsack problem with Convex and use SCS to solve it.

    using Convex, SCS
    +items  = [:Gold, :Silver, :Bronze]
    +values = [5.0, 3.0, 1.0]
    +weights = [2.0, 1.5, 0.3]
    +
    +# Define a variable of size 3, each index representing an item
    +x = Variable(3)
    +p = maximize(x' * values, 0 <= x, x <= 1, x' * weights <= 3)
    +solve!(p, SCS.Optimizer)
    +println([items x.value])
    +# [:Gold 0.9999971880377178
    +#  :Silver 0.46667637765641057
    +#  :Bronze 0.9999998036351865]

    Use with JuMP

    This example shows how we can model a simple knapsack problem with JuMP and use SCS to solve it.

    using JuMP, SCS
    +items  = [:Gold, :Silver, :Bronze]
    +values = Dict(:Gold => 5.0,  :Silver => 3.0,  :Bronze => 1.0)
    +weight = Dict(:Gold => 2.0,  :Silver => 1.5,  :Bronze => 0.3)
    +
    +model = Model(SCS.Optimizer)
    +@variable(model, 0 <= take[items] <= 1)  # Define a variable for each item
    +@objective(model, Max, sum(values[item] * take[item] for item in items))
    +@constraint(model, sum(weight[item] * take[item] for item in items) <= 3)
    +optimize!(model)
    +println(value.(take))
    +# 1-dimensional DenseAxisArray{Float64,1,...} with index sets:
    +#     Dimension 1, Symbol[:Gold, :Silver, :Bronze]
    +# And data, a 3-element Array{Float64,1}:
    +#  1.0000002002226671
    +#  0.4666659513182934
    +#  1.0000007732744878

    MathOptInterface API

    The SCS optimizer supports the following constraints and attributes.

    List of supported objective functions:

    List of supported variable types:

    List of supported constraint types:

    List of supported model attributes:

    Options

    All SCS solver options can be set through Convex.jl or MathOptInterface.jl.

    For example:

    model = Model(optimizer_with_attributes(SCS.Optimizer, "max_iters" => 10))
    +
    +# via MathOptInterface:
    +optimizer = SCS.Optimizer()
    +MOI.set(optimizer, MOI.RawOptimizerAttribute("max_iters"), 10)
    +MOI.set(optimizer, MOI.RawOptimizerAttribute("verbose"), 0)

    Common options are:

    • max_iters: the maximum number of iterations to take
    • verbose: turn printing on (1) or off (0)

    See the glbopts.h header for other options.

    Linear solvers

    SCS uses a linear solver internally, see this section of SCS documentation. SCS.jl ships with

    • SCS.DirectSolver (sparse direct, the default) and
    • SCS.LinearSolver (sparse indirect, by conjugate gradient)

    enabled.

    The find currently available linear solvers one can inspect SCS.available_solvers:

    julia> using SCS
    +
    +julia> SCS.available_solvers
    +2-element Vector{DataType}:
    + SCS.DirectSolver
    + SCS.IndirectSolver

    To select the linear solver of choice:

    SCS with MKL Pardiso linear solver

    To enable the MKL Pardiso (direct sparse) solver one needs to load MKL_jll before SCS:

    julia> import Pkg
    +
    +julia> Pkg.add(Pkg.PackageSpec(name = "MKL_jll", version = "2022.2"))
    +
    +julia> using MKL_jll    # This must be called before `using SCS`.
    +
    +julia> using SCS
    +
    +julia> SCS.available_solvers
    +3-element Vector{DataType}:
    + SCS.DirectSolver
    + SCS.IndirectSolver
    + SCS.MKLDirectSolver

    The MKLDirectSolver is available on Linux x86_64 platform only.

    SCS with Sparse GPU indirect solver (CUDA only)

    To enable the indirect linear solver on GPU one needs to load CUDA_jll before SCS:

    julia> import Pkg
    +
    +julia> Pkg.add(Pkg.PackageSpec(name = "CUDA_jll", version = "10.1"))
    +
    +julia> using CUDA_jll  # This must be called before `using SCS`.
    +
    +julia> using SCS
    +
    +julia> SCS.available_solvers
    +3-element Array{DataType,1}:
    + SCS.DirectSolver
    + SCS.IndirectSolver
    + SCS.GpuIndirectSolver

    The GpuIndirectSolver is available on Linux x86_64 platform only.

    Low-level wrapper

    SCS.jl provides a low-level interface to solve a problem directly, without interfacing through MathOptInterface.

    This is an advanced interface with a risk of incorrect usage. For new users, we recommend that you use the JuMP or Convex interfaces instead.

    SCS solves a problem of the form:

    minimize        1/2 * x' * P * x + c' * x
    +subject to      A * x + s = b
    +                s in K

    where K is a product cone of:

    • zero cone
    • positive orthant { x | x ≥ 0 }
    • box cone { (t,x) | t*l ≤ x ≤ t*u}
    • second-order cone (SOC) { (t,x) | ||x||_2 ≤ t }
    • semi-definite cone (SDC) { X | X is psd }
    • exponential cone { (x,y,z) | y e^(x/y) ≤ z, y>0 }
    • power cone { (x,y,z) | x^a * y^(1-a) ≥ |z|, x ≥ 0, y ≥ 0 }
    • dual power cone { (u,v,w) | (u/a)^a * (v/(1-a))^(1-a) ≥ |w|, u ≥ 0, v ≥ 0 }.

    To solve this problem with SCS, call SCS.scs_solve; see the docstring for details.

    diff --git a/previews/PR3545/packages/SDDP/index.html b/previews/PR3545/packages/SDDP/index.html new file mode 100644 index 00000000000..50784636970 --- /dev/null +++ b/previews/PR3545/packages/SDDP/index.html @@ -0,0 +1,6 @@ + +odow/SDDP.jl · JuMP
    diff --git a/previews/PR3545/packages/SDPA/index.html b/previews/PR3545/packages/SDPA/index.html new file mode 100644 index 00000000000..fa6d78b5e31 --- /dev/null +++ b/previews/PR3545/packages/SDPA/index.html @@ -0,0 +1,15 @@ + +jump-dev/SDPA.jl · JuMP

    SDPA.jl

    Build Status codecov

    SDPA.jl is a wrapper for the SDPA semidefinite programming solver in double precision floating point arithmetic.

    Affiliation

    This wrapper is maintained by the JuMP community and is not a product of the SDPA developers.

    License

    SDPA.jl is licensed under the MIT License.

    The underlying solver, SDPA is licensed under the GPL v2 license.

    Installation

    Install SDPA using Pkg.add:

    import Pkg
    +Pkg.add("SDPA")

    In addition to installing the SDPA.jl package, this will also download and install the SDPA binaries. (You do not need to install SDPA separately.)

    If you see an error similar to:

    INFO: Precompiling module GZip.
    +ERROR: LoadError: LoadError: error compiling anonymous: could not load library "libz"

    please see GZip.jl#54 or Flux.jl#343. In particular, in Ubuntu this issue may be resolved by running

    sudo apt-get install zlib1g-dev

    See SDPAFamily for the other solvers, SDPA-GMP, SDPA-DD, and SDPA-QD of the family.

    Use with JuMP

    using JuMP, SDPA
    +model = Model(SDPA.Optimizer)
    +set_attribute(model, "Mode", SDPA.PARAMETER_DEFAULT)

    MathOptInterface API

    The SDPA optimizer supports the following constraints and attributes.

    List of supported objective functions:

    List of supported variable types:

    List of supported constraint types:

    List of supported model attributes:

    Options

    SDPA has three modes that give default value to all ten parameters.

    The following table gives the default values for each parameter and mode.

    ParameterPARAMETER_DEFAULTPARAMETER_UNSTABLE_BUT_FASTPARAMETER_STABLE_BUT_SLOW
    MaxIteration1001001000
    EpsilonStar1.0e-71.0e-71.0e-7
    LambdaStar1.0e+21.0e+21.0e+4
    OmegaStar2.02.02.0
    LowerBound1.0e+51.0e+51.0e+5
    UpperBound1.0e+51.0e+51.0e+5
    BetaStar0.10.010.1
    BetaBar0.20.020.3
    GammaStar0.90.950.8
    EpsilonDash1.0e-71.0e-71.0e-7

    By default, we put SDPA in the SDPA.PARAMETER_DEFAULT mode.

    Change the mode using the "Mode" option:

    using JuMP, SDPA
    +model = Model(SDPA.Optimizer)
    +set_attribute(model, "Mode", SDPA.PARAMETER_STABLE_BUT_SLOW)

    Note that the parameters are set in the order they are given, so you can set a mode and then modify parameters from this mode.

    using JuMP, SDPA
    +model = Model(SDPA.Optimizer)
    +set_attribute(model, "Mode", SDPA.PARAMETER_STABLE_BUT_SLOW)
    +set_attribute(model, "MaxIteration", 100)

    The choice of parameter mode has a large impact on the performance and stability of SDPA, and not necessarily in the way implied by the names of the modes; for example, PARAMETER_UNSTABLE_BUT_FAST can be more stable than the other modes for some problems. You should try each mode to see how it performs on your specific problem. See SDPA.jl#17 for more details.

    diff --git a/previews/PR3545/packages/SDPNAL/index.html b/previews/PR3545/packages/SDPNAL/index.html new file mode 100644 index 00000000000..0a3c7391f80 --- /dev/null +++ b/previews/PR3545/packages/SDPNAL/index.html @@ -0,0 +1,21 @@ + +jump-dev/SDPNAL.jl · JuMP

    SDPNAL.jl

    SDPNAL.jl is wrapper for the SDPNALplus solver.

    The wrapper has two components:

    • an exported sdpnalplus function that is a thin wrapper on top of the sdpnalplus MATLAB function
    • an interface to MathOptInterface

    Affiliation

    This wrapper is maintained by the JuMP community and is not an official wrapper of SDPNALplus.

    License

    SDPNAL.jl is licensed under the MIT License.

    The underlying solver, SDPNALplus is licensed under the Creative Commons Attribution-ShareAlike 4.0 International Public License.

    In addition, SDPNAL requires an installation of MATLAB, which is a closed-source commercial product for which you must obtain a license.

    Use with JuMP

    To use SDPNAL with JuMP, do:

    using JuMP, SDPNAL
    +model = Model(SDPNAL.Optimizer)
    +set_attribute(model, "printlevel", 0)

    Note that, contrary to implementation of other solver-independent interfaces, using SDPNAL from JuMP or MOI fully exploits the particular structures of the SDPNAL interface and does not create superfluous slack variables and equality constraints as discussed in the SDPNAL guide:

    A new interface is necessary to facilitate the modeling of an SDP problem for SDPNAL+ because of latter’s flexibility to directly accept inequality constraints of the form “l ≤ B(X) ≤ u”, and bound constraints of the form “L ≤ X ≤ U”. The flexibility can significantly simplify the generation of the data in the SDPNAL+ format as compared to what need to be done in CVX or YALMIP to reformulate them as equality constraints through introducing extra variables. In addition, the final number of equality constraints present in the data input to SDPNAL+ can also be substantially fewer than those present in CVX or YALMIP. It is important to note here that the number of equality constraints present in the generated problem data can greatly affect the computational efficiency of the solvers, especially for interior-point based solvers.

    Installation

    First, make sure that you satisfy the requirements of the MATLAB.jl Julia package, and that the SDPNALplus software is installed in your MATLAB™ installation.

    Then, install SDPNAL.jl using Pkg.add:

    import Pkg
    +Pkg.add("SDPNAL")

    There is a startup.m file at the root of the SDPNAL folder. This adds all subdirectories recursively when MATLAB starts. However, the interface directory contains a .git subdirectory which contains a very large number of files. Because of this, MATLAB crashes if SDPNAL is in its path because the startup.m requests MATLAB to try to parse all the files in the .git folder. To resolve this problem, delete the startup.m file and .git folder, and add the subdirectories manually your toolbox/local/pathdef.m file as follows:

    function p = pathdef
    +
    +% (...)
    +
    +p = [...
    +%%% BEGIN ENTRIES %%%
    +'/path/to/SDPNALv1.0:', ...
    +'/path/to/SDPNALv1.0/interface:', ...
    +'/path/to/SDPNALv1.0/mexfun:', ...
    +'/path/to/SDPNALv1.0/solver:', ...
    +'/path/to/SDPNALv1.0/solver_main_default:', ...
    +'/path/to/SDPNALv1.0/util:', ...
    +% (...)

    If you have SDPT3 in addition to SDPNAL in the MATLAB path (that is, the toolbox/local/pathdef.m file) then you might have issues because both solvers define a validate function, and this might make SDPNAL call SDPT3's validate function instead of SDPT3's validate function.

    diff --git a/previews/PR3545/packages/SDPT3/index.html b/previews/PR3545/packages/SDPT3/index.html new file mode 100644 index 00000000000..3b7670b9462 --- /dev/null +++ b/previews/PR3545/packages/SDPT3/index.html @@ -0,0 +1,32 @@ + +jump-dev/SDPT3.jl · JuMP

    SDPT3.jl

    SDPT3.jl is wrapper for the SDPT3 solver.

    The wrapper has two components:

    • an exported sdpt3 function that is a thin wrapper on top of the sdpt3 MATLAB function
    • an interface to MathOptInterface

    Affiliation

    This wrapper is maintained by the JuMP community and is not an official wrapper of SDPT3.

    License

    SDPT3.jl is licensed under the MIT License.

    The underlying solver, SDPT3 is licensed under the GPL v2 License.

    In addition, SDPT3 requires an installation of MATLAB, which is a closed-source commercial product for which you must obtain a license.

    Use with JuMP

    To use SDPT3 with JuMP, do:

    using JuMP, SDPT3
    +model = Model(SDPT3.Optimizer)
    +set_attribute(model, "printlevel", 0)

    Installation

    First, make sure that you satisfy the requirements of the MATLAB.jl Julia package, and that the SeDuMi software is installed in your MATLAB™ installation.

    Then, install SDPT3.jl using Pkg.add:

    import Pkg
    +Pkg.add("SDPT3")

    SDPT3 not in PATH

    If you get the error:

    Error using save
    +Variable 'jx_sdpt3_arg_out_1' not found.
    +
    +ERROR: LoadError: MATLAB.MEngineError("failed to get variable jx_sdpt3_arg_out_1 from MATLAB session")
    +Stacktrace:
    +[...]

    The error means that we could not find the sdpt3 function with one output argument using the MATLAB C API. This most likely means that you did not add SDPT3 to the MATLAB's path (that is, the toolbox/local/pathdef.m file).

    If modifying toolbox/local/pathdef.m does not work, the following should work, where /path/to/sdpt3/ is the directory where the sdpt3 folder is located:

    julia> using MATLAB
    +
    +julia> cd("/path/to/sdpt3/") do
    +           MATLAB.mat"install_sdpt3"
    +       end
    +
    +julia> MATLAB.mat"savepath"

    An alternative fix is suggested in the following issue.

    Error in validate

    If you get the error:

    Brace indexing is not supported for variables of this type.
    +
    +Error in validate
    +
    +Error in sdpt3 (line 171)
    +   [blk,At,C,b,blkdim,numblk,parbarrier] = validate(blk,At,C,b,par,parbarrier);
    +
    +Error using save
    +Variable 'jx_sdpt3_arg_out_1' not found.

    It might mean that you have added SDPNAL in addition to SDPT3 in the MATLAB's path (that is, the toolbox/local/pathdef.m file). Because SDPNAL also defines a validate function, this can make sdpt3 call SDPNAL's validate function instead of SDPT3's validate function, which causes the issue.

    One way to fix this from the Julia REPL is to reset the search path to the factory-installed state using restoredefaultpath:

    julia> using MATLAB
    +
    +julia> MATLAB.restoredefaultpath()
    +
    +julia> MATLAB.mat"savepath"
    diff --git a/previews/PR3545/packages/SeDuMi/index.html b/previews/PR3545/packages/SeDuMi/index.html new file mode 100644 index 00000000000..1e585a520a1 --- /dev/null +++ b/previews/PR3545/packages/SeDuMi/index.html @@ -0,0 +1,20 @@ + +jump-dev/SeDuMi.jl · JuMP

    SeDuMi.jl

    SeDuMi.jl is wrapper for the SeDuMi solver.

    The wrapper has two components:

    • an exported sedumi function that is a thin wrapper on top of the sedumi MATLAB function
    • an interface to MathOptInterface

    Affiliation

    This wrapper is maintained by the JuMP community and is not an official wrapper of SeDuMi.

    License

    SeDuMi.jl is licensed under the MIT License.

    The underlying solver, sqlp/sedumi is licensed under the GPL v2 license.

    In addition, SeDuMi requires an installation of MATLAB, which is a closed-source commercial product for which you must obtain a license.

    Use with JuMP

    To use SeDuMi with JuMP, do:

    using JuMP, SeDuMi
    +model = Model(SeDuMi.Optimizer)
    +set_attribute(model, "fid", 0)

    Installation

    First, make sure that you satisfy the requirements of the MATLAB.jl Julia package, and that the SeDuMi software is installed in your MATLAB™ installation.

    Then, install SeDuMi.jl using Pkg.add:

    import Pkg
    +Pkg.add("SeDuMi")

    If you get the error:

    Undefined function or variable 'sedumi'.
    +
    +Error using save
    +Variable 'jx_sedumi_arg_out_1' not found.
    +
    +ERROR: LoadError: MATLAB.MEngineError("failed to get variable jx_sedumi_arg_out_1 from MATLAB session")

    The error means that we couldn't find the sedumi function with one output argument using the MATLAB C API.

    This most likely means that you did not add SeDuMi to the MATLAB's path, that is, the toolbox/local/pathdef.m file.

    If modifying toolbox/local/pathdef.m does not work, the following should work, where /path/to/sedumi/ is the directory where the sedumi folder is located:

    julia> import MATLAB
    +
    +julia> cd("/path/to/sedumi/") do
    +           MATLAB.mat"install_sedumi"
    +       end
    +
    +julia> MATLAB.mat"savepath"
    diff --git a/previews/PR3545/packages/SumOfSquares/index.html b/previews/PR3545/packages/SumOfSquares/index.html new file mode 100644 index 00000000000..c0b832b1e0a --- /dev/null +++ b/previews/PR3545/packages/SumOfSquares/index.html @@ -0,0 +1,7 @@ + +jump-dev/SumOfSquares.jl · JuMP

    SumOfSquares.jl

    Build Status codecov

    SumOfSquares.jl is a JuMP extension that, when used in conjunction with MultivariatePolynomial and PolyJuMP, implements a sum of squares reformulation for polynomial optimization.

    License

    SumOfSquares.jl is licensed under the MIT license.

    Installation

    Install SumOfSquares using Pkg.add:

    import Pkg
    +Pkg.add("SumOfSquares")

    Documentation

    See https://jump.dev/SumOfSquares.jl/stable for the most recently tagged version of the documentation.

    See https://jump.dev/SumOfSquares.jl/dev for the in-development version of the documentation.

    Presentations

    Some presentations on, or using, SumOfSquares (see blegat/SumOfSquaresSlides for the source code of the presentations):

    Citing

    See CITATION.bib.

    diff --git a/previews/PR3545/packages/Tulip/index.html b/previews/PR3545/packages/Tulip/index.html new file mode 100644 index 00000000000..61198e5f942 --- /dev/null +++ b/previews/PR3545/packages/Tulip/index.html @@ -0,0 +1,31 @@ + +ds4dm/Tulip.jl · JuMP

    Tulip

    DOI

    Tulip is an open-source interior-point solver for linear optimization, written in pure Julia. It implements the homogeneous primal-dual interior-point algorithm with multiple centrality corrections, and therefore handles unbounded and infeasible problems. Tulip’s main feature is that its algorithmic framework is disentangled from linear algebra implementations. This allows to seamlessly integrate specialized routines for structured problems.

    License

    Tulip is licensed under the MPL 2.0 license.

    Installation

    Install Tulip using the Julia package manager:

    import Pkg
    +Pkg.add("Tulip")

    Usage

    The recommended way of using Tulip is through JuMP or MathOptInterface (MOI).

    The low-level interface is still under development and is likely change in the future. The MOI interface is more stable.

    Using with JuMP

    Tulip follows the syntax convention PackageName.Optimizer:

    using JuMP
    +import Tulip
    +model = Model(Tulip.Optimizer)

    Linear objectives, linear constraints and lower/upper bounds on variables are supported.

    Using with MOI

    The type Tulip.Optimizer is parametrized by the model's arithmetic, for example, Float64 or BigFloat. This allows to solve problem in higher numerical precision. See the documentation for more details.

    import MathOptInterface as MOI
    +import Tulip
    +model = Tulip.Optimizer{Float64}()   # Create a model in Float64 precision
    +model = Tulip.Optimizer()            # Defaults to the above call
    +model = Tulip.Optimizer{BigFloat}()  # Create a model in BigFloat precision

    Solver parameters

    See the documentation for a full list of parameters.

    To set parameters in JuMP, use:

    using JuMP, Tulip
    +model = Model(Tulip.Optimizer)
    +set_attribute(model, "IPM_IterationsLimit", 200)

    To set parameters in MathOptInterface, use:

    using Tulip
    +import MathOptInterface as MOI
    +model = Tulip.Optimizer{Float64}()
    +MOI.set(model, MOI.RawOptimizerAttribute("IPM_IterationsLimit"), 200)

    To set parameters in the Tulip API, use:

    using Tulip
    +model = Tulip.Model{Float64}()
    +Tulip.set_parameter(model, "IPM_IterationsLimit", 200)

    Command-line executable

    See app building instructions.

    Citing Tulip.jl

    If you use Tulip in your work, we kindly ask that you cite the following reference (preprint available here).

    @Article{Tulip.jl,
    +  author   = {Tanneau, Mathieu and Anjos, Miguel F. and Lodi, Andrea},
    +  journal  = {Mathematical Programming Computation},
    +  title    = {Design and implementation of a modular interior-point solver for linear optimization},
    +  year     = {2021},
    +  issn     = {1867-2957},
    +  month    = feb,
    +  doi      = {10.1007/s12532-020-00200-8},
    +  language = {en},
    +  url      = {https://doi.org/10.1007/s12532-020-00200-8},
    +  urldate  = {2021-03-07},
    +}
    diff --git a/previews/PR3545/packages/Xpress/index.html b/previews/PR3545/packages/Xpress/index.html new file mode 100644 index 00000000000..e033e84e468 --- /dev/null +++ b/previews/PR3545/packages/Xpress/index.html @@ -0,0 +1,11 @@ + +jump-dev/Xpress.jl · JuMP

    Xpress.jl

    Build Status codecov

    Xpress.jl is a wrapper for the FICO Xpress Solver.

    It has two components:

    Affiliation

    The Xpress wrapper for Julia is community driven and not officially supported by FICO Xpress. If you are a commercial customer interested in official support for Julia from FICO Xpress, let them know.

    License

    Xpress.jl is licensed under the MIT License.

    The underlying solver is a closed-source commercial product for which you must purchase a license.

    Installation

    First, obtain a license of Xpress and install Xpress solver, following the instructions on the FICO website.

    Then, install this package using:

    import Pkg
    +Pkg.add("Xpress")

    If you encounter an error, make sure that the XPRESSDIR environmental variable is set to the path of the Xpress directory. This should be part of a standard installation. The Xpress library will be searched for in XPRESSDIR/lib on Unix platforms and XPRESSDIR/bin on Windows.

    For example, on macOS, you may need:

    ENV["XPRESSDIR"] = "/Applications/FICO Xpress/xpressmp/"
    +import Pkg
    +Pkg.add("Xpress")

    By default, building Xpress.jl will fail if the Xpress library is not found. This may not be desirable in certain cases, for example when part of a package's test suite uses Xpress as an optional test dependency, but Xpress cannot be installed on a CI server running the test suite. To support this use case, the XPRESS_JL_SKIP_LIB_CHECK environment variable may be set (to any value) to make Xpress.jl installable (but not usable).

    Use with JuMP

    To use Xpress with JuMP, use:

    using JuMP, Xpress
    +model = Model(Xpress.Optimizer)
    +set_optimizer(model, "PRESOLVE", 0)

    Options

    For other parameters use Xpress Optimizer manual or type julia -e "using Xpress; println(keys(Xpress.XPRS_ATTRIBUTES))".

    If logfile is set to "", the log file is disabled and output is printed to the console (there might be issues with console output on windows (it is manually implemented with callbacks)). If logfile is set to a file's path, output is printed to that file. By default, logfile = "" (console).

    Callbacks

    Solver specific and solver independent callbacks are working in MathOptInterface and, consequently, in JuMP. However, the current implementation should be considered experimental.

    Environment variables

    • XPRESS_JL_SKIP_LIB_CHECK: Used to skip build lib check as previously described.
    • XPRESS_JL_NO_INFO: Disable license info log.
    • XPRESS_JL_NO_DEPS_ERROR: Disable error when do deps.jl file is found.
    • XPRESS_JL_NO_AUTO_INIT: Disable automatic run of Xpress.initialize().

    Specially useful for explicitly loading the dynamic library.

    Skipping Xpress.postsolve

    In older versions of Xpress, the command XPRSpostsolve throws an error in infeasible models. In these older versions the post solve should not be executed. To do this, one can use the MOI.RawOptimizerAttribute("MOI_POST_SOLVE") to skip this routine.

    C API

    The C API can be accessed via Xpress.Lib.XPRSxx functions, where the names and arguments are identical to the C API.

    See the Xpress documentation for details.

    Documentation

    For more information, consult the FICO optimizer manual.

    diff --git a/previews/PR3545/packages/solvers/index.html b/previews/PR3545/packages/solvers/index.html new file mode 100644 index 00000000000..f1fc20f5bb7 --- /dev/null +++ b/previews/PR3545/packages/solvers/index.html @@ -0,0 +1,6 @@ + +Introduction · JuMP

    Introduction

    This section of the documentation contains brief documentation for some of the solvers that JuMP supports. The list of solvers is not exhaustive, but instead is intended to help you discover commonly used solvers.

    Affiliation

    Packages beginning with jump-dev/ are developed and maintained by the JuMP developers. In many cases, these packages wrap external solvers that are not developed by the JuMP developers and, while the Julia packages are all open-source, in some cases the solvers themselves are closed source commercial products.

    Packages that do not begin with jump-dev/ are developed independently. The developers of these packages requested or consented to the inclusion of their README contents in the JuMP documentation for the benefit of users.

    Adding new solvers

    Written a solver? Add it to this section of the JuMP documentation by making a pull request to the docs/packages.toml file.

    diff --git a/previews/PR3545/release_notes/index.html b/previews/PR3545/release_notes/index.html new file mode 100644 index 00000000000..9cd2c290755 --- /dev/null +++ b/previews/PR3545/release_notes/index.html @@ -0,0 +1,15 @@ + +Release notes · JuMP

    Release notes

    The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

    Version 1.15.1 (September 24, 2023)

    Fixed

    Other

    Version 1.15.0 (September 15, 2023)

    This is a large minor release because it adds an entirely new data structure and API path for working with nonlinear programs. The previous nonlinear interface remains unchanged and is documented at Nonlinear Modeling (Legacy). The new interface is a treated as a non-breaking feature addition and is documented at Nonlinear Modeling.

    Breaking

    Although the new nonlinear interface is a feature addition, there are two changes which might be breaking for a very small number of users.

    • The syntax inside JuMP macros is parsed using a different code path, even for linear and quadratic expressions. We made this change to unify how we parse linear, quadratic, and nonlinear expressions. In all cases, the new code returns equivalent expressions, but because of the different order of operations, there are three changes to be aware of when updating:
      • The printed form of the expression may change, for example from x * y to y * x. This can cause tests which test the String representation of a model to fail.
      • Some coefficients may change slightly due to floating point round-off error.
      • Particularly when working with a JuMP extension, you may encounter a MethodError due to a missing or ambiguous method. These errors are due to previously existing bugs that were not triggered by the previous parsing code. If you encounter such an error, please open a GitHub issue.
    • The methods for Base.:^(x::VariableRef, n::Integer) and Base.:^(x::AffExpr, n::Integer) have changed. Previously, these methods supported only n = 0, 1, 2 and they always returned a QuadExpr, even for the case when n = 0 or n = 1. Now:
      • x^0 returns one(T), where T is the value_type of the model (defaults to Float64)
      • x^1 returns x
      • x^2 returns a QuadExpr
      • x^n where !(0 <= n <= 2) returns a NonlinearExpr.
      We made this change to support nonlinear expressions and to align the mathematical definition of the operation with their return type. (Previously, users were surprised that x^1 returned a QuadExpr.) As a consequence of this change, the methods are now not type-stable. This means that the compiler cannot prove that x^2 returns a QuadExpr. If benchmarking shows that this is a performance problem, you can use the type-stable x * x instead of x^2.

    Added

    Fixed

    Other

    Version 1.14.1 (September 2, 2023)

    Fixed

    • Fix links in Documentation (#3478)

    Version 1.14.0 (August 27, 2023)

    Added

    Fixed

    • Fixed model_convert for BridgeableConstraint (#3437)
    • Fixed printing models with integer coefficients larger than typemax(Int) (#3447)
    • Fixed support for constant left-hand side functions in a complementarity constraint (#3452)

    Other

    • Updated packages used in documentation (#3444) (#3455)
    • Fixed docstring tests (#3445)
    • Fixed printing change for MathOptInterface (#3446)
    • Fixed typos in documentation (#3448) (#3457)
    • Added SCIP to callback documentation (#3449)

    Version 1.13.0 (July 27, 2023)

    Added

    Fixed

    Other

    • Added Loraine.jl to the installation table (#3426)
    • Removed Penopt.jl from packages.toml (#3428)
    • Improved problem statement in cannery example of tutorial (#3430)
    • Minor cleanups in Containers.DenseAxisArray implementation (#3429)
    • Changed nested_problems.jl: outer/inner to upper/lower (#3433)
    • Removed second SDP relaxation in OPF tutorial (#3432)

    Version 1.12.0 (June 19, 2023)

    Added

    Fixed

    Other

    Version 1.11.1 (May 19, 2023)

    Fixed

    • Fixed a poor error message when sum(::DenseAxisArray; dims) was called (#3338)
    • Fixed support for dependent sets in the @variable macro (#3344)
    • Fixed a performance bug in constraints with sparse symmetric matrices (#3349)

    Other

    • Improved the printing of complex numbers (#3332)
    • When printing, sets which contain constants ending in .0 now print as integers. This follows the behavior of constants in functions (#3341)
    • Added InfiniteOpt to the extensions documentation (#3343)
    • Added more documentation for the exponential cone (#3345) (#3347)
    • Added checklists for developers (#3346) (#3355)
    • Fixed test support upcoming Julia nightly (#3351)
    • Fixed extension-tests.yml action (#3353)
    • Add more solvers to the documentation (#3359) (#3361) (#3362)

    Version 1.11.0 (May 3, 2023)

    Added

    Fixed

    • Fixed tests for MOI v1.14.0 release (#3312)
    • Fixed indexing containers when an axis is Vector{Any} that contains a Vector{Any} element (#3280)
    • Fixed getindex(::AbstractJuMPScalar) which is called for an expression like x[] (#3314)
    • Fixed bug in set_string_names_on_creation with a vector of variables (#3322)
    • Fixed bug in memoize function in nonlinear documentation (#3337)

    Other

    • Fixed typos in the documentation (#3317) (#3318) (#3328)
    • Added a test for the order of setting start values (#3315)
    • Added READMEs of solvers and extensions to the docs (#3309) (#3320) (#3327) (#3329) (#3333)
    • Style improvements to src/variables.jl (#3324)
    • Clarify that column generation does not find global optimum (#3325)
    • Add a GitHub actions workflow for testing extensions prior to release (#3331)
    • Document the release process for JuMP (#3334)
    • Fix links to discourse and chatroom (#3335)

    Version 1.10.0 (April 3, 2023)

    Added

    Fixed

    • Fixed [compat] bound for MathOptInterface in Project.toml (#3272)

    Other

    Version 1.9.0 (March 7, 2023)

    Added

    Fixed

    • The matrix returned by a variable in HermitianPSDCone is now a LinearAlgebra.Hermitian matrix. This is potentially breaking if you have written code to assume the return is a Matrix. (#3245) (#3246)
    • Fixed missing support for Base.isreal of expressions (#3252)

    Other

    Version 1.8.2 (February 27, 2023)

    Fixed

    • Fixed dot product between complex JuMP expression and number (#3244)

    Other

    • Polish simple SDP examples (#3232)

    Version 1.8.1 (February 23, 2023)

    Fixed

    • Fixed support for init in nonlinear generator expressions (#3226)

    Other

    • Use and document import MathOptInterface as MOI (#3222)
    • Removed references in documentation to multiobjective optimization being unsupported (#3223)
    • Added tutorial on multi-objective portfolio optimization (#3227)
    • Refactored some of the conic tutorials (#3229)
    • Fixed typos in the documentation (#3230)
    • Added tutorial on parallelism (#3231)

    Version 1.8.0 (February 16, 2023)

    Added

    • Added --> syntax support for indicator constraints. The old syntax of => remains supported (#3207)
    • Added <--> syntax for reified constraints. For now, few solvers support reified constraints (#3206)
    • Added fix_discrete_variables. This is most useful for computing the dual of a mixed-integer program (#3208)
    • Added support for vector-valued objectives. For details, see the Multi-objective knapsack tutorial (#3176)

    Fixed

    • Fixed a bug in lp_sensitivity_report by switching to an explicit LU factorization of the basis matrix (#3182)
    • Fixed a bug that prevented [; kwarg] arguments in macros (#3220)

    Other

    Version 1.7.0 (January 25, 2023)

    Added

    Other

    • Large refactoring of the tests (#3166) (#3167) (#3168) (#3169) (#3170) (#3171)
    • Remove unreachable code due to VERSION checks (#3172)
    • Document how to test JuMP extensions (#3174)
    • Fix method ambiguities in Containers (#3173)
    • Improve error message that is thrown when = is used instead of == in the @constraint macro (#3178)
    • Improve the error message when Bool is used instead of Bin in the @variable macro (#3180)
    • Update versions of the documentation (#3185)
    • Tidy the import of packages and remove unnecessary prefixes (#3186) (#3187)
    • Refactor src/JuMP.jl by moving methods into more relevant files (#3188)
    • Fix docstring of Model not appearing in the documentation (#3198)

    Version 1.6.0 (January 1, 2023)

    Added

    Fixed

    • Fixed promotion of complex expressions (#3150) (#3164)

    Other

    • Added Benders tutorial with in-place resolves (#3145)
    • Added more Tips and tricks for linear programs (#3144) (#3163)
    • Clarified documentation that start can depend on the indices of a variable container (#3148)
    • Replace instances of length and size by the recommended eachindex and axes (#3149)
    • Added a warning explaining why the model is dirty when accessing solution results from a modified model (#3156)
    • Clarify documentation that PSD ensures a symmetric matrix (#3159)
    • Maintenance of the JuMP test suite (#3146) (#3158) (#3162)

    Version 1.5.0 (December 8, 2022)

    Added

    Fixed

    Other

    Version 1.4.0 (October 29, 2022)

    Added

    Fixed

    • Fixed a bug in copy_to(dest::Model, src::MOI.ModelLike) when src has nonlinear components (#3101)
    • Fixed the printing of (-1.0 + 0.0im) coefficients in complex expressions (#3112)
    • Fixed a parsing bug in nonlinear expressions with generator statements that contain multiple for statements (#3116)

    Other

    • Converted the multi-commodity flow tutorial to use an SQLite database (#3098)
    • Fixed a number of typos in the documentation (#3103) (#3107) (#3018)
    • Improved various style aspects of the PDF documentation (#3095) (#3098) (#3102)

    Version 1.3.1 (September 28, 2022)

    Fixed

    • Fixed a performance issue in relax_integrality (#3087)
    • Fixed the type stability of operators with Complex arguments (#3072)
    • Fixed a bug which added additional +() terms to some nonlinear expressions (#3091)
    • Fixed potential method ambiguities with AffExpr and QuadExpr objects (#3092)

    Other

    Version 1.3.0 (September 5, 2022)

    Added

    • Support slicing in SparseAxisArray (#3031)

    Fixed

    • Fixed a bug introduced in v1.2.0 that prevented DenseAxisArrays with Vector keys (#3064)

    Other

    Version 1.2.1 (August 22, 2022)

    Fixed

    • Fixed a bug when parsing two-sided nonlinear constraints (#3045)

    Version 1.2.0 (August 16, 2022)

    Breaking

    This is a large minor release because it significantly refactors the internal code for handling nonlinear programs to use the MathOptInterface.Nonlinear submodule that was introduced in MathOptInterface v1.3.0. As a consequence, the internal datastructure in model.nlp_data has been removed, as has the JuMP._Derivatives submodule. Despite the changes, the public API for nonlinear programming has not changed, and any code that uses only the public API and that worked with v1.1.1 will continue to work with v1.2.0.

    Added

    • Added all_constraints(model; include_variable_in_set_constraints) which simplifies returning a list of all constraint indices in the model.
    • Added the ability to delete nonlinear constraints via delete(::Model, ::NonlinearConstraintRef).
    • Added the ability to provide an explicit Hessian for a multivariate user-defined function.
    • Added support for querying the primal value of a nonlinear constraint via value(::NonlinearConstraintRef)

    Fixed

    • Fixed a bug in Containers.DenseAxisArray so that it now supports indexing with keys that hash to the same value, even if they are different types, for example, Int32 and Int64.
    • Fixed a bug printing the model when the solver does not support MOI.Name.

    Other

    • Added a constraint programming formulation to the Sudoku tutorial.
    • Added newly supported solvers Pajarito, Clarabel, and COPT to the installation table.
    • Fixed a variety of other miscellaneous issues in the documentation.

    Version 1.1.1 (June 14, 2022)

    Other

    • Fixed problem displaying LaTeX in the documentation
    • Minor updates to the style guide
    • Updated to MOI v1.4.0 in the documentation

    Version 1.1.0 (May 25, 2022)

    Added

    • Added num_constraints(::Model; count_variable_in_set_constraints) to simplify the process of counting the number of constraints in a model
    • Added VariableRef(::ConstraintRef) for querying the variable associated with a bound or integrality constraint.
    • Added set_normalized_coefficients for modifying the variable coefficients of a vector-valued constraint.
    • Added set_string_names_on_creation to disable creating String names for variables and constraints. This can improve performance.

    Fixed

    • Fixed a bug passing nothing to the start keyword of @variable

    Other

    • New tutorials:
      • Sensitivity analysis of a linear program
      • Serving web apps
    • Minimal ellipse SDP tutorial refactored and improved
    • Docs updated to the latest version of each package
    • Lots of minor fixes and improvements to the documentation

    Version 1.0.0 (March 24, 2022)

    Read more about this release, along with an acknowledgement of all the contributors in our JuMP 1.0.0 is released blog post.

    Breaking

    • The previously deprecated functions (v0.23.0, v0.23.1) have been removed. Deprecation was to improve consistency of function names:
      • num_nl_constraints (see num_nonlinear_constraints)
      • all_nl_constraints (see all_nonlinear_constraints)
      • add_NL_expression (see add_nonlinear_expression)
      • set_NL_objective (see set_nonlinear_objective)
      • add_NL_constraint (see add_nonlinear_constraint)
      • nl_expr_string (see nonlinear_expr_string)
      • nl_constraint_string (see nonlinear_constraint_string)
      • SymMatrixSpace (see SymmetricMatrixSpace)
    • The unintentionally exported variable JuMP.op_hint has been renamed to the unexported JuMP._OP_HINT

    Fixed

    • Fixed a bug writing .nl files
    • Fixed a bug broadcasting SparseAxisArrays

    Version 0.23.2 (March 14, 2022)

    Added

    • Added relative_gap to solution_summary
    • register now throws an informative error if the function is not differentiable using ForwardDiff. In some cases, the check in register will encounter a false negative, and the informative error will be thrown at run-time. This usually happens when the function is non-differentiable in a subset of the domain.

    Fixed

    • Fixed a scoping issue when extending the container keyword of containers

    Other

    • Docs updated to the latest version of each package

    Version 0.23.1 (March 2, 2022)

    Deprecated

    • nl_expr_string and nl_constraint_string have been renamed to nonlinear_expr_string and nonlinear_constraint_string. The old methods still exist with deprecation warnings. This change should impact very few users because to call them you must rely on private internals of the nonlinear API. Users are encouraged to use sprint(show, x) instead, where x is the nonlinear expression or constraint of interest.

    Added

    • Added support for Base.abs2(x) where x is a variable or affine expression. This is mainly useful for complex-valued constraints.

    Fixed

    • Fixed addition of complex and real affine expressions
    • Fixed arithmetic for Complex-valued quadratic expressions
    • Fixed variable bounds passed as Rational{Int}(Inf)
    • Fixed printing of the coefficient (0 + 1im)
    • Fixed a bug when solution_summary is called prior to optimize!

    Version 0.23.0 (February 25, 2022)

    JuMP v0.23.0 is a breaking release. It is also a release-candidate for JuMP v1.0.0. That is, if no issues are found with the v0.23.0 release, then it will be re-tagged as v1.0.0.

    Breaking

    • Julia 1.6 is now the minimum supported version
    • MathOptInterface has been updated to v1.0.0
    • All previously deprecated functionality has been removed
    • PrintMode, REPLMode and IJuliaMode have been removed in favor of the MIME types MIME"text/plain" and MIME"text/latex". Replace instances of ::Type{REPLMode} with ::MIME"text/plain", REPLMode with MIME("text/plain"), ::Type{IJuliaMode} with ::MIME"text/latex", and IJuliaMode with MIME("text/latex").
    • Functions containing the nl_ acronym have been renamed to the more explicit nonlinear_. For example, num_nl_constraints is now num_nonlinear_constraints and set_NL_objective is now set_nonlinear_objective. Calls to the old functions throw an error explaining the new name.
    • SymMatrixSpace has been renamed to SymmetricMatrixSpace

    Added

    • Added nonlinear_dual_start_value and set_nonlinear_dual_start_value
    • Added preliminary support for Complex coefficient types

    Fixed

    • Fixed a bug in solution_summary

    Other

    • MILP examples have been migrated from GLPK to HiGHS
    • Fixed various typos
    • Improved section on setting constraint start values

    Troubleshooting problems when updating

    If you experience problems when updating, you are likely using previously deprecated functionality. (By default, Julia does not warn when you use deprecated features.)

    To find the deprecated features you are using, start Julia with --depwarn=yes:

    $ julia --depwarn=yes

    Then install JuMP v0.22.3:

    julia> using Pkg
    +julia> pkg"add JuMP@0.22.3"

    And then run your code. Apply any suggestions, or search the release notes below for advice on updating a specific deprecated feature.

    Version 0.22.3 (February 10, 2022)

    Fixed

    • Fixed a reproducibility issue in the TSP tutorial
    • Fixed a reproducibility issue in the max_cut_sdp tutorial
    • Fixed a bug broadcasting an empty SparseAxisArray

    Other

    • Added a warning and improved documentation for the modify-then-query case
    • Fixed a typo in the docstring of RotatedSecondOrderCone
    • Added Aqua.jl as a check for code health
    • Added introductions to each section of the tutorials
    • Improved the column generation and Benders decomposition tutorials
    • Updated documentation to MOI v0.10.8
    • Updated JuliaFormatter to v0.22.2

    Version 0.22.2 (January 10, 2022)

    Added

    • The function all_nl_constraints now returns all nonlinear constraints in a model
    • start_value and set_start_value can now be used to get and set the primal start for constraint references
    • Plural macros now return a tuple containing the elements that were defined instead of nothing
    • Anonymous variables are now printed as _[i] where i is the index of the variable instead of noname. Calling name(x) still returns "" so this is non-breaking.

    Fixed

    • Fixed handling of min and max in nonlinear expressions
    • CartesianIndex is no longer allowed as a key for DenseAxisArrays.

    Other

    • Improved the performance of GenericAffExpr
    • Added a tutorial on the Travelling Salesperson Problem
    • Added a tutorial on querying the Hessian of a nonlinear program
    • Added documentation on using custom solver binaries.

    Version 0.22.1 (November 29, 2021)

    Added

    • Export OptimizationSense enum, with instances: MIN_SENSE, MAX_SENSE, and FEASIBILITY_SENSE
    • Add Base.isempty(::Model) to match Base.empty(::Model)

    Fixed

    • Fix bug in container with tuples as indices
    • Fix bug in set_time_limit_sec

    Other

    • Add tutorial "Design patterns for larger models"
    • Remove release notes section from PDF
    • General edits of the documentation and error messages

    Version 0.22.0 (November 10, 2021)

    JuMP v0.22 is a breaking release

    Breaking

    JuMP 0.22 contains a number of breaking changes. However, these should be invisible for the majority of users. You will mostly encounter these breaking changes if you: wrote a JuMP extension, accessed backend(model), or called @SDconstraint.

    The breaking changes are as follows:

    • MathOptInterface has been updated to v0.10.4. For users who have interacted with the MOI backend, this contains a large number of breaking changes. Read the MathOptInterface release notes for more details.
    • The bridge_constraints keyword argument to Model and set_optimizer has been renamed add_bridges to reflect that more thing were bridged than just constraints.
    • The backend(model) field now contains a concrete instance of a MOI.Utilities.CachingOptimizer instead of one with an abstractly typed optimizer field. In most cases, this will lead to improved performance. However, calling set_optimizer after backend invalidates the old backend. For example:
      model = Model()
      +b = backend(model)
      +set_optimizer(model, GLPK.Optimizer)
      +@variable(model, x)
      +# b is not updated with `x`! Get a new b by calling `backend` again.
      +new_b = backend(model)
    • All usages of @SDconstraint are deprecated. The new syntax is @constraint(model, X >= Y, PSDCone()).
    • Creating a DenseAxisArray with a Number as an axis will now display a warning. This catches a common error in which users write @variable(model, x[length(S)]) instead of @variable(model, x[1:length(S)]).
    • The caching_mode argument to Model, for example, Model(caching_mode = MOIU.MANUAL) mode has been removed. For more control over the optimizer, use direct_model instead.
    • The previously deprecated lp_objective_perturbation_range and lp_rhs_perturbation_range functions have been removed. Use lp_sensitivity_report instead.
    • The .m fields of NonlinearExpression and NonlinearParameter have been renamed to .model.
    • Infinite variable bounds are now ignored. Thus, @variable(model, x <= Inf) will show has_upper_bound(x) == false. Previously, these bounds were passed through to the solvers which caused numerical issues for solvers expecting finite bounds.
    • The variable_type and constraint_type functions were removed. This should only affect users who previously wrote JuMP extensions. The functions can be deleted without consequence.
    • The internal functions moi_mode, moi_bridge_constraints, moi_add_constraint, and moi_add_to_function_constant are no longer exported.
    • The un-used method Containers.generate_container has been deleted.
    • The Containers API has been refactored, and _build_ref_sets is now public as Containers.build_ref_sets.
    • The parse_constraint_ methods for extending @constraint at parse time have been refactored in a breaking way. Consult the Extensions documentation for more details and examples.

    Added

    • The TerminationStatusCode and ResultStatusCode enums are now exported by JuMP. Prefer termination_status(model) == OPTIMAL instead of == MOI.OPTIMAL, although the MOI. prefix way still works.
    • Copy a x::DenseAxisArray to an Array by calling Array(x).
    • NonlinearExpression is now a subtype of AbstractJuMPScalar
    • Constraints such as @constraint(model, x + 1 in MOI.Integer()) are now supported.
    • primal_feasibility_report now accepts a function as the first argument.
    • Scalar variables @variable(model, x[1:2] in MOI.Integer()) creates two variables, both of which are constrained to be in the set MOI.Integer.
    • Conic constraints can now be specified as inequalities under a different partial ordering. So @constraint(model, x - y in MOI.Nonnegatives()) can now be written as @constraint(model, x >= y, MOI.Nonnegatives()).
    • Names are now set for vectorized constraints.

    Fixed

    • Fixed a performance issue when show was called on a SparseAxisArray with a large number of elements.
    • Fixed a bug displaying barrier and simplex iterations in solution_summary.
    • Fixed a bug by implementing hash for DenseAxisArray and SparseAxisArray.
    • Names are now only set if the solver supports them. Previously, this prevented solvers such as Ipopt from being used with direct_model.
    • MutableArithmetics.Zero is converted into a 0.0 before being returned to the user. Previously, some calls to @expression would return the undocumented MutableArithmetics.Zero() object. One example is summing over an empty set @expression(model, sum(x[i] for i in 1:0)). You will now get 0.0 instead.
    • AffExpr and QuadExpr can now be used with == 0 instead of iszero. This fixes a number of issues relating to Julia standard libraries such as LinearAlgebra and SparseArrays.
    • Fixed a bug when registering a user-defined function with splatting.

    Other

    • The documentation is now available as a PDF.
    • The documentation now includes a full copy of the MathOptInterface documentation to make it easy to link concepts between the docs. (The MathOptInterface documentation has also been significantly improved.)
    • The documentation contains a large number of improvements and clarifications on a range of topics. Thanks to @sshin23, @DilumAluthge, and @jlwether.
    • The documentation is now built with Julia 1.6 instead of 1.0.
    • Various error messages have been improved to be more readable.

    Version 0.21.10 (September 4, 2021)

    Added

    • Added add_NL_expression
    • add_NL_xxx functions now support AffExpr and QuadExpr as terms

    Fixed

    • Fixed a bug in solution_summary
    • Fixed a bug in relax_integrality

    Other

    • Improved error message in lp_sensitivity_report

    Version 0.21.9 (August 1, 2021)

    Added

    • Containers now support arbitrary container types by passing the type to the container keyword and overloading Containers.container.
    • is_valid now supports nonlinear constraints
    • Added unsafe_backend for querying the inner-most optimizer of a JuMP model.
    • Nonlinear parameters now support the plural @NLparameters macro.
    • Containers (for example, DenseAxisArray) can now be used in vector-valued constraints.

    Other

    • Various improvements to the documentation.

    Version 0.21.8 (May 8, 2021)

    Added

    • The @constraint macro is now extendable in the same way as @variable.
    • AffExpr and QuadExpr can now be used in nonlinear macros.

    Fixed

    • Fixed a bug in lp_sensitivity_report.
    • Fixed an inference issue when creating empty SparseAxisArrays.

    Version 0.21.7 (April 12, 2021)

    Added

    • Added primal_feasibility_report, which can be used to check whether a primal point satisfies primal feasibility.
    • Added coefficient, which returns the coefficient associated with a variable in affine and quadratic expressions.
    • Added copy_conflict, which returns the IIS of an infeasible model.
    • Added solution_summary, which returns (and prints) a struct containing a summary of the solution.
    • Allow AbstractVector in vector constraints instead of just Vector.
    • Added latex_formulation(model) which returns an object representing the latex formulation of a model. Use print(latex_formulation(model)) to print the formulation as a string.
    • User-defined functions in nonlinear expressions are now automatically registered to aid quick model prototyping. However, a warning is printed to encourage the manual registration.
    • DenseAxisArray's now support broadcasting over multiple arrays.
    • Container indices can now be iterators of Base.SizeUnknown.

    Fixed

    • Fixed bug in rad2deg and deg2rad in nonlinear expressions.
    • Fixed a MethodError bug in Containers when forcing container type.
    • Allow partial slicing of a DenseAxisArray, resolving an issue from 2014.
    • Fixed a bug printing variable names in IJulia.
    • Ending an IJulia cell with model now prints a summary of the model (like in the REPL) not the latex formulation. Use print(model) to print the latex formulation.
    • Fixed a bug when copying models containing nested arrays.

    Other

    • Tutorials are now part of the documentation, and more refactoring has taken place.
    • Added JuliaFormatter added as a code formatter.
    • Added some precompilation statements to reduce initial latency.
    • Various improvements to error messages to make them more helpful.
    • Improved performance of value(::NonlinearExpression).
    • Improved performance of fix(::VariableRef).

    Version 0.21.6 (January 29, 2021)

    Added

    • Added support for skew symmetric variables via @variable(model, X[1:2, 1:2] in SkewSymmetricMatrixSpace()).
    • lp_sensitivity_report has been added which significantly improves the performance of querying the sensitivity summary of an LP. lp_objective_perturbation_range and lp_rhs_perturbation_range are deprecated.
    • Dual warm-starts are now supported with set_dual_start_value and dual_start_value.
    • (\in<tab>) can now be used in macros instead of = or in.
    • Use haskey(model::Model, key::Symbol) to check if a name key is registered in a model.
    • Added unregister(model::Model, key::Symbol) to unregister a name key from model.
    • Added callback_node_status for use in callbacks.
    • Added print_bridge_graph to visualize the bridging graph generated by MathOptInterface.
    • Improved error message for containers with duplicate indices.

    Fixed

    • Various fixes to pass tests on Julia 1.6.
    • Fixed a bug in the printing of nonlinear expressions in IJulia.
    • Fixed a bug when nonlinear expressions are passed to user-defined functions.
    • Some internal functions that were previously exported are now no longer exported.
    • Fixed a bug when relaxing a fixed binary variable.
    • Fixed a StackOverflowError that occurred when SparseAxisArrays had a large number of elements.
    • Removed an unnecessary type assertion in list_of_constraint_types.
    • Fixed a bug when copying models with registered expressions.

    Other

    • The documentation has been significantly overhauled. It now has distinct sections for the manual, API reference, and examples. The existing examples in /examples have now been moved to /docs/src/examples and rewritten using Literate.jl, and they are now included in the documentation.
    • JuliaFormatter has been applied to most of the codebase. This will continue to roll out over time, as we fix upstream issues in the formatter, and will eventually become compulsory.
    • The root cause of a large number of method invalidations has been resolved.
    • We switched continuous integration from Travis and Appveyor to GitHub Actions.

    Version 0.21.5 (September 18, 2020)

    Fixed

    • Fixed deprecation warnings
    • Throw DimensionMismatch for incompatibly sized functions and sets
    • Unify treatment of keys(x) on JuMP containers

    Version 0.21.4 (September 14, 2020)

    Added

    • Add debug info when adding unsupported constraints
    • Add relax_integrality for solving continuous relaxation
    • Allow querying constraint conflicts

    Fixed

    • Dispatch on Real for MOI.submit
    • Implement copy for CustomSet in tests
    • Don't export private macros
    • Fix invalid assertion in nonlinear
    • Error if constraint has NaN right-hand side
    • Improve speed of tests
    • Lots of work modularizing files in /test
    • Improve line numbers in macro error messages
    • Print nonlinear subexpressions
    • Various documentation updates
    • Dependency updates:
      • Datastructures 0.18
      • MathOptFormat v0.5
      • Prep for MathOptInterface 0.9.15

    Version 0.21.3 (June 18, 2020)

    • Added Special Order Sets (SOS1 and SOS2) to JuMP with default weights to ease the creation of such constraints (#2212).
    • Added functions simplex_iterations, barrier_iterations and node_count (#2201).
    • Added function reduced_cost (#2205).
    • Implemented callback_value for affine and quadratic expressions (#2231).
    • Support MutableArithmetics.Zero in objective and constraints (#2219).
    • Documentation improvements:
      • Mention tutorials in the docs (#2223).
      • Update COIN-OR links (#2242).
      • Explicit link to the documentation of MOI.FileFormats (#2253).
      • Typo fixes (#2261).
    • Containers improvements:
      • Fix Base.map for DenseAxisArray (#2235).
      • Throw BoundsError if number of indices is incorrect for DenseAxisArray and SparseAxisArray (#2240).
    • Extensibility improvements:
      • Implement a set_objective method fallback that redirects to set_objective_sense and set_objective_function (#2247).
      • Add parse_constraint method with arbitrary number of arguments (#2051).
      • Add parse_constraint_expr and parse_constraint_head (#2228).

    Version 0.21.2 (April 2, 2020)

    • Added relative_gap() to access MOI.RelativeGap() attribute (#2199).
    • Documentation fixes:
      • Added link to source for docstrings in the documentation (#2207).
      • Added docstring for @variables macro (#2216).
      • Typo fixes (#2177, #2184, #2182).
    • Implementation of methods for Base functions:
      • Implemented Base.empty! for JuMP.Model (#2198).
      • Implemented Base.conj for JuMP scalar types (#2209).

    Fixed

    • Fixed sum of expression with scalar product in macro (#2178).
    • Fixed writing of nonlinear models to MathOptFormat (#2181).
    • Fixed construction of empty SparseAxisArray (#2179).
    • Fixed constraint with zero function (#2188).

    Version 0.21.1 (Feb 18, 2020)

    • Improved the clarity of the with_optimizer deprecation warning.

    Version 0.21.0 (Feb 16, 2020)

    Breaking

    • Deprecated with_optimizer (#2090, #2084, #2141). You can replace with_optimizer by either nothing, optimizer_with_attributes or a closure:

      • replace with_optimizer(Ipopt.Optimizer) by Ipopt.Optimizer.
      • replace with_optimizer(Ipopt.Optimizer, max_cpu_time=60.0) by optimizer_with_attributes(Ipopt.Optimizer, "max_cpu_time" => 60.0).
      • replace with_optimizer(Gurobi.Optimizer, env) by () -> Gurobi.Optimizer(env).
      • replace with_optimizer(Gurobi.Optimizer, env, Presolve=0) by optimizer_with_attributes(() -> Gurobi.Optimizer(env), "Presolve" => 0).

      alternatively to optimizer_with_attributes, you can also set the attributes separately with set_optimizer_attribute.

    • Renamed set_parameter and set_parameters to set_optimizer_attribute and set_optimizer_attributes (#2150).

    • Broadcast should now be explicit inside macros. @SDconstraint(model, x >= 1) and @constraint(model, x + 1 in SecondOrderCone()) now throw an error instead of broadcasting 1 along the dimension of x (#2107).

    • @SDconstraint(model, x >= 0) is now equivalent to @constraint(model, x in PSDCone()) instead of @constraint(model, (x .- 0) in PSDCone()) (#2107).

    • The macros now create the containers with map instead of for loops, as a consequence, containers created by @expression can now have any element type and containers of constraint references now have concrete element types when possible. This fixes a long-standing issue where @expression could only be used to generate a collection of linear expressions. Now it works for quadratic expressions as well (#2070).

    • Calling deepcopy(::AbstractModel) now throws an error.

    • The constraint name is now printed in the model string (#2108).

    Added

    • Added support for solver-independent and solver-specific callbacks (#2101).
    • Added write_to_file and read_from_file, supported formats are CBF, LP, MathOptFormat, MPS and SDPA (#2114).
    • Added support for complementarity constraints (#2132).
    • Added support for indicator constraints (#2092).
    • Added support for querying multiple solutions with the result keyword (#2100).
    • Added support for constraining variables on creation (#2128).
    • Added method delete that deletes a vector of variables at once if it is supported by the underlying solver (#2135).
    • The arithmetic between JuMP expression has be refactored into the MutableArithmetics package (#2107).
    • Improved error on complex values in NLP (#1978).
    • Added an example of column generation (#2010).

    Fixed

    • Incorrect coefficients generated when using Symmetric variables (#2102)

    Version 0.20.1 (Oct 18, 2019)

    • Add sections on @variables and @constraints in the documentation (#2062).
    • Fixed product of sparse matrices for Julia v1.3 (#2063).
    • Added set_objective_coefficient to modify the coefficient of a linear term of the objective function (#2008).
    • Added set_time_limit_sec, unset_time_limit_sec and time_limit_sec to set and query the time limit for the solver in seconds (#2053).

    Version 0.20.0 (Aug 24, 2019)

    • Documentation updates.
    • Numerous bug fixes.
    • Better error messages (#1977, #1978, #1997, #2017).
    • Performance improvements (#1947, #2032).
    • Added LP sensitivity summary functions lp_objective_perturbation_range and lp_rhs_perturbation_range (#1917).
    • Added functions dual_objective_value, raw_status and set_parameter.
    • Added function set_objective_coefficient to modify the coefficient of a linear term of the objective (#2008).
    • Added functions set_normalized_rhs, normalized_rhs, and add_to_function_constant to modify and get the constant part of a constraint (#1935, #1960).
    • Added functions set_normalized_coefficient and normalized_coefficient to modify and get the coefficient of a linear term of a constraint (#1935, #1960).
    • Numerous other improvements in MOI 0.9, see the NEWS.md file of MOI for more details.

    Version 0.19.2 (June 8, 2019)

    • Fix a bug in derivatives that could arise in models with nested nonlinear subexpressions.

    Version 0.19.1 (May 12, 2019)

    • Usability and performance improvements.
    • Bug fixes.

    Version 0.19.0 (February 15, 2019)

    JuMP 0.19 contains significant breaking changes.

    Breaking

    • JuMP's abstraction layer for communicating with solvers changed from MathProgBase (MPB) to MathOptInterface (MOI). MOI addresses many longstanding design issues. (See @mlubin's slides from JuMP-dev 2018.) JuMP 0.19 is compatible only with solvers that have been updated for MOI. See the installation guide for a list of solvers that have and have not yet been updated.

    • Most solvers have been renamed to PackageName.Optimizer. For example, GurobiSolver() is now Gurobi.Optimizer.

    • Solvers are no longer added to a model via Model(solver = XXX(kwargs...)). Instead use Model(with_optimizer(XXX, kwargs...)). For example, Model(with_optimizer(Gurobi.Optimizer, OutputFlag=0)).

    • JuMP containers (for example, the objects returned by @variable) have been redesigned. Containers.SparseAxisArray replaces JuMPDict, JuMPArray was rewritten (inspired by AxisArrays) and renamed Containers.DenseAxisArray, and you can now request a container type with the container= keyword to the macros. See the corresponding documentation for more details.

    • The statuses returned by solvers have changed. See the possible status values here. The MOI statuses are much richer than the MPB statuses and can be used to distinguish between previously indistinguishable cases (for example, did the solver have a feasible solution when it stopped because of the time limit?).

    • Starting values are separate from result values. Use value to query the value of a variable in a solution. Use start_value and set_start_value to get and set an initial starting point provided to the solver. The solutions from previous solves are no longer automatically set as the starting points for the next solve.

    • The data structures for affine and quadratic expressions AffExpr and QuadExpr have changed. Internally, terms are stored in dictionaries instead of lists. Duplicate coefficients can no longer exist. Accessors and iteration methods have changed.

    • JuMPNLPEvaluator no longer includes the linear and quadratic parts of the model in the evaluation calls. These are now handled separately to allow NLP solvers that support various types of constraints.

    • JuMP solver-independent callbacks have been replaced by solver-specific callbacks. See your favorite solver for more details. (See the note below: No solver-specific callbacks are implemented yet.)

    • The norm() syntax is no longer recognized inside macros. Use the SecondOrderCone() set instead.

    • JuMP no longer performs automatic transformation between special quadratic forms and second-order cone constraints. Support for these constraint classes depends on the solver.

    • The symbols :Min and :Max are no longer used as optimization senses. Instead, JuMP uses the OptimizationSense enum from MathOptInterface. @objective(model, Max, ...), @objective(model, Min, ...), @NLobjective(model, Max, ...), and @objective(model, Min, ...) remain valid, but @objective(m, :Max, ...) is no longer accepted.

    • The sign conventions for duals has changed in some cases for consistency with conic duality (see the documentation). The shadow_price helper method returns duals with signs that match conventional LP interpretations of dual values as sensitivities of the objective value to relaxations of constraints.

    • @constraintref is no longer defined. Instead, create the appropriate container to hold constraint references manually. For example,

      constraints = Dict() # Optionally, specify types for improved performance.
      +for i in 1:N
      +  constraints[i] = @constraint(model, ...)
      +end
    • The lowerbound, upperbound, and basename keyword arguments to the @variable macro have been renamed to lower_bound, upper_bound, and base_name, for consistency with JuMP's new style recommendations.

    • We rely on broadcasting syntax to apply accessors to collections of variables, for example, value.(x) instead of getvalue(x) for collections. (Use value(x) when x is a scalar object.)

    Added

    • Splatting (like f(x...)) is recognized in restricted settings in nonlinear expressions.

    • Support for deleting constraints and variables.

    • The documentation has been completely rewritten using docstrings and Documenter.

    • Support for modeling mixed conic and quadratic models (for example, conic models with quadratic objectives and bi-linear matrix inequalities).

    • Significantly improved support for modeling new types of constraints and for extending JuMP's macros.

    • Support for providing dual warm starts.

    • Improved support for accessing solver-specific attributes (for example, the irreducible inconsistent subsystem).

    • Explicit control of whether symmetry-enforcing constraints are added to PSD constraints.

    • Support for modeling exponential cones.

    • Significant improvements in internal code quality and testing.

    • Style and naming guidelines.

    • Direct mode and manual mode provide explicit control over when copies of a model are stored or regenerated. See the corresponding documentation.

    Regressions

    There are known regressions from JuMP 0.18 that will be addressed in a future release (0.19.x or later):

    • Performance regressions in model generation (issue). Please file an issue anyway if you notice a significant performance regression. We have plans to address a number of performance issues, but we might not be aware of all of them.

    • Fast incremental NLP solves are not yet reimplemented (issue).

    • We do not yet have an implementation of solver-specific callbacks.

    • The column generation syntax in @variable has been removed (that is, the objective, coefficients, and inconstraints keyword arguments). Support for column generation will be re-introduced in a future release.

    • The ability to solve the continuous relaxation (that is, via solve(model; relaxation = true)) is not yet reimplemented (issue).

    Version 0.18.5 (December 1, 2018)

    • Support views in some derivative evaluation functions.
    • Improved compatibility with PackageCompiler.

    Version 0.18.4 (October 8, 2018)

    • Fix a bug in model printing on Julia 0.7 and 1.0.

    Version 0.18.3 (October 1, 2018)

    • Add support for Julia v1.0 (Thanks @ExpandingMan)
    • Fix matrix expressions with quadratic functions (#1508)

    Version 0.18.2 (June 10, 2018)

    • Fix a bug in second-order derivatives when expressions are present (#1319)
    • Fix a bug in @constraintref (#1330)

    Version 0.18.1 (April 9, 2018)

    • Fix for nested tuple destructuring (#1193)
    • Preserve internal model when relaxation=true (#1209)
    • Minor bug fixes and updates for example

    Version 0.18.0 (July 27, 2017)

    • Drop support for Julia 0.5.
    • Update for ForwardDiff 0.5.
    • Minor bug fixes.

    Version 0.17.1 (June 9, 2017)

    • Use of constructconstraint! in @SDconstraint.
    • Minor bug fixes.

    Version 0.17.0 (May 27, 2017)

    • Breaking change: Mixing quadratic and conic constraints is no longer supported.
    • Breaking change: The getvariable and getconstraint functions are replaced by indexing on the corresponding symbol. For instance, to access the variable with name x, one should now write m[:x] instead of getvariable(m, :x). As a consequence, creating a variable and constraint with the same name now triggers a warning, and accessing one of them afterwards throws an error. This change is breaking only in the latter case.
    • Addition of the getobjectivebound function that mirrors the functionality of the MathProgBase getobjbound function except that it takes into account transformations performed by JuMP.
    • Minor bug fixes.

    The following changes are primarily of interest to developers of JuMP extensions:

    • The new syntax @constraint(model, expr in Cone) creates the constraint ensuring that expr is inside Cone. The Cone argument is passed to constructconstraint! which enables the call to the dispatched to an extension.
    • The @variable macro now calls constructvariable! instead of directly calling the Variable constructor. Extra arguments and keyword arguments passed to @variable are passed to constructvariable! which enables the call to be dispatched to an extension.
    • Refactor the internal function conicdata (used build the MathProgBase conic model) into smaller sub-functions to make these parts reusable by extensions.

    Version 0.16.2 (March 28, 2017)

    • Minor bug fixes and printing tweaks
    • Address deprecation warnings for Julia 0.6

    Version 0.16.1 (March 7, 2017)

    • Better support for AbstractArray in JuMP (Thanks @tkoolen)
    • Minor bug fixes

    Version 0.16.0 (February 23, 2017)

    • Breaking change: JuMP no longer has a mechanism for selecting solvers by default (the previous mechanism was flawed and incompatible with Julia 0.6). Not specifying a solver before calling solve() will result in an error.
    • Breaking change: User-defined functions are no longer global. The first argument to JuMP.register is now a JuMP Model object within whose scope the function will be registered. Calling JuMP.register without a Model now produces an error.
    • Breaking change: Use the new JuMP.fix method to fix a variable to a value or to update the value to which a variable is fixed. Calling setvalue on a fixed variable now results in an error in order to avoid silent behavior changes. (Thanks @joaquimg)
    • Nonlinear expressions now print out similarly to linear/quadratic expressions (useful for debugging!)
    • New category keyword to @variable. Used for specifying categories of anonymous variables.
    • Compatibility with Julia 0.6-dev.
    • Minor fixes and improvements (Thanks @cossio, @ccoffrin, @blegat)

    Version 0.15.1 (January 31, 2017)

    • Bugfix for @LinearConstraints and friends

    Version 0.15.0 (December 22, 2016)

    • Julia 0.5.0 is the minimum required version for this release.
    • Document support for BARON solver
    • Enable info callbacks in more states than before, for example, for recording solutions. New when argument to addinfocallback (#814, thanks @yeesian)
    • Improved support for anonymous variables. This includes new warnings for potentially confusing use of the traditional non-anonymous syntax:
      • When multiple variables in a model are given the same name
      • When non-symbols are used as names, for example, @variable(m, x[1][1:N])
    • Improvements in iterating over JuMP containers (#836, thanks @IssamT)
    • Support for writing variable names in .lp file output (Thanks @leethargo)
    • Support for querying duals to SDP problems (Thanks @blegat)
    • The comprehension syntax with curly braces sum{}, prod{}, and norm2{} has been deprecated in favor of Julia's native comprehension syntax sum(), prod() and norm() as previously announced. (For early adopters of the new syntax, norm2() was renamed to norm() without deprecation.)
    • Unit tests rewritten to use Base.Test instead of FactCheck
    • Improved support for operations with matrices of JuMP types (Thanks @ExpandingMan)
    • The syntax to halt a solver from inside a callback has changed from throw(CallbackAbort()) to return JuMP.StopTheSolver
    • Minor bug fixes

    Version 0.14.2 (December 12, 2016)

    • Allow singleton anonymous variables (includes bugfix)

    Version 0.14.1 (September 12, 2016)

    • More consistent handling of states in informational callbacks, includes a new when parameter to addinfocallback for specifying in which state an informational callback should be called.

    Version 0.14.0 (August 7, 2016)

    • Compatibility with Julia 0.5 and ForwardDiff 0.2
    • Support for "anonymous" variables, constraints, expressions, and parameters, for example, x = @variable(m, [1:N]) instead of @variable(m, x[1:N])
    • Support for retrieving constraints from a model by name via getconstraint
    • @NLconstraint now returns constraint references (as expected).
    • Support for vectorized expressions within lazy constraints
    • On Julia 0.5, parse new comprehension syntax sum(x[i] for i in 1:N if isodd(i)) instead of sum{ x[i], i in 1:N; isodd(i) }. The old syntax with curly braces will be deprecated in JuMP 0.15.
    • Now possible to provide nonlinear expressions as "raw" Julia Expr objects instead of using JuMP's nonlinear macros. This input format is useful for programmatically generated expressions.
    • s/Mathematical Programming/Mathematical Optimization/
    • Support for local cuts (Thanks to @madanim, Mehdi Madani)
    • Document Xpress interface developed by @joaquimg, Joaquim Dias Garcia
    • Minor bug and deprecation fixes (Thanks @odow, @jrevels)

    Version 0.13.2 (May 16, 2016)

    • Compatibility update for MathProgBase

    Version 0.13.1 (May 3, 2016)

    • Fix broken deprecation for registerNLfunction.

    Version 0.13.0 (April 29, 2016)

    • Most exported methods and macros have been renamed to avoid camelCase. See the list of changes here. There is a 1-1 mapping from the old names to the new, and it is safe to simply replace the names to update existing models.
    • Specify variable lower/upper bounds in @variable using the lowerbound and upperbound keyword arguments.
    • Change name printed for variable using the basename keyword argument to @variable.
    • New @variables macro allows multi-line declaration of groups of variables.
    • A number of solver methods previously available only through MathProgBase are now exposed directly in JuMP. The fix was recorded live.
    • Compatibility fixes with Julia 0.5.
    • The "end" indexing syntax is no longer supported within JuMPArrays which do not use 1-based indexing until upstream issues are resolved, see here.

    Version 0.12.2 (March 9, 2016)

    • Small fixes for nonlinear optimization

    Version 0.12.1 (March 1, 2016)

    • Fix a regression in slicing for JuMPArrays (when not using 1-based indexing)

    Version 0.12.0 (February 27, 2016)

    • The automatic differentiation functionality has been completely rewritten with a number of user-facing changes:
      • @defExpr and @defNLExpr now take the model as the first argument. The previous one-argument version of @defExpr is deprecated; all expressions should be named. For example, replace @defExpr(2x+y) with @defExpr(jump_model, my_expr, 2x+y).
      • JuMP no longer uses Julia's variable binding rules for efficiently re-solving a sequence of nonlinear models. Instead, we have introduced nonlinear parameters. This is a breaking change, so we have added a warning message when we detect models that may depend on the old behavior.
      • Support for user-defined functions integrated within nonlinear JuMP expressions.
    • Replaced iteration over AffExpr with Number-like scalar iteration; previous iteration behavior is now available via linearterms(::AffExpr).
    • Stopping the solver via throw(CallbackAbort()) from a callback no longer triggers an exception. Instead, solve() returns UserLimit status.
    • getDual() now works for conic problems (Thanks @emreyamangil.)

    Version 0.11.3 (February 4, 2016)

    • Bug-fix for problems with quadratic objectives and semidefinite constraints

    Version 0.11.2 (January 14, 2016)

    • Compatibility update for Mosek

    Version 0.11.1 (December 1, 2015)

    • Remove usage of @compat in tests.
    • Fix updating quadratic objectives for nonlinear models.

    Version 0.11.0 (November 30, 2015)

    • Julia 0.4.0 is the minimum required version for this release.
    • Fix for scoping semantics of index variables in sum{}. Index variables no longer leak into the surrounding scope.
    • Addition of the solve(m::Model, relaxation=true) keyword argument to solve the standard continuous relaxation of model m
    • The getConstraintBounds() method allows access to the lower and upper bounds of all constraints in a (nonlinear) model.
    • Update for breaking changes in MathProgBase

    Version 0.10.3 (November 20, 2015)

    • Fix a rare error when parsing quadratic expressions
    • Fix Variable() constructor with default arguments
    • Detect unrecognized keywords in solve()

    Version 0.10.2 (September 28, 2015)

    • Fix for deprecation warnings

    Version 0.10.1 (September 3, 2015)

    • Fixes for ambiguity warnings.
    • Fix for breaking change in precompilation syntax in Julia 0.4-pre

    Version 0.10.0 (August 31, 2015)

    • Support (on Julia 0.4 and later) for conditions in indexing @defVar and @addConstraint constructs, for example, @defVar(m, x[i=1:5,j=1:5; i+j >= 3])
    • Support for vectorized operations on Variables and expressions. See the documentation for details.
    • New getVar() method to access variables in a model by name
    • Support for semidefinite programming.
    • Dual solutions are now available for general nonlinear problems. You may call getDual on a reference object for a nonlinear constraint, and getDual on a variable object for Lagrange multipliers from active bounds.
    • Introduce warnings for two common performance traps: too many calls to getValue() on a collection of variables and use of the + operator in a loop to sum expressions.
    • Second-order cone constraints can be written directly with the norm() and norm2{} syntax.
    • Implement MathProgBase interface for querying Hessian-vector products.
    • Iteration over JuMPContainers is deprecated; instead, use the keys and values functions, and zip(keys(d),values(d)) for the old behavior.
    • @defVar returns Array{Variable,N} when each of N index sets are of the form 1:nᵢ.
    • Module precompilation: on Julia 0.4 and later, using JuMP is now much faster.

    Version 0.9.3 (August 11, 2015)

    • Fixes for FactCheck testing on julia v0.4.

    Version 0.9.2 (June 27, 2015)

    • Fix bug in @addConstraints.

    Version 0.9.1 (April 25, 2015)

    • Fix for Julia 0.4-dev.
    • Small infrastructure improvements for extensions.

    Version 0.9.0 (April 18, 2015)

    • Comparison operators for constructing constraints (for example, 2x >= 1) have been deprecated. Instead, construct the constraints explicitly in the @addConstraint macro to add them to the model, or in the @LinearConstraint macro to create a stand-alone linear constraint instance.
    • getValue() method implemented to compute the value of a nonlinear subexpression
    • JuMP is now released under the Mozilla Public License version 2.0 (was previously LGPL). MPL is a copyleft license which is less restrictive than LGPL, especially for embedding JuMP within other applications.
    • A number of performance improvements in ReverseDiffSparse for computing derivatives.
    • MathProgBase.getsolvetime(m) now returns the solution time reported by the solver, if available. (Thanks @odow, Oscar Dowson)
    • Formatting fix for LP format output. (Thanks @sbebo, Leonardo Taccari).

    Version 0.8.0 (February 17, 2015)

    • Nonlinear subexpressions now supported with the @defNLExpr macro.
    • SCS supported for solving second-order conic problems.
    • setXXXCallback family deprecated in favor of addXXXCallback.
    • Multiple callbacks of the same type can be registered.
    • Added support for informational callbacks via addInfoCallback.
    • A CallbackAbort exception can be thrown from callback to safely exit optimization.

    Version 0.7.4 (February 4, 2015)

    • Reduced costs and linear constraint duals are now accessible when quadratic constraints are present.
    • Two-sided nonlinear constraints are supported.
    • Methods for accessing the number of variables and constraints in a model are renamed.
    • New default procedure for setting initial values in nonlinear optimization: project zero onto the variable bounds.
    • Small bug fixes.

    Version 0.7.3 (January 14, 2015)

    • Fix a method ambiguity conflict with Compose.jl (cosmetic fix)

    Version 0.7.2 (January 9, 2015)

    • Fix a bug in sum(::JuMPDict)
    • Added the setCategory function to change a variables category (for example, continuous or binary)

    after construction, and getCategory to retrieve the variable category.

    Version 0.7.1 (January 2, 2015)

    • Fix a bug in parsing linear expressions in macros. Affects only Julia 0.4 and later.

    Version 0.7.0 (December 29, 2014)

    Linear/quadratic/conic programming

    • Breaking change: The syntax for column-wise model generation has been changed to use keyword arguments in @defVar.
    • On Julia 0.4 and later, variables and coefficients may be multiplied in any order within macros. That is, variable*coefficient is now valid syntax.
    • ECOS supported for solving second-order conic problems.

    Nonlinear programming

    • Support for skipping model generation when solving a sequence of nonlinear models with changing data.
    • Fix a memory leak when solving a sequence of nonlinear models.
    • The @addNLConstraint macro now supports the three-argument version to define sets of nonlinear constraints.
    • KNITRO supported as a nonlinear solver.
    • Speed improvements for model generation.
    • The @addNLConstraints macro supports adding multiple (groups of) constraints at once. Syntax is similar to @addConstraints.
    • Discrete variables allowed in nonlinear problems for solvers which support them (currently only KNITRO).

    General

    • Starting values for variables may now be specified with @defVar(m, x, start=value).
    • The setSolver function allows users to change the solver subsequent to model creation.
    • Support for "fixed" variables via the @defVar(m, x == 1) syntax.
    • Unit tests rewritten to use FactCheck.jl, improved testing across solvers.

    Version 0.6.3 (October 19, 2014)

    • Fix a bug in multiplying two AffExpr objects.

    Version 0.6.2 (October 11, 2014)

    • Further improvements and bug fixes for printing.
    • Fixed a bug in @defExpr.
    • Support for accessing expression graphs through the MathProgBase NLP interface.

    Version 0.6.1 (September 19, 2014)

    • Improvements and bug fixes for printing.

    Version 0.6.0 (September 9, 2014)

    • Julia 0.3.0 is the minimum required version for this release.
    • buildInternalModel(m::Model) added to build solver-level model in memory without optimizing.
    • Deprecate load_model_only keyword argument to solve.
    • Add groups of constraints with @addConstraints macro.
    • Unicode operators now supported, including for sum, for prod, and /
    • Quadratic constraints supported in @addConstraint macro.
    • Quadratic objectives supported in @setObjective macro.
    • MathProgBase solver-independent interface replaces Ipopt-specific interface for nonlinear problems
      • Breaking change: IpoptOptions no longer supported to specify solver options, use m = Model(solver=IpoptSolver(options...)) instead.
    • New solver interfaces: ECOS, NLopt, and nonlinear support for MOSEK
    • New option to control whether the lazy constraint callback is executed at each node in the B&B tree or just when feasible solutions are found
    • Add support for semicontinuous and semi-integer variables for those solvers that support them.
    • Add support for index dependencies (for example, triangular indexing) in @defVar, @addConstraint, and @defExpr (for example, @defVar(m, x[i=1:10,j=i:10])).
      • This required some changes to the internal structure of JuMP containers, which may break code that explicitly stored JuMPDict objects.

    Version 0.5.8 (September 24, 2014)

    • Fix a bug with specifying solvers (affects Julia 0.2 only)

    Version 0.5.7 (September 5, 2014)

    • Fix a bug in printing models

    Version 0.5.6 (September 2, 2014)

    • Add support for semicontinuous and semi-integer variables for those solvers that support them.
      • Breaking change: Syntax for Variable() constructor has changed (use of this interface remains discouraged)
    • Update for breaking changes in MathProgBase

    Version 0.5.5 (July 6, 2014)

    • Fix bug with problem modification: adding variables that did not appear in existing constraints or objective.

    Version 0.5.4 (June 19, 2014)

    • Update for breaking change in MathProgBase which reduces loading times for using JuMP
    • Fix error when MIPs not solved to optimality

    Version 0.5.3 (May 21, 2014)

    • Update for breaking change in ReverseDiffSparse

    Version 0.5.2 (May 9, 2014)

    • Fix compatibility with Julia 0.3 prerelease

    Version 0.5.1 (May 5, 2014)

    • Fix a bug in coefficient handling inside lazy constraints and user cuts

    Version 0.5.0 (May 2, 2014)

    • Support for nonlinear optimization with exact, sparse second-order derivatives automatically computed. Ipopt is currently the only solver supported.
    • getValue for AffExpr and QuadExpr
    • Breaking change: getSolverModel replaced by getInternalModel, which returns the internal MathProgBase-level model
    • Groups of constraints can be specified with @addConstraint (see documentation for details). This is not a breaking change.
    • dot(::JuMPDict{Variable},::JuMPDict{Variable}) now returns the corresponding quadratic expression.

    Version 0.4.1 (March 24, 2014)

    • Fix bug where change in objective sense was ignored when re-solving a model.
    • Fix issue with handling zero coefficients in AffExpr.

    Version 0.4.0 (March 10, 2014)

    • Support for SOS1 and SOS2 constraints.
    • Solver-independent callback for user heuristics.
    • dot and sum implemented for JuMPDict objects. Now you can say @addConstraint(m, dot(a,x) <= b).
    • Developers: support for extensions to JuMP. See definition of Model in src/JuMP.jl for more details.
    • Option to construct the low-level model before optimizing.

    Version 0.3.2 (February 17, 2014)

    • Improved model printing
      • Preliminary support for IJulia output

    Version 0.3.1 (January 30, 2014)

    • Documentation updates
    • Support for MOSEK
    • CPLEXLink renamed to CPLEX

    Version 0.3.0 (January 21, 2014)

    • Unbounded/infeasibility rays: getValue() will return the corresponding components of an unbounded ray when a model is unbounded, if supported by the selected solver. getDual() will return an infeasibility ray (Farkas proof) if a model is infeasible and the selected solver supports this feature.
    • Solver-independent callbacks for user generated cuts.
    • Use new interface for solver-independent QCQP.
    • setlazycallback renamed to setLazyCallback for consistency.

    Version 0.2.0 (December 15, 2013)

    Breaking

    • Objective sense is specified in setObjective instead of in the Model constructor.
    • lpsolver and mipsolver merged into single solver option.

    Added

    • Problem modification with efficient LP restarts and MIP warm-starts.
    • Relatedly, column-wise modeling now supported.
    • Solver-independent callbacks supported. Currently we support only a "lazy constraint" callback, which works with Gurobi, CPLEX, and GLPK. More callbacks coming soon.

    Version 0.1.2 (November 16, 2013)

    • Bug fixes for printing, improved error messages.
    • Allow AffExpr to be used in macros; for example, ex = y + z; @addConstraint(m, x + 2*ex <= 3)

    Version 0.1.1 (October 23, 2013)

    • Update for solver specification API changes in MathProgBase.

    Version 0.1.0 (October 3, 2013)

    • Initial public release.
    diff --git a/previews/PR3545/search_index.js b/previews/PR3545/search_index.js new file mode 100644 index 00000000000..86ddcdaee4d --- /dev/null +++ b/previews/PR3545/search_index.js @@ -0,0 +1,3 @@ +var documenterSearchIndex = {"docs": +[{"location":"moi/reference/nonlinear/","page":"Nonlinear programming","title":"Nonlinear programming","text":"EditURL = \"https://github.com/jump-dev/MathOptInterface.jl/blob/v1.20.1/docs/src/reference/nonlinear.md\"","category":"page"},{"location":"moi/reference/nonlinear/","page":"Nonlinear programming","title":"Nonlinear programming","text":"CurrentModule = MathOptInterface\nDocTestSetup = quote\n import MathOptInterface as MOI\nend\nDocTestFilters = [r\"MathOptInterface|MOI\"]","category":"page"},{"location":"moi/reference/nonlinear/#Nonlinear-programming","page":"Nonlinear programming","title":"Nonlinear programming","text":"","category":"section"},{"location":"moi/reference/nonlinear/#Types","page":"Nonlinear programming","title":"Types","text":"","category":"section"},{"location":"moi/reference/nonlinear/","page":"Nonlinear programming","title":"Nonlinear programming","text":"AbstractNLPEvaluator\nNLPBoundsPair\nNLPBlockData","category":"page"},{"location":"moi/reference/nonlinear/#MathOptInterface.AbstractNLPEvaluator","page":"Nonlinear programming","title":"MathOptInterface.AbstractNLPEvaluator","text":"AbstractNLPEvaluator\n\nAbstract supertype for the callback object that is used to query function values, derivatives, and expression graphs.\n\nIt is used in NLPBlockData.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/nonlinear/#MathOptInterface.NLPBoundsPair","page":"Nonlinear programming","title":"MathOptInterface.NLPBoundsPair","text":"NLPBoundsPair(lower::Float64, upper::Float64)\n\nA struct holding a pair of lower and upper bounds.\n\n-Inf and Inf can be used to indicate no lower or upper bound, respectively.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/nonlinear/#MathOptInterface.NLPBlockData","page":"Nonlinear programming","title":"MathOptInterface.NLPBlockData","text":"struct NLPBlockData\n constraint_bounds::Vector{NLPBoundsPair}\n evaluator::AbstractNLPEvaluator\n has_objective::Bool\nend\n\nA struct encoding a set of nonlinear constraints of the form lb le g(x) le ub and, if has_objective == true, a nonlinear objective function f(x).\n\nNonlinear objectives override any objective set by using the ObjectiveFunction attribute.\n\nThe evaluator is a callback object that is used to query function values, derivatives, and expression graphs. If has_objective == false, then it is an error to query properties of the objective function, and in Hessian-of-the-Lagrangian queries, σ must be set to zero.\n\nnote: Note\nThroughout the evaluator, all variables are ordered according to ListOfVariableIndices. Hence, MOI copies of nonlinear problems must not re-order variables.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/nonlinear/#Attributes","page":"Nonlinear programming","title":"Attributes","text":"","category":"section"},{"location":"moi/reference/nonlinear/","page":"Nonlinear programming","title":"Nonlinear programming","text":"NLPBlock\nNLPBlockDual\nNLPBlockDualStart","category":"page"},{"location":"moi/reference/nonlinear/#MathOptInterface.NLPBlock","page":"Nonlinear programming","title":"MathOptInterface.NLPBlock","text":"NLPBlock()\n\nAn AbstractModelAttribute that stores an NLPBlockData, representing a set of nonlinear constraints, and optionally a nonlinear objective.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/nonlinear/#MathOptInterface.NLPBlockDual","page":"Nonlinear programming","title":"MathOptInterface.NLPBlockDual","text":"NLPBlockDual(result_index::Int = 1)\n\nAn AbstractModelAttribute for the Lagrange multipliers on the constraints from the NLPBlock in result result_index.\n\nIf result_index is omitted, it is 1 by default.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/nonlinear/#MathOptInterface.NLPBlockDualStart","page":"Nonlinear programming","title":"MathOptInterface.NLPBlockDualStart","text":"NLPBlockDualStart()\n\nAn AbstractModelAttribute for the initial assignment of the Lagrange multipliers on the constraints from the NLPBlock that the solver may use to warm-start the solve.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/nonlinear/#Functions","page":"Nonlinear programming","title":"Functions","text":"","category":"section"},{"location":"moi/reference/nonlinear/","page":"Nonlinear programming","title":"Nonlinear programming","text":"initialize\nfeatures_available\neval_objective\neval_constraint\neval_objective_gradient\njacobian_structure\neval_constraint_gradient\nconstraint_gradient_structure\neval_constraint_jacobian\neval_constraint_jacobian_product\neval_constraint_jacobian_transpose_product\nhessian_lagrangian_structure\nhessian_objective_structure\nhessian_constraint_structure\neval_hessian_objective\neval_hessian_constraint\neval_hessian_lagrangian\neval_hessian_lagrangian_product\nobjective_expr\nconstraint_expr","category":"page"},{"location":"moi/reference/nonlinear/#MathOptInterface.initialize","page":"Nonlinear programming","title":"MathOptInterface.initialize","text":"initialize(\n d::AbstractNLPEvaluator,\n requested_features::Vector{Symbol},\n)::Nothing\n\nInitialize d with the set of features in requested_features. Check features_available before calling initialize to see what features are supported by d.\n\nwarning: Warning\nThis method must be called before any other methods.\n\nFeatures\n\nThe following features are defined:\n\n:Grad: enables eval_objective_gradient\n:Jac: enables eval_constraint_jacobian\n:JacVec: enables eval_constraint_jacobian_product and eval_constraint_jacobian_transpose_product\n:Hess: enables eval_hessian_lagrangian\n:HessVec: enables eval_hessian_lagrangian_product\n:ExprGraph: enables objective_expr and constraint_expr.\n\nIn all cases, including when requested_features is empty, eval_objective and eval_constraint are supported.\n\nExamples\n\nMOI.initialize(d, Symbol[])\nMOI.initialize(d, [:ExprGraph])\nMOI.initialize(d, MOI.features_available(d))\n\n\n\n\n\n","category":"function"},{"location":"moi/reference/nonlinear/#MathOptInterface.features_available","page":"Nonlinear programming","title":"MathOptInterface.features_available","text":"features_available(d::AbstractNLPEvaluator)::Vector{Symbol}\n\nReturns the subset of features available for this problem instance.\n\nSee initialize for the list of defined features.\n\n\n\n\n\n","category":"function"},{"location":"moi/reference/nonlinear/#MathOptInterface.eval_objective","page":"Nonlinear programming","title":"MathOptInterface.eval_objective","text":"eval_objective(d::AbstractNLPEvaluator, x::AbstractVector{T})::T where {T}\n\nEvaluate the objective f(x), returning a scalar value.\n\n\n\n\n\n","category":"function"},{"location":"moi/reference/nonlinear/#MathOptInterface.eval_constraint","page":"Nonlinear programming","title":"MathOptInterface.eval_constraint","text":"eval_constraint(d::AbstractNLPEvaluator,\n g::AbstractVector{T},\n x::AbstractVector{T},\n)::Nothing where {T}\n\nGiven a set of vector-valued constraints l le g(x) le u, evaluate the constraint function g(x), storing the result in the vector g.\n\nImplementation notes\n\nWhen implementing this method, you must not assume that g is Vector{Float64}, but you may assume that it supports setindex! and length. For example, it may be the view of a vector.\n\n\n\n\n\n","category":"function"},{"location":"moi/reference/nonlinear/#MathOptInterface.eval_objective_gradient","page":"Nonlinear programming","title":"MathOptInterface.eval_objective_gradient","text":"eval_objective_gradient(\n d::AbstractNLPEvaluator,\n grad::AbstractVector{T},\n x::AbstractVector{T},\n)::Nothing where {T}\n\nEvaluate the gradient of the objective function grad = nabla f(x) as a dense vector, storing the result in the vector grad.\n\nImplementation notes\n\nWhen implementing this method, you must not assume that grad is Vector{Float64}, but you may assume that it supports setindex! and length. For example, it may be the view of a vector.\n\n\n\n\n\n","category":"function"},{"location":"moi/reference/nonlinear/#MathOptInterface.jacobian_structure","page":"Nonlinear programming","title":"MathOptInterface.jacobian_structure","text":"jacobian_structure(d::AbstractNLPEvaluator)::Vector{Tuple{Int64,Int64}}\n\nReturns a vector of tuples, (row, column), where each indicates the position of a structurally nonzero element in the Jacobian matrix: J_g(x) = left beginarrayc nabla g_1(x) nabla g_2(x) vdots nabla g_m(x) endarrayright where g_i is the itextth component of the nonlinear constraints g(x).\n\nThe indices are not required to be sorted and can contain duplicates, in which case the solver should combine the corresponding elements by adding them together.\n\nThe sparsity structure is assumed to be independent of the point x.\n\n\n\n\n\n","category":"function"},{"location":"moi/reference/nonlinear/#MathOptInterface.eval_constraint_gradient","page":"Nonlinear programming","title":"MathOptInterface.eval_constraint_gradient","text":"eval_constraint_gradient(\n d::AbstractNLPEvaluator,\n ∇g::AbstractVector{T},\n x::AbstractVector{T},\n i::Int,\n)::Nothing where {T}\n\nEvaluate the gradient of constraint i, nabla g_i(x), and store the non-zero values in ∇g, corresponding to the structure returned by constraint_gradient_structure.\n\nImplementation notes\n\nWhen implementing this method, you must not assume that ∇g is Vector{Float64}, but you may assume that it supports setindex! and length. For example, it may be the view of a vector.\n\n\n\n\n\n","category":"function"},{"location":"moi/reference/nonlinear/#MathOptInterface.constraint_gradient_structure","page":"Nonlinear programming","title":"MathOptInterface.constraint_gradient_structure","text":"constraint_gradient_structure(d::AbstractNLPEvaluator, i::Int)::Vector{Int64}\n\nReturns a vector of indices, where each element indicates the position of a structurally nonzero element in the gradient of constraint nabla g_i(x).\n\nThe indices are not required to be sorted and can contain duplicates, in which case the solver should combine the corresponding elements by adding them together.\n\nThe sparsity structure is assumed to be independent of the point x.\n\n\n\n\n\n","category":"function"},{"location":"moi/reference/nonlinear/#MathOptInterface.eval_constraint_jacobian","page":"Nonlinear programming","title":"MathOptInterface.eval_constraint_jacobian","text":"eval_constraint_jacobian(d::AbstractNLPEvaluator,\n J::AbstractVector{T},\n x::AbstractVector{T},\n)::Nothing where {T}\n\nEvaluates the sparse Jacobian matrix J_g(x) = left beginarrayc nabla g_1(x) nabla g_2(x) vdots nabla g_m(x) endarrayright.\n\nThe result is stored in the vector J in the same order as the indices returned by jacobian_structure.\n\nImplementation notes\n\nWhen implementing this method, you must not assume that J is Vector{Float64}, but you may assume that it supports setindex! and length. For example, it may be the view of a vector.\n\n\n\n\n\n","category":"function"},{"location":"moi/reference/nonlinear/#MathOptInterface.eval_constraint_jacobian_product","page":"Nonlinear programming","title":"MathOptInterface.eval_constraint_jacobian_product","text":"eval_constraint_jacobian_product(\n d::AbstractNLPEvaluator,\n y::AbstractVector{T},\n x::AbstractVector{T},\n w::AbstractVector{T},\n)::Nothing where {T}\n\nComputes the Jacobian-vector product y = J_g(x)w, storing the result in the vector y.\n\nThe vectors have dimensions such that length(w) == length(x), and length(y) is the number of nonlinear constraints.\n\nImplementation notes\n\nWhen implementing this method, you must not assume that y is Vector{Float64}, but you may assume that it supports setindex! and length. For example, it may be the view of a vector.\n\n\n\n\n\n","category":"function"},{"location":"moi/reference/nonlinear/#MathOptInterface.eval_constraint_jacobian_transpose_product","page":"Nonlinear programming","title":"MathOptInterface.eval_constraint_jacobian_transpose_product","text":"eval_constraint_jacobian_transpose_product(\n d::AbstractNLPEvaluator,\n y::AbstractVector{T},\n x::AbstractVector{T},\n w::AbstractVector{T},\n)::Nothing where {T}\n\nComputes the Jacobian-transpose-vector product y = J_g(x)^Tw, storing the result in the vector y.\n\nThe vectors have dimensions such that length(y) == length(x), and length(w) is the number of nonlinear constraints.\n\nImplementation notes\n\nWhen implementing this method, you must not assume that y is Vector{Float64}, but you may assume that it supports setindex! and length. For example, it may be the view of a vector.\n\n\n\n\n\n","category":"function"},{"location":"moi/reference/nonlinear/#MathOptInterface.hessian_lagrangian_structure","page":"Nonlinear programming","title":"MathOptInterface.hessian_lagrangian_structure","text":"hessian_lagrangian_structure(\n d::AbstractNLPEvaluator,\n)::Vector{Tuple{Int64,Int64}}\n\nReturns a vector of tuples, (row, column), where each indicates the position of a structurally nonzero element in the Hessian-of-the-Lagrangian matrix: nabla^2 f(x) + sum_i=1^m nabla^2 g_i(x).\n\nThe indices are not required to be sorted and can contain duplicates, in which case the solver should combine the corresponding elements by adding them together.\n\nAny mix of lower and upper-triangular indices is valid. Elements (i,j) and (j,i), if both present, should be treated as duplicates.\n\nThe sparsity structure is assumed to be independent of the point x.\n\n\n\n\n\n","category":"function"},{"location":"moi/reference/nonlinear/#MathOptInterface.hessian_objective_structure","page":"Nonlinear programming","title":"MathOptInterface.hessian_objective_structure","text":"hessian_objective_structure(\n d::AbstractNLPEvaluator,\n)::Vector{Tuple{Int64,Int64}}\n\nReturns a vector of tuples, (row, column), where each indicates the position of a structurally nonzero element in the Hessian matrix: nabla^2 f(x).\n\nThe indices are not required to be sorted and can contain duplicates, in which case the solver should combine the corresponding elements by adding them together.\n\nAny mix of lower and upper-triangular indices is valid. Elements (i,j) and (j,i), if both present, should be treated as duplicates.\n\nThe sparsity structure is assumed to be independent of the point x.\n\n\n\n\n\n","category":"function"},{"location":"moi/reference/nonlinear/#MathOptInterface.hessian_constraint_structure","page":"Nonlinear programming","title":"MathOptInterface.hessian_constraint_structure","text":"hessian_constraint_structure(\n d::AbstractNLPEvaluator,\n i::Int64,\n)::Vector{Tuple{Int64,Int64}}\n\nReturns a vector of tuples, (row, column), where each indicates the position of a structurally nonzero element in the Hessian matrix: nabla^2 g_i(x).\n\nThe indices are not required to be sorted and can contain duplicates, in which case the solver should combine the corresponding elements by adding them together.\n\nAny mix of lower and upper-triangular indices is valid. Elements (i,j) and (j,i), if both present, should be treated as duplicates.\n\nThe sparsity structure is assumed to be independent of the point x.\n\n\n\n\n\n","category":"function"},{"location":"moi/reference/nonlinear/#MathOptInterface.eval_hessian_objective","page":"Nonlinear programming","title":"MathOptInterface.eval_hessian_objective","text":"eval_hessian_objective(\n d::AbstractNLPEvaluator,\n H::AbstractVector{T},\n x::AbstractVector{T},\n)::Nothing where {T}\n\nThis function computes the sparse Hessian matrix: nabla^2 f(x), storing the result in the vector H in the same order as the indices returned by hessian_objective_structure.\n\nImplementation notes\n\nWhen implementing this method, you must not assume that H is Vector{Float64}, but you may assume that it supports setindex! and length. For example, it may be the view of a vector.\n\n\n\n\n\n","category":"function"},{"location":"moi/reference/nonlinear/#MathOptInterface.eval_hessian_constraint","page":"Nonlinear programming","title":"MathOptInterface.eval_hessian_constraint","text":"eval_hessian_constraint(\n d::AbstractNLPEvaluator,\n H::AbstractVector{T},\n x::AbstractVector{T},\n i::Int64,\n)::Nothing where {T}\n\nThis function computes the sparse Hessian matrix: nabla^2 g_i(x), storing the result in the vector H in the same order as the indices returned by hessian_constraint_structure.\n\nImplementation notes\n\nWhen implementing this method, you must not assume that H is Vector{Float64}, but you may assume that it supports setindex! and length. For example, it may be the view of a vector.\n\n\n\n\n\n","category":"function"},{"location":"moi/reference/nonlinear/#MathOptInterface.eval_hessian_lagrangian","page":"Nonlinear programming","title":"MathOptInterface.eval_hessian_lagrangian","text":"eval_hessian_lagrangian(\n d::AbstractNLPEvaluator,\n H::AbstractVector{T},\n x::AbstractVector{T},\n σ::T,\n μ::AbstractVector{T},\n)::Nothing where {T}\n\nGiven scalar weight σ and vector of constraint weights μ, this function computes the sparse Hessian-of-the-Lagrangian matrix: sigmanabla^2 f(x) + sum_i=1^m mu_i nabla^2 g_i(x), storing the result in the vector H in the same order as the indices returned by hessian_lagrangian_structure.\n\nImplementation notes\n\nWhen implementing this method, you must not assume that H is Vector{Float64}, but you may assume that it supports setindex! and length. For example, it may be the view of a vector.\n\n\n\n\n\n","category":"function"},{"location":"moi/reference/nonlinear/#MathOptInterface.eval_hessian_lagrangian_product","page":"Nonlinear programming","title":"MathOptInterface.eval_hessian_lagrangian_product","text":"eval_hessian_lagrangian_product(\n d::AbstractNLPEvaluator,\n h::AbstractVector{T},\n x::AbstractVector{T},\n v::AbstractVector{T},\n σ::T,\n μ::AbstractVector{T},\n)::Nothing where {T}\n\nGiven scalar weight σ and vector of constraint weights μ, computes the Hessian-of-the-Lagrangian-vector product h = left(sigmanabla^2 f(x) + sum_i=1^m mu_i nabla^2 g_i(x)right)v, storing the result in the vector h.\n\nThe vectors have dimensions such that length(h) == length(x) == length(v).\n\nImplementation notes\n\nWhen implementing this method, you must not assume that h is Vector{Float64}, but you may assume that it supports setindex! and length. For example, it may be the view of a vector.\n\n\n\n\n\n","category":"function"},{"location":"moi/reference/nonlinear/#MathOptInterface.objective_expr","page":"Nonlinear programming","title":"MathOptInterface.objective_expr","text":"objective_expr(d::AbstractNLPEvaluator)::Expr\n\nReturns a Julia Expr object representing the expression graph of the objective function.\n\nFormat\n\nThe expression has a number of limitations, compared with arbitrary Julia expressions:\n\nAll sums and products are flattened out as simple Expr(:+, ...) and Expr(:*, ...) objects.\nAll decision variables must be of the form Expr(:ref, :x, MOI.VariableIndex(i)), where i is the ith variable in ListOfVariableIndices.\nThere are currently no restrictions on recognized functions; typically these will be built-in Julia functions like ^, exp, log, cos, tan, sqrt, etc., but modeling interfaces may choose to extend these basic functions, or error if they encounter unsupported functions.\n\nExamples\n\nThe expression x_1+sin(x_2exp(x_3)) is represented as\n\n:(x[MOI.VariableIndex(1)] + sin(x[MOI.VariableIndex(2)] / exp(x[MOI.VariableIndex[3]])))\n\nor equivalently\n\nExpr(\n :call,\n :+,\n Expr(:ref, :x, MOI.VariableIndex(1)),\n Expr(\n :call,\n :/,\n Expr(:call, :sin, Expr(:ref, :x, MOI.VariableIndex(2))),\n Expr(:call, :exp, Expr(:ref, :x, MOI.VariableIndex(3))),\n ),\n)\n\n\n\n\n\n","category":"function"},{"location":"moi/reference/nonlinear/#MathOptInterface.constraint_expr","page":"Nonlinear programming","title":"MathOptInterface.constraint_expr","text":"constraint_expr(d::AbstractNLPEvaluator, i::Integer)::Expr\n\nReturns a Julia Expr object representing the expression graph for the itextth nonlinear constraint.\n\nFormat\n\nThe format is the same as objective_expr, with an additional comparison operator indicating the sense of and bounds on the constraint.\n\nFor single-sided comparisons, the body of the constraint must be on the left-hand side, and the right-hand side must be a constant.\n\nFor double-sided comparisons (that is, l le f(x) le u), the body of the constraint must be in the middle, and the left- and right-hand sides must be constants.\n\nThe bounds on the constraints must match the NLPBoundsPairs passed to NLPBlockData.\n\nExamples\n\n:(x[MOI.VariableIndex(1)]^2 <= 1.0)\n:(x[MOI.VariableIndex(1)]^2 >= 2.0)\n:(x[MOI.VariableIndex(1)]^2 == 3.0)\n:(4.0 <= x[MOI.VariableIndex(1)]^2 <= 5.0)\n\n\n\n\n\n","category":"function"},{"location":"packages/Cbc/","page":"jump-dev/Cbc.jl","title":"jump-dev/Cbc.jl","text":"EditURL = \"https://github.com/jump-dev/Cbc.jl/blob/v1.2.0/README.md\"","category":"page"},{"location":"packages/Cbc/","page":"jump-dev/Cbc.jl","title":"jump-dev/Cbc.jl","text":"(Image: )","category":"page"},{"location":"packages/Cbc/#Cbc.jl","page":"jump-dev/Cbc.jl","title":"Cbc.jl","text":"","category":"section"},{"location":"packages/Cbc/","page":"jump-dev/Cbc.jl","title":"jump-dev/Cbc.jl","text":"(Image: Build Status) (Image: codecov)","category":"page"},{"location":"packages/Cbc/","page":"jump-dev/Cbc.jl","title":"jump-dev/Cbc.jl","text":"Cbc.jl is a wrapper for the COIN-OR Branch and Cut (Cbc) solver.","category":"page"},{"location":"packages/Cbc/","page":"jump-dev/Cbc.jl","title":"jump-dev/Cbc.jl","text":"The wrapper has two components:","category":"page"},{"location":"packages/Cbc/","page":"jump-dev/Cbc.jl","title":"jump-dev/Cbc.jl","text":"a thin wrapper around the complete C API\nan interface to MathOptInterface","category":"page"},{"location":"packages/Cbc/#Affiliation","page":"jump-dev/Cbc.jl","title":"Affiliation","text":"","category":"section"},{"location":"packages/Cbc/","page":"jump-dev/Cbc.jl","title":"jump-dev/Cbc.jl","text":"This wrapper is maintained by the JuMP community and is not a COIN-OR project.","category":"page"},{"location":"packages/Cbc/#License","page":"jump-dev/Cbc.jl","title":"License","text":"","category":"section"},{"location":"packages/Cbc/","page":"jump-dev/Cbc.jl","title":"jump-dev/Cbc.jl","text":"Cbc.jl is licensed under the MIT License.","category":"page"},{"location":"packages/Cbc/","page":"jump-dev/Cbc.jl","title":"jump-dev/Cbc.jl","text":"The underlying solver, coin-or/Cbc, is licensed under the Eclipse public license.","category":"page"},{"location":"packages/Cbc/#Installation","page":"jump-dev/Cbc.jl","title":"Installation","text":"","category":"section"},{"location":"packages/Cbc/","page":"jump-dev/Cbc.jl","title":"jump-dev/Cbc.jl","text":"Install Cbc using Pkg.add:","category":"page"},{"location":"packages/Cbc/","page":"jump-dev/Cbc.jl","title":"jump-dev/Cbc.jl","text":"import Pkg\nPkg.add(\"Cbc\")","category":"page"},{"location":"packages/Cbc/","page":"jump-dev/Cbc.jl","title":"jump-dev/Cbc.jl","text":"In addition to installing the Cbc.jl package, this will also download and install the Cbc binaries. You do not need to install Cbc separately.","category":"page"},{"location":"packages/Cbc/","page":"jump-dev/Cbc.jl","title":"jump-dev/Cbc.jl","text":"To use a custom binary, read the Custom solver binaries section of the JuMP documentation.","category":"page"},{"location":"packages/Cbc/#Use-with-JuMP","page":"jump-dev/Cbc.jl","title":"Use with JuMP","text":"","category":"section"},{"location":"packages/Cbc/","page":"jump-dev/Cbc.jl","title":"jump-dev/Cbc.jl","text":"To use Cbc with JuMP, use Cbc.Optimizer:","category":"page"},{"location":"packages/Cbc/","page":"jump-dev/Cbc.jl","title":"jump-dev/Cbc.jl","text":"using JuMP, Cbc\nmodel = Model(Cbc.Optimizer)\nset_attribute(model, \"logLevel\", 1)","category":"page"},{"location":"packages/Cbc/#MathOptInterface-API","page":"jump-dev/Cbc.jl","title":"MathOptInterface API","text":"","category":"section"},{"location":"packages/Cbc/","page":"jump-dev/Cbc.jl","title":"jump-dev/Cbc.jl","text":"The COIN Branch-and-Cut (Cbc) optimizer supports the following constraints and attributes.","category":"page"},{"location":"packages/Cbc/","page":"jump-dev/Cbc.jl","title":"jump-dev/Cbc.jl","text":"List of supported objective functions:","category":"page"},{"location":"packages/Cbc/","page":"jump-dev/Cbc.jl","title":"jump-dev/Cbc.jl","text":"MOI.ObjectiveFunction{MOI.ScalarAffineFunction{Float64}}","category":"page"},{"location":"packages/Cbc/","page":"jump-dev/Cbc.jl","title":"jump-dev/Cbc.jl","text":"List of supported variable types:","category":"page"},{"location":"packages/Cbc/","page":"jump-dev/Cbc.jl","title":"jump-dev/Cbc.jl","text":"MOI.Reals","category":"page"},{"location":"packages/Cbc/","page":"jump-dev/Cbc.jl","title":"jump-dev/Cbc.jl","text":"List of supported constraint types:","category":"page"},{"location":"packages/Cbc/","page":"jump-dev/Cbc.jl","title":"jump-dev/Cbc.jl","text":"MOI.ScalarAffineFunction{Float64} in MOI.EqualTo{Float64}\nMOI.ScalarAffineFunction{Float64} in MOI.GreaterThan{Float64}\nMOI.ScalarAffineFunction{Float64} in MOI.Interval{Float64}\nMOI.ScalarAffineFunction{Float64} in MOI.LessThan{Float64}\nMOI.VariableIndex in MOI.EqualTo{Float64}\nMOI.VariableIndex in MOI.GreaterThan{Float64}\nMOI.VariableIndex in MOI.Integer\nMOI.VariableIndex in MOI.Interval{Float64}\nMOI.VariableIndex in MOI.LessThan{Float64}\nMOI.VariableIndex in MOI.ZeroOne\nMOI.VectorOfVariables in MOI.SOS1{Float64}\nMOI.VectorOfVariables in MOI.SOS2{Float64}","category":"page"},{"location":"packages/Cbc/","page":"jump-dev/Cbc.jl","title":"jump-dev/Cbc.jl","text":"List of supported model attributes:","category":"page"},{"location":"packages/Cbc/","page":"jump-dev/Cbc.jl","title":"jump-dev/Cbc.jl","text":"Cbc.Status\nCbc.SecondaryStatus\nMOI.DualStatus\nMOI.NodeCount\nMOI.NumberOfVariables\nMOI.ObjectiveBound\nMOI.ObjectiveSense\nMOI.ObjectiveValue\nMOI.PrimalStatus\nMOI.RelativeGap\nMOI.ResultCount\nMOI.SolveTimeSec\nMOI.TerminationStatus","category":"page"},{"location":"packages/Cbc/","page":"jump-dev/Cbc.jl","title":"jump-dev/Cbc.jl","text":"List of supported optimizer attributes:","category":"page"},{"location":"packages/Cbc/","page":"jump-dev/Cbc.jl","title":"jump-dev/Cbc.jl","text":"Cbc.SetVariableNames\nMOI.AbsoluteGapTolerance\nMOI.NumberOfThreads\nMOI.RawOptimizerAttribute\nMOI.RelativeGapTolerance\nMOI.Silent\nMOI.SolverName\nMOI.SolverVersion\nMOI.TimeLimitSec","category":"page"},{"location":"packages/Cbc/","page":"jump-dev/Cbc.jl","title":"jump-dev/Cbc.jl","text":"List of supported variable attributes:","category":"page"},{"location":"packages/Cbc/","page":"jump-dev/Cbc.jl","title":"jump-dev/Cbc.jl","text":"MOI.VariablePrimal\nMOI.VariablePrimalStart\nMOI.VariableName","category":"page"},{"location":"packages/Cbc/","page":"jump-dev/Cbc.jl","title":"jump-dev/Cbc.jl","text":"List of supported constraint attributes:","category":"page"},{"location":"packages/Cbc/","page":"jump-dev/Cbc.jl","title":"jump-dev/Cbc.jl","text":"MOI.ConstraintPrimal","category":"page"},{"location":"packages/Cbc/#Options","page":"jump-dev/Cbc.jl","title":"Options","text":"","category":"section"},{"location":"packages/Cbc/","page":"jump-dev/Cbc.jl","title":"jump-dev/Cbc.jl","text":"Options are, unfortunately, not well documented.","category":"page"},{"location":"packages/Cbc/","page":"jump-dev/Cbc.jl","title":"jump-dev/Cbc.jl","text":"The following options are likely to be the most useful:","category":"page"},{"location":"packages/Cbc/","page":"jump-dev/Cbc.jl","title":"jump-dev/Cbc.jl","text":"Parameter Example Explanation\nseconds 60.0 Solution timeout limit\nlogLevel 2 Set to 0 to disable solution output\nmaxSolutions 1 Terminate after this many feasible solutions have been found\nmaxNodes 1 Terminate after this many branch-and-bound nodes have been evaluated\nallowableGap 0.05 Terminate after optimality gap is less than this value (on an absolute scale)\nratioGap 0.05 Terminate after optimality gap is smaller than this relative fraction\nthreads 1 Set the number of threads to use for parallel branch & bound","category":"page"},{"location":"packages/Cbc/","page":"jump-dev/Cbc.jl","title":"jump-dev/Cbc.jl","text":"The complete list of parameters can be found by running the cbc executable and typing ? at the prompt.","category":"page"},{"location":"packages/Cbc/","page":"jump-dev/Cbc.jl","title":"jump-dev/Cbc.jl","text":"Start the cbc executable from Julia as follows:","category":"page"},{"location":"packages/Cbc/","page":"jump-dev/Cbc.jl","title":"jump-dev/Cbc.jl","text":"using Cbc_jll\nCbc_jll.cbc() do exe\n run(`$(exe)`)\nend","category":"page"},{"location":"tutorials/linear/geographic_clustering/","page":"Geographical clustering","title":"Geographical clustering","text":"EditURL = \"geographic_clustering.jl\"","category":"page"},{"location":"tutorials/linear/geographic_clustering/#Geographical-clustering","page":"Geographical clustering","title":"Geographical clustering","text":"","category":"section"},{"location":"tutorials/linear/geographic_clustering/","page":"Geographical clustering","title":"Geographical clustering","text":"This tutorial was generated using Literate.jl. Download the source as a .jl file.","category":"page"},{"location":"tutorials/linear/geographic_clustering/","page":"Geographical clustering","title":"Geographical clustering","text":"This tutorial was originally contributed by Matthew Helm and Mathieu Tanneau.","category":"page"},{"location":"tutorials/linear/geographic_clustering/","page":"Geographical clustering","title":"Geographical clustering","text":"The goal of this exercise is to cluster n cities into k groups, minimizing the total pairwise distance between cities and ensuring that the variance in the total populations of each group is relatively small.","category":"page"},{"location":"tutorials/linear/geographic_clustering/","page":"Geographical clustering","title":"Geographical clustering","text":"This tutorial uses the following packages:","category":"page"},{"location":"tutorials/linear/geographic_clustering/","page":"Geographical clustering","title":"Geographical clustering","text":"using JuMP\nimport DataFrames\nimport HiGHS\nimport LinearAlgebra","category":"page"},{"location":"tutorials/linear/geographic_clustering/","page":"Geographical clustering","title":"Geographical clustering","text":"For this example, we'll use the 20 most populous cities in the United States.","category":"page"},{"location":"tutorials/linear/geographic_clustering/","page":"Geographical clustering","title":"Geographical clustering","text":"cities = DataFrames.DataFrame(\n Union{String,Float64}[\n \"New York, NY\" 8.405 40.7127 -74.0059\n \"Los Angeles, CA\" 3.884 34.0522 -118.2436\n \"Chicago, IL\" 2.718 41.8781 -87.6297\n \"Houston, TX\" 2.195 29.7604 -95.3698\n \"Philadelphia, PA\" 1.553 39.9525 -75.1652\n \"Phoenix, AZ\" 1.513 33.4483 -112.0740\n \"San Antonio, TX\" 1.409 29.4241 -98.4936\n \"San Diego, CA\" 1.355 32.7157 -117.1610\n \"Dallas, TX\" 1.257 32.7766 -96.7969\n \"San Jose, CA\" 0.998 37.3382 -121.8863\n \"Austin, TX\" 0.885 30.2671 -97.7430\n \"Indianapolis, IN\" 0.843 39.7684 -86.1580\n \"Jacksonville, FL\" 0.842 30.3321 -81.6556\n \"San Francisco, CA\" 0.837 37.7749 -122.4194\n \"Columbus, OH\" 0.822 39.9611 -82.9987\n \"Charlotte, NC\" 0.792 35.2270 -80.8431\n \"Fort Worth, TX\" 0.792 32.7554 -97.3307\n \"Detroit, MI\" 0.688 42.3314 -83.0457\n \"El Paso, TX\" 0.674 31.7775 -106.4424\n \"Memphis, TN\" 0.653 35.1495 -90.0489\n ],\n [\"city\", \"population\", \"lat\", \"lon\"],\n)","category":"page"},{"location":"tutorials/linear/geographic_clustering/#Model-Specifics","page":"Geographical clustering","title":"Model Specifics","text":"","category":"section"},{"location":"tutorials/linear/geographic_clustering/","page":"Geographical clustering","title":"Geographical clustering","text":"We will cluster these 20 cities into 3 different groups and we will assume that the ideal or target population P for a group is simply the total population of the 20 cities divided by 3:","category":"page"},{"location":"tutorials/linear/geographic_clustering/","page":"Geographical clustering","title":"Geographical clustering","text":"n = size(cities, 1)\nk = 3\nP = sum(cities.population) / k","category":"page"},{"location":"tutorials/linear/geographic_clustering/#Obtaining-the-distances-between-each-city","page":"Geographical clustering","title":"Obtaining the distances between each city","text":"","category":"section"},{"location":"tutorials/linear/geographic_clustering/","page":"Geographical clustering","title":"Geographical clustering","text":"Let's compute the pairwise Haversine distance between each of the cities in our data set and store the result in a variable we'll call dm:","category":"page"},{"location":"tutorials/linear/geographic_clustering/","page":"Geographical clustering","title":"Geographical clustering","text":"\"\"\"\n haversine(lat1, long1, lat2, long2, r = 6372.8)\n\nCompute the haversine distance between two points on a sphere of radius `r`,\nwhere the points are given by the latitude/longitude pairs `lat1/long1` and\n`lat2/long2` (in degrees).\n\"\"\"\nfunction haversine(lat1, long1, lat2, long2, r = 6372.8)\n lat1, long1 = deg2rad(lat1), deg2rad(long1)\n lat2, long2 = deg2rad(lat2), deg2rad(long2)\n hav(a, b) = sin((b - a) / 2)^2\n inner_term = hav(lat1, lat2) + cos(lat1) * cos(lat2) * hav(long1, long2)\n d = 2 * r * asin(sqrt(inner_term))\n # Round distance to nearest kilometer.\n return round(Int, d)\nend","category":"page"},{"location":"tutorials/linear/geographic_clustering/","page":"Geographical clustering","title":"Geographical clustering","text":"Our distance matrix is symmetric so we'll convert it to a LowerTriangular matrix so that we can better interpret the objective value of our model:","category":"page"},{"location":"tutorials/linear/geographic_clustering/","page":"Geographical clustering","title":"Geographical clustering","text":"dm = LinearAlgebra.LowerTriangular([\n haversine(cities.lat[i], cities.lon[i], cities.lat[j], cities.lon[j])\n for i in 1:n, j in 1:n\n])","category":"page"},{"location":"tutorials/linear/geographic_clustering/#Build-the-model","page":"Geographical clustering","title":"Build the model","text":"","category":"section"},{"location":"tutorials/linear/geographic_clustering/","page":"Geographical clustering","title":"Geographical clustering","text":"Now that we have the basics taken care of, we can set up our model, create decision variables, add constraints, and then solve.","category":"page"},{"location":"tutorials/linear/geographic_clustering/","page":"Geographical clustering","title":"Geographical clustering","text":"First, we'll set up a model that leverages the Cbc solver. Next, we'll set up a binary variable x_ik that takes the value 1 if city i is in group k and 0 otherwise. Each city must be in a group, so we'll add the constraint sum_k x_ik = 1 for every i.","category":"page"},{"location":"tutorials/linear/geographic_clustering/","page":"Geographical clustering","title":"Geographical clustering","text":"model = Model(HiGHS.Optimizer)\nset_silent(model)\n@variable(model, x[1:n, 1:k], Bin)\n@constraint(model, [i = 1:n], sum(x[i, :]) == 1);\n# To reduce symmetry, we fix the first city to belong to the first group.\nfix(x[1, 1], 1; force = true)","category":"page"},{"location":"tutorials/linear/geographic_clustering/","page":"Geographical clustering","title":"Geographical clustering","text":"The total population of a group k is Q_k = sum_ix_ikq_i where q_i is simply the i-th value from the population column in our cities DataFrame. Let's add constraints so that alpha leq (Q_k - P) leq beta. We'll set alpha equal to -3 million and beta equal to 3. By adjusting these thresholds you'll find that there is a tradeoff between having relatively even populations between groups and having geographically close cities within each group. In other words, the larger the absolute values of alpha and beta, the closer together the cities in a group will be but the variance between the group populations will be higher.","category":"page"},{"location":"tutorials/linear/geographic_clustering/","page":"Geographical clustering","title":"Geographical clustering","text":"@variable(model, -3 <= population_diff[1:k] <= 3)\n@constraint(model, population_diff .== x' * cities.population .- P)","category":"page"},{"location":"tutorials/linear/geographic_clustering/","page":"Geographical clustering","title":"Geographical clustering","text":"Now we need to add one last binary variable z_ij to our model that we'll use to compute the total distance between the cities in our groups, defined as sum_ijd_ijz_ij. Variable z_ij will equal 1 if cities i and j are in the same group, and 0 if they are not in the same group.","category":"page"},{"location":"tutorials/linear/geographic_clustering/","page":"Geographical clustering","title":"Geographical clustering","text":"To ensure that z_ij = 1 if and only if cities i and j are in the same group, we add the constraints z_ij geq x_ik + x_jk - 1 for every pair ij and every k:","category":"page"},{"location":"tutorials/linear/geographic_clustering/","page":"Geographical clustering","title":"Geographical clustering","text":"@variable(model, z[i = 1:n, j = 1:i], Bin)\nfor k in 1:k, i in 1:n, j in 1:i\n @constraint(model, z[i, j] >= x[i, k] + x[j, k] - 1)\nend","category":"page"},{"location":"tutorials/linear/geographic_clustering/","page":"Geographical clustering","title":"Geographical clustering","text":"We can now add an objective to our model which will simply be to minimize the dot product of z and our distance matrix, dm.","category":"page"},{"location":"tutorials/linear/geographic_clustering/","page":"Geographical clustering","title":"Geographical clustering","text":"@objective(model, Min, sum(dm[i, j] * z[i, j] for i in 1:n, j in 1:i));\nnothing #hide","category":"page"},{"location":"tutorials/linear/geographic_clustering/","page":"Geographical clustering","title":"Geographical clustering","text":"We can then call optimize! and review the results.","category":"page"},{"location":"tutorials/linear/geographic_clustering/","page":"Geographical clustering","title":"Geographical clustering","text":"optimize!(model)","category":"page"},{"location":"tutorials/linear/geographic_clustering/#Reviewing-the-Results","page":"Geographical clustering","title":"Reviewing the Results","text":"","category":"section"},{"location":"tutorials/linear/geographic_clustering/","page":"Geographical clustering","title":"Geographical clustering","text":"Now that we have results, we can add a column to our cities DataFrame for the group and then loop through our x variable to assign each city to its group. Once we have that, we can look at the total population for each group and also look at the cities in each group to verify that they are grouped by geographic proximity.","category":"page"},{"location":"tutorials/linear/geographic_clustering/","page":"Geographical clustering","title":"Geographical clustering","text":"cities.group = zeros(n)\n\nfor i in 1:n, j in 1:k\n if round(Int, value(x[i, j])) == 1\n cities.group[i] = j\n end\nend\n\nfor group in DataFrames.groupby(cities, :group)\n @show group\n println(\"\")\n @show sum(group.population)\n println(\"\")\nend","category":"page"},{"location":"manual/objective/","page":"Objectives","title":"Objectives","text":"CurrentModule = JuMP\nDocTestSetup = quote\n using JuMP\nend\nDocTestFilters = [r\"≤|<=\", r\"≥|>=\", r\" == | = \", r\" ∈ | in \", r\"MathOptInterface|MOI\"]","category":"page"},{"location":"manual/objective/#Objectives","page":"Objectives","title":"Objectives","text":"","category":"section"},{"location":"manual/objective/","page":"Objectives","title":"Objectives","text":"This page describes macros and functions related to linear and quadratic objective functions only, unless otherwise indicated. For nonlinear objective functions, see Nonlinear Modeling.","category":"page"},{"location":"manual/objective/#Set-a-linear-objective","page":"Objectives","title":"Set a linear objective","text":"","category":"section"},{"location":"manual/objective/","page":"Objectives","title":"Objectives","text":"Use the @objective macro to set a linear objective function.","category":"page"},{"location":"manual/objective/","page":"Objectives","title":"Objectives","text":"Use Min to create a minimization objective:","category":"page"},{"location":"manual/objective/","page":"Objectives","title":"Objectives","text":"julia> model = Model();\n\njulia> @variable(model, x);\n\njulia> @objective(model, Min, 2x + 1)\n2 x + 1","category":"page"},{"location":"manual/objective/","page":"Objectives","title":"Objectives","text":"Use Max to create a maximization objective:","category":"page"},{"location":"manual/objective/","page":"Objectives","title":"Objectives","text":"julia> model = Model();\n\njulia> @variable(model, x);\n\njulia> @objective(model, Max, 2x + 1)\n2 x + 1","category":"page"},{"location":"manual/objective/#Set-a-quadratic-objective","page":"Objectives","title":"Set a quadratic objective","text":"","category":"section"},{"location":"manual/objective/","page":"Objectives","title":"Objectives","text":"Use the @objective macro to set a quadratic objective function.","category":"page"},{"location":"manual/objective/","page":"Objectives","title":"Objectives","text":"Use ^2 to have a variable squared:","category":"page"},{"location":"manual/objective/","page":"Objectives","title":"Objectives","text":"julia> model = Model();\n\njulia> @variable(model, x);\n\njulia> @objective(model, Min, x^2 + 2x + 1)\nx² + 2 x + 1","category":"page"},{"location":"manual/objective/","page":"Objectives","title":"Objectives","text":"You can also have bilinear terms between variables:","category":"page"},{"location":"manual/objective/","page":"Objectives","title":"Objectives","text":"julia> model = Model();\n\njulia> @variable(model, x)\nx\n\njulia> @variable(model, y)\ny\n\njulia> @objective(model, Max, x * y + x + y)\nx*y + x + y","category":"page"},{"location":"manual/objective/#Set-a-nonlinear-objective","page":"Objectives","title":"Set a nonlinear objective","text":"","category":"section"},{"location":"manual/objective/","page":"Objectives","title":"Objectives","text":"Use the @objective macro to set a nonlinear objective function:","category":"page"},{"location":"manual/objective/","page":"Objectives","title":"Objectives","text":"julia> model = Model();\n\njulia> @variable(model, x <= 1);\n\njulia> @objective(model, Max, log(x))\nlog(x)","category":"page"},{"location":"manual/objective/#Query-the-objective-function","page":"Objectives","title":"Query the objective function","text":"","category":"section"},{"location":"manual/objective/","page":"Objectives","title":"Objectives","text":"Use objective_function to return the current objective function.","category":"page"},{"location":"manual/objective/","page":"Objectives","title":"Objectives","text":"julia> model = Model();\n\njulia> @variable(model, x);\n\njulia> @objective(model, Min, 2x + 1)\n2 x + 1\n\njulia> objective_function(model)\n2 x + 1","category":"page"},{"location":"manual/objective/#Evaluate-the-objective-function-at-a-point","page":"Objectives","title":"Evaluate the objective function at a point","text":"","category":"section"},{"location":"manual/objective/","page":"Objectives","title":"Objectives","text":"Use value to evaluate an objective function at a point specifying values for variables.","category":"page"},{"location":"manual/objective/","page":"Objectives","title":"Objectives","text":"julia> model = Model();\n\njulia> @variable(model, x[1:2]);\n\njulia> @objective(model, Min, 2x[1]^2 + x[1] + 0.5*x[2])\n2 x[1]² + x[1] + 0.5 x[2]\n\njulia> f = objective_function(model)\n2 x[1]² + x[1] + 0.5 x[2]\n\njulia> point = Dict(x[1] => 2.0, x[2] => 1.0);\n\njulia> value(z -> point[z], f)\n10.5","category":"page"},{"location":"manual/objective/#Query-the-objective-sense","page":"Objectives","title":"Query the objective sense","text":"","category":"section"},{"location":"manual/objective/","page":"Objectives","title":"Objectives","text":"Use objective_sense to return the current objective sense.","category":"page"},{"location":"manual/objective/","page":"Objectives","title":"Objectives","text":"julia> model = Model();\n\njulia> @variable(model, x);\n\njulia> @objective(model, Min, 2x + 1)\n2 x + 1\n\njulia> objective_sense(model)\nMIN_SENSE::OptimizationSense = 0","category":"page"},{"location":"manual/objective/#Modify-an-objective","page":"Objectives","title":"Modify an objective","text":"","category":"section"},{"location":"manual/objective/","page":"Objectives","title":"Objectives","text":"To modify an objective, call @objective with the new objective function.","category":"page"},{"location":"manual/objective/","page":"Objectives","title":"Objectives","text":"julia> model = Model();\n\njulia> @variable(model, x);\n\njulia> @objective(model, Min, 2x)\n2 x\n\njulia> @objective(model, Max, -2x)\n-2 x","category":"page"},{"location":"manual/objective/","page":"Objectives","title":"Objectives","text":"Alternatively, use set_objective_function.","category":"page"},{"location":"manual/objective/","page":"Objectives","title":"Objectives","text":"julia> model = Model();\n\njulia> @variable(model, x);\n\njulia> @objective(model, Min, 2x)\n2 x\n\njulia> new_objective = @expression(model, -2 * x)\n-2 x\n\njulia> set_objective_function(model, new_objective)","category":"page"},{"location":"manual/objective/#Modify-an-objective-coefficient","page":"Objectives","title":"Modify an objective coefficient","text":"","category":"section"},{"location":"manual/objective/","page":"Objectives","title":"Objectives","text":"Use set_objective_coefficient to modify an objective coefficient.","category":"page"},{"location":"manual/objective/","page":"Objectives","title":"Objectives","text":"julia> model = Model();\n\njulia> @variable(model, x);\n\njulia> @objective(model, Min, 2x)\n2 x\n\njulia> set_objective_coefficient(model, x, 3)\n\njulia> objective_function(model)\n3 x","category":"page"},{"location":"manual/objective/","page":"Objectives","title":"Objectives","text":"info: Info\nThere is no way to modify the coefficient of a quadratic term. Set a new objective instead.","category":"page"},{"location":"manual/objective/#Modify-the-objective-sense","page":"Objectives","title":"Modify the objective sense","text":"","category":"section"},{"location":"manual/objective/","page":"Objectives","title":"Objectives","text":"Use set_objective_sense to modify the objective sense.","category":"page"},{"location":"manual/objective/","page":"Objectives","title":"Objectives","text":"julia> model = Model();\n\njulia> @variable(model, x);\n\njulia> @objective(model, Min, 2x)\n2 x\n\njulia> objective_sense(model)\nMIN_SENSE::OptimizationSense = 0\n\njulia> set_objective_sense(model, MAX_SENSE);\n\njulia> objective_sense(model)\nMAX_SENSE::OptimizationSense = 1","category":"page"},{"location":"manual/objective/","page":"Objectives","title":"Objectives","text":"Alternatively, call @objective and pass the existing objective function.","category":"page"},{"location":"manual/objective/","page":"Objectives","title":"Objectives","text":"julia> model = Model();\n\njulia> @variable(model, x);\n\njulia> @objective(model, Min, 2x)\n2 x\n\njulia> @objective(model, Max, objective_function(model))\n2 x","category":"page"},{"location":"manual/objective/#Set-a-vector-valued-objective","page":"Objectives","title":"Set a vector-valued objective","text":"","category":"section"},{"location":"manual/objective/","page":"Objectives","title":"Objectives","text":"Define a multi-objective optimization problem by passing a vector of objectives:","category":"page"},{"location":"manual/objective/","page":"Objectives","title":"Objectives","text":"julia> model = Model();\n\njulia> @variable(model, x[1:2]);\n\njulia> @objective(model, Min, [1 + x[1], 2 * x[2]])\n2-element Vector{AffExpr}:\n x[1] + 1\n 2 x[2]\n\njulia> f = objective_function(model)\n2-element Vector{AffExpr}:\n x[1] + 1\n 2 x[2]","category":"page"},{"location":"manual/objective/","page":"Objectives","title":"Objectives","text":"tip: Tip\nThe Multi-objective knapsack tutorial provides an example of solving a multi-objective integer program.","category":"page"},{"location":"manual/objective/","page":"Objectives","title":"Objectives","text":"In most cases, multi-objective optimization solvers will return multiple solutions, corresponding to points on the Pareto frontier. See Multiple solutions for information on how to query and work with multiple solutions.","category":"page"},{"location":"manual/objective/","page":"Objectives","title":"Objectives","text":"Note that you must set a single objective sense, that is, you cannot have both minimization and maximization objectives. Work around this limitation by choosing Min and negating any objectives you want to maximize:","category":"page"},{"location":"manual/objective/","page":"Objectives","title":"Objectives","text":"julia> model = Model();\n\njulia> @variable(model, x[1:2]);\n\njulia> @expression(model, obj1, 1 + x[1])\nx[1] + 1\n\njulia> @expression(model, obj2, 2 * x[1])\n2 x[1]\n\njulia> @objective(model, Min, [obj1, -obj2])\n2-element Vector{AffExpr}:\n x[1] + 1\n -2 x[1]","category":"page"},{"location":"manual/objective/","page":"Objectives","title":"Objectives","text":"Defining your objectives as expressions allows flexibility in how you can solve variations of the same problem, with some objectives removed and constrained to be no worse that a fixed value.","category":"page"},{"location":"manual/objective/","page":"Objectives","title":"Objectives","text":"julia> model = Model();\n\njulia> @variable(model, x[1:2]);\n\njulia> @expression(model, obj1, 1 + x[1])\nx[1] + 1\n\njulia> @expression(model, obj2, 2 * x[1])\n2 x[1]\n\njulia> @expression(model, obj3, x[1] + x[2])\nx[1] + x[2]\n\njulia> @objective(model, Min, [obj1, obj2, obj3]) # Three-objective problem\n3-element Vector{AffExpr}:\n x[1] + 1\n 2 x[1]\n x[1] + x[2]\n\njulia> # optimize!(model), look at the solution, talk to stakeholders, then\n # decide you want to solve a new problem where the third objective is\n # removed and constrained to be better than 2.0.\n nothing\n\njulia> @objective(model, Min, [obj1, obj2]) # Two-objective problem\n2-element Vector{AffExpr}:\n x[1] + 1\n 2 x[1]\n\njulia> @constraint(model, obj3 <= 2.0)\nx[1] + x[2] ≤ 2","category":"page"},{"location":"moi/reference/callbacks/","page":"Callbacks","title":"Callbacks","text":"EditURL = \"https://github.com/jump-dev/MathOptInterface.jl/blob/v1.20.1/docs/src/reference/callbacks.md\"","category":"page"},{"location":"moi/reference/callbacks/","page":"Callbacks","title":"Callbacks","text":"CurrentModule = MathOptInterface\nDocTestSetup = quote\n import MathOptInterface as MOI\nend\nDocTestFilters = [r\"MathOptInterface|MOI\"]","category":"page"},{"location":"moi/reference/callbacks/#Callbacks","page":"Callbacks","title":"Callbacks","text":"","category":"section"},{"location":"moi/reference/callbacks/","page":"Callbacks","title":"Callbacks","text":"AbstractCallback\nAbstractSubmittable\nsubmit","category":"page"},{"location":"moi/reference/callbacks/#MathOptInterface.AbstractCallback","page":"Callbacks","title":"MathOptInterface.AbstractCallback","text":"abstract type AbstractCallback <: AbstractModelAttribute end\n\nAbstract type for a model attribute representing a callback function. The value set to subtypes of AbstractCallback is a function that may be called during optimize!. As optimize! is in progress, the result attributes (i.e, the attributes attr such that is_set_by_optimize(attr)) may not be accessible from the callback, hence trying to get result attributes might throw a OptimizeInProgress error.\n\nAt most one callback of each type can be registered. If an optimizer already has a function for a callback type, and the user registers a new function, then the old one is replaced.\n\nThe value of the attribute should be a function taking only one argument, commonly called callback_data, that can be used for instance in LazyConstraintCallback, HeuristicCallback and UserCutCallback.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/callbacks/#MathOptInterface.AbstractSubmittable","page":"Callbacks","title":"MathOptInterface.AbstractSubmittable","text":"AbstractSubmittable\n\nAbstract supertype for objects that can be submitted to the model.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/callbacks/#MathOptInterface.submit","page":"Callbacks","title":"MathOptInterface.submit","text":"submit(\n optimizer::AbstractOptimizer,\n sub::AbstractSubmittable,\n values...,\n)::Nothing\n\nSubmit values to the submittable sub of the optimizer optimizer.\n\nAn UnsupportedSubmittable error is thrown if model does not support the attribute attr (see supports) and a SubmitNotAllowed error is thrown if it supports the submittable sub but it cannot be submitted.\n\n\n\n\n\n","category":"function"},{"location":"moi/reference/callbacks/#Attributes","page":"Callbacks","title":"Attributes","text":"","category":"section"},{"location":"moi/reference/callbacks/","page":"Callbacks","title":"Callbacks","text":"CallbackNodeStatus\nCallbackVariablePrimal\nCallbackNodeStatusCode\nCALLBACK_NODE_STATUS_INTEGER\nCALLBACK_NODE_STATUS_FRACTIONAL\nCALLBACK_NODE_STATUS_UNKNOWN","category":"page"},{"location":"moi/reference/callbacks/#MathOptInterface.CallbackNodeStatus","page":"Callbacks","title":"MathOptInterface.CallbackNodeStatus","text":"CallbackNodeStatus(callback_data)\n\nAn optimizer attribute describing the (in)feasibility of the primal solution available from CallbackVariablePrimal during a callback identified by callback_data.\n\nReturns a CallbackNodeStatusCode Enum.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/callbacks/#MathOptInterface.CallbackVariablePrimal","page":"Callbacks","title":"MathOptInterface.CallbackVariablePrimal","text":"CallbackVariablePrimal(callback_data)\n\nA variable attribute for the assignment to some primal variable's value during the callback identified by callback_data.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/callbacks/#MathOptInterface.CallbackNodeStatusCode","page":"Callbacks","title":"MathOptInterface.CallbackNodeStatusCode","text":"CallbackNodeStatusCode\n\nAn Enum of possible return values from calling get with CallbackNodeStatus.\n\nValues\n\nPossible values are:\n\nCALLBACK_NODE_STATUS_INTEGER: the primal solution available from CallbackVariablePrimal is integer feasible.\nCALLBACK_NODE_STATUS_FRACTIONAL: the primal solution available from CallbackVariablePrimal is integer infeasible.\nCALLBACK_NODE_STATUS_UNKNOWN: the primal solution available from CallbackVariablePrimal might be integer feasible or infeasible.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/callbacks/#MathOptInterface.CALLBACK_NODE_STATUS_INTEGER","page":"Callbacks","title":"MathOptInterface.CALLBACK_NODE_STATUS_INTEGER","text":"CALLBACK_NODE_STATUS_INTEGER::CallbackNodeStatusCode\n\nAn instance of the CallbackNodeStatusCode enum.\n\nCALLBACK_NODE_STATUS_INTEGER: the primal solution available from CallbackVariablePrimal is integer feasible.\n\n\n\n\n\n","category":"constant"},{"location":"moi/reference/callbacks/#MathOptInterface.CALLBACK_NODE_STATUS_FRACTIONAL","page":"Callbacks","title":"MathOptInterface.CALLBACK_NODE_STATUS_FRACTIONAL","text":"CALLBACK_NODE_STATUS_FRACTIONAL::CallbackNodeStatusCode\n\nAn instance of the CallbackNodeStatusCode enum.\n\nCALLBACK_NODE_STATUS_FRACTIONAL: the primal solution available from CallbackVariablePrimal is integer infeasible.\n\n\n\n\n\n","category":"constant"},{"location":"moi/reference/callbacks/#MathOptInterface.CALLBACK_NODE_STATUS_UNKNOWN","page":"Callbacks","title":"MathOptInterface.CALLBACK_NODE_STATUS_UNKNOWN","text":"CALLBACK_NODE_STATUS_UNKNOWN::CallbackNodeStatusCode\n\nAn instance of the CallbackNodeStatusCode enum.\n\nCALLBACK_NODE_STATUS_UNKNOWN: the primal solution available from CallbackVariablePrimal might be integer feasible or infeasible.\n\n\n\n\n\n","category":"constant"},{"location":"moi/reference/callbacks/#Lazy-constraints","page":"Callbacks","title":"Lazy constraints","text":"","category":"section"},{"location":"moi/reference/callbacks/","page":"Callbacks","title":"Callbacks","text":"LazyConstraintCallback\nLazyConstraint","category":"page"},{"location":"moi/reference/callbacks/#MathOptInterface.LazyConstraintCallback","page":"Callbacks","title":"MathOptInterface.LazyConstraintCallback","text":"LazyConstraintCallback() <: AbstractCallback\n\nThe callback can be used to reduce the feasible set given the current primal solution by submitting a LazyConstraint. For instance, it may be called at an incumbent of a mixed-integer problem. Note that there is no guarantee that the callback is called at every feasible primal solution.\n\nThe current primal solution is accessed through CallbackVariablePrimal. Trying to access other result attributes will throw OptimizeInProgress as discussed in AbstractCallback.\n\nExamples\n\nx = MOI.add_variables(optimizer, 8)\nMOI.set(optimizer, MOI.LazyConstraintCallback(), callback_data -> begin\n sol = MOI.get(optimizer, MOI.CallbackVariablePrimal(callback_data), x)\n if # should add a lazy constraint\n func = # computes function\n set = # computes set\n MOI.submit(optimizer, MOI.LazyConstraint(callback_data), func, set)\n end\nend)\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/callbacks/#MathOptInterface.LazyConstraint","page":"Callbacks","title":"MathOptInterface.LazyConstraint","text":"LazyConstraint(callback_data)\n\nLazy constraint func-in-set submitted as func, set. The optimal solution returned by VariablePrimal will satisfy all lazy constraints that have been submitted.\n\nThis can be submitted only from the LazyConstraintCallback. The field callback_data is a solver-specific callback type that is passed as the argument to the feasible solution callback.\n\nExamples\n\nSuppose x and y are VariableIndexs of optimizer. To add a LazyConstraint for 2x + 3y <= 1, write\n\nfunc = 2.0x + 3.0y\nset = MOI.LessThan(1.0)\nMOI.submit(optimizer, MOI.LazyConstraint(callback_data), func, set)\n\ninside a LazyConstraintCallback of data callback_data.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/callbacks/#User-cuts","page":"Callbacks","title":"User cuts","text":"","category":"section"},{"location":"moi/reference/callbacks/","page":"Callbacks","title":"Callbacks","text":"UserCutCallback\nUserCut","category":"page"},{"location":"moi/reference/callbacks/#MathOptInterface.UserCutCallback","page":"Callbacks","title":"MathOptInterface.UserCutCallback","text":"UserCutCallback() <: AbstractCallback\n\nThe callback can be used to submit UserCut given the current primal solution. For instance, it may be called at fractional (i.e., non-integer) nodes in the branch and bound tree of a mixed-integer problem. Note that there is not guarantee that the callback is called everytime the solver has an infeasible solution.\n\nThe infeasible solution is accessed through CallbackVariablePrimal. Trying to access other result attributes will throw OptimizeInProgress as discussed in AbstractCallback.\n\nExamples\n\nx = MOI.add_variables(optimizer, 8)\nMOI.set(optimizer, MOI.UserCutCallback(), callback_data -> begin\n sol = MOI.get(optimizer, MOI.CallbackVariablePrimal(callback_data), x)\n if # can find a user cut\n func = # computes function\n set = # computes set\n MOI.submit(optimizer, MOI.UserCut(callback_data), func, set)\n end\nend\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/callbacks/#MathOptInterface.UserCut","page":"Callbacks","title":"MathOptInterface.UserCut","text":"UserCut(callback_data)\n\nConstraint func-to-set suggested to help the solver detect the solution given by CallbackVariablePrimal as infeasible. The cut is submitted as func, set. Typically CallbackVariablePrimal will violate integrality constraints, and a cut would be of the form ScalarAffineFunction-in-LessThan or ScalarAffineFunction-in-GreaterThan. Note that, as opposed to LazyConstraint, the provided constraint cannot modify the feasible set, the constraint should be redundant, e.g., it may be a consequence of affine and integrality constraints.\n\nThis can be submitted only from the UserCutCallback. The field callback_data is a solver-specific callback type that is passed as the argument to the infeasible solution callback.\n\nNote that the solver may silently ignore the provided constraint.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/callbacks/#Heuristic-solutions","page":"Callbacks","title":"Heuristic solutions","text":"","category":"section"},{"location":"moi/reference/callbacks/","page":"Callbacks","title":"Callbacks","text":"HeuristicCallback\nHeuristicSolution\nHeuristicSolutionStatus\nHEURISTIC_SOLUTION_ACCEPTED\nHEURISTIC_SOLUTION_REJECTED\nHEURISTIC_SOLUTION_UNKNOWN","category":"page"},{"location":"moi/reference/callbacks/#MathOptInterface.HeuristicCallback","page":"Callbacks","title":"MathOptInterface.HeuristicCallback","text":"HeuristicCallback() <: AbstractCallback\n\nThe callback can be used to submit HeuristicSolution given the current primal solution. For example, it may be called at fractional (i.e., non-integer) nodes in the branch and bound tree of a mixed-integer problem. Note that there is no guarantee that the callback is called every time the solver has an infeasible solution.\n\nThe current primal solution is accessed through CallbackVariablePrimal. Trying to access other result attributes will throw OptimizeInProgress as discussed in AbstractCallback.\n\nExamples\n\nx = MOI.add_variables(optimizer, 8)\nMOI.set(optimizer, MOI.HeuristicCallback(), callback_data -> begin\n sol = MOI.get(optimizer, MOI.CallbackVariablePrimal(callback_data), x)\n if # can find a heuristic solution\n values = # computes heuristic solution\n MOI.submit(optimizer, MOI.HeuristicSolution(callback_data), x,\n values)\n end\nend\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/callbacks/#MathOptInterface.HeuristicSolution","page":"Callbacks","title":"MathOptInterface.HeuristicSolution","text":"HeuristicSolution(callback_data)\n\nHeuristically obtained feasible solution. The solution is submitted as variables, values where values[i] gives the value of variables[i], similarly to set. The submit call returns a HeuristicSolutionStatus indicating whether the provided solution was accepted or rejected.\n\nThis can be submitted only from the HeuristicCallback. The field callback_data is a solver-specific callback type that is passed as the argument to the heuristic callback.\n\nSome solvers require a complete solution, others only partial solutions.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/callbacks/#MathOptInterface.HeuristicSolutionStatus","page":"Callbacks","title":"MathOptInterface.HeuristicSolutionStatus","text":"HeuristicSolutionStatus\n\nAn Enum of possible return values for submit with HeuristicSolution. This informs whether the heuristic solution was accepted or rejected.\n\nValues\n\nPossible values are:\n\nHEURISTIC_SOLUTION_ACCEPTED: The heuristic solution was accepted\nHEURISTIC_SOLUTION_REJECTED: The heuristic solution was rejected\nHEURISTIC_SOLUTION_UNKNOWN: No information available on the acceptance\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/callbacks/#MathOptInterface.HEURISTIC_SOLUTION_ACCEPTED","page":"Callbacks","title":"MathOptInterface.HEURISTIC_SOLUTION_ACCEPTED","text":"HEURISTIC_SOLUTION_ACCEPTED::HeuristicSolutionStatus\n\nAn instance of the HeuristicSolutionStatus enum.\n\nHEURISTIC_SOLUTION_ACCEPTED: The heuristic solution was accepted\n\n\n\n\n\n","category":"constant"},{"location":"moi/reference/callbacks/#MathOptInterface.HEURISTIC_SOLUTION_REJECTED","page":"Callbacks","title":"MathOptInterface.HEURISTIC_SOLUTION_REJECTED","text":"HEURISTIC_SOLUTION_REJECTED::HeuristicSolutionStatus\n\nAn instance of the HeuristicSolutionStatus enum.\n\nHEURISTIC_SOLUTION_REJECTED: The heuristic solution was rejected\n\n\n\n\n\n","category":"constant"},{"location":"moi/reference/callbacks/#MathOptInterface.HEURISTIC_SOLUTION_UNKNOWN","page":"Callbacks","title":"MathOptInterface.HEURISTIC_SOLUTION_UNKNOWN","text":"HEURISTIC_SOLUTION_UNKNOWN::HeuristicSolutionStatus\n\nAn instance of the HeuristicSolutionStatus enum.\n\nHEURISTIC_SOLUTION_UNKNOWN: No information available on the acceptance\n\n\n\n\n\n","category":"constant"},{"location":"packages/SDDP/","page":"odow/SDDP.jl","title":"odow/SDDP.jl","text":"EditURL = \"https://github.com/odow/SDDP.jl/blob/v1.6.3/README.md\"","category":"page"},{"location":"packages/SDDP/","page":"odow/SDDP.jl","title":"odow/SDDP.jl","text":"\"logo\"","category":"page"},{"location":"packages/SDDP/#SDDP.jl","page":"odow/SDDP.jl","title":"SDDP.jl","text":"","category":"section"},{"location":"packages/SDDP/","page":"odow/SDDP.jl","title":"odow/SDDP.jl","text":"(Image: Build Status) (Image: codecov)","category":"page"},{"location":"packages/SDDP/","page":"odow/SDDP.jl","title":"odow/SDDP.jl","text":"SDDP.jl is a JuMP extension for solving large convex multistage stochastic programming problems using stochastic dual dynamic programming.","category":"page"},{"location":"packages/SDDP/#License","page":"odow/SDDP.jl","title":"License","text":"","category":"section"},{"location":"packages/SDDP/","page":"odow/SDDP.jl","title":"odow/SDDP.jl","text":"SDDP.jl is licensed under the MPL 2.0 license.","category":"page"},{"location":"packages/SDDP/#Documentation","page":"odow/SDDP.jl","title":"Documentation","text":"","category":"section"},{"location":"packages/SDDP/","page":"odow/SDDP.jl","title":"odow/SDDP.jl","text":"You can find the documentation at https://odow.github.io/SDDP.jl/stable/.","category":"page"},{"location":"packages/SDDP/#Help","page":"odow/SDDP.jl","title":"Help","text":"","category":"section"},{"location":"packages/SDDP/","page":"odow/SDDP.jl","title":"odow/SDDP.jl","text":"If you need help, please open a GitHub issue.","category":"page"},{"location":"packages/Plasmo/","page":"plasmo-dev/Plasmo.jl","title":"plasmo-dev/Plasmo.jl","text":"EditURL = \"https://github.com/plasmo-dev/Plasmo.jl/blob/37f80fe96781dc647b3a5e0ed26b9eb0a994bc4a/README.md\"","category":"page"},{"location":"packages/Plasmo/","page":"plasmo-dev/Plasmo.jl","title":"plasmo-dev/Plasmo.jl","text":"","category":"page"},{"location":"packages/Plasmo/","page":"plasmo-dev/Plasmo.jl","title":"plasmo-dev/Plasmo.jl","text":"(Image: CI) (Image: codecov) (Image: ) (Image: DOI)","category":"page"},{"location":"packages/Plasmo/#Plasmo.jl","page":"plasmo-dev/Plasmo.jl","title":"Plasmo.jl","text":"","category":"section"},{"location":"packages/Plasmo/","page":"plasmo-dev/Plasmo.jl","title":"plasmo-dev/Plasmo.jl","text":"Plasmo.jl (Platform for Scalable Modeling and Optimization) is a graph-based algebraic modeling framework that adopts a modular style to create mathematical optimization problems and manage distributed and hierarchical structures. The package has been developed as a JuMP extension and consequently supports most JuMP syntax and functions. ","category":"page"},{"location":"packages/Plasmo/#Overview","page":"plasmo-dev/Plasmo.jl","title":"Overview","text":"","category":"section"},{"location":"packages/Plasmo/","page":"plasmo-dev/Plasmo.jl","title":"plasmo-dev/Plasmo.jl","text":"The core data structure in Plasmo.jl is the OptiGraph. The optigraph contains a set of optinodes which represent self-contained optimization problems and optiedges that represent coupling between optinodes (which produces an underlying hypergraph structure of optinodes and optiedges). Optigraphs can further be embedded within other optigraphs to create nested hierarchical graph structures. The graph structures obtained using Plasmo.jl can be used for simple model and data management, but they can also be used to perform graph partitioning or develop interfaces to structured optimization solvers.","category":"page"},{"location":"packages/Plasmo/#License","page":"plasmo-dev/Plasmo.jl","title":"License","text":"","category":"section"},{"location":"packages/Plasmo/","page":"plasmo-dev/Plasmo.jl","title":"plasmo-dev/Plasmo.jl","text":"Plasmo is licensed under the MPL 2.0 license.","category":"page"},{"location":"packages/Plasmo/#Installation","page":"plasmo-dev/Plasmo.jl","title":"Installation","text":"","category":"section"},{"location":"packages/Plasmo/","page":"plasmo-dev/Plasmo.jl","title":"plasmo-dev/Plasmo.jl","text":"Install Plasmo using Pkg.add:","category":"page"},{"location":"packages/Plasmo/","page":"plasmo-dev/Plasmo.jl","title":"plasmo-dev/Plasmo.jl","text":"import Pkg\nPkg.add(\"Plasmo\")","category":"page"},{"location":"packages/Plasmo/#Documentation","page":"plasmo-dev/Plasmo.jl","title":"Documentation","text":"","category":"section"},{"location":"packages/Plasmo/","page":"plasmo-dev/Plasmo.jl","title":"plasmo-dev/Plasmo.jl","text":"The latest documentation is available through GitHub Pages. Additional examples can be found in the examples folder.","category":"page"},{"location":"packages/Plasmo/#Simple-Example","page":"plasmo-dev/Plasmo.jl","title":"Simple Example","text":"","category":"section"},{"location":"packages/Plasmo/","page":"plasmo-dev/Plasmo.jl","title":"plasmo-dev/Plasmo.jl","text":"using Plasmo\nusing Ipopt\n\n#create an optigraph\ngraph = OptiGraph()\n\n#add nodes to an optigraph\n@optinode(graph, n1)\n@optinode(graph, n2)\n\n#add variables, constraints, and objective functions to nodes\n@variable(n1, 0 <= x <= 2)\n@variable(n1, 0 <= y <= 3)\n@constraint(n1, x+y <= 4)\n@objective(n1, Min, x)\n\n@variable(n2,x)\n@NLconstraint(n2, exp(x) >= 2)\n\n#add a linkconstraint to couple nodes\n@linkconstraint(graph, n1[:x] == n2[:x])\n\n#optimize with Ipopt\nset_optimizer(graph, Ipopt.Optimizer)\noptimize!(graph)\n\n#Print solution values\nprintln(\"n1[:x] = \", value(n1[:x]))\nprintln(\"n2[:x] = \", value(n2[:x]))","category":"page"},{"location":"packages/Plasmo/#Acknowledgments","page":"plasmo-dev/Plasmo.jl","title":"Acknowledgments","text":"","category":"section"},{"location":"packages/Plasmo/","page":"plasmo-dev/Plasmo.jl","title":"plasmo-dev/Plasmo.jl","text":"This code is based on work supported by the following funding agencies:","category":"page"},{"location":"packages/Plasmo/","page":"plasmo-dev/Plasmo.jl","title":"plasmo-dev/Plasmo.jl","text":"U.S. Department of Energy (DOE), Office of Science, under Contract No. DE-AC02-06CH11357\nDOE Office of Electricity Delivery and Energy Reliability’s Advanced Grid Research and Development program at Argonne National Laboratory\nNational Science Foundation under award NSF-EECS-1609183 and under award CBET-1748516","category":"page"},{"location":"packages/Plasmo/","page":"plasmo-dev/Plasmo.jl","title":"plasmo-dev/Plasmo.jl","text":"The primary developer is Jordan Jalving (@jalving) with support from the following contributors. ","category":"page"},{"location":"packages/Plasmo/","page":"plasmo-dev/Plasmo.jl","title":"plasmo-dev/Plasmo.jl","text":"Victor Zavala (University of Wisconsin-Madison)\nYankai Cao (University of British Columbia)\nKibaek Kim (Argonne National Laboratory)\nSungho Shin (University of Wisconsin-Madison)","category":"page"},{"location":"packages/Plasmo/#Citing-Plasmo.jl","page":"plasmo-dev/Plasmo.jl","title":"Citing Plasmo.jl","text":"","category":"section"},{"location":"packages/Plasmo/","page":"plasmo-dev/Plasmo.jl","title":"plasmo-dev/Plasmo.jl","text":"If you find Plasmo.jl useful for your work, you may cite the manuscript as:","category":"page"},{"location":"packages/Plasmo/","page":"plasmo-dev/Plasmo.jl","title":"plasmo-dev/Plasmo.jl","text":"@article{JalvingShinZavala2022,\n title={A Graph-Based Modeling Abstraction for Optimization: Concepts and Implementation in Plasmo.jl},\n author={Jordan Jalving and Sungho Shin and Victor M. Zavala},\n journal={Mathematical Programming Computation},\n year={2022},\n volume={14},\n pages={699 - 747}\n}","category":"page"},{"location":"packages/Plasmo/","page":"plasmo-dev/Plasmo.jl","title":"plasmo-dev/Plasmo.jl","text":"There is also a freely available pre-print:","category":"page"},{"location":"packages/Plasmo/","page":"plasmo-dev/Plasmo.jl","title":"plasmo-dev/Plasmo.jl","text":"@misc{JalvingShinZavala2020,\ntitle = {A Graph-Based Modeling Abstraction for Optimization: Concepts and Implementation in Plasmo.jl},\nauthor = {Jordan Jalving and Sungho Shin and Victor M. Zavala},\nyear = {2020},\neprint = {2006.05378},\narchivePrefix = {arXiv},\nprimaryClass = {math.OC}\n}","category":"page"},{"location":"packages/MiniZinc/","page":"jump-dev/MiniZinc.jl","title":"jump-dev/MiniZinc.jl","text":"EditURL = \"https://github.com/jump-dev/MiniZinc.jl/blob/v0.3.2/README.md\"","category":"page"},{"location":"packages/MiniZinc/#MiniZinc.jl","page":"jump-dev/MiniZinc.jl","title":"MiniZinc.jl","text":"","category":"section"},{"location":"packages/MiniZinc/","page":"jump-dev/MiniZinc.jl","title":"jump-dev/MiniZinc.jl","text":"MiniZinc.jl is a wrapper for the MiniZinc constraint modeling language.","category":"page"},{"location":"packages/MiniZinc/","page":"jump-dev/MiniZinc.jl","title":"jump-dev/MiniZinc.jl","text":"It provides a way to write MathOptInterface models to .mzn files, and a way to interact with libminizinc.","category":"page"},{"location":"packages/MiniZinc/#Affiliation","page":"jump-dev/MiniZinc.jl","title":"Affiliation","text":"","category":"section"},{"location":"packages/MiniZinc/","page":"jump-dev/MiniZinc.jl","title":"jump-dev/MiniZinc.jl","text":"This wrapper is maintained by the JuMP community and is not part of the MiniZinc project.","category":"page"},{"location":"packages/MiniZinc/#License","page":"jump-dev/MiniZinc.jl","title":"License","text":"","category":"section"},{"location":"packages/MiniZinc/","page":"jump-dev/MiniZinc.jl","title":"jump-dev/MiniZinc.jl","text":"MiniZinc.jl is licensed under the MIT License.","category":"page"},{"location":"packages/MiniZinc/","page":"jump-dev/MiniZinc.jl","title":"jump-dev/MiniZinc.jl","text":"The underlying project, MiniZinc/libminizinc, is licensed under the MPL 2.0 license.","category":"page"},{"location":"packages/MiniZinc/#Install","page":"jump-dev/MiniZinc.jl","title":"Install","text":"","category":"section"},{"location":"packages/MiniZinc/","page":"jump-dev/MiniZinc.jl","title":"jump-dev/MiniZinc.jl","text":"Install MiniZinc.jl using the Julia package manager:","category":"page"},{"location":"packages/MiniZinc/","page":"jump-dev/MiniZinc.jl","title":"jump-dev/MiniZinc.jl","text":"import Pkg\nPkg.add(\"MiniZinc\")","category":"page"},{"location":"packages/MiniZinc/","page":"jump-dev/MiniZinc.jl","title":"jump-dev/MiniZinc.jl","text":"Windows","category":"page"},{"location":"packages/MiniZinc/","page":"jump-dev/MiniZinc.jl","title":"jump-dev/MiniZinc.jl","text":"On Linux and macOS, this package automatically installs libminizinc. However, we're still working out problems with the install on Windows. To use MiniZinc.jl, you'll need to manually install a copy of libminizinc from minizinc.org or compile one yourself from MiniZinc/libminizinc.","category":"page"},{"location":"packages/MiniZinc/","page":"jump-dev/MiniZinc.jl","title":"jump-dev/MiniZinc.jl","text":"To teach MiniZinc.jl where to look for libminizinc, set the JULIA_LIBMINIZINC_DIR environment variable. For example:","category":"page"},{"location":"packages/MiniZinc/","page":"jump-dev/MiniZinc.jl","title":"jump-dev/MiniZinc.jl","text":"ENV[\"JULIA_LIBMINIZINC_DIR\"] = \"C:\\\\Program Files\\\\MiniZinc\"","category":"page"},{"location":"packages/MiniZinc/#Use-with-MathOptInterface","page":"jump-dev/MiniZinc.jl","title":"Use with MathOptInterface","text":"","category":"section"},{"location":"packages/MiniZinc/","page":"jump-dev/MiniZinc.jl","title":"jump-dev/MiniZinc.jl","text":"MiniZinc.jl supports the constraint programming sets defined in MathOptInterface, as well as (in)equality constraints.","category":"page"},{"location":"packages/MiniZinc/","page":"jump-dev/MiniZinc.jl","title":"jump-dev/MiniZinc.jl","text":"The following example solves the following constraint program:","category":"page"},{"location":"packages/MiniZinc/","page":"jump-dev/MiniZinc.jl","title":"jump-dev/MiniZinc.jl","text":"xᵢ ∈ {1, 2, 3} ∀i=1,2,3\nzⱼ ∈ {0, 1} ∀j=1,2\nz₁ <-> x₁ != x₂\nz₂ <-> x₂ != x₃\nz₁ + z₂ = 1","category":"page"},{"location":"packages/MiniZinc/","page":"jump-dev/MiniZinc.jl","title":"jump-dev/MiniZinc.jl","text":"julia> import MiniZinc\n\njulia> const MOI = MiniZinc.MOI\nMathOptInterface\n\njulia> function main()\n model = MOI.Utilities.CachingOptimizer(\n MiniZinc.Model{Int}(),\n MiniZinc.Optimizer{Int}(\"chuffed\"),\n )\n # xᵢ ∈ {1, 2, 3} ∀i=1,2,3\n x = MOI.add_variables(model, 3)\n MOI.add_constraint.(model, x, MOI.Interval(1, 3))\n MOI.add_constraint.(model, x, MOI.Integer())\n # zⱼ ∈ {0, 1} ∀j=1,2\n z = MOI.add_variables(model, 2)\n MOI.add_constraint.(model, z, MOI.ZeroOne())\n # z₁ <-> x₁ != x₂\n MOI.add_constraint(\n model,\n MOI.VectorOfVariables([z[1], x[1], x[2]]),\n MOI.Reified(MOI.AllDifferent(2)),\n )\n # z₂ <-> x₂ != x₃\n MOI.add_constraint(\n model,\n MOI.VectorOfVariables([z[2], x[2], x[3]]),\n MOI.Reified(MOI.AllDifferent(2)),\n )\n # z₁ + z₂ = 1\n MOI.add_constraint(model, 1 * z[1] + x[2], MOI.EqualTo(1))\n MOI.optimize!(model)\n x_star = MOI.get(model, MOI.VariablePrimal(), x)\n z_star = MOI.get(model, MOI.VariablePrimal(), z)\n return x_star, z_star\n end\nmain (generic function with 1 method)\n\njulia> main()\n([1, 1, 3], [0, 1])","category":"page"},{"location":"packages/MiniZinc/#Use-with-JuMP","page":"jump-dev/MiniZinc.jl","title":"Use with JuMP","text":"","category":"section"},{"location":"packages/MiniZinc/","page":"jump-dev/MiniZinc.jl","title":"jump-dev/MiniZinc.jl","text":"You can also call MiniZinc from JuMP, using any solver that libminizinc supports. By default, MiniZinc.jl is compiled with \"highs\":","category":"page"},{"location":"packages/MiniZinc/","page":"jump-dev/MiniZinc.jl","title":"jump-dev/MiniZinc.jl","text":"using JuMP\nimport MiniZinc\nmodel = Model(() -> MiniZinc.Optimizer{Float64}(\"highs\"))\n@variable(model, 1 <= x[1:3] <= 3, Int)\n@constraint(model, x in MOI.AllDifferent(3))\n@objective(model, Max, sum(i * x[i] for i in 1:3))\noptimize!(model)\n@show value.(x)","category":"page"},{"location":"packages/MiniZinc/#MathOptInterface-API","page":"jump-dev/MiniZinc.jl","title":"MathOptInterface API","text":"","category":"section"},{"location":"packages/MiniZinc/","page":"jump-dev/MiniZinc.jl","title":"jump-dev/MiniZinc.jl","text":"The MiniZinc Optimizer{T} supports the following constraints and attributes.","category":"page"},{"location":"packages/MiniZinc/","page":"jump-dev/MiniZinc.jl","title":"jump-dev/MiniZinc.jl","text":"List of supported objective functions:","category":"page"},{"location":"packages/MiniZinc/","page":"jump-dev/MiniZinc.jl","title":"jump-dev/MiniZinc.jl","text":"MOI.ObjectiveFunction{MOI.ScalarAffineFunction{T}}\nMOI.ObjectiveFunction{MOI.ScalarQuadraticFunction{T}}\nMOI.ObjectiveFunction{MOI.VariableIndex}","category":"page"},{"location":"packages/MiniZinc/","page":"jump-dev/MiniZinc.jl","title":"jump-dev/MiniZinc.jl","text":"List of supported variable types:","category":"page"},{"location":"packages/MiniZinc/","page":"jump-dev/MiniZinc.jl","title":"jump-dev/MiniZinc.jl","text":"MOI.Reals","category":"page"},{"location":"packages/MiniZinc/","page":"jump-dev/MiniZinc.jl","title":"jump-dev/MiniZinc.jl","text":"List of supported constraint types:","category":"page"},{"location":"packages/MiniZinc/","page":"jump-dev/MiniZinc.jl","title":"jump-dev/MiniZinc.jl","text":"MOI.ScalarAffineFunction{T} in MOI.EqualTo{T}\nMOI.ScalarAffineFunction{T} in MOI.GreaterThan{T}\nMOI.ScalarAffineFunction{T} in MOI.Integer\nMOI.ScalarAffineFunction{T} in MOI.Interval{T}\nMOI.ScalarAffineFunction{T} in MOI.LessThan{T}\nMOI.ScalarAffineFunction{T} in MOI.ZeroOne\nMOI.VariableIndex in MOI.EqualTo{T}\nMOI.VariableIndex in MOI.GreaterThan{T}\nMOI.VariableIndex in MOI.Integer\nMOI.VariableIndex in MOI.Interval{T}\nMOI.VariableIndex in MOI.LessThan{T}\nMOI.VariableIndex in MOI.Parameter{T}\nMOI.VariableIndex in MOI.Semicontinuous{T}\nMOI.VariableIndex in MOI.Semiinteger{T}\nMOI.VariableIndex in MOI.ZeroOne\nMOI.VectorOfVariables in MOI.AllDifferent\nMOI.VectorOfVariables in MOI.BinPacking{T}\nMOI.VectorOfVariables in MOI.Circuit\nMOI.VectorOfVariables in MOI.CountAtLeast\nMOI.VectorOfVariables in MOI.CountBelongs\nMOI.VectorOfVariables in MOI.CountDistinct\nMOI.VectorOfVariables in MOI.CountGreaterThan\nMOI.VectorOfVariables in MOI.Cumulative\nMOI.VectorOfVariables in MOI.Path\nMOI.VectorOfVariables in MOI.Table{T}","category":"page"},{"location":"packages/MiniZinc/","page":"jump-dev/MiniZinc.jl","title":"jump-dev/MiniZinc.jl","text":"List of supported model attributes:","category":"page"},{"location":"packages/MiniZinc/","page":"jump-dev/MiniZinc.jl","title":"jump-dev/MiniZinc.jl","text":"MOI.NLPBlock()\nMOI.Name()\nMOI.ObjectiveSense()","category":"page"},{"location":"packages/MiniZinc/#Options","page":"jump-dev/MiniZinc.jl","title":"Options","text":"","category":"section"},{"location":"packages/MiniZinc/","page":"jump-dev/MiniZinc.jl","title":"jump-dev/MiniZinc.jl","text":"Set options using MOI.RawOptimizerAttribute in MOI or set_attribute in JuMP.","category":"page"},{"location":"packages/MiniZinc/","page":"jump-dev/MiniZinc.jl","title":"jump-dev/MiniZinc.jl","text":"MiniZinc.jl supports the following options:","category":"page"},{"location":"packages/MiniZinc/","page":"jump-dev/MiniZinc.jl","title":"jump-dev/MiniZinc.jl","text":"model_filename::String = \"\": the location at which to write out the .mzn file during optimization. This option can be helpful during debugging. If left empty, a temporary file will be used instead.","category":"page"},{"location":"tutorials/linear/transp/","page":"The transportation problem","title":"The transportation problem","text":"EditURL = \"transp.jl\"","category":"page"},{"location":"tutorials/linear/transp/#The-transportation-problem","page":"The transportation problem","title":"The transportation problem","text":"","category":"section"},{"location":"tutorials/linear/transp/","page":"The transportation problem","title":"The transportation problem","text":"This tutorial was generated using Literate.jl. Download the source as a .jl file.","category":"page"},{"location":"tutorials/linear/transp/","page":"The transportation problem","title":"The transportation problem","text":"This tutorial was originally contributed by Louis Luangkesorn.","category":"page"},{"location":"tutorials/linear/transp/","page":"The transportation problem","title":"The transportation problem","text":"This tutorial is an adaptation of the transportation problem described in AMPL: A Modeling Language for Mathematical Programming, by R. Fourer, D.M. Gay and B.W. Kernighan.","category":"page"},{"location":"tutorials/linear/transp/","page":"The transportation problem","title":"The transportation problem","text":"The purpose of this tutorial is to demonstrate how to create a JuMP model from an ad-hoc structured text file.","category":"page"},{"location":"tutorials/linear/transp/#Required-packages","page":"The transportation problem","title":"Required packages","text":"","category":"section"},{"location":"tutorials/linear/transp/","page":"The transportation problem","title":"The transportation problem","text":"This tutorial uses the following packages:","category":"page"},{"location":"tutorials/linear/transp/","page":"The transportation problem","title":"The transportation problem","text":"using JuMP\nimport DelimitedFiles\nimport HiGHS","category":"page"},{"location":"tutorials/linear/transp/#Formulation","page":"The transportation problem","title":"Formulation","text":"","category":"section"},{"location":"tutorials/linear/transp/","page":"The transportation problem","title":"The transportation problem","text":"Suppose that we have a set of factories that produce pogo sticks, and a set of retail stores in which to sell them. Each factory has a maximum number of pogo sticks that it can produce, and each retail store has a demand of pogo sticks that it can sell.","category":"page"},{"location":"tutorials/linear/transp/","page":"The transportation problem","title":"The transportation problem","text":"In the transportation problem, we want to choose the number of pogo sticks to make and ship from each factory to each retail store that minimizes the total shipping cost.","category":"page"},{"location":"tutorials/linear/transp/","page":"The transportation problem","title":"The transportation problem","text":"Mathematically, we represent our set of factories by a set of origins i in O and our retail stores by a set of destinations j in D. The maximum supply at each factory is s_i and the demand from each retail store is d_j. The cost of shipping one pogo stick from i to j is c_ij.","category":"page"},{"location":"tutorials/linear/transp/","page":"The transportation problem","title":"The transportation problem","text":"With a little effort, we can model the transportation problem as the following linear program:","category":"page"},{"location":"tutorials/linear/transp/","page":"The transportation problem","title":"The transportation problem","text":"beginaligned\nmin sum_i in O j in D c_ij x_ij \nst sum_j in D x_i j le s_i forall i in O \n sum_i in O x_i j = d_j forall j in D \n x_i j ge 0 forall i in O j in D\nendaligned","category":"page"},{"location":"tutorials/linear/transp/#Data","page":"The transportation problem","title":"Data","text":"","category":"section"},{"location":"tutorials/linear/transp/","page":"The transportation problem","title":"The transportation problem","text":"We assume our data is in the form of a text file that has the following form. In practice, we would obtain this text file from the user as input, but for the purpose of this tutorial we're going to create it from Julia.","category":"page"},{"location":"tutorials/linear/transp/","page":"The transportation problem","title":"The transportation problem","text":"open(joinpath(@__DIR__, \"transp.txt\"), \"w\") do io\n print(\n io,\n \"\"\"\n . FRA DET LAN WIN STL FRE LAF SUPPLY\n GARY 39 14 11 14 16 82 8 1400\n CLEV 27 . 12 . 26 95 17 2600\n PITT 24 14 17 13 28 99 20 2900\n DEMAND 900 1200 600 400 1700 1100 1000 0\n \"\"\",\n )\n return\nend","category":"page"},{"location":"tutorials/linear/transp/","page":"The transportation problem","title":"The transportation problem","text":"Here the rows are the origins, the columns are the destinations, and the values are the cost of shipping one pogo stick from the origin to the destination. If pogo stick cannot be transported from a source to a destination, then the value is .. The final row and final column are the demand and supply of each location respectively.","category":"page"},{"location":"tutorials/linear/transp/","page":"The transportation problem","title":"The transportation problem","text":"We didn't account for arcs which do not exist in our formulation, but we can make a small change and fix x_ij = 0 if c_ij = .","category":"page"},{"location":"tutorials/linear/transp/","page":"The transportation problem","title":"The transportation problem","text":"Our first step is to convert this text format into an appropriate Julia datastructure that we can work with. Since our data is tabular with named rows and columns, one option is JuMP's Containers.DenseAxisArray object:","category":"page"},{"location":"tutorials/linear/transp/","page":"The transportation problem","title":"The transportation problem","text":"function read_data(filename::String)\n data = DelimitedFiles.readdlm(filename)\n rows, columns = data[2:end, 1], data[1, 2:end]\n return Containers.DenseAxisArray(data[2:end, 2:end], rows, columns)\nend\n\ndata = read_data(joinpath(@__DIR__, \"transp.txt\"))","category":"page"},{"location":"tutorials/linear/transp/#JuMP-formulation","page":"The transportation problem","title":"JuMP formulation","text":"","category":"section"},{"location":"tutorials/linear/transp/","page":"The transportation problem","title":"The transportation problem","text":"Following Design patterns for larger models, we code our JuMP model as a function which takes in an input. In this example, we print the output to stdout:","category":"page"},{"location":"tutorials/linear/transp/","page":"The transportation problem","title":"The transportation problem","text":"function solve_transportation_problem(data::Containers.DenseAxisArray)\n # Get the set of supplies and demands\n O, D = axes(data)\n # Drop the SUPPLY and DEMAND nodes from our sets\n O, D = setdiff(O, [\"DEMAND\"]), setdiff(D, [\"SUPPLY\"])\n model = Model(HiGHS.Optimizer)\n set_silent(model)\n @variable(model, x[o in O, d in D] >= 0)\n # Remove arcs with \".\" cost by fixing them to 0.0.\n for o in O, d in D\n if data[o, d] == \".\"\n fix(x[o, d], 0.0; force = true)\n end\n end\n @objective(\n model,\n Min,\n sum(data[o, d] * x[o, d] for o in O, d in D if data[o, d] != \".\"),\n )\n @constraint(model, [o in O], sum(x[o, :]) <= data[o, \"SUPPLY\"])\n @constraint(model, [d in D], sum(x[:, d]) == data[\"DEMAND\", d])\n optimize!(model)\n # Pretty print the solution in the format of the input\n print(\" \", join(lpad.(D, 7, ' ')))\n for o in O\n print(\"\\n\", o)\n for d in D\n if isapprox(value(x[o, d]), 0.0; atol = 1e-6)\n print(\" .\")\n else\n print(\" \", lpad(value(x[o, d]), 6, ' '))\n end\n end\n end\n return\nend","category":"page"},{"location":"tutorials/linear/transp/#Solution","page":"The transportation problem","title":"Solution","text":"","category":"section"},{"location":"tutorials/linear/transp/","page":"The transportation problem","title":"The transportation problem","text":"Let's solve and view the solution:","category":"page"},{"location":"tutorials/linear/transp/","page":"The transportation problem","title":"The transportation problem","text":"solve_transportation_problem(data)","category":"page"},{"location":"moi/developer/checklists/","page":"Checklists","title":"Checklists","text":"EditURL = \"https://github.com/jump-dev/MathOptInterface.jl/blob/v1.20.1/docs/src/developer/checklists.md\"","category":"page"},{"location":"moi/developer/checklists/#Checklists","page":"Checklists","title":"Checklists","text":"","category":"section"},{"location":"moi/developer/checklists/","page":"Checklists","title":"Checklists","text":"The purpose of this page is to collate a series of checklists for commonly performed changes to the source code of MathOptInterface.","category":"page"},{"location":"moi/developer/checklists/","page":"Checklists","title":"Checklists","text":"In each case, copy the checklist into the description of the pull request.","category":"page"},{"location":"moi/developer/checklists/#Making-a-release","page":"Checklists","title":"Making a release","text":"","category":"section"},{"location":"moi/developer/checklists/","page":"Checklists","title":"Checklists","text":"Use this checklist when making a release of the MathOptInterface repository.","category":"page"},{"location":"moi/developer/checklists/","page":"Checklists","title":"Checklists","text":"## Basic\n\n - [ ] `version` field of `Project.toml` has been updated\n - If a breaking change, increment the MAJOR field and reset others to 0\n - If adding new features, increment the MINOR field and reset PATCH to 0\n - If adding bug fixes or documentation changes, increment the PATCH field\n\n## Documentation\n\n - [ ] Add a new entry to `docs/src/changelog.md`, following existing style\n\n## Tests\n\n - [ ] The `solver-tests.yml` GitHub action does not have unexpected failures.\n To run the action, go to:\n https://github.com/jump-dev/MathOptInterface.jl/actions/workflows/solver-tests.yml\n and click \"Run workflow\"","category":"page"},{"location":"moi/developer/checklists/#Adding-a-new-set","page":"Checklists","title":"Adding a new set","text":"","category":"section"},{"location":"moi/developer/checklists/","page":"Checklists","title":"Checklists","text":"Use this checklist when adding a new set to the MathOptInterface repository.","category":"page"},{"location":"moi/developer/checklists/","page":"Checklists","title":"Checklists","text":"## Basic\n\n - [ ] Add a new `AbstractScalarSet` or `AbstractVectorSet` to `src/sets.jl`\n - [ ] If `isbitstype(S) == false`, implement `Base.copy(set::S)`\n - [ ] If `isbitstype(S) == false`, implement `Base.:(==)(x::S, y::S)`\n - [ ] If an `AbstractVectorSet`, implement `dimension(set::S)`, unless the\n dimension is given by `set.dimension`.\n\n## Utilities\n\n - [ ] If an `AbstractVectorSet`, implement `Utilities.set_dot`,\n unless the dot product between two vectors in the set is equivalent to\n `LinearAlgebra.dot`\n - [ ] If an `AbstractVectorSet`, implement `Utilities.set_with_dimension` in\n `src/Utilities/matrix_of_constraints.jl`\n - [ ] Add the set to the `@model` macro at the bottom of `src/Utilities.model.jl`\n\n## Documentation\n\n - [ ] Add a docstring, which gives the mathematical definition of the set,\n along with an `## Example` block containing a `jldoctest`\n - [ ] Add the docstring to `docs/src/reference/standard_form.md`\n - [ ] Add the set to the relevant table in `docs/src/manual/standard_form.md`\n\n## Tests\n\n - [ ] Define a new `_set(::Type{S})` method in `src/Test/test_basic_constraint.jl`\n and add the name of the set to the list at the bottom of that files\n - [ ] If the set has any checks in its constructor, add tests to `test/sets.jl`\n\n## MathOptFormat\n\n - [ ] Open an issue at `https://github.com/jump-dev/MathOptFormat` to add\n support for the new set {{ replace with link to the issue }}\n\n## Optional\n\n - [ ] Implement `dual_set(::S)` and `dual_set_type(::Type{S})`\n - [ ] Add new tests to the `Test` submodule exercising your new set\n - [ ] Add new bridges to convert your set into more commonly used sets","category":"page"},{"location":"moi/developer/checklists/#Adding-a-new-bridge","page":"Checklists","title":"Adding a new bridge","text":"","category":"section"},{"location":"moi/developer/checklists/","page":"Checklists","title":"Checklists","text":"Use this checklist when adding a new bridge to the MathOptInterface repository.","category":"page"},{"location":"moi/developer/checklists/","page":"Checklists","title":"Checklists","text":"The steps are mostly the same, but locations depend on whether the bridge is a Constraint, Objective, or Variable bridge. In each case below, replace XXX with the appropriate type of bridge.","category":"page"},{"location":"moi/developer/checklists/","page":"Checklists","title":"Checklists","text":"## Basic\n\n - [ ] Create a new file in `src/Bridges/XXX/bridges`\n - [ ] Define the bridge, following existing examples. The name of the bridge\n struct must end in `Bridge`\n - [ ] Check if your bridge can be a subtype of [`MOI.Bridges.Constraint.SetMapBridge`](@ref)\n - [ ] Define a new `const` that is a `SingleBridgeOptimizer` wrapping the\n new bridge. The name of the const must be the name of the bridge, less\n the `Bridge` suffix\n - [ ] `include` the file in `src/Bridges/XXX/bridges/XXX.jl`\n - [ ] If the bridge should be enabled by default, add the bridge to\n `add_all_bridges` at the bottom of `src/Bridges/XXX/XXX.jl`\n\n## Tests\n\n - [ ] Create a new file in the appropriate subdirectory of `tests/Bridges/XXX`\n - [ ] Use `MOI.Bridges.runtests` to test various inputs and outputs of the\n bridge\n - [ ] If, after opening the pull request to add the bridge, some lines are not\n covered by the tests, add additional bridge-specific tests to cover the\n untested lines.\n\n## Documentation\n\n - [ ] Add a docstring which uses the same template as existing bridges.\n - [ ] Add the docstring to `docs/src/submodules/Bridges/list_of_bridges.md`\n\n## Final touch\n\nIf the bridge depends on run-time values of other variables and constraints in\nthe model:\n\n - [ ] Implement `MOI.Utilities.needs_final_touch(::Bridge)`\n - [ ] Implement `MOI.Utilities.final_touch(::Bridge, ::MOI.ModelLike)`\n - [ ] Ensure that `final_touch` can be called multiple times in a row","category":"page"},{"location":"moi/developer/checklists/#Updating-MathOptFormat","page":"Checklists","title":"Updating MathOptFormat","text":"","category":"section"},{"location":"moi/developer/checklists/","page":"Checklists","title":"Checklists","text":"Use this checklist when updating the version of MathOptFormat.","category":"page"},{"location":"moi/developer/checklists/","page":"Checklists","title":"Checklists","text":"## Basic\n\n - [ ] The file at `src/FileFormats/MOF/mof.X.Y.schema.json` is updated\n - [ ] The constants `SCHEMA_PATH`, `VERSION`, and `SUPPORTED_VERSIONS` are\n updated in `src/FileFormats/MOF/MOF.jl`\n\n## New sets\n\n - [ ] New sets are added to the `@model` in `src/FileFormats/MOF/MOF.jl`\n - [ ] New sets are added to the `@enum` in `src/FileFormats/MOF/read.jl`\n - [ ] `set_to_moi` is defined for each set in `src/FileFormats/MOF/read.jl`\n - [ ] `head_name` is defined for each set in `src/FileFormats/MOF/write.jl`\n - [ ] A new unit test calling `_test_model_equality` is aded to\n `test/FileFormats/MOF/MOF.jl`\n\n## Tests\n\n - [ ] The version field in `test/FileFormats/MOF/nlp.mof.json` is updated\n\n## Documentation\n\n - [ ] The version fields are updated in `docs/src/submodules/FileFormats/overview.md`","category":"page"},{"location":"manual/expressions/","page":"Expressions","title":"Expressions","text":"DocTestSetup = quote\n using JuMP\nend","category":"page"},{"location":"manual/expressions/#Expressions","page":"Expressions","title":"Expressions","text":"","category":"section"},{"location":"manual/expressions/","page":"Expressions","title":"Expressions","text":"JuMP has three types of expressions: affine, quadratic, and nonlinear. These expressions can be inserted into constraints or into the objective. This is particularly useful if an expression is used in multiple places in the model.","category":"page"},{"location":"manual/expressions/#Affine-expressions","page":"Expressions","title":"Affine expressions","text":"","category":"section"},{"location":"manual/expressions/","page":"Expressions","title":"Expressions","text":"There are four ways of constructing an affine expression in JuMP: with the @expression macro, with operator overloading, with the AffExpr constructor, and with add_to_expression!.","category":"page"},{"location":"manual/expressions/#Macros","page":"Expressions","title":"Macros","text":"","category":"section"},{"location":"manual/expressions/","page":"Expressions","title":"Expressions","text":"The recommended way to create an affine expression is via the @expression macro.","category":"page"},{"location":"manual/expressions/","page":"Expressions","title":"Expressions","text":"julia> model = Model();\n\njulia> @variable(model, x)\nx\n\njulia> @variable(model, y)\ny\n\njulia> ex = @expression(model, 2x + y - 1)\n2 x + y - 1","category":"page"},{"location":"manual/expressions/","page":"Expressions","title":"Expressions","text":"This expression can be used in the objective or added to a constraint. For example:","category":"page"},{"location":"manual/expressions/","page":"Expressions","title":"Expressions","text":"julia> @objective(model, Min, 2 * ex - 1)\n4 x + 2 y - 3\n\njulia> objective_function(model)\n4 x + 2 y - 3","category":"page"},{"location":"manual/expressions/","page":"Expressions","title":"Expressions","text":"Just like variables and constraints, named expressions can also be created. For example","category":"page"},{"location":"manual/expressions/","page":"Expressions","title":"Expressions","text":"julia> model = Model();\n\njulia> @variable(model, x[i = 1:3]);\n\njulia> @expression(model, expr[i = 1:3], i * sum(x[j] for j in i:3));\n\njulia> expr\n3-element Vector{AffExpr}:\n x[1] + x[2] + x[3]\n 2 x[2] + 2 x[3]\n 3 x[3]","category":"page"},{"location":"manual/expressions/","page":"Expressions","title":"Expressions","text":"tip: Tip\nYou can read more about containers in the Containers section.","category":"page"},{"location":"manual/expressions/#Operator-overloading","page":"Expressions","title":"Operator overloading","text":"","category":"section"},{"location":"manual/expressions/","page":"Expressions","title":"Expressions","text":"Expressions can also be created without macros. However, note that in some cases, this can be much slower that constructing an expression using macros.","category":"page"},{"location":"manual/expressions/","page":"Expressions","title":"Expressions","text":"julia> model = Model();\n\njulia> @variable(model, x)\nx\n\njulia> @variable(model, y)\ny\n\njulia> ex = 2x + y - 1\n2 x + y - 1","category":"page"},{"location":"manual/expressions/#Constructors","page":"Expressions","title":"Constructors","text":"","category":"section"},{"location":"manual/expressions/","page":"Expressions","title":"Expressions","text":"A third way to create an affine expression is by the AffExpr constructor. The first argument is the constant term, and the remaining arguments are variable-coefficient pairs.","category":"page"},{"location":"manual/expressions/","page":"Expressions","title":"Expressions","text":"julia> model = Model();\n\njulia> @variable(model, x)\nx\n\njulia> @variable(model, y)\ny\n\njulia> ex = AffExpr(-1.0, x => 2.0, y => 1.0)\n2 x + y - 1","category":"page"},{"location":"manual/expressions/#add_to_expression!","page":"Expressions","title":"add_to_expression!","text":"","category":"section"},{"location":"manual/expressions/","page":"Expressions","title":"Expressions","text":"The fourth way to create an affine expression is by using add_to_expression!. Compared to the operator overloading method, this approach is faster because it avoids constructing temporary objects. The @expression macro uses add_to_expression! behind-the-scenes.","category":"page"},{"location":"manual/expressions/","page":"Expressions","title":"Expressions","text":"julia> model = Model();\n\njulia> @variable(model, x)\nx\n\njulia> @variable(model, y)\ny\n\njulia> ex = AffExpr(-1.0)\n-1\n\njulia> add_to_expression!(ex, 2.0, x)\n2 x - 1\n\njulia> add_to_expression!(ex, 1.0, y)\n2 x + y - 1","category":"page"},{"location":"manual/expressions/","page":"Expressions","title":"Expressions","text":"warning: Warning\nRead the section Initializing arrays for some cases to be careful about when using add_to_expression!.","category":"page"},{"location":"manual/expressions/#Removing-zero-terms","page":"Expressions","title":"Removing zero terms","text":"","category":"section"},{"location":"manual/expressions/","page":"Expressions","title":"Expressions","text":"Use drop_zeros! to remove terms from an affine expression with a 0 coefficient.","category":"page"},{"location":"manual/expressions/","page":"Expressions","title":"Expressions","text":"julia> model = Model();\n\njulia> @variable(model, x)\nx\n\njulia> @expression(model, ex, x + 1 - x)\n0 x + 1\n\njulia> drop_zeros!(ex)\n\njulia> ex\n1","category":"page"},{"location":"manual/expressions/#Coefficients","page":"Expressions","title":"Coefficients","text":"","category":"section"},{"location":"manual/expressions/","page":"Expressions","title":"Expressions","text":"Use coefficient to return the coefficient associated with a variable in an affine expression.","category":"page"},{"location":"manual/expressions/","page":"Expressions","title":"Expressions","text":"julia> model = Model();\n\njulia> @variable(model, x)\nx\n\njulia> @variable(model, y)\ny\n\njulia> @expression(model, ex, 2x + 1)\n2 x + 1\n\njulia> coefficient(ex, x)\n2.0\n\njulia> coefficient(ex, y)\n0.0","category":"page"},{"location":"manual/expressions/#Quadratic-expressions","page":"Expressions","title":"Quadratic expressions","text":"","category":"section"},{"location":"manual/expressions/","page":"Expressions","title":"Expressions","text":"Like affine expressions, there are four ways of constructing a quadratic expression in JuMP: macros, operator overloading, constructors, and add_to_expression!.","category":"page"},{"location":"manual/expressions/#Macros-2","page":"Expressions","title":"Macros","text":"","category":"section"},{"location":"manual/expressions/","page":"Expressions","title":"Expressions","text":"The @expression macro can be used to create quadratic expressions by including quadratic terms.","category":"page"},{"location":"manual/expressions/","page":"Expressions","title":"Expressions","text":"julia> model = Model();\n\njulia> @variable(model, x)\nx\n\njulia> @variable(model, y)\ny\n\njulia> ex = @expression(model, x^2 + 2 * x * y + y^2 + x + y - 1)\nx² + 2 x*y + y² + x + y - 1","category":"page"},{"location":"manual/expressions/#Operator-overloading-2","page":"Expressions","title":"Operator overloading","text":"","category":"section"},{"location":"manual/expressions/","page":"Expressions","title":"Expressions","text":"Operator overloading can also be used to create quadratic expressions. The same performance warning (discussed in the affine expression section) applies.","category":"page"},{"location":"manual/expressions/","page":"Expressions","title":"Expressions","text":"julia> model = Model();\n\njulia> @variable(model, x)\nx\n\njulia> @variable(model, y)\ny\n\njulia> ex = x^2 + 2 * x * y + y^2 + x + y - 1\nx² + 2 x*y + y² + x + y - 1","category":"page"},{"location":"manual/expressions/#Constructors-2","page":"Expressions","title":"Constructors","text":"","category":"section"},{"location":"manual/expressions/","page":"Expressions","title":"Expressions","text":"Quadratic expressions can also be created using the QuadExpr constructor. The first argument is an affine expression, and the remaining arguments are pairs, where the first term is a JuMP.UnorderedPair and the second term is the coefficient.","category":"page"},{"location":"manual/expressions/","page":"Expressions","title":"Expressions","text":"julia> model = Model();\n\njulia> @variable(model, x)\nx\n\njulia> @variable(model, y)\ny\n\njulia> aff_expr = AffExpr(-1.0, x => 1.0, y => 1.0)\nx + y - 1\n\njulia> quad_expr = QuadExpr(\n aff_expr,\n UnorderedPair(x, x) => 1.0,\n UnorderedPair(x, y) => 2.0,\n UnorderedPair(y, y) => 1.0,\n )\nx² + 2 x*y + y² + x + y - 1","category":"page"},{"location":"manual/expressions/#add_to_expression!-2","page":"Expressions","title":"add_to_expression!","text":"","category":"section"},{"location":"manual/expressions/","page":"Expressions","title":"Expressions","text":"Finally, add_to_expression! can also be used to add quadratic terms.","category":"page"},{"location":"manual/expressions/","page":"Expressions","title":"Expressions","text":"julia> model = Model();\n\njulia> @variable(model, x)\nx\n\njulia> @variable(model, y)\ny\n\njulia> ex = QuadExpr(x + y - 1.0)\nx + y - 1\n\njulia> add_to_expression!(ex, 1.0, x, x)\nx² + x + y - 1\n\njulia> add_to_expression!(ex, 2.0, x, y)\nx² + 2 x*y + x + y - 1\n\njulia> add_to_expression!(ex, 1.0, y, y)\nx² + 2 x*y + y² + x + y - 1","category":"page"},{"location":"manual/expressions/","page":"Expressions","title":"Expressions","text":"warning: Warning\nRead the section Initializing arrays for some cases to be careful about when using add_to_expression!.","category":"page"},{"location":"manual/expressions/#Removing-zero-terms-2","page":"Expressions","title":"Removing zero terms","text":"","category":"section"},{"location":"manual/expressions/","page":"Expressions","title":"Expressions","text":"Use drop_zeros! to remove terms from a quadratic expression with a 0 coefficient.","category":"page"},{"location":"manual/expressions/","page":"Expressions","title":"Expressions","text":"julia> model = Model();\n\njulia> @variable(model, x)\nx\n\njulia> @expression(model, ex, x^2 + x + 1 - x^2)\n0 x² + x + 1\n\njulia> drop_zeros!(ex)\n\njulia> ex\nx + 1","category":"page"},{"location":"manual/expressions/#Coefficients-2","page":"Expressions","title":"Coefficients","text":"","category":"section"},{"location":"manual/expressions/","page":"Expressions","title":"Expressions","text":"Use coefficient to return the coefficient associated with a pair of variables in a quadratic expression.","category":"page"},{"location":"manual/expressions/","page":"Expressions","title":"Expressions","text":"julia> model = Model();\n\njulia> @variable(model, x)\nx\n\njulia> @variable(model, y)\ny\n\njulia> @expression(model, ex, 2*x*y + 3*x)\n2 x*y + 3 x\n\njulia> coefficient(ex, x, y)\n2.0\n\njulia> coefficient(ex, x, x)\n0.0\n\njulia> coefficient(ex, y, x)\n2.0\n\njulia> coefficient(ex, x)\n3.0","category":"page"},{"location":"manual/expressions/#Nonlinear-expressions","page":"Expressions","title":"Nonlinear expressions","text":"","category":"section"},{"location":"manual/expressions/","page":"Expressions","title":"Expressions","text":"Nonlinear expressions in JuMP are represented by a NonlinearExpr object. See Nonlinear expressions in detail for more details.","category":"page"},{"location":"manual/expressions/#Initializing-arrays","page":"Expressions","title":"Initializing arrays","text":"","category":"section"},{"location":"manual/expressions/","page":"Expressions","title":"Expressions","text":"JuMP implements zero(AffExpr) and one(AffExpr) to support various functions in LinearAlgebra (for example, accessing the off-diagonal of a Diagonal matrix).","category":"page"},{"location":"manual/expressions/","page":"Expressions","title":"Expressions","text":"julia> zero(AffExpr)\n0\n\njulia> one(AffExpr)\n1","category":"page"},{"location":"manual/expressions/","page":"Expressions","title":"Expressions","text":"However, this can result in a subtle bug if you call add_to_expression! or the MutableArithmetics API on an element created by zeros or ones:","category":"page"},{"location":"manual/expressions/","page":"Expressions","title":"Expressions","text":"julia> x = zeros(AffExpr, 2)\n2-element Vector{AffExpr}:\n 0\n 0\n\njulia> add_to_expression!(x[1], 1.1)\n1.1\n\njulia> x\n2-element Vector{AffExpr}:\n 1.1\n 1.1","category":"page"},{"location":"manual/expressions/","page":"Expressions","title":"Expressions","text":"Notice how we modified x[1], but we also changed x[2]!","category":"page"},{"location":"manual/expressions/","page":"Expressions","title":"Expressions","text":"This happened because zeros(AffExpr, 2) calls zero(AffExpr) once to obtain a zero element, and then creates an appropriately sized array filled with the same element.","category":"page"},{"location":"manual/expressions/","page":"Expressions","title":"Expressions","text":"This also happens with broadcasting calls containing a conversion of 0 or 1:","category":"page"},{"location":"manual/expressions/","page":"Expressions","title":"Expressions","text":"julia> x = Vector{AffExpr}(undef, 2)\n2-element Vector{AffExpr}:\n #undef\n #undef\n\njulia> x .= 0\n2-element Vector{AffExpr}:\n 0\n 0\n\njulia> add_to_expression!(x[1], 1.1)\n1.1\n\njulia> x\n2-element Vector{AffExpr}:\n 1.1\n 1.1","category":"page"},{"location":"manual/expressions/","page":"Expressions","title":"Expressions","text":"The recommended way to create an array of empty expressions is as follows:","category":"page"},{"location":"manual/expressions/","page":"Expressions","title":"Expressions","text":"julia> x = Vector{AffExpr}(undef, 2)\n2-element Vector{AffExpr}:\n #undef\n #undef\n\njulia> for i in eachindex(x)\n x[i] = AffExpr(0.0)\n end\n\njulia> add_to_expression!(x[1], 1.1)\n1.1\n\njulia> x\n2-element Vector{AffExpr}:\n 1.1\n 0","category":"page"},{"location":"manual/expressions/","page":"Expressions","title":"Expressions","text":"Alternatively, use non-mutating operation to avoid updating x[1] in-place:","category":"page"},{"location":"manual/expressions/","page":"Expressions","title":"Expressions","text":"julia> x = zeros(AffExpr, 2)\n2-element Vector{AffExpr}:\n 0\n 0\n\njulia> x[1] += 1.1\n1.1\n\njulia> x\n2-element Vector{AffExpr}:\n 1.1\n 0","category":"page"},{"location":"manual/expressions/","page":"Expressions","title":"Expressions","text":"Note that for large expressions this will be slower due to the allocation of additional temporary objects.","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"EditURL = \"factory_schedule.jl\"","category":"page"},{"location":"tutorials/linear/factory_schedule/#The-factory-schedule-example","page":"The factory schedule example","title":"The factory schedule example","text":"","category":"section"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"This tutorial was generated using Literate.jl. Download the source as a .jl file.","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"This tutorial was originally contributed by @Crghilardi.","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"This tutorial is a Julia translation of Part 5 from Introduction to Linear Programming with Python.","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"The purpose of this tutorial is to demonstrate how to use DataFrames and delimited files, and to structure your code that is robust to infeasibilities and permits running with different datasets.","category":"page"},{"location":"tutorials/linear/factory_schedule/#Required-packages","page":"The factory schedule example","title":"Required packages","text":"","category":"section"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"This tutorial requires the following packages:","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"using JuMP\nimport CSV\nimport DataFrames\nimport HiGHS\nimport StatsPlots","category":"page"},{"location":"tutorials/linear/factory_schedule/#Formulation","page":"The factory schedule example","title":"Formulation","text":"","category":"section"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"The Factory Scheduling Problem assumes we are optimizing the production of a good from factories f in F over the course of 12 months m in M.","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"If a factory f runs during a month m, a fixed cost of a_f is incurred, the factory must produce x_mf units that is within some minimum and maximum production levels l_f and u_f respectively, and each unit of production incurs a variable cost c_f. Otherwise, the factory can be shut for the month with zero production and no fixed-cost is incurred. We denote the run/not-run decision by z_mf in 0 1, where z_mf is 1 if factory f runs in month m. The factory must produce enough units to satisfy demand d_m.","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"With a little effort, we can formulate our problem as the following linear program:","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"beginaligned\nmin sumlimits_f in F m in M a_f z_mf + c_f x_mf \ntextst x_mf le u_f z_mf forall f in F m in M \n x_mf ge l_f z_mf forall f in F m in M \n sumlimits_fin F x_mf = d_m forall f in F m in M \n z_mf in 0 1 forall f in F m in M\nendaligned","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"However, this formulation has a problem: if demand is too high, we may be unable to satisfy the demand constraint, and the problem will be infeasible.","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"tip: Tip\nWhen modeling, consider ways to formulate your model such that it always has a feasible solution. This greatly simplifies debugging data errors that would otherwise result in an infeasible solution. In practice, most practical decisions have a feasible solution. In our case, we could satisfy demand (at a high cost) by buying replacement items for the buyer, or running the factories in overtime to make up the difference.","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"We can improve our model by adding a new variable, delta_m, which represents the quantity of unmet demand in each month m. We penalize delta_m by an arbitrarily large value of $10,000/unit in the objective.","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"beginaligned\nmin sumlimits_f in F m in M a_f z_mf + c_f x_mf + sumlimits_m in M10000 delta_m \ntextst x_mf le u_f z_mf forall f in F m in M \n x_mf ge l_f z_mf forall f in F m in M \n sumlimits_fin F x_mf - delta_m = d_m forall f in F m in M \n z_mf in 0 1 forall f in F m in M \n delta_m ge 0 forall m in M\nendaligned","category":"page"},{"location":"tutorials/linear/factory_schedule/#Data","page":"The factory schedule example","title":"Data","text":"","category":"section"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"The JuMP GitHub repository contains two text files with the data we need for this tutorial.","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"The first file contains a dataset of our factories, A and B, with their production and cost levels for each month. For the documentation, the file is located at:","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"factories_filename = joinpath(@__DIR__, \"factory_schedule_factories.txt\");\nnothing #hide","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"To run locally, download factory_schedule_factories.txt and update factories_filename appropriately.","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"The file has the following contents:","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"print(read(factories_filename, String))","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"We use the CSV and DataFrames packages to read it into Julia:","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"factory_df = CSV.read(\n factories_filename,\n DataFrames.DataFrame;\n delim = ' ',\n ignorerepeated = true,\n)","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"The second file contains the demand data by month:","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"demand_filename = joinpath(@__DIR__, \"factory_schedule_demand.txt\");\nnothing #hide","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"To run locally, download factory_schedule_demand.txt and update demand_filename appropriately.","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"demand_df = CSV.read(\n demand_filename,\n DataFrames.DataFrame;\n delim = ' ',\n ignorerepeated = true,\n)","category":"page"},{"location":"tutorials/linear/factory_schedule/#Data-validation","page":"The factory schedule example","title":"Data validation","text":"","category":"section"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"Before moving on, it's always good practice to validate the data you read from external sources. The more effort you spend here, the fewer issues you will have later. The following function contains a few simple checks, but we could add more. For example, you might want to check that none of the values are too large (or too small), which might indicate a typo or a unit conversion issue (perhaps the variable costs are in $/1000 units instead of $/unit).","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"function valiate_data(\n demand_df::DataFrames.DataFrame,\n factory_df::DataFrames.DataFrame,\n)\n # Minimum production must not exceed maximum production.\n @assert all(factory_df.min_production .<= factory_df.max_production)\n # Demand, minimum production, fixed costs, and variable costs must all be\n # non-negative.\n @assert all(demand_df.demand .>= 0)\n @assert all(factory_df.min_production .>= 0)\n @assert all(factory_df.fixed_cost .>= 0)\n @assert all(factory_df.variable_cost .>= 0)\n return\nend\n\nvaliate_data(demand_df, factory_df)","category":"page"},{"location":"tutorials/linear/factory_schedule/#JuMP-formulation","page":"The factory schedule example","title":"JuMP formulation","text":"","category":"section"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"Next, we need to code our JuMP formulation. As shown in Design patterns for larger models, it's always good practice to code your model in a function that accepts well-defined input and returns well-defined output.","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"function solve_factory_scheduling(\n demand_df::DataFrames.DataFrame,\n factory_df::DataFrames.DataFrame,\n)\n # Even though we validated the data above, it's good practice to do it here\n # too.\n valiate_data(demand_df, factory_df)\n months, factories = unique(factory_df.month), unique(factory_df.factory)\n model = Model(HiGHS.Optimizer)\n set_silent(model)\n @variable(model, status[months, factories], Bin)\n @variable(model, production[months, factories], Int)\n @variable(model, unmet_demand[months] >= 0)\n # We use `eachrow` to loop through the rows of the dataframe and add the\n # relevant constraints.\n for r in eachrow(factory_df)\n m, f = r.month, r.factory\n @constraint(model, production[m, f] <= r.max_production * status[m, f])\n @constraint(model, production[m, f] >= r.min_production * status[m, f])\n end\n @constraint(\n model,\n [r in eachrow(demand_df)],\n sum(production[r.month, :]) + unmet_demand[r.month] == r.demand,\n )\n @objective(\n model,\n Min,\n 10_000 * sum(unmet_demand) + sum(\n r.fixed_cost * status[r.month, r.factory] +\n r.variable_cost * production[r.month, r.factory] for\n r in eachrow(factory_df)\n )\n )\n optimize!(model)\n schedules = Dict{Symbol,Vector{Float64}}(\n Symbol(f) => value.(production[:, f]) for f in factories\n )\n schedules[:unmet_demand] = value.(unmet_demand)\n return (\n termination_status = termination_status(model),\n cost = objective_value(model),\n # This `select` statement re-orders the columns in the DataFrame.\n schedules = DataFrames.select(\n DataFrames.DataFrame(schedules),\n [:unmet_demand, :A, :B],\n ),\n )\nend","category":"page"},{"location":"tutorials/linear/factory_schedule/#Solution","page":"The factory schedule example","title":"Solution","text":"","category":"section"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"Now we can call our solve_factory_scheduling function using the data we read in above.","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"solution = solve_factory_scheduling(demand_df, factory_df);\nnothing #hide","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"Let's see what solution contains:","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"solution.termination_status","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"solution.cost","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"solution.schedules","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"These schedules will be easier to visualize as a graph:","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"StatsPlots.groupedbar(\n Matrix(solution.schedules);\n bar_position = :stack,\n labels = [\"unmet demand\" \"A\" \"B\"],\n xlabel = \"Month\",\n ylabel = \"Production\",\n legend = :topleft,\n color = [\"#20326c\" \"#4063d8\" \"#a0b1ec\"],\n)","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"Note that we don't have any unmet demand.","category":"page"},{"location":"tutorials/linear/factory_schedule/#What-happens-if-demand-increases?","page":"The factory schedule example","title":"What happens if demand increases?","text":"","category":"section"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"Let's run an experiment by increasing the demand by 50% in all time periods:","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"demand_df.demand .*= 1.5","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"Now we resolve the problem:","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"high_demand_solution = solve_factory_scheduling(demand_df, factory_df);\nnothing #hide","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"and visualize the solution:","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"StatsPlots.groupedbar(\n Matrix(high_demand_solution.schedules);\n bar_position = :stack,\n labels = [\"unmet demand\" \"A\" \"B\"],\n xlabel = \"Month\",\n ylabel = \"Production\",\n legend = :topleft,\n color = [\"#20326c\" \"#4063d8\" \"#a0b1ec\"],\n)","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"Uh oh, we can't satisfy all of the demand.","category":"page"},{"location":"tutorials/linear/factory_schedule/#How-sensitive-is-the-solution-to-changes-in-variable-cost?","page":"The factory schedule example","title":"How sensitive is the solution to changes in variable cost?","text":"","category":"section"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"Let's run another experiment, this time seeing how the optimal objective value changes as we vary the variable costs of each factory.","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"First though, let's reset the demand to it's original level:","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"demand_df.demand ./= 1.5;\nnothing #hide","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"For our experiment, we're going to scale the variable costs of both factories by a set of values from 0.0 to 1.5:","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"scale_factors = 0:0.1:1.5","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"At a high level, we're going to loop over the scale factors for A, then the scale factors for B, rescale the input data, call our solve_factory_scheduling example, and then store the optimal objective value in the following cost matrix:","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"cost = zeros(length(scale_factors), length(scale_factors));\nnothing #hide","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"Because we're modifying factory_df in-place, we need to store the original variable costs in a new column:","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"factory_df[!, :old_variable_cost] = copy(factory_df.variable_cost);\nnothing #hide","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"Then, we need a function to scale the :variable_cost column for a particular factory by a value scale:","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"function scale_variable_cost(df, factory, scale)\n rows = df.factory .== factory\n df[rows, :variable_cost] .=\n round.(Int, df[rows, :old_variable_cost] .* scale)\n return\nend","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"Our experiment is just a nested for-loop, modifying A and B and storing the cost:","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"for (j, a) in enumerate(scale_factors)\n scale_variable_cost(factory_df, \"A\", a)\n for (i, b) in enumerate(scale_factors)\n scale_variable_cost(factory_df, \"B\", b)\n cost[i, j] = solve_factory_scheduling(demand_df, factory_df).cost\n end\nend","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"Let's visualize the cost matrix:","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"StatsPlots.contour(\n scale_factors,\n scale_factors,\n cost;\n xlabel = \"Scale of factory A\",\n ylabel = \"Scale of factory B\",\n)","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"What can you infer from the solution?","category":"page"},{"location":"tutorials/linear/factory_schedule/","page":"The factory schedule example","title":"The factory schedule example","text":"info: Info\nThe Power Systems tutorial explains a number of other ways you can structure a problem to perform a parametric analysis of the solution. In particular, you can use in-place modification to reduce the time it takes to build and solve the resulting models.","category":"page"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"EditURL = \"changelog.md\"","category":"page"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"CurrentModule = JuMP","category":"page"},{"location":"release_notes/#Release-notes","page":"Release notes","title":"Release notes","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.","category":"page"},{"location":"release_notes/#[Version-1.15.1](https://github.com/jump-dev/JuMP.jl/releases/tag/v1.15.1)-(September-24,-2023)","page":"Release notes","title":"Version 1.15.1 (September 24, 2023)","text":"","category":"section"},{"location":"release_notes/#Fixed","page":"Release notes","title":"Fixed","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fixed support for single argument min and max operators (#3522)\nFixed error message for add_to_expression! when called with a GenericNonlinearExpr (#3506)\nFixed constraint tags with broadcasted constraints (#3515)\nFixed MethodError in MA.scaling (#3518)\nFixed support for arrays of Parameter variables (#3524)","category":"page"},{"location":"release_notes/#Other","page":"Release notes","title":"Other","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Updated to Documenter@1 (#3501)\nFixed links to data in tutorials (#3512)\nFixed typo in TSP tutorial (#3516)\nImproved error message for VariableNotOwned errors (#3520)\nFixed various JET errors (#3519)","category":"page"},{"location":"release_notes/#[Version-1.15.0](https://github.com/jump-dev/JuMP.jl/releases/tag/v1.15.0)-(September-15,-2023)","page":"Release notes","title":"Version 1.15.0 (September 15, 2023)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"This is a large minor release because it adds an entirely new data structure and API path for working with nonlinear programs. The previous nonlinear interface remains unchanged and is documented at Nonlinear Modeling (Legacy). The new interface is a treated as a non-breaking feature addition and is documented at Nonlinear Modeling.","category":"page"},{"location":"release_notes/#Breaking","page":"Release notes","title":"Breaking","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Although the new nonlinear interface is a feature addition, there are two changes which might be breaking for a very small number of users.","category":"page"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"The syntax inside JuMP macros is parsed using a different code path, even for linear and quadratic expressions. We made this change to unify how we parse linear, quadratic, and nonlinear expressions. In all cases, the new code returns equivalent expressions, but because of the different order of operations, there are three changes to be aware of when updating:\nThe printed form of the expression may change, for example from x * y to y * x. This can cause tests which test the String representation of a model to fail.\nSome coefficients may change slightly due to floating point round-off error.\nParticularly when working with a JuMP extension, you may encounter a MethodError due to a missing or ambiguous method. These errors are due to previously existing bugs that were not triggered by the previous parsing code. If you encounter such an error, please open a GitHub issue.\nThe methods for Base.:^(x::VariableRef, n::Integer) and Base.:^(x::AffExpr, n::Integer) have changed. Previously, these methods supported only n = 0, 1, 2 and they always returned a QuadExpr, even for the case when n = 0 or n = 1. Now:\nx^0 returns one(T), where T is the value_type of the model (defaults to Float64)\nx^1 returns x\nx^2 returns a QuadExpr\nx^n where !(0 <= n <= 2) returns a NonlinearExpr.\nWe made this change to support nonlinear expressions and to align the mathematical definition of the operation with their return type. (Previously, users were surprised that x^1 returned a QuadExpr.) As a consequence of this change, the methods are now not type-stable. This means that the compiler cannot prove that x^2 returns a QuadExpr. If benchmarking shows that this is a performance problem, you can use the type-stable x * x instead of x^2.","category":"page"},{"location":"release_notes/#Added","page":"Release notes","title":"Added","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Added triangle_vec which simplifies adding MOI.LogDetConeTriangle and MOI.RootDetConeTriangle constraints (#3456)\nAdded the new nonlinear interface. This is a very large change. See the documentation at Nonlinear Modeling and the (long) discussion in JuMP.jl#3106. Related PRs are (#3468) (#3472) (#3475) (#3483) (#3487) (#3488) (#3489) (#3504) (#3509)","category":"page"},{"location":"release_notes/#Fixed-2","page":"Release notes","title":"Fixed","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fixed uses of @nospecialize which cause precompilation failures in Julia v1.6.0 and v1.6.1. (#3464)\nFixed adding a container of Parameter (#3473)\nFixed return type of x^0 and x^1 to no longer return QuadExpr (see note in Breaking section above) (#3474)\nFixed error messages in LowerBoundRef, UpperBoundRef, FixRef, IntegerRef, BinaryRef, ParameterRef and related functions (#3494)\nFixed type inference of empty containers in JuMP macros (#3500)","category":"page"},{"location":"release_notes/#Other-2","page":"Release notes","title":"Other","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Added GAMS to solver documentation (#3357)\nUpdated various tutorials (#3459) (#3460) (#3462) (#3463) (#3465) (#3490) (#3492) (#3503)\nAdded The network multi-commodity flow problem tutorial (#3491)\nAdded Two-stage stochastic programs tutorial (#3466)\nAdded better error messages for unsupported operations in LinearAlgebra (#3476)\nUpdated to the latest version of Documenter (#3484) (#3495) (#3497)\nUpdated GitHub action versions (#3507)","category":"page"},{"location":"release_notes/#[Version-1.14.1](https://github.com/jump-dev/JuMP.jl/releases/tag/v1.14.1)-(September-2,-2023)","page":"Release notes","title":"Version 1.14.1 (September 2, 2023)","text":"","category":"section"},{"location":"release_notes/#Fixed-3","page":"Release notes","title":"Fixed","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fix links in Documentation (#3478)","category":"page"},{"location":"release_notes/#[Version-1.14.0](https://github.com/jump-dev/JuMP.jl/releases/tag/v1.14.0)-(August-27,-2023)","page":"Release notes","title":"Version 1.14.0 (August 27, 2023)","text":"","category":"section"},{"location":"release_notes/#Added-2","page":"Release notes","title":"Added","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Added DimensionalData.jl extension (#3413)\nAdded syntactic sugar for the MOI.Parameter set (#3443)\nParameter\nParameterRef\nis_parameter\nparameter_value\nset_parameter_value","category":"page"},{"location":"release_notes/#Fixed-4","page":"Release notes","title":"Fixed","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fixed model_convert for BridgeableConstraint (#3437)\nFixed printing models with integer coefficients larger than typemax(Int) (#3447)\nFixed support for constant left-hand side functions in a complementarity constraint (#3452)","category":"page"},{"location":"release_notes/#Other-3","page":"Release notes","title":"Other","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Updated packages used in documentation (#3444) (#3455)\nFixed docstring tests (#3445)\nFixed printing change for MathOptInterface (#3446)\nFixed typos in documentation (#3448) (#3457)\nAdded SCIP to callback documentation (#3449)","category":"page"},{"location":"release_notes/#[Version-1.13.0](https://github.com/jump-dev/JuMP.jl/releases/tag/v1.13.0)-(July-27,-2023)","page":"Release notes","title":"Version 1.13.0 (July 27, 2023)","text":"","category":"section"},{"location":"release_notes/#Added-3","page":"Release notes","title":"Added","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Added support for generic number types (#3377) (#3385)\nAdded fallback for MOI.AbstractSymmetricMatrixSetTriangle and MOI.AbstractSymmetricMatrixSetSquare (#3424)","category":"page"},{"location":"release_notes/#Fixed-5","page":"Release notes","title":"Fixed","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fixed set_start_values with MOI.Bridges.Objective.SlackBridge (#3422)\nFixed flakey doctest in variables.md (#3425)\nFixed names on CITATION.bib (#3423)","category":"page"},{"location":"release_notes/#Other-4","page":"Release notes","title":"Other","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Added Loraine.jl to the installation table (#3426)\nRemoved Penopt.jl from packages.toml (#3428)\nImproved problem statement in cannery example of tutorial (#3430)\nMinor cleanups in Containers.DenseAxisArray implementation (#3429)\nChanged nested_problems.jl: outer/inner to upper/lower (#3433)\nRemoved second SDP relaxation in OPF tutorial (#3432)","category":"page"},{"location":"release_notes/#[Version-1.12.0](https://github.com/jump-dev/JuMP.jl/releases/tag/v1.12.0)-(June-19,-2023)","page":"Release notes","title":"Version 1.12.0 (June 19, 2023)","text":"","category":"section"},{"location":"release_notes/#Added-4","page":"Release notes","title":"Added","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Added coefficient_type keyword argument to add_bridge and remove_bridge (#3394)","category":"page"},{"location":"release_notes/#Fixed-6","page":"Release notes","title":"Fixed","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fixed error message for matrix in HermitianPSDCone (#3369)\nFixed EditURL for custom documentation pages (#3373)\nFixed return type annotations for MOI.ConstraintPrimal and MOI.ConstraintDual (#3381)\nFixed printing change in Julia nightly (#3391)\nFixed printing of Complex coefficients (#3397)\nFixed printing of constraints in text/latex mode (#3405)\nFixed performance issue in Containers.rowtable (#3410)\nFixed bug when variables added to set of wrong dimension (#3411)","category":"page"},{"location":"release_notes/#Other-5","page":"Release notes","title":"Other","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Added more solver READMEs to the documentation (#3358) (#3360) (#3364) (#3365) (#3366) (#3368) (#3372) (#3374) (#3376) (#3379) (#3387) (#3389)\nAdded StatusSwitchingQP.jl to the installation table (#3354)\nUpdated checklist for adding a new solver (#3370)\nUpdated extension-tests.yml action (#3371) (#3375)\nColor logs in GitHub actions (#3392)\nAdded new tutorials\nOptimal power flow (#3395) (#3412)\nLovász numbers (#3399)\nDualization (#3402)\nUpdated JuMP paper citation (#3400)\nChanged GitHub action to upload LaTeX logs when building documentation (#3403)\nFixed printing of SCS log in documentation (#3406)\nUpdated solver versions (#3407)\nUpdated documentation to use Julia v1.9 (#3398)\nReplaced _value_type with MOI.Utilities.value_type (#3414)\nFixed a typo in docstring (#3415)\nRefactored API documentation (#3386)\nUpdated SCIP license (#3420)","category":"page"},{"location":"release_notes/#[Version-1.11.1](https://github.com/jump-dev/JuMP.jl/releases/tag/v1.11.1)-(May-19,-2023)","page":"Release notes","title":"Version 1.11.1 (May 19, 2023)","text":"","category":"section"},{"location":"release_notes/#Fixed-7","page":"Release notes","title":"Fixed","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fixed a poor error message when sum(::DenseAxisArray; dims) was called (#3338)\nFixed support for dependent sets in the @variable macro (#3344)\nFixed a performance bug in constraints with sparse symmetric matrices (#3349)","category":"page"},{"location":"release_notes/#Other-6","page":"Release notes","title":"Other","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Improved the printing of complex numbers (#3332)\nWhen printing, sets which contain constants ending in .0 now print as integers. This follows the behavior of constants in functions (#3341)\nAdded InfiniteOpt to the extensions documentation (#3343)\nAdded more documentation for the exponential cone (#3345) (#3347)\nAdded checklists for developers (#3346) (#3355)\nFixed test support upcoming Julia nightly (#3351)\nFixed extension-tests.yml action (#3353)\nAdd more solvers to the documentation (#3359) (#3361) (#3362)","category":"page"},{"location":"release_notes/#[Version-1.11.0](https://github.com/jump-dev/JuMP.jl/releases/tag/v1.11.0)-(May-3,-2023)","page":"Release notes","title":"Version 1.11.0 (May 3, 2023)","text":"","category":"section"},{"location":"release_notes/#Added-5","page":"Release notes","title":"Added","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Added new methods to print_active_bridges for printing a particular objective, constraint, or variable (#3316)","category":"page"},{"location":"release_notes/#Fixed-8","page":"Release notes","title":"Fixed","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fixed tests for MOI v1.14.0 release (#3312)\nFixed indexing containers when an axis is Vector{Any} that contains a Vector{Any} element (#3280)\nFixed getindex(::AbstractJuMPScalar) which is called for an expression like x[] (#3314)\nFixed bug in set_string_names_on_creation with a vector of variables (#3322)\nFixed bug in memoize function in nonlinear documentation (#3337)","category":"page"},{"location":"release_notes/#Other-7","page":"Release notes","title":"Other","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fixed typos in the documentation (#3317) (#3318) (#3328)\nAdded a test for the order of setting start values (#3315)\nAdded READMEs of solvers and extensions to the docs (#3309) (#3320) (#3327) (#3329) (#3333)\nStyle improvements to src/variables.jl (#3324)\nClarify that column generation does not find global optimum (#3325)\nAdd a GitHub actions workflow for testing extensions prior to release (#3331)\nDocument the release process for JuMP (#3334)\nFix links to discourse and chatroom (#3335)","category":"page"},{"location":"release_notes/#[Version-1.10.0](https://github.com/jump-dev/JuMP.jl/releases/tag/v1.10.0)-(April-3,-2023)","page":"Release notes","title":"Version 1.10.0 (April 3, 2023)","text":"","category":"section"},{"location":"release_notes/#Added-6","page":"Release notes","title":"Added","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Added Nonnegatives, Nonpositives and Zeros, and support vector-valued inequality syntax in the JuMP macros (#3273)\nAdded special support for LinearAlgebra.Symmetric and LinearAlgebra.Hermitian matrices in Zeros constraints (#3281) (#3296)\nAdded HermitianMatrixSpace and the Hermitian tag for generating a matrix of variables that is Hermitian (#3292) (#3293)\nAdded Semicontinuous and Semiinteger (#3302)\nAdded support for keyword indexing of containers (#3237)","category":"page"},{"location":"release_notes/#Fixed-9","page":"Release notes","title":"Fixed","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fixed [compat] bound for MathOptInterface in Project.toml (#3272)","category":"page"},{"location":"release_notes/#Other-8","page":"Release notes","title":"Other","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Split out the Nested optimization problems tutorial (#3274)\nUpdated doctests to ensure none have hidden state (#3275) (#3276)\nClarified how lazy constraints may revisit points (#3278)\nAdded P-Norm example (#3282)\nClarified docs that macros create new bindings (#3284)\nFixed threading example (#3283)\nAdded plot to The minimum distortion problem (#3288)\nAdded Google style rules for Vale and fixed warnings (#3285)\nAdded citation for the JuMP 1.0 paper (#3294)\nUpdated package versions in the documentation (#3298)\nAdded comment for the order in which start values must be set (#3303)\nImproved error message for unrecognized constraint operators (#3311)","category":"page"},{"location":"release_notes/#[Version-1.9.0](https://github.com/jump-dev/JuMP.jl/releases/tag/v1.9.0)-(March-7,-2023)","page":"Release notes","title":"Version 1.9.0 (March 7, 2023)","text":"","category":"section"},{"location":"release_notes/#Added-7","page":"Release notes","title":"Added","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Added get_attribute and set_attribute. These replace get_optimizer_attribute and set_optimizer_attribute, although the _optimizer_ functions remain for backward compatibility. (#3219)\nAdded set_start_values for setting all supported start values in a model (#3238)\nAdd remove_bridge and print_active_bridges (#3259)","category":"page"},{"location":"release_notes/#Fixed-10","page":"Release notes","title":"Fixed","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"The matrix returned by a variable in HermitianPSDCone is now a LinearAlgebra.Hermitian matrix. This is potentially breaking if you have written code to assume the return is a Matrix. (#3245) (#3246)\nFixed missing support for Base.isreal of expressions (#3252)","category":"page"},{"location":"release_notes/#Other-9","page":"Release notes","title":"Other","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fixed a thread safety issue in the Parallelism tutorial (#3240) (#3243)\nImproved the error message when unsupported operators are used in @NL macros (#3236)\nClarified the documentation to say that matrices in HermitianPSDCone must be LinearAlgebra.Hermitian (#3241)\nMinor style fixes to internal macro code (#3247)\nAdd Quantum state discrimination tutorial (#3250)\nImprove error message when begin...end not passed to plural macros (#3255)\nDocument how to register function with varying number of input arguments (#3258)\nTidy tests by removing unneeded JuMP. prefixes (#3260)\nClarified the introduction to the Complex number support tutorial (#3262)\nFixed typos in the Documentation (#3263) (#3266) (#3268) (#3269)","category":"page"},{"location":"release_notes/#[Version-1.8.2](https://github.com/jump-dev/JuMP.jl/releases/tag/v1.8.2)-(February-27,-2023)","page":"Release notes","title":"Version 1.8.2 (February 27, 2023)","text":"","category":"section"},{"location":"release_notes/#Fixed-11","page":"Release notes","title":"Fixed","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fixed dot product between complex JuMP expression and number (#3244)","category":"page"},{"location":"release_notes/#Other-10","page":"Release notes","title":"Other","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Polish simple SDP examples (#3232)","category":"page"},{"location":"release_notes/#[Version-1.8.1](https://github.com/jump-dev/JuMP.jl/releases/tag/v1.8.1)-(February-23,-2023)","page":"Release notes","title":"Version 1.8.1 (February 23, 2023)","text":"","category":"section"},{"location":"release_notes/#Fixed-12","page":"Release notes","title":"Fixed","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fixed support for init in nonlinear generator expressions (#3226)","category":"page"},{"location":"release_notes/#Other-11","page":"Release notes","title":"Other","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Use and document import MathOptInterface as MOI (#3222)\nRemoved references in documentation to multiobjective optimization being unsupported (#3223)\nAdded tutorial on multi-objective portfolio optimization (#3227)\nRefactored some of the conic tutorials (#3229)\nFixed typos in the documentation (#3230)\nAdded tutorial on parallelism (#3231)","category":"page"},{"location":"release_notes/#[Version-1.8.0](https://github.com/jump-dev/JuMP.jl/releases/tag/v1.8.0)-(February-16,-2023)","page":"Release notes","title":"Version 1.8.0 (February 16, 2023)","text":"","category":"section"},{"location":"release_notes/#Added-8","page":"Release notes","title":"Added","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Added --> syntax support for indicator constraints. The old syntax of => remains supported (#3207)\nAdded <--> syntax for reified constraints. For now, few solvers support reified constraints (#3206)\nAdded fix_discrete_variables. This is most useful for computing the dual of a mixed-integer program (#3208)\nAdded support for vector-valued objectives. For details, see the Multi-objective knapsack tutorial (#3176)","category":"page"},{"location":"release_notes/#Fixed-13","page":"Release notes","title":"Fixed","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fixed a bug in lp_sensitivity_report by switching to an explicit LU factorization of the basis matrix (#3182)\nFixed a bug that prevented [; kwarg] arguments in macros (#3220)","category":"page"},{"location":"release_notes/#Other-12","page":"Release notes","title":"Other","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Minor fixes to the documentation (#3200) (#3201) (#3203) (#3210)\nAdded tutorial Constraint programming (#3202)\nAdded more examples to Tips and Tricks\nRemove _distance_to_set in favor of MOI.Utilities.distance_to_set (#3209)\nImprove The diet problem tutorial by adding the variable as a column in the dataframe (#3213)\nImprove The knapsack problem example tutorial (#3216) (#3217)\nAdded the Ellipsoid approximation tutorial (#3218)","category":"page"},{"location":"release_notes/#[Version-1.7.0](https://github.com/jump-dev/JuMP.jl/releases/tag/v1.7.0)-(January-25,-2023)","page":"Release notes","title":"Version 1.7.0 (January 25, 2023)","text":"","category":"section"},{"location":"release_notes/#Added-9","page":"Release notes","title":"Added","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Added support for view of a Containers.DenseAxisArray (#3152) (#3180)\nAdded support for containers of variables in ComplexPlane (#3184)\nAdded support for minimum and maximum generators in nonlinear expressions (#3189)\nAdded SnoopPrecompile statements that reduce the time-to-first-solve in Julia 1.9 (#3193) (#3195) (#3196) (#3197)","category":"page"},{"location":"release_notes/#Other-13","page":"Release notes","title":"Other","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Large refactoring of the tests (#3166) (#3167) (#3168) (#3169) (#3170) (#3171)\nRemove unreachable code due to VERSION checks (#3172)\nDocument how to test JuMP extensions (#3174)\nFix method ambiguities in Containers (#3173)\nImprove error message that is thrown when = is used instead of == in the @constraint macro (#3178)\nImprove the error message when Bool is used instead of Bin in the @variable macro (#3180)\nUpdate versions of the documentation (#3185)\nTidy the import of packages and remove unnecessary prefixes (#3186) (#3187)\nRefactor src/JuMP.jl by moving methods into more relevant files (#3188)\nFix docstring of Model not appearing in the documentation (#3198)","category":"page"},{"location":"release_notes/#[Version-1.6.0](https://github.com/jump-dev/JuMP.jl/releases/tag/v1.6.0)-(January-1,-2023)","page":"Release notes","title":"Version 1.6.0 (January 1, 2023)","text":"","category":"section"},{"location":"release_notes/#Added-10","page":"Release notes","title":"Added","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Added a result keyword argument to solution_summary to allow summarizing models with multiple solutions (#3138)\nAdded relax_with_penalty!, which is a useful tool when debugging infeasible models (#3140)\nAdded has_start_value (#3157)\nAdded support for HermitianPSDCone in constraints (#3154)","category":"page"},{"location":"release_notes/#Fixed-14","page":"Release notes","title":"Fixed","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fixed promotion of complex expressions (#3150) (#3164)","category":"page"},{"location":"release_notes/#Other-14","page":"Release notes","title":"Other","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Added Benders tutorial with in-place resolves (#3145)\nAdded more Tips and tricks for linear programs (#3144) (#3163)\nClarified documentation that start can depend on the indices of a variable container (#3148)\nReplace instances of length and size by the recommended eachindex and axes (#3149)\nAdded a warning explaining why the model is dirty when accessing solution results from a modified model (#3156)\nClarify documentation that PSD ensures a symmetric matrix (#3159)\nMaintenance of the JuMP test suite (#3146) (#3158) (#3162)","category":"page"},{"location":"release_notes/#[Version-1.5.0](https://github.com/jump-dev/JuMP.jl/releases/tag/v1.5.0)-(December-8,-2022)","page":"Release notes","title":"Version 1.5.0 (December 8, 2022)","text":"","category":"section"},{"location":"release_notes/#Added-11","page":"Release notes","title":"Added","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Add support for complex-valued variables:\nHermitianPSDCone (#3109)\nComplexPlane and ComplexVariable (#3134)\nAdd support for MOI.OptimizerWithAttributes in set_optimizer_attribute and get_optimizer_attribute (#3129)","category":"page"},{"location":"release_notes/#Fixed-15","page":"Release notes","title":"Fixed","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fixed error message for vectorized interval constraints (#3123)\nFixed passing AbstractString to set_optimizer_attribute (#3127)","category":"page"},{"location":"release_notes/#Other-15","page":"Release notes","title":"Other","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Update package versions used in docs (#3119) (#3133) (#3139)\nFixed output of diet tutorial (#3120)\nExplain how to use Dates.period in set_time_limit_sec (#3121)\nUpdate to JuliaFormatter v1.0.15 (#3130)\nFixed HTTP server example in web_app.jl (#3131)\nUpdate docs to build with Documenter#master (#3094)\nAdd tests for LinearAlgebra operations (#3132)\nTidy these release notes (#3135)\nAdded documentation for Complex number support (#3141)\nRemoved the \"workforce scheduling\" and \"steelT3\" tutorials (#3143)","category":"page"},{"location":"release_notes/#[Version-1.4.0](https://github.com/jump-dev/JuMP.jl/releases/tag/v1.4.0)-(October-29,-2022)","page":"Release notes","title":"Version 1.4.0 (October 29, 2022)","text":"","category":"section"},{"location":"release_notes/#Added-12","page":"Release notes","title":"Added","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Added Containers.rowtable which converts a container into a vector of NamedTuples to support the Tables.jl interface. This simplifies converting Containers.DenseAxisArray and Containers.SparseAxisArray objects into tabular forms such as a DataFrame (#3104)\nAdded a new method to Containers.container so that index names are passed to the container (#3088)","category":"page"},{"location":"release_notes/#Fixed-16","page":"Release notes","title":"Fixed","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fixed a bug in copy_to(dest::Model, src::MOI.ModelLike) when src has nonlinear components (#3101)\nFixed the printing of (-1.0 + 0.0im) coefficients in complex expressions (#3112)\nFixed a parsing bug in nonlinear expressions with generator statements that contain multiple for statements (#3116)","category":"page"},{"location":"release_notes/#Other-16","page":"Release notes","title":"Other","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Converted the multi-commodity flow tutorial to use an SQLite database (#3098)\nFixed a number of typos in the documentation (#3103) (#3107) (#3018)\nImproved various style aspects of the PDF documentation (#3095) (#3098) (#3102)","category":"page"},{"location":"release_notes/#[Version-1.3.1](https://github.com/jump-dev/JuMP.jl/releases/tag/v1.3.1)-(September-28,-2022)","page":"Release notes","title":"Version 1.3.1 (September 28, 2022)","text":"","category":"section"},{"location":"release_notes/#Fixed-17","page":"Release notes","title":"Fixed","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fixed a performance issue in relax_integrality (#3087)\nFixed the type stability of operators with Complex arguments (#3072)\nFixed a bug which added additional +() terms to some nonlinear expressions (#3091)\nFixed potential method ambiguities with AffExpr and QuadExpr objects (#3092)","category":"page"},{"location":"release_notes/#Other-17","page":"Release notes","title":"Other","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Added vale as a linter for the documentation (#3080)\nAdded a tutorial on debugging JuMP models (#3043)\nFixed a number of typos in the documentation (#3079) (#3083)\nMany other small tweaks to the documentation (#3068) (#3073) (#3074) (#3075) (#3076) (#3077) (#3078) (#3081) (#3082) (#3084) (#3085) (#3089)","category":"page"},{"location":"release_notes/#[Version-1.3.0](https://github.com/jump-dev/JuMP.jl/releases/tag/v1.3.0)-(September-5,-2022)","page":"Release notes","title":"Version 1.3.0 (September 5, 2022)","text":"","category":"section"},{"location":"release_notes/#Added-13","page":"Release notes","title":"Added","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Support slicing in SparseAxisArray (#3031)","category":"page"},{"location":"release_notes/#Fixed-18","page":"Release notes","title":"Fixed","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fixed a bug introduced in v1.2.0 that prevented DenseAxisArrays with Vector keys (#3064)","category":"page"},{"location":"release_notes/#Other-18","page":"Release notes","title":"Other","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Released the JuMP logos under the CC BY 4.0 license (#3063)\nMinor tweaks to the documentation (#3054) (#3056) (#3057) (#3060) (#3061) (#3065)\nImproved code coverage of a number of files (#3048) (#3049) (#3050) (#3051) (#3052) (#3053) (#3058) (#3059)","category":"page"},{"location":"release_notes/#[Version-1.2.1](https://github.com/jump-dev/JuMP.jl/releases/tag/v1.2.1)-(August-22,-2022)","page":"Release notes","title":"Version 1.2.1 (August 22, 2022)","text":"","category":"section"},{"location":"release_notes/#Fixed-19","page":"Release notes","title":"Fixed","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fixed a bug when parsing two-sided nonlinear constraints (#3045)","category":"page"},{"location":"release_notes/#[Version-1.2.0](https://github.com/jump-dev/JuMP.jl/releases/tag/v1.2.0)-(August-16,-2022)","page":"Release notes","title":"Version 1.2.0 (August 16, 2022)","text":"","category":"section"},{"location":"release_notes/#Breaking-2","page":"Release notes","title":"Breaking","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"This is a large minor release because it significantly refactors the internal code for handling nonlinear programs to use the MathOptInterface.Nonlinear submodule that was introduced in MathOptInterface v1.3.0. As a consequence, the internal datastructure in model.nlp_data has been removed, as has the JuMP._Derivatives submodule. Despite the changes, the public API for nonlinear programming has not changed, and any code that uses only the public API and that worked with v1.1.1 will continue to work with v1.2.0.","category":"page"},{"location":"release_notes/#Added-14","page":"Release notes","title":"Added","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Added all_constraints(model; include_variable_in_set_constraints) which simplifies returning a list of all constraint indices in the model.\nAdded the ability to delete nonlinear constraints via delete(::Model, ::NonlinearConstraintRef).\nAdded the ability to provide an explicit Hessian for a multivariate user-defined function.\nAdded support for querying the primal value of a nonlinear constraint via value(::NonlinearConstraintRef)","category":"page"},{"location":"release_notes/#Fixed-20","page":"Release notes","title":"Fixed","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fixed a bug in Containers.DenseAxisArray so that it now supports indexing with keys that hash to the same value, even if they are different types, for example, Int32 and Int64.\nFixed a bug printing the model when the solver does not support MOI.Name.","category":"page"},{"location":"release_notes/#Other-19","page":"Release notes","title":"Other","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Added a constraint programming formulation to the Sudoku tutorial.\nAdded newly supported solvers Pajarito, Clarabel, and COPT to the installation table.\nFixed a variety of other miscellaneous issues in the documentation.","category":"page"},{"location":"release_notes/#[Version-1.1.1](https://github.com/jump-dev/JuMP.jl/releases/tag/v1.1.1)-(June-14,-2022)","page":"Release notes","title":"Version 1.1.1 (June 14, 2022)","text":"","category":"section"},{"location":"release_notes/#Other-20","page":"Release notes","title":"Other","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fixed problem displaying LaTeX in the documentation\nMinor updates to the style guide\nUpdated to MOI v1.4.0 in the documentation","category":"page"},{"location":"release_notes/#[Version-1.1.0](https://github.com/jump-dev/JuMP.jl/releases/tag/v1.1.0)-(May-25,-2022)","page":"Release notes","title":"Version 1.1.0 (May 25, 2022)","text":"","category":"section"},{"location":"release_notes/#Added-15","page":"Release notes","title":"Added","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Added num_constraints(::Model; count_variable_in_set_constraints) to simplify the process of counting the number of constraints in a model\nAdded VariableRef(::ConstraintRef) for querying the variable associated with a bound or integrality constraint.\nAdded set_normalized_coefficients for modifying the variable coefficients of a vector-valued constraint.\nAdded set_string_names_on_creation to disable creating String names for variables and constraints. This can improve performance.","category":"page"},{"location":"release_notes/#Fixed-21","page":"Release notes","title":"Fixed","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fixed a bug passing nothing to the start keyword of @variable","category":"page"},{"location":"release_notes/#Other-21","page":"Release notes","title":"Other","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"New tutorials:\nSensitivity analysis of a linear program\nServing web apps\nMinimal ellipse SDP tutorial refactored and improved\nDocs updated to the latest version of each package\nLots of minor fixes and improvements to the documentation","category":"page"},{"location":"release_notes/#[Version-1.0.0](https://github.com/jump-dev/JuMP.jl/releases/tag/v1.0.0)-(March-24,-2022)","page":"Release notes","title":"Version 1.0.0 (March 24, 2022)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Read more about this release, along with an acknowledgement of all the contributors in our JuMP 1.0.0 is released blog post.","category":"page"},{"location":"release_notes/#Breaking-3","page":"Release notes","title":"Breaking","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"The previously deprecated functions (v0.23.0, v0.23.1) have been removed. Deprecation was to improve consistency of function names:\nnum_nl_constraints (see num_nonlinear_constraints)\nall_nl_constraints (see all_nonlinear_constraints)\nadd_NL_expression (see add_nonlinear_expression)\nset_NL_objective (see set_nonlinear_objective)\nadd_NL_constraint (see add_nonlinear_constraint)\nnl_expr_string (see nonlinear_expr_string)\nnl_constraint_string (see nonlinear_constraint_string)\nSymMatrixSpace (see SymmetricMatrixSpace)\nThe unintentionally exported variable JuMP.op_hint has been renamed to the unexported JuMP._OP_HINT","category":"page"},{"location":"release_notes/#Fixed-22","page":"Release notes","title":"Fixed","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fixed a bug writing .nl files\nFixed a bug broadcasting SparseAxisArrays","category":"page"},{"location":"release_notes/#[Version-0.23.2](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.23.2)-(March-14,-2022)","page":"Release notes","title":"Version 0.23.2 (March 14, 2022)","text":"","category":"section"},{"location":"release_notes/#Added-16","page":"Release notes","title":"Added","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Added relative_gap to solution_summary\nregister now throws an informative error if the function is not differentiable using ForwardDiff. In some cases, the check in register will encounter a false negative, and the informative error will be thrown at run-time. This usually happens when the function is non-differentiable in a subset of the domain.","category":"page"},{"location":"release_notes/#Fixed-23","page":"Release notes","title":"Fixed","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fixed a scoping issue when extending the container keyword of containers","category":"page"},{"location":"release_notes/#Other-22","page":"Release notes","title":"Other","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Docs updated to the latest version of each package","category":"page"},{"location":"release_notes/#[Version-0.23.1](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.23.1)-(March-2,-2022)","page":"Release notes","title":"Version 0.23.1 (March 2, 2022)","text":"","category":"section"},{"location":"release_notes/#Deprecated","page":"Release notes","title":"Deprecated","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"nl_expr_string and nl_constraint_string have been renamed to nonlinear_expr_string and nonlinear_constraint_string. The old methods still exist with deprecation warnings. This change should impact very few users because to call them you must rely on private internals of the nonlinear API. Users are encouraged to use sprint(show, x) instead, where x is the nonlinear expression or constraint of interest.","category":"page"},{"location":"release_notes/#Added-17","page":"Release notes","title":"Added","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Added support for Base.abs2(x) where x is a variable or affine expression. This is mainly useful for complex-valued constraints.","category":"page"},{"location":"release_notes/#Fixed-24","page":"Release notes","title":"Fixed","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fixed addition of complex and real affine expressions\nFixed arithmetic for Complex-valued quadratic expressions\nFixed variable bounds passed as Rational{Int}(Inf)\nFixed printing of the coefficient (0 + 1im)\nFixed a bug when solution_summary is called prior to optimize!","category":"page"},{"location":"release_notes/#[Version-0.23.0](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.23.0)-(February-25,-2022)","page":"Release notes","title":"Version 0.23.0 (February 25, 2022)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"JuMP v0.23.0 is a breaking release. It is also a release-candidate for JuMP v1.0.0. That is, if no issues are found with the v0.23.0 release, then it will be re-tagged as v1.0.0.","category":"page"},{"location":"release_notes/#Breaking-4","page":"Release notes","title":"Breaking","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Julia 1.6 is now the minimum supported version\nMathOptInterface has been updated to v1.0.0\nAll previously deprecated functionality has been removed\nPrintMode, REPLMode and IJuliaMode have been removed in favor of the MIME types MIME\"text/plain\" and MIME\"text/latex\". Replace instances of ::Type{REPLMode} with ::MIME\"text/plain\", REPLMode with MIME(\"text/plain\"), ::Type{IJuliaMode} with ::MIME\"text/latex\", and IJuliaMode with MIME(\"text/latex\").\nFunctions containing the nl_ acronym have been renamed to the more explicit nonlinear_. For example, num_nl_constraints is now num_nonlinear_constraints and set_NL_objective is now set_nonlinear_objective. Calls to the old functions throw an error explaining the new name.\nSymMatrixSpace has been renamed to SymmetricMatrixSpace","category":"page"},{"location":"release_notes/#Added-18","page":"Release notes","title":"Added","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Added nonlinear_dual_start_value and set_nonlinear_dual_start_value\nAdded preliminary support for Complex coefficient types","category":"page"},{"location":"release_notes/#Fixed-25","page":"Release notes","title":"Fixed","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fixed a bug in solution_summary","category":"page"},{"location":"release_notes/#Other-23","page":"Release notes","title":"Other","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"MILP examples have been migrated from GLPK to HiGHS\nFixed various typos\nImproved section on setting constraint start values","category":"page"},{"location":"release_notes/#Troubleshooting-problems-when-updating","page":"Release notes","title":"Troubleshooting problems when updating","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"If you experience problems when updating, you are likely using previously deprecated functionality. (By default, Julia does not warn when you use deprecated features.)","category":"page"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"To find the deprecated features you are using, start Julia with --depwarn=yes:","category":"page"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"$ julia --depwarn=yes","category":"page"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Then install JuMP v0.22.3:","category":"page"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"julia> using Pkg\njulia> pkg\"add JuMP@0.22.3\"","category":"page"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"And then run your code. Apply any suggestions, or search the release notes below for advice on updating a specific deprecated feature.","category":"page"},{"location":"release_notes/#[Version-0.22.3](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.22.3)-(February-10,-2022)","page":"Release notes","title":"Version 0.22.3 (February 10, 2022)","text":"","category":"section"},{"location":"release_notes/#Fixed-26","page":"Release notes","title":"Fixed","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fixed a reproducibility issue in the TSP tutorial\nFixed a reproducibility issue in the max_cut_sdp tutorial\nFixed a bug broadcasting an empty SparseAxisArray","category":"page"},{"location":"release_notes/#Other-24","page":"Release notes","title":"Other","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Added a warning and improved documentation for the modify-then-query case\nFixed a typo in the docstring of RotatedSecondOrderCone\nAdded Aqua.jl as a check for code health\nAdded introductions to each section of the tutorials\nImproved the column generation and Benders decomposition tutorials\nUpdated documentation to MOI v0.10.8\nUpdated JuliaFormatter to v0.22.2","category":"page"},{"location":"release_notes/#[Version-0.22.2](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.22.2)-(January-10,-2022)","page":"Release notes","title":"Version 0.22.2 (January 10, 2022)","text":"","category":"section"},{"location":"release_notes/#Added-19","page":"Release notes","title":"Added","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"The function all_nl_constraints now returns all nonlinear constraints in a model\nstart_value and set_start_value can now be used to get and set the primal start for constraint references\nPlural macros now return a tuple containing the elements that were defined instead of nothing\nAnonymous variables are now printed as _[i] where i is the index of the variable instead of noname. Calling name(x) still returns \"\" so this is non-breaking.","category":"page"},{"location":"release_notes/#Fixed-27","page":"Release notes","title":"Fixed","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fixed handling of min and max in nonlinear expressions\nCartesianIndex is no longer allowed as a key for DenseAxisArrays.","category":"page"},{"location":"release_notes/#Other-25","page":"Release notes","title":"Other","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Improved the performance of GenericAffExpr\nAdded a tutorial on the Travelling Salesperson Problem\nAdded a tutorial on querying the Hessian of a nonlinear program\nAdded documentation on using custom solver binaries.","category":"page"},{"location":"release_notes/#[Version-0.22.1](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.22.1)-(November-29,-2021)","page":"Release notes","title":"Version 0.22.1 (November 29, 2021)","text":"","category":"section"},{"location":"release_notes/#Added-20","page":"Release notes","title":"Added","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Export OptimizationSense enum, with instances: MIN_SENSE, MAX_SENSE, and FEASIBILITY_SENSE\nAdd Base.isempty(::Model) to match Base.empty(::Model)","category":"page"},{"location":"release_notes/#Fixed-28","page":"Release notes","title":"Fixed","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fix bug in container with tuples as indices\nFix bug in set_time_limit_sec","category":"page"},{"location":"release_notes/#Other-26","page":"Release notes","title":"Other","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Add tutorial \"Design patterns for larger models\"\nRemove release notes section from PDF\nGeneral edits of the documentation and error messages","category":"page"},{"location":"release_notes/#[Version-0.22.0](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.22.0)-(November-10,-2021)","page":"Release notes","title":"Version 0.22.0 (November 10, 2021)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"JuMP v0.22 is a breaking release","category":"page"},{"location":"release_notes/#Breaking-5","page":"Release notes","title":"Breaking","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"JuMP 0.22 contains a number of breaking changes. However, these should be invisible for the majority of users. You will mostly encounter these breaking changes if you: wrote a JuMP extension, accessed backend(model), or called @SDconstraint.","category":"page"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"The breaking changes are as follows:","category":"page"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"MathOptInterface has been updated to v0.10.4. For users who have interacted with the MOI backend, this contains a large number of breaking changes. Read the MathOptInterface release notes for more details.\nThe bridge_constraints keyword argument to Model and set_optimizer has been renamed add_bridges to reflect that more thing were bridged than just constraints.\nThe backend(model) field now contains a concrete instance of a MOI.Utilities.CachingOptimizer instead of one with an abstractly typed optimizer field. In most cases, this will lead to improved performance. However, calling set_optimizer after backend invalidates the old backend. For example:\nmodel = Model()\nb = backend(model)\nset_optimizer(model, GLPK.Optimizer)\n@variable(model, x)\n# b is not updated with `x`! Get a new b by calling `backend` again.\nnew_b = backend(model)\nAll usages of @SDconstraint are deprecated. The new syntax is @constraint(model, X >= Y, PSDCone()).\nCreating a DenseAxisArray with a Number as an axis will now display a warning. This catches a common error in which users write @variable(model, x[length(S)]) instead of @variable(model, x[1:length(S)]).\nThe caching_mode argument to Model, for example, Model(caching_mode = MOIU.MANUAL) mode has been removed. For more control over the optimizer, use direct_model instead.\nThe previously deprecated lp_objective_perturbation_range and lp_rhs_perturbation_range functions have been removed. Use lp_sensitivity_report instead.\nThe .m fields of NonlinearExpression and NonlinearParameter have been renamed to .model.\nInfinite variable bounds are now ignored. Thus, @variable(model, x <= Inf) will show has_upper_bound(x) == false. Previously, these bounds were passed through to the solvers which caused numerical issues for solvers expecting finite bounds.\nThe variable_type and constraint_type functions were removed. This should only affect users who previously wrote JuMP extensions. The functions can be deleted without consequence.\nThe internal functions moi_mode, moi_bridge_constraints, moi_add_constraint, and moi_add_to_function_constant are no longer exported.\nThe un-used method Containers.generate_container has been deleted.\nThe Containers API has been refactored, and _build_ref_sets is now public as Containers.build_ref_sets.\nThe parse_constraint_ methods for extending @constraint at parse time have been refactored in a breaking way. Consult the Extensions documentation for more details and examples.","category":"page"},{"location":"release_notes/#Added-21","page":"Release notes","title":"Added","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"The TerminationStatusCode and ResultStatusCode enums are now exported by JuMP. Prefer termination_status(model) == OPTIMAL instead of == MOI.OPTIMAL, although the MOI. prefix way still works.\nCopy a x::DenseAxisArray to an Array by calling Array(x).\nNonlinearExpression is now a subtype of AbstractJuMPScalar\nConstraints such as @constraint(model, x + 1 in MOI.Integer()) are now supported.\nprimal_feasibility_report now accepts a function as the first argument.\nScalar variables @variable(model, x[1:2] in MOI.Integer()) creates two variables, both of which are constrained to be in the set MOI.Integer.\nConic constraints can now be specified as inequalities under a different partial ordering. So @constraint(model, x - y in MOI.Nonnegatives()) can now be written as @constraint(model, x >= y, MOI.Nonnegatives()).\nNames are now set for vectorized constraints.","category":"page"},{"location":"release_notes/#Fixed-29","page":"Release notes","title":"Fixed","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fixed a performance issue when show was called on a SparseAxisArray with a large number of elements.\nFixed a bug displaying barrier and simplex iterations in solution_summary.\nFixed a bug by implementing hash for DenseAxisArray and SparseAxisArray.\nNames are now only set if the solver supports them. Previously, this prevented solvers such as Ipopt from being used with direct_model.\nMutableArithmetics.Zero is converted into a 0.0 before being returned to the user. Previously, some calls to @expression would return the undocumented MutableArithmetics.Zero() object. One example is summing over an empty set @expression(model, sum(x[i] for i in 1:0)). You will now get 0.0 instead.\nAffExpr and QuadExpr can now be used with == 0 instead of iszero. This fixes a number of issues relating to Julia standard libraries such as LinearAlgebra and SparseArrays.\nFixed a bug when registering a user-defined function with splatting.","category":"page"},{"location":"release_notes/#Other-27","page":"Release notes","title":"Other","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"The documentation is now available as a PDF.\nThe documentation now includes a full copy of the MathOptInterface documentation to make it easy to link concepts between the docs. (The MathOptInterface documentation has also been significantly improved.)\nThe documentation contains a large number of improvements and clarifications on a range of topics. Thanks to @sshin23, @DilumAluthge, and @jlwether.\nThe documentation is now built with Julia 1.6 instead of 1.0.\nVarious error messages have been improved to be more readable.","category":"page"},{"location":"release_notes/#[Version-0.21.10](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.21.10)-(September-4,-2021)","page":"Release notes","title":"Version 0.21.10 (September 4, 2021)","text":"","category":"section"},{"location":"release_notes/#Added-22","page":"Release notes","title":"Added","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Added add_NL_expression\nadd_NL_xxx functions now support AffExpr and QuadExpr as terms","category":"page"},{"location":"release_notes/#Fixed-30","page":"Release notes","title":"Fixed","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fixed a bug in solution_summary\nFixed a bug in relax_integrality","category":"page"},{"location":"release_notes/#Other-28","page":"Release notes","title":"Other","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Improved error message in lp_sensitivity_report","category":"page"},{"location":"release_notes/#[Version-0.21.9](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.21.9)-(August-1,-2021)","page":"Release notes","title":"Version 0.21.9 (August 1, 2021)","text":"","category":"section"},{"location":"release_notes/#Added-23","page":"Release notes","title":"Added","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Containers now support arbitrary container types by passing the type to the container keyword and overloading Containers.container.\nis_valid now supports nonlinear constraints\nAdded unsafe_backend for querying the inner-most optimizer of a JuMP model.\nNonlinear parameters now support the plural @NLparameters macro.\nContainers (for example, DenseAxisArray) can now be used in vector-valued constraints.","category":"page"},{"location":"release_notes/#Other-29","page":"Release notes","title":"Other","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Various improvements to the documentation.","category":"page"},{"location":"release_notes/#[Version-0.21.8](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.21.8)-(May-8,-2021)","page":"Release notes","title":"Version 0.21.8 (May 8, 2021)","text":"","category":"section"},{"location":"release_notes/#Added-24","page":"Release notes","title":"Added","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"The @constraint macro is now extendable in the same way as @variable.\nAffExpr and QuadExpr can now be used in nonlinear macros.","category":"page"},{"location":"release_notes/#Fixed-31","page":"Release notes","title":"Fixed","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fixed a bug in lp_sensitivity_report.\nFixed an inference issue when creating empty SparseAxisArrays.","category":"page"},{"location":"release_notes/#[Version-0.21.7](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.21.7)-(April-12,-2021)","page":"Release notes","title":"Version 0.21.7 (April 12, 2021)","text":"","category":"section"},{"location":"release_notes/#Added-25","page":"Release notes","title":"Added","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Added primal_feasibility_report, which can be used to check whether a primal point satisfies primal feasibility.\nAdded coefficient, which returns the coefficient associated with a variable in affine and quadratic expressions.\nAdded copy_conflict, which returns the IIS of an infeasible model.\nAdded solution_summary, which returns (and prints) a struct containing a summary of the solution.\nAllow AbstractVector in vector constraints instead of just Vector.\nAdded latex_formulation(model) which returns an object representing the latex formulation of a model. Use print(latex_formulation(model)) to print the formulation as a string.\nUser-defined functions in nonlinear expressions are now automatically registered to aid quick model prototyping. However, a warning is printed to encourage the manual registration.\nDenseAxisArray's now support broadcasting over multiple arrays.\nContainer indices can now be iterators of Base.SizeUnknown.","category":"page"},{"location":"release_notes/#Fixed-32","page":"Release notes","title":"Fixed","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fixed bug in rad2deg and deg2rad in nonlinear expressions.\nFixed a MethodError bug in Containers when forcing container type.\nAllow partial slicing of a DenseAxisArray, resolving an issue from 2014.\nFixed a bug printing variable names in IJulia.\nEnding an IJulia cell with model now prints a summary of the model (like in the REPL) not the latex formulation. Use print(model) to print the latex formulation.\nFixed a bug when copying models containing nested arrays.","category":"page"},{"location":"release_notes/#Other-30","page":"Release notes","title":"Other","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Tutorials are now part of the documentation, and more refactoring has taken place.\nAdded JuliaFormatter added as a code formatter.\nAdded some precompilation statements to reduce initial latency.\nVarious improvements to error messages to make them more helpful.\nImproved performance of value(::NonlinearExpression).\nImproved performance of fix(::VariableRef).","category":"page"},{"location":"release_notes/#[Version-0.21.6](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.21.6)-(January-29,-2021)","page":"Release notes","title":"Version 0.21.6 (January 29, 2021)","text":"","category":"section"},{"location":"release_notes/#Added-26","page":"Release notes","title":"Added","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Added support for skew symmetric variables via @variable(model, X[1:2, 1:2] in SkewSymmetricMatrixSpace()).\nlp_sensitivity_report has been added which significantly improves the performance of querying the sensitivity summary of an LP. lp_objective_perturbation_range and lp_rhs_perturbation_range are deprecated.\nDual warm-starts are now supported with set_dual_start_value and dual_start_value.\n∈ (\\in) can now be used in macros instead of = or in.\nUse haskey(model::Model, key::Symbol) to check if a name key is registered in a model.\nAdded unregister(model::Model, key::Symbol) to unregister a name key from model.\nAdded callback_node_status for use in callbacks.\nAdded print_bridge_graph to visualize the bridging graph generated by MathOptInterface.\nImproved error message for containers with duplicate indices.","category":"page"},{"location":"release_notes/#Fixed-33","page":"Release notes","title":"Fixed","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Various fixes to pass tests on Julia 1.6.\nFixed a bug in the printing of nonlinear expressions in IJulia.\nFixed a bug when nonlinear expressions are passed to user-defined functions.\nSome internal functions that were previously exported are now no longer exported.\nFixed a bug when relaxing a fixed binary variable.\nFixed a StackOverflowError that occurred when SparseAxisArrays had a large number of elements.\nRemoved an unnecessary type assertion in list_of_constraint_types.\nFixed a bug when copying models with registered expressions.","category":"page"},{"location":"release_notes/#Other-31","page":"Release notes","title":"Other","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"The documentation has been significantly overhauled. It now has distinct sections for the manual, API reference, and examples. The existing examples in /examples have now been moved to /docs/src/examples and rewritten using Literate.jl, and they are now included in the documentation.\nJuliaFormatter has been applied to most of the codebase. This will continue to roll out over time, as we fix upstream issues in the formatter, and will eventually become compulsory.\nThe root cause of a large number of method invalidations has been resolved.\nWe switched continuous integration from Travis and Appveyor to GitHub Actions.","category":"page"},{"location":"release_notes/#[Version-0.21.5](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.21.5)-(September-18,-2020)","page":"Release notes","title":"Version 0.21.5 (September 18, 2020)","text":"","category":"section"},{"location":"release_notes/#Fixed-34","page":"Release notes","title":"Fixed","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fixed deprecation warnings\nThrow DimensionMismatch for incompatibly sized functions and sets\nUnify treatment of keys(x) on JuMP containers","category":"page"},{"location":"release_notes/#[Version-0.21.4](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.21.4)-(September-14,-2020)","page":"Release notes","title":"Version 0.21.4 (September 14, 2020)","text":"","category":"section"},{"location":"release_notes/#Added-27","page":"Release notes","title":"Added","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Add debug info when adding unsupported constraints\nAdd relax_integrality for solving continuous relaxation\nAllow querying constraint conflicts","category":"page"},{"location":"release_notes/#Fixed-35","page":"Release notes","title":"Fixed","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Dispatch on Real for MOI.submit\nImplement copy for CustomSet in tests\nDon't export private macros\nFix invalid assertion in nonlinear\nError if constraint has NaN right-hand side\nImprove speed of tests\nLots of work modularizing files in /test\nImprove line numbers in macro error messages\nPrint nonlinear subexpressions\nVarious documentation updates\nDependency updates:\nDatastructures 0.18\nMathOptFormat v0.5\nPrep for MathOptInterface 0.9.15","category":"page"},{"location":"release_notes/#[Version-0.21.3](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.21.3)-(June-18,-2020)","page":"Release notes","title":"Version 0.21.3 (June 18, 2020)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Added Special Order Sets (SOS1 and SOS2) to JuMP with default weights to ease the creation of such constraints (#2212).\nAdded functions simplex_iterations, barrier_iterations and node_count (#2201).\nAdded function reduced_cost (#2205).\nImplemented callback_value for affine and quadratic expressions (#2231).\nSupport MutableArithmetics.Zero in objective and constraints (#2219).\nDocumentation improvements:\nMention tutorials in the docs (#2223).\nUpdate COIN-OR links (#2242).\nExplicit link to the documentation of MOI.FileFormats (#2253).\nTypo fixes (#2261).\nContainers improvements:\nFix Base.map for DenseAxisArray (#2235).\nThrow BoundsError if number of indices is incorrect for DenseAxisArray and SparseAxisArray (#2240).\nExtensibility improvements:\nImplement a set_objective method fallback that redirects to set_objective_sense and set_objective_function (#2247).\nAdd parse_constraint method with arbitrary number of arguments (#2051).\nAdd parse_constraint_expr and parse_constraint_head (#2228).","category":"page"},{"location":"release_notes/#[Version-0.21.2](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.21.2)-(April-2,-2020)","page":"Release notes","title":"Version 0.21.2 (April 2, 2020)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Added relative_gap() to access MOI.RelativeGap() attribute (#2199).\nDocumentation fixes:\nAdded link to source for docstrings in the documentation (#2207).\nAdded docstring for @variables macro (#2216).\nTypo fixes (#2177, #2184, #2182).\nImplementation of methods for Base functions:\nImplemented Base.empty! for JuMP.Model (#2198).\nImplemented Base.conj for JuMP scalar types (#2209).","category":"page"},{"location":"release_notes/#Fixed-36","page":"Release notes","title":"Fixed","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fixed sum of expression with scalar product in macro (#2178).\nFixed writing of nonlinear models to MathOptFormat (#2181).\nFixed construction of empty SparseAxisArray (#2179).\nFixed constraint with zero function (#2188).","category":"page"},{"location":"release_notes/#[Version-0.21.1](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.21.1)-(Feb-18,-2020)","page":"Release notes","title":"Version 0.21.1 (Feb 18, 2020)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Improved the clarity of the with_optimizer deprecation warning.","category":"page"},{"location":"release_notes/#[Version-0.21.0](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.21.0)-(Feb-16,-2020)","page":"Release notes","title":"Version 0.21.0 (Feb 16, 2020)","text":"","category":"section"},{"location":"release_notes/#Breaking-6","page":"Release notes","title":"Breaking","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Deprecated with_optimizer (#2090, #2084, #2141). You can replace with_optimizer by either nothing, optimizer_with_attributes or a closure:\nreplace with_optimizer(Ipopt.Optimizer) by Ipopt.Optimizer.\nreplace with_optimizer(Ipopt.Optimizer, max_cpu_time=60.0) by optimizer_with_attributes(Ipopt.Optimizer, \"max_cpu_time\" => 60.0).\nreplace with_optimizer(Gurobi.Optimizer, env) by () -> Gurobi.Optimizer(env).\nreplace with_optimizer(Gurobi.Optimizer, env, Presolve=0) by optimizer_with_attributes(() -> Gurobi.Optimizer(env), \"Presolve\" => 0).\nalternatively to optimizer_with_attributes, you can also set the attributes separately with set_optimizer_attribute.\nRenamed set_parameter and set_parameters to set_optimizer_attribute and set_optimizer_attributes (#2150).\nBroadcast should now be explicit inside macros. @SDconstraint(model, x >= 1) and @constraint(model, x + 1 in SecondOrderCone()) now throw an error instead of broadcasting 1 along the dimension of x (#2107).\n@SDconstraint(model, x >= 0) is now equivalent to @constraint(model, x in PSDCone()) instead of @constraint(model, (x .- 0) in PSDCone()) (#2107).\nThe macros now create the containers with map instead of for loops, as a consequence, containers created by @expression can now have any element type and containers of constraint references now have concrete element types when possible. This fixes a long-standing issue where @expression could only be used to generate a collection of linear expressions. Now it works for quadratic expressions as well (#2070).\nCalling deepcopy(::AbstractModel) now throws an error.\nThe constraint name is now printed in the model string (#2108).","category":"page"},{"location":"release_notes/#Added-28","page":"Release notes","title":"Added","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Added support for solver-independent and solver-specific callbacks (#2101).\nAdded write_to_file and read_from_file, supported formats are CBF, LP, MathOptFormat, MPS and SDPA (#2114).\nAdded support for complementarity constraints (#2132).\nAdded support for indicator constraints (#2092).\nAdded support for querying multiple solutions with the result keyword (#2100).\nAdded support for constraining variables on creation (#2128).\nAdded method delete that deletes a vector of variables at once if it is supported by the underlying solver (#2135).\nThe arithmetic between JuMP expression has be refactored into the MutableArithmetics package (#2107).\nImproved error on complex values in NLP (#1978).\nAdded an example of column generation (#2010).","category":"page"},{"location":"release_notes/#Fixed-37","page":"Release notes","title":"Fixed","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Incorrect coefficients generated when using Symmetric variables (#2102)","category":"page"},{"location":"release_notes/#[Version-0.20.1](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.20.1)-(Oct-18,-2019)","page":"Release notes","title":"Version 0.20.1 (Oct 18, 2019)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Add sections on @variables and @constraints in the documentation (#2062).\nFixed product of sparse matrices for Julia v1.3 (#2063).\nAdded set_objective_coefficient to modify the coefficient of a linear term of the objective function (#2008).\nAdded set_time_limit_sec, unset_time_limit_sec and time_limit_sec to set and query the time limit for the solver in seconds (#2053).","category":"page"},{"location":"release_notes/#[Version-0.20.0](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.20.0)-(Aug-24,-2019)","page":"Release notes","title":"Version 0.20.0 (Aug 24, 2019)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Documentation updates.\nNumerous bug fixes.\nBetter error messages (#1977, #1978, #1997, #2017).\nPerformance improvements (#1947, #2032).\nAdded LP sensitivity summary functions lp_objective_perturbation_range and lp_rhs_perturbation_range (#1917).\nAdded functions dual_objective_value, raw_status and set_parameter.\nAdded function set_objective_coefficient to modify the coefficient of a linear term of the objective (#2008).\nAdded functions set_normalized_rhs, normalized_rhs, and add_to_function_constant to modify and get the constant part of a constraint (#1935, #1960).\nAdded functions set_normalized_coefficient and normalized_coefficient to modify and get the coefficient of a linear term of a constraint (#1935, #1960).\nNumerous other improvements in MOI 0.9, see the NEWS.md file of MOI for more details.","category":"page"},{"location":"release_notes/#[Version-0.19.2](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.19.2)-(June-8,-2019)","page":"Release notes","title":"Version 0.19.2 (June 8, 2019)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fix a bug in derivatives that could arise in models with nested nonlinear subexpressions.","category":"page"},{"location":"release_notes/#[Version-0.19.1](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.19.1)-(May-12,-2019)","page":"Release notes","title":"Version 0.19.1 (May 12, 2019)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Usability and performance improvements.\nBug fixes.","category":"page"},{"location":"release_notes/#[Version-0.19.0](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.19.0)-(February-15,-2019)","page":"Release notes","title":"Version 0.19.0 (February 15, 2019)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"JuMP 0.19 contains significant breaking changes.","category":"page"},{"location":"release_notes/#Breaking-7","page":"Release notes","title":"Breaking","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"JuMP's abstraction layer for communicating with solvers changed from MathProgBase (MPB) to MathOptInterface (MOI). MOI addresses many longstanding design issues. (See @mlubin's slides from JuMP-dev 2018.) JuMP 0.19 is compatible only with solvers that have been updated for MOI. See the installation guide for a list of solvers that have and have not yet been updated.\nMost solvers have been renamed to PackageName.Optimizer. For example, GurobiSolver() is now Gurobi.Optimizer.\nSolvers are no longer added to a model via Model(solver = XXX(kwargs...)). Instead use Model(with_optimizer(XXX, kwargs...)). For example, Model(with_optimizer(Gurobi.Optimizer, OutputFlag=0)).\nJuMP containers (for example, the objects returned by @variable) have been redesigned. Containers.SparseAxisArray replaces JuMPDict, JuMPArray was rewritten (inspired by AxisArrays) and renamed Containers.DenseAxisArray, and you can now request a container type with the container= keyword to the macros. See the corresponding documentation for more details.\nThe statuses returned by solvers have changed. See the possible status values here. The MOI statuses are much richer than the MPB statuses and can be used to distinguish between previously indistinguishable cases (for example, did the solver have a feasible solution when it stopped because of the time limit?).\nStarting values are separate from result values. Use value to query the value of a variable in a solution. Use start_value and set_start_value to get and set an initial starting point provided to the solver. The solutions from previous solves are no longer automatically set as the starting points for the next solve.\nThe data structures for affine and quadratic expressions AffExpr and QuadExpr have changed. Internally, terms are stored in dictionaries instead of lists. Duplicate coefficients can no longer exist. Accessors and iteration methods have changed.\nJuMPNLPEvaluator no longer includes the linear and quadratic parts of the model in the evaluation calls. These are now handled separately to allow NLP solvers that support various types of constraints.\nJuMP solver-independent callbacks have been replaced by solver-specific callbacks. See your favorite solver for more details. (See the note below: No solver-specific callbacks are implemented yet.)\nThe norm() syntax is no longer recognized inside macros. Use the SecondOrderCone() set instead.\nJuMP no longer performs automatic transformation between special quadratic forms and second-order cone constraints. Support for these constraint classes depends on the solver.\nThe symbols :Min and :Max are no longer used as optimization senses. Instead, JuMP uses the OptimizationSense enum from MathOptInterface. @objective(model, Max, ...), @objective(model, Min, ...), @NLobjective(model, Max, ...), and @objective(model, Min, ...) remain valid, but @objective(m, :Max, ...) is no longer accepted.\nThe sign conventions for duals has changed in some cases for consistency with conic duality (see the documentation). The shadow_price helper method returns duals with signs that match conventional LP interpretations of dual values as sensitivities of the objective value to relaxations of constraints.\n@constraintref is no longer defined. Instead, create the appropriate container to hold constraint references manually. For example,\nconstraints = Dict() # Optionally, specify types for improved performance.\nfor i in 1:N\n constraints[i] = @constraint(model, ...)\nend\nThe lowerbound, upperbound, and basename keyword arguments to the @variable macro have been renamed to lower_bound, upper_bound, and base_name, for consistency with JuMP's new style recommendations.\nWe rely on broadcasting syntax to apply accessors to collections of variables, for example, value.(x) instead of getvalue(x) for collections. (Use value(x) when x is a scalar object.)","category":"page"},{"location":"release_notes/#Added-29","page":"Release notes","title":"Added","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Splatting (like f(x...)) is recognized in restricted settings in nonlinear expressions.\nSupport for deleting constraints and variables.\nThe documentation has been completely rewritten using docstrings and Documenter.\nSupport for modeling mixed conic and quadratic models (for example, conic models with quadratic objectives and bi-linear matrix inequalities).\nSignificantly improved support for modeling new types of constraints and for extending JuMP's macros.\nSupport for providing dual warm starts.\nImproved support for accessing solver-specific attributes (for example, the irreducible inconsistent subsystem).\nExplicit control of whether symmetry-enforcing constraints are added to PSD constraints.\nSupport for modeling exponential cones.\nSignificant improvements in internal code quality and testing.\nStyle and naming guidelines.\nDirect mode and manual mode provide explicit control over when copies of a model are stored or regenerated. See the corresponding documentation.","category":"page"},{"location":"release_notes/#Regressions","page":"Release notes","title":"Regressions","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"There are known regressions from JuMP 0.18 that will be addressed in a future release (0.19.x or later):","category":"page"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Performance regressions in model generation (issue). Please file an issue anyway if you notice a significant performance regression. We have plans to address a number of performance issues, but we might not be aware of all of them.\nFast incremental NLP solves are not yet reimplemented (issue).\nWe do not yet have an implementation of solver-specific callbacks.\nThe column generation syntax in @variable has been removed (that is, the objective, coefficients, and inconstraints keyword arguments). Support for column generation will be re-introduced in a future release.\nThe ability to solve the continuous relaxation (that is, via solve(model; relaxation = true)) is not yet reimplemented (issue).","category":"page"},{"location":"release_notes/#[Version-0.18.5](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.18.5)-(December-1,-2018)","page":"Release notes","title":"Version 0.18.5 (December 1, 2018)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Support views in some derivative evaluation functions.\nImproved compatibility with PackageCompiler.","category":"page"},{"location":"release_notes/#[Version-0.18.4](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.18.4)-(October-8,-2018)","page":"Release notes","title":"Version 0.18.4 (October 8, 2018)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fix a bug in model printing on Julia 0.7 and 1.0.","category":"page"},{"location":"release_notes/#[Version-0.18.3](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.18.3)-(October-1,-2018)","page":"Release notes","title":"Version 0.18.3 (October 1, 2018)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Add support for Julia v1.0 (Thanks @ExpandingMan)\nFix matrix expressions with quadratic functions (#1508)","category":"page"},{"location":"release_notes/#[Version-0.18.2](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.18.2)-(June-10,-2018)","page":"Release notes","title":"Version 0.18.2 (June 10, 2018)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fix a bug in second-order derivatives when expressions are present (#1319)\nFix a bug in @constraintref (#1330)","category":"page"},{"location":"release_notes/#[Version-0.18.1](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.18.1)-(April-9,-2018)","page":"Release notes","title":"Version 0.18.1 (April 9, 2018)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fix for nested tuple destructuring (#1193)\nPreserve internal model when relaxation=true (#1209)\nMinor bug fixes and updates for example","category":"page"},{"location":"release_notes/#[Version-0.18.0](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.18.0)-(July-27,-2017)","page":"Release notes","title":"Version 0.18.0 (July 27, 2017)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Drop support for Julia 0.5.\nUpdate for ForwardDiff 0.5.\nMinor bug fixes.","category":"page"},{"location":"release_notes/#[Version-0.17.1](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.17.1)-(June-9,-2017)","page":"Release notes","title":"Version 0.17.1 (June 9, 2017)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Use of constructconstraint! in @SDconstraint.\nMinor bug fixes.","category":"page"},{"location":"release_notes/#[Version-0.17.0](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.17.0)-(May-27,-2017)","page":"Release notes","title":"Version 0.17.0 (May 27, 2017)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Breaking change: Mixing quadratic and conic constraints is no longer supported.\nBreaking change: The getvariable and getconstraint functions are replaced by indexing on the corresponding symbol. For instance, to access the variable with name x, one should now write m[:x] instead of getvariable(m, :x). As a consequence, creating a variable and constraint with the same name now triggers a warning, and accessing one of them afterwards throws an error. This change is breaking only in the latter case.\nAddition of the getobjectivebound function that mirrors the functionality of the MathProgBase getobjbound function except that it takes into account transformations performed by JuMP.\nMinor bug fixes.","category":"page"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"The following changes are primarily of interest to developers of JuMP extensions:","category":"page"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"The new syntax @constraint(model, expr in Cone) creates the constraint ensuring that expr is inside Cone. The Cone argument is passed to constructconstraint! which enables the call to the dispatched to an extension.\nThe @variable macro now calls constructvariable! instead of directly calling the Variable constructor. Extra arguments and keyword arguments passed to @variable are passed to constructvariable! which enables the call to be dispatched to an extension.\nRefactor the internal function conicdata (used build the MathProgBase conic model) into smaller sub-functions to make these parts reusable by extensions.","category":"page"},{"location":"release_notes/#[Version-0.16.2](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.16.2)-(March-28,-2017)","page":"Release notes","title":"Version 0.16.2 (March 28, 2017)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Minor bug fixes and printing tweaks\nAddress deprecation warnings for Julia 0.6","category":"page"},{"location":"release_notes/#[Version-0.16.1](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.16.1)-(March-7,-2017)","page":"Release notes","title":"Version 0.16.1 (March 7, 2017)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Better support for AbstractArray in JuMP (Thanks @tkoolen)\nMinor bug fixes","category":"page"},{"location":"release_notes/#[Version-0.16.0](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.16.0)-(February-23,-2017)","page":"Release notes","title":"Version 0.16.0 (February 23, 2017)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Breaking change: JuMP no longer has a mechanism for selecting solvers by default (the previous mechanism was flawed and incompatible with Julia 0.6). Not specifying a solver before calling solve() will result in an error.\nBreaking change: User-defined functions are no longer global. The first argument to JuMP.register is now a JuMP Model object within whose scope the function will be registered. Calling JuMP.register without a Model now produces an error.\nBreaking change: Use the new JuMP.fix method to fix a variable to a value or to update the value to which a variable is fixed. Calling setvalue on a fixed variable now results in an error in order to avoid silent behavior changes. (Thanks @joaquimg)\nNonlinear expressions now print out similarly to linear/quadratic expressions (useful for debugging!)\nNew category keyword to @variable. Used for specifying categories of anonymous variables.\nCompatibility with Julia 0.6-dev.\nMinor fixes and improvements (Thanks @cossio, @ccoffrin, @blegat)","category":"page"},{"location":"release_notes/#[Version-0.15.1](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.15.1)-(January-31,-2017)","page":"Release notes","title":"Version 0.15.1 (January 31, 2017)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Bugfix for @LinearConstraints and friends","category":"page"},{"location":"release_notes/#[Version-0.15.0](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.15.0)-(December-22,-2016)","page":"Release notes","title":"Version 0.15.0 (December 22, 2016)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Julia 0.5.0 is the minimum required version for this release.\nDocument support for BARON solver\nEnable info callbacks in more states than before, for example, for recording solutions. New when argument to addinfocallback (#814, thanks @yeesian)\nImproved support for anonymous variables. This includes new warnings for potentially confusing use of the traditional non-anonymous syntax:\nWhen multiple variables in a model are given the same name\nWhen non-symbols are used as names, for example, @variable(m, x[1][1:N])\nImprovements in iterating over JuMP containers (#836, thanks @IssamT)\nSupport for writing variable names in .lp file output (Thanks @leethargo)\nSupport for querying duals to SDP problems (Thanks @blegat)\nThe comprehension syntax with curly braces sum{}, prod{}, and norm2{} has been deprecated in favor of Julia's native comprehension syntax sum(), prod() and norm() as previously announced. (For early adopters of the new syntax, norm2() was renamed to norm() without deprecation.)\nUnit tests rewritten to use Base.Test instead of FactCheck\nImproved support for operations with matrices of JuMP types (Thanks @ExpandingMan)\nThe syntax to halt a solver from inside a callback has changed from throw(CallbackAbort()) to return JuMP.StopTheSolver\nMinor bug fixes","category":"page"},{"location":"release_notes/#[Version-0.14.2](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.14.2)-(December-12,-2016)","page":"Release notes","title":"Version 0.14.2 (December 12, 2016)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Allow singleton anonymous variables (includes bugfix)","category":"page"},{"location":"release_notes/#[Version-0.14.1](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.14.1)-(September-12,-2016)","page":"Release notes","title":"Version 0.14.1 (September 12, 2016)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"More consistent handling of states in informational callbacks, includes a new when parameter to addinfocallback for specifying in which state an informational callback should be called.","category":"page"},{"location":"release_notes/#[Version-0.14.0](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.14.0)-(August-7,-2016)","page":"Release notes","title":"Version 0.14.0 (August 7, 2016)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Compatibility with Julia 0.5 and ForwardDiff 0.2\nSupport for \"anonymous\" variables, constraints, expressions, and parameters, for example, x = @variable(m, [1:N]) instead of @variable(m, x[1:N])\nSupport for retrieving constraints from a model by name via getconstraint\n@NLconstraint now returns constraint references (as expected).\nSupport for vectorized expressions within lazy constraints\nOn Julia 0.5, parse new comprehension syntax sum(x[i] for i in 1:N if isodd(i)) instead of sum{ x[i], i in 1:N; isodd(i) }. The old syntax with curly braces will be deprecated in JuMP 0.15.\nNow possible to provide nonlinear expressions as \"raw\" Julia Expr objects instead of using JuMP's nonlinear macros. This input format is useful for programmatically generated expressions.\ns/Mathematical Programming/Mathematical Optimization/\nSupport for local cuts (Thanks to @madanim, Mehdi Madani)\nDocument Xpress interface developed by @joaquimg, Joaquim Dias Garcia\nMinor bug and deprecation fixes (Thanks @odow, @jrevels)","category":"page"},{"location":"release_notes/#[Version-0.13.2](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.13.2)-(May-16,-2016)","page":"Release notes","title":"Version 0.13.2 (May 16, 2016)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Compatibility update for MathProgBase","category":"page"},{"location":"release_notes/#[Version-0.13.1](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.13.1)-(May-3,-2016)","page":"Release notes","title":"Version 0.13.1 (May 3, 2016)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fix broken deprecation for registerNLfunction.","category":"page"},{"location":"release_notes/#[Version-0.13.0](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.13.0)-(April-29,-2016)","page":"Release notes","title":"Version 0.13.0 (April 29, 2016)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Most exported methods and macros have been renamed to avoid camelCase. See the list of changes here. There is a 1-1 mapping from the old names to the new, and it is safe to simply replace the names to update existing models.\nSpecify variable lower/upper bounds in @variable using the lowerbound and upperbound keyword arguments.\nChange name printed for variable using the basename keyword argument to @variable.\nNew @variables macro allows multi-line declaration of groups of variables.\nA number of solver methods previously available only through MathProgBase are now exposed directly in JuMP. The fix was recorded live.\nCompatibility fixes with Julia 0.5.\nThe \"end\" indexing syntax is no longer supported within JuMPArrays which do not use 1-based indexing until upstream issues are resolved, see here.","category":"page"},{"location":"release_notes/#[Version-0.12.2](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.12.2)-(March-9,-2016)","page":"Release notes","title":"Version 0.12.2 (March 9, 2016)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Small fixes for nonlinear optimization","category":"page"},{"location":"release_notes/#[Version-0.12.1](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.12.1)-(March-1,-2016)","page":"Release notes","title":"Version 0.12.1 (March 1, 2016)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fix a regression in slicing for JuMPArrays (when not using 1-based indexing)","category":"page"},{"location":"release_notes/#[Version-0.12.0](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.12.0)-(February-27,-2016)","page":"Release notes","title":"Version 0.12.0 (February 27, 2016)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"The automatic differentiation functionality has been completely rewritten with a number of user-facing changes:\n@defExpr and @defNLExpr now take the model as the first argument. The previous one-argument version of @defExpr is deprecated; all expressions should be named. For example, replace @defExpr(2x+y) with @defExpr(jump_model, my_expr, 2x+y).\nJuMP no longer uses Julia's variable binding rules for efficiently re-solving a sequence of nonlinear models. Instead, we have introduced nonlinear parameters. This is a breaking change, so we have added a warning message when we detect models that may depend on the old behavior.\nSupport for user-defined functions integrated within nonlinear JuMP expressions.\nReplaced iteration over AffExpr with Number-like scalar iteration; previous iteration behavior is now available via linearterms(::AffExpr).\nStopping the solver via throw(CallbackAbort()) from a callback no longer triggers an exception. Instead, solve() returns UserLimit status.\ngetDual() now works for conic problems (Thanks @emreyamangil.)","category":"page"},{"location":"release_notes/#[Version-0.11.3](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.11.3)-(February-4,-2016)","page":"Release notes","title":"Version 0.11.3 (February 4, 2016)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Bug-fix for problems with quadratic objectives and semidefinite constraints","category":"page"},{"location":"release_notes/#[Version-0.11.2](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.11.2)-(January-14,-2016)","page":"Release notes","title":"Version 0.11.2 (January 14, 2016)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Compatibility update for Mosek","category":"page"},{"location":"release_notes/#[Version-0.11.1](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.11.1)-(December-1,-2015)","page":"Release notes","title":"Version 0.11.1 (December 1, 2015)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Remove usage of @compat in tests.\nFix updating quadratic objectives for nonlinear models.","category":"page"},{"location":"release_notes/#[Version-0.11.0](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.11.0)-(November-30,-2015)","page":"Release notes","title":"Version 0.11.0 (November 30, 2015)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Julia 0.4.0 is the minimum required version for this release.\nFix for scoping semantics of index variables in sum{}. Index variables no longer leak into the surrounding scope.\nAddition of the solve(m::Model, relaxation=true) keyword argument to solve the standard continuous relaxation of model m\nThe getConstraintBounds() method allows access to the lower and upper bounds of all constraints in a (nonlinear) model.\nUpdate for breaking changes in MathProgBase","category":"page"},{"location":"release_notes/#[Version-0.10.3](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.10.3)-(November-20,-2015)","page":"Release notes","title":"Version 0.10.3 (November 20, 2015)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fix a rare error when parsing quadratic expressions\nFix Variable() constructor with default arguments\nDetect unrecognized keywords in solve()","category":"page"},{"location":"release_notes/#[Version-0.10.2](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.10.2)-(September-28,-2015)","page":"Release notes","title":"Version 0.10.2 (September 28, 2015)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fix for deprecation warnings","category":"page"},{"location":"release_notes/#[Version-0.10.1](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.10.1)-(September-3,-2015)","page":"Release notes","title":"Version 0.10.1 (September 3, 2015)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fixes for ambiguity warnings.\nFix for breaking change in precompilation syntax in Julia 0.4-pre","category":"page"},{"location":"release_notes/#[Version-0.10.0](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.10.0)-(August-31,-2015)","page":"Release notes","title":"Version 0.10.0 (August 31, 2015)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Support (on Julia 0.4 and later) for conditions in indexing @defVar and @addConstraint constructs, for example, @defVar(m, x[i=1:5,j=1:5; i+j >= 3])\nSupport for vectorized operations on Variables and expressions. See the documentation for details.\nNew getVar() method to access variables in a model by name\nSupport for semidefinite programming.\nDual solutions are now available for general nonlinear problems. You may call getDual on a reference object for a nonlinear constraint, and getDual on a variable object for Lagrange multipliers from active bounds.\nIntroduce warnings for two common performance traps: too many calls to getValue() on a collection of variables and use of the + operator in a loop to sum expressions.\nSecond-order cone constraints can be written directly with the norm() and norm2{} syntax.\nImplement MathProgBase interface for querying Hessian-vector products.\nIteration over JuMPContainers is deprecated; instead, use the keys and values functions, and zip(keys(d),values(d)) for the old behavior.\n@defVar returns Array{Variable,N} when each of N index sets are of the form 1:nᵢ.\nModule precompilation: on Julia 0.4 and later, using JuMP is now much faster.","category":"page"},{"location":"release_notes/#[Version-0.9.3](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.9.3)-(August-11,-2015)","page":"Release notes","title":"Version 0.9.3 (August 11, 2015)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fixes for FactCheck testing on julia v0.4.","category":"page"},{"location":"release_notes/#[Version-0.9.2](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.9.2)-(June-27,-2015)","page":"Release notes","title":"Version 0.9.2 (June 27, 2015)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fix bug in @addConstraints.","category":"page"},{"location":"release_notes/#[Version-0.9.1](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.9.1)-(April-25,-2015)","page":"Release notes","title":"Version 0.9.1 (April 25, 2015)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fix for Julia 0.4-dev.\nSmall infrastructure improvements for extensions.","category":"page"},{"location":"release_notes/#[Version-0.9.0](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.9.0)-(April-18,-2015)","page":"Release notes","title":"Version 0.9.0 (April 18, 2015)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Comparison operators for constructing constraints (for example, 2x >= 1) have been deprecated. Instead, construct the constraints explicitly in the @addConstraint macro to add them to the model, or in the @LinearConstraint macro to create a stand-alone linear constraint instance.\ngetValue() method implemented to compute the value of a nonlinear subexpression\nJuMP is now released under the Mozilla Public License version 2.0 (was previously LGPL). MPL is a copyleft license which is less restrictive than LGPL, especially for embedding JuMP within other applications.\nA number of performance improvements in ReverseDiffSparse for computing derivatives.\nMathProgBase.getsolvetime(m) now returns the solution time reported by the solver, if available. (Thanks @odow, Oscar Dowson)\nFormatting fix for LP format output. (Thanks @sbebo, Leonardo Taccari).","category":"page"},{"location":"release_notes/#[Version-0.8.0](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.8.0)-(February-17,-2015)","page":"Release notes","title":"Version 0.8.0 (February 17, 2015)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Nonlinear subexpressions now supported with the @defNLExpr macro.\nSCS supported for solving second-order conic problems.\nsetXXXCallback family deprecated in favor of addXXXCallback.\nMultiple callbacks of the same type can be registered.\nAdded support for informational callbacks via addInfoCallback.\nA CallbackAbort exception can be thrown from callback to safely exit optimization.","category":"page"},{"location":"release_notes/#[Version-0.7.4](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.7.4)-(February-4,-2015)","page":"Release notes","title":"Version 0.7.4 (February 4, 2015)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Reduced costs and linear constraint duals are now accessible when quadratic constraints are present.\nTwo-sided nonlinear constraints are supported.\nMethods for accessing the number of variables and constraints in a model are renamed.\nNew default procedure for setting initial values in nonlinear optimization: project zero onto the variable bounds.\nSmall bug fixes.","category":"page"},{"location":"release_notes/#[Version-0.7.3](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.7.3)-(January-14,-2015)","page":"Release notes","title":"Version 0.7.3 (January 14, 2015)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fix a method ambiguity conflict with Compose.jl (cosmetic fix)","category":"page"},{"location":"release_notes/#[Version-0.7.2](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.7.2)-(January-9,-2015)","page":"Release notes","title":"Version 0.7.2 (January 9, 2015)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fix a bug in sum(::JuMPDict)\nAdded the setCategory function to change a variables category (for example, continuous or binary)","category":"page"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"after construction, and getCategory to retrieve the variable category.","category":"page"},{"location":"release_notes/#[Version-0.7.1](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.7.1)-(January-2,-2015)","page":"Release notes","title":"Version 0.7.1 (January 2, 2015)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fix a bug in parsing linear expressions in macros. Affects only Julia 0.4 and later.","category":"page"},{"location":"release_notes/#[Version-0.7.0](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.7.0)-(December-29,-2014)","page":"Release notes","title":"Version 0.7.0 (December 29, 2014)","text":"","category":"section"},{"location":"release_notes/#Linear/quadratic/conic-programming","page":"Release notes","title":"Linear/quadratic/conic programming","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Breaking change: The syntax for column-wise model generation has been changed to use keyword arguments in @defVar.\nOn Julia 0.4 and later, variables and coefficients may be multiplied in any order within macros. That is, variable*coefficient is now valid syntax.\nECOS supported for solving second-order conic problems.","category":"page"},{"location":"release_notes/#_nonlinear_programming_release_notes","page":"Release notes","title":"Nonlinear programming","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Support for skipping model generation when solving a sequence of nonlinear models with changing data.\nFix a memory leak when solving a sequence of nonlinear models.\nThe @addNLConstraint macro now supports the three-argument version to define sets of nonlinear constraints.\nKNITRO supported as a nonlinear solver.\nSpeed improvements for model generation.\nThe @addNLConstraints macro supports adding multiple (groups of) constraints at once. Syntax is similar to @addConstraints.\nDiscrete variables allowed in nonlinear problems for solvers which support them (currently only KNITRO).","category":"page"},{"location":"release_notes/#General","page":"Release notes","title":"General","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Starting values for variables may now be specified with @defVar(m, x, start=value).\nThe setSolver function allows users to change the solver subsequent to model creation.\nSupport for \"fixed\" variables via the @defVar(m, x == 1) syntax.\nUnit tests rewritten to use FactCheck.jl, improved testing across solvers.","category":"page"},{"location":"release_notes/#[Version-0.6.3](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.6.3)-(October-19,-2014)","page":"Release notes","title":"Version 0.6.3 (October 19, 2014)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fix a bug in multiplying two AffExpr objects.","category":"page"},{"location":"release_notes/#[Version-0.6.2](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.6.2)-(October-11,-2014)","page":"Release notes","title":"Version 0.6.2 (October 11, 2014)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Further improvements and bug fixes for printing.\nFixed a bug in @defExpr.\nSupport for accessing expression graphs through the MathProgBase NLP interface.","category":"page"},{"location":"release_notes/#[Version-0.6.1](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.6.1)-(September-19,-2014)","page":"Release notes","title":"Version 0.6.1 (September 19, 2014)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Improvements and bug fixes for printing.","category":"page"},{"location":"release_notes/#[Version-0.6.0](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.6.0)-(September-9,-2014)","page":"Release notes","title":"Version 0.6.0 (September 9, 2014)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Julia 0.3.0 is the minimum required version for this release.\nbuildInternalModel(m::Model) added to build solver-level model in memory without optimizing.\nDeprecate load_model_only keyword argument to solve.\nAdd groups of constraints with @addConstraints macro.\nUnicode operators now supported, including ∑ for sum, ∏ for prod, and ≤/≥\nQuadratic constraints supported in @addConstraint macro.\nQuadratic objectives supported in @setObjective macro.\nMathProgBase solver-independent interface replaces Ipopt-specific interface for nonlinear problems\nBreaking change: IpoptOptions no longer supported to specify solver options, use m = Model(solver=IpoptSolver(options...)) instead.\nNew solver interfaces: ECOS, NLopt, and nonlinear support for MOSEK\nNew option to control whether the lazy constraint callback is executed at each node in the B&B tree or just when feasible solutions are found\nAdd support for semicontinuous and semi-integer variables for those solvers that support them.\nAdd support for index dependencies (for example, triangular indexing) in @defVar, @addConstraint, and @defExpr (for example, @defVar(m, x[i=1:10,j=i:10])).\nThis required some changes to the internal structure of JuMP containers, which may break code that explicitly stored JuMPDict objects.","category":"page"},{"location":"release_notes/#[Version-0.5.8](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.5.8)-(September-24,-2014)","page":"Release notes","title":"Version 0.5.8 (September 24, 2014)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fix a bug with specifying solvers (affects Julia 0.2 only)","category":"page"},{"location":"release_notes/#[Version-0.5.7](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.5.7)-(September-5,-2014)","page":"Release notes","title":"Version 0.5.7 (September 5, 2014)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fix a bug in printing models","category":"page"},{"location":"release_notes/#[Version-0.5.6](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.5.6)-(September-2,-2014)","page":"Release notes","title":"Version 0.5.6 (September 2, 2014)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Add support for semicontinuous and semi-integer variables for those solvers that support them.\nBreaking change: Syntax for Variable() constructor has changed (use of this interface remains discouraged)\nUpdate for breaking changes in MathProgBase","category":"page"},{"location":"release_notes/#[Version-0.5.5](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.5.5)-(July-6,-2014)","page":"Release notes","title":"Version 0.5.5 (July 6, 2014)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fix bug with problem modification: adding variables that did not appear in existing constraints or objective.","category":"page"},{"location":"release_notes/#[Version-0.5.4](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.5.4)-(June-19,-2014)","page":"Release notes","title":"Version 0.5.4 (June 19, 2014)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Update for breaking change in MathProgBase which reduces loading times for using JuMP\nFix error when MIPs not solved to optimality","category":"page"},{"location":"release_notes/#[Version-0.5.3](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.5.3)-(May-21,-2014)","page":"Release notes","title":"Version 0.5.3 (May 21, 2014)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Update for breaking change in ReverseDiffSparse","category":"page"},{"location":"release_notes/#[Version-0.5.2](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.5.2)-(May-9,-2014)","page":"Release notes","title":"Version 0.5.2 (May 9, 2014)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fix compatibility with Julia 0.3 prerelease","category":"page"},{"location":"release_notes/#[Version-0.5.1](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.5.1)-(May-5,-2014)","page":"Release notes","title":"Version 0.5.1 (May 5, 2014)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fix a bug in coefficient handling inside lazy constraints and user cuts","category":"page"},{"location":"release_notes/#[Version-0.5.0](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.5.0)-(May-2,-2014)","page":"Release notes","title":"Version 0.5.0 (May 2, 2014)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Support for nonlinear optimization with exact, sparse second-order derivatives automatically computed. Ipopt is currently the only solver supported.\ngetValue for AffExpr and QuadExpr\nBreaking change: getSolverModel replaced by getInternalModel, which returns the internal MathProgBase-level model\nGroups of constraints can be specified with @addConstraint (see documentation for details). This is not a breaking change.\ndot(::JuMPDict{Variable},::JuMPDict{Variable}) now returns the corresponding quadratic expression.","category":"page"},{"location":"release_notes/#[Version-0.4.1](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.4.1)-(March-24,-2014)","page":"Release notes","title":"Version 0.4.1 (March 24, 2014)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Fix bug where change in objective sense was ignored when re-solving a model.\nFix issue with handling zero coefficients in AffExpr.","category":"page"},{"location":"release_notes/#[Version-0.4.0](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.4.0)-(March-10,-2014)","page":"Release notes","title":"Version 0.4.0 (March 10, 2014)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Support for SOS1 and SOS2 constraints.\nSolver-independent callback for user heuristics.\ndot and sum implemented for JuMPDict objects. Now you can say @addConstraint(m, dot(a,x) <= b).\nDevelopers: support for extensions to JuMP. See definition of Model in src/JuMP.jl for more details.\nOption to construct the low-level model before optimizing.","category":"page"},{"location":"release_notes/#[Version-0.3.2](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.3.2)-(February-17,-2014)","page":"Release notes","title":"Version 0.3.2 (February 17, 2014)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Improved model printing\nPreliminary support for IJulia output","category":"page"},{"location":"release_notes/#[Version-0.3.1](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.3.1)-(January-30,-2014)","page":"Release notes","title":"Version 0.3.1 (January 30, 2014)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Documentation updates\nSupport for MOSEK\nCPLEXLink renamed to CPLEX","category":"page"},{"location":"release_notes/#[Version-0.3.0](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.3.0)-(January-21,-2014)","page":"Release notes","title":"Version 0.3.0 (January 21, 2014)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Unbounded/infeasibility rays: getValue() will return the corresponding components of an unbounded ray when a model is unbounded, if supported by the selected solver. getDual() will return an infeasibility ray (Farkas proof) if a model is infeasible and the selected solver supports this feature.\nSolver-independent callbacks for user generated cuts.\nUse new interface for solver-independent QCQP.\nsetlazycallback renamed to setLazyCallback for consistency.","category":"page"},{"location":"release_notes/#[Version-0.2.0](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.2.0)-(December-15,-2013)","page":"Release notes","title":"Version 0.2.0 (December 15, 2013)","text":"","category":"section"},{"location":"release_notes/#Breaking-8","page":"Release notes","title":"Breaking","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Objective sense is specified in setObjective instead of in the Model constructor.\nlpsolver and mipsolver merged into single solver option.","category":"page"},{"location":"release_notes/#Added-30","page":"Release notes","title":"Added","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Problem modification with efficient LP restarts and MIP warm-starts.\nRelatedly, column-wise modeling now supported.\nSolver-independent callbacks supported. Currently we support only a \"lazy constraint\" callback, which works with Gurobi, CPLEX, and GLPK. More callbacks coming soon.","category":"page"},{"location":"release_notes/#[Version-0.1.2](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.1.2)-(November-16,-2013)","page":"Release notes","title":"Version 0.1.2 (November 16, 2013)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Bug fixes for printing, improved error messages.\nAllow AffExpr to be used in macros; for example, ex = y + z; @addConstraint(m, x + 2*ex <= 3)","category":"page"},{"location":"release_notes/#[Version-0.1.1](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.1.1)-(October-23,-2013)","page":"Release notes","title":"Version 0.1.1 (October 23, 2013)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Update for solver specification API changes in MathProgBase.","category":"page"},{"location":"release_notes/#[Version-0.1.0](https://github.com/jump-dev/JuMP.jl/releases/tag/v0.1.0)-(October-3,-2013)","page":"Release notes","title":"Version 0.1.0 (October 3, 2013)","text":"","category":"section"},{"location":"release_notes/","page":"Release notes","title":"Release notes","text":"Initial public release.","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"CurrentModule = JuMP\nDocTestSetup = quote\n using JuMP\n import HiGHS\nend\nDocTestFilters = [r\"≤|<=\", r\"≥|>=\", r\" == | = \", r\" ∈ | in \", r\"MathOptInterface|MOI\"]","category":"page"},{"location":"manual/constraints/#jump_constraints","page":"Constraints","title":"Constraints","text":"","category":"section"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"JuMP is based on the MathOptInterface (MOI) API. Because of this, JuMP uses the following standard form to represent problems:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"beginalign\n min_x in mathbbR^n f_0(x)\n \n textst f_i(x) in mathcalS_i i = 1 ldots m\nendalign","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"Each constraint, f_i(x) in mathcalS_i, is composed of a function and a set. For example, instead of calling a^top x le b a less-than-or-equal-to constraint, we say that it is a scalar-affine-in-less-than constraint, where the function a^top x belongs to the less-than set (-infty b. We use the shorthand function-in-set to refer to constraints composed of different types of functions and sets.","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"This page explains how to write various types of constraints in JuMP. For nonlinear constraints, see Nonlinear Modeling instead.","category":"page"},{"location":"manual/constraints/#Add-a-constraint","page":"Constraints","title":"Add a constraint","text":"","category":"section"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"Add a constraint to a JuMP model using the @constraint macro. The syntax to use depends on the type of constraint you wish to add.","category":"page"},{"location":"manual/constraints/#Add-a-linear-constraint","page":"Constraints","title":"Add a linear constraint","text":"","category":"section"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"Create linear constraints using the @constraint macro:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> model = Model();\n\njulia> @variable(model, x[1:3]);\n\njulia> @constraint(model, c1, sum(x) <= 1)\nc1 : x[1] + x[2] + x[3] ≤ 1\n\njulia> @constraint(model, c2, x[1] + 2 * x[3] >= 2)\nc2 : x[1] + 2 x[3] ≥ 2\n\njulia> @constraint(model, c3, sum(i * x[i] for i in 1:3) == 3)\nc3 : x[1] + 2 x[2] + 3 x[3] = 3\n\njulia> @constraint(model, c4, 4 <= 2 * x[2] <= 5)\nc4 : 2 x[2] ∈ [4, 5]","category":"page"},{"location":"manual/constraints/#Normalization","page":"Constraints","title":"Normalization","text":"","category":"section"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"JuMP normalizes constraints by moving all of the terms containing variables to the left-hand side and all of the constant terms to the right-hand side. Thus, we get:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> model = Model();\n\njulia> @variable(model, x);\n\njulia> @constraint(model, c, 2x + 1 <= 4x + 4)\nc : -2 x ≤ 3","category":"page"},{"location":"manual/constraints/#quad_constraints","page":"Constraints","title":"Add a quadratic constraint","text":"","category":"section"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"In addition to affine functions, JuMP also supports constraints with quadratic terms. For example:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> model = Model();\n\njulia> @variable(model, x[i=1:2])\n2-element Vector{VariableRef}:\n x[1]\n x[2]\n\njulia> @variable(model, t >= 0)\nt\n\njulia> @constraint(model, my_q, x[1]^2 + x[2]^2 <= t^2)\nmy_q : x[1]² + x[2]² - t² ≤ 0","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"tip: Tip\nBecause solvers can take advantage of the knowledge that a constraint is quadratic, prefer adding quadratic constraints using @constraint, rather than @NLconstraint.","category":"page"},{"location":"manual/constraints/#Vectorized-constraints","page":"Constraints","title":"Vectorized constraints","text":"","category":"section"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"You can also add constraints to JuMP using vectorized linear algebra. For example:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> model = Model();\n\njulia> @variable(model, x[i=1:2])\n2-element Vector{VariableRef}:\n x[1]\n x[2]\n\njulia> A = [1 2; 3 4]\n2×2 Matrix{Int64}:\n 1 2\n 3 4\n\njulia> b = [5, 6]\n2-element Vector{Int64}:\n 5\n 6\n\njulia> @constraint(model, con_vector, A * x == b)\ncon_vector : [x[1] + 2 x[2] - 5, 3 x[1] + 4 x[2] - 6] ∈ MathOptInterface.Zeros(2)\n\njulia> @constraint(model, con_scalar, A * x .== b)\n2-element Vector{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.EqualTo{Float64}}, ScalarShape}}:\n con_scalar : x[1] + 2 x[2] = 5\n con_scalar : 3 x[1] + 4 x[2] = 6","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"The two constraints, == and .== are similar, but subtly different. The first creates a single constraint that is a MOI.VectorAffineFunction in MOI.Zeros constraint. The second creates a vector of MOI.ScalarAffineFunction in MOI.EqualTo constraints.","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"Which formulation to choose depends on the solver, and what you want to do with the constraint object con_vector or con_scalar.","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"If you are using a conic solver, expect the dual of con_vector to be a Vector{Float64}, and do not intend to delete a row in the constraint, choose the == formulation.\nIf you are using a solver that expects a list of scalar constraints, for example HiGHS, or you wish to delete part of the constraint or access a single row of the constraint, for example, dual(con_scalar[2]), then use the broadcast .==.","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"JuMP reformulates both constraints into the other form if needed by the solver, but choosing the right format for a particular solver is more efficient.","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"You can also use <=, .<= , >=, and .>= as comparison operators in the constraint.","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> @constraint(model, A * x <= b)\n[x[1] + 2 x[2] - 5, 3 x[1] + 4 x[2] - 6] ∈ MathOptInterface.Nonpositives(2)\n\njulia> @constraint(model, A * x .<= b)\n2-element Vector{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.LessThan{Float64}}, ScalarShape}}:\n x[1] + 2 x[2] ≤ 5\n 3 x[1] + 4 x[2] ≤ 6\n\njulia> @constraint(model, A * x >= b)\n[x[1] + 2 x[2] - 5, 3 x[1] + 4 x[2] - 6] ∈ MathOptInterface.Nonnegatives(2)\n\njulia> @constraint(model, A * x .>= b)\n2-element Vector{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.GreaterThan{Float64}}, ScalarShape}}:\n x[1] + 2 x[2] ≥ 5\n 3 x[1] + 4 x[2] ≥ 6","category":"page"},{"location":"manual/constraints/#Vectorized-matrix-constraints","page":"Constraints","title":"Vectorized matrix constraints","text":"","category":"section"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"In most cases, you cannot use the non-broadcasting syntax for general matrices. For example:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> model = Model();\n\njulia> @variable(model, X[1:2, 1:2])\n2×2 Matrix{VariableRef}:\n X[1,1] X[1,2]\n X[2,1] X[2,2]\n\njulia> @constraint(model, X >= 0)\nERROR: At none:1: `@constraint(model, X >= 0)`: Unsupported matrix in vector-valued set. Did you mean to use the broadcasting syntax `.>=` instead? Alternatively, perhaps you are missing a set argument like `@constraint(model, X >= 0, PSDCone())` or `@constraint(model, X >= 0, HermmitianPSDCone())`.\nStacktrace:\n[...]","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"Instead, to represent matrix inequalities you must always use the element-wise broadcasting .==, .>=, or .<=, or use the Set inequality syntax.","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"There are two exceptions: if the result of the left-hand side minus the right-hand side is a LinearAlgebra.Symmetric matrix or a LinearAlgebra.Hermitian matrix, you may use the non-broadcasting equality syntax:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> using LinearAlgebra\n\njulia> model = Model();\n\njulia> @variable(model, X[1:2, 1:2], Symmetric)\n2×2 Symmetric{VariableRef, Matrix{VariableRef}}:\n X[1,1] X[1,2]\n X[1,2] X[2,2]\n\njulia> @constraint(model, X == LinearAlgebra.I)\n[X[1,1] - 1 X[1,2];\n X[1,2] X[2,2] - 1] ∈ Zeros()","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"Despite the model showing the matrix in Zeros, this will add only three rows to the constraint matrix because the symmetric constraints are redundant. In contrast, the broadcasting syntax adds four linear constraints:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> @constraint(model, X .== LinearAlgebra.I)\n2×2 Matrix{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.EqualTo{Float64}}, ScalarShape}}:\n X[1,1] = 1 X[1,2] = 0\n X[1,2] = 0 X[2,2] = 1","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"The same holds for LinearAlgebra.Hermitian matrices:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> using LinearAlgebra\n\njulia> model = Model();\n\njulia> @variable(model, X[1:2, 1:2] in HermitianPSDCone())\n2×2 Hermitian{GenericAffExpr{ComplexF64, VariableRef}, Matrix{GenericAffExpr{ComplexF64, VariableRef}}}:\n real(X[1,1]) real(X[1,2]) + imag(X[1,2]) im\n real(X[1,2]) - imag(X[1,2]) im real(X[2,2])\n\njulia> @constraint(model, X == LinearAlgebra.I)\n[real(X[1,1]) - 1 real(X[1,2]) + imag(X[1,2]) im;\n real(X[1,2]) - imag(X[1,2]) im real(X[2,2]) - 1] ∈ Zeros()\n\njulia> @constraint(model, X .== LinearAlgebra.I)\n2×2 Matrix{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{ComplexF64}, MathOptInterface.EqualTo{ComplexF64}}, ScalarShape}}:\n real(X[1,1]) = 1 real(X[1,2]) + imag(X[1,2]) im = 0\n real(X[1,2]) - imag(X[1,2]) im = 0 real(X[2,2]) = 1","category":"page"},{"location":"manual/constraints/#Containers-of-constraints","page":"Constraints","title":"Containers of constraints","text":"","category":"section"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"The @constraint macro supports creating collections of constraints. We'll cover some brief syntax here; read the Constraint containers section for more details:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"Create arrays of constraints:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> model = Model();\n\njulia> @variable(model, x[1:3]);\n\njulia> @constraint(model, c[i=1:3], x[i] <= i^2)\n3-element Vector{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.LessThan{Float64}}, ScalarShape}}:\n c[1] : x[1] ≤ 1\n c[2] : x[2] ≤ 4\n c[3] : x[3] ≤ 9\n\njulia> c[2]\nc[2] : x[2] ≤ 4","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"Sets can be any Julia type that supports iteration:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> model = Model();\n\njulia> @variable(model, x[1:3]);\n\njulia> @constraint(model, c[i=2:3, [\"red\", \"blue\"]], x[i] <= i^2)\n2-dimensional DenseAxisArray{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.LessThan{Float64}}, ScalarShape},2,...} with index sets:\n Dimension 1, 2:3\n Dimension 2, [\"red\", \"blue\"]\nAnd data, a 2×2 Matrix{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.LessThan{Float64}}, ScalarShape}}:\n c[2,red] : x[2] ≤ 4 c[2,blue] : x[2] ≤ 4\n c[3,red] : x[3] ≤ 9 c[3,blue] : x[3] ≤ 9\n\njulia> c[2, \"red\"]\nc[2,red] : x[2] ≤ 4","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"Sets can depend upon previous indices:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> model = Model();\n\njulia> @variable(model, x[1:3]);\n\njulia> @constraint(model, c[i=1:3, j=i:3], x[i] <= j)\nJuMP.Containers.SparseAxisArray{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.LessThan{Float64}}, ScalarShape}, 2, Tuple{Int64, Int64}} with 6 entries:\n [1, 1] = c[1,1] : x[1] ≤ 1\n [1, 2] = c[1,2] : x[1] ≤ 2\n [1, 3] = c[1,3] : x[1] ≤ 3\n [2, 2] = c[2,2] : x[2] ≤ 2\n [2, 3] = c[2,3] : x[2] ≤ 3\n [3, 3] = c[3,3] : x[3] ≤ 3","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"and you can filter elements in the sets using the ; syntax:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> model = Model();\n\njulia> @variable(model, x[1:9]);\n\njulia> @constraint(model, c[i=1:9; mod(i, 3) == 0], x[i] <= i)\nJuMP.Containers.SparseAxisArray{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.LessThan{Float64}}, ScalarShape}, 1, Tuple{Int64}} with 3 entries:\n [3] = c[3] : x[3] ≤ 3\n [6] = c[6] : x[6] ≤ 6\n [9] = c[9] : x[9] ≤ 9","category":"page"},{"location":"manual/constraints/#Registered-constraints","page":"Constraints","title":"Registered constraints","text":"","category":"section"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"When you create constraints, JuMP registers them inside the model using their corresponding symbol. Get a registered name using model[:key]:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> model = Model()\nA JuMP Model\nFeasibility problem with:\nVariables: 0\nModel mode: AUTOMATIC\nCachingOptimizer state: NO_OPTIMIZER\nSolver name: No optimizer attached.\n\njulia> @variable(model, x)\nx\n\njulia> @constraint(model, my_c, 2x <= 1)\nmy_c : 2 x ≤ 1\n\njulia> model\nA JuMP Model\nFeasibility problem with:\nVariable: 1\n`AffExpr`-in-`MathOptInterface.LessThan{Float64}`: 1 constraint\nModel mode: AUTOMATIC\nCachingOptimizer state: NO_OPTIMIZER\nSolver name: No optimizer attached.\nNames registered in the model: my_c, x\n\njulia> model[:my_c] === my_c\ntrue","category":"page"},{"location":"manual/constraints/#Anonymous-constraints","page":"Constraints","title":"Anonymous constraints","text":"","category":"section"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"To reduce the likelihood of accidental bugs, and because JuMP registers constraints inside a model, creating two constraints with the same name is an error:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> model = Model();\n\njulia> @variable(model, x)\nx\n\njulia> @constraint(model, c, 2x <= 1)\nc : 2 x ≤ 1\n\njulia> @constraint(model, c, 2x <= 1)\nERROR: An object of name c is already attached to this model. If this\n is intended, consider using the anonymous construction syntax, e.g.,\n `x = @variable(model, [1:N], ...)` where the name of the object does\n not appear inside the macro.\n\n Alternatively, use `unregister(model, :c)` to first unregister\n the existing name from the model. Note that this will not delete the\n object; it will just remove the reference at `model[:c]`.\n[...]","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"A common reason for encountering this error is adding constraints in a loop.","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"As a work-around, JuMP provides anonymous constraints. Create an anonymous constraint by omitting the name argument:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> model = Model();\n\njulia> @variable(model, x);\n\njulia> c = @constraint(model, 2x <= 1)\n2 x ≤ 1","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"Create a container of anonymous constraints by dropping the name in front of the [:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> model = Model();\n\njulia> @variable(model, x[1:3]);\n\njulia> c = @constraint(model, [i = 1:3], x[i] <= i)\n3-element Vector{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.LessThan{Float64}}, ScalarShape}}:\n x[1] ≤ 1\n x[2] ≤ 2\n x[3] ≤ 3","category":"page"},{"location":"manual/constraints/#Constraint-names","page":"Constraints","title":"Constraint names","text":"","category":"section"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"In addition to the symbol that constraints are registered with, constraints have a String name that is used for printing and writing to file formats.","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"Get and set the name of a constraint using name(::JuMP.ConstraintRef) and set_name(::JuMP.ConstraintRef, ::String):","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> model = Model(); @variable(model, x);\n\njulia> @constraint(model, con, x <= 1)\ncon : x ≤ 1\n\njulia> name(con)\n\"con\"\n\njulia> set_name(con, \"my_con_name\")\n\njulia> con\nmy_con_name : x ≤ 1","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"Override the default choice of name using the base_name keyword:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> model = Model(); @variable(model, x);\n\njulia> con = @constraint(model, [i=1:2], x <= i, base_name = \"my_con\")\n2-element Vector{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.LessThan{Float64}}, ScalarShape}}:\n my_con[1] : x ≤ 1\n my_con[2] : x ≤ 2","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"Note that names apply to each element of the container, not to the container of constraints:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> name(con[1])\n\"my_con[1]\"\n\njulia> set_name(con[1], \"c\")\n\njulia> con\n2-element Vector{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.LessThan{Float64}}, ScalarShape}}:\n c : x ≤ 1\n my_con[2] : x ≤ 2","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"tip: Tip\nFor some models, setting the string name of each constraint can take a non-trivial portion of the total time required to build the model. Turn off String names by passing set_string_name = false to @constraint:julia> model = Model();\n\njulia> @variable(model, x);\n\njulia> @constraint(model, con, x <= 2, set_string_name = false)\nx ≤ 2See Disable string names for more information.","category":"page"},{"location":"manual/constraints/#Retrieve-a-constraint-by-name","page":"Constraints","title":"Retrieve a constraint by name","text":"","category":"section"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"Retrieve a constraint from a model using constraint_by_name:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> constraint_by_name(model, \"c\")\nc : x ≤ 1","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"If the name is not present, nothing will be returned:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> constraint_by_name(model, \"bad_name\")","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"You can only look up individual constraints using constraint_by_name. Something like this will not work:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> model = Model(); @variable(model, x);\n\njulia> con = @constraint(model, [i=1:2], x <= i, base_name = \"my_con\")\n2-element Vector{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.LessThan{Float64}}, ScalarShape}}:\n my_con[1] : x ≤ 1\n my_con[2] : x ≤ 2\n\njulia> constraint_by_name(model, \"my_con\")","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"To look up a collection of constraints, do not use constraint_by_name. Instead, register them using the model[:key] = value syntax:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> model = Model(); @variable(model, x);\n\njulia> model[:con] = @constraint(model, [i=1:2], x <= i, base_name = \"my_con\")\n2-element Vector{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.LessThan{Float64}}, ScalarShape}}:\n my_con[1] : x ≤ 1\n my_con[2] : x ≤ 2\n\njulia> model[:con]\n2-element Vector{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.LessThan{Float64}}, ScalarShape}}:\n my_con[1] : x ≤ 1\n my_con[2] : x ≤ 2","category":"page"},{"location":"manual/constraints/#String-names,-symbolic-names,-and-bindings","page":"Constraints","title":"String names, symbolic names, and bindings","text":"","category":"section"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"It's common for new users to experience confusion relating to constraints. Part of the problem is the difference between the name that a constraint is registered under and the String name used for printing.","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"Here's a summary of the differences:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"Constraints are created using @constraint.\nConstraints can be named or anonymous.\nNamed constraints have the form @constraint(model, c, expr). For named constraints:\nThe String name of the constraint is set to \"c\".\nA Julia variable c is created that binds c to the JuMP constraint.\nThe name :c is registered as a key in the model with the value c.\nAnonymous constraints have the form c = @constraint(model, expr). For anonymous constraints:\nThe String name of the constraint is set to \"\".\nYou control the name of the Julia variable used as the binding.\nNo name is registered as a key in the model.\nThe base_name keyword can override the String name of the constraint.\nYou can manually register names in the model via model[:key] = value.","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"Here's an example of the differences:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> model = Model();\n\njulia> @variable(model, x)\nx\n\njulia> c_binding = @constraint(model, 2x <= 1, base_name = \"c\")\nc : 2 x ≤ 1\n\njulia> model\nA JuMP Model\nFeasibility problem with:\nVariable: 1\n`AffExpr`-in-`MathOptInterface.LessThan{Float64}`: 1 constraint\nModel mode: AUTOMATIC\nCachingOptimizer state: NO_OPTIMIZER\nSolver name: No optimizer attached.\nNames registered in the model: x\n\njulia> c\nERROR: UndefVarError: `c` not defined\n\njulia> c_binding\nc : 2 x ≤ 1\n\njulia> name(c_binding)\n\"c\"\n\njulia> model[:c_register] = c_binding\nc : 2 x ≤ 1\n\njulia> model\nA JuMP Model\nFeasibility problem with:\nVariable: 1\n`AffExpr`-in-`MathOptInterface.LessThan{Float64}`: 1 constraint\nModel mode: AUTOMATIC\nCachingOptimizer state: NO_OPTIMIZER\nSolver name: No optimizer attached.\nNames registered in the model: c_register, x\n\njulia> model[:c_register]\nc : 2 x ≤ 1\n\njulia> model[:c_register] === c_binding\ntrue\n\njulia> c\nERROR: UndefVarError: `c` not defined","category":"page"},{"location":"manual/constraints/#The-@constraints-macro","page":"Constraints","title":"The @constraints macro","text":"","category":"section"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"If you have many @constraint calls, use the @constraints macro to improve readability:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> model = Model();\n\njulia> @variable(model, x);\n\njulia> @constraints(model, begin\n 2x <= 1\n c, x >= -1\n end)\n(2 x ≤ 1, c : x ≥ -1)\n\njulia> print(model)\nFeasibility\nSubject to\n c : x ≥ -1\n 2 x ≤ 1","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"The @constraints macro returns a tuple of the constraints that were defined.","category":"page"},{"location":"manual/constraints/#constraint_duality","page":"Constraints","title":"Duality","text":"","category":"section"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"JuMP adopts the notion of conic duality from MathOptInterface. For linear programs, a feasible dual on a >= constraint is nonnegative and a feasible dual on a <= constraint is nonpositive. If the constraint is an equality constraint, it depends on which direction is binding.","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"warning: Warning\nJuMP's definition of duality is independent of the objective sense. That is, the sign of feasible duals associated with a constraint depends on the direction of the constraint and not whether the problem is maximization or minimization. This is a different convention from linear programming duality in some common textbooks. If you have a linear program, and you want the textbook definition, you probably want to use shadow_price and reduced_cost instead.","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"The dual value associated with a constraint in the most recent solution can be accessed using the dual function. Use has_duals to check if the model has a dual solution available to query. For example:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> model = Model(HiGHS.Optimizer);\n\njulia> set_silent(model)\n\njulia> @variable(model, x)\nx\n\njulia> @constraint(model, con, x <= 1)\ncon : x ≤ 1\n\njulia> @objective(model, Min, -2x)\n-2 x\n\njulia> has_duals(model)\nfalse\n\njulia> optimize!(model)\n\njulia> has_duals(model)\ntrue\n\njulia> dual(con)\n-2.0\n\njulia> @objective(model, Max, 2x)\n2 x\n\njulia> optimize!(model)\n\njulia> dual(con)\n-2.0","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"To help users who may be less familiar with conic duality, JuMP provides shadow_price, which returns a value that can be interpreted as the improvement in the objective in response to an infinitesimal relaxation (on the scale of one unit) in the right-hand side of the constraint. shadow_price can be used only on linear constraints with a <=, >=, or == comparison operator.","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"In the example above, dual(con) returned -2.0 regardless of the optimization sense. However, in the second case when the optimization sense is Max, shadow_price returns:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> shadow_price(con)\n2.0","category":"page"},{"location":"manual/constraints/#Duals-of-variable-bounds","page":"Constraints","title":"Duals of variable bounds","text":"","category":"section"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"To query the dual variables associated with a variable bound, first obtain a constraint reference using one of UpperBoundRef, LowerBoundRef, or FixRef, and then call dual on the returned constraint reference. The reduced_cost function may simplify this process as it returns the shadow price of an active bound of a variable (or zero, if no active bound exists).","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> model = Model(HiGHS.Optimizer);\n\njulia> set_silent(model)\n\njulia> @variable(model, x <= 1)\nx\n\njulia> @objective(model, Min, -2x)\n-2 x\n\njulia> optimize!(model)\n\njulia> dual(UpperBoundRef(x))\n-2.0\n\njulia> reduced_cost(x)\n-2.0","category":"page"},{"location":"manual/constraints/#Modify-a-constant-term","page":"Constraints","title":"Modify a constant term","text":"","category":"section"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"This section explains how to modify the constant term in a constraint. There are multiple ways to achieve this goal; we explain three options.","category":"page"},{"location":"manual/constraints/#Option-1:-change-the-right-hand-side","page":"Constraints","title":"Option 1: change the right-hand side","text":"","category":"section"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"Use set_normalized_rhs to modify the right-hand side (constant) term of a linear or quadratic constraint. Use normalized_rhs to query the right-hand side term.","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> model = Model();\n\njulia> @variable(model, x);\n\njulia> @constraint(model, con, 2x <= 1)\ncon : 2 x ≤ 1\n\njulia> set_normalized_rhs(con, 3)\n\njulia> con\ncon : 2 x ≤ 3\n\njulia> normalized_rhs(con)\n3.0","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"warning: Warning\nset_normalized_rhs sets the right-hand side term of the normalized constraint. See Normalization for more details.","category":"page"},{"location":"manual/constraints/#Option-2:-use-fixed-variables","page":"Constraints","title":"Option 2: use fixed variables","text":"","category":"section"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"If constraints are complicated, for example, they are composed of a number of components, each of which has a constant term, then it may be difficult to calculate what the right-hand side term is in the standard form.","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"For this situation, JuMP includes the ability to fix variables to a value using the fix function. Fixing a variable sets its lower and upper bound to the same value. Thus, changes in a constant term can be simulated by adding a new variable and fixing it to different values. Here is an example:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> model = Model();\n\njulia> @variable(model, x);\n\njulia> @variable(model, const_term)\nconst_term\n\njulia> @constraint(model, con, 2x <= const_term + 1)\ncon : 2 x - const_term ≤ 1\n\njulia> fix(const_term, 1.0)","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"The constraint con is now equivalent to 2x <= 2.","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"warning: Warning\nFixed variables are not replaced with constants when communicating the problem to a solver. Therefore, even though const_term is fixed, it is still a decision variable, and so const_term * x is bilinear.","category":"page"},{"location":"manual/constraints/#Option-3:-modify-the-function's-constant-term","page":"Constraints","title":"Option 3: modify the function's constant term","text":"","category":"section"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"The third option is to use add_to_function_constant. The constant given is added to the function of a func-in-set constraint. In the following example, adding 2 to the function has the effect of removing 2 to the right-hand side:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> model = Model();\n\njulia> @variable(model, x);\n\njulia> @constraint(model, con, 2x <= 1)\ncon : 2 x ≤ 1\n\njulia> add_to_function_constant(con, 2)\n\njulia> con\ncon : 2 x ≤ -1\n\njulia> normalized_rhs(con)\n-1.0","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"In the case of interval constraints, the constant is removed from each bound:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> model = Model();\n\njulia> @variable(model, x);\n\njulia> @constraint(model, con, 0 <= 2x + 1 <= 2)\ncon : 2 x ∈ [-1, 1]\n\njulia> add_to_function_constant(con, 3)\n\njulia> con\ncon : 2 x ∈ [-4, -2]","category":"page"},{"location":"manual/constraints/#Modify-a-variable-coefficient","page":"Constraints","title":"Modify a variable coefficient","text":"","category":"section"},{"location":"manual/constraints/#Scalar-constraints","page":"Constraints","title":"Scalar constraints","text":"","category":"section"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"To modify the coefficients for a linear term (modifying the coefficient of a quadratic term is not supported) in a constraint, use set_normalized_coefficient. To query the current coefficient, use normalized_coefficient.","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> model = Model();\n\njulia> @variable(model, x[1:2]);\n\njulia> @constraint(model, con, 2x[1] + x[2] <= 1)\ncon : 2 x[1] + x[2] ≤ 1\n\njulia> set_normalized_coefficient(con, x[2], 0)\n\njulia> con\ncon : 2 x[1] ≤ 1\n\njulia> normalized_coefficient(con, x[2])\n0.0","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"warning: Warning\nset_normalized_coefficient sets the coefficient of the normalized constraint. See Normalization for more details.","category":"page"},{"location":"manual/constraints/#Vector-constraints","page":"Constraints","title":"Vector constraints","text":"","category":"section"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"To modify the coefficients of a vector-valued constraint, use set_normalized_coefficients.","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> model = Model();\n\njulia> @variable(model, x)\nx\n\njulia> @constraint(model, con, [2x + 3x, 4x] in MOI.Nonnegatives(2))\ncon : [5 x, 4 x] ∈ MathOptInterface.Nonnegatives(2)\n\njulia> set_normalized_coefficients(con, x, [(1, 3.0)])\n\njulia> con\ncon : [3 x, 4 x] ∈ MathOptInterface.Nonnegatives(2)\n\njulia> set_normalized_coefficients(con, x, [(1, 2.0), (2, 5.0)])\n\njulia> con\ncon : [2 x, 5 x] ∈ MathOptInterface.Nonnegatives(2)","category":"page"},{"location":"manual/constraints/#Delete-a-constraint","page":"Constraints","title":"Delete a constraint","text":"","category":"section"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"Use delete to delete a constraint from a model. Use is_valid to check if a constraint belongs to a model and has not been deleted.","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> model = Model();\n\njulia> @variable(model, x);\n\njulia> @constraint(model, con, 2x <= 1)\ncon : 2 x ≤ 1\n\njulia> is_valid(model, con)\ntrue\n\njulia> delete(model, con)\n\njulia> is_valid(model, con)\nfalse","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"Deleting a constraint does not unregister the symbolic reference from the model. Therefore, creating a new constraint of the same name will throw an error:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> @constraint(model, con, 2x <= 1)\nERROR: An object of name con is already attached to this model. If this\n is intended, consider using the anonymous construction syntax, e.g.,\n `x = @variable(model, [1:N], ...)` where the name of the object does\n not appear inside the macro.\n\n Alternatively, use `unregister(model, :con)` to first unregister\n the existing name from the model. Note that this will not delete the\n object; it will just remove the reference at `model[:con]`.\n[...]","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"After calling delete, call unregister to remove the symbolic reference:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> unregister(model, :con)\n\njulia> @constraint(model, con, 2x <= 1)\ncon : 2 x ≤ 1","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"info: Info\ndelete does not automatically unregister because we do not distinguish between names that are automatically registered by JuMP macros, and names that are manually registered by the user by setting values in object_dictionary. In addition, deleting a constraint and then adding a new constraint of the same name is an easy way to introduce bugs into your code.","category":"page"},{"location":"manual/constraints/#Start-values","page":"Constraints","title":"Start values","text":"","category":"section"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"Provide a starting value (also called warmstart) for a constraint's primal and dual solutions using set_start_value and set_dual_start_value.","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"Query the starting value for a constraint's primal and dual solution using start_value and dual_start_value. If no start value has been set, the methods will return nothing.","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> model = Model();\n\njulia> @variable(model, x)\nx\n\njulia> @constraint(model, con, x >= 10)\ncon : x ≥ 10\n\njulia> start_value(con)\n\njulia> set_start_value(con, 10.0)\n\njulia> start_value(con)\n10.0\n\njulia> dual_start_value(con)\n\njulia> set_dual_start_value(con, 2)\n\njulia> dual_start_value(con)\n2.0","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"Vector-valued constraints require a vector:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> model = Model();\n\njulia> @variable(model, x[1:3])\n3-element Vector{VariableRef}:\n x[1]\n x[2]\n x[3]\n\njulia> @constraint(model, con, x in SecondOrderCone())\ncon : [x[1], x[2], x[3]] in MathOptInterface.SecondOrderCone(3)\n\njulia> dual_start_value(con)\n\njulia> set_dual_start_value(con, [1.0, 2.0, 3.0])\n\njulia> dual_start_value(con)\n3-element Vector{Float64}:\n 1.0\n 2.0\n 3.0","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"tip: Tip\nTo simplify setting start values for all variables and constraints in a model, see set_start_values. The Primal and dual warm-starts tutorial also gives a detailed description of how to iterate over constraints in the model to set custom start values.","category":"page"},{"location":"manual/constraints/#Constraint-containers","page":"Constraints","title":"Constraint containers","text":"","category":"section"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"Like Variable containers, JuMP provides a mechanism for building groups of constraints compactly. References to these groups of constraints are returned in containers. Three types of constraint containers are supported: Arrays, DenseAxisArrays, and SparseAxisArrays. We explain each of these in the following.","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"tip: Tip\nYou can read more about containers in the Containers section.","category":"page"},{"location":"manual/constraints/#constraint_arrays","page":"Constraints","title":"Arrays","text":"","category":"section"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"One way of adding a group of constraints compactly is the following:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> model = Model();\n\njulia> @variable(model, x);\n\njulia> @constraint(model, con[i = 1:3], i * x <= i + 1)\n3-element Vector{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.LessThan{Float64}}, ScalarShape}}:\n con[1] : x ≤ 2\n con[2] : 2 x ≤ 3\n con[3] : 3 x ≤ 4","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"JuMP returns references to the three constraints in an Array that is bound to the Julia variable con. This array can be accessed and sliced as you would with any Julia array:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> con[1]\ncon[1] : x ≤ 2\n\njulia> con[2:3]\n2-element Vector{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.LessThan{Float64}}, ScalarShape}}:\n con[2] : 2 x ≤ 3\n con[3] : 3 x ≤ 4","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"Anonymous containers can also be constructed by dropping the name (for example, con) before the square brackets:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> con = @constraint(model, [i = 1:2], i * x <= i + 1)\n2-element Vector{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.LessThan{Float64}}, ScalarShape}}:\n x ≤ 2\n 2 x ≤ 3","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"Just like @variable, JuMP will form an Array of constraints when it can determine at parse time that the indices are one-based integer ranges. Therefore con[1:b] will create an Array, but con[a:b] will not. A special case is con[Base.OneTo(n)] which will produce an Array. If JuMP cannot determine that the indices are one-based integer ranges (for example, in the case of con[a:b]), JuMP will create a DenseAxisArray instead.","category":"page"},{"location":"manual/constraints/#DenseAxisArrays","page":"Constraints","title":"DenseAxisArrays","text":"","category":"section"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"The syntax for constructing a DenseAxisArray of constraints is very similar to the syntax for constructing a DenseAxisArray of variables.","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> model = Model();\n\njulia> @variable(model, x);\n\njulia> @constraint(model, con[i = 1:2, j = 2:3], i * x <= j + 1)\n2-dimensional DenseAxisArray{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.LessThan{Float64}}, ScalarShape},2,...} with index sets:\n Dimension 1, Base.OneTo(2)\n Dimension 2, 2:3\nAnd data, a 2×2 Matrix{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.LessThan{Float64}}, ScalarShape}}:\n con[1,2] : x ≤ 3 con[1,3] : x ≤ 4\n con[2,2] : 2 x ≤ 3 con[2,3] : 2 x ≤ 4","category":"page"},{"location":"manual/constraints/#SparseAxisArrays","page":"Constraints","title":"SparseAxisArrays","text":"","category":"section"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"The syntax for constructing a SparseAxisArray of constraints is very similar to the syntax for constructing a SparseAxisArray of variables.","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> model = Model();\n\njulia> @variable(model, x);\n\njulia> @constraint(model, con[i = 1:2, j = 1:2; i != j], i * x <= j + 1)\nJuMP.Containers.SparseAxisArray{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.ScalarAffineFunction{Float64}, MathOptInterface.LessThan{Float64}}, ScalarShape}, 2, Tuple{Int64, Int64}} with 2 entries:\n [1, 2] = con[1,2] : x ≤ 3\n [2, 1] = con[2,1] : 2 x ≤ 2","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"warning: Warning\nIf you have many index dimensions and a large amount of sparsity, read Performance considerations.","category":"page"},{"location":"manual/constraints/#Forcing-the-container-type","page":"Constraints","title":"Forcing the container type","text":"","category":"section"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"When creating a container of constraints, JuMP will attempt to choose the tightest container type that can store the constraints. However, because this happens at parse time, it does not always make the best choice. Just like in @variable, you can force the type of container using the container keyword. For syntax and the reason behind this, take a look at the variable docs.","category":"page"},{"location":"manual/constraints/#Constraints-with-similar-indices","page":"Constraints","title":"Constraints with similar indices","text":"","category":"section"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"Containers are often used to create constraints over a set of indices. However, you'll often have cases in which you are repeating the indices:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> model = Model();\n\njulia> @variable(model, x[1:2]);\n\njulia> @variable(model, y[1:2]);\n\njulia> @constraints(model, begin\n [i=1:2, j=1:2, k=1:2], i * x[j] <= k\n [i=1:2, j=1:2, k=1:2], i * y[j] <= k\n end);","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"This is hard to read and leads to a lot of copy-paste. A more readable way is to use a for-loop:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> for i=1:2, j=1:2, k=1:2\n @constraints(model, begin\n i * x[j] <= k\n i * y[j] <= k\n end)\n end","category":"page"},{"location":"manual/constraints/#Accessing-constraints-from-a-model","page":"Constraints","title":"Accessing constraints from a model","text":"","category":"section"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"Query the types of function-in-set constraints in a model using list_of_constraint_types:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> model = Model();\n\njulia> @variable(model, x[i=1:2] >= i, Int);\n\njulia> @constraint(model, x[1] + x[2] <= 1);\n\njulia> list_of_constraint_types(model)\n3-element Vector{Tuple{Type, Type}}:\n (AffExpr, MathOptInterface.LessThan{Float64})\n (VariableRef, MathOptInterface.GreaterThan{Float64})\n (VariableRef, MathOptInterface.Integer)","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"For a given combination of function and set type, use num_constraints to access the number of constraints and all_constraints to access a list of their references:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> num_constraints(model, VariableRef, MOI.Integer)\n2\n\njulia> cons = all_constraints(model, VariableRef, MOI.Integer)\n2-element Vector{ConstraintRef{Model, MathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.Integer}, ScalarShape}}:\n x[1] integer\n x[2] integer","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"You can also count the total number of constraints in the model, but you must explicitly choose whether to count VariableRef constraints such as bound and integrality constraints:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> num_constraints(model; count_variable_in_set_constraints = true)\n5\n\njulia> num_constraints(model; count_variable_in_set_constraints = false)\n1","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"The same also applies for all_constraints:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> all_constraints(model; include_variable_in_set_constraints = true)\n5-element Vector{ConstraintRef}:\n x[1] + x[2] ≤ 1\n x[1] ≥ 1\n x[2] ≥ 2\n x[1] integer\n x[2] integer\n\njulia> all_constraints(model; include_variable_in_set_constraints = false)\n1-element Vector{ConstraintRef}:\n x[1] + x[2] ≤ 1","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"If you need finer-grained control on which constraints to include, use a variant of:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> sum(\n num_constraints(model, F, S) for\n (F, S) in list_of_constraint_types(model) if F != VariableRef\n )\n1","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"Use constraint_object to get an instance of an AbstractConstraint object that stores the constraint data:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> con = constraint_object(cons[1])\nScalarConstraint{VariableRef, MathOptInterface.Integer}(x[1], MathOptInterface.Integer())\n\njulia> con.func\nx[1]\n\njulia> con.set\nMathOptInterface.Integer()","category":"page"},{"location":"manual/constraints/#MathOptInterface-constraints","page":"Constraints","title":"MathOptInterface constraints","text":"","category":"section"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"Because JuMP is based on MathOptInterface, you can add any constraints supported by MathOptInterface using the function-in-set syntax. For a list of supported functions and sets, read Standard form problem.","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"note: Note\nWe use MOI as an alias for the MathOptInterface module. This alias is defined by using JuMP. You may also define it in your code as follows:import MathOptInterface as MOI","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"For example, the following two constraints are equivalent:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> model = Model();\n\njulia> @variable(model, x[1:3]);\n\njulia> @constraint(model, 2 * x[1] <= 1)\n2 x[1] ≤ 1\n\njulia> @constraint(model, 2 * x[1] in MOI.LessThan(1.0))\n2 x[1] ≤ 1","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"You can also use any set defined by MathOptInterface:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> @constraint(model, x - [1; 2; 3] in MOI.Nonnegatives(3))\n[x[1] - 1, x[2] - 2, x[3] - 3] ∈ MathOptInterface.Nonnegatives(3)\n\njulia> @constraint(model, x in MOI.ExponentialCone())\n[x[1], x[2], x[3]] ∈ MathOptInterface.ExponentialCone()","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"info: Info\nSimilar to how JuMP defines the <= and >= syntax as a convenience way to specify MOI.LessThan and MOI.GreaterThan constraints, the remaining sections in this page describe functions and syntax that have been added for the convenience of common modeling situations.","category":"page"},{"location":"manual/constraints/#Set-inequality-syntax","page":"Constraints","title":"Set inequality syntax","text":"","category":"section"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"For modeling convenience, the syntax @constraint(model, x >= y, Set()) is short-hand for @constraint(model, x - y in Set()). Therefore, the following calls are equivalent:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> model = Model();\n\njulia> @variable(model, x[1:2]);\n\njulia> y = [0.5, 0.75];\n\njulia> @constraint(model, x >= y, MOI.Nonnegatives(2))\n[x[1] - 0.5, x[2] - 0.75] ∈ MathOptInterface.Nonnegatives(2)\n\njulia> @constraint(model, y <= x, MOI.Nonnegatives(2))\n[x[1] - 0.5, x[2] - 0.75] ∈ MathOptInterface.Nonnegatives(2)\n\njulia> @constraint(model, x - y in MOI.Nonnegatives(2))\n[x[1] - 0.5, x[2] - 0.75] ∈ MathOptInterface.Nonnegatives(2)","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"Non-zero constants are not supported in this syntax:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> @constraint(model, x >= 1, MOI.Nonnegatives(2))\nERROR: Operation `sub_mul` between `Vector{VariableRef}` and `Int64` is not allowed. This most often happens when you write a constraint like `x >= y` where `x` is an array and `y` is a constant. Use the broadcast syntax `x .- y >= 0` instead.\nStacktrace:\n[...]","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"Use instead:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> @constraint(model, x .- 1 >= 0, MOI.Nonnegatives(2))\n[x[1] - 1, x[2] - 1] ∈ MathOptInterface.Nonnegatives(2)","category":"page"},{"location":"manual/constraints/#Second-order-cone-constraints","page":"Constraints","title":"Second-order cone constraints","text":"","category":"section"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"A SecondOrderCone constrains the variables t and x to the set:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"x_2 le t","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"and t ge 0. It can be added as follows:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> model = Model();\n\njulia> @variable(model, t)\nt\n\njulia> @variable(model, x[1:2])\n2-element Vector{VariableRef}:\n x[1]\n x[2]\n\njulia> @constraint(model, [t; x] in SecondOrderCone())\n[t, x[1], x[2]] ∈ MathOptInterface.SecondOrderCone(3)","category":"page"},{"location":"manual/constraints/#Rotated-second-order-cone-constraints","page":"Constraints","title":"Rotated second-order cone constraints","text":"","category":"section"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"A RotatedSecondOrderCone constrains the variables t, u, and x to the set:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"x_2^2 le 2 t cdot u","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"and t u ge 0. It can be added as follows:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> model = Model();\n\njulia> @variable(model, t)\nt\n\njulia> @variable(model, u)\nu\n\njulia> @variable(model, x[1:2])\n2-element Vector{VariableRef}:\n x[1]\n x[2]\n\njulia> @constraint(model, [t; u; x] in RotatedSecondOrderCone())\n[t, u, x[1], x[2]] ∈ MathOptInterface.RotatedSecondOrderCone(4)","category":"page"},{"location":"manual/constraints/#Semi-integer-and-semi-continuous-variables","page":"Constraints","title":"Semi-integer and semi-continuous variables","text":"","category":"section"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"Semi-continuous variables are constrained to the set x in 0 cup l u.","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"Create a semi-continuous variable using the Semicontinuous set:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> model = Model();\n\njulia> @variable(model, x);\n\njulia> @constraint(model, x in Semicontinuous(1.5, 3.5))\nx in MathOptInterface.Semicontinuous{Float64}(1.5, 3.5)","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"Semi-integer variables are constrained to the set x in 0 cup l l+1 dots u.","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"Create a semi-integer variable using the Semiinteger set:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> model = Model();\n\njulia> @variable(model, x);\n\njulia> @constraint(model, x in Semiinteger(1.0, 3.0))\nx in MathOptInterface.Semiinteger{Float64}(1.0, 3.0)","category":"page"},{"location":"manual/constraints/#Special-Ordered-Sets-of-Type-1","page":"Constraints","title":"Special Ordered Sets of Type 1","text":"","category":"section"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"In a Special Ordered Set of Type 1 (often denoted SOS-I or SOS1), at most one element can take a non-zero value.","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"Construct SOS-I constraints using the SOS1 set:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> model = Model();\n\njulia> @variable(model, x[1:3])\n3-element Vector{VariableRef}:\n x[1]\n x[2]\n x[3]\n\njulia> @constraint(model, x in SOS1())\n[x[1], x[2], x[3]] in MathOptInterface.SOS1{Float64}([1.0, 2.0, 3.0])","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"Although not required for feasibility, solvers can benefit from an ordering of the variables (for example, the variables represent different factories to build, at most one factory can be built, and the factories can be ordered according to cost). To induce an ordering, a vector of weights can be provided, and the variables are ordered according to their corresponding weight.","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"For example, in the constraint:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> @constraint(model, x in SOS1([3.1, 1.2, 2.3]))\n[x[1], x[2], x[3]] in MathOptInterface.SOS1{Float64}([3.1, 1.2, 2.3])","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"the variables x have precedence x[2], x[3], x[1].","category":"page"},{"location":"manual/constraints/#Special-Ordered-Sets-of-Type-2","page":"Constraints","title":"Special Ordered Sets of Type 2","text":"","category":"section"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"In a Special Ordered Set of Type 2 (SOS-II), at most two elements can be non-zero, and if there are two non-zeros, they must be consecutive according to the ordering induced by a weight vector.","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"Construct SOS-II constraints using the SOS2 set:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> @constraint(model, x in SOS2([3.0, 1.0, 2.0]))\n[x[1], x[2], x[3]] in MathOptInterface.SOS2{Float64}([3.0, 1.0, 2.0])","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"The possible non-zero pairs are (x[1], x[3]) and (x[2], x[3]):","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"If the weight vector is omitted, JuMP induces an ordering from 1:length(x):","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> @constraint(model, x in SOS2())\n[x[1], x[2], x[3]] in MathOptInterface.SOS2{Float64}([1.0, 2.0, 3.0])","category":"page"},{"location":"manual/constraints/#Indicator-constraints","page":"Constraints","title":"Indicator constraints","text":"","category":"section"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"Indicator constraints consist of a binary variable and a linear constraint. The constraint holds when the binary variable takes the value 1. The constraint may or may not hold when the binary variable takes the value 0.","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"To enforce the constraint x + y <= 1 when the binary variable a is 1, use:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> model = Model();\n\njulia> @variable(model, x)\nx\n\njulia> @variable(model, y)\ny\n\njulia> @variable(model, a, Bin)\na\n\njulia> @constraint(model, a => {x + y <= 1})\na => {x + y ≤ 1}","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"If the constraint must hold when a is zero, add ! or ¬ before the binary variable;","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> @constraint(model, !a => {x + y <= 1})\n!a => {x + y ≤ 1}","category":"page"},{"location":"manual/constraints/#Semidefinite-constraints","page":"Constraints","title":"Semidefinite constraints","text":"","category":"section"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"To constrain a matrix to be positive semidefinite (PSD), use PSDCone:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> model = Model();\n\njulia> @variable(model, X[1:2, 1:2])\n2×2 Matrix{VariableRef}:\n X[1,1] X[1,2]\n X[2,1] X[2,2]\n\njulia> @constraint(model, X >= 0, PSDCone())\n[X[1,1] X[1,2];\n X[2,1] X[2,2]] ∈ PSDCone()","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"tip: Tip\nWhere possible, prefer constructing a matrix of Semidefinite variables using the @variable macro, rather than adding a constraint like @constraint(model, X >= 0, PSDCone()). In some solvers, adding the constraint via @constraint is less efficient, and can result in additional intermediate variables and constraints being added to the model.","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"The inequality X >= Y between two square matrices X and Y is understood as constraining X - Y to be positive semidefinite.","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> Y = [1 2; 2 1]\n2×2 Matrix{Int64}:\n 1 2\n 2 1\n\njulia> @constraint(model, X >= Y, PSDCone())\n[X[1,1] - 1 X[1,2] - 2;\n X[2,1] - 2 X[2,2] - 1] ∈ PSDCone()","category":"page"},{"location":"manual/constraints/#Symmetry","page":"Constraints","title":"Symmetry","text":"","category":"section"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"Solvers supporting PSD constraints usually expect to be given a matrix that is symbolically symmetric, that is, for which the expression in corresponding off-diagonal entries are the same. In our example, the expressions of entries (1, 2) and (2, 1) are respectively X[1,2] - 2 and X[2,1] - 2 which are different.","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"To bridge the gap between the constraint modeled and what the solver expects, solvers may add an equality constraint X[1,2] - 2 == X[2,1] - 2 to force symmetry. Use LinearAlgebra.Symmetric to explicitly tell the solver that the matrix is symmetric:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> import LinearAlgebra\n\njulia> Z = [X[1, 1] X[1, 2]; X[1, 2] X[2, 2]]\n2×2 Matrix{VariableRef}:\n X[1,1] X[1,2]\n X[1,2] X[2,2]\n\njulia> @constraint(model, LinearAlgebra.Symmetric(Z) >= 0, PSDCone())\n[X[1,1] X[1,2];\n X[1,2] X[2,2]] ∈ PSDCone()","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"Note that the lower triangular entries are ignored even if they are different so use it with caution:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> @constraint(model, LinearAlgebra.Symmetric(X) >= 0, PSDCone())\n[X[1,1] X[1,2];\n X[1,2] X[2,2]] ∈ PSDCone()","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"(Note the (2, 1) element of the constraint is X[1,2], not X[2,1].)","category":"page"},{"location":"manual/constraints/#Complementarity-constraints","page":"Constraints","title":"Complementarity constraints","text":"","category":"section"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"A mixed complementarity constraint F(x) ⟂ x consists of finding x in the interval [lb, ub], such that the following holds:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"F(x) == 0 if lb < x < ub\nF(x) >= 0 if lb == x\nF(x) <= 0 if x == ub","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"JuMP supports mixed complementarity constraints via complements(F(x), x) or F(x) ⟂ x in the @constraint macro. The interval set [lb, ub] is obtained from the variable bounds on x.","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"For example, to define the problem 2x - 1 ⟂ x with x ∈ [0, ∞), do:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> model = Model();\n\njulia> @variable(model, x >= 0)\nx\n\njulia> @constraint(model, 2x - 1 ⟂ x)\n[2 x - 1, x] ∈ MathOptInterface.Complements(2)","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"This problem has a unique solution at x = 0.5.","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"The perp operator ⟂ can be entered in most editors (and the Julia REPL) by typing \\perp.","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"An alternative approach that does not require the ⟂ symbol uses the complements function as follows:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> @constraint(model, complements(2x - 1, x))\n[2 x - 1, x] ∈ MathOptInterface.Complements(2)","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"In both cases, the mapping F(x) is supplied as the first argument, and the matching variable x is supplied as the second.","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"Vector-valued complementarity constraints are also supported:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> @variable(model, -2 <= y[1:2] <= 2)\n2-element Vector{VariableRef}:\n y[1]\n y[2]\n\njulia> M = [1 2; 3 4]\n2×2 Matrix{Int64}:\n 1 2\n 3 4\n\njulia> q = [5, 6]\n2-element Vector{Int64}:\n 5\n 6\n\njulia> @constraint(model, M * y + q ⟂ y)\n[y[1] + 2 y[2] + 5, 3 y[1] + 4 y[2] + 6, y[1], y[2]] ∈ MathOptInterface.Complements(4)","category":"page"},{"location":"manual/constraints/#Boolean-constraints","page":"Constraints","title":"Boolean constraints","text":"","category":"section"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"Add a Boolean constraint (a MOI.EqualTo{Bool} set) using the := operator with a Bool right-hand side term:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> model = GenericModel{Bool}();\n\njulia> @variable(model, x[1:2]);\n\njulia> @constraint(model, x[1] || x[2] := true)\nx[1] || x[2] = true\n\njulia> @constraint(model, x[1] && x[2] := false)\nx[1] && x[2] = false\n\njulia> model\nA JuMP Model\nFeasibility problem with:\nVariables: 2\n`GenericNonlinearExpr{GenericVariableRef{Bool}}`-in-`MathOptInterface.EqualTo{Bool}`: 2 constraints\nModel mode: AUTOMATIC\nCachingOptimizer state: NO_OPTIMIZER\nSolver name: No optimizer attached.\nNames registered in the model: x","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"Boolean constraints should not be added using the == operator because JuMP will rewrite the constraint as lhs - rhs = 0, and because constraints like a == b == c require parentheses to disambiguate between (a == b) == c and a == (b == c). In contrast, a == b := c is equivalent to (a == b) := c:","category":"page"},{"location":"manual/constraints/","page":"Constraints","title":"Constraints","text":"julia> model = Model();\n\njulia> @variable(model, x[1:2]);\n\njulia> rhs = false\nfalse\n\njulia> @constraint(model, (x[1] == x[2]) == rhs)\n(x[1] == x[2]) - 0.0 = 0\n\njulia> @constraint(model, x[1] == x[2] := rhs)\nx[1] == x[2] = false","category":"page"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"EditURL = \"power_systems.jl\"","category":"page"},{"location":"tutorials/applications/power_systems/#Power-Systems","page":"Power Systems","title":"Power Systems","text":"","category":"section"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"This tutorial was generated using Literate.jl. Download the source as a .jl file.","category":"page"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"This tutorial was originally contributed by Yury Dvorkin and Miles Lubin.","category":"page"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"This tutorial demonstrates how to formulate basic power systems engineering models in JuMP.","category":"page"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"We will consider basic \"economic dispatch\" and \"unit commitment\" models without taking into account transmission constraints.","category":"page"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"For this tutorial, we use the following packages:","category":"page"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"using JuMP\nimport DataFrames\nimport HiGHS\nimport Plots\nimport StatsPlots","category":"page"},{"location":"tutorials/applications/power_systems/#Economic-dispatch","page":"Power Systems","title":"Economic dispatch","text":"","category":"section"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"Economic dispatch (ED) is an optimization problem that minimizes the cost of supplying energy demand subject to operational constraints on power system assets. In its simplest modification, ED is an LP problem solved for an aggregated load and wind forecast and for a single infinitesimal moment.","category":"page"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"Mathematically, the ED problem can be written as follows:","category":"page"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"min sum_i in I c^g_i cdot g_i + c^w cdot w","category":"page"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"where c_i and g_i are the incremental cost ($/MWh) and power output (MW) of the i^th generator, respectively, and c^w and w are the incremental cost ($/MWh) and wind power injection (MW), respectively.","category":"page"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"Subject to the constraints:","category":"page"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"Minimum (g^min) and maximum (g^max) limits on power outputs of generators: g^min_i leq g_i leq g^max_i\nConstraint on the wind power injection: 0 leq w leq w^f where w and w^f are the wind power injection and wind power forecast, respectively.\nPower balance constraint: sum_i in I g_i + w = d^f where d^f is the demand forecast.","category":"page"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"Further reading on ED models can be found in A. J. Wood, B. F. Wollenberg, and G. B. Sheblé, \"Power Generation, Operation and Control,\" Wiley, 2013.","category":"page"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"Define some input data about the test system.","category":"page"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"We define some thermal generators:","category":"page"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"function ThermalGenerator(\n min::Float64,\n max::Float64,\n fixed_cost::Float64,\n variable_cost::Float64,\n)\n return (\n min = min,\n max = max,\n fixed_cost = fixed_cost,\n variable_cost = variable_cost,\n )\nend\n\ngenerators = [\n ThermalGenerator(0.0, 1000.0, 1000.0, 50.0),\n ThermalGenerator(300.0, 1000.0, 0.0, 100.0),\n]","category":"page"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"A wind generator","category":"page"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"WindGenerator(variable_cost::Float64) = (variable_cost = variable_cost,)\n\nwind_generator = WindGenerator(50.0)","category":"page"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"And a scenario","category":"page"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"function Scenario(demand::Float64, wind::Float64)\n return (demand = demand, wind = wind)\nend\n\nscenario = Scenario(1500.0, 200.0)","category":"page"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"Create a function solve_economic_dispatch, which solves the economic dispatch problem for a given set of input parameters.","category":"page"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"function solve_economic_dispatch(generators::Vector, wind, scenario)\n # Define the economic dispatch (ED) model\n model = Model(HiGHS.Optimizer)\n set_silent(model)\n # Define decision variables\n # power output of generators\n N = length(generators)\n @variable(model, generators[i].min <= g[i = 1:N] <= generators[i].max)\n # wind power injection\n @variable(model, 0 <= w <= scenario.wind)\n # Define the objective function\n @objective(\n model,\n Min,\n sum(generators[i].variable_cost * g[i] for i in 1:N) +\n wind.variable_cost * w,\n )\n # Define the power balance constraint\n @constraint(model, sum(g[i] for i in 1:N) + w == scenario.demand)\n # Solve statement\n optimize!(model)\n # return the optimal value of the objective function and its minimizers\n return (\n g = value.(g),\n w = value(w),\n wind_spill = scenario.wind - value(w),\n total_cost = objective_value(model),\n )\nend","category":"page"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"Solve the economic dispatch problem","category":"page"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"solution = solve_economic_dispatch(generators, wind_generator, scenario);\n\nprintln(\"Dispatch of Generators: \", solution.g, \" MW\")\nprintln(\"Dispatch of Wind: \", solution.w, \" MW\")\nprintln(\"Wind spillage: \", solution.wind_spill, \" MW\")\nprintln(\"Total cost: \\$\", solution.total_cost)","category":"page"},{"location":"tutorials/applications/power_systems/#Economic-dispatch-with-adjustable-incremental-costs","page":"Power Systems","title":"Economic dispatch with adjustable incremental costs","text":"","category":"section"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"In the following exercise we adjust the incremental cost of generator G1 and observe its impact on the total cost.","category":"page"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"function scale_generator_cost(g, scale)\n return ThermalGenerator(g.min, g.max, g.fixed_cost, scale * g.variable_cost)\nend\n\nstart = time()\nc_g_scale_df = DataFrames.DataFrame(;\n # Scale factor\n scale = Float64[],\n # Dispatch of Generator 1 [MW]\n dispatch_G1 = Float64[],\n # Dispatch of Generator 2 [MW]\n dispatch_G2 = Float64[],\n # Dispatch of Wind [MW]\n dispatch_wind = Float64[],\n # Spillage of Wind [MW]\n spillage_wind = Float64[],\n # Total cost [$]\n total_cost = Float64[],\n)\nfor c_g1_scale in 0.5:0.1:3.0\n # Update the incremental cost of the first generator at every iteration.\n new_generators = scale_generator_cost.(generators, [c_g1_scale, 1.0])\n # Solve the economic-dispatch problem with the updated incremental cost\n sol = solve_economic_dispatch(new_generators, wind_generator, scenario)\n push!(\n c_g_scale_df,\n (c_g1_scale, sol.g[1], sol.g[2], sol.w, sol.wind_spill, sol.total_cost),\n )\nend\nprint(string(\"elapsed time: \", time() - start, \" seconds\"))","category":"page"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"c_g_scale_df","category":"page"},{"location":"tutorials/applications/power_systems/#Modifying-the-JuMP-model-in-place","page":"Power Systems","title":"Modifying the JuMP model in-place","text":"","category":"section"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"Note that in the previous exercise we entirely rebuilt the optimization model at every iteration of the internal loop, which incurs an additional computational burden. This burden can be alleviated if instead of re-building the entire model, we modify the constraints or objective function, as it shown in the example below.","category":"page"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"Compare the computing time in case of the above and below models.","category":"page"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"function solve_economic_dispatch_inplace(\n generators::Vector,\n wind,\n scenario,\n scale::AbstractVector{Float64},\n)\n obj_out = Float64[]\n w_out = Float64[]\n g1_out = Float64[]\n g2_out = Float64[]\n # This function only works for two generators\n @assert length(generators) == 2\n model = Model(HiGHS.Optimizer)\n set_silent(model)\n N = length(generators)\n @variable(model, generators[i].min <= g[i = 1:N] <= generators[i].max)\n @variable(model, 0 <= w <= scenario.wind)\n @objective(\n model,\n Min,\n sum(generators[i].variable_cost * g[i] for i in 1:N) +\n wind.variable_cost * w,\n )\n @constraint(model, sum(g[i] for i in 1:N) + w == scenario.demand)\n for c_g1_scale in scale\n @objective(\n model,\n Min,\n c_g1_scale * generators[1].variable_cost * g[1] +\n generators[2].variable_cost * g[2] +\n wind.variable_cost * w,\n )\n optimize!(model)\n push!(obj_out, objective_value(model))\n push!(w_out, value(w))\n push!(g1_out, value(g[1]))\n push!(g2_out, value(g[2]))\n end\n df = DataFrames.DataFrame(;\n scale = scale,\n dispatch_G1 = g1_out,\n dispatch_G2 = g2_out,\n dispatch_wind = w_out,\n spillage_wind = scenario.wind .- w_out,\n total_cost = obj_out,\n )\n return df\nend\n\nstart = time()\ninplace_df = solve_economic_dispatch_inplace(\n generators,\n wind_generator,\n scenario,\n 0.5:0.1:3.0,\n)\nprint(string(\"elapsed time: \", time() - start, \" seconds\"))","category":"page"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"For small models, adjusting specific constraints or the objective function is sometimes faster and sometimes slower than re-building the entire model. However, as the problem size increases, updating the model in-place is usually faster.","category":"page"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"inplace_df","category":"page"},{"location":"tutorials/applications/power_systems/#Inefficient-usage-of-wind-generators","page":"Power Systems","title":"Inefficient usage of wind generators","text":"","category":"section"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"The economic dispatch problem does not perform commitment decisions and, thus, assumes that all generators must be dispatched at least at their minimum power output limit. This approach is not cost efficient and may lead to absurd decisions. For example, if d = sum_i in I g^min_i, the wind power injection must be zero, that is, all available wind generation is spilled, to meet the minimum power output constraints on generators.","category":"page"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"In the following example, we adjust the total demand and observed how it affects wind spillage.","category":"page"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"demand_scale_df = DataFrames.DataFrame(;\n demand = Float64[],\n dispatch_G1 = Float64[],\n dispatch_G2 = Float64[],\n dispatch_wind = Float64[],\n spillage_wind = Float64[],\n total_cost = Float64[],\n)\n\nfunction scale_demand(scenario, scale)\n return Scenario(scale * scenario.demand, scenario.wind)\nend\n\nfor demand_scale in 0.2:0.1:1.4\n new_scenario = scale_demand(scenario, demand_scale)\n sol = solve_economic_dispatch(generators, wind_generator, new_scenario)\n push!(\n demand_scale_df,\n (\n new_scenario.demand,\n sol.g[1],\n sol.g[2],\n sol.w,\n sol.wind_spill,\n sol.total_cost,\n ),\n )\nend\n\ndemand_scale_df","category":"page"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"dispatch_plot = StatsPlots.@df(\n demand_scale_df,\n Plots.plot(\n :demand,\n [:dispatch_G1, :dispatch_G2],\n labels = [\"G1\" \"G2\"],\n title = \"Thermal Dispatch\",\n legend = :bottomright,\n linewidth = 3,\n xlabel = \"Demand\",\n ylabel = \"Dispatch [MW]\",\n ),\n)\n\nwind_plot = StatsPlots.@df(\n demand_scale_df,\n Plots.plot(\n :demand,\n [:dispatch_wind, :spillage_wind],\n labels = [\"Dispatch\" \"Spillage\"],\n title = \"Wind\",\n legend = :bottomright,\n linewidth = 3,\n xlabel = \"Demand [MW]\",\n ylabel = \"Energy [MW]\",\n ),\n)\n\nPlots.plot(dispatch_plot, wind_plot)","category":"page"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"This particular drawback can be overcome by introducing binary decisions on the \"on/off\" status of generators. This model is called unit commitment and considered later in these notes.","category":"page"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"For further reading on the interplay between wind generation and the minimum power output constraints of generators, we refer interested readers to R. Baldick, \"Wind and energy markets: a case study of Texas,\" IEEE Systems Journal, vol. 6, pp. 27-34, 2012.","category":"page"},{"location":"tutorials/applications/power_systems/#Unit-commitment","page":"Power Systems","title":"Unit commitment","text":"","category":"section"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"The Unit Commitment (UC) model can be obtained from ED model by introducing binary variable associated with each generator. This binary variable can attain two values: if it is \"1,\" the generator is synchronized and, thus, can be dispatched, otherwise, that is, if the binary variable is \"0,\" that generator is not synchronized and its power output is set to 0.","category":"page"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"To obtain the mathematical formulation of the UC model, we will modify the constraints of the ED model as follows:","category":"page"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"g^min_i cdot u_ti leq g_i leq g^max_i cdot u_ti","category":"page"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"where u_i in 01 In this constraint, if u_i = 0, then g_i = 0. On the other hand, if u_i = 1, then g^min_i leq g_i leq g^max_i.","category":"page"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"For further reading on the UC problem we refer interested readers to G. Morales-Espana, J. M. Latorre, and A. Ramos, \"Tight and Compact MILP Formulation for the Thermal Unit Commitment Problem,\" IEEE Transactions on Power Systems, vol. 28, pp. 4897-4908, 2013.","category":"page"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"In the following example we convert the ED model explained above to the UC model.","category":"page"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"function solve_unit_commitment(generators::Vector, wind, scenario)\n model = Model(HiGHS.Optimizer)\n set_silent(model)\n N = length(generators)\n @variable(model, 0 <= g[i = 1:N] <= generators[i].max)\n @variable(model, 0 <= w <= scenario.wind)\n @constraint(model, sum(g[i] for i in 1:N) + w == scenario.demand)\n # !!! New: add binary on-off variables for each generator\n @variable(model, u[i = 1:N], Bin)\n @constraint(model, [i = 1:N], g[i] <= generators[i].max * u[i])\n @constraint(model, [i = 1:N], g[i] >= generators[i].min * u[i])\n @objective(\n model,\n Min,\n sum(generators[i].variable_cost * g[i] for i in 1:N) +\n wind.variable_cost * w +\n # !!! new\n sum(generators[i].fixed_cost * u[i] for i in 1:N)\n )\n optimize!(model)\n status = termination_status(model)\n if status != OPTIMAL\n return (status = status,)\n end\n return (\n status = status,\n g = value.(g),\n w = value(w),\n wind_spill = scenario.wind - value(w),\n u = value.(u),\n total_cost = objective_value(model),\n )\nend","category":"page"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"Solve the unit commitment problem","category":"page"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"solution = solve_unit_commitment(generators, wind_generator, scenario)\n\nprintln(\"Dispatch of Generators: \", solution.g, \" MW\")\nprintln(\"Commitments of Generators: \", solution.u)\nprintln(\"Dispatch of Wind: \", solution.w, \" MW\")\nprintln(\"Wind spillage: \", solution.wind_spill, \" MW\")\nprintln(\"Total cost: \\$\", solution.total_cost)","category":"page"},{"location":"tutorials/applications/power_systems/#Unit-commitment-as-a-function-of-demand","page":"Power Systems","title":"Unit commitment as a function of demand","text":"","category":"section"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"After implementing the unit commitment model, we can now assess the interplay between the minimum power output constraints on generators and wind generation.","category":"page"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"uc_df = DataFrames.DataFrame(;\n demand = Float64[],\n commitment_G1 = Float64[],\n commitment_G2 = Float64[],\n dispatch_G1 = Float64[],\n dispatch_G2 = Float64[],\n dispatch_wind = Float64[],\n spillage_wind = Float64[],\n total_cost = Float64[],\n)\n\nfor demand_scale in 0.2:0.1:1.4\n new_scenario = scale_demand(scenario, demand_scale)\n sol = solve_unit_commitment(generators, wind_generator, new_scenario)\n if sol.status == OPTIMAL\n push!(\n uc_df,\n (\n new_scenario.demand,\n sol.u[1],\n sol.u[2],\n sol.g[1],\n sol.g[2],\n sol.w,\n sol.wind_spill,\n sol.total_cost,\n ),\n )\n end\n println(\"Status: $(sol.status) for demand_scale = $(demand_scale)\")\nend","category":"page"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"uc_df","category":"page"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"commitment_plot = StatsPlots.@df(\n uc_df,\n Plots.plot(\n :demand,\n [:commitment_G1, :commitment_G2],\n labels = [\"G1\" \"G2\"],\n title = \"Commitment\",\n legend = :bottomright,\n linewidth = 3,\n xlabel = \"Demand [MW]\",\n ylabel = \"Commitment decision {0, 1}\",\n ),\n)\n\ndispatch_plot = StatsPlots.@df(\n uc_df,\n Plots.plot(\n :demand,\n [:dispatch_G1, :dispatch_G2, :dispatch_wind],\n labels = [\"G1\" \"G2\" \"Wind\"],\n title = \"Dispatch [MW]\",\n legend = :bottomright,\n linewidth = 3,\n xlabel = \"Demand\",\n ylabel = \"Dispatch [MW]\",\n ),\n)\n\nPlots.plot(commitment_plot, dispatch_plot)","category":"page"},{"location":"tutorials/applications/power_systems/#Nonlinear-economic-dispatch","page":"Power Systems","title":"Nonlinear economic dispatch","text":"","category":"section"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"As a final example, we modify our economic dispatch problem in two ways:","category":"page"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"The thermal cost function is user-defined\nThe output of the wind is only the square-root of the dispatch","category":"page"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"import Ipopt\n\n\"\"\"\n thermal_cost_function(g)\n\nA user-defined thermal cost function in pure-Julia! You can include\nnonlinearities, and even things like control flow.\n\n!!! warning\n It's still up to you to make sure that the function has a meaningful\n derivative.\n\"\"\"\nfunction thermal_cost_function(g)\n if g <= 500\n return g\n else\n return g + 1e-2 * (g - 500)^2\n end\nend\n\nfunction solve_nonlinear_economic_dispatch(\n generators::Vector,\n wind,\n scenario;\n silent::Bool = false,\n)\n model = Model(Ipopt.Optimizer)\n if silent\n set_silent(model)\n end\n @operator(model, op_tcf, 1, thermal_cost_function)\n N = length(generators)\n @variable(model, generators[i].min <= g[i = 1:N] <= generators[i].max)\n @variable(model, 0 <= w <= scenario.wind)\n @objective(\n model,\n Min,\n sum(generators[i].variable_cost * op_tcf(g[i]) for i in 1:N) +\n wind.variable_cost * w,\n )\n @constraint(model, sum(g[i] for i in 1:N) + sqrt(w) == scenario.demand)\n optimize!(model)\n return (\n g = value.(g),\n w = value(w),\n wind_spill = scenario.wind - value(w),\n total_cost = objective_value(model),\n )\nend\n\nsolution =\n solve_nonlinear_economic_dispatch(generators, wind_generator, scenario)","category":"page"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"Now let's see how the wind is dispatched as a function of the cost:","category":"page"},{"location":"tutorials/applications/power_systems/","page":"Power Systems","title":"Power Systems","text":"wind_cost = 0.0:1:100\nwind_dispatch = Float64[]\nfor c in wind_cost\n sol = solve_nonlinear_economic_dispatch(\n generators,\n WindGenerator(c),\n scenario;\n silent = true,\n )\n push!(wind_dispatch, sol.w)\nend\n\nPlots.plot(\n wind_cost,\n wind_dispatch;\n xlabel = \"Cost\",\n ylabel = \"Dispatch [MW]\",\n label = false,\n)","category":"page"},{"location":"tutorials/conic/logistic_regression/","page":"Logistic regression","title":"Logistic regression","text":"EditURL = \"logistic_regression.jl\"","category":"page"},{"location":"tutorials/conic/logistic_regression/#Logistic-regression","page":"Logistic regression","title":"Logistic regression","text":"","category":"section"},{"location":"tutorials/conic/logistic_regression/","page":"Logistic regression","title":"Logistic regression","text":"This tutorial was generated using Literate.jl. Download the source as a .jl file.","category":"page"},{"location":"tutorials/conic/logistic_regression/","page":"Logistic regression","title":"Logistic regression","text":"This tutorial was originally contributed by François Pacaud.","category":"page"},{"location":"tutorials/conic/logistic_regression/","page":"Logistic regression","title":"Logistic regression","text":"This tutorial shows how to solve a logistic regression problem with JuMP. Logistic regression is a well known method in machine learning, useful when we want to classify binary variables with the help of a given set of features. To this goal, we find the optimal combination of features maximizing the (log)-likelihood onto a training set. From a modern optimization glance, the resulting problem is convex and differentiable. On a modern optimization glance, it is even conic representable.","category":"page"},{"location":"tutorials/conic/logistic_regression/#Formulating-the-logistic-regression-problem","page":"Logistic regression","title":"Formulating the logistic regression problem","text":"","category":"section"},{"location":"tutorials/conic/logistic_regression/","page":"Logistic regression","title":"Logistic regression","text":"Suppose we have a set of training data-point i = 1 cdots n, where for each i we have a vector of features x_i in mathbbR^p and a categorical observation y_i in -1 1.","category":"page"},{"location":"tutorials/conic/logistic_regression/","page":"Logistic regression","title":"Logistic regression","text":"The log-likelihood is given by","category":"page"},{"location":"tutorials/conic/logistic_regression/","page":"Logistic regression","title":"Logistic regression","text":"l(theta) = sum_i=1^n log(dfrac11 + exp(-y_i theta^top x_i))","category":"page"},{"location":"tutorials/conic/logistic_regression/","page":"Logistic regression","title":"Logistic regression","text":"and the optimal theta minimizes the logistic loss function:","category":"page"},{"location":"tutorials/conic/logistic_regression/","page":"Logistic regression","title":"Logistic regression","text":"min_theta sum_i=1^n log(1 + exp(-y_i theta^top x_i))","category":"page"},{"location":"tutorials/conic/logistic_regression/","page":"Logistic regression","title":"Logistic regression","text":"Most of the time, instead of solving directly the previous optimization problem, we prefer to add a regularization term:","category":"page"},{"location":"tutorials/conic/logistic_regression/","page":"Logistic regression","title":"Logistic regression","text":"min_theta sum_i=1^n log(1 + exp(-y_i theta^top x_i)) + lambda theta ","category":"page"},{"location":"tutorials/conic/logistic_regression/","page":"Logistic regression","title":"Logistic regression","text":"with lambda in mathbbR_+ a penalty and a norm function. By adding such a regularization term, we avoid overfitting on the training set and usually achieve a greater score in cross-validation.","category":"page"},{"location":"tutorials/conic/logistic_regression/#Reformulation-as-a-conic-optimization-problem","page":"Logistic regression","title":"Reformulation as a conic optimization problem","text":"","category":"section"},{"location":"tutorials/conic/logistic_regression/","page":"Logistic regression","title":"Logistic regression","text":"By introducing auxiliary variables t_1 cdots t_n and r, the optimization problem is equivalent to","category":"page"},{"location":"tutorials/conic/logistic_regression/","page":"Logistic regression","title":"Logistic regression","text":"beginaligned\nmin_t r theta sum_i=1^n t_i + lambda r \ntextsubject to quad t_i geq log(1 + exp(- y_i theta^top x_i)) \n quad r geq theta\nendaligned","category":"page"},{"location":"tutorials/conic/logistic_regression/","page":"Logistic regression","title":"Logistic regression","text":"Now, the trick is to reformulate the constraints t_i geq log(1 + exp(- y_i theta^top x_i)) with the help of the exponential cone","category":"page"},{"location":"tutorials/conic/logistic_regression/","page":"Logistic regression","title":"Logistic regression","text":"K_exp = (x y z) in mathbbR^3 y exp(x y) leq z ","category":"page"},{"location":"tutorials/conic/logistic_regression/","page":"Logistic regression","title":"Logistic regression","text":"Indeed, by passing to the exponential, we see that for all i=1 cdots n, the constraint t_i geq log(1 + exp(- y_i theta^top x_i)) is equivalent to","category":"page"},{"location":"tutorials/conic/logistic_regression/","page":"Logistic regression","title":"Logistic regression","text":"exp(-t_i) + exp(u_i - t_i) leq 1","category":"page"},{"location":"tutorials/conic/logistic_regression/","page":"Logistic regression","title":"Logistic regression","text":"with u_i = -y_i theta^top x_i. Then, by adding two auxiliary variables z_i1 and z_i2 such that z_i1 geq exp(u_i-t_i) and z_i2 geq exp(-t_i), we get the equivalent formulation","category":"page"},{"location":"tutorials/conic/logistic_regression/","page":"Logistic regression","title":"Logistic regression","text":"left\nbeginaligned\n(u_i -t_i 1 z_i1) in K_exp \n(-t_i 1 z_i2) in K_exp \nz_i1 + z_i2 leq 1\nendaligned\nright","category":"page"},{"location":"tutorials/conic/logistic_regression/","page":"Logistic regression","title":"Logistic regression","text":"In this setting, the conic version of the logistic regression problems writes out","category":"page"},{"location":"tutorials/conic/logistic_regression/","page":"Logistic regression","title":"Logistic regression","text":"beginaligned\nmin_t z r theta sum_i=1^n t_i + lambda r \ntextsubject to quad (u_i -t_i 1 z_i1) in K_exp \n quad (-t_i 1 z_i2) in K_exp \n quad z_i1 + z_i2 leq 1 \n quad u_i = -y_i x_i^top theta \n quad r geq theta\nendaligned","category":"page"},{"location":"tutorials/conic/logistic_regression/","page":"Logistic regression","title":"Logistic regression","text":"and thus encompasses 3n + p + 1 variables and 3n + 1 constraints (u_i = -y_i theta^top x_i is only a virtual constraint used to clarify the notation). Thus, if n gg 1, we get a large number of variables and constraints.","category":"page"},{"location":"tutorials/conic/logistic_regression/#Fitting-logistic-regression-with-a-conic-solver","page":"Logistic regression","title":"Fitting logistic regression with a conic solver","text":"","category":"section"},{"location":"tutorials/conic/logistic_regression/","page":"Logistic regression","title":"Logistic regression","text":"It is now time to pass to the implementation. We choose SCS as a conic solver.","category":"page"},{"location":"tutorials/conic/logistic_regression/","page":"Logistic regression","title":"Logistic regression","text":"using JuMP\nimport Random\nimport SCS","category":"page"},{"location":"tutorials/conic/logistic_regression/","page":"Logistic regression","title":"Logistic regression","text":"info: Info\nThis tutorial uses sets from MathOptInterface. By default, JuMP exports the MOI symbol as an alias for the MathOptInterface.jl package. We recommend making this more explicit in your code by adding the following lines:import MathOptInterface as MOI","category":"page"},{"location":"tutorials/conic/logistic_regression/","page":"Logistic regression","title":"Logistic regression","text":"Random.seed!(2713);\nnothing #hide","category":"page"},{"location":"tutorials/conic/logistic_regression/","page":"Logistic regression","title":"Logistic regression","text":"We start by implementing a function to generate a fake dataset, and where we could tune the correlation between the feature variables. The function is a direct transcription of the one used in this blog post.","category":"page"},{"location":"tutorials/conic/logistic_regression/","page":"Logistic regression","title":"Logistic regression","text":"function generate_dataset(n_samples = 100, n_features = 10; shift = 0.0)\n X = randn(n_samples, n_features)\n w = randn(n_features)\n y = sign.(X * w)\n X .+= 0.8 * randn(n_samples, n_features) # add noise\n X .+= shift # shift the points in the feature space\n X = hcat(X, ones(n_samples, 1))\n return X, y\nend","category":"page"},{"location":"tutorials/conic/logistic_regression/","page":"Logistic regression","title":"Logistic regression","text":"We write a softplus function to formulate each constraint t geq log(1 + exp(u)) with two exponential cones.","category":"page"},{"location":"tutorials/conic/logistic_regression/","page":"Logistic regression","title":"Logistic regression","text":"function softplus(model, t, u)\n z = @variable(model, [1:2], lower_bound = 0.0)\n @constraint(model, sum(z) <= 1.0)\n @constraint(model, [u - t, 1, z[1]] in MOI.ExponentialCone())\n @constraint(model, [-t, 1, z[2]] in MOI.ExponentialCone())\nend","category":"page"},{"location":"tutorials/conic/logistic_regression/#\\ell_2-regularized-logistic-regression","page":"Logistic regression","title":"ell_2 regularized logistic regression","text":"","category":"section"},{"location":"tutorials/conic/logistic_regression/","page":"Logistic regression","title":"Logistic regression","text":"Then, with the help of the softplus function, we could write our optimization model. In the ell_2 regularization case, the constraint r geq theta_2 rewrites as a second order cone constraint.","category":"page"},{"location":"tutorials/conic/logistic_regression/","page":"Logistic regression","title":"Logistic regression","text":"function build_logit_model(X, y, λ)\n n, p = size(X)\n model = Model()\n @variable(model, θ[1:p])\n @variable(model, t[1:n])\n for i in 1:n\n u = -(X[i, :]' * θ) * y[i]\n softplus(model, t[i], u)\n end\n # Add ℓ2 regularization\n @variable(model, 0.0 <= reg)\n @constraint(model, [reg; θ] in SecondOrderCone())\n # Define objective\n @objective(model, Min, sum(t) + λ * reg)\n return model\nend","category":"page"},{"location":"tutorials/conic/logistic_regression/","page":"Logistic regression","title":"Logistic regression","text":"We generate the dataset.","category":"page"},{"location":"tutorials/conic/logistic_regression/","page":"Logistic regression","title":"Logistic regression","text":"warning: Warning\nBe careful here, for large n and p SCS could fail to converge.","category":"page"},{"location":"tutorials/conic/logistic_regression/","page":"Logistic regression","title":"Logistic regression","text":"n, p = 200, 10\nX, y = generate_dataset(n, p; shift = 10.0);\n\n# We could now solve the logistic regression problem\nλ = 10.0\nmodel = build_logit_model(X, y, λ)\nset_optimizer(model, SCS.Optimizer)\nset_silent(model)\nJuMP.optimize!(model)","category":"page"},{"location":"tutorials/conic/logistic_regression/","page":"Logistic regression","title":"Logistic regression","text":"θ♯ = JuMP.value.(model[:θ])","category":"page"},{"location":"tutorials/conic/logistic_regression/","page":"Logistic regression","title":"Logistic regression","text":"It appears that the speed of convergence is not that impacted by the correlation of the dataset, nor by the penalty lambda.","category":"page"},{"location":"tutorials/conic/logistic_regression/#\\ell_1-regularized-logistic-regression","page":"Logistic regression","title":"ell_1 regularized logistic regression","text":"","category":"section"},{"location":"tutorials/conic/logistic_regression/","page":"Logistic regression","title":"Logistic regression","text":"We now formulate the logistic problem with a ell_1 regularization term. The ell_1 regularization ensures sparsity in the optimal solution of the resulting optimization problem. Luckily, the ell_1 norm is implemented as a set in MathOptInterface. Thus, we could formulate the sparse logistic regression problem with the help of a MOI.NormOneCone set.","category":"page"},{"location":"tutorials/conic/logistic_regression/","page":"Logistic regression","title":"Logistic regression","text":"function build_sparse_logit_model(X, y, λ)\n n, p = size(X)\n model = Model()\n @variable(model, θ[1:p])\n @variable(model, t[1:n])\n for i in 1:n\n u = -(X[i, :]' * θ) * y[i]\n softplus(model, t[i], u)\n end\n # Add ℓ1 regularization\n @variable(model, 0.0 <= reg)\n @constraint(model, [reg; θ] in MOI.NormOneCone(p + 1))\n # Define objective\n @objective(model, Min, sum(t) + λ * reg)\n return model\nend\n\n# Auxiliary function to count non-null components:\ncount_nonzero(v::Vector; tol = 1e-6) = sum(abs.(v) .>= tol)\n\n# We solve the sparse logistic regression problem on the same dataset as before.\nλ = 10.0\nsparse_model = build_sparse_logit_model(X, y, λ)\nset_optimizer(sparse_model, SCS.Optimizer)\nset_silent(sparse_model)\nJuMP.optimize!(sparse_model)","category":"page"},{"location":"tutorials/conic/logistic_regression/","page":"Logistic regression","title":"Logistic regression","text":"θ♯ = JuMP.value.(sparse_model[:θ])\nprintln(\n \"Number of non-zero components: \",\n count_nonzero(θ♯),\n \" (out of \",\n p,\n \" features)\",\n)","category":"page"},{"location":"tutorials/conic/logistic_regression/#Extensions","page":"Logistic regression","title":"Extensions","text":"","category":"section"},{"location":"tutorials/conic/logistic_regression/","page":"Logistic regression","title":"Logistic regression","text":"A direct extension would be to consider the sparse logistic regression with hard thresholding, which, on contrary to the soft version using a ell_1 regularization, adds an explicit cardinality constraint in its formulation:","category":"page"},{"location":"tutorials/conic/logistic_regression/","page":"Logistic regression","title":"Logistic regression","text":"beginaligned\nmin_theta sum_i=1^n log(1 + exp(-y_i theta^top x_i)) + lambda theta _2^2 \ntextsubject to quad theta _0 = k\nendaligned","category":"page"},{"location":"tutorials/conic/logistic_regression/","page":"Logistic regression","title":"Logistic regression","text":"where k is the maximum number of non-zero components in the vector theta, and _0 is the ell_0 pseudo-norm:","category":"page"},{"location":"tutorials/conic/logistic_regression/","page":"Logistic regression","title":"Logistic regression","text":" x_0 = i x_i neq 0","category":"page"},{"location":"tutorials/conic/logistic_regression/","page":"Logistic regression","title":"Logistic regression","text":"The cardinality constraint theta_0 leq k could be reformulated with binary variables. Thus the hard sparse regression problem could be solved by any solver supporting mixed integer conic problems.","category":"page"},{"location":"moi/background/motivation/","page":"Motivation","title":"Motivation","text":"EditURL = \"https://github.com/jump-dev/MathOptInterface.jl/blob/v1.20.1/docs/src/background/motivation.md\"","category":"page"},{"location":"moi/background/motivation/#Motivation","page":"Motivation","title":"Motivation","text":"","category":"section"},{"location":"moi/background/motivation/","page":"Motivation","title":"Motivation","text":"MathOptInterface (MOI) is a replacement for MathProgBase, the first-generation abstraction layer for mathematical optimization previously used by JuMP and Convex.jl.","category":"page"},{"location":"moi/background/motivation/","page":"Motivation","title":"Motivation","text":"To address a number of limitations of MathProgBase, MOI is designed to:","category":"page"},{"location":"moi/background/motivation/","page":"Motivation","title":"Motivation","text":"Be simple and extensible\nunifying linear, quadratic, and conic optimization,\nseamlessly facilitating extensions to essentially arbitrary constraints and functions (for example, indicator constraints, complementarity constraints, and piecewise-linear functions)\nBe fast\nby allowing access to a solver's in-memory representation of a problem without writing intermediate files (when possible)\nby using multiple dispatch and avoiding requiring containers of non-concrete types\nAllow a solver to return multiple results (for example, a pool of solutions)\nAllow a solver to return extra arbitrary information via attributes (for example, variable- and constraint-wise membership in an irreducible inconsistent subset for infeasibility analysis)\nProvide a greatly expanded set of status codes explaining what happened during the optimization procedure\nEnable a solver to more precisely specify which problem classes it supports\nEnable both primal and dual warm starts\nEnable adding and removing both variables and constraints by indices that are not required to be consecutive\nEnable any modification that the solver supports to an existing model\nAvoid requiring the solver wrapper to store an additional copy of the problem data","category":"page"},{"location":"tutorials/conic/introduction/#Introduction","page":"Introduction","title":"Introduction","text":"","category":"section"},{"location":"tutorials/conic/introduction/","page":"Introduction","title":"Introduction","text":"Conic programs are a class of convex nonlinear optimization problems which use cones to represent the nonlinearities. They have the form:","category":"page"},{"location":"tutorials/conic/introduction/","page":"Introduction","title":"Introduction","text":"beginalign\n min_x in mathbbR^n f_0(x) \n textst f_j(x) in mathcalS_j j = 1 ldots m\nendalign","category":"page"},{"location":"tutorials/conic/introduction/","page":"Introduction","title":"Introduction","text":"Mixed-integer conic programs (MICPs) are extensions of conic programs in which some (or all) of the decision variables take discrete values.","category":"page"},{"location":"tutorials/conic/introduction/#How-to-choose-a-solver","page":"Introduction","title":"How to choose a solver","text":"","category":"section"},{"location":"tutorials/conic/introduction/","page":"Introduction","title":"Introduction","text":"JuMP supports a range of conic solvers, although support differs on what types of cones each solver supports. In the list of Supported solvers, \"SOCP\" denotes solvers supporting second-order cones and \"SDP\" denotes solvers supporting semidefinite cones. In addition, solvers such as SCS and Mosek have support for the exponential cone. Moreover, due to the bridging system in MathOptInterface, many of these solvers support a much wider range of exotic cones than they natively support. Solvers supporting discrete variables start with \"(MI)\" in the list of Supported solvers.","category":"page"},{"location":"tutorials/conic/introduction/","page":"Introduction","title":"Introduction","text":"tip: Tip\nDuality plays a large role in solving conic optimization models. Depending on the solver, it can be more efficient to solve the dual instead of the primal. If performance is an issue, see the Dualization tutorial for more details.","category":"page"},{"location":"tutorials/conic/introduction/#How-these-tutorials-are-structured","page":"Introduction","title":"How these tutorials are structured","text":"","category":"section"},{"location":"tutorials/conic/introduction/","page":"Introduction","title":"Introduction","text":"Having a high-level overview of how this part of the documentation is structured will help you know where to look for certain things.","category":"page"},{"location":"tutorials/conic/introduction/","page":"Introduction","title":"Introduction","text":"The following tutorials are worked examples that present a problem in words, then formulate it in mathematics, and then solve it in JuMP. This usually involves some sort of visualization of the solution. Start here if you are new to JuMP.\nExperiment design\nLogistic regression\nThe Tips and tricks tutorial contains a number of helpful reformulations and tricks you can use when modeling conic programs. Look here if you are stuck trying to formulate a problem as a conic program.\nThe remaining tutorials are less verbose and styled in the form of short code examples. These tutorials have less explanation, but may contain useful code snippets, particularly if they are similar to a problem you are trying to solve.","category":"page"},{"location":"moi/tutorials/manipulating_expressions/","page":"Manipulating expressions","title":"Manipulating expressions","text":"EditURL = \"https://github.com/jump-dev/MathOptInterface.jl/blob/v1.20.1/docs/src/tutorials/manipulating_expressions.md\"","category":"page"},{"location":"moi/tutorials/manipulating_expressions/","page":"Manipulating expressions","title":"Manipulating expressions","text":"CurrentModule = MathOptInterface\nDocTestSetup = quote\n import MathOptInterface as MOI\nend\nDocTestFilters = [r\"MathOptInterface|MOI\"]","category":"page"},{"location":"moi/tutorials/manipulating_expressions/#Manipulating-expressions","page":"Manipulating expressions","title":"Manipulating expressions","text":"","category":"section"},{"location":"moi/tutorials/manipulating_expressions/","page":"Manipulating expressions","title":"Manipulating expressions","text":"This guide highlights a syntactically appealing way to build expressions at the MOI level, but also to look at their contents. It may be especially useful when writing models or bridge code.","category":"page"},{"location":"moi/tutorials/manipulating_expressions/#Creating-functions","page":"Manipulating expressions","title":"Creating functions","text":"","category":"section"},{"location":"moi/tutorials/manipulating_expressions/","page":"Manipulating expressions","title":"Manipulating expressions","text":"This section details the ways to create functions with MathOptInterface.","category":"page"},{"location":"moi/tutorials/manipulating_expressions/#Creating-scalar-affine-functions","page":"Manipulating expressions","title":"Creating scalar affine functions","text":"","category":"section"},{"location":"moi/tutorials/manipulating_expressions/","page":"Manipulating expressions","title":"Manipulating expressions","text":"The simplest scalar function is simply a variable:","category":"page"},{"location":"moi/tutorials/manipulating_expressions/","page":"Manipulating expressions","title":"Manipulating expressions","text":"julia> x = MOI.add_variable(model) # Create the variable x\nMOI.VariableIndex(1)","category":"page"},{"location":"moi/tutorials/manipulating_expressions/","page":"Manipulating expressions","title":"Manipulating expressions","text":"This type of function is extremely simple; to express more complex functions, other types must be used. For instance, a ScalarAffineFunction is a sum of linear terms (a factor times a variable) and a constant. Such an object can be built using the standard constructor:","category":"page"},{"location":"moi/tutorials/manipulating_expressions/","page":"Manipulating expressions","title":"Manipulating expressions","text":"julia> f = MOI.ScalarAffineFunction([MOI.ScalarAffineTerm(1, x)], 2) # x + 2\n(2) + (1) MOI.VariableIndex(1)","category":"page"},{"location":"moi/tutorials/manipulating_expressions/","page":"Manipulating expressions","title":"Manipulating expressions","text":"However, you can also use operators to build the same scalar function:","category":"page"},{"location":"moi/tutorials/manipulating_expressions/","page":"Manipulating expressions","title":"Manipulating expressions","text":"julia> f = x + 2\n(2) + (1) MOI.VariableIndex(1)","category":"page"},{"location":"moi/tutorials/manipulating_expressions/#Creating-scalar-quadratic-functions","page":"Manipulating expressions","title":"Creating scalar quadratic functions","text":"","category":"section"},{"location":"moi/tutorials/manipulating_expressions/","page":"Manipulating expressions","title":"Manipulating expressions","text":"Scalar quadratic functions are stored in ScalarQuadraticFunction objects, in a way that is highly similar to scalar affine functions. You can obtain a quadratic function as a product of affine functions:","category":"page"},{"location":"moi/tutorials/manipulating_expressions/","page":"Manipulating expressions","title":"Manipulating expressions","text":"julia> 1 * x * x\n(0) + 1.0 MOI.VariableIndex(1)²\n\njulia> f * f # (x + 2)²\n(4) + (2) MOI.VariableIndex(1) + (2) MOI.VariableIndex(1) + 1.0 MOI.VariableIndex(1)²\n\njulia> f^2 # (x + 2)² too\n(4) + (2) MOI.VariableIndex(1) + (2) MOI.VariableIndex(1) + 1.0 MOI.VariableIndex(1)²","category":"page"},{"location":"moi/tutorials/manipulating_expressions/#Creating-vector-functions","page":"Manipulating expressions","title":"Creating vector functions","text":"","category":"section"},{"location":"moi/tutorials/manipulating_expressions/","page":"Manipulating expressions","title":"Manipulating expressions","text":"A vector function is a function with several values, irrespective of the number of input variables. Similarly to scalar functions, there are three main types of vector functions: VectorOfVariables, VectorAffineFunction, and VectorQuadraticFunction.","category":"page"},{"location":"moi/tutorials/manipulating_expressions/","page":"Manipulating expressions","title":"Manipulating expressions","text":"The easiest way to create a vector function is to stack several scalar functions using Utilities.vectorize. It takes a vector as input, and the generated vector function (of the most appropriate type) has each dimension corresponding to a dimension of the vector.","category":"page"},{"location":"moi/tutorials/manipulating_expressions/","page":"Manipulating expressions","title":"Manipulating expressions","text":"julia> g = MOI.Utilities.vectorize([f, 2 * f])\n┌ ┐\n│(2) + (1) MOI.VariableIndex(1)│\n│(4) + (2) MOI.VariableIndex(1)│\n└ ┘","category":"page"},{"location":"moi/tutorials/manipulating_expressions/","page":"Manipulating expressions","title":"Manipulating expressions","text":"warning: Warning\nUtilities.vectorize only takes a vector of similar scalar functions: you cannot mix VariableIndex and ScalarAffineFunction, for instance. In practice, it means that Utilities.vectorize([x, f]) does not work; you should rather use Utilities.vectorize([1 * x, f]) instead to only have ScalarAffineFunction objects.","category":"page"},{"location":"moi/tutorials/manipulating_expressions/#Canonicalizing-functions","page":"Manipulating expressions","title":"Canonicalizing functions","text":"","category":"section"},{"location":"moi/tutorials/manipulating_expressions/","page":"Manipulating expressions","title":"Manipulating expressions","text":"In more advanced use cases, you might need to ensure that a function is \"canonical.\" Functions are stored as an array of terms, but there is no check that these terms are redundant: a ScalarAffineFunction object might have two terms with the same variable, like x + x + 1. These terms could be merged without changing the semantics of the function: 2x + 1.","category":"page"},{"location":"moi/tutorials/manipulating_expressions/","page":"Manipulating expressions","title":"Manipulating expressions","text":"Working with these objects might be cumbersome. Canonicalization helps maintain redundancy to zero.","category":"page"},{"location":"moi/tutorials/manipulating_expressions/","page":"Manipulating expressions","title":"Manipulating expressions","text":"Utilities.is_canonical checks whether a function is already in its canonical form:","category":"page"},{"location":"moi/tutorials/manipulating_expressions/","page":"Manipulating expressions","title":"Manipulating expressions","text":"julia> MOI.Utilities.is_canonical(f + f) # (x + 2) + (x + 2) is stored as x + x + 4\nfalse","category":"page"},{"location":"moi/tutorials/manipulating_expressions/","page":"Manipulating expressions","title":"Manipulating expressions","text":"Utilities.canonical returns the equivalent canonical version of the function:","category":"page"},{"location":"moi/tutorials/manipulating_expressions/","page":"Manipulating expressions","title":"Manipulating expressions","text":"julia> MOI.Utilities.canonical(f + f) # Returns 2x + 4\n(4) + (2) MOI.VariableIndex(1)","category":"page"},{"location":"moi/tutorials/manipulating_expressions/#Exploring-functions","page":"Manipulating expressions","title":"Exploring functions","text":"","category":"section"},{"location":"moi/tutorials/manipulating_expressions/","page":"Manipulating expressions","title":"Manipulating expressions","text":"At some point, you might need to dig into a function, for instance to map it into solver constructs.","category":"page"},{"location":"moi/tutorials/manipulating_expressions/#Vector-functions","page":"Manipulating expressions","title":"Vector functions","text":"","category":"section"},{"location":"moi/tutorials/manipulating_expressions/","page":"Manipulating expressions","title":"Manipulating expressions","text":"Utilities.scalarize returns a vector of scalar functions from a vector function:","category":"page"},{"location":"moi/tutorials/manipulating_expressions/","page":"Manipulating expressions","title":"Manipulating expressions","text":"julia> MOI.Utilities.scalarize(g) # Returns a vector [f, 2 * f].\n2-element Vector{MathOptInterface.ScalarAffineFunction{Int64}}:\n (2) + (1) MOI.VariableIndex(1)\n (4) + (2) MOI.VariableIndex(1)","category":"page"},{"location":"moi/tutorials/manipulating_expressions/","page":"Manipulating expressions","title":"Manipulating expressions","text":"note: Note\nUtilities.eachscalar returns an iterator on the dimensions, which serves the same purpose as Utilities.scalarize.","category":"page"},{"location":"moi/tutorials/manipulating_expressions/","page":"Manipulating expressions","title":"Manipulating expressions","text":"output_dimension returns the number of dimensions of the output of a function:","category":"page"},{"location":"moi/tutorials/manipulating_expressions/","page":"Manipulating expressions","title":"Manipulating expressions","text":"julia> MOI.output_dimension(g)\n2","category":"page"},{"location":"packages/MosekTools/","page":"jump-dev/MosekTools.jl","title":"jump-dev/MosekTools.jl","text":"EditURL = \"https://github.com/jump-dev/MosekTools.jl/blob/v0.15.1/README.md\"","category":"page"},{"location":"packages/MosekTools/#MosekTools.jl","page":"jump-dev/MosekTools.jl","title":"MosekTools.jl","text":"","category":"section"},{"location":"packages/MosekTools/","page":"jump-dev/MosekTools.jl","title":"jump-dev/MosekTools.jl","text":"MosekTools.jl is the MathOptInterface.jl implementation for the MOSEK solver.","category":"page"},{"location":"packages/MosekTools/","page":"jump-dev/MosekTools.jl","title":"jump-dev/MosekTools.jl","text":"The low-level solver API for MOSEK is found in the package Mosek.jl.","category":"page"},{"location":"packages/MosekTools/#Affiliation","page":"jump-dev/MosekTools.jl","title":"Affiliation","text":"","category":"section"},{"location":"packages/MosekTools/","page":"jump-dev/MosekTools.jl","title":"jump-dev/MosekTools.jl","text":"MosekTools.jl is maintained by the JuMP community and is not officially supported by MOSEK. However, Mosek.jl is an officially supported product of MOSEK.","category":"page"},{"location":"packages/MosekTools/#License","page":"jump-dev/MosekTools.jl","title":"License","text":"","category":"section"},{"location":"packages/MosekTools/","page":"jump-dev/MosekTools.jl","title":"jump-dev/MosekTools.jl","text":"MosekTools.jl is licensed under the MIT License.","category":"page"},{"location":"packages/MosekTools/","page":"jump-dev/MosekTools.jl","title":"jump-dev/MosekTools.jl","text":"The underlying solver is a closed-source commercial product for which you must obtain a license.","category":"page"},{"location":"packages/MosekTools/#Installation","page":"jump-dev/MosekTools.jl","title":"Installation","text":"","category":"section"},{"location":"packages/MosekTools/","page":"jump-dev/MosekTools.jl","title":"jump-dev/MosekTools.jl","text":"The latest release of this package and the master branch are to be used with the latest release of Mosek.jl (which uses MOSEK v10).","category":"page"},{"location":"packages/MosekTools/","page":"jump-dev/MosekTools.jl","title":"jump-dev/MosekTools.jl","text":"To use MOSEK v9 (resp. v8), use the v0.12.x (resp. v0.7.x) releases of this package, and the mosekv9 (resp. mosekv8) branch and v1.2.x (resp. v0.9.x) releases of Mosek.jl.","category":"page"},{"location":"packages/MosekTools/","page":"jump-dev/MosekTools.jl","title":"jump-dev/MosekTools.jl","text":"See the following table for a summary:","category":"page"},{"location":"packages/MosekTools/","page":"jump-dev/MosekTools.jl","title":"jump-dev/MosekTools.jl","text":"MOSEK Mosek.jl MosekTools.jl release MosekTools.jl branch\nv10 v10 v0.13 master\nv9 v0.12 v0.12 mosekv9\nv8 v0.9 v0.7 mosekv8","category":"page"},{"location":"packages/MosekTools/#Use-with-JuMP","page":"jump-dev/MosekTools.jl","title":"Use with JuMP","text":"","category":"section"},{"location":"packages/MosekTools/","page":"jump-dev/MosekTools.jl","title":"jump-dev/MosekTools.jl","text":"using JuMP\nusing MosekTools\nmodel = Model(Mosek.Optimizer)\nset_attribute(model, \"QUIET\", true)\nset_attribute(model, \"INTPNT_CO_TOL_DFEAS\", 1e-7)","category":"page"},{"location":"packages/MosekTools/#Options","page":"jump-dev/MosekTools.jl","title":"Options","text":"","category":"section"},{"location":"packages/MosekTools/","page":"jump-dev/MosekTools.jl","title":"jump-dev/MosekTools.jl","text":"The parameter QUIET is a special parameter that when set to true disables all Mosek printing output.","category":"page"},{"location":"packages/MosekTools/","page":"jump-dev/MosekTools.jl","title":"jump-dev/MosekTools.jl","text":"All other parameters can be found in the Mosek documentation.","category":"page"},{"location":"packages/MosekTools/","page":"jump-dev/MosekTools.jl","title":"jump-dev/MosekTools.jl","text":"Note that the prefix MSK_IPAR_ (for integer parameters), MSK_DPAR_ (for floating point parameters) or MSK_SPAR_ (for string parameters) are optional. If they are not given, they are inferred from the type of the value. For example, in the example above, as 1e-7 is a floating point number, the parameters name used is MSK_DPAR_INTPNT_CO_TOL_DFEAS.","category":"page"},{"location":"developers/style/#Style-guide-and-design-principles","page":"Style Guide","title":"Style guide and design principles","text":"","category":"section"},{"location":"developers/style/#Style-guide","page":"Style Guide","title":"Style guide","text":"","category":"section"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"This section describes the coding style rules that apply to JuMP code and that we recommend for JuMP models and surrounding Julia code. The motivations for a style guide include:","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"conveying best practices for writing readable and maintainable code\nreducing the amount of time spent on bike-shedding by establishing basic naming and formatting conventions\nlowering the barrier for new contributors by codifying the existing practices (for example, you can be more confident your code will pass review if you follow the style guide)","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"In some cases, the JuMP style guide diverges from the Julia style guide. All such cases will be explicitly noted and justified.","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"The JuMP style guide adopts many recommendations from the Google style guides.","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"info: Info\nThe style guide is always a work in progress, and not all JuMP code follows the rules. When modifying JuMP, please fix the style violations of the surrounding code (that is, leave the code tidier than when you started). If large changes are needed, consider separating them into another PR.","category":"page"},{"location":"developers/style/#JuliaFormatter","page":"Style Guide","title":"JuliaFormatter","text":"","category":"section"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"JuMP uses JuliaFormatter.jl as an auto-formatting tool.","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"We use the options contained in .JuliaFormatter.toml.","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"To format code, cd to the JuMP directory, then run:","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"] add JuliaFormatter@1\nusing JuliaFormatter\nformat(\"docs\")\nformat(\"src\")\nformat(\"test\")","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"info: Info\nA continuous integration check verifies that all PRs made to JuMP have passed the formatter.","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"The following sections outline extra style guide points that are not fixed automatically by JuliaFormatter.","category":"page"},{"location":"developers/style/#Abstract-types-and-composition","page":"Style Guide","title":"Abstract types and composition","text":"","category":"section"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"Specifying types for method arguments is mostly optional in Julia. The benefit of abstract method arguments is that it enables functions and types from one package to be used with functions and types from another package via multiple dispatch.","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"However, abstractly typed methods have two main drawbacks:","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"It's possible to find out that you are working with unexpected types deep in the call chain, potentially leading to hard-to-diagnose MethodErrors.\nUntyped function arguments can lead to correctness problems if the user's choice of input type does not satisfy the assumptions made by the author of the function.","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"As a motivating example, consider the following function:","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"julia> function my_sum(x)\n y = 0.0\n for i in 1:length(x)\n y += x[i]\n end\n return y\n end\nmy_sum (generic function with 1 method)","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"This function contains a number of implicit assumptions about the type of x:","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"x supports 1-based getindex and implements length\nThe element type of x supports addition with 0.0, and then with the result of x + 0.0.","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"info: Info\nAs a motivating example for the second point, VariableRef plus Float64 produces an AffExpr. Do not assume that +(::A, ::B) produces an instance of the type A or B.","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"my_sum works as expected if the user passes in Vector{Float64}:","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"julia> my_sum([1.0, 2.0, 3.0])\n6.0","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"but it doesn't respect input types, for example returning a Float64 if the user passes Vector{Int}:","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"julia> my_sum([1, 2, 3])\n6.0","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"but it throws a MethodError if the user passes String:","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"julia> my_sum(\"abc\")\nERROR: MethodError: no method matching +(::Float64, ::Char)\n[...]","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"This particular MethodError is hard to debug, particularly for new users, because it mentions +, Float64, and Char, none of which were called or passed by the user.","category":"page"},{"location":"developers/style/#Dealing-with-MethodErrors","page":"Style Guide","title":"Dealing with MethodErrors","text":"","category":"section"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"This section diverges from the Julia style guide, as well as other common guides like SciML. The following suggestions are intended to provide a friendlier experience for novice Julia programmers, at the cost of limiting the power and flexibility of advanced Julia programmers.","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"Code should follow the MethodError principle:","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"info: The MethodError principle\nA user should see a MethodError only for methods that they called directly.","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"Bad:","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"_internal_function(x::Integer) = x + 1\n# The user sees a MethodError for _internal_function when calling\n# public_function(\"a string\"). This is not very helpful.\npublic_function(x) = _internal_function(x)","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"Good:","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"_internal_function(x::Integer) = x + 1\n# The user sees a MethodError for public_function when calling\n# public_function(\"a string\"). This is easy to understand.\npublic_function(x::Integer) = _internal_function(x)","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"If it is hard to provide an error message at the top of the call chain, then the following pattern is also ok:","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"_internal_function(x::Integer) = x + 1\nfunction _internal_function(x)\n error(\n \"Internal error. This probably means that you called \" *\n \"`public_function()`s with the wrong type.\",\n )\nend\npublic_function(x) = _internal_function(x)","category":"page"},{"location":"developers/style/#Dealing-with-correctness","page":"Style Guide","title":"Dealing with correctness","text":"","category":"section"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"Dealing with correctness is harder, because Julia has no way of formally specifying interfaces that abstract types must implement. Instead, here are two options that you can use when writing and interacting with generic code:","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"Option 1: use concrete types and let users extend new methods.","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"In this option, explicitly restrict input arguments to concrete types that are tested and have been validated for correctness. For example:","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"julia> function my_sum_option_1(x::Vector{Float64})\n y = 0.0\n for i in 1:length(x)\n y += x[i]\n end\n return y\n end\nmy_sum_option_1 (generic function with 1 method)\n\njulia> my_sum_option_1([1.0, 2.0, 3.0])\n6.0","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"Using concrete types satisfies the MethodError principle:","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"julia> my_sum_option_1(\"abc\")\nERROR: MethodError: no method matching my_sum_option_1(::String)","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"and it allows other types to be supported in future by defining new methods:","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"julia> function my_sum_option_1(x::Array{T,N}) where {T<:Number,N}\n y = zero(T)\n for i in eachindex(x)\n y += x[i]\n end\n return y\n end\nmy_sum_option_1 (generic function with 2 methods)","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"Importantly, these methods do not have to be defined in the original package.","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"info: Info\nSome usage of abstract types is okay. For example, in my_sum_option_1, we allowed the element type, T, to be a subtype of Number. This is fairly safe, but it still has an implicit assumption that T supports zero(T) and +(::T, ::T).","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"Option 2: program defensively, and validate all assumptions.","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"An alternative is to program defensively, and to rigorously document and validate all assumptions that the code makes. In particular:","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"All assumptions on abstract types that aren't guaranteed by the definition of the abstract type (for example, optional methods without a fallback) should be documented.\nIf practical, the assumptions should be checked in code, and informative error messages should be provided to the user if the assumptions are not met. In general, these checks may be expensive, so you should prefer to do this once, at the highest level of the call-chain.\nTests should cover for a range of corner cases and argument types.","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"For example:","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"\"\"\"\n test_my_sum_defensive_assumptions(x::AbstractArray{T}) where {T}\n\nTest the assumptions made by `my_sum_defensive`.\n\"\"\"\nfunction test_my_sum_defensive_assumptions(x::AbstractArray{T}) where {T}\n try\n # Some types may not define zero.\n @assert zero(T) isa T\n # Check iteration supported\n @assert iterate(x) isa Union{Nothing,Tuple{T,Int}}\n # Check that + is defined\n @assert +(zero(T), zero(T)) isa Any\n catch err\n error(\n \"Unable to call my_sum_defensive(::$(typeof(x))) because \" *\n \"it failed an internal assumption\",\n )\n end\n return\nend\n\n\"\"\"\n my_sum_defensive(x::AbstractArray{T}) where {T}\n\nReturn the sum of the elements in the abstract array `x`.\n\n## Assumptions\n\nThis function makes the following assumptions:\n\n * That `zero(T)` is defined\n * That `x` supports the iteration interface\n * That `+(::T, ::T)` is defined\n\"\"\"\nfunction my_sum_defensive(x::AbstractArray{T}) where {T}\n test_my_sum_defensive_assumptions(x)\n y = zero(T)\n for xi in x\n y += xi\n end\n return y\nend\n\n# output\n\nmy_sum_defensive","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"This function works on Vector{Float64}:","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"julia> my_sum_defensive([1.0, 2.0, 3.0])\n6.0","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"as well as Matrix{Rational{Int}}:","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"julia> my_sum_defensive([(1//2) + (4//3)im; (6//5) + (7//11)im])\n17//10 + 65//33*im","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"and it throws an error when the assumptions aren't met:","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"julia> my_sum_defensive(['a', 'b', 'c'])\nERROR: Unable to call my_sum_defensive(::Vector{Char}) because it failed an internal assumption\n[...]","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"As an alternative, you may choose not to call test_my_sum_defensive_assumptions within my_sum_defensive, and instead ask users of my_sum_defensive to call it in their tests.","category":"page"},{"location":"developers/style/#Juxtaposed-multiplication","page":"Style Guide","title":"Juxtaposed multiplication","text":"","category":"section"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"Only use juxtaposed multiplication when the right-hand side is a symbol.","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"Good:","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"2x # Acceptable if there are space constraints.\n2 * x # This is preferred if space is not an issue.\n2 * (x + 1)","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"Bad:","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"2(x + 1)","category":"page"},{"location":"developers/style/#Empty-vectors","page":"Style Guide","title":"Empty vectors","text":"","category":"section"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"For a type T, T[] and Vector{T}() are equivalent ways to create an empty vector with element type T. Prefer T[] because it is more concise.","category":"page"},{"location":"developers/style/#Comments","page":"Style Guide","title":"Comments","text":"","category":"section"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"For non-native speakers and for general clarity, comments in code must be proper English sentences with appropriate punctuation.","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"Good:","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"# This is a comment demonstrating a good comment.","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"Bad:","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"# a bad comment","category":"page"},{"location":"developers/style/#JuMP-macro-syntax","page":"Style Guide","title":"JuMP macro syntax","text":"","category":"section"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"For consistency, always use parentheses.","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"Good:","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"@variable(model, x >= 0)","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"Bad:","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"@variable model x >= 0","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"For consistency, always use constant * variable as opposed to variable * constant. This makes it easier to read models in ambiguous cases like a * x.","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"Good:","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"a = 4\n@constraint(model, 3 * x <= 1)\n@constraint(model, a * x <= 1)","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"Bad:","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"a = 4\n@constraint(model, x * 3 <= 1)\n@constraint(model, x * a <= 1)","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"In order to reduce boilerplate code, prefer the plural form of macros over lots of repeated calls to singular forms.","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"Good:","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"@variables(model, begin\n x >= 0\n y >= 1\n z <= 2\nend)","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"Bad:","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"@variable(model, x >= 0)\n@variable(model, y >= 1)\n@variable(model, z <= 2)","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"An exception is made for calls with many keyword arguments, since these need to be enclosed in parentheses in order to parse properly.","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"Acceptable:","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"@variable(model, x >= 0, start = 0.0, base_name = \"my_x\")\n@variable(model, y >= 1, start = 2.0)\n@variable(model, z <= 2, start = -1.0)","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"Also acceptable:","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"@variables(model, begin\n x >= 0, (start = 0.0, base_name = \"my_x\")\n y >= 1, (start = 2.0)\n z <= 2, (start = -1.0)\nend)","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"While we always use in for for-loops, it is acceptable to use = in the container declarations of JuMP macros.","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"Okay:","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"@variable(model, x[i=1:3])","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"Also okay:","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"@variable(model, x[i in 1:3])","category":"page"},{"location":"developers/style/#Naming","page":"Style Guide","title":"Naming","text":"","category":"section"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"module SomeModule end\nfunction some_function end\nconst SOME_CONSTANT = ...\nstruct SomeStruct\n some_field::SomeType\nend\n@enum SomeEnum ENUM_VALUE_A ENUM_VALUE_B\nsome_local_variable = ...\nsome_file.jl # Except for ModuleName.jl.","category":"page"},{"location":"developers/style/#Exported-and-non-exported-names","page":"Style Guide","title":"Exported and non-exported names","text":"","category":"section"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"Begin private module level functions and constants with an underscore. All other objects in the scope of a module should be exported. (See JuMP.jl for an example of how to do this.)","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"Names beginning with an underscore should only be used for distinguishing between exported (public) and non-exported (private) objects. Therefore, never begin the name of a local variable with an underscore.","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"module MyModule\n\nexport public_function, PUBLIC_CONSTANT\n\nfunction _private_function()\n local_variable = 1\n return\nend\n\nfunction public_function end\n\nconst _PRIVATE_CONSTANT = 3.14159\nconst PUBLIC_CONSTANT = 1.41421\n\nend","category":"page"},{"location":"developers/style/#Use-of-underscores-within-names","page":"Style Guide","title":"Use of underscores within names","text":"","category":"section"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"The Julia style guide recommends avoiding underscores \"when readable,\" for example, haskey, isequal, remotecall, and remotecall_fetch. This convention creates the potential for unnecessary bikeshedding and also forces the user to recall the presence/absence of an underscore, for example, \"was that argument named basename or base_name?\". For consistency, always use underscores in variable names and function names to separate words.","category":"page"},{"location":"developers/style/#Use-of-!","page":"Style Guide","title":"Use of !","text":"","category":"section"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"Julia has a convention of appending ! to a function name if the function modifies its arguments. We recommend to:","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"Omit ! when the name itself makes it clear that modification is taking place, for example, add_constraint and set_name. We depart from the Julia style guide because ! does not provide a reader with any additional information in this case, and adherence to this convention is not uniform even in base Julia itself (consider Base.println and Base.finalize).\nUse ! in all other cases. In particular it can be used to distinguish between modifying and non-modifying variants of the same function like scale and scale!.","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"Note that ! is not a self-documenting feature because it is still ambiguous which arguments are modified when multiple arguments are present. Be sure to document which arguments are modified in the method's docstring.","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"See also the Julia style guide recommendations for ordering of function arguments.","category":"page"},{"location":"developers/style/#Abbreviations","page":"Style Guide","title":"Abbreviations","text":"","category":"section"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"Abbreviate names to make the code more readable, not to save typing. Don't arbitrarily delete letters from a word to abbreviate it (for example, indx). Use abbreviations consistently within a body of code (for example, do not mix con and constr, idx and indx).","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"Common abbreviations:","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"num for number\ncon for constraint","category":"page"},{"location":"developers/style/#No-one-letter-variable-names","page":"Style Guide","title":"No one-letter variable names","text":"","category":"section"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"Where possible, avoid one-letter variable names.","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"Use model = Model() instead of m = Model()","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"Exceptions are made for indices in loops.","category":"page"},{"location":"developers/style/#@enum-vs.-Symbol","page":"Style Guide","title":"@enum vs. Symbol","text":"","category":"section"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"The @enum macro lets you define types with a finite number of values that are explicitly enumerated (like enum in C/C++). Symbols are lightweight strings that are used to represent identifiers in Julia (for example, :x).","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"@enum provides type safety and can have docstrings attached to explain the possible values. Use @enums when applicable, for example, for reporting statuses. Use strings to provide long-form additional information like error messages.","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"Use of Symbol should typically be reserved for identifiers, for example, for lookup in the JuMP model (model[:my_variable]).","category":"page"},{"location":"developers/style/#using-vs.-import","page":"Style Guide","title":"using vs. import","text":"","category":"section"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"using ModuleName brings all symbols exported by the module ModuleName into scope, while import ModuleName brings only the module itself into scope. (See the Julia manual) for examples and more details.","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"For the same reason that from import * is not recommended in python (PEP 8), avoid using ModuleName except in throw-away scripts or at the REPL. The using statement makes it harder to track where symbols come from and exposes the code to ambiguities when two modules export the same symbol.","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"Prefer using ModuleName: x, p to import ModuleName.x, ModuleName.p and import MyModule: x, p because the import versions allow method extension without qualifying with the module name.","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"Similarly, using ModuleName: ModuleName is an acceptable substitute for import ModuleName, because it does not bring all symbols exported by ModuleName into scope. However, we prefer import ModuleName for consistency.","category":"page"},{"location":"developers/style/#Documentation","page":"Style Guide","title":"Documentation","text":"","category":"section"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"This section describes the writing style that should be used when writing documentation for JuMP (and supporting packages).","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"We can recommend the documentation style guides by Divio, Google, and Write the Docs as general reading for those writing documentation. This guide delegates a thorough handling of the topic to those guides and instead elaborates on the points more specific to Julia and documentation that use Documenter.","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"Be concise\nUse lists instead of long sentences\nUse numbered lists when describing a sequence, for example, (1) do X, (2) then Y\nUse bullet points when the items are not ordered\nExample code should be covered by doctests\nWhen a word is a Julia symbol and not an English word, enclose it with backticks. In addition, if it has a docstring in this doc add a link using @ref. If it is a plural, add the \"s\" after the closing backtick. For example,\n[`VariableRef`](@ref)s\nUse @meta blocks for TODOs and other comments that shouldn't be visible to readers. For example,\n```@meta\n# TODO: Mention also X, Y, and Z.\n```","category":"page"},{"location":"developers/style/#Docstrings","page":"Style Guide","title":"Docstrings","text":"","category":"section"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"Every exported object needs a docstring\nAll examples in docstrings should be jldoctests\nAlways use complete English sentences with proper punctuation\nDo not terminate lists with punctuation (for example, as in this doc)","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"Here is an example:","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"\"\"\"\n signature(args; kwargs...)\n\nShort sentence describing the function.\n\nOptional: add a slightly longer paragraph describing the function.\n\n## Notes\n\n - List any notes that the user should be aware of\n\n## Examples\n\n```jldoctest\njulia> 1 + 1\n2\n```\n\"\"\"","category":"page"},{"location":"developers/style/#Testing","page":"Style Guide","title":"Testing","text":"","category":"section"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"Use a module to encapsulate tests, and structure all tests as functions. This avoids leaking local variables between tests.","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"Here is a basic skeleton:","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"module TestPkg\n\nusing Test\n\nfunction runtests()\n for name in names(@__MODULE__; all = true)\n if startswith(\"$(name)\", \"test_\")\n @testset \"$(name)\" begin\n getfield(@__MODULE__, name)()\n end\n end\n end\n return\nend\n\n_helper_function() = 2\n\nfunction test_addition()\n @test 1 + 1 == _helper_function()\n return\nend\n\nend # module TestPkg\n\nTestPkg.runtests()","category":"page"},{"location":"developers/style/","page":"Style Guide","title":"Style Guide","text":"Break the tests into multiple files, with one module per file, so that subsets of the codebase can be tested by calling include with the relevant file.","category":"page"},{"location":"moi/submodules/Test/overview/","page":"Overview","title":"Overview","text":"EditURL = \"https://github.com/jump-dev/MathOptInterface.jl/blob/v1.20.1/docs/src/submodules/Test/overview.md\"","category":"page"},{"location":"moi/submodules/Test/overview/","page":"Overview","title":"Overview","text":"CurrentModule = MathOptInterface\nDocTestSetup = quote\n import MathOptInterface as MOI\nend\nDocTestFilters = [r\"MathOptInterface|MOI\"]","category":"page"},{"location":"moi/submodules/Test/overview/#test_module","page":"Overview","title":"The Test submodule","text":"","category":"section"},{"location":"moi/submodules/Test/overview/","page":"Overview","title":"Overview","text":"The Test submodule provides tools to help solvers implement unit tests in order to ensure they implement the MathOptInterface API correctly, and to check for solver-correctness.","category":"page"},{"location":"moi/submodules/Test/overview/","page":"Overview","title":"Overview","text":"We use a centralized repository of tests, so that if we find a bug in one solver, instead of adding a test to that particular repository, we add it here so that all solvers can benefit.","category":"page"},{"location":"moi/submodules/Test/overview/#How-to-test-a-solver","page":"Overview","title":"How to test a solver","text":"","category":"section"},{"location":"moi/submodules/Test/overview/","page":"Overview","title":"Overview","text":"The skeleton below can be used for the wrapper test file of a solver named FooBar.","category":"page"},{"location":"moi/submodules/Test/overview/","page":"Overview","title":"Overview","text":"# ============================ /test/MOI_wrapper.jl ============================\nmodule TestFooBar\n\nimport FooBar\nusing Test\n\nimport MathOptInterface as MOI\n\nconst OPTIMIZER = MOI.instantiate(\n MOI.OptimizerWithAttributes(FooBar.Optimizer, MOI.Silent() => true),\n)\n\nconst BRIDGED = MOI.instantiate(\n MOI.OptimizerWithAttributes(FooBar.Optimizer, MOI.Silent() => true),\n with_bridge_type = Float64,\n)\n\n# See the docstring of MOI.Test.Config for other arguments.\nconst CONFIG = MOI.Test.Config(\n # Modify tolerances as necessary.\n atol = 1e-6,\n rtol = 1e-6,\n # Use MOI.LOCALLY_SOLVED for local solvers.\n optimal_status = MOI.OPTIMAL,\n # Pass attributes or MOI functions to `exclude` to skip tests that\n # rely on this functionality.\n exclude = Any[MOI.VariableName, MOI.delete],\n)\n\n\"\"\"\n runtests()\n\nThis function runs all functions in the this Module starting with `test_`.\n\"\"\"\nfunction runtests()\n for name in names(@__MODULE__; all = true)\n if startswith(\"$(name)\", \"test_\")\n @testset \"$(name)\" begin\n getfield(@__MODULE__, name)()\n end\n end\n end\nend\n\n\"\"\"\n test_runtests()\n\nThis function runs all the tests in MathOptInterface.Test.\n\nPass arguments to `exclude` to skip tests for functionality that is not\nimplemented or that your solver doesn't support.\n\"\"\"\nfunction test_runtests()\n MOI.Test.runtests(\n BRIDGED,\n CONFIG,\n exclude = [\n \"test_attribute_NumberOfThreads\",\n \"test_quadratic_\",\n ],\n # This argument is useful to prevent tests from failing on future\n # releases of MOI that add new tests. Don't let this number get too far\n # behind the current MOI release though. You should periodically check\n # for new tests to fix bugs and implement new features.\n exclude_tests_after = v\"0.10.5\",\n )\n return\nend\n\n\"\"\"\n test_SolverName()\n\nYou can also write new tests for solver-specific functionality. Write each new\ntest as a function with a name beginning with `test_`.\n\"\"\"\nfunction test_SolverName()\n @test MOI.get(FooBar.Optimizer(), MOI.SolverName()) == \"FooBar\"\n return\nend\n\nend # module TestFooBar\n\n# This line at tne end of the file runs all the tests!\nTestFooBar.runtests()","category":"page"},{"location":"moi/submodules/Test/overview/","page":"Overview","title":"Overview","text":"Then modify your runtests.jl file to include the MOI_wrapper.jl file:","category":"page"},{"location":"moi/submodules/Test/overview/","page":"Overview","title":"Overview","text":"# ============================ /test/runtests.jl ============================\n\nusing Test\n\n@testset \"MOI\" begin\n include(\"test/MOI_wrapper.jl\")\nend","category":"page"},{"location":"moi/submodules/Test/overview/","page":"Overview","title":"Overview","text":"info: Info\nThe optimizer BRIDGED constructed with instantiate automatically bridges constraints that are not supported by OPTIMIZER using the bridges listed in Bridges. It is recommended for an implementation of MOI to only support constraints that are natively supported by the solver and let bridges transform the constraint to the appropriate form. For this reason it is expected that tests may not pass if OPTIMIZER is used instead of BRIDGED.","category":"page"},{"location":"moi/submodules/Test/overview/#How-to-debug-a-failing-test","page":"Overview","title":"How to debug a failing test","text":"","category":"section"},{"location":"moi/submodules/Test/overview/","page":"Overview","title":"Overview","text":"When writing a solver, it's likely that you will initially fail many tests. Some failures will be bugs, but other failures you may choose to exclude.","category":"page"},{"location":"moi/submodules/Test/overview/","page":"Overview","title":"Overview","text":"There are two ways to exclude tests:","category":"page"},{"location":"moi/submodules/Test/overview/","page":"Overview","title":"Overview","text":"Exclude tests whose names contain a string using:\nMOI.Test.runtests(\n model,\n config;\n exclude = String[\"test_to_exclude\", \"test_conic_\"],\n)\nThis will exclude tests whose name contains either of the two strings provided.\nExclude tests which rely on specific functionality using:\nMOI.Test.Config(exclude = Any[MOI.VariableName, MOI.optimize!])\nThis will exclude tests which use the MOI.VariableName attribute, or which call MOI.optimize!.","category":"page"},{"location":"moi/submodules/Test/overview/","page":"Overview","title":"Overview","text":"Each test that fails can be independently called as:","category":"page"},{"location":"moi/submodules/Test/overview/","page":"Overview","title":"Overview","text":"model = FooBar.Optimizer()\nconfig = MOI.Test.Config()\nMOI.empty!(model)\nMOI.Test.test_category_name_that_failed(model, config)","category":"page"},{"location":"moi/submodules/Test/overview/","page":"Overview","title":"Overview","text":"You can look-up the source code of the test that failed by searching for it in the src/Test/test_category.jl file.","category":"page"},{"location":"moi/submodules/Test/overview/","page":"Overview","title":"Overview","text":"tip: Tip\nEach test function also has a docstring that explains what the test is for. Use ? MOI.Test.test_category_name_that_failed from the REPL to read it.","category":"page"},{"location":"moi/submodules/Test/overview/","page":"Overview","title":"Overview","text":"Periodically, you should re-run excluded tests to see if they now pass. The easiest way to do this is to swap the exclude keyword argument of runtests to include. For example:","category":"page"},{"location":"moi/submodules/Test/overview/","page":"Overview","title":"Overview","text":"MOI.Test.runtests(\n model,\n config;\n exclude = String[\"test_to_exclude\", \"test_conic_\"],\n)","category":"page"},{"location":"moi/submodules/Test/overview/","page":"Overview","title":"Overview","text":"becomes","category":"page"},{"location":"moi/submodules/Test/overview/","page":"Overview","title":"Overview","text":"MOI.Test.runtests(\n model,\n config;\n include = String[\"test_to_exclude\", \"test_conic_\"],\n)","category":"page"},{"location":"moi/submodules/Test/overview/#How-to-add-a-test","page":"Overview","title":"How to add a test","text":"","category":"section"},{"location":"moi/submodules/Test/overview/","page":"Overview","title":"Overview","text":"To detect bugs in solvers, we add new tests to MOI.Test.","category":"page"},{"location":"moi/submodules/Test/overview/","page":"Overview","title":"Overview","text":"As an example, ECOS errored calling optimize! twice in a row. (See ECOS.jl PR #72.) We could add a test to ECOS.jl, but that would only stop us from re-introducing the bug to ECOS.jl in the future, but it would not catch other solvers in the ecosystem with the same bug. Instead, if we add a test to MOI.Test, then all solvers will also check that they handle a double optimize call.","category":"page"},{"location":"moi/submodules/Test/overview/","page":"Overview","title":"Overview","text":"For this test, we care about correctness, rather than performance. therefore, we don't expect solvers to efficiently decide that they have already solved the problem, only that calling optimize! twice doesn't throw an error or give the wrong answer.","category":"page"},{"location":"moi/submodules/Test/overview/","page":"Overview","title":"Overview","text":"Step 1","category":"page"},{"location":"moi/submodules/Test/overview/","page":"Overview","title":"Overview","text":"Install the MathOptInterface julia package in dev mode:","category":"page"},{"location":"moi/submodules/Test/overview/","page":"Overview","title":"Overview","text":"julia> ]\n(@v1.6) pkg> dev MathOptInterface","category":"page"},{"location":"moi/submodules/Test/overview/","page":"Overview","title":"Overview","text":"Step 2","category":"page"},{"location":"moi/submodules/Test/overview/","page":"Overview","title":"Overview","text":"From here on, proceed with making the following changes in the ~/.julia/dev/MathOptInterface folder (or equivalent dev path on your machine).","category":"page"},{"location":"moi/submodules/Test/overview/","page":"Overview","title":"Overview","text":"Step 3","category":"page"},{"location":"moi/submodules/Test/overview/","page":"Overview","title":"Overview","text":"Since the double-optimize error involves solving an optimization problem, add a new test to src/Test/test_solve.jl:","category":"page"},{"location":"moi/submodules/Test/overview/","page":"Overview","title":"Overview","text":"\"\"\"\n test_unit_optimize!_twice(model::MOI.ModelLike, config::Config)\n\nTest that calling `MOI.optimize!` twice does not error.\n\nThis problem was first detected in ECOS.jl PR#72:\nhttps://github.com/jump-dev/ECOS.jl/pull/72\n\"\"\"\nfunction test_unit_optimize!_twice(\n model::MOI.ModelLike,\n config::Config{T},\n) where {T}\n # Use the `@requires` macro to check conditions that the test function\n # requires to run. Models failing this `@requires` check will silently skip\n # the test.\n @requires MOI.supports_constraint(\n model,\n MOI.VariableIndex,\n MOI.GreaterThan{Float64},\n )\n @requires _supports(config, MOI.optimize!)\n # If needed, you can test that the model is empty at the start of the test.\n # You can assume that this will be the case for tests run via `runtests`.\n # User's calling tests individually need to call `MOI.empty!` themselves.\n @test MOI.is_empty(model)\n # Create a simple model. Try to make this as simple as possible so that the\n # majority of solvers can run the test.\n x = MOI.add_variable(model)\n MOI.add_constraint(model, x, MOI.GreaterThan(one(T)))\n MOI.set(model, MOI.ObjectiveSense(), MOI.MIN_SENSE)\n MOI.set(\n model,\n MOI.ObjectiveFunction{MOI.VariableIndex}(),\n x,\n )\n # The main component of the test: does calling `optimize!` twice error?\n MOI.optimize!(model)\n MOI.optimize!(model)\n # Check we have a solution.\n @test MOI.get(model, MOI.TerminationStatus()) == MOI.OPTIMAL\n # There is a three-argument version of `Base.isapprox` for checking\n # approximate equality based on the tolerances defined in `config`:\n @test isapprox(MOI.get(model, MOI.VariablePrimal(), x), one(T), config)\n # For code-style, these tests should always `return` `nothing`.\n return\nend","category":"page"},{"location":"moi/submodules/Test/overview/","page":"Overview","title":"Overview","text":"info: Info\nMake sure the function is agnostic to the number type T; don't assume it is a Float64 capable solver.","category":"page"},{"location":"moi/submodules/Test/overview/","page":"Overview","title":"Overview","text":"We also need to write a test for the test. Place this function immediately below the test you just wrote in the same file:","category":"page"},{"location":"moi/submodules/Test/overview/","page":"Overview","title":"Overview","text":"function setup_test(\n ::typeof(test_unit_optimize!_twice),\n model::MOI.Utilities.MockOptimizer,\n ::Config,\n)\n MOI.Utilities.set_mock_optimize!(\n model,\n (mock::MOI.Utilities.MockOptimizer) -> MOIU.mock_optimize!(\n mock,\n MOI.OPTIMAL,\n (MOI.FEASIBLE_POINT, [1.0]),\n ),\n )\n return\nend","category":"page"},{"location":"moi/submodules/Test/overview/","page":"Overview","title":"Overview","text":"Finally, you also need to implement Test.version_added. If we added this test when the latest released version of MOI was v0.10.5, define:","category":"page"},{"location":"moi/submodules/Test/overview/","page":"Overview","title":"Overview","text":"version_added(::typeof(test_unit_optimize!_twice)) = v\"0.10.6\"","category":"page"},{"location":"moi/submodules/Test/overview/","page":"Overview","title":"Overview","text":"Step 6","category":"page"},{"location":"moi/submodules/Test/overview/","page":"Overview","title":"Overview","text":"Commit the changes to git from ~/.julia/dev/MathOptInterface and submit the PR for review.","category":"page"},{"location":"moi/submodules/Test/overview/","page":"Overview","title":"Overview","text":"tip: Tip\nIf you need help writing a test, open an issue on GitHub, or ask the Developer Chatroom.","category":"page"},{"location":"moi/submodules/Utilities/reference/","page":"API Reference","title":"API Reference","text":"EditURL = \"https://github.com/jump-dev/MathOptInterface.jl/blob/v1.20.1/docs/src/submodules/Utilities/reference.md\"","category":"page"},{"location":"moi/submodules/Utilities/reference/","page":"API Reference","title":"API Reference","text":"CurrentModule = MathOptInterface\nDocTestSetup = quote\n import MathOptInterface as MOI\nend\nDocTestFilters = [r\"MathOptInterface|MOI\"]","category":"page"},{"location":"moi/submodules/Utilities/reference/#Utilities.Model","page":"API Reference","title":"Utilities.Model","text":"","category":"section"},{"location":"moi/submodules/Utilities/reference/","page":"API Reference","title":"API Reference","text":"Utilities.Model","category":"page"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.Model","page":"API Reference","title":"MathOptInterface.Utilities.Model","text":"MOI.Utilities.Model{T}() where {T}\n\nAn implementation of ModelLike that supports all functions and sets defined in MOI. It is parameterized by the coefficient type.\n\nExamples\n\njulia> import MathOptInterface as MOI\n\njulia> model = MOI.Utilities.Model{Float64}()\nMOIU.Model{Float64}\n\n\n\n\n\n","category":"type"},{"location":"moi/submodules/Utilities/reference/#Utilities.UniversalFallback","page":"API Reference","title":"Utilities.UniversalFallback","text":"","category":"section"},{"location":"moi/submodules/Utilities/reference/","page":"API Reference","title":"API Reference","text":"Utilities.UniversalFallback","category":"page"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.UniversalFallback","page":"API Reference","title":"MathOptInterface.Utilities.UniversalFallback","text":"UniversalFallback\n\nThe UniversalFallback can be applied on a MOI.ModelLike model to create the model UniversalFallback(model) supporting any constraint and attribute. This allows to have a specialized implementation in model for performance critical constraints and attributes while still supporting other attributes with a small performance penalty. Note that model is unaware of constraints and attributes stored by UniversalFallback so this is not appropriate if model is an optimizer (for this reason, MOI.optimize! has not been implemented). In that case, optimizer bridges should be used instead.\n\n\n\n\n\n","category":"type"},{"location":"moi/submodules/Utilities/reference/#Utilities.@model","page":"API Reference","title":"Utilities.@model","text":"","category":"section"},{"location":"moi/submodules/Utilities/reference/","page":"API Reference","title":"API Reference","text":"Utilities.@model\nUtilities.GenericModel\nUtilities.GenericOptimizer","category":"page"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.@model","page":"API Reference","title":"MathOptInterface.Utilities.@model","text":"macro model(\n model_name,\n scalar_sets,\n typed_scalar_sets,\n vector_sets,\n typed_vector_sets,\n scalar_functions,\n typed_scalar_functions,\n vector_functions,\n typed_vector_functions,\n is_optimizer = false\n)\n\nCreates a type model_name implementing the MOI model interface and supporting all combinations of the provided functions and sets.\n\nEach typed_ scalar/vector sets/functions argument is a tuple of types. A type is \"typed\" if it has a coefficient {T} as the first type parameter.\n\nTuple syntax\n\nTo give no set/function, write (). To give one set or function X, write (X,).\n\nis_optimizer\n\nIf is_optimizer = true, the resulting struct is a of GenericOptimizer, which is a subtype of MOI.AbstractOptimizer, otherwise, it is a GenericModel, which is a subtype of MOI.ModelLike.\n\nVariableIndex\n\nThe function MOI.VariableIndex must not be given in scalar_functions.\nThe model supports MOI.VariableIndex-in-S constraints where S is MOI.EqualTo, MOI.GreaterThan, MOI.LessThan, MOI.Interval, MOI.Integer, MOI.ZeroOne, MOI.Semicontinuous or MOI.Semiinteger.\nThe sets supported with MOI.VariableIndex cannot be controlled from the macro; use UniversalFallback to support more sets.\n\nExamples\n\nThe model describing a linear program would be:\n\n@model(\n LPModel, # model_name\n (), # untyped scalar sets\n (MOI.EqualTo, MOI.GreaterThan, MOI.LessThan, MOI.Interval), # typed scalar sets\n (MOI.Zeros, MOI.Nonnegatives, MOI.Nonpositives), # untyped vector sets\n (), # typed vector sets\n (), # untyped scalar functions\n (MOI.ScalarAffineFunction,), # typed scalar functions\n (MOI.VectorOfVariables,), # untyped vector functions\n (MOI.VectorAffineFunction,), # typed vector functions\n false, # is_optimizer\n)\n\n\n\n\n\n","category":"macro"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.GenericModel","page":"API Reference","title":"MathOptInterface.Utilities.GenericModel","text":"mutable struct GenericModel{T,O,V,C} <: AbstractModelLike{T}\n\nImplements a model supporting coefficients of type T and:\n\nAn objective function stored in .objective::O\nVariables and VariableIndex constraints stored in .variable_bounds::V\nF-in-S constraints (excluding VariableIndex constraints) stored in .constraints::C\n\nAll interactions take place via the MOI interface, so the types O, V, and C must implement the API as needed for their functionality.\n\n\n\n\n\n","category":"type"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.GenericOptimizer","page":"API Reference","title":"MathOptInterface.Utilities.GenericOptimizer","text":"mutable struct GenericOptimizer{T,O,V,C} <: AbstractOptimizer{T}\n\nImplements a model supporting coefficients of type T and:\n\nAn objective function stored in .objective::O\nVariables and VariableIndex constraints stored in .variable_bounds::V\nF-in-S constraints (excluding VariableIndex constraints) stored in .constraints::C\n\nAll interactions take place via the MOI interface, so the types O, V, and C must implement the API as needed for their functionality.\n\n\n\n\n\n","category":"type"},{"location":"moi/submodules/Utilities/reference/#.objective","page":"API Reference","title":".objective","text":"","category":"section"},{"location":"moi/submodules/Utilities/reference/","page":"API Reference","title":"API Reference","text":"Utilities.ObjectiveContainer","category":"page"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.ObjectiveContainer","page":"API Reference","title":"MathOptInterface.Utilities.ObjectiveContainer","text":"ObjectiveContainer{T}\n\nA helper struct to simplify the handling of objective functions in Utilities.Model.\n\n\n\n\n\n","category":"type"},{"location":"moi/submodules/Utilities/reference/#.variables","page":"API Reference","title":".variables","text":"","category":"section"},{"location":"moi/submodules/Utilities/reference/","page":"API Reference","title":"API Reference","text":"Utilities.VariablesContainer\nUtilities.FreeVariables","category":"page"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.VariablesContainer","page":"API Reference","title":"MathOptInterface.Utilities.VariablesContainer","text":"struct VariablesContainer{T} <: AbstractVectorBounds\n set_mask::Vector{UInt16}\n lower::Vector{T}\n upper::Vector{T}\nend\n\nA struct for storing variables and VariableIndex-related constraints. Used in MOI.Utilities.Model by default.\n\n\n\n\n\n","category":"type"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.FreeVariables","page":"API Reference","title":"MathOptInterface.Utilities.FreeVariables","text":"mutable struct FreeVariables <: MOI.ModelLike\n n::Int64\n FreeVariables() = new(0)\nend\n\nA struct for storing free variables that can be used as the variables field of GenericModel or GenericModel. It represents a model that does not support any constraint nor objective function.\n\nExample\n\nThe following model type represents a conic model in geometric form. As opposed to VariablesContainer, FreeVariables does not support constraint bounds so they are bridged into an affine constraint in the MOI.Nonnegatives cone as expected for the geometric conic form.\n\njulia> MOI.Utilities.@product_of_sets(\n Cones,\n MOI.Zeros,\n MOI.Nonnegatives,\n MOI.SecondOrderCone,\n MOI.PositiveSemidefiniteConeTriangle,\n);\n\njulia> const ConicModel{T} = MOI.Utilities.GenericOptimizer{\n T,\n MOI.Utilities.ObjectiveContainer{T},\n MOI.Utilities.FreeVariables,\n MOI.Utilities.MatrixOfConstraints{\n T,\n MOI.Utilities.MutableSparseMatrixCSC{\n T,\n Int,\n MOI.Utilities.OneBasedIndexing,\n },\n Vector{T},\n Cones{T},\n },\n};\n\njulia> model = MOI.instantiate(ConicModel{Float64}, with_bridge_type=Float64);\n\njulia> x = MOI.add_variable(model)\nMathOptInterface.VariableIndex(1)\n\njulia> c = MOI.add_constraint(model, x, MOI.GreaterThan(1.0))\nMathOptInterface.ConstraintIndex{MathOptInterface.VariableIndex, MathOptInterface.GreaterThan{Float64}}(1)\n\njulia> MOI.Bridges.is_bridged(model, c)\ntrue\n\njulia> bridge = MOI.Bridges.bridge(model, c)\nMathOptInterface.Bridges.Constraint.VectorizeBridge{Float64, MathOptInterface.VectorAffineFunction{Float64}, MathOptInterface.Nonnegatives, MathOptInterface.VariableIndex}(MathOptInterface.ConstraintIndex{MathOptInterface.VectorAffineFunction{Float64}, MathOptInterface.Nonnegatives}(1), 1.0)\n\njulia> bridge.vector_constraint\nMathOptInterface.ConstraintIndex{MathOptInterface.VectorAffineFunction{Float64}, MathOptInterface.Nonnegatives}(1)\n\njulia> MOI.Bridges.is_bridged(model, bridge.vector_constraint)\nfalse\n\n\n\n\n\n","category":"type"},{"location":"moi/submodules/Utilities/reference/#.constraints","page":"API Reference","title":".constraints","text":"","category":"section"},{"location":"moi/submodules/Utilities/reference/","page":"API Reference","title":"API Reference","text":"Utilities.VectorOfConstraints\nUtilities.StructOfConstraints\nUtilities.@struct_of_constraints_by_function_types\nUtilities.@struct_of_constraints_by_set_types\nUtilities.struct_of_constraint_code","category":"page"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.VectorOfConstraints","page":"API Reference","title":"MathOptInterface.Utilities.VectorOfConstraints","text":"mutable struct VectorOfConstraints{\n F<:MOI.AbstractFunction,\n S<:MOI.AbstractSet,\n} <: MOI.ModelLike\n constraints::CleverDicts.CleverDict{\n MOI.ConstraintIndex{F,S},\n Tuple{F,S},\n typeof(CleverDicts.key_to_index),\n typeof(CleverDicts.index_to_key),\n }\nend\n\nA struct storing F-in-S constraints as a mapping between the constraint indices to the corresponding tuple of function and set.\n\n\n\n\n\n","category":"type"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.StructOfConstraints","page":"API Reference","title":"MathOptInterface.Utilities.StructOfConstraints","text":"abstract type StructOfConstraints <: MOI.ModelLike end\n\nA struct storing a subfields other structs storing constraints of different types.\n\nSee Utilities.@struct_of_constraints_by_function_types and Utilities.@struct_of_constraints_by_set_types.\n\n\n\n\n\n","category":"type"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.@struct_of_constraints_by_function_types","page":"API Reference","title":"MathOptInterface.Utilities.@struct_of_constraints_by_function_types","text":"Utilities.@struct_of_constraints_by_function_types(name, func_types...)\n\nGiven a vector of n function types (F1, F2,..., Fn) in func_types, defines a subtype of StructOfConstraints of name name and which type parameters {T, C1, C2, ..., Cn}. It contains n field where the ith field has type Ci and stores the constraints of function type Fi.\n\nThe expression Fi can also be a union in which case any constraint for which the function type is in the union is stored in the field with type Ci.\n\n\n\n\n\n","category":"macro"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.@struct_of_constraints_by_set_types","page":"API Reference","title":"MathOptInterface.Utilities.@struct_of_constraints_by_set_types","text":"Utilities.@struct_of_constraints_by_set_types(name, func_types...)\n\nGiven a vector of n set types (S1, S2,..., Sn) in func_types, defines a subtype of StructOfConstraints of name name and which type parameters {T, C1, C2, ..., Cn}. It contains n field where the ith field has type Ci and stores the constraints of set type Si. The expression Si can also be a union in which case any constraint for which the set type is in the union is stored in the field with type Ci. This can be useful if Ci is a MatrixOfConstraints in order to concatenate the coefficients of constraints of several different set types in the same matrix.\n\n\n\n\n\n","category":"macro"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.struct_of_constraint_code","page":"API Reference","title":"MathOptInterface.Utilities.struct_of_constraint_code","text":"struct_of_constraint_code(struct_name, types, field_types = nothing)\n\nGiven a vector of n Union{SymbolFun,_UnionSymbolFS{SymbolFun}} or Union{SymbolSet,_UnionSymbolFS{SymbolSet}} in types, defines a subtype of StructOfConstraints of name name and which type parameters {T, F1, F2, ..., Fn} if field_types is nothing and a {T} otherwise. It contains n field where the ith field has type Ci if field_types is nothing and type field_types[i] otherwise. If types is vector of Union{SymbolFun,_UnionSymbolFS{SymbolFun}} (resp. Union{SymbolSet,_UnionSymbolFS{SymbolSet}}) then the constraints of that function (resp. set) type are stored in the corresponding field.\n\nThis function is used by the macros @model, @struct_of_constraints_by_function_types and @struct_of_constraints_by_set_types.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/#Caching-optimizer","page":"API Reference","title":"Caching optimizer","text":"","category":"section"},{"location":"moi/submodules/Utilities/reference/","page":"API Reference","title":"API Reference","text":"Utilities.CachingOptimizer\nUtilities.attach_optimizer\nUtilities.reset_optimizer\nUtilities.drop_optimizer\nUtilities.state\nUtilities.mode","category":"page"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.CachingOptimizer","page":"API Reference","title":"MathOptInterface.Utilities.CachingOptimizer","text":"CachingOptimizer\n\nCachingOptimizer is an intermediate layer that stores a cache of the model and links it with an optimizer. It supports incremental model construction and modification even when the optimizer doesn't.\n\nConstructors\n\n CachingOptimizer(cache::MOI.ModelLike, optimizer::AbstractOptimizer)\n\nCreates a CachingOptimizer in AUTOMATIC mode, with the optimizer optimizer.\n\nThe type of the optimizer returned is CachingOptimizer{typeof(optimizer), typeof(cache)} so it does not support the function reset_optimizer(::CachingOptimizer, new_optimizer) if the type of new_optimizer is different from the type of optimizer.\n\n CachingOptimizer(cache::MOI.ModelLike, mode::CachingOptimizerMode)\n\nCreates a CachingOptimizer in the NO_OPTIMIZER state and mode mode.\n\nThe type of the optimizer returned is CachingOptimizer{MOI.AbstractOptimizer,typeof(cache)} so it does support the function reset_optimizer(::CachingOptimizer, new_optimizer) if the type of new_optimizer is different from the type of optimizer.\n\nAbout the type\n\nStates\n\nA CachingOptimizer may be in one of three possible states (CachingOptimizerState):\n\nNO_OPTIMIZER: The CachingOptimizer does not have any optimizer.\nEMPTY_OPTIMIZER: The CachingOptimizer has an empty optimizer. The optimizer is not synchronized with the cached model.\nATTACHED_OPTIMIZER: The CachingOptimizer has an optimizer, and it is synchronized with the cached model.\n\nModes\n\nA CachingOptimizer has two modes of operation (CachingOptimizerMode):\n\nMANUAL: The only methods that change the state of the CachingOptimizer are Utilities.reset_optimizer, Utilities.drop_optimizer, and Utilities.attach_optimizer. Attempting to perform an operation in the incorrect state results in an error.\nAUTOMATIC: The CachingOptimizer changes its state when necessary. For example, optimize! will automatically call attach_optimizer (an optimizer must have been previously set). Attempting to add a constraint or perform a modification not supported by the optimizer results in a drop to EMPTY_OPTIMIZER mode.\n\n\n\n\n\n","category":"type"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.attach_optimizer","page":"API Reference","title":"MathOptInterface.Utilities.attach_optimizer","text":"MOIU.attach_optimizer(model::GenericModel)\n\nCall MOIU.attach_optimizer on the backend of model.\n\nCannot be called in direct mode.\n\n\n\n\n\nattach_optimizer(model::CachingOptimizer)\n\nAttaches the optimizer to model, copying all model data into it. Can be called only from the EMPTY_OPTIMIZER state. If the copy succeeds, the CachingOptimizer will be in state ATTACHED_OPTIMIZER after the call, otherwise an error is thrown; see MOI.copy_to for more details on which errors can be thrown.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.reset_optimizer","page":"API Reference","title":"MathOptInterface.Utilities.reset_optimizer","text":"MOIU.reset_optimizer(model::GenericModel, optimizer::MOI.AbstractOptimizer)\n\nCall MOIU.reset_optimizer on the backend of model.\n\nCannot be called in direct mode.\n\n\n\n\n\nMOIU.reset_optimizer(model::GenericModel)\n\nCall MOIU.reset_optimizer on the backend of model.\n\nCannot be called in direct mode.\n\n\n\n\n\nreset_optimizer(m::CachingOptimizer, optimizer::MOI.AbstractOptimizer)\n\nSets or resets m to have the given empty optimizer optimizer.\n\nCan be called from any state. An assertion error will be thrown if optimizer is not empty.\n\nThe CachingOptimizer m will be in state EMPTY_OPTIMIZER after the call.\n\n\n\n\n\nreset_optimizer(m::CachingOptimizer)\n\nDetaches and empties the current optimizer. Can be called from ATTACHED_OPTIMIZER or EMPTY_OPTIMIZER state. The CachingOptimizer will be in state EMPTY_OPTIMIZER after the call.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.drop_optimizer","page":"API Reference","title":"MathOptInterface.Utilities.drop_optimizer","text":"MOIU.drop_optimizer(model::GenericModel)\n\nCall MOIU.drop_optimizer on the backend of model.\n\nCannot be called in direct mode.\n\n\n\n\n\ndrop_optimizer(m::CachingOptimizer)\n\nDrops the optimizer, if one is present. Can be called from any state. The CachingOptimizer will be in state NO_OPTIMIZER after the call.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.state","page":"API Reference","title":"MathOptInterface.Utilities.state","text":"state(m::CachingOptimizer)::CachingOptimizerState\n\nReturns the state of the CachingOptimizer m. See Utilities.CachingOptimizer.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.mode","page":"API Reference","title":"MathOptInterface.Utilities.mode","text":"mode(m::CachingOptimizer)::CachingOptimizerMode\n\nReturns the operating mode of the CachingOptimizer m. See Utilities.CachingOptimizer.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/#Mock-optimizer","page":"API Reference","title":"Mock optimizer","text":"","category":"section"},{"location":"moi/submodules/Utilities/reference/","page":"API Reference","title":"API Reference","text":"Utilities.MockOptimizer","category":"page"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.MockOptimizer","page":"API Reference","title":"MathOptInterface.Utilities.MockOptimizer","text":"MockOptimizer\n\nMockOptimizer is a fake optimizer especially useful for testing. Its main feature is that it can store the values that should be returned for each attribute.\n\n\n\n\n\n","category":"type"},{"location":"moi/submodules/Utilities/reference/#Printing","page":"API Reference","title":"Printing","text":"","category":"section"},{"location":"moi/submodules/Utilities/reference/","page":"API Reference","title":"API Reference","text":"Utilities.latex_formulation","category":"page"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.latex_formulation","page":"API Reference","title":"MathOptInterface.Utilities.latex_formulation","text":"latex_formulation(model::MOI.ModelLike; kwargs...)\n\nWrap model in a type so that it can be pretty-printed as text/latex in a notebook like IJulia, or in Documenter.\n\nTo render the model, end the cell with latex_formulation(model), or call display(latex_formulation(model)) in to force the display of the model from inside a function.\n\nPossible keyword arguments are:\n\nsimplify_coefficients : Simplify coefficients if possible by omitting them or removing trailing zeros.\ndefault_name : The name given to variables with an empty name.\nprint_types : Print the MOI type of each function and set for clarity.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/#Copy-utilities","page":"API Reference","title":"Copy utilities","text":"","category":"section"},{"location":"moi/submodules/Utilities/reference/","page":"API Reference","title":"API Reference","text":"Utilities.default_copy_to\nUtilities.IndexMap\nUtilities.identity_index_map\nUtilities.ModelFilter","category":"page"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.default_copy_to","page":"API Reference","title":"MathOptInterface.Utilities.default_copy_to","text":"default_copy_to(dest::MOI.ModelLike, src::MOI.ModelLike)\n\nA default implementation of MOI.copy_to(dest, src) for models that implement the incremental interface, i.e., MOI.supports_incremental_interface returns true.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.IndexMap","page":"API Reference","title":"MathOptInterface.Utilities.IndexMap","text":"IndexMap()\n\nThe dictionary-like object returned by MOI.copy_to.\n\n\n\n\n\n","category":"type"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.identity_index_map","page":"API Reference","title":"MathOptInterface.Utilities.identity_index_map","text":"identity_index_map(model::MOI.ModelLike)\n\nReturn an IndexMap that maps all variable and constraint indices of model to themselves.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.ModelFilter","page":"API Reference","title":"MathOptInterface.Utilities.ModelFilter","text":"ModelFilter(filter::Function, model::MOI.ModelLike)\n\nA layer to filter out various components of model.\n\nThe filter function takes a single argument, which is each element from the list returned by the attributes below. It returns true if the element should be visible in the filtered model and false otherwise.\n\nThe components that are filtered are:\n\nEntire constraint types via:\nMOI.ListOfConstraintTypesPresent\nIndividual constraints via:\nMOI.ListOfConstraintIndices{F,S}\nSpecific attributes via:\nMOI.ListOfModelAttributesSet\nMOI.ListOfConstraintAttributesSet\nMOI.ListOfVariableAttributesSet\n\nwarning: Warning\nThe list of attributes filtered may change in a future release. You should write functions that are generic and not limited to the five types listed above. Thus, you should probably define a fallback filter(::Any) = true.\n\nSee below for examples of how this works.\n\nnote: Note\nThis layer has a limited scope. It is intended by be used in conjunction with MOI.copy_to.\n\nExample: copy model excluding integer constraints\n\nUse the do syntax to provide a single function.\n\nfiltered_src = MOI.Utilities.ModelFilter(src) do item\n return item != (MOI.VariableIndex, MOI.Integer)\nend\nMOI.copy_to(dest, filtered_src)\n\nExample: copy model excluding names\n\nUse type dispatch to simplify the implementation:\n\nmy_filter(::Any) = true # Note the generic fallback!\nmy_filter(::MOI.VariableName) = false\nmy_filter(::MOI.ConstraintName) = false\nfiltered_src = MOI.Utilities.ModelFilter(my_filter, src)\nMOI.copy_to(dest, filtered_src)\n\nExample: copy irreducible infeasible subsystem\n\nmy_filter(::Any) = true # Note the generic fallback!\nfunction my_filter(ci::MOI.ConstraintIndex)\n status = MOI.get(dest, MOI.ConstraintConflictStatus(), ci)\n return status != MOI.NOT_IN_CONFLICT\nend\nfiltered_src = MOI.Utilities.ModelFilter(my_filter, src)\nMOI.copy_to(dest, filtered_src)\n\n\n\n\n\n","category":"type"},{"location":"moi/submodules/Utilities/reference/#Penalty-relaxation","page":"API Reference","title":"Penalty relaxation","text":"","category":"section"},{"location":"moi/submodules/Utilities/reference/","page":"API Reference","title":"API Reference","text":"Utilities.PenaltyRelaxation\nUtilities.ScalarPenaltyRelaxation","category":"page"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.PenaltyRelaxation","page":"API Reference","title":"MathOptInterface.Utilities.PenaltyRelaxation","text":"PenaltyRelaxation(\n penalties = Dict{MOI.ConstraintIndex,Float64}();\n default::Union{Nothing,T} = 1.0,\n)\n\nA problem modifier that, when passed to MOI.modify, destructively modifies the model in-place to create a penalized relaxation of the constraints.\n\nwarning: Warning\nThis is a destructive routine that modifies the model in-place. If you don't want to modify the original model, use JuMP.copy_model to create a copy before calling MOI.modify.\n\nReformulation\n\nSee Utilities.ScalarPenaltyRelaxation for details of the reformulation.\n\nFor each constraint ci, the penalty passed to Utilities.ScalarPenaltyRelaxation is get(penalties, ci, default). If the value is nothing, because ci does not exist in penalties and default = nothing, then the constraint is skipped.\n\nReturn value\n\nMOI.modify(model, PenaltyRelaxation()) returns a Dict{MOI.ConstraintIndex,MOI.ScalarAffineFunction} that maps each constraint index to the corresponding y + z as a MOI.ScalarAffineFunction. In an optimal solution, query the value of these functions to compute the violation of each constraint.\n\nRelax a subset of constraints\n\nTo relax a subset of constraints, pass a penalties dictionary and set default = nothing.\n\nSupported constraint types\n\nThe penalty relaxation is currently limited to modifying MOI.ScalarAffineFunction and MOI.ScalarQuadraticFunction constraints in the linear sets MOI.LessThan, MOI.GreaterThan, MOI.EqualTo and MOI.Interval.\n\nIt does not include variable bound or integrality constraints, because these cannot be modified in-place.\n\nTo modify variable bounds, rewrite them as linear constraints.\n\nExamples\n\njulia> model = MOI.Utilities.Model{Float64}();\n\njulia> x = MOI.add_variable(model);\n\njulia> c = MOI.add_constraint(model, 1.0 * x, MOI.LessThan(2.0));\n\njulia> map = MOI.modify(model, MOI.Utilities.PenaltyRelaxation(default = 2.0));\n\njulia> print(model)\nMinimize ScalarAffineFunction{Float64}:\n 0.0 + 2.0 v[2]\n\nSubject to:\n\nScalarAffineFunction{Float64}-in-LessThan{Float64}\n 0.0 + 1.0 v[1] - 1.0 v[2] <= 2.0\n\nVariableIndex-in-GreaterThan{Float64}\n v[2] >= 0.0\n\njulia> map[c] isa MOI.ScalarAffineFunction{Float64}\ntrue\n\njulia> model = MOI.Utilities.Model{Float64}();\n\njulia> x = MOI.add_variable(model);\n\njulia> c = MOI.add_constraint(model, 1.0 * x, MOI.LessThan(2.0));\n\njulia> map = MOI.modify(model, MOI.Utilities.PenaltyRelaxation(Dict(c => 3.0)));\n\njulia> print(model)\nMinimize ScalarAffineFunction{Float64}:\n 0.0 + 3.0 v[2]\n\nSubject to:\n\nScalarAffineFunction{Float64}-in-LessThan{Float64}\n 0.0 + 1.0 v[1] - 1.0 v[2] <= 2.0\n\nVariableIndex-in-GreaterThan{Float64}\n v[2] >= 0.0\n\njulia> map[c] isa MOI.ScalarAffineFunction{Float64}\ntrue\n\n\n\n\n\n","category":"type"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.ScalarPenaltyRelaxation","page":"API Reference","title":"MathOptInterface.Utilities.ScalarPenaltyRelaxation","text":"ScalarPenaltyRelaxation(penalty::T) where {T}\n\nA problem modifier that, when passed to MOI.modify, destructively modifies the constraint in-place to create a penalized relaxation of the constraint.\n\nwarning: Warning\nThis is a destructive routine that modifies the constraint in-place. If you don't want to modify the original model, use JuMP.copy_model to create a copy before calling MOI.modify.\n\nReformulation\n\nThe penalty relaxation modifies constraints of the form f(x) in S into f(x) + y - z in S, where y z ge 0, and then it introduces a penalty term into the objective of a times (y + z) (if minimizing, else -a), where a is penalty\n\nWhen S is MOI.LessThan or MOI.GreaterThan, we omit y or z respectively as a performance optimization.\n\nReturn value\n\nMOI.modify(model, ci, ScalarPenaltyRelaxation(penalty)) returns y + z as a MOI.ScalarAffineFunction. In an optimal solution, query the value of this function to compute the violation of the constraint.\n\nExamples\n\njulia> model = MOI.Utilities.Model{Float64}();\n\njulia> x = MOI.add_variable(model);\n\njulia> c = MOI.add_constraint(model, 1.0 * x, MOI.LessThan(2.0));\n\njulia> f = MOI.modify(model, c, MOI.Utilities.ScalarPenaltyRelaxation(2.0));\n\njulia> print(model)\nMinimize ScalarAffineFunction{Float64}:\n 0.0 + 2.0 v[2]\n\nSubject to:\n\nScalarAffineFunction{Float64}-in-LessThan{Float64}\n 0.0 + 1.0 v[1] - 1.0 v[2] <= 2.0\n\nVariableIndex-in-GreaterThan{Float64}\n v[2] >= 0.0\n\njulia> f isa MOI.ScalarAffineFunction{Float64}\ntrue\n\n\n\n\n\n","category":"type"},{"location":"moi/submodules/Utilities/reference/#MatrixOfConstraints","page":"API Reference","title":"MatrixOfConstraints","text":"","category":"section"},{"location":"moi/submodules/Utilities/reference/","page":"API Reference","title":"API Reference","text":"Utilities.MatrixOfConstraints","category":"page"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.MatrixOfConstraints","page":"API Reference","title":"MathOptInterface.Utilities.MatrixOfConstraints","text":"mutable struct MatrixOfConstraints{T,AT,BT,ST} <: MOI.ModelLike\n coefficients::AT\n constants::BT\n sets::ST\n caches::Vector{Any}\n are_indices_mapped::Vector{BitSet}\n final_touch::Bool\nend\n\nRepresent ScalarAffineFunction and VectorAffinefunction constraints in a matrix form where the linear coefficients of the functions are stored in the coefficients field, the constants of the functions or sets are stored in the constants field. Additional information about the sets are stored in the sets field.\n\nThis model can only be used as the constraints field of a MOI.Utilities.AbstractModel.\n\nWhen the constraints are added, they are stored in the caches field. They are only loaded in the coefficients and constants fields once MOI.Utilities.final_touch is called. For this reason, MatrixOfConstraints should not be used by an incremental interface. Use MOI.copy_to instead.\n\nThe constraints can be added in two different ways:\n\nWith add_constraint, in which case a canonicalized copy of the function is stored in caches.\nWith pass_nonvariable_constraints, in which case the functions and sets are stored themselves in caches without mapping the variable indices. The corresponding index in caches is added in are_indices_mapped. This avoids doing a copy of the function in case the getter of CanonicalConstraintFunction does not make a copy for the source model, e.g., this is the case of VectorOfConstraints.\n\nWe illustrate this with an example. Suppose a model is copied from a src::MOI.Utilities.Model to a bridged model with a MatrixOfConstraints. For all the types that are not bridged, the constraints will be copied with pass_nonvariable_constraints. Hence the functions stored in caches are exactly the same as the ones stored in src. This is ok since this is only during the copy_to operation during which src cannot be modified. On the other hand, for the types that are bridged, the functions added may contain duplicates even if the functions did not contain duplicates in src so duplicates are removed with MOI.Utilities.canonical.\n\nInterface\n\nThe .coefficients::AT type must implement:\n\nAT()\nMOI.empty(::AT)!\nMOI.Utilities.add_column\nMOI.Utilities.set_number_of_rows\nMOI.Utilities.allocate_terms\nMOI.Utilities.load_terms\nMOI.Utilities.final_touch\n\nThe .constants::BT type must implement:\n\nBT()\nBase.empty!(::BT)\nBase.resize(::BT)\nMOI.Utilities.load_constants\nMOI.Utilities.function_constants\nMOI.Utilities.set_from_constants\n\nThe .sets::ST type must implement:\n\nST()\nMOI.is_empty(::ST)\nMOI.empty(::ST)\nMOI.dimension(::ST)\nMOI.is_valid(::ST, ::MOI.ConstraintIndex)\nMOI.get(::ST, ::MOI.ListOfConstraintTypesPresent)\nMOI.get(::ST, ::MOI.NumberOfConstraints)\nMOI.get(::ST, ::MOI.ListOfConstraintIndices)\nMOI.Utilities.set_types\nMOI.Utilities.set_index\nMOI.Utilities.add_set\nMOI.Utilities.rows\nMOI.Utilities.final_touch\n\n\n\n\n\n","category":"type"},{"location":"moi/submodules/Utilities/reference/#.coefficients","page":"API Reference","title":".coefficients","text":"","category":"section"},{"location":"moi/submodules/Utilities/reference/","page":"API Reference","title":"API Reference","text":"Utilities.add_column\nUtilities.allocate_terms\nUtilities.set_number_of_rows\nUtilities.load_terms\nUtilities.final_touch\nUtilities.extract_function","category":"page"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.add_column","page":"API Reference","title":"MathOptInterface.Utilities.add_column","text":"add_column(coefficients)::Nothing\n\nTell coefficients to pre-allocate datastructures as needed to store one column.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.allocate_terms","page":"API Reference","title":"MathOptInterface.Utilities.allocate_terms","text":"allocate_terms(coefficients, index_map, func)::Nothing\n\nTell coefficients that the terms of the function func where the variable indices are mapped with index_map will be loaded with load_terms.\n\nThe function func must be canonicalized before calling allocate_terms. See is_canonical.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.set_number_of_rows","page":"API Reference","title":"MathOptInterface.Utilities.set_number_of_rows","text":"set_number_of_rows(coefficients, n)::Nothing\n\nTell coefficients to pre-allocate datastructures as needed to store n rows.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.load_terms","page":"API Reference","title":"MathOptInterface.Utilities.load_terms","text":"load_terms(coefficients, index_map, func, offset)::Nothing\n\nLoads the terms of func to coefficients, mapping the variable indices with index_map.\n\nThe ith dimension of func is loaded at the (offset + i)th row of coefficients.\n\nThe function must be allocated first with allocate_terms.\n\nThe function func must be canonicalized, see is_canonical.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.final_touch","page":"API Reference","title":"MathOptInterface.Utilities.final_touch","text":"final_touch(coefficients)::Nothing\n\nInforms the coefficients that all functions have been added with load_terms. No more modification is allowed unless MOI.empty! is called.\n\nfinal_touch(sets)::Nothing\n\nInforms the sets that all functions have been added with add_set. No more modification is allowed unless MOI.empty! is called.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.extract_function","page":"API Reference","title":"MathOptInterface.Utilities.extract_function","text":"extract_function(coefficients, row::Integer, constant::T) where {T}\n\nReturn the MOI.ScalarAffineFunction{T} function corresponding to row row in coefficients.\n\nextract_function(\n coefficients,\n rows::UnitRange,\n constants::Vector{T},\n) where{T}\n\nReturn the MOI.VectorAffineFunction{T} function corresponding to rows rows in coefficients.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/","page":"API Reference","title":"API Reference","text":"Utilities.MutableSparseMatrixCSC\nUtilities.AbstractIndexing\nUtilities.ZeroBasedIndexing\nUtilities.OneBasedIndexing","category":"page"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.MutableSparseMatrixCSC","page":"API Reference","title":"MathOptInterface.Utilities.MutableSparseMatrixCSC","text":"mutable struct MutableSparseMatrixCSC{Tv,Ti<:Integer,I<:AbstractIndexing}\n indexing::I\n m::Int\n n::Int\n colptr::Vector{Ti}\n rowval::Vector{Ti}\n nzval::Vector{Tv}\n nz_added::Vector{Ti}\nend\n\nMatrix type loading sparse matrices in the Compressed Sparse Column format. The indexing used is indexing, see AbstractIndexing. The other fields have the same meaning than for SparseArrays.SparseMatrixCSC except that the indexing is different unless indexing is OneBasedIndexing. In addition, nz_added is used to cache the number of non-zero terms that have been added to each column due to the incremental nature of load_terms.\n\nThe matrix is loaded in 5 steps:\n\nMOI.empty! is called.\nMOI.Utilities.add_column and MOI.Utilities.allocate_terms are called in any order.\nMOI.Utilities.set_number_of_rows is called.\nMOI.Utilities.load_terms is called for each affine function.\nMOI.Utilities.final_touch is called.\n\n\n\n\n\n","category":"type"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.AbstractIndexing","page":"API Reference","title":"MathOptInterface.Utilities.AbstractIndexing","text":"abstract type AbstractIndexing end\n\nIndexing to be used for storing the row and column indices of MutableSparseMatrixCSC. See ZeroBasedIndexing and OneBasedIndexing.\n\n\n\n\n\n","category":"type"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.ZeroBasedIndexing","page":"API Reference","title":"MathOptInterface.Utilities.ZeroBasedIndexing","text":"struct ZeroBasedIndexing <: AbstractIndexing end\n\nZero-based indexing: the ith row or column has index i - 1. This is useful when the vectors of row and column indices need to be communicated to a library using zero-based indexing such as C libraries.\n\n\n\n\n\n","category":"type"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.OneBasedIndexing","page":"API Reference","title":"MathOptInterface.Utilities.OneBasedIndexing","text":"struct ZeroBasedIndexing <: AbstractIndexing end\n\nOne-based indexing: the ith row or column has index i. This enables an allocation-free conversion of MutableSparseMatrixCSC to SparseArrays.SparseMatrixCSC.\n\n\n\n\n\n","category":"type"},{"location":"moi/submodules/Utilities/reference/#.constants","page":"API Reference","title":".constants","text":"","category":"section"},{"location":"moi/submodules/Utilities/reference/","page":"API Reference","title":"API Reference","text":"Utilities.load_constants\nUtilities.function_constants\nUtilities.set_from_constants","category":"page"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.load_constants","page":"API Reference","title":"MathOptInterface.Utilities.load_constants","text":"load_constants(constants, offset, func_or_set)::Nothing\n\nThis function loads the constants of func_or_set in constants at an offset of offset. Where offset is the sum of the dimensions of the constraints already loaded. The storage should be preallocated with resize! before calling this function.\n\nThis function should be implemented to be usable as storage of constants for MatrixOfConstraints.\n\nThe constants are loaded in three steps:\n\nBase.empty! is called.\nBase.resize! is called with the sum of the dimensions of all constraints.\nMOI.Utilities.load_constants is called for each function for vector constraint or set for scalar constraint.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.function_constants","page":"API Reference","title":"MathOptInterface.Utilities.function_constants","text":"function_constants(constants, rows)\n\nThis function returns the function constants that were loaded with load_constants at the rows rows.\n\nThis function should be implemented to be usable as storage of constants for MatrixOfConstraints.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.set_from_constants","page":"API Reference","title":"MathOptInterface.Utilities.set_from_constants","text":"set_from_constants(constants, S::Type, rows)::S\n\nThis function returns an instance of the set S for which the constants where loaded with load_constants at the rows rows.\n\nThis function should be implemented to be usable as storage of constants for MatrixOfConstraints.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/","page":"API Reference","title":"API Reference","text":"Utilities.Hyperrectangle","category":"page"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.Hyperrectangle","page":"API Reference","title":"MathOptInterface.Utilities.Hyperrectangle","text":"struct Hyperrectangle{T} <: AbstractVectorBounds\n lower::Vector{T}\n upper::Vector{T}\nend\n\nA struct for the .constants field in MatrixOfConstraints.\n\n\n\n\n\n","category":"type"},{"location":"moi/submodules/Utilities/reference/#.sets","page":"API Reference","title":".sets","text":"","category":"section"},{"location":"moi/submodules/Utilities/reference/","page":"API Reference","title":"API Reference","text":"Utilities.set_index\nUtilities.set_types\nUtilities.add_set\nUtilities.rows\nUtilities.num_rows\nUtilities.set_with_dimension","category":"page"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.set_index","page":"API Reference","title":"MathOptInterface.Utilities.set_index","text":"set_index(sets, ::Type{S})::Union{Int,Nothing} where {S<:MOI.AbstractSet}\n\nReturn an integer corresponding to the index of the set type in the list given by set_types.\n\nIf S is not part of the list, return nothing.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.set_types","page":"API Reference","title":"MathOptInterface.Utilities.set_types","text":"set_types(sets)::Vector{Type}\n\nReturn the list of the types of the sets allowed in sets.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.add_set","page":"API Reference","title":"MathOptInterface.Utilities.add_set","text":"add_set(sets, i)::Int64\n\nAdd a scalar set of type index i.\n\nadd_set(sets, i, dim)::Int64\n\nAdd a vector set of type index i and dimension dim.\n\nBoth methods return a unique Int64 of the set that can be used to reference this set.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.rows","page":"API Reference","title":"MathOptInterface.Utilities.rows","text":"rows(sets, ci::MOI.ConstraintIndex)::Union{Int,UnitRange{Int}}\n\nReturn the rows in 1:MOI.dimension(sets) corresponding to the set of id ci.value.\n\nFor scalar sets, this returns an Int. For vector sets, this returns an UnitRange{Int}.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.num_rows","page":"API Reference","title":"MathOptInterface.Utilities.num_rows","text":"num_rows(sets::OrderedProductOfSets, ::Type{S}) where {S}\n\nReturn the number of rows corresponding to a set of type S. That is, it is the sum of the dimensions of the sets of type S.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.set_with_dimension","page":"API Reference","title":"MathOptInterface.Utilities.set_with_dimension","text":"set_with_dimension(::Type{S}, dim) where {S<:MOI.AbstractVectorSet}\n\nReturns the instance of S of MOI.dimension dim. This needs to be implemented for sets of type S to be useable with MatrixOfConstraints.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/","page":"API Reference","title":"API Reference","text":"Utilities.ProductOfSets\nUtilities.MixOfScalarSets\nUtilities.@mix_of_scalar_sets\nUtilities.OrderedProductOfSets\nUtilities.@product_of_sets","category":"page"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.ProductOfSets","page":"API Reference","title":"MathOptInterface.Utilities.ProductOfSets","text":"abstract type ProductOfSets{T} end\n\nRepresents a cartesian product of sets of given types.\n\n\n\n\n\n","category":"type"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.MixOfScalarSets","page":"API Reference","title":"MathOptInterface.Utilities.MixOfScalarSets","text":"abstract type MixOfScalarSets{T} <: ProductOfSets{T} end\n\nProduct of scalar sets in the order the constraints are added, mixing the constraints of different types.\n\nUse @mix_of_scalar_sets to generate a new subtype.\n\n\n\n\n\n","category":"type"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.@mix_of_scalar_sets","page":"API Reference","title":"MathOptInterface.Utilities.@mix_of_scalar_sets","text":"@mix_of_scalar_sets(name, set_types...)\n\nGenerate a new MixOfScalarSets subtype.\n\nExample\n\n@mix_of_scalar_sets(\n MixedIntegerLinearProgramSets,\n MOI.GreaterThan{T},\n MOI.LessThan{T},\n MOI.EqualTo{T},\n MOI.Integer,\n)\n\n\n\n\n\n","category":"macro"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.OrderedProductOfSets","page":"API Reference","title":"MathOptInterface.Utilities.OrderedProductOfSets","text":"abstract type OrderedProductOfSets{T} <: ProductOfSets{T} end\n\nProduct of sets in the order the constraints are added, grouping the constraints of the same types contiguously.\n\nUse @product_of_sets to generate new subtypes.\n\n\n\n\n\n","category":"type"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.@product_of_sets","page":"API Reference","title":"MathOptInterface.Utilities.@product_of_sets","text":"@product_of_sets(name, set_types...)\n\nGenerate a new OrderedProductOfSets subtype.\n\nExample\n\n@product_of_sets(\n LinearOrthants,\n MOI.Zeros,\n MOI.Nonnegatives,\n MOI.Nonpositives,\n MOI.ZeroOne,\n)\n\n\n\n\n\n","category":"macro"},{"location":"moi/submodules/Utilities/reference/#Fallbacks","page":"API Reference","title":"Fallbacks","text":"","category":"section"},{"location":"moi/submodules/Utilities/reference/","page":"API Reference","title":"API Reference","text":"Utilities.get_fallback","category":"page"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.get_fallback","page":"API Reference","title":"MathOptInterface.Utilities.get_fallback","text":"get_fallback(model::MOI.ModelLike, ::MOI.ObjectiveValue)\n\nCompute the objective function value using the VariablePrimal results and the ObjectiveFunction value.\n\n\n\n\n\nget_fallback(model::MOI.ModelLike, ::MOI.DualObjectiveValue, T::Type)::T\n\nCompute the dual objective value of type T using the ConstraintDual results and the ConstraintFunction and ConstraintSet values. Note that the nonlinear part of the model is ignored.\n\n\n\n\n\nget_fallback(model::MOI.ModelLike, ::MOI.ConstraintPrimal,\n constraint_index::MOI.ConstraintIndex)\n\nCompute the value of the function of the constraint of index constraint_index using the VariablePrimal results and the ConstraintFunction values.\n\n\n\n\n\nget_fallback(model::MOI.ModelLike, attr::MOI.ConstraintDual,\n ci::MOI.ConstraintIndex{Union{MOI.VariableIndex,\n MOI.VectorOfVariables}})\n\nCompute the dual of the constraint of index ci using the ConstraintDual of other constraints and the ConstraintFunction values. Throws an error if some constraints are quadratic or if there is one another MOI.VariableIndex-in-S or MOI.VectorOfVariables-in-S constraint with one of the variables in the function of the constraint ci.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/#Function-utilities","page":"API Reference","title":"Function utilities","text":"","category":"section"},{"location":"moi/submodules/Utilities/reference/","page":"API Reference","title":"API Reference","text":"The following utilities are available for functions:","category":"page"},{"location":"moi/submodules/Utilities/reference/","page":"API Reference","title":"API Reference","text":"Utilities.eval_variables\nUtilities.map_indices\nUtilities.substitute_variables\nUtilities.filter_variables\nUtilities.remove_variable\nUtilities.all_coefficients\nUtilities.unsafe_add\nUtilities.isapprox_zero\nUtilities.modify_function\nUtilities.zero_with_output_dimension","category":"page"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.eval_variables","page":"API Reference","title":"MathOptInterface.Utilities.eval_variables","text":"eval_variables(value_fn::Function, f::MOI.AbstractFunction)\n\nReturns the value of function f if each variable index vi is evaluated as value_fn(vi).\n\nNote that value_fn must return a Number. See substitute_variables for a similar function where value_fn returns an MOI.AbstractScalarFunction.\n\nwarning: Warning\nThe two-argument version of eval_variables is deprecated and may be removed in MOI v2.0.0. Use the three-argument method eval_variables(::Function, ::MOI.ModelLike, ::MOI.AbstractFunction) instead.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.map_indices","page":"API Reference","title":"MathOptInterface.Utilities.map_indices","text":"map_indices(index_map::Function, attr::MOI.AnyAttribute, x::X)::X where {X}\n\nSubstitute any MOI.VariableIndex (resp. MOI.ConstraintIndex) in x by the MOI.VariableIndex (resp. MOI.ConstraintIndex) of the same type given by index_map(x).\n\nWhen to implement this method for new types X\n\nThis function is used by implementations of MOI.copy_to on constraint functions, attribute values and submittable values. If you define a new attribute whose values x::X contain variable or constraint indices, you must also implement this function.\n\n\n\n\n\nmap_indices(\n variable_map::AbstractDict{T,T},\n x::X,\n)::X where {T<:MOI.Index,X}\n\nShortcut for map_indices(vi -> variable_map[vi], x).\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.substitute_variables","page":"API Reference","title":"MathOptInterface.Utilities.substitute_variables","text":"substitute_variables(variable_map::Function, x)\n\nSubstitute any MOI.VariableIndex in x by variable_map(x). The variable_map function returns either MOI.VariableIndex or MOI.ScalarAffineFunction, see eval_variables for a similar function where variable_map returns a number.\n\nThis function is used by bridge optimizers on constraint functions, attribute values and submittable values when at least one variable bridge is used hence it needs to be implemented for custom types that are meant to be used as attribute or submittable value.\n\nnote: Note\nWhen implementing a new method, don't use substitute_variables(::Function, because Julia will not specialize on it. Use instead substitute_variables(::F, ...) where {F<:Function}.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.filter_variables","page":"API Reference","title":"MathOptInterface.Utilities.filter_variables","text":"filter_variables(keep::Function, f::AbstractFunction)\n\nReturn a new function f with the variable vi such that !keep(vi) removed.\n\nWARNING: Don't define filter_variables(::Function, ...) because Julia will not specialize on this. Define instead filter_variables(::F, ...) where {F<:Function}.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.remove_variable","page":"API Reference","title":"MathOptInterface.Utilities.remove_variable","text":"remove_variable(f::AbstractFunction, vi::VariableIndex)\n\nReturn a new function f with the variable vi removed.\n\n\n\n\n\nremove_variable(\n f::MOI.AbstractFunction,\n s::MOI.AbstractSet,\n vi::MOI.VariableIndex,\n)\n\nReturn a tuple (g, t) representing the constraint f-in-s with the variable vi removed. That is, the terms containing the variable vi in the function f are removed and the dimension of the set s is updated if needed (e.g. when f is a VectorOfVariables with vi being one of the variables).\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.all_coefficients","page":"API Reference","title":"MathOptInterface.Utilities.all_coefficients","text":"all_coefficients(p::Function, f::MOI.AbstractFunction)\n\nDetermine whether predicate p returns true for all coefficients of f, returning false as soon as the first coefficient of f for which p returns false is encountered (short-circuiting). Similar to all.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.unsafe_add","page":"API Reference","title":"MathOptInterface.Utilities.unsafe_add","text":"unsafe_add(t1::MOI.ScalarAffineTerm, t2::MOI.ScalarAffineTerm)\n\nSums the coefficients of t1 and t2 and returns an output MOI.ScalarAffineTerm. It is unsafe because it uses the variable of t1 as the variable of the output without checking that it is equal to that of t2.\n\n\n\n\n\nunsafe_add(t1::MOI.ScalarQuadraticTerm, t2::MOI.ScalarQuadraticTerm)\n\nSums the coefficients of t1 and t2 and returns an output MOI.ScalarQuadraticTerm. It is unsafe because it uses the variable's of t1 as the variable's of the output without checking that they are the same (up to permutation) to those of t2.\n\n\n\n\n\nunsafe_add(t1::MOI.VectorAffineTerm, t2::MOI.VectorAffineTerm)\n\nSums the coefficients of t1 and t2 and returns an output MOI.VectorAffineTerm. It is unsafe because it uses the output_index and variable of t1 as the output_index and variable of the output term without checking that they are equal to those of t2.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.isapprox_zero","page":"API Reference","title":"MathOptInterface.Utilities.isapprox_zero","text":"isapprox_zero(f::MOI.AbstractFunction, tol)\n\nReturn a Bool indicating whether the function f is approximately zero using tol as a tolerance.\n\nImportant note\n\nThis function assumes that f does not contain any duplicate terms, you might want to first call canonical if that is not guaranteed. For instance, given\n\nf = MOI.ScalarAffineFunction(MOI.ScalarAffineTerm.([1, -1], [x, x]), 0)\n\nthen isapprox_zero(f) is false but isapprox_zero(MOIU.canonical(f)) is true.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.modify_function","page":"API Reference","title":"MathOptInterface.Utilities.modify_function","text":"modify_function(f::AbstractFunction, change::AbstractFunctionModification)\n\nReturn a copy of the function f, modified according to change.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.zero_with_output_dimension","page":"API Reference","title":"MathOptInterface.Utilities.zero_with_output_dimension","text":"zero_with_output_dimension(::Type{T}, output_dimension::Integer) where {T}\n\nCreate an instance of type T with the output dimension output_dimension.\n\nThis is mostly useful in Bridges, when code needs to be agnostic to the type of vector-valued function that is passed in.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/","page":"API Reference","title":"API Reference","text":"The following functions can be used to canonicalize a function:","category":"page"},{"location":"moi/submodules/Utilities/reference/","page":"API Reference","title":"API Reference","text":"Utilities.is_canonical\nUtilities.canonical\nUtilities.canonicalize!","category":"page"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.is_canonical","page":"API Reference","title":"MathOptInterface.Utilities.is_canonical","text":"is_canonical(f::Union{ScalarAffineFunction, VectorAffineFunction})\n\nReturns a Bool indicating whether the function is in canonical form. See canonical.\n\n\n\n\n\nis_canonical(f::Union{ScalarQuadraticFunction, VectorQuadraticFunction})\n\nReturns a Bool indicating whether the function is in canonical form. See canonical.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.canonical","page":"API Reference","title":"MathOptInterface.Utilities.canonical","text":"canonical(f::MOI.AbstractFunction)\n\nReturns the function in a canonical form, i.e.\n\nA term appear only once.\nThe coefficients are nonzero.\nThe terms appear in increasing order of variable where there the order of the variables is the order of their value.\nFor a AbstractVectorFunction, the terms are sorted in ascending order of output index.\n\nThe output of canonical can be assumed to be a copy of f, even for VectorOfVariables.\n\nExamples\n\nIf x (resp. y, z) is VariableIndex(1) (resp. 2, 3). The canonical representation of ScalarAffineFunction([y, x, z, x, z], [2, 1, 3, -2, -3], 5) is ScalarAffineFunction([x, y], [-1, 2], 5).\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.canonicalize!","page":"API Reference","title":"MathOptInterface.Utilities.canonicalize!","text":"canonicalize!(f::Union{ScalarAffineFunction, VectorAffineFunction})\n\nConvert a function to canonical form in-place, without allocating a copy to hold the result. See canonical.\n\n\n\n\n\ncanonicalize!(f::Union{ScalarQuadraticFunction, VectorQuadraticFunction})\n\nConvert a function to canonical form in-place, without allocating a copy to hold the result. See canonical.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/","page":"API Reference","title":"API Reference","text":"The following functions can be used to manipulate functions with basic algebra:","category":"page"},{"location":"moi/submodules/Utilities/reference/","page":"API Reference","title":"API Reference","text":"Utilities.scalar_type\nUtilities.scalarize\nUtilities.eachscalar\nUtilities.promote_operation\nUtilities.operate\nUtilities.operate!\nUtilities.operate_output_index!\nUtilities.vectorize","category":"page"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.scalar_type","page":"API Reference","title":"MathOptInterface.Utilities.scalar_type","text":"scalar_type(F::Type{<:MOI.AbstractVectorFunction})\n\nType of functions obtained by indexing objects obtained by calling eachscalar on functions of type F.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.scalarize","page":"API Reference","title":"MathOptInterface.Utilities.scalarize","text":"scalarize(func::MOI.VectorOfVariables, ignore_constants::Bool = false)\n\nReturns a vector of scalar functions making up the vector function in the form of a Vector{MOI.SingleVariable}.\n\nSee also eachscalar.\n\n\n\n\n\nscalarize(func::MOI.VectorAffineFunction{T}, ignore_constants::Bool = false)\n\nReturns a vector of scalar functions making up the vector function in the form of a Vector{MOI.ScalarAffineFunction{T}}.\n\nSee also eachscalar.\n\n\n\n\n\nscalarize(func::MOI.VectorQuadraticFunction{T}, ignore_constants::Bool = false)\n\nReturns a vector of scalar functions making up the vector function in the form of a Vector{MOI.ScalarQuadraticFunction{T}}.\n\nSee also eachscalar.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.eachscalar","page":"API Reference","title":"MathOptInterface.Utilities.eachscalar","text":"eachscalar(f::MOI.AbstractVectorFunction)\n\nReturns an iterator for the scalar components of the vector function.\n\nSee also scalarize.\n\n\n\n\n\neachscalar(f::MOI.AbstractVector)\n\nReturns an iterator for the scalar components of the vector.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.promote_operation","page":"API Reference","title":"MathOptInterface.Utilities.promote_operation","text":"promote_operation(\n op::Function,\n ::Type{T},\n ArgsTypes::Type{<:Union{T,AbstractVector{T},MOI.AbstractFunction}}...,\n) where {T<:Number}\n\nCompute the return type of the call operate(op, T, args...), where the types of the arguments args are ArgsTypes.\n\nOne assumption is that the element type T is invariant under each operation. That is, op(::T, ::T)::T where op is a +, -, *, and /.\n\nThere are six methods for which we implement Utilities.promote_operation:\n\n+ a. promote_operation(::typeof(+), ::Type{T}, ::Type{F1}, ::Type{F2})\n- a. promote_operation(::typeof(-), ::Type{T}, ::Type{F}) b. promote_operation(::typeof(-), ::Type{T}, ::Type{F1}, ::Type{F2})\n* a. promote_operation(::typeof(*), ::Type{T}, ::Type{T}, ::Type{F}) b. promote_operation(::typeof(*), ::Type{T}, ::Type{F}, ::Type{T}) c. promote_operation(::typeof(*), ::Type{T}, ::Type{F1}, ::Type{F2}) where F1 and F2 are VariableIndex or ScalarAffineFunction d. promote_operation(::typeof(*), ::Type{T}, ::Type{<:Diagonal{T}}, ::Type{F}\n/ a. promote_operation(::typeof(/), ::Type{T}, ::Type{F}, ::Type{T})\nvcat a. promote_operation(::typeof(vcat), ::Type{T}, ::Type{F}...)\nimag a. promote_operation(::typeof(imag), ::Type{T}, ::Type{F}) where F is VariableIndex or VectorOfVariables\n\nIn each case, F (or F1 and F2) is one of the ten supported types, with a restriction that the mathematical operation makes sense, for example, we don't define promote_operation(-, T, F1, F2) where F1 is a scalar-valued function and F2 is a vector-valued function. The ten supported types are:\n\n::T\n::VariableIndex\n::ScalarAffineFunction{T}\n::ScalarQuadraticFunction{T}\n::ScalarNonlinearFunction\n::AbstractVector{T}\n::VectorOfVariables\n::VectorAffineFunction{T}\n::VectorQuadraticFunction{T}\n::VectorNonlinearFunction\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.operate","page":"API Reference","title":"MathOptInterface.Utilities.operate","text":"operate(\n op::Function,\n ::Type{T},\n args::Union{T,MOI.AbstractFunction}...,\n)::MOI.AbstractFunction where {T<:Number}\n\nReturns an MOI.AbstractFunction representing the function resulting from the operation op(args...) on functions of coefficient type T.\n\nNo argument can be modified.\n\nMethods\n\n+ a. operate(::typeof(+), ::Type{T}, ::F1) b. operate(::typeof(+), ::Type{T}, ::F1, ::F2) c. operate(::typeof(+), ::Type{T}, ::F1...)\n- a. operate(::typeof(-), ::Type{T}, ::F) b. operate(::typeof(-), ::Type{T}, ::F1, ::F2)\n* a. operate(::typeof(*), ::Type{T}, ::T, ::F) b. operate(::typeof(*), ::Type{T}, ::F, ::T) c. operate(::typeof(*), ::Type{T}, ::F1, ::F2) where F1 and F2 are VariableIndex or ScalarAffineFunction d. operate(::typeof(*), ::Type{T}, ::Diagonal{T}, ::F)\n/ a. operate(::typeof(/), ::Type{T}, ::F, ::T)\nvcat a. operate(::typeof(vcat), ::Type{T}, ::F...)\nimag a. operate(::typeof(imag), ::Type{T}, ::F) where F is VariableIndex or VectorOfVariables\n\nOne assumption is that the element type T is invariant under each operation. That is, op(::T, ::T)::T where op is a +, -, *, and /.\n\nIn each case, F (or F1 and F2) is one of the ten supported types, with a restriction that the mathematical operation makes sense, for example, we don't define promote_operation(-, T, F1, F2) where F1 is a scalar-valued function and F2 is a vector-valued function. The ten supported types are:\n\n::T\n::VariableIndex\n::ScalarAffineFunction{T}\n::ScalarQuadraticFunction{T}\n::ScalarNonlinearFunction\n::AbstractVector{T}\n::VectorOfVariables\n::VectorAffineFunction{T}\n::VectorQuadraticFunction{T}\n::VectorNonlinearFunction\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.operate!","page":"API Reference","title":"MathOptInterface.Utilities.operate!","text":"operate!(\n op::Function,\n ::Type{T},\n args::Union{T,MOI.AbstractFunction}...,\n)::MOI.AbstractFunction where {T<:Number}\n\nReturns an MOI.AbstractFunction representing the function resulting from the operation op(args...) on functions of coefficient type T.\n\nThe first argument may be modified, in which case the return value is identical to the first argument. For operations which cannot be implemented in-place, this function returns a new object.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.operate_output_index!","page":"API Reference","title":"MathOptInterface.Utilities.operate_output_index!","text":"operate_output_index!(\n op::Union{typeof(+),typeof(-)},\n ::Type{T},\n output_index::Integer,\n f::Union{AbstractVector{T},MOI.AbstractVectorFunction}\n g::Union{T,MOI.AbstractScalarFunction}...\n) where {T<:Number}\n\nReturn an MOI.AbstractVectorFunction in which the scalar function in row output_index is the result of op(f[output_index], g).\n\nThe functions at output index different to output_index are the same as the functions at the same output index in func. The first argument may be modified.\n\nMethods\n\n+ a. operate_output_index!(+, ::Type{T}, ::Int, ::VectorF, ::ScalarF)\n- a. operate_output_index!(-, ::Type{T}, ::Int, ::VectorF, ::ScalarF)\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.vectorize","page":"API Reference","title":"MathOptInterface.Utilities.vectorize","text":"vectorize(x::AbstractVector{<:Number})\n\nReturns x.\n\n\n\n\n\nvectorize(x::AbstractVector{MOI.VariableIndex})\n\nReturns the vector of scalar affine functions in the form of a MOI.VectorAffineFunction{T}.\n\n\n\n\n\nvectorize(funcs::AbstractVector{MOI.ScalarAffineFunction{T}}) where T\n\nReturns the vector of scalar affine functions in the form of a MOI.VectorAffineFunction{T}.\n\n\n\n\n\nvectorize(funcs::AbstractVector{MOI.ScalarQuadraticFunction{T}}) where T\n\nReturns the vector of scalar quadratic functions in the form of a MOI.VectorQuadraticFunction{T}.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/#Constraint-utilities","page":"API Reference","title":"Constraint utilities","text":"","category":"section"},{"location":"moi/submodules/Utilities/reference/","page":"API Reference","title":"API Reference","text":"The following utilities are available for moving the function constant to the set for scalar constraints:","category":"page"},{"location":"moi/submodules/Utilities/reference/","page":"API Reference","title":"API Reference","text":"Utilities.shift_constant\nUtilities.supports_shift_constant\nUtilities.normalize_and_add_constraint\nUtilities.normalize_constant","category":"page"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.shift_constant","page":"API Reference","title":"MathOptInterface.Utilities.shift_constant","text":"shift_constant(set::MOI.AbstractScalarSet, offset)\n\nReturns a new scalar set new_set such that func-in-set is equivalent to func + offset-in-new_set.\n\nOnly define this function if it makes sense to!\n\nUse supports_shift_constant to check if the set supports shifting:\n\nif supports_shift_constant(typeof(old_set))\n new_set = shift_constant(old_set, offset)\n f.constant = 0\n add_constraint(model, f, new_set)\nelse\n add_constraint(model, f, old_set)\nend\n\nSee also supports_shift_constant.\n\nExamples\n\nThe call shift_constant(MOI.Interval(-2, 3), 1) is equal to MOI.Interval(-1, 4).\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.supports_shift_constant","page":"API Reference","title":"MathOptInterface.Utilities.supports_shift_constant","text":"supports_shift_constant(::Type{S}) where {S<:MOI.AbstractSet}\n\nReturn true if shift_constant is defined for set S.\n\nSee also shift_constant.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.normalize_and_add_constraint","page":"API Reference","title":"MathOptInterface.Utilities.normalize_and_add_constraint","text":"normalize_and_add_constraint(\n model::MOI.ModelLike,\n func::MOI.AbstractScalarFunction,\n set::MOI.AbstractScalarSet;\n allow_modify_function::Bool = false,\n)\n\nAdds the scalar constraint obtained by moving the constant term in func to the set in model. If allow_modify_function is true then the function func can be modified.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.normalize_constant","page":"API Reference","title":"MathOptInterface.Utilities.normalize_constant","text":"normalize_constant(\n func::MOI.AbstractScalarFunction,\n set::MOI.AbstractScalarSet;\n allow_modify_function::Bool = false,\n)\n\nReturn the func-in-set constraint in normalized form. That is, if func is MOI.ScalarQuadraticFunction or MOI.ScalarAffineFunction, the constant is moved to the set. If allow_modify_function is true then the function func can be modified.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/","page":"API Reference","title":"API Reference","text":"The following utility identifies those constraints imposing bounds on a given variable, and returns those bound values:","category":"page"},{"location":"moi/submodules/Utilities/reference/","page":"API Reference","title":"API Reference","text":"Utilities.get_bounds","category":"page"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.get_bounds","page":"API Reference","title":"MathOptInterface.Utilities.get_bounds","text":"get_bounds(model::MOI.ModelLike, ::Type{T}, x::MOI.VariableIndex)\n\nReturn a tuple (lb, ub) of type Tuple{T, T}, where lb and ub are lower and upper bounds, respectively, imposed on x in model.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/","page":"API Reference","title":"API Reference","text":"The following utilities are useful when working with symmetric matrix cones.","category":"page"},{"location":"moi/submodules/Utilities/reference/","page":"API Reference","title":"API Reference","text":"Utilities.is_diagonal_vectorized_index\nUtilities.side_dimension_for_vectorized_dimension","category":"page"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.is_diagonal_vectorized_index","page":"API Reference","title":"MathOptInterface.Utilities.is_diagonal_vectorized_index","text":"is_diagonal_vectorized_index(index::Base.Integer)\n\nReturn whether index is the index of a diagonal element in a MOI.AbstractSymmetricMatrixSetTriangle set.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.side_dimension_for_vectorized_dimension","page":"API Reference","title":"MathOptInterface.Utilities.side_dimension_for_vectorized_dimension","text":"side_dimension_for_vectorized_dimension(n::Integer)\n\nReturn the dimension d such that MOI.dimension(MOI.PositiveSemidefiniteConeTriangle(d)) is n.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/#Set-utilities","page":"API Reference","title":"Set utilities","text":"","category":"section"},{"location":"moi/submodules/Utilities/reference/","page":"API Reference","title":"API Reference","text":"The following utilities are available for sets:","category":"page"},{"location":"moi/submodules/Utilities/reference/","page":"API Reference","title":"API Reference","text":"Utilities.AbstractDistance\nUtilities.ProjectionUpperBoundDistance\nUtilities.distance_to_set\nUtilities.set_dot","category":"page"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.AbstractDistance","page":"API Reference","title":"MathOptInterface.Utilities.AbstractDistance","text":"abstract type AbstractDistance end\n\nAn abstract type used to enabble dispatch of Utilities.distance_to_set.\n\n\n\n\n\n","category":"type"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.ProjectionUpperBoundDistance","page":"API Reference","title":"MathOptInterface.Utilities.ProjectionUpperBoundDistance","text":"ProjectionUpperBoundDistance() <: AbstractDistance\n\nAn upper bound on the minimum distance between point and the closest feasible point in set.\n\nDefinition of distance\n\nThe minimum distance is computed as:\n\nd(x mathcalK) = min_y in mathcalK x - y \n\nwhere x is point and mathcalK is set. The norm is computed as:\n\nx = sqrtf(x x mathcalK)\n\nwhere f is Utilities.set_dot.\n\nIn the default case, where the set does not have a specialized method for Utilities.set_dot, the norm is equivalent to the Euclidean norm x = sqrtsum x_i^2.\n\nWhy an upper bound?\n\nIn most cases, distance_to_set should return the smallest upper bound, but it may return a larger value if the smallest upper bound is expensive to compute.\n\nFor example, given an epigraph from of a conic set, (t x) f(x) le t, it may be simpler to return delta such that f(x) le t + delta, rather than computing the nearest projection onto the set.\n\nIf the distance is not the smallest upper bound, the docstring of the appropriate distance_to_set method must describe the way that the distance is computed.\n\n\n\n\n\n","category":"type"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.distance_to_set","page":"API Reference","title":"MathOptInterface.Utilities.distance_to_set","text":"distance_to_set(\n [d::AbstractDistance = ProjectionUpperBoundDistance()],]\n point::T,\n set::MOI.AbstractScalarSet,\n) where {T}\n\ndistance_to_set(\n [d::AbstractDistance = ProjectionUpperBoundDistance(),]\n point::AbstractVector{T},\n set::MOI.AbstractVectorSet,\n) where {T}\n\nCompute the distance between point and set using the distance metric d. If point is in the set set, this function must return zero(T).\n\nIf d is omitted, the default distance is Utilities.ProjectionUpperBoundDistance.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.set_dot","page":"API Reference","title":"MathOptInterface.Utilities.set_dot","text":"set_dot(x::AbstractVector, y::AbstractVector, set::AbstractVectorSet)\n\nReturn the scalar product between a vector x of the set set and a vector y of the dual of the set s.\n\n\n\n\n\nset_dot(x, y, set::AbstractScalarSet)\n\nReturn the scalar product between a number x of the set set and a number y of the dual of the set s.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/#DoubleDicts","page":"API Reference","title":"DoubleDicts","text":"","category":"section"},{"location":"moi/submodules/Utilities/reference/","page":"API Reference","title":"API Reference","text":"Utilities.DoubleDicts.DoubleDict\nUtilities.DoubleDicts.DoubleDictInner\nUtilities.DoubleDicts.IndexDoubleDict\nUtilities.DoubleDicts.IndexDoubleDictInner\nUtilities.DoubleDicts.outer_keys\nUtilities.DoubleDicts.nonempty_outer_keys","category":"page"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.DoubleDicts.DoubleDict","page":"API Reference","title":"MathOptInterface.Utilities.DoubleDicts.DoubleDict","text":"DoubleDict{V}\n\nAn optimized dictionary to map MOI.ConstraintIndex to values of type V.\n\nWorks as a AbstractDict{MOI.ConstraintIndex,V} with minimal differences.\n\nIf V is also a MOI.ConstraintIndex, use IndexDoubleDict.\n\nNote that MOI.ConstraintIndex is not a concrete type, opposed to MOI.ConstraintIndex{MOI.VariableIndex, MOI.Integers}, which is a concrete type.\n\nWhen looping through multiple keys of the same Function-in-Set type, use\n\ninner = dict[F, S]\n\nto return a type-stable DoubleDictInner.\n\n\n\n\n\n","category":"type"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.DoubleDicts.DoubleDictInner","page":"API Reference","title":"MathOptInterface.Utilities.DoubleDicts.DoubleDictInner","text":"DoubleDictInner{F,S,V}\n\nA type stable inner dictionary of DoubleDict.\n\n\n\n\n\n","category":"type"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.DoubleDicts.IndexDoubleDict","page":"API Reference","title":"MathOptInterface.Utilities.DoubleDicts.IndexDoubleDict","text":"IndexDoubleDict\n\nA specialized version of [DoubleDict] in which the values are of type MOI.ConstraintIndex\n\nWhen looping through multiple keys of the same Function-in-Set type, use\n\ninner = dict[F, S]\n\nto return a type-stable IndexDoubleDictInner.\n\n\n\n\n\n","category":"type"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.DoubleDicts.IndexDoubleDictInner","page":"API Reference","title":"MathOptInterface.Utilities.DoubleDicts.IndexDoubleDictInner","text":"IndexDoubleDictInner{F,S}\n\nA type stable inner dictionary of IndexDoubleDict.\n\n\n\n\n\n","category":"type"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.DoubleDicts.outer_keys","page":"API Reference","title":"MathOptInterface.Utilities.DoubleDicts.outer_keys","text":"outer_keys(d::AbstractDoubleDict)\n\nReturn an iterator over the outer keys of the AbstractDoubleDict d. Each outer key is a Tuple{Type,Type} so that a double loop can be easily used:\n\nfor (F, S) in DoubleDicts.outer_keys(dict)\n for (k, v) in dict[F, S]\n # ...\n end\nend\n\nFor performance, it is recommended that the inner loop lies in a separate function to gurantee type-stability. Some outer keys (F, S) might lead to an empty dict[F, S]. If you want only nonempty dict[F, S], use nonempty_outer_keys.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Utilities/reference/#MathOptInterface.Utilities.DoubleDicts.nonempty_outer_keys","page":"API Reference","title":"MathOptInterface.Utilities.DoubleDicts.nonempty_outer_keys","text":"nonempty_outer_keys(d::AbstractDoubleDict)\n\nReturn a vector of outer keys of the AbstractDoubleDict d.\n\nOnly outer keys that have a nonempty set of inner keys will be returned.\n\nEach outer key is a Tuple{Type,Type} so that a double loop can be easily used\n\nfor (F, S) in DoubleDicts.nonempty_outer_keys(dict)\n for (k, v) in dict[F, S]\n # ...\n end\nend\nFor performance, it is recommended that the inner loop lies in a separate\nfunction to gurantee type-stability.\n\nIf you want an iterator of all current outer keys, use [`outer_keys`](@ref).\n\n\n\n\n\n","category":"function"},{"location":"packages/Clp/","page":"jump-dev/Clp.jl","title":"jump-dev/Clp.jl","text":"EditURL = \"https://github.com/jump-dev/Clp.jl/blob/v1.0.3/README.md\"","category":"page"},{"location":"packages/Clp/","page":"jump-dev/Clp.jl","title":"jump-dev/Clp.jl","text":"(Image: )","category":"page"},{"location":"packages/Clp/#Clp.jl","page":"jump-dev/Clp.jl","title":"Clp.jl","text":"","category":"section"},{"location":"packages/Clp/","page":"jump-dev/Clp.jl","title":"jump-dev/Clp.jl","text":"(Image: Build Status) (Image: codecov)","category":"page"},{"location":"packages/Clp/","page":"jump-dev/Clp.jl","title":"jump-dev/Clp.jl","text":"Clp.jl is a wrapper for the COIN-OR Linear Programming solver.","category":"page"},{"location":"packages/Clp/","page":"jump-dev/Clp.jl","title":"jump-dev/Clp.jl","text":"The wrapper has two components:","category":"page"},{"location":"packages/Clp/","page":"jump-dev/Clp.jl","title":"jump-dev/Clp.jl","text":"a thin wrapper around the complete C API\nan interface to MathOptInterface","category":"page"},{"location":"packages/Clp/#Affiliation","page":"jump-dev/Clp.jl","title":"Affiliation","text":"","category":"section"},{"location":"packages/Clp/","page":"jump-dev/Clp.jl","title":"jump-dev/Clp.jl","text":"This wrapper is maintained by the JuMP community and is not a COIN-OR project.","category":"page"},{"location":"packages/Clp/#License","page":"jump-dev/Clp.jl","title":"License","text":"","category":"section"},{"location":"packages/Clp/","page":"jump-dev/Clp.jl","title":"jump-dev/Clp.jl","text":"Clp.jl is licensed under the MIT License.","category":"page"},{"location":"packages/Clp/","page":"jump-dev/Clp.jl","title":"jump-dev/Clp.jl","text":"The underlying solver, coin-or/Clp, is licensed under the Eclipse public license.","category":"page"},{"location":"packages/Clp/#Installation","page":"jump-dev/Clp.jl","title":"Installation","text":"","category":"section"},{"location":"packages/Clp/","page":"jump-dev/Clp.jl","title":"jump-dev/Clp.jl","text":"Install Clp using Pkg.add:","category":"page"},{"location":"packages/Clp/","page":"jump-dev/Clp.jl","title":"jump-dev/Clp.jl","text":"import Pkg\nPkg.add(\"Clp\")","category":"page"},{"location":"packages/Clp/","page":"jump-dev/Clp.jl","title":"jump-dev/Clp.jl","text":"In addition to installing the Clp.jl package, this will also download and install the Clp binaries. You do not need to install Clp separately.","category":"page"},{"location":"packages/Clp/","page":"jump-dev/Clp.jl","title":"jump-dev/Clp.jl","text":"To use a custom binary, read the Custom solver binaries section of the JuMP documentation.","category":"page"},{"location":"packages/Clp/#Use-with-JuMP","page":"jump-dev/Clp.jl","title":"Use with JuMP","text":"","category":"section"},{"location":"packages/Clp/","page":"jump-dev/Clp.jl","title":"jump-dev/Clp.jl","text":"To use Clp with JuMP, use Clp.Optimizer:","category":"page"},{"location":"packages/Clp/","page":"jump-dev/Clp.jl","title":"jump-dev/Clp.jl","text":"using JuMP, Clp\nmodel = Model(Clp.Optimizer)\nset_attribute(model, \"LogLevel\", 1)\nset_attribute(model, \"Algorithm\", 4)","category":"page"},{"location":"packages/Clp/#MathOptInterface-API","page":"jump-dev/Clp.jl","title":"MathOptInterface API","text":"","category":"section"},{"location":"packages/Clp/","page":"jump-dev/Clp.jl","title":"jump-dev/Clp.jl","text":"The Clp optimizer supports the following constraints and attributes.","category":"page"},{"location":"packages/Clp/","page":"jump-dev/Clp.jl","title":"jump-dev/Clp.jl","text":"List of supported objective functions:","category":"page"},{"location":"packages/Clp/","page":"jump-dev/Clp.jl","title":"jump-dev/Clp.jl","text":"MOI.ObjectiveFunction{MOI.ScalarAffineFunction{Float64}}","category":"page"},{"location":"packages/Clp/","page":"jump-dev/Clp.jl","title":"jump-dev/Clp.jl","text":"List of supported variable types:","category":"page"},{"location":"packages/Clp/","page":"jump-dev/Clp.jl","title":"jump-dev/Clp.jl","text":"MOI.Reals","category":"page"},{"location":"packages/Clp/","page":"jump-dev/Clp.jl","title":"jump-dev/Clp.jl","text":"List of supported constraint types:","category":"page"},{"location":"packages/Clp/","page":"jump-dev/Clp.jl","title":"jump-dev/Clp.jl","text":"MOI.ScalarAffineFunction{Float64} in MOI.EqualTo{Float64}\nMOI.ScalarAffineFunction{Float64} in MOI.GreaterThan{Float64}\nMOI.ScalarAffineFunction{Float64} in MOI.Interval{Float64}\nMOI.ScalarAffineFunction{Float64} in MOI.LessThan{Float64}\nMOI.VariableIndex in MOI.EqualTo{Float64}\nMOI.VariableIndex in MOI.GreaterThan{Float64}\nMOI.VariableIndex in MOI.Interval{Float64}\nMOI.VariableIndex in MOI.LessThan{Float64}","category":"page"},{"location":"packages/Clp/","page":"jump-dev/Clp.jl","title":"jump-dev/Clp.jl","text":"List of supported model attributes:","category":"page"},{"location":"packages/Clp/","page":"jump-dev/Clp.jl","title":"jump-dev/Clp.jl","text":"MOI.ObjectiveSense()","category":"page"},{"location":"packages/Clp/#Options","page":"jump-dev/Clp.jl","title":"Options","text":"","category":"section"},{"location":"packages/Clp/","page":"jump-dev/Clp.jl","title":"jump-dev/Clp.jl","text":"Options are, unfortunately, not well documented.","category":"page"},{"location":"packages/Clp/","page":"jump-dev/Clp.jl","title":"jump-dev/Clp.jl","text":"The following options are likely to be the most useful:","category":"page"},{"location":"packages/Clp/","page":"jump-dev/Clp.jl","title":"jump-dev/Clp.jl","text":"Parameter Example Explanation\nPrimalTolerance 1e-7 Primal feasibility tolerance\nDualTolerance 1e-7 Dual feasibility tolerance\nDualObjectiveLimit 1e308 When using dual simplex (where the objective is monotonically changing), terminate when the objective exceeds this limit\nMaximumIterations 2147483647 Terminate after performing this number of simplex iterations\nMaximumSeconds -1.0 Terminate after this many seconds have passed. A negative value means no time limit\nLogLevel 1 Set to 1, 2, 3, or 4 for increasing output. Set to 0 to disable output\nPresolveType 0 Set to 1 to disable presolve\nSolveType 5 Solution method: dual simplex (0), primal simplex (1), sprint (2), barrier with crossover (3), barrier without crossover (4), automatic (5)\nInfeasibleReturn 0 Set to 1 to return as soon as the problem is found to be infeasible (by default, an infeasibility proof is computed as well)\nScaling 3 0 -off, 1 equilibrium, 2 geometric, 3 auto, 4 dynamic(later)\nPerturbation 100 switch on perturbation (50), automatic (100), don't try perturbing (102)","category":"page"},{"location":"packages/Clp/#C-API","page":"jump-dev/Clp.jl","title":"C API","text":"","category":"section"},{"location":"packages/Clp/","page":"jump-dev/Clp.jl","title":"jump-dev/Clp.jl","text":"The C API can be accessed via Clp.Clp_XXX functions, where the names and arguments are identical to the C API.","category":"page"},{"location":"moi/","page":"Introduction","title":"Introduction","text":"EditURL = \"https://github.com/jump-dev/MathOptInterface.jl/blob/v1.20.1/docs/src/index.md\"","category":"page"},{"location":"moi/#moi_documentation","page":"Introduction","title":"Introduction","text":"","category":"section"},{"location":"moi/","page":"Introduction","title":"Introduction","text":"warning: Warning\nThis documentation in this section is a copy of the official MathOptInterface documentation available at https://jump.dev/MathOptInterface.jl/v1.20.1. It is included here to make it easier to link concepts between JuMP and MathOptInterface.","category":"page"},{"location":"moi/#What-is-MathOptInterface?","page":"Introduction","title":"What is MathOptInterface?","text":"","category":"section"},{"location":"moi/","page":"Introduction","title":"Introduction","text":"MathOptInterface.jl (MOI) is an abstraction layer designed to provide a unified interface to mathematical optimization solvers so that users do not need to understand multiple solver-specific APIs.","category":"page"},{"location":"moi/","page":"Introduction","title":"Introduction","text":"tip: Tip\nThis documentation is aimed at developers writing software interfaces to solvers and modeling languages using the MathOptInterface API. If you are a user interested in solving optimization problems, we encourage you instead to use MOI through a higher-level modeling interface like JuMP or Convex.jl.","category":"page"},{"location":"moi/#How-the-documentation-is-structured","page":"Introduction","title":"How the documentation is structured","text":"","category":"section"},{"location":"moi/","page":"Introduction","title":"Introduction","text":"Having a high-level overview of how this documentation is structured will help you know where to look for certain things.","category":"page"},{"location":"moi/","page":"Introduction","title":"Introduction","text":"The Tutorials section contains articles on how to use and implement the MathOptInteraface API. Look here if you want to write a model in MOI, or write an interface to a new solver.\nThe Manual contains short code-snippets that explain how to use the MOI API. Look here for more details on particular areas of MOI.\nThe Background section contains articles on the theory behind MathOptInterface. Look here if you want to understand why, rather than how.\nThe API Reference contains a complete list of functions and types that comprise the MOI API. Look here is you want to know how to use (or implement) a particular function.\nThe Submodules section contains stand-alone documentation for each of the submodules within MOI. These submodules are not required to interface a solver with MOI, but they make the job much easier.","category":"page"},{"location":"moi/#Citing-MathOptInterface","page":"Introduction","title":"Citing MathOptInterface","text":"","category":"section"},{"location":"moi/","page":"Introduction","title":"Introduction","text":"A paper describing the design and features of MathOptInterface is available on arXiv.","category":"page"},{"location":"moi/","page":"Introduction","title":"Introduction","text":"If you find MathOptInterface useful in your work, we kindly request that you cite the following paper:","category":"page"},{"location":"moi/","page":"Introduction","title":"Introduction","text":"@article{legat2021mathoptinterface,\n title={{MathOptInterface}: a data structure for mathematical optimization problems},\n author={Legat, Beno{\\^\\i}t and Dowson, Oscar and Garcia, Joaquim Dias and Lubin, Miles},\n journal={INFORMS Journal on Computing},\n year={2021},\n doi={10.1287/ijoc.2021.1067},\n publisher={INFORMS}\n}","category":"page"},{"location":"packages/OSQP/","page":"osqp/OSQP.jl","title":"osqp/OSQP.jl","text":"EditURL = \"https://github.com/osqp/OSQP.jl/blob/443706e34c2619acbe65281c60bbe850ca4a8fac/README.md\"","category":"page"},{"location":"packages/OSQP/#OSQP.jl","page":"osqp/OSQP.jl","title":"OSQP.jl","text":"","category":"section"},{"location":"packages/OSQP/","page":"osqp/OSQP.jl","title":"osqp/OSQP.jl","text":"(Image: Build Status) (Image: codecov.io)","category":"page"},{"location":"packages/OSQP/","page":"osqp/OSQP.jl","title":"osqp/OSQP.jl","text":"OSQP.jl is a Julia wrapper for OSQP: the Operator Splitting QP Solver.","category":"page"},{"location":"packages/OSQP/#License","page":"osqp/OSQP.jl","title":"License","text":"","category":"section"},{"location":"packages/OSQP/","page":"osqp/OSQP.jl","title":"osqp/OSQP.jl","text":"OSQP.jl is licensed under the Apache-2.0 license.","category":"page"},{"location":"packages/OSQP/","page":"osqp/OSQP.jl","title":"osqp/OSQP.jl","text":"The upstream solver, osqp/osqp is also licensed under the Apache-2.0 license.","category":"page"},{"location":"packages/OSQP/#Installation","page":"osqp/OSQP.jl","title":"Installation","text":"","category":"section"},{"location":"packages/OSQP/","page":"osqp/OSQP.jl","title":"osqp/OSQP.jl","text":"Install OSQP.jl using the Julia package manager","category":"page"},{"location":"packages/OSQP/","page":"osqp/OSQP.jl","title":"osqp/OSQP.jl","text":"import Pkg\nPkg.add(\"OSQP\")","category":"page"},{"location":"packages/OSQP/#Problem-class","page":"osqp/OSQP.jl","title":"Problem class","text":"","category":"section"},{"location":"packages/OSQP/","page":"osqp/OSQP.jl","title":"osqp/OSQP.jl","text":"The OSQP (Operator Splitting Quadratic Program) solver is a numerical optimization package for solving problems in the form","category":"page"},{"location":"packages/OSQP/","page":"osqp/OSQP.jl","title":"osqp/OSQP.jl","text":"minimize 0.5 x' P x + q' x\n\nsubject to l <= A x <= u","category":"page"},{"location":"packages/OSQP/","page":"osqp/OSQP.jl","title":"osqp/OSQP.jl","text":"where x in R^n is the optimization variable. The objective function is defined by a positive semidefinite matrix P in S^n_+ and vector q in R^n. The linear constraints are defined by matrix A in R^{m x n} and vectors l in R^m U {-inf}^m, u in R^m U {+inf}^m.","category":"page"},{"location":"packages/OSQP/#Documentation","page":"osqp/OSQP.jl","title":"Documentation","text":"","category":"section"},{"location":"packages/OSQP/","page":"osqp/OSQP.jl","title":"osqp/OSQP.jl","text":"Detailed documentation is available at https://osqp.org/.","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"CurrentModule = JuMP\nDocTestSetup = quote\n using JuMP, HiGHS, SCS\nend\nDocTestFilters = [r\"≤|<=\", r\"≥|>=\", r\" == | = \", r\" ∈ | in \", r\"MathOptInterface|MOI\"]","category":"page"},{"location":"manual/models/#jump_models","page":"Models","title":"Models","text":"","category":"section"},{"location":"manual/models/","page":"Models","title":"Models","text":"JuMP models are the fundamental building block that we use to construct optimization problems. They hold things like the variables and constraints, as well as which solver to use and even solution information.","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"info: Info\nJuMP uses \"optimizer\" as a synonym for \"solver.\" Our convention is to use \"solver\" to refer to the underlying software, and use \"optimizer\" to refer to the Julia object that wraps the solver. For example, HiGHS is a solver, and HiGHS.Optimizer is an optimizer.","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"tip: Tip\nSee Supported solvers for a list of available solvers.","category":"page"},{"location":"manual/models/#Create-a-model","page":"Models","title":"Create a model","text":"","category":"section"},{"location":"manual/models/","page":"Models","title":"Models","text":"Create a model by passing an optimizer to Model:","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"julia> model = Model(HiGHS.Optimizer)\nA JuMP Model\nFeasibility problem with:\nVariables: 0\nModel mode: AUTOMATIC\nCachingOptimizer state: EMPTY_OPTIMIZER\nSolver name: HiGHS","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"If you don't know which optimizer you will be using at creation time, create a model without an optimizer, and then call set_optimizer at any time prior to optimize!:","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"julia> model = Model()\nA JuMP Model\nFeasibility problem with:\nVariables: 0\nModel mode: AUTOMATIC\nCachingOptimizer state: NO_OPTIMIZER\nSolver name: No optimizer attached.\n\njulia> set_optimizer(model, HiGHS.Optimizer)","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"tip: Tip\nDon't know what the fields Model mode and CachingOptimizer state mean? Read the Backends section.","category":"page"},{"location":"manual/models/#What-is-the-difference?","page":"Models","title":"What is the difference?","text":"","category":"section"},{"location":"manual/models/","page":"Models","title":"Models","text":"For most models, there is no difference between passing the optimizer to Model, and calling set_optimizer.","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"However, if an optimizer does not support a constraint in the model, the timing of when an error will be thrown can differ:","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"If you pass an optimizer, an error will be thrown when you try to add the constraint.\nIf you call set_optimizer, an error will be thrown when you try to solve the model via optimize!.","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"Therefore, most users should pass an optimizer to Model because it provides the earliest warning that your solver is not suitable for the model you are trying to build. However, if you are modifying a problem by adding and deleting different constraint types, you may need to use set_optimizer. See Switching optimizer for the relaxed problem for an example of when this is useful.","category":"page"},{"location":"manual/models/#Reducing-time-to-first-solve-latency","page":"Models","title":"Reducing time-to-first-solve latency","text":"","category":"section"},{"location":"manual/models/","page":"Models","title":"Models","text":"By default, JuMP uses bridges to reformulate the model you are building into an equivalent model supported by the solver.","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"However, if your model is already supported by the solver, bridges add latency (read The \"time-to-first-solve\" issue). This is particularly noticeable for small models.","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"To reduce the \"time-to-first-solve,s\" try passing add_bridges = false.","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"julia> model = Model(HiGHS.Optimizer; add_bridges = false);","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"or","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"julia> model = Model();\n\njulia> set_optimizer(model, HiGHS.Optimizer; add_bridges = false)","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"However, be wary. If your model and solver combination needs bridges, an error will be thrown:","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"julia> model = Model(SCS.Optimizer; add_bridges = false);\n\n\njulia> @variable(model, x)\nx\n\njulia> @constraint(model, 2x <= 1)\nERROR: Constraints of type MathOptInterface.ScalarAffineFunction{Float64}-in-MathOptInterface.LessThan{Float64} are not supported by the solver.\n\nIf you expected the solver to support your problem, you may have an error in your formulation. Otherwise, consider using a different solver.\n\nThe list of available solvers, along with the problem types they support, is available at https://jump.dev/JuMP.jl/stable/installation/#Supported-solvers.\n[...]","category":"page"},{"location":"manual/models/#Solvers-which-expect-environments","page":"Models","title":"Solvers which expect environments","text":"","category":"section"},{"location":"manual/models/","page":"Models","title":"Models","text":"Some solvers accept (or require) positional arguments such as a license environment or a path to a binary executable. For these solvers, you can pass a function to Model which takes zero arguments and returns an instance of the optimizer.","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"A common use-case for this is passing an environment or sub-solver to the optimizer:","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"julia> import HiGHS\n\njulia> import MultiObjectiveAlgorithms as MOA\n\njulia> model = Model(() -> MOA.Optimizer(HiGHS.Optimizer))\nA JuMP Model\nFeasibility problem with:\nVariables: 0\nModel mode: AUTOMATIC\nCachingOptimizer state: EMPTY_OPTIMIZER\nSolver name: MOA[algorithm=MultiObjectiveAlgorithms.Lexicographic, optimizer=HiGHS]","category":"page"},{"location":"manual/models/#solver_options","page":"Models","title":"Solver options","text":"","category":"section"},{"location":"manual/models/","page":"Models","title":"Models","text":"JuMP uses \"attribute\" as a synonym for \"option.\" Use optimizer_with_attributes to create an optimizer with some attributes initialized:","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"julia> model = Model(\n optimizer_with_attributes(HiGHS.Optimizer, \"output_flag\" => false),\n )\nA JuMP Model\nFeasibility problem with:\nVariables: 0\nModel mode: AUTOMATIC\nCachingOptimizer state: EMPTY_OPTIMIZER\nSolver name: HiGHS","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"Alternatively, use set_attribute to set an attribute after the model has been created:","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"julia> model = Model(HiGHS.Optimizer);\n\njulia> set_attribute(model, \"output_flag\", false)\n\njulia> get_attribute(model, \"output_flag\")\nfalse","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"You can also modify attributes within an optimizer_with_attributes object:","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"julia> solver = optimizer_with_attributes(HiGHS.Optimizer, \"output_flag\" => true);\n\njulia> get_attribute(solver, \"output_flag\")\ntrue\n\njulia> set_attribute(solver, \"output_flag\", false)\n\njulia> get_attribute(solver, \"output_flag\")\nfalse\n\njulia> model = Model(solver);","category":"page"},{"location":"manual/models/#Changing-the-number-types","page":"Models","title":"Changing the number types","text":"","category":"section"},{"location":"manual/models/","page":"Models","title":"Models","text":"By default, the coefficients of affine and quadratic expressions are numbers of type either Float64 or Complex{Float64} (see Complex number support).","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"The type Float64 can be changed using the GenericModel constructor:","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"julia> model = GenericModel{Rational{BigInt}}();\n\njulia> @variable(model, x)\nx\n\njulia> @expression(model, expr, 1 // 3 * x)\n1//3 x\n\njulia> typeof(expr)\nGenericAffExpr{Rational{BigInt}, GenericVariableRef{Rational{BigInt}}}","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"Using a value_type other than Float64 is an advanced operation and should be used only if the underlying solver actually solves the problem using the provided value type.","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"warning: Warning\nNonlinear Modeling is currently restricted to the Float64 number type.","category":"page"},{"location":"manual/models/#Print-the-model","page":"Models","title":"Print the model","text":"","category":"section"},{"location":"manual/models/","page":"Models","title":"Models","text":"By default, show(model) will print a summary of the problem:","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"julia> model = Model(); @variable(model, x >= 0); @objective(model, Max, x);\n\njulia> model\nA JuMP Model\nMaximization problem with:\nVariable: 1\nObjective function type: VariableRef\n`VariableRef`-in-`MathOptInterface.GreaterThan{Float64}`: 1 constraint\nModel mode: AUTOMATIC\nCachingOptimizer state: NO_OPTIMIZER\nSolver name: No optimizer attached.\nNames registered in the model: x","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"Use print to print the formulation of the model (in IJulia, this will render as LaTeX.","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"julia> print(model)\nMax x\nSubject to\n x ≥ 0","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"warning: Warning\nThis format is specific to JuMP and may change in any future release. It is not intended to be an instance format. To write the model to a file, use write_to_file instead.","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"Use latex_formulation to display the model in LaTeX form.","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"julia> latex_formulation(model)\n$$ \\begin{aligned}\n\\max\\quad & x\\\\\n\\text{Subject to} \\quad & x \\geq 0\\\\\n\\end{aligned} $$","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"In IJulia (and Documenter), ending a cell in with latex_formulation will render the model in LaTeX:","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"using JuMP # hide\nmodel = Model() # hide\n@variable(model, x >= 0) # hide\n@objective(model, Max, x) # hide\nlatex_formulation(model)","category":"page"},{"location":"manual/models/#Turn-off-output","page":"Models","title":"Turn off output","text":"","category":"section"},{"location":"manual/models/","page":"Models","title":"Models","text":"Use set_silent and unset_silent to disable or enable printing output from the solver.","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"julia> model = Model(HiGHS.Optimizer);\n\njulia> set_silent(model)\n\njulia> unset_silent(model)","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"tip: Tip\nMost solvers will also have a solver-specific option to provide finer-grained control over the output. Consult their README's for details.","category":"page"},{"location":"manual/models/#Set-a-time-limit","page":"Models","title":"Set a time limit","text":"","category":"section"},{"location":"manual/models/","page":"Models","title":"Models","text":"Use set_time_limit_sec, unset_time_limit_sec, and time_limit_sec to manage time limits.","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"julia> model = Model(HiGHS.Optimizer);\n\njulia> set_time_limit_sec(model, 60.0)\n\n\njulia> time_limit_sec(model)\n60.0\n\njulia> unset_time_limit_sec(model)\n\njulia> limit = time_limit_sec(model)\n\njulia> limit === nothing\ntrue","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"If your time limit is encoded as a Dates.Period object, use the following code to convert it to Float64 for set_time_limit_sec:","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"julia> import Dates\n\njulia> seconds(x::Dates.Period) = 1e-3 * Dates.value(round(x, Dates.Millisecond))\nseconds (generic function with 1 method)\n\njulia> set_time_limit_sec(model, seconds(Dates.Hour(1)))\n\njulia> time_limit_sec(model)\n3600.0","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"info: Info\nSome solvers do not support time limits. In these cases, an error will be thrown.","category":"page"},{"location":"manual/models/#Write-a-model-to-file","page":"Models","title":"Write a model to file","text":"","category":"section"},{"location":"manual/models/","page":"Models","title":"Models","text":"JuMP can write models to a variety of file-formats using write_to_file and Base.write.","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"For most common file formats, the file type will be detected from the extension.","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"For example, here is how to write an MPS file:","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"julia> model = Model();\n\njulia> write_to_file(model, \"model.mps\")","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"Other supported file formats include:","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":".cbf for the Conic Benchmark Format\n.lp for the LP file format\n.mof.json for the MathOptFormat\n.nl for AMPL's NL file format\n.rew for the REW file format\n.sdpa and \".dat-s\" for the SDPA file format","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"To write to a specific io::IO, use Base.write. Specify the file type by passing a MOI.FileFormats.FileFormat enum.","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"julia> model = Model();\n\njulia> io = IOBuffer();\n\njulia> write(io, model; format = MOI.FileFormats.FORMAT_MPS)","category":"page"},{"location":"manual/models/#Read-a-model-from-file","page":"Models","title":"Read a model from file","text":"","category":"section"},{"location":"manual/models/","page":"Models","title":"Models","text":"JuMP models can be created from file formats using read_from_file and Base.read.","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"julia> model = read_from_file(\"model.mps\")\nA JuMP Model\nMinimization problem with:\nVariables: 0\nObjective function type: AffExpr\nModel mode: AUTOMATIC\nCachingOptimizer state: NO_OPTIMIZER\nSolver name: No optimizer attached.\n\njulia> seekstart(io);\n\njulia> model2 = read(io, Model; format = MOI.FileFormats.FORMAT_MPS)\nA JuMP Model\nMinimization problem with:\nVariables: 0\nObjective function type: AffExpr\nModel mode: AUTOMATIC\nCachingOptimizer state: NO_OPTIMIZER\nSolver name: No optimizer attached.","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"note: Note\nBecause file formats do not serialize the containers of JuMP variables and constraints, the names in the model will not be registered. Therefore, you cannot access named variables and constraints via model[:x]. Instead, use variable_by_name or constraint_by_name to access specific variables or constraints.","category":"page"},{"location":"manual/models/#Relax-integrality","page":"Models","title":"Relax integrality","text":"","category":"section"},{"location":"manual/models/","page":"Models","title":"Models","text":"Use relax_integrality to remove any integrality constraints from the model, such as integer and binary restrictions on variables. relax_integrality returns a function that can be later called with zero arguments to re-add the removed constraints:","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"julia> model = Model();\n\njulia> @variable(model, x, Int)\nx\n\njulia> num_constraints(model, VariableRef, MOI.Integer)\n1\n\njulia> undo = relax_integrality(model);\n\njulia> num_constraints(model, VariableRef, MOI.Integer)\n0\n\njulia> undo()\n\njulia> num_constraints(model, VariableRef, MOI.Integer)\n1","category":"page"},{"location":"manual/models/#Switching-optimizer-for-the-relaxed-problem","page":"Models","title":"Switching optimizer for the relaxed problem","text":"","category":"section"},{"location":"manual/models/","page":"Models","title":"Models","text":"A common reason for relaxing integrality is to compute dual variables of the relaxed problem. However, some mixed-integer linear solvers (for example, Cbc) do not return dual solutions, even if the problem does not have integrality restrictions.","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"Therefore, after relax_integrality you should call set_optimizer with a solver that does support dual solutions, such as Clp.","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"For example, instead of:","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"using JuMP, Cbc\nmodel = Model(Cbc.Optimizer)\n@variable(model, x, Int)\nundo = relax_integrality(model)\noptimize!(model)\nreduced_cost(x) # Errors","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"do:","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"using JuMP, Cbc, Clp\nmodel = Model(Cbc.Optimizer)\n@variable(model, x, Int)\nundo = relax_integrality(model)\nset_optimizer(model, Clp.Optimizer)\noptimize!(model)\nreduced_cost(x) # Works","category":"page"},{"location":"manual/models/#Backends","page":"Models","title":"Backends","text":"","category":"section"},{"location":"manual/models/","page":"Models","title":"Models","text":"info: Info\nThis section discusses advanced features of JuMP. For new users, you may want to skip this section. You don't need to know how JuMP manages problems behind the scenes to create and solve JuMP models.","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"A JuMP Model is a thin layer around a backend of type MOI.ModelLike that stores the optimization problem and acts as the optimization solver.","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"However, if you construct a model like Model(HiGHS.Optimizer), the backend is not a HiGHS.Optimizer, but a more complicated object.","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"From JuMP, the MOI backend can be accessed using the backend function. Let's see what the backend of a JuMP Model is:","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"julia> model = Model(HiGHS.Optimizer);\n\njulia> b = backend(model)\nMOIU.CachingOptimizer{MOIB.LazyBridgeOptimizer{HiGHS.Optimizer}, MOIU.UniversalFallback{MOIU.Model{Float64}}}\nin state EMPTY_OPTIMIZER\nin mode AUTOMATIC\nwith model cache MOIU.UniversalFallback{MOIU.Model{Float64}}\n fallback for MOIU.Model{Float64}\nwith optimizer MOIB.LazyBridgeOptimizer{HiGHS.Optimizer}\n with 0 variable bridges\n with 0 constraint bridges\n with 0 objective bridges\n with inner model A HiGHS model with 0 columns and 0 rows.","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"Uh oh. Even though we passed a HiGHS.Optimizer, the backend is a much more complicated object.","category":"page"},{"location":"manual/models/#CachingOptimizer","page":"Models","title":"CachingOptimizer","text":"","category":"section"},{"location":"manual/models/","page":"Models","title":"Models","text":"A MOIU.CachingOptimizer is a layer that abstracts the difference between solvers that support incremental modification (for example, they support adding variables one-by-one), and solvers that require the entire problem in a single API call (for example, they only accept the A, b and c matrices of a linear program).","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"It has two parts:","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"A cache, where the model can be built and modified incrementally\njulia> b.model_cache\nMOIU.UniversalFallback{MOIU.Model{Float64}}\nfallback for MOIU.Model{Float64}\nAn optimizer, which is used to solve the problem\njulia> b.optimizer\nMOIB.LazyBridgeOptimizer{HiGHS.Optimizer}\nwith 0 variable bridges\nwith 0 constraint bridges\nwith 0 objective bridges\nwith inner model A HiGHS model with 0 columns and 0 rows.","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"info: Info\nThe LazyBridgeOptimizer section explains what a LazyBridgeOptimizer is.","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"The CachingOptimizer has logic to decide when to copy the problem from the cache to the optimizer, and when it can efficiently update the optimizer in-place.","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"A CachingOptimizer may be in one of three possible states:","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"NO_OPTIMIZER: The CachingOptimizer does not have any optimizer.\nEMPTY_OPTIMIZER: The CachingOptimizer has an empty optimizer, and it is not synchronized with the cached model.\nATTACHED_OPTIMIZER: The CachingOptimizer has an optimizer, and it is synchronized with the cached model.","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"A CachingOptimizer has two modes of operation:","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"AUTOMATIC: The CachingOptimizer changes its state when necessary. For example, optimize! will automatically call attach_optimizer (an optimizer must have been previously set). Attempting to add a constraint or perform a modification not supported by the optimizer results in a drop to EMPTY_OPTIMIZER mode.\nMANUAL: The user must change the state of the CachingOptimizer using MOIU.reset_optimizer(::JuMP.Model), MOIU.drop_optimizer(::JuMP.Model), and MOIU.attach_optimizer(::JuMP.Model). Attempting to perform an operation in the incorrect state results in an error.","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"By default Model will create a CachingOptimizer in AUTOMATIC mode.","category":"page"},{"location":"manual/models/#LazyBridgeOptimizer","page":"Models","title":"LazyBridgeOptimizer","text":"","category":"section"},{"location":"manual/models/","page":"Models","title":"Models","text":"The second layer that JuMP applies automatically is a MOI.Bridges.LazyBridgeOptimizer. A MOI.Bridges.LazyBridgeOptimizer is an MOI layer that attempts to transform the problem from the formulation provided by the user into an equivalent problem supported by the solver. This may involve adding new variables and constraints to the optimizer. The transformations are selected from a set of known recipes called bridges.","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"A common example of a bridge is one that splits an interval constraint like @constraint(model, 1 <= x + y <= 2) into two constraints, @constraint(model, x + y >= 1) and @constraint(model, x + y <= 2).","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"Use the add_bridges = false keyword to remove the bridging layer:","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"julia> model = Model(HiGHS.Optimizer; add_bridges = false)\nA JuMP Model\nFeasibility problem with:\nVariables: 0\nModel mode: AUTOMATIC\nCachingOptimizer state: EMPTY_OPTIMIZER\nSolver name: HiGHS\n\njulia> backend(model)\nMOIU.CachingOptimizer{HiGHS.Optimizer, MOIU.UniversalFallback{MOIU.Model{Float64}}}\nin state EMPTY_OPTIMIZER\nin mode AUTOMATIC\nwith model cache MOIU.UniversalFallback{MOIU.Model{Float64}}\n fallback for MOIU.Model{Float64}\nwith optimizer A HiGHS model with 0 columns and 0 rows.","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"Bridges can be added and removed from a MOI.Bridges.LazyBridgeOptimizer using add_bridge and remove_bridge. Use print_active_bridges to see which bridges are used to reformulate the model. Read the Ellipsoid approximation tutorial for more details.","category":"page"},{"location":"manual/models/#Unsafe-backend","page":"Models","title":"Unsafe backend","text":"","category":"section"},{"location":"manual/models/","page":"Models","title":"Models","text":"In some advanced use-cases, it is necessary to work with the inner optimization model directly. To access this model, use unsafe_backend:","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"julia> backend(model)\nMOIU.CachingOptimizer{MOIB.LazyBridgeOptimizer{HiGHS.Optimizer}, MOIU.UniversalFallback{MOIU.Model{Float64}}}\nin state EMPTY_OPTIMIZER\nin mode AUTOMATIC\nwith model cache MOIU.UniversalFallback{MOIU.Model{Float64}}\n fallback for MOIU.Model{Float64}\nwith optimizer MOIB.LazyBridgeOptimizer{HiGHS.Optimizer}\n with 0 variable bridges\n with 0 constraint bridges\n with 0 objective bridges\n with inner model A HiGHS model with 0 columns and 0 rows.\n\njulia> unsafe_backend(model)\nA HiGHS model with 0 columns and 0 rows.","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"warning: Warning\nbackend and unsafe_backend are advanced routines. Read their docstrings to understand the caveats of their usage, and only call them if you wish to access low-level solver-specific functions.","category":"page"},{"location":"manual/models/#Direct-mode","page":"Models","title":"Direct mode","text":"","category":"section"},{"location":"manual/models/","page":"Models","title":"Models","text":"Using a CachingOptimizer results in an additional copy of the model being stored by JuMP in the .model_cache field. To avoid this overhead, create a JuMP model using direct_model:","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"julia> model = direct_model(HiGHS.Optimizer())\nA JuMP Model\nFeasibility problem with:\nVariables: 0\nModel mode: DIRECT\nSolver name: HiGHS","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"warning: Warning\nSolvers that do not support incremental modification do not support direct_model. An error will be thrown, telling you to use a CachingOptimizer instead.","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"The benefit of using direct_model is that there are no extra layers (for example, Cachingoptimizer or LazyBridgeOptimizer) between model and the provided optimizer:","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"julia> backend(model)\nA HiGHS model with 0 columns and 0 rows.","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"A downside of direct mode is that there is no bridging layer. Therefore, only constraints which are natively supported by the solver are supported. For example, HiGHS.jl does not implement quadratic constraints:","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"julia> model = direct_model(HiGHS.Optimizer());\n\njulia> set_silent(model)\n\njulia> @variable(model, x[1:2]);\n\njulia> @constraint(model, x[1]^2 + x[2]^2 <= 2)\nERROR: Constraints of type MathOptInterface.ScalarQuadraticFunction{Float64}-in-MathOptInterface.LessThan{Float64} are not supported by the solver.\n\nIf you expected the solver to support your problem, you may have an error in your formulation. Otherwise, consider using a different solver.\n\nThe list of available solvers, along with the problem types they support, is available at https://jump.dev/JuMP.jl/stable/installation/#Supported-solvers.\nStacktrace:","category":"page"},{"location":"manual/models/","page":"Models","title":"Models","text":"warning: Warning\nAnother downside of direct mode is that the behavior of querying solution information after modifying the problem is solver-specific. This can lead to errors, or the solver silently returning an incorrect value. See OptimizeNotCalled errors for more information.","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"EditURL = \"https://github.com/jump-dev/MathOptInterface.jl/blob/v1.20.1/docs/src/background/duality.md\"","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"CurrentModule = MathOptInterface\nDocTestSetup = quote\n import MathOptInterface as MOI\nend\nDocTestFilters = [r\"MathOptInterface|MOI\"]","category":"page"},{"location":"moi/background/duality/#Duality","page":"Duality","title":"Duality","text":"","category":"section"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"Conic duality is the starting point for MOI's duality conventions. When all functions are affine (or coordinate projections), and all constraint sets are closed convex cones, the model may be called a conic optimization problem.","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"For a minimization problem in geometric conic form, the primal is:","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"beginalign\n min_x in mathbbR^n a_0^T x + b_0\n\n textst A_i x + b_i in mathcalC_i i = 1 ldots m\nendalign","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"and the dual is a maximization problem in standard conic form:","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"beginalign\n max_y_1 ldots y_m -sum_i=1^m b_i^T y_i + b_0\n\n textst a_0 - sum_i=1^m A_i^T y_i = 0\n\n y_i in mathcalC_i^* i = 1 ldots m\nendalign","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"where each mathcalC_i is a closed convex cone and mathcalC_i^* is its dual cone.","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"For a maximization problem in geometric conic form, the primal is:","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"beginalign\n max_x in mathbbR^n a_0^T x + b_0\n\n textst A_i x + b_i in mathcalC_i i = 1 ldots m\nendalign","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"and the dual is a minimization problem in standard conic form:","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"beginalign\n min_y_1 ldots y_m sum_i=1^m b_i^T y_i + b_0\n\n textst a_0 + sum_i=1^m A_i^T y_i = 0\n\n y_i in mathcalC_i^* i = 1 ldots m\nendalign","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"A linear inequality constraint a^T x + b ge c is equivalent to a^T x + b - c in mathbbR_+, and a^T x + b le c is equivalent to a^T x + b - c in mathbbR_-. Variable-wise constraints are affine constraints with the appropriate identity mapping in place of A_i.","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"For the special case of minimization LPs, the MOI primal form can be stated as:","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"beginalign\n min_x in mathbbR^n a_0^T x + b_0\n\n textst\nA_1 x ge b_1\n A_2 x le b_2\n A_3 x = b_3\nendalign","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"By applying the stated transformations to conic form, taking the dual, and transforming back into linear inequality form, one obtains the following dual:","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"beginalign\n max_y_1y_2y_3 b_1^Ty_1 + b_2^Ty_2 + b_3^Ty_3 + b_0\n\n textst\nA_1^Ty_1 + A_2^Ty_2 + A_3^Ty_3 = a_0\n y_1 ge 0\n y_2 le 0\nendalign","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"For maximization LPs, the MOI primal form can be stated as:","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"beginalign\n max_x in mathbbR^n a_0^T x + b_0\n\n textst\nA_1 x ge b_1\n A_2 x le b_2\n A_3 x = b_3\nendalign","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"and similarly, the dual is:","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"beginalign\n min_y_1y_2y_3 -b_1^Ty_1 - b_2^Ty_2 - b_3^Ty_3 + b_0\n\n textst\nA_1^Ty_1 + A_2^Ty_2 + A_3^Ty_3 = -a_0\n y_1 ge 0\n y_2 le 0\nendalign","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"warning: Warning\nFor the LP case, the signs of the feasible dual variables depend only on the sense of the corresponding primal inequality and not on the objective sense.","category":"page"},{"location":"moi/background/duality/#Duality-and-scalar-product","page":"Duality","title":"Duality and scalar product","text":"","category":"section"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"The scalar product is different from the canonical one for the sets PositiveSemidefiniteConeTriangle, LogDetConeTriangle, RootDetConeTriangle.","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"If the set C_i of the section Duality is one of these three cones, then the rows of the matrix A_i corresponding to off-diagonal entries are twice the value of the coefficients field in the VectorAffineFunction for the corresponding rows. See PositiveSemidefiniteConeTriangle for details.","category":"page"},{"location":"moi/background/duality/#Dual-for-problems-with-quadratic-functions","page":"Duality","title":"Dual for problems with quadratic functions","text":"","category":"section"},{"location":"moi/background/duality/#Quadratic-Programs-(QPs)","page":"Duality","title":"Quadratic Programs (QPs)","text":"","category":"section"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"For quadratic programs with only affine conic constraints,","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"beginalign*\n min_x in mathbbR^n frac12x^TQ_0x + a_0^T x + b_0\n\n textst A_i x + b_i in mathcalC_i i = 1 ldots m\nendalign*","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"with cones mathcalC_i subseteq mathbbR^m_i for i = 1 ldots m, consider the Lagrangian function","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"L(x y) = frac12x^TQ_0x + a_0^T x + b_0 - sum_i = 1^m y_i^T (A_i x + b_i)","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"Let z(y) denote sum_i = 1^m A_i^T y_i - a_0, the Lagrangian can be rewritten as","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"L(x y) = frac12x^TQ_0x - z(y)^T x + b_0 - sum_i = 1^m y_i^T b_i","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"The condition nabla_x L(x y) = 0 gives","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"0 = nabla_x L(x y) = Q_0x + a_0 - sum_i = 1^m y_i^T b_i","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"which gives Q_0x = z(y). This allows to obtain that","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"min_x in mathbbR^n L(x y) = -frac12x^TQ_0x + b_0 - sum_i = 1^m y_i^T b_i","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"so the dual problem is","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"max_y_i in mathcalC_i^* min_x in mathbbR^n -frac12x^TQ_0x + b_0 - sum_i = 1^m y_i^T b_i","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"If Q_0 is invertible, we have x = Q_0^-1z(y) hence","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"min_x in mathbbR^n L(x y) = -frac12z(y)^TQ_0^-1z(y) + b_0 - sum_i = 1^m y_i^T b_i","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"so the dual problem is","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"max_y_i in mathcalC_i^* -frac12z(y)^TQ_0^-1z(y) + b_0 - sum_i = 1^m y_i^T b_i","category":"page"},{"location":"moi/background/duality/#Quadratically-Constrained-Quadratic-Programs-(QCQPs)","page":"Duality","title":"Quadratically Constrained Quadratic Programs (QCQPs)","text":"","category":"section"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"Given a problem with both quadratic function and quadratic objectives:","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"beginalign*\n min_x in mathbbR^n frac12x^TQ_0x + a_0^T x + b_0\n\n textst frac12x^TQ_ix + a_i^T x + b_i in mathcalC_i i = 1 ldots m\nendalign*","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"with cones mathcalC_i subseteq mathbbR for i = 1 ldots m, consider the Lagrangian function","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"L(x y) = frac12x^TQ_0x + a_0^T x + b_0 - sum_i = 1^m y_i (frac12x^TQ_ix + a_i^T x + b_i)","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"A pair of primal-dual variables (x^star y^star) is optimal if","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"x^star is a minimizer of\nmin_x in mathbbR^n L(x y^star)\nThat is,\n0 = nabla_x L(x y^star) = Q_0x + a_0 - sum_i = 1^m y_i^star (Q_ix + a_i)\nand y^star is a maximizer of\nmax_y_i in mathcalC_i^* L(x^star y)\nThat is, for all i = 1 ldots m, frac12x^TQ_ix + a_i^T x + b_i is either zero or in the normal cone of mathcalC_i^* at y^star. For instance, if mathcalC_i is z in mathbbR z le 0 , this means that if frac12x^TQ_ix + a_i^T x + b_i is nonzero at x^star then y_i^star = 0. This is the classical complementary slackness condition.","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"If mathcalC_i is a vector set, the discussion remains valid with y_i(frac12x^TQ_ix + a_i^T x + b_i) replaced with the scalar product between y_i and the vector of scalar-valued quadratic functions.","category":"page"},{"location":"moi/background/duality/#Dual-for-square-semidefinite-matrices","page":"Duality","title":"Dual for square semidefinite matrices","text":"","category":"section"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"The set PositiveSemidefiniteConeTriangle is a self-dual. That is, querying ConstraintDual of a PositiveSemidefiniteConeTriangle constraint returns a vector that is itself a member of PositiveSemidefiniteConeTriangle.","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"However, the dual of PositiveSemidefiniteConeSquare is not so straight forward. This section explains the duality convention we use, and how it is derived.","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"info: Info\nIf you have a PositiveSemidefiniteConeSquare constraint, the result matrix A from ConstraintDual is not positive semidefinite. However, A + A^top is positive semidefinite.","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"Let mathcalS_+ be the cone of symmetric semidefinite matrices in the fracn(n+1)2 dimensional space of symmetric mathbbR^n times n matrices. That is, mathcalS_+ is the set PositiveSemidefiniteConeTriangle. It is well known that mathcalS_+ is a self-dual proper cone.","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"Let mathcalP_+ be the cone of symmetric semidefinite matrices in the n^2 dimensional space of mathbbR^n times n matrices. That is mathcalP_+ is the set PositiveSemidefiniteConeSquare.","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"In addition, let mathcalD_+ be the cone of matrices A such that A+A^top in mathcalP_+.","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"mathcalP_+ is not proper because it is not solid (it is not n^2 dimensional), so it is not necessarily true that mathcalP_+^** = mathcalP_+.","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"However, this is the case, because we will show that mathcalP_+^* = mathcalD_+ and mathcalD_+^* = mathcalP_+.","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"First, let us see why mathcalP_+^* = mathcalD_+.","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"If B is symmetric, then","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"langle AB rangle = langle A^top B^top rangle = langle A^top Brangle","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"so","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"2langle A B rangle = langle A B rangle + langle A^top B rangle = langle A + A^top B rangle","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"Therefore, langle ABrangle ge 0 for all B in mathcalP_+ if and only if langle A+A^topBrangle ge 0 for all B in mathcalP_+. Since A+A^top is symmetric, and we know that mathcalS_+ is self-dual, we have shown that mathcalP_+^* is the set of matrices A such that A+A^top in mathcalP_+.","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"Second, let us see why mathcalD_+^* = mathcalP_+.","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"Since A in mathcalD_+ implies that A^top in mathcalD_+, B in mathcalD_+^* means that langle A+A^topBrangle ge 0 for all A in mathcalD_+, and hence B in mathcalP_+.","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"To see why it should be symmetric, simply notice that if B_ij B_ji, then langle ABrangle can be made arbitrarily small by setting A_ij = A_ij + s and A_ji = A_ji - s, with s arbitrarily large, and A stays in mathcalD_+ because A+A^top does not change.","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"Typically, the primal/dual pair for semidefinite programs is presented as:","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"beginalign\n min langle C X rangle \ntextst langle A_k Xrangle = b_k forall k \n X in mathcalS_+\nendalign","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"with the dual","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"beginalign\n max sum_k b_k y_k \ntextst C - sum A_k y_k in mathcalS_+\nendalign","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"If we allow A_k to be non-symmetric, we should instead use:","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"beginalign\n min langle C X rangle \ntextst langle A_k Xrangle = b_k forall k \n X in mathcalD_+\nendalign","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"with the dual","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"beginalign\n max sum b_k y_k \ntextst C - sum A_k y_k in mathcalP_+\nendalign","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"This is implemented as:","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"beginalign\n min langle C Z rangle + langle C - C^top S rangle \ntextst langle A_k Z rangle + langle A_k - A_k^top S rangle = b_k forall k \n Z in mathcalS_+\nendalign","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"with the dual","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"beginalign\n max sum b_k y_k \ntextst C+C^top - sum (A_k+A_k^top) y_k in mathcalS_+ \n C-C^top - sum(A_k-A_k^top) y_k = 0\nendalign","category":"page"},{"location":"moi/background/duality/","page":"Duality","title":"Duality","text":"and we recover Z = X + X^top.","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"EditURL = \"tips_and_tricks.jl\"","category":"page"},{"location":"tutorials/conic/tips_and_tricks/#conic_tips_and_tricks","page":"Tips and Tricks","title":"Tips and Tricks","text":"","category":"section"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"This tutorial was generated using Literate.jl. Download the source as a .jl file.","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"This tutorial was originally contributed by Arpit Bhatia.","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"This tutorial is aimed at providing a simplistic introduction to conic programming using JuMP.","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"It uses the following packages:","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"using JuMP\nimport SCS\nimport LinearAlgebra","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"info: Info\nThis tutorial uses sets from MathOptInterface. By default, JuMP exports the MOI symbol as an alias for the MathOptInterface.jl package. We recommend making this more explicit in your code by adding the following lines:import MathOptInterface as MOI","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"import Random # hide\nRandom.seed!(1234) # hide\nnothing # hide","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"tip: Tip\nA good resource for learning more about functions which can be modeled using cones is the MOSEK Modeling Cookbook.","category":"page"},{"location":"tutorials/conic/tips_and_tricks/#Background-theory","page":"Tips and Tricks","title":"Background theory","text":"","category":"section"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"A subset C of a vector space V is a cone if forall x in C and positive scalars lambda 0, the product lambda x in C.","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"A cone C is a convex cone if lambda x + (1 - lambda) y in C, for any lambda in 0 1, and any x y in C.","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"Conic programming problems are convex optimization problems in which a convex function is minimized over the intersection of an affine subspace and a convex cone. An example of a conic-form minimization problems, in the primal form is:","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"beginaligned\n min_x in mathbbR^n a_0^T x + b_0 \n textst A_i x + b_i in mathcalC_i i = 1 ldots m\nendaligned","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"The corresponding dual problem is:","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"beginaligned\n max_y_1 ldots y_m -sum_i=1^m b_i^T y_i + b_0 \n textst a_0 - sum_i=1^m A_i^T y_i = 0 \n y_i in mathcalC_i^* i = 1 ldots m\nendaligned","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"where each mathcalC_i is a closed convex cone and mathcalC_i^* is its dual cone.","category":"page"},{"location":"tutorials/conic/tips_and_tricks/#Second-Order-Cone","page":"Tips and Tricks","title":"Second-Order Cone","text":"","category":"section"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"The SecondOrderCone (or Lorentz Cone) of dimension n is a cone of the form:","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"K_soc = (t x) in mathbbR^n t ge x_2 ","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"It is most commonly used to represent the L2-norm of the vector x:","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"model = Model(SCS.Optimizer)\nset_silent(model)\n@variable(model, x[1:3])\n@variable(model, t)\n@constraint(model, sum(x) == 1)\n@constraint(model, [t; x] in SecondOrderCone())\n@objective(model, Min, t)\noptimize!(model)\nvalue(t), value.(x)","category":"page"},{"location":"tutorials/conic/tips_and_tricks/#Rotated-Second-Order-Cone","page":"Tips and Tricks","title":"Rotated Second-Order Cone","text":"","category":"section"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"A Second-Order Cone rotated by pi4 in the (x_1x_2) plane is called a RotatedSecondOrderCone. It is a cone of the form:","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"K_rsoc = (tux) in mathbbR^n 2tu ge x_2^2 tu ge 0 ","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"When u = 0.5, it represents the sum of squares of a vector x:","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"data = [1.0, 2.0, 3.0, 4.0]\ntarget = [0.45, 1.04, 1.51, 1.97]\nmodel = Model(SCS.Optimizer)\nset_silent(model)\n@variable(model, θ)\n@variable(model, t)\n@expression(model, residuals, θ * data .- target)\n@constraint(model, [t; 0.5; residuals] in RotatedSecondOrderCone())\n@objective(model, Min, t)\noptimize!(model)\nvalue(θ), value(t)","category":"page"},{"location":"tutorials/conic/tips_and_tricks/#Exponential-Cone","page":"Tips and Tricks","title":"Exponential Cone","text":"","category":"section"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"The MOI.ExponentialCone is a set of the form:","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"K_exp = (xyz) in mathbbR^3 y exp (xy) le z y 0 ","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"It can be used to model problems involving log and exp.","category":"page"},{"location":"tutorials/conic/tips_and_tricks/#Exponential","page":"Tips and Tricks","title":"Exponential","text":"","category":"section"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"To model exp(x) le z, use (x, 1, z):","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"model = Model(SCS.Optimizer)\nset_silent(model)\n@variable(model, x == 1.5)\n@variable(model, z)\n@objective(model, Min, z)\n@constraint(model, [x, 1, z] in MOI.ExponentialCone())\noptimize!(model)\nvalue(z), exp(1.5)","category":"page"},{"location":"tutorials/conic/tips_and_tricks/#Logarithm","page":"Tips and Tricks","title":"Logarithm","text":"","category":"section"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"To model x le log(z), use (x, 1, z):","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"model = Model(SCS.Optimizer)\nset_silent(model)\n@variable(model, x)\n@variable(model, z == 1.5)\n@objective(model, Max, x)\n@constraint(model, [x, 1, z] in MOI.ExponentialCone())\noptimize!(model)\nvalue(x), log(1.5)","category":"page"},{"location":"tutorials/conic/tips_and_tricks/#Log-sum-exp","page":"Tips and Tricks","title":"Log-sum-exp","text":"","category":"section"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"To model t ge logleft(sum e^x_iright), use:","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"N = 3\nx0 = rand(N)\nmodel = Model(SCS.Optimizer)\nset_silent(model)\n@variable(model, x[i = 1:N] == x0[i])\n@variable(model, t)\n@objective(model, Min, t)\n@variable(model, u[1:N])\n@constraint(model, sum(u) <= 1)\n@constraint(model, [i = 1:N], [x[i] - t, 1, u[i]] in MOI.ExponentialCone())\noptimize!(model)\nvalue(t), log(sum(exp.(x0)))","category":"page"},{"location":"tutorials/conic/tips_and_tricks/#Entropy","page":"Tips and Tricks","title":"Entropy","text":"","category":"section"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"The entropy maximization problem consists of maximizing the entropy function, H(x) = -xlogx subject to linear inequality constraints.","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"beginaligned\n max - sum_i=1^n x_i log x_i \n textst mathbf1^top x = 1 \n Ax leq b\nendaligned","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"We can model this problem using an exponential cone by using the following transformation:","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"tleq -xlogx iff tleq xlog(1x) iff (t x 1) in K_exp","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"Thus, our problem becomes,","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"beginaligned\n max 1^Tt \n textst Ax leq b \n 1^T x = 1 \n (t_i x_i 1) in K_exp forall i = 1 ldots n \nendaligned","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"m, n = 10, 15\nA, b = randn(m, n), rand(m, 1)\nmodel = Model(SCS.Optimizer)\nset_silent(model)\n@variable(model, t[1:n])\n@variable(model, x[1:n])\n@objective(model, Max, sum(t))\n@constraint(model, sum(x) == 1)\n@constraint(model, A * x .<= b)\n@constraint(model, [i = 1:n], [t[i], x[i], 1] in MOI.ExponentialCone())\noptimize!(model)\nobjective_value(model)","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"The MOI.ExponentialCone has a dual, the MOI.DualExponentialCone, that offers an alternative formulation that can be more efficient for some formulations.","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"There is also the MOI.RelativeEntropyCone for explicitly encoding the relative entropy function","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"model = Model(SCS.Optimizer)\nset_silent(model)\n@variable(model, t)\n@variable(model, x[1:n])\n@objective(model, Max, -t)\n@constraint(model, sum(x) == 1)\n@constraint(model, A * x .<= b)\n@constraint(model, [t; ones(n); x] in MOI.RelativeEntropyCone(2n + 1))\noptimize!(model)\nobjective_value(model)","category":"page"},{"location":"tutorials/conic/tips_and_tricks/#PowerCone","page":"Tips and Tricks","title":"PowerCone","text":"","category":"section"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"The MOI.PowerCone is a three-dimensional set parameterized by a scalar value α. It has the form:","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"K_p = (xyz) in mathbbR^3 x^alpha y^1-alpha ge z x ge 0 y ge 0 ","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"The power cone permits a number of reformulations. For example, when p 1, we can model t ge x^p using the power cone (t 1 x) with alpha = 1 p. Thus, to model t ge x^3 with x ge 0","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"model = Model(SCS.Optimizer)\nset_silent(model)\n@variable(model, t)\n@variable(model, x >= 1.5)\n@constraint(model, [t, 1, x] in MOI.PowerCone(1 / 3))\n@objective(model, Min, t)\noptimize!(model)\nvalue(t), value(x)","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"The MOI.PowerCone has a dual, the MOI.DualPowerCone, that offers an alternative formulation that can be more efficient for some formulations.","category":"page"},{"location":"tutorials/conic/tips_and_tricks/#P-Norm","page":"Tips and Tricks","title":"P-Norm","text":"","category":"section"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"The p-norm x_p = left(sumlimits_i x_i^pright)^frac1p can be modeled using MOI.PowerCones. See the Mosek Modeling Cookbook for the derivation.","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"function p_norm(x::Vector, p)\n N = length(x)\n model = Model(SCS.Optimizer)\n set_silent(model)\n @variable(model, r[1:N])\n @variable(model, t)\n @constraint(model, [i = 1:N], [r[i], t, x[i]] in MOI.PowerCone(1 / p))\n @constraint(model, sum(r) == t)\n @objective(model, Min, t)\n optimize!(model)\n return value(t)\nend\n\nx = rand(5);\nLinearAlgebra.norm(x, 4), p_norm(x, 4)","category":"page"},{"location":"tutorials/conic/tips_and_tricks/#Positive-Semidefinite-Cone","page":"Tips and Tricks","title":"Positive Semidefinite Cone","text":"","category":"section"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"The set of positive semidefinite matrices (PSD) of dimension n form a cone in mathbbR^n. We write this set mathematically as:","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"mathcalS_+^n = X in mathcalS^n mid z^T X z geq 0 forall zin mathbbR^n ","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"A PSD cone is represented in JuMP using the MOI sets PositiveSemidefiniteConeTriangle (for upper triangle of a PSD matrix) and PositiveSemidefiniteConeSquare (for a complete PSD matrix). However, it is preferable to use the PSDCone shortcut as illustrated below.","category":"page"},{"location":"tutorials/conic/tips_and_tricks/#Example:-largest-eigenvalue-of-a-symmetric-matrix","page":"Tips and Tricks","title":"Example: largest eigenvalue of a symmetric matrix","text":"","category":"section"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"Suppose A has eigenvalues lambda_1 geq lambda_2 ldots geq lambda_n. Then the matrix t I-A has eigenvalues t-lambda_1 t-lambda_2 ldots t-lambda_n. Note that t I-A is PSD exactly when all these eigenvalues are non-negative, and this happens for values t geq lambda_1. Thus, we can model the problem of finding the largest eigenvalue of a symmetric matrix as:","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"beginaligned\nlambda_1 = min t \ntext st t I-A succeq 0\nendaligned","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"A = [3 2 4; 2 0 2; 4 2 3]\nI = Matrix{Float64}(LinearAlgebra.I, 3, 3)\nmodel = Model(SCS.Optimizer)\nset_silent(model)\n@variable(model, t)\n@objective(model, Min, t)\n@constraint(model, t .* I - A in PSDCone())\noptimize!(model)\nobjective_value(model)","category":"page"},{"location":"tutorials/conic/tips_and_tricks/#GeometricMeanCone","page":"Tips and Tricks","title":"GeometricMeanCone","text":"","category":"section"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"The MOI.GeometricMeanCone is a cone of the form:","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"K_geo = (t x) in mathbbR^n x ge 0 t le sqrtn-1x_1 x_2 cdots x_n-1 ","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"model = Model(SCS.Optimizer)\nset_silent(model)\n@variable(model, x[1:4])\n@variable(model, t)\n@constraint(model, sum(x) == 1)\n@constraint(model, [t; x] in MOI.GeometricMeanCone(5))\noptimize!(model)\nvalue(t), value.(x)","category":"page"},{"location":"tutorials/conic/tips_and_tricks/#RootDetCone","page":"Tips and Tricks","title":"RootDetCone","text":"","category":"section"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"The MOI.RootDetConeSquare is a cone of the form:","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"K = (t X) in mathbbR^1+d^2 t le det(X)^frac1d ","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"model = Model(SCS.Optimizer)\nset_silent(model)\n@variable(model, t)\n@variable(model, X[1:2, 1:2])\n@objective(model, Max, t)\n@constraint(model, [t; vec(X)] in MOI.RootDetConeSquare(2))\n@constraint(model, X .== [2 1; 1 3])\noptimize!(model)\nvalue(t), sqrt(LinearAlgebra.det(value.(X)))","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"If X is symmetric, then you can use MOI.RootDetConeTriangle instead. This can be more efficient because the solver does not need to add additional constraints to ensure X is symmetric.","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"When forming the function, use triangle_vec to obtain the column-wise upper triangle of the matrix as a vector in the order that JuMP requires.","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"model = Model(SCS.Optimizer)\nset_silent(model)\n@variable(model, t)\n@variable(model, X[1:2, 1:2], Symmetric)\n@objective(model, Max, t)\n@constraint(model, [t; triangle_vec(X)] in MOI.RootDetConeTriangle(2))\n@constraint(model, X .== [2 1; 1 3])\noptimize!(model)\nvalue(t), sqrt(LinearAlgebra.det(value.(X)))","category":"page"},{"location":"tutorials/conic/tips_and_tricks/#LogDetCone","page":"Tips and Tricks","title":"LogDetCone","text":"","category":"section"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"The MOI.LogDetConeSquare is a cone of the form:","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"K = (t u X) in mathbbR^2+d^2 t le u log(det(X u)) ","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"model = Model(SCS.Optimizer)\nset_silent(model)\n@variable(model, t)\n@variable(model, u)\n@variable(model, X[1:2, 1:2])\n@objective(model, Max, t)\n@constraint(model, [t; u; vec(X)] in MOI.LogDetConeSquare(2))\n@constraint(model, X .== [2 1; 1 3])\n@constraint(model, u == 0.5)\noptimize!(model)\nvalue(t), 0.5 * log(LinearAlgebra.det(value.(X) ./ 0.5))","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"If X is symmetric, then you can use MOI.LogDetConeTriangle instead. This can be more efficient because the solver does not need to add additional constraints to ensure X is symmetric.","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"When forming the function, use triangle_vec to obtain the column-wise upper triangle of the matrix as a vector in the order that JuMP requires.","category":"page"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"model = Model(SCS.Optimizer)\nset_silent(model)\n@variable(model, t)\n@variable(model, u)\n@variable(model, X[1:2, 1:2], Symmetric)\n@objective(model, Max, t)\n@constraint(model, [t; u; triangle_vec(X)] in MOI.LogDetConeTriangle(2))\n@constraint(model, X .== [2 1; 1 3])\n@constraint(model, u == 0.5)\noptimize!(model)\nvalue(t), 0.5 * log(LinearAlgebra.det(value.(X) ./ 0.5))","category":"page"},{"location":"tutorials/conic/tips_and_tricks/#Other-Cones-and-Functions","page":"Tips and Tricks","title":"Other Cones and Functions","text":"","category":"section"},{"location":"tutorials/conic/tips_and_tricks/","page":"Tips and Tricks","title":"Tips and Tricks","text":"For other cones supported by JuMP, check out the MathOptInterface Manual.","category":"page"},{"location":"packages/BARON/","page":"jump-dev/BARON.jl","title":"jump-dev/BARON.jl","text":"EditURL = \"https://github.com/jump-dev/BARON.jl/blob/v0.8.2/README.md\"","category":"page"},{"location":"packages/BARON/#BARON.jl","page":"jump-dev/BARON.jl","title":"BARON.jl","text":"","category":"section"},{"location":"packages/BARON/","page":"jump-dev/BARON.jl","title":"jump-dev/BARON.jl","text":"(Image: Build Status) (Image: codecov)","category":"page"},{"location":"packages/BARON/","page":"jump-dev/BARON.jl","title":"jump-dev/BARON.jl","text":"BARON.jl is a wrapper for BARON by The Optimization Firm.","category":"page"},{"location":"packages/BARON/#Affiliation","page":"jump-dev/BARON.jl","title":"Affiliation","text":"","category":"section"},{"location":"packages/BARON/","page":"jump-dev/BARON.jl","title":"jump-dev/BARON.jl","text":"This wrapper is maintained by the JuMP community and is not officially supported by The Optimization Firm.","category":"page"},{"location":"packages/BARON/#License","page":"jump-dev/BARON.jl","title":"License","text":"","category":"section"},{"location":"packages/BARON/","page":"jump-dev/BARON.jl","title":"jump-dev/BARON.jl","text":"BARON.jl is licensed under the MIT License.","category":"page"},{"location":"packages/BARON/","page":"jump-dev/BARON.jl","title":"jump-dev/BARON.jl","text":"The underlying solver is a closed-source commercial product for which you must obtain a license from The Optimization Firm, although a small trial version is available for free.","category":"page"},{"location":"packages/BARON/#Installation","page":"jump-dev/BARON.jl","title":"Installation","text":"","category":"section"},{"location":"packages/BARON/","page":"jump-dev/BARON.jl","title":"jump-dev/BARON.jl","text":"First, download a copy of the BARON solver and unpack the executable in a location of your choosing.","category":"page"},{"location":"packages/BARON/","page":"jump-dev/BARON.jl","title":"jump-dev/BARON.jl","text":"Once installed, set the BARON_EXEC environment variable pointing to the BARON executable (full path, including file name as it differs across platforms), and run Pkg.add(\"BARON\"). For example:","category":"page"},{"location":"packages/BARON/","page":"jump-dev/BARON.jl","title":"jump-dev/BARON.jl","text":"ENV[\"BARON_EXEC\"] = \"/path/to/baron.exe\"\nusing Pkg\nPkg.add(\"BARON\")","category":"page"},{"location":"packages/BARON/#Use-with-JuMP","page":"jump-dev/BARON.jl","title":"Use with JuMP","text":"","category":"section"},{"location":"packages/BARON/","page":"jump-dev/BARON.jl","title":"jump-dev/BARON.jl","text":"using JuMP, BARON\nmodel = Model(BARON.Optimizer)","category":"page"},{"location":"packages/BARON/#MathOptInterface-API","page":"jump-dev/BARON.jl","title":"MathOptInterface API","text":"","category":"section"},{"location":"packages/BARON/","page":"jump-dev/BARON.jl","title":"jump-dev/BARON.jl","text":"The BARON optimizer supports the following constraints and attributes.","category":"page"},{"location":"packages/BARON/","page":"jump-dev/BARON.jl","title":"jump-dev/BARON.jl","text":"List of supported objective functions:","category":"page"},{"location":"packages/BARON/","page":"jump-dev/BARON.jl","title":"jump-dev/BARON.jl","text":"MOI.ObjectiveFunction{MOI.ScalarAffineFunction{Float64}}\nMOI.ObjectiveFunction{MOI.ScalarQuadraticFunction{Float64}}\nMOI.ObjectiveFunction{MOI.ScalarNonlinearFunction}","category":"page"},{"location":"packages/BARON/","page":"jump-dev/BARON.jl","title":"jump-dev/BARON.jl","text":"List of supported variable types:","category":"page"},{"location":"packages/BARON/","page":"jump-dev/BARON.jl","title":"jump-dev/BARON.jl","text":"MOI.Reals","category":"page"},{"location":"packages/BARON/","page":"jump-dev/BARON.jl","title":"jump-dev/BARON.jl","text":"List of supported constraint types:","category":"page"},{"location":"packages/BARON/","page":"jump-dev/BARON.jl","title":"jump-dev/BARON.jl","text":"MOI.ScalarAffineFunction{Float64} in MOI.EqualTo{Float64}\nMOI.ScalarAffineFunction{Float64} in MOI.GreaterThan{Float64}\nMOI.ScalarAffineFunction{Float64} in MOI.Interval{Float64}\nMOI.ScalarAffineFunction{Float64} in MOI.LessThan{Float64}\nMOI.ScalarQuadraticFunction{Float64} in MOI.EqualTo{Float64}\nMOI.ScalarQuadraticFunction{Float64} in MOI.GreaterThan{Float64}\nMOI.ScalarQuadraticFunction{Float64} in MOI.Interval{Float64}\nMOI.ScalarQuadraticFunction{Float64} in MOI.LessThan{Float64}\nMOI.ScalarNonlinearFunction in MOI.EqualTo{Float64}\nMOI.ScalarNonlinearFunction in MOI.GreaterThan{Float64}\nMOI.ScalarNonlinearFunction in MOI.Interval{Float64}\nMOI.ScalarNonlinearFunction in MOI.LessThan{Float64}\nMOI.VariableIndex in MOI.EqualTo{Float64}\nMOI.VariableIndex in MOI.GreaterThan{Float64}\nMOI.VariableIndex in MOI.Integer\nMOI.VariableIndex in MOI.Interval{Float64}\nMOI.VariableIndex in MOI.LessThan{Float64}\nMOI.VariableIndex in MOI.ZeroOne","category":"page"},{"location":"packages/BARON/","page":"jump-dev/BARON.jl","title":"jump-dev/BARON.jl","text":"List of supported model attributes:","category":"page"},{"location":"packages/BARON/","page":"jump-dev/BARON.jl","title":"jump-dev/BARON.jl","text":"MOI.NLPBlock()\nMOI.ObjectiveSense()","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"EditURL = \"getting_started_with_julia.jl\"","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/#Getting-started-with-Julia","page":"Getting started with Julia","title":"Getting started with Julia","text":"","category":"section"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"This tutorial was generated using Literate.jl. Download the source as a .jl file.","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"Because JuMP is embedded in Julia, knowing some basic Julia is important before you start learning JuMP.","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"tip: Tip\nThis tutorial is designed to provide a minimalist crash course in the basics of Julia. You can find resources that provide a more comprehensive introduction to Julia here.","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/#Installing-Julia","page":"Getting started with Julia","title":"Installing Julia","text":"","category":"section"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"To install Julia, download the latest stable release, then follow the platform specific install instructions.","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"tip: Tip\nUnless you know otherwise, you probably want the 64-bit version.","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"Next, you need an IDE to develop in. VS Code is a popular choice, so follow these install instructions.","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"Julia can also be used with Jupyter notebooks or the reactive notebooks of Pluto.jl.","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/#The-Julia-REPL","page":"Getting started with Julia","title":"The Julia REPL","text":"","category":"section"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"The main way of interacting with Julia is via its REPL (Read Evaluate Print Loop). To access the REPL, start the Julia executable to arrive at the julia> prompt, and then start coding:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"1 + 1","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"As your programs become larger, write a script as a text file, and then run that file using:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"julia> include(\"path/to/file.jl\")","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"warning: Warning\nBecause of Julia's startup latency, running scripts from the command line like the following is slow:$ julia path/to/file.jlUse the REPL or a notebook instead, and read The \"time-to-first-solve\" issue for more information.","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/#Code-blocks-in-this-documentation","page":"Getting started with Julia","title":"Code blocks in this documentation","text":"","category":"section"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"In this documentation you'll see a mix of code examples with and without the julia>.","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"The Julia prompt is mostly used to demonstrate short code snippets, and the output is exactly what you will see if run from the REPL.","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"Blocks without the julia> can be copy-pasted into the REPL, but they are used because they enable richer output like plots or LaTeX to be displayed in the online and PDF versions of the documentation. If you run them from the REPL you may see different output.","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/#Where-to-get-help","page":"Getting started with Julia","title":"Where to get help","text":"","category":"section"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"Read the documentation\nJuMP https://jump.dev/JuMP.jl/stable/\nJulia https://docs.julialang.org/en/v1/\nAsk (or browse) the Julia community forum: https://discourse.julialang.org\nIf the question is JuMP-related, ask in the Optimization (Mathematical) section, or tag your question with \"jump\"","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"To access the built-in help at the REPL, type ? to enter help-mode, followed by the name of the function to lookup:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"help?> print\nsearch: print println printstyled sprint isprint prevind parentindices precision escape_string\n\n print([io::IO], xs...)\n\n Write to io (or to the default output stream stdout if io is not given) a canonical\n (un-decorated) text representation. The representation used by print includes minimal formatting\n and tries to avoid Julia-specific details.\n\n print falls back to calling show, so most types should just define show. Define print if your\n type has a separate \"plain\" representation. For example, show displays strings with quotes, and\n print displays strings without quotes.\n\n string returns the output of print as a string.\n\n Examples\n ≡≡≡≡≡≡≡≡≡≡\n\n julia> print(\"Hello World!\")\n Hello World!\n julia> io = IOBuffer();\n\n julia> print(io, \"Hello\", ' ', :World!)\n\n julia> String(take!(io))\n \"Hello World!\"","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/#Numbers-and-arithmetic","page":"Getting started with Julia","title":"Numbers and arithmetic","text":"","category":"section"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"Since we want to solve optimization problems, we're going to be using a lot of math. Luckily, Julia is great for math, with all the usual operators:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"1 + 1\n1 - 2\n2 * 2\n4 / 5\n3^2","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"Did you notice how Julia didn't print .0 after some of the numbers? Julia is a dynamic language, which means you never have to explicitly declare the type of a variable. However, in the background, Julia is giving each variable a type. Check the type of something using the typeof function:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"typeof(1)\ntypeof(1.0)","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"Here 1 is an Int64, which is an integer with 64 bits of precision, and 1.0 is a Float64, which is a floating point number with 64-bits of precision.","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"tip: Tip\nIf you aren't familiar with floating point numbers, make sure to read the Floating point numbers section.","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"We create complex numbers using im:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"x = 2 + 1im\nreal(x)\nimag(x)\ntypeof(x)\nx * (1 - 2im)","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"info: Info\nThe curly brackets surround what we call the parameters of a type. You can read Complex{Int64} as \"a complex number, where the real and imaginary parts are represented by Int64.\" If we call typeof(1.0 + 2.0im) it will be Complex{Float64}, which a complex number with the parts represented by Float64.","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"There are also some cool things like an irrational representation of π.","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"π","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"tip: Tip\nTo make π (and most other Greek letters), type \\pi and then press [TAB].","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"typeof(π)","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"However, if we do math with irrational numbers, they get converted to Float64:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"typeof(2π / 3)","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/#Floating-point-numbers","page":"Getting started with Julia","title":"Floating point numbers","text":"","category":"section"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"warning: Warning\nIf you aren't familiar with floating point numbers, make sure to read this section carefully.","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"A Float64 is a floating point approximation of a real number using 64-bits of information.","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"Because it is an approximation, things we know hold true in mathematics don't hold true in a computer. For example:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"0.1 * 3 == 0.3","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"A more complicated example is:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"sin(2π / 3) == √3 / 2","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"tip: Tip\nGet √ by typing \\sqrt then press [TAB].","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"Let's see what the differences are:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"0.1 * 3 - 0.3\nsin(2π / 3) - √3 / 2","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"They are small, but not zero.","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"One way of explaining this difference is to consider how we would write 1 / 3 and 2 / 3 using only four digits after the decimal point. We would write 1 / 3 as 0.3333, and 2 / 3 as 0.6667. So, despite the fact that 2 * (1 / 3) == 2 / 3, 2 * 0.3333 == 0.6666 != 0.6667.","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"Let's try that again using ≈ (\\approx + [TAB]) instead of ==:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"0.1 * 3 ≈ 0.3\nsin(2π / 3) ≈ √3 / 2","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"≈ is a clever way of calling the isapprox function:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"isapprox(sin(2π / 3), √3 / 2; atol = 1e-8)","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"warning: Warning\nFloating point is the reason solvers use tolerances when they solve optimization models. A common mistake you're likely to make is checking whether a binary variable is 0 using value(z) == 0. Always remember to use something like isapprox when comparing floating point numbers.","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"Note that isapprox will always return false if one of the number being compared is 0 and atol is zero (its default value).","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"1e-300 ≈ 0.0","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"so always set a nonzero value of atol if one of the arguments can be zero.","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"isapprox(1e-9, 0.0; atol = 1e-8)","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"tip: Tip\nGurobi has a good series of articles on the implications of floating point in optimization if you want to read more.","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"If you aren't careful, floating point arithmetic can throw up all manner of issues. For example:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"1 + 1e-16 == 1","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"It even turns out that floating point numbers aren't associative:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"(1 + 1e-16) - 1e-16 == 1 + (1e-16 - 1e-16)","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"It's important to note that this issue isn't Julia-specific. It happens in every programming language (try it out in Python).","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/#Vectors,-matrices,-and-arrays","page":"Getting started with Julia","title":"Vectors, matrices, and arrays","text":"","category":"section"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"Similar to MATLAB, Julia has native support for vectors, matrices and tensors; all of which are represented by arrays of different dimensions. Vectors are constructed by comma-separated elements surrounded by square brackets:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"b = [5, 6]","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"Matrices can be constructed with spaces separating the columns, and semicolons separating the rows:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"A = [1.0 2.0; 3.0 4.0]","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"We can do linear algebra:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"x = A \\ b","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"info: Info\nHere is floating point at work again; x is approximately [-4, 4.5].","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"A * x\nA * x ≈ b","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"Note that when multiplying vectors and matrices, dimensions matter. For example, you can't multiply a vector by a vector:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"try #hide\n b * b\ncatch err #hide\n showerror(stderr, err) #hide\nend #hide","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"But multiplying transposes works:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"b' * b\nb * b'","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/#Other-common-types","page":"Getting started with Julia","title":"Other common types","text":"","category":"section"},{"location":"tutorials/getting_started/getting_started_with_julia/#Comments","page":"Getting started with Julia","title":"Comments","text":"","category":"section"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"Although not technically a type, code comments begin with the # character:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"1 + 1 # This is a comment","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"Multiline comments begin with #= and end with =#:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"#=\nHere is a\nmultiline comment\n=#","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"Comments can even be nested inside expressions. This is sometimes helpful when documenting inputs to functions:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"isapprox(\n sin(π),\n 0.0;\n #= We need an explicit atol here because we are comparing with 0 =#\n atol = 0.001,\n)","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/#Strings","page":"Getting started with Julia","title":"Strings","text":"","category":"section"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"Double quotes are used for strings:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"typeof(\"This is Julia\")","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"Unicode is fine in strings:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"typeof(\"π is about 3.1415\")","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"Use println to print a string:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"println(\"Hello, World!\")","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"Use $() to interpolate values into a string:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"x = 123\nprintln(\"The value of x is: $(x)\")","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"Use triple-quotes for multiline strings:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"s = \"\"\"\nHere is\na\nmultiline string\n\"\"\"\n\nprintln(s)","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/#Symbols","page":"Getting started with Julia","title":"Symbols","text":"","category":"section"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"Julia Symbols are a data structure from the compiler that represent Julia identifiers (that is, variable names).","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"println(\"The value of x is: $(eval(:x))\")","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"warning: Warning\nWe used eval here to demonstrate how Julia links Symbols to variables. However, avoid calling eval in your code. It is usually a sign that your code is doing something that could be more easily achieved a different way. The Community Forum is a good place to ask for advice on alternative approaches.","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"typeof(:x)","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"You can think of a Symbol as a String that takes up less memory, and that can't be modified.","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"Convert between String and Symbol using their constructors:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"String(:abc)\nSymbol(\"abc\")","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"tip: Tip\nSymbols are often (ab)used to stand in for a String or an Enum, when one of the latter is likely a better choice. The JuMP Style guide recommends reserving Symbols for identifiers. See @enum vs. Symbol for more.","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/#Tuples","page":"Getting started with Julia","title":"Tuples","text":"","category":"section"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"Julia makes extensive use of a simple data structure called Tuples. Tuples are immutable collections of values. For example:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"t = (\"hello\", 1.2, :foo)\ntypeof(t)","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"Tuples can be accessed by index, similar to arrays:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"t[2]","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"And they can be \"unpacked\" like so:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"a, b, c = t\nb","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"The values can also be given names, which is a convenient way of making light-weight data structures.","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"t = (word = \"hello\", num = 1.2, sym = :foo)","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"Values can be accessed using dot syntax:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"t.word","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/#Dictionaries","page":"Getting started with Julia","title":"Dictionaries","text":"","category":"section"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"Similar to Python, Julia has native support for dictionaries. Dictionaries provide a very generic way of mapping keys to values. For example, a map of integers to strings:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"d1 = Dict(1 => \"A\", 2 => \"B\", 4 => \"D\")","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"info: Info\nType-stuff again: Dict{Int64,String} is a dictionary with Int64 keys and String values.","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"Looking up a value uses the bracket syntax:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"d1[2]","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"Dictionaries support non-integer keys and can mix data types:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"Dict(\"A\" => 1, \"B\" => 2.5, \"D\" => 2 - 3im)","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"info: Info\nJulia types form a hierarchy. Here the value type of the dictionary is Number, which is a generalization of Int64, Float64, and Complex{Int}. Leaf nodes in this hierarchy are called \"concrete\" types, and all others are called \"Abstract.\" In general, having variables with abstract types like Number can lead to slower code, so you should try to make sure every element in a dictionary or vector is the same type. For example, in this case we could represent every element as a Complex{Float64}:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"Dict(\"A\" => 1.0 + 0.0im, \"B\" => 2.5 + 0.0im, \"D\" => 2.0 - 3.0im)","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"Dictionaries can be nested:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"d2 = Dict(\"A\" => 1, \"B\" => 2, \"D\" => Dict(:foo => 3, :bar => 4))\nd2[\"B\"]\nd2[\"D\"][:foo]","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/#Structs","page":"Getting started with Julia","title":"Structs","text":"","category":"section"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"You can define custom datastructures with struct:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"struct MyStruct\n x::Int\n y::String\n z::Dict{Int,Int}\nend\n\na = MyStruct(1, \"a\", Dict(2 => 3))\na.x","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"By default, these are not mutable","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"try #hide\n a.x = 2\ncatch err #hide\n showerror(stderr, err) #hide\nend #hide","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"However, you can declare a mutable struct which is mutable:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"mutable struct MyStructMutable\n x::Int\n y::String\n z::Dict{Int,Int}\nend\n\na = MyStructMutable(1, \"a\", Dict(2 => 3))\na.x\na.x = 2\na","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/#Loops","page":"Getting started with Julia","title":"Loops","text":"","category":"section"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"Julia has native support for for-each style loops with the syntax for in end:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"for i in 1:5\n println(i)\nend","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"info: Info\nRanges are constructed as start:stop, or start:step:stop.","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"for i in 1.2:1.1:5.6\n println(i)\nend","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"This for-each loop also works with dictionaries:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"for (key, value) in Dict(\"A\" => 1, \"B\" => 2.5, \"D\" => 2 - 3im)\n println(\"$(key): $(value)\")\nend","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"Note that in contrast to vector languages like MATLAB and R, loops do not result in a significant performance degradation in Julia.","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/#Control-flow","page":"Getting started with Julia","title":"Control flow","text":"","category":"section"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"Julia control flow is similar to MATLAB, using the keywords if-elseif-else-end, and the logical operators || and && for or and and respectively:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"for i in 0:5:15\n if i < 5\n println(\"$(i) is less than 5\")\n elseif i < 10\n println(\"$(i) is less than 10\")\n else\n if i == 10\n println(\"the value is 10\")\n else\n println(\"$(i) is bigger than 10\")\n end\n end\nend","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/#Comprehensions","page":"Getting started with Julia","title":"Comprehensions","text":"","category":"section"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"Similar to languages like Haskell and Python, Julia supports the use of simple loops in the construction of arrays and dictionaries, called comprehensions.","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"A list of increasing integers:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"[i for i in 1:5]","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"Matrices can be built by including multiple indices:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"[i * j for i in 1:5, j in 5:10]","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"Conditional statements can be used to filter out some values:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"[i for i in 1:10 if i % 2 == 1]","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"A similar syntax can be used for building dictionaries:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"Dict(\"$(i)\" => i for i in 1:10 if i % 2 == 1)","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/#Functions","page":"Getting started with Julia","title":"Functions","text":"","category":"section"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"A simple function is defined as follows:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"function print_hello()\n return println(\"hello\")\nend\nprint_hello()","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"Arguments can be added to a function:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"function print_it(x)\n return println(x)\nend\nprint_it(\"hello\")\nprint_it(1.234)\nprint_it(:my_id)","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"Optional keyword arguments are also possible:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"function print_it(x; prefix = \"value:\")\n return println(\"$(prefix) $(x)\")\nend\nprint_it(1.234)\nprint_it(1.234; prefix = \"val:\")","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"The keyword return is used to specify the return values of a function:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"function mult(x; y = 2.0)\n return x * y\nend\n\nmult(4.0)\nmult(4.0; y = 5.0)","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/#Anonymous-functions","page":"Getting started with Julia","title":"Anonymous functions","text":"","category":"section"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"The syntax input -> output creates an anonymous function. These are most useful when passed to other functions. For example:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"f = x -> x^2\nf(2)\nmap(x -> x^2, 1:4)","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/#Type-parameters","page":"Getting started with Julia","title":"Type parameters","text":"","category":"section"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"We can constrain the inputs to a function using type parameters, which are :: followed by the type of the input we want. For example:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"function foo(x::Int)\n return x^2\nend\n\nfunction foo(x::Float64)\n return exp(x)\nend\n\nfunction foo(x::Number)\n return x + 1\nend\n\nfoo(2)\nfoo(2.0)\nfoo(1 + 1im)","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"But what happens if we call foo with something we haven't defined it for?","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"try #hide\n foo([1, 2, 3])\ncatch err #hide\n showerror(stderr, err) #hide\nend #hide","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"A MethodError means that you passed a function something that didn't match the type that it was expecting. In this case, the error message says that it doesn't know how to handle an Vector{Int64}, but it does know how to handle Float64, Int64, and Number.","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"tip: Tip\nRead the \"Closest candidates\" part of the error message carefully to get a hint as to what was expected.","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/#Broadcasting","page":"Getting started with Julia","title":"Broadcasting","text":"","category":"section"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"In the example above, we didn't define what to do if f was passed a Vector. Luckily, Julia provides a convenient syntax for mapping f element-wise over arrays. Just add a . between the name of the function and the opening (. This works for any function, including functions with multiple arguments. For example:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"foo.([1, 2, 3])","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"tip: Tip\nGet a MethodError when calling a function that takes a Vector, Matrix, or Array? Try broadcasting.","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/#Mutable-vs-immutable-objects","page":"Getting started with Julia","title":"Mutable vs immutable objects","text":"","category":"section"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"Some types in Julia are mutable, which means you can change the values inside them. A good example is an array. You can modify the contents of an array without having to make a new array.","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"In contrast, types like Float64 are immutable. You cannot modify the contents of a Float64.","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"This is something to be aware of when passing types into functions. For example:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"function mutability_example(mutable_type::Vector{Int}, immutable_type::Int)\n mutable_type[1] += 1\n immutable_type += 1\n return\nend\n\nmutable_type = [1, 2, 3]\nimmutable_type = 1\n\nmutability_example(mutable_type, immutable_type)\n\nprintln(\"mutable_type: $(mutable_type)\")\nprintln(\"immutable_type: $(immutable_type)\")","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"Because Vector{Int} is a mutable type, modifying the variable inside the function changed the value outside of the function. In contrast, the change to immutable_type didn't modify the value outside the function.","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"You can check mutability with the isimmutable function:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"isimmutable([1, 2, 3])\nisimmutable(1)","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/#The-package-manager","page":"Getting started with Julia","title":"The package manager","text":"","category":"section"},{"location":"tutorials/getting_started/getting_started_with_julia/#Installing-packages","page":"Getting started with Julia","title":"Installing packages","text":"","category":"section"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"No matter how wonderful Julia's base language is, at some point you will want to use an extension package. Some of these are built-in, for example random number generation is available in the Random package in the standard library. These packages are loaded with the commands using and import.","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"using Random # The equivalent of Python's `from Random import *`\nimport Random # The equivalent of Python's `import Random`\n\nRandom.seed!(33)\n\n[rand() for i in 1:10]","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"The Package Manager is used to install packages that are not part of Julia's standard library.","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"For example the following can be used to install JuMP,","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"using Pkg\nPkg.add(\"JuMP\")","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"For a complete list of registered Julia packages see the package listing at JuliaHub.","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"From time to you may wish to use a Julia package that is not registered. In this case a git repository URL can be used to install the package.","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"using Pkg\nPkg.add(\"https://github.com/user-name/MyPackage.jl.git\")","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/#Package-environments","page":"Getting started with Julia","title":"Package environments","text":"","category":"section"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"By default, Pkg.add will add packages to Julia's global environment. However, Julia also has built-in support for virtual environments.","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"Activate a virtual environment with:","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"import Pkg; Pkg.activate(\"/path/to/environment\")","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"You can see what packages are installed in the current environment with Pkg.status().","category":"page"},{"location":"tutorials/getting_started/getting_started_with_julia/","page":"Getting started with Julia","title":"Getting started with Julia","text":"tip: Tip\nWe strongly recommend you create a Pkg environment for each project that you create in Julia, and add only the packages that you need, instead of adding lots of packages to the global environment. The Pkg manager documentation has more information on this topic.","category":"page"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"EditURL = \"tips_and_tricks.jl\"","category":"page"},{"location":"tutorials/linear/tips_and_tricks/#linear_tips_and_tricks","page":"Tips and tricks","title":"Tips and tricks","text":"","category":"section"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"This tutorial was generated using Literate.jl. Download the source as a .jl file.","category":"page"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"This tutorial was originally contributed by Arpit Bhatia.","category":"page"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"tip: Tip\nA good source of tips is the Mosek Modeling Cookbook.","category":"page"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"This tutorial collates some tips and tricks you can use when formulating mixed-integer programs. It uses the following packages:","category":"page"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"using JuMP","category":"page"},{"location":"tutorials/linear/tips_and_tricks/#Absolute-value","page":"Tips and tricks","title":"Absolute value","text":"","category":"section"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"To model the absolute value function t ge x, there are a few options. In all cases, these reformulations only work if you are minimizing t \"down\" into x. They do not work if you are trying to maximize x.","category":"page"},{"location":"tutorials/linear/tips_and_tricks/#Option-1","page":"Tips and tricks","title":"Option 1","text":"","category":"section"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"This option adds two linear inequality constraints:","category":"page"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"model = Model();\n@variable(model, x)\n@variable(model, t)\n@constraint(model, t >= x)\n@constraint(model, t >= -x)","category":"page"},{"location":"tutorials/linear/tips_and_tricks/#Option-2","page":"Tips and tricks","title":"Option 2","text":"","category":"section"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"This option uses two non-negative variables and forms expressions for x and t:","category":"page"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"model = Model();\n@variable(model, z[1:2] >= 0)\n@expression(model, t, z[1] + z[2])\n@expression(model, x, z[1] - z[2])","category":"page"},{"location":"tutorials/linear/tips_and_tricks/#Option-3","page":"Tips and tricks","title":"Option 3","text":"","category":"section"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"This option uses MOI.NormOneCone and lets JuMP choose the reformulation:","category":"page"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"model = Model();\n@variable(model, x)\n@variable(model, t)\n@constraint(model, [t; x] in MOI.NormOneCone(2))","category":"page"},{"location":"tutorials/linear/tips_and_tricks/#L1-norm","page":"Tips and tricks","title":"L1-norm","text":"","category":"section"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"To model min x_1, that is, min sumlimits_i x_i, use the MOI.NormOneCone:","category":"page"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"model = Model();\n@variable(model, x[1:3])\n@variable(model, t)\n@constraint(model, [t; x] in MOI.NormOneCone(1 + length(x)))\n@objective(model, Min, t)","category":"page"},{"location":"tutorials/linear/tips_and_tricks/#Infinity-norm","page":"Tips and tricks","title":"Infinity-norm","text":"","category":"section"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"To model min x_infty, that is, min maxlimits_i x_i, use the MOI.NormInfinityCone:","category":"page"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"model = Model();\n@variable(model, x[1:3])\n@variable(model, t)\n@constraint(model, [t; x] in MOI.NormInfinityCone(1 + length(x)))\n@objective(model, Min, t)","category":"page"},{"location":"tutorials/linear/tips_and_tricks/#Max","page":"Tips and tricks","title":"Max","text":"","category":"section"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"To model t ge maxx y, do:","category":"page"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"model = Model();\n@variable(model, t)\n@variable(model, x)\n@variable(model, y)\n@constraint(model, t >= x)\n@constraint(model, t >= y)","category":"page"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"This reformulation does not work for t ge minx y.","category":"page"},{"location":"tutorials/linear/tips_and_tricks/#Min","page":"Tips and tricks","title":"Min","text":"","category":"section"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"To model t le minx y, do:","category":"page"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"model = Model();\n@variable(model, t)\n@variable(model, x)\n@variable(model, y)\n@constraint(model, t <= x)\n@constraint(model, t <= y)","category":"page"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"This reformulation does not work for t le maxx y.","category":"page"},{"location":"tutorials/linear/tips_and_tricks/#Boolean-operators","page":"Tips and tricks","title":"Boolean operators","text":"","category":"section"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"Binary variables can be used to construct logical operators. Here are some example.","category":"page"},{"location":"tutorials/linear/tips_and_tricks/#Or","page":"Tips and tricks","title":"Or","text":"","category":"section"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"x_3 = x_1 lor x_2","category":"page"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"model = Model();\n@variable(model, x[1:3], Bin)\n@constraints(model, begin\n x[1] <= x[3]\n x[2] <= x[3]\n x[3] <= x[1] + x[2]\nend)","category":"page"},{"location":"tutorials/linear/tips_and_tricks/#And","page":"Tips and tricks","title":"And","text":"","category":"section"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"x_3 = x_1 land x_2","category":"page"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"model = Model();\n@variable(model, x[1:3], Bin)\n@constraints(model, begin\n x[3] <= x[1]\n x[3] <= x[2]\n x[3] >= x[1] + x[2] - 1\nend)","category":"page"},{"location":"tutorials/linear/tips_and_tricks/#Not","page":"Tips and tricks","title":"Not","text":"","category":"section"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"x_1 neg x_2","category":"page"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"model = Model();\n@variable(model, x[1:2], Bin)\n@constraint(model, x[1] == 1 - x[2])","category":"page"},{"location":"tutorials/linear/tips_and_tricks/#Implies","page":"Tips and tricks","title":"Implies","text":"","category":"section"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"x_1 implies x_2","category":"page"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"model = Model();\n@variable(model, x[1:2], Bin)\n@constraint(model, x[1] <= x[2])","category":"page"},{"location":"tutorials/linear/tips_and_tricks/#Disjunctions","page":"Tips and tricks","title":"Disjunctions","text":"","category":"section"},{"location":"tutorials/linear/tips_and_tricks/#Problem","page":"Tips and tricks","title":"Problem","text":"","category":"section"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"Suppose that we have two constraints a^top x leq b and c^top x leq d, and we want at least one to hold.","category":"page"},{"location":"tutorials/linear/tips_and_tricks/#Trick","page":"Tips and tricks","title":"Trick","text":"","category":"section"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"Introduce a \"big-M\" multiplied by a binary variable to relax one of the constraints.","category":"page"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"Example Either x_1 leq 1 or x_2 leq 2.","category":"page"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"model = Model();\n@variable(model, x[1:2])\n@variable(model, y, Bin)\nM = 100\n@constraint(model, x[1] <= 1 + M * y)\n@constraint(model, x[2] <= 2 + M * (1 - y))","category":"page"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"warning: Warning\nIf M is too small, the solution may be suboptimal. If M is too big, the solver may encounter numerical issues. Try to use domain knowledge to choose an M that is just right. Gurobi has a good documentation section on this topic.","category":"page"},{"location":"tutorials/linear/tips_and_tricks/#Indicator-constraints","page":"Tips and tricks","title":"Indicator constraints","text":"","category":"section"},{"location":"tutorials/linear/tips_and_tricks/#Problem-2","page":"Tips and tricks","title":"Problem","text":"","category":"section"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"Suppose we want to model that a certain linear inequality must be satisfied when some other event occurs, that is, for a binary variable z, we want to model the implication:","category":"page"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"z = 1 implies a^top x leq b","category":"page"},{"location":"tutorials/linear/tips_and_tricks/#Trick-1","page":"Tips and tricks","title":"Trick 1","text":"","category":"section"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"Some solvers have native support for indicator constraints.","category":"page"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"Example x_1 + x_2 leq 1 if z = 1.","category":"page"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"model = Model();\n@variable(model, x[1:2])\n@variable(model, z, Bin)\n@constraint(model, z => {sum(x) <= 1})","category":"page"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"Example x_1 + x_2 leq 1 if z = 0.","category":"page"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"model = Model();\n@variable(model, x[1:2])\n@variable(model, z, Bin)\n@constraint(model, !z => {sum(x) <= 1})","category":"page"},{"location":"tutorials/linear/tips_and_tricks/#Trick-2","page":"Tips and tricks","title":"Trick 2","text":"","category":"section"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"If the solver doesn't support indicator constraints, you an use the big-M trick.","category":"page"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"Example x_1 + x_2 leq 1 if z = 1.","category":"page"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"model = Model();\n@variable(model, x[1:2])\n@variable(model, z, Bin)\nM = 100\n@constraint(model, sum(x) <= 1 + M * (1 - z))","category":"page"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"Example x_1 + x_2 leq 1 if z = 0.","category":"page"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"model = Model();\n@variable(model, x[1:2])\n@variable(model, z, Bin)\nM = 100\n@constraint(model, sum(x) <= 1 + M * z)","category":"page"},{"location":"tutorials/linear/tips_and_tricks/#Semi-continuous-variables","page":"Tips and tricks","title":"Semi-continuous variables","text":"","category":"section"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"info: Info\nThis section uses sets from MathOptInterface. By default, JuMP exports the MOI symbol as an alias for the MathOptInterface.jl package. We recommend making this more explicit in your code by adding the following lines:import MathOptInterface as MOI","category":"page"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"A semi-continuous variable is a continuous variable between bounds lu that also can assume the value zero, that is: x in 0 cup lu","category":"page"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"Example x in 0cup 1 2","category":"page"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"model = Model();\n@variable(model, x in Semicontinuous(1.0, 2.0))","category":"page"},{"location":"tutorials/linear/tips_and_tricks/#Semi-integer-variables","page":"Tips and tricks","title":"Semi-integer variables","text":"","category":"section"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"A semi-integer variable is a variable which assumes integer values between bounds lu and can also assume the value zero: x in 0 cup l u cap mathbbZ","category":"page"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"model = Model();\n@variable(model, x in Semiinteger(5.0, 10.0))","category":"page"},{"location":"tutorials/linear/tips_and_tricks/#Special-Ordered-Sets-of-Type-1","page":"Tips and tricks","title":"Special Ordered Sets of Type 1","text":"","category":"section"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"A Special Ordered Set of Type 1 is a set of variables, at most one of which can take a non-zero value, all others being at 0.","category":"page"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"They most frequently apply where a set of variables are actually binary variables. In other words, we have to choose at most one from a set of possibilities.","category":"page"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"model = Model();\n@variable(model, x[1:3], Bin)\n@constraint(model, x in SOS1())","category":"page"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"You can optionally pass SOS1 a weight vector like","category":"page"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"@constraint(model, x in SOS1([0.2, 0.5, 0.3]))","category":"page"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"If the decision variables are related and have a physical ordering, then the weight vector, although not used directly in the constraint, can help the solver make a better decision in the solution process.","category":"page"},{"location":"tutorials/linear/tips_and_tricks/#tip_sos2","page":"Tips and tricks","title":"Special Ordered Sets of Type 2","text":"","category":"section"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"A Special Ordered Set of type 2 is a set of non-negative variables, of which at most two can be non-zero, and if two are non-zero these must be consecutive in their ordering.","category":"page"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"model = Model();\n@variable(model, x[1:3])\n@constraint(model, x in SOS2([3.0, 1.0, 2.0]))","category":"page"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"The ordering provided by the weight vector is more important in this case as the variables need to be consecutive according to the ordering. For example, in the above constraint, the possible pairs are:","category":"page"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"Consecutive\n(x[1] and x[3]) as they correspond to 3 and 2 resp. and thus can be non-zero\n(x[2] and x[3]) as they correspond to 1 and 2 resp. and thus can be non-zero\nNon-consecutive\n(x[1] and x[2]) as they correspond to 3 and 1 resp. and thus cannot be non-zero","category":"page"},{"location":"tutorials/linear/tips_and_tricks/#Piecewise-linear-approximations","page":"Tips and tricks","title":"Piecewise linear approximations","text":"","category":"section"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"SOSII constraints are most often used to form piecewise linear approximations of a function.","category":"page"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"Given a set of points for x:","category":"page"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"x̂ = -1:0.5:2","category":"page"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"and a set of corresponding points for y:","category":"page"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"ŷ = x̂ .^ 2","category":"page"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"the piecewise linear approximation is constructed by representing x and y as convex combinations of x̂ and ŷ.","category":"page"},{"location":"tutorials/linear/tips_and_tricks/","page":"Tips and tricks","title":"Tips and tricks","text":"N = length(x̂)\nmodel = Model();\n@variable(model, -1 <= x <= 2)\n@variable(model, y)\n@variable(model, 0 <= λ[1:N] <= 1)\n@objective(model, Max, y)\n@constraints(model, begin\n x == sum(x̂[i] * λ[i] for i in 1:N)\n y == sum(ŷ[i] * λ[i] for i in 1:N)\n sum(λ) == 1\n λ in SOS2()\nend)","category":"page"},{"location":"tutorials/applications/web_app/","page":"Serving web apps","title":"Serving web apps","text":"EditURL = \"web_app.jl\"","category":"page"},{"location":"tutorials/applications/web_app/#Serving-web-apps","page":"Serving web apps","title":"Serving web apps","text":"","category":"section"},{"location":"tutorials/applications/web_app/","page":"Serving web apps","title":"Serving web apps","text":"This tutorial was generated using Literate.jl. Download the source as a .jl file.","category":"page"},{"location":"tutorials/applications/web_app/","page":"Serving web apps","title":"Serving web apps","text":"This tutorial demonstrates how to setup and serve JuMP models via a REST API.","category":"page"},{"location":"tutorials/applications/web_app/","page":"Serving web apps","title":"Serving web apps","text":"In the example app we are building, we solve a trivial mixed-integer program, which is parameterized by the lower bound of a variable. To call the service, users send an HTTP POST request with JSON contents indicating the lower bound. The returned value is the solution of the mixed-integer program as JSON.","category":"page"},{"location":"tutorials/applications/web_app/","page":"Serving web apps","title":"Serving web apps","text":"First, we need JuMP and a solver:","category":"page"},{"location":"tutorials/applications/web_app/","page":"Serving web apps","title":"Serving web apps","text":"using JuMP\nimport HiGHS","category":"page"},{"location":"tutorials/applications/web_app/","page":"Serving web apps","title":"Serving web apps","text":"We also need HTTP.jl to act as our REST server, and JSON.jl to marshal data.","category":"page"},{"location":"tutorials/applications/web_app/","page":"Serving web apps","title":"Serving web apps","text":"import HTTP\nimport JSON","category":"page"},{"location":"tutorials/applications/web_app/#The-server-side","page":"Serving web apps","title":"The server side","text":"","category":"section"},{"location":"tutorials/applications/web_app/","page":"Serving web apps","title":"Serving web apps","text":"The core components of our REST server are endpoints. These are functions which accept a Dict{String,Any} of input parameters, and return a Dict{String,Any} as output. The types are Dict{String,Any} because we're going to read these to and from JSON.","category":"page"},{"location":"tutorials/applications/web_app/","page":"Serving web apps","title":"Serving web apps","text":"Here's a very simple endpoint: it accepts params as input, formulates and solves a trivial mixed-integer program, and then returns a dictionary with the result.","category":"page"},{"location":"tutorials/applications/web_app/","page":"Serving web apps","title":"Serving web apps","text":"function endpoint_solve(params::Dict{String,Any})\n if !haskey(params, \"lower_bound\")\n return Dict{String,Any}(\n \"status\" => \"failure\",\n \"reason\" => \"missing lower_bound param\",\n )\n elseif !(params[\"lower_bound\"] isa Real)\n return Dict{String,Any}(\n \"status\" => \"failure\",\n \"reason\" => \"lower_bound is not a number\",\n )\n end\n model = Model(HiGHS.Optimizer)\n set_silent(model)\n @variable(model, x >= params[\"lower_bound\"], Int)\n optimize!(model)\n ret = Dict{String,Any}(\n \"status\" => \"okay\",\n \"terminaton_status\" => termination_status(model),\n \"primal_status\" => primal_status(model),\n )\n # Only include the `x` key if it has a value.\n if has_values(model)\n ret[\"x\"] = value(x)\n end\n return ret\nend","category":"page"},{"location":"tutorials/applications/web_app/","page":"Serving web apps","title":"Serving web apps","text":"When we call this, we get:","category":"page"},{"location":"tutorials/applications/web_app/","page":"Serving web apps","title":"Serving web apps","text":"endpoint_solve(Dict{String,Any}(\"lower_bound\" => 1.2))","category":"page"},{"location":"tutorials/applications/web_app/","page":"Serving web apps","title":"Serving web apps","text":"endpoint_solve(Dict{String,Any}())","category":"page"},{"location":"tutorials/applications/web_app/","page":"Serving web apps","title":"Serving web apps","text":"For a second function, we need a function that accepts an HTTP.Request object and returns an HTTP.Response object.","category":"page"},{"location":"tutorials/applications/web_app/","page":"Serving web apps","title":"Serving web apps","text":"function serve_solve(request::HTTP.Request)\n data = JSON.parse(String(request.body))\n solution = endpoint_solve(data)\n return HTTP.Response(200, JSON.json(solution))\nend","category":"page"},{"location":"tutorials/applications/web_app/","page":"Serving web apps","title":"Serving web apps","text":"Finally, we need an HTTP server. There are a variety of ways you can do this in HTTP.jl. We use an explicit Sockets.listen so we have manual control of when we shutdown the server.","category":"page"},{"location":"tutorials/applications/web_app/","page":"Serving web apps","title":"Serving web apps","text":"function setup_server(host, port)\n server = HTTP.Sockets.listen(host, port)\n HTTP.serve!(host, port; server = server) do request\n try\n # Extend the server by adding other endpoints here.\n if request.target == \"/api/solve\"\n return serve_solve(request)\n else\n return HTTP.Response(404, \"target $(request.target) not found\")\n end\n catch err\n # Log details about the exception server-side\n @info \"Unhandled exception: $err\"\n # Return a response to the client\n return HTTP.Response(500, \"internal error\")\n end\n end\n return server\nend","category":"page"},{"location":"tutorials/applications/web_app/","page":"Serving web apps","title":"Serving web apps","text":"warning: Warning\nHTTP.jl does not serve requests on a separate thread. Therefore, a long-running job will block the main thread, preventing concurrent users from submitting requests. To work-around this, read HTTP.jl issue 798 or watch Building Microservices and Applications in Julia from JuliaCon 2020.","category":"page"},{"location":"tutorials/applications/web_app/","page":"Serving web apps","title":"Serving web apps","text":"server = setup_server(HTTP.ip\"127.0.0.1\", 8080)","category":"page"},{"location":"tutorials/applications/web_app/#The-client-side","page":"Serving web apps","title":"The client side","text":"","category":"section"},{"location":"tutorials/applications/web_app/","page":"Serving web apps","title":"Serving web apps","text":"Now that we have a server, we can send it requests via this function:","category":"page"},{"location":"tutorials/applications/web_app/","page":"Serving web apps","title":"Serving web apps","text":"function send_request(data::Dict; endpoint::String = \"solve\")\n ret = HTTP.request(\n \"POST\",\n # This should match the URL and endpoint we defined for our server.\n \"http://127.0.0.1:8080/api/$endpoint\",\n [\"Content-Type\" => \"application/json\"],\n JSON.json(data),\n )\n if ret.status != 200\n # This could happen if there are time-outs, network errors, etc.\n return Dict(\n \"status\" => \"failure\",\n \"code\" => ret.status,\n \"body\" => String(ret.body),\n )\n end\n return JSON.parse(String(ret.body))\nend","category":"page"},{"location":"tutorials/applications/web_app/","page":"Serving web apps","title":"Serving web apps","text":"Let's see what happens:","category":"page"},{"location":"tutorials/applications/web_app/","page":"Serving web apps","title":"Serving web apps","text":"send_request(Dict(\"lower_bound\" => 0))","category":"page"},{"location":"tutorials/applications/web_app/","page":"Serving web apps","title":"Serving web apps","text":"send_request(Dict(\"lower_bound\" => 1.2))","category":"page"},{"location":"tutorials/applications/web_app/","page":"Serving web apps","title":"Serving web apps","text":"If we don't send a lower_bound, we get:","category":"page"},{"location":"tutorials/applications/web_app/","page":"Serving web apps","title":"Serving web apps","text":"send_request(Dict(\"invalid_param\" => 1.2))","category":"page"},{"location":"tutorials/applications/web_app/","page":"Serving web apps","title":"Serving web apps","text":"If we don't send a lower_bound that is a number, we get:","category":"page"},{"location":"tutorials/applications/web_app/","page":"Serving web apps","title":"Serving web apps","text":"send_request(Dict(\"lower_bound\" => \"1.2\"))","category":"page"},{"location":"tutorials/applications/web_app/","page":"Serving web apps","title":"Serving web apps","text":"Finally, we can shutdown our HTTP server:","category":"page"},{"location":"tutorials/applications/web_app/","page":"Serving web apps","title":"Serving web apps","text":"close(server)","category":"page"},{"location":"tutorials/applications/web_app/#Next-steps","page":"Serving web apps","title":"Next steps","text":"","category":"section"},{"location":"tutorials/applications/web_app/","page":"Serving web apps","title":"Serving web apps","text":"For more complicated examples relating to HTTP servers, consult the HTTP.jl documentation.","category":"page"},{"location":"tutorials/applications/web_app/","page":"Serving web apps","title":"Serving web apps","text":"To see how you can integrate this with a larger JuMP model, read Design patterns for larger models.","category":"page"},{"location":"packages/SDPT3/","page":"jump-dev/SDPT3.jl","title":"jump-dev/SDPT3.jl","text":"EditURL = \"https://github.com/jump-dev/SDPT3.jl/blob/b565aac2a58818090d521f2340e71f597688e4fb/README.md\"","category":"page"},{"location":"packages/SDPT3/#SDPT3.jl","page":"jump-dev/SDPT3.jl","title":"SDPT3.jl","text":"","category":"section"},{"location":"packages/SDPT3/","page":"jump-dev/SDPT3.jl","title":"jump-dev/SDPT3.jl","text":"SDPT3.jl is wrapper for the SDPT3 solver.","category":"page"},{"location":"packages/SDPT3/","page":"jump-dev/SDPT3.jl","title":"jump-dev/SDPT3.jl","text":"The wrapper has two components:","category":"page"},{"location":"packages/SDPT3/","page":"jump-dev/SDPT3.jl","title":"jump-dev/SDPT3.jl","text":"an exported sdpt3 function that is a thin wrapper on top of the sdpt3 MATLAB function\nan interface to MathOptInterface","category":"page"},{"location":"packages/SDPT3/#Affiliation","page":"jump-dev/SDPT3.jl","title":"Affiliation","text":"","category":"section"},{"location":"packages/SDPT3/","page":"jump-dev/SDPT3.jl","title":"jump-dev/SDPT3.jl","text":"This wrapper is maintained by the JuMP community and is not an official wrapper of SDPT3.","category":"page"},{"location":"packages/SDPT3/#License","page":"jump-dev/SDPT3.jl","title":"License","text":"","category":"section"},{"location":"packages/SDPT3/","page":"jump-dev/SDPT3.jl","title":"jump-dev/SDPT3.jl","text":"SDPT3.jl is licensed under the MIT License.","category":"page"},{"location":"packages/SDPT3/","page":"jump-dev/SDPT3.jl","title":"jump-dev/SDPT3.jl","text":"The underlying solver, SDPT3 is licensed under the GPL v2 License.","category":"page"},{"location":"packages/SDPT3/","page":"jump-dev/SDPT3.jl","title":"jump-dev/SDPT3.jl","text":"In addition, SDPT3 requires an installation of MATLAB, which is a closed-source commercial product for which you must obtain a license.","category":"page"},{"location":"packages/SDPT3/#Use-with-JuMP","page":"jump-dev/SDPT3.jl","title":"Use with JuMP","text":"","category":"section"},{"location":"packages/SDPT3/","page":"jump-dev/SDPT3.jl","title":"jump-dev/SDPT3.jl","text":"To use SDPT3 with JuMP, do:","category":"page"},{"location":"packages/SDPT3/","page":"jump-dev/SDPT3.jl","title":"jump-dev/SDPT3.jl","text":"using JuMP, SDPT3\nmodel = Model(SDPT3.Optimizer)\nset_attribute(model, \"printlevel\", 0)","category":"page"},{"location":"packages/SDPT3/#Installation","page":"jump-dev/SDPT3.jl","title":"Installation","text":"","category":"section"},{"location":"packages/SDPT3/","page":"jump-dev/SDPT3.jl","title":"jump-dev/SDPT3.jl","text":"First, make sure that you satisfy the requirements of the MATLAB.jl Julia package, and that the SeDuMi software is installed in your MATLAB™ installation.","category":"page"},{"location":"packages/SDPT3/","page":"jump-dev/SDPT3.jl","title":"jump-dev/SDPT3.jl","text":"Then, install SDPT3.jl using Pkg.add:","category":"page"},{"location":"packages/SDPT3/","page":"jump-dev/SDPT3.jl","title":"jump-dev/SDPT3.jl","text":"import Pkg\nPkg.add(\"SDPT3\")","category":"page"},{"location":"packages/SDPT3/#SDPT3-not-in-PATH","page":"jump-dev/SDPT3.jl","title":"SDPT3 not in PATH","text":"","category":"section"},{"location":"packages/SDPT3/","page":"jump-dev/SDPT3.jl","title":"jump-dev/SDPT3.jl","text":"If you get the error:","category":"page"},{"location":"packages/SDPT3/","page":"jump-dev/SDPT3.jl","title":"jump-dev/SDPT3.jl","text":"Error using save\nVariable 'jx_sdpt3_arg_out_1' not found.\n\nERROR: LoadError: MATLAB.MEngineError(\"failed to get variable jx_sdpt3_arg_out_1 from MATLAB session\")\nStacktrace:\n[...]","category":"page"},{"location":"packages/SDPT3/","page":"jump-dev/SDPT3.jl","title":"jump-dev/SDPT3.jl","text":"The error means that we could not find the sdpt3 function with one output argument using the MATLAB C API. This most likely means that you did not add SDPT3 to the MATLAB's path (that is, the toolbox/local/pathdef.m file).","category":"page"},{"location":"packages/SDPT3/","page":"jump-dev/SDPT3.jl","title":"jump-dev/SDPT3.jl","text":"If modifying toolbox/local/pathdef.m does not work, the following should work, where /path/to/sdpt3/ is the directory where the sdpt3 folder is located:","category":"page"},{"location":"packages/SDPT3/","page":"jump-dev/SDPT3.jl","title":"jump-dev/SDPT3.jl","text":"julia> using MATLAB\n\njulia> cd(\"/path/to/sdpt3/\") do\n MATLAB.mat\"install_sdpt3\"\n end\n\njulia> MATLAB.mat\"savepath\"","category":"page"},{"location":"packages/SDPT3/","page":"jump-dev/SDPT3.jl","title":"jump-dev/SDPT3.jl","text":"An alternative fix is suggested in the following issue.","category":"page"},{"location":"packages/SDPT3/#Error-in-validate","page":"jump-dev/SDPT3.jl","title":"Error in validate","text":"","category":"section"},{"location":"packages/SDPT3/","page":"jump-dev/SDPT3.jl","title":"jump-dev/SDPT3.jl","text":"If you get the error:","category":"page"},{"location":"packages/SDPT3/","page":"jump-dev/SDPT3.jl","title":"jump-dev/SDPT3.jl","text":"Brace indexing is not supported for variables of this type.\n\nError in validate\n\nError in sdpt3 (line 171)\n [blk,At,C,b,blkdim,numblk,parbarrier] = validate(blk,At,C,b,par,parbarrier);\n\nError using save\nVariable 'jx_sdpt3_arg_out_1' not found.","category":"page"},{"location":"packages/SDPT3/","page":"jump-dev/SDPT3.jl","title":"jump-dev/SDPT3.jl","text":"It might mean that you have added SDPNAL in addition to SDPT3 in the MATLAB's path (that is, the toolbox/local/pathdef.m file). Because SDPNAL also defines a validate function, this can make sdpt3 call SDPNAL's validate function instead of SDPT3's validate function, which causes the issue.","category":"page"},{"location":"packages/SDPT3/","page":"jump-dev/SDPT3.jl","title":"jump-dev/SDPT3.jl","text":"One way to fix this from the Julia REPL is to reset the search path to the factory-installed state using restoredefaultpath:","category":"page"},{"location":"packages/SDPT3/","page":"jump-dev/SDPT3.jl","title":"jump-dev/SDPT3.jl","text":"julia> using MATLAB\n\njulia> MATLAB.restoredefaultpath()\n\njulia> MATLAB.mat\"savepath\"","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"EditURL = \"dualization.jl\"","category":"page"},{"location":"tutorials/conic/dualization/#Dualization","page":"Dualization","title":"Dualization","text":"","category":"section"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"This tutorial was generated using Literate.jl. Download the source as a .jl file.","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"The purpose of this tutorial is to explain how to use Dualization.jl to improve the performance of some conic optimization models. There are two important takeaways:","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"JuMP reformulates problems to meet the input requirements of the solver, potentially increasing the problem size by adding slack variables and constraints.\nSolving the dual of a conic model can be more efficient than solving the primal.","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"Dualization.jl is a package which fixes these problems, allowing you to solve the dual instead of the primal with a one-line change to your code.","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"This tutorial uses the following packages","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"using JuMP\nimport Dualization\nimport SCS","category":"page"},{"location":"tutorials/conic/dualization/#Background","page":"Dualization","title":"Background","text":"","category":"section"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"Conic optimization solvers typically accept one of two input formulations.","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"The first is the standard conic form:","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"beginalign\n min_x in mathbbR^n c^top x \n textst A x = b \n x in mathcalK\nendalign","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"in which we have a set of linear equality constraints Ax = b and the variables belong to a cone mathcalK.","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"The second is the geometric conic form:","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"beginalign\n min_x in mathbbR^n c^top x \n textst A x - b in mathcalK\nendalign","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"in which an affine function Ax - b belongs to a cone mathcalK and the variables are free.","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"It is trivial to convert between these two representations, for example, to go from the geometric conic form to the standard conic form we introduce slack variables y:","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"beginalign\n min_x in mathbbR^n c^top x \n textst beginbmatrixA -Iendbmatrix beginbmatrixxyendbmatrix = b \n beginbmatrixxyendbmatrix in mathbbR^n times mathcalK\nendalign","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"and to go from the standard conic form to the geometric conic form, we can rewrite the equality constraint as a function belonging to the {0} cone:","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"beginalign\n min_x in mathbbR^n c^top x \n textst beginbmatrixAIendbmatrix x - beginbmatrixb0endbmatrix in 0 times mathcalK\nendalign","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"From a theoretical perspective, the two formulations are equivalent, and if you implement a model in the standard conic form and pass it to a geometric conic form solver (or vice versa), then JuMP will automatically reformulate the problem into the correct formulation.","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"From a practical perspective though, the reformulations are problematic because the additional slack variables and constraints can make the problem much larger and therefore harder to solve.","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"You should also note many problems contain a mix of conic constraints and variables, and so they do not neatly fall into one of the two formulations. In these cases, JuMP reformulates only the variables and constraints as necessary to convert the problem into the desired form.","category":"page"},{"location":"tutorials/conic/dualization/#Primal-and-dual-formulations","page":"Dualization","title":"Primal and dual formulations","text":"","category":"section"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"Duality plays a large role in conic optimization. For a detailed description of conic duality, see Duality.","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"A useful observation is that if the primal problem is in standard conic form, then the dual problem is in geometric conic form, and vice versa. Moreover, the primal and dual may have a different number of variables and constraints, although which one is smaller depends on the problem. Therefore, instead of reformulating the problem from one form to the other, it can be more efficient to solve the dual instead of the primal.","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"To demonstrate, we use a variation of the Maximum cut via SDP example.","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"The primal formulation (in standard conic form) is:","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"model_primal = Model()\n@variable(model_primal, X[1:2, 1:2], PSD)\n@objective(model_primal, Max, sum([1 -1; -1 1] .* X))\n@constraint(model_primal, primal_c[i = 1:2], 1 - X[i, i] == 0)\nprint(model_primal)","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"This problem has three scalar decision variables (the matrix X is symmetric), two scalar equality constraints, and a constraint that X is positive semidefinite.","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"The dual of model_primal is:","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"model_dual = Model()\n@variable(model_dual, y[1:2])\n@objective(model_dual, Min, sum(y))\n@constraint(model_dual, dual_c, [y[1]-1 1; 1 y[2]-1] in PSDCone())\nprint(model_dual)","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"This problem has two scalar decision variables, and a 2x2 positive semidefinite matrix constraint.","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"tip: Tip\nIf you haven't seen conic duality before, try deriving the dual problem based on the description in Duality. You'll need to know that the dual cone of PSDCone is the PSDCone.","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"When we solve model_primal with SCS.Optimizer, SCS reports three variables (variables n: 3), five rows in the constraint matrix (constraints m: 5), and five non-zeros in the matrix (nnz(A): 5):","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"set_optimizer(model_primal, SCS.Optimizer)\noptimize!(model_primal)","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"(There are five rows in the constraint matrix because SCS expects problems in geometric conic form, and so JuMP has reformulated the X, PSD variable constraint into the affine constraint X .+ 0 in PSDCone().)","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"The solution we obtain is:","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"value.(X)","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"dual.(primal_c)","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"objective_value(model_primal)","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"When we solve model_dual with SCS.Optimizer, SCS reports two variables (variables n: 2), three rows in the constraint matrix (constraints m: 3), and two non-zeros in the matrix (nnz(A): 2):","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"set_optimizer(model_dual, SCS.Optimizer)\noptimize!(model_dual)","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"and the solution we obtain is:","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"dual.(dual_c)","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"value.(y)","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"objective_value(model_dual)","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"This particular problem is small enough that it isn't meaningful to compare the solve times, but in general, we should expect model_dual to solve faster than model_primal because it contains fewer variables and constraints. The difference is particularly noticeable on large-scale optimization problems.","category":"page"},{"location":"tutorials/conic/dualization/#dual_optimizer","page":"Dualization","title":"dual_optimizer","text":"","category":"section"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"Manually deriving the conic dual is difficult and error-prone. The package Dualization.jl provides the Dualization.dual_optimizer meta-solver, which wraps any MathOptInterface-compatible solver in an interface that automatically formulates and solves the dual of an input problem.","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"To demonstrate, we use Dualization.dual_optimizer to solve model_primal:","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"set_optimizer(model_primal, Dualization.dual_optimizer(SCS.Optimizer))\noptimize!(model_primal)","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"The performance is the same as if we solved model_dual, and the correct solution is returned to X:","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"value.(X)","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"dual.(primal_c)","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"Moreover, if we use dual_optimizer on model_dual, then we get the same performance as if we had solved model_primal:","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"set_optimizer(model_dual, Dualization.dual_optimizer(SCS.Optimizer))\noptimize!(model_dual)","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"dual.(dual_c)","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"value.(y)","category":"page"},{"location":"tutorials/conic/dualization/#A-mixed-example","page":"Dualization","title":"A mixed example","text":"","category":"section"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"The Maximum cut via SDP example is nicely defined because the primal is in standard conic form and the dual is in geometric conic form. However, many practical models contain a mix of the two formulations. One example is The minimum distortion problem:","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"D = [0 1 1 1; 1 0 2 2; 1 2 0 2; 1 2 2 0]\nmodel = Model()\n@variable(model, c²)\n@variable(model, Q[1:4, 1:4], PSD)\n@objective(model, Min, c²)\nfor i in 1:4, j in (i+1):4\n @constraint(model, D[i, j]^2 <= Q[i, i] + Q[j, j] - 2 * Q[i, j])\n @constraint(model, Q[i, i] + Q[j, j] - 2 * Q[i, j] <= c² * D[i, j]^2)\nend\n@constraint(model, Q[1, 1] == 0)\n@constraint(model, c² >= 1)","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"In this formulation, the Q variable is of the form xinmathcalK, but there is also a free variable, c², a linear equality constraint, Q[1, 1] == 0, and some linear inequality constraints. Rather than attempting to derive the formulation that JuMP would pass to SCS and its dual, the simplest solution is to try solving the problem with and without dual_optimizer to see which formulation is most efficient.","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"set_optimizer(model, SCS.Optimizer)\noptimize!(model)","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"set_optimizer(model, Dualization.dual_optimizer(SCS.Optimizer))\noptimize!(model)","category":"page"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"For this problem, SCS reports that the primal has variables n: 11, constraints m: 24 and that the dual has variables n: 14, constraints m: 24. Therefore, we should probably use the primal formulation because it has fewer variables and the same number of constraints.","category":"page"},{"location":"tutorials/conic/dualization/#When-to-use-dual_optimizer","page":"Dualization","title":"When to use dual_optimizer","text":"","category":"section"},{"location":"tutorials/conic/dualization/","page":"Dualization","title":"Dualization","text":"Because it can make the problem larger or smaller, depending on the problem and the choice of solver, there is no definitive rule on when you should use dual_optimizer. However, you should try dual_optimizer if your conic optimization problem takes a long time to solve, or if you need to repeatedly solve similarly structured problems with different data. In some cases solving the dual instead of the primal can make a large difference.","category":"page"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"EditURL = \"ellipse_approx.jl\"","category":"page"},{"location":"tutorials/conic/ellipse_approx/#Ellipsoid-approximation","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"","category":"section"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"This tutorial was generated using Literate.jl. Download the source as a .jl file.","category":"page"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"This tutorial considers the problem of computing extremal ellipsoids: finding ellipsoids that best approximate a given set. As an extension, we show how to use JuMP to inspect the bridges that were used, and how to explore alternative formulations.","category":"page"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"The model comes from Section 4.9 \"Applications VII: extremal ellipsoids\" of the book Lectures on Modern Convex Optimization by Ben-Tal and Nemirovski (2001).","category":"page"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"For a related example, see also the Minimal ellipses tutorial.","category":"page"},{"location":"tutorials/conic/ellipse_approx/#Problem-formulation","page":"Ellipsoid approximation","title":"Problem formulation","text":"","category":"section"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"Suppose that we are given a set mathcalS consisting of m points in n-dimensional space:","category":"page"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"mathcalS = x_1 ldots x_m subset mathbbR^n","category":"page"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"Our goal is to determine an optimal vector c in mathbbR^n and an optimal n times n real symmetric matrix D such that the ellipse:","category":"page"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"E(D c) = x (x - c)^top D ( x - c) leq 1 ","category":"page"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"contains mathcalS and has the smallest possible volume.","category":"page"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"The optimal D and c are given by the optimization problem:","category":"page"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"beginaligned\nmax quad t \ntextst quad Z succeq 0 \n beginbmatrix s z^top z Z endbmatrix succeq 0 \n x_i^top Z x_i - 2x_i^top z + s leq 1 quad i=1 ldots m \n t le sqrtndet(Z)\nendaligned","category":"page"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"where D = Z_* and c = Z_*^-1 z_*.","category":"page"},{"location":"tutorials/conic/ellipse_approx/#Required-packages","page":"Ellipsoid approximation","title":"Required packages","text":"","category":"section"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"This tutorial uses the following packages:","category":"page"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"using JuMP\nimport LinearAlgebra\nimport Plots\nimport Random\nimport SCS","category":"page"},{"location":"tutorials/conic/ellipse_approx/#Data","page":"Ellipsoid approximation","title":"Data","text":"","category":"section"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"We first need to generate some points to work with.","category":"page"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"function generate_point_cloud(\n m; # number of 2-dimensional points\n a = 10, # scaling in x direction\n b = 2, # scaling in y direction\n rho = π / 6, # rotation of points around origin\n random_seed = 1,\n)\n rng = Random.MersenneTwister(random_seed)\n P = randn(rng, Float64, m, 2)\n Phi = [a*cos(rho) a*sin(rho); -b*sin(rho) b*cos(rho)]\n S = P * Phi\n return S\nend","category":"page"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"For the sake of this example, let's take m = 600:","category":"page"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"S = generate_point_cloud(600);\nnothing #hide","category":"page"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"We will visualise the points (and ellipse) using the Plots package:","category":"page"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"r = 1.1 * maximum(abs.(S))\nplot = Plots.scatter(\n S[:, 1],\n S[:, 2];\n xlim = (-r, r),\n ylim = (-r, r),\n label = nothing,\n c = :green,\n shape = :x,\n size = (600, 600),\n)","category":"page"},{"location":"tutorials/conic/ellipse_approx/#JuMP-formulation","page":"Ellipsoid approximation","title":"JuMP formulation","text":"","category":"section"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"Now let's build and the JuMP model. We'll compute D and c after the solve.","category":"page"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"model = Model(SCS.Optimizer)\n# We need to use a tighter tolerance for this example, otherwise the bounding\n# ellipse won't actually be bounding...\nset_attribute(model, \"eps_rel\", 1e-6)\nset_silent(model)\nm, n = size(S)\n@variable(model, z[1:n])\n@variable(model, Z[1:n, 1:n], PSD)\n@variable(model, s)\n@variable(model, t)\n@constraint(model, [s z'; z Z] >= 0, PSDCone())\n@constraint(\n model,\n [i in 1:m],\n S[i, :]' * Z * S[i, :] - 2 * S[i, :]' * z + s <= 1,\n)\n@constraint(model, [t; vec(Z)] in MOI.RootDetConeSquare(n))\n@objective(model, Max, t)\noptimize!(model)\nsolution_summary(model)","category":"page"},{"location":"tutorials/conic/ellipse_approx/#Results","page":"Ellipsoid approximation","title":"Results","text":"","category":"section"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"After solving the model to optimality we can recover the solution in terms of D and c:","category":"page"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"D = value.(Z)","category":"page"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"c = D \\ value.(z)","category":"page"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"Finally, overlaying the solution in the plot we see the minimal volume approximating ellipsoid:","category":"page"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"P = sqrt(D)\nq = -P * c\ndata = [tuple(P \\ [cos(θ) - q[1], sin(θ) - q[2]]...) for θ in 0:0.05:(2pi+0.05)]\nPlots.plot!(plot, data; c = :crimson, label = nothing)","category":"page"},{"location":"tutorials/conic/ellipse_approx/#Alternative-formulations","page":"Ellipsoid approximation","title":"Alternative formulations","text":"","category":"section"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"The formulation of model uses MOI.RootDetConeSquare. However, because SCS does not natively support this cone, JuMP automatically reformulates the problem into an equivalent problem that SCS does support. You can see the reformulation that JuMP chose using print_active_bridges:","category":"page"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"print_active_bridges(model)","category":"page"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"There's a lot going on here, but the first bullet is:","category":"page"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"* Unsupported objective: MOI.VariableIndex\n| bridged by:\n| MOIB.Objective.FunctionizeBridge{Float64}\n| introduces:\n| * Supported objective: MOI.ScalarAffineFunction{Float64}","category":"page"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"This says that SCS does not support a MOI.VariableIndex objective function, and that JuMP used a MOI.Bridges.Objective.FunctionizeBridge to convert it into a MOI.ScalarAffineFunction{Float64} objective function.","category":"page"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"We can leave JuMP to do the reformulation, or we can rewrite our model to have an objective function that SCS natively supports:","category":"page"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"@objective(model, Max, 1.0 * t + 0.0);\nnothing #hide","category":"page"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"Re-printing the active bridges:","category":"page"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"print_active_bridges(model)","category":"page"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"we get * Supported objective: MOI.ScalarAffineFunction{Float64}.","category":"page"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"We can manually implement some other reformulations to change our model to something that SCS more closely supports by:","category":"page"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"Replacing the MOI.VectorOfVariables in MOI.PositiveSemidefiniteConeTriangle constraint @variable(model, Z[1:n, 1:n], PSD) with the MOI.VectorAffineFunction in MOI.PositiveSemidefiniteConeTriangle @constraint(model, Z >= 0, PSDCone()).\nReplacing the MOI.VectorOfVariables in MOI.PositiveSemidefiniteConeSquare constraint [s z'; z Z] >= 0, PSDCone() with the MOI.VectorAffineFunction in MOI.PositiveSemidefiniteConeTriangle @constraint(model, LinearAlgebra.Symmetric([s z'; z Z]) >= 0, PSDCone()).\nReplacing the MOI.ScalarAffineFunction in MOI.GreaterThan constraints with the vectorized equivalent of MOI.VectorAffineFunction in MOI.Nonnegatives\nReplacing the MOI.VectorOfVariables in MOI.RootDetConeSquare constraint with MOI.VectorAffineFunction in MOI.RootDetConeTriangle.","category":"page"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"Note that we still need to bridge MOI.PositiveSemidefiniteConeTriangle constraints because SCS uses an internal SCS.ScaledPSDCone set instead.","category":"page"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"model = Model(SCS.Optimizer)\nset_attribute(model, \"eps_rel\", 1e-6)\nset_silent(model)\n@variable(model, z[1:n])\n@variable(model, s)\n@variable(model, t)\n# The former @variable(model, Z[1:n, 1:n], PSD)\n@variable(model, Z[1:n, 1:n], Symmetric)\n@constraint(model, Z >= 0, PSDCone())\n# The former [s z'; z Z] >= 0, PSDCone()\n@constraint(model, LinearAlgebra.Symmetric([s z'; z Z]) >= 0, PSDCone())\n# The former constraint S[i, :]' * Z * S[i, :] - 2 * S[i, :]' * z + s <= 1\nf = [1 - S[i, :]' * Z * S[i, :] + 2 * S[i, :]' * z - s for i in 1:m]\n@constraint(model, f in MOI.Nonnegatives(m))\n# The former constraint [t; vec(Z)] in MOI.RootDetConeSquare(n)\n@constraint(model, 1 * [t; triangle_vec(Z)] .+ 0 in MOI.RootDetConeTriangle(n))\n# The former @objective(model, Max, t)\n@objective(model, Max, 1 * t + 0)\noptimize!(model)\nsolve_time_1 = solve_time(model)","category":"page"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"This formulation gives the much smaller graph:","category":"page"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"print_active_bridges(model)","category":"page"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"The last bullet shows how JuMP reformulated the MOI.RootDetConeTriangle constraint by adding a mix of MOI.PositiveSemidefiniteConeTriangle and MOI.GeometricMeanCone constraints.","category":"page"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"Because SCS doesn't natively support the MOI.GeometricMeanCone, these constraints were further bridged using a MOI.Bridges.Constraint.GeoMeanToPowerBridge to a series of MOI.PowerCone constraints.","category":"page"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"However, there are many other ways that a MOI.GeometricMeanCone can be reformulated into something that SCS supports. Let's see what happens if we use remove_bridge to remove the MOI.Bridges.Constraint.GeoMeanToPowerBridge:","category":"page"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"remove_bridge(model, MOI.Bridges.Constraint.GeoMeanToPowerBridge)\noptimize!(model)","category":"page"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"This time, the solve took:","category":"page"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"solve_time_2 = solve_time(model)","category":"page"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"where previously it took","category":"page"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"solve_time_1","category":"page"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"Why was the solve time different?","category":"page"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"print_active_bridges(model)","category":"page"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"This time, JuMP used a MOI.Bridges.Constraint.GeoMeanBridge to reformulate the constraint into a set of MOI.RotatedSecondOrderCone constraints, which were further reformulated into a set of supported MOI.SecondOrderCone constraints.","category":"page"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"Since the two models are equivalent, we can conclude that for this particular model, the MOI.SecondOrderCone formulation is more efficient.","category":"page"},{"location":"tutorials/conic/ellipse_approx/","page":"Ellipsoid approximation","title":"Ellipsoid approximation","text":"In general though, the performance of a particular reformulation is problem- and solver-specific. Therefore, JuMP chooses to minimize the number of bridges in the default reformulation, leaving you to explore alternative formulations using the tools and techniques shown in this tutorial.","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"DocTestSetup = quote\n using JuMP\nend","category":"page"},{"location":"manual/containers/#Containers","page":"Containers","title":"Containers","text":"","category":"section"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"JuMP provides specialized containers similar to AxisArrays that enable multi-dimensional arrays with non-integer indices.","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"These containers are created automatically by JuMP's macros. Each macro has the same basic syntax:","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"@macroname(model, name[key1=index1, index2; optional_condition], other stuff)","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"The containers are generated by the name[key1=index1, index2; optional_condition] syntax. Everything else is specific to the particular macro.","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"Containers can be named, for example, name[key=index], or unnamed, for example, [key=index]. We call unnamed containers anonymous.","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"We call the bits inside the square brackets and before the ; the index sets. The index sets can be named, for example, [i = 1:4], or they can be unnamed, for example, [1:4].","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"We call the bit inside the square brackets and after the ; the condition. Conditions are optional.","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"In addition to the standard JuMP macros like @variable and @constraint, which construct containers of variables and constraints respectively, you can use Containers.@container to construct containers with arbitrary elements.","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"We will use this macro to explain the three types of containers that are natively supported by JuMP: Array, Containers.DenseAxisArray, and Containers.SparseAxisArray.","category":"page"},{"location":"manual/containers/#Array","page":"Containers","title":"Array","text":"","category":"section"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"An Array is created when the index sets are rectangular and the index sets are of the form 1:n.","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"julia> Containers.@container(x[i = 1:2, j = 1:3], (i, j))\n2×3 Matrix{Tuple{Int64, Int64}}:\n (1, 1) (1, 2) (1, 3)\n (2, 1) (2, 2) (2, 3)","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"The result is a normal Julia Array, so you can do all the usual things.","category":"page"},{"location":"manual/containers/#Slicing","page":"Containers","title":"Slicing","text":"","category":"section"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"Arrays can be sliced","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"julia> x[:, 1]\n2-element Vector{Tuple{Int64, Int64}}:\n (1, 1)\n (2, 1)\n\njulia> x[2, :]\n3-element Vector{Tuple{Int64, Int64}}:\n (2, 1)\n (2, 2)\n (2, 3)","category":"page"},{"location":"manual/containers/#Looping","page":"Containers","title":"Looping","text":"","category":"section"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"Use eachindex to loop over the elements:","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"julia> for key in eachindex(x)\n println(x[key])\n end\n(1, 1)\n(2, 1)\n(1, 2)\n(2, 2)\n(1, 3)\n(2, 3)","category":"page"},{"location":"manual/containers/#Get-the-index-sets","page":"Containers","title":"Get the index sets","text":"","category":"section"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"Use axes to obtain the index sets:","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"julia> axes(x)\n(Base.OneTo(2), Base.OneTo(3))","category":"page"},{"location":"manual/containers/#Broadcasting","page":"Containers","title":"Broadcasting","text":"","category":"section"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"Broadcasting over an Array returns an Array","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"julia> swap(x::Tuple) = (last(x), first(x))\nswap (generic function with 1 method)\n\njulia> swap.(x)\n2×3 Matrix{Tuple{Int64, Int64}}:\n (1, 1) (2, 1) (3, 1)\n (1, 2) (2, 2) (3, 2)","category":"page"},{"location":"manual/containers/#Tables","page":"Containers","title":"Tables","text":"","category":"section"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"Use Containers.rowtable to convert the Array into a Tables.jl compatible Vector{<:NamedTuple}:","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"julia> table = Containers.rowtable(x; header = [:I, :J, :value])\n6-element Vector{NamedTuple{(:I, :J, :value), Tuple{Int64, Int64, Tuple{Int64, Int64}}}}:\n (I = 1, J = 1, value = (1, 1))\n (I = 2, J = 1, value = (2, 1))\n (I = 1, J = 2, value = (1, 2))\n (I = 2, J = 2, value = (2, 2))\n (I = 1, J = 3, value = (1, 3))\n (I = 2, J = 3, value = (2, 3))","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"Because it supports the Tables.jl interface, you can pass it to any function which accepts a table as input:","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"julia> import DataFrames;\n\njulia> DataFrames.DataFrame(table)\n6×3 DataFrame\n Row │ I J value\n │ Int64 Int64 Tuple…\n─────┼──────────────────────\n 1 │ 1 1 (1, 1)\n 2 │ 2 1 (2, 1)\n 3 │ 1 2 (1, 2)\n 4 │ 2 2 (2, 2)\n 5 │ 1 3 (1, 3)\n 6 │ 2 3 (2, 3)","category":"page"},{"location":"manual/containers/#DenseAxisArray","page":"Containers","title":"DenseAxisArray","text":"","category":"section"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"A Containers.DenseAxisArray is created when the index sets are rectangular, but not of the form 1:n. The index sets can be of any type.","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"julia> x = Containers.@container([i = 1:2, j = [:A, :B]], (i, j))\n2-dimensional DenseAxisArray{Tuple{Int64, Symbol},2,...} with index sets:\n Dimension 1, Base.OneTo(2)\n Dimension 2, [:A, :B]\nAnd data, a 2×2 Matrix{Tuple{Int64, Symbol}}:\n (1, :A) (1, :B)\n (2, :A) (2, :B)","category":"page"},{"location":"manual/containers/#Slicing-2","page":"Containers","title":"Slicing","text":"","category":"section"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"DenseAxisArrays can be sliced","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"julia> x[:, :A]\n1-dimensional DenseAxisArray{Tuple{Int64, Symbol},1,...} with index sets:\n Dimension 1, Base.OneTo(2)\nAnd data, a 2-element Vector{Tuple{Int64, Symbol}}:\n (1, :A)\n (2, :A)\n\njulia> x[1, :]\n1-dimensional DenseAxisArray{Tuple{Int64, Symbol},1,...} with index sets:\n Dimension 1, [:A, :B]\nAnd data, a 2-element Vector{Tuple{Int64, Symbol}}:\n (1, :A)\n (1, :B)","category":"page"},{"location":"manual/containers/#Looping-2","page":"Containers","title":"Looping","text":"","category":"section"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"Use eachindex to loop over the elements:","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"julia> for key in eachindex(x)\n println(x[key])\n end\n(1, :A)\n(2, :A)\n(1, :B)\n(2, :B)","category":"page"},{"location":"manual/containers/#Get-the-index-sets-2","page":"Containers","title":"Get the index sets","text":"","category":"section"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"Use axes to obtain the index sets:","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"julia> axes(x)\n(Base.OneTo(2), [:A, :B])","category":"page"},{"location":"manual/containers/#Broadcasting-2","page":"Containers","title":"Broadcasting","text":"","category":"section"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"Broadcasting over a DenseAxisArray returns a DenseAxisArray","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"julia> swap(x::Tuple) = (last(x), first(x))\nswap (generic function with 1 method)\n\njulia> swap.(x)\n2-dimensional DenseAxisArray{Tuple{Symbol, Int64},2,...} with index sets:\n Dimension 1, Base.OneTo(2)\n Dimension 2, [:A, :B]\nAnd data, a 2×2 Matrix{Tuple{Symbol, Int64}}:\n (:A, 1) (:B, 1)\n (:A, 2) (:B, 2)","category":"page"},{"location":"manual/containers/#Access-internal-data","page":"Containers","title":"Access internal data","text":"","category":"section"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"Use Array(x) to copy the internal data array into a new Array:","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"julia> Array(x)\n2×2 Matrix{Tuple{Int64, Symbol}}:\n (1, :A) (1, :B)\n (2, :A) (2, :B)","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"To access the internal data without a copy, use x.data.","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"julia> x.data\n2×2 Matrix{Tuple{Int64, Symbol}}:\n (1, :A) (1, :B)\n (2, :A) (2, :B)","category":"page"},{"location":"manual/containers/#Tables-2","page":"Containers","title":"Tables","text":"","category":"section"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"Use Containers.rowtable to convert the DenseAxisArray into a Tables.jl compatible Vector{<:NamedTuple}:","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"julia> table = Containers.rowtable(x; header = [:I, :J, :value])\n4-element Vector{NamedTuple{(:I, :J, :value), Tuple{Int64, Symbol, Tuple{Int64, Symbol}}}}:\n (I = 1, J = :A, value = (1, :A))\n (I = 2, J = :A, value = (2, :A))\n (I = 1, J = :B, value = (1, :B))\n (I = 2, J = :B, value = (2, :B))","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"Because it supports the Tables.jl interface, you can pass it to any function which accepts a table as input:","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"julia> import DataFrames;\n\njulia> DataFrames.DataFrame(table)\n4×3 DataFrame\n Row │ I J value\n │ Int64 Symbol Tuple…\n─────┼────────────────────────\n 1 │ 1 A (1, :A)\n 2 │ 2 A (2, :A)\n 3 │ 1 B (1, :B)\n 4 │ 2 B (2, :B)","category":"page"},{"location":"manual/containers/#Keyword-indexing","page":"Containers","title":"Keyword indexing","text":"","category":"section"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"If all axes are named, you can use keyword indexing:","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"julia> x[i = 2, j = :A]\n(2, :A)\n\njulia> x[i = :, j = :B]\n1-dimensional DenseAxisArray{Tuple{Int64, Symbol},1,...} with index sets:\n Dimension 1, Base.OneTo(2)\nAnd data, a 2-element Vector{Tuple{Int64, Symbol}}:\n (1, :B)\n (2, :B)","category":"page"},{"location":"manual/containers/#SparseAxisArray","page":"Containers","title":"SparseAxisArray","text":"","category":"section"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"A Containers.SparseAxisArray is created when the index sets are non-rectangular. This occurs in two circumstances:","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"An index depends on a prior index:","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"julia> Containers.@container([i = 1:2, j = i:2], (i, j))\nJuMP.Containers.SparseAxisArray{Tuple{Int64, Int64}, 2, Tuple{Int64, Int64}} with 3 entries:\n [1, 1] = (1, 1)\n [1, 2] = (1, 2)\n [2, 2] = (2, 2)","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"The [indices; condition] syntax is used:","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"julia> x = Containers.@container([i = 1:3, j = [:A, :B]; i > 1], (i, j))\nJuMP.Containers.SparseAxisArray{Tuple{Int64, Symbol}, 2, Tuple{Int64, Symbol}} with 4 entries:\n [2, A] = (2, :A)\n [2, B] = (2, :B)\n [3, A] = (3, :A)\n [3, B] = (3, :B)","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"Here we have the index sets i = 1:3, j = [:A, :B], followed by ;, and then a condition, which evaluates to true or false: i > 1.","category":"page"},{"location":"manual/containers/#Slicing-3","page":"Containers","title":"Slicing","text":"","category":"section"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"Slicing is supported:","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"julia> y = x[:, :B]\nJuMP.Containers.SparseAxisArray{Tuple{Int64, Symbol}, 1, Tuple{Int64}} with 2 entries:\n [2] = (2, :B)\n [3] = (3, :B)","category":"page"},{"location":"manual/containers/#Looping-3","page":"Containers","title":"Looping","text":"","category":"section"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"Use eachindex to loop over the elements:","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"julia> for key in eachindex(y)\n println(y[key])\n end\n(2, :B)\n(3, :B)","category":"page"},{"location":"manual/containers/#Broadcasting-3","page":"Containers","title":"Broadcasting","text":"","category":"section"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"Broadcasting over a SparseAxisArray returns a SparseAxisArray","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"julia> swap(x::Tuple) = (last(x), first(x))\nswap (generic function with 1 method)\n\njulia> swap.(y)\nJuMP.Containers.SparseAxisArray{Tuple{Symbol, Int64}, 1, Tuple{Int64}} with 2 entries:\n [2] = (:B, 2)\n [3] = (:B, 3)","category":"page"},{"location":"manual/containers/#Tables-3","page":"Containers","title":"Tables","text":"","category":"section"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"Use Containers.rowtable to convert the SparseAxisArray into a Tables.jl compatible Vector{<:NamedTuple}:","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"julia> table = Containers.rowtable(x; header = [:I, :J, :value])\n4-element Vector{NamedTuple{(:I, :J, :value), Tuple{Int64, Symbol, Tuple{Int64, Symbol}}}}:\n (I = 2, J = :A, value = (2, :A))\n (I = 2, J = :B, value = (2, :B))\n (I = 3, J = :A, value = (3, :A))\n (I = 3, J = :B, value = (3, :B))","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"Because it supports the Tables.jl interface, you can pass it to any function which accepts a table as input:","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"julia> import DataFrames;\n\njulia> DataFrames.DataFrame(table)\n4×3 DataFrame\n Row │ I J value\n │ Int64 Symbol Tuple…\n─────┼────────────────────────\n 1 │ 2 A (2, :A)\n 2 │ 2 B (2, :B)\n 3 │ 3 A (3, :A)\n 4 │ 3 B (3, :B)","category":"page"},{"location":"manual/containers/#Keyword-indexing-2","page":"Containers","title":"Keyword indexing","text":"","category":"section"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"If all axes are named, you can use keyword indexing:","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"julia> x[i = 2, j = :A]\n(2, :A)\n\njulia> x[i = :, j = :B]\nJuMP.Containers.SparseAxisArray{Tuple{Int64, Symbol}, 1, Tuple{Int64}} with 2 entries:\n [2] = (2, :B)\n [3] = (3, :B)","category":"page"},{"location":"manual/containers/#Forcing-the-container-type","page":"Containers","title":"Forcing the container type","text":"","category":"section"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"Pass container = T to use T as the container. For example:","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"julia> Containers.@container([i = 1:2, j = 1:2], i + j, container = Array)\n2×2 Matrix{Int64}:\n 2 3\n 3 4\n\njulia> Containers.@container([i = 1:2, j = 1:2], i + j, container = Dict)\nDict{Tuple{Int64, Int64}, Int64} with 4 entries:\n (1, 2) => 3\n (1, 1) => 2\n (2, 2) => 4\n (2, 1) => 3","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"You can also pass DenseAxisArray or SparseAxisArray.","category":"page"},{"location":"manual/containers/#How-different-container-types-are-chosen","page":"Containers","title":"How different container types are chosen","text":"","category":"section"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"If the compiler can prove at compile time that the index sets are rectangular, and indexed by a compact set of integers that start at 1, Containers.@container will return an array. This is the case if your index sets are visible to the macro as 1:n:","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"julia> Containers.@container([i=1:3, j=1:5], i + j)\n3×5 Matrix{Int64}:\n 2 3 4 5 6\n 3 4 5 6 7\n 4 5 6 7 8","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"or an instance of Base.OneTo:","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"julia> set = Base.OneTo(3)\nBase.OneTo(3)\n\njulia> Containers.@container([i=set, j=1:5], i + j)\n3×5 Matrix{Int64}:\n 2 3 4 5 6\n 3 4 5 6 7\n 4 5 6 7 8","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"If the compiler can prove that the index set is rectangular, but not necessarily of the form 1:n at compile time, then a Containers.DenseAxisArray will be constructed instead:","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"julia> set = 1:3\n1:3\n\njulia> Containers.@container([i=set, j=1:5], i + j)\n2-dimensional DenseAxisArray{Int64,2,...} with index sets:\n Dimension 1, 1:3\n Dimension 2, Base.OneTo(5)\nAnd data, a 3×5 Matrix{Int64}:\n 2 3 4 5 6\n 3 4 5 6 7\n 4 5 6 7 8","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"info: Info\nWhat happened here? Although we know that set contains 1:3, at compile time the typeof(set) is a UnitRange{Int}. Therefore, Julia can't prove that the range starts at 1 (it only finds this out at runtime), and it defaults to a DenseAxisArray. The case where we explicitly wrote i = 1:3 worked because the macro can \"see\" the 1 at compile time.","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"However, if you know that the indices do form an Array, you can force the container type with container = Array:","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"julia> set = 1:3\n1:3\n\njulia> Containers.@container([i=set, j=1:5], i + j, container = Array)\n3×5 Matrix{Int64}:\n 2 3 4 5 6\n 3 4 5 6 7\n 4 5 6 7 8","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"Here's another example with something similar:","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"julia> a = 1\n1\n\njulia> Containers.@container([i=a:3, j=1:5], i + j)\n2-dimensional DenseAxisArray{Int64,2,...} with index sets:\n Dimension 1, 1:3\n Dimension 2, Base.OneTo(5)\nAnd data, a 3×5 Matrix{Int64}:\n 2 3 4 5 6\n 3 4 5 6 7\n 4 5 6 7 8\n\njulia> Containers.@container([i=1:a, j=1:5], i + j)\n1×5 Matrix{Int64}:\n 2 3 4 5 6","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"Finally, if the compiler cannot prove that the index set is rectangular, a Containers.SparseAxisArray will be created.","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"This occurs when some indices depend on a previous one:","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"julia> Containers.@container([i=1:3, j=1:i], i + j)\nJuMP.Containers.SparseAxisArray{Int64, 2, Tuple{Int64, Int64}} with 6 entries:\n [1, 1] = 2\n [2, 1] = 3\n [2, 2] = 4\n [3, 1] = 4\n [3, 2] = 5\n [3, 3] = 6","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"or if there is a condition on the index sets:","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"julia> Containers.@container([i = 1:5; isodd(i)], i^2)\nJuMP.Containers.SparseAxisArray{Int64, 1, Tuple{Int64}} with 3 entries:\n [1] = 1\n [3] = 9\n [5] = 25","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"The condition can depend on multiple indices, the only requirement is that it is an expression that returns true or false:","category":"page"},{"location":"manual/containers/","page":"Containers","title":"Containers","text":"julia> condition(i, j) = isodd(i) && iseven(j)\ncondition (generic function with 1 method)\n\njulia> Containers.@container([i = 1:2, j = 1:4; condition(i, j)], i + j)\nJuMP.Containers.SparseAxisArray{Int64, 2, Tuple{Int64, Int64}} with 2 entries:\n [1, 2] = 3\n [1, 4] = 5","category":"page"},{"location":"moi/manual/solutions/","page":"Solutions","title":"Solutions","text":"EditURL = \"https://github.com/jump-dev/MathOptInterface.jl/blob/v1.20.1/docs/src/manual/solutions.md\"","category":"page"},{"location":"moi/manual/solutions/","page":"Solutions","title":"Solutions","text":"CurrentModule = MathOptInterface\nDocTestSetup = quote\n import MathOptInterface as MOI\nend\nDocTestFilters = [r\"MathOptInterface|MOI\"]","category":"page"},{"location":"moi/manual/solutions/#manual_solutions","page":"Solutions","title":"Solutions","text":"","category":"section"},{"location":"moi/manual/solutions/#Solving-and-retrieving-the-results","page":"Solutions","title":"Solving and retrieving the results","text":"","category":"section"},{"location":"moi/manual/solutions/","page":"Solutions","title":"Solutions","text":"Once an optimizer is loaded with the objective function and all of the constraints, we can ask the solver to solve the model by calling optimize!.","category":"page"},{"location":"moi/manual/solutions/","page":"Solutions","title":"Solutions","text":"MOI.optimize!(optimizer)","category":"page"},{"location":"moi/manual/solutions/#Why-did-the-solver-stop?","page":"Solutions","title":"Why did the solver stop?","text":"","category":"section"},{"location":"moi/manual/solutions/","page":"Solutions","title":"Solutions","text":"The optimization procedure may stop for a number of reasons. The TerminationStatus attribute of the optimizer returns a TerminationStatusCode object which explains why the solver stopped.","category":"page"},{"location":"moi/manual/solutions/","page":"Solutions","title":"Solutions","text":"The termination statuses distinguish between proofs of optimality, infeasibility, local convergence, limits, and termination because of something unexpected like invalid problem data or failure to converge.","category":"page"},{"location":"moi/manual/solutions/","page":"Solutions","title":"Solutions","text":"A typical usage of the TerminationStatus attribute is as follows:","category":"page"},{"location":"moi/manual/solutions/","page":"Solutions","title":"Solutions","text":"status = MOI.get(optimizer, TerminationStatus())\nif status == MOI.OPTIMAL\n # Ok, we solved the problem!\nelse\n # Handle other cases.\nend","category":"page"},{"location":"moi/manual/solutions/","page":"Solutions","title":"Solutions","text":"After checking the TerminationStatus, check ResultCount. This attribute returns the number of results that the solver has available to return. A result is defined as a primal-dual pair, but either the primal or the dual may be missing from the result. While the OPTIMAL termination status normally implies that at least one result is available, other statuses do not. For example, in the case of infeasibility, a solver may return no result or a proof of infeasibility. The ResultCount attribute distinguishes between these two cases.","category":"page"},{"location":"moi/manual/solutions/#Primal-solutions","page":"Solutions","title":"Primal solutions","text":"","category":"section"},{"location":"moi/manual/solutions/","page":"Solutions","title":"Solutions","text":"Use the PrimalStatus optimizer attribute to return a ResultStatusCode describing the status of the primal solution.","category":"page"},{"location":"moi/manual/solutions/","page":"Solutions","title":"Solutions","text":"Common returns are described below in the Common status situations section.","category":"page"},{"location":"moi/manual/solutions/","page":"Solutions","title":"Solutions","text":"Query the primal solution using the VariablePrimal and ConstraintPrimal attributes.","category":"page"},{"location":"moi/manual/solutions/","page":"Solutions","title":"Solutions","text":"Query the objective function value using the ObjectiveValue attribute.","category":"page"},{"location":"moi/manual/solutions/#Dual-solutions","page":"Solutions","title":"Dual solutions","text":"","category":"section"},{"location":"moi/manual/solutions/","page":"Solutions","title":"Solutions","text":"warning: Warning\nSee Duality for a discussion of the MOI conventions for primal-dual pairs and certificates.","category":"page"},{"location":"moi/manual/solutions/","page":"Solutions","title":"Solutions","text":"Use the DualStatus optimizer attribute to return a ResultStatusCode describing the status of the dual solution.","category":"page"},{"location":"moi/manual/solutions/","page":"Solutions","title":"Solutions","text":"Query the dual solution using the ConstraintDual attribute.","category":"page"},{"location":"moi/manual/solutions/","page":"Solutions","title":"Solutions","text":"Query the dual objective function value using the DualObjectiveValue attribute.","category":"page"},{"location":"moi/manual/solutions/#Common-status-situations","page":"Solutions","title":"Common status situations","text":"","category":"section"},{"location":"moi/manual/solutions/","page":"Solutions","title":"Solutions","text":"The sections below describe how to interpret typical or interesting status cases for three common classes of solvers. The example cases are illustrative, not comprehensive. Solver wrappers may provide additional information on how the solver's statuses map to MOI statuses.","category":"page"},{"location":"moi/manual/solutions/","page":"Solutions","title":"Solutions","text":"info: Info\n* in the tables indicate that multiple different values are possible.","category":"page"},{"location":"moi/manual/solutions/#Primal-dual-convex-solver","page":"Solutions","title":"Primal-dual convex solver","text":"","category":"section"},{"location":"moi/manual/solutions/","page":"Solutions","title":"Solutions","text":"Linear programming and conic optimization solvers fall into this category.","category":"page"},{"location":"moi/manual/solutions/","page":"Solutions","title":"Solutions","text":"What happened? TerminationStatus ResultCount PrimalStatus DualStatus\nProved optimality OPTIMAL 1 FEASIBLE_POINT FEASIBLE_POINT\nProved infeasible INFEASIBLE 1 NO_SOLUTION INFEASIBILITY_CERTIFICATE\nOptimal within relaxed tolerances ALMOST_OPTIMAL 1 FEASIBLE_POINT FEASIBLE_POINT\nOptimal within relaxed tolerances ALMOST_OPTIMAL 1 ALMOST_FEASIBLE_POINT ALMOST_FEASIBLE_POINT\nDetected an unbounded ray of the primal DUAL_INFEASIBLE 1 INFEASIBILITY_CERTIFICATE NO_SOLUTION\nStall SLOW_PROGRESS 1 * *","category":"page"},{"location":"moi/manual/solutions/#Global-branch-and-bound-solvers","page":"Solutions","title":"Global branch-and-bound solvers","text":"","category":"section"},{"location":"moi/manual/solutions/","page":"Solutions","title":"Solutions","text":"Mixed-integer programming solvers fall into this category.","category":"page"},{"location":"moi/manual/solutions/","page":"Solutions","title":"Solutions","text":"What happened? TerminationStatus ResultCount PrimalStatus DualStatus\nProved optimality OPTIMAL 1 FEASIBLE_POINT NO_SOLUTION\nPresolve detected infeasibility or unboundedness INFEASIBLE_OR_UNBOUNDED 0 NO_SOLUTION NO_SOLUTION\nProved infeasibility INFEASIBLE 0 NO_SOLUTION NO_SOLUTION\nTimed out (no solution) TIME_LIMIT 0 NO_SOLUTION NO_SOLUTION\nTimed out (with a solution) TIME_LIMIT 1 FEASIBLE_POINT NO_SOLUTION\nCPXMIP_OPTIMAL_INFEAS ALMOST_OPTIMAL 1 INFEASIBLE_POINT NO_SOLUTION","category":"page"},{"location":"moi/manual/solutions/","page":"Solutions","title":"Solutions","text":"info: Info\nCPXMIP_OPTIMAL_INFEAS is a CPLEX status that indicates that a preprocessed problem was solved to optimality, but the solver was unable to recover a feasible solution to the original problem. Handling this status was one of the motivating drivers behind the design of MOI.","category":"page"},{"location":"moi/manual/solutions/#Local-search-solvers","page":"Solutions","title":"Local search solvers","text":"","category":"section"},{"location":"moi/manual/solutions/","page":"Solutions","title":"Solutions","text":"Nonlinear programming solvers fall into this category. It also includes non-global tree search solvers like Juniper.","category":"page"},{"location":"moi/manual/solutions/","page":"Solutions","title":"Solutions","text":"What happened? TerminationStatus ResultCount PrimalStatus DualStatus\nConverged to a stationary point LOCALLY_SOLVED 1 FEASIBLE_POINT FEASIBLE_POINT\nCompleted a non-global tree search (with a solution) LOCALLY_SOLVED 1 FEASIBLE_POINT FEASIBLE_POINT\nConverged to an infeasible point LOCALLY_INFEASIBLE 1 INFEASIBLE_POINT *\nCompleted a non-global tree search (no solution found) LOCALLY_INFEASIBLE 0 NO_SOLUTION NO_SOLUTION\nIteration limit ITERATION_LIMIT 1 * *\nDiverging iterates NORM_LIMIT or OBJECTIVE_LIMIT 1 * *","category":"page"},{"location":"moi/manual/solutions/#Querying-solution-attributes","page":"Solutions","title":"Querying solution attributes","text":"","category":"section"},{"location":"moi/manual/solutions/","page":"Solutions","title":"Solutions","text":"Some solvers will not implement every solution attribute. Therefore, a call like MOI.get(model, MOI.SolveTimeSec()) may throw an UnsupportedAttribute error.","category":"page"},{"location":"moi/manual/solutions/","page":"Solutions","title":"Solutions","text":"If you need to write code that is agnostic to the solver (for example, you are writing a library that an end-user passes their choice of solver to), you can work-around this problem using a try-catch:","category":"page"},{"location":"moi/manual/solutions/","page":"Solutions","title":"Solutions","text":"function get_solve_time(model)\n try\n return MOI.get(model, MOI.SolveTimeSec())\n catch err\n if err isa MOI.UnsupportedAttribute\n return NaN # Solver doesn't support. Return a placeholder value.\n end\n rethrow(err) # Something else went wrong. Rethrow the error\n end\nend","category":"page"},{"location":"moi/manual/solutions/","page":"Solutions","title":"Solutions","text":"If, after careful profiling, you find that the try-catch is taking a significant portion of your runtime, you can improve performance by caching the result of the try-catch:","category":"page"},{"location":"moi/manual/solutions/","page":"Solutions","title":"Solutions","text":"mutable struct CachedSolveTime{M}\n model::M\n supports_solve_time::Bool\n CachedSolveTime(model::M) where {M} = new(model, true)\nend\n\nfunction get_solve_time(model::CachedSolveTime)\n if !model.supports_solve_time\n return NaN\n end\n try\n return MOI.get(model, MOI.SolveTimeSec())\n catch err\n if err isa MOI.UnsupportedAttribute\n model.supports_solve_time = false\n return NaN\n end\n rethrow(err) # Something else went wrong. Rethrow the error\n end\nend","category":"page"},{"location":"tutorials/getting_started/introduction/#Introduction","page":"Introduction","title":"Introduction","text":"","category":"section"},{"location":"tutorials/getting_started/introduction/","page":"Introduction","title":"Introduction","text":"The purpose of these \"Getting started\" tutorials is to teach new users the basics of Julia and JuMP.","category":"page"},{"location":"tutorials/getting_started/introduction/#How-these-tutorials-are-structured","page":"Introduction","title":"How these tutorials are structured","text":"","category":"section"},{"location":"tutorials/getting_started/introduction/","page":"Introduction","title":"Introduction","text":"Having a high-level overview of how this part of the documentation is structured will help you know where to look for certain things.","category":"page"},{"location":"tutorials/getting_started/introduction/","page":"Introduction","title":"Introduction","text":"The \"Getting started with\" tutorials are basic introductions to different aspects of JuMP and Julia. If you are new to JuMP and Julia, start by reading them in the following order:\nGetting started with Julia\nGetting started with JuMP\nGetting started with sets and indexing\nGetting started with data and plotting\nJulia has a reputation for being \"fast.\" Unfortunately, it is also easy to write slow Julia code. Performance tips contains a number of important tips on how to improve the performance of models you write in JuMP.\nDesign patterns for larger models is a more advanced tutorial that is aimed at users writing large JuMP models. It's in the \"Getting started\" section to give you an early preview of how JuMP makes it easy to structure larger models. If you are new to JuMP you may want to skip or briefly skim this tutorial, and come back to it once you have written a few JuMP models.","category":"page"},{"location":"tutorials/applications/two_stage_stochastic/","page":"Two-stage stochastic programs","title":"Two-stage stochastic programs","text":"EditURL = \"two_stage_stochastic.jl\"","category":"page"},{"location":"tutorials/applications/two_stage_stochastic/#Two-stage-stochastic-programs","page":"Two-stage stochastic programs","title":"Two-stage stochastic programs","text":"","category":"section"},{"location":"tutorials/applications/two_stage_stochastic/","page":"Two-stage stochastic programs","title":"Two-stage stochastic programs","text":"This tutorial was generated using Literate.jl. Download the source as a .jl file.","category":"page"},{"location":"tutorials/applications/two_stage_stochastic/","page":"Two-stage stochastic programs","title":"Two-stage stochastic programs","text":"The purpose of this tutorial is to demonstrate how to model and solve a two-stage stochastic program.","category":"page"},{"location":"tutorials/applications/two_stage_stochastic/","page":"Two-stage stochastic programs","title":"Two-stage stochastic programs","text":"This tutorial uses the following packages","category":"page"},{"location":"tutorials/applications/two_stage_stochastic/","page":"Two-stage stochastic programs","title":"Two-stage stochastic programs","text":"using JuMP\nimport Distributions\nimport HiGHS\nimport Plots\nimport StatsPlots\nimport Statistics","category":"page"},{"location":"tutorials/applications/two_stage_stochastic/#Background","page":"Two-stage stochastic programs","title":"Background","text":"","category":"section"},{"location":"tutorials/applications/two_stage_stochastic/","page":"Two-stage stochastic programs","title":"Two-stage stochastic programs","text":"During the week, you are a busy practitioner of Operations Research. To escape the drudgery of mathematics, you decide to open a side business selling creamy mushroom pies with puff pastry. After a few weeks, it quickly becomes apparent that operating a food business is not so easy.","category":"page"},{"location":"tutorials/applications/two_stage_stochastic/","page":"Two-stage stochastic programs","title":"Two-stage stochastic programs","text":"The pies must be prepared in the morning, before you open for the day and can gauge the level of demand. If you bake too many, the unsold pies at the end of the day must be discarded and you have wasted time and money on their production. But if you bake too few, then there may be un-served customers and you could have made more money by baking more pies.","category":"page"},{"location":"tutorials/applications/two_stage_stochastic/","page":"Two-stage stochastic programs","title":"Two-stage stochastic programs","text":"After a few weeks of poor decision making, you decide to put your knowledge of Operations Research to good use, starting with some data collection.","category":"page"},{"location":"tutorials/applications/two_stage_stochastic/","page":"Two-stage stochastic programs","title":"Two-stage stochastic programs","text":"Each pie costs you $2 to make, and you sell them at $5 each. Disposal of an unsold pie costs $0.10. Based on three weeks of data collected, in which you made 200 pies each week, you sold 150, 190, and 200 pies. Thus, as a guess, you assume a triangular distribution of demand with a minimum of 150, a median of 200, and a maximum of 250.","category":"page"},{"location":"tutorials/applications/two_stage_stochastic/","page":"Two-stage stochastic programs","title":"Two-stage stochastic programs","text":"We can model this problem by a two-stage stochastic program. In the first stage, we decide a quantity of pies to make x. We make this decision before we observe the demand d_omega. In the second stage, we sell y_omega pies, and incur any costs for unsold pies.","category":"page"},{"location":"tutorials/applications/two_stage_stochastic/","page":"Two-stage stochastic programs","title":"Two-stage stochastic programs","text":"We can formulate this problem as follows:","category":"page"},{"location":"tutorials/applications/two_stage_stochastic/","page":"Two-stage stochastic programs","title":"Two-stage stochastic programs","text":"beginaligned\nmaxlimits_xy_omega -2x + mathbbE_omega5y_omega - 01(x - y_omega) \n y_omega le x quad forall omega in Omega \n 0 le y_omega le d_omega quad forall omega in Omega \n x ge 0\nendaligned","category":"page"},{"location":"tutorials/applications/two_stage_stochastic/#Sample-Average-approximation","page":"Two-stage stochastic programs","title":"Sample Average approximation","text":"","category":"section"},{"location":"tutorials/applications/two_stage_stochastic/","page":"Two-stage stochastic programs","title":"Two-stage stochastic programs","text":"If the distribution of demand is continuous, then our problem has an infinite number of variables and constraints. To form a computationally tractable problem, we instead use a finite set of samples drawn from the distribution. This is called sample average approximation (SAA).","category":"page"},{"location":"tutorials/applications/two_stage_stochastic/","page":"Two-stage stochastic programs","title":"Two-stage stochastic programs","text":"D = Distributions.TriangularDist(150.0, 250.0, 200.0)\nN = 100\nd = sort!(rand(D, N));\nΩ = 1:N\nP = fill(1 / N, N);\nStatsPlots.histogram(d; bins = 20, label = \"\", xlabel = \"Demand\")","category":"page"},{"location":"tutorials/applications/two_stage_stochastic/#JuMP-model","page":"Two-stage stochastic programs","title":"JuMP model","text":"","category":"section"},{"location":"tutorials/applications/two_stage_stochastic/","page":"Two-stage stochastic programs","title":"Two-stage stochastic programs","text":"The implementation of our two-stage stochastic program in JuMP is:","category":"page"},{"location":"tutorials/applications/two_stage_stochastic/","page":"Two-stage stochastic programs","title":"Two-stage stochastic programs","text":"model = Model(HiGHS.Optimizer)\nset_silent(model)\n@variable(model, x >= 0)\n@variable(model, 0 <= y[ω in Ω] <= d[ω])\n@constraint(model, [ω in Ω], y[ω] <= x)\n@expression(model, z[ω in Ω], 5y[ω] - 0.1 * (x - y[ω]))\n@objective(model, Max, -2x + sum(P[ω] * z[ω] for ω in Ω))\noptimize!(model)\nsolution_summary(model)","category":"page"},{"location":"tutorials/applications/two_stage_stochastic/","page":"Two-stage stochastic programs","title":"Two-stage stochastic programs","text":"The optimal number of pies to make is:","category":"page"},{"location":"tutorials/applications/two_stage_stochastic/","page":"Two-stage stochastic programs","title":"Two-stage stochastic programs","text":"value(x)","category":"page"},{"location":"tutorials/applications/two_stage_stochastic/","page":"Two-stage stochastic programs","title":"Two-stage stochastic programs","text":"The distribution of total profit is:","category":"page"},{"location":"tutorials/applications/two_stage_stochastic/","page":"Two-stage stochastic programs","title":"Two-stage stochastic programs","text":"total_profit = [-2 * value(x) + value(z[ω]) for ω in Ω]","category":"page"},{"location":"tutorials/applications/two_stage_stochastic/","page":"Two-stage stochastic programs","title":"Two-stage stochastic programs","text":"Let's plot it:","category":"page"},{"location":"tutorials/applications/two_stage_stochastic/","page":"Two-stage stochastic programs","title":"Two-stage stochastic programs","text":"\"\"\"\n bin_distribution(x::Vector{Float64}, N::Int)\n\nA helper function that discretizes `x` into bins of width `N`.\n\"\"\"\nbin_distribution(x, N) = N * (floor(minimum(x) / N):ceil(maximum(x) / N))\n\nplot = StatsPlots.histogram(\n total_profit;\n bins = bin_distribution(total_profit, 25),\n label = \"\",\n xlabel = \"Profit [\\$]\",\n ylabel = \"Number of outcomes\",\n)\nμ = Statistics.mean(total_profit)\nPlots.vline!(\n plot,\n [μ];\n label = \"Expected profit (\\$$(round(Int, μ)))\",\n linewidth = 3,\n)\nplot","category":"page"},{"location":"tutorials/applications/two_stage_stochastic/#Risk-measures","page":"Two-stage stochastic programs","title":"Risk measures","text":"","category":"section"},{"location":"tutorials/applications/two_stage_stochastic/","page":"Two-stage stochastic programs","title":"Two-stage stochastic programs","text":"A risk measure is a function which maps a random variable to a real number. Common risk measures include the mean (expectation), median, mode, and maximum. We need a risk measure to convert the distribution of second stage costs into a single number that can be optimized.","category":"page"},{"location":"tutorials/applications/two_stage_stochastic/","page":"Two-stage stochastic programs","title":"Two-stage stochastic programs","text":"Our model currently uses the expectation risk measure, but others are possible too. One popular risk measure is the conditional value at risk (CVaR).","category":"page"},{"location":"tutorials/applications/two_stage_stochastic/","page":"Two-stage stochastic programs","title":"Two-stage stochastic programs","text":"CVaR has a parameter gamma, and it computes the expectation of the worst gamma fraction of outcomes.","category":"page"},{"location":"tutorials/applications/two_stage_stochastic/","page":"Two-stage stochastic programs","title":"Two-stage stochastic programs","text":"If we are maximizing, so that small outcomes are bad, the definition of CVaR is:","category":"page"},{"location":"tutorials/applications/two_stage_stochastic/","page":"Two-stage stochastic programs","title":"Two-stage stochastic programs","text":"CVaR_gammaZ = maxlimits_xi xi - frac1gammamathbbE_omegaleft(xi - Z)_+right","category":"page"},{"location":"tutorials/applications/two_stage_stochastic/","page":"Two-stage stochastic programs","title":"Two-stage stochastic programs","text":"which can be formulated as the linear program:","category":"page"},{"location":"tutorials/applications/two_stage_stochastic/","page":"Two-stage stochastic programs","title":"Two-stage stochastic programs","text":"beginaligned\nCVaR_gammaZ = maxlimits_xi z_omega xi - frac1gammasum P_omega z_omega\n z_omega ge xi - Z_omega quad forall omega \n z_omega ge 0 quad forall omega\nendaligned","category":"page"},{"location":"tutorials/applications/two_stage_stochastic/","page":"Two-stage stochastic programs","title":"Two-stage stochastic programs","text":"function CVaR(Z::Vector{Float64}, P::Vector{Float64}; γ::Float64)\n @assert 0 < γ <= 1\n N = length(Z)\n model = Model(HiGHS.Optimizer)\n set_silent(model)\n @variable(model, ξ)\n @variable(model, z[1:N] >= 0)\n @constraint(model, [i in 1:N], z[i] >= ξ - Z[i])\n @objective(model, Max, ξ - 1 / γ * sum(P[i] * z[i] for i in 1:N))\n optimize!(model)\n return objective_value(model)\nend","category":"page"},{"location":"tutorials/applications/two_stage_stochastic/","page":"Two-stage stochastic programs","title":"Two-stage stochastic programs","text":"When γ is 1.0, we compute the mean of the profit:","category":"page"},{"location":"tutorials/applications/two_stage_stochastic/","page":"Two-stage stochastic programs","title":"Two-stage stochastic programs","text":"cvar_10 = CVaR(total_profit, P; γ = 1.0)","category":"page"},{"location":"tutorials/applications/two_stage_stochastic/","page":"Two-stage stochastic programs","title":"Two-stage stochastic programs","text":"Statistics.mean(total_profit)","category":"page"},{"location":"tutorials/applications/two_stage_stochastic/","page":"Two-stage stochastic programs","title":"Two-stage stochastic programs","text":"As γ approaches 0.0, we compute the worst-case (minimum) profit:","category":"page"},{"location":"tutorials/applications/two_stage_stochastic/","page":"Two-stage stochastic programs","title":"Two-stage stochastic programs","text":"cvar_00 = CVaR(total_profit, P; γ = 0.0001)","category":"page"},{"location":"tutorials/applications/two_stage_stochastic/","page":"Two-stage stochastic programs","title":"Two-stage stochastic programs","text":"minimum(total_profit)","category":"page"},{"location":"tutorials/applications/two_stage_stochastic/","page":"Two-stage stochastic programs","title":"Two-stage stochastic programs","text":"By varying γ between 0 and 1 we can compute some trade-off of these two extremes:","category":"page"},{"location":"tutorials/applications/two_stage_stochastic/","page":"Two-stage stochastic programs","title":"Two-stage stochastic programs","text":"cvar_05 = CVaR(total_profit, P; γ = 0.5)","category":"page"},{"location":"tutorials/applications/two_stage_stochastic/","page":"Two-stage stochastic programs","title":"Two-stage stochastic programs","text":"Let's plot these outcomes on our distribution:","category":"page"},{"location":"tutorials/applications/two_stage_stochastic/","page":"Two-stage stochastic programs","title":"Two-stage stochastic programs","text":"plot = StatsPlots.histogram(\n total_profit;\n bins = bin_distribution(total_profit, 25),\n label = \"\",\n xlabel = \"Profit [\\$]\",\n ylabel = \"Number of outcomes\",\n)\nPlots.vline!(\n plot,\n [cvar_10 cvar_05 cvar_00];\n label = [\"γ = 1.0\" \"γ = 0.5\" \"γ = 0.0\"],\n linewidth = 3,\n)\nplot","category":"page"},{"location":"tutorials/applications/two_stage_stochastic/#Risk-averse-sample-average-approximation","page":"Two-stage stochastic programs","title":"Risk averse sample average approximation","text":"","category":"section"},{"location":"tutorials/applications/two_stage_stochastic/","page":"Two-stage stochastic programs","title":"Two-stage stochastic programs","text":"Because CVaR can be formulated as a linear program, we can form a risk averse sample average approximation model by combining the two formulations:","category":"page"},{"location":"tutorials/applications/two_stage_stochastic/","page":"Two-stage stochastic programs","title":"Two-stage stochastic programs","text":"γ = 0.4\nmodel = Model(HiGHS.Optimizer)\nset_silent(model)\n@variable(model, x >= 0)\n@variable(model, 0 <= y[ω in Ω] <= d[ω])\n@constraint(model, [ω in Ω], y[ω] <= x)\n@expression(model, Z[ω in Ω], 5 * y[ω] - 0.1(x - y[ω]))\n@variable(model, ξ)\n@variable(model, z[ω in Ω] >= 0)\n@constraint(model, [ω in Ω], z[ω] >= ξ - Z[ω])\n@objective(model, Max, -2x + ξ - 1 / γ * sum(P[ω] * z[ω] for ω in Ω))\noptimize!(model)","category":"page"},{"location":"tutorials/applications/two_stage_stochastic/","page":"Two-stage stochastic programs","title":"Two-stage stochastic programs","text":"When gamma = 04, the optimal number of pies to bake is:","category":"page"},{"location":"tutorials/applications/two_stage_stochastic/","page":"Two-stage stochastic programs","title":"Two-stage stochastic programs","text":"value(x)","category":"page"},{"location":"tutorials/applications/two_stage_stochastic/","page":"Two-stage stochastic programs","title":"Two-stage stochastic programs","text":"The distribution of total profit is:","category":"page"},{"location":"tutorials/applications/two_stage_stochastic/","page":"Two-stage stochastic programs","title":"Two-stage stochastic programs","text":"risk_averse_total_profit = [value(-2x + Z[ω]) for ω in Ω]\nbins = bin_distribution([total_profit; risk_averse_total_profit], 25)\nplot = StatsPlots.histogram(total_profit; label = \"Expectation\", bins = bins)\nStatsPlots.histogram!(\n plot,\n risk_averse_total_profit;\n label = \"CV@R\",\n bins = bins,\n alpha = 0.5,\n)\nplot","category":"page"},{"location":"tutorials/applications/two_stage_stochastic/#Next-steps","page":"Two-stage stochastic programs","title":"Next steps","text":"","category":"section"},{"location":"tutorials/applications/two_stage_stochastic/","page":"Two-stage stochastic programs","title":"Two-stage stochastic programs","text":"Try solving this problem for different numbers of samples and different distributions.\nRefactor the example to avoid hard-coding the costs. What happens to the solution if the cost of disposing unsold pies increases?\nPlot the optimal number of pies to make for different values of the risk aversion parameter gamma. What is the relationship?","category":"page"},{"location":"packages/solvers/#Introduction","page":"Introduction","title":"Introduction","text":"","category":"section"},{"location":"packages/solvers/","page":"Introduction","title":"Introduction","text":"This section of the documentation contains brief documentation for some of the solvers that JuMP supports. The list of solvers is not exhaustive, but instead is intended to help you discover commonly used solvers.","category":"page"},{"location":"packages/solvers/#Affiliation","page":"Introduction","title":"Affiliation","text":"","category":"section"},{"location":"packages/solvers/","page":"Introduction","title":"Introduction","text":"Packages beginning with jump-dev/ are developed and maintained by the JuMP developers. In many cases, these packages wrap external solvers that are not developed by the JuMP developers and, while the Julia packages are all open-source, in some cases the solvers themselves are closed source commercial products.","category":"page"},{"location":"packages/solvers/","page":"Introduction","title":"Introduction","text":"Packages that do not begin with jump-dev/ are developed independently. The developers of these packages requested or consented to the inclusion of their README contents in the JuMP documentation for the benefit of users.","category":"page"},{"location":"packages/solvers/#Adding-new-solvers","page":"Introduction","title":"Adding new solvers","text":"","category":"section"},{"location":"packages/solvers/","page":"Introduction","title":"Introduction","text":"Written a solver? Add it to this section of the JuMP documentation by making a pull request to the docs/packages.toml file.","category":"page"},{"location":"moi/reference/models/","page":"Models","title":"Models","text":"EditURL = \"https://github.com/jump-dev/MathOptInterface.jl/blob/v1.20.1/docs/src/reference/models.md\"","category":"page"},{"location":"moi/reference/models/","page":"Models","title":"Models","text":"CurrentModule = MathOptInterface\nDocTestSetup = quote\n import MathOptInterface as MOI\nend\nDocTestFilters = [r\"MathOptInterface|MOI\"]","category":"page"},{"location":"moi/reference/models/#Models","page":"Models","title":"Models","text":"","category":"section"},{"location":"moi/reference/models/#Attribute-interface","page":"Models","title":"Attribute interface","text":"","category":"section"},{"location":"moi/reference/models/","page":"Models","title":"Models","text":"is_set_by_optimize\nis_copyable\nget\nget!\nset\nsupports\nattribute_value_type","category":"page"},{"location":"moi/reference/models/#MathOptInterface.is_set_by_optimize","page":"Models","title":"MathOptInterface.is_set_by_optimize","text":"is_set_by_optimize(::AnyAttribute)\n\nReturn a Bool indicating whether the value of the attribute is modified during an optimize! call, that is, the attribute is used to query the result of the optimization.\n\nImportant note when defining new attributes\n\nThis function returns false by default so it should be implemented for attributes that are modified by optimize!.\n\n\n\n\n\n","category":"function"},{"location":"moi/reference/models/#MathOptInterface.is_copyable","page":"Models","title":"MathOptInterface.is_copyable","text":"is_copyable(::AnyAttribute)\n\nReturn a Bool indicating whether the value of the attribute may be copied during copy_to using set.\n\nImportant note when defining new attributes\n\nBy default is_copyable(attr) returns !is_set_by_optimize(attr). A specific method should be defined for attributes which are copied indirectly during copy_to. For instance, both is_copyable and is_set_by_optimize return false for the following attributes:\n\nListOfOptimizerAttributesSet, ListOfModelAttributesSet, ListOfConstraintAttributesSet and ListOfVariableAttributesSet.\nSolverName and RawSolver: these attributes cannot be set.\nNumberOfVariables and ListOfVariableIndices: these attributes are set indirectly by add_variable and add_variables.\nObjectiveFunctionType: this attribute is set indirectly when setting the ObjectiveFunction attribute.\nNumberOfConstraints, ListOfConstraintIndices, ListOfConstraintTypesPresent, CanonicalConstraintFunction, ConstraintFunction and ConstraintSet: these attributes are set indirectly by add_constraint and add_constraints.\n\n\n\n\n\n","category":"function"},{"location":"moi/reference/models/#MathOptInterface.get","page":"Models","title":"MathOptInterface.get","text":"get(optimizer::AbstractOptimizer, attr::AbstractOptimizerAttribute)\n\nReturn an attribute attr of the optimizer optimizer.\n\nget(model::ModelLike, attr::AbstractModelAttribute)\n\nReturn an attribute attr of the model model.\n\nget(model::ModelLike, attr::AbstractVariableAttribute, v::VariableIndex)\n\nIf the attribute attr is set for the variable v in the model model, return its value, return nothing otherwise. If the attribute attr is not supported by model then an error should be thrown instead of returning nothing.\n\nget(model::ModelLike, attr::AbstractVariableAttribute, v::Vector{VariableIndex})\n\nReturn a vector of attributes corresponding to each variable in the collection v in the model model.\n\nget(model::ModelLike, attr::AbstractConstraintAttribute, c::ConstraintIndex)\n\nIf the attribute attr is set for the constraint c in the model model, return its value, return nothing otherwise. If the attribute attr is not supported by model then an error should be thrown instead of returning nothing.\n\nget(\n model::ModelLike,\n attr::AbstractConstraintAttribute,\n c::Vector{ConstraintIndex{F,S}},\n) where {F,S}\n\nReturn a vector of attributes corresponding to each constraint in the collection c in the model model.\n\nget(model::ModelLike, ::Type{VariableIndex}, name::String)\n\nIf a variable with name name exists in the model model, return the corresponding index, otherwise return nothing. Errors if two variables have the same name.\n\nget(\n model::ModelLike,\n ::Type{ConstraintIndex{F,S}},\n name::String,\n) where {F,S}\n\nIf an F-in-S constraint with name name exists in the model model, return the corresponding index, otherwise return nothing. Errors if two constraints have the same name.\n\nget(model::ModelLike, ::Type{ConstraintIndex}, name::String)\n\nIf any constraint with name name exists in the model model, return the corresponding index, otherwise return nothing. This version is available for convenience but may incur a performance penalty because it is not type stable. Errors if two constraints have the same name.\n\n\n\n\n\nget(model::GenericModel, attr::MathOptInterface.AbstractOptimizerAttribute)\n\nReturn the value of the attribute attr from the model's MOI backend.\n\n\n\n\n\nget(model::GenericModel, attr::MathOptInterface.AbstractModelAttribute)\n\nReturn the value of the attribute attr from the model's MOI backend.\n\n\n\n\n\nMOI.get(b::AbstractBridge, ::MOI.NumberOfVariables)::Int64\n\nReturn the number of variables created by the bridge b in the model.\n\nSee also MOI.NumberOfConstraints.\n\nImplementation notes\n\nThere is a default fallback, so you need only implement this if the bridge adds new variables.\n\n\n\n\n\nMOI.get(b::AbstractBridge, ::MOI.ListOfVariableIndices)\n\nReturn the list of variables created by the bridge b.\n\nSee also MOI.ListOfVariableIndices.\n\nImplementation notes\n\nThere is a default fallback, so you need only implement this if the bridge adds new variables.\n\n\n\n\n\nMOI.get(b::AbstractBridge, ::MOI.NumberOfConstraints{F,S})::Int64 where {F,S}\n\nReturn the number of constraints of the type F-in-S created by the bridge b.\n\nSee also MOI.NumberOfConstraints.\n\nImplementation notes\n\nThere is a default fallback, so you need only implement this for the constraint types returned by added_constraint_types.\n\n\n\n\n\nMOI.get(b::AbstractBridge, ::MOI.ListOfConstraintIndices{F,S}) where {F,S}\n\nReturn a Vector{ConstraintIndex{F,S}} with indices of all constraints of type F-in-S created by the bride b.\n\nSee also MOI.ListOfConstraintIndices.\n\nImplementation notes\n\nThere is a default fallback, so you need only implement this for the constraint types returned by added_constraint_types.\n\n\n\n\n\nfunction MOI.get(\n model::MOI.ModelLike,\n attr::MOI.AbstractConstraintAttribute,\n bridge::AbstractBridge,\n)\n\nReturn the value of the attribute attr of the model model for the constraint bridged by bridge.\n\n\n\n\n\n","category":"function"},{"location":"moi/reference/models/#MathOptInterface.get!","page":"Models","title":"MathOptInterface.get!","text":"get!(output, model::ModelLike, args...)\n\nAn in-place version of get.\n\nThe signature matches that of get except that the the result is placed in the vector output.\n\n\n\n\n\n","category":"function"},{"location":"moi/reference/models/#MathOptInterface.set","page":"Models","title":"MathOptInterface.set","text":"set(optimizer::AbstractOptimizer, attr::AbstractOptimizerAttribute, value)\n\nAssign value to the attribute attr of the optimizer optimizer.\n\nset(model::ModelLike, attr::AbstractModelAttribute, value)\n\nAssign value to the attribute attr of the model model.\n\nset(model::ModelLike, attr::AbstractVariableAttribute, v::VariableIndex, value)\n\nAssign value to the attribute attr of variable v in model model.\n\nset(\n model::ModelLike,\n attr::AbstractVariableAttribute,\n v::Vector{VariableIndex},\n vector_of_values,\n)\n\nAssign a value respectively to the attribute attr of each variable in the collection v in model model.\n\nset(\n model::ModelLike,\n attr::AbstractConstraintAttribute,\n c::ConstraintIndex,\n value,\n)\n\nAssign a value to the attribute attr of constraint c in model model.\n\nset(\n model::ModelLike,\n attr::AbstractConstraintAttribute,\n c::Vector{ConstraintIndex{F,S}},\n vector_of_values,\n) where {F,S}\n\nAssign a value respectively to the attribute attr of each constraint in the collection c in model model.\n\nAn UnsupportedAttribute error is thrown if model does not support the attribute attr (see supports) and a SetAttributeNotAllowed error is thrown if it supports the attribute attr but it cannot be set.\n\nset(\n model::ModelLike,\n ::ConstraintSet,\n c::ConstraintIndex{F,S},\n set::S,\n) where {F,S}\n\nChange the set of constraint c to the new set set which should be of the same type as the original set.\n\nset(\n model::ModelLike,\n ::ConstraintFunction,\n c::ConstraintIndex{F,S},\n func::F,\n) where {F,S}\n\nReplace the function in constraint c with func. F must match the original function type used to define the constraint.\n\nnote: Note\nSetting the constraint function is not allowed if F is VariableIndex; a SettingVariableIndexNotAllowed error is thrown instead. This is because, it would require changing the index c since the index of VariableIndex constraints must be the same as the index of the variable.\n\n\n\n\n\nfunction MOI.set(\n model::MOI.ModelLike,\n attr::MOI.AbstractConstraintAttribute,\n bridge::AbstractBridge,\n value,\n)\n\nSet the value of the attribute attr of the model model for the constraint bridged by bridge.\n\n\n\n\n\n","category":"function"},{"location":"moi/reference/models/#MathOptInterface.supports","page":"Models","title":"MathOptInterface.supports","text":"supports(model::ModelLike, sub::AbstractSubmittable)::Bool\n\nReturn a Bool indicating whether model supports the submittable sub.\n\nsupports(model::ModelLike, attr::AbstractOptimizerAttribute)::Bool\n\nReturn a Bool indicating whether model supports the optimizer attribute attr. That is, it returns false if copy_to(model, src) shows a warning in case attr is in the ListOfOptimizerAttributesSet of src; see copy_to for more details on how unsupported optimizer attributes are handled in copy.\n\nsupports(model::ModelLike, attr::AbstractModelAttribute)::Bool\n\nReturn a Bool indicating whether model supports the model attribute attr. That is, it returns false if copy_to(model, src) cannot be performed in case attr is in the ListOfModelAttributesSet of src.\n\nsupports(\n model::ModelLike,\n attr::AbstractVariableAttribute,\n ::Type{VariableIndex},\n)::Bool\n\nReturn a Bool indicating whether model supports the variable attribute attr. That is, it returns false if copy_to(model, src) cannot be performed in case attr is in the ListOfVariableAttributesSet of src.\n\nsupports(\n model::ModelLike,\n attr::AbstractConstraintAttribute,\n ::Type{ConstraintIndex{F,S}},\n)::Bool where {F,S}\n\nReturn a Bool indicating whether model supports the constraint attribute attr applied to an F-in-S constraint. That is, it returns false if copy_to(model, src) cannot be performed in case attr is in the ListOfConstraintAttributesSet of src.\n\nFor all five methods, if the attribute is only not supported in specific circumstances, it should still return true.\n\nNote that supports is only defined for attributes for which is_copyable returns true as other attributes do not appear in the list of attributes set obtained by ListOf...AttributesSet.\n\n\n\n\n\nMOI.supports(\n model::MOI.ModelLike,\n attr::MOI.AbstractConstraintAttribute,\n BT::Type{<:AbstractBridge},\n)\n\nReturn a Bool indicating whether BT supports setting attr to model.\n\n\n\n\n\n","category":"function"},{"location":"moi/reference/models/#MathOptInterface.attribute_value_type","page":"Models","title":"MathOptInterface.attribute_value_type","text":"attribute_value_type(attr::AnyAttribute)\n\nGiven an attribute attr, return the type of value expected by get, or returned by set.\n\nNotes\n\nOnly implement this if it make sense to do so. If un-implemented, the default is Any.\n\n\n\n\n\n","category":"function"},{"location":"moi/reference/models/#Model-interface","page":"Models","title":"Model interface","text":"","category":"section"},{"location":"moi/reference/models/","page":"Models","title":"Models","text":"ModelLike\nis_empty\nempty!\nwrite_to_file\nread_from_file\nsupports_incremental_interface\ncopy_to\nIndexMap","category":"page"},{"location":"moi/reference/models/#MathOptInterface.ModelLike","page":"Models","title":"MathOptInterface.ModelLike","text":"ModelLike\n\nAbstract supertype for objects that implement the \"Model\" interface for defining an optimization problem.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/models/#MathOptInterface.is_empty","page":"Models","title":"MathOptInterface.is_empty","text":"is_empty(model::ModelLike)\n\nReturns false if the model has any model attribute set or has any variables or constraints.\n\nNote that an empty model can have optimizer attributes set.\n\n\n\n\n\n","category":"function"},{"location":"moi/reference/models/#MathOptInterface.empty!","page":"Models","title":"MathOptInterface.empty!","text":"empty!(model::ModelLike)\n\nEmpty the model, that is, remove all variables, constraints and model attributes but not optimizer attributes.\n\n\n\n\n\n","category":"function"},{"location":"moi/reference/models/#MathOptInterface.write_to_file","page":"Models","title":"MathOptInterface.write_to_file","text":"write_to_file(model::ModelLike, filename::String)\n\nWrite the current model to the file at filename.\n\nSupported file types depend on the model type.\n\n\n\n\n\n","category":"function"},{"location":"moi/reference/models/#MathOptInterface.read_from_file","page":"Models","title":"MathOptInterface.read_from_file","text":"read_from_file(model::ModelLike, filename::String)\n\nRead the file filename into the model model. If model is non-empty, this may throw an error.\n\nSupported file types depend on the model type.\n\nNote\n\nOnce the contents of the file are loaded into the model, users can query the variables via get(model, ListOfVariableIndices()). However, some filetypes, such as LP files, do not maintain an explicit ordering of the variables. Therefore, the returned list may be in an arbitrary order.\n\nTo avoid depending on the order of the indices, look up each variable index by name using get(model, VariableIndex, \"name\").\n\n\n\n\n\n","category":"function"},{"location":"moi/reference/models/#MathOptInterface.supports_incremental_interface","page":"Models","title":"MathOptInterface.supports_incremental_interface","text":"supports_incremental_interface(model::ModelLike)\n\nReturn a Bool indicating whether model supports building incrementally via add_variable and add_constraint.\n\nThe main purpose of this function is to determine whether a model can be loaded into model incrementally or whether it should be cached and copied at once instead.\n\n\n\n\n\n","category":"function"},{"location":"moi/reference/models/#MathOptInterface.copy_to","page":"Models","title":"MathOptInterface.copy_to","text":"copy_to(dest::ModelLike, src::ModelLike)::IndexMap\n\nCopy the model from src into dest.\n\nThe target dest is emptied, and all previous indices to variables and constraints in dest are invalidated.\n\nReturns an IndexMap object that translates variable and constraint indices from the src model to the corresponding indices in the dest model.\n\nNotes\n\nIf a constraint that in src is not supported by dest, then an UnsupportedConstraint error is thrown.\nIf an AbstractModelAttribute, AbstractVariableAttribute, or AbstractConstraintAttribute is set in src but not supported by dest, then an UnsupportedAttribute error is thrown.\n\nAbstractOptimizerAttributes are not copied to the dest model.\n\nIndexMap\n\nImplementations of copy_to must return an IndexMap. For technical reasons, this type is defined in the Utilities submodule as MOI.Utilities.IndexMap. However, since it is an integral part of the MOI API, we provide MOI.IndexMap as an alias.\n\nExample\n\n# Given empty `ModelLike` objects `src` and `dest`.\n\nx = add_variable(src)\n\nis_valid(src, x) # true\nis_valid(dest, x) # false (`dest` has no variables)\n\nindex_map = copy_to(dest, src)\nis_valid(dest, x) # false (unless index_map[x] == x)\nis_valid(dest, index_map[x]) # true\n\n\n\n\n\n","category":"function"},{"location":"moi/reference/models/#MathOptInterface.IndexMap","page":"Models","title":"MathOptInterface.IndexMap","text":"IndexMap()\n\nThe dictionary-like object returned by copy_to.\n\nIndexMap\n\nImplementations of copy_to must return an IndexMap. For technical reasons, the IndexMap type is defined in the Utilities submodule as MOI.Utilities.IndexMap. However, since it is an integral part of the MOI API, we provide this MOI.IndexMap as an alias.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/models/#Model-attributes","page":"Models","title":"Model attributes","text":"","category":"section"},{"location":"moi/reference/models/","page":"Models","title":"Models","text":"AbstractModelAttribute\nName\nObjectiveFunction\nObjectiveFunctionType\nObjectiveSense\nOptimizationSense\nMIN_SENSE\nMAX_SENSE\nFEASIBILITY_SENSE\nNumberOfVariables\nListOfVariableIndices\nListOfConstraintTypesPresent\nNumberOfConstraints\nListOfConstraintIndices\nListOfOptimizerAttributesSet\nListOfModelAttributesSet\nListOfVariableAttributesSet\nListOfConstraintAttributesSet\nUserDefinedFunction\nListOfSupportedNonlinearOperators","category":"page"},{"location":"moi/reference/models/#MathOptInterface.AbstractModelAttribute","page":"Models","title":"MathOptInterface.AbstractModelAttribute","text":"AbstractModelAttribute\n\nAbstract supertype for attribute objects that can be used to set or get attributes (properties) of the model.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/models/#MathOptInterface.Name","page":"Models","title":"MathOptInterface.Name","text":"Name()\n\nA model attribute for the string identifying the model. It has a default value of \"\" if not set`.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/models/#MathOptInterface.ObjectiveFunction","page":"Models","title":"MathOptInterface.ObjectiveFunction","text":"ObjectiveFunction{F<:AbstractScalarFunction}()\n\nA model attribute for the objective function which has a type F<:AbstractScalarFunction.\n\nF should be guaranteed to be equivalent but not necessarily identical to the function type provided by the user.\n\nThrows an InexactError if the objective function cannot be converted to F, e.g., the objective function is quadratic and F is ScalarAffineFunction{Float64} or it has non-integer coefficient and F is ScalarAffineFunction{Int}.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/models/#MathOptInterface.ObjectiveFunctionType","page":"Models","title":"MathOptInterface.ObjectiveFunctionType","text":"ObjectiveFunctionType()\n\nA model attribute for the type F of the objective function set using the ObjectiveFunction{F} attribute.\n\nExamples\n\nIn the following code, attr should be equal to MOI.VariableIndex:\n\nx = MOI.add_variable(model)\nMOI.set(model, MOI.ObjectiveFunction{MOI.VariableIndex}(), x)\nattr = MOI.get(model, MOI.ObjectiveFunctionType())\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/models/#MathOptInterface.ObjectiveSense","page":"Models","title":"MathOptInterface.ObjectiveSense","text":"ObjectiveSense()\n\nA model attribute for the objective sense of the objective function, which must be an OptimizationSense: MIN_SENSE, MAX_SENSE, or FEASIBILITY_SENSE. The default is FEASIBILITY_SENSE.\n\nInteraction with ObjectiveFunction\n\nSetting the sense to FEASIBILITY_SENSE unsets the ObjectiveFunction attribute. That is, if you first set ObjectiveFunction and then set ObjectiveSense to be FEASIBILITY_SENSE, no objective function will be passed to the solver.\n\nIn addition, some reformulations of ObjectiveFunction via bridges rely on the value of ObjectiveSense. Therefore, you should set ObjectiveSense before setting ObjectiveFunction.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/models/#MathOptInterface.OptimizationSense","page":"Models","title":"MathOptInterface.OptimizationSense","text":"OptimizationSense\n\nAn enum for the value of the ObjectiveSense attribute.\n\nValues\n\nPossible values are:\n\nMIN_SENSE: the goal is to minimize the objective function\nMAX_SENSE: the goal is to maximize the objective function\nFEASIBILITY_SENSE: the model does not have an objective function\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/models/#MathOptInterface.MIN_SENSE","page":"Models","title":"MathOptInterface.MIN_SENSE","text":"MIN_SENSE::OptimizationSense\n\nAn instance of the OptimizationSense enum.\n\nMIN_SENSE: the goal is to minimize the objective function\n\n\n\n\n\n","category":"constant"},{"location":"moi/reference/models/#MathOptInterface.MAX_SENSE","page":"Models","title":"MathOptInterface.MAX_SENSE","text":"MAX_SENSE::OptimizationSense\n\nAn instance of the OptimizationSense enum.\n\nMAX_SENSE: the goal is to maximize the objective function\n\n\n\n\n\n","category":"constant"},{"location":"moi/reference/models/#MathOptInterface.FEASIBILITY_SENSE","page":"Models","title":"MathOptInterface.FEASIBILITY_SENSE","text":"FEASIBILITY_SENSE::OptimizationSense\n\nAn instance of the OptimizationSense enum.\n\nFEASIBILITY_SENSE: the model does not have an objective function\n\n\n\n\n\n","category":"constant"},{"location":"moi/reference/models/#MathOptInterface.NumberOfVariables","page":"Models","title":"MathOptInterface.NumberOfVariables","text":"NumberOfVariables()\n\nA model attribute for the number of variables in the model.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/models/#MathOptInterface.ListOfVariableIndices","page":"Models","title":"MathOptInterface.ListOfVariableIndices","text":"ListOfVariableIndices()\n\nA model attribute for the Vector{VariableIndex} of all variable indices present in the model (i.e., of length equal to the value of NumberOfVariables in the order in which they were added.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/models/#MathOptInterface.ListOfConstraintTypesPresent","page":"Models","title":"MathOptInterface.ListOfConstraintTypesPresent","text":"ListOfConstraintTypesPresent()\n\nA model attribute for the list of tuples of the form (F,S), where F is a function type and S is a set type indicating that the attribute NumberOfConstraints{F,S} has a value greater than zero.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/models/#MathOptInterface.NumberOfConstraints","page":"Models","title":"MathOptInterface.NumberOfConstraints","text":"NumberOfConstraints{F,S}()\n\nA model attribute for the number of constraints of the type F-in-S present in the model.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/models/#MathOptInterface.ListOfConstraintIndices","page":"Models","title":"MathOptInterface.ListOfConstraintIndices","text":"ListOfConstraintIndices{F,S}()\n\nA model attribute for the Vector{ConstraintIndex{F,S}} of all constraint indices of type F-in-S in the model (i.e., of length equal to the value of NumberOfConstraints{F,S}) in the order in which they were added.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/models/#MathOptInterface.ListOfOptimizerAttributesSet","page":"Models","title":"MathOptInterface.ListOfOptimizerAttributesSet","text":"ListOfOptimizerAttributesSet()\n\nAn optimizer attribute for the Vector{AbstractOptimizerAttribute} of all optimizer attributes that were set.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/models/#MathOptInterface.ListOfModelAttributesSet","page":"Models","title":"MathOptInterface.ListOfModelAttributesSet","text":"ListOfModelAttributesSet()\n\nA model attribute for the Vector{AbstractModelAttribute} of all model attributes attr such that:\n\nis_copyable(attr) returns true, and\nthe attribute was set to the model\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/models/#MathOptInterface.ListOfVariableAttributesSet","page":"Models","title":"MathOptInterface.ListOfVariableAttributesSet","text":"ListOfVariableAttributesSet()\n\nA model attribute for the Vector{AbstractVariableAttribute} of all variable attributes attr such that 1) is_copyable(attr) returns true and 2) the attribute was set to variables.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/models/#MathOptInterface.ListOfConstraintAttributesSet","page":"Models","title":"MathOptInterface.ListOfConstraintAttributesSet","text":"ListOfConstraintAttributesSet{F, S}()\n\nA model attribute for the Vector{AbstractConstraintAttribute} of all constraint attributes attr such that:\n\nis_copyable(attr) returns true and\nthe attribute was set to F-in-S constraints.\n\nNote\n\nThe attributes ConstraintFunction and ConstraintSet should not be included in the list even if then have been set with set.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/models/#MathOptInterface.UserDefinedFunction","page":"Models","title":"MathOptInterface.UserDefinedFunction","text":"UserDefinedFunction(name::Symbol, arity::Int) <: AbstractModelAttribute\n\nSet this attribute to register a user-defined function by the name of name with arity arguments.\n\nOnce registered, name will appear in ListOfSupportedNonlinearOperators.\n\nYou cannot register multiple UserDefinedFunctions with the same name but different arity.\n\nValue type\n\nThe value to be set is a tuple containing one, two, or three functions to evaluate the function, the first-order derivative, and the second-order derivative respectively. Both derivatives are optional, but if you pass the second-order derivative you must also pass the first-order derivative.\n\nFor univariate functions with arity == 1, the functions in the tuple must have the form:\n\nf(x::T)::T: returns the value of the function at x\n∇f(x::T)::T: returns the first-order derivative of f with respect to x\n∇²f(x::T)::T: returns the second-order derivative of f with respect to x.\n\nFor multivariate functions with arity > 1, the functions in the tuple must have the form:\n\nf(x::T...)::T: returns the value of the function at x\n∇f(g::AbstractVector{T}, x::T...)::Nothing: fills the components of g, with g[i] being the first-order partial derivative of f with respect to x[i]\n∇²f(H::AbstractMatrix{T}, x::T...)::Nothing: fills the non-zero components of H, with H[i, j] being the second-order partial derivative of f with respect to x[i] and then x[j]. H is initialized to the zero matrix, so you do not need to set any zero elements.\n\nExamples\n\njulia> import MathOptInterface as MOI\n\njulia> f(x, y) = x^2 + y^2\nf (generic function with 1 method)\n\njulia> function ∇f(g, x, y)\n g .= 2 * x, 2 * y\n return\n end\n∇f (generic function with 1 method)\n\njulia> function ∇²f(H, x...)\n H[1, 1] = H[2, 2] = 2.0\n return\n end\n∇²f (generic function with 1 method)\n\njulia> model = MOI.Utilities.UniversalFallback(MOI.Utilities.Model{Float64}())\nMOIU.UniversalFallback{MOIU.Model{Float64}}\nfallback for MOIU.Model{Float64}\n\njulia> MOI.set(model, MOI.UserDefinedFunction(:f, 2), (f,))\n\njulia> MOI.set(model, MOI.UserDefinedFunction(:g, 2), (f, ∇f))\n\njulia> MOI.set(model, MOI.UserDefinedFunction(:h, 2), (f, ∇f, ∇²f))\n\njulia> x = MOI.add_variables(model, 2)\n2-element Vector{MathOptInterface.VariableIndex}:\n MOI.VariableIndex(1)\n MOI.VariableIndex(2)\n\njulia> MOI.set(model, MOI.ObjectiveSense(), MOI.MIN_SENSE)\n\njulia> obj_f = MOI.ScalarNonlinearFunction(:f, Any[x[1], x[2]])\nf(MOI.VariableIndex(1), MOI.VariableIndex(2))\n\njulia> MOI.set(model, MOI.ObjectiveFunction{typeof(obj_f)}(), obj_f)\n\njulia> print(model)\nMinimize ScalarNonlinearFunction:\n f(v[1], v[2])\n\nSubject to:\n\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/models/#MathOptInterface.ListOfSupportedNonlinearOperators","page":"Models","title":"MathOptInterface.ListOfSupportedNonlinearOperators","text":"ListOfSupportedNonlinearOperators() <: AbstractModelAttribute\n\nWhen queried with get, return a Vector{Symbol} listing the operators supported by the model.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/models/#Optimizer-interface","page":"Models","title":"Optimizer interface","text":"","category":"section"},{"location":"moi/reference/models/","page":"Models","title":"Models","text":"AbstractOptimizer\nOptimizerWithAttributes\noptimize!\noptimize!(::ModelLike, ::ModelLike)\ninstantiate\ndefault_cache","category":"page"},{"location":"moi/reference/models/#MathOptInterface.AbstractOptimizer","page":"Models","title":"MathOptInterface.AbstractOptimizer","text":"AbstractOptimizer <: ModelLike\n\nAbstract supertype for objects representing an instance of an optimization problem tied to a particular solver. This is typically a solver's in-memory representation. In addition to ModelLike, AbstractOptimizer objects let you solve the model and query the solution.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/models/#MathOptInterface.OptimizerWithAttributes","page":"Models","title":"MathOptInterface.OptimizerWithAttributes","text":"struct OptimizerWithAttributes\n optimizer_constructor\n params::Vector{Pair{AbstractOptimizerAttribute,<:Any}}\nend\n\nObject grouping an optimizer constructor and a list of optimizer attributes. Instances are created with instantiate.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/models/#MathOptInterface.optimize!","page":"Models","title":"MathOptInterface.optimize!","text":"optimize!(optimizer::AbstractOptimizer)\n\nOptimize the problem contained in optimizer.\n\nBefore calling optimize!, the problem should first be constructed using the incremental interface (see supports_incremental_interface) or copy_to.\n\n\n\n\n\n","category":"function"},{"location":"moi/reference/models/#MathOptInterface.optimize!-Tuple{MathOptInterface.ModelLike, MathOptInterface.ModelLike}","page":"Models","title":"MathOptInterface.optimize!","text":"optimize!(dest::AbstractOptimizer, src::ModelLike)::Tuple{IndexMap,Bool}\n\nA \"one-shot\" call that copies the problem from src into dest and then uses dest to optimize the problem.\n\nReturns a tuple of an IndexMap and a Bool copied.\n\nThe IndexMap object translates variable and constraint indices from the src model to the corresponding indices in the dest optimizer. See copy_to for details.\nIf copied == true, src was copied to dest and then cached, allowing incremental modification if supported by the solver.\nIf copied == false, a cache of the model was not kept in dest. Therefore, only the solution information (attributes for which is_set_by_optimize is true) is available to query.\n\nnote: Note\nThe main purpose of optimize! method with two arguments is for use in Utilities.CachingOptimizer.\n\nRelationship to the single-argument optimize!\n\nThe default fallback of optimize!(dest::AbstractOptimizer, src::ModelLike) is\n\nfunction optimize!(dest::AbstractOptimizer, src::ModelLike)\n index_map = copy_to(dest, src)\n optimize!(dest)\n return index_map, true\nend\n\nTherefore, subtypes of AbstractOptimizer should either implement this two-argument method, or implement both copy_to(::Optimizer, ::ModelLike) and optimize!(::Optimizer).\n\n\n\n\n\n","category":"method"},{"location":"moi/reference/models/#MathOptInterface.instantiate","page":"Models","title":"MathOptInterface.instantiate","text":"instantiate(\n optimizer_constructor,\n with_cache_type::Union{Nothing,Type} = nothing,\n with_bridge_type::Union{Nothing,Type} = nothing,\n)\n\nCreate an instance of an optimizer by either:\n\ncalling optimizer_constructor.optimizer_constructor() and setting the parameters in optimizer_constructor.params if optimizer_constructor is a OptimizerWithAttributes\ncalling optimizer_constructor() if optimizer_constructor is callable.\n\nwithcachetype\n\nIf with_cache_type is not nothing, then the optimizer is wrapped in a Utilities.CachingOptimizer to store a cache of the model. This is most useful if the optimizer you are constructing does not support the incremental interface (see supports_incremental_interface).\n\nwithbridgetype\n\nIf with_bridge_type is not nothing, the optimizer is wrapped in a Bridges.full_bridge_optimizer, enabling all the bridges defined in the MOI.Bridges submodule with coefficient type with_bridge_type.\n\nIn addition, if the optimizer created by optimizer_constructor does not support the incremental interface (see supports_incremental_interface), then, irrespective of with_cache_type, the optimizer is wrapped in a Utilities.CachingOptimizer to store a cache of the bridged model.\n\nIf with_cache_type and with_bridge_type are both not nothing, then they must be the same type.\n\n\n\n\n\n","category":"function"},{"location":"moi/reference/models/#MathOptInterface.default_cache","page":"Models","title":"MathOptInterface.default_cache","text":"default_cache(optimizer::ModelLike, ::Type{T}) where {T}\n\nReturn a new instance of the default model type to be used as cache for optimizer in a Utilities.CachingOptimizer for holding constraints of coefficient type T. By default, this returns Utilities.UniversalFallback(Utilities.Model{T}()). If copying from a instance of a given model type is faster for optimizer then a new method returning an instance of this model type should be defined.\n\n\n\n\n\n","category":"function"},{"location":"moi/reference/models/#Optimizer-attributes","page":"Models","title":"Optimizer attributes","text":"","category":"section"},{"location":"moi/reference/models/","page":"Models","title":"Models","text":"AbstractOptimizerAttribute\nSolverName\nSolverVersion\nSilent\nTimeLimitSec\nObjectiveLimit\nRawOptimizerAttribute\nNumberOfThreads\nRawSolver\nAbsoluteGapTolerance\nRelativeGapTolerance","category":"page"},{"location":"moi/reference/models/#MathOptInterface.AbstractOptimizerAttribute","page":"Models","title":"MathOptInterface.AbstractOptimizerAttribute","text":"AbstractOptimizerAttribute\n\nAbstract supertype for attribute objects that can be used to set or get attributes (properties) of the optimizer.\n\nNotes\n\nThe difference between AbstractOptimizerAttribute and AbstractModelAttribute lies in the behavior of is_empty, empty! and copy_to. Typically optimizer attributes affect only how the model is solved.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/models/#MathOptInterface.SolverName","page":"Models","title":"MathOptInterface.SolverName","text":"SolverName()\n\nAn optimizer attribute for the string identifying the solver/optimizer.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/models/#MathOptInterface.SolverVersion","page":"Models","title":"MathOptInterface.SolverVersion","text":"SolverVersion()\n\nAn optimizer attribute for the string identifying the version of the solver.\n\nnote: Note\nFor solvers supporting semantic versioning, the SolverVersion should be a string of the form \"vMAJOR.MINOR.PATCH\", so that it can be converted to a Julia VersionNumber (e.g., `VersionNumber(\"v1.2.3\")).We do not require Semantic Versioning because some solvers use alternate versioning systems. For example, CPLEX uses Calendar Versioning, so SolverVersion will return a string like \"202001\".\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/models/#MathOptInterface.Silent","page":"Models","title":"MathOptInterface.Silent","text":"Silent()\n\nAn optimizer attribute for silencing the output of an optimizer. When set to true, it takes precedence over any other attribute controlling verbosity and requires the solver to produce no output. The default value is false which has no effect. In this case the verbosity is controlled by other attributes.\n\nNote\n\nEvery optimizer should have verbosity on by default. For instance, if a solver has a solver-specific log level attribute, the MOI implementation should set it to 1 by default. If the user sets Silent to true, then the log level should be set to 0, even if the user specifically sets a value of log level. If the value of Silent is false then the log level set to the solver is the value given by the user for this solver-specific parameter or 1 if none is given.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/models/#MathOptInterface.TimeLimitSec","page":"Models","title":"MathOptInterface.TimeLimitSec","text":"TimeLimitSec()\n\nAn optimizer attribute for setting a time limit (in seconnds) for an optimization. When set to nothing, it deactivates the solver time limit. The default value is nothing.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/models/#MathOptInterface.ObjectiveLimit","page":"Models","title":"MathOptInterface.ObjectiveLimit","text":"ObjectiveLimit()\n\nAn optimizer attribute for setting a limit on the objective value.\n\nThe provided limit must be a Union{Real,Nothing}.\n\nWhen set to nothing, the limit reverts to the solver's default.\n\nThe default value is nothing.\n\nThe solver may stop when the ObjectiveValue is better (lower for minimization, higher for maximization) than the ObjectiveLimit. If stopped, the TerminationStatus should be OBJECTIVE_LIMIT.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/models/#MathOptInterface.RawOptimizerAttribute","page":"Models","title":"MathOptInterface.RawOptimizerAttribute","text":"RawOptimizerAttribute(name::String)\n\nAn optimizer attribute for the solver-specific parameter identified by name.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/models/#MathOptInterface.NumberOfThreads","page":"Models","title":"MathOptInterface.NumberOfThreads","text":"NumberOfThreads()\n\nAn optimizer attribute for setting the number of threads used for an optimization. When set to nothing uses solver default. Values are positive integers. The default value is nothing.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/models/#MathOptInterface.RawSolver","page":"Models","title":"MathOptInterface.RawSolver","text":"RawSolver()\n\nA model attribute for the object that may be used to access a solver-specific API for this optimizer.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/models/#MathOptInterface.AbsoluteGapTolerance","page":"Models","title":"MathOptInterface.AbsoluteGapTolerance","text":"AbsoluteGapTolerance()\n\nAn optimizer attribute for setting the absolute gap tolerance for an optimization. This is an optimizer attribute, and should be set before calling optimize!. When set to nothing (if supported), uses solver default.\n\nTo set a relative gap tolerance, see RelativeGapTolerance.\n\nwarning: Warning\nThe mathematical definition of \"absolute gap\", and its treatment during the optimization, are solver-dependent. However, assuming no other limit nor issue is encountered during the optimization, most solvers that implement this attribute will stop once f - b g_abs, where b is the best bound, f is the best feasible objective value, and g_abs is the absolute gap.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/models/#MathOptInterface.RelativeGapTolerance","page":"Models","title":"MathOptInterface.RelativeGapTolerance","text":"RelativeGapTolerance()\n\nAn optimizer attribute for setting the relative gap tolerance for an optimization. This is an optimizer attribute, and should be set before calling optimize!. When set to nothing (if supported), uses solver default.\n\nIf you are looking for the relative gap of the current best solution, see RelativeGap. If no limit nor issue is encountered during the optimization, the value of RelativeGap should be at most as large as RelativeGapTolerance.\n\n# Before optimizing: set relative gap tolerance\n# set 0.1% relative gap tolerance\nMOI.set(model, MOI.RelativeGapTolerance(), 1e-3)\nMOI.optimize!(model)\n\n# After optimizing (assuming all went well)\n# The relative gap tolerance has not changed...\nMOI.get(model, MOI.RelativeGapTolerance()) # returns 1e-3\n# ... and the relative gap of the obtained solution is smaller or equal to the\n# tolerance\nMOI.get(model, MOI.RelativeGap()) # should return something ≤ 1e-3\n\nwarning: Warning\nThe mathematical definition of \"relative gap\", and its allowed range, are solver-dependent. Typically, solvers expect a value between 0.0 and 1.0.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/models/","page":"Models","title":"Models","text":"List of attributes useful for optimizers","category":"page"},{"location":"moi/reference/models/","page":"Models","title":"Models","text":"TerminationStatus\nTerminationStatusCode\nOPTIMIZE_NOT_CALLED\nOPTIMAL\nINFEASIBLE\nDUAL_INFEASIBLE\nLOCALLY_SOLVED\nLOCALLY_INFEASIBLE\nINFEASIBLE_OR_UNBOUNDED\nALMOST_OPTIMAL\nALMOST_INFEASIBLE\nALMOST_DUAL_INFEASIBLE\nALMOST_LOCALLY_SOLVED\nITERATION_LIMIT\nTIME_LIMIT\nNODE_LIMIT\nSOLUTION_LIMIT\nMEMORY_LIMIT\nOBJECTIVE_LIMIT\nNORM_LIMIT\nOTHER_LIMIT\nSLOW_PROGRESS\nNUMERICAL_ERROR\nINVALID_MODEL\nINVALID_OPTION\nINTERRUPTED\nOTHER_ERROR\nPrimalStatus\nDualStatus\nRawStatusString\nResultCount\nObjectiveValue\nDualObjectiveValue\nObjectiveBound\nRelativeGap\nSolveTimeSec\nSimplexIterations\nBarrierIterations\nNodeCount","category":"page"},{"location":"moi/reference/models/#MathOptInterface.TerminationStatus","page":"Models","title":"MathOptInterface.TerminationStatus","text":"TerminationStatus()\n\nA model attribute for the TerminationStatusCode explaining why the optimizer stopped.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/models/#MathOptInterface.TerminationStatusCode","page":"Models","title":"MathOptInterface.TerminationStatusCode","text":"TerminationStatusCode\n\nAn Enum of possible values for the TerminationStatus attribute. This attribute is meant to explain the reason why the optimizer stopped executing in the most recent call to optimize!.\n\nValues\n\nPossible values are:\n\nOPTIMIZE_NOT_CALLED: The algorithm has not started.\nOPTIMAL: The algorithm found a globally optimal solution.\nINFEASIBLE: The algorithm concluded that no feasible solution exists.\nDUAL_INFEASIBLE: The algorithm concluded that no dual bound exists for the problem. If, additionally, a feasible (primal) solution is known to exist, this status typically implies that the problem is unbounded, with some technical exceptions.\nLOCALLY_SOLVED: The algorithm converged to a stationary point, local optimal solution, could not find directions for improvement, or otherwise completed its search without global guarantees.\nLOCALLY_INFEASIBLE: The algorithm converged to an infeasible point or otherwise completed its search without finding a feasible solution, without guarantees that no feasible solution exists.\nINFEASIBLE_OR_UNBOUNDED: The algorithm stopped because it decided that the problem is infeasible or unbounded; this occasionally happens during MIP presolve.\nALMOST_OPTIMAL: The algorithm found a globally optimal solution to relaxed tolerances.\nALMOST_INFEASIBLE: The algorithm concluded that no feasible solution exists within relaxed tolerances.\nALMOST_DUAL_INFEASIBLE: The algorithm concluded that no dual bound exists for the problem within relaxed tolerances.\nALMOST_LOCALLY_SOLVED: The algorithm converged to a stationary point, local optimal solution, or could not find directions for improvement within relaxed tolerances.\nITERATION_LIMIT: An iterative algorithm stopped after conducting the maximum number of iterations.\nTIME_LIMIT: The algorithm stopped after a user-specified computation time.\nNODE_LIMIT: A branch-and-bound algorithm stopped because it explored a maximum number of nodes in the branch-and-bound tree.\nSOLUTION_LIMIT: The algorithm stopped because it found the required number of solutions. This is often used in MIPs to get the solver to return the first feasible solution it encounters.\nMEMORY_LIMIT: The algorithm stopped because it ran out of memory.\nOBJECTIVE_LIMIT: The algorithm stopped because it found a solution better than a minimum limit set by the user.\nNORM_LIMIT: The algorithm stopped because the norm of an iterate became too large.\nOTHER_LIMIT: The algorithm stopped due to a limit not covered by one of the _LIMIT_ statuses above.\nSLOW_PROGRESS: The algorithm stopped because it was unable to continue making progress towards the solution.\nNUMERICAL_ERROR: The algorithm stopped because it encountered unrecoverable numerical error.\nINVALID_MODEL: The algorithm stopped because the model is invalid.\nINVALID_OPTION: The algorithm stopped because it was provided an invalid option.\nINTERRUPTED: The algorithm stopped because of an interrupt signal.\nOTHER_ERROR: The algorithm stopped because of an error not covered by one of the statuses defined above.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/models/#MathOptInterface.OPTIMIZE_NOT_CALLED","page":"Models","title":"MathOptInterface.OPTIMIZE_NOT_CALLED","text":"OPTIMIZE_NOT_CALLED::TerminationStatusCode\n\nAn instance of the TerminationStatusCode enum.\n\nOPTIMIZE_NOT_CALLED: The algorithm has not started.\n\n\n\n\n\n","category":"constant"},{"location":"moi/reference/models/#MathOptInterface.OPTIMAL","page":"Models","title":"MathOptInterface.OPTIMAL","text":"OPTIMAL::TerminationStatusCode\n\nAn instance of the TerminationStatusCode enum.\n\nOPTIMAL: The algorithm found a globally optimal solution.\n\n\n\n\n\n","category":"constant"},{"location":"moi/reference/models/#MathOptInterface.INFEASIBLE","page":"Models","title":"MathOptInterface.INFEASIBLE","text":"INFEASIBLE::TerminationStatusCode\n\nAn instance of the TerminationStatusCode enum.\n\nINFEASIBLE: The algorithm concluded that no feasible solution exists.\n\n\n\n\n\n","category":"constant"},{"location":"moi/reference/models/#MathOptInterface.DUAL_INFEASIBLE","page":"Models","title":"MathOptInterface.DUAL_INFEASIBLE","text":"DUAL_INFEASIBLE::TerminationStatusCode\n\nAn instance of the TerminationStatusCode enum.\n\nDUAL_INFEASIBLE: The algorithm concluded that no dual bound exists for the problem. If, additionally, a feasible (primal) solution is known to exist, this status typically implies that the problem is unbounded, with some technical exceptions.\n\n\n\n\n\n","category":"constant"},{"location":"moi/reference/models/#MathOptInterface.LOCALLY_SOLVED","page":"Models","title":"MathOptInterface.LOCALLY_SOLVED","text":"LOCALLY_SOLVED::TerminationStatusCode\n\nAn instance of the TerminationStatusCode enum.\n\nLOCALLY_SOLVED: The algorithm converged to a stationary point, local optimal solution, could not find directions for improvement, or otherwise completed its search without global guarantees.\n\n\n\n\n\n","category":"constant"},{"location":"moi/reference/models/#MathOptInterface.LOCALLY_INFEASIBLE","page":"Models","title":"MathOptInterface.LOCALLY_INFEASIBLE","text":"LOCALLY_INFEASIBLE::TerminationStatusCode\n\nAn instance of the TerminationStatusCode enum.\n\nLOCALLY_INFEASIBLE: The algorithm converged to an infeasible point or otherwise completed its search without finding a feasible solution, without guarantees that no feasible solution exists.\n\n\n\n\n\n","category":"constant"},{"location":"moi/reference/models/#MathOptInterface.INFEASIBLE_OR_UNBOUNDED","page":"Models","title":"MathOptInterface.INFEASIBLE_OR_UNBOUNDED","text":"INFEASIBLE_OR_UNBOUNDED::TerminationStatusCode\n\nAn instance of the TerminationStatusCode enum.\n\nINFEASIBLE_OR_UNBOUNDED: The algorithm stopped because it decided that the problem is infeasible or unbounded; this occasionally happens during MIP presolve.\n\n\n\n\n\n","category":"constant"},{"location":"moi/reference/models/#MathOptInterface.ALMOST_OPTIMAL","page":"Models","title":"MathOptInterface.ALMOST_OPTIMAL","text":"ALMOST_OPTIMAL::TerminationStatusCode\n\nAn instance of the TerminationStatusCode enum.\n\nALMOST_OPTIMAL: The algorithm found a globally optimal solution to relaxed tolerances.\n\n\n\n\n\n","category":"constant"},{"location":"moi/reference/models/#MathOptInterface.ALMOST_INFEASIBLE","page":"Models","title":"MathOptInterface.ALMOST_INFEASIBLE","text":"ALMOST_INFEASIBLE::TerminationStatusCode\n\nAn instance of the TerminationStatusCode enum.\n\nALMOST_INFEASIBLE: The algorithm concluded that no feasible solution exists within relaxed tolerances.\n\n\n\n\n\n","category":"constant"},{"location":"moi/reference/models/#MathOptInterface.ALMOST_DUAL_INFEASIBLE","page":"Models","title":"MathOptInterface.ALMOST_DUAL_INFEASIBLE","text":"ALMOST_DUAL_INFEASIBLE::TerminationStatusCode\n\nAn instance of the TerminationStatusCode enum.\n\nALMOST_DUAL_INFEASIBLE: The algorithm concluded that no dual bound exists for the problem within relaxed tolerances.\n\n\n\n\n\n","category":"constant"},{"location":"moi/reference/models/#MathOptInterface.ALMOST_LOCALLY_SOLVED","page":"Models","title":"MathOptInterface.ALMOST_LOCALLY_SOLVED","text":"ALMOST_LOCALLY_SOLVED::TerminationStatusCode\n\nAn instance of the TerminationStatusCode enum.\n\nALMOST_LOCALLY_SOLVED: The algorithm converged to a stationary point, local optimal solution, or could not find directions for improvement within relaxed tolerances.\n\n\n\n\n\n","category":"constant"},{"location":"moi/reference/models/#MathOptInterface.ITERATION_LIMIT","page":"Models","title":"MathOptInterface.ITERATION_LIMIT","text":"ITERATION_LIMIT::TerminationStatusCode\n\nAn instance of the TerminationStatusCode enum.\n\nITERATION_LIMIT: An iterative algorithm stopped after conducting the maximum number of iterations.\n\n\n\n\n\n","category":"constant"},{"location":"moi/reference/models/#MathOptInterface.TIME_LIMIT","page":"Models","title":"MathOptInterface.TIME_LIMIT","text":"TIME_LIMIT::TerminationStatusCode\n\nAn instance of the TerminationStatusCode enum.\n\nTIME_LIMIT: The algorithm stopped after a user-specified computation time.\n\n\n\n\n\n","category":"constant"},{"location":"moi/reference/models/#MathOptInterface.NODE_LIMIT","page":"Models","title":"MathOptInterface.NODE_LIMIT","text":"NODE_LIMIT::TerminationStatusCode\n\nAn instance of the TerminationStatusCode enum.\n\nNODE_LIMIT: A branch-and-bound algorithm stopped because it explored a maximum number of nodes in the branch-and-bound tree.\n\n\n\n\n\n","category":"constant"},{"location":"moi/reference/models/#MathOptInterface.SOLUTION_LIMIT","page":"Models","title":"MathOptInterface.SOLUTION_LIMIT","text":"SOLUTION_LIMIT::TerminationStatusCode\n\nAn instance of the TerminationStatusCode enum.\n\nSOLUTION_LIMIT: The algorithm stopped because it found the required number of solutions. This is often used in MIPs to get the solver to return the first feasible solution it encounters.\n\n\n\n\n\n","category":"constant"},{"location":"moi/reference/models/#MathOptInterface.MEMORY_LIMIT","page":"Models","title":"MathOptInterface.MEMORY_LIMIT","text":"MEMORY_LIMIT::TerminationStatusCode\n\nAn instance of the TerminationStatusCode enum.\n\nMEMORY_LIMIT: The algorithm stopped because it ran out of memory.\n\n\n\n\n\n","category":"constant"},{"location":"moi/reference/models/#MathOptInterface.OBJECTIVE_LIMIT","page":"Models","title":"MathOptInterface.OBJECTIVE_LIMIT","text":"OBJECTIVE_LIMIT::TerminationStatusCode\n\nAn instance of the TerminationStatusCode enum.\n\nOBJECTIVE_LIMIT: The algorithm stopped because it found a solution better than a minimum limit set by the user.\n\n\n\n\n\n","category":"constant"},{"location":"moi/reference/models/#MathOptInterface.NORM_LIMIT","page":"Models","title":"MathOptInterface.NORM_LIMIT","text":"NORM_LIMIT::TerminationStatusCode\n\nAn instance of the TerminationStatusCode enum.\n\nNORM_LIMIT: The algorithm stopped because the norm of an iterate became too large.\n\n\n\n\n\n","category":"constant"},{"location":"moi/reference/models/#MathOptInterface.OTHER_LIMIT","page":"Models","title":"MathOptInterface.OTHER_LIMIT","text":"OTHER_LIMIT::TerminationStatusCode\n\nAn instance of the TerminationStatusCode enum.\n\nOTHER_LIMIT: The algorithm stopped due to a limit not covered by one of the _LIMIT_ statuses above.\n\n\n\n\n\n","category":"constant"},{"location":"moi/reference/models/#MathOptInterface.SLOW_PROGRESS","page":"Models","title":"MathOptInterface.SLOW_PROGRESS","text":"SLOW_PROGRESS::TerminationStatusCode\n\nAn instance of the TerminationStatusCode enum.\n\nSLOW_PROGRESS: The algorithm stopped because it was unable to continue making progress towards the solution.\n\n\n\n\n\n","category":"constant"},{"location":"moi/reference/models/#MathOptInterface.NUMERICAL_ERROR","page":"Models","title":"MathOptInterface.NUMERICAL_ERROR","text":"NUMERICAL_ERROR::TerminationStatusCode\n\nAn instance of the TerminationStatusCode enum.\n\nNUMERICAL_ERROR: The algorithm stopped because it encountered unrecoverable numerical error.\n\n\n\n\n\n","category":"constant"},{"location":"moi/reference/models/#MathOptInterface.INVALID_MODEL","page":"Models","title":"MathOptInterface.INVALID_MODEL","text":"INVALID_MODEL::TerminationStatusCode\n\nAn instance of the TerminationStatusCode enum.\n\nINVALID_MODEL: The algorithm stopped because the model is invalid.\n\n\n\n\n\n","category":"constant"},{"location":"moi/reference/models/#MathOptInterface.INVALID_OPTION","page":"Models","title":"MathOptInterface.INVALID_OPTION","text":"INVALID_OPTION::TerminationStatusCode\n\nAn instance of the TerminationStatusCode enum.\n\nINVALID_OPTION: The algorithm stopped because it was provided an invalid option.\n\n\n\n\n\n","category":"constant"},{"location":"moi/reference/models/#MathOptInterface.INTERRUPTED","page":"Models","title":"MathOptInterface.INTERRUPTED","text":"INTERRUPTED::TerminationStatusCode\n\nAn instance of the TerminationStatusCode enum.\n\nINTERRUPTED: The algorithm stopped because of an interrupt signal.\n\n\n\n\n\n","category":"constant"},{"location":"moi/reference/models/#MathOptInterface.OTHER_ERROR","page":"Models","title":"MathOptInterface.OTHER_ERROR","text":"OTHER_ERROR::TerminationStatusCode\n\nAn instance of the TerminationStatusCode enum.\n\nOTHER_ERROR: The algorithm stopped because of an error not covered by one of the statuses defined above.\n\n\n\n\n\n","category":"constant"},{"location":"moi/reference/models/#MathOptInterface.PrimalStatus","page":"Models","title":"MathOptInterface.PrimalStatus","text":"PrimalStatus(result_index::Int = 1)\n\nA model attribute for the ResultStatusCode of the primal result result_index. If result_index is omitted, it defaults to 1.\n\nSee ResultCount for information on how the results are ordered.\n\nIf result_index is larger than the value of ResultCount then NO_SOLUTION is returned.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/models/#MathOptInterface.DualStatus","page":"Models","title":"MathOptInterface.DualStatus","text":"DualStatus(result_index::Int = 1)\n\nA model attribute for the ResultStatusCode of the dual result result_index. If result_index is omitted, it defaults to 1.\n\nSee ResultCount for information on how the results are ordered.\n\nIf result_index is larger than the value of ResultCount then NO_SOLUTION is returned.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/models/#MathOptInterface.RawStatusString","page":"Models","title":"MathOptInterface.RawStatusString","text":"RawStatusString()\n\nA model attribute for a solver specific string explaining why the optimizer stopped.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/models/#MathOptInterface.ResultCount","page":"Models","title":"MathOptInterface.ResultCount","text":"ResultCount()\n\nA model attribute for the number of results available.\n\nOrder of solutions\n\nA number of attributes contain an index, result_index, which is used to refer to one of the available results. Thus, result_index must be an integer between 1 and the number of available results.\n\nAs a general rule, the first result (result_index=1) is the most important result (e.g., an optimal solution or an infeasibility certificate). Other results will typically be alternate solutions that the solver found during the search for the first result.\n\nIf a (local) optimal solution is available, i.e., TerminationStatus is OPTIMAL or LOCALLY_SOLVED, the first result must correspond to the (locally) optimal solution. Other results may be alternative optimal solutions, or they may be other suboptimal solutions; use ObjectiveValue to distingiush between them.\n\nIf a primal or dual infeasibility certificate is available, i.e., TerminationStatus is INFEASIBLE or DUAL_INFEASIBLE and the corresponding PrimalStatus or DualStatus is INFEASIBILITY_CERTIFICATE, then the first result must be a certificate. Other results may be alternate certificates, or infeasible points.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/models/#MathOptInterface.ObjectiveValue","page":"Models","title":"MathOptInterface.ObjectiveValue","text":"ObjectiveValue(result_index::Int = 1)\n\nA model attribute for the objective value of the primal solution result_index.\n\nIf the solver does not have a primal value for the objective because the result_index is beyond the available solutions (whose number is indicated by the ResultCount attribute), getting this attribute must throw a ResultIndexBoundsError. Otherwise, if the result is unavailable for another reason (for instance, only a dual solution is available), the result is undefined. Users should first check PrimalStatus before accessing the ObjectiveValue attribute.\n\nSee ResultCount for information on how the results are ordered.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/models/#MathOptInterface.DualObjectiveValue","page":"Models","title":"MathOptInterface.DualObjectiveValue","text":"DualObjectiveValue(result_index::Int = 1)\n\nA model attribute for the value of the objective function of the dual problem for the result_indexth dual result.\n\nIf the solver does not have a dual value for the objective because the result_index is beyond the available solutions (whose number is indicated by the ResultCount attribute), getting this attribute must throw a ResultIndexBoundsError. Otherwise, if the result is unavailable for another reason (for instance, only a primal solution is available), the result is undefined. Users should first check DualStatus before accessing the DualObjectiveValue attribute.\n\nSee ResultCount for information on how the results are ordered.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/models/#MathOptInterface.ObjectiveBound","page":"Models","title":"MathOptInterface.ObjectiveBound","text":"ObjectiveBound()\n\nA model attribute for the best known bound on the optimal objective value.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/models/#MathOptInterface.RelativeGap","page":"Models","title":"MathOptInterface.RelativeGap","text":"RelativeGap()\n\nA model attribute for the final relative optimality gap.\n\nwarning: Warning\nThe definition of this gap is solver-dependent. However, most solvers implementing this attribute define the relative gap as some variation of fracb-ff, where b is the best bound and f is the best feasible objective value.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/models/#MathOptInterface.SolveTimeSec","page":"Models","title":"MathOptInterface.SolveTimeSec","text":"SolveTimeSec()\n\nA model attribute for the total elapsed solution time (in seconds) as reported by the optimizer.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/models/#MathOptInterface.SimplexIterations","page":"Models","title":"MathOptInterface.SimplexIterations","text":"SimplexIterations()\n\nA model attribute for the cumulative number of simplex iterations during the optimization process.\n\nFor a mixed-integer program (MIP), the return value is the total simplex iterations for all nodes.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/models/#MathOptInterface.BarrierIterations","page":"Models","title":"MathOptInterface.BarrierIterations","text":"BarrierIterations()\n\nA model attribute for the cumulative number of barrier iterations while solving a problem.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/models/#MathOptInterface.NodeCount","page":"Models","title":"MathOptInterface.NodeCount","text":"NodeCount()\n\nA model attribute for the total number of branch-and-bound nodes explored while solving a mixed-integer program (MIP).\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/models/#ResultStatusCode","page":"Models","title":"ResultStatusCode","text":"","category":"section"},{"location":"moi/reference/models/","page":"Models","title":"Models","text":"ResultStatusCode\nNO_SOLUTION\nFEASIBLE_POINT\nNEARLY_FEASIBLE_POINT\nINFEASIBLE_POINT\nINFEASIBILITY_CERTIFICATE\nNEARLY_INFEASIBILITY_CERTIFICATE\nREDUCTION_CERTIFICATE\nNEARLY_REDUCTION_CERTIFICATE\nUNKNOWN_RESULT_STATUS\nOTHER_RESULT_STATUS","category":"page"},{"location":"moi/reference/models/#MathOptInterface.ResultStatusCode","page":"Models","title":"MathOptInterface.ResultStatusCode","text":"ResultStatusCode\n\nAn Enum of possible values for the PrimalStatus and DualStatus attributes.\n\nThe values indicate how to interpret the result vector.\n\nValues\n\nPossible values are:\n\nNO_SOLUTION: the result vector is empty.\nFEASIBLE_POINT: the result vector is a feasible point.\nNEARLY_FEASIBLE_POINT: the result vector is feasible if some constraint tolerances are relaxed.\nINFEASIBLE_POINT: the result vector is an infeasible point.\nINFEASIBILITY_CERTIFICATE: the result vector is an infeasibility certificate. If the PrimalStatus is INFEASIBILITY_CERTIFICATE, then the primal result vector is a certificate of dual infeasibility. If the DualStatus is INFEASIBILITY_CERTIFICATE, then the dual result vector is a proof of primal infeasibility.\nNEARLY_INFEASIBILITY_CERTIFICATE: the result satisfies a relaxed criterion for a certificate of infeasibility.\nREDUCTION_CERTIFICATE: the result vector is an ill-posed certificate; see this article for details. If the PrimalStatus is REDUCTION_CERTIFICATE, then the primal result vector is a proof that the dual problem is ill-posed. If the DualStatus is REDUCTION_CERTIFICATE, then the dual result vector is a proof that the primal is ill-posed.\nNEARLY_REDUCTION_CERTIFICATE: the result satisfies a relaxed criterion for an ill-posed certificate.\nUNKNOWN_RESULT_STATUS: the result vector contains a solution with an unknown interpretation.\nOTHER_RESULT_STATUS: the result vector contains a solution with an interpretation not covered by one of the statuses defined above\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/models/#MathOptInterface.NO_SOLUTION","page":"Models","title":"MathOptInterface.NO_SOLUTION","text":"NO_SOLUTION::ResultStatusCode\n\nAn instance of the ResultStatusCode enum.\n\nNO_SOLUTION: the result vector is empty.\n\n\n\n\n\n","category":"constant"},{"location":"moi/reference/models/#MathOptInterface.FEASIBLE_POINT","page":"Models","title":"MathOptInterface.FEASIBLE_POINT","text":"FEASIBLE_POINT::ResultStatusCode\n\nAn instance of the ResultStatusCode enum.\n\nFEASIBLE_POINT: the result vector is a feasible point.\n\n\n\n\n\n","category":"constant"},{"location":"moi/reference/models/#MathOptInterface.NEARLY_FEASIBLE_POINT","page":"Models","title":"MathOptInterface.NEARLY_FEASIBLE_POINT","text":"NEARLY_FEASIBLE_POINT::ResultStatusCode\n\nAn instance of the ResultStatusCode enum.\n\nNEARLY_FEASIBLE_POINT: the result vector is feasible if some constraint tolerances are relaxed.\n\n\n\n\n\n","category":"constant"},{"location":"moi/reference/models/#MathOptInterface.INFEASIBLE_POINT","page":"Models","title":"MathOptInterface.INFEASIBLE_POINT","text":"INFEASIBLE_POINT::ResultStatusCode\n\nAn instance of the ResultStatusCode enum.\n\nINFEASIBLE_POINT: the result vector is an infeasible point.\n\n\n\n\n\n","category":"constant"},{"location":"moi/reference/models/#MathOptInterface.INFEASIBILITY_CERTIFICATE","page":"Models","title":"MathOptInterface.INFEASIBILITY_CERTIFICATE","text":"INFEASIBILITY_CERTIFICATE::ResultStatusCode\n\nAn instance of the ResultStatusCode enum.\n\nINFEASIBILITY_CERTIFICATE: the result vector is an infeasibility certificate. If the PrimalStatus is INFEASIBILITY_CERTIFICATE, then the primal result vector is a certificate of dual infeasibility. If the DualStatus is INFEASIBILITY_CERTIFICATE, then the dual result vector is a proof of primal infeasibility.\n\n\n\n\n\n","category":"constant"},{"location":"moi/reference/models/#MathOptInterface.NEARLY_INFEASIBILITY_CERTIFICATE","page":"Models","title":"MathOptInterface.NEARLY_INFEASIBILITY_CERTIFICATE","text":"NEARLY_INFEASIBILITY_CERTIFICATE::ResultStatusCode\n\nAn instance of the ResultStatusCode enum.\n\nNEARLY_INFEASIBILITY_CERTIFICATE: the result satisfies a relaxed criterion for a certificate of infeasibility.\n\n\n\n\n\n","category":"constant"},{"location":"moi/reference/models/#MathOptInterface.REDUCTION_CERTIFICATE","page":"Models","title":"MathOptInterface.REDUCTION_CERTIFICATE","text":"REDUCTION_CERTIFICATE::ResultStatusCode\n\nAn instance of the ResultStatusCode enum.\n\nREDUCTION_CERTIFICATE: the result vector is an ill-posed certificate; see this article for details. If the PrimalStatus is REDUCTION_CERTIFICATE, then the primal result vector is a proof that the dual problem is ill-posed. If the DualStatus is REDUCTION_CERTIFICATE, then the dual result vector is a proof that the primal is ill-posed.\n\n\n\n\n\n","category":"constant"},{"location":"moi/reference/models/#MathOptInterface.NEARLY_REDUCTION_CERTIFICATE","page":"Models","title":"MathOptInterface.NEARLY_REDUCTION_CERTIFICATE","text":"NEARLY_REDUCTION_CERTIFICATE::ResultStatusCode\n\nAn instance of the ResultStatusCode enum.\n\nNEARLY_REDUCTION_CERTIFICATE: the result satisfies a relaxed criterion for an ill-posed certificate.\n\n\n\n\n\n","category":"constant"},{"location":"moi/reference/models/#MathOptInterface.UNKNOWN_RESULT_STATUS","page":"Models","title":"MathOptInterface.UNKNOWN_RESULT_STATUS","text":"UNKNOWN_RESULT_STATUS::ResultStatusCode\n\nAn instance of the ResultStatusCode enum.\n\nUNKNOWN_RESULT_STATUS: the result vector contains a solution with an unknown interpretation.\n\n\n\n\n\n","category":"constant"},{"location":"moi/reference/models/#MathOptInterface.OTHER_RESULT_STATUS","page":"Models","title":"MathOptInterface.OTHER_RESULT_STATUS","text":"OTHER_RESULT_STATUS::ResultStatusCode\n\nAn instance of the ResultStatusCode enum.\n\nOTHER_RESULT_STATUS: the result vector contains a solution with an interpretation not covered by one of the statuses defined above\n\n\n\n\n\n","category":"constant"},{"location":"moi/reference/models/#Conflict-Status","page":"Models","title":"Conflict Status","text":"","category":"section"},{"location":"moi/reference/models/","page":"Models","title":"Models","text":"compute_conflict!\nConflictStatus\nConstraintConflictStatus\nConflictStatusCode\nConflictParticipationStatusCode\nNOT_IN_CONFLICT\nIN_CONFLICT\nMAYBE_IN_CONFLICT","category":"page"},{"location":"moi/reference/models/#MathOptInterface.compute_conflict!","page":"Models","title":"MathOptInterface.compute_conflict!","text":"compute_conflict!(optimizer::AbstractOptimizer)\n\nComputes a minimal subset of constraints such that the model with the other constraint removed is still infeasible.\n\nSome solvers call a set of conflicting constraints an Irreducible Inconsistent Subsystem (IIS).\n\nSee also ConflictStatus and ConstraintConflictStatus.\n\nNote\n\nIf the model is modified after a call to compute_conflict!, the implementor is not obliged to purge the conflict. Any calls to the above attributes may return values for the original conflict without a warning. Similarly, when modifying the model, the conflict can be discarded.\n\n\n\n\n\n","category":"function"},{"location":"moi/reference/models/#MathOptInterface.ConflictStatus","page":"Models","title":"MathOptInterface.ConflictStatus","text":"ConflictStatus()\n\nA model attribute for the ConflictStatusCode explaining why the conflict refiner stopped when computing the conflict.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/models/#MathOptInterface.ConstraintConflictStatus","page":"Models","title":"MathOptInterface.ConstraintConflictStatus","text":"ConstraintConflictStatus()\n\nA constraint attribute indicating whether the constraint participates in the conflict. Its type is ConflictParticipationStatusCode.\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/models/#MathOptInterface.ConflictStatusCode","page":"Models","title":"MathOptInterface.ConflictStatusCode","text":"ConflictStatusCode\n\nAn Enum of possible values for the ConflictStatus attribute. This attribute is meant to explain the reason why the conflict finder stopped executing in the most recent call to compute_conflict!.\n\nPossible values are:\n\nCOMPUTE_CONFLICT_NOT_CALLED: the function compute_conflict! has not yet been called\nNO_CONFLICT_EXISTS: there is no conflict because the problem is feasible\nNO_CONFLICT_FOUND: the solver could not find a conflict\nCONFLICT_FOUND: at least one conflict could be found\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/models/#MathOptInterface.ConflictParticipationStatusCode","page":"Models","title":"MathOptInterface.ConflictParticipationStatusCode","text":"ConflictParticipationStatusCode\n\nAn Enum of possible values for the ConstraintConflictStatus attribute. This attribute is meant to indicate whether a given constraint participates or not in the last computed conflict.\n\nValues\n\nPossible values are:\n\nNOT_IN_CONFLICT: the constraint does not participate in the conflict\nIN_CONFLICT: the constraint participates in the conflict\nMAYBE_IN_CONFLICT: the constraint may participate in the conflict, the solver was not able to prove that the constraint can be excluded from the conflict\n\n\n\n\n\n","category":"type"},{"location":"moi/reference/models/#MathOptInterface.NOT_IN_CONFLICT","page":"Models","title":"MathOptInterface.NOT_IN_CONFLICT","text":"NOT_IN_CONFLICT::ConflictParticipationStatusCode\n\nAn instance of the ConflictParticipationStatusCode enum.\n\nNOT_IN_CONFLICT: the constraint does not participate in the conflict\n\n\n\n\n\n","category":"constant"},{"location":"moi/reference/models/#MathOptInterface.IN_CONFLICT","page":"Models","title":"MathOptInterface.IN_CONFLICT","text":"IN_CONFLICT::ConflictParticipationStatusCode\n\nAn instance of the ConflictParticipationStatusCode enum.\n\nIN_CONFLICT: the constraint participates in the conflict\n\n\n\n\n\n","category":"constant"},{"location":"moi/reference/models/#MathOptInterface.MAYBE_IN_CONFLICT","page":"Models","title":"MathOptInterface.MAYBE_IN_CONFLICT","text":"MAYBE_IN_CONFLICT::ConflictParticipationStatusCode\n\nAn instance of the ConflictParticipationStatusCode enum.\n\nMAYBE_IN_CONFLICT: the constraint may participate in the conflict, the solver was not able to prove that the constraint can be excluded from the conflict\n\n\n\n\n\n","category":"constant"},{"location":"moi/submodules/Nonlinear/reference/","page":"API Reference","title":"API Reference","text":"EditURL = \"https://github.com/jump-dev/MathOptInterface.jl/blob/v1.20.1/docs/src/submodules/Nonlinear/reference.md\"","category":"page"},{"location":"moi/submodules/Nonlinear/reference/","page":"API Reference","title":"API Reference","text":"CurrentModule = MathOptInterface\nDocTestSetup = quote\n import MathOptInterface as MOI\nend\nDocTestFilters = [r\"MathOptInterface|MOI\"]","category":"page"},{"location":"moi/submodules/Nonlinear/reference/#NonlinearAPI","page":"API Reference","title":"Nonlinear Modeling","text":"","category":"section"},{"location":"moi/submodules/Nonlinear/reference/","page":"API Reference","title":"API Reference","text":"More information can be found in the Nonlinear section of the manual.","category":"page"},{"location":"moi/submodules/Nonlinear/reference/","page":"API Reference","title":"API Reference","text":"Nonlinear\nNonlinear.Model","category":"page"},{"location":"moi/submodules/Nonlinear/reference/#MathOptInterface.Nonlinear","page":"API Reference","title":"MathOptInterface.Nonlinear","text":"Nonlinear\n\nwarning: Warning\nThe Nonlinear submodule is experimental. Until this message is removed, breaking changes may be introduced in any minor or patch release of MathOptInterface.\n\n\n\n\n\n","category":"module"},{"location":"moi/submodules/Nonlinear/reference/#MathOptInterface.Nonlinear.Model","page":"API Reference","title":"MathOptInterface.Nonlinear.Model","text":"Model()\n\nThe core datastructure for representing a nonlinear optimization problem.\n\nIt has the following fields:\n\nobjective::Union{Nothing,Expression} : holds the nonlinear objective function, if one exists, otherwise nothing.\nexpressions::Vector{Expression} : a vector of expressions in the model.\nconstraints::OrderedDict{ConstraintIndex,Constraint} : a map from ConstraintIndex to the corresponding Constraint. An OrderedDict is used instead of a Vector to support constraint deletion.\nparameters::Vector{Float64} : holds the current values of the parameters.\noperators::OperatorRegistry : stores the operators used in the model.\n\n\n\n\n\n","category":"type"},{"location":"moi/submodules/Nonlinear/reference/#nonlinear_api_expressions","page":"API Reference","title":"Expressions","text":"","category":"section"},{"location":"moi/submodules/Nonlinear/reference/","page":"API Reference","title":"API Reference","text":"Nonlinear.ExpressionIndex\nNonlinear.add_expression","category":"page"},{"location":"moi/submodules/Nonlinear/reference/#MathOptInterface.Nonlinear.ExpressionIndex","page":"API Reference","title":"MathOptInterface.Nonlinear.ExpressionIndex","text":"ExpressionIndex\n\nAn index to a nonlinear expression that is returned by add_expression.\n\nGiven data::Model and ex::ExpressionIndex, use data[ex] to retrieve the corresponding Expression.\n\n\n\n\n\n","category":"type"},{"location":"moi/submodules/Nonlinear/reference/#MathOptInterface.Nonlinear.add_expression","page":"API Reference","title":"MathOptInterface.Nonlinear.add_expression","text":"add_expression(model::Model, expr)::ExpressionIndex\n\nParse expr into a Expression and add to model. Returns an ExpressionIndex that can be interpolated into other input expressions.\n\nexpr must be a type that is supported by parse_expression.\n\nExamples\n\nmodel = Model()\nx = MOI.VariableIndex(1)\nex = add_expression(model, :($x^2 + 1))\nset_objective(model, :(sqrt($ex)))\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Nonlinear/reference/#nonlinear_api_parameters","page":"API Reference","title":"Parameters","text":"","category":"section"},{"location":"moi/submodules/Nonlinear/reference/","page":"API Reference","title":"API Reference","text":"Nonlinear.ParameterIndex\nNonlinear.add_parameter","category":"page"},{"location":"moi/submodules/Nonlinear/reference/#MathOptInterface.Nonlinear.ParameterIndex","page":"API Reference","title":"MathOptInterface.Nonlinear.ParameterIndex","text":"ParameterIndex\n\nAn index to a nonlinear parameter that is returned by add_parameter. Given data::Model and p::ParameterIndex, use data[p] to retrieve the current value of the parameter and data[p] = value to set a new value.\n\n\n\n\n\n","category":"type"},{"location":"moi/submodules/Nonlinear/reference/#MathOptInterface.Nonlinear.add_parameter","page":"API Reference","title":"MathOptInterface.Nonlinear.add_parameter","text":"add_parameter(model::Model, value::Float64)::ParameterIndex\n\nAdd a new parameter to model with the default value value. Returns a ParameterIndex that can be interpolated into other input expressions and used to modify the value of the parameter.\n\nExamples\n\nmodel = Model()\nx = MOI.VariableIndex(1)\np = add_parameter(model, 1.2)\nc = add_constraint(model, :($x^2 - $p), MOI.LessThan(0.0))\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Nonlinear/reference/#nonlinear_api_objectives","page":"API Reference","title":"Objectives","text":"","category":"section"},{"location":"moi/submodules/Nonlinear/reference/","page":"API Reference","title":"API Reference","text":"Nonlinear.set_objective","category":"page"},{"location":"moi/submodules/Nonlinear/reference/#MathOptInterface.Nonlinear.set_objective","page":"API Reference","title":"MathOptInterface.Nonlinear.set_objective","text":"set_objective(model::Model, obj)::Nothing\n\nParse obj into a Expression and set as the objective function of model.\n\nobj must be a type that is supported by parse_expression.\n\nTo remove the objective, pass nothing.\n\nExamples\n\nmodel = Model()\nx = MOI.VariableIndex(1)\nset_objective(model, :($x^2 + 1))\nset_objective(model, x)\nset_objective(model, nothing)\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Nonlinear/reference/#nonlinear_api_constraints","page":"API Reference","title":"Constraints","text":"","category":"section"},{"location":"moi/submodules/Nonlinear/reference/","page":"API Reference","title":"API Reference","text":"Nonlinear.ConstraintIndex\nNonlinear.add_constraint\nNonlinear.delete","category":"page"},{"location":"moi/submodules/Nonlinear/reference/#MathOptInterface.Nonlinear.ConstraintIndex","page":"API Reference","title":"MathOptInterface.Nonlinear.ConstraintIndex","text":"ConstraintIndex\n\nAn index to a nonlinear constraint that is returned by add_constraint.\n\nGiven data::Model and c::ConstraintIndex, use data[c] to retrieve the corresponding Constraint.\n\n\n\n\n\n","category":"type"},{"location":"moi/submodules/Nonlinear/reference/#MathOptInterface.Nonlinear.add_constraint","page":"API Reference","title":"MathOptInterface.Nonlinear.add_constraint","text":"add_constraint(\n model::Model,\n func,\n set::Union{\n MOI.GreaterThan{Float64},\n MOI.LessThan{Float64},\n MOI.Interval{Float64},\n MOI.EqualTo{Float64},\n },\n)\n\nParse func and set into a Constraint and add to model. Returns a ConstraintIndex that can be used to delete the constraint or query solution information.\n\nExamples\n\nmodel = Model()\nx = MOI.VariableIndex(1)\nc = add_constraint(model, :($x^2), MOI.LessThan(1.0))\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Nonlinear/reference/#MathOptInterface.Nonlinear.delete","page":"API Reference","title":"MathOptInterface.Nonlinear.delete","text":"delete(model::Model, c::ConstraintIndex)::Nothing\n\nDelete the constraint index c from model.\n\nExamples\n\nmodel = Model()\nx = MOI.VariableIndex(1)\nc = add_constraint(model, :($x^2), MOI.LessThan(1.0))\ndelete(model, c)\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Nonlinear/reference/#nonlinear_api_operators","page":"API Reference","title":"User-defined operators","text":"","category":"section"},{"location":"moi/submodules/Nonlinear/reference/","page":"API Reference","title":"API Reference","text":"Nonlinear.OperatorRegistry\nNonlinear.DEFAULT_UNIVARIATE_OPERATORS\nNonlinear.DEFAULT_MULTIVARIATE_OPERATORS\nNonlinear.register_operator\nNonlinear.register_operator_if_needed\nNonlinear.assert_registered\nNonlinear.check_return_type\nNonlinear.eval_univariate_function\nNonlinear.eval_univariate_gradient\nNonlinear.eval_univariate_hessian\nNonlinear.eval_multivariate_function\nNonlinear.eval_multivariate_gradient\nNonlinear.eval_multivariate_hessian\nNonlinear.eval_logic_function\nNonlinear.eval_comparison_function","category":"page"},{"location":"moi/submodules/Nonlinear/reference/#MathOptInterface.Nonlinear.OperatorRegistry","page":"API Reference","title":"MathOptInterface.Nonlinear.OperatorRegistry","text":"OperatorRegistry()\n\nCreate a new OperatorRegistry to store and evaluate univariate and multivariate operators.\n\n\n\n\n\n","category":"type"},{"location":"moi/submodules/Nonlinear/reference/#MathOptInterface.Nonlinear.DEFAULT_UNIVARIATE_OPERATORS","page":"API Reference","title":"MathOptInterface.Nonlinear.DEFAULT_UNIVARIATE_OPERATORS","text":"DEFAULT_UNIVARIATE_OPERATORS\n\nThe list of univariate operators that are supported by default.\n\nExample\n\njulia> import MathOptInterface as MOI\n\njulia> MOI.Nonlinear.DEFAULT_UNIVARIATE_OPERATORS\n72-element Vector{Symbol}:\n :+\n :-\n :abs\n :sqrt\n :cbrt\n :abs2\n :inv\n :log\n :log10\n :log2\n ⋮\n :airybi\n :airyaiprime\n :airybiprime\n :besselj0\n :besselj1\n :bessely0\n :bessely1\n :erfcx\n :dawson\n\n\n\n\n\n","category":"constant"},{"location":"moi/submodules/Nonlinear/reference/#MathOptInterface.Nonlinear.DEFAULT_MULTIVARIATE_OPERATORS","page":"API Reference","title":"MathOptInterface.Nonlinear.DEFAULT_MULTIVARIATE_OPERATORS","text":"DEFAULT_MULTIVARIATE_OPERATORS\n\nThe list of multivariate operators that are supported by default.\n\nExample\n\njulia> import MathOptInterface as MOI\n\njulia> MOI.Nonlinear.DEFAULT_MULTIVARIATE_OPERATORS\n9-element Vector{Symbol}:\n :+\n :-\n :*\n :^\n :/\n :ifelse\n :atan\n :min\n :max\n\n\n\n\n\n","category":"constant"},{"location":"moi/submodules/Nonlinear/reference/#MathOptInterface.Nonlinear.register_operator","page":"API Reference","title":"MathOptInterface.Nonlinear.register_operator","text":"register_operator(\n model::Model,\n op::Symbol,\n nargs::Int,\n f::Function,\n [∇f::Function],\n [∇²f::Function],\n)\n\nRegister the user-defined operator op with nargs input arguments in model.\n\nUnivariate functions\n\nf(x::T)::T must be a function that takes a single input argument x and returns the function evaluated at x. If ∇f and ∇²f are not provided, f must support any Real input type T.\n∇f(x::T)::T is a function that takes a single input argument x and returns the first derivative of f with respect to x. If ∇²f is not provided, ∇f must support any Real input type T.\n∇²f(x::T)::T is a function that takes a single input argument x and returns the second derivative of f with respect to x.\n\nMultivariate functions\n\nf(x::T...)::T must be a function that takes a nargs input arguments x and returns the function evaluated at x. If ∇f and ∇²f are not provided, f must support any Real input type T.\n∇f(g::AbstractVector{T}, x::T...)::T is a function that takes a cache vector g of length length(x), and fills each element g[i] with the partial derivative of f with respect to x[i].\n∇²f(H::AbstractMatrix, x::T...)::T is a function that takes a matrix H and fills the lower-triangular components H[i, j] with the Hessian of f with respect to x[i] and x[j] for i >= j.\n\nNotes for multivariate Hessians\n\nH has size(H) == (length(x), length(x)), but you must not access elements H[i, j] for i > j.\nH is dense, but you do not need to fill structural zeros.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Nonlinear/reference/#MathOptInterface.Nonlinear.register_operator_if_needed","page":"API Reference","title":"MathOptInterface.Nonlinear.register_operator_if_needed","text":"register_operator_if_needed(\n registry::OperatorRegistry,\n op::Symbol,\n nargs::Int,\n f::Function;\n)\n\nSimilar to register_operator, but this function warns if the function is not registered, and skips silently if it already is.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Nonlinear/reference/#MathOptInterface.Nonlinear.assert_registered","page":"API Reference","title":"MathOptInterface.Nonlinear.assert_registered","text":"assert_registered(registry::OperatorRegistry, op::Symbol, nargs::Int)\n\nThrow an error if op is not registered in registry with nargs arguments.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Nonlinear/reference/#MathOptInterface.Nonlinear.check_return_type","page":"API Reference","title":"MathOptInterface.Nonlinear.check_return_type","text":"check_return_type(::Type{T}, ret::S) where {T,S}\n\nOverload this method for new types S to throw an informative error if a user-defined function returns the type S instead of T.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Nonlinear/reference/#MathOptInterface.Nonlinear.eval_univariate_function","page":"API Reference","title":"MathOptInterface.Nonlinear.eval_univariate_function","text":"eval_univariate_function(\n registry::OperatorRegistry,\n op::Symbol,\n x::T,\n) where {T}\n\nEvaluate the operator op(x)::T, where op is a univariate function in registry.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Nonlinear/reference/#MathOptInterface.Nonlinear.eval_univariate_gradient","page":"API Reference","title":"MathOptInterface.Nonlinear.eval_univariate_gradient","text":"eval_univariate_gradient(\n registry::OperatorRegistry,\n op::Symbol,\n x::T,\n) where {T}\n\nEvaluate the first-derivative of the operator op(x)::T, where op is a univariate function in registry.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Nonlinear/reference/#MathOptInterface.Nonlinear.eval_univariate_hessian","page":"API Reference","title":"MathOptInterface.Nonlinear.eval_univariate_hessian","text":"eval_univariate_hessian(\n registry::OperatorRegistry,\n op::Symbol,\n x::T,\n) where {T}\n\nEvaluate the second-derivative of the operator op(x)::T, where op is a univariate function in registry.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Nonlinear/reference/#MathOptInterface.Nonlinear.eval_multivariate_function","page":"API Reference","title":"MathOptInterface.Nonlinear.eval_multivariate_function","text":"eval_multivariate_function(\n registry::OperatorRegistry,\n op::Symbol,\n x::AbstractVector{T},\n) where {T}\n\nEvaluate the operator op(x)::T, where op is a multivariate function in registry.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Nonlinear/reference/#MathOptInterface.Nonlinear.eval_multivariate_gradient","page":"API Reference","title":"MathOptInterface.Nonlinear.eval_multivariate_gradient","text":"eval_multivariate_gradient(\n registry::OperatorRegistry,\n op::Symbol,\n g::AbstractVector{T},\n x::AbstractVector{T},\n) where {T}\n\nEvaluate the gradient of operator g .= ∇op(x), where op is a multivariate function in registry.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Nonlinear/reference/#MathOptInterface.Nonlinear.eval_multivariate_hessian","page":"API Reference","title":"MathOptInterface.Nonlinear.eval_multivariate_hessian","text":"eval_multivariate_hessian(\n registry::OperatorRegistry,\n op::Symbol,\n H::AbstractMatrix,\n x::AbstractVector{T},\n) where {T}\n\nEvaluate the Hessian of operator ∇²op(x), where op is a multivariate function in registry.\n\nThe Hessian is stored in the lower-triangular part of the matrix H.\n\nnote: Note\nImplementations of the Hessian operators will not fill structural zeros. Therefore, before calling this function you should pre-populate the matrix H with 0.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Nonlinear/reference/#MathOptInterface.Nonlinear.eval_logic_function","page":"API Reference","title":"MathOptInterface.Nonlinear.eval_logic_function","text":"eval_logic_function(\n registry::OperatorRegistry,\n op::Symbol,\n lhs::T,\n rhs::T,\n)::Bool where {T}\n\nEvaluate (lhs op rhs)::Bool, where op is a logic operator in registry.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Nonlinear/reference/#MathOptInterface.Nonlinear.eval_comparison_function","page":"API Reference","title":"MathOptInterface.Nonlinear.eval_comparison_function","text":"eval_comparison_function(\n registry::OperatorRegistry,\n op::Symbol,\n lhs::T,\n rhs::T,\n)::Bool where {T}\n\nEvaluate (lhs op rhs)::Bool, where op is a comparison operator in registry.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Nonlinear/reference/#Automatic-differentiation-backends","page":"API Reference","title":"Automatic-differentiation backends","text":"","category":"section"},{"location":"moi/submodules/Nonlinear/reference/","page":"API Reference","title":"API Reference","text":"Nonlinear.Evaluator\nNonlinear.AbstractAutomaticDifferentiation\nNonlinear.ExprGraphOnly\nNonlinear.SparseReverseMode","category":"page"},{"location":"moi/submodules/Nonlinear/reference/#MathOptInterface.Nonlinear.Evaluator","page":"API Reference","title":"MathOptInterface.Nonlinear.Evaluator","text":"Evaluator(\n model::Model,\n backend::AbstractAutomaticDifferentiation,\n ordered_variables::Vector{MOI.VariableIndex},\n)\n\nCreate Evaluator, a subtype of MOI.AbstractNLPEvaluator, from Model.\n\n\n\n\n\n","category":"type"},{"location":"moi/submodules/Nonlinear/reference/#MathOptInterface.Nonlinear.AbstractAutomaticDifferentiation","page":"API Reference","title":"MathOptInterface.Nonlinear.AbstractAutomaticDifferentiation","text":"AbstractAutomaticDifferentiation\n\nAn abstract type for extending Evaluator.\n\n\n\n\n\n","category":"type"},{"location":"moi/submodules/Nonlinear/reference/#MathOptInterface.Nonlinear.ExprGraphOnly","page":"API Reference","title":"MathOptInterface.Nonlinear.ExprGraphOnly","text":"ExprGraphOnly() <: AbstractAutomaticDifferentiation\n\nThe default implementation of AbstractAutomaticDifferentiation. The only supported feature is :ExprGraph.\n\n\n\n\n\n","category":"type"},{"location":"moi/submodules/Nonlinear/reference/#MathOptInterface.Nonlinear.SparseReverseMode","page":"API Reference","title":"MathOptInterface.Nonlinear.SparseReverseMode","text":"SparseReverseMode() <: AbstractAutomaticDifferentiation\n\nAn implementation of AbstractAutomaticDifferentiation that uses sparse reverse-mode automatic differentiation to compute derivatives. Supports all features in the MOI nonlinear interface.\n\n\n\n\n\n","category":"type"},{"location":"moi/submodules/Nonlinear/reference/#Data-structure","page":"API Reference","title":"Data-structure","text":"","category":"section"},{"location":"moi/submodules/Nonlinear/reference/","page":"API Reference","title":"API Reference","text":"Nonlinear.Node\nNonlinear.NodeType\nNonlinear.Expression\nNonlinear.Constraint\nNonlinear.adjacency_matrix\nNonlinear.parse_expression\nNonlinear.convert_to_expr\nNonlinear.ordinal_index","category":"page"},{"location":"moi/submodules/Nonlinear/reference/#MathOptInterface.Nonlinear.Node","page":"API Reference","title":"MathOptInterface.Nonlinear.Node","text":"struct Node\n type::NodeType\n index::Int\n parent::Int\nend\n\nA single node in a nonlinear expression tree. Used by Expression.\n\nSee the MathOptInterface documentation for information on how the nodes and values form an expression tree.\n\n\n\n\n\n","category":"type"},{"location":"moi/submodules/Nonlinear/reference/#MathOptInterface.Nonlinear.NodeType","page":"API Reference","title":"MathOptInterface.Nonlinear.NodeType","text":"NodeType\n\nAn enum describing the possible node types. Each Node has a .index field, which should be interpreted as follows:\n\nNODE_CALL_MULTIVARIATE: the index into operators.multivariate_operators\nNODE_CALL_UNIVARIATE: the index into operators.univariate_operators\nNODE_LOGIC: the index into operators.logic_operators\nNODE_COMPARISON: the index into operators.comparison_operators\nNODE_MOI_VARIABLE: the value of MOI.VariableIndex(index) in the user's space of the model.\nNODE_VARIABLE: the 1-based index of the internal vector\nNODE_VALUE: the index into the .values field of Expression\nNODE_PARAMETER: the index into data.parameters\nNODE_SUBEXPRESSION: the index into data.expressions\n\n\n\n\n\n","category":"type"},{"location":"moi/submodules/Nonlinear/reference/#MathOptInterface.Nonlinear.Expression","page":"API Reference","title":"MathOptInterface.Nonlinear.Expression","text":"struct Expression\n nodes::Vector{Node}\n values::Vector{Float64}\nend\n\nThe core type that represents a nonlinear expression. See the MathOptInterface documentation for information on how the nodes and values form an expression tree.\n\n\n\n\n\n","category":"type"},{"location":"moi/submodules/Nonlinear/reference/#MathOptInterface.Nonlinear.Constraint","page":"API Reference","title":"MathOptInterface.Nonlinear.Constraint","text":"struct Constraint\n expression::Expression\n set::Union{\n MOI.LessThan{Float64},\n MOI.GreaterThan{Float64},\n MOI.EqualTo{Float64},\n MOI.Interval{Float64},\n }\nend\n\nA type to hold information relating to the nonlinear constraint f(x) in S, where f(x) is defined by .expression, and S is .set.\n\n\n\n\n\n","category":"type"},{"location":"moi/submodules/Nonlinear/reference/#MathOptInterface.Nonlinear.adjacency_matrix","page":"API Reference","title":"MathOptInterface.Nonlinear.adjacency_matrix","text":"adjacency_matrix(nodes::Vector{Node})\n\nCompute the sparse adjacency matrix describing the parent-child relationships in nodes.\n\nThe element (i, j) is true if there is an edge from node[j] to node[i]. Since we get a column-oriented matrix, this gives us a fast way to look up the edges leaving any node (i.e., the children).\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Nonlinear/reference/#MathOptInterface.Nonlinear.parse_expression","page":"API Reference","title":"MathOptInterface.Nonlinear.parse_expression","text":"parse_expression(data::Model, input)::Expression\n\nParse input into a Expression.\n\n\n\n\n\nparse_expression(\n data::Model,\n expr::Expression,\n input::Any,\n parent_index::Int,\n)::Expression\n\nParse input into a Expression, and add it to expr as a child of expr.nodes[parent_index]. Existing subexpressions and parameters are stored in data.\n\nYou can extend parsing support to new types of objects by overloading this method with a different type on input::Any.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Nonlinear/reference/#MathOptInterface.Nonlinear.convert_to_expr","page":"API Reference","title":"MathOptInterface.Nonlinear.convert_to_expr","text":"convert_to_expr(data::Model, expr::Expression)\n\nConvert the Expression expr into a Julia Expr.\n\nsubexpressions are represented by a ExpressionIndex object.\nparameters are represented by a ParameterIndex object.\nvariables are represennted by an MOI.VariableIndex object.\n\n\n\n\n\nconvert_to_expr(\n evaluator::Evaluator,\n expr::Expression;\n moi_output_format::Bool,\n)\n\nConvert the Expression expr into a Julia Expr.\n\nIf moi_output_format = true:\n\nsubexpressions will be converted to Julia Expr and substituted into the output expression.\nthe current value of each parameter will be interpolated into the expression\nvariables will be represented in the form x[MOI.VariableIndex(i)]\n\nIf moi_output_format = false:\n\nsubexpressions will be represented by a ExpressionIndex object.\nparameters will be represented by a ParameterIndex object.\nvariables will be represennted by an MOI.VariableIndex object.\n\nwarning: Warning\nTo use moi_output_format = true, you must have first called MOI.initialize with :ExprGraph as a requested feature.\n\n\n\n\n\n","category":"function"},{"location":"moi/submodules/Nonlinear/reference/#MathOptInterface.Nonlinear.ordinal_index","page":"API Reference","title":"MathOptInterface.Nonlinear.ordinal_index","text":"ordinal_index(evaluator::Evaluator, c::ConstraintIndex)::Int\n\nReturn the 1-indexed value of the constraint index c in evaluator.\n\nExamples\n\nmodel = Model()\nx = MOI.VariableIndex(1)\nc1 = add_constraint(model, :($x^2), MOI.LessThan(1.0))\nc2 = add_constraint(model, :($x^2), MOI.LessThan(1.0))\nevaluator = Evaluator(model)\nMOI.initialize(evaluator, Symbol[])\nordinal_index(evaluator, c2) # Returns 2\ndelete(model, c1)\nevaluator = Evaluator(model)\nMOI.initialize(evaluator, Symbol[])\nordinal_index(model, c2) # Returns 1\n\n\n\n\n\n","category":"function"},{"location":"packages/Juniper/","page":"lanl-ansi/Juniper.jl","title":"lanl-ansi/Juniper.jl","text":"EditURL = \"https://github.com/lanl-ansi/Juniper.jl/blob/62532341586d447f19c7360715333ba62a42bea9/README.md\"","category":"page"},{"location":"packages/Juniper/#Juniper","page":"lanl-ansi/Juniper.jl","title":"Juniper","text":"","category":"section"},{"location":"packages/Juniper/","page":"lanl-ansi/Juniper.jl","title":"lanl-ansi/Juniper.jl","text":"(Image: CI) (Image: codecov) (Image: Documentation)","category":"page"},{"location":"packages/Juniper/","page":"lanl-ansi/Juniper.jl","title":"lanl-ansi/Juniper.jl","text":"Juniper (Jump Nonlinear Integer Program solver) is a solver for mixed-integer nonlinear programs. ","category":"page"},{"location":"packages/Juniper/","page":"lanl-ansi/Juniper.jl","title":"lanl-ansi/Juniper.jl","text":"It is a heuristic which is not guaranteed to find the global optimum. If you need the global optimum, check out Alpine.","category":"page"},{"location":"packages/Juniper/#Installation","page":"lanl-ansi/Juniper.jl","title":"Installation","text":"","category":"section"},{"location":"packages/Juniper/","page":"lanl-ansi/Juniper.jl","title":"lanl-ansi/Juniper.jl","text":"Install Juniper using the Julia package manager:","category":"page"},{"location":"packages/Juniper/","page":"lanl-ansi/Juniper.jl","title":"lanl-ansi/Juniper.jl","text":"import Pkg\nPkg.add(\"JuMP\")","category":"page"},{"location":"packages/Juniper/#Use-with-JuMP","page":"lanl-ansi/Juniper.jl","title":"Use with JuMP","text":"","category":"section"},{"location":"packages/Juniper/","page":"lanl-ansi/Juniper.jl","title":"lanl-ansi/Juniper.jl","text":"Use Juniper with JuMP as follows:","category":"page"},{"location":"packages/Juniper/","page":"lanl-ansi/Juniper.jl","title":"lanl-ansi/Juniper.jl","text":"using JuMP, Juniper, Ipopt\nipopt = optimizer_with_attributes(Ipopt.Optimizer, \"print_level\"=>0)\noptimizer = optimizer_with_attributes(Juniper.Optimizer, \"nl_solver\"=>ipopt)\nmodel = Model(optimizer)\nv = [10, 20, 12, 23, 42]\nw = [12, 45, 12, 22, 21]\n@variable(model, x[1:5], Bin)\n@objective(model, Max, v' * x)\n@constraint(model, sum(w[i]*x[i]^2 for i in 1:5) <= 45)\noptimize!(model)\nprintln(termination_status(model))\nprintln(objective_value(model))\nprintln(value.(x))","category":"page"},{"location":"packages/Juniper/","page":"lanl-ansi/Juniper.jl","title":"lanl-ansi/Juniper.jl","text":"The nl_solver is used by Juniper to solve continuous nonlinear sub-problems while Juniper searches for acceptable assignments to the discrete variables. A common choice is Ipopt, but any optimizer that supports the continuous relaxation of the model may be used.","category":"page"},{"location":"packages/Juniper/","page":"lanl-ansi/Juniper.jl","title":"lanl-ansi/Juniper.jl","text":"To solve problems with more complex nonlinear functions, use the @NLconstraint and @NLobjective JuMP macros.","category":"page"},{"location":"packages/Juniper/#Documentation","page":"lanl-ansi/Juniper.jl","title":"Documentation","text":"","category":"section"},{"location":"packages/Juniper/","page":"lanl-ansi/Juniper.jl","title":"lanl-ansi/Juniper.jl","text":"The online documentation is available at https://lanl-ansi.github.io/Juniper.jl/stable/.","category":"page"},{"location":"packages/Juniper/#Feasibility-pump","page":"lanl-ansi/Juniper.jl","title":"Feasibility pump","text":"","category":"section"},{"location":"packages/Juniper/","page":"lanl-ansi/Juniper.jl","title":"lanl-ansi/Juniper.jl","text":"If Juniper has difficulty finding feasible solutions on your model, try adding a solver that supports integer variables (for example, HiGHS) to run a feasibility pump:","category":"page"},{"location":"packages/Juniper/","page":"lanl-ansi/Juniper.jl","title":"lanl-ansi/Juniper.jl","text":"using JuMP, Juniper, Ipopt, HiGHS\nipopt = optimizer_with_attributes(Ipopt.Optimizer, \"print_level\" => 0)\nhighs = optimizer_with_attributes(HiGHS.Optimizer, \"output_flag\" => false)\nmodel = Model(\n optimizer_with_attributes(\n Juniper.Optimizer,\n \"nl_solver\" => ipopt,\n \"mip_solver\" => highs,\n ),\n)","category":"page"},{"location":"packages/Juniper/","page":"lanl-ansi/Juniper.jl","title":"lanl-ansi/Juniper.jl","text":"The feasibility pump is used at the start of Juniper to find a feasible solution before the branch and bound part starts. For some classes of problems this can be a highly effective pre-processor.","category":"page"},{"location":"packages/Juniper/#Citing-Juniper","page":"lanl-ansi/Juniper.jl","title":"Citing Juniper","text":"","category":"section"},{"location":"packages/Juniper/","page":"lanl-ansi/Juniper.jl","title":"lanl-ansi/Juniper.jl","text":"If you find Juniper useful in your work, we kindly request that you cite the following paper or technical report:","category":"page"},{"location":"packages/Juniper/","page":"lanl-ansi/Juniper.jl","title":"lanl-ansi/Juniper.jl","text":"@inproceedings{juniper,\n Author = {Ole Kröger and Carleton Coffrin and Hassan Hijazi and Harsha Nagarajan},\n Title = {Juniper: An Open-Source Nonlinear Branch-and-Bound Solver in Julia},\n booktitle=\"Integration of Constraint Programming, Artificial Intelligence, and Operations Research\",\n pages=\"377--386\",\n year=\"2018\",\n publisher=\"Springer International Publishing\",\n isbn=\"978-3-319-93031-2\"\n}","category":"page"},{"location":"tutorials/linear/diet/","page":"The diet problem","title":"The diet problem","text":"EditURL = \"diet.jl\"","category":"page"},{"location":"tutorials/linear/diet/#The-diet-problem","page":"The diet problem","title":"The diet problem","text":"","category":"section"},{"location":"tutorials/linear/diet/","page":"The diet problem","title":"The diet problem","text":"This tutorial was generated using Literate.jl. Download the source as a .jl file.","category":"page"},{"location":"tutorials/linear/diet/","page":"The diet problem","title":"The diet problem","text":"The purpose of this tutorial is to demonstrate how to incorporate DataFrames into a JuMP model. As an example, we use classic Stigler diet problem.","category":"page"},{"location":"tutorials/linear/diet/#Required-packages","page":"The diet problem","title":"Required packages","text":"","category":"section"},{"location":"tutorials/linear/diet/","page":"The diet problem","title":"The diet problem","text":"This tutorial requires the following packages:","category":"page"},{"location":"tutorials/linear/diet/","page":"The diet problem","title":"The diet problem","text":"using JuMP\nimport CSV\nimport DataFrames\nimport HiGHS\nimport Test #hide","category":"page"},{"location":"tutorials/linear/diet/#Formulation","page":"The diet problem","title":"Formulation","text":"","category":"section"},{"location":"tutorials/linear/diet/","page":"The diet problem","title":"The diet problem","text":"We wish to cook a nutritionally balanced meal by choosing the quantity of each food f to eat from a set of foods F in our kitchen.","category":"page"},{"location":"tutorials/linear/diet/","page":"The diet problem","title":"The diet problem","text":"Each food f has a cost, c_f, as well as a macro-nutrient profile a_mf for each macro-nutrient m in M.","category":"page"},{"location":"tutorials/linear/diet/","page":"The diet problem","title":"The diet problem","text":"Because we care about a nutritionally balanced meal, we set some minimum and maximum limits for each nutrient, which we denote l_m and u_m respectively.","category":"page"},{"location":"tutorials/linear/diet/","page":"The diet problem","title":"The diet problem","text":"Furthermore, because we are optimizers, we seek the minimum cost solution.","category":"page"},{"location":"tutorials/linear/diet/","page":"The diet problem","title":"The diet problem","text":"With a little effort, we can formulate our dinner problem as the following linear program:","category":"page"},{"location":"tutorials/linear/diet/","page":"The diet problem","title":"The diet problem","text":"beginaligned\nmin sumlimits_f in F c_f x_f \ntextst l_m le sumlimits_f in F a_mf x_f le u_m forall m in M \n x_f ge 0 forall f in F\nendaligned","category":"page"},{"location":"tutorials/linear/diet/","page":"The diet problem","title":"The diet problem","text":"In the rest of this tutorial, we will create and solve this problem in JuMP, and learn what we should cook for dinner.","category":"page"},{"location":"tutorials/linear/diet/#Data","page":"The diet problem","title":"Data","text":"","category":"section"},{"location":"tutorials/linear/diet/","page":"The diet problem","title":"The diet problem","text":"First, we need some data for the problem. For this tutorial, we'll write CSV files to a temporary directory from Julia. If you have existing files, you could change the filenames to point to them instead.","category":"page"},{"location":"tutorials/linear/diet/","page":"The diet problem","title":"The diet problem","text":"dir = mktempdir()","category":"page"},{"location":"tutorials/linear/diet/","page":"The diet problem","title":"The diet problem","text":"The first file is a list of foods with their macro-nutrient profile:","category":"page"},{"location":"tutorials/linear/diet/","page":"The diet problem","title":"The diet problem","text":"food_csv_filename = joinpath(dir, \"diet_foods.csv\")\nopen(food_csv_filename, \"w\") do io\n write(\n io,\n \"\"\"\n name,cost,calories,protein,fat,sodium\n hamburger,2.49,410,24,26,730\n chicken,2.89,420,32,10,1190\n hot dog,1.50,560,20,32,1800\n fries,1.89,380,4,19,270\n macaroni,2.09,320,12,10,930\n pizza,1.99,320,15,12,820\n salad,2.49,320,31,12,1230\n milk,0.89,100,8,2.5,125\n ice cream,1.59,330,8,10,180\n \"\"\",\n )\n return\nend\nfoods = CSV.read(food_csv_filename, DataFrames.DataFrame)","category":"page"},{"location":"tutorials/linear/diet/","page":"The diet problem","title":"The diet problem","text":"Here, F is foods.name and c_f is foods.cost. (We're also playing a bit loose the term \"macro-nutrient\" by including calories and sodium.)","category":"page"},{"location":"tutorials/linear/diet/","page":"The diet problem","title":"The diet problem","text":"We also need our minimum and maximum limits:","category":"page"},{"location":"tutorials/linear/diet/","page":"The diet problem","title":"The diet problem","text":"nutrient_csv_filename = joinpath(dir, \"diet_nutrient.csv\")\nopen(nutrient_csv_filename, \"w\") do io\n write(\n io,\n \"\"\"\n nutrient,min,max\n calories,1800,2200\n protein,91,\n fat,0,65\n sodium,0,1779\n \"\"\",\n )\n return\nend\nlimits = CSV.read(nutrient_csv_filename, DataFrames.DataFrame)","category":"page"},{"location":"tutorials/linear/diet/","page":"The diet problem","title":"The diet problem","text":"Protein is missing data for the maximum. Let's fix that using coalesce:","category":"page"},{"location":"tutorials/linear/diet/","page":"The diet problem","title":"The diet problem","text":"limits.max = coalesce.(limits.max, Inf)\nlimits","category":"page"},{"location":"tutorials/linear/diet/#JuMP-formulation","page":"The diet problem","title":"JuMP formulation","text":"","category":"section"},{"location":"tutorials/linear/diet/","page":"The diet problem","title":"The diet problem","text":"Now we're ready to convert our mathematical formulation into a JuMP model.","category":"page"},{"location":"tutorials/linear/diet/","page":"The diet problem","title":"The diet problem","text":"First, create a new JuMP model. Since we have a linear program, we'll use HiGHS as our optimizer:","category":"page"},{"location":"tutorials/linear/diet/","page":"The diet problem","title":"The diet problem","text":"model = Model(HiGHS.Optimizer)\nset_silent(model)","category":"page"},{"location":"tutorials/linear/diet/","page":"The diet problem","title":"The diet problem","text":"Next, we create a set of decision variables x, with one element for each row in the DataFrame, and each x has a lower bound of 0:","category":"page"},{"location":"tutorials/linear/diet/","page":"The diet problem","title":"The diet problem","text":"@variable(model, x[foods.name] >= 0)","category":"page"},{"location":"tutorials/linear/diet/","page":"The diet problem","title":"The diet problem","text":"To simplify things later on, we store the vector as a new column x in the DataFrame foods. Since x is a DenseAxisArray, we first need to convert it to an Array:","category":"page"},{"location":"tutorials/linear/diet/","page":"The diet problem","title":"The diet problem","text":"foods.x = Array(x)","category":"page"},{"location":"tutorials/linear/diet/","page":"The diet problem","title":"The diet problem","text":"Our objective is to minimize the total cost of purchasing food:","category":"page"},{"location":"tutorials/linear/diet/","page":"The diet problem","title":"The diet problem","text":"@objective(model, Min, sum(foods.cost .* foods.x));\nnothing #hide","category":"page"},{"location":"tutorials/linear/diet/","page":"The diet problem","title":"The diet problem","text":"For the next component, we need to add a constraint that our total intake of each component is within the limits contained in the limits DataFrame:","category":"page"},{"location":"tutorials/linear/diet/","page":"The diet problem","title":"The diet problem","text":"@constraint(\n model,\n [row in eachrow(limits)],\n row.min <= sum(foods[!, row.nutrient] .* foods.x) <= row.max,\n);\nnothing #hide","category":"page"},{"location":"tutorials/linear/diet/","page":"The diet problem","title":"The diet problem","text":"What does our model look like?","category":"page"},{"location":"tutorials/linear/diet/","page":"The diet problem","title":"The diet problem","text":"print(model)","category":"page"},{"location":"tutorials/linear/diet/#Solution","page":"The diet problem","title":"Solution","text":"","category":"section"},{"location":"tutorials/linear/diet/","page":"The diet problem","title":"The diet problem","text":"Let's optimize and take a look at the solution:","category":"page"},{"location":"tutorials/linear/diet/","page":"The diet problem","title":"The diet problem","text":"optimize!(model)\nTest.@test primal_status(model) == FEASIBLE_POINT #hide\nTest.@test objective_value(model) ≈ 11.8288 atol = 1e-4 #hide\nsolution_summary(model)","category":"page"},{"location":"tutorials/linear/diet/","page":"The diet problem","title":"The diet problem","text":"We found an optimal solution. Let's see what the optimal solution is:","category":"page"},{"location":"tutorials/linear/diet/","page":"The diet problem","title":"The diet problem","text":"for row in eachrow(foods)\n println(row.name, \" = \", value(row.x))\nend","category":"page"},{"location":"tutorials/linear/diet/","page":"The diet problem","title":"The diet problem","text":"That's a lot of milk and ice cream, and sadly, we only get 0.6 of a hamburger.","category":"page"},{"location":"tutorials/linear/diet/","page":"The diet problem","title":"The diet problem","text":"We can also use the function Containers.rowtable to easily convert the result into a DataFrame:","category":"page"},{"location":"tutorials/linear/diet/","page":"The diet problem","title":"The diet problem","text":"table = Containers.rowtable(value, x; header = [:food, :quantity])\nsolution = DataFrames.DataFrame(table)","category":"page"},{"location":"tutorials/linear/diet/","page":"The diet problem","title":"The diet problem","text":"This makes it easy to perform analyses our solution:","category":"page"},{"location":"tutorials/linear/diet/","page":"The diet problem","title":"The diet problem","text":"filter!(row -> row.quantity > 0.0, solution)","category":"page"},{"location":"tutorials/linear/diet/#Problem-modification","page":"The diet problem","title":"Problem modification","text":"","category":"section"},{"location":"tutorials/linear/diet/","page":"The diet problem","title":"The diet problem","text":"JuMP makes it easy to take an existing model and modify it by adding extra constraints. Let's see what happens if we add a constraint that we can buy at most 6 units of milk or ice cream combined.","category":"page"},{"location":"tutorials/linear/diet/","page":"The diet problem","title":"The diet problem","text":"dairy_foods = [\"milk\", \"ice cream\"]\nis_dairy = map(name -> name in dairy_foods, foods.name)\ndairy_constraint = @constraint(model, sum(foods[is_dairy, :x]) <= 6)\noptimize!(model)\nTest.@test termination_status(model) == INFEASIBLE #hide\nTest.@test primal_status(model) == NO_SOLUTION #hide\nsolution_summary(model)","category":"page"},{"location":"tutorials/linear/diet/","page":"The diet problem","title":"The diet problem","text":"There exists no feasible solution to our problem. Looks like we're stuck eating ice cream for dinner.","category":"page"},{"location":"tutorials/linear/diet/#Next-steps","page":"The diet problem","title":"Next steps","text":"","category":"section"},{"location":"tutorials/linear/diet/","page":"The diet problem","title":"The diet problem","text":"You can delete a constraint using delete(model, dairy_constraint). Can you add a different constraint to provide a diet with less dairy?\nSome food items (like hamburgers) are discrete. You can use set_integer to force a variable to take integer values. What happens to the solution if you do?","category":"page"},{"location":"tutorials/linear/n-queens/","page":"N-Queens","title":"N-Queens","text":"EditURL = \"n-queens.jl\"","category":"page"},{"location":"tutorials/linear/n-queens/#N-Queens","page":"N-Queens","title":"N-Queens","text":"","category":"section"},{"location":"tutorials/linear/n-queens/","page":"N-Queens","title":"N-Queens","text":"This tutorial was generated using Literate.jl. Download the source as a .jl file.","category":"page"},{"location":"tutorials/linear/n-queens/","page":"N-Queens","title":"N-Queens","text":"This tutorial was originally contributed by Matthew Helm and Mathieu Tanneau.","category":"page"},{"location":"tutorials/linear/n-queens/","page":"N-Queens","title":"N-Queens","text":"The N-Queens problem involves placing N queens on an N x N chessboard such that none of the queens attacks another. In chess, a queen can move vertically, horizontally, and diagonally so there cannot be more than one queen on any given row, column, or diagonal.","category":"page"},{"location":"tutorials/linear/n-queens/","page":"N-Queens","title":"N-Queens","text":"(Image: Four Queens)","category":"page"},{"location":"tutorials/linear/n-queens/","page":"N-Queens","title":"N-Queens","text":"Note that none of the queens above are able to attack any other as a result of their careful placement.","category":"page"},{"location":"tutorials/linear/n-queens/","page":"N-Queens","title":"N-Queens","text":"using JuMP\nimport HiGHS\nimport LinearAlgebra","category":"page"},{"location":"tutorials/linear/n-queens/","page":"N-Queens","title":"N-Queens","text":"N-Queens","category":"page"},{"location":"tutorials/linear/n-queens/","page":"N-Queens","title":"N-Queens","text":"N = 8\n\nmodel = Model(HiGHS.Optimizer)\nset_silent(model)","category":"page"},{"location":"tutorials/linear/n-queens/","page":"N-Queens","title":"N-Queens","text":"Next, let's create an N x N chessboard of binary values. 0 will represent an empty space on the board and 1 will represent a space occupied by one of our queens:","category":"page"},{"location":"tutorials/linear/n-queens/","page":"N-Queens","title":"N-Queens","text":"@variable(model, x[1:N, 1:N], Bin);\nnothing #hide","category":"page"},{"location":"tutorials/linear/n-queens/","page":"N-Queens","title":"N-Queens","text":"Now we can add our constraints:","category":"page"},{"location":"tutorials/linear/n-queens/","page":"N-Queens","title":"N-Queens","text":"There must be exactly one queen in a given row/column","category":"page"},{"location":"tutorials/linear/n-queens/","page":"N-Queens","title":"N-Queens","text":"for i in 1:N\n @constraint(model, sum(x[i, :]) == 1)\n @constraint(model, sum(x[:, i]) == 1)\nend","category":"page"},{"location":"tutorials/linear/n-queens/","page":"N-Queens","title":"N-Queens","text":"There can only be one queen on any given diagonal","category":"page"},{"location":"tutorials/linear/n-queens/","page":"N-Queens","title":"N-Queens","text":"for i in -(N - 1):(N-1)\n @constraint(model, sum(LinearAlgebra.diag(x, i)) <= 1)\n @constraint(model, sum(LinearAlgebra.diag(reverse(x; dims = 1), i)) <= 1)\nend","category":"page"},{"location":"tutorials/linear/n-queens/","page":"N-Queens","title":"N-Queens","text":"We are ready to put our model to work and see if it is able to find a feasible solution:","category":"page"},{"location":"tutorials/linear/n-queens/","page":"N-Queens","title":"N-Queens","text":"optimize!(model)","category":"page"},{"location":"tutorials/linear/n-queens/","page":"N-Queens","title":"N-Queens","text":"We can now review the solution that our model found:","category":"page"},{"location":"tutorials/linear/n-queens/","page":"N-Queens","title":"N-Queens","text":"solution = round.(Int, value.(x))","category":"page"},{"location":"packages/SDPNAL/","page":"jump-dev/SDPNAL.jl","title":"jump-dev/SDPNAL.jl","text":"EditURL = \"https://github.com/jump-dev/SDPNAL.jl/blob/00a3fa19f4e1235587948113b0b681da17f4dab5/README.md\"","category":"page"},{"location":"packages/SDPNAL/#SDPNAL.jl","page":"jump-dev/SDPNAL.jl","title":"SDPNAL.jl","text":"","category":"section"},{"location":"packages/SDPNAL/","page":"jump-dev/SDPNAL.jl","title":"jump-dev/SDPNAL.jl","text":"SDPNAL.jl is wrapper for the SDPNALplus solver.","category":"page"},{"location":"packages/SDPNAL/","page":"jump-dev/SDPNAL.jl","title":"jump-dev/SDPNAL.jl","text":"The wrapper has two components:","category":"page"},{"location":"packages/SDPNAL/","page":"jump-dev/SDPNAL.jl","title":"jump-dev/SDPNAL.jl","text":"an exported sdpnalplus function that is a thin wrapper on top of the sdpnalplus MATLAB function\nan interface to MathOptInterface","category":"page"},{"location":"packages/SDPNAL/#Affiliation","page":"jump-dev/SDPNAL.jl","title":"Affiliation","text":"","category":"section"},{"location":"packages/SDPNAL/","page":"jump-dev/SDPNAL.jl","title":"jump-dev/SDPNAL.jl","text":"This wrapper is maintained by the JuMP community and is not an official wrapper of SDPNALplus.","category":"page"},{"location":"packages/SDPNAL/#License","page":"jump-dev/SDPNAL.jl","title":"License","text":"","category":"section"},{"location":"packages/SDPNAL/","page":"jump-dev/SDPNAL.jl","title":"jump-dev/SDPNAL.jl","text":"SDPNAL.jl is licensed under the MIT License.","category":"page"},{"location":"packages/SDPNAL/","page":"jump-dev/SDPNAL.jl","title":"jump-dev/SDPNAL.jl","text":"The underlying solver, SDPNALplus is licensed under the Creative Commons Attribution-ShareAlike 4.0 International Public License.","category":"page"},{"location":"packages/SDPNAL/","page":"jump-dev/SDPNAL.jl","title":"jump-dev/SDPNAL.jl","text":"In addition, SDPNAL requires an installation of MATLAB, which is a closed-source commercial product for which you must obtain a license.","category":"page"},{"location":"packages/SDPNAL/#Use-with-JuMP","page":"jump-dev/SDPNAL.jl","title":"Use with JuMP","text":"","category":"section"},{"location":"packages/SDPNAL/","page":"jump-dev/SDPNAL.jl","title":"jump-dev/SDPNAL.jl","text":"To use SDPNAL with JuMP, do:","category":"page"},{"location":"packages/SDPNAL/","page":"jump-dev/SDPNAL.jl","title":"jump-dev/SDPNAL.jl","text":"using JuMP, SDPNAL\nmodel = Model(SDPNAL.Optimizer)\nset_attribute(model, \"printlevel\", 0)","category":"page"},{"location":"packages/SDPNAL/","page":"jump-dev/SDPNAL.jl","title":"jump-dev/SDPNAL.jl","text":"Note that, contrary to implementation of other solver-independent interfaces, using SDPNAL from JuMP or MOI fully exploits the particular structures of the SDPNAL interface and does not create superfluous slack variables and equality constraints as discussed in the SDPNAL guide:","category":"page"},{"location":"packages/SDPNAL/","page":"jump-dev/SDPNAL.jl","title":"jump-dev/SDPNAL.jl","text":"A new interface is necessary to facilitate the modeling of an SDP problem for SDPNAL+ because of latter’s flexibility to directly accept inequality constraints of the form “l ≤ B(X) ≤ u”, and bound constraints of the form “L ≤ X ≤ U”. The flexibility can significantly simplify the generation of the data in the SDPNAL+ format as compared to what need to be done in CVX or YALMIP to reformulate them as equality constraints through introducing extra variables. In addition, the final number of equality constraints present in the data input to SDPNAL+ can also be substantially fewer than those present in CVX or YALMIP. It is important to note here that the number of equality constraints present in the generated problem data can greatly affect the computational efficiency of the solvers, especially for interior-point based solvers.","category":"page"},{"location":"packages/SDPNAL/#Installation","page":"jump-dev/SDPNAL.jl","title":"Installation","text":"","category":"section"},{"location":"packages/SDPNAL/","page":"jump-dev/SDPNAL.jl","title":"jump-dev/SDPNAL.jl","text":"First, make sure that you satisfy the requirements of the MATLAB.jl Julia package, and that the SDPNALplus software is installed in your MATLAB™ installation.","category":"page"},{"location":"packages/SDPNAL/","page":"jump-dev/SDPNAL.jl","title":"jump-dev/SDPNAL.jl","text":"Then, install SDPNAL.jl using Pkg.add:","category":"page"},{"location":"packages/SDPNAL/","page":"jump-dev/SDPNAL.jl","title":"jump-dev/SDPNAL.jl","text":"import Pkg\nPkg.add(\"SDPNAL\")","category":"page"},{"location":"packages/SDPNAL/","page":"jump-dev/SDPNAL.jl","title":"jump-dev/SDPNAL.jl","text":"There is a startup.m file at the root of the SDPNAL folder. This adds all subdirectories recursively when MATLAB starts. However, the interface directory contains a .git subdirectory which contains a very large number of files. Because of this, MATLAB crashes if SDPNAL is in its path because the startup.m requests MATLAB to try to parse all the files in the .git folder. To resolve this problem, delete the startup.m file and .git folder, and add the subdirectories manually your toolbox/local/pathdef.m file as follows:","category":"page"},{"location":"packages/SDPNAL/","page":"jump-dev/SDPNAL.jl","title":"jump-dev/SDPNAL.jl","text":"function p = pathdef\n\n% (...)\n\np = [...\n%%% BEGIN ENTRIES %%%\n'/path/to/SDPNALv1.0:', ...\n'/path/to/SDPNALv1.0/interface:', ...\n'/path/to/SDPNALv1.0/mexfun:', ...\n'/path/to/SDPNALv1.0/solver:', ...\n'/path/to/SDPNALv1.0/solver_main_default:', ...\n'/path/to/SDPNALv1.0/util:', ...\n% (...)","category":"page"},{"location":"packages/SDPNAL/","page":"jump-dev/SDPNAL.jl","title":"jump-dev/SDPNAL.jl","text":"If you have SDPT3 in addition to SDPNAL in the MATLAB path (that is, the toolbox/local/pathdef.m file) then you might have issues because both solvers define a validate function, and this might make SDPNAL call SDPT3's validate function instead of SDPT3's validate function.","category":"page"},{"location":"should_i_use/#Should-you-use-JuMP?","page":"Should you use JuMP?","title":"Should you use JuMP?","text":"","category":"section"},{"location":"should_i_use/","page":"Should you use JuMP?","title":"Should you use JuMP?","text":"JuMP is an algebraic modeling language for mathematical optimization written in the Julia language.","category":"page"},{"location":"should_i_use/","page":"Should you use JuMP?","title":"Should you use JuMP?","text":"This page explains when you should consider using JuMP, and importantly, when you should not use JuMP.","category":"page"},{"location":"should_i_use/#When-should-you-use-JuMP?","page":"Should you use JuMP?","title":"When should you use JuMP?","text":"","category":"section"},{"location":"should_i_use/","page":"Should you use JuMP?","title":"Should you use JuMP?","text":"You should use JuMP if you have a constrained optimization problem for which you can formulate using the language of mathematical programming, that is:","category":"page"},{"location":"should_i_use/","page":"Should you use JuMP?","title":"Should you use JuMP?","text":"a set of decision variables\na scalar- or vector-valued objective function\na set of constraints.","category":"page"},{"location":"should_i_use/","page":"Should you use JuMP?","title":"Should you use JuMP?","text":"Key reasons to use JuMP include:","category":"page"},{"location":"should_i_use/","page":"Should you use JuMP?","title":"Should you use JuMP?","text":"User friendliness\nJuMP has syntax that mimics natural mathematical expressions. (See the section on algebraic modeling languages.)\nSolver independence\nJuMP uses a generic solver-independent interface provided by the MathOptInterface package, making it easy to change between a number of open-source and commercial optimization software packages (\"solvers\"). The Supported solvers section contains a table of the currently supported solvers.\nEase of embedding\nJuMP itself is written purely in Julia. Solvers are the only binary dependencies.\nJuMP provides automatic installation of many open-source solvers. This is different to modeling languages in Python which require you to download and install a solver yourself.\nBecause it is embedded in a general-purpose programming language, JuMP makes it easy to solve optimization problems as part of a larger workflow, for example, inside a simulation, behind a web server, or as a subproblem in a decomposition algorithm. As a trade-off, JuMP's syntax is constrained by the syntax and functionality available in Julia.\nJuMP is MPL licensed, meaning that it can be embedded in commercial software that complies with the terms of the license.\nSpeed\nBenchmarking has shown that JuMP can create problems at similar speeds to special-purpose modeling languages such as AMPL.\nJuMP communicates with most solvers in memory, avoiding the need to write intermediary files.\nAccess to advanced algorithmic techniques\nJuMP supports efficient in-memory re-solves of linear programs, which previously required using solver-specific or low-level C++ libraries.\nJuMP provides access to solver-independent and solver-dependent Callbacks.","category":"page"},{"location":"should_i_use/#When-should-you-not-use-JuMP?","page":"Should you use JuMP?","title":"When should you not use JuMP?","text":"","category":"section"},{"location":"should_i_use/","page":"Should you use JuMP?","title":"Should you use JuMP?","text":"JuMP supports a broad range of optimization classes. However, there are still some that it doesn't support, or that are better supported by other software packages.","category":"page"},{"location":"should_i_use/#You-want-to-optimize-a-complicated-Julia-function","page":"Should you use JuMP?","title":"You want to optimize a complicated Julia function","text":"","category":"section"},{"location":"should_i_use/","page":"Should you use JuMP?","title":"Should you use JuMP?","text":"Packages in Julia compose well. It's common for people to pick two unrelated packages and use them in conjunction to create novel behavior. JuMP isn't one of those packages.","category":"page"},{"location":"should_i_use/","page":"Should you use JuMP?","title":"Should you use JuMP?","text":"If you want to optimize an ordinary differential equation from DifferentialEquations.jl or tune a neural network from Flux.jl, consider using other packages such as:","category":"page"},{"location":"should_i_use/","page":"Should you use JuMP?","title":"Should you use JuMP?","text":"Optim.jl\nOptimization.jl\nNLPModels.jl\nNonconvex.jl","category":"page"},{"location":"should_i_use/#Black-box,-derivative-free,-or-unconstrained-optimization","page":"Should you use JuMP?","title":"Black-box, derivative free, or unconstrained optimization","text":"","category":"section"},{"location":"should_i_use/","page":"Should you use JuMP?","title":"Should you use JuMP?","text":"JuMP does support nonlinear programs with constraints and objectives containing user-defined operators. However, the functions must be automatically differentiable, or need to provide explicit derivatives. (See User-defined operators for more information.)","category":"page"},{"location":"should_i_use/","page":"Should you use JuMP?","title":"Should you use JuMP?","text":"If your function is a black-box that is non-differentiable (for example, it is the output of a simulation written in C++), JuMP is not the right tool for the job. This also applies if you want to use a derivative free method.","category":"page"},{"location":"should_i_use/","page":"Should you use JuMP?","title":"Should you use JuMP?","text":"Even if your problem is differentiable, if it is unconstrained there is limited benefit (and downsides in the form of more overhead) to using JuMP over tools which are only concerned with function minimization.","category":"page"},{"location":"should_i_use/","page":"Should you use JuMP?","title":"Should you use JuMP?","text":"Alternatives to consider are:","category":"page"},{"location":"should_i_use/","page":"Should you use JuMP?","title":"Should you use JuMP?","text":"Optim.jl\nOptimization.jl\nNLopt.jl","category":"page"},{"location":"should_i_use/#Optimal-control-problems","page":"Should you use JuMP?","title":"Optimal control problems","text":"","category":"section"},{"location":"should_i_use/","page":"Should you use JuMP?","title":"Should you use JuMP?","text":"JuMP supports formulating optimal control problems as large nonlinear programs (see, for example, Optimal control for a Space Shuttle reentry trajectory). However, the nonlinear interface has a number of limitations (for example, the need to write out the dynamics in algebraic form) that mean JuMP might not be the right tool for the job.","category":"page"},{"location":"should_i_use/","page":"Should you use JuMP?","title":"Should you use JuMP?","text":"Alternatives to consider are:","category":"page"},{"location":"should_i_use/","page":"Should you use JuMP?","title":"Should you use JuMP?","text":"CasADi [MATLAB/Python], CasADi.jl\nInfiniteOpt.jl\npyomo.DAE [Python]","category":"page"},{"location":"should_i_use/#Disciplined-convex-programming","page":"Should you use JuMP?","title":"Disciplined convex programming","text":"","category":"section"},{"location":"should_i_use/","page":"Should you use JuMP?","title":"Should you use JuMP?","text":"JuMP does not support disciplined convex programming (DCP).","category":"page"},{"location":"should_i_use/","page":"Should you use JuMP?","title":"Should you use JuMP?","text":"Alternatives to consider are:","category":"page"},{"location":"should_i_use/","page":"Should you use JuMP?","title":"Should you use JuMP?","text":"Convex.jl\nCVXPY [Python]\nYALMIP [MATLAB]","category":"page"},{"location":"should_i_use/","page":"Should you use JuMP?","title":"Should you use JuMP?","text":"note: Note\nConvex.jl is also built on MathOptInterface, and shares the same set of underlying solvers. However, you input problems differently, and Convex.jl checks that the problem is DCP.","category":"page"},{"location":"should_i_use/#Stochastic-programming","page":"Should you use JuMP?","title":"Stochastic programming","text":"","category":"section"},{"location":"should_i_use/","page":"Should you use JuMP?","title":"Should you use JuMP?","text":"JuMP requires deterministic input data.","category":"page"},{"location":"should_i_use/","page":"Should you use JuMP?","title":"Should you use JuMP?","text":"If you have stochastic input data, consider using a JuMP extension such as:","category":"page"},{"location":"should_i_use/","page":"Should you use JuMP?","title":"Should you use JuMP?","text":"InfiniteOpt.jl\nStochasticPrograms.jl\nSDDP.jl","category":"page"},{"location":"should_i_use/#Polyhedral-computations","page":"Should you use JuMP?","title":"Polyhedral computations","text":"","category":"section"},{"location":"should_i_use/","page":"Should you use JuMP?","title":"Should you use JuMP?","text":"JuMP does not provide tools for working with the polyhedron formed by the set of linear constraints.","category":"page"},{"location":"should_i_use/","page":"Should you use JuMP?","title":"Should you use JuMP?","text":"Alternatives to consider are:","category":"page"},{"location":"should_i_use/","page":"Should you use JuMP?","title":"Should you use JuMP?","text":"Polyhedra.jl (See the documentation to create a polyhedron from a JuMP model.)","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"EditURL = \"design_patterns_for_larger_models.jl\"","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/#Design-patterns-for-larger-models","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"","category":"section"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"This tutorial was generated using Literate.jl. Download the source as a .jl file.","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"JuMP makes it easy to build and solve optimization models. However, once you start to construct larger models, and especially ones that interact with external data sources or have customizable sets of variables and constraints based on client choices, you may find that your scripts become unwieldy. This tutorial demonstrates a variety of ways in which you can structure larger JuMP models to improve their readability and maintainability.","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"tip: Tip\nThis tutorial is more advanced than the other \"Getting started\" tutorials. It's in the \"Getting started\" section to give you an early preview of how JuMP makes it easy to structure larger models. However, if you are new to JuMP you may want to briefly skim the tutorial, and come back to it once you have written a few JuMP models.","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/#Overview","page":"Design patterns for larger models","title":"Overview","text":"","category":"section"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"This tutorial uses explanation-by-example. We're going to start with a simple knapsack model, and then expand it to add various features and structure.","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/#A-simple-script","page":"Design patterns for larger models","title":"A simple script","text":"","category":"section"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"Your first prototype of a JuMP model is probably a script that uses a small set of hard-coded data.","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"using JuMP, HiGHS\nprofit = [5, 3, 2, 7, 4]\nweight = [2, 8, 4, 2, 5]\ncapacity = 10\nN = 5\nmodel = Model(HiGHS.Optimizer)\n@variable(model, x[1:N], Bin)\n@objective(model, Max, sum(profit[i] * x[i] for i in 1:N))\n@constraint(model, sum(weight[i] * x[i] for i in 1:N) <= capacity)\noptimize!(model)\nvalue.(x)","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"The benefits of this approach are:","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"it is quick to code\nit is quick to make changes.","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"The downsides include:","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"all variables are global (read Performance tips)\nit is easy to introduce errors, for example, having profit and weight be vectors of different lengths, or not match N\nthe solution, x[i], is hard to interpret without knowing the order in which we provided the data.","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/#Wrap-the-model-in-a-function","page":"Design patterns for larger models","title":"Wrap the model in a function","text":"","category":"section"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"A good next step is to wrap your model in a function. This is useful for a few reasons:","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"it removes global variables\nit encapsulates the JuMP model and forces you to clarify your inputs and outputs\nwe can add some error checking.","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"function solve_knapsack_1(profit::Vector, weight::Vector, capacity::Real)\n if length(profit) != length(weight)\n throw(DimensionMismatch(\"profit and weight are different sizes\"))\n end\n N = length(weight)\n model = Model(HiGHS.Optimizer)\n @variable(model, x[1:N], Bin)\n @objective(model, Max, sum(profit[i] * x[i] for i in 1:N))\n @constraint(model, sum(weight[i] * x[i] for i in 1:N) <= capacity)\n optimize!(model)\n return value.(x)\nend\n\nsolve_knapsack_1([5, 3, 2, 7, 4], [2, 8, 4, 2, 5], 10)","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/#Create-better-data-structures","page":"Design patterns for larger models","title":"Create better data structures","text":"","category":"section"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"Although we can check for errors like mis-matched vector lengths, if you start to develop models with a lot of data, keeping track of vectors and lengths and indices is fragile and a common source of bugs. A good solution is to use Julia's type system to create an abstraction over your data.","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"For example, we can create a struct that represents a single object, with a constructor that lets us validate assumptions on the input data:","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"struct KnapsackObject\n profit::Float64\n weight::Float64\n function KnapsackObject(profit::Float64, weight::Float64)\n if weight < 0\n throw(DomainError(\"Weight of object cannot be negative\"))\n end\n return new(profit, weight)\n end\nend","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"as well as a struct that holds a dictionary of objects and the knapsack's capacity:","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"struct KnapsackData\n objects::Dict{String,KnapsackObject}\n capacity::Float64\nend","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"Here's what our data might look like now:","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"objects = Dict(\n \"apple\" => KnapsackObject(5.0, 2.0),\n \"banana\" => KnapsackObject(3.0, 8.0),\n \"cherry\" => KnapsackObject(2.0, 4.0),\n \"date\" => KnapsackObject(7.0, 2.0),\n \"eggplant\" => KnapsackObject(4.0, 5.0),\n)\ndata = KnapsackData(objects, 10.0)","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"If you want, you can add custom printing to make it easier to visualize:","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"function Base.show(io::IO, data::KnapsackData)\n println(io, \"A knapsack with capacity $(data.capacity) and possible items:\")\n for (k, v) in data.objects\n println(\n io,\n \" $(rpad(k, 8)) : profit = $(v.profit), weight = $(v.weight)\",\n )\n end\n return\nend\n\ndata","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"Then, we can re-write our solve_knapsack function to take our KnapsackData as input:","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"function solve_knapsack_2(data::KnapsackData)\n model = Model(HiGHS.Optimizer)\n @variable(model, x[keys(data.objects)], Bin)\n @objective(model, Max, sum(v.profit * x[k] for (k, v) in data.objects))\n @constraint(\n model,\n sum(v.weight * x[k] for (k, v) in data.objects) <= data.capacity,\n )\n optimize!(model)\n return value.(x)\nend\n\nsolve_knapsack_2(data)","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/#Read-in-data-from-files","page":"Design patterns for larger models","title":"Read in data from files","text":"","category":"section"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"Having a data structure is a good step. But it is still annoying that we have to hard-code the data into Julia. A good next step is to separate the data into an external file format; JSON is a common choice.","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"json_data = \"\"\"\n{\n \"objects\": {\n \"apple\": {\"profit\": 5.0, \"weight\": 2.0},\n \"banana\": {\"profit\": 3.0, \"weight\": 8.0},\n \"cherry\": {\"profit\": 2.0, \"weight\": 4.0},\n \"date\": {\"profit\": 7.0, \"weight\": 2.0},\n \"eggplant\": {\"profit\": 4.0, \"weight\": 5.0}\n },\n \"capacity\": 10.0\n}\n\"\"\"\ntemp_dir = mktempdir()\nknapsack_json_filename = joinpath(temp_dir, \"knapsack.json\")\n# Instead of writing a new file here you could replace `knapsack_json_filename`\n# with the path to a local file.\nwrite(knapsack_json_filename, json_data);\nnothing #hide","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"Now let's write a function that reads this file and builds a KnapsackData object:","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"import JSON\n\nfunction read_data(filename)\n d = JSON.parsefile(filename)\n return KnapsackData(\n Dict(\n k => KnapsackObject(v[\"profit\"], v[\"weight\"]) for\n (k, v) in d[\"objects\"]\n ),\n d[\"capacity\"],\n )\nend\n\ndata = read_data(knapsack_json_filename)","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/#Add-options-via-if-else","page":"Design patterns for larger models","title":"Add options via if-else","text":"","category":"section"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"At this point, we have data in a file format which we can load and solve a single problem. For many users, this might be sufficient. However, at some point you may be asked to add features like \"but what if we want to take more than one of a particular item?\"","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"If this is the first time that you've been asked to add a feature, adding options via if-else statements is a good approach. For example, we might write:","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"function solve_knapsack_3(data::KnapsackData; binary_knapsack::Bool)\n model = Model(HiGHS.Optimizer)\n if binary_knapsack\n @variable(model, x[keys(data.objects)], Bin)\n else\n @variable(model, x[keys(data.objects)] >= 0, Int)\n end\n @objective(model, Max, sum(v.profit * x[k] for (k, v) in data.objects))\n @constraint(\n model,\n sum(v.weight * x[k] for (k, v) in data.objects) <= data.capacity,\n )\n optimize!(model)\n return value.(x)\nend","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"Now we can solve the binary knapsack:","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"solve_knapsack_3(data; binary_knapsack = true)","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"And an integer knapsack where we can take more than one copy of each item:","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"solve_knapsack_3(data; binary_knapsack = false)","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/#Add-configuration-options-via-dispatch","page":"Design patterns for larger models","title":"Add configuration options via dispatch","text":"","category":"section"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"If you get repeated requests to add different options, you'll quickly find yourself in a mess of different flags and if-else statements. It's hard to write, hard to read, and hard to ensure you haven't introduced any bugs. A good solution is to use Julia's type dispatch to control the configuration of the model. The easiest way to explain this is by example.","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"First, start by defining a new abstract type, as well as new subtypes for each of our options. These types are going to control the configuration of the knapsack model.","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"abstract type AbstractConfiguration end\n\nstruct BinaryKnapsackConfig <: AbstractConfiguration end\n\nstruct IntegerKnapsackConfig <: AbstractConfiguration end","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"Then, we rewrite our solve_knapsack function to take a config argument, and we introduce an add_knapsack_variables function to abstract the creation of our variables.","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"function solve_knapsack_4(data::KnapsackData, config::AbstractConfiguration)\n model = Model(HiGHS.Optimizer)\n x = add_knapsack_variables(model, data, config)\n @objective(model, Max, sum(v.profit * x[k] for (k, v) in data.objects))\n @constraint(\n model,\n sum(v.weight * x[k] for (k, v) in data.objects) <= data.capacity,\n )\n optimize!(model)\n return value.(x)\nend","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"For the binary knapsack problem, add_knapsack_variables looks like this:","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"function add_knapsack_variables(\n model::Model,\n data::KnapsackData,\n ::BinaryKnapsackConfig,\n)\n return @variable(model, x[keys(data.objects)], Bin)\nend","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"For the integer knapsack problem, add_knapsack_variables looks like this:","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"function add_knapsack_variables(\n model::Model,\n data::KnapsackData,\n ::IntegerKnapsackConfig,\n)\n return @variable(model, x[keys(data.objects)] >= 0, Int)\nend","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"Now we can solve the binary knapsack:","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"solve_knapsack_4(data, BinaryKnapsackConfig())","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"and the integer knapsack problem:","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"solve_knapsack_4(data, IntegerKnapsackConfig())","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"The main benefit of the dispatch approach is that you can quickly add new options without needing to modify the existing code. For example:","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"struct UpperBoundedKnapsackConfig <: AbstractConfiguration\n limit::Int\nend\n\nfunction add_knapsack_variables(\n model::Model,\n data::KnapsackData,\n config::UpperBoundedKnapsackConfig,\n)\n return @variable(model, 0 <= x[keys(data.objects)] <= config.limit, Int)\nend\n\nsolve_knapsack_4(data, UpperBoundedKnapsackConfig(3))","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/#Generalize-constraints-and-objectives","page":"Design patterns for larger models","title":"Generalize constraints and objectives","text":"","category":"section"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"It's easy to extend the dispatch approach to constraints and objectives as well. The key points to notice in the next two functions are that:","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"we can access registered variables via model[:x]\nwe can define generic functions which accept any AbstractConfiguration as a configuration argument. That means we can implement a single method and have it apply to multiple configuration types.","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"function add_knapsack_constraints(\n model::Model,\n data::KnapsackData,\n ::AbstractConfiguration,\n)\n x = model[:x]\n @constraint(\n model,\n capacity_constraint,\n sum(v.weight * x[k] for (k, v) in data.objects) <= data.capacity,\n )\n return\nend\n\nfunction add_knapsack_objective(\n model::Model,\n data::KnapsackData,\n ::AbstractConfiguration,\n)\n x = model[:x]\n @objective(model, Max, sum(v.profit * x[k] for (k, v) in data.objects))\n return\nend\n\nfunction solve_knapsack_5(data::KnapsackData, config::AbstractConfiguration)\n model = Model(HiGHS.Optimizer)\n add_knapsack_variables(model, data, config)\n add_knapsack_constraints(model, data, config)\n add_knapsack_objective(model, data, config)\n optimize!(model)\n return value.(model[:x])\nend\n\nsolve_knapsack_5(data, BinaryKnapsackConfig())","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/#Remove-solver-dependence,-add-error-checks","page":"Design patterns for larger models","title":"Remove solver dependence, add error checks","text":"","category":"section"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"Compared to where we started, our knapsack model is now significantly different. We've wrapped it in a function, defined some data types, and introduced configuration options to control the variables and constraints that get added. There are a few other steps we can do to further improve things:","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"remove the dependence on HiGHS\nadd checks that we found an optimal solution\nadd a helper function to avoid the need to explicitly construct the data.","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"function solve_knapsack_6(\n optimizer,\n data::KnapsackData,\n config::AbstractConfiguration,\n)\n model = Model(optimizer)\n add_knapsack_variables(model, data, config)\n add_knapsack_constraints(model, data, config)\n add_knapsack_objective(model, data, config)\n optimize!(model)\n if termination_status(model) != OPTIMAL\n @warn(\"Model not solved to optimality\")\n return nothing\n end\n return value.(model[:x])\nend\n\nfunction solve_knapsack_6(\n optimizer,\n data::String,\n config::AbstractConfiguration,\n)\n return solve_knapsack_6(optimizer, read_data(data), config)\nend\n\nsolution = solve_knapsack_6(\n HiGHS.Optimizer,\n knapsack_json_filename,\n BinaryKnapsackConfig(),\n)","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/#Create-a-module","page":"Design patterns for larger models","title":"Create a module","text":"","category":"section"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"Now we're ready to expose our model to the wider world. That might be as part of a larger Julia project that we're contributing to, or as a stand-alone script that we can run on-demand. In either case, it's good practice to wrap everything in a module. This further encapsulates our code into a single namespace, and we can add documentation in the form of docstrings.","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"Some good rules to follow when creating a module are:","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"use import in a module instead of using to make it clear which functions are from which packages\nuse _ to start function and type names that are considered private\nadd docstrings to all public variables and functions.","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"module KnapsackModel\n\nimport JuMP\nimport JSON\n\nstruct _KnapsackObject\n profit::Float64\n weight::Float64\n function _KnapsackObject(profit::Float64, weight::Float64)\n if weight < 0\n throw(DomainError(\"Weight of object cannot be negative\"))\n end\n return new(profit, weight)\n end\nend\n\nstruct _KnapsackData\n objects::Dict{String,_KnapsackObject}\n capacity::Float64\nend\n\nfunction _read_data(filename)\n d = JSON.parsefile(filename)\n return _KnapsackData(\n Dict(\n k => _KnapsackObject(v[\"profit\"], v[\"weight\"]) for\n (k, v) in d[\"objects\"]\n ),\n d[\"capacity\"],\n )\nend\n\nabstract type _AbstractConfiguration end\n\n\"\"\"\n BinaryKnapsackConfig()\n\nCreate a binary knapsack problem where each object can be taken 0 or 1 times.\n\"\"\"\nstruct BinaryKnapsackConfig <: _AbstractConfiguration end\n\n\"\"\"\n IntegerKnapsackConfig()\n\nCreate an integer knapsack problem where each object can be taken any number of\ntimes.\n\"\"\"\nstruct IntegerKnapsackConfig <: _AbstractConfiguration end\n\nfunction _add_knapsack_variables(\n model::JuMP.Model,\n data::_KnapsackData,\n ::BinaryKnapsackConfig,\n)\n return JuMP.@variable(model, x[keys(data.objects)], Bin)\nend\n\nfunction _add_knapsack_variables(\n model::JuMP.Model,\n data::_KnapsackData,\n ::IntegerKnapsackConfig,\n)\n return JuMP.@variable(model, x[keys(data.objects)] >= 0, Int)\nend\n\nfunction _add_knapsack_constraints(\n model::JuMP.Model,\n data::_KnapsackData,\n ::_AbstractConfiguration,\n)\n x = model[:x]\n JuMP.@constraint(\n model,\n capacity_constraint,\n sum(v.weight * x[k] for (k, v) in data.objects) <= data.capacity,\n )\n return\nend\n\nfunction _add_knapsack_objective(\n model::JuMP.Model,\n data::_KnapsackData,\n ::_AbstractConfiguration,\n)\n x = model[:x]\n JuMP.@objective(model, Max, sum(v.profit * x[k] for (k, v) in data.objects))\n return\nend\n\nfunction _solve_knapsack(\n optimizer,\n data::_KnapsackData,\n config::_AbstractConfiguration,\n)\n model = JuMP.Model(optimizer)\n _add_knapsack_variables(model, data, config)\n _add_knapsack_constraints(model, data, config)\n _add_knapsack_objective(model, data, config)\n JuMP.optimize!(model)\n if JuMP.termination_status(model) != JuMP.OPTIMAL\n @warn(\"Model not solved to optimality\")\n return nothing\n end\n return JuMP.value.(model[:x])\nend\n\n\"\"\"\n solve_knapsack(\n optimizer,\n knapsack_json_filename::String,\n config::_AbstractConfiguration,\n )\n\nSolve the knapsack problem and return the optimal primal solution\n\n# Arguments\n\n * `optimizer` : an object that can be passed to `JuMP.Model` to construct a new\n JuMP model.\n * `knapsack_json_filename` : the filename of a JSON file containing the data for the\n problem.\n * `config` : an object to control the type of knapsack model constructed.\n Valid options are:\n * `BinaryKnapsackConfig()`\n * `IntegerKnapsackConfig()`\n\n# Returns\n\n * If an optimal solution exists: a `JuMP.DenseAxisArray` that maps the `String`\n name of each object to the number of objects to pack into the knapsack.\n * Otherwise, `nothing`, indicating that the problem does not have an optimal\n solution.\n\n# Examples\n\n```julia\nsolution = solve_knapsack(\n HiGHS.Optimizer,\n \"path/to/data.json\",\n BinaryKnapsackConfig(),\n)\n```\n\n```julia\nsolution = solve_knapsack(\n MOI.OptimizerWithAttributes(HiGHS.Optimizer, \"output_flag\" => false),\n \"path/to/data.json\",\n IntegerKnapsackConfig(),\n)\n```\n\"\"\"\nfunction solve_knapsack(\n optimizer,\n knapsack_json_filename::String,\n config::_AbstractConfiguration,\n)\n data = _read_data(knapsack_json_filename)\n return _solve_knapsack(optimizer, data, config)\nend\n\nend","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"Finally, you can call your model:","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"import .KnapsackModel\n\nKnapsackModel.solve_knapsack(\n HiGHS.Optimizer,\n knapsack_json_filename,\n KnapsackModel.BinaryKnapsackConfig(),\n)","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"note: Note\nThe . in .KnapsackModel denotes that it is a submodule and not a separate package that we installed with Pkg.add. If you put the KnapsackModel in a separate file, load it with:include(\"path/to/KnapsackModel.jl\")\nimport .KnapsackModel","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/#Add-tests","page":"Design patterns for larger models","title":"Add tests","text":"","category":"section"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"As a final step, you should add tests for your model. This often means testing on a small problem for which you can work out the optimal solution by hand. The Julia standard library Test has good unit-testing functionality.","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"import .KnapsackModel\nusing Test\n\n@testset \"KnapsackModel\" begin\n @testset \"feasible_binary_knapsack\" begin\n x = KnapsackModel.solve_knapsack(\n HiGHS.Optimizer,\n knapsack_json_filename,\n KnapsackModel.BinaryKnapsackConfig(),\n )\n @test isapprox(x[\"apple\"], 1, atol = 1e-5)\n @test isapprox(x[\"banana\"], 0, atol = 1e-5)\n @test isapprox(x[\"cherry\"], 0, atol = 1e-5)\n @test isapprox(x[\"date\"], 1, atol = 1e-5)\n @test isapprox(x[\"eggplant\"], 1, atol = 1e-5)\n end\n @testset \"feasible_integer_knapsack\" begin\n x = KnapsackModel.solve_knapsack(\n HiGHS.Optimizer,\n knapsack_json_filename,\n KnapsackModel.IntegerKnapsackConfig(),\n )\n @test isapprox(x[\"apple\"], 0, atol = 1e-5)\n @test isapprox(x[\"banana\"], 0, atol = 1e-5)\n @test isapprox(x[\"cherry\"], 0, atol = 1e-5)\n @test isapprox(x[\"date\"], 5, atol = 1e-5)\n @test isapprox(x[\"eggplant\"], 0, atol = 1e-5)\n end\n @testset \"infeasible_binary_knapsack\" begin\n dir = mktempdir()\n infeasible_filename = joinpath(dir, \"infeasible.json\")\n write(\n infeasible_filename,\n \"\"\"{\n \"objects\": {\n \"apple\": {\"profit\": 5.0, \"weight\": 2.0},\n \"banana\": {\"profit\": 3.0, \"weight\": 8.0},\n \"cherry\": {\"profit\": 2.0, \"weight\": 4.0},\n \"date\": {\"profit\": 7.0, \"weight\": 2.0},\n \"eggplant\": {\"profit\": 4.0, \"weight\": 5.0}\n },\n \"capacity\": -10.0\n }\"\"\",\n )\n x = KnapsackModel.solve_knapsack(\n HiGHS.Optimizer,\n infeasible_filename,\n KnapsackModel.BinaryKnapsackConfig(),\n )\n @test x === nothing\n end\nend","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"tip: Tip\nPlace these tests in a separate file test_knapsack_model.jl so that you can run the tests by adding include(\"test_knapsack_model.jl\") to any file where needed.","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/#Next-steps","page":"Design patterns for larger models","title":"Next steps","text":"","category":"section"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"We've only briefly scratched the surface of ways to create and structure large JuMP models, so consider this tutorial a starting point, rather than a comprehensive list of all the possible ways to structure JuMP models. If you are embarking on a large project that uses JuMP, a good next step is to look at ways people have written large JuMP projects \"in the wild.\"","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"Here are some good examples (all co-incidentally related to energy):","category":"page"},{"location":"tutorials/getting_started/design_patterns_for_larger_models/","page":"Design patterns for larger models","title":"Design patterns for larger models","text":"AnyMOD.jl\nJuMP-dev 2021 talk\nsource code\nPowerModels.jl\nJuMP-dev 2021 talk\nsource code\nPowerSimulations.jl\nJuliaCon 2021 talk\nsource code\nUnitCommitment.jl\nJuMP-dev 2021 talk\nsource code","category":"page"},{"location":"tutorials/linear/multi/","page":"The multi-commodity flow problem","title":"The multi-commodity flow problem","text":"EditURL = \"multi.jl\"","category":"page"},{"location":"tutorials/linear/multi/#The-multi-commodity-flow-problem","page":"The multi-commodity flow problem","title":"The multi-commodity flow problem","text":"","category":"section"},{"location":"tutorials/linear/multi/","page":"The multi-commodity flow problem","title":"The multi-commodity flow problem","text":"This tutorial was generated using Literate.jl. Download the source as a .jl file.","category":"page"},{"location":"tutorials/linear/multi/","page":"The multi-commodity flow problem","title":"The multi-commodity flow problem","text":"This tutorial was originally contributed by Louis Luangkesorn.","category":"page"},{"location":"tutorials/linear/multi/","page":"The multi-commodity flow problem","title":"The multi-commodity flow problem","text":"This tutorial is a JuMP implementation of the multi-commodity transportation model described in AMPL: A Modeling Language for Mathematical Programming, by R. Fourer, D.M. Gay and B.W. Kernighan.","category":"page"},{"location":"tutorials/linear/multi/","page":"The multi-commodity flow problem","title":"The multi-commodity flow problem","text":"The purpose of this tutorial is to demonstrate creating a JuMP model from an SQLite database.","category":"page"},{"location":"tutorials/linear/multi/#Required-packages","page":"The multi-commodity flow problem","title":"Required packages","text":"","category":"section"},{"location":"tutorials/linear/multi/","page":"The multi-commodity flow problem","title":"The multi-commodity flow problem","text":"This tutorial uses the following packages","category":"page"},{"location":"tutorials/linear/multi/","page":"The multi-commodity flow problem","title":"The multi-commodity flow problem","text":"using JuMP\nimport DataFrames\nimport HiGHS\nimport SQLite\nimport Tables\n\nconst DBInterface = SQLite.DBInterface","category":"page"},{"location":"tutorials/linear/multi/#Formulation","page":"The multi-commodity flow problem","title":"Formulation","text":"","category":"section"},{"location":"tutorials/linear/multi/","page":"The multi-commodity flow problem","title":"The multi-commodity flow problem","text":"The multi-commondity flow problem is a simple extension of The transportation problem to multiple types of products. Briefly, we start with the formulation of the transportation problem:","category":"page"},{"location":"tutorials/linear/multi/","page":"The multi-commodity flow problem","title":"The multi-commodity flow problem","text":"beginaligned\nmin sum_i in O j in D c_ij x_ij \nst sum_j in D x_i j le s_i forall i in O \n sum_i in O x_i j = d_j forall j in D \n x_i j ge 0 forall i in O j in D\nendaligned","category":"page"},{"location":"tutorials/linear/multi/","page":"The multi-commodity flow problem","title":"The multi-commodity flow problem","text":"but introduce a set of products P, resulting in:","category":"page"},{"location":"tutorials/linear/multi/","page":"The multi-commodity flow problem","title":"The multi-commodity flow problem","text":"beginaligned\nmin sum_i in O j in D k in P c_ijk x_ijk \nst sum_j in D x_i j k le s_ik forall i in O k in P \n sum_i in O x_i j k = d_jk forall j in D k in P \n x_i jk ge 0 forall i in O j in D k in P \n sum_k in P x_i j k le u_ij forall i in O j in D\nendaligned","category":"page"},{"location":"tutorials/linear/multi/","page":"The multi-commodity flow problem","title":"The multi-commodity flow problem","text":"Note that the last constraint is new; it says that there is a maximum quantity of goods (of any type) that can be transported from origin i to destination j.","category":"page"},{"location":"tutorials/linear/multi/#Data","page":"The multi-commodity flow problem","title":"Data","text":"","category":"section"},{"location":"tutorials/linear/multi/","page":"The multi-commodity flow problem","title":"The multi-commodity flow problem","text":"For the purpose of this tutorial, the JuMP repository contains an example database called multi.sqlite.","category":"page"},{"location":"tutorials/linear/multi/","page":"The multi-commodity flow problem","title":"The multi-commodity flow problem","text":"filename = joinpath(@__DIR__, \"multi.sqlite\");\nnothing #hide","category":"page"},{"location":"tutorials/linear/multi/","page":"The multi-commodity flow problem","title":"The multi-commodity flow problem","text":"To run locally, download multi.sqlite and update filename appropriately.","category":"page"},{"location":"tutorials/linear/multi/","page":"The multi-commodity flow problem","title":"The multi-commodity flow problem","text":"Load the database using SQLite.DB:","category":"page"},{"location":"tutorials/linear/multi/","page":"The multi-commodity flow problem","title":"The multi-commodity flow problem","text":"db = SQLite.DB(filename)","category":"page"},{"location":"tutorials/linear/multi/","page":"The multi-commodity flow problem","title":"The multi-commodity flow problem","text":"A quick way to see the schema of the database is via SQLite.tables:","category":"page"},{"location":"tutorials/linear/multi/","page":"The multi-commodity flow problem","title":"The multi-commodity flow problem","text":"SQLite.tables(db)","category":"page"},{"location":"tutorials/linear/multi/","page":"The multi-commodity flow problem","title":"The multi-commodity flow problem","text":"We interact with the database by executing queries, and then piping the results to an appropriate table. One example is a DataFrame:","category":"page"},{"location":"tutorials/linear/multi/","page":"The multi-commodity flow problem","title":"The multi-commodity flow problem","text":"DBInterface.execute(db, \"SELECT * FROM locations\") |> DataFrames.DataFrame","category":"page"},{"location":"tutorials/linear/multi/","page":"The multi-commodity flow problem","title":"The multi-commodity flow problem","text":"But other table types are supported, such as Tables.rowtable:","category":"page"},{"location":"tutorials/linear/multi/","page":"The multi-commodity flow problem","title":"The multi-commodity flow problem","text":"DBInterface.execute(db, \"SELECT * FROM locations\") |> Tables.rowtable","category":"page"},{"location":"tutorials/linear/multi/","page":"The multi-commodity flow problem","title":"The multi-commodity flow problem","text":"A rowtable is a Vector of NamedTuples.","category":"page"},{"location":"tutorials/linear/multi/","page":"The multi-commodity flow problem","title":"The multi-commodity flow problem","text":"You can construct more complicated SQL queries:","category":"page"},{"location":"tutorials/linear/multi/","page":"The multi-commodity flow problem","title":"The multi-commodity flow problem","text":"origins =\n DBInterface.execute(\n db,\n \"SELECT location FROM locations WHERE type = \\\"origin\\\"\",\n ) |> Tables.rowtable","category":"page"},{"location":"tutorials/linear/multi/","page":"The multi-commodity flow problem","title":"The multi-commodity flow problem","text":"But for our purpose, we just want the list of strings:","category":"page"},{"location":"tutorials/linear/multi/","page":"The multi-commodity flow problem","title":"The multi-commodity flow problem","text":"origins = map(y -> y.location, origins)","category":"page"},{"location":"tutorials/linear/multi/","page":"The multi-commodity flow problem","title":"The multi-commodity flow problem","text":"We can compose these two operations to get a list of destinations:","category":"page"},{"location":"tutorials/linear/multi/","page":"The multi-commodity flow problem","title":"The multi-commodity flow problem","text":"destinations =\n DBInterface.execute(\n db,\n \"SELECT location FROM locations WHERE type = \\\"destination\\\"\",\n ) |>\n Tables.rowtable |>\n x -> map(y -> y.location, x)","category":"page"},{"location":"tutorials/linear/multi/","page":"The multi-commodity flow problem","title":"The multi-commodity flow problem","text":"And a list of products from our products table:","category":"page"},{"location":"tutorials/linear/multi/","page":"The multi-commodity flow problem","title":"The multi-commodity flow problem","text":"products =\n DBInterface.execute(db, \"SELECT product FROM products\") |>\n Tables.rowtable |>\n x -> map(y -> y.product, x)","category":"page"},{"location":"tutorials/linear/multi/#JuMP-formulation","page":"The multi-commodity flow problem","title":"JuMP formulation","text":"","category":"section"},{"location":"tutorials/linear/multi/","page":"The multi-commodity flow problem","title":"The multi-commodity flow problem","text":"We start by creating a model and our decision variables:","category":"page"},{"location":"tutorials/linear/multi/","page":"The multi-commodity flow problem","title":"The multi-commodity flow problem","text":"model = Model(HiGHS.Optimizer)\nset_silent(model)\n@variable(model, x[origins, destinations, products] >= 0)","category":"page"},{"location":"tutorials/linear/multi/","page":"The multi-commodity flow problem","title":"The multi-commodity flow problem","text":"One approach when working with databases is to extract all of the data into a Julia datastructure. For example, let's pull the cost table into a DataFrame and then construct our objective by iterating over the rows of the DataFrame:","category":"page"},{"location":"tutorials/linear/multi/","page":"The multi-commodity flow problem","title":"The multi-commodity flow problem","text":"cost = DBInterface.execute(db, \"SELECT * FROM cost\") |> DataFrames.DataFrame\n@objective(\n model,\n Max,\n sum(r.cost * x[r.origin, r.destination, r.product] for r in eachrow(cost)),\n);\nnothing #hide","category":"page"},{"location":"tutorials/linear/multi/","page":"The multi-commodity flow problem","title":"The multi-commodity flow problem","text":"If we don't want to use a DataFrame, we can use a Tables.rowtable instead:","category":"page"},{"location":"tutorials/linear/multi/","page":"The multi-commodity flow problem","title":"The multi-commodity flow problem","text":"supply = DBInterface.execute(db, \"SELECT * FROM supply\") |> Tables.rowtable\nfor r in supply\n @constraint(model, sum(x[r.origin, :, r.product]) <= r.supply)\nend","category":"page"},{"location":"tutorials/linear/multi/","page":"The multi-commodity flow problem","title":"The multi-commodity flow problem","text":"Another approach is to execute the query, and then to iterate through the rows of the query using Tables.rows:","category":"page"},{"location":"tutorials/linear/multi/","page":"The multi-commodity flow problem","title":"The multi-commodity flow problem","text":"demand = DBInterface.execute(db, \"SELECT * FROM demand\")\nfor r in Tables.rows(demand)\n @constraint(model, sum(x[:, r.destination, r.product]) == r.demand)\nend","category":"page"},{"location":"tutorials/linear/multi/","page":"The multi-commodity flow problem","title":"The multi-commodity flow problem","text":"warning: Warning\nIterating through the rows of a query result works by incrementing a cursor inside the database. As a consequence, you cannot call Tables.rows twice on the same query result.","category":"page"},{"location":"tutorials/linear/multi/","page":"The multi-commodity flow problem","title":"The multi-commodity flow problem","text":"The SQLite queries can be arbitrarily complex. For example, here's a query which builds every possible origin-destination pair:","category":"page"},{"location":"tutorials/linear/multi/","page":"The multi-commodity flow problem","title":"The multi-commodity flow problem","text":"od_pairs = DBInterface.execute(\n db,\n \"\"\"\n SELECT a.location as 'origin',\n b.location as 'destination'\n FROM locations a\n INNER JOIN locations b\n ON a.type = 'origin' AND b.type = 'destination'\n \"\"\",\n)","category":"page"},{"location":"tutorials/linear/multi/","page":"The multi-commodity flow problem","title":"The multi-commodity flow problem","text":"With a constraint that we cannot send more than 625 units between each pair:","category":"page"},{"location":"tutorials/linear/multi/","page":"The multi-commodity flow problem","title":"The multi-commodity flow problem","text":"for r in Tables.rows(od_pairs)\n @constraint(model, sum(x[r.origin, r.destination, :]) <= 625)\nend","category":"page"},{"location":"tutorials/linear/multi/#Solution","page":"The multi-commodity flow problem","title":"Solution","text":"","category":"section"},{"location":"tutorials/linear/multi/","page":"The multi-commodity flow problem","title":"The multi-commodity flow problem","text":"Finally, we can optimize the model:","category":"page"},{"location":"tutorials/linear/multi/","page":"The multi-commodity flow problem","title":"The multi-commodity flow problem","text":"optimize!(model)\nsolution_summary(model)","category":"page"},{"location":"tutorials/linear/multi/","page":"The multi-commodity flow problem","title":"The multi-commodity flow problem","text":"and print the solution:","category":"page"},{"location":"tutorials/linear/multi/","page":"The multi-commodity flow problem","title":"The multi-commodity flow problem","text":"begin\n println(\" \", join(products, ' '))\n for o in origins, d in destinations\n v = lpad.([round(Int, value(x[o, d, p])) for p in products], 5)\n println(o, \" \", d, \" \", join(replace.(v, \" 0\" => \" . \"), \" \"))\n end\nend","category":"page"},{"location":"tutorials/linear/finance/","page":"Financial modeling problems","title":"Financial modeling problems","text":"EditURL = \"finance.jl\"","category":"page"},{"location":"tutorials/linear/finance/#Financial-modeling-problems","page":"Financial modeling problems","title":"Financial modeling problems","text":"","category":"section"},{"location":"tutorials/linear/finance/","page":"Financial modeling problems","title":"Financial modeling problems","text":"This tutorial was generated using Literate.jl. Download the source as a .jl file.","category":"page"},{"location":"tutorials/linear/finance/","page":"Financial modeling problems","title":"Financial modeling problems","text":"This tutorial was originally contributed by Arpit Bhatia.","category":"page"},{"location":"tutorials/linear/finance/","page":"Financial modeling problems","title":"Financial modeling problems","text":"Optimization models play an increasingly important role in financial decisions. Many computational finance problems can be solved efficiently using modern optimization techniques.","category":"page"},{"location":"tutorials/linear/finance/","page":"Financial modeling problems","title":"Financial modeling problems","text":"In this tutorial we will discuss two such examples taken from the book Optimization Methods in Finance.","category":"page"},{"location":"tutorials/linear/finance/","page":"Financial modeling problems","title":"Financial modeling problems","text":"This tutorial uses the following packages","category":"page"},{"location":"tutorials/linear/finance/","page":"Financial modeling problems","title":"Financial modeling problems","text":"using JuMP\nimport HiGHS","category":"page"},{"location":"tutorials/linear/finance/#Short-term-financing","page":"Financial modeling problems","title":"Short-term financing","text":"","category":"section"},{"location":"tutorials/linear/finance/","page":"Financial modeling problems","title":"Financial modeling problems","text":"Corporations routinely face the problem of financing short term cash commitments such as the following:","category":"page"},{"location":"tutorials/linear/finance/","page":"Financial modeling problems","title":"Financial modeling problems","text":"Month Jan Feb Mar Apr May Jun\nNet Cash Flow -150 -100 200 -200 50 300","category":"page"},{"location":"tutorials/linear/finance/","page":"Financial modeling problems","title":"Financial modeling problems","text":"Net cash flow requirements are given in thousands of dollars. The company has the following sources of funds:","category":"page"},{"location":"tutorials/linear/finance/","page":"Financial modeling problems","title":"Financial modeling problems","text":"A line of credit of up to $100K at an interest rate of 1% per month,\nIn any one of the first three months, it can issue 90-day commercial paper bearing a total interest of 2% for the 3-month period,\nExcess funds can be invested at an interest rate of 0.3% per month.","category":"page"},{"location":"tutorials/linear/finance/","page":"Financial modeling problems","title":"Financial modeling problems","text":"Our task is to find out the most economical way to use these 3 sources such that we end up with the most amount of money at the end of June.","category":"page"},{"location":"tutorials/linear/finance/","page":"Financial modeling problems","title":"Financial modeling problems","text":"We model this problem in the following manner:","category":"page"},{"location":"tutorials/linear/finance/","page":"Financial modeling problems","title":"Financial modeling problems","text":"We will use the following decision variables:","category":"page"},{"location":"tutorials/linear/finance/","page":"Financial modeling problems","title":"Financial modeling problems","text":"the amount u_i drawn from the line of credit in month i\nthe amount v_i of commercial paper issued in month i\nthe excess funds w_i in month i","category":"page"},{"location":"tutorials/linear/finance/","page":"Financial modeling problems","title":"Financial modeling problems","text":"Here we have three types of constraints:","category":"page"},{"location":"tutorials/linear/finance/","page":"Financial modeling problems","title":"Financial modeling problems","text":"for every month, cash inflow = cash outflow for each month\nupper bounds on u_i\nnonnegativity of the decision variables u_i, v_i and w_i.","category":"page"},{"location":"tutorials/linear/finance/","page":"Financial modeling problems","title":"Financial modeling problems","text":"Our objective will be to simply maximize the company's wealth in June, which say we represent with the variable m.","category":"page"},{"location":"tutorials/linear/finance/","page":"Financial modeling problems","title":"Financial modeling problems","text":"financing = Model(HiGHS.Optimizer)\n\n@variables(financing, begin\n 0 <= u[1:5] <= 100\n 0 <= v[1:3]\n 0 <= w[1:5]\n m\nend)\n\n@objective(financing, Max, m)\n\n@constraints(\n financing,\n begin\n u[1] + v[1] - w[1] == 150 # January\n u[2] + v[2] - w[2] - 1.01u[1] + 1.003w[1] == 100 # February\n u[3] + v[3] - w[3] - 1.01u[2] + 1.003w[2] == -200 # March\n u[4] - w[4] - 1.02v[1] - 1.01u[3] + 1.003w[3] == 200 # April\n u[5] - w[5] - 1.02v[2] - 1.01u[4] + 1.003w[4] == -50 # May\n -m - 1.02v[3] - 1.01u[5] + 1.003w[5] == -300 # June\n end\n)\n\noptimize!(financing)\n\nobjective_value(financing)","category":"page"},{"location":"tutorials/linear/finance/#Combinatorial-auctions","page":"Financial modeling problems","title":"Combinatorial auctions","text":"","category":"section"},{"location":"tutorials/linear/finance/","page":"Financial modeling problems","title":"Financial modeling problems","text":"In many auctions, the value that a bidder has for a set of items may not be the sum of the values that he has for individual items.","category":"page"},{"location":"tutorials/linear/finance/","page":"Financial modeling problems","title":"Financial modeling problems","text":"Examples are equity trading, electricity markets, pollution right auctions and auctions for airport landing slots.","category":"page"},{"location":"tutorials/linear/finance/","page":"Financial modeling problems","title":"Financial modeling problems","text":"To take this into account, combinatorial auctions allow the bidders to submit bids on combinations of items.","category":"page"},{"location":"tutorials/linear/finance/","page":"Financial modeling problems","title":"Financial modeling problems","text":"Let M=12 ldots m be the set of items that the auctioneer has to sell. A bid is a pair B_j=left(S_j p_jright) where S_j subseteq M is a nonempty set of items and p_j is the price offer for this set.","category":"page"},{"location":"tutorials/linear/finance/","page":"Financial modeling problems","title":"Financial modeling problems","text":"Suppose that the auctioneer has received n bids B_1 B_2 ldots B_n The goal of this problem is to help an auctioneer determine the winners in order to maximize his revenue.","category":"page"},{"location":"tutorials/linear/finance/","page":"Financial modeling problems","title":"Financial modeling problems","text":"We model this problem by taking a decision variable y_j for every bid. We add a constraint that each item i is sold at most once. This gives us the following model:","category":"page"},{"location":"tutorials/linear/finance/","page":"Financial modeling problems","title":"Financial modeling problems","text":"beginaligned\nmax sum_i=1^n p_j y_j \ntext st sum_j i in S_j y_j leq 1 forall i=12 ldots m \n y_j in01 forall j in12 ldots n\nendaligned","category":"page"},{"location":"tutorials/linear/finance/","page":"Financial modeling problems","title":"Financial modeling problems","text":"bid_values = [6 3 12 12 8 16]\nbid_items = [[1], [2], [3 4], [1 3], [2 4], [1 3 4]]\n\nauction = Model(HiGHS.Optimizer)\n@variable(auction, y[1:6], Bin)\n@objective(auction, Max, sum(y' .* bid_values))\nfor i in 1:6\n @constraint(auction, sum(y[j] for j in 1:6 if i in bid_items[j]) <= 1)\nend\n\noptimize!(auction)\n\nobjective_value(auction)","category":"page"},{"location":"tutorials/linear/finance/","page":"Financial modeling problems","title":"Financial modeling problems","text":"value.(y)","category":"page"},{"location":"packages/GAMS/","page":"GAMS-dev/GAMS.jl","title":"GAMS-dev/GAMS.jl","text":"EditURL = \"https://github.com/GAMS-dev/GAMS.jl/blob/c5dee9f929e9d2f4433ae09fa92b8d872c9c43e0/README.md\"","category":"page"},{"location":"packages/GAMS/#GAMS.jl","page":"GAMS-dev/GAMS.jl","title":"GAMS.jl","text":"","category":"section"},{"location":"packages/GAMS/","page":"GAMS-dev/GAMS.jl","title":"GAMS-dev/GAMS.jl","text":"GAMS.jl provides a MathOptInterface Optimizer to solve JuMP models using GAMS.","category":"page"},{"location":"packages/GAMS/","page":"GAMS-dev/GAMS.jl","title":"GAMS-dev/GAMS.jl","text":"GAMS comes with dozens of supported solvers. Among them are: ALPHAECP, ANTIGONE, BARON, CBC, CONOPT, CPLEX, DICOPT, GUROBI, IPOPT, KNITRO, LINDO, LINDOGLOBAL, MINOS, MOSEK, NLPEC, PATH, QUADMINOS, SBB, SHOT, SCIP, SNOPT, SOPLEX, XPRESS. Find a complete list here.","category":"page"},{"location":"packages/GAMS/","page":"GAMS-dev/GAMS.jl","title":"GAMS-dev/GAMS.jl","text":"GAMS.jl supports the following JuMP features:","category":"page"},{"location":"packages/GAMS/","page":"GAMS-dev/GAMS.jl","title":"GAMS-dev/GAMS.jl","text":"linear, quadratic and nonlinear (convex and non-convex) objective and constraints\ncontinuous, binary, integer, semi-continuous and semi-integer variables\nSOS1 and SOS2 sets\ncomplementarity constraints","category":"page"},{"location":"packages/GAMS/#Installation","page":"GAMS-dev/GAMS.jl","title":"Installation","text":"","category":"section"},{"location":"packages/GAMS/","page":"GAMS-dev/GAMS.jl","title":"GAMS-dev/GAMS.jl","text":"Download GAMS and obtain a GAMS license. Please note that GAMS also offers a free community license.\n(optional) Add the GAMS system directory to the PATH variable in order to find GAMS automatically.\nInstall GAMS.jl using the Julia package manager:\nusing Pkg\nPkg.add(\"GAMS\")","category":"page"},{"location":"packages/GAMS/#Usage","page":"GAMS-dev/GAMS.jl","title":"Usage","text":"","category":"section"},{"location":"packages/GAMS/","page":"GAMS-dev/GAMS.jl","title":"GAMS-dev/GAMS.jl","text":"Using GAMS as optimizer for your JuMP model:","category":"page"},{"location":"packages/GAMS/","page":"GAMS-dev/GAMS.jl","title":"GAMS-dev/GAMS.jl","text":"using GAMS, JuMP\nmodel = Model(GAMS.Optimizer)","category":"page"},{"location":"packages/GAMS/#GAMS-System","page":"GAMS-dev/GAMS.jl","title":"GAMS System","text":"","category":"section"},{"location":"packages/GAMS/","page":"GAMS-dev/GAMS.jl","title":"GAMS-dev/GAMS.jl","text":"If the GAMS system directory has been added to the PATH variable (you can check this with print(ENV[\"PATH\"])), GAMS.jl will find it automatically. Otherwise, or if you like to switch between systems, the system directory can be specified by (one of the following):","category":"page"},{"location":"packages/GAMS/","page":"GAMS-dev/GAMS.jl","title":"GAMS-dev/GAMS.jl","text":"set_optimizer_attribute(model, \"SysDir\", \"\")\nset_optimizer_attribute(model, GAMS.SysDir(), \"\")","category":"page"},{"location":"packages/GAMS/","page":"GAMS-dev/GAMS.jl","title":"GAMS-dev/GAMS.jl","text":"Analogously, you can specify a working directory with \"WorkDir\" or GAMS.WorkDir(). If no working directory has been set, GAMS.jl will create a temporary one.","category":"page"},{"location":"packages/GAMS/","page":"GAMS-dev/GAMS.jl","title":"GAMS-dev/GAMS.jl","text":"If you want to use the same GAMS workspace (same system and working directory) for multiple models, you can create a GAMSWorkspace first with either of the following","category":"page"},{"location":"packages/GAMS/","page":"GAMS-dev/GAMS.jl","title":"GAMS-dev/GAMS.jl","text":"ws = GAMS.GAMSWorkspace()\nws = GAMS.GAMSWorkspace(\"\")\nws = GAMS.GAMSWorkspace(\"\", \"\")","category":"page"},{"location":"packages/GAMS/","page":"GAMS-dev/GAMS.jl","title":"GAMS-dev/GAMS.jl","text":"and then pass it to your models:","category":"page"},{"location":"packages/GAMS/","page":"GAMS-dev/GAMS.jl","title":"GAMS-dev/GAMS.jl","text":"model = Model(() -> GAMS.Optimizer(ws))","category":"page"},{"location":"packages/GAMS/#GAMS-Options","page":"GAMS-dev/GAMS.jl","title":"GAMS Options","text":"","category":"section"},{"location":"packages/GAMS/","page":"GAMS-dev/GAMS.jl","title":"GAMS-dev/GAMS.jl","text":"GAMS command line options can be specified by","category":"page"},{"location":"packages/GAMS/","page":"GAMS-dev/GAMS.jl","title":"GAMS-dev/GAMS.jl","text":"set_optimizer_attribute(model, \"

    JuMP.Containers

    This page lists the public API of JuMP.Containers.

    Info

    This page is an unstructured list of the JuMP.Containers API. For a more structured overview, read the Manual or Tutorial parts of this documentation.

    Load all of the public the API into the current scope with:

    using JuMP.Containers

    Alternatively, load only the module with:

    import JuMP.Containers

    and then prefix all calls with JuMP.Containers. to create JuMP.Containers.<NAME>.

    DenseAxisArray

    JuMP.Containers.DenseAxisArrayType
    DenseAxisArray(data::Array{T, N}, axes...) where {T, N}

    Construct a JuMP array with the underlying data specified by the data array and the given axes. Exactly N axes must be provided, and their lengths must match size(data) in the corresponding dimensions.

    Example

    julia> array = Containers.DenseAxisArray([1 2; 3 4], [:a, :b], 2:3)
    +2-dimensional DenseAxisArray{Int64,2,...} with index sets:
    +    Dimension 1, [:a, :b]
    +    Dimension 2, 2:3
    +And data, a 2×2 Matrix{Int64}:
    + 1  2
    + 3  4
    +
    +julia> array[:b, 3]
    +4
    source
    DenseAxisArray{T}(undef, axes...) where T

    Construct an uninitialized DenseAxisArray with element-type T indexed over the given axes.

    Example

    julia> array = Containers.DenseAxisArray{Float64}(undef, [:a, :b], 1:2);
    +
    +julia> fill!(array, 1.0)
    +2-dimensional DenseAxisArray{Float64,2,...} with index sets:
    +    Dimension 1, [:a, :b]
    +    Dimension 2, 1:2
    +And data, a 2×2 Matrix{Float64}:
    + 1.0  1.0
    + 1.0  1.0
    +
    +julia> array[:a, 2] = 5.0
    +5.0
    +
    +julia> array[:a, 2]
    +5.0
    +
    +julia> array
    +2-dimensional DenseAxisArray{Float64,2,...} with index sets:
    +    Dimension 1, [:a, :b]
    +    Dimension 2, 1:2
    +And data, a 2×2 Matrix{Float64}:
    + 1.0  5.0
    + 1.0  1.0
    source

    SparseAxisArray

    JuMP.Containers.SparseAxisArrayType
    struct SparseAxisArray{T,N,K<:NTuple{N, Any}} <: AbstractArray{T,N}
    +    data::Dict{K,T}
    +end

    N-dimensional array with elements of type T where only a subset of the entries are defined. The entries with indices idx = (i1, i2, ..., iN) in keys(data) has value data[idx]. Note that as opposed to SparseArrays.AbstractSparseArray, the missing entries are not assumed to be zero(T), they are simply not part of the array. This means that the result of map(f, sa::SparseAxisArray) or f.(sa::SparseAxisArray) has the same sparsity structure than sa even if f(zero(T)) is not zero.

    Example

    julia> dict = Dict((:a, 2) => 1.0, (:a, 3) => 2.0, (:b, 3) => 3.0)
    +Dict{Tuple{Symbol, Int64}, Float64} with 3 entries:
    +  (:a, 3) => 2.0
    +  (:b, 3) => 3.0
    +  (:a, 2) => 1.0
    +
    +julia> array = Containers.SparseAxisArray(dict)
    +SparseAxisArray{Float64, 2, Tuple{Symbol, Int64}} with 3 entries:
    +  [a, 2]  =  1.0
    +  [a, 3]  =  2.0
    +  [b, 3]  =  3.0
    +
    +julia> array[:b, 3]
    +3.0
    source

    Containers.@container

    JuMP.Containers.@containerMacro
    @container([i=..., j=..., ...], expr[, container = :Auto])

    Create a container with indices i, j, ... and values given by expr that may depend on the value of the indices.

    @container(ref[i=..., j=..., ...], expr[, container = :Auto])

    Same as above but the container is assigned to the variable of name ref.

    The type of container can be controlled by the container keyword.

    Note

    When the index set is explicitly given as 1:n for any expression n, it is transformed to Base.OneTo(n) before being given to container.

    Example

    julia> Containers.@container([i = 1:3, j = 1:3], i + j)
    +3×3 Matrix{Int64}:
    + 2  3  4
    + 3  4  5
    + 4  5  6
    +
    +julia> I = 1:3
    +1:3
    +
    +julia> Containers.@container(x[i = I, j = I], i + j);
    +
    +julia> x
    +2-dimensional DenseAxisArray{Int64,2,...} with index sets:
    +    Dimension 1, 1:3
    +    Dimension 2, 1:3
    +And data, a 3×3 Matrix{Int64}:
    + 2  3  4
    + 3  4  5
    + 4  5  6
    +
    +julia> Containers.@container([i = 2:3, j = 1:3], i + j)
    +2-dimensional DenseAxisArray{Int64,2,...} with index sets:
    +    Dimension 1, 2:3
    +    Dimension 2, Base.OneTo(3)
    +And data, a 2×3 Matrix{Int64}:
    + 3  4  5
    + 4  5  6
    +
    +julia> Containers.@container([i = 1:3, j = 1:3; i <= j], i + j)
    +SparseAxisArray{Int64, 2, Tuple{Int64, Int64}} with 6 entries:
    +  [1, 1]  =  2
    +  [1, 2]  =  3
    +  [1, 3]  =  4
    +  [2, 2]  =  4
    +  [2, 3]  =  5
    +  [3, 3]  =  6
    source

    Containers.container

    JuMP.Containers.containerFunction
    container(f::Function, indices[[, ::Type{C} = AutoContainerType], names])

    Create a container of type C with index names names, indices indices and values at given indices given by f.

    If the method with names is not specialized on Type{C}, it falls back to calling container(f, indices, c) for backwards compatibility with containers not supporting index names.

    Example

    julia> Containers.container((i, j) -> i + j, Containers.vectorized_product(Base.OneTo(3), Base.OneTo(3)))
    +3×3 Matrix{Int64}:
    + 2  3  4
    + 3  4  5
    + 4  5  6
    +
    +julia> Containers.container((i, j) -> i + j, Containers.vectorized_product(1:3, 1:3))
    +2-dimensional DenseAxisArray{Int64,2,...} with index sets:
    +    Dimension 1, 1:3
    +    Dimension 2, 1:3
    +And data, a 3×3 Matrix{Int64}:
    + 2  3  4
    + 3  4  5
    + 4  5  6
    +
    +julia> Containers.container((i, j) -> i + j, Containers.vectorized_product(2:3, Base.OneTo(3)))
    +2-dimensional DenseAxisArray{Int64,2,...} with index sets:
    +    Dimension 1, 2:3
    +    Dimension 2, Base.OneTo(3)
    +And data, a 2×3 Matrix{Int64}:
    + 3  4  5
    + 4  5  6
    +
    +julia> Containers.container((i, j) -> i + j, Containers.nested(() -> 1:3, i -> i:3, condition = (i, j) -> isodd(i) || isodd(j)))
    +SparseAxisArray{Int64, 2, Tuple{Int64, Int64}} with 5 entries:
    +  [1, 1]  =  2
    +  [1, 2]  =  3
    +  [1, 3]  =  4
    +  [2, 3]  =  5
    +  [3, 3]  =  6
    source

    Containers.rowtable

    JuMP.Containers.rowtableFunction
    rowtable([f::Function=identity,] x; [header::Vector{Symbol} = Symbol[]])

    Applies the function f to all elements of the variable container x, returning the result as a Vector of NamedTuples, where header is a vector containing the corresponding axis names.

    If x is an N-dimensional array, there must be N+1 names, so that the last name corresponds to the result of f(x[i]).

    If header is left empty, then the default header is [:x1, :x2, ..., :xN, :y].

    Info

    A Vector of NamedTuples implements the Tables.jl interface, and so the result can be used as input for any function that consumes a 'Tables.jl' compatible source.

    Example

    julia> model = Model();
    +
    +julia> @variable(model, x[i=1:2, j=i:2] >= 0, start = i+j);
    +
    +julia> Containers.rowtable(start_value, x; header = [:i, :j, :start])
    +3-element Vector{NamedTuple{(:i, :j, :start), Tuple{Int64, Int64, Float64}}}:
    + (i = 1, j = 2, start = 3.0)
    + (i = 1, j = 1, start = 2.0)
    + (i = 2, j = 2, start = 4.0)
    +
    +julia> Containers.rowtable(x)
    +3-element Vector{NamedTuple{(:x1, :x2, :y), Tuple{Int64, Int64, VariableRef}}}:
    + (x1 = 1, x2 = 2, y = x[1,2])
    + (x1 = 1, x2 = 1, y = x[1,1])
    + (x1 = 2, x2 = 2, y = x[2,2])
    source

    Containers.default_container

    Containers.nested

    JuMP.Containers.nestedFunction
    nested(iterators...; condition = (args...) -> true)

    Create a NestedIterator.

    Example

    julia> iterator = Containers.nested(
    +           () -> 1:2,
    +           (i,) -> ["A", "B"];
    +           condition = (i, j) -> isodd(i) || j == "B",
    +       );
    +
    +julia> collect(iterator)
    +3-element Vector{Tuple{Int64, String}}:
    + (1, "A")
    + (1, "B")
    + (2, "B")
    source

    Containers.vectorized_product

    Containers.build_ref_sets

    JuMP.Containers.build_ref_setsFunction
    build_ref_sets(_error::Function, expr)

    Helper function for macros to construct container objects.

    Warning

    This function is for advanced users implementing JuMP extensions. See container_code for more details.

    Arguments

    • _error: a function that takes a String and throws an error, potentially annotating the input string with extra information such as from which macro it was thrown from. Use error if you do not want a modified error message.
    • expr: an Expr that specifies the container, e.g., :(x[i = 1:3, [:red, :blue], k = S; i + k <= 6])

    Returns

    1. index_vars: a Vector{Any} of names for the index variables, e.g., [:i, gensym(), :k]. These may also be expressions, like :((i, j)) from a call like :(x[(i, j) in S]).
    2. indices: an iterator over the indices, for example, Containers.NestedIterator

    Example

    See container_code for a worked example.

    source

    Containers.container_code

    JuMP.Containers.container_codeFunction
    container_code(
    +    index_vars::Vector{Any},
    +    indices::Expr,
    +    code,
    +    requested_container::Union{Symbol,Expr},
    +)

    Used in macros to construct a call to container. This should be used in conjunction with build_ref_sets.

    Arguments

    • index_vars::Vector{Any}: a vector of names for the indices of the container. These may also be expressions, like :((i, j)) from a call like :(x[(i, j) in S]).
    • indices::Expr: an expression that evaluates to an iterator of the indices.
    • code: an expression or literal constant for the value to be stored in the container as a function of the named index_vars.
    • requested_container: passed to the third argument of container. For built-in JuMP types, choose one of :Array, :DenseAxisArray, :SparseAxisArray, or :Auto. For a user-defined container, this expression must evaluate to the correct type.
    Warning

    In most cases, you should esc(code) before passing it to container_code.

    Example

    julia> macro foo(ref_sets, code)
    +           index_vars, indices = Containers.build_ref_sets(error, ref_sets)
    +           return Containers.container_code(
    +               index_vars,
    +               indices,
    +               esc(code),
    +               :Auto,
    +            )
    +       end
    +@foo (macro with 1 method)
    +
    +julia> @foo(x[i=1:2, j=["A", "B"]], j^i)
    +2-dimensional DenseAxisArray{String,2,...} with index sets:
    +    Dimension 1, Base.OneTo(2)
    +    Dimension 2, ["A", "B"]
    +And data, a 2×2 Matrix{String}:
    + "A"   "B"
    + "AA"  "BB"
    source

    Containers.AutoContainerType

    Containers.NestedIterator

    JuMP.Containers.NestedIteratorType
    struct NestedIterator{T}
    +    iterators::T # Tuple of functions
    +    condition::Function
    +end

    Iterators over the tuples that are produced by a nested for loop.

    Construct a NestedIterator using nested.

    Example

    julia> iterators = (() -> 1:2, (i,) -> ["A", "B"]);
    +
    +julia> condition = (i, j) -> isodd(i) || j == "B";
    +
    +julia> x = Containers.NestedIterator(iterators, condition);
    +
    +julia> for (i, j) in x
    +           println((i, j))
    +       end
    +(1, "A")
    +(1, "B")
    +(2, "B")

    is the same as

    julia> for i in iterators[1]()
    +           for j in iterators[2](i)
    +               if condition(i, j)
    +                   println((i, j))
    +               end
    +           end
    +       end
    +(1, "A")
    +(1, "B")
    +(2, "B")
    source

    Containers.VectorizedProductIterator

    t4_g`H{Lac4il4WBm67dt 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

8>Eu_ChLVEK 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