From 1866d4704df43c15b239630f910297b082983c27 Mon Sep 17 00:00:00 2001 From: Jing Lin <82669431+linjing-lab@users.noreply.github.com> Date: Thu, 1 Jun 2023 19:28:35 +0800 Subject: [PATCH] renew project --- README.md | 18 ++-- README_en.md | 20 ++--- examples/doc/_constrain.md | 16 ++-- examples/doc/_unconstrain.md | 2 +- optimtool/__init__.py | 2 +- optimtool/_kernel.py | 84 ++++++++++++++---- optimtool/_version.py | 2 +- optimtool/constrain/equal.py | 19 ++-- optimtool/constrain/mixequal.py | 32 ++++--- optimtool/constrain/unequal.py | 29 +++--- optimtool/unconstrain/gradient_descent.py | 48 +++++----- optimtool/unconstrain/newton.py | 41 ++++----- optimtool/unconstrain/newton_quasi.py | 15 ++-- .../unconstrain/nonlinear_least_square.py | 14 ++- optimtool/unconstrain/trust_region.py | 1 + setup.py | 2 +- tests/constrain/_constrain.ipynb.txt | 36 ++++---- tests/unconstrain/_unconstrain.ipynb.txt | 20 +++-- .../images/trust_region_steihaug_CG.png | Bin 9211 -> 11123 bytes 19 files changed, 242 insertions(+), 159 deletions(-) diff --git a/README.md b/README.md index 32fa2b7..b18b717 100644 --- a/README.md +++ b/README.md @@ -100,7 +100,7 @@ ou.gradient_descent.[函数名]([目标函数], [参数表], [初始迭代点]) | ----------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------ | | solve(funcs: FuncArray, args: ArgArray, x_0: PointArray, draw: bool=True, output_f: bool=False, epsilon: float=1e-10, k: int=0) -> OutputType | 通过解方程的方式来求解精确步长 | | steepest(funcs: FuncArray, args: ArgArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="wolfe", epsilon: float=1e-10, k: int=0) -> OutputType | 使用线搜索方法求解非精确步长(默认使用wolfe线搜索) | -| barzilar_borwein(funcs: FuncArray, args: ArgArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="Grippo", c1: float=0.6, beta: float=0.6, alpha: float=1, epsilon: float=1e-10, k: int=0) -> OutputType | 使用Grippo与ZhangHanger提出的非单调线搜索方法更新步长 | +| barzilar_borwein(funcs: FuncArray, args: ArgArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="Grippo", c1: float=0.6, beta: float=0.6, M: int=20, eta: float=0.6, alpha: float=1, epsilon: float=1e-10, k: int=0) -> OutputType | 使用Grippo与ZhangHanger提出的非单调线搜索方法更新步长 | #### 牛顿法(newton) @@ -162,8 +162,8 @@ oc.equal.[函数名]([目标函数], [参数表], [等式约束表], [初始迭 | 方法头 | 解释 | | ----------------------------------------------------------------------------------------------------------------------------------------------------- | --------- | -| penalty_quadratice(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="trust_region", sigma: float=10, p: float=2, epsilon: float=1e-4, k: int=0) -> OutputType | 增加二次罚项 | -| lagrange_augmentede(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="trust_region", lamk: float=6, sigma: float=10, p: float=2, etak: float=1e-4, epsilon: float=1e-6, k: int=0) -> OutputType | 增广拉格朗日乘子法 | +| penalty_quadratice(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="newton", sigma: float=10, p: float=2, epsk: float=1e-4, epsilon: float=1e-4, k: int=0) -> OutputType | 增加二次罚项 | +| lagrange_augmentede(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="newton", lamk: float=6, sigma: float=10, p: float=2, etak: float=1e-4, epsilon: float=1e-6, k: int=0) -> OutputType | 增广拉格朗日乘子法 | #### 不等式约束(unequal) @@ -173,9 +173,9 @@ oc.unequal.[函数名]([目标函数], [参数表], [不等式约束表], [初 | 方法头 | 解释 | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------- | -| penalty_quadraticu(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="trust_region", sigma: float=10, p: float=0.4, epsilon: float=1e-10, k: int=0) -> OutputType | 增加二次罚项 | -| penalty_interior_fraction(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="trust_region", sigma: float=12, p: float=0.6, epsilon: float=1e-6, k: int=0) -> OutputType | 增加分式函数罚项 | -| lagrange_augmentedu(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="trust_region", muk: float=10, sigma: float=8, alpha: float=0.2, beta: float=0.7, p: float=2, eta: float=1e-1, epsilon: float=1e-4, k: int=0) -> OutputType | 增广拉格朗日乘子法 | +| penalty_quadraticu(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="newton", sigma: float=10, p: float=0.4, epsk: float=1e-4, epsilon: float=1e-10, k: int=0) -> OutputType | 增加二次罚项 | +| penalty_interior_fraction(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="newton", sigma: float=12, p: float=0.6, epsk: float=1e-6, epsilon: float=1e-6, k: int=0) -> OutputType | 增加分式函数罚项 | +| lagrange_augmentedu(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="newton", muk: float=10, sigma: float=8, alpha: float=0.2, beta: float=0.7, p: float=2, eta: float=1e-1, epsilon: float=1e-4, k: int=0) -> OutputType | 增广拉格朗日乘子法 | #### 混合等式约束(mixequal) @@ -185,9 +185,9 @@ oc.mixequal.[函数名]([目标函数], [参数表], [等式约束表], [不等 | 方法头 | 解释 | | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- | -| penalty_quadraticm(funcs: FuncArray, args: ArgArray, cons_equal: FuncArray, cons_unequal: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="trust_region", sigma: float=10, p: float=0.6, epsilon: float=1e-10, k: int=0) -> OutputType | 增加二次罚项 | -| penalty_L1(funcs: FuncArray, args: ArgArray, cons_equal: FuncArray, cons_unequal: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="trust_region", sigma: float=1, p: float=0.6, epsilon: float=1e-10, k: int=0) -> OutputType | L1精确罚函数法 | -| lagrange_augmentedm(funcs: FuncArray, args: ArgArray, cons_equal: FuncArray, cons_unequal: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="trust_region", lamk: float=6, muk: float=10, sigma: float=8, alpha: float=0.5, beta: float=0.7, p: float=2, eta: float=1e-3, epsilon: float=1e-4, k: int=0) -> OutputType | 增广拉格朗日乘子法 | +| penalty_quadraticm(funcs: FuncArray, args: ArgArray, cons_equal: FuncArray, cons_unequal: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="newton", sigma: float=10, p: float=0.6, epsk: float=1e-6, epsilon: float=1e-10, k: int=0) -> OutputType | 增加二次罚项 | +| penalty_L1(funcs: FuncArray, args: ArgArray, cons_equal: FuncArray, cons_unequal: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="newton", sigma: float=1, p: float=0.6, epsk: float=1e-6, epsilon: float=1e-10, k: int=0) -> OutputType | L1精确罚函数法 | +| lagrange_augmentedm(funcs: FuncArray, args: ArgArray, cons_equal: FuncArray, cons_unequal: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="newton", lamk: float=6, muk: float=10, sigma: float=8, alpha: float=0.5, beta: float=0.7, p: float=2, eta: float=1e-3, epsilon: float=1e-4, k: int=0) -> OutputType | 增广拉格朗日乘子法 | ### 方法的应用(example) diff --git a/README_en.md b/README_en.md index a39ab9e..c9ef4eb 100644 --- a/README_en.md +++ b/README_en.md @@ -100,9 +100,9 @@ ou.gradient_descent.[Function Name]([Target Function], [Parameters], [Initial Po | ----------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------ | | solve(funcs: FuncArray, args: ArgArray, x_0: PointArray, draw: bool=True, output_f: bool=False, epsilon: float=1e-10, k: int=0) -> OutputType | Solve the exact step by solving the equation | | steepest(funcs: FuncArray, args: ArgArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="wolfe", epsilon: float=1e-10, k: int=0) -> OutputType | Use line search method to solve imprecise step size (wolfe line search is used by default) | -| barzilar_borwein(funcs: FuncArray, args: ArgArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="Grippo", c1: float=0.6, beta: float=0.6, alpha: float=1, epsilon: float=1e-10, k: int=0) -> OutputType | Update the step size using the nonmonotonic line search method proposed by Grippo and Zhang Hanger | +| barzilar_borwein(funcs: FuncArray, args: ArgArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="Grippo", c1: float=0.6, beta: float=0.6, M: int=20, eta: float=0.6, alpha: float=1, epsilon: float=1e-10, k: int=0) -> OutputType | Update the step size using the nonmonotonic line search method proposed by Grippo and Zhang Hanger | -#### Newton Methods(newton) +#### Newton Methods(newton) ```python ou.newton.[Function Name]([Target Function], [Parameters], [Initial Point]) @@ -162,8 +162,8 @@ oc.equal.[Function Name]([Target Function], [Parameters], [Equal Constraint Tabl | head meathod | explain | | ----------------------------------------------------------------------------------------------------------------------------------------------------- | --------- | -| penalty_quadratice(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="trust_region", sigma: float=10, p: float=2, epsilon: float=1e-4, k: int=0) -> OutputType | Add secondary penalty | -| lagrange_augmentede(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="trust_region", lamk: float=6, sigma: float=10, p: float=2, etak: float=1e-4, epsilon: float=1e-6, k: int=0) -> OutputType | Augmented lagrange multiplier method | +| penalty_quadratice(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="newton", sigma: float=10, p: float=2, epsk: float=1e-4, epsilon: float=1e-4, k: int=0) -> OutputType | Add secondary penalty | +| lagrange_augmentede(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="newton", lamk: float=6, sigma: float=10, p: float=2, etak: float=1e-4, epsilon: float=1e-6, k: int=0) -> OutputType | Augmented lagrange multiplier method | #### Unequal Constraint(unequal) @@ -173,9 +173,9 @@ oc.unequal.[Function Name]([Target Function], [Parameters], [Unequal Constraint | head meathod | explain | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------- | -| penalty_quadraticu(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="trust_region", sigma: float=10, p: float=0.4, epsilon: float=1e-10, k: int=0) -> OutputType | Add secondary penalty | -| penalty_interior_fraction(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="trust_region", sigma: float=12, p: float=0.6, epsilon: float=1e-6, k: int=0) -> OutputType | Increase penalty term of fractional function | -| lagrange_augmentedu(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="trust_region", muk: float=10, sigma: float=8, alpha: float=0.2, beta: float=0.7, p: float=2, eta: float=1e-1, epsilon: float=1e-4, k: int=0) -> OutputType | Augmented lagrange multiplier method | +| penalty_quadraticu(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="newton", sigma: float=10, p: float=0.4, epsk: float=1e-6, epsilon: float=1e-10, k: int=0) -> OutputType | Add secondary penalty | +| penalty_interior_fraction(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="newton", sigma: float=12, p: float=0.6, epsk: float=1e-6, epsilon: float=1e-6, k: int=0) -> OutputType | Increase penalty term of fractional function | +| lagrange_augmentedu(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="newton", muk: float=10, sigma: float=8, alpha: float=0.2, beta: float=0.7, p: float=2, eta: float=1e-1, epsilon: float=1e-4, k: int=0) -> OutputType | Augmented lagrange multiplier method | #### Mixequal Constraint(mixequal) @@ -185,9 +185,9 @@ oc.mixequal.[Function Name]([Target Function], [Parameters], [Equal Constraint T | head meathod | explain | | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- | -| penalty_quadraticm(funcs: FuncArray, args: ArgArray, cons_equal: FuncArray, cons_unequal: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="trust_region", sigma: float=10, p: float=0.6, epsilon: float=1e-10, k: int=0) -> OutputType | Add secondary penalty | -| penalty_L1(funcs: FuncArray, args: ArgArray, cons_equal: FuncArray, cons_unequal: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="trust_region", sigma: float=1, p: float=0.6, epsilon: float=1e-10, k: int=0) -> OutputType | L1 exact penalty function method | -| lagrange_augmentedm(funcs: FuncArray, args: ArgArray, cons_equal: FuncArray, cons_unequal: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="trust_region", lamk: float=6, muk: float=10, sigma: float=8, alpha: float=0.5, beta: float=0.7, p: float=2, eta: float=1e-3, epsilon: float=1e-4, k: int=0) -> OutputType | Augmented lagrange multiplier method | +| penalty_quadraticm(funcs: FuncArray, args: ArgArray, cons_equal: FuncArray, cons_unequal: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="newton", sigma: float=10, p: float=0.6, epsk: float=1e-4, epsilon: float=1e-10, k: int=0) -> OutputType | Add secondary penalty | +| penalty_L1(funcs: FuncArray, args: ArgArray, cons_equal: FuncArray, cons_unequal: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="newton", sigma: float=1, p: float=0.6, epsk: float=1e-6, epsilon: float=1e-10, k: int=0) -> OutputType | L1 exact penalty function method | +| lagrange_augmentedm(funcs: FuncArray, args: ArgArray, cons_equal: FuncArray, cons_unequal: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="newton", lamk: float=6, muk: float=10, sigma: float=8, alpha: float=0.5, beta: float=0.7, p: float=2, eta: float=1e-3, epsilon: float=1e-4, k: int=0) -> OutputType | Augmented lagrange multiplier method | ### Application of Methods(example) diff --git a/examples/doc/_constrain.md b/examples/doc/_constrain.md index c8def65..7e198f4 100644 --- a/examples/doc/_constrain.md +++ b/examples/doc/_constrain.md @@ -29,8 +29,8 @@ oc.equal.[函数名]([目标函数], [参数表], [等式约束表], [初始迭 | 方法头 | 解释 | | ----------------------------------------------------------------------------------------------------------------------------------------------------- | --------- | -| penalty_quadratice(funcs: FuncArray, args: FuncArray, cons: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="trust_region", sigma: float=10, p: float=2, epsilon: float=1e-4, k: int=0) -> OutputType | 增加二次罚项 | -| lagrange_augmentede(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="trust_region", lamk: float=6, sigma: float=10, p: float=2, etak: float=1e-4, epsilon: float=1e-6, k: int=0) -> OutputType | 增广拉格朗日乘子法 | +| penalty_quadratice(funcs: FuncArray, args: FuncArray, cons: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="newton", sigma: float=10, p: float=2, epsk: float=1e-4, epsilon: float=1e-4, k: int=0) -> OutputType | 增加二次罚项 | +| lagrange_augmentede(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="newton", lamk: float=6, sigma: float=10, p: float=2, etak: float=1e-4, epsilon: float=1e-6, k: int=0) -> OutputType | 增广拉格朗日乘子法 | ```python @@ -60,9 +60,9 @@ oc.unequal.[函数名]([目标函数], [参数表], [不等式约束表], [初 | 方法头 | 解释 | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------- | -| penalty_quadraticu(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="trust_region", sigma: float=10, p: float=0.4, epsilon: float=1e-10, k: int=0) -> OutputType | 增加二次罚项 | -| penalty_interior_fraction(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="trust_region", sigma: float=12, p: float=0.6, epsilon: float=1e-6, k: int=0) -> OutputType | 增加分式函数罚项 | -| lagrange_augmentedu(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="trust_region", muk: float=10, sigma: float=8, alpha: float=0.2, beta: float=0.7, p: float=2, eta: float=1e-1, epsilon: float=1e-4, k: int=0) -> OutputType | 增广拉格朗日乘子法 | +| penalty_quadraticu(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="newton", sigma: float=10, p: float=0.4, epsk: float=1e-6, epsilon: float=1e-10, k: int=0) -> OutputType | 增加二次罚项 | +| penalty_interior_fraction(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="newton", sigma: float=12, p: float=0.6, epsk: float=1e-6, epsilon: float=1e-6, k: int=0) -> OutputType | 增加分式函数罚项 | +| lagrange_augmentedu(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="newton", muk: float=10, sigma: float=8, alpha: float=0.2, beta: float=0.7, p: float=2, eta: float=1e-1, epsilon: float=1e-4, k: int=0) -> OutputType | 增广拉格朗日乘子法 | ```python @@ -92,9 +92,9 @@ oc.mixequal.[函数名]([目标函数], [参数表], [等式约束表], [不等 | 方法头 | 解释 | | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- | -| penalty_quadraticm(funcs: FuncArray, args: ArgArray, cons_equal: FuncArray, cons_unequal: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="trust_region", sigma: float=10, p: float=0.6, epsilon: float=1e-10, k: int=0) -> OutputType | 增加二次罚项 | -| penalty_L1(funcs: FuncArray, args: ArgArray, cons_equal: FuncArray, cons_unequal: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="trust_region", sigma: float=1, p: float=0.6, epsilon: float=1e-10, k: int=0) -> OutputType | L1精确罚函数法 | -| lagrange_augmentedm(funcs: FuncArray, args: ArgArray, cons_equal: FuncArray, cons_unequal: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="trust_region", lamk: float=6, muk: float=10, sigma: float=8, alpha: float=0.5, beta: float=0.7, p: float=2, eta: float=1e-3, epsilon: float=1e-4, k: int=0) -> OutputType | 增广拉格朗日乘子法 | +| penalty_quadraticm(funcs: FuncArray, args: ArgArray, cons_equal: FuncArray, cons_unequal: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="newton", sigma: float=10, p: float=0.6, epsk: float=1e-4, epsilon: float=1e-10, k: int=0) -> OutputType | 增加二次罚项 | +| penalty_L1(funcs: FuncArray, args: ArgArray, cons_equal: FuncArray, cons_unequal: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="newton", sigma: float=1, p: float=0.6, epsk: float=1e-6, epsilon: float=1e-10, k: int=0) -> OutputType | L1精确罚函数法 | +| lagrange_augmentedm(funcs: FuncArray, args: ArgArray, cons_equal: FuncArray, cons_unequal: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="newton", lamk: float=6, muk: float=10, sigma: float=8, alpha: float=0.5, beta: float=0.7, p: float=2, eta: float=1e-3, epsilon: float=1e-4, k: int=0) -> OutputType | 增广拉格朗日乘子法 | ```python diff --git a/examples/doc/_unconstrain.md b/examples/doc/_unconstrain.md index 7ee7d83..41de98a 100644 --- a/examples/doc/_unconstrain.md +++ b/examples/doc/_unconstrain.md @@ -35,7 +35,7 @@ ou.gradient_descent.[函数名]([目标函数], [参数表], [初始迭代点]) | ----------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------ | | solve(funcs: FuncArray, args: ArgArray, x_0: PointArray, draw: bool=True, output_f: bool=False, epsilon: float=1e-10, k: int=0) -> OutputType | 通过解方程的方式来求解精确步长 | | steepest(funcs: FuncArray, args: ArgArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="wolfe", epsilon: float=1e-10, k: int=0) -> OutputType | 使用线搜索方法求解非精确步长(默认使用wolfe线搜索) | -| barzilar_borwein(funcs: FuncArray, args: ArgArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="Grippo", c1: float=0.6, beta: float=0.6, alpha: float=1, epsilon: float=1e-10, k: int=0) -> OutputType | 使用Grippo与ZhangHanger提出的非单调线搜索方法更新步长 | +| barzilar_borwein(funcs: FuncArray, args: ArgArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="Grippo", c1: float=0.6, beta: float=0.6, M: int=20, eta: float=0.6, alpha: float=1, epsilon: float=1e-10, k: int=0) -> OutputType | 使用Grippo与ZhangHanger提出的非单调线搜索方法更新步长 | ```python diff --git a/optimtool/__init__.py b/optimtool/__init__.py index 002b8ad..220222d 100644 --- a/optimtool/__init__.py +++ b/optimtool/__init__.py @@ -28,4 +28,4 @@ from ._version import __version__ if sys.version_info < (3, 7, 0): - raise OSError(f'optimtool-2.4.3 requires Python >=3.7, but yours is {sys.version}') \ No newline at end of file + raise OSError(f'optimtool-2.4.4 requires Python >=3.7, but yours is {sys.version}') \ No newline at end of file diff --git a/optimtool/_kernel.py b/optimtool/_kernel.py index 8180662..5203811 100644 --- a/optimtool/_kernel.py +++ b/optimtool/_kernel.py @@ -18,29 +18,81 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. -from .unconstrain.gradient_descent import barzilar_borwein -from .unconstrain.newton import modified -from .unconstrain.newton_quasi import L_BFGS -from .unconstrain.trust_region import steihaug_CG -# will be updated in the future -def kernel(method: str) -> str: +def kernel(method: str): ''' + Parameters + ---------- method : str 无约束优化方法内核 - + Returns ------- - str + .unconstrain. 内核方法名 ''' - if method == "trust_region": - return 'steihaug_CG' - elif method == "newton": - return 'modified' - elif method == "newton_quasi": - return 'L_BFGS' + from .unconstrain.gradient_descent import barzilar_borwein + from .unconstrain.newton import CG + from .unconstrain.newton_quasi import bfgs + from .unconstrain.trust_region import steihaug_CG + if method == "newton": + return CG elif method == "gradient_descent": - return 'barzilar_borwein' - return 'steihaug_CG' \ No newline at end of file + return barzilar_borwein + elif method == "newton_quasi": + return bfgs + elif method == "trust_region": + return steihaug_CG + else: + raise ValueError("The kernel selector supports 4 parameters: gradient_descent, newton, newton_quasi, trust_region.") + +def linear_search(method: str): + ''' + Parameters + ---------- + method: str + 线搜索方法作为无约束方法的步长搜索器 + + + Returns + ------- + ._search. + 与后续操作兼容的线搜索方法 + ''' + from ._search import armijo, goldstein, wolfe + if method == 'armijo': + return armijo + elif method == 'goldstein': + return goldstein + elif method == 'wolfe': + return wolfe + else: + raise ValueError("The search selector supports 3 parameters: armijo, goldstein, wolfe.") + +def nonmonotonic_search(method: str, M: int, eta: float): + ''' + Parameters + ---------- + method: str + 非单调线搜索方法作为barzilar_borwein的步长搜索器 + + M: int + 约束内部`max`过程的常量 + + eta: float + 控制`C_k`过程的常量 + + + Returns + ------- + (Grippo or ZhangHanger, int or float) + 与barzilar_borwein兼容的函数 + ''' + from ._search import Grippo, ZhangHanger + if method == 'Grippo': + return Grippo, M + elif method == 'ZhangHanger': + return ZhangHanger, eta + else: + raise ValueError("The search selector supports 2 parameters: Grippo, ZhangHanger.") \ No newline at end of file diff --git a/optimtool/_version.py b/optimtool/_version.py index d688d75..153935b 100644 --- a/optimtool/_version.py +++ b/optimtool/_version.py @@ -18,4 +18,4 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. -__version__ = '2.4.3' \ No newline at end of file +__version__ = '2.4.4' \ No newline at end of file diff --git a/optimtool/constrain/equal.py b/optimtool/constrain/equal.py index dd254aa..5a142f7 100644 --- a/optimtool/constrain/equal.py +++ b/optimtool/constrain/equal.py @@ -25,7 +25,7 @@ from .._typing import FuncArray, ArgArray, PointArray, OutputType, DataType -def penalty_quadratice(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="trust_region", sigma: float=10.0, p: float=2.0, epsilon: float=1e-4, k: int=0) -> OutputType: +def penalty_quadratice(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="newton", sigma: float=10.0, p: float=2.0, epsk: float=1e-4, epsilon: float=1e-4, k: int=0) -> OutputType: ''' Parameters ---------- @@ -55,6 +55,9 @@ def penalty_quadratice(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: P p : float 修正参数 + + epsk: float + 无约束内核的精度 epsilon : float 迭代停机准则 @@ -71,16 +74,16 @@ def penalty_quadratice(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: P ''' assert sigma > 0 assert p > 1 - from .._kernel import kernel, barzilar_borwein, modified, L_BFGS, steihaug_CG + from .._kernel import kernel funcs, args, x_0, cons = f2m(funcs), a2m(args), p2t(x_0), f2m(cons) - search, point, f = eval(kernel(method)), [], [] + search, point, f = kernel(method), [], [] sig = sp.symbols("sig") pen = funcs + (sig / 2) * cons.T * cons while 1: point.append(np.array(x_0)) f.append(get_value(funcs, args, x_0)) pe = pen.subs(sig, sigma) - x_0, _ = search(pe, args, tuple(x_0), draw=False) + x_0, _ = search(pe, args, tuple(x_0), draw=False, epsilon=epsk) k = k + 1 if np.linalg.norm(x_0 - point[k - 1]) < epsilon: point.append(np.array(x_0)) @@ -90,7 +93,7 @@ def penalty_quadratice(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: P plot_iteration(f, draw, "penalty_quadratic_equal") return (x_0, k, f) if output_f is True else (x_0, k) -def lagrange_augmentede(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="trust_region", lamk: float=6, sigma: float=10, p: float=2, etak: float=1e-4, epsilon: float=1e-6, k: int=0) -> OutputType: +def lagrange_augmentede(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="newton", lamk: float=6, sigma: float=10, p: float=2, etak: float=1e-4, epsilon: float=1e-6, k: int=0) -> OutputType: ''' Parameters ---------- @@ -142,10 +145,10 @@ def lagrange_augmentede(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: ''' assert sigma > 0 assert p > 1 - from .._kernel import kernel, barzilar_borwein, modified, L_BFGS, steihaug_CG - search, f = eval(kernel(method)), [] + from .._kernel import kernel + search, f = kernel(method), [] funcs, args, x_0, cons = f2m(funcs), a2m(args), p2t(x_0), f2m(cons) - lamk = np.array([lamk for i in range(cons.shape[0])]).reshape(cons.shape[0], 1) + lamk = np.array([lamk for _ in range(cons.shape[0])]).reshape(cons.shape[0], 1) while 1: L = sp.Matrix([funcs + (sigma / 2) * cons.T * cons + cons.T * lamk]) f.append(get_value(funcs, args, x_0)) diff --git a/optimtool/constrain/mixequal.py b/optimtool/constrain/mixequal.py index 6c9fc8a..2244a0b 100644 --- a/optimtool/constrain/mixequal.py +++ b/optimtool/constrain/mixequal.py @@ -25,7 +25,7 @@ from .._typing import FuncArray, ArgArray, PointArray, OutputType, DataType -def penalty_quadraticm(funcs: FuncArray, args: ArgArray, cons_equal: FuncArray, cons_unequal: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="trust_region", sigma: float=10, p: float=0.6, epsilon: float=1e-10, k: int=0) -> OutputType: +def penalty_quadraticm(funcs: FuncArray, args: ArgArray, cons_equal: FuncArray, cons_unequal: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="newton", sigma: float=10, p: float=0.6, epsk: float=1e-6, epsilon: float=1e-10, k: int=0) -> OutputType: ''' Parameters ---------- @@ -58,6 +58,9 @@ def penalty_quadraticm(funcs: FuncArray, args: ArgArray, cons_equal: FuncArray, p : float 修正参数 + + epsk: float + 无约束内核的精度 epsilon : float 迭代停机准则 @@ -74,9 +77,9 @@ def penalty_quadraticm(funcs: FuncArray, args: ArgArray, cons_equal: FuncArray, ''' assert sigma > 0 assert p > 0 - from .._kernel import kernel, barzilar_borwein, modified, L_BFGS, steihaug_CG + from .._kernel import kernel funcs, args, cons_equal, cons_unequal, x_0 = f2m(funcs), a2m(args), f2m(cons_equal), f2m(cons_unequal), p2t(x_0) - search, point, f = eval(kernel(method)), [], [] + search, point, f = kernel(method), [], [] while 1: point.append(np.array(x_0)) f.append(get_value(funcs, args, x_0)) @@ -85,7 +88,7 @@ def penalty_quadraticm(funcs: FuncArray, args: ArgArray, cons_equal: FuncArray, consv = np.where(consv <= 0, consv, 1) consv = np.where(consv > 0, consv, 0) pe = sp.Matrix([funcs + (sigma / 2) * cons_unequal.T * consv + (sigma / 2) * cons_equal.T * cons_equal]) - x_0, _ = search(pe, args, tuple(x_0), draw=False) + x_0, _ = search(pe, args, tuple(x_0), draw=False, epsilon=epsk) k = k + 1 if np.linalg.norm(x_0 - point[k - 1]) < epsilon: point.append(np.array(x_0)) @@ -95,7 +98,7 @@ def penalty_quadraticm(funcs: FuncArray, args: ArgArray, cons_equal: FuncArray, plot_iteration(f, draw, "penalty_quadratic_mixequal") return (x_0, k, f) if output_f is True else (x_0, k) -def penalty_L1(funcs: FuncArray, args: ArgArray, cons_equal: FuncArray, cons_unequal: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="trust_region", sigma: float=1, p: float=0.6, epsilon: float=1e-10, k: int=0) -> OutputType: +def penalty_L1(funcs: FuncArray, args: ArgArray, cons_equal: FuncArray, cons_unequal: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="newton", sigma: float=1, p: float=0.6, epsk: float=1e-6, epsilon: float=1e-10, k: int=0) -> OutputType: ''' Parameters ---------- @@ -128,6 +131,9 @@ def penalty_L1(funcs: FuncArray, args: ArgArray, cons_equal: FuncArray, cons_une p : float 修正参数 + + epsk: float + 无约束内核的精度 epsilon : float 迭代停机准则 @@ -144,9 +150,9 @@ def penalty_L1(funcs: FuncArray, args: ArgArray, cons_equal: FuncArray, cons_une ''' assert sigma > 0 assert p > 0 - from .._kernel import kernel, barzilar_borwein, modified, L_BFGS, steihaug_CG + from .._kernel import kernel funcs, args, cons_equal, cons_unequal, x_0 = f2m(funcs), a2m(args), f2m(cons_equal), f2m(cons_unequal), p2t(x_0) - search, point, f = eval(kernel(method)), [], [] + search, point, f = kernel(method), [], [] while 1: point.append(np.array(x_0)) f.append(get_value(funcs, args, x_0)) @@ -158,7 +164,7 @@ def penalty_L1(funcs: FuncArray, args: ArgArray, cons_equal: FuncArray, cons_une consv_equal = np.where(consv_equal <= 0, consv_equal, 1) consv_equal = np.where(consv_equal > 0, consv_equal, -1) pe = sp.Matrix([funcs + sigma * cons_unequal.T * consv_unequal + sigma * cons_equal.T * consv_equal]) - x_0, _ = search(pe, args, tuple(x_0), draw=False) + x_0, _ = search(pe, args, tuple(x_0), draw=False, epsilon=epsk) k = k + 1 if np.linalg.norm(x_0 - point[k - 1]) < epsilon: point.append(np.array(x_0)) @@ -168,7 +174,7 @@ def penalty_L1(funcs: FuncArray, args: ArgArray, cons_equal: FuncArray, cons_une plot_iteration(f, draw, "penalty_L1") return (x_0, k, f) if output_f is True else (x_0, k) -def lagrange_augmentedm(funcs: FuncArray, args: ArgArray, cons_equal: FuncArray, cons_unequal: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="trust_region", lamk: float=6, muk: float=10, sigma: float=8, alpha: float=0.5, beta: float=0.7, p: float=2, eta: float=1e-3, epsilon: float=1e-4, k: int=0) -> OutputType: +def lagrange_augmentedm(funcs: FuncArray, args: ArgArray, cons_equal: FuncArray, cons_unequal: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="newton", lamk: float=6, muk: float=10, sigma: float=8, alpha: float=0.5, beta: float=0.7, p: float=2, eta: float=1e-3, epsilon: float=1e-4, k: int=0) -> OutputType: ''' Parameters ---------- @@ -235,12 +241,12 @@ def lagrange_augmentedm(funcs: FuncArray, args: ArgArray, cons_equal: FuncArray, assert alpha > 0 assert alpha <= beta assert beta < 1 - from .._kernel import kernel, barzilar_borwein, modified, L_BFGS, steihaug_CG + from .._kernel import kernel from .._drive import cons_unequal_L, v_k, renew_mu_k funcs, args, cons_equal, cons_unequal, x_0 = f2m(funcs), a2m(args), f2m(cons_equal), f2m(cons_unequal), p2t(x_0) - search, f = eval(kernel(method)), [] - lamk = np.array([lamk for i in range(cons_equal.shape[0])]).reshape(cons_equal.shape[0], 1) - muk = np.array([muk for i in range(cons_unequal.shape[0])]).reshape(cons_unequal.shape[0], 1) + search, f = kernel(method), [] + lamk = np.array([lamk for _ in range(cons_equal.shape[0])]).reshape(cons_equal.shape[0], 1) + muk = np.array([muk for _ in range(cons_unequal.shape[0])]).reshape(cons_unequal.shape[0], 1) while 1: etak = 1 / sigma epsilonk = 1 / sigma**alpha diff --git a/optimtool/constrain/unequal.py b/optimtool/constrain/unequal.py index f27d807..f9d81ca 100644 --- a/optimtool/constrain/unequal.py +++ b/optimtool/constrain/unequal.py @@ -25,7 +25,7 @@ from .._typing import FuncArray, ArgArray, PointArray, OutputType, DataType -def penalty_quadraticu(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="trust_region", sigma: float=10, p: float=0.4, epsilon: float=1e-10, k: int=0) -> OutputType: +def penalty_quadraticu(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="newton", sigma: float=10, p: float=0.4, epsk: float=1e-4, epsilon: float=1e-10, k: int=0) -> OutputType: ''' Parameters ---------- @@ -55,6 +55,9 @@ def penalty_quadraticu(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: P p : float 修正参数 + + epsk: float + 无约束内核的精度 epsilon : float 迭代停机准则 @@ -72,9 +75,9 @@ def penalty_quadraticu(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: P assert sigma > 0 assert p > 0 assert p < 1 - from .._kernel import kernel, barzilar_borwein, modified, L_BFGS, steihaug_CG + from .._kernel import kernel funcs, args, x_0, cons = f2m(funcs), a2m(args), p2t(x_0), f2m(cons) - search, point, f = eval(kernel(method)), [], [] + search, point, f = kernel(method), [], [] while 1: point.append(np.array(x_0)) f.append(get_value(funcs, args, x_0)) @@ -83,7 +86,7 @@ def penalty_quadraticu(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: P consv = np.where(consv <= 0, consv, 1) consv = np.where(consv > 0, consv, 0) pe = sp.Matrix([funcs + (sigma / 2) * cons.T * consv]) - x_0, _ = search(pe, args, tuple(x_0), draw=False) + x_0, _ = search(pe, args, tuple(x_0), draw=False, epsilon=epsk) k = k + 1 if np.linalg.norm(x_0 - point[k - 1]) < epsilon: point.append(np.array(x_0)) @@ -96,7 +99,8 @@ def penalty_quadraticu(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: P ''' 保证点在定义域内 ''' -def penalty_interior_fraction(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="trust_region", sigma: float=12, p: float=0.6, epsilon: float=1e-6, k: int=0) -> OutputType: +# 后续版本会弃用这个方法 +def penalty_interior_fraction(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="newton", sigma: float=12, p: float=0.6, epsk: float=1e-6, epsilon: float=1e-6, k: int=0) -> OutputType: ''' Parameters ---------- @@ -126,6 +130,9 @@ def penalty_interior_fraction(funcs: FuncArray, args: ArgArray, cons: FuncArray, p : float 修正参数 + + epsk: float + 无约束内核的精度 epsilon : float 迭代停机准则 @@ -143,9 +150,9 @@ def penalty_interior_fraction(funcs: FuncArray, args: ArgArray, cons: FuncArray, assert sigma > 0 assert p > 0 assert p < 1 - from .._kernel import kernel, barzilar_borwein, modified, L_BFGS, steihaug_CG + from .._kernel import kernel funcs, args, x_0, cons = f2m(funcs), a2m(args), p2t(x_0), f2m(cons) - search, point, f = eval(kernel(method)), [], [] + search, point, f = kernel(method), [], [] sub_pe = 0 for i in cons: sub_pe += 1 / i @@ -154,7 +161,7 @@ def penalty_interior_fraction(funcs: FuncArray, args: ArgArray, cons: FuncArray, point.append(np.array(x_0)) f.append(get_value(funcs, args, x_0)) pe = sp.Matrix([funcs - sigma * sub_pe]) - x_0, _ = search(pe, args, tuple(x_0), draw=False) + x_0, _ = search(pe, args, tuple(x_0), draw=False, epsilon=epsk) k = k + 1 sigma = p * sigma if np.linalg.norm(x_0 - point[k - 1]) < epsilon: @@ -164,7 +171,7 @@ def penalty_interior_fraction(funcs: FuncArray, args: ArgArray, cons: FuncArray, plot_iteration(f, draw, "penalty_interior_fraction") return (x_0, k, f) if output_f is True else (x_0, k) -def lagrange_augmentedu(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="trust_region", muk: float=10, sigma: float=8, alpha: float=0.2, beta: float=0.7, p: float=2, eta: float=1e-1, epsilon: float=1e-4, k: int=0) -> OutputType: +def lagrange_augmentedu(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="newton", muk: float=10, sigma: float=8, alpha: float=0.2, beta: float=0.7, p: float=2, eta: float=1e-1, epsilon: float=1e-4, k: int=0) -> OutputType: ''' Parameters ---------- @@ -225,10 +232,10 @@ def lagrange_augmentedu(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: assert alpha > 0 assert alpha <= beta assert beta < 1 - from .._kernel import kernel, barzilar_borwein, modified, L_BFGS, steihaug_CG + from .._kernel import kernel from .._drive import cons_unequal_L, renew_mu_k, v_k funcs, args, x_0, cons = f2m(funcs), a2m(args), p2t(x_0), f2m(cons) - search, f = eval(kernel(method)), [] + search, f = kernel(method), [] muk = np.array([muk for _ in range(cons.shape[0])]).reshape(cons.shape[0], 1) while 1: etak = 1 / sigma diff --git a/optimtool/unconstrain/gradient_descent.py b/optimtool/unconstrain/gradient_descent.py index 7721a11..95741bd 100644 --- a/optimtool/unconstrain/gradient_descent.py +++ b/optimtool/unconstrain/gradient_descent.py @@ -58,10 +58,10 @@ def solve(funcs: FuncArray, args: ArgArray, x_0: PointArray, draw: bool=True, ou ''' funcs, args, x_0 = f2m(funcs), a2m(args), p2t(x_0) - res = funcs.jacobian(args) + assert all(funcs.shape) == 1 and args.shape[0] == len(x_0) + res = funcs.jacobian(args) # gradient m = sp.symbols("m") - arg = sp.Matrix([m]) - f = [] + arg, f = sp.Matrix([m]), [] while 1: reps = dict(zip(args, x_0)) f.append(get_value(funcs, args, x_0)) @@ -70,8 +70,8 @@ def solve(funcs: FuncArray, args: ArgArray, x_0: PointArray, draw: bool=True, ou xt = x_0 + m * dk[0] h = funcs.subs(dict(zip(args, xt))).jacobian(arg) mt = sp.solve(h) - x_0 = (x_0 + mt[m] * dk[0]).astype(DataType) - k = k + 1 + x_0 += (mt[m] * dk[0]).astype(DataType) + k += 1 else: break plot_iteration(f, draw, "gradient_descent_solve") @@ -112,25 +112,26 @@ def steepest(funcs: FuncArray, args: ArgArray, x_0: PointArray, draw: bool=True, 最终收敛点, 迭代次数, (迭代函数值列表) ''' - from .._search import armijo, goldstein, wolfe - search, f = eval(method), [] funcs, args, x_0 = f2m(funcs), a2m(args), p2t(x_0) - res = funcs.jacobian(args) + assert all(funcs.shape) == 1 and args.shape[0] == len(x_0) + from .._kernel import linear_search + search, f = linear_search(method), [] + res = funcs.jacobian(args) # gradient while 1: reps = dict(zip(args, x_0)) f.append(get_value(funcs, args, x_0)) dk = -np.array(res.subs(reps)).astype(DataType) if np.linalg.norm(dk) >= epsilon: alpha = search(funcs, args, x_0, dk) - x_0 = x_0 + alpha * dk[0] - k = k + 1 + x_0 += alpha * dk[0] + k += 1 else: break plot_iteration(f, draw, "gradient_descent_steepest") return (x_0, k, f) if output_f is True else (x_0, k) # Barzilar Borwein梯度下降法 -def barzilar_borwein(funcs: FuncArray, args: ArgArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="Grippo", c1: float=0.6, beta: float=0.6, alpha: float=1, epsilon: float=1e-10, k: int=0) -> OutputType: +def barzilar_borwein(funcs: FuncArray, args: ArgArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str="Grippo", c1: float=0.6, beta: float=0.6, M: int=20, eta: float=0.6, alpha: float=1, epsilon: float=1e-10, k: int=0) -> OutputType: ''' Parameters ---------- @@ -152,14 +153,17 @@ def barzilar_borwein(funcs: FuncArray, args: ArgArray, x_0: PointArray, draw: bo method : str 非单调线搜索方法:"Grippo"与"ZhangHanger" - M : int - 阈值 - c1 : float 常数 beta : float 常数 + + M : int + 阈值 + + eta: float + 阈值 alpha : float 初始步长 @@ -182,17 +186,21 @@ def barzilar_borwein(funcs: FuncArray, args: ArgArray, x_0: PointArray, draw: bo assert c1 < 1 assert beta > 0 assert beta < 1 - from .._search import Grippo, ZhangHanger - search, point, f = eval(method), [], [] + assert M > 0 + assert eta > 0 + assert eta < 1 funcs, args, x_0 = f2m(funcs), a2m(args), p2t(x_0) - res = funcs.jacobian(args) + assert all(funcs.shape) == 1 and args.shape[0] == len(x_0) + from .._kernel import nonmonotonic_search + search, constant = nonmonotonic_search(method, M, eta) + res, point, f = funcs.jacobian(args), [], [] while 1: point.append(x_0) reps = dict(zip(args, x_0)) f.append(get_value(funcs, args, x_0)) - dk = - np.array(res.subs(reps)).astype(DataType) + dk = -np.array(res.subs(reps)).astype(DataType) if np.linalg.norm(dk) >= epsilon: - alpha = search(funcs, args, x_0, dk, k, point, c1, beta, alpha) + alpha = search(funcs, args, x_0, dk, k, point, c1, beta, alpha, constant) delta = alpha * dk[0] x_0 = x_0 + delta yk = np.array(res.subs(dict(zip(args, x_0)))).astype(DataType) + dk @@ -200,7 +208,7 @@ def barzilar_borwein(funcs: FuncArray, args: ArgArray, x_0: PointArray, draw: bo alpha_down = delta.dot(yk.T) if alpha_down != 0: alpha = alpha_up / alpha_down - k = k + 1 + k += 1 else: break plot_iteration(f, draw, "gradient_descent_barzilar_borwein_" + method) diff --git a/optimtool/unconstrain/newton.py b/optimtool/unconstrain/newton.py index 2f83a3a..c2d8c70 100644 --- a/optimtool/unconstrain/newton.py +++ b/optimtool/unconstrain/newton.py @@ -57,18 +57,18 @@ def classic(funcs: FuncArray, args: ArgArray, x_0: PointArray, draw: bool=True, ''' funcs, args, x_0 = f2m(funcs), a2m(args), p2t(x_0) - res = funcs.jacobian(args) - hes = res.jacobian(args) - f = [] + assert all(funcs.shape) == 1 and args.shape[0] == len(x_0) + res = funcs.jacobian(args) # gradient + hes, f = res.jacobian(args), [] while 1: reps = dict(zip(args, x_0)) f.append(get_value(funcs, args, x_0)) - hessian = np.array(hes.subs(reps)).astype(DataType) gradient = np.array(res.subs(reps)).astype(DataType) - dk = - np.linalg.inv(hessian).dot(gradient.T).reshape(1, -1) + hessian = np.array(hes.subs(reps)).astype(DataType) + dk = -np.linalg.inv(hessian).dot(gradient.T).reshape(1, -1) if np.linalg.norm(dk) >= epsilon: - x_0 = x_0 + dk[0] - k = k + 1 + x_0 += dk[0] + k += 1 else: break plot_iteration(f, draw, "newton_classic") @@ -109,22 +109,23 @@ def modified(funcs: FuncArray, args: ArgArray, x_0: PointArray, draw: bool=True, 最终收敛点, 迭代次数, (迭代函数值列表) ''' - from .._search import armijo, goldstein, wolfe + from .._kernel import linear_search funcs, args, x_0 = f2m(funcs), a2m(args), p2t(x_0) - search, f = eval(method), [] - res = funcs.jacobian(args) - hes = res.jacobian(args) + assert all(funcs.shape) == 1 and args.shape[0] == len(x_0) + search, f = linear_search(method), [] + res = funcs.jacobian(args) # graident + hes = res.jacobian(args) # hessian while 1: reps = dict(zip(args, x_0)) f.append(get_value(funcs, args, x_0)) gradient = np.array(res.subs(reps)).astype(DataType) - hessian = np.array(hes.subs(reps)).astype(DataType) + hessian = np.array(hes.subs(reps)).astype(DataType) # hessian: from `object` to `float` hessian = h2h(hessian) dk = -np.linalg.inv(hessian).dot(gradient.T).reshape(1, -1) if np.linalg.norm(dk) >= epsilon: alpha = search(funcs, args, x_0, dk) - x_0 = x_0 + alpha * dk[0] - k = k + 1 + x_0 += alpha * dk[0] + k += 1 else: break plot_iteration(f, draw, "newton_modified_" + method) @@ -163,15 +164,15 @@ def CG(funcs: FuncArray, args: ArgArray, x_0: PointArray, draw: bool=True, outpu ------- OutputType 最终收敛点, 迭代次数, (迭代函数值列表) - + f ''' - from .._search import armijo, goldstein, wolfe from .._drive import CG_gradient + from .._kernel import linear_search funcs, args, x_0 = f2m(funcs), a2m(args), p2t(x_0) - search, f = eval(method), [] - res = funcs.jacobian(args) - hes = res.jacobian(args) - dk0 = np.zeros((args.shape[0], 1)) + assert all(funcs.shape) == 1 and args.shape[0] == len(x_0) + search, f = linear_search(method), [] + res = funcs.jacobian(args) # gradient + hes, dk0 = res.jacobian(args), np.zeros((args.shape[0], 1)) # hessian and initial dk while 1: reps = dict(zip(args, x_0)) f.append(get_value(funcs, args, x_0)) diff --git a/optimtool/unconstrain/newton_quasi.py b/optimtool/unconstrain/newton_quasi.py index 012ac2c..c1a8eab 100644 --- a/optimtool/unconstrain/newton_quasi.py +++ b/optimtool/unconstrain/newton_quasi.py @@ -60,9 +60,10 @@ def bfgs(funcs: FuncArray, args: ArgArray, x_0: PointArray, draw: bool=True, out 最终收敛点, 迭代次数, (迭代函数值列表) ''' - from .._search import armijo, goldstein, wolfe + from .._kernel import linear_search funcs, args, x_0 = f2m(funcs), a2m(args), p2t(x_0) - search, f = eval(method), [] + assert all(funcs.shape) == 1 and args.shape[0] == len(x_0) + search, f = linear_search(method), [] res = funcs.jacobian(args) hes = res.jacobian(args) hess = np.array(hes.subs(dict(zip(args, x_0)))).astype(DataType) @@ -123,9 +124,10 @@ def dfp(funcs: FuncArray, args: ArgArray, x_0: PointArray, draw: bool=True, outp 最终收敛点, 迭代次数, (迭代函数值列表) ''' - from .._search import armijo, goldstein, wolfe + from .._kernel import linear_search funcs, args, x_0 = f2m(funcs), a2m(args), p2t(x_0) - search, f = eval(method), [] + assert all(funcs.shape) == 1 and args.shape[0] == len(x_0) + search, f = linear_search(method), [] res = funcs.jacobian(args) hes = res.jacobian(args) hess = np.array(hes.subs(dict(zip(args, x_0)))).astype(DataType) @@ -190,10 +192,11 @@ def L_BFGS(funcs: FuncArray, args: ArgArray, x_0: PointArray, draw: bool=True, o 最终收敛点, 迭代次数, (迭代函数值列表) ''' - from .._search import armijo, goldstein, wolfe from .._drive import L_BFGS_double_loop + from .._kernel import linear_search funcs, args, x_0 = f2m(funcs), a2m(args), p2t(x_0) - search = eval(method) + assert all(funcs.shape) == 1 and args.shape[0] == len(x_0) + search = linear_search(method) res = funcs.jacobian(args) hes = res.jacobian(args) l = hes.shape[0] diff --git a/optimtool/unconstrain/nonlinear_least_square.py b/optimtool/unconstrain/nonlinear_least_square.py index 4ebfab9..b84d133 100644 --- a/optimtool/unconstrain/nonlinear_least_square.py +++ b/optimtool/unconstrain/nonlinear_least_square.py @@ -60,12 +60,11 @@ def gauss_newton(funcr: FuncArray, args: ArgArray, x_0: PointArray, draw: bool=T 最终收敛点, 迭代次数, (迭代函数值列表) ''' - from .._search import armijo, goldstein, wolfe + from .._kernel import linear_search funcr, args, x_0 = f2m(funcr), a2m(args), p2t(x_0) assert funcr.shape[0] > 1 and funcr.shape[1] ==1 and args.shape[0] == len(x_0) - search, f = eval(method), [] - res = funcr.jacobian(args) - funcs = sp.Matrix([(1/2)*funcr.T*funcr]) + search, f = linear_search(method), [] + res, funcs = funcr.jacobian(args), sp.Matrix([(1/2)*funcr.T*funcr]) while 1: reps = dict(zip(args, x_0)) rk = np.array(funcr.subs(reps)).astype(DataType) @@ -141,12 +140,9 @@ def levenberg_marquardt(funcr: FuncArray, args: ArgArray, x_0: PointArray, draw: from .._drive import CG_gradient funcr, args, x_0 = f2m(funcr), a2m(args), p2t(x_0) assert funcr.shape[0] > 1 and funcr.shape[1] ==1 and args.shape[0] == len(x_0) - res = funcr.jacobian(args) - funcs = sp.Matrix([(1/2)*funcr.T*funcr]) + res, funcs = funcr.jacobian(args), sp.Matrix([(1/2)*funcr.T*funcr]) resf = funcs.jacobian(args) - hess = resf.jacobian(args) - dk0 = np.zeros((args.shape[0], 1)) - f = [] + hess, dk0, f = resf.jacobian(args), np.zeros((args.shape[0], 1)), [] while 1: reps = dict(zip(args, x_0)) rk = np.array(funcr.subs(reps)).astype(DataType) diff --git a/optimtool/unconstrain/trust_region.py b/optimtool/unconstrain/trust_region.py index 4794090..cd456be 100644 --- a/optimtool/unconstrain/trust_region.py +++ b/optimtool/unconstrain/trust_region.py @@ -87,6 +87,7 @@ def steihaug_CG(funcs: FuncArray, args: ArgArray, x_0: PointArray, draw: bool=Tr assert gamma2 > 1 from .._drive import steihaug funcs, args, x_0 = f2m(funcs), a2m(args), p2t(x_0) + assert all(funcs.shape) == 1 and args.shape[0] == len(x_0) res = funcs.jacobian(args) hes = res.jacobian(args) s0, f = [0 for _ in range(args.shape[0])], [] diff --git a/setup.py b/setup.py index af6ad9b..d028047 100644 --- a/setup.py +++ b/setup.py @@ -4,7 +4,7 @@ from setuptools import setup if sys.version_info < (3, 7, 0): - raise OSError(f'optimtool-2.4.3 requires Python >=3.7, but yours is {sys.version}') + raise OSError(f'optimtool-2.4.4 requires Python >=3.7, but yours is {sys.version}') if (3, 7, 0) <= sys.version_info < (3, 8, 0): # https://github.com/pypa/setuptools/issues/926#issuecomment-294369342 diff --git a/tests/constrain/_constrain.ipynb.txt b/tests/constrain/_constrain.ipynb.txt index 50f6296..a0c840c 100644 --- a/tests/constrain/_constrain.ipynb.txt +++ b/tests/constrain/_constrain.ipynb.txt @@ -14,6 +14,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "6e2ba0b3-e6f7-496e-b2c8-847074cc9788", "metadata": {}, @@ -41,6 +42,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "c71c5ba3-1c24-48dd-a59a-c70ac66cd75a", "metadata": {}, @@ -53,8 +55,8 @@ "\n", "| 方法头 | 解释 |\n", "| ----------------------------------------------------------------------------------------------------------------------------------------------------- | --------- |\n", - "| penalty_quadratice(funcs: FuncArray, args: FuncArray, cons: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str=\"trust_region\", sigma: float=10, p: float=2, epsilon: float=1e-4, k: int=0) -> OutputType | 增加二次罚项 |\n", - "| lagrange_augmentede(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str=\"trust_region\", lamk: float=6, sigma: float=10, p: float=2, etak: float=1e-4, epsilon: float=1e-6, k: int=0) -> OutputType | 增广拉格朗日乘子法 |" + "| penalty_quadratice(funcs: FuncArray, args: FuncArray, cons: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str=\"newton\", sigma: float=10, p: float=2, epsk: float=1e-4, epsilon: float=1e-4, k: int=0) -> OutputType | 增加二次罚项 |\n", + "| lagrange_augmentede(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str=\"newton\", lamk: float=6, sigma: float=10, p: float=2, etak: float=1e-4, epsilon: float=1e-6, k: int=0) -> OutputType | 增广拉格朗日乘子法 |" ] }, { @@ -65,7 +67,7 @@ "outputs": [ { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "
" ] @@ -78,7 +80,7 @@ { "data": { "text/plain": [ - "(array([1.99999998, 1.00000002]), 5)" + "(array([1.99997634, 0.99997638]), 5)" ] }, "execution_count": 3, @@ -87,10 +89,11 @@ } ], "source": [ - "oc.equal.lagrange_augmentede(f, (x1, x2), c1, (1, 0.5))" + "oc.equal.lagrange_augmentede(f, (x1, x2), c1, (1.2, 0.6), method=\"gradient_descent\")" ] }, { + "attachments": {}, "cell_type": "markdown", "id": "14c37a5a-4a12-4a12-ab1f-42d0bbbd176d", "metadata": {}, @@ -103,9 +106,9 @@ "\n", "| 方法头 | 解释 |\n", "| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------- |\n", - "| penalty_quadraticu(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str=\"trust_region\", sigma: float=10, p: float=0.4, epsilon: float=1e-10, k: int=0) -> OutputType | 增加二次罚项 |\n", - "| penalty_interior_fraction(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str=\"trust_region\", sigma: float=12, p: float=0.6, epsilon: float=1e-6, k: int=0) -> OutputType | 增加分式函数罚项 |\n", - "| lagrange_augmentedu(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str=\"trust_region\", muk: float=10, sigma: float=8, alpha: float=0.2, beta: float=0.7, p: float=2, eta: float=1e-1, epsilon: float=1e-4, k: int=0) -> OutputType | 增广拉格朗日乘子法 |" + "| penalty_quadraticu(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str=\"newton\", sigma: float=10, p: float=0.4, epsk: float=1e-6, epsilon: float=1e-10, k: int=0) -> OutputType | 增加二次罚项 |\n", + "| penalty_interior_fraction(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str=\"newton\", sigma: float=12, p: float=0.6, epsk: float=1e-6, epsilon: float=1e-6, k: int=0) -> OutputType | 增加分式函数罚项 |\n", + "| lagrange_augmentedu(funcs: FuncArray, args: ArgArray, cons: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str=\"newton\", muk: float=10, sigma: float=8, alpha: float=0.2, beta: float=0.7, p: float=2, eta: float=1e-1, epsilon: float=1e-4, k: int=0) -> OutputType | 增广拉格朗日乘子法 |" ] }, { @@ -116,7 +119,7 @@ "outputs": [ { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "
" ] @@ -129,7 +132,7 @@ { "data": { "text/plain": [ - "(array([1.9999992, 1.0000008]), 32)" + "((1.9999986735646924, 1.0000013264367738), 32)" ] }, "execution_count": 4, @@ -142,6 +145,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "id": "481769cd-3e3f-4c73-9adb-d1331aebce9e", "metadata": {}, @@ -154,9 +158,9 @@ "\n", "| 方法头 | 解释 |\n", "| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------- |\n", - "| penalty_quadraticm(funcs: FuncArray, args: ArgArray, cons_equal: FuncArray, cons_unequal: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str=\"trust_region\", sigma: float=10, p: float=0.6, epsilon: float=1e-10, k: int=0) -> OutputType | 增加二次罚项 |\n", - "| penalty_L1(funcs: FuncArray, args: ArgArray, cons_equal: FuncArray, cons_unequal: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str=\"trust_region\", sigma: float=1, p: float=0.6, epsilon: float=1e-10, k: int=0) -> OutputType | L1精确罚函数法 |\n", - "| lagrange_augmentedm(funcs: FuncArray, args: ArgArray, cons_equal: FuncArray, cons_unequal: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str=\"trust_region\", lamk: float=6, muk: float=10, sigma: float=8, alpha: float=0.5, beta: float=0.7, p: float=2, eta: float=1e-3, epsilon: float=1e-4, k: int=0) -> OutputType | 增广拉格朗日乘子法 |" + "| penalty_quadraticm(funcs: FuncArray, args: ArgArray, cons_equal: FuncArray, cons_unequal: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str=\"newton\", sigma: float=10, p: float=0.6, epsk: float=1e-4, epsilon: float=1e-10, k: int=0) -> OutputType | 增加二次罚项 |\n", + "| penalty_L1(funcs: FuncArray, args: ArgArray, cons_equal: FuncArray, cons_unequal: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str=\"newton\", sigma: float=1, p: float=0.6, epsk: float=1e-6, epsilon: float=1e-10, k: int=0) -> OutputType | L1精确罚函数法 |\n", + "| lagrange_augmentedm(funcs: FuncArray, args: ArgArray, cons_equal: FuncArray, cons_unequal: FuncArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str=\"newton\", lamk: float=6, muk: float=10, sigma: float=8, alpha: float=0.5, beta: float=0.7, p: float=2, eta: float=1e-3, epsilon: float=1e-4, k: int=0) -> OutputType | 增广拉格朗日乘子法 |" ] }, { @@ -167,7 +171,7 @@ "outputs": [ { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "
" ] @@ -180,7 +184,7 @@ { "data": { "text/plain": [ - "(array([2., 1.]), 47)" + "((2.000000307047111, 0.9999996929528893), 30)" ] }, "execution_count": 5, @@ -217,7 +221,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.13" + "version": "3.8.12" }, "vscode": { "interpreter": { diff --git a/tests/unconstrain/_unconstrain.ipynb.txt b/tests/unconstrain/_unconstrain.ipynb.txt index 519c364..899544b 100644 --- a/tests/unconstrain/_unconstrain.ipynb.txt +++ b/tests/unconstrain/_unconstrain.ipynb.txt @@ -13,6 +13,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": { "tags": [] @@ -44,6 +45,7 @@ ] }, { + "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ @@ -57,7 +59,7 @@ "| ----------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------ |\n", "| solve(funcs: FuncArray, args: ArgArray, x_0: PointArray, draw: bool=True, output_f: bool=False, epsilon: float=1e-10, k: int=0) -> OutputType | 通过解方程的方式来求解精确步长 |\n", "| steepest(funcs: FuncArray, args: ArgArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str=\"wolfe\", epsilon: float=1e-10, k: int=0) -> OutputType | 使用线搜索方法求解非精确步长(默认使用wolfe线搜索) |\n", - "| barzilar_borwein(funcs: FuncArray, args: ArgArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str=\"Grippo\", c1: float=0.6, beta: float=0.6, alpha: float=1, epsilon: float=1e-10, k: int=0) -> OutputType | 使用Grippo与ZhangHanger提出的非单调线搜索方法更新步长 |" + "| barzilar_borwein(funcs: FuncArray, args: ArgArray, x_0: PointArray, draw: bool=True, output_f: bool=False, method: str=\"Grippo\", c1: float=0.6, beta: float=0.6, M: int=20, eta: float=0.6, alpha: float=1, epsilon: float=1e-10, k: int=0) -> OutputType | 使用Grippo与ZhangHanger提出的非单调线搜索方法更新步长 |" ] }, { @@ -67,7 +69,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAEYCAYAAABGJWFlAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAABEhklEQVR4nO3deXhU5dn48e+dSTJZSYCEJSSAFWRTRIuCC1ZALa5Rf9bldW1r9bW2ta206EsXa4tvbalaa7X6Fte6tVqNWhUFwaooFhVBVhHEBMKekITsyfP74zwznkwm+5kl4f5cVy7mPOfMOc+ZGeaeZxdjDEoppVSohFhnQCmlVHzSAKGUUiosDRBKKaXC0gChlFIqLA0QSimlwtIAoZRSKiwNEH2IiNwiIn+zj4eLSJWI+GKcp6UicnUs89BTInKViLwdpWtVichX7OOHReQ3EbhG3L0nIvIXEfl5jK59qYi8FotrxzsNEH2UMeYLY0yGMaapp+eKxy+UnhKRkSJiRCQx1nlxs+/Z5ljnI9qMMf9tjPl1T88jIpNF5CURKRORchFZKyLzRKR/O9d+3BhzWk+v3RdpgIhT8fbFpbwRjfdVHBH/vx1vn1EROR5YCrwDjDXGZAOzgEbgyDaeE1f3EG80QESZiBwtIh+JSKWI/ENEnhaR34jIySJSIiJzRGQH8JCI9Le/hnbbX0QviUi+61yHiMib9lyvAzmufS1+IYtIlogsEJFSEdlmr+mz+64SkbdFZL69zhYROd3umwdMA+6x1R/3dHB/p4rIehHZb4+VkP3fEpF19joLRWSETRcRuVNEdolIhYisFpHD7b5UEfmDiGy1531bRFLtvqkissz+WvxYRE52XWupiPxaRN6xr9FrIhJ4jf5t/y2393Vcx2+d3GOvv15EZrp2fNPeU6WIbBaRa137wr2vL9prBv6aReQqe7wRkVFhLt7RZ2Gp/aX8DlANfKWD+zlURN63r3WRiAxwnescEVljX9OlIjLOte9zey+rgAMi8h0RedG1/1MR+Ydru1hEJtnHY0XkdRHZJyIbRORC13HB6jTXa3aj/TyUisg3O7gfgN8BDxlj/tcYsxOCJelfGmOW2nNfZT8Pd4rIXuAWCalCtO/BD+x7uUdEfi824Lqe39ZnIU9EXrD3uElEvtOJfMcvY4z+RekPSAa2AjcAScD5QD3wG+BknF86twN+IBUYCPw/IA3IBP4BPO8637vAHfb4k4BK4G9230jAAIl2+zngfiAdGAS8D1xr910FNADfAXzAdcB2QOz+pcDVnbi/HJuHC+z9/cje09V2fyGwCRgHJAI/A5bZfV8HPgCycYLKOGCo3fdnm4dhNn/H23seBuwFzsD5sXOq3c515fsz4DD7ei4Ffhvu9engvq6y9/Eje18XAfuBAXb/mcChNt9fw/mCPtrua/W+hpz7dPtaF9htA4yyjx8GfmMfd/RZWAp8AUywr21SO/ezFNgGHG4/D8/y5efmMOCAfS2TgJ/a9yzZ7v8cWAkU2Nf0K0C5ff3zcD7fJfbYrwBldl86UAx80+bvKGAPMD7MvQZes1ttHs6wr2n/du4pHWgCTu7ke/l9m49Um/a26xgDLAEGAMOBjXz5Ge7os/Bv4F4gBZgE7AZmxPq7p9vfWbHOwMH0h/Mlvg37xWvT3ubLAFEPpLTz/ElAmX083H5Q0137nyBMgAAGA3W4vpyAS4Al9vFVwCbXvjT73CF2eymdCxBXAO+5tgUocf3negX4tmt/gv2PPwKYYf8jTgUSQo6pAY4Mc705wGMhaQuBK135/plr33eBV0Nfn07c11W4AqZNex+4vI3jnwdusI/bfF9xvox3ASe60sIGiPY+C657vbWTn8Ol2EBpt8fbPPqAnwN/D3n9t2G/eHECxLdCzlcMHA1cDDxgX5uxOMHgBXvMRcBbIc+7H/hl6L3a16zG/d7Y12lqO/eUb1+7sa603+EErwOBz4F9L78I8/6GBohZIZ+bxR19FnCCZhOQ6dr3v8DDnXlf4vFPq5iiKw/YZuwnxyp2Pd5tjKkNbIhImojcb6tWKnB+nWSLUzWUh/MFccD1/K1tXHcEzq+dUlttUI7zn3OQ65gdgQfGmGr7MKNrt0ee+37sfbrvbwTwR1ce9uEEkWHGmDeAe3BKC7tE5AER6YdTKknBKQmEu69vBM5nz3kiMDTcfeEEo67eU0Do+7YV534RkdNF5D1brVCO84s3x3Vsi/fVPicLKML54uqwh1QHn4WA4jaeHo772K04n48cviwFAGCMabbHDmvnOm/ifKmfZB8vxSlJfc1ug/NeTQl5ry4FhrSRv73GmEbXdkfvXRnQjOu9N8b81DjtEM/h/FBqK//hhL4+ea7ttj4LecA+Y0xlyD73a9eraICIrlJgmIi46+ULXI9Dp9a9ERgDTDHG9MP5DwjOl2op0F9E0l3HD2/jusU4JYgcY0y2/etnjJnQyXx3dsrfUlz3Y+/TfX/FONVa2a6/VGPMMgBjzN3GmK/i/KI9DPgJTjVELU4VTrj7eizkfOnGmN96eE8Boe/bcGC7iPhxqmjmA4PtF9LLtGx7aXEtW5/9BE4J7oFOXr+9z0LY63TA/b4Mx6li3IPz63iEK6+B93BbO9cJBIhp9vGbtA4QxcCbIe9VhjHmui7kuU32h9JynGrbDg/vxDGhr89213bYz4L9GyAimSH73K9dr6IBIrrexSmCfk9EEkWkEDi2neMzcYra5bYR8ZeBHcaYrcAK4FcikiwiJwJnhzuJMaYUeA34g4j0E5EEETlURL7WyXzvpONGT4B/ARNE5HxxGsd/QMtfiH8BbhaRCRBsOP+GfXyMiEwRkSScKoFaoNn+gn0QuMM2APpE5Dj7xfw34GwR+bpNT7ENnPl0bDfOL87O3Bc4pa0fiEiSzfM4nECQjNO2sBtoFKdxv6Muk/Nw6sxv6OS1oZ3PQjddJiLjRSQNp67/GeN0if47cKaIzLTvxY04Py6WtXOuN4HpOFWYJcBbOL2HBgIf2WNeAg4Tkcvta5hk3/Nx4U/ZLT8FviUiN4nIIAD7WTikG+f6iTgdAwpw3qenXfvCfhaMMcU4r9P/2s/iRODbOJ/TXkkDRBQZY+pxfuF8G6du9DKc/zh1bTzlLpxGtD3Ae8CrIfv/C5iCU1XzS+DRdi5/Bc6X2Vqc4vgztKyKac8fgQvE6T1zd1sHGWP2AN8AfovTWDwap8thYP9zOI21T9lqkk9wGmkB+gH/Z/O21T7/93bfbGA18B97r7fjtFMU4zR8/w/OF3QxTqmjw8+1rUabB7xjqzymdvCU5fZ+9tjnXWCM2WurE36A88VahvOevNDBuS7BaWspky97Ml3awXPuov3PQlc9hlPvvwOnCu8HAMaYDTifyz/Za50NnG0/u2EZYzYCVTiBAWNMBbAZeMcGHezrdBpOO8V2e91Aw70nbFXdDJzS1UZbjfUqTpXXn7p4uiKcThMrcX74LHDtC/tZsPsuwWnf2o5TtfVLY8yiLt9MnAj0UlExIiLLgb8YYx6KdV6UUk43V2C0MWZTmH1X4XS6ODHqGYsBLUFEmYh8TUSG2CqmK4GJ9PzXoFJKeU4DRPSNAT7GqWK6Ead4WhrTHHWBiEyTloO8gn+xzltPiDMXULj7+kus89Ydbb1HIjIt1nnrCXEG8IW7r46q6FQ3aBWTUkqpsLQEoZRSKqw+NVFVTk6OGTlyZKyzoZRSvcoHH3ywxxiTG5repwLEyJEjWbFiRayzoZRSvYqIhJ2FQauYlFJKhaUBQimlVFgaIJRSSoWlAUIppVRYGiCUUkqFddAHiJKiIhZNm8aLo0axaNo0SoqKYp0lpZSKC32qm2tXlRQVsWruXJpqagCo2b6dVXPnApBfWBjLrCmlVMwd1CWI9fPnB4NDQFNNDevnz49RjpRSKn4c1AGipjT8HHltpSul1MHkoA4QqUPDr5fTVrpSSh1MDuoAMXb2bHypqS3SfKmpjJ09O0Y5Ukqp+HFQN1IHGqIDDdWpeXmMnT1bG6iVUoqDPECAEyT2Ll/OziVLOOWtt2KdHaWUihsHdRVTQPqIEWQedliss6GUUnGlT60oN3nyZKPTfSulVNeIyAfGmMmh6VqCUEopFZYGCKD4mWd488wzaa6vj3VWlFIqbmiAAOr376di/Xqa6upinRWllIobGiAAn98PQLMGCKWUCtIAASTYANGkVUxKKRUU1QAhIj4R+UhEXrLbh4jIchHZJCJPi0iyTffb7U12/8hI5ishORnQEoRSSrlFuwRxA7DOtX07cKcxZhRQBnzbpn8bKLPpd9rjIiZl8GByjj+ehMSDftygUkoFRS1AiEg+cCbwV7stwAzgGXvII8C59nGh3cbun2mPj4icqVM57rHHSCsoiNQllFKq14lmCeIu4KdAs90eCJQbYxrtdgkwzD4eBhQD2P377fGtiMg1IrJCRFbs3r07QllXSqmDT1QChIicBewyxnzg9bmNMQ8YYyYbYybn5uZ26xz716xh8fTp7Fm+3OPcKaVU7xWtSvcTgHNE5AwgBegH/BHIFpFEW0rIB7bZ47cBBUCJiCQCWcDeSGXONDdT/cUXNFZWRuoSSinV60SlBGGMudkYk2+MGQlcDLxhjLkUWAJcYA+7Eiiyj1+w29j9b5gIThoVHAeh3VyVUioo1uMg5gA/FpFNOG0MC2z6AmCgTf8xcFMkMxEcB6HdXJVSKijq/TqNMUuBpfbxZuDYMMfUAt+IVp4SdCS1Ukq1EusSRFxITE9n8Cmn6FrUSinloiPDgKTMTI69//5YZ0MppeKKliCUUkqFpQHCev3449n4pz/FOhtKKRU3NEBYDVVVNOg4CKWUCtIAYSUkJ2svJqWUctEAYfn8fh0HoZRSLhogLC1BKKVUS9rN1Ro6axZpw4Z1fKBSSh0kNEBY4+fMiXUWlFIqrmgVk1JKqbA0QFjLr76ady6+ONbZUEqpuKEBwhIRmmpqYp0NpZSKGxogrAS/X3sxKaWUiwYIK0HHQSilVAsaICxfcrKuKKeUUi7azdXKOf54kgcOjHU2lFIqbmiAsIadfTbDzj471tlQSqm4oVVMlmlupqm2FmNMrLOilFJxQQOE9em99/LyhAmYxsZYZ0UppeKCBgjL5/cDaFdXpZSyohYgRCRFRN4XkY9FZI2I/MqmPywiW0Rkpf2bZNNFRO4WkU0iskpEjo5k/hJsgNCurkop5YhmI3UdMMMYUyUiScDbIvKK3fcTY8wzIcefDoy2f1OA++y/EZGgJQillGohaiUI46iym0n2r70W4ULgUfu894BsERkaqfz5tAShlFItRLUNQkR8IrIS2AW8boxZbnfNs9VId4qI36YNA4pdTy+xaaHnvEZEVojIit27d3c7b5ljxjDquutIyszs9jmUUqoviWqAMMY0GWMmAfnAsSJyOHAzMBY4BhgAdGlhBmPMA8aYycaYybm5ud3OW9a4cYybPRt/Tk63z6GUUn1JTHoxGWPKgSXALGNMqa1GqgMeAo61h20DClxPy7dpEdHc2Ejdvn1axaSUUlY0ezHliki2fZwKnAqsD7QriIgA5wKf2Ke8AFxhezNNBfYbY0ojlb+ylSt57Zhj2LdiRaQuoZRSvUo0ezENBR4RER9OYPq7MeYlEXlDRHIBAVYC/22Pfxk4A9gEVAPfjGTmfMnJgPZiUkqpgKgFCGPMKuCoMOkz2jjeANdHOl8BOg5CKaVa0pHUlo6kVkqpljRAWFqCUEqpljRAWElZWYydPZvsI46IdVaUUiou6HoQVmJaGqOvuy7W2VBKqbihJQjLGEN1cTF1+/bFOitKKRUXNEC4LJ4xgy0PPRTrbCilVFzQAGGJCD6/XxuplVLK0gDhkuD301xfH+tsKKVUXNAA4eLz+3UchFJKWRogXBL8fpq0BKGUUoB2c21hzA034O/BlOFKKdWXaIBwyT/33FhnQSml4oZWMbkc2LqVqs2bY50NpZSKC1qCcFk1dy7NDQ2c8PTTsc6KUkrFnJYgXBJ0HIRSSgVpgHBJ0G6uSikVpAHCRcdBKKXUlzRAuCQkJ0esiqmkqIhF06bx4qhRLJo2jZKioohcJ1r62v0opVrTRmqX4RddxOAZYVdA7ZGSoiJWzZ1LU00NADXbt7Nq7lwA8gsLPb9epPW1+1FKhSfO0s99w+TJk82KFStinY1WFk2bRs327a3SU/PyOOWtt2KQo57pa/ej1MFORD4wxkwOTdcqJpfq7dvZ8+67np+3prS0S+nxrq/dj1IqvKgFCBFJEZH3ReRjEVkjIr+y6YeIyHIR2SQiT4tIsk332+1Ndv/ISOex5Nlnefeyy2hubPT0vKlDh3YpPd71tftRSoUXzRJEHTDDGHMkMAmYJSJTgduBO40xo4Ay4Nv2+G8DZTb9TntcRCX4/QCeT/k9dvZsfKmpLdJ8qamMnT3b0+tES1+7H6VUeFELEMZRZTeT7J8BZgDP2PRHgHPt40K7jd0/U0Qkknn0BQKExz2Z8gsLmThvHomZmQCkDB3KxHnzem2DbuB+sG+Hf9CgXn0/SqnwotqLSUR8wAfAKODPwGdAuTEmUKdTAgyzj4cBxQDGmEYR2Q8MBPaEnPMa4BqA4cOH9yh/gRJEJLq65hcWUr9vHxmjRpF74olEONZFXH5hIat/8Qsaq6qYsmABWePHxzpLSimPRbWR2hjTZIyZBOQDxwJjPTjnA8aYycaYybk9nKo7IUIliID1d9zB7n//u9cHh4CUIUMAaKqtjXFOlFKREJNeTMaYcmAJcByQLSKBkkw+sM0+3gYUANj9WcDeSOYrZ8oUjnngAfw5OZ6fu7mxkabqajY/+CDVYbqI9kZH3HorAM0aIJTqk6LZiylXRLLt41TgVGAdTqC4wB52JRAYkvuC3cbuf8NEeNBGal4eQ2bOJDE93fNzN1ZVBR/XbNvWzpG9R6JtqNYShFJ9UzTbIIYCj9h2iATg78aYl0RkLfCUiPwG+AhYYI9fADwmIpuAfcDFkc5gfVkZZR99RPakSfgHDPD03I2VlV8+dgWL3mzLY48x6OSTGXjssbHOilIqAqIWIIwxq4CjwqRvxmmPCE2vBb4RhawFVW7axPvf+Q5TH32U3BNO8PTcDX0wQFSsX09qXh6JGRmxzopSKgJ0JLWLL0LjIAAyR4/mxGefBfpOgGgoL2fnokXsX7s21llRSkWABgiXhORkIDLdXBOSksg49FAQ6TN19g0VFQDsee+9GOdEKRUJOpurSyS7uZavXs2upUuZ9eGHJPXr5/n5Y0l7MSnVN2kJwiWSAaLsww/ZcNddNDc0eH7uWOk3bhygvZiU6qs0QLj4Bw7kONszx2uBRupP77uPz594wvPzx8IJTz2FLy1NA4RSfZQGCBef30/O8ceTMmiQ5+durKwkwe9n97//HZEpxWPFl5KiAUKpPkoDhIsxhm0vvkjF+vWen7uhspKkzEwSMzJajInorRoqK3nz7LM59DvfYeyNN8Y6O0qpCNAAEeLDH/2I7a+84vl5GysrSQwEiAMHPD9/tDVVV1Oxdi2JGRkkZ2XFOjtKqQjQAOEiIiT4/RFppD7qjjuY9txzJKan94lxEIH1qEtffpmSF16IcW6UUpHQ5QAhIul2uow+yRehAJGQlERSZib+gQOD4y16s8BYkT3vvkvxP/4R49wopSKhw3EQIpKAMw/SpcAxOCvD+UVkD/Av4H5jzKaI5jKKEvz+iAyU2/inP5E2YgQTf/Mbz88dC+6GaW2kVqpv6kwJYglwKHAzMMQYU2CMGQScCLwH3C4il0Uwj1EVqRLE1iefZM+yZZ6fN1Z8fj8Dp0whZfBgDRBK9VGdGUl9ijGmxeguEUk2xuwDngWeFZGkiOQuBo75y1+CS4N6qaGykqR+/dixeDFfPP00X737bnwpKZ5fJ1r6jR3L8U88wQff/z77I9DrSykVex2WIEKDg/WrwAMROaGNY3qlfmPHkjZsWMcHdkFgsaCkzExqS0vZuXhxn2ioBvClpupUG0r1Ud3txbRQRK4RkUuB073MUKztWLyYHa+/7uk5A8EgMSMjODV2Qy8fC1G6cCFvzJzJoVdfzckR6BaslIq9Lk/WJyILgP04azu8Z4y52fNcxdDmBQswzc0MOfVUz87ZeOAAkpjoDJSzq9X19rEQ9fv2ceDzz0ns10/Xg1Cqj+pyCcIY821gLvAzYKeI3O95rmIoEuMg0oYN48z168k///zgl2lvr2IKNEyXffgha267jQivBquUioFOBwgR+aOICIAxpsYY844x5i5jzLWRy170+SLUzVVEkIQEkrKzSRs+HJyXstcKBIiK9evZvGBBRBZZUkrFVldKEJXACyKSDiAiXxeRdyKTrdiJRAmifNUqVv70p9SUlpI1bhwzlywhZ8oUT68RbYEAkWSn2YhE12ClVGx1OkAYY34GPAkstYHhx8BNkcpYrESiBFG5aRPFzz7bp75E00eOZMhpp+FLTQV0sJxSfVFXqphmAt8BDgA5wA+MMW9FKmOxMnb2bE546ilPzxmYvTWxXz+a6+t59/LLKX7uOU+vEW0F553HMffdFxzLoQFCqb6nK1VMc4GfG2NOBi4AnhaRGRHJVQylDBpEWn6+p+cMdGlNysxEkpLYu3w5BzZv9vQasRIIEDoWQqm+pytVTDOMMW/bx6txxj90emIhESkQkSUislZE1ojIDTb9FhHZJiIr7d8ZrufcLCKbRGSDiHy987fVfftWrGDT/d52zGqsrCQhJYWEpCREpE/M6PrxzTfzzkUXMfTrX+esjRvJPOywWGdJKeWxDgNEoOdSKGNMKTCzvWNCNAI3GmPGA1OB60VkvN13pzFmkv172Z5zPM4kgROAWcC90ZhFdveyZaz73e8wzc3enTQhgdShQ4ObiRkZNPTyAFG3b58zvsPnQ3x9dnJfpQ5qnSlBvCEi3xeR4e5EEUkGjhORR4ArOzqJMabUGPOhfVwJrAPam9OiEHjKGFNnjNkCbAKO7UR+e8Tn9wN42m1z/Jw5zFi0KLidmJ7e6wfKNdXU4EtJoXrbNlb97GcRWYVPKRVbnQkQnwJNwHMist1WEW226ZcAdxljHu7KRUVkJM5I7OU26XsiskpEHhSR/jZtGFDseloJYQKKnfJjhYis2L17d1eyEVZgrYZIjIUI6DdhAqlDhkTs/NHQVFuLLyWFhv372frkkxzYujXWWVJKeawzU20cY4y5RkSuBoYDuUCNMaa8OxcUkQycWWB/aIypEJH7gF8Dxv77B+BbnT2fMeYB4AGAyZMn93g4b0KgBOFhgFgzbx7J/fsz+rvfBeDoP/zBs3PHSnNtLUn9+mk3V6X6sM4EiMUi8i4wGLgC+Bj4pDsXs9OCPws8boz5J4AxZqdr//8BL9nNbUCB6+n5Ni2ifBEIELvefLPPNeLmnnQS/oEDg6+XBgil+p4OA4QxZraIHIqzcNAhwDnABBGpBz4xxlzUmQvZhuwFwDpjzB2u9KG2wRvgPL4MPi8AT4jIHUAeMBp4v3O31X1DzziDQV/7Gsn9+3d8cCc1VFaS5Fpj4tN772XPsmUc97e/eXaNaBs3ezbgNFaDdnNVqi/q1GyuxpjPROQUY8zGQJqtKjq8C9c6AbgcWC0iK23a/wCXiMgknCqmz4Fr7TXXiMjfgbU4PaCuN8Y0deF63ZKYmkqirTbxSmNlZYtFiOr27aN89WpPrxErvtRUEvx+b3t9KaXiQqen+3YHB7tdhbPkaGef/zYQrjvsy+08Zx4wr7PX8MKBL76g+B//YPhFF3kyYK65oYGmmpoWJYhALyZjDJ3rIRx/Xv3qVxlx8cWM+8lPOHPt2lhnRykVAd1dMKjPqikt5dN776W6uLjjgzuhqbaW9EMOwT9oUDAtKSMDjKGputqTa8RCY2UlkqAfH6X6si4vGNTXBRtdPWqkTsrMbDEGAmixJkRgAaHepLmhAdPURIKdZmPVz35G9sSJDL/wwhjnTCnlJf0JGCIS3VxDpRUUkHP88b12kZ1Aj6XAPEw733iDso8+imWWlFIRoAEihNfdXMtXreKdSy6hYsOGYFruiSdy3GOP9drBcsEAYRvzE/x+7eaqVB+kASJEoATR5NFUGzU7drDv/fdpbmjw5HzxICE5mZGXX04/O7bDl5JCU01NjHOllPKaBogQqUOHcvrq1RScd54n52t0TfUdULV5M4tPPpmdS5Z4co1oS87K4ohbbmHA5MmAU5LQEoRSfY82UoeQhAQS09I8O19gLQj3OAhJTKS6uJh6O8istzFNTZimJsROX54yaBCSqB8lpfoaLUGEME1NfPKb37DrzTc9OV+4EkSg51JvndF13wcf8K9x49izbBkAx/zlL0y+554Y50op5TUNEKESEtjy0EOe9cpJ7t+f7EmTSEhKCqa5u7n2RqG9mJRSfZMGiBAi4vTK8agX08jLLmPas8+2SPP5/SQkJ/faEkSgQTrQi2nzQw/x0U9+EsssKaUiQANEGD6/P6LjIACGnn46GYcc4vl5S4qKWDRtGi+OGsWiadMoKSry/BqB4BkoQVRu3Mjut9/2/DpKqdjSlsUwvCxBfHzzzZjmZibdfnuL9KPvuKONZ3RfSVERq+bODf7Cr9m+nVVz5wKQX1jo2XUCM7cGRlL7UlO1m6tSfZCWIMLwpaRgmryZOLZi40Zqduzw5FwdWT9/fqsv6qaaGtbPn+/pdTLHjGHUtdeS3K8f4LxekS5xKaWiT0sQYcxYssSzWVYbKytJHTq0Vfr7116LaWxkyoIFnlwHnIkGu5LeXf2PPJL+Rx4Z3E5ISaG5vt7p+urzeXotpVTsaAkiDC+n4A5dLCjANDZSt2ePZ9cBwgai9tK7q7Gqivr9+4PbKbm5ZIwa1adGiyulNECE9el997Hp/vs9OVfoYkEBiRkZnvdiGjt7drBnUYAvNZWxdvU3r2z88595ferU4PaISy5h+sKF2u1VqT5GA0QYu996i51Ll/b4PKa5mYHHHhucs8gtMT3d83EQ+YWFTJz35fpK/pwcJs6b52kDNTjtGqGBSCnV92iACCMhOdmTRldJSGDKgw9ScMEFrfYlZmREZKBcfmEhY374QwCO/O1vPQ8O4Mx06y4t7Hn3Xd6+8EKqS0o8v5ZSKnY0QISR4PfT7NFsrm3pf/TRDDvnnIisCZF31lkANFRUeH5ucEoQgVlvwWlnKfvgAxpc7RJKqd5PA0QYPo/GQVRs2MDrJ57I7nfeabUvb9YsjrztNs/XpG6qq2PfBx8A0FBe7um5g9eorW1RxRQoTeiMrkr1LdrNNYykrCxPGlzry8qoLS1tc+1m09wMIp4GidodO/h4zhzn+hH6RT/s3HNpdJVONEAo1TdFrQQhIgUiskRE1orIGhG5waYPEJHXReRT+29/my4icreIbBKRVSJydLTyOvHXv+ZrL77Y4/MEqnjC9WIqXbiQlw47jKpPP+3xddzqbalhzI9+xMjLLvP03AF5s2a1WH9aA4RSfVM0q5gagRuNMeOBqcD1IjIeuAlYbIwZDSy22wCnA6Pt3zXAfVHMqyeCU33bEcduvpQUMIYGjxuqA9VKOccfj3/AAE/PHVC9fTt1e/cGt5Oyssg64ggStWeTUn1K1AKEMabUGPOhfVwJrAOGAYXAI/awR4Bz7eNC4FHjeA/IFhFvR3y1YdsLL7Die9/r8XkawqwFERCc8tvjsRCBaqW9y5ez/eWXPT13wPvf+harf/GL4Hb6iBGc9Pzz5Bx/fESup5SKjZg0UovISOAoYDkw2BgTmAtiBzDYPh4GFLueVmLTQs91jYisEJEVu3fv9iR/VVu2UPrKKz3uYZSWn8+Q004LBgO3SK0J0VBWBsD2l15i80MPeXrugKba2uBEfUqpvivqAUJEMoBngR8aY1r0wzTON3KXvpWNMQ8YYyYbYybn5ub2OH8lRUVsfvhhgB5Plz3klFM45r77WiwWFBCpADF01iymPvooaSNGRKzbaVNtbYtG/MaaGt48+2yKn3kmItdTSsVGVAOEiCThBIfHjTH/tMk7A1VH9t9dNn0bUOB6er5Ni5jAdNmBHjq1paWsmjs3ImsqJGdnc8hVV5Fx6KGenjdl8GByTziB5P79IxcgampaBIiExEQq1q6lZufOiFxPKRUb0ezFJMACYJ0xxr0YwgvAlfbxlUCRK/0K25tpKrDfVRUVEV5Pl/3hj37E22FGUYMz1cbhP/85A472tnPWnmXL2PXmmyRnZ1O/f39EBuI1hYykTkhKQnw+XRNCqT4mmuMgTgAuB1aLyEqb9j/Ab4G/i8i3ga1AoP/ky8AZwCagGvhmpDPY5nTZ27ezaNo0akpLSR06lEHTp7NryZI2t8fOnk1+YSH1ZWXtfkE31dZimppITE/37B4+++tfqdu3j7wzzsA0NNBUXe3p+Y0xHP7zn5M1fnyL9ARdE0KpPidqAcIY8zbQ1oiwmWGON8D1Ec1UiNShQ6nZvj3svkB6zfbtbH388RbpoduBVdwaKirCdnENWHTSSQw59VSOdE2w11P15eUkZ2cz4uKLyT/vPM8n1RMRRl56aat0n9+v4yCU6mN0qg2XcNNld0dTTQ2f3Hor+9esYfdbb7XZ2J2UkUGTx91cG2yASOrXj5Tc3DZHcXdXc309+9esaTVKO+e440gfMcLTaymlYksDhEtguuzUvDwQcf7tpobyckxjI/BlqSI0SCRmZHg+UK6+vJyk7GxqSkvZcNddVG3Z4un5a3fv5t/nnMOO119vkf7Vu+/m0Kuv9vRafVVJURGLpk3jxVGjetxTTqlI0gARIr+wkFPeeouzN23ilLfe6lGQcAvX2O31okGmqYmGigqngbq8nI1/+hOVGzd6dn4g2BDtc83mqjov0FOuZvt2MKbNHw9KxQMNEB3wqtoJWjeCe74mhAgnv/IKIy65hKSsLODLuZm8EmhnCH1NPrjhBj644QZPr9UXed1TTqlI0tlcOxBYcGf9/Pmd7sXUWFMTHNHsFro2dH5hoaczrkpCApmjRwNfTuHh9ViIYIAIGUldX1ZGU3W1p9fqi9rsKddGulKxpAGiE/ILC7u0MlugGsH9SzHc2tB5Z57pWR7Baesofe018k4/Hf+gQUhioucBormNAOFLTaU+TFBULbXVUy70x4NS8UCrmCIgXGN3uLWhGw8coLq4uI2zdF3Fhg2s+fWvqSktRURIysryPEBkjh7NpPnzST/kkBbpPr8/IgPl+lqD7tjZs1usxgfhfzwoFQ+0BBEhnSl1bH74YTbccQdnrltHQnJyj68ZaG9Izs4GYMbixZ4OkgNnKo+C885rle5LSfF8HERoScw9xiQSa21HQ7gqy8DASqXijQaIGCkpKmLzggUALJ4+nXE//WmPvyQCa0Ek2QARbprxnqrZsYPq4mKyJ05s0ZMp+8gjweMxF+016PbmL9SMQw9l8p//TPbEibHOilLt0iqmGAj8Mg5U/9Tu2OFJV8f68nIQCY7eLn72WTbec09Ps9vCjtdfZ9nFFwcXQwoYeemlTPrtbz29Vl9t0N1w1128dd55LPuv/4p1VpRql5YgYqCtX8af3Hprl3pLhVZNNOzfT1JWVnD09J5ly9i7YgWHebD4UUBbjdSR0FcbdOvtanxetj8pFQlagoiBtn4BN5SXtxhAtfXxx9vdDi11jJs9m5Nca2knZWcHq528EmhnCF0waMsjj/DqUUfR5OGEfeHGoESqQTeajeGB5Vrr9u2LyGy7SnlFA0QMePULOHSAVWJGBmmukd9JWVk0VlXRbKf88OSatbVIUhIJiS0Ln6a5mYaKCk8bqgO9wcQuuJSYkRG2N1hPRXN0szGGuj17AKc0pmNHVDzTABEDkRqdveWRR9j+6qvB7WQ7mrqhoqLV87qrqaYm7DQbgSqnZo97MuUXFpLUrx/9jzqKmW++GZHG6WiObm46cIDmujoy7IDGQGlCqXikbRAxEK6rY1ujrzviLo1sfugh+n/1q+TNmgU4JYgEv5/Gqir8AwZ4kvfhF11E7rRprdIDVU5ej4Vorq+nfu9eRl52WbD7rtei2RiekJzMcY89Rn1ZGTuXLkUS9b+gil/66YyR0HES4UZfdyS0Pr6+rCxYagAYVlhI/rnnepLfgH5jxtBvzJjWeQkECI8XDardvRuAqs8+Y8ujj3LIFVd4en6IbmN4QnIyOccfD3g/kl4pr2kVU5wIN/p6xKWXht/GWbLUXR/f3NBAY1VVcAwEOIv7eK3so4/Yu2JFq/T04cPJP/98zwfm1e7YAcD+NWtY/4c/eHrugGg2hh/44gu2/+tfNB44gDEG09Tk+TWU8oqWIOJIV+d8cgu0M7irYer27mXtbbdR8I1vkDN1qhdZZMPdd1NfVsZJzz/fIj1rwgSO+v3vPbmGW1pBARNvu42qTZvY/OCDNFZVkZiR4ek1Aq/5R7NnQ3MzvpSUiDSGg9P1eNXcucxYsoSlxxzDYd/7HqO/+13Pr6OUF7QE0UcEBt0lhdTTlzz/vKdrQjTX1bXbwO51t82UQYMYcdFFZE2YAEDtrl2enj9g8PTp0NwMQL9x4yI2UjvQKJ0yeDAJSUnaSK3imgaIXqjs4495/YQTWlT1ZHzlK5yxZg1Dv/71YFpgRLWXE/Y11daG7cVUsWEDL40dS+nChZ5dC6Dy00/Zv3YtKYMHA1C7c6en5w+o2rwZcKbBiORAvPq9e0nMzMTn95M8YEBw0JxS8UgDRC+UnJ1N7Y4dHAhZTtSXktLiyzshKYnEjAxP15xoqqkJW4JISE7GNDR43s114z33sOL66yMeIJpqa8kcPZpj7r+fr/7pTxG5BjglCP/AgQD4Bw7UEkQb+tosvr1V1AKEiDwoIrtE5BNX2i0isk1EVtq/M1z7bhaRTSKyQUS+Hv6sB6fUYcOQxEQOfP55MG3vihV88utftxrzkJSV5elo6qba2rDTbAR7MXkcIGp37iRlyBDShg/ntOXLGXbOOZ6ePyBn6lROfvVVMkKmMfda3Z49JNsAkawBIixdljV+RLME8TAwK0z6ncaYSfbvZQARGQ9cDEywz7lXRHxRy2mcS0hMJK2goEWAKP/4Y7Y8/HCrY9Py80mwI5G9cPRddzH6uutapQdKFZEIEKmDB5OQmIg/Jyc4z1SklK9axZLTTqPso48icv5Jt9/OkbfdBsDQWbN69ay0kaLLssaPqPViMsb8W0RGdvLwQuApY0wdsEVENgHHAu9GKn+9TfrIkS0CREN5OeLzkRgyxffxTzzh6XX7H3lk2PTgSGoPx0EYY6jdsYOU004DYMtjjyE+HyMjMAvqu5dfTv9Jkxh2zjlUffYZ1cXF9D/qKM+vk5afH3wcbl0N1Xdn8e2N4qEN4nsisspWQfW3acMA91SXJTatFRG5RkRWiMiK3XZQ1cFgyMyZ5J50UnC7vrzcmck1AmMf3EqKiqjYsKFVeoLfz8jLL6ff+PGeXauhvJzm+npShgwBYMfChZQ895xn5w8wTU3sW7GC5sbGYAN1JL6MTFMTnz34IPvXrXO2m5upLyvzdK6svqCtTgK9fRbf3ijWAeI+4FBgElAKdHkklDHmAWPMZGPM5NzcXI+zF79GXHIJ4+fMCW43lJe36uIKsPXJJ1nx/e97ck3T3MxHP/4xpa75ngJEhCNuuYVBYabh6C5fWhpTHnqIIaecAoB/8OCINFJXl5TQXF9PxqGHkpiRQVK/fhEJEPVlZaydN499//kPANv/9S8WTp7coiSoojtwUbUvpgHCGLPTGNNkjGkG/g+nGglgG1DgOjTfpimX5oaG4NQWTfX1JPfv3+qYA198wc5FizwZnxC4VltrQTTX13vaBuHz+xl00kmkFTgfhdTBg6ndtcvzsRbBLq62gTpl6NCIBIhAg7Q/J8f51zZWa0N1S8FZfO08VQl+f8QGLqr2xTRAiIi7zHgeEOjh9AJwsYj4ReQQYDTwfrTzF89qSkt5ecKEYJXLsfffzwlPP93quOTsbOeL24NJ9ALnaCtALJ4+ndW33NLj6wRUfvoppa+9RnN9PQD+QYMwDQ3U79vn2TXAFSC+8hUABs+YQda4cZ5eA75cKMjdi8md3htEq/vpsHPOwZeSQtbhhzPtn//U4BAjUWukFpEngZOBHBEpAX4JnCwikwADfA5cC2CMWSMifwfWAo3A9cYYnbTGJWXQIMTna1E9Ea79ISkw5ff+/SSmpfXomsHV5NoYSe3z+z0dB7H9lVfY+Mc/cqats08ZMoSE5GTqXWMJvJAyeDBDTz89WAIbF6GqjGAJwjUOwp0e70InlAx0PwU8/wJv2L+fxqoqhp1zDv3GjvX03KrzotmL6ZIwyQvaOX4eMC9yOerdxOcjbfjwYID46MYbGXzKKeSdfnqL49wBoqeNfG2tJhfgS02l0cPpvmt37MCfk0NCcjIAQ089laFr13reED/srLMYdtZZLdIC1VheXis0QCT37w8iwQWE4l173U+9DhDVX3wBOKXV4meeYfDMmWGrUFVkxbqRWvVAoKtrc309Jc8/T9Vnn7U6JiU3l4zRoz2ZNTR12DBOeuGFNhuiE1JSPO3mWrtzZ3AENThBMRK9tAJVWAE7Xn+dVyZO9LzxeMTFFzNz6dJgZwLx+Rj3k58Ep/+Od9HsflpdUgI47V4r58yhwpYiVXRpgOjFMkaO5MDWrdTbhYbC/cIaMHky0199NTjZXU/4/H6yJkxo85ecz+/3dMGgwCjqAGMMH998MyUvvODZNer37+flww/nc9d4kcR+/Wiqrg67RkRP+FJSSCsoaBHkRl17LTlTpnh6nUiJZvfTnOOOY+ojjzDIduUOBAwVXRogerHBM2cy5oc/DC6qk+RaLCgSqrdv5/PHH2+zSiT//PPJ93DwV6sShAg7Fi1i7/Llnl3jwObNmKamFteJ1FiIL555huJnnmmRVl9WxoGtWz29TqREs/tpcv/+5J54IukjRzptbbbKSUWXrgfRiw089lgGHnsse22/+nC/7Jvq6nj38ssZceGFFFxwQY+uV7FuHat/8Quyjzgi2FXTbXgPzx/q+CeeaNVjKmXIEOo8nPI7UC0X6MEETqM1ItR6HSCeegpfWlqL92H1L3/J/rVrmbFokafXioT8wkIMsNKum5Gal8fY2bMj0sOodOFCkrKzyZkyhdS8PGq0BBETGiB6MWMMNaWlVJeU4M/NDRsgEpKTKf/4YwYee2yYM3RNsBdTG43UjQcO0FhdTYpHAxYzR49ulZYyaBA1Hg6Wq9qyBUlKajEFhs/vx5+T43kVU93evfQvKGiR5h84sFd1cy0oLCRv1ix2LV1K1ebNEet+uu53v6Pf+PHkTJlCWn6+VjHFiFYx9WbGsOTUU6lYu5bT3nuPrDDTXIgISf36ebImREe9mNbMm8e/Q3oDdVd1cTFbHn20VXVWyuDB1HkZID77jPThw1tNaDjikksY8NWvenYdsFN9h5S8kgcOpKGiolVDeTzz+f1UrF/P+jvu8HxyRnCmJKneto10G0wn3nYbx/zlL55fR3VMSxC9mCQkkD5iRIe9bZKysz2Z8rupo3EQqamefWGUrVzJJ7/6FTlTp7b4Uk0rKCAxPR3T1IT4ej7B75BTTqGxurpV+pgbbujxud0aa2poOnAgODguIDgWYt8+Ul0N8vFq24svUr56tTNpY3MzVZ995kkHCLfanTsxDQ2k2lJd+vDhnp5fdZ6WIHq59JEj2fnGG6z43vfaPCY5K8uTRYOaOqhi8qWkBKfj6KnAnEspIV+ao6+7jhlvvOFJcAAouOACDrniilbpxhjq9+/3bFqPQE+z0AF+kRxNHYlRzzsWLaL0lVfItIPXKjxczjYgUJ0UmGKlets2Nt5zj+dVfqpjGiB6uYyRIwHY8957bR6TPXGiJwvhDL/wQqYvWkRienrY/b6UFGdVOQ9mJ63duRNfamqr6cu91FhdTfX27Ri7FrXblocfZuHRR7dagKm70vLyOGPt2lYLHmUffjgTb7utRS8qL0Rq0Z3KDRvoN3Ys6SNGkJCc7Ol65wGBQXKBKqa6PXvYcOedwVlwVfRogOjl0m2AaApTTRJw+C9+wRG/+lWPr5WUmUnGIYe0uWhPcE0ID6qZanbsIGXw4FYD42q2b+fdK69k9zvv9Oj8JUVFLP7a11g8bRqvH3dcqy/O4BKnHvZk8vn9rdbzTs3LY8RFF4XtFdYTkVh0p7m+nqotW8gcM4aExEQyDj00Ir2L8s4+m5Nfey1YxRToQFBdXNze01QEaIDo5RoOHACchXoivXbvrrfeYssjj7S5f+CUKYy/+ebgLJw9UbtjR6vqJXB6Ze15++2wo8Y7K/DrOjDpX92ePa1+Xafm5QF4Vq2x5733+OTWW2morGyRboyhfPVqz7/8IjHquWrzZkxjI/3GjAHghKef5ui77+72+dri8/vJPPRQEuznKHnAAHxpadqTKQY0QPRiJUVFbPjDl0totFWN8PkTT7B4+vQeT7exY+FCNv75z23uz544kUOvvrrNNoqumPLggxx9552t0pMHDECSknq0LkRnfl17PViubOVKtjzySNjg+c6FF7YYye2FSIx6rtu7l+SBA4MBIjE9PSJTn2x++GFKX3stuC0ipBUUaAkiBjRA9GKdrUZorquj+osvWv167aqm2tp2v/wbq6up2rzZk4bqpMxMUgYNapUuCQmk5Ob2KEB05te1PycHSUz0rARRv3cvvvR0EkN6gIkIyQMGeN5IPebHP26V1tNRz7knnMDX33+fDDs+5cDnn/PhD3/I/rVru33OcDbdfz87Fy9ukZZWUKBLjsaAdnPtxTpbjVBpq2MWTp5M6tChDJo+nV1LllBTWhp2O/Alsn7+/BZpTbW1bXZxBdjzzjv857//m2lFRWQffni376uhooJP77uPYeecE3ZdhpQeriyXOnRo2C9+969r8fkY++Mfk9WD+3Cr27OnzSnK/QMHUufxGheBHkCJmZk0VlaSlJXF4b/8pScD2wKlBklMZNuLLzJwypSwY3C6o6m2lrpdu1oMXAQ4av78Hk9Xr7pOSxC9WGeqEUqKiih59llnw/Zm2fr44y16t4Rur5wzh5Vz5rTqAVP1+eetGlndEjxqpK4uLuazBx4I9mYJlXX44T3q9TN29uxWg/3C/boede215J5wQrev41bXzhoWyREYTb3jtddISE7mlLfeIv0rXyF74sQeB4dll17KlsceC26n5uXhS0/3tCdT9TZn4ci0kLEPSZmZnnVtVp2nAaIX68zkaevnz+/yKF3T0IBpaGiR1lRTQ+W6dexfs6bNxvBAXno6WC44BqKNIHDELbdwVA964ww75xyOvO02pyFahNS8vLBLWjZWVVG5aVO3r+NmGhvb7KnkHzjQ80WDfH4/Q884g6TMTAZPn87e5ctptB0auqO+vJy9773XorecJCSQOXq0p2MhAj8KQksQB7Zu5eO5cz17P1TnaBVTLxb4QgutCnJ/0UWi3ratlcT22rEY7115Jal5ed2uygp8kXk9NgCcAWvL/uu/mDB3Lqe89Va7x35677189uCDnLl2bZtdezvr+CeeaHPQ3SFXXEH+uef26Pyhxt54Y/Dx4JNPZvOCBexZtowhp57arfNVbNgA0Gp1t36HHcYODycarLUTMYaWIJpqa/niqafImTqVzFGjPLueap8GiF4uv7Cw3aqDturbeyp0JbGSoiI+vffe4P5A1VV72x/99KeISLC0EqjeClQlvHPhhWFnC939zjt8cuutHHv//cFxIJ215ZFHqNy4EX8nJhRMzcvDNDRQt2dP2Abzrmqrx0/2xIk9PrdbfVkZSdnZwesNmDyZSb/7HQMmT+72OSttgMi0PZgCsg4/nPLVq2k8cKDNAZRdMeKiixh21ln4QtobgqOqtSdTVGmA6OPGzp7dYh3hzhA7cV1oNVMod+lk/fz5XV9NrrGR0N/U7uqttkoqe5Yto2rTJt6YObNLJZV1v/89taWlJKSkULF+fbC7ZltSXF1dexIgGioqWHnTTRxy2WVhV4+r27OHspUrGThlCkkejBx/98orSR8+nMn33AM4Y0cK/t//69E5KzZsICkrq1WpbuSllzLy0kt7dO5Q4QJNYloayQMHaoCIMg0QfVy4aqiuVv1IQkLYMRTuxvBIdUEMV1LZ/NBDX163EyWVlXPmAF8GvOba2rCBJ1SgWuXt888PG4jCVZGFOyZrwgR2LFzYar3wgPJPPuE/117Lic88Q/+jjurya+RWvW0bFWvWtFpju6GigpLnnyd32rRuTbuSmpfH0FmzIjLuwW3t//4vGaNHh11bJH34cA0QUaYB4iDQUTVUe8+DL0ceu0shoY3hkarKgp6XVMKVhEIDT6iSoiI+dQ0K7EzgCXfMqrlzOeSb3wRaT9QXEJzR1YOG6h12gFloW0NTXR2f/OpXjL3xRkZ/97tdPu9h11/f5r7/XHcdaQUFTPif/+nyed2MMWx96ilnVcJwAWLkSJ2wL8o0QKgOdaYxPJJVWZEqqbR3rvXz53fYXbejfIMTiDbZtQw+vPFGxt90U6ugtO+DDwD4z7XXdrqkEvr6lxQVOfu3b0cSEylftapFSSElN5esI45g55IlXQ4QpqkJEhLaLD007N/PPg9W+WvYv5/Gqqpge0OoSb//fcRLMKqlqAUIEXkQOAvYZYw53KYNAJ4GRgKfAxcaY8rE+RT8ETgDqAauMsZ8GK28qtY6KoV4UZWVlJVF44EDLb54I1lSaW/aCU+rzOxssXW7drWq2iopKmLd73//5XU7WVJZOWcOn/z61zSUl7d63UxjY9gqtNS8PHYsXMiLo0Z1ulfZoOnTKX3lFer37cM/aFDYAJd52GEU//OfmObmHvX2CnZxbSNARCo4BINrG8H3YCZezXff4YVETgKqgEddAeJ3wD5jzG9F5CagvzFmjoicAXwfJ0BMAf5ojJnS0TUmT55sVqxYEbmbUBHX0X/WcNVdHQlXUvGlpoYd+xCwaNq0iFVnpOblBbvYRus6JUVFfHzzze1Wz3WmRBfudVs5Zw7FzzzjjCnp5kj9QdOnU/ryy9SXleHPzWX8zTe3em82/fWvbLjjDprr67t03vbyMmj6dEqefbbF2B1JSiIxI4OG8nLPrhPN53QnuInIB8aYVt3cohYgbCZGAi+5AsQG4GRjTKmIDAWWGmPGiMj99vGToce1d34NEAeH0CDS3fEW7f1H6kwg6mwVWesnCmfbAV8vjhoFkfo/6LqOl4GoVeC56aauDcZMTGzRvTmc0EDkVYBr/STp8uvfnetE6zkd/fBp81ptBIhYt0EMdn3p7wACfeiGAe7uCiU2rVWAEJFrgGsAhuvShAeFnja6d+XYjnootXdMZ3p/RbJxPxptN90ZqR+ue3Oo0E4Enemc0OVADd0Kzt25TrSe01Hni66KdYAIMsYYEenyu2WMeQB4AJwShOcZUwetzgai9npCddT7qzON+939JRmNtptIzrDqPrfO5Np5Xr5WsZ6LaaetWsL+G+gKsQ1wt1Tl2zSleo38wkImzpvX7pxP4Y4ZcemlLbYn3X47k26/PZiWlJ0dDBoBkpREUv/+bV4n3LxdoSQpqdV5Q4ULPJESWtKKmD7WM8rL1yrWJYgXgCuB39p/i1zp3xORp3Aaqfd31P6gVDzqTCmkOyWVrva88aLKLJrdm6NZ0so///zgPYbrSefFdaLZBtGTNT9a5SGKvZieBE4GcoCdwC+B54G/A8OBrTjdXPfZbq73ALNwurl+0xjTYeuzNlIrFX1edBroTG+cjq7jVa+fSF0nWs/ptb2YIk0DhFJKdV1bASLWbRBKKaXilAYIpZRSYWmAUEopFZYGCKWUUmFpgFBKKRVWn+rFJCK7cbrLdkcOsMfD7ERSb8or9K789qa8Qu/Kb2/KK/Su/PY0ryOMMa3W4e1TAaInRGRFuG5e8ag35RV6V357U16hd+W3N+UVeld+I5VXrWJSSikVlgYIpZRSYWmA+NIDsc5AF/SmvELvym9vyiv0rvz2prxC78pvRPKqbRBKKaXC0hKEUkqpsDRAKKWUCksDBCAis0Rkg4hsEpGbYp0fNxF5UER2icgnrrQBIvK6iHxq/+0fyzwGiEiBiCwRkbUiskZEbrDp8ZrfFBF5X0Q+tvn9lU0/RESW28/D0yKSHOu8BoiIT0Q+EpGX7HY85/VzEVktIitFZIVNi9fPQraIPCMi60VknYgcF8d5HWNf08BfhYj8MBL5PegDhIj4gD8DpwPjgUtEZHxsc9XCwzjrYrjdBCw2xowGFtvteNAI3GiMGQ9MBa63r2W85rcOmGGMORKYBMwSkanA7cCdxphRQBnw7dhlsZUbgHWu7XjOK8B0Y8wkVx/9eP0s/BF41RgzFjgS5zWOy7waYzbY13QS8FWcNXOeIxL5NcYc1H/AccBC1/bNwM2xzldIHkcCn7i2NwBD7eOhwIZY57GNfBcBp/aG/AJpwIc4KxjuARLDfT5inMd8+x9/BvASIPGaV5ufz4GckLS4+ywAWcAWbKedeM5rmLyfBrwTqfwe9CUIYBhQ7NousWnxbLD5cgnWHcDgWGYmHBEZCRwFLCeO82urbFbirIf+OvAZUG6MabSHxNPn4S7gp0Cz3R5I/OYVwACvicgHInKNTYvHz8IhwG7gIVt991cRSSc+8xrqYuBJ+9jz/GqA6OWM83Mhrvoqi0gG8CzwQ2NMhXtfvOXXGNNknKJ6PnAsMDa2OQpPRM4CdhljPoh1XrrgRGPM0TjVt9eLyEnunXH0WUgEjgbuM8YcBRwgpHomjvIaZNubzgH+EbrPq/xqgIBtQIFrO9+mxbOdIjIUwP67K8b5CRKRJJzg8Lgx5p82OW7zG2CMKQeW4FTTZItIot0VL5+HE4BzRORz4CmcaqY/Ep95BcAYs83+uwunjvxY4vOzUAKUGGOW2+1ncAJGPObV7XTgQ2PMTrvteX41QMB/gNG2N0gyTpHthRjnqSMvAFfax1fi1PXHnIgIsABYZ4y5w7UrXvObKyLZ9nEqTnvJOpxAcYE9LC7ya4y52RiTb4wZifMZfcMYcylxmFcAEUkXkczAY5y68k+Iw8+CMWYHUCwiY2zSTGAtcZjXEJfwZfUSRCK/sW5kiYc/4AxgI07989xY5yckb08CpUADzi+db+PUPS8GPgUWAQNinU+b1xNxirWrgJX274w4zu9E4COb30+AX9j0rwDvA5twiu/+WOc1JN8nAy/Fc15tvj62f2sC/6/i+LMwCVhhPwvPA/3jNa82v+nAXiDLleZ5fnWqDaWUUmFpFZNSSqmwNEAopZQKSwOEUkqpsDRAKKWUCksDhFJKqbA0QCillApLA4RSSqmwNEAoFUEiMlNEHot1PpTqDg0QSkXWkTijtZXqdTRAKBVZRwIfiYhfRB4WkdvsnFVKxb3Ejg9RSvXARJxZNRcCfzXG/C3G+VGq03QuJqUixE59vgfYClxrjHk3xllSqku0ikmpyBmHM518I9AU47wo1WUaIJSKnCOBZTjrNzwkIvG4ZKVSbdIAoVTkHAl8YozZCMwB/m6rnZTqFbQNQimlVFhaglBKKRWWBgillFJhaYBQSikVlgYIpZRSYWmAUEopFZYGCKWUUmFpgFBKKRXW/wclRfFKhtvwDQAAAABJRU5ErkJggg==", + "image/png": "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", "text/plain": [ "
" ] @@ -117,7 +119,7 @@ "outputs": [ { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "
" ] @@ -167,7 +169,7 @@ "outputs": [ { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "
" ] @@ -180,7 +182,7 @@ { "data": { "text/plain": [ - "(array([11.41277899, -0.89680525, 11.41277899, -0.89680525]), 15)" + "(array([11.41277899, -0.89680525, 11.41277899, -0.89680525]), 11)" ] }, "execution_count": 5, @@ -216,7 +218,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEYCAYAAACz2+rVAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/YYfK9AAAACXBIWXMAAAsTAAALEwEAmpwYAAAoUElEQVR4nO3de5xVdb3/8dd7hmEYAbk4DBcHxMRIS0JDTQUhpVIrMS3F0rIs9GSpdfyVl/KUhedU1vFUpywvmaWmxzKsLJNSQPGGFxQRFS8JCjKAXAUE5vP7Y62ZNsPMwAwze+295/18PPZj9l7ftdf6rDV77c/+ftd3ra8iAjMzM4CyrAMwM7PC4aRgZmaNnBTMzKyRk4KZmTVyUjAzs0ZOCmZm1shJoYBJOkPSfTmv10l6W5Yx5ZI0XFJI6pZ1LGb51szxeYSk59Pj9IQMQ9slTgpFJCJ6RcSLWceRT5K+Kek3Wcdh+VHkPzQuA36SHqd/yDqY9nJSsFYV6cGZGUnlWcdgmdkLeDrrIHaVk0IHkfSypAskPSlptaRbJPVIyz4vaaGklZLukDQk530h6ey02rlK0v9KUgvrCEkj0ufXp/P+WdJaSQ9J2idn3ndIujtd57OSTs4p+5CkxyWtkbRI0jdzyhp+qZ0p6RXgH23YB30kXStpiaRXJX2n4UtS0j6S/iFphaTlkm6U1DfnvV9L37M2jfdoSccAFwOnpFXyuTtY/xmSXkyX8ZKkT6bTyyVdka73RUnn5P4aTf93E3OWs03tRNL/SVqa/l9nSnpnTtn1kn4m6U5J64H3SRoi6XeS6tI4zt2JfVcl6VeS3pD0jKSvSlqcU36hpBfSbZsv6aOtxLvNr+1W9ssISTPS7Vou6ZadiLPVz6ukz6bxvyHpLkl7pdO/JenH6fMKSeslfT9n2zdK6g/MTBe1Kv2fHyapTNLXJf1T0jJJN0jq02RbPy3plXQ7LtnBNvSQtEFSdfr6EklbJO2evv62pCvT533S9dWl6/+6pO2+NyW9ALwN+GMad6VaOR4KWkT40QEP4GXgYWAI0B94BjgbOApYDhwEVAI/BmbmvC+APwF9gWFAHXBMWnYGcF+TeUekz68HVgCHAN2AG4HfpmU9gUXAZ9KyA9MY9k/LJwAHkPwoGAW8DpyQlg1P13NDupyqVra5Yd5u6evbgZ+n76tJ98dZadkI4P3pPhhAcvBfmZaNTOMdkrPcfdLn3wR+sxP7vyewBhiZvh4MvDN9fjawABia/m/uaRL3y8DEnGVts07gs0DvNPYrgSdyyq4HVgNHpPtzN+BR4FKgO8kXxYvAB3cQ/38BM4B+QC3wJLA4p/zjJJ+tMuAUYD0wuIV4G/8vO9gvNwOXpMvsAYzdif3c2ud1ErAQ2C9d99eB2WnZUcBT6fPDgReAh3LK5jb3mcrZ/wvTfdkL+D3w6ybzXw1UAe8GNgH77WA7ZgInpc//lsZzbE7ZR9PnNwDT0v//cOA54MwWjs+X2fZz1OLxUMiPzAMolUf6gTgt5/X3gKuAa4Hv5UzvBWwGhqevI/dgBG4FLkyfN/3QNU0K1+SUHQcsSJ+fAsxqEt/Pgf9oIfYrgf9OnzccZG/biW1uPICBgenBWJVTfipwTwvvPQF4PH0+AlgGTAQqmsz3TXY+KawCTqJJIiOp7Zyd8/oDtCEpNFlW3/S9fXL+DzfklB8KvNLkPRcBv9xB/NskDuBz5CSFZuZ/ApjUXLxsnxRa2i83AL8AatvwOW/t8/oX0i/M9HUZ8CZJs0oVsBHYA7iQpAa4mOR4+Bbwo6ax5yzn78AXcl6PJDmGuuXMX5tT/jAweQfb8W3gR+kylgLnkSTmHsCGNM5y4C3SH1Pp+84C7m3h+Gz8HNHG46GQHm4+6lhLc56/SfKBHwL8s2FiRKwj+YW/5w7e1971QXIQHppW71dJWgV8EhgEIOlQSfekVeLVJL+kq5sse9FOxtBgL6ACWJKzzp+T/EJC0kBJv02r0WuA3zSsMyIWAueTfLktS+cbsv0qWhYR60mS4dlpDH+W9I60eEiT7fln0/e3REnT03+lTTdrSA582HZ/5S57L2BIk31/McmXRGuaxrjN/pf0KUlP5CzzXWz/P9vODvbLVwEBD0t6WtJnd7S8VGufu//JiXFluvw9I2IDMAcYDxxJUiuaTVLDGp++bsk2x1D6vOGHyI5iaskMkhrzQcBTwN1pHO8FFkbECpL9W9HMuvdkx1o9HgqZk0Lne43kAwKApJ4kv0Je7cR1LgJmRETfnEeviPi3tPwm4A5gaET0IanRND2PEe1Y5yagOmedu0dEQ/v75ekyD4iI3YHTctcZETdFxFiSfRXAd9saR0TcFRHvJ2kiWUDSpACwhKTpqMGwJm9dT9Ls02BQzvNPkDSLTAT6kPwyhW33V26Mi4CXmuz73hFx3A7CX0LSbNSgMd60Xf5q4IvAHhHRF5iXE0Nr8be4XyJiaUR8PiKGkPwC/qnSc1bttIikeSR326siYnZaPoOkqehA4JH09QdJmkAbziU09//e5hgi+f9tIWn2bK/ZJDWOj5IcK/PT5R7HvxLUcpIaSdN178yxu6PjoWA5KXS+m4HPSBotqZLky/GhiHi5E9f5J+Dtkk5PT+pVSDpY0n5peW9gZURslHQIyRffLomIJSRtsz+QtHt6cnAfSeNz1rkOWC1pT+D/NbxX0khJR6X7ZyNJ9b0+LX4dGN7cyb1caU1kUpp0N6XraljGrcC5kmol9SNpvsj1BDA53U9jgI/llPVOl7eC5Iv38h3sioeBtUpOnFelNY13STp4B++7FbhIUr90/3wxp6wnyZdlXbqtnyGpKeTGf6SkYekJ2IsaClrbL5I+LqkhEb2RrqOe9rsq3YZ3psvvI+njOeUzgE8B8yPiLeBekmaylyKiLp2nLo0h93qcm4EvS9pbUi+S/8EtEbGlvYFGxJsk537O4V9JYDZJjWpGOs9Wkv/LVEm90+T8FZJa7o6Wv6PjoWA5KXSyiJgOfAP4HcmvwX2AyZ28zrUk7eaTSX5lLSX55V2ZzvIF4DJJa0lOiN7aQav+FMnJ1fkkXzK3kfw6haTd+CCSk7J/JjlZ2KCSpD13eRprDf/6Yvu/9O8KSY+1su4ykgP2NZJmi/FAQ83oauAuYC7wWJN1Q/L/2SeN+VskNakGN5A0GbyabteDrcTQ8EXyYWA08FK6TdeQ1DJacxlJG/tLwHSSfbcpXeZ84AfAAyRJ8gDg/px13g3cQnJy+lGSHwUNWtsvBwMPSVpHUnM8L3bhOpiIuJ3kc/bbtKltHnBsziyzSc4tNNQK5pP8CJiZs4w3ganA/Wmzy3uB64Bfp/O9lL7nS+2NM8cMkiaeh3Ne986NJ13PepJzPveRfDau28nlt3Y8FCylJ0DMugxJw0m+XCp25ddmZ5L0byQnSwv+l6WVFtcUzAqApMFKbpNQJmkk8O8kXRrN8spJwVol6ZPpxThNH5lcudlCLOskjcsinraQ9JcWYr+YpJnh58Baki6004CfZhDjuJb2cb5j2VU72N/WAjcfmZlZI9cUzMysUdHf7Ky6ujqGDx+edRhmZkXl0UcfXR4RA5pOL/qkMHz4cObMmZN1GGZmRUVSs1f2u/nIzMwaOSmYmVkjJwUzM2vkpGBmZo2cFMzMrFHekoKkoUru4T8/vXf7ec3MM0HJ0IBPpI9LOyOWxdOmMX3cOP44YgTTx41j8bRpnbEaM7Oik88uqVuAf4+IxyT1Bh6VdHd6B8hcsyLiw50VxOJp03jykkvYumEDABtee40nL0mGdK2dNKmzVmtmVhTyVlOIiCUR8Vj6fC3JGMY7M4JRh1pwxRWNCaHB1g0bWHDFFfkOxcys4GRyTiG9dfGBwEPNFB8maW56M6tmRymSNEXSHElz6urqmpulRRuWLGnTdDOzriTvSSEdOel3wPkRsaZJ8WPAXhHxbuDHwB+aW0ZE/CIixkTEmAEDtrtKu1VVg5sf46Kl6WZmXUlek4KkCpKEcGNENB39iohYkw5sT0TcCVRI2uHg5G3xjgsuoLyqaptp5VVVvOOCCzpyNWZmRSmfvY8EXAs8ExE/bGGeQel8pGMHl5GMjdthaidNYtTUqVQNGQJAWWUlo6ZO9UlmMzPyW1M4AjgdOCqny+lxks6WdHY6z8eAeZLmAj8iGY6wwwd8qJ00iYmzZvG2M8+ECAZNnNjRqzAzK0p565IaEfcB2sE8PwF+kp+IYPAxx7D1zTfZumED3Xr2zNdqzcwKVtHfOntX9D/oIPofdFDWYZiZFYwuf5uLqK9n9dNP42FJzcycFFh0223MPP541r3wQtahmJllrssnheqxYwFYNmNGxpGYmWWvyyeF3YYMode++7Ls3nuzDsXMLHNdPikA1Bx5JCvnzGHL+vVZh2JmliknBaBm/Hjq33qL5Q88kHUoZmaZ6tJdUhv0HzOGQ665hj3e+96sQzEzy5STAlBeWcnA970v6zDMzDLn5qPUxro6nr3ySta//HLWoZiZZcZJIVW/eTPP/fjHLJ0+PetQzMwy46SQauya6usVzKwLc1LIMXD8eHdNNbMuzUkhh7ummllX56SQo/+YMVRWV3u8ZjPrstwlNUdZ9+68f/ZsVF6edShmZplwTaGJhoTgW2mbWVfkpNDEljffZMZHPsKL112XdShmZnnnpNBEt912IzZv9l1TzaxLclJoRs2ECax45BF3TTWzLsdJoRk148cTmzezfPbsrEMxM8srJ4Vm9H/Peyjv2dNXN5tZl+Muqc0o696dt59zDrvV1mYdiplZXjkptGDEWWdlHYKZWd65+agVG5YsYc2zz2YdhplZ3rim0IqHPvtZKvfYg8N+85usQzEzywvXFFpRM348K+bMYcu6dVmHYmaWF04KrWjsmuq7pppZF+Gk0IqGrqmv++pmM+sinBRaUda9OwMOP5y6mTN9gzwz6xJ8onkH9vva1+jWsyeSsg7FzKzT5a2mIGmopHskzZf0tKTzmplHkn4kaaGkJyUdlK/4WtJr773pUVOTdRhmZnmRz+ajLcC/R8T+wHuBcyTt32SeY4F908cU4Gd5jK9Fr/3lLyz4wQ+yDsPMrNPlLSlExJKIeCx9vhZ4BtizyWyTgBsi8SDQV9LgfMXYklVz57Lw6qvdNdXMSl4mJ5olDQcOBB5qUrQnsCjn9WK2TxxImiJpjqQ5dXV1nRZnA3dNNbOuIu9JQVIv4HfA+RGxpj3LiIhfRMSYiBgzYMCAjg2wGf3f8x669erlrqlmVvLymhQkVZAkhBsj4vfNzPIqMDTndW06LVNl3btTffjhLJsxw11Tzayk5bP3kYBrgWci4octzHYH8Km0F9J7gdURsSRfMbZm4PveR48BA9i8enXWoZiZdZp8XqdwBHA68JSkJ9JpFwPDACLiKuBO4DhgIfAm8Jk8xteqoR//OMNOPjnrMMzMOlXekkJE3Ae0egVYJG0z5+QnorZpuHitfvNmyioqMo7GzKxz+DYXbfDKrbdy15gx7ppqZiXLSaENdhs2jC3r1lE3e3bWoZiZdQonhTZo6Jq6bMaMrEMxM+sUTgptUFZRQfURR7Ds3nvdNdXMSpKTQhvVjB/PxqVLWfvcc1mHYmbW4ZwU2mjghAmMPP98Kvr0yToUM7MO5/EU2qjHwIG8/UtfyjoMM7NO4ZpCO2x5802WTp/urqlmVnKcFNph1VNP8chZZ1F3//1Zh2Jm1qGcFNqh/0EHuWuqmZUkJ4V2aOya6rummlmJcVJoJ3dNNbNS5KTQTjVHHgng0djMrKS4S2o7VQ0ezIS//Y1eb3tb1qGYmXUYJ4Vd0HuffbIOwcysQ7n5aBe89cYbzL3oIpbNmpV1KGZmHcI1hV3QrVcvXrvzTpCoGTcu63DMzHaZawq7oKyiggFjx7prqpmVDCeFXeSuqWZWSpwUdtGAtGvqsnvvzTYQM7MO4KSwi6oGDWLgUUdR1r171qGYme0yn2juAIdcfXXWIZiZdQjXFDpI1Nezee3arMMwM9slTgodICK45wMfYP7ll2cdipnZLnFS6ACS2H3kSJbNnOmuqWZW1JwUOkjNhAlJ19Rnn806FDOzdnNS6CANd031wDtmVsycFDpIj4ED2X2//ZwUzKyouUtqBxp5/vm+XsHMipqTQgcaNHFi1iGYme2SvDUfSbpO0jJJ81oonyBptaQn0sel+YqtI62aN4+l06dnHYaZWbvks6ZwPfAT4IZW5pkVER/OTzidY+FVV/HG448z8OijkZR1OGZmbZK3mkJEzARW5mt9WWm8a6q7pppZESq03keHSZor6S+S3tnSTJKmSJojaU5dXV0+49shd001s2JWSEnhMWCviHg38GPgDy3NGBG/iIgxETFmwIAB+Ypvp7hrqpkVs4JJChGxJiLWpc/vBCokVWccVrvUjB/P6vnz2bppU9ahmJm1ScEkBUmDlJ6ZlXQISWwrso2qffaZMoUPPPQQ5ZWVWYdiZtYmeet9JOlmYAJQLWkx8B9ABUBEXAV8DPg3SVuADcDkKNK7y3Xv0yfrEMzM2iVvSSEiTt1B+U9IuqyWhFf/+EcW/f73HHrdde6aamZFo2Caj0rN1o0bqZs5011TzayoOCl0EndNNbNi5KTQSXoMHMju++/P6/fem3UoZmY7zUmhE9WMH88bjz7qsZvNrGj4LqmdaNDRR7Nu4UI2r15NRe/eWYdjZrZDbU4KknoCGyNiayfEU1L6HXggB191VdZhmJnttB02H0kqk/QJSX+WtAxYACyRNF/S9yWN6Pwwi9uGJUso0ksuzKyL2ZlzCvcA+wAXAYMiYmhE1ABjgQeB70o6rRNjLGqv/fWvTB87ljULFmQdipnZDu1M89HEiNicO0FS94hYCfwO+J2kik6JrgT0P+ggAJbdey999tsv42jMzFq3w5pC04SQ+lbDE0lHtDCPAT1qatj9ne/09QpmVhTa2yX1rnRMg08Cx3ZkQKWo5sgjeeOxx9i8Zk3WoZiZtarNSUHStcDxwKnAuyLi6x0eVYmpmTCB2LqVuvvvzzoUM7NWtblLakScKakKOAg4WNLPI+Ksjg+tdPQbPZrR3/0uexxySNahmJm1aqeTgqT/Ac6PxAbg/vRhO1DWrRtDP/axrMMwM9uhtjQfrQXuSC9eQ9IHJTkp7KTNa9bw8o03su6ll7IOxcysRTudFNJzBzcD96bJ4CvAhZ0VWKnZunEjT116KUv++tesQzEza9FOJwVJRwOfB9YD1cC5ETGrswIrNe6aambFoC3NR5cA34iICSRDZ94i6ahOiapEuWuqmRW6tjQfHRUR96XPnyK5PuE7nRVYKXLXVDMrdDtzQ7xmBxiOiCXA0a3NY9vqN3o0FX37svb557MOxcysWTvTJfUfkn4PTIuIVxomSuoOHCbp0yQ3zbu+c0IsHWXdujFx5ky69eyZdShmZs3amaTwPLAVuF3SYGAV0AMoB/4GXBkRj3dahCXGCcHMCtnOJIWDI2KKpM8Bw4ABwIaIWNWpkZWo+s2beeSss6geO5Z9PvvZrMMxM9vGzpxo/rukB4CBwKeAIcCGTo2qhJVVVLBx+XKW/u1vWYdiZradnbl19gXAaSRNSHsD3wDmSXpa0i2dHF9JGjh+vLummllB2qkuqRHxAslgO9+IiBMiYl/gUOC/OzW6ElUzfnzSNfW++7IOxcxsG225TuG5Jq/XRcSDHR9S6es7ejQVu+/uq5vNrOC0+dbZtuvKunVj7zPOoHu/flmHYma2DSeFjIw877ysQzAz2057h+O0DrBl/XrWv/xy1mGYmTVyTSFDD3zqU5R168YRt7gTl5kVhrzVFCRdJ2mZpHktlEvSjyQtlPSkpIPyFVtWBhx+OG88/jhvrV6ddShmZkB+m4+uB45ppfxYYN/0MQX4WR5iylRD19Tl7ppqZgUib0khImYCK1uZZRJwQzoG9INA3/ReSyXLXVPNrNAU0onmPYFFOa8Xp9O2I2mKpDmS5tTV1eUluM5Q1q0bA8aNY9nMmUR9fdbhmJkVVFLYaRHxi4gYExFjBgwYkHU4u2Tfc87h0F/+EjwkhZkVgELqffQqMDTndW06raTtPnJk1iGYmTUqpJrCHcCn0l5I7wVWp6O7lbzlDzzA8z8r+fPqZlYE8tkl9WbgAWCkpMWSzpR0tqSz01nuBF4EFgJXA1/IV2xZWz57Ngt++EN3TTWzzOWt+SgiTt1BeQDn5CmcglIzYQLP//SnLL/vPoZ86ENZh2NmXVghNR91Wf1Gj6aiTx9ev/ferEMxsy7OSaEAqLycAWPHUueuqWaWMSeFAlEzfjxl3buz8fXXsw7FzLqwQuqS2qXVnnACtSeeiHy9gpllyDWFAqHyciSRnG83M8uGk0IBWXLXXUwfO9ZdU80sM04KBaSyupqNS5f6rqlmlhknhQLSb/RoKvr2dddUM8uMk0IBcddUM8uak0KBqRk/nk3Ll7N6/vysQzGzLshJocDUHHkkw08/nW49e2Ydipl1Qb5OocBUVldzwDe/mXUYZtZFuaZQgKK+njfmzmXz2rVZh2JmXYyTQgFaNXcu9514osduNrO8c1IoQH1HjaKib1+WuWuqmeWZk0IBauiausxdU80sz5wUClTN+PG8tWIFq59+OutQzKwLcVIoUDVHHgng8wpmllfuklqgKqurOeKWW+hzwAFZh2JmXYiTQgHrP2ZM1iGYWRfj5qMCtmX9ehb84AfU+a6pZpYnTgoFrLxHD16+6SYW/+EPWYdiZl2Ek0IBU3k5NePGuWuqmeWNk0KBG+CuqWaWR04KBa5m3DjAXVPNLD+cFApcZXU11YcdxtaNG7MOxcy6AHdJLQLv/fWvkZR1GGbWBbimUAQaEkL95s0ZR2Jmpc5JoUjM/uQnmXvRRVmHYWYlzkmhSPSoqWHZjBnummpmnSqvSUHSMZKelbRQ0oXNlJ8hqU7SE+njc/mMr5DVjB/PWytXsnrevKxDMbMSlrekIKkc+F/gWGB/4FRJ+zcz6y0RMTp9XJOv+ArdgHHjQHLXVDPrVPmsKRwCLIyIFyPiLeC3wKQ8rr+oVe6xB30POMBJwcw6VT67pO4JLMp5vRg4tJn5TpJ0JPAc8OWIWNR0BklTgCkAw4YN64RQC9M+n/88WzdsyDoMMythhXai+Y/A8IgYBdwN/Kq5mSLiFxExJiLGDBgwIK8BZmnIcccx9KSTsg7DzEpYPpPCq8DQnNe16bRGEbEiIjalL68B3pOn2IrGm6++St3992cdhpmVqHwmhUeAfSXtLak7MBm4I3cGSYNzXh4PPJPH+IrCgiuu4LHzz3fXVDPrFHlLChGxBfgicBfJl/2tEfG0pMskHZ/Odq6kpyXNBc4FzshXfMXCXVPNrDPl9d5HEXEncGeTaZfmPL8I8GW7rcjtmtp31KiswzGzElNoJ5ptB9w11cw6k5NCEaqZMIFVTz7J5rVrsw7FzEqMk0IRGv7JT/L+2bOp6N0761DMrMR4PIUiVFldnXUIZlaiXFMoUstmzeLRL33JXVPNrEM5KRSpt1au5LU773TXVDPrUE4KRcp3TTWzzuCkUKQq+/en76hRTgpm1qGcFIpYzYQJvPHEE2xauTLrUMysRDgpFLGBEybQb/RoNtXVZR2KmZUId0ktYn1HjWLsbbdlHYaZlRDXFIrc4mnTuHvsWP44YgTTx41j8bRpWYdkZkXMNYUitnjaNOZeeCH1b70FwIbXXuPJSy4BoHaSRzo1s7ZzTaGILbjiisaE0GDrhg0suOKKjCIys2LnpFDENixZ0vz0117LcyRmViqcFIpY1eDBzU6vTMetXjVvHvMuu4w1zz6bz7DMrIg5KRSxd1xwAeVVVdtMK6+qYv+LknGKVj/9NP+8+WZmHHccs048kX/+9rdsWbcui1DNrEgoIrKOYZeMGTMm5syZk3UYmVk8bRoLrriCDUuWUDV4MO+44IJtTjJvWrmSV6dN45VbbmHt88/TY9AgJs6cicrLM4zazLIm6dGIGLPddCeFriEiWDV3LutfeYXa448nInjk7LPZ49BDqT3hBCr79886RDPLo5aSgpuPughJ9Bs9mtrjjwdg86pVvLViBfOnTuXuww9nzpe+xLJZs3wrbrMuzkmhi+rerx9jb7uN8XfeyfDTTmP57Nk8dMYZLL37biCpWZhZ1+PmIwNg66ZNvD59OgMnTqS8spLnr7qKFQ89xLBTTmHQUUdR1r171iGaWQdqqfnIVzQbAOWVlQz50IcaX3fr2ZO1zz3Ho+ecQ/f+/Rl64okMPflkeu+zT4ZRmllnc/ORNWvv009n4syZHHLttfQ/+GBevP565v/nfzaWN72S2sxKg2sK1iKVlzNwwgQGTpjApuXL2bx2LQBvLl7MzI98hCEf+hDDTj6ZPgccgKSMozWzjuCagu2Uyupqeu29NwBRX8/Ao49m0e23M+ujH2XmRz7CSzfc4AvjzEqAk4K1Wc9hwzjwiiv4wAMPcMBll6GyMp6+/HK2btwIwKYVK9x7yaxIufeRdYg3Fy9mt9paAO4/9VQ2vf46Q08+maEnnkiPmpqMozOzpnzxmnWqhoQQEew1eTI9Bg1iwfe/z/SxY3n4rLNY/tBDGUdoZjvDScE6lCRqJ03i8Jtu4n3Tp7PP5z7HqieeYO2CBQBsWb+e9f/8Z8ZRmllLnBSs0/Tae2/2++pXmXjffQybPBmAV//0J/5x1FE8cNppLL7jDrZu2gQkN/abPm6chxU1y1hek4KkYyQ9K2mhpAubKa+UdEta/pCk4fmMzzpHWUUF5ZWVAAycMIGRX/kKby5ezONf/jJ3H3YYD3z60zx58cXJ4EARjcOKFmtiKKUE520pPJ29HXk70SypHHgOeD+wGHgEODUi5ufM8wVgVEScLWky8NGIOKW15fpEc3GK+npWPPggr9x6K0vuuqvZi+G69+vHqKlT2W3oUPrsvz8Ay2bNQmVlyaO8HMrKqBo0iN1qa4mtW1mzYAE0lKfzdO/Xj+79+hFbt7Jx2bJ/vVdC5eWUV1VRXllJ1NdTv3nztuVtvP5i8bRpPHnJJWzdsKFxWnlVFaOmTi26cbO9LYWnI7cj81tnSzoM+GZEfDB9fRFARPxnzjx3pfM8IKkbsBQYEK0E6aRQ/P44YgS08jkcNnky7546laiv50/77rtd+dvOPJN3Xnwxm9eu5a+jR29X/vbzzmPkueeyYelSph9xxHbl+198MfuceSbrXnyRe97//m0Ly8oY9Z3vsNcpp7Bq3jxmf+IT2yQclZVxwLe/zeAPfICVjz3G7MmTia1bt1tH1ZAhjP7ud3nqW9/aruzA73+fvqNGsfTvf+eZ731vu/IxP/kJvffdl1f/9Cee+/GPtys/9Lrr2G3PPXnlttt44eqrtys//KabqNxjD1664QZevvHG7crH3X473XbbjYU//zmLbr+9cfr6l14itmzZbn5160bP9JqVblVVjEvf8/Tll7Ns5sxt5q3s35/Db7oJgCcvvZQVDz+8TflutbUces01ADx+wQWsmjdvm/Le++7LmHSb55xzDmtfeGGb8n6jRjE63WcPfuYz2w1RW33ooRzwrW8xfdy4Zoep7darF8fOnQvAzEmTGpszGww57jhGnnsuEcG9xx673fuHnngiI6ZMYcv69cw66aTtyvc+7TSGn3Yam5YvZ/Zpp21XPuLzn2foSSex/pVXeHjKlO3KR557LkOOO441zz7Lo+ed1+L/pGrIECbOmrXd9NYUwr2P9gQW5bxeDBza0jwRsUXSamAPYHnuTJKmAFMAhg0b1lnxWp5UDR7c7AFbWVPDoddeS0XfvskEiSNuvZWor0++eOvrifp6qoYMAaC8Rw8OvuqqpDxnnt4jRwJQsfvujLr88mR6BLF1K1FfT/8xyXHRvV8/3nHBBduWb91Kn/32S8r792evU05pXHbD36pBg5Ll9+7dbEKAZDztbr160fvtb9+urGH0vIrdd2+2vCxteqvo06f58oqKJL6+fVstr9xjj2bLGwZcqqyupveIEY3T1z3/fLPbElu2NM7X0CwI0GPQoG3e3xBzg6rBg7crz+2uvFttbeO1LrnTGp8PHQpNam5Ve+7Z+LznXnvRrWfPbcvTz0ZL45nnXnDZa8QI6pskhR7p0LbAdrFDss8AKCtrtrx7Ok6JysubLW/4bJd17958ebr/ynv0oPeIES3+T1ravvbIZ03hY8AxEfG59PXpwKER8cWceeal8yxOX7+QzrO8uWWCawqloFSq9kCLv0jb80sua96WwtOR21EI1ym8CgzNeV2bTmt2nrT5qA+wIi/RWWZqJ01i1NSpya86iaohQ4oyIUDL42a/44ILMoqo/bwthScf25HP5qNHgH0l7U3y5T8Z+ESTee4APg08AHwM+Edr5xOsdNROmlSUSaCphm1obdzsYuFtKTz52I683uZC0nHAlUA5cF1ETJV0GTAnIu6Q1AP4NXAgsBKYHBEvtrZMNx+ZmbVdIZxoJiLuBO5sMu3SnOcbgY/nMyYzM/sXX9FsZmaNnBTMzKyRk4KZmTVyUjAzs0ZFP8iOpDqgvfdirqbJ1dJFrFS2pVS2A7wthapUtmVXt2OviBjQdGLRJ4VdIWlOc12yilGpbEupbAd4WwpVqWxLZ22Hm4/MzKyRk4KZmTXq6knhF1kH0IFKZVtKZTvA21KoSmVbOmU7uvQ5BTMz21ZXrymYmVkOJwUzM2vUZZOCpGMkPStpoaQLs46nvSRdJ2lZOkBR0ZI0VNI9kuZLelrSeVnH1F6Sekh6WNLcdFu2H4OziEgql/S4pD9lHcuukPSypKckPSGpqG+tLKmvpNskLZD0TDrccccsuyueU5BUDjwHvJ9kWNBHgFMjYn6mgbWDpCOBdcANEfGurONpL0mDgcER8Zik3sCjwAlF+j8R0DMi1kmqAO4DzouIBzMOrV0kfQUYA+weER/OOp72kvQyMKa1kRyLhaRfAbMi4hpJ3YHdImJVRyy7q9YUDgEWRsSLEfEW8FuguEbbSEXETJKxJ4paRCyJiMfS52uBZ0jG7C46kWgY/LcifRTlry9JtcCHgGuyjsUSkvoARwLXAkTEWx2VEKDrJoU9gUU5rxdTpF9ApUjScJKBlh7KOJR2S5tcngCWAXdHRLFuy5XAV4H6jOPoCAH8TdKjkqZkHcwu2BuoA36ZNutdI6lnRy28qyYFK1CSegG/A86PiDVZx9NeEbE1IkaTjEV+iKSia9qT9GFgWUQ8mnUsHWRsRBwEHAuckza9FqNuwEHAzyLiQGA90GHnRbtqUngVGJrzujadZhlK299/B9wYEb/POp6OkFbr7wGOyTiU9jgCOD5ti/8tcJSk32QbUvtFxKvp32XA7STNyMVoMbA4p/Z5G0mS6BBdNSk8Auwrae/0JM1k4I6MY+rS0pOz1wLPRMQPs45nV0gaIKlv+ryKpEPDgkyDaoeIuCgiaiNiOMkx8o+IOC3jsNpFUs+0AwNpU8sHgKLssRcRS4FFkkamk44GOqxDRl7HaC4UEbFF0heBu4By4LqIeDrjsNpF0s3ABKBa0mLgPyLi2myjapcjgNOBp9K2eICL03G9i81g4FdpL7cy4NaIKOrunCVgIHB78tuDbsBNEfHXbEPaJV8Cbkx/1L4IfKajFtwlu6SamVnzumrzkZmZNcNJwczMGjkpmJlZIycFMzNr5KRgZmaNnBTMzKyRk4KZmTVyUjDrYJKOlvTrrOMwaw8nBbOO927g8ayDMGsPJwWzjvdu4HFJlZKul3R5em8ns4LXJe99ZNbJRpGMo3AXcE1EFO2dRa3r8b2PzDpQevvv5cA/gbMi4oGMQzJrEzcfmXWs/Uhuzb4F2JpxLGZt5qRg1rHeDcwmGX/gl5IGZhyPWZs4KZh1rHcD8yLiOeBrwK1pk5JZUfA5BTMza+SagpmZNXJSMDOzRk4KZmbWyEnBzMwaOSmYmVkjJwUzM2vkpGBmZo3+P3mdrojjoKhLAAAAAElFTkSuQmCC", + "image/png": "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", "text/plain": [ "
" ] @@ -269,7 +271,7 @@ "outputs": [ { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "
" ] @@ -282,7 +284,7 @@ { "data": { "text/plain": [ - "(array([11.41276974, -0.8968058 , 11.41276974, -0.8968058 ]), 185)" + "(array([11.41277892, -0.89680526, 11.41277892, -0.89680526]), 10)" ] }, "execution_count": 7, @@ -311,7 +313,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.13" + "version": "3.8.12" }, "vscode": { "interpreter": { diff --git a/tests/unconstrain/images/trust_region_steihaug_CG.png b/tests/unconstrain/images/trust_region_steihaug_CG.png index 4cccc97f8537c54983adc20fe5f85920638471c0..4c5b8d3e6f258b3e0b40ad099452604aa1e2c67f 100644 GIT binary patch literal 11123 zcmZvCc|4Tw*Z*Mb$-c`n5wbUtU23w15ZTwQL5D0^=4#ETiAxi>3 zTr^Z*iH`EK9sOM(29ANgo<4z|Zcc*1F8%>-KHhL?1?el2f)4@% zeFKzbWW4_Ug0zpntBlwxmlHS$t*?${00ctMO8SsN3Z8L6AeR?(5t?^Ho^8&ChL|n4 z5O%hTm@=>D3p>)pC6klCNa`2PFwYpbbT?YBdKaYF_RY$}Bgaar;*FYAP>7q<<}cw! zv-S8!igD+vA4wEqaG03!Qz6GwT0Ut8uxx? z0^Z?pL+6^dWYLMwAM2Q8u*CDR!>zr5MONP#a(DpT6#v8FV>4UXe$gMn+Sr1yu zvtk;3fInrAm03ugQA=DHpk4Ta6^2?a>_!uw6+sw=nu%EQAPAKx3?+B(*=`1xB!dMDlz&o#aM0ZV&Yv46BpSzhV`$= zSq-XUidLrM7snD1WNpjOtZt8DN1y@{1?`{N-#bpcR8e8eBJ9YfH*jVP!62uPa9 zf&QsBwi_5n7h8C!(zUUF^rha;p?V0YZs%fZ-#DM?LMP59s6GlZ8^=C<8JLLK@+17F z8hZmdLRr>ewt@*t+Mz=%$g>>GJ#u37dbAIQsDPBAh@`XO7;k4g$im135Za;kAwh>M z+uBI`1w1ikI_8TraU=#a6Oo9iC9{L+=xLjf@fnS;nj{Gwms*2}u9J^T@MQOkQ(%BW76e!CqRms5!1$Mw9$F1|vYT81cGem{~Y$ z^y0=aLzH)t(!?V0t{b;sV0kn1sc;NS{M8q&r%q|Eu=n;y61WX7IHrzv2u0mM@iWn0 zK_xmWaT#)$IHqCJb_jh#1(}Jsrg_c0HeZ?7=^cSwX|E?tLX*&M{av#BO!da>VvMzW z&BeA{bw`^WJ|2DZ!TdCoE%$lI1fMI7K$Nb4u6mu+?U(XAzkS+rO1}n`pY)9T5e8=3 z;dKxlAFPrvZMNXjgAdkJitjub-{;9gfZU;8`>|%C94T)eYEOSMk=93oUn!n<=EMp)EV`bY^%xJ%7_=K@pxhJO7ky$r7sr zU$^Z&CD25sm-t}c3g6IU@^4Te7v*z2BSND-*f{{)*eK?6f)oyby#iVlS$l~qKEYuj zJm6qgr}v43>UiLS9ekamxFQerHH|@)%*Gjr>yl}|IJ>)TVS%)m+&VLLsKL~Fd)mn3 zHd5v63#Mr^t%D9uN9I=o7d!xke)7%kd6z`3;&+#Rd7pP~epE_n?999^4qx{GifCF# zA-;rknoBG*%!bx#7n&LD4aIH*f5yz%| z|9ArmT{y$5=my_{ZRmmkbE1fD8B}P{s#$#$uUI>OVOgk?&J)&rt(300qc2uOXh-V} z_4bwb3=cb@HAq4Nu>V52Ccv`%vtE`7XI4^D&kK%t@NbSuYT@$FpJAGsnq!VhNeyDV zE5q|Y@S%yh6?bFB#Kaut+Cq&JgRCh=WXEeg#iuXp7Z$R+v-9k_}Wthq97r=;O94sbztaz-%{V*9BRhv5;EeB z;CINMVp*a75d;D@@!Fb6;-%pmgY)vQ`v)xLg4_|z$w^lQ-Y9Ek=Y5Rw^tN4w!QSXr z88S_&Eovw<)%Y`KjF+2tUw`ZkRk>H9qDs3Mw5wi2+;O(erK|b zqS4&SE-6%%w-67OrD$j}dk&`1zasiX%3WQ*te1tA^hv`;FE^}lAgYU3inPIj%)$wy zmqbO^e8H7fK$+M4_NV?R5;rQlnV8)atRgr~C2MPdVQs&>Tb#^pLD_;%lAT0vJN2`N zulKjomD!jxK8b7gD0=tMye4cq6T1?O6G34qi6n8^YCrB8{WA6YX#L+!+!vHbLRar7 zbna-4{gaf0kbXtmg&Q68{0F6Wp+n{>x&<)z1mL)8FN@=PGO0UGi9(~Ny{4_ zYHa(IUnJ?Evo|<;nxdEGwzjD7L4-(bu!EC@I`brd?mX|feu{dYP1mPiUvvj>x5veA zAqrlUi_pN=8EhcOLJxhgiVJ;p{c+fpu1(tS;aw-LiF>Ry5t?MP!>U<8k;z^iw@O5em2T8O?#f#STp3E|$E<8L04#6F`xHsCB@Grz`)kxMI} zzhW1mw)$V9hX8Z*jJA(ML~}d;Dg_gM3+icLQoY2^PF8mdjY5>O>+8k(5~gR{n=qV^ zJTjS9VqSD!v`qZh8gk&#v{AwqEunK2Uz}z^rhJa;`gD!0{Hz(ms-Q^Q}Lv2Tle^_6&1<+OqS%EG>-_1z{|& zDtiSB8b@7AmK*hDUbL3M*6tt>nTE7KXl9BwcUREPJ3lIKGBfKcizHqAbU}>=ca^kI z5%9kU(=G6#N9R883L(nPOkyjw?TneHIi_yKlgcY4g5|zctr;Dl@VGWt_Ne!3v zm>5X8U5aU5y#aVjU!Z1i zLW6MAK(4FL1mwB^KBy@txHSN1&J88%c%^FcXB3mh#TJ@br&O}%oSh3|6QU77IpCIcraHMN6vr;EDZ8_+w4Eq; zVFHt{fC7)#U*n2Ly(pZ5Ik0ZGVTKuy2DF$AygV9LSIt?c@N;p!tNvzsXc1}Nasm654^b@Pb_ z2r9UiBlmru*@Eod4`JTAjcFtL&BPcl@iYyKmpnde&$*Wsdv$+qGJLg|{XJR7{qGs(SoaPzU@%||0I zZ&H&KAv+h>m>)*YSYWBF=@iyATcUvG9F$~~bzt6ZtUHBc53kGBaW-E{e#>ucRj3en zL0*rMiG|e5^0t1o>5uI6s^=XP*Mya8p67rk^3f7Ki3S)piTjV0`Is{Z1x@+=1?^g@oUR(PM#Qu6ry$)X_YPYvc zja(*vFO#%xbSYc#iDs{6+;+d--*uNm{m#|520g!dc3ObH3=`L-{lT@&!Txq{v+32h zP7RVR7G$&Z$n{@p}|HW*qx~95WZ5et2!Ja_TlL(5T2RK~mIxocmSwbs|4rodo>cZJdUGZEC=EWXMkQ#g04EA26R-}l2x z8Lu~YvewDBWbhY}JRG_^5qW0&MxFs9J3DkmSMqs>C z-~jYb6w}cInOy5~y2H4oX6B2NAlrjUS&Xv8V`Rt-lTA;B-iP%3vrLSZxg^vO|A`m= zXqhn6-CDAJ#9Md_kS3x!-p$8N#aBdOQaLP$*gziD{8RfgWe`eJNF?QX*>VSK z&*&&u$bb~d!u-d^Vs%Q_D5xi|Af<^4UVmTGG6mayGw_D&rbvi=E&2)@B^TEezC-MY zaGR(|$AbvTp-T&U@86r|xc*GZD)=VCiccg7Iv{Zw^i$r!(zZM#g??NH&2X^QPN#A} z|LyYf^B0@JYPGuI*(w$$qyD~)Z#i$_uA@8US!JL^%Z=B(H1jPBP_~Z1nFml9&3^qA zs@(%P8^#@psN-_q>^>DLce#%snc(xQ<*C0!77z=;rHL4VAHf^TjpbYLh7)D|jX?x2tbI&p0qRs$J@(Irr@6+lY;NvHzltJ` zAVnCA!NiCD$H)@Xk@4Uo6#G|W?HgY8=wJS8uXrjsGB}nWxXP({028RGyy)G6E2Vcy zxK@LlcR3s9*tw(1obgeV296PE=4$5S`hh?Dx@7#K^xJah{6qK;9q@2S`=5<)I`}kV z8p90iha=D2za-{bDKm24ATFj?I8D@$+@sr5DsYrSs+px2|AoD65eA1}zn<-N(dS$K z-HeWNYkq%pMHla~EII&po3@PEJu~j!J#D_^B%KqUXM$aCAN5A(b@%wfeXYyL^=}cI zycQEcx-gi=O|o8-TGHq$yv-bw6iejufrP1KI!X4%&Cvu<1^$wd_>X~d22>qecvo_J z2#`P39FNE;!=<&A!QQp)P}#kBQH>}M^|;OXMG+Y#HDjmed)95la})|+cLrnwIM_%^zkt^DU_zI#6l?c+A9X1;78?d#npqH2R@KE{fs7uc}W!pKw!PbFa;n z?uu$~`(1^>f;@ESf82s&KI4u)auirvF9gEFnVMgB#5IS%!pP7x4MZ9&*Lx9qgP6IfI;m+gCUmJmACn}>5=x6`B?>) zWWIE=oMPl1j=(+gT^cKHFb?j0mY@FSqTvlW^m_C<D4F5K1IhL8fUZCFUZX2xtxbrKfZEXmlG=>D5*mmwBJa38GI*Efp+Jb}v*fV_l@7_~ z#|M!PEtoUamu;@M8}*}+U7Hor1Ed&~F6I<#&7fuG$U~vvbxXby|L-5Dk1Xm7KcBHm5Ea7 z`h-A`>oE-?5>HRK3CFvdRW}gj+;=!l;U-yp!IHN9Pek-#PqYwLDvg2#pqp}fKX}cw zJxZe_^2qIqa&VfmFtgi>vDgOyNYYL5Er}7l*Xl!l-(QQ$tV+^x0;%&&TSKLUm}~R5 zf5C_Ae(v->Kd+6j0?7@q*5gqtLP&#$tn_LCU;sgi9Ns+rC|Dq_ufLf6%G8p$l-02Q zrQ(zkWJ7Y`>~E{vRFCYV)ZDzj-Dz<(8vCB4Bk>&inSA4P`=*^L(NphquNDNY408l+ z8RdhC3dX6!L&=Vl;QbnFPVjt3^~5wAAa2~;&yG^GCOATHVsdx*7La7Wrdtqv)yGCEz=w$P$_U#pD}_RF05aF=%G z2R<(5GnN5R;A&F{UD! zb!XbJNO5m2T-?61m=LvBRoTs)!IsqkWggON6|lhLHPWZ{*nG{JBiLo(FOT);)2Mgz6{O4RRsDvF9dq+kYuB*EHKtQE9H1wT7FKl5~?)FcVBJKmFg zcVniHJBrBr3xy&bfz-3yZ#vAt$K(mSff{y+5WI6 zO2VZ_sl_l0n&*r$Uk)n+p56*@z2Ik{TTJn8YuEM{HQA@c2m_m8O{)N#p2W zezh^ZLyRT=sQOz6B#t`t6&whNQ&tu^y;`Zt+y2D#7RF)xNSR-LWx4Vuw*kvRVI=_#DWGvPI=Ex zm$0*VxWE`y>OS8=54n(8D?(&cWwVbKkGGYj#5HE6qqVP)_yE$fMSTT-7Ip_Amj+=BmDm2&3Ujl+*AI4r$4?3*{?R>b8+!}hF z$X^z66qr(BR6%U^`_p+E)_RVY!)pY_LJQ7YNr;?lA=4TTHtZL+FUYUjgmq6@+EIr}A35whDWc7L5)kxKV znvR0UGVN@B@vuxCQeI(S8$Nv>*y_oibp+NyFLt1;0nGoKwe+Q!{#aMNPg8Na;rj4r zbhx=vX~%cx4C3lK2ZZ? z6f-AD!y|V&O@H6Lch}c}7)%OI+sfnfhE>v!>7`4z`z3xU`Z|n#Pu97JnESAVuO(-Q za36#&_#x-F@Kw=HvG;`r5ms7MpqYQ|817skA0K?yC&6ihUC*;O?1K;Au{CCPjEDJG z7j$#=T*GnegQS8uq*X0f&9vB(Jic^{tgq;!BW;*d#5Ljd;gW1 z<)CFtwpg;gz0*w8Le}~d+#Qq!kQd)jANAbbypXF)5Axo|zV}tHA4DDRY*;jJmo7o9 zgzuEMq+SJKaii;c9z-7gte9LHj=l|-fF4o!h^VM51?LtIJry`E9XeTl@uJbz7&h7_ zylLnT4?m~K`bi!ggk_9@4|;NGa(;1NsDj`-aJXW~9OdO0-nGK_!h_bq!^PQo*?i{3 zpI@;KKjt@>V7|B-I;8aHV8eCY=FS~Nrasa{-vrEYXNhEqnwr_!S?3lP4MrDwm(^FN zF$}BgPxa?O0{IovzJPf2t-*uStQq!3&(@jADpfbLtmYQEM?ZBWahl{l^-3ag>woLKgk0Mzg%pnEpnA6w(zhKT&tsIDswNPe}Nqy22M`8<^q! zk=5;nyQWU6GmsX!K(_BShkLYAQt@ZX_0ZucQ15`!^{8}D=$>BM*A*IBb&(A$Lx!5wC zzwqJ9Io#^r6{%!RHA+BiwbK?F>`ybn97a7zv3}Y`$PYi}>nl!ISKbI{O|>rH8H;_& zQDs2fU$XZlJLI&v{v;S^9V|?knUXJ->|K7#)JLWdGFAx4?b-N4-Mi2exkMh=!OHz+te7_=yYH0y;Qz=~%wM)(469@NM z-EzQnW?%Ci6$Ukt@v{E#5HLCRDlL5HmSM-Pp+AUmUb`y+pqWB~+jh_Ib{-m-YaEGT zG>-2`o%>hcd-Jw4V1lT)BhQXUI7XIvW4bQpjZddR-`S}Q1Qi-en$PHV@xzh0OoRyv z6ymEm4BB4Q1^bkgR#XTp$yr^g zQ5`_b&{0S!A%QRIaG83uN>avk;F(hO*@_0)r?t5v{9-TsPv;r2Gz_e2j5VyQSgIq+sRFJ>`ug~=ZRXmS8!9MV)M-)WXF&>lAYPWMYgf&m6YV9{m37R-; zQ3LKaDal@;8MmtVfN6GExoTh9H{<>&SG-Q<*Pydo=IQ+B+75wWDf^+CdAp09eTA>YqP;^dye@i{HX^WdC$B zjt1#E|MBttz*Pt~W^-DcxIm$RD=?cTcgxDU`I*&d1k4|h5{v9A!6S}X$SAsgO|_Hi z)3OC94Pl)Kg8i5*ygvL-WyJjEml9y6Lc;(QMRxm{Iwn`fb>;VR!}=_5v^*TRbBvkS zwBk_`E!L@sq4)*vNz^8Q!Od%$JW=C^8O4(S)vHuOqg~l~xul#{X{!4NI&g1>E|%OY zk`~dZx1RlM<{H00X`)}d-(OjQNA7RXl;!@s?aTxdhk^dOK73#JY$m{C;4%UK=ECz& ztCMox{?URhZM)9}jNgV|1Br9P`q$JAQihIg?A;xNyO?HDd9=djx3Aue%{yA4@DMX( zzc-52rkdPX!HR&>{7ZwzFTR+f&`ZzpodVHKHSHV&pA^Mn0=Zp&@D=$ zf_Hgad3o?g*KC}KR!ZvBpMHr(MoZ<>-viu7StSc*W^MlODev#CY6eF}Zm)e!l@=|z z4eHW^jf)?Iz0P&v)G0Tp_)~P52$1QS6KObxVf61XLR4GM>~zg)(i-i2KHNR(gfc`09WEUh7a|YF>?FoP6g% zRvWdGnz*SF^zCYxZHSQdd}Lw5wRxLD#VcJUC$*i$PbjGC!@piu=sa3;BnB9&W-ttE z3}TeGxn|vE6zQtEB2*XZxo)xj1R`6%@30i!+|6QtyRPh1x#+G{v zan;R)Ifv^SKZC|Q&kR6e3fwLkq9)8U0s<3cLt%I&@Fa$bAieT9`8Wdvo z)p5l(aQ#j7@urXNaQ_d}vjb|#)?BD4uYKrpX)CJtLT|pd0Hs48VB z?@i>0Tv6GuXl08AbKT!_auSQ0#06gP2E|q`Lq8Y z@y=56#4la=H{j2K0@rHZvESWIWAb2qX!dUXOQJNG-`ilc4_7}DJ9U$g_%#B;*ju6I z)Q+2-kUE9syOR_!A(;miHaD{poQzHDP)`P<;~>(c{E=ic$DFx{ng zfmgnBt*!ZGkxQ$lShMf@W>{SQZwV<`o=Ho4f2NF||9}iPtwgObH6@i>BRqH%komgz zV5(p|b!a-I@7d2IF5gQ}J%IIS0dgdnQT`NS;o`z*-4PrL&rhL!*?+baezxUOjlmIKp!@PF0Z|5qtK#{`{^^Mt<-oO+%?@9Ea%YejAwuwLq67||Qn z-iryJ`zJv>NAO7kYB2TMphV8E0&8m9fHnQGz1OL_i2r}}Og-3sj0|yoVn%tjz|{Um z%{>shz-qtMf7blT@~2vW{bCe*;gpwgZ z_+j%#9b|aQ+a3$54zj*2D268ruj5}sz5NL9u@4p=v31T_%#-J8UqG-JP@Hb!DPpp8 zcRa44?XcHkzJE8B_!2Wv_V}_8KV(R)d_!S@61m0L#?+w!fTKb##yBC*MrIiy=@fmT zP;=-^``9dJ{Im{32s!!@*wHm}+5 zP~WW^Su>rbP_p$Hb-AtZL>KV^+!dP4?u+=-rpiU#Sl9wsLNypkP#nVXKT#-;x2CQR zAQX&$&w|ok%y~?0-a-VBwUAS)v}DDX_op5JYGhp{g#|xK^_aF5M&@yJgVj>+OUF%_ zd$VN$0D3YyFnh8B>cTmEBnCqWCXmNQ&2!GGy*R56BrssD;40#h%Df@hx}Ih_GRS_z zeM>kS9=`N}`lquhr475cJtfXFCGMSDN?gNzyqy~`4=EPO-y>Z*&o-W{Db);06GrjpBoGJLd ze$ASO!-)7A)5-0p1J*>OFJ<&_BkG<#6uHChCkcD}5_CR_q7*(%s&PMzfN|mU7&cuF z(kx2cA-%Kn)E)YDc2QbAa>-ZoKmNTQ+W3E568(>r|NHLf(OG~`ob17g8y36(3(>u0 Lh^V>Y5c~fCKn+K1 literal 9211 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