From 5996a1efa5737bf737a7ff73d3c62dbfeecc8e2c Mon Sep 17 00:00:00 2001 From: lukstafi Date: Wed, 18 Feb 2015 02:39:24 +0100 Subject: [PATCH] Regenerated documentation. Removed slides, they were too outdated. --- doc/code/Abduction.html | 21 +- doc/code/DisjElim.html | 17 +- doc/code/Infer.html | 23 +- doc/code/Invariants.html | 12 + doc/code/Terms.html | 112 +++- doc/code/html.stamp | 2 +- doc/code/index_values.html | 74 ++- doc/code/type_Abduction.html | 18 +- doc/code/type_DisjElim.html | 15 +- doc/code/type_Infer.html | 18 +- doc/code/type_Invariants.html | 2 + doc/code/type_Terms.html | 47 +- doc/invargent-manual.pdf | Bin 173284 -> 173284 bytes doc/invargent-slides-v2.pdf | Bin 162181 -> 0 bytes doc/invargent-slides-v2.tm | 771 ------------------------ doc/invargent-slides.pdf | Bin 176465 -> 0 bytes doc/invargent-slides.tm | 1055 --------------------------------- doc/invargent.pdf | Bin 397791 -> 397791 bytes 18 files changed, 295 insertions(+), 1892 deletions(-) delete mode 100644 doc/invargent-slides-v2.pdf delete mode 100644 doc/invargent-slides-v2.tm delete mode 100644 doc/invargent-slides.pdf delete mode 100644 doc/invargent-slides.tm diff --git a/doc/code/Abduction.html b/doc/code/Abduction.html index 6f3bc51..c2fff4f 100644 --- a/doc/code/Abduction.html +++ b/doc/code/Abduction.html @@ -78,6 +78,19 @@

Module Abduction

val no_num_abduction : bool Pervasives.ref
+guess_eqs_nonvar=true means the only guess equations x=y tried + are for x=s, y=t in either the premise or conclusion of + abduction problem where neither s nor t are variables. + Default true.
+
+ +
val guess_eqs_nonvar : bool Pervasives.ref
+prefer_guess=true tries to guess equality-between-parameters + before considering other candidate abduction answer atoms. + Default false.
+
+ +
val prefer_guess : bool Pervasives.ref
neg_before_abd=false moves numerical negation elimination till after numerical abduction, with possibly better determination of negative facts, but worse availability of the negative @@ -92,9 +105,9 @@

Module Abduction

val num_neg_since : int Pervasives.ref
val abd_fail_flag : bool Pervasives.ref
val abd_timeout_flag : bool Pervasives.ref
-
val abd_simple : Defs.quant_ops ->
?without_quant:unit ->
bvs:Defs.VarSet.t ->
pms:Defs.VarSet.t ->
dissociate:bool ->
validate:(Defs.var_name list * Terms.subst -> unit) ->
discard:(Defs.var_name list * Terms.subst) list ->
int ->
Defs.var_name list * Terms.subst ->
Terms.sep_formula * Terms.subst ->
(Defs.VarSet.t * (Defs.var_name list * Terms.subst)) option
-
val abd_typ : Defs.quant_ops ->
bvs:Defs.VarSet.t ->
?dissociate:bool ->
validate:(Defs.var_name list * Terms.subst -> unit) ->
discard:(Defs.var_name list * Terms.subst) list ->
(Terms.sep_formula * Terms.subst) list ->
Defs.VarSet.t * Terms.subst * Defs.var_name list * Terms.subst *
(Terms.sep_formula * Terms.sep_formula) list
-
type discarded = ((Defs.var_name list * Terms.subst) list, NumDefs.formula list, unit)
Terms.sep_sorts
+
val abd_simple : Defs.quant_ops ->
?without_quant:unit ->
obvs:Defs.VarSet.t ->
bvs:Defs.VarSet.t ->
dissociate:bool ->
validate:(Defs.var_name list * Terms.subst -> unit) ->
neg_validate:(Defs.var_name list * Terms.subst -> int) ->
discard:(Defs.var_name list * Terms.subst) list ->
int ->
Defs.var_name list * Terms.subst ->
Terms.sep_formula * Terms.subst ->
(Defs.VarSet.t * (Defs.var_name list * Terms.subst)) option
+
val abd_typ : Defs.quant_ops ->
bvs:Defs.VarSet.t ->
?dissociate:bool ->
validate:(Defs.var_name list * Terms.subst -> unit) ->
neg_validate:(Defs.var_name list * Terms.subst -> int) ->
discard:(Defs.var_name list * Terms.subst) list ->
(Terms.sep_formula * Terms.subst) list ->
Defs.VarSet.t * Terms.subst * Defs.var_name list * Terms.subst *
(Terms.sep_formula * Terms.sep_formula) list
+
type discarded = ((Defs.var_name list * Terms.subst) list, NumDefs.formula list,
OrderDefs.formula list, unit)
Terms.sep_sorts
Raises Contradiction if constraints are contradictory and NoAnswer when no answer can be found. Returns candidate @@ -103,5 +116,5 @@

Module Abduction

-
val abd : Defs.quant_ops ->
bvs:Defs.VarSet.t ->
?iter_no:int ->
discard:discarded ->
(bool * Terms.formula * Terms.formula) list ->
(Terms.formula * Defs.loc) list ->
Defs.VarSet.t * Terms.subst * (Defs.var_name list * Terms.formula)
+
val abd : Defs.quant_ops ->
bvs:Defs.VarSet.t ->
xbvs:(int * Defs.VarSet.t) list ->
?orig_ren:(Defs.var_name, Defs.var_name) Hashtbl.t ->
?b_of_v:(Defs.var_name -> Defs.var_name) ->
upward_of:(Defs.var_name -> Defs.var_name -> bool) ->
nonparam_vars:Defs.VarSet.t ->
?iter_no:int ->
discard:discarded ->
(bool * (int * (Defs.var_name * Defs.var_name) list) list * Terms.formula *
Terms.formula)
list ->
(Terms.formula * Defs.loc) list ->
Defs.VarSet.t * Terms.subst * (Defs.var_name list * Terms.formula)
val abd_mockup_num : Defs.quant_ops ->
bvs:Defs.VarSet.t ->
(Terms.formula * Terms.formula) list ->
(NumDefs.formula * NumDefs.formula) list option
\ No newline at end of file diff --git a/doc/code/DisjElim.html b/doc/code/DisjElim.html index 9ca8009..0fa533f 100644 --- a/doc/code/DisjElim.html +++ b/doc/code/DisjElim.html @@ -37,14 +37,13 @@

Module DisjElim

val more_existential : bool Pervasives.ref
Allow more general argument types by inferring more existential - result type. Default value false.
+ result type. Default value false. +

+If drop_csts=true, drop assignments of existential variables to + constants during initial steps of main algorithm, as long as the + variables are constrained in other atoms of the answer. Default + true.

-
val disjelim : Defs.quant_ops ->
bvs:Defs.VarSet.t ->
preserve:Defs.VarSet.t ->
do_num:bool ->
initstep:bool ->
Terms.formula list -> Terms.subst * (Defs.var_name list * Terms.atom list)
-
val initstep_heur : Defs.quant_ops ->
validate:(Terms.formula -> unit) -> Terms.answer -> Terms.answer
-Filter out "suspicious" and invalid atoms of a formula. validate - should raise Contradiction when a result is - incorrect. Currently: first removes min/max atoms comparing a - variable to a constant, then performs a greedy search for valid atoms.
-
- \ No newline at end of file +
val drop_csts : bool Pervasives.ref
+
val disjelim : Defs.quant_ops ->
?target:Defs.var_name ->
bvs:Defs.VarSet.t ->
param_bvs:Defs.VarSet.t ->
up_of_anchor:(Defs.var_name -> bool) ->
do_num:bool ->
guess:bool ->
initstep:bool ->
residuum:Terms.formula ->
(Terms.formula * Terms.formula) list ->
bool * Terms.formula * (Defs.var_name list * Terms.formula) *
Terms.formula list
\ No newline at end of file diff --git a/doc/code/Infer.html b/doc/code/Infer.html index 163fd39..ddbbbef 100644 --- a/doc/code/Infer.html +++ b/doc/code/Infer.html @@ -67,7 +67,7 @@

Module Infer

| -Or of (cnstrnt * (unit -> unit)) list +Or of Defs.var_name
* (Defs.VarSet.t * cnstrnt * Terms.formula * (unit -> unit)) list
* cnstrnt
@@ -129,15 +129,26 @@

Normalization


val normalize : Defs.quant_ops -> cnstrnt -> (int, int) Hashtbl.t * branch list
-
val simplify : Defs.VarSet.t -> Defs.quant_ops -> branch list -> branch list

+
val phantom_enumeration : (Terms.cns_name, Terms.cns_name list) Hashtbl.t
+Contains information about phantom enumerations, + i.e. alternatives to a datatype parameter's nullary concrete type + excluded by an assert false pattern-matching branch. + If the value for an is an empty list, the entry is not a phantom + enumeration.
+
+ +
val simplify : Defs.VarSet.t -> Defs.quant_ops -> branch list -> branch list
+Eliminate shared conclusions. Solve RetType constraints.
+
+

Postprocessing and printing


-
val separate_subst : ?avoid:Defs.VarSet.t ->
?keep_uni:bool ->
Defs.quant_ops -> Terms.formula -> Terms.subst * Terms.formula
-
val separate_sep_subst : ?avoid:Defs.VarSet.t ->
?keep_uni:bool ->
Defs.quant_ops -> Terms.sep_formula -> Terms.subst * Terms.sep_formula
+
val separate_subst : ?avoid:Defs.VarSet.t ->
?keep:Defs.VarSet.t ->
?bvs:Defs.VarSet.t ->
?keep_uni:bool ->
apply:bool -> Defs.quant_ops -> Terms.formula -> Terms.subst * Terms.formula
+
val separate_sep_subst : ?avoid:Defs.VarSet.t ->
?keep:Defs.VarSet.t ->
?bvs:Defs.VarSet.t ->
?keep_uni:bool ->
apply:bool ->
Defs.quant_ops -> Terms.sep_formula -> Terms.subst * Terms.sep_formula
val pr_cnstrnt : Format.formatter -> cnstrnt -> unit
val pr_brs : Format.formatter -> branch list -> unit
val pr_rbrs : Format.formatter -> (Terms.formula * Terms.formula) list -> unit
val pr_rbrs3 : Format.formatter -> (bool * Terms.formula * Terms.formula) list -> unit
-
val pr_rbrs4 : Format.formatter -> (bool * 'a * Terms.formula * Terms.formula) list -> unit
-
val pr_rbrs5 : Format.formatter ->
(bool * 'a * 'b * Terms.formula * Terms.formula) list -> unit
+
val pr_rbrs4 : Format.formatter ->
(bool * 'a list * Terms.formula * Terms.formula) list -> unit
+
val pr_rbrs5 : Format.formatter ->
(bool * (int * Terms.typ) list *
(int * Terms.typ * Terms.typ * Terms.lc) list * Terms.atom list *
Terms.atom list)
list -> unit
val reset_state : unit -> unit
\ No newline at end of file diff --git a/doc/code/Invariants.html b/doc/code/Invariants.html index d20a38d..1611bec 100644 --- a/doc/code/Invariants.html +++ b/doc/code/Invariants.html @@ -37,6 +37,18 @@

Module Invariants

val timeout_count : int Pervasives.ref
val timeout_flag : bool Pervasives.ref
val unfinished_postcond_flag : bool Pervasives.ref
+
val use_prior_discards : bool Pervasives.ref
+Breakdown of steps through the main iteration to achieve + convergence, counting from 0. The iteration: +

+ + * disj_step.(0) is + * disj_step.(1) is + * disj_step.(2) is + * disj_step.(3) is when convergence of postconditions is enforced.
+

+ +
val disj_step : int array
type chi_subst = (int * (Defs.var_name list * Terms.formula)) list 
diff --git a/doc/code/Terms.html b/doc/code/Terms.html index 3906d40..babe197 100644 --- a/doc/code/Terms.html +++ b/doc/code/Terms.html @@ -39,7 +39,18 @@

Module Terms


-
val show_extypes : bool Pervasives.ref

+
val show_extypes : bool Pervasives.ref
+If show_extypes = true, print existential type definitions in + gadti signatures. Default false. +

+If parse_if_as_integer = true, parse if a <= b then c else d + as match () with _ when a <= b -> c | _ when b+1 <= a -> d, otherwise + as match () with _ when a <= b -> c | _ -> d. Multi-conjunction + if clauses are always parsed with the else branch without the + when clause. Default true.
+

+ +
val parse_if_as_integer : bool Pervasives.ref

Definitions


val debug : bool Pervasives.ref
@@ -65,6 +76,7 @@

Definitions


val numtype : cns_name
val booltype : cns_name
val stringtype : cns_name
+
val builtin_progseq : string
module CNames: Set.S  with type elt = cns_name
val cnames_of_list : cns_name list -> CNames.t
val add_cnames : cns_name list -> CNames.t -> CNames.t
@@ -133,6 +145,13 @@

Definitions


NumAdd of ('a, 'b) expr * ('a, 'b) expr * lc + + + +| + +NumCoef of int * ('a, 'b) expr * lc + @@ -189,6 +208,13 @@

Definitions


AssertFalse of lc + + + +| + +RuntimeFailure of ('a, 'b) expr * lc + @@ -224,6 +250,13 @@

Definitions


Num_term of NumDefs.term + + + +| + +Order_term of OrderDefs.term + @@ -268,6 +301,13 @@

Definitions


Num_atom of NumDefs.atom + + + +| + +Order_atom of OrderDefs.atom + @@ -307,6 +347,13 @@

Definitions


NotEx of typ * lc + + + +| + +RetType of typ * typ * Defs.loc + @@ -509,6 +556,13 @@

Zippers.


TypConstr of string option * cns_name * Defs.sort list * lc + + + +| + +PrimTyp of string option * cns_name * Defs.sort list * string * lc + @@ -552,6 +606,13 @@

Zippers.


ITypConstr of string option * cns_name * Defs.sort list * lc + + + +| + +IPrimTyp of string option * cns_name * Defs.sort list * string * lc + @@ -594,7 +655,8 @@

Zippers.


val fvs_typs : typ list -> Defs.VarSet.t
val fvs_atom : atom -> Defs.VarSet.t
val fvs_formula : formula -> Defs.VarSet.t
-
val formula_loc : formula -> lc

+
val formula_loc : formula -> lc
+
val prim_constr_var : atom -> Defs.var_name option

Formulas


val atom_loc : atom -> lc
@@ -618,6 +680,13 @@

Formulas


cnj_num : NumDefs.formula; + + + +   + +cnj_ord : OrderDefs.formula; + @@ -635,7 +704,7 @@

Formulas


-
type ('a, 'b, 'c) sep_sorts = {
+
type ('a, 'b, 'c, 'd) sep_sorts = {
@@ -654,7 +723,14 @@

Formulas


+at_ord : 'c; + + + + +
      -at_so : 'c;
+   +at_so : 'd;
} @@ -754,22 +830,23 @@

Substitutions and unification


use_quants whether to check for quantifier violations. bvs are variables that are parameters of invariants (or are candidates for - such in the partial answer). pms are parameters to be ignored - from quantifier violations, but should already be right-most in - the quantifier. The first element of returned triple is the - unifier, the second are numeric constraints including equations, - the third one are predicate variables and NotEx atoms. The - substitution is not applied to the third element atoms!
+ such in the partial answer). The first element of returned triple + is the unifier, the second are numeric constraints including + equations, the third one are predicate variables and NotEx + atoms. The substitution is not applied to the third element + atoms!
-

val unify : ?use_quants:bool ->
?bvs:Defs.VarSet.t ->
?pms:Defs.VarSet.t ->
?sb:subst -> Defs.quant_ops -> atom list -> sep_formula
+
val unify : ?use_quants:bool ->
?bvs:Defs.VarSet.t ->
?sb:subst -> Defs.quant_ops -> atom list -> sep_formula
+
val solve_retypes : ?use_quants:bool ->
?bvs:Defs.VarSet.t ->
sb:subst -> Defs.quant_ops -> atom list -> sep_formula
+
val solve : ?use_quants:bool ->
?bvs:Defs.VarSet.t ->
?sb:subst -> Defs.quant_ops -> atom list -> sep_formula
val to_formula : subst -> formula
Find the atoms in the formula which are valid substitutions.
-
val subst_of_cnj : ?elim_uni:bool -> Defs.quant_ops -> formula -> subst
-
val combine_sbs : ?use_quants:bool ->
?bvs:Defs.VarSet.t ->
?pms:Defs.VarSet.t ->
Defs.quant_ops ->
?more_phi:formula -> subst list -> sep_formula
-
val subst_solved : ?use_quants:bool ->
?bvs:Defs.VarSet.t ->
?pms:Defs.VarSet.t ->
Defs.quant_ops -> subst -> cnj:subst -> sep_formula
+
val subst_of_cnj : ?elim_uni:bool ->
Defs.quant_ops -> formula -> subst * formula
+
val combine_sbs : ?use_quants:bool ->
?bvs:Defs.VarSet.t ->
Defs.quant_ops ->
?more_phi:formula -> subst list -> sep_formula
+
val subst_solved : ?use_quants:bool ->
?bvs:Defs.VarSet.t ->
Defs.quant_ops -> subst -> cnj:subst -> sep_formula
val cleanup : Defs.quant_ops ->
Defs.var_name list -> subst -> Defs.var_name list * subst

Global tables


@@ -777,7 +854,11 @@

Global tables


val sigma : sigma
+
val ex_type_chi : (int, int) Hashtbl.t
val all_ex_types : (int * lc) list Pervasives.ref
+
val builtin_gamma : (string * typ_scheme) list
+
val ty_unit : typ
+
val ty_string : typ
val fresh_typ_var : unit -> Defs.var_name
val fresh_num_var : unit -> Defs.var_name
val fresh_var : Defs.sort -> Defs.var_name
@@ -852,7 +933,7 @@

Printing


-
val pr_expr : ?export_num:string * string * string * string ->
?export_if:string * string * string ->
?export_bool:(bool * string) list ->
(Format.formatter -> ('a, 'b) pr_expr_annot -> unit) ->
Format.formatter -> ('a, 'b) expr -> unit
+
val pr_expr : ?export_num:string * string * string * string * string ->
?export_if:string * string * string ->
?export_bool:(bool * string) list ->
?export_progseq:string * string * string ->
?export_runtime_failure:string ->
(Format.formatter -> ('a, 'b) pr_expr_annot -> unit) ->
Format.formatter -> ('a, 'b) expr -> unit
val pr_uexpr : Format.formatter -> uexpr -> unit
val pr_iexpr : Format.formatter -> iexpr -> unit
val pr_atom : Format.formatter -> atom -> unit
@@ -860,6 +941,7 @@

Printing


val pr_ty : Format.formatter -> typ -> unit
val pr_alien_ty : Format.formatter -> alien_subterm -> unit
val pr_sort : Format.formatter -> Defs.sort -> unit
+
val pr_cns : Format.formatter -> cns_name -> unit
val pr_typscheme : Format.formatter -> typ_scheme -> unit
val pr_ans : Format.formatter -> answer -> unit
val pr_subst : Format.formatter -> subst -> unit
diff --git a/doc/code/html.stamp b/doc/code/html.stamp index 91beac5..1bc34ca 100644 --- a/doc/code/html.stamp +++ b/doc/code/html.stamp @@ -1 +1 @@ -199897d40a8487a113d547a2662f1c14 \ No newline at end of file +a22557df33f7d99076a1845e5d9a3dae \ No newline at end of file diff --git a/doc/code/index_values.html b/doc/code/index_values.html index be79c4f..27c42d0 100644 --- a/doc/code/index_values.html +++ b/doc/code/index_values.html @@ -52,6 +52,10 @@

Index of values


B booltype [Terms] +builtin_gamma [Terms] + +builtin_progseq [Terms] +
C c_subst_typ [Terms] @@ -95,8 +99,12 @@

Index of values


D debug [Terms] +disj_step [Invariants] + disjelim [DisjElim] +drop_csts [DisjElim] +
E early_postcond_abd [Invariants] @@ -104,6 +112,8 @@

Index of values

eq_atom [Terms] +ex_type_chi [Terms] + expr_loc [Terms] extype_id [Terms] @@ -141,6 +151,13 @@

Index of values

fvs_typs [Terms] +
G +guess_eqs_nonvar [Abduction] +
+prefer_guess=true tries to guess equality-between-parameters + before considering other candidate abduction answer atoms. +
+
H hvsubst_formula [Terms] @@ -157,11 +174,6 @@

Index of values

init_types [Terms] -initstep_heur [DisjElim] -
-Filter out "suspicious" and invalid atoms of a formula. -
-
M map_in_subst [Terms]
@@ -207,10 +219,9 @@

Index of values

no_num_abduction [Abduction]
-neg_before_abd=false moves numerical negation elimination till - after numerical abduction, with possibly better determination of - negative facts, but worse availability of the negative - facts. +guess_eqs_nonvar=true means the only guess equations x=y tried + are for x=s, y=t in either the premise or conclusion of + abduction problem where neither s nor t are variables.
normalize [Infer] @@ -233,6 +244,8 @@

Index of values

numtype [Terms]
P +parse_if_as_integer [Terms] + parser_last_num [Terms] parser_last_typ [Terms] @@ -245,6 +258,12 @@

Index of values

pat_loc [Terms] +phantom_enumeration [Infer] +
+Contains information about phantom enumerations, + i.e. +
+ pr_alien_ty [Terms] pr_ans [Terms] @@ -253,6 +272,8 @@

Index of values

pr_brs [Infer] +pr_cns [Terms] + pr_cnstrnt [Infer] pr_exception [Terms] @@ -301,12 +322,22 @@

Index of values

predvar_id [Terms] +prefer_guess [Abduction] +
+neg_before_abd=false moves numerical negation elimination till + after numerical abduction, with possibly better determination of + negative facts, but worse availability of the negative + facts. +
+ prenexize [Infer]
Returns a map from existential type to the unary predicate variable in which it will appear as result type.
+prim_constr_var [Terms] +
R register_notex [Terms]
@@ -364,15 +395,26 @@

Index of values

separate_subst [Infer] show_extypes [Terms] - +
+If show_extypes = true, print existential type definitions in + gadti signatures. +
+ sigma [Terms] simplify [Infer] - +
+Eliminate shared conclusions. +
+ skip_kind [Abduction] solve [Invariants] +solve [Terms] + +solve_retypes [Terms] + stringtype [Terms] subformula [Terms] @@ -413,6 +455,10 @@

Index of values

tuple [Terms] +ty_string [Terms] + +ty_unit [Terms] + typ_down [Terms] typ_fold [Terms] @@ -459,6 +505,12 @@

Index of values

Separate atoms into their sorts.
+use_prior_discards [Invariants] +
+Breakdown of steps through the main iteration to achieve + convergence, counting from 0. +
+
V var_not_left_of [Terms] diff --git a/doc/code/type_Abduction.html b/doc/code/type_Abduction.html index 271d7fe..d0d2d59 100644 --- a/doc/code/type_Abduction.html +++ b/doc/code/type_Abduction.html @@ -23,6 +23,8 @@   val fail_timeout_count : int Pervasives.ref
  val no_alien_prem : bool Pervasives.ref
  val no_num_abduction : bool Pervasives.ref
+  val guess_eqs_nonvar : bool Pervasives.ref
+  val prefer_guess : bool Pervasives.ref
  val neg_before_abd : bool Pervasives.ref
  val num_neg_since : int Pervasives.ref
  val abd_fail_flag : bool Pervasives.ref
@@ -30,10 +32,11 @@   val abd_simple :
    Defs.quant_ops ->
    ?without_quant:unit ->
+    obvs:Defs.VarSet.t ->
    bvs:Defs.VarSet.t ->
-    pms:Defs.VarSet.t ->
    dissociate:bool ->
    validate:(Defs.var_name list * Terms.subst -> unit) ->
+    neg_validate:(Defs.var_name list * Terms.subst -> int) ->
    discard:(Defs.var_name list * Terms.subst) list ->
    int ->
    Defs.var_name list * Terms.subst ->
@@ -44,19 +47,28 @@     bvs:Defs.VarSet.t ->
    ?dissociate:bool ->
    validate:(Defs.var_name list * Terms.subst -> unit) ->
+    neg_validate:(Defs.var_name list * Terms.subst -> int) ->
    discard:(Defs.var_name list * Terms.subst) list ->
    (Terms.sep_formula * Terms.subst) list ->
    Defs.VarSet.t * Terms.subst * Defs.var_name list * Terms.subst *
    (Terms.sep_formula * Terms.sep_formula) list
  type discarded =
-      ((Defs.var_name list * Terms.subst) list, NumDefs.formula list, unit)
+      ((Defs.var_name list * Terms.subst) list, NumDefs.formula list,
+       OrderDefs.formula list, unit)
      Terms.sep_sorts
  val abd :
    Defs.quant_ops ->
    bvs:Defs.VarSet.t ->
+    xbvs:(int * Defs.VarSet.t) list ->
+    ?orig_ren:(Defs.var_name, Defs.var_name) Hashtbl.t ->
+    ?b_of_v:(Defs.var_name -> Defs.var_name) ->
+    upward_of:(Defs.var_name -> Defs.var_name -> bool) ->
+    nonparam_vars:Defs.VarSet.t ->
    ?iter_no:int ->
    discard:Abduction.discarded ->
-    (bool * Terms.formula * Terms.formula) list ->
+    (bool * (int * (Defs.var_name * Defs.var_name) list) list *
+     Terms.formula * Terms.formula)
+    list ->
    (Terms.formula * Defs.loc) list ->
    Defs.VarSet.t * Terms.subst * (Defs.var_name list * Terms.formula)
  val abd_mockup_num :
diff --git a/doc/code/type_DisjElim.html b/doc/code/type_DisjElim.html index e896f6a..fb5258f 100644 --- a/doc/code/type_DisjElim.html +++ b/doc/code/type_DisjElim.html @@ -15,15 +15,18 @@ sig
  val more_existential : bool Pervasives.ref
+  val drop_csts : bool Pervasives.ref
  val disjelim :
    Defs.quant_ops ->
+    ?target:Defs.var_name ->
    bvs:Defs.VarSet.t ->
-    preserve:Defs.VarSet.t ->
+    param_bvs:Defs.VarSet.t ->
+    up_of_anchor:(Defs.var_name -> bool) ->
    do_num:bool ->
+    guess:bool ->
    initstep:bool ->
-    Terms.formula list ->
-    Terms.subst * (Defs.var_name list * Terms.atom list)
-  val initstep_heur :
-    Defs.quant_ops ->
-    validate:(Terms.formula -> unit) -> Terms.answer -> Terms.answer
+    residuum:Terms.formula ->
+    (Terms.formula * Terms.formula) list ->
+    bool * Terms.formula * (Defs.var_name list * Terms.formula) *
+    Terms.formula list
end
\ No newline at end of file diff --git a/doc/code/type_Infer.html b/doc/code/type_Infer.html index d42ae0b..8c6d6a1 100644 --- a/doc/code/type_Infer.html +++ b/doc/code/type_Infer.html @@ -22,7 +22,9 @@       A of Terms.formula
    | And of Infer.cnstrnt list
    | Impl of Terms.formula * Infer.cnstrnt
-    | Or of (Infer.cnstrnt * (unit -> unit)) list
+    | Or of Defs.var_name *
+        (Defs.VarSet.t * Infer.cnstrnt * Terms.formula * (unit -> unit)) list *
+        Infer.cnstrnt
    | All of Defs.VarSet.t * Infer.cnstrnt
    | Ex of Defs.VarSet.t * Infer.cnstrnt
  val cn_and : Infer.cnstrnt -> Infer.cnstrnt -> Infer.cnstrnt
@@ -60,15 +62,22 @@   val normalize :
    Defs.quant_ops ->
    Infer.cnstrnt -> (int, int) Hashtbl.t * Infer.branch list
+  val phantom_enumeration : (Terms.cns_name, Terms.cns_name list) Hashtbl.t
  val simplify :
    Defs.VarSet.t -> Defs.quant_ops -> Infer.branch list -> Infer.branch list
  val separate_subst :
    ?avoid:Defs.VarSet.t ->
+    ?keep:Defs.VarSet.t ->
+    ?bvs:Defs.VarSet.t ->
    ?keep_uni:bool ->
+    apply:bool ->
    Defs.quant_ops -> Terms.formula -> Terms.subst * Terms.formula
  val separate_sep_subst :
    ?avoid:Defs.VarSet.t ->
+    ?keep:Defs.VarSet.t ->
+    ?bvs:Defs.VarSet.t ->
    ?keep_uni:bool ->
+    apply:bool ->
    Defs.quant_ops -> Terms.sep_formula -> Terms.subst * Terms.sep_formula
  val pr_cnstrnt : Format.formatter -> Infer.cnstrnt -> unit
  val pr_brs : Format.formatter -> Infer.branch list -> unit
@@ -78,9 +87,12 @@     Format.formatter -> (bool * Terms.formula * Terms.formula) list -> unit
  val pr_rbrs4 :
    Format.formatter ->
-    (bool * 'a * Terms.formula * Terms.formula) list -> unit
+    (bool * 'a list * Terms.formula * Terms.formula) list -> unit
  val pr_rbrs5 :
    Format.formatter ->
-    (bool * 'a * 'b * Terms.formula * Terms.formula) list -> unit
+    (bool * (int * Terms.typ) list *
+     (int * Terms.typ * Terms.typ * Terms.lc) list * Terms.atom list *
+     Terms.atom list)
+    list -> unit
  val reset_state : unit -> unit
end \ No newline at end of file diff --git a/doc/code/type_Invariants.html b/doc/code/type_Invariants.html index 6cf2ba2..783ba6a 100644 --- a/doc/code/type_Invariants.html +++ b/doc/code/type_Invariants.html @@ -18,6 +18,8 @@   val timeout_count : int Pervasives.ref
  val timeout_flag : bool Pervasives.ref
  val unfinished_postcond_flag : bool Pervasives.ref
+  val use_prior_discards : bool Pervasives.ref
+  val disj_step : int array
  type chi_subst = (int * (Defs.var_name list * Terms.formula)) list
  val neg_constrns : bool Pervasives.ref
  val solve :
diff --git a/doc/code/type_Terms.html b/doc/code/type_Terms.html index 847b87a..abb9385 100644 --- a/doc/code/type_Terms.html +++ b/doc/code/type_Terms.html @@ -15,12 +15,14 @@ sig
  val show_extypes : bool Pervasives.ref
+  val parse_if_as_integer : bool Pervasives.ref
  val debug : bool Pervasives.ref
  type cns_name = CNam of string | Extype of int
  val tuple : Terms.cns_name
  val numtype : Terms.cns_name
  val booltype : Terms.cns_name
  val stringtype : Terms.cns_name
+  val builtin_progseq : string
  module CNames :
    sig
      type elt = cns_name
@@ -66,6 +68,7 @@       Var of string * Terms.lc
    | Num of int * Terms.lc
    | NumAdd of ('a, 'b) Terms.expr * ('a, 'b) Terms.expr * Terms.lc
+    | NumCoef of int * ('a, 'b) Terms.expr * Terms.lc
    | String of string * Terms.lc
    | Cons of Terms.cns_name * ('a, 'b) Terms.expr list * Terms.lc
    | App of ('a, 'b) Terms.expr * ('a, 'b) Terms.expr * Terms.lc
@@ -76,6 +79,7 @@     | Letin of string option * Terms.pat * ('a, 'b) Terms.expr *
        ('a, 'b) Terms.expr * Terms.lc
    | AssertFalse of Terms.lc
+    | RuntimeFailure of ('a, 'b) Terms.expr * Terms.lc
    | AssertLeq of ('a, 'b) Terms.expr * ('a, 'b) Terms.expr *
        ('a, 'b) Terms.expr * Terms.lc
    | AssertEqty of ('a, 'b) Terms.expr * ('a, 'b) Terms.expr *
@@ -85,20 +89,23 @@       ('a, 'b) Terms.expr
  val expr_loc : ('a, 'b) Terms.expr -> Terms.lc
  val clause_loc : ('a, 'b) Terms.clause -> Terms.lc
-  type alien_subterm = Num_term of NumDefs.term
+  type alien_subterm =
+      Num_term of NumDefs.term
+    | Order_term of OrderDefs.term
  type typ =
      TVar of Defs.var_name
    | TCons of Terms.cns_name * Terms.typ list
    | Fun of Terms.typ * Terms.typ
    | Alien of Terms.alien_subterm
  val num : NumDefs.term -> Terms.typ
-  type alien_atom = Num_atom of NumDefs.atom
+  type alien_atom = Num_atom of NumDefs.atom | Order_atom of OrderDefs.atom
  type atom =
      Eqty of Terms.typ * Terms.typ * Terms.lc
    | CFalse of Terms.lc
    | PredVarU of int * Terms.typ * Terms.lc
    | PredVarB of int * Terms.typ * Terms.typ * Terms.lc
    | NotEx of Terms.typ * Terms.lc
+    | RetType of Terms.typ * Terms.typ * Defs.loc
    | A of Terms.alien_atom
  val a_num : NumDefs.atom -> Terms.atom
  type formula = Terms.atom list
@@ -146,6 +153,8 @@   val reset_state : unit -> unit
  type struct_item =
      TypConstr of string option * Terms.cns_name * Defs.sort list * Terms.lc
+    | PrimTyp of string option * Terms.cns_name * Defs.sort list * string *
+        Terms.lc
    | ValConstr of string option * Terms.cns_name * Defs.var_name list *
        Terms.formula * Terms.typ list * Terms.cns_name *
        Defs.var_name list * Terms.lc
@@ -158,6 +167,8 @@   type annot_item =
      ITypConstr of string option * Terms.cns_name * Defs.sort list *
        Terms.lc
+    | IPrimTyp of string option * Terms.cns_name * Defs.sort list * string *
+        Terms.lc
    | IValConstr of string option * Terms.cns_name * Defs.var_name list *
        Terms.formula * Terms.typ list * Terms.cns_name * Terms.typ list *
        Terms.lc
@@ -175,15 +186,22 @@   val fvs_atom : Terms.atom -> Defs.VarSet.t
  val fvs_formula : Terms.formula -> Defs.VarSet.t
  val formula_loc : Terms.formula -> Terms.lc
+  val prim_constr_var : Terms.atom -> Defs.var_name option
  val atom_loc : Terms.atom -> Terms.lc
  type subst = (Defs.var_name * (Terms.typ * Terms.lc)) list
  type hvsubst = (Defs.var_name * Defs.var_name) list
  type sep_formula = {
    cnj_typ : Terms.subst;
    cnj_num : NumDefs.formula;
+    cnj_ord : OrderDefs.formula;
    cnj_so : Terms.formula;
  }
-  type ('a, 'b, 'c) sep_sorts = { at_typ : 'a; at_num : 'b; at_so : 'c; }
+  type ('a, 'b, 'c, 'd) sep_sorts = {
+    at_typ : 'a;
+    at_num : 'b;
+    at_ord : 'c;
+    at_so : 'd;
+  }
  val num_unbox : t2:Terms.typ -> Defs.loc -> Terms.typ -> NumDefs.term
  val num_v_unbox : Defs.var_name -> Defs.loc -> Terms.typ -> NumDefs.term
  val subst_atom : Terms.subst -> Terms.atom -> Terms.atom
@@ -246,21 +264,27 @@   val unify :
    ?use_quants:bool ->
    ?bvs:Defs.VarSet.t ->
-    ?pms:Defs.VarSet.t ->
+    ?sb:Terms.subst -> Defs.quant_ops -> Terms.atom list -> Terms.sep_formula
+  val solve_retypes :
+    ?use_quants:bool ->
+    ?bvs:Defs.VarSet.t ->
+    sb:Terms.subst -> Defs.quant_ops -> Terms.atom list -> Terms.sep_formula
+  val solve :
+    ?use_quants:bool ->
+    ?bvs:Defs.VarSet.t ->
    ?sb:Terms.subst -> Defs.quant_ops -> Terms.atom list -> Terms.sep_formula
  val to_formula : Terms.subst -> Terms.formula
  val subst_of_cnj :
-    ?elim_uni:bool -> Defs.quant_ops -> Terms.formula -> Terms.subst
+    ?elim_uni:bool ->
+    Defs.quant_ops -> Terms.formula -> Terms.subst * Terms.formula
  val combine_sbs :
    ?use_quants:bool ->
    ?bvs:Defs.VarSet.t ->
-    ?pms:Defs.VarSet.t ->
    Defs.quant_ops ->
    ?more_phi:Terms.formula -> Terms.subst list -> Terms.sep_formula
  val subst_solved :
    ?use_quants:bool ->
    ?bvs:Defs.VarSet.t ->
-    ?pms:Defs.VarSet.t ->
    Defs.quant_ops -> Terms.subst -> cnj:Terms.subst -> Terms.sep_formula
  val cleanup :
    Defs.quant_ops ->
@@ -271,7 +295,11 @@        Defs.var_name list)
      Hashtbl.t
  val sigma : Terms.sigma
+  val ex_type_chi : (int, int) Hashtbl.t
  val all_ex_types : (int * Terms.lc) list Pervasives.ref
+  val builtin_gamma : (string * Terms.typ_scheme) list
+  val ty_unit : Terms.typ
+  val ty_string : Terms.typ
  val fresh_typ_var : unit -> Defs.var_name
  val fresh_num_var : unit -> Defs.var_name
  val fresh_var : Defs.sort -> Defs.var_name
@@ -288,9 +316,11 @@     | LetInOpen of 'b
    | LetInNode of 'b
  val pr_expr :
-    ?export_num:string * string * string * string ->
+    ?export_num:string * string * string * string * string ->
    ?export_if:string * string * string ->
    ?export_bool:(bool * string) list ->
+    ?export_progseq:string * string * string ->
+    ?export_runtime_failure:string ->
    (Format.formatter -> ('a, 'b) Terms.pr_expr_annot -> unit) ->
    Format.formatter -> ('a, 'b) Terms.expr -> unit
  val pr_uexpr : Format.formatter -> Terms.uexpr -> unit
@@ -300,6 +330,7 @@   val pr_ty : Format.formatter -> Terms.typ -> unit
  val pr_alien_ty : Format.formatter -> Terms.alien_subterm -> unit
  val pr_sort : Format.formatter -> Defs.sort -> unit
+  val pr_cns : Format.formatter -> Terms.cns_name -> unit
  val pr_typscheme : Format.formatter -> Terms.typ_scheme -> unit
  val pr_ans : Format.formatter -> Terms.answer -> unit
  val pr_subst : Format.formatter -> Terms.subst -> unit
diff --git a/doc/invargent-manual.pdf b/doc/invargent-manual.pdf index 61a7ffb34339ecb084b8eee95cbcfced52002b2f..a242d84697d131fe78aead337610482b7d58d142 100644 GIT binary patch delta 265 zcmaEIlIzJyu7(!IEleR(cukFrQ!P`H5_MD4jFP4&PGRcA6q27VHkHYd#n{5iV0!da zCUXdD+Ek_nY-*jRG1+5^OH5xjjY$PlTz>nvX-uaWRgEnS473dl)eQ{PHM#VC^HW?B zOHwsltc(l{O%03;Eewo+Dz-nJ!L)$e$=u1@%*e>h+0DSs)Y8z&#MRNj!obDQ)y>kv T(8$Qp%+7|8is{FfFv$V{$y-eR delta 265 zcmaEIlIzJyu7(!IEleR(c+Jv`OcMnvX-uaWRSnIJ473dl)eQ{PHM#VC^HW?B zOHwsltc(l{O%03;Er8hEX#3L{ObfW3oDD3UT+B^fog7^p&E1S$%}t%%EDcQEjDcpD RI++;Q*$`4O{rD0lSpYnqOqKuu diff --git a/doc/invargent-slides-v2.pdf b/doc/invargent-slides-v2.pdf deleted file mode 100644 index 31725d9f3037fa60a0553cdbfa11bd08000dad83..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162181 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 z 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�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 - - - -<\body> - - - - <\ornamented> - - - - <\itemize> - InvarGenT infers preconditions and invariants as types of - recursive definitions, and postconditions as existential types. - - Generalized Algebraic Data Types type system based - on François Pottier and Vincent Simonet's but without - type annotations. - - Extended to a language with existential types represented as - implicitly defined and used GADTs. - - Type inference problem as satisfaction of second order - constraints over a multi-sorted domain. - - Invariants found by , postconditions found by -- anti-unification for terms, extended convex hull. - - A numerical sort with linear equations and inequalities over - rationals, and >min>, - >max> relations (reconstructed - only for postconditions). - - |<\hidden> - - - <\really-tiny> - <\itemize> - |>|>||>>|0:\\\\|]>>>||1:\\\\|]>>>>>>>>|>>||p:\\\|\>\>|D,\\\e:\>||\>#FV,\|)>>>>>>|C,\\p.e:\\\>>>>>>>>>||>|||>>|iC\p:\\\|C\p\p:\\\\\>>>|||x:\\\\|]>\|}>>>>>>>>|>>||D,\\\m:Num>|)>>|\\\>|>|D,\\\n:Num>|)>>|\\\.|)>|)>>|>|p:\\\|\>\>|D\\>\\>,\\\e:\>||\>#FV,\|)>>>>>>|C,\\p\m\n.e:\\\>>>>>>>>>|>>|i>|D\p:\\\>|\|\>|\>.\\\\\\\|\>|)>>||\>#FV>>>>>|C\K - p\p:\|\>|)>\\|\>\\\\|)>>>>>>>>>|>>||D,\\\m:Num>|)>>|\\\>|>|D,\\\n:Num>|)>>|\\.|)>|)>>|>|p:\\\|\>\>|D\\>\\\>\\>,\\\e:\>||\>#FV,\|)>>>>>>|C,\\p\m\n.e:\\\>>>>>>>>>>>> - - |, added rules>>|||>||>||>>|p:\\\>>|\>\>>>>>|C\p:\\\>>>||p:\\\>>|\\\>>>>>|C\p:\\\>>>||p:\\\>>||\>#FV,\|)>>>>>>|\|\>.C\p:\\\>>>>>>>>|||>||>|||>>||,\\e:\\\>|>|,\\e:\>||)>>>>>>|C,\,\\e - e:\>>>||||\>|)>\>|C,\,\\e:\>>|,\\K - p.e:\\\>|>>>>|C,\,\\ - p=e - e:\>>>||||)>\\Dom|)>=\>>|,\\n:\>>>>>|C,\,\\e:\>>>>>>>>>>>> - - \; - - >|||>|>|>|>>|=\\|\>.D|]>.\>|D>>>>>|C,\\x:\>>>||\>>>>>|C,\\:\>>>|i - C,\\e:\C\D>>|\|\>|\>.\\\\\|\>|)>>>>>>|C,\\K - e\e:\|\>|)>>>>|\\|)> - e:\|C,\\ - p=e - e:\>>>>>>>>>|||>||>||||>>|\e:\\\>>|\e:\>>>>>|C,\\e - e:\>>>||\e:\>|\e:\>>|=\\|\>.D|]>.\>|=\\|}>>>>>>|C,\\ - x=e - e:\>>>||||i - C,\\c:\\\|C,\\\\c|)>:\\\>>>>>>>>>>>> - - | processing>>||||>||>||>>|D,\\e:\>>||\>#FV,C|)>>>>>>|C\\\|\>.D,\\e:\\|\>.D|]>.\>>>||\e:\|\>.\>>|D|\>\|\>|]>>>>>>|C,\\e:\|\>\|\>|]>>>>||\e:\>||\e:\>>>>>|C\D,\\e:\>>>>|>||>||>>|\e:\>>||\>#FV,\|)>>>>>>|\|\>.C,\\e:\>>>||\e:\>>|\>\>>>>>|C,\\e:\>>>||,\\e:\>>>>>>>>|||)>= - x=n|)> K x>>|K\\\l=\>>>||)>=x>>|>|>,\|)>=\|)>|\>|)>>>|>| - e,K|)>=n,K|)> - n,\|)>>>|>|>,\|)>=\|\>|)>>>|>|>,K|)>=\|)>|\>|)>>>|K\\>>>||)>=p.n|)>>>|>| - p=e - e,K|)>= - p=n,\|)> - n,K|)>>>|>>>>>>>>> - - - |<\hidden> - > - - : - - <\code> - datatype Avl : type * num - - datacons Empty : >a. Avl (a, 0) - - datacons Node : - - \ \ >a,k,m,n [k=max(m,n) > - 0>m > 0>n - > n>m+2 > - m>n+2]. - - \ \ \ \ \ Avl (a, m) * a * Avl (a, n) * Num (k+1) - > Avl (a, k+1) - - \; - - let height = function - - \ \ \| Empty -\> 0 - - \ \ \| Node (_, _, _, k) -\> k - - \; - - let create = fun l x r -\> - - \ \ ematch height l, height r with - - \ \ \| i, j when j \= i -\> Node (l, x, r, i+1) - - \ \ \| i, j when i \= j -\> Node (l, x, r, j+1) - - - Result: - - <\code> - val height : >n, a. Avl (a, n) > - Num n - - val create : - - \ \ >k, n, a[k > n + 2 - > n > k + 2 > 0 - > k > 0 > n]. - - \ \ Avl (a, k) > a > Avl (a, n) - > >i[i=max (k + 1, n + 1)].Avl (a, - i) - - |<\hidden> - > - - : - - <\code> - datatype Avl : type * num - - datacons Empty : >a. Avl (a, 0) - - datacons Node : - - \ \ >a,k,m,n [k=max(m,n) > - 0>m > 0>n - > n>m+2 > - m>n+2]. - - \ \ \ \ \ Avl (a, m) * a * Avl (a, n) * Num (k+1) - > Avl (a, k+1) - - \; - - let rec min_binding = function - - \ \ \| Empty -\> assert false - - \ \ \| Node (Empty, x, r, _) -\> x - - \ \ \| Node ((Node (_,_,_,_) as l), x, r, _) -\> min_binding l - - - : - - <\code> - # invargent slide11.gadt -inform - - val min_binding : >n, a[1 > n]. Avl - (a, n) > a - - |<\hidden> - - - : compare two values of types as encoded - - <\small> - <\code> - datatype Ty : type - - datatype List : type - - datacons Zero : Int - - datacons Nil : >a. List a - - datacons TInt : Ty Int - - datacons TPair : >a, b. Ty a * Ty b - > Ty (a, b) - - datacons TList : >a. Ty a > - Ty (List a) - - external let eq_int : Int > Int - > Bool = "(=)" - - external let b_and : Bool > Bool - > Bool = "(&&)" - - external let b_not : Bool > Bool = "not" - - external forall2 : >a, b. (a > b - > Bool) > List a - > List b > Bool = "forall2" - - \; - - let rec equal1 = function - - \ \ \| TInt, TInt -\> fun x y -\> eq_int x y - - \ \ \| TPair (t1, t2), TPair (u1, u2) -\> \ - - \ \ \ \ (fun (x1, x2) (y1, y2) -\> - - \ \ \ \ \ \ \ \ b_and (equal1 (t1, u1) x1 y1) - - \ \ \ \ \ \ \ \ \ \ \ \ \ \ (equal1 (t2, u2) x2 y2)) - - \ \ \| TList t, TList u -\> forall2 (equal1 (t, u)) - - \ \ \| _ -\> fun _ _ -\> False - - - - Result: >a, b. (Ty a, Ty b) - > a > a > - Bool> - - <\exercise> - Find remaining three maximally general types of . - - |<\hidden> - > - - : - - <\code> - |]>> - - \; - - let rec equal = function - - \ \ \| TInt, TInt -\> fun x y -\> eq_int x y - - \ \ \| TPair (t1, t2), TPair (u1, u2) -\> \ - - \ \ \ \ (fun (x1, x2) (y1, y2) -\> - - \ \ \ \ \ \ \ \ b_and (equal (t1, u1) x1 y1) - - \ \ \ \ \ \ \ \ \ \ \ \ \ \ (equal (t2, u2) x2 y2)) - - \ \ \| TList t, TList u -\> forall2 (equal (t, u)) - - \ \ \| _ -\> fun _ _ -\> False - - \ \ \| TInt, TList l -\> (function Nil -\> assert false) - - \ \ \| TList l, TInt -\> (fun _ -\> function Nil -\> assert false) - - - Result: - - <\code> - val equal : >a, b. (Ty a, Ty b) > a - > b > Bool - - |<\hidden> - Clause> - - : - - <\code> - |]>> - - let rec equal = function - - \ \ \| TInt, TInt -\> fun x y -\> eq_int x y - - \ \ \| TPair (t1, t2), TPair (u1, u2) -\> \ - - \ \ \ \ (fun (x1, x2) (y1, y2) -\> - - \ \ \ \ \ \ \ \ b_and (equal (t1, u1) x1 y1) - - \ \ \ \ \ \ \ \ \ \ \ \ \ \ (equal (t2, u2) x2 y2)) - - \ \ \| TList t, TList u -\> forall2 (equal (t, u)) - - \ \ \| _ -\> fun _ _ -\> False - - test b_not (equal (TInt, TList TInt) zero Nil) - - - OCaml code generated -- : - - <\code> - |]>> - - let rec equal : type a b . ((a ty * b ty) -\> a -\> b -\> bool) = - - \ \ (function (TInt, TInt) -\> (fun x y -\> eq_int x y) - - \ \ \ \ \| (TPair (t1, t2), TPair (u1, u2)) -\> - - \ \ \ \ \ \ \ \ (fun ((x1, x2)) ((y1, y2)) -\> - - \ \ \ \ \ \ \ \ \ \ b_and (equal ((t1, u1)) x1 y1) (equal ((t2, u2)) x2 - y2)) - - \ \ \ \ \| (TList t, TList u) -\> forall2 (equal ((t, u))) - - \ \ \ \ \| _ -\> (fun _ _ -\> false)) - - let () = assert (b_not (equal ((TInt, TList TInt)) zero Nil)); () - - |<\hidden> - - - Chuan-kai Lin developed an efficient type inference algorithm for GADTs, - however in a type system restricted to so-called pointwise types. - - Toy example -- : - - <\code> - datatype Split : type * type - - datacons Whole : Split (Int, Int) - - datacons Parts : >a, b. Split ((Int, a), (b, Bool)) - - external let seven : Int = "7" - - external let three : Int = "3" - - \; - - let joint = function - - \ \ \| Whole -\> seven - - \ \ \| Parts -\> three, True - - - Needs non-default setting -- : - - <\code> - # invargent non_pointwise_split.gadt -inform -richer_answers - - val joint : >a. Split (a, a) > a - - - <\exercise> - Check that this is the correct type. - - |<\hidden> - - - A solution to at least one branch of implications, correspondingly of - pattern matching, must be implied by the conjunction of the premise and - the conclusion of the branch. I.e., some branch must be solvable without - arbitrary guessing. If solving a branch requires guessing, for some - ordering of branches, the solution to already solved branches must be a - good guess. - - : - - <\code> - datatype EquLR : type * type * type - - datacons EquL : >a, b. EquLR (a, a, b) - - datacons EquR : >a, b. EquLR (a, b, b) - - datatype Box : type - - datacons Cons : >a. a > Box a - - external let eq : >a. a > a - > Bool = "(=)" - - let vary = fun e y -\> - - \ \ match e with - - \ \ \| EquL, EquL -\> eq y "c" - - \ \ \| EquR, EquR -\> Cons (match y with True -\> 5 \| False -\> 7) - - - : - - <\code> - # invargent non_pointwise_vary.gadt -inform - - File "non_pointwise_vary.gadt", line 11, characters 18-60: - - No answer in type: term abduction failed - - - <\exercise> - Find a type or two for . Check that the type does not - meet the above requirement. - - |<\hidden> - > - - : - - <\code> - |]>> - - let rec add = fun x -\ efunction - - \ \ \| Empty -\ Node (Empty, x, Empty, 1) - - \ \ \| Node (l, y, r, h) -\ - - \ \ \ \ ematch compare x y, height l, height r with - - \ \ \ \ \| EQ, _, _ -\ Node (l, x, r, h) - - \ \ \ \ \| LT, hl, hr -\ - - \ \ \ \ \ \ let l' = add x l in - - \ \ \ \ \ \ (ematch height l' with - - \ \ \ \ \ \ \ \| hl' when hl' \= hr+2 -\ create l' y r - - \ \ \ \ \ \ \ \| hl' when hr+3 \= hl' -\ rotr (l', y, r)) - - \ \ \ \ \| GT, hl, hr -\ - - \ \ \ \ \ \ let r' = add x r in - - \ \ \ \ \ \ (ematch height r' with - - \ \ \ \ \ \ \ \| hr' when hr' \= hl+2 -\ create l y r' - - \ \ \ \ \ \ \ \| hr' when hl+3 \= hr' -\ rotl (l, y, r')) - - - Result: - - <\code> - val add : >a,n.a>Avl(a, - n)>>k[k > n+1 - > 1 > k > n > - k].Avl(a, k) - - |<\hidden> - > - - : - - <\code> - |]>> - - let rotr = efunction - - \ \ \ \ \| Empty, x, r -\ assert false - - \ \ \ \ \| Node (ll, lx, lr, hl), x, r -\ - - \ \ \ \ \ \ assert num 0 \= height r; \ - - \ \ \ \ \ \ assert type hl = height r + 3; - - \ \ \ \ \ \ (ematch height ll, height lr with - - \ \ \ \ \ \ \| m, n when n \= m -\ - - \ \ \ \ \ \ \ \ let r' = create lr x r in - - \ \ \ \ \ \ \ \ create ll lx r' - - \ \ \ \ \ \ \| m, n when m+1 \= n -\ - - \ \ \ \ \ \ \ \ (ematch lr with - - \ \ \ \ \ \ \ \ \| Empty -\ assert false - - \ \ \ \ \ \ \ \ \| Node (lrl, lrx, lrr, _) -\ - - \ \ \ \ \ \ \ \ \ \ let l' = create ll lx lrl in - - \ \ \ \ \ \ \ \ \ \ let r' = create lrr x r in - - \ \ \ \ \ \ \ \ \ \ create l' lrx r')) - - - Result: - - <\code> - val rotr : >a,n[0>n].(Avl(a,n+3),a,Avl(a,n))>>k[n+3>k>k>n+4].Avl(a,k) - - |<\hidden> - - - <\large> - <\theorem> - (expressions). - |\\ce:\|\>,\\ce:\>. - - - <\theorem> - (expressions). If - |)>=\> and - \\ce:\>, then there - exists an interpretation of predicate variables > such - that ,\\C\|\\ce:\|\>>. - - - |<\hidden> - - - <\itemize> - We use an extension of -- ``fully maximal'' is the restriction that we do not guess - facts not implied by premise and conclusion of a given implication. - - Without existential types, the problem in principle is caused by - the complexity of constraint abduction -- not known to be decidable. - Given a correct program with appropriate - clauses, and using an oracle for Simple Constraint Abduction, the - intended type scheme will ultimately be found. - - <\itemize> - This could be shown formally, but the proof is very tedious. - - - Without existential types, the problem in practice is that - although the restriction, when not imposed on all - branches but with accumulating the solution as discussed on slide 22, - seems sufficient for practical programs, fully maximal SCA is still - exponential in the size of input. - - With existential types, there are no guarantees. The intended - solution to the postconditions could be missed by the algorithm. - - <\itemize> - We have not yet found a definite, and practical, such - counterexample. - - - |<\hidden> - - - <\large> - |\>.A> is a - JCAQP>> answer (answer to a - .\\C|)>> - for model >) when: - - <\itemize> - is a conj. of atoms in ``solved form'', - - |\>#FV\C|)>|)>>, - - : \\\A\C|)>>, - - : \\|\>\.A>, - - : \\\|\>\|\>|)>.D\A>. - - - - <\ornamented> - - - |<\hidden> - - - <\large> - Answer |\>.A> to - SCAQP>> problem .D\C> - is when - - <\equation*> - \\|\>.D\A|)>\D\C. - - - - Nondeterministic algorithm for >: - - <\verbatim> - FMA(,): - - \ \ \ \ if C|)>> return > - - \ \ \ \ let be standard form of C> - - \ \ \ \ loop - - \ \ \ \ \ \ \ \ let > be > - - \ \ \ \ \ \ \ \ if A\\.A\D\C|)>> - return - - \ \ \ \ \ \ \ \ choose \> s.t. - D\C> - - - =\|S t|}>> - - > replaces terms at positions by a new - parameter. - |<\hidden> - - - <\itemize> - When solving multiple implications - \C|)>>, - keep a partial answer |\>.A>. - - To solve a particular implication - \C>, find - |\>.A> s.t. - |\>|\>.A\A> - is the SCAQP>> answer: - \|\>|\>.D\A\A|)>\D\C> - etc. - - <\itemize> - In the algorithm for > on previous slide, - the initial is still \C>, but - the implication checks are modified: we check - \A\D\C>, - A\D\C>. - - - In case of success, |\>.A=\|\>|\>.A\A>. - - A general way to deal with failure would be: try all permutations - ,\,i,\> - - In practice we need to give up sooner. - - <\itemize> - If branch \C> fails when - approached with partial answer |\>.A>, - \\>, restart from - \C> with - =\>. - - If branch \C> fails for - =\>, restart from the next unsolved branch (e.g. - \C>) with - =\> and put - \C> aside. - - Solve branches set aside after other branches. - - if solving an aside branch fails. - - - Backtracking: a discard list, aka. taboo list, of visited - answers. - - |<\hidden> - - - <\large> - To simplify the search in presence of a quantifier, we preprocess the - initial candidate by eliminating universally quantified variables: - - <\eqnarray*> - >,|\>,D,C|)>>||c\D\C,S=|\>\|\>|]>\|\>\\,\\D\|\>>|\>,\\\.S|\>\>|]>>|}>>>>> - - - - <\itemize> - We cannot use Herbrandization because it does not preserve - equivalence. - - <\itemize> - Herbrandization works for general abduction defined by logical - validity, but not for constraint abduction defined by validity in a - fixed model.\ - - - |<\shown> - - - <\itemize> - VincentSimonetFrancoisPottier. . , 29(1), JAN - 2007. - - MichaelMaherGeHuang. - . - IlianoCervesato, HelmutVeithAndreiVoronkov, - , 5330, - 421--435. Springer Berlin / Heidelberg, - 2008. - - M.Sulzmann, T.SchrijversP. - J.Stuckey. . - - Kenneth W.KnowlesCormacFlanagan. . , 4421, - 505--519. Springer, 2007. - - PeterBulychev, EgorKostylevVladimirZakharov. . AmirPnueli, IrinaVirbitskaiteAndreiVoronkov, - , - 5947, 413--423. Springer Berlin - / Heidelberg, 2010. - - KomeiFukuda, Thomas M.LieblingChristineLütolf. . . - - > - - - -> - -<\references> - <\collection> - > - > - - \ No newline at end of file diff --git a/doc/invargent-slides.pdf b/doc/invargent-slides.pdf deleted file mode 100644 index 184f03a6c3b744daab4fec38a011f4b2017172eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 176465 zcma&MQZ2y@k(u-PHJDWHX(u-OfIGYHY z7}*({@bW@CIXjvd*g(5yw`fWw;ff*k&V`_`!#f#`7EoS(Lk0#l4D9h9V2K9tq_ zJeWRt3jMlCPS(UN+V*+$eqX(wh}vAtvD268wbVa%p(7EqwGmiPTFO=)PqWBQZREF3 zUd2qJw7%qBb=}m}5ejZo(I-B*dbvcAF2DNs{ab@BQ{1dH7P;T5>YBmml6zGw-cMxd zLU@CqPi}U2d-x#~iPxm+>)H$>41BVEGxcK-g{hmqMQ@5$fH&&fwIX+JwtR#8#t(_~ zef#V|<~2WYrMIB00c~CP5yNqhqIH#f+k`R89-tvjY~H->-6Tj3rz8!@yHKc14+ZZn zF*{P8uMkfPmUFOqhKpek#OeC9u4}PpFAc$Vgf?K%N~n4_k9V;-gu3`x#p)%i7bn;oa+pm88ySy&=k4x4>LV2(bYJ>ORs( zn&8AbY~@L&l#H-8#pV5_E<(yBL@K#nmm=qY%LXY`g@lrTz~mY{<@M+v0zzT}C*<9SG6%J1oYjz6 z4;uov(AH1t8!^s^-o<;B75`_n&11#KyW`cr+`IDyF7)>TbaF(jO)Z4Gu?D>{@ znh6A@3!IB&E64oEpCpYmP-ZNR5`fDCd9#1Hv?(CuOB_gQ@zIqQ|Hobp>4&+;$m%Wa zWSq<-ZIWp)DwlS`X)m~35*D718wpVvkIx|O;i^Z#IBEA-{TS3Rf%-7h7!IXvN-4Tj zMPG~~e#-K!$;nVesJ!!I==3s(p3G#*67R0W>`xE9l{@RrJ}S;ww047`xD&)Mm_fHG zz1;(ora@9j4eTNH$aG^2cxofI@#E<+p~;AZ1N)7*-VH5spipw%;rcLKFAHbhat5ZG zoH#azmEqL0!=3?3O?43mtU``UlA!dlm$ZJI^pXhX8EuG@u#|x_E+G?KHxUwQX%(z4 z7;p(P^DYh~S&v}qr4${`yTQ)=lPCS8C@$R~0jj&)OIEZV^gibau8NvCB?d{DWicZ2lfNd^|V* zZTlxe&vUY@7lk^Ay5FU*lzm*VF5jQ*N7cJnr+!piX~k~y(RRDntD}#)ofU~&Fwgz; zbt&}UMB)D8{Qih!;;jHA-~?f6-cmw@X!7|2)L>;c#_@>k!yxul6Q^NQFqXp5O`9#h zxf7h8!Oi%`ejuVm@G(k>GxC&C%r!S}ioBYH!A5{WMWgG9Ew7k47#SQUu#uv=SYZWCt)hw7b|fzaX^(eM~+cms=A{#x5El0X@8-T6ywi6g%xEYoE$L7jH|yy zv5G5VI%ODKEh-j%z<~VPR__6|V3)masDz8Sn++DX{oYombSuZf3`mr|Ju6V-do=f6 zQ&6hVNfGLyl~R2+F@_9B8Ivz;BP5bPPAk~fvDveE(W=8dSrtA~8 z0+V4wU@FMu26&FUUaKr7u|5G_J>el5kP%8LV9p+;W^AIxb7QL)YCZK#tk6hYmrUWD_V867bC1s*{Ri1Qc=HbOH4<{2|VyxzNQ z5rE8FloiHnN1yp^Tfe%9XnRS2UKVh~C#FS`!|?Feli<|3-o#yURKZ+Tt(+K?Pm3ju z>TA|t5HTJ&?6hGUH4()W7bCm=>E=^EyeThzl$_|Nyp?pLdv8vSOedB-OSx~zYcth* zsVaXi=^jlA*8;E0sDI*KEN#XPF7Sj?*3SNOlAz;^Jr1+xYgeYQTZUFPp>c#Ps{~(* zCvrbv;Xm`q_?GBJ$XB$xK#?TFV#V?{6_|653;N>Yw*lMp$j#v)gn-E|q5nJYZZ@*#K_@ElgW$D{9}~1aYfX%Sb7wu1*>vMQN2gV-OgNED+i_g=Sme4Tio3+pK&4rQRf}sAIb8ASsA1-S)&j8NXGr?rdE!nQn7k0Ia_XKVa56(6Zj^2#Wu)tK zvHJQmm=P~OW|AXL3jvkiz(TXyY2{VPd(c8q#SL~E{3<=B<#*$JSe3cUaVedaiwLfN zgm;qw{qfxhQ_Do80n2r%?bJvV%q%E*szyoOJ@36U(Wghz_};8op|D!bl1Va6%B4>I z+q4pD=1k>cG){BugpC{Y+!T9nQ974wJmNteVNX?U{iLDLl7_NX$n~8ZG7qxXrs~A_ z31o9bY%*!-diiH8oWvM^<;tgxUfk0A)|1aH`lXW`f~*YoFF1m<*^Uv_q?M(a8-}6B z_W}mL1U)~*f(v-EjuOR+m~2aMJi48joVXVIG8}tNQCiYhjU|i9K!>qS+kx ziuKvbRRo_$lQpW;Tq7$#iL=k}66&;qb1MwNZ1?JAH<%VN>eTYBW6@DiT`07yRW2n< zSKtvzxl1+_>VJ)KIz;#xnWv^lB3elOjz6atf>=CtyUZV9>Y4>ikvduq(Z?$ThzD7x z%||Kx2&U5$W@-ZAdb?n&yxD~4VK@qtZq5kwWvU?3t@D!O1woonk~28i)a(s&9bU$< ziutrj;X=%ZtXa-`Nqa*oBT$#+eXphC=GPl?m=~zLJc7>|_C~=<4*XX`7<)~o5EC2R zLm{oqd6a8|nL04+-y12SUtQkx9o~?m`MIe1l6-N6RyQvMi`l$afLR=*tG0mOQeN)) zo@E-@c@KCf5uLut%UD7njTFMU#reT`3Ln~xu`iUfk|;tQ%Byu!xh;cxomJvPM6?H1 z!V^c-ls;Dj36f*qC*3rO^(lc6VD2wuCtMv$;~T3>!;cX%Z&TcAs9$2XsVJguwHmb_ zV@i_W^iqUyRT^8_P_?KutBBjxapv71zBf&dO|E(jnW){{rEw2rhy zYgvo?49w?38F4AfZg!w@MM9u?jBHY|Jc#}hTd7D+R2>#oIqfe+^Nyu&3J}jnBE)>T z%fOUGNm|g^u0bVe+k zX5wUn{+}7s|3)XK|0j03(a~zc6LSd#93POV_y%IQuanT5l{L1N-R+c8OakMCE0Hv) z-0O=oG#V!-2GeeY{Cm@=qF+k8xVX*eiK7!ur^;bAquZ%k^YQ8Vs2Xx63xoQ7`rY+& ze7YUGydQbWsKZV!^idYa`zO1|F_pfKd5(+akO`#F@(pC@Ov`aBO^Tw ziGEw8|@rDr`hy*rl)jeosOSD7BEifwyCT@|t({D?!+}(YD&Op4`{(PDa z@?n+4*DK?m>ftDrUgpnfTWZc`^gnZaIhA_;wVl1&7jDUHkI-wTx9Ztj-lHGSIEvah z{%IljS9c^a)wD0Y=j#f<0x`xwEu&x2a4cCO2tYPAG#fm*VQz;$QmzM)3s63-#+v`; zj9(dlDt@`Svps?f_Sbf=m`wj;Z!{|IGz@<% zDsPUjG+MTN0UJw)`Yot$abINgvKta+1|b@>3QSa3kT@sYRe7=mEZERcG)(0klm@&y z*!ahkY%vS&@r`8j!oj2s(uAU?uNFF-dmVm)hemxj$iH+MM?n1(^(YB2B4~!3W>=r#W4e?BRO) zSlGDzZHTzsc5-~&%P+5wJ#3NB!J+)1bgY+X7296SAdsaU%OmGUyz(j)lluzoaJMIO(|YFozm8qJ>FUFOLPyi#XqXJ*h5k)|eqV1DH>5iAH8sYXUIJL0JG zI^hm?fSHSVvPK(HA1%lbcrQ2jG{s?2xgBT9ZerzpUBKZx2}oelRJ>ax0MJlJgzAg~Nx!jwo>U?z`#P784ax|WW} zifmqm@$Z0T&o)Dff~Q~m7u1=bv9S8%G}=HvSG2!;AnLsVkMB%*H5~3McfFWnZMIpU z07U2Iqq!-9;S(uUx{H|NuTB$$m^(hEw#q2Mx<^}fzqhcCY;lPX5qWcb(lzKR^)Tx= z{=+mpbo=bJ>lchE`80FaQQG_6Z!~l~GF~(#Io3h8^>i!{;VLB$ z+q^c2=~&dWej@B)X%RTkx#uw%`_Y!lz)Y@^$4Nv_x;K$9bkGf8vocIn+~l6f4KT?Zsi_&E_J9I_!fzwJ_YXKOCAp3C-1>D49fMlyYKzC~A{h zz~7)tMQv6>Us2C`zmAI@qfQsMrIu1LISaCvpki^ZfOVWjHYB@%Xq{F+jrZmano}u? z^!%O5y>A?G)@gOO?CU`xPcENU)=WtOqsR{YYwAr&olzVm{q4Pmg zQl2tpmJiZ$$>CssDW&?BOIpFn;d95S$8=_|+@o!%xk>Iv!l9F`JPL*k0N{(wRt98_ zDPdBmK6L6iks))Uv>3vPj;bBpF_ajnv+6Pw1s$-a=5Od%KN1TkGFR%`i}B|HpfDi4 z2?EuW@3flqg8ltsGwkGxSmgX_%tYKvryr{!sT==Jj%UErSD#=k3tN)1gC3j@i?jTT zX^!9^?_QS3Savj`Gx_UJ8**DFovckVrm93nvI3ryERnj`E;|`q(&V!)9XbIpIl>6L zzibTqH@{cy3#OcwOeJbr_os^rIkST_6SAha^PZwEW1EqNMCSB(*3M}1RIaJ$flxP^ zZptd-&tN97d3cUSzCLrMsUudo5t7uRZ+34u9=}-A@mLDS&S|#Tk@L}E`2h!y$qhN( zXfa?ni&XOb+F#3t^-zQ|4@xqZf;gE5=no%2#kMcENLQcOBbOfyi+h?SaQ4D_wkiBs z&|n2NbY1fqsqAqWEfUPB0{8-Dpe!C0^O5<6_+T#p6J3ujQ3LopC-IS7Y{noEQK&o1 zghC(K5{m8@b&?VIbF%sw`yY$F;>QuFRvQ(eXgOIGpN8?!U zANGkylY3%>Q2HYq%pPe;Agx4;JG_X)bC`WO5Ztl|k^>hN0%MQp(>B>*ba}=y{v+(( z6*eB5C)5|9Vd%hRFj;qOo5&4Qo2KxMR&yL0SS=eNmK!UaRMg2(C%dCbve{!w*og3m zG!GFZp%#1(??Nx_6?>W^gcFCb78%x@+q{ol9KNF#`ta_`wW1aYp6+zjDhD3V38M=? zZ0mh*uS)sU$`YO;LCG!V!(0ry3|X{18X> z{P+7%Gx+6z_IzrM$nH`^3G9uoG^|o(!f>$T#SU<-mVaB52Ya?B^1`tel9)xc=dP3Z z7HWvhC2b9X=`-wJbrV6GlU_*?k^})5(M!@~v)LIuOy+NoVc5E_ofk)iOzF|rjp7m} zA^i$MIw|FYil1Jasa!@$-uW_e2=&?hwc|=dshbKr z%Ff31k&)JF!Pj!=FRs;p_xJ_41geV#Wgp39}IN(D^n=JiDPW9XVtF}irknL7uR*;;Vy?z zqBy%4*j%`}`>)Ymwt?-eIG3}iFF}!d{dR$A>Z;daK-yxLul>^Kdh?bw_r<>aGke;j zm$s-=IUt2a`ctWs0;n2XYxmL!W(O&kv}h`naz;;btt?ZT^x8crR$*iEm^i5%`PS61 zr%-CHV9F|qL{Ct?z=$m$2lQyD=pCu(q@pJNDFDWK&VahexlV|ipWPo^oJ@ySXDJo) zzaeYQcPg+wB?mZFRqj%^e-g~M%4kkexj5os0h)@p+b-qa23I=g&UU+>-+65uFlU5% zVh%3nxqH3~v|Sa!CzTAe4*EK8EteP zxO8FsmR$GKlxT-zA=~&&V!J=;0LCN{B$uK;|4FD_o}IYr6Bor-BV< z542ek4MSJ{G=L4)D$-VgphNWuo*SApNK~Mdv|r7KqP6zs6?>>UC|9gzI4HNYVFJglIN0rUV!CJfC(-(tYH=v7O9{x(iz*Zo^AJ&Ipxq< ziA^#E+8(CG?o>!-rb_)x_|z8R4WdIsjHaxHjmDxfmGR9ckR@Ek{Q|^K0~|k(sAhG# z(Gf-ZWEc2|d_Vr`era^npwWxQKmDh4o}dXY2GgzJL`mlF{9uSXVK5h34qMn!#aT3u z;*Y{#{7E9YwQeCLz>G{3XG(h6QTU(x=#luBzf_?KCD}=PR+w#gm>~%>uf>iWYd3FUt|5qOqcx?7Njke4=Sq&*bG`)LqoHIFt+00nU@Y;N%*eLZq?OLg3 z-z5G87gEbRjZq4rCLH@A=|My7>C5u;3YoHM<^G=We|8A3KPDPPI}}tsx462>#-@m> zz#1+=44{qBLGx8Y#gW%^*iNV}kXb7bLVII`DqDTZyb1zFF>Gg$kfSTJFw~ZuUWI2O zjQfNa_3HiNTNezmBiJJb8Oa4+>eb1u;OH=43b|!mwP7QfX{8P1b*G!jI2)Pb)d@L% zA)#jlDB|9Snd;RtD6c88-YADJ3F_QgRl^D~Y-$m5&-UsTIDG=y)~`R<$WoNa`QgKk zeL-y_2X0!-?Ydzq^Ec}k(C64OT$- zj2FFf*U-jvy?rp?3Cr=!ym7k!I|)w zmEtRnb5qP-0L1s-UuMOoPs#g7oGAV%5Dv^E*Kz6nH=uL^C({NI`biF zn)_mdiw(ZE82y;!+!H`U!vO@GtxqF?dhJgR+4_PTXCAnUvarYSIYmPjs`$H+>|4*i ztZV3gXcGQb6b2S4;@MBz7f@1Jw$dQ$ziAJLMa4YH zKHB%(b>51RF0ZiGouK`Vf9|UPsk}s^&o${`u+2>@W`km-2Z&n%&j-`5el1b)D`io6 zizDLLJCcLV2@lSjMt`QY43RC5(y45WH>!Z^WeiCszai9MSoJpp7 zkHJF62azpjELp52N*(W8b(OKU0W5_Fl@U#sPGFb9qWub8Z_Mn>nt;Owz!^=K%j&>3 z#8^zH7}%$T3_u8IM3uKYkBMyr%ps;18Y+v1#Q>|_-&Eiu(nYvJ-)O&G2B7`fE{0GX z-7J96#YQRh1k#qypa2$Xxb9YhA|wbJ!_ljS^By<+y`cMZ_Kn zxT1-v(6qCjkDj#s;k~~U^1_=hR8!BiteN2tQE}isL+}W_q4XQUt1PpT{E-7)X*3?x zNKoJ@14>uXEFua4`qkVy>Q6Pfhe7<^h6yP#OGdL86KdEw06*QXKk z4c)b9=~0_oDMn)?OP?;!2QuO4Uy{bVvCBV^=dJauyiDDElmxR9|G^`!kRCOQlvBH0 z1v;Ae9q_DZ;aTc1O<@=nFa)gH;~cn>Q-pe$TGabfjj)5o?~^~;!U0|2u%(4HtzyGG zU$MF>TQ8_CHlyX>w>ZwZ*=$?Qb!Uo?r}+|>mOD>3Ig;gM=Y8qt&pOI*y^-D~CiSh+ z3C<&R6h~rss%b@t3>P|Pt{jR57ajpIYY@Pc=qZ;C9tQ|(QiG~!b(x~R3vjYzx zq6&tUw~Lblwy9487pW-{{&HD@j&;G>6eg_zU6XaPQH3-%MitOB;INNRZO>UHm$nPv z`2|g04~_=WdAw2&-J23ZC*6b2&06@&X-t=c_`liBz$j2Llnx!iHofsWsWQFuxhe!( ziHf<-Eln#k5>9dvJ*9w|3GD=*)Kc%1kj&C-cIo${BZ)=k0xnP9%15Gsh@qXn*7m zT6_6~wg^#sz1K&UHi1>jlbxqB0~4qOsVvkRfDYz_?JY!UKa|CtMMXnU1n48U=_8nY zMv2uh29t&m&kDT#t^1XItW;FFuy%V_Me)pd+_@GK73kEoRj2NXa}Hd#>tF{iBsuAi za7V$*nU*TnbO)npW0|ShR^$>E=xC^%F1u|N#8f{LonY&X6{uzAbqSJvEB8Z^HxIeL z@A63nmpw$h$%lHp-5~Fhw@E)y+{sN3&;qsJz0G;n&g~#!Xh?tqL>=ADKt`l}VduG9 z|D4j?=hRWyk($xt}Y|KaHWTk!zw*<0=~{qXXQxOx9=4rh&W5 znkD&@q(jJ#EnBdote*OEt6~khYsRM#9NW)mj~8+r4nr!UsKn z*assJfO1BCY-gNDrm0clJ}JS;hvj5IU8=pCZL`&CfGRaI&Ss}F7n1feo`La}gO}Q7 za07ovR)^tEOTl`}Ll0Qv-ye|~Z!;>_%y-xKhsgV?P+h&=Hy2BM#zRCz>$(DqzPP)7 ztXmO(y_wNA%_rAkVrxq~Tr<@|>MHVay>02YL$h_>@#g9XcPgnO=YD1f?_528vtu zxW82almZ5s9?XLFSg_i&wUn%$aQ%v_w`@RCdbrdILn888EUZzl7ixTcqW_}bvJ~UR z`n3LKny+5ogOm?bVVE4X*Skx!(Cb<%fM4w?JTOh^!Pebw9iDjFa-Z`bMWx-k(PePx zxyQnS#zkL!;by!UDY8JM%Aru0pe)8N(g+;8pN+LVpMTT*2dB4vN1@`s<5HB?=x5Yd zXF!Su1!!ze0%h!2XhtdFQ{>Qz1kPK7G9isK_D?7MNhpo7F&(JHTvf7W1QPVbkL z^ppaUxc(z*QdZup2x2mwv&?)@QBRCE|7fpV9q2eYs+7qj_5PfwfFtWS>s|Ue-Yt#O zs|bh3J;_`bIyvv)DWqs8Rrjwz*r=uLq*VxYjd;CBS57zA;Fc!I61Ce7bc|ZglWjI?~66~o6PNa4olbSQ__61ghdPj;>&jT z)ddkR+u0j#fA8~QOm$3ch)l6CC}GoZRo??)ogv=@LESnC`?SDg6OP3qBXc|6nNvnH z$`C^xd>i`mAO7N3HJRv=X$RX*?E+>fZ$0ezM+9hsgb=ll{`Yulk9Gq>HBg-Tn_G$(f#w>{Hb|zp0W^hGK5| zRc?xMOLcX9MhFWH|6(E=(6oqXb8z{~2Kn)OA*-GHDx1|GPFJmtn{r+?pZpPl2Q?RWF-gd5{fq zEqrGe6fpzkNxF!UO|oAnseyM$WA(Ieb03np-YODYf{m;XCwPX6D*eb`zQ4?A(`^|` zYFV5vc!^|*_zTv4;Ho8`{Mx(D`=>$km=+r9+H>Hx{(ILm?lekjJZO3l1Q;o~v={j~ z_H$%Z?HrQFlI8ju&g?ou$EO-E2dSITN|9ytGQFjPVw>@Cn6C<+&hcv+2WG_S$PY34 zG>ilS&mE22ylvc6RhY^k_rhPend#_&pz)d04?})Sp8Lf}-S}?58ZcL>)CTwp!d<{y zln_g@pZ(;1T=;0RYz5HxmohSm+Qq_DdS0QerMeQn8$@FeK?B@5lp3w%zrtk$Y9}d~*^c zl%KET*u0W0b(kIeqqALY;V3_TpsS(ds3qOjaMfi6oeM&$Om|kkd0T{@jC^rcZTAcdHYG^m8{)+zCgZ+w>TrxJ)NoMWU zqi}`0q}!EnMGI72Hbo0Qt2LK`aCPl=82eXsHn2i z=(0h>`g9Z~zC4i?u~8UG)K9>TS1~vhF(y;JoiI%)sT$e}`XL%=>Ku=3KR)9JD;+v; zlTMZ{Fq)Tv2aI)hIb0nOecBP#ZZ@zy z>FHR$7GDe$iKB|=;RW0t=&JY_(lYNxtw#ltFC|njNJiv6QobY>7tpNgpv0(?Ce~F- z$RkP6fPl#qnpn{jRe?|g02ulJsLl>!ZF`iz)K)O;I8Q~zhX4&8Dcze0Gg3{)*KxT| z!;OwtWhHRlhB5}{L3#F0 zmg-1;g*rCjfuzoxO_a;ou_kx9Mu zvajN2)Ku4_GWZ2EbzpKFUdGE=ueHWFfj3jWS+E`tY%$fZi{wDSdVriH)}Y7Q=L{{9#Xt=)atpVy?x3ohcIw_&z1q z^m^#dD8F4jrI&4E{q`Nw+QR2A3Ep%CjwEKgwH+AK0m@t--94PwIb1p@nJ%~UeDJyI z3#22b#Y^@>DE#`{rHAbJ;aRJ8%1fT&#N$O9vW--PQO$>xrvVrwH7L)0DH!_<5;O+u zJFI4lVEXa6%Z=pI$oF-Ffo^%KG}l;rmWVYNV~?rX_grt`hlAoSDmHqL(aN)Ji_Ew4 z)9oc|U;06N)){}u@;{a)qh9b0N5n@Rcet1>M$SV89^NG5r0J2h7cH*?u1e%ZU+KF$ z&`WiiO&i0!M<>`B*DD>CBc^JP`Z?rbs^6p{J!<8UCyEYcbW8Aq2xT~_hiumux+JzG zR-wP&d^j?ofd3_S{I{|3UuFjfD?9W5H9J_D{zv!t|Dav3 zfkQBIcsOl9!e;yAorw0J6tuRusQr3yyfM4fysbD{-N~Mk>z0jMoS7*~puDRpc3jtW z#|!Z$$Vb4>g_Z-{?pryU z*jgQZr%|geTxwAP-|LtqBJKh)w+@`5C0$SPnXE(DY<-_v&_Sp$saGfVyn{_}j&P1? zn_AGJs^^h}s(ndHeJD>Ekxg-lF?}FN#Xup#RlHPHe`8dA$l0j*DloTF7(iC{R+^wd$Qv*kZA+Z;3m{Ko%SC@03^7Cd+Cys)WRT* zx0#5R);<{gCs*MaYGyOyRY7q2E9wwrp4UCOzbmx7yi z%M$CVr~8Me-pJlZLDTG`cu-;`)Mu21Af<%->)FmtPIbPULRB&CIAtBEkcetK*7__~ zg>+LUEEKeNoPS$@vcBYo+|cYffCT5cu+W6|>nI!?+M4WOF!uXeR7k<$+}Ctt%reHb0l+Yz+uyID;DT*l+^|A`p8t{^LG zO1W;v9cN+KS*$zfiTe!SF zG>60V&h7;m^OMieJtqp;pHZ$obDdP1DlFOf0F-%ch*!iS-PILQDhK zQCs`9f{=>hrB@~K{496p8@MMSVOEB?PJPW}IaTKky4BuF^k2|WZ5PKVX>&ZvRnq$2lDok*=y?dn^T?(7&xI7reB%jZf({g6hU`OY^|o5@4q$L=0yc+LX}o zFOd)HJRp|(W=h3Fc$tPY{_VHLh5g=UWi>d;mS?jB3h~h*W?F4;L@)@6s4+0Iqukx3 zHx~DX-IGdCt4RH9s+`TWY2Qu-EUgLV zCfmP*0&g7z-hkhwRm}K9o5;KTQpCU9@(H;*S7TNE(3e3e&i1e<4!|>6-@!Fc&RM)O zkVCK|yG&Bk4uW9Omdkx~!RV&!vs;Ec9|q$heHGvSI-=#A3G>u6a@f6FPA=8785=zA zvTP=A(-}ZdZTIAkU)%?kv1knE6D;yn1C zP7Dqi%X0ZO^2G(Ekr)6{+z0JpIB*0elgwCukH_So?NuOi*$=$6P32O(6bSf(d#1C> zT|9mLtb9sRJrUTFH?H%VS|Z{i8U0c=WUzFnk?Y82)wG6veqJfr%|h`g-JbiLU|Py~ z+AnJEx{g!oS)mOzvv()Y+-Jm1riSj{At3Y6zW!Iy{C9!;SJ5!CvT*$0qG9{r3L)G7 zlR~)jpQ70oMm)8i-R4NQ7w1mQs=ah8#03H`4uP3~ga@d78ZJzmy0Jms-&H&oZN08H zH60X$OBY|*sHyp>=<#SfDN#X{9Ll}_ zjQ+H9{S~Ul(gX?3$82Pk7+y9L5P9?NY!phMQ9zVF%xV!W7ca479`8 znZ+j<3`FTM9BLT$Uu@z1>aLW?0lOMO>D>)tFJ%SVmWK(14)#A$KNVTi3> zS;XutNBIc}feRdw<&X|eGCtBQn|QA&ej=S8S=CH^W>SRJmtcylPk)6~rWoMHIMwIA z$RaL6i7QKuy?1v-wzwel8INZWKJVvd4F*GXEwLg+%c?-cn|&W<{b4rQk?O_vyuwU-5)j*o4v{`lkZ5E@ zXNtsQZ{}S-YrF@SRbP@KPETH0b46+Z>UVFQDerG%cmn3J=pkPG7@Nfq#Sl~roi5F) zO4o9BHF>EdzvueO3h^z*fW^^u;DroH+!0WVMr4q{s;h%P$5n~f2rw1gbgB({*ytet z$G$seb_X>X_E@xRvqQi}+M9$6cLP5{(0NrVnKDOKt+gHbd$YyIz`l1SS4Ci;E=TEF zga>_QzVhLd&*>63oGm%<==y*uhuCMp+}IkQve|QfV2=zC?s~l&$bP?O-gk$-b>p** z*1fbm9PsrYwAd0Y7#xcSrIrtyGz*~_fZ5lMF}usNexq5Wgfj#>%JAoZu%X7e;NuQa zhWrZ{FQ0g`;@w(7#z%{c^jadFe0d&k0sDED)`*(Wo~dm3w;c;4yRD~wL+A>lIwLm# zX>ZXd5j+0PDJ?(MzJg$BecpiVK=MrH=I!uDFH-I*<$f$w;tuhamncsK`UW-syr<~ZUi&tgF7Ug zGB`|Qk2|oGzhDDmw7+S@Dz&c01lZVq9Kg4|0`syiFLm2jNk&jv&1AP8W>NfYA0nw^ z3eXQiy=MLfy8=ibEj)7ACSEfC_cVJUH?O|+il?Cr5@dE4#zoEOQs~reA z@2AU~+nLzAn#4v23K^%T#&@qL&ob?0y`GFzXcLfv%;T+KZ@_8%us4tb>(^*!7}7Y++YBW;X>}Ucj+GEx(tq zia=oIdahnIHS+>XUMwKMI-hs8cfrJpJHAUdz#%S+a>eFba$P-0x)2!Qs?bI;&$T{M zX)FmVo!_Y#^Qs<@0Qlfn(f8NPGRQ&BtzM}#K~1~srJ*sBaMlWvNkr<W^VPlyns%`EOZ4ZTRuO<8Z{F6 zgjcJIsXspx#GP1g-}P%aNb&LwL01n5Vs+^r!=A2(Q7EN07dRMEOt3?wTW1d%oB73` z!)UdV5CeFKLqCQFV3UGTTqLz~z9Y3o$pe)a%82ev z^u~lb_aNZ(8^>OnDc&ie@nQG9(L!W-_gcIK!DkBOpTdXyWuL=c(v%7oI!8p|@tv<{ zw2buH{t;YRY5PazRd@?zpvEheBg55D=46**#?*ldcHZ63#iAhP8!xTeIj}$zhjkmz z=!jKxvBGQ#zPmD1>-H{!MuW9ZJ6Gj`=(fBHww>6RR{5XD zMLBB4xB26AGcMf=v9Av+w@Xe!nQb7LSIsaW(s84Gr|yE<=6gT<+X;7tr~9MRNrXn{ z4YDolcs6Plc(DirYCLO;>f}=SEOhH!@~N7eKoX0fk`YZ4ywThFz-p`+Q_`<+a_5o+<7l^jv4)@X$dTp^j@yuJ zpU!{p$*(StHCQnOno;xmAP*kp~7>o?PX+%e|+|zP|pIMZ>2+zI!^>r1*ASe~4JJr2_n&2@1|x z`mWe7sPEF51LxI9Z`|J)^QL`V^j*N~-Hcr3BTA78?>i0%)+~>f@4lT0nS8uA8nrLQ zWHOHv&NNffE`Nx;j!abgHHHkxDSU*Yk++meOMdNylkjIY4y;hjY9hHB-CI?fX^~x7 z@@mj_*^SLLk!+K2-PB7*^DLA8WS>Q<$baf>g*8{rtt45I%Addsrg|r7jpi!7E}OoD zMs?`viiUBm()ilN95LbeR%Al7r_%~nvW1p0X{NM_GfG%DPPvWWYUgKc&-L13IjtGf zrJ`H1EQ#(ZLv=nwOS^N9R0JtJ&6#P9$7dI;Nx=H~&0dMr7i2xO(wv7CgcBgV$%`I& z<}G@+W(CB{@HDX1{*vqR^EAQNXp^E0Z_*jNSH&kCjFVnMij6U2bV= z*cQm2&yB*;iB(yXafmtKCB}$0e)OLJ*{bZupX?c%OvW{<;wU<)%uUt6z_Sidfb;cu z5-_=5=*Ykmj8L%6fx4PX+Rto^QW*9Iv~KswNm*$DePU|vfo!$s1b=$<-^7@X7s90r zuQX}$b_kjfaJ3Z)AfeubZd5Wd;xwQM_{%Fe2tfPnXS5)SzmT)^-UnnBl-}K_LSHp| zH1}48^Q8D6p4L`|6#ssb#S3C__wh>vTGWntWd>{sS;gc6vhuij@;e}Q?fFxLiq8Dj z=+sFlkLNbCFG%C7-w@Y7^TEeE0M^UaJteA^Y-*3%&Yb^;v2%zLY+bT&+O}=mwr$(C zZD&^6wr$(CS!tt^UGMek?!oQBo1XQL&))IHj)+k?O+Lqk6AiUz(dKJyurkBY$)s>o z4Jxx8gI{0OhgXkfPd{UkFE6_5lOg+9N{Dnmg=9%IzCO@=F z>J%?|l2)W~8X0F>MY;Z4tMhJd8gr2q@0@=g}JdLqJvT?i&pz5aiDxZO>!ozwZ8HeBzq+5P!`Lyc zwOHROH?K&jH~z&8*bI<7Ge2z#@So|W>NM;K%ec+b<$aRAKHqj~vJ}mSJ1S~HBfh8f z2V8&|xr*{63mgu_K5b9i$bth8iJ$Xoe(8tfB3uQA0`kv_D5dhJo2Y%%w^;>`=yR0x zbsX~Fi85K+Da``y;;AK6VsI50_&@uvljD9l=W!LN<_@ElSC+2zJe!3vk-C2Ri%VLG z@Zu}F{NMKtMU1{^?M?*2A{As|nKBmzm|eDv%s6m45+N^CVStppckC4&k(Is+d9L?@ zbK;5&&89Q=RKHRQGEfZK zECx#mG~GU;hfTjf8*{5=_UkhsM*gx3^}5tI8@FerklmXLQZ!#JupiivQLaonL@mP} zbsv5RU#)YSxaXay_;6H-J&@|pJFP}^SlMV!1KsEFjW_HM2f=hBN<9zI5UzX7!-srq zejhg7o(p~NVMjbZ+*dEWCmTO6=GgaIe|bL6#(`UXx!b*$?0K+vhtqSX(oZ_=N^%98 z<3u-p$>y?m4Ir21AmeqOxmUM@3 zXVm_I4(F_E@k8DwW?bd`!=K>vA^#u1@n>JPe|Wcld$NCdHzsCI&j0al9RD(E|N8iUB$tEb zKOwmzn$q?-V~DGsxCG=M#X}?=(^|Q1efUhr!B+$UxF8Xt1mK#ICcPrj(vrm|<3GEq zykFVpJGhHe7$p6tGOq5tz3-KsXS(8$mlWS2ePdZGXL}hppJvZ?p+D4OmSwalJI|J{ zbvITcT%R3$@%EgFZ@I|ONL5Yp>PJ>lOl2a;M=nIkYMyOIenRNqIQE@o;`u?>>11*i z8@M?GNY&W;=-*O>>CU)maT*?Nn!LC1tH2hw6zsMBEqE}9GENJ5wcvy(h-!f$DZ@@x zANs4oWSQ2q?`@ZX+J!8viYiK5{Myb$A*;10J(|iyIAw9q{0C-2igsTt2y96ie!UfvFk-97E#DZspPtfkQKhDH8iwml7o2-xFtcI>%sY4RUW>%U>zI! z@M^w0g03;$SB=K2F~JWe;QX0(-O3Ao1Hr+8eu(>TJ`+SD%5^OOsErIF7EmrN1Vuj^ z&>kd1F_;--2cH-I0Ijf1OJJtXpCD}`Qf0?V^Ju_FQIMCz4W?AeAZSATpofy0N3|sb z8{(1rx-{pL(O46}#b}hENMQlpqwE9SxF$|uNmT;^G^8FPbk-*M^RzTAjv|y~Gb$E@ zmm{>r-M0!UDbc-9sazA#bi0(QK^+MoC=&tHHv)!Di2CbXP1iZfnpeDp!O1WKQSv&> z;|Cv^_KITC(X7$#F-l{Y(Z%Kpqc9Mj@>LJbjfTK4y%;KMNg=E82|dQ3RaYcL80E4jU+v7jQ+l2mSQ;4ifc=NO79SS``DG{rW4sB^$L=g&AQJ% zT+&+e@7wKo=|=%`13)jx$$(2;V0v8WG}i)4trrjkliE!#ux@t*>Exq4j z^dq9Lv9?q${EW13s&Q$>yT@3@<6ASbzBa!92&%PF->Fd;4*|)X?i7q^KjU>!!!n%3vi#%i`*Z}85A&GS2vpQm zsy@@5WUZ`LH(arV2Ar zL5ln3QALBY(9e4AwLVN&+6j@`%q8$++zr{<>Ypc;#esFUMvJ|A%<#%#W1{;*hQGf{ z+~H(ba!t?6s#GcJAB4U#-zi|=he6+;;(P-7HsKL$S1ke7-wD5#;0Pca2p%!|(N1If zC7suutcm{DOh2^wz`!F{ds6aY@a+;4d4{STnXv5kdl}v>c?iS7=<`L-zMJ}38@#dc zg21K-xK#W$=(h6DtJ`EJ061fYP4woO#2OtKrEQeK3`mcdEa;y)@A37>3>y<<93kX7 zKUd9lLv}F$f(w%j7s`=(X4w`23|mSM8Y(wwF|)+bDI@Hqe;f-vqPZi3)-estss@ga zQ_^HsfH8wKFNTQvqnYKjTEM4oGbIH#u}TRHet-8|SRQb`kAwAFf^o_tV2M_n>UV)P z5d=qBYMBZ%4z@LaGX`p2^eAdGz@Gxbs=KC?t4MxphFT5(TxE_@BxXm@DW2I;dj+l5 zbU>ej%4oMdkJV;mdI>eLGdwj*3^asxMW& zJbtnZflNyRPh0XmXShSDieUV_(}x!_ zcz%;5ef3g!CCKR|L8Goq&Sxg21 zO(*JKH_La|F5t@yO&6Ev*2im))%})BK~0**N1B{H^q<@&3-sWlibAL#i`bEdx zb2PS|_}hZqbMVX@a%Zi~E$E82?5Nzu({+x^$d_6W%0cfFjMkpMPi*`eYQWUd7COg$ z)XF_lQz*UeE-AfWaPZ1B?;orC+PkH9(QxHfU_}>z!f5)+P5NEOm4!;(OZD#OV<2Yn5nM#X~hQMe36u-UN z&YU#MfU7}znwaa9u?pZ$#Lt~NBkZobkaX$Yj@5nP9)5r}S@XF+KF6b)H{D0s5JidM zW`!Ro$4ItAX&;W*Our?<*8&3+Sq+;49_soxl@Dq9LG2F~KIWR*x%!m;0zpl=s9s^s zl<+n#KckG-nT>zc7Ph&-$9FexE(qXA4ceEcHm_AYepbJz&a)0=A>q}JNyi(l=nFr{ zi~|`gI-v)GpYgIErkIFiP;;wTzvq)7$SEf~69yhJfy@sZ1oQzwVTY0wS&E3Wbjf36bZrjZ!XRms~GT1vfdEu zePjhVlC9!YC$=01@gue+N(HWE=EyK#t19}BR+*4ji<#<_r<3{AKKpnC{F(!X@Gx^A zlZRQDx?QkY0{m>DA(G)#qF zj1aT89^#VVb+2?AM5Sl{B4ZfKYU>G@7N+?-sM#e_wT ztNH99%bV1qBw1u}2dI9Ec~EWcgX2a zyFV@sJ}&y`dn)#HnbBvi_mv%QA$DBmFCT>UeS^{&G;-h8p7s%HM`9T*)0MF8`;#=-m;*1v|0Bs zK)?f0j0fKSKzsN*<};nqW@865l z`dg5EYzi<=Qunr;g)_L`W=t6#Je)T6ZDM4GA{7W#;e#WN-Ssw@=o3SvkA{u|qm<3- zT|r_{-G!!Ur*=o&6}l4kl&!I`f=6vvW4iMgbIDt{EOaqRtBqm1D8t94_1xVk?L6U| zM0!$OX5^v;Is)$C=}N5*Cg2{FCi&DbG3EuTOh>3?x`l$TR5=cYU}I#n@lnwVAClZn zdvL2+UO?YfHjLJu;7zvAXjpBJ+-+n#E37@d>KiT+Y$TP zJ9l-dS%6@LwNft+G|$1~CERuUyDLF>ZL4i%pCM1|&pX)5h6hTcC#H*k|1>Nddc4ev zoA9%u#mT;ul^$qnlXl^Amj{fFom{~; z*BrI+jDt@^(}@qh>C^PTQL9+0P6hbEM4!XeP4HGJIdPqU< z@)3VKh3Si9yLaOBvzDF)sUh%}@MtWd))Ke&n47G+(Ie&r#}8m_x|1NVP|IiA7H@wPhi0L z9|41F9m#m?G1S$Ji51S1`8ax6aGSMW2}QWb8~`Z;l0^bO3ML{863s9UtR zmBp5NuLBrL0s#h~((vk&nmzC5ioe^k_AUEze@V*g(iWXdBAA-`Zb$h&5^sT=k9mu8DAHY1!rfUD*9Y?@n%eUQ# z0fwUYyfzaAC4`#yw!0RbWTe5^5c67%AB!ol*_1{Gmol)CBCe+>5n`IPdZ3u ztg-vL!^ zj1DfMQsW$FN^BOLOV~Cq`Zc3*685(X3jLjNY%}=VU!~4AnIE-?wnp({{I;Vl9{hYF zC|TiBdZM+0svdS~#$&Xw8@PL&4N4(uZ6Q|QCzs^^xyor3?Cd55y36NySo=*otud*! zeJRL6CUx`LA6uZ5-p_NEgBij!J(UKVjJQh(7)F2r5*a85gD(3Zx*iTL>qXYuB-5`S z2!3`S1?oK-qY;f3OPfkPrss>WW?&>j~Jk&*#W__byHHO114Yb*pgZt#O zH3LbiFxA=Rsb`$d3c#{SneLnwJqrfwoen z#ili*AqB>f%fgZ;KZsdL9ZUwNlMGb-CTLtH;DAq&#kM&^)TGnMIji`)4)OrM%>YLR zo92E(kXkNpS@hMwH;@()H(Ja%0 zIeD+E_`30W>nv6@C*__VmutiEFKL5y87TDr`ur$0J=X*jv?Bh!P67fM<`6~h^p)n} zi>&NB2X(GdfOp5*fX}-*0=l4~;sao=dp^H>4AFOedpz0I^b?hty>UR-LSCRQsz=~5 zrx6-!Fu;>pgJOGOeYSVEM!8#?2mhUyEF#(3q5)Rx?L-+6T-Gy zg$ZB*$VyKK1AH5>Ec7ILt>T^V3H57w9{2(MX*4m}2)D7(%hsb+xucA1$4p>xco!dd z$~rMRS$i{HARlp)2Ge_uV+KtSKCH3A3Li7|>3dXlsaTD27XdN8hma2cFkS9RL56*p z2C6O{xC%smY5p?ctpd_jO(DHrzKi7>J7=>?IoTrn+|4qZyfUS;cNt$PnHuXHA__Ch z>%p1^K)jes&VD<{36t&xN%ONM9V~Dj+#Fx1WA&k~T)CF4)CT1ycFvZ$_z-%pF1c}L z+c#*el$16q_1E@>`z1jn!x35=|9ig2@~D;fkolF?S(EqJEg86pB4%GfNL{us9!xD3 z-yHE`(MR?wTYgfc_i?P*37!1v7XUn%qz;Ju!wm=^*d-)6k%H(cg*Et-t!kJT;g0y0 z)ESS^9X(B+?gdk-KFKz)H$+uWb2xS%*Ym0P?BT<~Iwco1*nHe56 z<{?@)tNF$$?hlngrpNL-6>6ca=XS7ZH4u}5c98M3g4$}^S2$h()>!k5;oE<_(m06N z^)F?9V|Js;D{*P)R#iNS&00_%1y&o9l*`p(!XywBt;d4%TnEL)BN{=%<(}r<_6qh zv2%&4ZmjE&RManaI}OUCNLhzF#BKx?bB_%tJnq50BAg09g!nuuQSEvXl?6o(ec+<8 z78jYkH)ZWH55&w-p4y|IsMa_Y;PNf52a^NIP8ZFk)dfBcbydMRljccvIg(Ya%$95R z;AAQh&!Wr~m1T}jvy`JXdoydMvDIp7Hi#exeP+Y{2))@Sa)La zMI#@SVFPEW4>kIgDXt0@I+8GqIYxFw69}A)vBFhJ)xX9TqgF#EzUromjvzax3 z=vtDj24u9o#>9*!A4qqJv`G8liyFw>ByS?}&nDr+O7y{WFWi-BhA*qGg-Ka64&H#3 zzeaj8)qg{S--bb}1y1x$95r)1F2WJpjsR_}>r*s-sKBRYV}KE&BIfjOEEQ4mU~TG$ zHL;tZ{7Kxl0oAh*5@Y9(DVACMKEW_yPzz>&2u<+Fkh{I-rIIpYH^?wcX1u4vKr+E< zc+l)sYKabZ&wkfgn(26==R1FkN*<-X2c?Wq`D1=Ffbr9rMu3I47l#j&mt;Jg^i}j! zx>EI2yE+x@-ttM)hIq`?-w5)kmTbHmZf!Yk)wtHlSKRV4Ql<4R8s29|*Q+x%)sz^( z9+@Vx;(B;uZ~4P+`Ew~itKS*KxdopoBu|qz|DcmGtkL-oNxZxw!Ggtis z=YuZD>&6BUPM5d3`q@w|B#>Z0=e z9>ibBe8mHcKd&k51U={3#EtX3Iyb3_(^`YiS?z&;zdH9qe!tqVNdBU_u85y+E}M1o zMfAF;{UfXS?aRkPT7DuguOxfFEW5%A__KGJ;`}MRlcAPv^iL$7N0{zSl~$@_1b(nq)H&PXIPzKYaB575WG zBAYz2QGN1Orb~b2bTO2H4dY}5HZVlzcLY>*buQ^9vDElLYlcJ^TqtDB9_LBA*}u6P z#J_u0u*yQ7+If~>dGPV|$&Tsne0;iN77J<|!ufwdb4*n5|4|hEyV&_xQN+x|`oEh_ z85tPZD7dlcSF{o zyaxDi#EpV4Y>ByLSz;RvThAg2Yu;-gmYp#Z9)+Z)_zJlfemU|=@9OH*^H%TR?;f)# zg-KOab#&2Y)nt(Jp_4OQmM!s`jSNhUW{*$X-5kfX71FkLxV zZHjn)AK^t+tYOwRF^oV1QPOqn5_Q(^sVS%f)NYmX_{F1F=ksu&3mRQ+s-HqCq;MN> zc-uXGn$?D&IzMbJP4?2JEOX7=&_cs^xjEUPwx%8u$=G^JLdZ~Uwb+uI2=i9MHwgjI zSs_%y_S-9fEvsGgaH3-st5y|Tf6a~ z1wRC{`y17fK7`RIA;W>Dc+69-Ri>IyjM4-i9+Ys}23j3A(xE{p4}ys~zPUX@k~GMn zYwQyBusyt}0?K_SX8$VF2t>A5&DrY#+^2(^zu5I|ft$E!S$5u%TtA?SVEc<>RwC5h zZ%B#f2U21tCoF(1XqEC{ z;NL;Y%L2K{*n3jtI|1=DSsP>C&t$p*`YAj$;1j>{%nIl7f@4$}t8xkKx3;@nQ+2)q ziB{Xu*d&?g9t0$!H{|I3Xmtc>G{HYSI{Pfs-6UIT`kbX0!Af>O>`>V*G+e5DpGvTs z`OuVd);9UW^yL10SMlE$tan96|1Hyv{&d1kKpD}HKb@<l_Xx7SFnB>V)xQ)Xq%!E%gNW$B=n?_G3FP&2U0Q7? z-goc?W%(SwRrwIr%y>byad@XFr|5aR<*DO@@2FJDxM*$+ZC8mWCbX0_DmXN0H|*gAKDcD}f;3AGOe;x4n-V43|q&CE1<-ONH zs@<_{fj>-x4StB!O6jc447H!Ar-ItGbf-w4qLm)` zNUktMpzlA^6mZTK^QLHI@k$4635xn`>{@dFIe_KsyQMl!THeqq6y$3ap>It6J>C~~ z=CKNo-^@R>m@&DNUl(o4dLggDjEPfybe=YF1?Lqb+)I4OsTv}`dKE3yk=e`a25+o0 zId7TKDvUTn%@8S${>_ew?C>x@p(UkgaY22P&x`$fC1YbdCy>s-!tqk2h{{IHx*8&F zDr8k3icyi#u!a7LLe((@vn^quXV>xpSDzvzmV?3}UrfpRl00(RHm`%dUB9uzRDE#f z1~;VJe|mmU3@M9%55K)qd$kahj(OeSw%+xDZ(6?#WXIY-1$eCD_)|3&b|obno`OL1 z)t>4~+}L~$gN?k^hh@*L>L3lb2U_U8(a^)%|iJ2kSuo{Ppec#*_A4E z6@%RF{cQ4Dwi8X=ag?V%_n>bm@XZYqC#J*uwV|3V3w_=)c_hFRJgTXuH*wcb_x1W_ z_F84F6|^PE>|yHQ{*_#s&_(=J^y4_c_>t3W1<=;j+u>E;$A@G2tQYY7(RXhSVBNCE z&xwP&_)uL;2nP;6d-dat0BnV_dev9bcR7GD%#h4S4g5h5$3S5kQ&u3(jKLswt-qu^ z8GPsT6SkM%3}F6;5z9t#^9%Mb4Q&1Tc(O#;EcEm6%_CXRh$2cv3nKaby!Q7kAkZJ3;-vr>sf-h;( zn@YPU4Sg_=UV#WIN`31PX?i$d-I-wB8DQI4U_6-~C}Mxm!>{@0$;yFIc}^DB z>*L3*!sB&s_zx~>I3%30o;U*pn-9s&^|*6f2zrysd_zDTIft#%gO|0)%|Y(UAm<_T zXavlcws|mXc!6KVSw87|umA~Ub|Q)$~gh}Y9G@;$-w zAFm6W$Xj`tsmK0sP(g~HsIOXhc3Fficw3Z>D|8dFa~v8d=ELN2Kp5-1#!e@&=-*R;39yQi@jqfjY`IPQc7KK2aF0X)59b^PeD5fwJRDo zlgky{Qo{^AQC*v$96BgLa7tm{O;P~$?QSRa*bav3gE%-tSk|w_;zt0lvx!+Ec1ajWrj+do-H#}H97FyR{lwRK-+v(T zNJ|ClS{FjR`~aXC+1)0p2O+dN5AI}X=d0&v?cfGO&G+!7u3t=2P@(KIEr2nm~jawX38O$4m13EFct=p*f6kgopvH$hkX+%S+!`7TSB-YaqtPe81D$&@On3% zV^fFi_8h8V3Dk;`9gG*x6 zLxopy4Bo_ufYa<);Z;?7vy${fm({~{B5_&&3P#f&HYZWIDqO@o`RW6F!zF@#g&CVU z=^|qWa{|b5zEm$2N?Cn)ARBp~JtSg@?bk3)Qbk< zSrW~6@fp3{<&R7pVQ-x#t7z8nIKaEno97dS$u1J_?7brdT(GYep)O0uMI`HIJV+@z zaQ5RAht1W`@ zANxcB_7Zqa+c$R*V4&)w%_h8R#l>NxaOPb`jS_nADG~LtHNETrk(but$n=*Bq+8*I zxbt)=3NJIzXI65FqOdm8kF$vD2_}=CLP|+ZX$8ZF2~`FdLl0_<)1-Vm z$hl)x<`;$7?|lR!fKI!&BtHjpAZJ$ZlY@fp*@4F{Wzm;8f9VS(9+`z)raxU1`WTIj zo9$=n`ZTKt&x;jtML5YX!(x1xlXtH}sn~a4NvV*U7`?DqI+@Y7g1}6jFyIFqWc`5Y z+JV6%P#WM+^+AEkE#8;c6%%O$0M@Usb`xLGB8FKX_NdHY`Hr6|zqz-r(;A1SIOf|6 z+5Wbed3H0pjL$EQuv~^DZGz@l-d`tPL0pI#9oZaRHPV|{8mg^<0FMxrL-`aUM<#IfvyZ*$Xscr}c z_!xyhea1P32ArI;+pg97oXfBpa?S`OiBi~4g}$p?pL|ch?1S9YA#iJ=Qk)LgK8w<* zKNvbE=+9l3zQ3BLaybQLFt4U^xsRGHv`(M)l5p8-O0~I@_r!i8MYp$bo@Clo$aSO& zJZkVFOYbXj=~VC{ZskFJghQdnD>*~nrB@x70g<^3X${z<8J}(=Xagy!?VOogp{oGr z%R@KKxK{y6m+Gqkw~_-&TV3GRs@}I6OkWRZO{DW573pt&&9@KwvSGRKsb?)dY;mef z>v6unBc0!y>mn2-4>OWMgF4X}IRQ~CjX~k!SZ-K5(2?wg`U_~#7mJ9(84nqKxk?W$E z4OmIGDM1qukH*7($~G4s&k5Y&0jhNHSV(k}^J8O^9X^u94u!#ds@(~bRV@siA$*R zt%kiZM8cx#eR)n*#8bCIvBpcZn(P|y*`>&MIv|NRZ_l1dMQGclIFXAdH>OoKpi9?+ z9jh8v`i>=96Zn;tk9XTcbJOoqlv1(mrHE=z>65KJQZ+fw&#PHt#dWR~=CGF1Z71u& z)d7AEW`7cu_yENj^%~FNr5 zY{7nHk21F!b-fZMKjP*PRR|^9??SY^x#q0{rQYdIu(mkcwS8D9^Ya~0Xi}pcpwZvl0o)^@vE8C&xS>ZiQoYEzVLrtO@@ zVu9C~i)&_KkB(*AqNU*ARAp;{6P8_8vKZm-5jK^laQ0^ehNc$>X*J3=Jsd0V8TN!M zO;uxWW{EpD(WjVrcUcZC=|04!332O%vAI4F>C3YRb+^;~*S_dB4p|Bpz^c(IA9YnF z9rLIWRM22&Z<-3v$t^wFKpYF(a( z7MhT9w9??f(SV;-x7n_YubCQ zHKbQE+qwCW1Jxn`eqcfYWy9DK-UOAq^3b&@bKE2Vd>@M^KaWeUCZi+(hs%c+y&uQ- zd^J>Y4^yS8DM@s(psP6XYzL)Dui6aJdyxu33s zCyQkn7Cl)$PVN~`DcO+`@g7|5t7Fr+XO2QEJoQ(h@!HN(=q zB_sEEB;+tw-0(+V)G}j#^UOY4iE=7t?N9YxrsuhBFEvP2dn%VcT8YV|<-y^iM&e#r zJe3)B-VcQIXzbGI(3QKwm_?<0NqT}#U}qC3MLi`)(=L?q34SnGCbi;;c5&{(L${%W z7?6D-(ynM8p@j^lS|pYVcZTe@1%W?|>_qrMb2jCaX@F{odF&ajO+M8~&-9uoCczOM z#S%>q1eFt6NtH@U!jmc;)C`9LYc-JAUJ2`1LBkVzRYDYhKmAbhBPU`=>H+IGPjAR{qq(_~N>YaKF^6l^#A_y=T#^f9jxJXPylnXLO+G5D$I3z-q(W&32)9t?eXVA5vUs7|xIGCV zVMfE0S?W4R4~;-{4`poMIQaLXBbsyJr%)#D2;s1B$~R zg}~aB)dmTyQ=@%z@cU=pueet3v75AD!4G$QtWZjdU}G&%e{wib_Z^8jS`zC(mln!s z4VG5H6AEgPWR{vY_pM3n5HpmAFQF8DcwKZX5w?k0!z4FhUYs18cCY87lZH5jqAGcH z{_u}n^*PR`VX4^6q2Ny?a3S-wnq$kh_EvPKx;0xQsg0sEcvALx%(mli&_{)H?VElT zdW;nFrCTRg|MH;q`%s#I9@L&_@C9bwTzBI+!O~{DhCjo?e-GHLnD8GcsZN`9a@6p* zJlG;L67jb@$+#p5wX5)h2)Dd8ioxmE$0C{^gQ%t#E>pd%>*P%Q-3dPfYu*tq6^W&9 z_4~UYzc`n3H0zmeCty#N&z9>%Ss1OdHeVa_aiG&HWYYHIc(u6uJ&1^H96E~xQ~im6 z#O%Hhy-#^MRM^lUZ*+$rWiYg{bJD+(+Zxbz7s7DG&O`*J$~dMZP_6P_9IBg>NuGF< z){oT@zAtl=zOE&R82F^+w1Hn|EXYA}^78jI?lnNs8}t)t1roQd@8NX}Kw-6;)_wu} zjSK*uf1gl`p0R))+)LDP6EqG@f?F~SO>HKdK*c0<8B=1e66rrRW z&;AD`R2P2n4Oj(9{e?&}g4{8?a8U3ImMAXbh8_0_UCN5p@~H* z2A2xdU;qfzV78cIVQts+*D>7W&QguC$IVMczx1*XmOl*y*rG@~%Ur^N&us!&7%dY` zu91deUEht)=vSaYhFm+8aLXiXcs2~skL{?79t6%G!Ohr5!K%f@=)jGfq=5b1tJ?F+ zS2Op-jOiOcv2OlWkFDeq97_CCjE?k1^)DD9F`^zAA*5j};ovu`g*4Q|%VcBP>bV%GRaAm1Gl;=bk6S(hNxGr)*q70(%?U5F7zUBYojd}lD6;*s3Pa9#_9qW zKg}kH;P*YxF9^x>T)@_{FtpOp`{~d2$#lHTNpQs6u|{uS@M>;V68{v0fB)wH&BRz( z+5b-v{vRgB_#ZK`9<3ewznc)`_33?W^^x+mpG@aw8jtU|1s@dHY4@STE^#)&*F;S> zlvIA3XgeW+{>I?U|lwrZ~HQZ-@If9?NaeC-> zZzuR;J>Y4Kqdqfpd73x#EX4BU?9Au`C9`nWk8`7u&9C*e$bzmnWr%+_QA%>MBNT$2 z`F3Wr^XV8$)h>o{TB0~}fg>7GI;8(um5#Q{p3m`Es#$|Rx3$tJe9a4fxpiv^yI4!o0?;!=Ec0}-E{@Syc=Y>_sge( zv)utd-^W&@iwrRr6Y{#wVWPcNs!xMgP`H_j7Ey|^Y<_lydifJ1&oCQtv#7q=M?PM8 zJD+cEP<0M98GCk7)oZw|YGe<+JQ?5?XJlc+53%mbp>h4tbZUZm9)N_kK|3a==oj7p{wulycs_=IhIZ9XMf?M@+hoXUcTC zd$AQ$p6D-9uq;jmJ$2NGNOX4oyg|d_U?HUaZP=_YIb0q=a{KROBb!*1($X-T)-Nw1 zGvf@pW4lGRp}sF<&2wCKRUGKNuX`i&SprS7^BkvXV0LD{;q1lmySW#d3M1!nq~Y-V zkYuwX#3P0RzSfBIKZJCDQ?69mwLuQk;4f_|93cv|aYA`He>Utoj+5IT3)RXjN(_DtB z_sDt)yE6%OtlSn*UA46KS#g>Xr|8<6p*|9@Rfx_~l5X(4T~wvlHf}SBUM$W@13~Y` zb@Apc38r*{EBze${XJB{=OPFP`qf;8?)8%PcRV5#4k;%DvOy00u0e!dJ^HrwMcPYS z-HKzhnh^pw3FW%F{QGv0^muD4m@nW-nC9;;p!}wJcI9pF z*L%lX;oFu#U;DELeYIoZmY}c9@eh^+<4^g4^TgC>lRwrX#Nl3|ZW`=NS%&#Bq7j^X z-&Ld`81PD~36!E>TfnS>Sy(dNg+g^0?muRk5@X1|>8n#YenW24g+-G)MT<3UsW;?Z z#GV*+^EesGcD1aEzmoTMQ%SZJ<%wd(%r<8Bg&z<>%yV>+4j*$|g_)H*P4Ec0q;th3 zD829qOMb^Btb^J!17LzhF&L6pQ_J3QfTeoy7u*LG27FEuqQdK!aMJ{u4Z41$dN~d& z=^NNumE|@{L55&v4yj5;nSz)-s9JQgzBhfnIz8{f9^?$m7NC>i+x?A=+{sl=!`c%w z{UpCzpBAs3s5E1*8Hk^=244y_?ffDl3Yy|7y**lxbU>X&@bf>#26a#U^CXTvS-ynw zz7C?{G=T$XwXbv~8&K-erJSE4vv1<=19f%pI6kbr zeGjNCUvf#UJq*j04Rbro2pw2Ih`r@7Ctu!&yeR3FX6KkM=)3@L7>&llV1ZNR!p|`L zy0@av?)J2KM8NSwS4`ZRFI-qfNsE&7(~a`f7xaSv1XEjF(TAQiy-NK-rrr*jF!}JI zy0;)v#va7TSeeJr>K?L1fu0Ajp6E?|>a>E2vt4GMVxSnq_xPTEkJY@ypVHO*d0u@EyQu7w7u-B)zcVN@N-J-}?=v9nKe zaVVMniP4N!?x+&QTbLa(lVKD8BbfHsV;PJbS|{u9ySyzSGg(x%qyIx64NB((cLWhb z81lC};trh8Ha2DUcfGLDJ*pu~E;q)oPTodCVBWw-!QVK84PPgeI3P#&~^ zSEoc?(L8Q_K2a7yy%l_K9*UTJyXU$H%M==N2kd^4kZr&a1D4MQv0 zy|3J$p?SGi(R;^F7kD9_8tk;fMCl*|4g@5RqZ%OIxyJZPT$H~$UX{B0=dqTiL$ zfDrot3#9|0*iYnb8zP4)m>-O;8YgE1XJ`X54?D*(;fgBkk;QlH@Jo(4UU2|lxPeE7c$r|<6 zS?7-}as!{_(24olU*UVyJdEcL9TRev8?G{)cqO&j1r?)S^cqm*Ok)Vqihc+g{iPq4Mt&6B8~kVRe2wlcYgF9DPnrw0LMrFI zCGy3r2R7PY!AzHVatLP~ztJiylpm~Be2DcUaY$^63z`R=usw#-e$CXjfeh6h;l685 z)^yW?#Xj`Gd9R!YiBYq@l=&ZtwB_+SH!tU$-)%k{Mi}ewDTmB*WGc^8{;K(_a!_2f zRd<-Hi@e3(T767zzL@$=b(pgL$)IcOe$$(3Si@cE+grX!huh#FbeBMMZh-XYK-rBq z%?0tiXEgxkdde?T&gGtIe)LsMXGo&RnZn;eYir&1le`#u%Qp-o3 zV1r$EZsrGY)|4OYKY+IX!{Qkj+5T;SK+o_WSUki3jK!;~+hVc8UpM#+JzKM$)py1M zTnR>XBZJPP0ztCTL*msFu%*m!A>YQ{#7!vXA1YTe8>um+a%S1a*oHiM2O^l)e!bp2 zWUkHlRve$(yYM#nLIv0pF&|G2nE^2NW$}H;QH)l67ffwm&T9sbfkOR@VayffjDl_ zaQcTKrZrbotA-&^3wf@~hl3zhdY^(bq$zHHujmg3!wcn1`i5?S%(NhZ$j4BaG4=qw zxz?&#hzFVX6z{QiP>x8iw&>(e$}R z(}#XlwQtzxmI+>m=dGaT1Y6k~*LcZF0^M_!H=P*BDc>^G*sObCPi6<7( zCULuh?Jez*M`nYj++!zY-D9Fd%Tz>=i)LZHalrgum6TF2hD`L?bp3^mKy#5xL2vUA z9-j_Uj+)hy8TxY))_}kX$`KN55@-fw{tuh;ien+0(T&^oZ%1dvPQ=l~<=_4vS-l5> zd&mwYgh_fvhq>XG9u{k{z&D5h7bG&Ifd z9;9VYI=t`?uZWB(AP%svN<)oq6O*dY6r-pFC1YN+I;5%BQr=Z1J zjs>8IZa3=an1=O%aDK_XC5dTImA;8AZUAHT)04V3e1cgC^7`?h41#ltf}jxg(o>Hr*La&!1AAEmsV7-EhV=ppEz!OV)H(l9%lwCX!*3kq>o9SI@L+p?WdLwp7+1 zs5^Mb(6GtSkjLV~qiIeRFRcJHU%&t&186I{rv#XVzZ9DsJEkrXraEW*i|xjE5Mh;} znw8{+3#qdg^(2>K3bemeW+CtQDrF)RxkF7wGMuVgNYNrFS%V1k8__Ydw1nz7_XN4z z5Xgr1SCX+wldM_V_`7v@Z4VJ&Zxyen;1?nh-Vztil)@F^VjwxUi?P=;(4_dbqh=!c z2cJ99S^n_QiZCtMv+ZKEhe{__HL0f;d5hKtV&+spUdd0+%sV;&j5@cmgJY#SSG^>% z>#RuY*5H^kIv$2LcNEIXyB*xtX@KYk)yZCF7s(_b+s9{2)mvuy`LZvh__jrr-1_^p z6_(5Ncw~EEP={L9^hkB--(6JKwe>&ybhi%4ur5HkQYqS1`wb*?K&BMCpj<+Bg`*4l zk{YJ*g`ixir+vn`Vk2Q^aB&I3x4avhT9_OH!b zP7gyEd`vCW=O&#=iGvDn8gd`jF@~vP9{tdGELm?pVXXy0L>DtcEWlScakh4Tfp5BI ztk#(z*>(%c9oQt=QIIl%hc>SugW0>W(%5WXHcN`<1Tnd&Ja_9S+YoGvCTgRlA`h6Q zv#4E&VGDe`;dy5goBsFW|F4q%zZpB@e=+v|5K&M6Kg_8AtK0nRfAdTcIz>>j>5#^j zsxG{6{UR6w!xn(jivT@HnhF@7c|m$K4ofbw{gqr`GO|h~2jOjI*ob@>fHLMi{KG4b8pc7!yzGB=FGw z=bQo8lpR9UxKqMR*f<3(8e#Wr5ii-rHLYlGz)g@bzxozV_5ecuKMpt+CPLuZN?CpB zq8CH1Uvmxs*TAVXkF<8w#&KV34sw`jj<=hZ$3-n)A4huW$;;*6Cr9|)j42&rWzY+o zFFQ0OisS2i;e z#QmZZeRN33e`l)>C4Azoqk|o?E|Y1yTBP4F`4_E+gm~0sqFAKhct0XMjmRP_Z*rA> zxG1(Lu4if&9DtaN!%Qsa+R z9oLL$?teD5KA|xnq9!LnQ6}lY%8-Xi8G7ph9y`3{eg}M{ieX1NRu8hkVVqu7gTGAa zqD`}flmO(wmvlSmGSd`~}YdTDn zY-6EDAN|a}RQuN>f>&%n9j=&T3Q&V|(X~xKws~Zb)7@~fwNeciam_nmWRh5Jk?Xrz zQ#ucn56yvd3)4+qJU5O#u}@z?Pp6*5rL;Vn7R59-rdC8Enf;}q8fvP*)uI87!2 z@jxpz+td{l{39GXzsu?hs_xG0x4(N=K%4M<|EG3j+W=Jrxrj`eC52lG}K@y0(tp~*NONmsnHQ$#Cx#byzX3XMnBs(bX0pNK_a+7jZ-YH|66D0zT% z8|H@eidB7@UBSW2acI{HxBiY(gC4&+XHo(HefnO0_?lZ)u3n*&Gs*N*cN=PO12xiuI;j#>v8HK` zg+E{yhuH-euW^n!`trIN5#{%E{X{{?H;c}FCl@g1bVbSaSDtPC_^@DJlk}tDz6|}~ z?u%+*`oCa#5i8>Q2~)=~I!p1vYi6Oe{E|TXE71}JGx0e`1g!+F58)50QLdH1Z^bzA;rOPQ-O6|fZyz+0kIFYJ*Fn?K0r_b&b=ViUP zACt1ZxC@|*k1j^XaaC^lQPU+-dD-HjE6PbymZ9{(`4t_q{R#goImP#fGKTbm52+qc zW8lnT0Z&taROZv~#B|N$n!#jHdA!-DQ^q(eVZF?(SdOFsWGCF3^v^-rt|Yiq#}A2Y zp7!VqY*nl`l`9s2vkJ_RjloOsDsx; z`9|!aIr>uMfKfLKII9)CPe7Y$jJ%nH*g)bHUIb=oH~iwE6#a{&R&9;Xx#T_aK8yT} zDFS?B=sa7>dAG4O@K7)T9RUsYVUiQ-UWX>CjEo*TQ=v?XVMh;o zQAUod%xUC|t$ldUU8A$Vfawt}<$5SsRs+nt|Nf*N;uSr3Dd{XHRh}&%yl__m;i~b& zqR?3Ys3g!o%OV()Hux26`MG=EX4B7>yL_TT;=P?_#r_Q6l>lhh3jgh4Xs$ponEUVM zSXIAf{McG?wWgvr)!9`zxT|Ic+=#PX>L?CF|0QJv2o;yNhT~63H+BCaa@7^;_cqB7ugq2Rle5BR&>iZYeqA=)?T_h zx^&3_PKw;!W5s!PY~svskjAi2?ckuD)JGFZ{gl;2$OQBK8JS{|7s4*4)jFfQNGDz; zMm=d_T<#ST+Z*p%7df#Jbx7gH)788U{e7 zN0pf#eWuRt-SL+OtAsNX4yA=TvWI~pi~2+ohn$jB>v6Vr3lEM#mHG`Tz^PAn#J`)p z^!^?<*lqFXpUW8vX-ttsadX7q@?wPocF4LC1JbiFz7-i6+ka@I?At3pbd1B$D_u^( z&W&d6Sb$&Db5u(qCbE}pcBY|gcRy=ucNgs{OUIlcw1=X7KnM4_DIIm0s~@fXB6l`5 z;MPLQl&L?nL)T)(flVDc7)0joALM#(K9>ZVYk-`iHx62a!gy;aZ_n#~a+jt(aei?) zph85H?@p0(sFADkF}DN4q&gLmsG)n7f=rv1?n29V62;uNwkTqI^m9KGF8F(`wNV9J zN46>fdFo8;BlxR>-|F(zO26S@fy3E{Lk}3z)|`#YcYv(hX(^2>OdL+61T*O6ahc!5xMwmgI!r6rIRJ=vTeP&)=@J1~b2?7^d<`*Qrx&D}afm<4D zNop>Mc??mp6??(xx~H|Nm>;(p!qMc_y|eWyQqTHHESiZnLki$43}$k-GyIJKJ9o+u z8MCX-ao69!YZ?7V+Tn9&dui;9*)CBNe>hZ2m6PcHD@8QvQ5*S;v-kA*Lu5NwHNv4& zf$E5gS?&s|iC7wG{7XBo$ozl@qBWfs&qNx^txA(Nk^J3(hVT|@yahRlF!)|JvQhr^ z`8{eyoRpmzpM=BkNUf6s|82gyDKoHX=d(q>R5A0^`FG)UcPUxir2WF;62#Jy)+5Gu zQ4LC0We4#Ad>XQFWzvSM#8wvbtFy|cGfL6pTH-OAVl=lZi`$`Woe7$-UAF{W><4QQ1a1P;bzzs>h~uan;j$5e}I_( zo-Z)7{5vX#p7B4-7a0FX^M$Fu7Kdr{L= zoG=>oDgR?Aq}+g#;8)(~`&yL-c0;*`GoPU?qa&-k9N@nsAWeG?mUe>wO7FX zsKv&qy&SDK|GRcUdQ0pqEp6I7FAX^D&t8K0K_3D2RIj*UNsF^#+FgG|!eZuHY$BdX zVh*SMi#XwHD>;}r28|eT?u|;CZ5aPiAuuu^d+oM+`!WMbB>*xXJ=C__eh%9resLw3 z3Dww349M>KZ)pQSM{K#pmceHDWeYrEz6uUR{amxilenifO`{|8!u9Nha<0`zGAsxq zP>!$W<4HE96)u`Qf6$VShV z>?ZObMJ>oN=+SG1Go15%NuCa8;4bHcRMofBk2 zex0JJ4S9Xv@qV4dEoTa=%_(>z#90Dt_PT~G!pqA(k}w<^Fd*+-AnPAhBlA`J|SdP<^=4S}r9& zxs7(v-cFsjw>&O->Kc(J6Dc0;sc=R$rvmb7>RtbU!Z+zCGDEcdL#BpxRwq9#9A60tHa*2C?Udz(~r=iEWD_(s0E?t^%kfEB0qsE zwhrc>aC*sdR%?(5;X7|b36s$+>*S20kkH3eRW5Loin~B( zNfDL`7gc_lkN1+lp9aU3M&PLxtBB5l+&1Aso;Pq_mUKHqZ7_Nr z$u0hehJ4?hPrbuCCzx%@q~0PP`r) z!r>1Jx%IPL6JDL8CpDoq!X7q2X2BOXRT1RR zNYvtG@L7CD0{ZEzxG|`kOzNVU#^ZYsU`jUCGKIBi?s`AyQG-`eh6)5wHPvuHCJ}`^ zANQz$`-~6qU6QM#r^VlA^*!iGL5h!?O;5UN7oF9@8{Efk=;-1zvu_R%J*v}M*|LgH4iS)#l;TLuf=CqXIz^`R<5!I+`nGOj{(mGN*Lzo^7(VBpd0*YbNkX7qQPm^SSD&-T0MwV_|tjPrP4 zJ$rKf>Npz6g<3Lta3E`8B@eBFx_{J3+fJukMNFAR()a^C+iLo>2fH572}NG}n?;c0 z&m5!o5b5lb?5h`@&`0eb#f((TUBFT9PNadTAzc(ZRT9XDJ-2Qr0xYhmN!tG`99dBg zFFg;r6{08xts(seb$^=$9I?{`I!V!iKXq+KHWlu`9f%O_+|%sUcF8rvi1}5MKuJ?i z`R7*|K|t~~@wwl%y3nkQ)JYfI0#9|@4O@Rl-}7<$V>c5tvzh|TeLk~fo(-aoL=mc= z#z|xjB51B#e3C`5?20t`1e%P(9DC@F!=CbnI5rt?#iD^tlCX&#U54NS*dw}w@Q%;mn%$W!5-FB&B zdG-sfzY3RDq*mZ}6yc{}-a#?41lGq7v8=PdmyE(W_N?2$UvOah{OI}w(*ik8S#syM zeVLPcjim0FL0vNrHqokv6|O;d7DgZgK0+e|BNg#n`GRG6xg*T^PWg=ck1Zb0Bl?HA z0xU9OJ1^&b2k9Zj^>v2q0p|VSjo6!z&8w=gPg&U0jLAb&AKN4e5WKn^d?p`k{Usf;YH?E`RYC~GUtgnt86mG}$0K9M0c0{REiEbQDtm8r;BiQ( ziQbWYa(AhH9#JlIb?JDi?fyi_ubWF6yE-p_Rdi_8!unQk54U8AdCi1_h7Y~#(VHnI zv6JLumk{L@{ypM-gV26;^qBj4LYJz=Sr~+%?l@pB)!Tyf*{dOrU|+ExgIL(Q8`@X) z?bPyrig7r2zpY8VaXNz<{Ro0vB$pI@YFA6<`CB{Dc(=`c1TSad1+LKr)d{M-Y}&J9EIQ_crHH z#9s%h-BKIWoI$bDGdjSC9H*oR1$Ce(N^gh&@4n*0_kY)8m0{3Z-xqs#Hr-B>D3Pa>jS&k(g^yhT^P{ErAHv1tVB6+AKfB3TS77q|uE--Jb= zJ2bz;l3Eht&iIU$$>nW4Jx%t5*&Ae&v=sJ&?7t_L`^$A^h}6=WCd)uR#Q|+wYNfma7h}e^Km5cx}WS=A-@AU5wC3iPN&h786nx|7%su2lKL3 za_wmNd8w_BrE=%}+ltxHG&p;Pc19^z-G$fofKvC%darlq)P^RPV&j^SJ8sr&ug~P} ziK;}tfmp#s0gibXDdQvz7V5)nfQ$4&3+N8Pu4wWVocu)VI@H0URhpcYG(U@yIrN@T z6L`D{Y5FqK!4wbi$iX&f0&{EHi=+L8#Z>j;Hcn<9xUy|gI&}vA7uLR};WUE$ac?T1 zX;MpM97*TtM zfX;f5sJYZ;35$i1g|gjtVnz-@&86X<<6sADpc? zrL~R;Yu7|9ow@w>Fp#U$r)W;fw|PQs!6Jh1S2vFuh#pdJbL^w- zl|#<0EDlv9u5Lhz50p^-F|>N)3+{kLAedt$x$;X0Q5~4WmF4=bL)ME{X!dPJ=Bp`- z`x--JP?bA-k0fasL?3>KS@kcPiuiUK>$_WS{pQ{V7O-gjhT(BcqNt1!P#Dz%ZXOVn z4)zQ6fz-QX0N?k$?s8T=+sLJUd8&%jYI%MtxkouwP*xHA|6#g zZBYfspezJ0n=wBFEfyB0(_hhR>Gh@uUIcjD>4n#$42A3I#n5uRSYlXhndb%sbSv-0 zfk#~>#$KdejnW=uD4G>;JBPk}0ISl^S_jzWAk|O_<@@Q&ULYkjFyg2gH)Fy@Z40~` z)>l%MFbq^I^$$oNhFGgtOfd$EXgOk9L?(|7-i*+M+P+;G>_&WJXO--vMFNP89SBp` z6SfC2`CY3hxY`p)5SsLOcY9;(i~DQk6uTP4zyQ7hjPvLgzRKUbZ+;R)?O^^V8q@fP zaLV^gS!1I9URvjkZUeZ8xRaNBrESJEtAFyaaQMO*%=~O&Zr`Kdp6o^Tg##IBNlvpA zyOH;PqrWw$5JCK!9etCik=FGTbwcRBTc&~WS5yDHEKj69;%Z^Z ziMdm@2O2`i&tIEtJ&I5*#DYd6n03t7hkM(CIG5{hlCRqocn% zd&HNq!`#7T3o4Ti2|q{F^^bf{nx%A~9u*M*3KJsq5QZ__F`Ud^FP6+^DujN`LRjG( zzmPUa74Z5yc^A)EE_+%EOvQTss9eBupw>7IrS^idAp`2tT!{p7mrMdHy`_7PM1btX zY*h%$X#-jEnHlQfoBVisqPPb165VxE?fVRdFcoBJ+%tGVZ7Q7^wD}}?&{HgtFJAyI{m2L@U+J~l9a7_ZfH=XU&Vs9;;j6aia2qyXx zFhNvH%+2`rI|g8Hu!QD2Dn`lvbZO{lMy{?s;g#TxxoBEr2;;;F6p|CwoSAand7{$O z#%H;eu>G{S4ad+&erXS-=A5^>rc`^IO3+`gqlM>ulqGF4wPf(k0|ZNy`tw9;7RBd3 z4Udm3(d7m)y0eW$2P|c#Sw%ATi4`Nt3};lzy9-wH9C%jwo5iP_d&Vr6zb$#J@LYyZ zsOUjovwmCS(%>*UhnsdC&vo0E+Po+`c2tJlQk+ zx4aTTE!AY$%w+}%ds`>~NmK+p4wSvrt zpE&&PoqY4sc>cy$`$f|FB>p_xKBvwqd`TuuSx0Dgd6BYG{o=?QYuCSP`}d`d20C#y zX%_-t&xYNty}R(s_xsmV?W4ed!2185$FcukRy|DrxRw6H0RAiSgr4ai{Qv(9uO8A+ zwZ=F`km4(iU|uL6VaHrCm@@yskX zZimka^^OCL{i0Ca5nbS45SD`wjEwhhzZg6EO&-CDeSCJJ(34tEjrQ)kjV z$ql4wdkDAqAOF+ylHQrg^aOR2QLQq`E;? zTfqN9^xA*{Wjm6dDZoE3ur`xE(!~325@Q-o2s_>_6sBbJY%4Fz| zSa-Ou%AwUFL82IE!L6St4^@N7knN^;O7@=tTY)QFp)48D*a|vA%3N7`>e}kyzm01q z&BsdbovX!Vjc_CC47;M@ez#oyNNF-!FmFE`IK# zxK!*B@RxKusTk_ENyGLG&Il47CM6wfK~@@>LDXB)P^WogwFK;kT<+rsVuxhX&n);U zo8uvvo7Ra1;(AXVR+iGPY}Hg!BQ|UV%&qUZr443P#o89YDLiihme6}L*5a#}N>`aI z86&6Aq1Xp@wQ2lnxYMCKW9Tc*#YIOYty44;mov-+-&Z?E{t@PeIX}r1qx;^93yg7E z`Wz$B+X|bA!bK=hdO)Hzu;$B*ejt&EX~^)<;B*0Hg0%7Q7b-IJqz-Xlyb~L|1|7R# zeAbvJX=dmkx#?X}xr0r%o5?b;pM?H}^&IY4MQPC5OpUo96+F`q5 z)A3iY{TyKz+WVFn7yHCTyJQ;ur`A^S1GGjFa2?L^YDka2y_%vJg-+Urzox4`C5D4r zL`7WJBJ|QFxnaXSdCQ@2OZpsL!lGm$k>2BC#8XyPM+MCoc^0ImX}GU^C|L<-ZxF2{;$|rhWE#Os}uWrM|-Pen7@p4x$K6HIm7gYXW>hYV`JWU4{u`9 zDcYPwL4xJ8wZyt4v7J5%o7F~2V#rZf$c@VB&$$?5+qaFy*~nJ_sqWs@I4T9TDhF~w z)*s$llKwbq%!#M5Np94_vhkq1EB8e$Wh}14l+nLQ>Bg;Y&_%h0#XOX62V(jV8b^BB zHnoLO%cRQO$fcLs&U=F+R&4UXG?3qFD_-`($5U;@N3WbYql$1AawrmI%yJe4Rbmh^ z?vRKF8n4848r2Of>M@u6rk=^`ryGWyC`6j5v1TaU`EKIEC*7Dis8K2`(SMGV#T)cH z@59O)-0Mn>z%vZJCx7F1QsI8W-Q|+tF77v7RB!LSMdlx)A58VyCC%})&ByMX5-JwN zalCs7&M)Z_AnkQ5BfRF3SI$^w#6OcFtxGS=mF{<9np^S)EF!cBB^UMseN~{A{^odN zX;|(RwDxPJCPjE_Ep3$jU3EVoOa!6YchbuLH-+|_&fb&(27?`eSnnFUCfX8%;cB&#?m9w=~##s zaaPmogrd12)4_Dn6oOdKd7p(5hYT3Gl}AK*h>Bk6=)nt1&N2+qzeARfdMbql?oLLy zlO3*9Abmz&Ldnyp_^1*5OtW)P$`Jsr8?f~A%+SN<%vA{V&4Qk#7xsro{OKmJr>r`w zR-K<06e`aOGEA^sBVIWFz!t*-PUDorK#XnK>bbYulv!|DEeRJKH;kYeq`HnOs%gsF zegQ&sbrKptNwZvV>0c!cRCRA`{F9%R^4fnzXWK3@-S4b#(!$V~NdrAgkyD)nlI@RD zY*toQE34(5M`cxsXMRi5NyQvuvo$}Amd2axpwjq9$3Vc8-Saw|86~LPpw+-^Ng==6 zDvgjNc_y9%YrX^6hVk+Are`OjO!B{Dz<(jTf6yKS6U)CdUg(+s*}wk(Fd*|kDaQX# z4A`Z*VROI&@BN}$YCBJ8;NC+u%R@B_L=j-nK{p$^B^<|QkGW`XL1tr^i?@?U?m!+M zp138w2VhV-r!}39;lP4IQknm~!i&b*aKoE+es0s8{`P}X&^VtmZsDo^rBh{EdEaxT z>@^Yoc*9(t2W_D|d$ ziem=3_LQv&-o=Y_Mc7=x*?YS=hJ6x*GHpf*l0GrxQ;swx$ZGSG{XiH?R+-0EV+i=P z{zJDp1ww>_<@v;I^8BQvTz?z=_!64_l^gP{1#PDWf2-3|Cw&OIxmK4gdAx)|!9@?> zVnAx6A|)|?k@J@<@EwRsgryBiwa<_tgg zBkiY-7zrI)c>pO2{&4*##GRbr8W6`PNY@)XG-vl3pNttFC@x-Mf)Zm`=Ad$l7cGXL zOR=cdb&rLE>!1qPwfD&ZV+uteugkasjl~ilib^F?2moeW_&pFtZ}@e{>DdrqzD}Ss zryyJ*ZD|D$EkOOhlWFDZW?5iL#d$vG)!qeseGGV8C!=#~rN~u;zSf52)NE$`xf?D( z@&#i)95_B$fUi>wMlDH{Peb5eB%O}yd7;#y8NrR$DPY@}z!NgTNAg3xJZcR9l1g{( z_@AB77{@LuM{-p%a0d|XWzsnjwPNX6_gE2ch>oZne)|Dtr2W-)D)eGCN|2mMQxWFD z7QTEi6FR`ir?AE=W7mYI^;!YCXJ5=TwsmwX<|~3jxsK$flrw(NYTuDGlZnBGkEm1I zB}?+(()UlThn8SkkvG1BTgC_l&aol0Pr&2Xa1WLU=_YDBPWgC&iUo> zDf8A)5%)AjN8rfr@=o38Idr0Es-uf1Mb{ZDcJTF<6y#WcZE}mK$+&MzfKLm7noU>O4vPK9@W5 zU4yw~Kjh}^`qiY+Zbj`7H}dG|Pw};0O7Nw=AkOwES{tA5SR%RQvku*XA+7k%9jl4# z7WI99s-eJg&Q_3DCCzHTcfxGizjg~)%t}KM6=Claw8jpdw#klbsx%>Rx}|rng?Yvd z9r*=dCT(8$%aBFK;0M+wGi{NS_F)Wxt1|^fcDE(a>nCF^F;$dVpCS()?pIuYu1Tf} zB2k%T4G-HrI{{^U3cQ zye7@itp8qo|5Z}|wQOUg`>%r==Kn*>|1Sd0%=$kmzFX=$e-Cb;eO^AcZ|<}PGkh)< z^E}n+05Jlpu%IvVsDa3&+x21;Iq6fNzYavVvW3oNnhkS-n+d4%&xsQVdE-A9orls( z-Coapb+=`@zn7HpZpbdgUt18eRGatO*R_;;lqx zTn7Z}7(DQCHpwtWomHW^+m@1DIoYM*C%!GLU&HCEQGH=-8StV5Z+T9Ax5W*vqT^Xo z;24F%Kl1W0MvH^`9ISrtkQHqheJ>r>Qmf_SAG2+H?riI?Y9@^?N)&xA^^&EjoD-U7 z!4y>f!sOS^Z-0j@!Io~I&kqCjXI20Rn@2zmomD2Yun?GkcIz}mf~Hlimp>^Q*9SvC zEC#4le1~Zdm!%r(kzYc|Ev*F+b}b+h zuEL=7_z3m9c69)BA(v=0lSoT6whp1X8o7RFTEOZ{)RpRlZOKm=n-dt=8xCVwg}&cY zV5$&eq+qppgt?r$J|alR;sX>KkrsIKr$N`^%~>f{Br%zLFShp2?WYCGH!#K*qFNtL zV(4RXmdGwTPVvZ}<|~Ae{|)kV#bC5~k<++hWp0fdE=5 zpj_ApCh>bQ+Y@HBy&n%krezhSiqMryaaK@#uMQ;_QE{RCUZ+m=ZXD`d+Sr^E8!E=A z<4}wBf)FpzRlP~}y5sqWR%B*0;sd4yRx1$_F~nmwo5jln}{ZOabboLHN#p_abCpHU3H zb6QXL3IPikTkVAhG1I$czS`BK2X;voHgNAS%$rW4zUd!oij@8FqJ&CHCvow?a$|xw zKMUJLtlG~?`;cAu4H~q~@`I;R#N_v(+gq-a52C;(&ifL69^HY;*2xE0x!JdX-ID8^ z@tkV^47wZ@scqTdVq{C9E_7gI#h0ye6`&HzkJIHB7cR#~1*yM)5Z4-#% zN-waDa*vCYEP`;F5wjt(7MXj&{1VzdUmlCuJoi|=voz}IFCgO^!%)X9Oqh-GAs3|S z5VYSwZApe2=|v&2a3{8>Y2T;U)ONFlFY?~+1%!wZ;85G0!po_Z1V1S8ua)1AaO(f| zyE=T07=C16)6>evtIfgLDi^qb=Ir>%W+xQQ){h|!-^H~ieJt%Qf3b@#&Fd}SW3U=i z=2qii2+`ih!r+p0lIKBt4orBY+CJpJoc3f-Li~J&~-Hq@AW*KTe+2^db!##pulhIsigjNcB4u2O9X21uUe5_=Cy2 z?NsyE+v*;c21Zu$$G+~MDAWq8=g(F5nd7CqEJF9ev@O7PKM_ACw~O~`8ZN{;Yk58vug>_d9?HtX^l!lm%YPs+EdMhC zqb?cy*J-4ChFi73P`4eFb?8OV4`ww&pVJOn6oc>A2K@3zjH_wUTCy?V+ud8lrH#tW zqm@d8Rb|kgLwUqdP4{oqwi-+dC89IaSFUayZXeW)hmEBQl&|Zgr0CdrmW_pD_XhQ{ z5TE9ggTEdp-;Y(`;%5}$u64Ox*8rR^`Dmqn4DrOnNJu} zrNtw>UK)E!648(%v#u)@cpJ7I+Yl8_&{xG5MY9|rsp~r&6qOAG!Ox`&I&7Ki)Zyi) zNj5#hD-aIzjV0PO!4T6GbA0nx?HAEQY_HE)8BQW3DEj59gc2wVR&|NuH@~3@laO0H zp)5(m{epk|^Xv%D=r9wP>w~V#aTcl|6m;ig;#q^#DU%vQD287 z6=E7SRdy`))vo2N`09E$>3lWR?r{TM>5oZD1FAlz6MZ!*_M07TMAlc8Dp}~lX-bhw z&)FCE7AgWYf7Rf~0ijJ2=K@`AqC;gleQ3jmm%Qq@2*F!AxJA*l;E^dFa~ODupCos%X1fT8R)Bp>i%y?#I!v&k=v@S~xosi*RmCrx$60yQUEUL{`6~J*-adj9SFa6TmEMg9kXo6b+XQ0esJ3mr{0~G4)^5jo49W*~`$?@#$`=iT_siDE1C4-l(B*3o!@mOt>lls&2-)w9mWslv9gJ8>*V>8d4`fv! zz(VGxNE~v}W<^~DY6}@cMu9|wnGnxFIBPAnQZ=|J{H~T~1T424h6-l}3oV#8Y=TPK znq-(DN(mj1^B8#JEYj`J6&}0xVKB;tU6D)3S{bSf5s)No4SVfFuKXn&vWT$&*?StO z5|a;^F=+C&W$|??I?E7%c#qHn-|nDjTH|8B!LJ9lNA4k9EEPc?1zs+-D}GVZEaR&gn%SqxI&ivB z-a;#R&9Ii!j^X4BV#K?+6jKhT**$|(1%&ZZ@fcKkhlxK|L=?h+ZgOpooXl%S!sj49 zPC&MANAwynk5MJg0CyvJV%}=YBUeRp9E&RWD4C7&%gjNxc*-q5j0`DpJC#v1@^Tk( z^Pbk7KMS5z^6=34Ds?E@Pp9w@%-M@b@m%JfO4kT|!RuN)NmTiOdhBepXUBEa+#!~0 z(wa=f`Zs&5TYL1OQP`h*ko56cYtTlO^vzUhbsp53sa#O`~o0?Hq+ zdd{3-U`6M6{=?eNxB25Xsk3Zfab{_PX1RBn@0k_$10~SWbE`eB7bsPpV{z(it!cET zOa3d$zKW)?ZT<+rDTS;Zk}z0uPKsjjj-R~FYbS}z-{y&eEq1GqD9tlFi6fz}!(1Qw z^P9Bi7(u}q-Ir^e_7-K>RWFTdX{FOs8-dxR6*+`*9>x*9F9Q?N5DndFTlO-mlKs|g zH?Iy*c($Jd6O#1@i2=cN-$Bd?lMEe>^)VmL)&XnUht->|mGqw`j_qEu`v<_@_wHR3 zTRW|m;oAGs{>-Q!nK0=!G89{q<0%z%9_<10GtN=FznOi@G-fr|SFu z#~T#gN-{=5k(ukdBW0fFd7kHarida+lcAzWqzoA{WN45ngb*b}#zY~>tPJr#_gt4N z^zQS1e}6sC|M6Vsp0oGaXYIAuT6?Y6Ui(}jUNTP3_~v#u0lpfQTeJr%!tKW&^b7VR z>qT3!XYV|C=as_I50&aNb@~#Y5s%=I|<~8G&Ex}yK z=F9FaBT!@+)iRMM6|HM-JQ>L6wY5XAD8s(mYbLPo>W-oi!;#8vURhHOV{h`)=sst? z4@xaIgU$~YM~V*9?#Z$L*RK| z_@T_(dzzj5d{Zmqy3WmzzTS?$_bGVp;-lwX@#m6BgE=+2M@%LY?}{H?G&TJad9HhV zgv%}|1X26-6ZKQWr{{B?Qq#`$1>ecG9jYn3hX#K9PKSL+-*)&&%qs>?;R5x+p}}zh zok1e4nl}b<~3NK3aPM9C?O>6^ENhEhI7uv;o9htw*Y zb2%AxGWx>{>kglM6c*R+4k0G1IMguU5-joUOsxF9`_~tr_4MV{lp47mAHHy*R9cscSvX(3Y--GL;@K%(Pv%h(t}P}pKEQblr)Wm_8VW<=M_h^*o9J` z;<_hjpP^o+PkEKqtpGLXoA`hxztdh5r8(-RFFPE{^Rz+uZU$3ErJD@do8YDlC%cCG zJE5-XI;Gbhf5<$46D2>k-z!pFhN9Rm@{RVO=>wbTSCG+IMCNV35OuG7raXz~!{#&f zz5c8{49aJ0#U=%gZ>cie?QmpjYwy(?5u(pkr#hHE(n=ZX^R*PxZJCyK^!wPDpe<&5 zZfi`aM_JGV>qiOCnWWF8Wl|qT^eTI%SlW;U?2nB&iMZ>O@`$E3aGK|K@U(~n+qNnd zv{?10oJ;;>2l7nQA4nU!k`7QN$eWL$ABj^W-M{)#BP1lP!8K=UP(rjjHJXT>G27nr zd~5gNDgBz9YZqc>@764_&`E^v&nJDPwX@GTLA7kl(X(PlGsHAPsnpT;+k+E%?v$`~ z559e#b>%#&?wyyu);x>A5&OMXM^34kov|u6F}Th1>E7XY4K(5<58TqmqaVI6D!Tbr zRo$>N^yb~N=x_bR<&<;MPXopT43E&CVLsfAyqXft(fagIfvz}7diZrJ%I;ST!uQ5R zNlM70_gV(LAJ&dR(H_n@RcHL^;;k>Ek&%r)F0wvEh1_LXqEuC}P5g(M z?IjB`_#$3*!I`C4j79q1m=f3XT7m%aast)bZE z+Q72ui&yVYkhoUe$R+Wl6Eo%b2v-zICi5S@8Dw8XtgCwV_*G4gciakE4^`Qp2X+V~ zM$JNkTn-ELscGEYCfoDYUh8c`tXQv^{1;QJ-6JvaoZJbd+o>KDpE&2`v9FHCbgKke z>0Q%+7P>g;a0%6m`N3ED^A2*qHLdR-w&pZP7RYy|2ES!_QRM>s_UJ>zK+X5#b1xE+ z;WvHc&iEBn?pOFStQ{w6B@!w;J{Th7qVJT$|IOx5xb#iO>$c)2V*IKTH5iPn%NH%H z{jSBEPW-~qAW~gF&S1pQYXKmZmkJE?G-|+6DBLd<;NaX9cq4qrQr#r6@l6uwd{#FA^a*&^WFuEnGWm z(jKAvBrxcNUapqCA;Hi`Z zf8K7q_qN(aU7hh)WPZm6t%aMObBt6U!&s%c#d5YM7B2E!Ra9~s8#(ym%utVYw$M++ zS2(BS<4Fz`-knr&23+;M8#U}WacjM1S82AYU!L*NAz9Tk_L^QCNxd@;u=3(|C_V)KOJC*P{o z4-3yvEl}-_v5^X^)z6VgwdKxW%`aOp*z0K))G$ljg`OkXT3&p%O7x~CUA*+0&+SkO`qE>&|XutO~n@6V`qHlQo?u>WpYq+#lvCuF0-5({@PLA&qet;Lh^~v zbIz0&W#7;jXYyMQ@NgZG@f}yKk|`W68e!RLDfjw-_iQ>x&&U4xWJ5!pf+V93!;^ac z`8RruQi$Y{v&Bu@TNLgev+^ue@*Kr9@4M_V<|&r!S{PdR+^4$xzuWH z(p+-=vfj@&%pHd>Ft_Gf-HC$@^(`!%V^dJ}fh)#1wJD@9cOM^hG6S|TB`iT5V4Y`Q zwv8m7m3E@&>gyfK^q1%`(DjPmQ-RxpC$i|x;JJ)6!6C&JZNhvARrzz1+w2XC zACI&_pCnwfTs$4(Zai4pbvphbX`06U`9)gdF*hOiwqknPPc++UV#RJ3iS*NKzg7Rt z)MKP&xQpKR;py7r2gj@9-5uTdeaaFSlCX6OD^A`MZcXox|Fm~{(f9rRGpMhJbLG$ z=f%zgrCDO$nXyhiqntgy@GPnP#`%v<4=LnnN`F?K&ViguP`UK1(nbDb;pqtTjKr{% z?{c*Yb1YImV?z;VKP$vc?U!A|Sk;@{$Y-Rqm4y~)&5Qfd6sxAV&fWaneXQ(-h^cT? zt03^hn0xPd@W;V((S_f(YTSLeq(WSrHQB`QvG{#vK6OHuANR{xm<2Ul8;ioLU@Yy~~fJcF8;P(61dl?&r3#H&q$5`xORlu5SU_3Yl;8esBy z;a>G#PdD3=OYAdIJZU>~HBatcYKGIw=83&`Kp1uw={RxKolPiR+FtRnTW|x%3+qmS zju)JNb>RfP!7e2<)*1W9Rcjz~5&N>52DpD^mCr4z{E?DDD&v@?mKKM3}E>-?GvdOVYo5E6|s{M@{bkrKch<&gEpq$Dj2L zEu@RUq_>+f*~riZc#BKyXzGqd!%`QQM-P7hm=F0e8R&^xTjlhA#fT<%h178OM~Uti zq<(sMKlUyr=6rD;3;NLb%J7}j&j8+3gGGIIe-bq-Zada7TRqmNzKb#6y<*n===pbt zpCUS;$qyTXDT99|&y?#O3?BYeyNfFBZAJWt)7!-Cg6rLr&+kIrZzS=pyOA?yGF9;m z!6sxVnn2<-J|O!gL&oM((3d(!?A(uuW8KAL`Iz!S|>* z#+eg~`T;eHNGLy9NxfurYfRc=@ZfNJAUs3V%SprN6uc95#k4-~A)jFMp1Zpm zB)@(0poj0W%VS{=SL7h)JBjErr<#}u%78pg@ZlcYD{+W|2U10*F_e7%y0b%f*2nvb z_w$1uy@8Ct0^IVe0xx;#$`x->zu=`GJ^VE0gT-X=#G6H|Ss zXqaN8(sSzKIoU4K;F(>K89@Uryh2>iFSzRL4U2?fZ{Z)v?Bsr_|HQ>=sYovqYk})wTBs%f2n4%*G5Z zjjUS_DSa^wwcB~Qv8vaE{cfha#biN8+X27X=!ojGPX;p{^KBE1lH4jLxtWS;huV{G#QQ`LIsL4D~O`9rk3ZnU@N+XYP(yYDL@g&glYc5NDiM84H- z3+4axct@24@1dOD)UT3$4>MUp;P@~3Am`%dpX2YYUS zJaVAzO8Uo=gs&$LpFaV-mFTgj$`Oa^SN%lekY>6zx<_YErO`no|sYU?R(%?r@pq`b5O0VrhhwJ!4vqhmR-oDZXelQ z#@dc8;Zeo=7kWcpJfc6t9txp9r6p-5vnzElQ)Jq>Fj;3yYf(bA0r}~{geVN9qky^c zPUVAbhko={G8fO~M>Rh?{J#3xbakD5V#N*T%)z(heg5t5ea8#Jj(ue{yxP~`+gDE` z5LR%-L90RfYTO5=<4>;KJKlU#g+7}7=gTy@n+pL915){)Ub1|Kv+j;wSeT54ZAq!{ z4d3&+Vl?6&wC2rrd#dI+fh>F1_eY;D@T*QPc&c!Y*SYu4-f(}Wn$EVAO?ss(n`C$9 zHs}8M-PBG$Y|cyB{XC*e@5iI-cwXNDOA zG@qJ8mVG@!8TOj^v*5z<=t{#kKE@J{t{<6As2RPIJ=?wXC=jLtiJBio*< zx#{)3YBICo;+Mk-@ms^ZevsT4S)vJ*+TW&j;+Vh2o_D>6yc=8&&b?yY(Z(vAD8~_> z;2)^{bv!>am98YQ@@H^z#@RciiKn8h_*sooFTJ@G8~9iWda&mUQUoXhp)?kchT#rc$G&16h47`@esrq`%O?L}L8;z?4<+*F`#s z6Y>203YSU3Cg7(!*`D{fKbW_59B2IT@#K4oJA$W%VKv{>hLPxq5$^bhO~^xt0zdED zQX0jgE}XII!}YIjKH1Nr8^QK6-%aA~J9%Gvvl;H-iea68#!Ohr)eXTW*7D=Z@NF4XMOdRft$R2Wm2+bRxqJ7 zeojQCrKjih+;|K z>kj7wqpAl_*bdoU%TAkoSysIGH2Ga4$46~hvB;t$qIt##znR>8cxrDo^@o7tkM6Kg zJ6hGupV&=DVV(Q-i|vU5y(f)Tmk!@(CC+>rY`K3Mb!$7%TxooIMy3h-MHuzWnZ)*1 z)}wdX(GPQzC(ciZ^?j$|{m4r`_e1k~T9sixToh)IW=Zy{_7cgl1;4O;m+wcHo_QHx zmsG^3&3W&}p*{Jh_K!;%e|XF#WhGqd**X;Qg-f+UYkN1Z*wO)JW67QOVozK=YOA1r z;}}(u@%a7D7no}kg8FQMZr;5a8CR=5b#AM=U|AVS%a6UhOi z%ap~d&E#XX&f8lP1<7a0#b4LJmXwY=H8I~Y{{C&&o@4fE=}pPX*vU`oq@}qqM=xmY z@Pt`ljY&Xk?+sIucGx7UtBCUg)jKC+)`dtjU~_U&v3lc&f`0ijQKrjJ>QuRULq|{N z+&8@6S4({9LDB@8DXiYRg}8KBWk)KjKku;-x5ttgTMONTw>rCc+<($M+7qY!W71@F zm-LqP9zE!%gC4yAeD%Epm<`?yg!!{~1L^j-&?Ct{&l>+A_HL^-dQosErgWZ9GNGD@1vw5f*o_)WfVD6BeWUv&D*_nO(y zjZK|JMV&<*Z7zpLZzl-@FRiZ6uJ723oGI`YXvn>SdaZ1hBQWm=_oh&hDz^oak!>d? zoF#tlR{AL@;8N0cn8=B}fLz`2gpI3MJ+=RjFy&NAzr5X@UmMV+k9xe$!R(xuzUb1^ zyqihrxXestzNdzYQNdoNkf*y=O~IFcU-q-ilVa>1c0KLU0yZ2G$WJr59jsBB6z}w&$_ikNDZx%hN$9o$T!rtCF*FZ1 zbx@2!MEb%)WJy!k%o?}#@$INFD;T>a#KWs_oWAYt=!cNgdOKjE9CA?wrQa?jM|xT6 zJk}R=Y+p1TyQV@Po>V44Z)}mOrWtCdo9*3TwMUre^v@FC+}SfvW_|jc;;!eZ-A=xB zrdwR_@-EFC{9>*78j&KD$T_u%8z+x(qgl$V;^2YHSKnar z6XIu>Jj}%(5a~p6=uxRwQzEyyN+56Y-L~(cw{@Ggqq~0HYGRNhI|1?j%|(_IP_ni> z>V6x@hYxm9aVke6XNt>+v-ca3H-CzL@pNmqeC_T+1qXWZcwXu3V?_Z+$R@Zi?)8#+ z!6JRGjGJ%jgC06_ID=0hQu`1=zTVW;gv z-CJdd^Z)`MBP2PMRxDbI8gv-NCi&}rTFK8T-9Whm%gGvB}uHPvmU zQYObSk&LXAev<4&d4hZ%w#3wz_Z>;0WS*NWX`xIuW#1i>YP&~ zlkA(uGyXJ`$8twT2Nk}4**af1qI#>i>Kd)rh3Y<*n;$=pXHLj-B@3}4iiER!)v5PFC=V0q zseKDN6eIRR>O$bb7q;B74B;0kG8V*LtljvxJURDGlXIlCI3n_qrr4_o-IoU=8Y|F0 z&1&iTzqPCGrwq8~)q1M?nipGxmy6ozohFHKKJPDC7kC_<9C1rRjNB0_XXxlAK3w!> zka;5BnkC#$WZ|RV+?#e2Cd`$tVdF=oA7jX;O6-?txJG*JM}NKl=+j`E=vRxUUzq&L zn!jm{%=6hx54lJPME4x0`xxo_a%|hS{h=byxg;2KWBMf+FUP6%^mT1He_hS>Vme7B z8OCvK`2V(7YPWP%UCb#=a zTFuU$r)hz9(K{rq8bc)Z*zNsX8dOVDm=PS(^>{3H;H%5b#6W)gZMzvy{gK>42mi^v z2*oe*_L6U$Zv=;nRfNPHdn5F)=-KPa7N@%tsV`>YIr<{b`n))?jh55;B!gqJ?4Iw9 zXUooNpJ%jTghZ2P%xkkHZ@tBSg!ogrd;uAaE%Q+_o@mqdB_i{X=^w@IVwmj-dMqMc z5hcZWb8{hvP=2%_U9)*<$I!8XgDO3B4zFwc9OCwApgG5mbfiD0FYtRYK2Il@-`+T^ z#9HOc_%F!qm033`{>icx%t5ZVga2AWN!|Sm3_P(N%ke;`k~p@0WJSmny(u&Y$b_y zT#OwV%E~&UHT`9}r00R!DAiK)Qntxxi7)lc$$f?2k1clCCC>i zy0!`@H%<&7q(j=e7OixwJ>=PJ+A-=^#G1HAPYRYk%w94o?OvLOu)ZjsvEc9imhB8X z-_1C_Z>ghkC~}6fdGX8iHvsUdXbf!x-qcs$E1S5hVYqi%EcBhAg4vHD(KDX!NEyA8 z!jzlF82vJkdK4EfR5Tu-D<-WlSP%q$O5kAk2b~AfiCtsa+gXv_Y_qdJdsC~E^4%(4 z7e(fA{^)I4prlB>#!eI!TsUDIGF1J*|Lfw3NAm;9IdL3BCyo{ToEq41!B+qK#p*ia zUI}!2s^@s^=!3MXdWFyL&lFa7EU<=_C@wCDo^z^t!GP`#DI4sKXdByZXnwu%?EU?c z7!q${>hh+q#@RA7?YHz4XL>3c!@Dt;D`f7x;+smKAOGyQ_cEsb%ZX1)#}e4zUDRgi z*me|kTt6X>>r|a8`_g73rCf)5rIJWo|?Z3U{*5iSqVg@!? za&v&ax~EeH=a_l+*1G{cjpb#>Zv{j>|6b_Tbgs|e^aHU=zKLjTk3zFynyIo^QNjT- z=<%q@Ydlvh_6XCp1ss4Jcs@!@B>QHT=Y*GNzF&BO`onikW7~*nWCk9V%eDRBC`~b) zo!)v(;^s?=bB))(i*b*gfZVozaDMNnHo*)!mK`0WBjJv_7g^zc9z$EM%vWaH5D(^~ z28ah^!#ao$%$}~CG^gQ6M=YF82|XZg?oioB9rkgA-sxPttv`#R)``R0KUl$p?BlkF z1vb1-r{AZ_$}A~qJk4>JIT%7>^xCDS<;6t??*3~-H}qnv4m>yEetdU`ql;Nor_-;zeEcQN`{i>elr%|(n~^r)9Q#D{hps7C((E{qZ$e!k$*e55a-M<|6~@hc&;%ayW7~O4iwu??_-({^aq|@k24R0j@?$we@X~ zFD+NX*u@tRW&RM15Tk5i3i|?G{?S>s2lHO1^k&qgGY(tySLyI;Rh4(-dDn--IysN2 z*IQ`}y?z8sV%mP66>g)bWc`krxkpheQR}YlWBzCinm3IjtlNW$V!+2{zkAcOQTay` zoU)F)C`zpAnq-AN<@%BprL}!1N9ar4n$yo`Cx-ko%+67P9@fkDfo3|JB2Q z!To*AP^}=GHtfQ6|Jp^V#k5Bp$=Ww=p)RF!o3M36)pbQE6&Gqrrr28Fa(epu3|A#N1d^`@?|Dk79`>mJ2x2N&-QJy58XWpjFW z=!7^s@ypLKgQw1+ps%$29^EmCdJ1E}IJ+?$7FF$JoqAnwrP9_hV?y)9qde}lc+zF5 zH&i4D&MVXf!%%r+=7@LPX>za6y|X*W*e_qsUNHFeg7`?>jp;$%;v)$|Y_ZqEg((w) zj;HOOe4ZEG)y{Axn!#MihB6_FpZSHvi27}k_@1b!Bai3#{LeHAn+yr$ze~`dbURV1 ze_H#QMHa{H8#{R!YF;R0)R%90@m4Xoa?gM`k#K2W)E@h1dWs4=1)f)3)?qal=iDzL z#lvxqqXko*VMx8>{mnP8Z*Q%LKOdQOEl%9whREcUXaMQGM>)ptuRjXm=x{JfHH{}X zd7$QI%$0)JU3%m*YQF7p%<;y&Gu!sYO$!n8-cUooc&XLlouLG zt3uhAKr=L$$82tSvfef=48uP5{Ss$^CJ|E~#?x|`qg+f~T5A*Wb6{-^U&Xf?(bGF1W zt7s3fIqkZrySuBSQ=(G5!(S(pdCC6?k=H5DuQ60*$A40d?iE%N^pZc1Dd)_2MtPLK zp}6W$)6a$WH2a6FuMS7En4TkQJINsM{Q%eg%C8j%jL&hzF>ZH&@b@CAyEv*f_Q$Hd zGqY5mD)}_jXS=@~df&oiN~nmIC3583y{}v~-^}DIzVd{2-M@32u0J$Q&e^Dm#df!y zK9S$87I>a5`*$}Uf6az&_o{UM)+Yb3M*&wkm`>IT?|Nw@Dk-AZW02w>SQ6Dzd4Qqm zdoClh)b|~SW4BvNgp<{LyAvh-w$=+~GXX^v(=*9$*Xf)Re0Qer{QcIT)D#(1u?>$+ zU2*5cTmU4+H}n=Gf4J_gpLLhJFL$O%G#&#}Xzw(!WO-qt8UCzBm!jOqiRzWk{_>6hD)PNq zXBTS}vU2X(4+M~0LCq+>Gfq7be)9|6?z}R~akb{qy^H0~L(Y}Wh+lCG+RmDqQaI5a zYynN;Rs5pe7(jAwSW_o4nKe9`A;O5L5TkxDI#0>H?ud7LTtm8k^Z6g#xdTVVD(3iG z+rK@wvpI!oeOAU$S9vP$t$E~qZ%%RYJgxbeQzaAc1E!=)3(De0+Zd$#tPVjWG$FaI zWR)c1&Bw6G6(LbN z4$U9bT-%=3kKUo4zGwWJ7c=Uo5W{>t%g|_eh&n!2d7$#JL%xrrY#QZ-B8?-J0zP#5(;Azs2hxduE-4_cm~c9&1bu+K}q(5Ntc6B>OlU4@>*Njt2B_u+T* zBpGA5=!A~MkX-MNJH$xlv6Ed56> z^|Cpc=j`n15uz&1Zd#H)6MtJqLC6Q%qcc8peExIij~g$KS+KBrjJKzssQTHuC3k-U zyvuToN9hKFyl8K3J+H}Ke&uc?@-PecXzi_?zWSw^*%U*eegz5Ea%Zc2x-_nF425?l zxhn6{3T2Nm=rOQ)&+4q@&(V=-!jpLahGTm5CGGF0-RH~OS_gJY6%4kBF__h-9y0pK zHL`~-+Oys_Uict<{-aQ9I_n$W(p-O3NzGd(;1!BYshG;32Ej8o5q^+jO(ODbMdva{ z&5)xH@{dsEVD!F(@2&lwBREZU#GG0(HC>wG{Gy?fXUBN+xmYh_-Y+u~!M1Lpg}MP6 zxwj!M)?z9#7c&!JZz9qzdCe&+`JK6oxUbt@%K9j4`a|BcN;8pJLlfKT+{Iv)rCTcG znh!M0g>OcnB90%3E80mdq|7!D6b5DlfvUTBnt56=3Ge~c+^w8FnZS4fxNha);^l5(4?Q;5VeKpjiYDuv)ru7KB;NhI8i{a2WX+bFS2B5ETh;<&uZ zMbzKsB8rfU=nc4t`gNeu1Uo|h3Kv1_5il*#`mjY!}$I> zH(_hI3EPO9z@)Zp+40DU*{$QXUcJQ9frUWy~YoMfiE3jLnZ>- zo4;x|5x8N-lZhQokRk%R3BE6J4Vj=<_gBe8;)Z#dOeA(Re z8oPvj`^lg4FkF1wv;4brklzv{=qK!^0N%BBELxAA1IOy2|s33Px7 zxw&dJfruH1!kNG@+=B_KU}x#UWB|c63C^hMkYziuEcIa2qz(Zi6X1Xw%H;U^NL*)Npuz*!mqR!hD6+sgdbz#j zD8Psb=(86#%tsKo*1tq~KpitrGe;L2e4m#MrKFVy00zL8`vo8po@SOnMJ9gmbpnLU z!*-c)gjcWz2vkK?i3uhwyzJnCZp?B`bu4Y9*6|cX9q^_9k~|a|vb;0&Uyw(b9JQW%E6eg&-V%_9#z1g37`VEj z>;XGjmp4tQqY)6C@&R>MC6a)>|BZfv8FK^r33kyE(!UAOtCVg+-hUAUa5lgX^*TWy zoCFA!n1B!hF!B{qIb}fd=@dHh2G8z`Y$H&FjXC&_(*OU0ZJ=GpQ@g%1Al85{ z{%>pp(E)r@8$4+fwr$KS0#Y^>vHvr<`u#MEgAee%A{gzB&BniwHgMv@KVUuEKwJP{ z{EyH7f6OZo3&0bzo>p)=#~1&fF$kRG@vW|ZC>ZMFiwPM7xFtXa8P3!BMH*9@;G0>US4iV_b#`JDP84LmV zi3q%-xZdZ3fnh)XdF#mmogjQMA*(l>_X(KyyEzI5I#KvmH+bk89{iJ|yZ)gB++O1V zu748Yq7$Kq@Q=J+?cP5z7!0vD?<*K{RR5_}G8q0~j3RAF-Z-HU1F{0|!DHFwR;N(-8QTFbtp?xL|TK7ag`y z*s~#-Sg!{OGzYps1Y83n<=@au=zS7!ZM{SS57!{VUfj&X3cKPAl~vSNRF~kA zP*TT$5jqfNTDaS}db+qX!Ej5KxK%T3WnjU`&fUXP!q&{4NdN{_G{b*~Lv`#dJ#9S< znD{}z4)~8<<94=iv9xox0ScYPoIUJT&NaNuJ+Vvc*vKA;M)7M*V1W56eE@Zu(sEe( zV0`Nc#MxeOJ?dBb_z1{D;>m-cK)f3poMQjb;LMCaTRuVv&ynB~6X6x$`*IBoI2qx} z;1~=O_On_OxN}WQ_!53lHGpU1jzAqW80zB7*Bv)(g^vl>&dPrRb^}QSAW{w8gw43( zWj=$vTNxOvRIHr*I%<-3*49=)k^_*{U;yER%9uGhnL$uc4Lcj)$j=XTGP7`ZaRwZF zs3njUVPOFzFBq*3E;vvAI=IRb%6igzTuK_^O2}Ua7ml+_8xAfCzB;gnTQMc7+H1Gl1T3Nmu?@|u7sE6Itk7iJt*w6U_G38Wc= zSm`fnjl?ZW&WgOC;3xuS{IL>(cJSAMQdQPdmDLBekpI_#f?;sD&xRvKKsXA9Cme!; zVI}l8e=D8Xq|Ul>H~=kRKLmg4>R`+GL3j{QIutg22QTY@%HXX3rYf@vNa98ae<$>R zRv7}Fz&Ve<@>)SzPew)s;I)R{dXxM+tsvmFz>1InKq%H7`_12md?Kh1l*9Ny+>7Ai z+6LD(fduDQg8J)f5R_rt`fWLy53_c#a00jKU}1~@qgwMpo$Q>wJOKO-0FMEb*3QDr(ahPBU{t{w@Yg|AQPI@_235+--Nn_)%vr+4 z$<@o#%3aCD(#qYLN8H8H5t!tBMKWJn9WKOaQ%V3jqKduVYL|aIp#r zY8ny<0pTD_jsgM%I0$nC`T`!YS8(h{0L~!-@W2ru{>jILf%6ft{m%`^D)(1RpT4G& zil!=P`qo=M9O}NY<%1Ep8NizQO7E~#BSE-*t?(d0^Mw~KB%tjGaOMFL_V|&YkRiYo zCVY)wjvI<0c9O+U+pAAQ18_G6;42zbNqjpP5Y-0H*0qHJBW--m)s_%o(2KzLh6xU? z&muu&9RtiHD6A6#L4qkT1a~t5y(1VOz=q)^d9W{$45W>9lr`2oTY zgF2cynOg$i&`=Mo9{}|<^8z4ssD-T^1df1Oxq8?+0zLr}19i1>w{x+CTDSmS1A(%D zo%~f<#Kjdgbd)wz7CB&b#Lhz9%Ersl%zYzm;m5f@8)^$bhCo{Y`thy<68vrO)iGJ+ zGaQH{upjIdesEp~{{y3obq@dOv)T?;$50@24r(0O9==Tk7_}|eg<#9kAU#NMfr+4v zmAlXY7Rbkh0A@TSfQlgiiNPP?K)Mk~6>yy&Xo(+uCiWW|h%d0Uu&yb11ir%oa03qL z3>;V<23r7*DBv6c9D&bT`NCPDP2~$){2$FOFg(_F1mdx>#~N4?STQE5(&DP}GN9ME z-k5-Hwfe@!WD~a$aK+d56Bkx&+D`(=``_x(CSD`K#I@2}B_%C=WpU7SqJNziaI4T8 zcNUE#kaU1gcu5xk=LJxv)>)`uByEFo1ejrmtq0=+kXOPDxSi~hw^=u^*HLSo ze&7o5w=B48nnD67FZQ$A7;q~DdpqH0wG^0J9Q8Yytqx2%dwwkCO)Mf5JK|SFvNb z4g$n^f!I1&2oUtq2;>p(vmyBjgVsN_u{ezRSBF?tR$fP34;MadfWP33$UpkKDD;XG zfE6jQlLUmXbQ)Lk+j2aN0^GCQ0-A5FFfPwon^`un_&-`UKm@Vj22x;MR6)3mv?6{= z67q6VdYgzJmU%#s4@ffJgl!aA;PSmTmO&ugA+TX9_zM#fU^VuGV=w;fH%G{C$_QH9 zs1|5*mY;_$2c(za>9{MnYbzz-(^k%wDgE`X)waNzSgjy<%K!NNkNSsi6MWJdD+f;D zn_D@s_&*BPW>$@G^?60Cw54>_G-W{DT<-z>1{vK9*$}|G)p+=fKs_;_%HWk01DHc# z3nGD%qQJZ-eEBa&f_7F*5WviZ{VZQut|I_|O)zX`B(S}P5IKawR)LNUn_F!dZxc`; z7=l_}@c@Q$dBp@9w!-)UGz5cn-XLhuBPO^V=s%%j4Wvu{9>*tKp#Qfs+n*sDe*|d| zhBwl7j(|;pN;?AEL?x|&^)M@_qLs6ar!CMajIgkWr@NJz6T~~#=$epo1>YX&lkwu{ zhl)$cfU=`{{Q2zd#-cYxk8vtnh&*0iN4wJ#}A1?BH&4 z_ue=a)2LYAue+YUQ&D$ehVS&;gF3C#eqOV~$0B;SQ=atq&`B4$>oBdAhn_{g;W?&K znY>#o;t{6uB31HOcC)8%HT@Dj)fPHY?dOLMN;h7F=w9VS{P@7s?jFD8vDRs^9Rb9- z460^MQa&MDKAd`&B~#h1oX-|}Dl@S2*jTezX>CovnP_FZ8}%VIv%LwOT)G{;U9$zT z8Bj4{5BQ=nBw4BH9pdPVqm85cY8-CzR%nWl`J8USuKX>t0H2ad5L~aQn6A98gp@R( zVj6nuR1CMP1*++y%S zl+~NoeS;v@s4=!214NV9&uU#P9R$xpgUjoy#mnCaYOE_`5&$A%-~;486E=)Rm2k+? z>K(xOTKoEYa2<@a|D%1ygX_SWp_iklovWh{kWvjb_i}W!^85vHM*zs7yPcC21c?L| z7+pO)T~-lzsFk;!2X>FN9e~CIhzbBPx&mTkXMqI<*TVC7q~66H>gna~?BQwWXys^S z?Fo!LKh)ga%mO^aeZxWhSn)77vvBZm1iW1W&lW_}e)Z4f^|fS`b+JM4I*4XDy<$UY z1Uk3kG9Xv5NMMx#i*2ub2u9~my-32}V_nfAIXNwLH5C9h6H{6bo8gkkH}-6Ru~{W^ z)v*B<@qR0UfQbE1<-fvk%SqasdXQMb{*QtP^vuJ|)6T=%&dLKwz=k?nd3dVbomC)C}2`5S@Qul(pbArPyht*R!k3`*2GySz;FhJD{epa5I- zKMBmL4O{uP=Kgi*0Lyv(n@SYH+ym16FBWgi^Y3Ao?pS6R|k)dv)G zlYo~Ht%LEeN7TV}<4wR@1cB`$gzNaRfEAE#fIa?+?MHzMiOtDEFE1;g!2HlPBDJE@ zC~zuWQwE9}_DKlrbP2$<2w)8qf8+=7d<3v?hdt*9(MMnb4>+QMKnbja5daodvDyL$ z;u1LED8aF?9JUo8X%-6u0_`IH4TwW9&?~dAzPzHItm>Z(#zyP^04bY{1q`)1IRlwp z_=yB?qkujw$6J7?t^u*Ii{!WkPYf2QTj4N{w^(@V*F{fkOZa8aUt7c8wF-#=XFz+{ zg--B;U3LVr?2rJak9BFV*RU`vzCIEN-LNhy_8Qi~#x0GafXM?3qv5c9>^)d__Lq^z zjye!N;+H+~$BmXhu~P6a7eGOYT6yv>oLae#r|th|<-oG>S_Afb0GV*Z-oKt7Q8>WZ z(j0L1tvy#xa85S?yo`ogTLWvs5I7(31vqR1G=mmoo#E3~m6B2d+;J)0b^bVRd;G?Z zE@5=IqDV+Ugn`c*M&b5SKa7a%u*6cy@$00A{H~8W z*2x5qqx30YK16ILWH~799c`TqEFWm8Ez~L=^7AufC>B7%U-Io*TJ(M{x8>PHq3+q^ zdOA8vNVyc#NpW$q6I+`#YJD>Wwmn!>c0#_IQ++IVtIW2}J0XOIPdfXOv7oW2U5voU z)Ta-IGtoU1S&X5VGj~o_1E3^AAb(U*jXFcrvh{L0hfKc$Sq!VGlBshQ;ur3_%*AN7` z@PM~KpzeSb_@nfFe!^9k&9##sC9oOp$x`hv`g{Z2vjxCC**@qonq78OiJCl`S!mx= z`&q+6JTs5N&I< z-Bj>{??^eVzvnj%w6s6NWM3Q9ud76Gtcv#d}Y{5jhI^Rex$9p2EsnUXMUtEr>50uUCA+os}z!uc5A`rGv$qH1yUZ4!9RPtD zg`IJj=!VcJE-%^36?e3BIq3|%tYG=X+!5zbAy+KpKjNorvYGz{TnfmKxtTk`WR2V2 z^s51u)zVcK+bkwsn**>>P>Orw-^RWRW{o(nMnY=^3k|-@;}_vr78`8z2t*ZdLTBes ztsidZ<*(h9P*>EKQ3nyS^^Vx`68VNx2>?c}I%2DsE0D~;RzQCb4HDwO|JD)xJuFJN z+`3|-6vY&^6r?wuWeE~Jkn4em<+Z*Ixq>2aPhqgtbOyknV9gw6C50M4z5?I^BmN9~ z1h0U~PH^=%W@9;r44W&qdIOLvLNE+}EFz#UwJahl{af8|2WEFFn>ksn+mt5`ym}UR z^DGZP;6PwgFR;(Yt|{7hFrko0U>7G;%mZsWum!+-SxKr!{uw~f0Ay8cQ zw3xGvqZQzjKs7wAoU{SN83I+Z^Y8#R>w!QtXx^dNeSW};YuUkN5datl1GZ&o7_=`O zAjQB`Zv|(9;r1x3Zur7oSnln5cK~=a;VwXlm1R)@G=Y0yVQFe+Zfa?1={2)AcMD9@ zUlzW2)oku?UFXlj(fN<@N*P_pUv(Ylb|{5X&N1-(5DHoHy}D&PoY}(JEXd=Gn3bCK zDd|gr(z*8o?DQehImOP2_HOQe9aZizaTHI*4bvwzRxaHmb zH*ej7-NGcg)u}u1IObQ*~`&F$6}GsYoCcblgD5C>{Ch}Vvo6Bkp9J~QYx)uvKFFW^NvGc z51F3Oy*WKTepAK5$a;4LzM=!)Z9d+SqEu*74i_QIaz~;Hhey1wM?2J0TxrdQ*3&3l zzWnaWZFdmg@-xbU7(i?VC&x)QxcnRaT|PJA;S1JkdWh zvs87GkEIo66((xjBDW6k$skfnXZ-k-E31e+5t@4YfK~Dwr@uE-bJI2+vags<>5LlU zy4xr94SEIxFD zPkeKiF{1P=mn&74SJ(x0m6&ORdzsZI8%2X7*~7VSnafewsFyMy+c~biZ8rsmHj%Bl zIK-Vk&pYyIVhR)Wu`QX_<^zb>%Fxc7lr$7vuUe_s8*}8lgpPK6X=^L_@xk2?E6c#6 z$fbR9h83 z_Lzlj(wXJQ7U1`4E=)$=Ahsl4dUd1!r_X0rD}igoHue@%eNfsW1>p~3!7u08UYZ+D z@RpG3ZqfDG!3CqB**7IYWGSH{`pp*Ft$6bt$+1h{$jt6ia?Z(C4V;T(x%K_AWZ9dp zqu*_lgK8yXOF~r+B&*;0(AO^)bf$#yvF+Y!wa;d?7ic@KbzQy%^=lyw4iml0Oma`7 z{&SB<9H* zUPsUmC%#{3(SFs7;PB78qk0ooOFgZ$_)@f%UE<5_{2lEbLE8#M419ht*}fX6^2_I< zyYXo2NRZp7*O*LRp$hh$3ui||#iOkIu06kIN|W;;r7q`u1>~tSBg@g?{SD`p94A-@ zcAd4XBDr<+41ec0g-Z<+QoYf4JNp~%g?o9__gB`3CLP#gsoAlE`eW_aqjY)xW$_LC zwR<1Ms@!or@VO-X$JfvOce@!ToXC#v?X>cN2nUAuq7Ur8e`5I1Y2iJFC@!068fKw* z5`WjHkev=;5ma%5;(4swk-a<}0FD!|0*(T91TFg=t8)Qxk!VJhS3rbp7NSOks6E@AE+KtGmqjO1y`8 zN9l!e|9#Y^re>C}xUy_r8=$G&wTiFV)!xXy)8xy~N3^Q(@$)^@bbY17Q>&=_N@Glk zyGFKNiF>QNJ7wTx1YARblM3O;FE0ia$C?azSmJpMKPKg&yFpgCzl%bQQURlOonVc^> zJ9(VNERT#u?k(?=`MDe2cZ&ULG4gcP+*NK|qFzq~O^K@@A(`e2LV?8>#>Wo(m0o&y z-BPyp>A9=)GvRZRSzR4v(=*?{d%4^Ao|-GD+baC^`>DX#4(7QZ0Wyd>44TFJXA!%{ z$aZ11Jw}7yZnC7+QC#%g)!TUGP+V+3&FM}j;qnV?v-_P@NiKIPsRRtn^gf$;qCj$v z;j&+}$8Kgnj4atXt1(is*uxDJ+D*X^_lwjBFb}61pFdQT8x++O5xm3SVNv{aEn78% zP2ziwlo)YZ)u9*SCrVQ5sjT1c!|>;A5wy+Ru`4n)=CZZ!&|B~F9aCh}R8iDZDSZ1f zpI$3(J~3t}xhvpf2({S>x!ce|$E_w!)FbB)ym&u{Lhd55iqw?8v9)o+gB?n>U*Ft; z?MwU(jCgK4odo#{vu&EH&1sReRCHpFKGWw(A2`z1>eHf3w>v%OZF)>P{Dtn#YskZr z@6QFK$FIJL5FANGm4%J>G25|(iqyle#Ar7UqMNgy+$y=0ks%p-RXgIoRsI%_${|C$ z7^8}lBgryMInzCnBzCfLX!~!}qC@9=SZ||zPCt&c=;>|h;QEnt>8`}Cmi8|_25)V} z3yAYCT&@zm__?>H?lLLW0IQ?@?T0%IY#sJJ+D7%rJb`*Cu_|_7DoHe4>6p1spEhZ= zf~FJZ?!y1B!!SMq9d=Stk)<@F z|5;^ZQ|+an*%pDCm$Kx&v_xWw2-0Q082M&V?NF?zCru13En6#9g!Y@Rk?N=V_IB-A zF^|=5U0}Mn$Rx(5;*-j>PhTea*;M_EkL@I7^QYn--+c_F)l9zB<_ChOTacQXiv=?V zJ3_SnKhDlFDzYp~+dyK8TjK7JK;Z7~?(S}hOXBYC?(UYjySq!`Zi(wh)pS)?cTdmP zGptxF?upBfSaJ3}Ti*TbWTUeh;E1Bhg6CSFCSV&c{b?=1WigtAn6Ss830iXzoxY-m zpc~$_&944&ZB2quC6XVtZJK=|U)10kB`7Q7U^>f1g@rY{Bh>AAnfZS_RBzI*l#Pz~ zcI%epJH(s2ts>fdh69J;v5w|2Y*(=E9%P*Fx{W2=IXe(kAzq{C2^(GX34`f-%0oyy zz5D*vO+qMJig!{wmnlAP!WOR&f8-Xvf7@AEg;@ux%4-Y()c-&e)kkq9QD5|@N!l%y z*2xA4Q+Fjypaz$QedL1a5*etH)4~fBydH1|FXdh6W|BO1kbYB^Te(Q&;QshQk4z#Y zt+R2uzICdjBPsPJ=(Mm6i5g`DoBYI{X17_D_$6BiVx~^V=mqZ~OCm1X>wjag|FJ{( zFEo-r4VLb=^gaVVGaKU{N9tdELbi{;|DK2XxCiQ^0r8JK)W5aY-x5^+!-4vD62~72 z>JRe9e}Ovwt_uD~bN#(g{r4l6p7yte|FyX?u`>U~T&1FTEal};f-b1RLgY(HiDT7& zkiuCJ*DrK0JdhQJh*^|Q)3l)Ltf1ldxbI$VsqsP0CHC-{O5jc9=2Wb(qLU%_kN5ZI z%k6CG>X*}y!dc&UaEs<=U{3%J()aE?&>NZv!fVW2EMNAw&YjX7^_=P>9I^0g87d+$ zyY+!2p4nH~B~9R_-7^%qgC)_Sb5M#K^ypYg9yzsBZX|DF;{*hXv<$O5y@EAiE@N$c zk%!R9+#i9+n&5aa(8#{GaSFLjxEZmz6jsT|p|GGqHVX~gcPt8_WSx>MJ|X~w9>na# zPz>z?pf3%hCfbvF_3_aYT|>e{;@XJ)!F2qS_|voEh~<_AuEH|c>7|neAsh0#4Vn;E z`qW@pgTkp-7pl;VrgXkXj%zefm(E=QDn_%l3PLMd;IOdtg4waMB&TVIuGtkclpAr> z3@X`S7ig=kK0OyAu5Lr^X6w?BNn9;y62>^e9Qw+=Te1s%GIOj%0(*8K#K;O7lOGc+ z8$ai_BhUtWrbH2kCaL2dl3qH5j+4IO5k8q%jk2h3mBwKzXVO679`+*JZRSe-0b^!w z36>}^Dm%=PDc2ixQNN>frAG%(SzPj+y=Zk)^BL!nO~tPbWPi>h*k~?hk!a#zP2zpF zb$>taov|K^I--i{CG(ZGTKca4PM4`2+YcjItf=tDd}lpo*=(q%oUM}d>t2Dr(KKIO zxo};CIi0#_g?D>yX@bzucw)xF6!KY5s+e>9{rvqR{2ZPJRmBnSA)b8$aPq&J)>g8(OlFkA5QDl}qlBZTg-M*8hEE#1Fv z*iU${-D^KTk<=K(ZSg`9porsBT8PZw&QdzAa7(@tQA*7^?t3hK19?`q(sA%7Rx#yKg=v20cI1*V}UZwH3Ql@S3- z@MW5}(*~cObC&}*_$dk|D7V8NEl=RB`a*M!g%Kg*VG`my;Ee3*82-E8wCRHh1YDnf z&FfAc;MuSHHD}8wgwKl{6%xm#?ZNxvv*sppTZdy;2ea-ba$g7YZk2|(++3opAtNRc z9yWR#dVVoWiS{w5V=TKAPClH1NO9iW$sFA=YeRyppjGxhyJtsE?bUNy@i-ZmJ6D#w z-;MJT#gk1&8OJ%(=Hc-#RQ%8ViPRYOq@T!i1JAD-Yek;g5L!4GMRA>5VSWZ_WNNT& zcN_=Q=_+S28DHPpHEjHl)9O>ID2<q!sFmb69{|9*;6W1ybk>oLFNiuG;r=;8Bwo z8^JHHhJdu6>=D$K12Vs9U8+v2v}h>tM=k3pQ+(Ma%~Mwkn}OaaBef+aYDn9;X{0j0 zkt`B7oBO>(0^EVXQ#G9>XoIL(&j_o0h|SpCi4$VdJW@-^dg1{MTJjpG^btn|Vr$TBx#1s9{k=peWEjBI!LPWg|t@0y(IHpB!6O+z7d@ zKAgnPF>$N})CIgyhEx8T)3w42hL9QQ{fqh$A#B!}TG0otPo!P|<8%>_-Jv3|lq4`Q z1TZk$=#y}&J=vy6@fm&t)tGdg~EA?b{W+sBp;SSXGXuPZz=bCH1W_aGqGFU_6jKzu6 zuzYEbVsj386;@h@cpJ@+1?d~LX|HGT&R=G@G@h4i!}%vxlqj|3D1)^LK)j@^Pu!~- zNiVoBay56N8a!XD%Xadg$8nt}_j$@)@GZI88_hR&l(O6`iab}I&g?6jAE#GtSQZMi zbh6GZx$WSY?wzG9W{(+D182n(8c4$Ch)`iOLCZ{-z@vO2!_&cwb{UrOy+U9M4!f^( zgO5~LyZDfTXIT^G+5G16r9h{Dv<=Y&!#_q%+xekb&ftv*xH`Cw$ID}e+u6##nQzGO%`T$zvni^FyA?sw!# zNQMw7oT~6$Lg6`drMyGX^u-U(m4CJfTGvN^eG#wbn zcM(rWye>k*oc1iQclA6i&O~W|6ad;;Fm~q4{TG(GJ^D!-)H8vEc6`_v3i6&DRJfn6m61t_Q=2MbNbLs z*V)P`oEyhFPb;9jV=@&^j<%# zK6!^KaS1Z74%19H82BcPI>S(hVE(vo(aky0^A}IM`w9Dg5uO3}#@a0RbN9RO62nPa z6PK9Ft;U9Q=o3rS!mZc8dRD(P=Kd4U>R(B9zdKIUA0!WI`rkS=KU8(UQIGy54gRtC zkABm~<)41j$AA7i&*=ln|3Ae%0sujP5I_Q;`WNuphe!1RSo<&P!G~}4H_Fi>Pq$DB)L$i`< z&8Hf+Cu1( z6-R1h50#RM3Bx`S)s)c)(0=KwT$TXM0pvNh>uV*i8~IsCGeNfC?zVPpq7b;?U6vBT!;32w@Yl3*Va_V=gFQM zvWJEeBAkvAZ!$@!P<>Q)tgOA%9UcX|O5Tmt&B~+4nC6*=99{@6=c?r{=Qii!Oh)oor&``U znPm&#F|@W*rnpsUg!U$6uAE`VVzpz{mMKRi>}fFTE|V;bJ>eem*N)vbIm% zdW@@Rw7?dijT^!iDri>ApA{=erf~0_9}FZ%FXw)rUXz zF%PIItgO~UUZOAn@&}q6er2Sad=BW*gIDASlcFJ%Ss&iZRNIZ1=c}t+Xh5LDP09-lNf?B)CC@-Hwc6R7P7%o zW1MYXI8ql@=hwgG8}wo9zXDOCzysrGfe2aB?fT55yg%HrPpPk!FLpoRe1=n;(w$0? zQanD~80kA~^M4qhB+h#|w4f(DV5)%&>gKJ|G!8v=#go9tQP~pLj6AtQnrT2Ef8K2p zC<;sga9cjXq$_qorq2(gu&pSTs?|`s&nG%IRDEi&9dNDR(#KMN5n&8yw)@rH?9S`q z;fhgcrv`#(KnxqmXX-RtBG$$Bnem=3CN|7QOnO@}r8&Cp^pm)aw|U*_xdD4l8t*j3 ztL23%!#Qm|c*Ioor?$5#x|>{<34e)Js0~mkxkGnT=BG!$@kIvb(-9REx`C# zppwEu*(SuL_tD70V6_rG*gN(8RKESQ(^K)l>17HsQ!5%n?I;Gw~*IaHNpJPxBDAwUnlWxokL&5N+HS{0$b&+2pfP>gG&h7^4Y zAQQv#{`A#mR}J_37HIdnWS}b8XU14wkJs(#vtmBd9~s&R11{Mt-;}?KbcP=6R&=N2 zcb#64U(&G0-$5Ml2qdh4xJi8OUB;&J8Q!mb@{o3(6VefE5yMSeru_AV+4y!-dNdnIxcum19Mv#7Yx!8}br7suk@D*Wl&(X>AJFiakN9ED)-cMs*$I z#0r`p__V{EKq=0vPE!^n1M(C0ath4Kerw#W4qSUA>UQ4r;6yAi^@dSGJ zxeE%j7;136hWRj;{j0|<$?>(H`-GW{CSKdmZ!t#t;6 zr{}$2FBw>ICi@srwbh?&O!o)j1#rufL}5%CXCw}E=?;C=Rh*o5BNhP9RrDcYXpuVJ zo~*fH@rZ`;yV2YDMy`jb69;-g_&WhVD@4? zhIch>dM8%D2)VDrTj*A=_Re6kbF&^xV}aevyg0Jt#Ln9x^F<48;p~X&-RPQG(J^a8 zZm3)UgGkdns}vrX2c?1RvRQBhz>%i9yRULgz+|y|qH=cmZ9#q$bS?M&gbmUZ#zevU zo?IBzVj$wq=;5y9J_azE4iFcrtj!dEHSTfgL(h17k3csM8`113rY#t+w~z|ZmB4dn z`5AKmbU3t1Z1oVu-rGwK7UIK>OEtDhH7IWdXHZ%l=lD`7DxYO<+rRMsMQj3300~LV zGtS-e@%rr9?%Gr&`Ao&JconW?z8b-)L%FO*EB^lUH4OI4A+tvkER*o~2pIv`?Ut35 z>7xLhI#yh^N84%3Q*o|nnQ}ry;(b65jhD9*6zAlp{$G)SDp1U*U+4t6S>+eD8(aOH zd3Y5}<-u@6z20Sg8{tMRmQ&z?idwdYE7Noyn#18-k*M!xWXRc6LvUZN5=&%)ARd zYQ^vxPq9vsmLudiP5K~6GFrDdx?BOuqjR4)TRj1(WS{r?5C4(jhRL>h$xZ8t(Dj` z2_3tXcwWH_*?bws8ri%r$lV#uh{_qrSFxzVXc^l_&YNX;8jzZ(sQk&F98T>GP^U-W zHd^JA>t7saO7eKnH=%M1i#B73M`QQ`Q73qwq24H@u@ojAiBfdlpOl{yHfMgOcWlS; z!jjQ2x>ZP*1sG9NDbz7!$p%mcZaUT@!UZNnn3`kddKZBPP4cR0|57!icecr0ph}`v zZybw;o*RgbTb#h<&)r~2nQhuM#{fEp_x5@jEvo4&w*ZHnw`uG&LxAGrrF-ydG9S zrtmVoYRQ;e`wyz@FXG;%D?Mm*aPzJv48z-U9b^u~n_6QRh_zo6%TPkCEUsBTC6u%| zFaXIpL)*i;>UVYqpyr^6b~4Jg#q73@MwneYs$+wmmZNj|1B}$IesRwS_i)&9WwEs$O`!`ULx+;>LtFh+W2aT{kciYqS zLn`|d7jkY8f0sd~ zxz`!EsYzkbXQ&EYcPe`uI6h-3CaY3NIB{eslv))x58e@?eQ;o!Jva^MDP zTF_{dN`&Z0ed#)_V&Qx~!I^xs8?EbHyFRVD<7{m_dbg;QE^2)@3v-MaKeugJli(U{ zyY0w$3mhoiPoOSSU)46hICXP5zsE~qd7pmoIB0ag*yKJS$T){v4{J$iX>}-bD02iH zEgUW!FC2B0X;eLDTKie&Sm#;CSjSn{oMWulwUD&1wH!FWA0-|q9_=4zE>bU6Os(fL z99b`{=lVGquUE8KI4mBwIBZU76}gK$=UFG718+gEJ5;{}m>u4<7G7l5=nFrU&a2=o zPR>_N5j{1*hE;0YHjKK|(R~|dsbce}I9p+OuW{H1bWH2qpS1`rYI$g#I6mBlS^u~P zAB<=kZ!uaJNn@S$NwfLU{I)M+GrexNPCaTv!Oya&<(d7owr5mWRIi4a-^>(etd*}- z)M+SNrPOpX{|P)&if5r>{)mUcWnPWCv_Z(xWe)3BB9pGaaYUoQ${-bOMn7<;^HH^3 zL`P-3)b`d*;XLRm06ek5bW^*uz2ZGYPktT$ZoqvH*FKkLJ*z6-?RkVqKXtNiW*S5R zUp~hgVnbNn48C4i!Us)TIcChPhKE}eK6#lqZwiWN8i^zpi2^Z~WV6S4${MOx9}$WG zvF9`jw6{CDrgEe>OVK&Gk%0q*dV)lQg%d{|!IhwWcW8k)u}?t|buxynC9Pa=^aWVY z%UWfxr(0!n^mQzm8=|xGio7)Yv!E|B0R{1cAmAbbvu3XlCP{BrlD?D{ie#3aB!(WC z+2_ELA7VCOa`XD~I|si=E+TVJkES54J}2g&5TUfBRZ@J3plLMj7vTcu!A&oB6?yT2 zxGM*2)k%yKn#t0)E9f{Zr(Wqfzvj;@IJzK~-i`y<=@OBBL`Z}NNTfeQ9IHTSLN31b z&IHpNQt70Azn{A@fY`)l8&qD(G)=+ohxqiVV>$}oeI{p#IOz~2Jw2kShIxfwjZVYR z&)ve^ptq-pc@4P(*_H9v<*3Bd%7B%-?||4l-xC5)7cA7PUDR5hqP!Rd^@tcv$ACvHroi?5#YkSGFQ<~R}8CeNkeh~4TEdZIR1AJkr& zPHFqnZ8No$U_!f9qi<`uS45cd&V1mazBMrGVJhH-J3|{47@``A#rAo)1L7kaNP|IX zekRb=#8?w#TBtUbHcU5Du5rQ@U1G;nofWX3C7byP`(1RFy&b2!p<0F-{Ve#YU%Vxi zMu+%C?q|RZ{osB^n9AJd;5y!FvPNf71-7ptf@}k~`!osyG;D3`86w<}Jrz07-3>f$-&b`z)Do~ds(4AL1`2(b5diX;R;zZ@ zse9mT_juSCAf5v%{Lm(=Qs*UgaaZ0x$>WV0jHHnN)qzFHpM+g{fZ}tYzbK<5Velxj z!#429;FH1GclVxH*wJbbKU2B)LbuWbDW@~x#Q8}kLFHo}=6VZwb|$Vp{q%21DGS)-s4NaH@!fBA$xsxo*mz zy)*at#_>2<9Hf7()N#Y3Kj(e!GVQny`MB-;9k{hb#Zi|9f=N$O1L95Ypv1#VK5K@@ zXv%uA+A6ABddX*H{Pf!k>zjEVrq6L{#ypcQb(qtt8};#22j7Yr);41kAmc!D&Z1tJ$@cM6Ngd*QsdkD&*g+3{0~R<*mYbtmsY(i-goCv(;_#^!EP zMejq|$8$$X+)MXkY-gCSld$lmo32+X$2i9oS>KDZY^HD*_tz^X(n6Pq_KatRsqGdM z@TchZWa(rf@3M^pq!Vec>8_K4F4hP_^>_ucF+%@|}9Zi2)ntv7LA%8++u@C2Ke7vH$@A zqOi|+*^&wiPgGI7|9Yr$!Ke?q}g-g;^LRsG6 z^x~8Xkxh?HpbVCb*5g7a?&-+!&a-5Q{n;Cw7lW~rJlx8#h(2VLw?UVntXnre^4)q( z-iXhOyU0eTYUL1DO{OV@dM>noO)wgvYyLa7;pD2lmOMG`u5Wroo$#5KYM<^%qK#ixd-~ zuew#q)nypjT3fVLr*H7z5t>SCUzj9(!PAj&2uSmP?z)&4vnnzZVtM=VR8=k)&=i{m zHU1j8kn)V0Jn`r7qjqq|WNi%m41_`+A}hM(ML&t6AF$-jntTXRJ*QEO4&iim#*=&) zabNd^82CHIr>p@npZG2Eu`WR}MUFbxXUXejWf>JIJxDBryV{Lp8Mv?*(9}M@&=@gJ zfxTqx^h6PA6S}73@>mkiN~E%ws0-q~&w1B64Z^7HuP0&MO>jbue zU2Ch$?q7Z)^Mt%$Pidx#%c*fj6vSw<;z+8CTMak<@N=$?OqNS)SjpEmSVCK!Jijg+ zLMhZ`0u9Ua061~B7SQ?jxFlEiqW1JqndET5>>Lw4VY+M-Rx$`x4amZf5CUV(;9hL~ zbP)_+0+BT^IawJQct9BmKJj_oB#M zHrIC)c08WZOPeY^6$30yW7f}K2}%fB6D+R*<{HiTOj+=udTfS@&x#j32ieT)dLV~` zq`CB8MM$z^wnQlOMDOh1ilfXgnHriQp$slpbgxop>{w;4LE(Flyg{h-)Pl)t!8(Y~ zzMf-T#Ps{qGW`HGQM4)OMpMhV6N-Gi4*R5H%>w)FX+7}g5+sY{UY;v^SV*`ibUbgr zS>&!>Fl-DYFFm7gZ$5-0GEHHCWq1R*Cmnv!3_c05a4tQ9ZWh(lmAFhL4;)CZ(z;lR zv>Cmz$Jp0dsR4a+e+!tFPE2lz%7MxPshcMuX*v=LCgX5YQ)o0}m{mv5`e&H^G5 zqj|p;%!K7z6Fqb5x8@TD6o~^0r(sfi?F2txkdEFUaA9L1MI29zs-#?Rl(QU-F@v%j0Ane+f|* z^No`=@9L!EG7hM}ZL?ei$WGey*)7tqchj)IB0|}1Cr=N>XLCubTuF=V$R15x?Z?|2A zwwJK?7sW=6(LV|HAe;-jQF!%7>;hHl3GDrnwnpIi6Nj(W@uV=)@ki8^FXjS1v+>GE zhax`O7_i#0@;BY$PGeIoFgSbk;A@YDofSAi)Go zAQyy#yKT`4wIP;-apFY`-sAE7g*w==fo}5{Q*!eh*&CdWv6q`#E=PFc{OfxmUNWOE z@18%ue3?u~d=3C^*~C`L<#i$iGZnAfd5c%MvBla>dx6!`0}Uji%`mEU8DN=8Io@sR zZwg4m21cOFxl|l&|KYYUcP~$wG+{))AM>+4L97|TjdJ2+(SumT=aJ_ke>KpSkG8QU z-#NaHxrAY%zqL1ICg5Doq1*%XDu)keKF&o~jiYh2A)P~PDi$rviY@3H4F7|A2nc99 z!b)FbMfnPaf6q3`9!${|Ma$z2I~76*re4f}=E-%pNkpfU@msmwf@7$1F>ylItSOS5 zFGlBfTtq`?g2Xv4dJ6ej6102_;L2MsS+asOTGtNt>tcJGx5lw~n8TA5jR89NWPHxN zYtjXyS(c6~jCQ3;ST=?yi0vKC?dR7E*c65*cbK5LeF5{dw`tN@N~^8{DF`EJ4FlH4 z4Xld}&uw8M8&iQX=m9gr{=$clSdl$7w0J1|SJkJ|kH3DNPa)JhN)2S(Izo&W=z<-QTr*yB zxO2L-x!4|x06L#?9xUDjw|4K=vwOk!U}6aQ1tFoBN*Napm;D?bvp*ffwX4$_Zj>a{ zADyh1e5FkZ>zXYDZ1{wv+ zr8cxEo^9>$cuu^#6-9v71)kGVu*{DzCDI6?maR`vi+$-1vDydyteeSg)vWs6@%}A` z%iSG*4N{t(9GPMp6g~Pp;6vIGh zI>TFT!aEFN6gEsG%dA)*eCCkG1{Ixhr$93k;HDe4xPRlY#1e!l0n~23C`O-hjfVnWm|l;MLb#cjjdbEK4)Q`68~&~Wv<=^>m}qn38Gj-VM;&h)lsD+yal z+92n_??L+7@uU-?Dd1AJ;OuLSyA;vcCj56~XrptlLE}gyiFm)Eh)})6o0ouqi7Z<%MS(?k4Jyut!06Rq$K^AECnaM;P`sFY>`;{4@hr3TgwfZiZ;F z=||Hbfl);jT@jbMTq95t5Q={CzU4#3r#vHZ3e>2`(29Ws$+IO6exlPUhP5e78@AeR zoRKz|N%*C>g{>TpnkzhCIYT;t04vh#z*=8o@Jm_5A4Wk>*O?Xdr!B9LAZI@B&vfVD z)ZnPJgdKgMW4V$28{V9zH7@$^*)Bk%$g;3nUCrLgfXHD20!aB)q%(c00p_#k_Z7mF zGH8H7q2nqC)dHM*TC+#1QJqCz6~PkFqVw9(Y@x(T{e%5-0TE!oMf@(b*JWS}_b$?( z?9@i@z~DgNX4quLW}hYj0N1(du7AjcpOEJv@X3!%8yMJ9d9{1S$YMD5j8)kWZzyj* zV80d5%B!bgptjL5uC;f=sIH?PnB8EBr^Q+S`zDzeXO1>c=|((T=6CA1)N8Q93DtMC zADf#yWk5xdC0HGxZ$%beURPP(@2M19S!RcFj@d4^1*7|l&2#HtNj@ZM;l{}*DWr91 z_*36PHvH|Iyy7ZSr*LqF#$xvr1iNC^TNfxS z;D7r;Crc$E9ml-Kq(PsX4b;KZ-Y;|mvQT0YQdTxc)A(jz1%x^4uha^*k{@8#FCIOwZ&=nKP!{#Zf~*U`6>GTrYs; z#!Z*?l2Q5W(HmL? z+fC!YRsw#Xe(|4F0{(TZ;UAKH`VWTc$M7;%rayB0e^={&EdEt>_WR}ERcHTBb4L3? zjQJn>Z2r6M>)*6*|3Jz3uZ910Qk{|ZuVS%3`7Zarbzd_A(JB3<{rZvNc2H}<8h76s zH}MP45C4uqNYAL_>@e!-0Yb05?xa>v&uYOLtWjHt>iTI z_>}bIqOCO5*qGEbRgm3Xa?k@ZlfpzrO4B97_;?i6qm!hhq!W^T)RR55f>pC)@_3U( zLvqjp)FRY`fR4_VQu!_R!*#VG0uHA3tXp=&k6<=oo6s zZ--mYY)$sRqTa^Ct9XfjOGBI&R7J1#>KZMS&!X3>wx~A z^j!H)_-NWs|CpH>g8cN%_U8ZUNrUN_^XziZA9+E!x!lR%k@W1eR;5?ER;xM9bY)N2 z>c{F?_G0`#exo7X{oYqE%+_)J$b)lG^D3P>(UD@o(1eW^_V^ul!V%fU#XC942N+1K zFf-%7*~I@$I{SAxnSYs9`NtmqAXKw`v~hpT7X4!r|5M+|$2))B$-iIzxs&PsJxJic zZSnlG6@~G)W|luVMiL(q$&V`3Kh}zVCuse(R`lD#|9V@qG5ocmGb2tzQo|9wYcj_u zbG%SnKMv`DjZBVA0&-On#^5+y9~Gddq0Aq=tS`YfWqor~&Q(x9lZfi}Dt&Q}n~fr} zIxQ(H8*iB!oO&1rZ8(s^b?9ddPx_=k;d8C)gNBT3aCbd<&-K0O#nTHVhM9mo6!-A> z+_TPr#ZCA-(ieD^5E-$qcCPwcafTsc{5b8+x7%-g&&ih)MEsL^!JtBBbw#5?OOj6n zI1-KKQL$v~92_e{2T^zz#5zo}r0vQAaqF1MA{dO8L>Qz>!WEhNR)!}M?1@IwI2^_e z>Z?rP_N~*54o{|7X7hFI*C0lPl0PEz|!R`xYvuL0l*bZSv)bCcde<0>N%j`fOL zZO~qp#Pe>T)CJ8(28vB^@dM99NAcbQ80+f5a<6-?4zb}$K3Y#^l&V7i~YCpKs^aO?=k^2)I4Du^E zNNMDLT~@Smco^{*r}es+DhCx z(8LU(rEfLD+B0zwplRHDLxnyU|-h*Q8b%anWi=w#dF~ z#%!aZQP6n{TWo#(Jfo>kszf-mC&|W;<>qzOWXc>HX-E)JVa9W6)~?87xp{yx zDtP&*ql}gWw4;CwbArR*h>xu)QJpC2W8z*h~wiMfd+wl+yQtoj?h}ahGNM;e6LUY7HF9N`hfc#Bl(}4(*OH0wSPVV z>F`-U$Ws5u&byCcEB~g+o#De9`15(k^l`HP`Mmp&TJQb|entQLaLfPo^N)^=@vpV= z1|=m>MgU~&a!8I0lrYlZQ#q}r<%r-tqKVb1Lw z_oEZ(&6&+E&g~X9+w6BOAqquinv}k&%<+`L_{7l&{J?zAeOQ3HbHZ**8hBAf4}H(^ zu~8QLj(48T#||1pcb1v?`G)5s2SQ9}Fd`YDB7-AE@^9qqxZ;8x9W0o*UT&mcLc@aw zAPh?2ZoXDPw5Y>7HQ}y+4@G%sh&Xv~SY;2^VtB2A6&!M)oj{+5{e%E4Bznb#nzp1TH|qf9cl zw_wyM)W#wkiyOBSwoO`fa3fkW^<1?X4ADo`Z zvA{;RLu<+b;~ACI<;(z@wvr6xiTF~sv^m>?Vxt0>A>FevvhVLuP&6fJ%do&uq$ak} zKH-Q}QoUwOIemQmtlg1@GMR*swW4VGUQf^J7Aia$dzGtYoOUJ&-8y+TIl5x(c~nO> zDqfy%ZAKgm>2l1J=1MvCp1?`A4aHNG2DA}}SYs=>B?7awOvUQ8%M^%q&~G>UVYdc7 zqGp6&vIwChGlwOtn+AvMI&BA3_V<54dHJj%=p?Bm6t-+r^?py!)W zEg%0#F7?2+lX0W&m_JHq267>Q}|Gj&4<;bHeU*pjopW=3juEjBwJ-q(+wOnFbyp3#?= z{xUad9bGE$+aVtk#o!!_Mu~uC&=md}&z8X=L8=1$D?7A3sDUyVKNbzv?W>dMbs(l5KHv-5wA`U{F@4=s@B?_kp^6# zmG&l})(ardfF5#WiWi6C*9hiqN@v>p&7S(EP4HW*^_|E@+$-u*SR*-Y@X;A0vqXG& zSHDHI3zQy)d~JlGXts};S}6xb(U zTfeusr}IJswa6n~s1jN5dDdo%N{J=?$wypdRUmUm3AN!>e>H?}Y&nm=Y=fTB-N0^z zIRJ`};LWP(MbsntTbKPs;jc5q$p}ToR9OYk0fMo(WkD7-_I;@VYN5{lFvTYu1hpr+ zF&bTKerHurnSy-UnR>=0r;-E`ahx;=+n`vAJw$CmkD5XI zk}=`Ag6N)#5~Hy4j_+^yjNiYa2+%P~MKkj4%u&Vd*jd)b1AS)8E7V&U>QyWAPVr|E zK28dHXZ~gK$Z~yQo>aABRF}IzJbOVQv&ScPK4_$w|B%8eG0oV26O=2`k8Cg0P>f7k zF&iB)$P$3H@_bBkFtc*J-+%Jbn!Y#^bRNxdZXe{fro~lt>rg(hQ}H#?a`;OPrSb#m z{8(oy2bPT>~6k#%Aq2VK00m@MH{Vz3s&#Gf16A4x=M-* z*(y~<(gL0HV{KLYTAp<=TGB!)mdXgvjq~fg&9C_fw(s)}iV`e2 zIVV#L`T}%@JBeS?_!-7#}=?K(%_ip27QG0b%;OuZ+xELfVTgM&-1Ut>Hp@_{EhI<%)7CZAKF&_A4%{kZW`n}DfkAgNrKx(XDVj|Lb-%dk=%zl0R zx{_d!+`t)9df^Nqe230H2+OXD#iEQnlp5|{6?!mA)56?XFlo!sy3T-# zryGu;eXY3bhHZ_?KE7hl^v2eD@<-Qocm|g7qZ~}HWVr_+RJyKK7_N@ z16T*3W${x}A5ifg!limo{=BVG$u_Ag@)^|VWg(Kq>WEfBiT1kw4?#9;`e zu+LxE1&S}R=R`}KyvmHX%$AAx{mJmbNW?O|+3cQ{PiI!#P!Q6+JmxZCI2FW)j zeCxu(JB}RVL*OUAN761(S_+>LJF|3Hh1ageA^wcpLp!=jIlt&%M4%7K{vrn6T`KPN z@_5v5(_0)%u5nCkaI{s_AA=nXw^lC_$0KluSJMdOdgq6&95jxz|K7a)=yU ztG~p9Ek=g)uO|C3zwU3<|wrxAIp zzv=(p9L&u2PfQ?}L_}*;7qr1k&(o@Ps{Obu;IPHdeM+%)juX>676&>$obiu{yi^yo zBlSfE?h(@?i!FQpsAowK=@M+0Fp^{>$M4&({XW1QntRjEtPAfm$YsqLN z=x6ej&5p;Lo6hXV4x>~o?B3dPUQ${fa!(KGXtRE5mTP2$Vh%-Y*Ab!q0GdKKn3A;c z3RL@B&bc@+j=|&?QNAv|N!Oy33$vgGG$jauqmCV*SXN`5+n69BK=Jhp-#ux17(m9UR ztn}E>HR`2YL_5B4Z;Tz0_8QYM)Etek(9K$Qv``IJFBE&}>X}c|&tS)JhZ<1uveVlL z^$16Jlx;{#X0fMNE1n5aghrTwQ6$%}Iz<0Souo4!U`72IF$P*52Hu#QN~Q2U5@&h- z%+^&fnaWF5mGV{4Rns+7YR|GIiaE+Cc39&XX1V}jl9B5MJ60t36=HyZuP+Y-`l4GM z!EXTA_vrL2_*hDHtZ|mv-n-yH{P#rARPI~%oI>?RvjhkHuIe^ghSTok_WK=c;u)&E zOYI0*92UCE=6`5uRzM+oDoS`6lPQs@0(KB6Kb;k6v@i%w9x{< zR}MF3YH5Mq+raA@K=JIUJATX=%+%`PjKb~XtOy;6j_noPtd2{CYkI@U$BfF4=V8p_ zHHHUY(qFKl{fvYUo!HsPs+`abc<5h4RT6W3M>pw42%B_@cR=y~n2Sr^oJMw4r2N+a?-~+_Op!lNnM`X$X()_wh6LL5exvqPg7*kl)9NF~$kc#ZfQN%Wppj zy7)BsvmX7dGUuL3(N|sm5!zBlrEznD`^?bfg*!*JEXLBqp(~1*88XqP=R_MIvs&oNL_PX zXs0c7buf!Y6I|1=x_x0ZX0ZMNefhlSeI!bL9D+$gd!c}r4DxBl1n@+bb1i}mmL%YPr_`GcbW*U<EGF!e=huAOOb3W%&dQp?WlWvM>TW3 z1pZ|k#8+*)pR};yex?(I$%|Bl=pD?C1sc%J@`WD@4$hEa++6f=o?A)U74LxTb>T-d_xnv zvw30%ywg@;f`wX26CP1VL4|zexF{H??l~LK=nn0{)WD_R9u^x|E~P3J zMf=iM2tV}TxneJE{b1tz25$tqfd%kXCy5lhsxGWbIfteKg~=Y-Cprf^m|lq~9uA&c zlnqq2i8DuR8C=QLU2MPP7!JesQ72@jVAJr)E-5Dz46Al{4K@p0Cd4umtNmRfsiy}$ z{7@iiO|A)*^hVx#M2iA02hi!hY2)|1T9QQUDaT9#F{wQw7$|)yuO)%!y01=UnRtogbzT_1+dG3pJTWr2%DP#Jk$2CUm5JuLbT()zvDxb)jG< z$Q2h&EwUA56us@fUw5lpXW);=8pkh}Y3Q}7vHjk9Y|?|^ZeLuG-E?%v(A%2Gc2UzXDuO7wv7R`(4j8H zFbkk(O^_xME*b_)y&8yk-0QWn#^rU4`dYS1t7GNuAb`=Y&TC5#_Ii9{&DM}ji0Y6v z%Ie0~44n-BGa>XRKizbgi%{m|w|rf+CeL!)w%Kjh8@XAE)0>^rw*j>;zQ*`haFCE+ z=k3WgC5gm7$XF~r??z{Mo#ybp4Sf-Y(9y?o8UIBb|Yy z7Y6GJm{B7520SQ@PZjm4U9AIlW?#ZPH|0mYq4o5Hpn(*ECiKGmAu88ppc%UF8$7Q# zw!Eeb2CFWcp$I~bnH_og6Zm}1-_%VX&d>#Ju&r~;6GP7KhRR_&mTeo<>EC+pIWQqy zw&0##cpurjw^n-6r7HPh^yAMXGI%a0b`z*yiQkaezafG{EYoPon!JiqEHy=oO$|@H zH`Y@d!r-LxDbx^~Lus*Y54Kq)Zn7)h9^23%HSW+h=kc1$^rjRl#0k-r% za?6~F{6ToCuA_{bFhqJI$U$GUXIv$G$f8+6(b3ZpmjrHu%yUY0ADg?2rH5$@NGI

JmoAUTWrj!YuFe?;eq2Vo_+t5Jze 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∋a5 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%0A!VnUixgo^rR5?PzP&utZ%* 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 nL=`nEg+h}1|1m6i<>YwX*>pGdOvnRpb3XSwa0` diff --git a/doc/invargent-slides.tm b/doc/invargent-slides.tm deleted file mode 100644 index 88944e5..0000000 --- a/doc/invargent-slides.tm +++ /dev/null @@ -1,1055 +0,0 @@ - - - - -<\body> - - - - <\ornamented> - - - - <\itemize> - InvarGenT infers preconditions and invariants as types of - recursive definitions, and postconditions as existential types. - - Generalized Algebraic Data Types type system based - on François Pottier and Vincent Simonet's but without - type annotations. - - Extended to a language with existential types represented as - implicitly defined and used GADTs. - - Type inference problem as satisfaction of second order - constraints over a multi-sorted domain. - - Invariants found by , postconditions found by -- e.g. anti-unification for terms, extended convex hull. - - A numerical sort with linear equations and inequalities over - rationals, and >min>, - >max> relations (reconstructed - only for postconditions). - - |<\hidden> - - - <\really-tiny> - <\itemize> - |>|>||>>|0:\\\\|]>>>||1:\\\\|]>>>>>>>>|>>||p:\\\|\>\>|D,\\\e:\>||\>#FV,\|)>>>>>>|C,\\p.e:\\\>>>>>>>>>||>|||>>|iC\p:\\\|C\p\p:\\\\\>>>|||x:\\\\|]>\|}>>>>>>>>|>>||D,\\\m:Num>|)>>|\\\>|>|D,\\\n:Num>|)>>|\\\.|)>|)>>|>|p:\\\|\>\>|D\\>\\>,\\\e:\>||\>#FV,\|)>>>>>>|C,\\p\m\n.e:\\\>>>>>>>>>|>>|i>|D\p:\\\>|\|\>|\>.\\\\\\\|\>|)>>||\>#FV>>>>>|C\K - p\p:\|\>|)>\\|\>\\\\|)>>>>>>>>>|>>||D,\\\m:Num>|)>>|\\\>|>|D,\\\n:Num>|)>>|\\.|)>|)>>|>|p:\\\|\>\>|D\\>\\\>\\>,\\\e:\>||\>#FV,\|)>>>>>>|C,\\p\m\n.e:\\\>>>>>>>>>>>> - - |, added rules>>|||>||>||>>|p:\\\>>|\>\>>>>>|C\p:\\\>>>||p:\\\>>|\\\>>>>>|C\p:\\\>>>||p:\\\>>||\>#FV,\|)>>>>>>|\|\>.C\p:\\\>>>>>>>>|||>||>|||>>||,\\e:\\\>|>|,\\e:\>||)>>>>>>|C,\,\\e - e:\>>>||||\>|)>\>|C,\,\\e:\>>|,\\K - p.e:\\\>|>>>>|C,\,\\ - p=e - e:\>>>||||)>\\Dom|)>=\>>|,\\n:\>>>>>|C,\,\\e:\>>>>>>>>>>>> - - \; - - >|||>|>|>|>>|=\\|\>.D|]>.\>|D>>>>>|C,\\x:\>>>||\>>>>>|C,\\:\>>>|i - C,\\e:\C\D>>|\|\>|\>.\\\\\|\>|)>>>>>>|C,\\K - e\e:\|\>|)>>>>|\\|)> - e:\|C,\\ - p=e - e:\>>>>>>>>>|||>||>||||>>|\e:\\\>>|\e:\>>>>>|C,\\e - e:\>>>||\e:\>|\e:\>>|=\\|\>.D|]>.\>|=\\|}>>>>>>|C,\\ - x=e - e:\>>>||||i - C,\\c:\\\|C,\\\\c|)>:\\\>>>>>>>>>>>> - - | processing>>||||>||>||>>|D,\\e:\>>||\>#FV,C|)>>>>>>|C\\\|\>.D,\\e:\\|\>.D|]>.\>>>||\e:\|\>.\>>|D|\>\|\>|]>>>>>>|C,\\e:\|\>\|\>|]>>>>||\e:\>||\e:\>>>>>|C\D,\\e:\>>>>|>||>||>>|\e:\>>||\>#FV,\|)>>>>>>|\|\>.C,\\e:\>>>||\e:\>>|\>\>>>>>|C,\\e:\>>>||,\\e:\>>>>>>>>|||)>= - x=n|)> K x>>|K\\\l=\>>>||)>=x>>|>|>,\|)>=\|)>|\>|)>>>|>| - e,K|)>=n,K|)> - n,\|)>>>|>|>,\|)>=\|\>|)>>>|>|>,K|)>=\|)>|\>|)>>>|K\\>>>||)>=p.n|)>>>|>| - p=e - e,K|)>= - p=n,\|)> - n,K|)>>>|>>>>>>>>> - - - |<\hidden> - > - - <\equation*> - =\\|\>.D|]>.\>|D>>>>>|C,\\x:\> - - - <\equation*> - |\\x:\|\>=\\|\>.D|\>\\|\>|]>\\>\ - - - <\equation*> - \=\\|\>.D|]>.\,\|\>#FV,\|)> - - - : - - <\code> - datatype Tau - - external x : >b[b = Tau > Tau].b = - "x" - - \; - - let var_rule = x - - - : - - <\code> - # invargent slide3.gadt -inform - - val var_rule : Tau > Tau - - |<\hidden> - > - - <\equation*> - \e:\\\>>|\e:\>>>>>|C,\\e - e:\> - - - <\equation*> - |\\e - e:\|\>=\\.|\\e:\\\|\>\|\\e:\|\>,\#FV,\|)> - - - : - - <\code> - datatype Tau - - datatype Tau' - - datacons E2 : Tau' - - external e1 : Tau' > Tau = "e1" - - \; - - let app_rule = e1 E2 - - - : - - <\code> - # invargent slide4.gadt -inform - - val app_rule : Tau - - |<\hidden> - > - - <\equation*> - i C,\\c:\\\|C,\\\\c|)>:\\\>c=p.e - - - <\equation*> - |\\\>:\|\>=\\\.|\\>:\\\|\>\\\\>\,\\#FV,\|)> - - - <\equation*> - |p:\\\|\>\>|D,\\\e:\>||\>#FV,\|)>>>>>>|C,\\p.e:\\\> - - - \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ |||\\p.e:\\\|\>=|\p\\|\>\\|\>.D\|\\\e:\|\>>>>|>|x:\\\\|]>\|}>>>>>>>||gr-frame|>|||>>|||>>>>> - - : \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ or - \ K x:\\\|\>|\>\|}>> - - <\code> - let abs_gen_rules = fun x -\> x - - - : - - <\code> - # invargent slide5.gadt -inform - - val abs_gen_rules : >a. a > a - - - <\equation*> - \; - - - <\equation*> - \; - - |<\hidden> - > - - <\equation*> - i - C,\\e:\C\D>>|\|\>|\>.\\\\\|\>|)>>>>>>|C,\\K - e\e:\|\>|)>> - - - <\equation*> - |\\K - e\e:\|\>=\|\>|\>.(\|\\e:\|\>|\>\|\>|\>|]>|\>\D|\>|\>\|\>|\>|]>\\|\>|)>>\) - - - Type could be defined as:>> - - : - - <\code> - datatype Box : num - - datacons Small : >n,k [n > - 7> k = n+6]. Num n > Box k - - \; - - let gift = Small 4 - - let package = fun x -\> Small (x + -3) - - - : - - <\code> - # invargent slide6.gadt -inform - - val gift : Box 10 - - val package : >n[n > 10]. Num n - > Box (n + 3) - - |<\hidden> - > - - Height of left sibling, , differs by at most 2 from height of - the right sibling, . - - Resulting height is . Height value is stored with - the node. - - : - - <\code> - datatype Avl : type * num - - datacons Empty : >a. Avl (a, 0) - - datacons Node : - - \ \ >a,k,m,n [k=max(m,n) > - 0>m > 0>n - > n>m+2 > - m>n+2]. - - \ \ \ \ \ Avl (a, m) * a * Avl (a, n) * Num (k+1) - > Avl (a, k+1) - - \; - - let singleton = fun x -\> Node (Empty, x, Empty, 1) - - - : - - <\code> - # invargent slide7.gadt -inform - - val singleton : >a. a > Avl (a, 1) - - |<\hidden> - > - - <\equation*> - |D,\\\m:Num>|)>>|\\\>|>|D,\\\n:Num>|)>>|\\\.|)>|)>>|>|p:\\\|\>\>|D\\>\\>,\\\e:\>||\>#FV,\|)>>>>>>|C,\\p\m\n.e:\\\> - - - <\eqnarray*> - |\\p\m\n.e:\\\|\>>||\|\>.|\p\\|\>\\|\>.D\>>|||\|\\\m:Num|)>|\>\|\\\n:Num|)>|\>>>|e\\\\>||\\\\\|\\\e:\|\>|)>>>|\\\.|)>|)>>||\|\>\|\p\\|\>,|\>\|\>#FV,\,\|)>>>>> - - - : - - <\code> - datatype Signed : num - - datacons Pos : >n [0 > n]. Num n - > Signed n - - datacons Neg : >n [n > 0]. Num n - > Signed n - - let foo = function - - \ \ \| i when 7 \= i -\> Pos (i + -7) - - \ \ \| i when i \= 7 -\> Neg (i + -7) - - - Result: >n. Num (n + 7) - > Signed n> - |<\hidden> - > - - : - - <\code> - datatype Avl : type * num - - datacons Empty : >a. Avl (a, 0) - - datacons Node : - - \ \ >a,k,m,n [k=max(m,n) > - 0>m > 0>n - > n>m+2 > - m>n+2]. - - \ \ \ \ \ Avl (a, m) * a * Avl (a, n) * Num (k+1) - > Avl (a, k+1) - - \; - - let height = function - - \ \ \| Empty -\> 0 - - \ \ \| Node (_, _, _, k) -\> k - - \; - - let create = fun l x r -\> - - \ \ ematch height l, height r with - - \ \ \| i, j when j \= i -\> Node (l, x, r, i+1) - - \ \ \| i, j when i \= j -\> Node (l, x, r, j+1) - - - Result: - - <\code> - val height : >n, a. Avl (a, n) > - Num n - - val create : - - \ \ >k, n, a[k > n + 2 - > n > k + 2 > 0 - > k > 0 > n]. - - \ \ Avl (a, k) > a > Avl (a, n) - > >i[i=max (k + 1, n + 1)].Avl (a, - i) - - |<\hidden> - , > - - <\equation*> - |D,\\\m:Num>|)>>|\\\>|>|D,\\\n:Num>|)>>|\\.|)>|)>>|>|p:\\\|\>\>|D\\>\\\>\\>,\\\e:\>||\>#FV,\|)>>>>>>|C,\\p\m\n.e:\\\> - - - <\eqnarray*> - |\\p\m\n.e:\\\|\>>||\\|\>.|\p\\|\>\\|\>.D\>>|||\|\\\m:Num|)>|\>\|\\\n:Num|)>|\>>>|e=\\\>||\>\\\\\\|\\\e:\|\>|)>>>|\\.|)>|)>>||>|||\|\>\|\p\\|\>,|\>\\|\>#FV,\,\|)>>>>> - - - <\equation*> - |\>>>>>|C,\\:\> - - - In the solver, we assume for negation, that the numerical domain is - integers, while in general we take it to be rational numbers. - |<\hidden> - > - - : - - <\code> - datatype Avl : type * num - - datacons Empty : >a. Avl (a, 0) - - datacons Node : - - \ \ >a,k,m,n [k=max(m,n) > - 0>m > 0>n - > n>m+2 > - m>n+2]. - - \ \ \ \ \ Avl (a, m) * a * Avl (a, n) * Num (k+1) - > Avl (a, k+1) - - \; - - let rec min_binding = function - - \ \ \| Empty -\> assert false - - \ \ \| Node (Empty, x, r, _) -\> x - - \ \ \| Node ((Node (_,_,_,_) as l), x, r, _) -\> min_binding l - - - : - - <\code> - # invargent slide11.gadt -inform - - val min_binding : >n, a[1 > n]. Avl - (a, n) > a - - |<\hidden> - > - - <\equation*> - \e:\>|\e:\>>|=\\|\>.D|]>.\>|=\\|}>>>>>>|C,\\ - x=e e:\> - - - <\eqnarray*> - |\\x=ee:\|\>>||\|)>\|\\\|)>|]>.\|}>\e:\|\>|)>|)>\>>|||\.\|)>|)>\|\\\|)>|]>.\|}>\e:\|\>>>|||\#FV,\|)>,\#PV|)>>>>> - - - |)>> is a second order variable. - - : - - <\code> - datatype List : type * num - - datacons LNil : >a. List (a, 0) - - datacons LCons : >a, n [0>n]. a * - List (a, n) > List (a, n+1) - - \; - - let rec map = fun f -\> - - \ \ function LNil -\> LNil - - \ \ \ \ \| LCons (x, xs) -\> LCons (f x, map f xs) - - - Result: >n, a, b. (a - > b) > List (a, n) - > List (b, n)> - |<\hidden> - > - - : - - <\code> - datatype Binary : num - - datatype Carry : num - - datacons Zero : Binary 0 - - datacons PZero : >n [0>n]. Binary n - > Binary(2 n) - - datacons POne : >n [0>n]. Binary n - > Binary(2 n + 1) - - datacons CZero : Carry 0 - - datacons COne : Carry 1 - - \; - - let rec plus = - - \ \ function CZero -\> - - \ \ \ \ (function - - \ \ \ \ \ \ \| Zero -\> - - \ \ \ \ \ \ \ \ (function Zero -\> Zero |]>> - - \ \ \ \ \| COne -\> - - \ \ \ \ (function Zero -\> - - \ \ \ \ \ \ \ \ (function Zero -\> POne(Zero) - - \ \ \ \ \ \ \ \ \ \ \| PZero b1 -\> POne b1 - - \ \ \ \ \ \ \ \ \ \ \| POne b1 -\> PZero (plus COne Zero b1)) - |]>> - - - >i, k, n. Carry i - > Binary k > Binary n - > Binary (n + k + i)> - |<\hidden> - > - - <\equation*> - |,\\e:\\\>|>|,\\e:\>||)>>>>>>|C,\,\\e - e:\> - - - <\equation*> - |\\e - e:\|\>=\\.|\\e:\\\|\>\|\\e:\|\>\|)>,\#FV,\|)> - - - Above, |)>> means that - > is not an existential type. Therefore - fails: - - <\code> - datatype List : type * num - - datacons LNil : >a. List(a, 0) - - datacons LCons : >n, a [0>n]. a * - List(a, n) > List(a, n+1) - - let rec filter = fun f -\> - - \ \ efunction LNil -\> LNil - - \ \ \ \ \| LCons (x, xs) -\> - - \ \ \ \ \ \ ematch f x with - - \ \ \ \ \ \ \ \ \| True -\> LCons (x, filter f xs) - - \ \ \ \ \ \ \ \ \| False -\> filter f xs - - - : unfortunately, error not informative in current - implementation - - <\code> - ../invargent slide14.gadt -inform - - File "slide14.gadt", line 5, characters 2-134: - - No answer in type: term abduction failed - - |<\hidden> - - - : - - <\code> - datatype List : type * num - - datacons LNil : >a. List(a, 0) - - datacons LCons : >n, a [0>n]. a * - List(a, n) > List(a, n+1) - - \; - - let rec filter = fun f -\> - - \ \ efunction LNil -\> LNil - - \ \ \ \ \| LCons (x, xs) -\> - - \ \ \ \ \ \ ematch f x with - - \ \ \ \ \ \ \ \ \| True -\> - - \ \ \ \ \ \ \ \ \ \ let ys = filter f xs in - - \ \ \ \ \ \ \ \ \ \ LCons (x, ys) - - \ \ \ \ \ \ \ \ \| False -\> - - \ \ \ \ \ \ \ \ \ \ filter f xs - - - We use both and (a - >-redex for ), because - and would require the types of - branch bodies to be equal: to be lists of the same length. - - <\code> - val filter : - - \ \ >n, a. - - \ \ (a > Bool) > List (a, n) - > >k[0 > k - > k > n].List (a, k) - - |<\hidden> - > - - <\equation*> - ||\>|)>\>|C,\,\\e:\>>|,\\K - p.e:\\\>|>>>>|C,\,\\ - p=e e:\> - - - <\eqnarray*> - |\\ - p=e - e:\|\>>||\.|\\e:\|\>\>>||||\\p.e:\\\|\>\|)>\\>|\\K - p.e:\\\|\>|)>>>|||\=K\\|\>|\>.\\\|\>|)>\\|}>>>>> - - - <\small> - OCaml code generated for -- : - - <\code> - type _ list = - - \ \ \| LNil : (*>'a.*) ('a (* 0 *)) list - - \ \ \| LCons : (*>'n, 'a[0 > - n].*)'a * ('a (* n *)) list -\ - - \ \ \ \ ('a (* n + 1 *)) list - - = - - \ \ \| Ex2 : (*>'k, 'n, 'a[0 > k - > k > n].*)('a (* k *)) list - -\ - - \ \ \ \ ((* n,*) 'a) ex2 - - let rec filter : - - \ \ type (*n*) a . (((a -\> bool)) -\> (a (* n *)) list -\> ((* n,*) - a) ex2) = - - \ \ (fun f -\> - - \ \ \ \ (function LNil -\> let xcase = LNil in Ex2 xcase - - \ \ \ \ \ \ \| LCons (x, xs) -\> - - \ \ \ \ \ \ \ \ \ \ (if f x then - - \ \ \ \ \ \ \ \ \ \ in let - xcase = LCons (x, ys) in Ex2 xcase - - \ \ \ \ \ \ \ \ \ \ else let Ex2 xcase = filter f xs in Ex2 xcase))) - - - |<\hidden> - - - : compare two values of types as encoded - - <\small> - <\code> - datatype Ty : type - - datatype List : type - - datacons Zero : Int - - datacons Nil : >a. List a - - datacons TInt : Ty Int - - datacons TPair : >a, b. Ty a * Ty b - > Ty (a, b) - - datacons TList : >a. Ty a > - Ty (List a) - - external let eq_int : Int > Int - > Bool = "(=)" - - external let b_and : Bool > Bool - > Bool = "(&&)" - - external let b_not : Bool > Bool = "not" - - external forall2 : >a, b. (a > b - > Bool) > List a - > List b > Bool = "forall2" - - \; - - let rec equal1 = function - - \ \ \| TInt, TInt -\> fun x y -\> eq_int x y - - \ \ \| TPair (t1, t2), TPair (u1, u2) -\> \ - - \ \ \ \ (fun (x1, x2) (y1, y2) -\> - - \ \ \ \ \ \ \ \ b_and (equal1 (t1, u1) x1 y1) - - \ \ \ \ \ \ \ \ \ \ \ \ \ \ (equal1 (t2, u2) x2 y2)) - - \ \ \| TList t, TList u -\> forall2 (equal1 (t, u)) - - \ \ \| _ -\> fun _ _ -\> False - - - - Result: >a, b. (Ty a, Ty b) - > a > a > - Bool> - - <\exercise> - Find remaining three maximally general types of . - - |<\hidden> - > - - : - - <\code> - |]>> - - \; - - let rec equal = function - - \ \ \| TInt, TInt -\> fun x y -\> eq_int x y - - \ \ \| TPair (t1, t2), TPair (u1, u2) -\> \ - - \ \ \ \ (fun (x1, x2) (y1, y2) -\> - - \ \ \ \ \ \ \ \ b_and (equal (t1, u1) x1 y1) - - \ \ \ \ \ \ \ \ \ \ \ \ \ \ (equal (t2, u2) x2 y2)) - - \ \ \| TList t, TList u -\> forall2 (equal (t, u)) - - \ \ \| _ -\> fun _ _ -\> False - - \ \ \| TInt, TList l -\> (function Nil -\> assert false) - - \ \ \| TList l, TInt -\> (fun _ -\> function Nil -\> assert false) - - - Result: - - <\code> - val equal : >a, b. (Ty a, Ty b) > a - > b > Bool - - |<\hidden> - Clause> - - : - - <\code> - |]>> - - let rec equal = function - - \ \ \| TInt, TInt -\> fun x y -\> eq_int x y - - \ \ \| TPair (t1, t2), TPair (u1, u2) -\> \ - - \ \ \ \ (fun (x1, x2) (y1, y2) -\> - - \ \ \ \ \ \ \ \ b_and (equal (t1, u1) x1 y1) - - \ \ \ \ \ \ \ \ \ \ \ \ \ \ (equal (t2, u2) x2 y2)) - - \ \ \| TList t, TList u -\> forall2 (equal (t, u)) - - \ \ \| _ -\> fun _ _ -\> False - - test b_not (equal (TInt, TList TInt) zero Nil) - - - OCaml code generated -- : - - <\code> - |]>> - - let rec equal : type a b . ((a ty * b ty) -\> a -\> b -\> bool) = - - \ \ (function (TInt, TInt) -\> (fun x y -\> eq_int x y) - - \ \ \ \ \| (TPair (t1, t2), TPair (u1, u2)) -\> - - \ \ \ \ \ \ \ \ (fun ((x1, x2)) ((y1, y2)) -\> - - \ \ \ \ \ \ \ \ \ \ b_and (equal ((t1, u1)) x1 y1) (equal ((t2, u2)) x2 - y2)) - - \ \ \ \ \| (TList t, TList u) -\> forall2 (equal ((t, u))) - - \ \ \ \ \| _ -\> (fun _ _ -\> false)) - - let () = assert (b_not (equal ((TInt, TList TInt)) zero Nil)); () - - |<\hidden> - - - Chuan-kai Lin developed an efficient type inference algorithm for GADTs, - however in a type system restricted to so-called pointwise types. - - Toy example -- : - - <\code> - datatype Split : type * type - - datacons Whole : Split (Int, Int) - - datacons Parts : >a, b. Split ((Int, a), (b, Bool)) - - external let seven : Int = "7" - - external let three : Int = "3" - - \; - - let joint = function - - \ \ \| Whole -\> seven - - \ \ \| Parts -\> three, True - - - Needs non-default setting -- : - - <\code> - # invargent non_pointwise_split.gadt -inform -richer_answers - - val joint : >a. Split (a, a) > a - - - <\exercise> - Check that this is the correct type. - - |<\hidden> - - - <\small> - Chuan-kai Lin's system needs a workaround, InvarGenT works with def. - settings -- : - - <\code> - (** Normally we would use [num], but this is a stress test for - [type]. *) - - datatype Z - - datatype S : type - - datatype Balance : type * type * type - - datacons Less : >a. Balance (a, S a, S a) - - datacons Same : >a. Balance (a, a, a) - - datacons More : >a. Balance (S a, a, S a) - - datatype AVL : type - - datacons Leaf : AVL Z - - datacons Node : - - \ \ >a, b, c. Balance (a, b, c) * AVL a * Int * AVL b - > AVL (S c) - - \; - - datatype Choice : type * type - - datacons Left : >a, b. a > - Choice (a, b) - - datacons Right : >a, b. b > - Choice (a, b) - - \; - - let rotr = fun z d -\> function - - \ \ \| Leaf -\> assert false - - \ \ \| Node (Less, a, x, Leaf) -\> assert false - - \ \ \| Node (Same, a, x, (Node (_,_,_,_) as b)) -\> - - \ \ \ \ Right (Node (Less, a, x, Node (More, b, z, d))) - |]>> - - - Result: >a.Int > AVL a - > AVL (S (S a)) > Choice (AVL - (S (S a)), AVL (S (S (S a))))> - - |<\hidden> - - - A solution to at least one branch of implications, correspondingly of - pattern matching, must be implied by the conjunction of the premise and - the conclusion of the branch. I.e., some branch must be solvable without - arbitrary guessing. If solving a branch requires guessing, for some - ordering of branches, the solution to already solved branches must be a - good guess. - - : - - <\code> - datatype EquLR : type * type * type - - datacons EquL : >a, b. EquLR (a, a, b) - - datacons EquR : >a, b. EquLR (a, b, b) - - datatype Box : type - - datacons Cons : >a. a > Box a - - external let eq : >a. a > a - > Bool = "(=)" - - let vary = fun e y -\> - - \ \ match e with - - \ \ \| EquL, EquL -\> eq y "c" - - \ \ \| EquR, EquR -\> Cons (match y with True -\> 5 \| False -\> 7) - - - : - - <\code> - # invargent non_pointwise_vary.gadt -inform - - File "non_pointwise_vary.gadt", line 11, characters 18-60: - - No answer in type: term abduction failed - - - <\exercise> - Find a type or two for . Check that the type does not - meet the above requirement. - - |<\hidden> - - - <\large> - <\theorem> - (expressions). - |\\ce:\|\>,\\ce:\>. - - - <\theorem> - (expressions). If - |)>=\> and - \\ce:\>, then there - exists an interpretation of predicate variables > such - that ,C\|\\ce:\|\>>. - - - |<\shown> - - - <\itemize> - We use an extension of -- ``fully maximal'' is the restriction that we do not guess - facts not implied by premise and conclusion of a given implication. - - Without existential types, the problem in principle is caused by - the complexity of constraint abduction -- not known to be decidable. - Given a correct program with appropriate - clauses, and using an oracle for Simple Constraint Abduction, the - intended type scheme will ultimately be found. - - <\itemize> - This could be shown formally, but the proof is very tedious. - - - Without existential types, the problem in practice is that - although the restriction, when not imposed on all - branches but with accumulating the solution as discussed on slide 22, - seems sufficient for practical programs, fully maximal SCA is still - exponential in the size of input. - - With existential types, there are no guarantees. The intended - solution to the postconditions could be missed by the algorithm. - - <\itemize> - We have not yet found a definite, and practical, such - counterexample. - - - > - - - -> - -<\references> - <\collection> - > - > - - \ No newline at end of file diff --git a/doc/invargent.pdf b/doc/invargent.pdf index c2cf2a26c8b9fdfe049c72f2ca005ec716b86dde..3769f099c854fd7c226a2f00328c98599b929e4f 100644 GIT binary patch delta 760 zcmajaziSjh6bEoF`Y@~{DNb-N)q$kZoSB(7vojOo>E8Zm4VX4)qIZP^ix|O51+TXe z-XD;{LM%jKQG2be1O=}>le=h6y+|t8fO{h$SkCABeeW@yO~140KWLZQW9?(@<1gW9 zcS^EANNZ|Rs6eNTUU%W_2)RrfiqZEj>=cN`MhXpm`vS8Lh8XJutWdlKWhb#wY7Y{h z?rp)V$KseP|YIq=-e#8GY`9PjC8g%1uynmgUL2Qn5&)&^F3me1$8eiN8NVZ4*o7 zT{vG%qYe#nLyNocq!`Z821qb~S;rU}O&14n&au#HOV0;TsVW;(wN}+zch=UHy}2_& zjjrY`mgTJ|K{2dPSE?GaPx?;agv)QCgxGktAL&jf&ByB zA>2P=a-1ITLH%&JaG3n;(l2;h8s~-y)cKvseV8s@8QX`&(^q2?2C?LV87@^M!o)-Y o7eMVSH}0-CTOL}jt@LJQlFO<08{OC6!T616o+%@i)0O0oQWqr4SM=^W_M?X;OWlXOe+brMonA_OQeuSO}yU5osdXkgXF6xM;C1hU zc8Qj4*-YD!GfL9?9?X@{MpmJugC6`Sphm}#A^qHjtJDAD9wtK3-Zsoodk5-O!6G~s zm+8q4yekDW$P===@Vu-J!`Nf`vJ1@$WDFCedLNd{G)gCszV`inFZyt!A`~X(SX3JP zu=Y!Q>-#0H4|!Eor^8cH}_zvHdVe|L?PAp z;aZW_sH{Px#eH~Hgf*rrN(qKz|CXwl)6F4Vsf0ZflGcYXHx_0te>;R<6H_akNtHdw znweBc-9x|py%C(F&%fc}DN>(DwHzk%v6zoTdNTqX1HBPEJta9wFAt%0QZAfCjr`Uh z_*k1n6(+Ip_e>wbOmWKb2o^8hbxfqOGFo#P8X=X472`JL(n@QL!PdfmC+-BTR`6); W{_5J})odl;DikUTW@qhf7yJb&Q{P4a